片上网络(NoC) 是片上系统(SoC) 发展的新阶段, 在国际上的研究起步不久。NoC 概念在2000 年第一次被提出, 经过10 年的快速发展, 技术已经很成熟。过去, 集成电路的设计者主要关注延时、集成度、成本和可靠性, 最后才考虑功耗。但随着单个芯片上集成的晶体管数量超过10 亿数量级, 能量消耗已经逐渐成为芯片设计的首要限制因素。集成电路的设计重点也从芯片的功能需求转变为功耗需求。NoC作为未来芯片设计的发展方向, 研究其功耗问题意义重大。从建立功耗模型出发, 在集成电路不同的设计层次、片上网络通讯功耗以及NoC 映射问题等方面来讨论NoC 的低功耗设计, 综合了现有功耗解决的最新方案, 对NoC 的功耗研究做了一个比较全面的归类分析。
1 功耗模型
1. 1 CMOS逻辑电路的功耗模型
集成电路的功耗主要由动态功耗、短路功耗、静态功耗和漏电流功耗4 个方面组成 。
( 1) 动态功耗是电路中的节点电容充放电行为产生的, 可以由以下表达式表述:
式中: Vdd为电源电压; Ci 为被充放电的节点电容; i为节点活性因子( 表示节点电容充放电的平均次数与开关频率的比值) ; f 为开关频率。
( 2) 短路功耗是在一定条件下电源到地产生的短路电流形成的, 其表达式为:
式中: k 由工艺和电压决定; W 为晶体管的宽度; τ为输入信号的上升/ 下降时间; f 为开关频率。
( 3) 静态功耗是电路在稳定时所形成的功耗。
( 4) 漏电流功耗是指由亚阀值电流和反向偏压电流造成的功耗。
以静态CMOS 电路为主的集成电路中, 动态功耗是整个电路功耗的主要组成部分, 其次为短路功耗, 而静态功耗和漏电流功耗在大多数情况下可以忽略不计。
分析动态功耗的构成公式可以得出降低电源电压、减小电路节点电容和节点开关活性等方法, 从而降低集成电路的功耗。
集成电路的动态功耗与电源电压的平方成正比关系, 因此, 降低电源电压可以大幅度减少功耗。但一般电源电压Vdd应不小于阀值电压V t 的2~ 3 倍,如果电源电压小到接近阀值电压, 电路的延迟会明显加大, 因此, 为了保证电路的性能, 可以采用适当低的阀值电压V t 。但V t 也不能无限制的降低, 必须保持一定的噪声裕度, 而且当V t 下降时, 漏电流造成的功耗也会相应增加。
从另一方面考虑动态功耗是电路中节点电容的充放电行为产生的, 节点充放电的频率是一个重要的参数, 而节点活性因子正是反映节点充放电的频率的参数, 电路的有效电容是节点活性因子与节点电容的乘积。避免无用的充放电行为, 采用各种低活性的电路结构可以降低功耗。
1. 2 片上网络通讯功耗模型
Or io n 提出的功耗模型( Pow erModel) 是首次提出的运用在网络中的功耗模型, 如图1 所示。片上网络( NoC) 将网络通信的原理引入到片上系统的设计中, 适用Pow er Model 功耗模型。片上网络通讯功耗是指片上网络的任意资源节点间的数据通讯所产生的功耗, 在Pow er Model 功耗模型中传输一个数据片( f lit ) 的功耗用Eflit 表示。
图1 功耗模型
式中: Ebuf 表示缓冲器的功耗; E ar b表示仲裁的功耗;E xb表示交叉开关( Crossbar) 的功耗; Ecn = Ebuf+ Earb+ Exb表示通讯节点内部的功耗; Elnk 表示通道(link)的功耗。假设H 表示数据片经过的网络跳数, 数据片( f lit) 从资源节点Ri 传输到资源节点R j 的功耗:
当H = D 时, 此时的功耗为最低, 即:
这里的D 是源节点到目的节点采用最短路由算法所得的曼哈顿距离( Manhattan Distance) 。
2 降低功耗的办法
2. 1 集成电路不同的设计层次
文献介绍了工艺级低功耗设计和优化技术这一设计层次的低功耗方法。版图级低功耗设计和优化技术基于Elmore 模型, 优化电路的主要功耗是互连线的功耗。布局布线技术从只考虑面积和延时的因素, 发展到通过加入来自设计前端的信号活动信息以实现对功耗的优化。门级低功耗设计和优化技术包括时序调整、公因子提取、工艺映射、门尺寸优化和路径平衡等方法。文献介绍的时序调整( Ret iming) 方法通过插入新的寄存器或重新安排寄存器的位置, 达到减少门的翻转频率或减少通过流水线的最长段延迟, 以此减少功耗。文献[ 7] 利用公因子提取方法实现了多级电路的低功耗。工艺映射方法把翻转率高的节点隐藏到负载电容小的门单元的内部, 从而降低功耗。门尺寸优化方法是对非关键路径的门缩小尺寸从而减小面积和功耗。路径平衡方法通过避免多余的伪跳变从而节省功耗。RTL 结构级低功耗设计及优化技术这一层次的低功耗方法包括逻辑综合和优化技术及并行设计( Parallelism) 和流水线设计( Pipeline) 技术。并行设计和流水线设计是通过增大面积来提升性能和减低功耗, 采用并行设计后, 电路面积每增长n 倍, 电容增大n 倍, 对应的频率和电压下降n 倍, 因为功耗与电压的平方成正比,所以功耗可以降低n2 倍。系统级低功耗设计和优化技术这一层次的低功耗技术包括软硬件划分、存储器优化 、指令级优化、动态功耗管理 和总线低功耗设计等。
2. 2 片上网络通讯方面
2. 2. 1 内部缓冲器功耗
发生竞争时, 需要内部缓存临时储存低优先级的分组。在开关结构电路中, 缓存通常用共享的静态RAM 或者动态RAM 储存器实现。存储器访问消耗的能量由输入分组之间的竞争决定。目的地竞争是独立于应用的, 不管是用何种开关结构体系。互连线竞争依赖于开关结构体系, 不同的体系拓扑会产生不同的竞争, 因此, 可以通过优化拓扑结构设计改善储存器访问的功耗。
2. 2. 2 通道的功耗
假设有一个基于RailtoRail 结构的拨动开关,通道上的位能量Eln k可以通过以下公式计算:
其中: Cw ire 为通道的线电容, Cinput 为连接到互连线上的输入门的总电容。Cw = Cwire+ Cinput 为位传播的总负载电容。
互连线电容的充放电行为决定了通道互连线的功耗。因此, 两方面的技术可以采用, 一是尽可能减小开关活性, 二是采用基于汉明距离的低功耗编码技术。
2. 2. 3 开关功耗
不同的开关结构对网络性能( 如延迟、吞吐量、功耗等) 的影响不同。下面分析交换结构中功耗问题和对具有不同数目出口和入口的交换结构体系的功耗估计方法。
2. 2. 3. 1 Crossbar 开关结构
Cr ossbar 拓扑对输入输出之间的连接使用空间划分多路选择器。如图2 所示, 每个输入输出连接有自己的专用数据路径, 因此, Crossbar 结构没有互连竞争。随着输入和输出端口数的增加, 开关功耗将呈现线性增加, 对端口数多的开关结构, 功耗将非常高。
图2 Cr ossbar 开关结构图
2. 2. 3. 2 全连接网络
与Cro ssbar 网络相似, 如图3 所示的全连接开关网络中, 每个源与目的之间的连接有自己的专用数据路径, 因此, 全连接网络中也没有互连竞争, 在它们的功耗模型中没有使用内部缓冲器。每个全连接开关网络的位能量消耗在互连线和多路选择器上, 多路选择器的复杂度伴随着输入端数量的增加而更为复杂, 其功耗也随之增大。
图3 全连接网络结构图
2. 2. 3. 3 Bany an 网络
n 维Bany an 网络有N = 2n个输入和N = 2n个输出, 在n 个阶段开关的总数是1/ 2 N×log2 N , 每个阶段用i 表示( 0≤i≤n) 。Banyan 网络中同一互连可能被不同的数据路径共享, 从而存在互连竞争问题, 在每个内部节点开关中需要设置一个缓冲器。
Bany an 网络中的二进制开关比Cro ssbar 中的交叉节点开关更复杂, 当位数据从输入端口交换到输出端口, 二进制开关消耗的能量更多。
图4 Bany an 网络结构图
2. 2. 3. 4 BatcherBanyan 网络
该结构由Batcher 排序网络和Bany an 网络组合构成, 其中, 竞争问题由Batcher 排序网络解决, 后面跟着Banyan 网络。在排序网络中, 每个输入输出竞争都有自己的专用路径, 从而不存在互连竞争问题。
尽管BatcherBany an 网络解决了互连竞争问题, 但它是以增加输入和输出之间阶段数为代价的, 它共有1/ 2( log2 N) ( log2 N + 1) 阶段, 这将增加位能量在开关和互连上的消耗。
图5 BatcherBanyan 开关结构
互连竞争在内部缓冲器中引起大量的能量消耗,随着吞吐量的增加, 缓冲器中的功耗将急剧增加。对端口数少的开关结构, 内部节点开关功耗是主要的,对于端口数非常大的开关结构, 互连线功耗将占支配地位。
不同的开关交换结构体系其各自的功耗消耗主体不同, 可以根据不同的应用要求, 将芯片从整体上分成几大部分, 各部分采用不同的拓扑结构, 以期实现芯片性能、面积和功耗的有机统一。
2. 3 NoC 映射问题
NoC 映射是在给定IP 核库和任务图的基础上,以某些设计约束( 如延迟和功耗等) 为限制条件, 将每个任务分配到合适的IP 核上以及安排各个IP 核上任务的执行顺序, 然后再决定每个IP 核在NoC 拓扑结构中的位置。在映射时, 搜索空间随着网络尺寸的增长呈现阶乘递增, 对于一个包含N 个IP 核的NoC, 映射有N ! 种可能结果, 因此, 映射问题是一个NPcomplete 问题。
功耗优先的映射问题就是在给定应用特征图和NoC 拓扑结构图的基础上, 将应用特征图中的每个处理单元分配到NoC 的资源节点上, 并且使整个系统的通讯功耗最小。以蚁群算法为典型的生物仿生算法在解决NoC 映射问题方面应用比较广泛。
3 结束语
NoC 是未来芯片发展的方向, 而功耗问题是No c 设计的一个关键问题。本研究从不同的功耗模型出发, 从集成电路不同的设计层次、片上网络通讯功方面以及NoC 映射问题来讨论NoC 的低功耗设计, 综合现有功耗解决的最新方案, 对NoC 的功耗研究做了一个比较全面的归类分析。随着N oC 设计技术不断发展, 功耗问题必将是一个重要的研究课题。