本文列举了多核嵌入式系统存在的一些主要局限,并对解决这些局限的可行方案进行了探讨。将以一些嵌入式系统为例,指出利用现有架构改进系统节能效果的机遇。多核处理器与新兴的嵌入式平台的结合能够满足现代嵌入式应用所需的高计算能力。但是,此类嵌入式应用需要进行高频切换,这将导致功耗较大、芯片温度过高,以及电源接地噪声。开发人员可以通过本文找出改进现代嵌入式系统节能效果的机会,并了解实现电源效率最大化的可行方案。
多核处理器的自主节能
本文以甲骨文(Oracle)/SunMicrosystem公司的UltraSPARC T1处理器为例展开论述。选择UltraSPARC T1的原因是,其设计源代码、仿真工具及设计验证套件均为开源,而且可以从Oracle公司网站上下载。本文将利用此案例讨论从哪方面以及通过何种方式实现节能。
图1显示了与处理器每个内核相关的陷阱逻辑单元。陷阱实现了软件从低级到高级特权模式(例如从用户模式到管理或监督模式)的控制矢量传递。就UltraSPARC T1处理器而言,Tcc指令以及因指令引起的异常、复位、异步错误或中断请求均会导致陷阱的发生。
图1:陷阱逻辑单元
通常,陷阱会导致SPARC流水线被冲刷(Flush)。处理器状态将被存储在陷阱寄存器堆栈中,而陷阱处理程序代码则将被执行。控制的实际传递是通过含有每个陷阱处理程序前八个指令的陷阱表来实现的。用于将陷阱传递到特权模式中的表格的虚拟基址在陷阱基址(TBA)寄存器中被指定。表格中的位移则取决于陷阱的类型和当前的陷阱级别。当遇到DONE(完成)或RETRY(重试)指令时,陷阱处理程序代码执行完毕。陷阱可能与SPARC内核流水线同步或异步。图2显示了与SPARC内核其他硬件模块相关的TLU中的陷阱控制和数据流。从IFU、EXU、LSU及TLU传入的陷阱的优先级最先被解析,解析的陷阱类型被确定。根据陷阱类型,以及在队列中没有其他更高优先级的中断或异步陷阱待处理的情况下,系统将向LSU发送冲刷信号,以提交之前未完成的所有命令。此外,陷阱类型也决定了什么样的处理器状态寄存器需要被存储到陷阱寄存器堆栈中。之后,将选择陷阱基址并将其发往流水线做进一步执行。
图2:芯片框图
图2显示了多核嵌入式处理器的芯片布局。该处理器有可变数量的内核、L2缓存体(bank)、内核外浮点单元(FPU)及输入输出逻辑,而且它们通过芯片上的网络互连。在CASPER仿真环境中,设计师可以对各种架构参数进行修改。
节能机遇
对于上述多核嵌入式处理器,已确定了以下内核级和芯片级节能候选元素(PSC):
1.寄存器文件,即线程专用单元。每个线程都有一个160双字(64位)的寄存器文件,而且当线程的某个任务被阻塞或空转时可以节省大量功耗。
2.数据缓存未命中时,用以排列数据的加载未命中队列(LMQ)。线程之间可以共享加载未命中队列,但通过这种方法节省的功耗较少。
3.分支预测器。分支历史表可以是线程专用的,因此可以节省大量功耗。
4.当内核中所有线程的所有任务发生阻塞或空闲时,或没有任务被调度到内核中的任何线程时,整个内核可以节省大量功耗。
5.内核中用于硬件和软件中断的陷阱单元。研究结果显示,在UltraSPARC T1处理器中,用于典型SPECJBB网络处理应用的陷阱指令在所有指令中所占的百分比还不到1%.这表明,陷阱单元是非常好的潜在节能元素。请注意,虽然在大部分时间内其余的陷阱逻辑可能处在节能模式下,接收陷阱的输入接收队列需一直保持在活跃状态,但队列的功耗可以忽略不计。
6.在缓存体和输入输出缓冲器之间控制数据流的用于L2缓存的DMA控制器。
7.内核和L2缓存体之间的命令和数据队列。
8.当需要访问片外缓存或主存储器时,只有在片上L2缓存有缓存未命中时才会被激活的缓存未命中路径逻辑。 |