关于片上网络NoC的读书报告Word下载.docx
- 文档编号:20667974
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:18
- 大小:301.19KB
关于片上网络NoC的读书报告Word下载.docx
《关于片上网络NoC的读书报告Word下载.docx》由会员分享,可在线阅读,更多相关《关于片上网络NoC的读书报告Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
2.2NoC的拓扑结构
NOC的拓扑结构,在很大程度上借鉴了宏观计算机网络,即并行计算机互连网络结构。
但是由于NOC由于其自身的特殊性,如有大量可用的通信电线资源可用,核间可以进行大量通信,受到片上面积制约,需要规则的网络布局,要有可扩展性等,因此NoC对拓扑结构有着一定的自身特殊要求。
NoC的拓扑结构定义了网络内节点与链路的布局和互连方式,它对于网络的时延、吞吐率、面积、容错、功耗等性能有至关重要的影响,进一步还影响了网络中的路由策略、映射算法等。
NoC的拓扑结构包括了规则拓扑和非规则拓扑,前者具有规则的网络参数,具有可复用性,降低了设计时间和成本,适用于通用的对称、同构系统。
规则拓扑主要又可分为两大类:
直接网络,即网络内任一交换机节点,都与IP核直接相连;
间接网络,网络内一部分交换机节点只与其它交换机节点相连。
而非规则拓扑根据特定的应用需求定制,可以面向不同的领域。
下面介绍几种拓扑结构。
2.2.1直接网络拓扑
在直接网络中,每个处理器单元像瓦片一样被旋转和连接。
瓦片表示处理单元或者存储单元。
虽然瓦片可能有不同的功能,但是它们有着同样物理尺寸而且有规则的平面布置图。
包交换技术被应用在瓦片之间的通信。
每个瓦片能独立地执行数据包的路由和仲裁。
图2.2瓦片结构
网络拓扑和花托拓扑(meshandtorusnetwork)
最简单的一种结构,就是标准的2D风格,如图2所示。
这种网络呈现了每一个非外围的路由节点都与它四个最临近的节点双向连结,同时也与它相关的PE(处理器单元)的双向连接。
外围节点至少有一个边没有连接。
2D花托是2D风格的不同形式。
这种情况下,每个节点与其他四个节点相连,包括外围节点,这意味着一边的节点能够直接把数据包传到另一边。
继续开发额外的连通性,2D花托可以演变成一种类似于特殊立方体的拓扑结构,这种网络机构为旁路花托。
它描述了一个更高的网络,因为每个节点不仅和它最邻近的节点相连,也和越过相邻节点的下一个节点相连,也和越过相邻节点的下一个节点相连。
图2.3网络和花托结构
立体环形拓扑结构(CCC)
立体环形拓扑连接(CCC)拓扑网络作为一个直角拓扑结构的折衷而被提出,为了减少每个节点的度数。
CCC网络有一个层次结构:
立方体每个角落的三个节点也构成了本地环。
图2.4:
立体环形拓扑结构
2.2.2间接网络拓扑结构
在间接网络拓扑中,处理器节点与交换节点分开,网络交换由专门的Crossbar执行,每个Crossbar通过网络接口和各个交换节点连接进行通信。
间接网络可以使得节点设计和网络设计分开进行,提高设计效率。
蝶形网络,十字开关交换网络,Spin网络等等。
图2.5二维间接网络
蝶形拓扑结构和Spin网络
在蝶形结构之内,每条源,目的路由使用一个专门的数据路径,在任何的两个处理器节点之间的延迟是一样的,而且延迟由开关网上的中间阶段数目所决定的。
而Spin网络利用一个fat-tree拓扑结构,在该结构每个处理器位于fat-tree的一个树叶节点上。
图2.6蝶形拓扑结构和Spin网络
2.2.3树型拓扑结构
如名字所未,树型拓扑是以树的形式进行网络结点互联的。
每个结点(除根结点)有一个祖先和k个子孙。
如果一棵树的每个节点(除了叶子)都恰有k个子孙,我们将其称为k叉树(k-arytree)。
树型网络有着较小的直径,,N为该网络的结点数目。
但是它们的连通性很差,任意两点之间的路径数目只有1。
因此,网络的容错性较错。
为了提高容错性,有人提出了环型树(ringedtrees)。
如图所示,环型树将树各个状态的节点以环的形式相连。
图2.7树型拓扑结构
树型结构的另一个缺点是较小的对分度,越靠近根节点则路径使用得越多。
因为靠近根结点的路径有着较高的负荷,也因此成为一个瓶颈。
为了克服这个问题,有人提出了胖树(fat-trees)的概念。
在胖树中,越靠近根节点的路径有着更高的网络带宽。
如图所示,连接叶结点的通道的带宽为b,上一层通道带宽为2b,以此类推。
三、网络通信协议
3.1分层模式
通信协议决定了资源如何被连接到网络中去,并且还决定了资源的通信方式。
每一个资源都有唯一的地址,可以通过开关连接到网络中,它们通过资源网络接口与开关进行通信。
NoC的通信协议是参考OSI七层协议模型建立的。
NoC中定义了四种协议层,即物理层、数据链路层、网络层和传输层。
[6][8]
a.物理层
物理层决定了资源与开关互连的连接线的数目和长度,它仅将一个数据字从一个开关的输出端移动到另一个开关的输入端,它处于待测试层,不提供测试服务。
剩余的三层属于提供测试服务层,在NoC结构中用来执行NoC测试和系统测试的主要测试服务。
b.数据链路层
数据链路层可以跨越物理层提供可靠的数据传送。
它提供在源端将数据打包和在接收端将数据解包的功能。
同时它还必须支持基于数据包的错误检测和修复功能。
由于两个互连的单元或许是异步工作的,故数据链路层除了要考虑错误检测和修复外,还要考虑硬件同步的问题。
c.网络层
网络层提供了利用开关网络将数据包从一个资源传到另一个资源的服务。
它是用来缓冲数据包并负责数据包的交换和路由。
网络层需要管理资源地址并将资源地址映射到地址识别器上。
当系统进行数据传输时,有三种路由方式可供选择,即“存储转发”(StoreandForward)、虫洞(Wormhole)、“偏置路由”(deflectionrouting)。
存储转发路由方式,即当一个转发器接收完整个数据包后,再将该数据包发送至另一个转发器。
虽然该方式保证传递过程中数据完整,但完成一跳的时延过长,且每个转发器需要有足够的缓存来存放一个数据包,不太适合NOC的需求。
d.传输层
传输层负责建立点到点的连接,并利用底层来传递消息。
它的功能包括在源端对信息进行打包,而在目的端对信息进行解包或组合。
在虚拟电路中,传输层用来解决连接的建立问题,通过虚拟的点到点连接来处理数据的传递。
同时它还起通信控制的作用,如检测网络负载,以避免网络出现过载现象。
3.2并发在线测试协议(COLT)
对片上复杂系统的并发在线测试是在恶劣的噪声环境下设计的,它提供了系统健康监控的理想解决方案。
一个在线SoC测试的重要部件是设计和使用一种内存访问机制。
CNI提供了IP核连接NoC的接口,除去允许IP核与NoC进行通信之外,它也提供了其它的服务,端到端可依赖的通信,动态电源管理,IP核测试支持,以及通信安排等。
3.2.1TI-IP的体系结构
TI-IP(TestInfrastructureIP)提供了一种在线功能性测试的方法,它的关键部分有
(1)输入/输出队列
(2)内存测试和(3)TI-IP引擎。
一个完整的NoC由TI-IP最大化利用。
输出/输出队列处理在TI-IP引擎和CNI之间进入和出来的请求以及响应。
当利用SCAN测试的时候,测试内在保存了测试向量,以用来测试IP核。
TI-IP担供了以下功能:
通过CNI进行测试请求和应用;
在每个网络单元的IP核监控,以决定测试的可行性。
对在线测试而言,CNI负责向TI-IP发出周期性的测试请求。
CNI同时也处理任何对COLT通信协议必要的TI-IP请求和响应。
图8描述了COLT各步骤的联系。
测试请求(TestRequest):
这个阶段,CNI为与它连接的IP核发布测试请求
系统快照确定(SystemSnapshotDetermination):
为了确定测试的可行性,TI-IP通过向CNI发出一个请求取得一个系统快照。
CNI从IP监控收集可利用的信息,并将其提供给TI-IP。
测试接受(TestAcceptance):
在TA阶段,一个为测试生成的路由解决方案由测试内存向目标IP核发布。
以下的公式描述了一个测试请求是否能在接受的范围之内。
公式中,U是SoC上部件的利用指数。
一旦接受,测试将加入TI-IP的输出队列之中。
引文[X]中给出了更详细的描述.
图3.1TI-IPFSM
测试发布(TestDelivey):
在TD阶段,测试向量通过由TA阶段确定的路由发布的NoC之上。
预期的目标是连接到IP核上的发布请求的那个CNI。
测试应用(TestApplication):
在这个阶段测试向量应用到IP核上。
由CNI接受的测试向量通过测试包装应用。
TI-IP设计不依赖于测试包装类型。
CNI负责与测试包装进行交互。
TI-IP配置:
对于在线测试而言,TI-IP需要一个系统快照表和一个测试配置表。
前者保持了SoC上所有的IP核的信息。
这个表在系统快照确定阶段产生。
测试配置表确定了IP核测试类型(BIST/SCAN),测试量和测试利用性。
数据在SoC初始化时载入。
3.2.2多TI-IP增强
为了在大型SoC上更有效率地管理测试功率,单一TI-IP设计将会显得不足。
从测试内存向IP核发送测试向量所消耗的能量与他们和测试数据量之间的距离成正比例。
图9描述了了能量消耗与测试量以及跳跃式距离的关系。
这为多TI-IP技术的公式化描述提供了足够的动机来测试大型SoC。
在这种情形中,多TI-IP通过在测试向量发布中减小平均跳跃距离来提供了有效能源测试。
但是TI-IP的额外描述使得它很难确在没有TI-IP协作操作的情况下确保能量限制测试。
我们可以通过配置TI-IP来实现一个令牌环的操作方法
图3.2发布测试向量的电源消耗邻近效应
3.2.3通信协议
3.2.3.1协议描述
阶段1:
测试请求(TestRequest)
这个阶段包括TI-IP和IP核上的CNI两种测试请求。
在测试请求事件发生时,CNI发出一个测试请求命令给TI-IP。
在发布一个测试回应前,TI-IP运行系统快照收集协议阶段,然后实现前面讨论的测试接受操作。
测试接受阶段结论通过测试请求回应命令发回给CNI。
图3.3(a)描述了这个阶段。
阶段2:
系统快照收集(SystemSnapshotCollection)
这个阶段包括了NoC上的TI-IP以及所有网络单元上的CNI。
TI-IP给所有的CNI发布一个系统快照请求命令。
CNI用系统快照响应命令回应给NoC上的所有TI-IP。
图3.3(b)描述了协议的这个阶段。
这需要CNI知道SoC上的所有TI-IP。
阶段3:
测试向量发布(TestVectorDelivery)
这个阶段包括TI-IP和IP核上的CNI的测试请求。
当使用SCAN测试时,TI-IP发布测试向量以一种交叉存储的方式来增加CNI。
因为大量的测试向量,需要这种交叉存储方式来避免测试饥饿。
图3.3(c)假设了三个IP核已成功请并发在线测试,并已经进入测试向量发布阶段。
阶段4:
测试管理令牌转移(TestManagementTokenTransfer)
在多TI-IP配置中,为了允许对IP核的并发测试,TI-IP需要一个测试管理令牌。
多
样的TI-IP在一个令牌环中配置,它们周期性地改变测试管理令牌。
图3.3(3)描述了一个3个TI-IP周期性改变令牌的配置。
阶段5:
测试抑制(TestThrottle)
为了说明无效行为的应用及无效预测系统利用信息,TI-IP必须能抑制并发在线测试。
在动态改变请求特征的情形下,这种机制的这个需求占有支配性地位。
周期性的和运行良好的请求将不会产生这个问题。
在这个阶段的参与者有TI-IP,无效行为IP核的CNI以及在测试之下的IP核。
当无效行为被检测到的时候,CNI给TI-IP发出了一个CNI警告命令。
TI-IP然后决定是否有些并发测试需要重新配置。
它能控制两种情形的并发控制重配置。
(a)改变测试向量发布速度和(b)停止测试之下的IP核上的测试请求。
图3.3(d)描述字CNI警告发布和相应的测试抑制命令。
图3.3协议各阶段
3.2.4协议冒险
上述的SoC上的并发在线协议会存在着如下描述的冒险(hazard)。
a)由于请求/测试产生的饥饿
因为请求和测试通信流是在一个普通的通信基础上,大量的请求(测试)数据能导致测试(请求)数据饥饿。
在测试请求阶段,这个冒险将会阻止测试发给TI-IP的测试请求,阻止在线测试。
在系统快照阶段,这个冒险会附上CNI的响应。
在测试向量发布阶段,能阻止测试向量发布给测试包装。
在管理令牌转移阶段,这个冒险能阻止令牌的转移。
b)测试输入队列溢出
测试输入队列溢出冒险能阻止TI-IP接受重要的命令。
这个冒险对各个阶段都会产生影响。
c)TI-IP失败
TI-IP失败能阻止SoC上的并发在线测试。
在单一的TI-IP配置中,TI-IP失败的主要影响是并发在线测试能力的缺失。
在多TI-IP配置中,SoC的可测试性会减小,由于IP核的测试给了失败的TI-IP。
d)测试包装缓存溢出
这个冒险将会导致IP核的测试向量的数据丢失。
这个冒险只在测试向量发布阶段产生影响。
e)CNI失败
这个冒险将会阻止CNI的正确操作,导致与其余NoC上的网络单元的隔离。
3.2.5冒险减轻
a)减轻饥饿
在测试请求阶段,我们可以给请求赋一个优先级;
在系统快照收集阶段,我们可以设置一个时间失效值,一量时间超出,饥饿的CNI就被认为是在忙的;
在测试向量发布阶段,请求和测试的优先级需要相互交换;
在令牌转移阶段可以进行从测试输出队列上的交叉通信;
在最后个阶段,请求和测试的优先级需要相互交换以减轻这种冒险。
b)减轻输入队列缓存溢出冒险
我们可以通过发布一个来自源CNI的重新传输请求来减轻这种冒险。
这项技术需要在源CNI上的额外缓存。
c)减轻TI-IP失败冒险
下面的方法只适合于多TI-IP配置的情况。
在测试请求阶段,当发生了一个TI-IP失败事件时,将通知所有的CNI。
在系统快照收集阶段,想要减轻这种冒险是不可能的。
在测试管理令牌转移阶段,当有两个TI-IP时,要减轻这种冒险显得比较复杂。
需要一个复杂的选择协议来恢复丢失的令牌。
在最后一个阶段,能通过交换IP核的状态来实现减轻这种冒险。
d)减轻测试包装缓存溢出
通过对测试向量发布的合理安排来减轻这种冒险。
由于测试向量在TI-IP源是交叉存取的,在单一循环发送的测试向量块的大小有一个测试包装缓存所规定的上界。
f)减轻CNI失败冒险
这种冒险也是无法减轻,然而一量检测到这种冒险,需要进行登记,以避免无谓的浪费。
四、路由算法
4.1确定路由与自适应路由
确定路由是一种常见的路由,它的路由路径只与起点地址和终点地址有关,给定起点和终点地址,路由路径就被确定了,与当前网络的状态无关。
而在确定路由中,使用得最多的则是维序路由(dimension-orderedrouting),因为它有着非常简单易实现的路由逻辑。
在维序路由中,每个数据包一次只在一个维上路由,当在这个维上到达了恰当的坐标之后,才按由低维到高维的顺序在另外的维上路由。
因为数据包是严格按照单调的维数变化的顺序在通道内路由,所以维序路由也是没有死锁的。
按照在不同拓扑结构的网络中路由,维序路由包括了2D-mesh中的XY路由和在超立方体(HyperCube)中的E-cube路由。
确定路由优点是,路由算法简单,在网络低拥塞环境下能获得较低延迟。
但是由于其不能响应动态的网络状态变化,所以当网络拥塞增加时,性能迅速降低。
而所谓的自适应路由,是指数据包的路由路径不只与起点地址和终点地址有关,还要考虑网络的状态。
也就是说,有同一对起/终点的地址的数据包,在不同的网络状态下,它们的路由路径也可能不同。
自适应路由的优点是采用自适应路由的路径,避免了网络拥塞,可
以得到更高的网络带宽饱和值;
但是它的路由逻辑较复杂,在网络低拥塞的情况下开销较大,而且还存在死锁问题。
在片上网络中,由于路由器结构所限,一般都采用的是比较简单的自适应算法,如带有一定自适应性的维序路由等确定性路由。
[5][6]4.2虫洞交换路由
虫洞路由最初是为了并行计算机簇间通信设计的,因为它网络延时小,并且需要的缓冲也少。
虫洞交换(wormholeswitching)也是源于切入交换机制,在切入交换机制下,缓冲区的容量只能存储一个包的部分信息,而非整个数据包,流量控制以数据片为单位的时候,我们称为缓冲虫洞路由交换。
在虫洞路由中,每个数据包被进一步分段成为切片。
包头切片存储每个开关的路由通道,包身切片将跟随报头存储通道,尾部切片将释放通道的存储。
首先,它相对的使网络延迟对路径长度不那么敏感,其次,当等待报头切片路由到下一个节点时,它不需要在开关存储完整的数据包。
虫洞路由不仅减少了在每个开关处的存储转发延迟,而且需要更和的缓存空间。
一个数据可能在同一个时候战胜多个中间开关。
因为这些优点,虫洞路由是片上多处理器互连网络的理想候选交换技术。
不过这种技术也存在着不足,首先是阻塞问题,当所有的通道都不可用时,数据包的头片被阻塞,由于缓冲容量小,整个数据包的所有数据片都被阻塞在沿途通道的路由缓冲区中,此时被占用的通道就不能被其它数据包使用,当数据包比较长且发送频繁时,整个网络会因阻塞而降低网络性能;
其次就是“死锁”问题。
因为虫洞路由会占用沿途的缓冲,数据包可能在一个循环彼此阻塞。
4.3基于黑总线的虫洞路由
4.3.1黑总线基本概念
黑总线(Black-Bus)是片上网络(NoC)中的一种传输技术,和传统的数据包传送不一样,在黑总线中,数据没有包头和包尾,仅有一个本地标识绑缚在每个原始数据中作为路由信息。
这个本地的标识是在专门的一条线路上传输的,仅仅有一个小的本地标识需要被指定路由标签到达目的地。
同时,中间路由器改变这个标签来解决本地物理通道上的冲突。
在NoC中,黑总线传输减少了在每个中间路由器的包头解析过程,下一跳的方向直接可以根据绑定在数据上的ID号与节点里存储的路由表对应而获得,因而大大提高了传输效率。
[4][9]
图4.1黑总线的体系结构
图4.1说明了简单节点结构的片上多处理器SoC的例子。
每个节点就是一个处理器或者有特定逻辑的序列器,它和可以接受任何拓扑结构的黑总线路由器相连接。
黑总线的总体目标是去除节点复杂网络接口的控制器,能像传统的总线或者专用线路一样发送原始数据。
为了达到这样的目标,所有节点之间,包括路由器和路由器之间,路由器和节点之间的物理通道上都有表示本地地址的ID。
一个由包含本地ID的原始数据的单切片数据包,在物理通道传输。
数据包传送的过程如下:
1)一个节点输出一个包含本地ID的原始数据。
本地ID通过节点处与之相关联的序列器发生
器生成。
减少了节点处生成数据包头以及封闭数据到数据的过程。
2)当包含本地ID的原始数据到达路由器时,使用本地ID作为索引提交路由表。
它通过查询
路由器中的路由表获得输出商品号以及输出的本地ID。
3)当原始数据通过路由器被传送时,与之相连的节点或路由器能收到包括本地ID的原始数
据,除非路由器缓冲区已经处于“满”状态。
如果目标缓冲区被战胜,传送数据的路由
器将保持数据,直到前方的目标缓冲区被释放。
4)目标节点通过对应路由表和收到的ID来接收传送给它的原始数据。
通过上述附带本地ID的方法就避免了在传统数据包传送过程当中的专用头部结构,可以根据应用的不同用很少的专用ID线来表达数据包传送路径信息,源和目的节点以及数据的类别等。
4.3.2黑总线ID分配
所有的ID是基于静态分析的结果,ID的生成过程如下:
1)在每个物理链路上设计一个计数器,开始把所有物理通道相关联的计数器初始化为0。
2)在还没有分配ID的路径中选择一条路径。
3)在选择的该路径上面分配计数器数值,表示本地ID.
4)在路径的物理通道上增加计数器的值
5)重复步骤2~4,直到所有的路径都被分配一个值
本地ID的大小和物理通道中链路的数量是一致的,图4.2显示了ID分配例子。
(4,11)经过路由器4,8,9,10,本地ID为0,0,1,0。
同时(0,15)这条路径经过路由器0,4,8,12,13,14,本地ID分别为0,1,0,0,0,0。
因为本地ID标识的是物理通道的一条路径,节点可以通过ID和路由表对应,判定数据的传输方向。
因此,本地ID实际上包括源和目的地信息。
图4.22D-Mesh互补路由
4.3.3黑总线路由中的路由表
因为黑总线放弃了使用源—目的路由,去除了节点接口的复杂性。
所以,我们必须设计适当的路由表来减少路由器硬件数量。
特别是,黑
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 网络 NoC 读书 报告