NoC(Network on Chip)学习笔记(2)

NoC的路由与交换

NoC的路由

在NoC的交换信息时,需要确定从源节点到目标节点所经过的路径,这时就需要路由算法来确定该路径。路由算法分为静态路由算法和动态路由算法两种。
静态路由算法对于两节点之间的路径是固定的,结构简单,便于硬件实现,也便于保持传输数据的顺序,所以在NoC系统中被广泛的使用。但是静态路由算法在路径发生拥塞时,无法进行调整传输路径,降低数据传输效率。
动态调度算法又被称为自适应路由算法,可以根据网络流量和链路负载的变化调整路径,动态选择路径进行通信,避免了高数据传输密度下的网络拥塞。但这种算法结构复杂,不便于实现,同时在低拥塞时电路开销大,而且会出现死锁(循环等待)问题。
合理路由的算法应该解决死锁、活锁和饥饿问题。

  • 死锁是指两个以上数据包被阻塞在中间路由节点,对网络资源的释放和请求间出现循环等待的情况。
  • 活锁是指一个数据包在其目的节点周围环绕传输,但无法到达目的节点。
  • 饥饿是指当传输过程中存在多种不同优先级的数据包,可能出现高优先级的数据包始终占用资源,使低优先级数据包无法获得资源使用权,不能到达目的节点的情况。
  • 死锁问题可以通过控制流量来解决,
  • 活锁问题可以通过采用最短路径的方法解决
  • 饥饿问题可以通过合理的资源分配策略解决
    死锁活锁
    图中,黑色方块表示缓存被占据,黄色方框表示缓存未被占据。

确定性XY路由算法

确定性XY路由算法是最简单的路由算法,该算法的路径取决于源节点和目标节点的地址,是一种静态的路由算法。以2D Mesh结构为例,数据首先在X方向传输,当数据到达目的节点的同一列时,沿Y方向传输,最后到达目的节点。
路由算法

odd_even路由算法

odd_even路由算法是一种适用于mesh结构的部分自适应路由算法,对信号发生转弯的位置进行约束来防止死锁的产生。如果节点所在的Y坐标为奇数,该列称为奇数列;如果该列的Y坐标为偶数,该列称为偶数列。用E/S/W/N分别代表东南西北,NW表示从北到西的转弯。为了避免死锁发生,这种算法约束了一些转弯。例如:

  • 禁止奇数列节点发生NW和SW的转向,奇数列转弯目的禁止向西
  • 禁止偶数列节点发生EN和ES的转向,偶数列起始方向禁止向东
  • 禁止180度转向
    我们也可以更改这种约束。在这里插入图片描述

DyAD路由算法

CMU的Hu等提出了将Odd_even算法和确定性路由算法相结合的DyAD算法,可以根据网络的负载不同而采取不同的路由方式。在网络处于低负载情况下采用确定性路由算法,而当网络处于高负载时,采用odd_even自适应路由算法。路由器的每个输入端都在监控各自的信道占用率。当信道占用率超过拥塞阈值,拥塞标志位变为1,否则为0。如果标志位为1,路由器的工作模式变为odd_even路由模式。这种算法在网络低负载情况下拥有较好的时延和吞吐性能,并且在网络拥塞情况下具有较高的吞吐量。

DyXY路由算法

DyXY路由算法是一种全自适应算法,通过监视其相邻节点的拥塞状况来选择路由路径的下一跳。这种算法将路由器每个端口的即时队列长度作为压力值,然后用压力值来表征相邻节点的拥塞状况。算法规定数据采用最短路径进行传输,如果存在多条最短路径,则选择拥塞压力最小的一条路径。
每个路由器时刻更新所保存的相邻节点的即时压力值,在确定源节点和目的节点之后,数据沿压力值最小的一条路径传输。这也是自适应算法最基本的思路,由于节点数据实时更新,所以可能会出现死锁或活锁的情况。
在实际应用中,还需要根据特定的NoC结构来选择适合的路由算法。

NoC的交换

NoC的交换技术是动态分配传输线路和接口资源的方式,主要包括电路交换和包交换两种方式。相关参数设定如下:

  • 数据包数据为长度 L
  • 六孔单元宽度 W
  • 路由器中路由决策时间 tr
  • 路由器间链路频率 B Hz
  • 带宽 BW bit/s
  • 链路传输延迟 tw=1/B
  • 路由器数据交换延迟 ts
  • 源节点和目标节点间链路距离 D

电路交换

电路交换是指在发送数据前,需要先在源节点与目的节点之间建立物理链路,然后进行数据传输,数据可以利用物理信道的整个带宽进行传送,而其它设备将无法使用这些物理链路,直到数据传输结束后链路才被释放。在电路交换模式下,由于路径确定,并且独占物理通道,具有较高的数据传输效率和通信质量。
其缺点是无法适应网络的实际变化情况,缺乏灵活性,链路利用率低,建立和释放连接浪费额外时间,不适合突发数据的传输。电路交换方式适合于数据传输频繁,或者通信模式相对静态的场合。
电路交换技术的数据传输延迟如下所示:
t c i r c u i t = t s e t u p + t d a t a = D [ t r + 2 ( t s + t w ) ] + 1 b [ L W ] t_{circuit}=t_{setup}+t_{data}=D[t_r+2(t_s+t_w)]+\frac{1}b[\frac{L}W] tcircuit=tsetup+tdata=D[tr+2(ts+tw)]+b1[WL]

包交换

包交换模式是将数据封装成包,每个数据由包头和数据部分组合而成。根据包头的信息,通过路选择策略,一级一级的可以将数据转发到目的地。
包交换的优点是不需要建立和释放链路花费附加时间;在数据传输过程中可以动态分配带宽,逻辑上属于同一连接的数据包可能通过不同的路径进行传输,信道利用率高,吞吐量高;而且链路故障具有容错能力,适合突发数据的传输。其缺点是在交换结点中存储整个数据包需要很大的缓存器,这会增加的面积成本;另外假如路由策略的选择不当,可能出现不同的数据包同时征用链路,会造成拥塞和死锁。
目前主要有三种包交换技术:存储转发(store and forward,SAF)、虚直通(virtual cut through,VCT)和虫孔(Wormhole)交换技术。

存储转发交换技术

SAF交换技术是最简单的包交换方式,需要足够的缓存空间存储整个数据包,当且仅当路由器收到整个数据包后才能将其转发出去,增大了数据包的延迟。
SAF需要较大的缓存空间,需要更大的数据带宽,并且延时较大。改进的办法是不需要等待数据包完整收到就将其转发出去。SAF交换的传输延迟为:
t S A F = D [ t r + ( t s + t w ) [ L + W W ] ] t_{SAF}=D[t_r+(t_s+t_w)[\frac{L+W}{W}]] tSAF=D[tr+(ts+tw)[WL+W]]
存储转发交换技术

虚直通交换技术

VCT交换技术与SAF技术不同之处在于,VCT交换时,数据包头部一旦到达即可被转发,无需等待数据包完全到达。一旦做出路由决策并且输出通道是空闲的,路由器就可以马上转发随后的数据部分。当网络不存在延迟时,VCT交换技术效率很高,可以及时转发,但当网络拥塞时,路由器需要缓存整个数据包,缓存空间要占用很大的片上系统面积。VCT交换的传输延迟为:
t V C T = D ( t r + t s + t w ) + m a x ( t s , t w ) [ L W ] t_{VCT}=D(t_r+t_s+t_w)+max(t_s,t_w)[\frac{L}W] tVCT=D(tr+ts+tw)+max(ts,tw)[WL]
虚直通交换技术

虫孔交换技术

虫孔交换中,数据被分为若干流控单元flits。第一个流控单元成为Head flits,带有数据包的目的地址等控制性信息,最后一个称为Tail flits。当路由器收到Head flits时,路由器根据其中的目标地址计算输出端口,端口空闲则将数据按流控单元依次转发出去,数据传输结束则释放端口。当Head flits被阻塞时,后面的数据也依次被阻塞,分别缓存在相邻的几个路由器中。相比之前的两种策略,虫孔交换技术的路由器志向需要几个flits的缓存空间,不需要缓存整个数据包的缓存空间。但分段存储数据更容易造成链路阻塞,更容易出现死锁。虫孔交换技术的延迟如下(同VCT一样):
t w o r m h o l e = D ( t r + t s + t w ) + m a x ( t s , t w ) [ L W ] t_{wormhole}=D(t_r+t_s+t_w)+max(t_s,t_w)[\frac{L}W] twormhole=D(tr+ts+tw)+max(ts,tw)[WL]
虫孔交换技术

综上,不同的NoC路由算法和交换技术各有优劣,我们需要根据特定的NoC结构,综合考虑多种因素选择合适的交换方式以提高传输质量,降低传输延迟。

来自MIT大佬Natalie Enright Jerger、Tushar Krishna、以及Li-Shiuan Peh总结的体系结构片上网络(onchip network)的学习材料(目前主要用于MIT相关课程教学)。 英文摘要:This book targets engineers and researchers familiar with basic computer architecture concepts who are interested in learning about on-chip networks. This work is designed to be a short synthesis of the most critical concepts in on-chip network design. It is a resource for both understanding on-chip network basics and for providing an overview of state of-the-art research in on-chip networks. We believe that an overview that teaches both fundamental concepts and highlights state-of-the-art designs will be of great value to both graduate students and industry engineers. While not an exhaustive text, we hope to illuminate fundamental concepts for the reader as well as identify trends and gaps in on-chip network research. With the rapid advances in this field, we felt it was timely to update and review the state of the art in this second edition. We introduce two new chapters at the end of the book. We have updated the latest research of the past years throughout the book and also expanded our coverage of fundamental concepts to include several research ideas that have now made their way into products and, in our opinion, should be textbook concepts that all on-chip network practitioners should know. For example, these fundamental concepts include message passing, multicast routing, and bubble flow control schemes. Table of Contents: Preface / Acknowledgments / Introduction / Interface with System Architecture / Topology / Routing / Flow Control / Router Microarchitecture / Modeling and Evaluation / Case Studies / Conclusions / References / Authors' Biographies 是学习NOC等领域的非常好的材料。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值