noc总线详解

参考过的文章:

NoC (Network on chip) 基础 (1) : 片上网络的简介-CSDN博客

第一章:

1、手机芯片

  • DSP:扬声器、麦克风、传感器之间的交互。
  • Display Engine:与触摸屏的显示器进行通信。
  • video p:压缩解压图像视频,实现视频录制和播放。
  • ISP:图像信号处理,处理相机拍照和视频。
  • modem:调制解调器,与无线网络进行通信。
  • storage c:保存和加载来自闪存的信息。
  • security enclave:加密管理,共钥私钥。
  • npu:神经网络,机器学习的算法,速度快功耗低。
  • 各种外设and noc(遍及芯片,实现ip互联,难度在于它影响着soc的性能以及通信延迟)。

第二章 noc的产生:

1、cache

L1 cache一般是32K到256KB,外部L2一般是主频的一半频率,内部L2一般和主频相同,常用的L2一般是512KB,服务器的话可以达到2M甚至是3MB。主存一般是8G。

2、多核好处

多核比单核的频率低,但是处理带宽会很大,多核在处理不同的进程时会共享内存。在45nm下,多核的io口会提高,频率会降低一半(因此timing不会是瓶颈),处理带宽会大大增加,功耗会降低。

3、intel总线网络

图为intel的24核网络,用了2个ring架构的network,ring与ring之间用了fifo的形式。

图为skylake28核互联,用的是mesh的结构。因此总线在多核网络中起了至关重要的作用。

4、torus拓扑的网络

由16个nodes和8个channel组成,channel 带着packets从一个节点路由到另一个节点,每个路径的转发都是公平的竞争,下图为传输过程的示意,假设背板可以容纳256个signal,每个信号以1Gbit/s 的速率传输,那么总的二分带宽是256Gbit/s,为了使带宽饱和,那么一个节点需要传输256/16=16bit的信号宽度。

5、路由算法

路由确定了数据包从源端节点到目的端节点的路径,在某些网络中从源端到目的端实际只有一条路径,而在torus中有多个可能的路径,好的路由算法能匀均负载而不考虑传输模式。路由算法很重要。

  • dimension-order routing:设计简单,保证最小路径,节点到节点是固定路径,对于某些模式不保证负载均衡,有的node很闲,有的node会很忙。

  • non-minimal routing:复杂,非最短路径,latancy会大,但是会平衡负载并且尽力避免死锁。

6、flow_ctrl

flow ctrl管理着数据包在资源上的分配,主要组件就是通道和buffer(实现节点中的存储),控制流量指确定数据包何时可以通过下一段通路或者合适拉入缓存区以允许其他数据包通过。流控策略需要遵守:

  • 避免资源冲突导致通道空闲
  • 不应该阻塞可以使用空闲通道的数据包
  • 可以增加一条通路使资源不过分依赖

流控机制包含两种:

  • 存储转发:每个包有5个flit(流控机制下最小数据的单元),要进入下个channel,必须将上个channel的5个flit全部收集完毕,才能到第二个通道。是个顺序的传输,延迟大,效率低。
  • cut-through:每个flit一到达就可以进入下个channel,pipeline的形式。低延迟传输效率较高。

7、router的架构

每个输入通道都会与buffer连接,保存到达的flit,直到它们离开所需资源,交叉开关可以被配置为连接输入缓冲区和任何离开的通道,通过allo与buffer之间的通信机对crossbar的控制进行传输。

8、link

  • link使用full-swing逻辑和repeateds wires。
  • full-swing当传输数据1时,全摆幅线从0v提高到全电压,传输到0时,从全摆幅线降到0v。
  • 中继器(inverters or buffers)。
  • 更多的是起到pipeline的作用。

9、性能和成本

  • 通过latency和traffic的流量来进行测量
  • 粗略的计算以零负载延迟作为指标,不会被其他数据包阻塞
  • 网络跳速X在每一跳所需要的延迟计算
  • 图中可看到随着流量的增加,latency会达到顶峰。

10、ip在mesh网络的摆放位置

将pcie、ddr,eth放在边缘位置,内部放master,根据mesh的节点进行相连,减少了片上网络的复杂度和流控机制,不至于拥塞。是一种可拓展的解决方案,pr阶段会很高效,具有固定长度的局部短互联。

第三章 noc介绍

1、noc的通用结构

虫洞流控会比较复杂,对buffer的size可以放宽。

如下图每个port的仲裁器如下所示,以vc为考虑单元(注意va只对包头执行):

switch开关的分配如下图所示,以port为考虑单元:

如图所示为vclink,若每个port只有一个fifo的话,若线头数据因为某些情况无法发出,很容易造成死锁,所以产生了victual_channel的方式,多条通道避免死锁,业内用的多的就是第二种:

如图所示为对5个swich点进行选择的电路,相当于5个仲裁器才起会分别对5个vc进行仲裁,最终输出5个结果,若下图的crossbar结构,若超过8x8,回影响timing。

2、仲裁器的结构

如下图为仲裁器结构,高优先级优先:

如图所示为fix优先级的仲裁器,面积最小:

下图所示为rotate优先级仲裁器,可以想像若输入不是2的幂次方,则6会被多仲裁一次。

round robin结构如图所示,造成不公平的原因是当某个port存在优先级时,假如3有优先级,会造成选择为0,1,2,3,0,3,0,1,2造成不公平。

下面这种相对公平,round robin priority level:

fifo仲裁器,最公平,但它需要更多的门也需要更多timing,也没有优先级:

总结:从上到下越来越公平,但面积也越来越大,timing也越来越难。

3、allocate的结构

4、数据的路由pipeline

  • buffer write(写到vc)
  • route compute(输出到那个port)
  • vc location(所有的vclink做请求,根据vcid,分配到vclink)
  • switch allo(交叉开关的分配)
  • switch travel
  • link travel(两个route之间的路程)

一般在2级或者3级流水做折中设计。

5、soc的系统架构

上图是arm家的noc总线,下图是arteris家的noc总线(Ncore带有缓存一致性):

6、共享存储架构

1、CMP

是单芯片多处理器的缩写。有三个核心内容:并行编程,消息传递(MPI)和共享存储(CMP)。原因就是现在的应用场景往往需要多核并行,所以说共享物理和存储可以很方便并行编程,MPI这是为了方便统一管理这些存储。共享存储由缓存一致性统一处理。

2、常见的缓存一致性的协议

  • broadcast:一致性请求会发往所有的片上节点,从而导致高带宽要求,数据响应是点对点通信,对响应顺序没有要求。两套物理网络可以实现:有序的互联网络和高带宽无序网络。

  • directory:不依赖于任何隐式网络通信。基于点对点通信,可以减少一致性通信数量,具有较好的可拓展性。目录要记录副本持有cacheline的所有节点以及其状态信息。每个地址都会被分为到一个目录节点,将这个节点成为基节点,记录这个地址的全部信息。

3、协议级网络死锁

当请求得不到响应会造成死锁,vc_channel可以防止协议级的死锁,也可以提高带宽。

第五章 

1、基础拓扑

拓扑确定网络和节点的具体布局和连接,它决定了信息的跳数和路由的个数,以及每一跳经过互联的物理距离,因此它会对网络延迟产生巨大影响。信息经过路由和链路会消耗能量,所以拓扑对网络的功耗有巨大的影响。拓扑实现的复杂度取决两个因素:每个节点链路的数量和拓扑的难易程度及所需导线长度。

2、拓扑指标包括

(1)与流量无关的指标:

  • degree:每个节点拥有的链路数量,节点的degree越大,路由器需要更多的port,面积和功耗都会增大,将路由器的端口数称为路由器的基数;
  • 对分带宽:网络划分为两个相同部分后,两个网络之间的通信网络之间的带宽。可以反映特定网络在最坏情况下的性能,对分带宽限制了从系统一端移动到另一端的总数据量,同时表示了实现片上网络必须的全局链接数量,衡量网络开销。
  • 网络直径:拓扑中任意两个节点最短路径组成集合中的最大值。网络中所有源到目的对的最短路径的最大跳数值。

(2)流量相关的指标:

  • 跳数:一条消息从源节点路由到目的节点跳的总次数。简单有效反应网络延迟指标。和网络直径的数值一样。latency
  • 最大通道负载:用于估计网络所能支持的最大带宽。最大注入带宽和最大通道负载成反比。假设通道负载是2,如果每个节点的每个时钟周期将一个flit注入到网络中,则意味着会出现两个flit在同一个时钟周期内都需要穿过该通道的情况;最大负载越大,可用网络带宽越小;noc设计中考虑如何提高网络带宽,以提高工作性能。假设一个时钟周期每个通道只能处理一个flit,则通道会成为瓶颈通道,它将网络最大注入带宽限制为链路带宽的一半,则每个节点只能隔一个时钟周期向网络注入一个flit。估算计算需要:路由,理想流控(不会有气泡),拓扑。
  • 路径多样性:给定源节点和目的节点的情路下,若这个节点对某个拓扑中拥有多条最短路径而在另一个拓扑中只有一条最短路径,认为前者拓扑具有更大的路径多样性。认为前者路由路径方便,更能使网络均衡,使其在处理负载均衡时具有更大的灵活性。

举例如下:

  • ring:一维环形,degree是2,对分带宽是2,ring的网络直径是4,跳数是4,无路径多样性。
  • mesh:二维网络,不同节点degree不同,对分带宽是3,mesh的网络直径是4,跳数是4,多样性较多。
  • torus:degree是4,对分带宽是3,torus的跳数是2,跳数是2,更加便捷,延时更短。

  • 两条ring,中间link连接,假设网络流量均匀且随机,要计算负载就要确定瓶颈通道,可以确定为中间的link,假设是双向链路,理想路由时,对于A来说,有八分之一的概率到达任意一个节点,当目的地是ABCD时,不会穿过瓶颈通道,当到达EFGH时,流量需要经过瓶颈通道,所以节点A注入带宽的二分之一将会通过瓶颈通道,因此瓶颈通道的负载是2,相应节点最大注入带宽为二分之一,所以当网络向节点注入二分之一带宽时,整个网络就要饱和了。

3、直连拓扑

  • 指终端节点都配备了一个路由器的网络拓扑。大多数片上网络的设计都使用的直连网络。被称为k-ary n-cubes(维度)。
  • 2x2switch。
  • 25
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值