虽然对系统级芯片开发人员来说电源管理的重要性越来越高,但有个关键区域经常被忽视,那就是互连。虽然大多数电源管理工作集中于SoC的运算部分,但采用更加模块化互连的设计师可以减小裸片尺寸、减轻布线拥塞,这就可以将总的芯片功耗最多降低达0.7mw。如此显著的功耗下降将成为下一代移动和功耗敏感性数据中心应用系统中的游戏规则改变者。
模块化概念有别于其它类型的互连,因为它由分布式架构的开关、缓冲器、防 火 墙、管线结构以及时钟和电源域交叉组成。通过在芯片上的所有独立单元之间使用通用传输协议,模块化方法可以帮助设计师实现单元级时钟选通,从而消除没有事务处理区域的时钟树开关功耗。
模块化片上网络级芯片(NoC)技术还能通过逻辑局部化、尽量缩短长的走线并保持低电容来降低功耗。想要进一步增强SoC设计的电源管理能力的设计师可以采取一定的措施减小芯片的面积和泄漏功耗,方法是使用NoC传输协议的简易性实现数据路径的串行化,进而最大程度地减少逻辑用量。
低功耗
目前常用的顶层互连结构一般都要依赖于较长的走线,而这些走线会消耗与它们在芯片上占用的逻辑区域面积不成比例的功耗。时钟树通常是互连内最大的功耗源,而时钟选通提供了降低功耗的最大潜力。另外,漏电功耗是第二大功耗源,减小这种结构所需的逻辑面积可以最大限度地减小漏电功耗。
采用模块化NoC互连的设计师可以从本文中了解到时钟树管理的局部化、数据路径的串行化和精确定位的管线结构所带来的功耗和面积方面的好处。
总线和交叉矩阵:互连历史简介
了解互连结构的历史就能知道模块化NoC设计的由来了,它能解决可扩展性问题。
SoC是一种含CPU和外设的芯片,开发人员提出的接口协议标准可以将各单元链接在一起。借助新增总线主器件的推出,到外设的连接可以得到共享。控制对总线的访问要求一个中央仲裁器,比如在板级协议中使用的仲裁器。
图1:带仲裁器的共享型总线展示了访问控制为何要使用中央仲裁器。
随着时间的推移,SoC设计增加了越来越多的IP内核。由于这些设计变得越来越复杂,他们要求更多的总线接口。当对接口进行密集操作时,总线主器件可能会浪费很多时间等待对总线的访问权,即使在不同的主器件请求操作不同的从器件时,也是如此。
为了解决等待延时问题,交叉矩阵开关应运而生,它们支持在片上互连内不同的主和从器件之间开展并行访问。下面这个逻辑框图显示了4个主器件同时对4个不同从器件进行事务操作。
图2:SoC设计中的交叉矩阵开关逻辑视图,展示了每个从器件端复用器的关系。
从物理上看,交叉矩阵开关是用每个从器件端的复用器(mux)实现的。每个复用器以分布式仲裁机制与仲裁器相耦合。
图3:4个主器件、6个从器件的交叉矩阵实现表明,在SoC周围采用完整数据路径的尺寸路由是不切实际的。
这种方法最多只能扩展到几个主和从器件接口。然而,除了特定数量外,在SoC周围路由完整数据路径的尺寸对布局布线来说也变得不切实际。
图4:随着功能清单的增长和IP模块的增加,SoC底层规划变得更加复杂。
对于具有很多个主/从接口的更加复杂的芯片来说,有必要在多个物理区域设计独立的互连,具体取决于IP内核分组的布局情况。不同区域之间的桥接提供了主器件和从器件之间必要的互连。
图5:4个主器件与6个从器件的互连,用了一个桥承载逻辑延时开销。
桥会为数据处理的增加延时周期,因为它们承载了逻辑延时部分。
交叉矩阵互连可以解决并行访问带来的系统架构问题,但在有大量主和从IP模块的情况下,又会造成芯片中的物理实现问题。
模块化设计和NoC
为了减小延时,地址可以在主接口侧解码,并转换为简单的路由ID号。片上的仲裁器-复用器和路由器-解复用器网络可以使用简单的路由ID,并通过链路芯片周围的简单伪开关复用器扩展路由分布。这样做还能实现更好的互连逻辑布局。对于芯片中越来越多的走线来说,布局越来越重要,因为它会使路由更加容易。
NoC互连可以同时解决这两个问题,因此在手机应用处理器、数字电视和机顶盒控制器等先进设计中得到了广泛使用。
图6:利用一个NoC实现的4个主器件与6个从器件的互连。
设计师一直被要求在SoC中集成更多的功能,因此对互连技术的需求与日俱增。为了跟上形势,对以下功能的需求非常迫切:
●到不同事务处理协议的接口
●开关(解复用-路由器和仲裁器-复用器)
●QoS(优先级)
●缓冲器
●数据路径串行化
●统计性探测
●调试跟踪
●防 火 墙
●寄存器片(管线结构)
●时钟域交叉
●电压域
●电源域
这对互连设计提出了新的挑战。设计师希望IP可以重复使用并且可以重复配置。而在交叉矩阵逻辑中支持不断增加的功能要求将会提高复杂性,减慢关键路径速度。另外,许多走线即使在少量数据操作时也会被触发,因此消耗了与之不成比例的功耗。然而,可复用的模块化互连设计在简便性、速度、面积和功效方面有很大的优势,可克服传统总线和交叉矩阵技术的复杂性。
事务、传输和物理层
NoC技术采用了一种三层协议,其中事务层作为最高层。该技术使用AMBA、PIF、OCP或其它工业标准协议执行所要求的读写操作,同时也是对于通过互连连接的IP模块的设计师来说,也是可见的接口。
NoC中的传输层协议由网络接口单元(NIU)进行管理。它为每个事务创建一个或多个数据包。所有数据包都一个包头。读数据包和写数据包都在包头后包含数据载荷。包头将地址、事务参数和边带信号作为域进行解码。NIU控制显著的事务和带标签的序列。包头格式是最小的,并针对每个NoC作了不同程度的优化。包头在互连内的每个伪开关处将来自发起者的请求路由到目标,并将来自目标的响应路由到发起者。请求和响应路径是独立的,因此可以消除逻辑和架构方面的依赖性,从而避免死锁。
图7:将地址/控制信号与事务接口和包传输接口间的数据复用起来可以简化互连设计。
模块化设计支持使用非常简单的协议在物理层上传输传送包。这种协议由以下信号组成:
●Data [N 位] (由发送者驱动)
●Valid [1 位] (由发送者驱动)
● Ready [1 位] (由接收者驱动)
“Valid”和“Ready”实现流程控制,支持后压式反馈。这种简单的握手协议存在于NoC的所有单元之间。简单接口标准化后允许所有单元可交换地连接在一起,就像儿童的积木一样。
时钟树选通
利用众所周知的芯片设计方法,可以在不要求触发的周期内选通每个触发器端的时钟。这种方法适用于采用所有互连技术的触发器,不过不能解决时钟树功耗问题。
时钟树是个单一信号,因此比数据路径要窄得多。然而,为了到达所有物理上分布的触发器,时钟树比每个数据路径位有多得多的基本特征。根据定义,时钟在每个时钟周期内会触发两次,因此时钟树的功耗一般要显著大于数据路径。
在交叉矩阵中,每个时钟网络即使在数据不流动时也会触发。虽然理论上在交叉矩阵中的任何地方都没有数据传送时仍能在周期中实现到所有交叉矩阵逻辑的时钟选通,但有些不切实际。它要求对多个远端信号进行大的时钟选通复用,以产生激活信号并回送至多个远端触发器。
因此,用组合逻辑的最简模块搭建互连可以实现单元级时钟选通功能,并且其颗粒远比单片交叉矩阵中的精细得多。
图8:通过模块化方法搭建互连就可以使用组合逻辑的单元级时钟选通功能。
只有在有效的握手信号有效时单元内和单元间的寄存器才会触发,用于指示数据业务的存在。选通逻辑对每个单元来说是局部的,因此路径更短,并且最大限度地减少了产生激活信号所需的复用威廉希尔官方网站
。时钟选通是分布式的,模块化互连的每个模块在空闲时钟周期时关闭,而不管系统余下部分的状态。这样可以实现接近理想的最小开关功耗。
模块化的其它好处
除了时钟选通外,其它好处包括改进了混合式阈值电压(Vt)综合的使用、减少了漏电功耗、改善了逻辑简易性,并实现了局部化。
在小模块之间的任何地方插入管线结构以满足最小延时时序要求提高了综合工具收敛时序的能力。由于有更大的余量,综合有效减少了从默认高Vt单元到更快的低Vt单元的路径数量。这样,模块化设计单元之间的管线结构就能减少漏电功耗。另外,更容易的时序收敛也能改善EDA工具的使用,有助于实现最小面积方面的最优化(更小的裸片面积可减少漏电功耗)。
64位AXI事务接口协议要求至少272条走线。对于模块化方法来说,一个64位数据包接口要求148条线(每个请求响应网络中有64位数据+8字节激活+ready+valid=74)。因此,将事务打包并在发起者和目标传输时可以将芯片底层规划内的走线数量减少1.8倍(272/148=1.8)。
因为这种方法针对单元之间的接口使用的是简单物理层协议,所以很容易改变包数据的串行化处理。全部要求就是简单的复用器和寄存器,以便减小数据路径宽度。
改变数据路径的串行化处理方式,使之不超过满足芯片不同部分的带宽要求所需的宽度,可以减少芯片所有部分的互连逻辑面积,而且这些芯片都要求小于最大带宽。一般来说,大多数芯片中的绝大部分顶层互连不要求最大带宽。
局部化
将接口之间的复用器等单元实现局部化处理后,单元之间的走线平均长度将变短。这意味着走线电容使得电流的消耗变得更小。这样还能简化后端版图工艺,因为它能减少远距离放置的逻辑之间对连接的依赖性。
机顶盒(STB)SoC上的结果
支持1080p120帧的中端机顶盒SoC就使用了模块化NoC互连,它展示了模块化方法的优势。这种模型使用了11个主器件和6个从NIU的互连,消耗的逻辑面积是183k个门。
我们分析了三种时钟选通式开关活动场景。首先是最差的视频处理场景,其中被设为120Hz显示输出的视频解码器和CPU是系统的主要负载,它们消耗了几乎所有可用的DDR内存带宽。
第二种场景则呈现了普通案例视频解码器的复杂性。第三种场景没有视频解码,只是用网络浏览方式,可实现每秒30帧的中等显示刷新率。
交叉矩阵在DDR活动期间的每个周期都必须要激活,因此在第一种情况下模块化设计通过触发DDR活动可以降低2.3倍的功耗,第二种情况是2.5倍,第三种情况是3.4倍。
在待机场景,模块化NoC互连展示了比交叉矩阵更强的触发节省效果。另外,更大的芯片有更多的主NIU逻辑要访问同样受限的共享资源。这些芯片需要用更大比例的时间选通更多数量的触发器。因此对模块化NoC设计来说触发节省效果随着芯片尺寸的增加而增强。
减少时钟树功耗
模块化NoC可以极大地降低高集成度芯片中顶层互连结构的功耗。通过局部化时钟选通功能,时钟树只在数据传送的路线上并且只在传送周期内有功耗。这样可以显著降低时钟树的功耗。另外,局部的串行化处理从最大程度地减少了支持每条链路的带宽要求所需的数据路径逻辑。这又进一步减小了漏电面积。另外,模块化支持更加精细的管线颗粒,可以更好地收敛时序且不浪费余量。这又进一步允许综合工具使用更小、更加高效的门。
-
SoC设计
+关注
关注
1文章
148浏览量
18774 -
NoC
+关注
关注
0文章
38浏览量
11736
发布评论请先 登录
相关推荐
评论