能源感知参数传递:提升嵌入式系统能效的新方法
1. 引言
随着集成电路能量消耗问题日益严重,解决这一问题需要从多个方面入手。编程语言支持对低功耗设计至关重要,因为它定义了应用程序与底层执行环境之间的接口,并决定了编译器可以执行的优化类型和运行时系统可以利用的潜在架构钩子。然而,传统的参数传递机制可能导致冗余计算,从而浪费能量。本文将探讨一种新的参数传递策略——按需参数传递(Pass-by-need),旨在通过编译器的帮助消除不必要的计算,从而节约能量。
2. 参数传递机制的回顾
子程序是编程语言中实现控制和数据抽象的主要结构。参数传递机制决定了参数如何从调用者传递给被调用者。C语言中常用的两种参数传递机制是按值调用(Call by Value, CBV)和按引用调用(Call by Reference, CBR)。
2.1 按值调用(CBV)
在CBV中,实际参数的值在子程序调用前被计算并复制到形式参数中。这虽然简化了实现,但可能导致冗余计算。例如,如果子程序中从未使用某个形式参数,那么计算其实际参数的值就是多余的。
2.2 按引用调用(CBR)
在CBR中,实际参数和形式参数共享相同的位置。子程序调用时传递的是实际参数的指针,这加快了子程序调用的速度,但在子程序执行期间每次访问形式参数都会变慢,因为它需要间接访问。
| 机制 | 描述 |
|---|---|
| CBV | 实际参数的值在调用前计算并复 |
超级会员免费看
订阅专栏 解锁全文
2937

被折叠的 条评论
为什么被折叠?



