近年来,跟着个人手持多媒体设备的快速增长,低功耗规划变得越来越重要,乃至成为决议产品是否成功的要害,如笔记本电脑、PDA、移动电话等时髦消费和商务类电子产品,对电池的供电时刻要求越来越高,高功耗成为延伸电池运用时刻杰出的限制要素。
CMOS数字电路的功耗首要由3部分组成:跳变功耗、短路功耗和静态漏电功耗。其间占体系功耗份额大于90%的为跳变功耗,也称动态功耗。关于SoC而言,一切的规划办法都是围绕着动态功耗来进行。怎么从各个层次、各个方面尽量削减动态功耗,将是语音解码规划中的要点内容。
1 语音解码器的低功耗规划战略
SoC低功耗的规划应该从顶层到底层各个阶段进行优化规划的作业,首要运用各级的低功耗战略,通常在体系级、算法级、结构级、电路级、布局布线以及制作工艺等层次上归纳考虑。有研讨标明,除了制作工艺外,高笼统层次(体系级、算法级、结构级)的规划要素对功耗的影响比其他层非必须大的多。因而体系级、算法级、结构级的低功耗规划技能的研讨非常重要。
1.1 体系级的低功耗规划战略
下降体系级的功耗实践上是削减动态功耗。首要办法是时钟选用Power-down管理模式,在SoC处于闲暇状况时,使SoC运作于休眠状况(只要部分设备处于作业之中);在预设时刻到来时,发生一个中止,由该中止唤醒其他设备;或选用学生时钟技能停掉未作业模块的时钟,然后下降体系功耗。
别的,多时钟规划也是下降体系功耗的有用办法,即让运算量小的模块选用低频率时钟;而运算量大的模块运用高频率时钟。
本规划归纳运用了上述规划战略以下降体系功耗。运用一个体系主频,经过对时钟的精密操控,即时钟使能制止以操控模块的作业状况;运用双向不交叠时钟技能,进步运算量大的模块的操作频率,一起消除了竞赛与冒险的或许。双向不交叠时钟由体系时钟Cp分为2个不交叠的时钟,yCp和zCp,如图1所示在运算时,由yCp时钟操控输入数据,由zCD时钟操控取出成果。
1.2 算法级低功耗规划战略
算法级低功耗规划首要在于软件代码的优化,削减由于算法的低功率引起的不必要功耗。一方面是对规范C代码的优化。C言语具有易读性、可移植性,可是C言语在实践工程运用中,不便于对体系硬件资源的直接操控,无法发挥SoC的特色。用汇编言语编程,能够依据芯片本身硬件结构特色,对汇编程序进行优化与精简,往往能够使一些杂乱的算法和功能模块在实时处理方面获得非常好的作用。另一方面剖析了影响履行功率的数据相关、操控相关和资源抵触等要素后,在手艺汇编的基础上充沛发掘算法的潜力,最大极限发挥硬件功能,以到达实时要求和低功耗规划的目标。
在本规划里首要依据SoC渠道的资源和指令集特色,运用软硬件协同规划办法在C代码转化为汇编代码时,经过剖析规范C算法发现,大部分循环和函数的调用存在冗余,频频的函数调用操作(压栈出栈)占用了CPU的部分处理时刻。在汇编代码中能够经过循环展开以削减不必要的循环判别,其基本原则的原始代码为:一般的单循环,一个周期履行一次乘累加(MAC)指令,优化后进行了4次循环展开。在优化后的代码中,4个MAC被一起运用,并且在作乘累加时,提取下次运算的数据,消除了流水线等候,充沛运用了硬件资源,进步了功率。除了循环展开,在某些情况下进行循环兼并也可进步功率。首要原因是每个循环体均需要有操控指令,削减循环的个数自然会削减操控指令的条数。留意两个兼并的循环必须有相同的循环数。
关于在代码里屡次用到的函数,应考虑用调用指令,这样能够大大削减代码的体积;而关于只调用少次的函数,则宜嵌入主函数中,由于它不仅能够削减传参过程中的指令,并且能够削减调用函数的压栈出栈操作。当然,关于一些大而杂乱的函数,尽管它只被调用1次,但由于寄存器的数目有限,假如考虑直接嵌入主函数,或许要频频地做push和pop操作,反而因小失大,这时就应该用调用指令。
假如有些处理比较杂乱,在整个解码过程中运算量大且耗时长,有必要规划相关硬件协处理器,经过汇编指令直接操作协处理器,既能够进步功率削减运算量也有利于操控功耗,但成本会添加。这种处理办法在实时影响显着的模块特别要害和有用。例如在MP3的解码中,经过添加矩阵乘法器以进步子带归纳滤波的处理速度,获得显着作用:可削减运算时刻91%。这种软硬件协同的规划手法在语音解码器中多处用到。
在算法级中还触及其他方面的低功耗规划,如削减存储器的存取次数,缩短片选信号的宽度等方面的考虑,本规划也做了相应的处理。总的说来,算法级的优化规划在下降体系功耗方面潜力大,对下降整个语音解码器的功耗具有重要意义。