一、什么是NoC
NOC(Network on Chip)是一种用于片上系统(SoC, System on Chip)中的通信架构,它在芯片内为处理器、存储器、I/O 设备和其他硬件模块之间提供数据通信。NOC 的目的是提高片内通信的效率,尤其是在多核处理器架构和大规模集成电路中。
在传统的片上系统中,不同的硬件模块通常通过共享总线进行通信。然而,随着芯片上核心数量和模块的增加,传统总线架构面临带宽、延迟和功耗问题。NOC 通过引入网络化通信方式,使用多个路由器和互连,来减少这些瓶颈。
NOC 的主要特点和功能包括:
-
并行通信:多个模块可以同时通过网络通信,从而提高了带宽利用率。
-
可扩展性:相比传统总线架构,NOC 更易于扩展,适合高性能和大规模的多核系统。
-
降低功耗:通过优化数据路由和通信,NOC 可以减少片内通信的功耗。
-
灵活性:不同的模块可以通过配置进行优化通信,以满足不同应用的需求。
NOC 在现代智能手机、平板、嵌入式系统等设备的 SoC 中广泛使用,比如高通、联发科等公司的芯片中都采用了这种架构,用于处理 CPU、GPU、DSP、内存控制器等之间的高速通信。
NoC(network on chip),片上网络
想要了解NoC,首先需要知道什么是SoC
SoC(System on Chip)片上系统,具有集成度高、功耗低、成本低、体积小等优点,已经成为超大规模集成电路系统设计的主流方向。
SoC整体架构图如下:
目前,SoC通讯架构的设计相对比较成熟。大部分芯片公司芯片制造都采用SoC架构。然而,随着商业应用开始不断追求指令运行并存性和预测性,芯片中集成的核数目将不断增多,基于总线架构的SoC将逐渐难以不断增长的计算需求。
二、NoC的优势
1、可扩展性和设计成本。SoC系统设计是从系统需求分析开始,确定硬件系统中的模块。为了使系统能够正确工作,SoC中各物理模块在芯片上的位置是相对固定的。一旦在物理设计完毕后,要进行修改,实际上就有可能是一次重新设计的过程。另一方面,基于总线架构的SoC,由于总线架构固有的仲裁通信机制,即同一时刻只能有一对处理器核心进行通信,限制了可以在其上扩展的处理器核心的数量。
2、平均通信效率。SoC中采用基于独占机制的总线架构,其各个功能模块只有在获得总线控制权后才能和系统中其他模块进行通信。从整体来看,一个模块取得总线仲裁权进行通信时,系统中的其他模块必须等待,直到总线空闲。
片上网络具有非常丰富的信道资源,为系统提供了一个网络化的通信平台。网络中的多个节点可以同时利用网络中的不同物理链路进行信息交换,支持多个IP 核并发地进行数据通信。随着网络规模的增大,网络上的信道资源也相应增多。因此,NoC 技术相对于Bus 互连技术具有较高的带宽,以及更高的通信效率。当并发进行数据通信时网络会产生竞争,即会存在请求同一条物理链路的节点对。NoC 的路由节点通过分时复用物理链路来解决竞争,与Bus 结构相比,NoC 能够降低竞争发生的概率。
3、单一时钟同步问题。总线结构采用全局同步时钟,随着芯片集成度的提高,芯片的工作频率也在不断提高,在芯片内会形成很庞大的时钟树,因此很难实现片上各个模块的全局同步时钟。采用时钟树(Clock Tree)优化的方法可以改善由时钟翻转引起的时钟偏差和时钟抖动,但同步时钟网络所产生的动态功耗甚至可达总功耗的40%以上。为了提高系统的时钟频率,只能对全局互连线采用分布式流水线结构,或者采用全局异步局部同步(Global Asynchronous Local Synchronous,GALS)的时钟策略。
4、功耗。随着SoC 规模的不断增大,总线上每次信息交互都需要驱动全局互连线,因此总线结构所消耗的功耗将显著增加,并且随着集成电路工艺的不断发展,想要保证全局时钟同步也将变得难以实现。而在NoC 中,信息交互消耗的功耗与进行通讯的路由节点之间的距离密切相关,距离较近的两个节点进行通讯时消耗的功耗就比较低。
三、什么是路由
NoC的主题思想是将宏观网络的通讯措施应用于芯片上,每个核当做一个独立的单元,IP核经过网络接口与特定的路由器相连。由此,将IP核之间的通信转换为路由器与路由器的通信。通常情况下的NoC架构如下图所示:
R为路由节点,IP为计算节点。
那么,什么是路由呢?
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。
让我们试着通过一个类比来理解路由。想象一个场景,你下班后正准备从公司开车回家,此时路上塞满了车辆,你将在手机地图上查找道路和交通状况。根据路况,你将选择最通畅的那条路回家。
类似地,在路由中,有关数据包移动的决策是根据网络的状态做出的,路由器负责做出这些逻辑数据决策。
设置路由器的主要目的是找到数据包从源到目的地的最有效路径. 使用非常复杂的算法,路由器决定当前数据包必须通过哪个路由器或设备发送。重复此过程,直到数据包最终到达目的地。
路由可以分为两类:静态路由和动态路由。在静态路由中,所有路由都是在一个路由器中手动设置的。因此,如果网络有任何变化,路由也不会有任何变化,除非有人手动更正它。
在动态路由中,路由是由软件根据网络的当前状态来设置的。
网络变化,如链路故障、流量变化等,将在每一个离散时间步更新。根据这些信息,将在每个时间步长确定新路线。动态路由优于静态路由,因为路由器会根据网络中的变化进行实时更新。
举个例子,将上图的NoC架构图中的路由节点编号,如图所示:
若00要将数据发送到21,需经过10、20,后到21
四、NoC的种类
NoC的属性:
1、节点度:一个节点与相邻节点连接链路的数目。
2、网络直径:网络中任意两个节点之间的最短路径的长度的最大值,与网络的通信延迟成线性正比关系。
3、平均最短距离:网络中任意两IP节点之间的最小距离的和与该和所包含的路径数之比。
4、网络规模:网络中节点的数目。
5、可扩展性:网络模块的可扩展能力,扩展必须伴随着所期望的性能按比例地提高。
NoC常见的拓扑结构
NoC常见的拓扑结构包括规则拓扑和不规则拓扑两种。规则拓扑主要包括2D Mesh、2D Torus、3D Mesh、Octagon、Cluster Mesh、Spidergon、超立方、蜂窝式、树形和蝶形等拓扑结构。不规则拓扑包括专用网络、分层网络、网络总线混合拓扑以及由规则拓扑组合而成的拓扑结构。
2D Mesh
2D Mesh结构为二维网格架构,路由器节点按二维网格的方式排列,每个节点上再连接网络适配器和IP核。下图所示为一个4×4的2D Mesh结构。
在 N×N 的2D Mesh中,每个节点与相邻的节点连接(边界节点除外)。该结构具有结构简单,易于实现,可扩展性好等优点,较为广泛使用。
2D Torus
将2D Mesh结构的每行首尾节点连接起来,每列的首位节点也连接起来,便是2D Torus结构,该结构每个节点在几何上都是等价的,缩短了节点间的平均距离,减小了网络直径,同时该结构可能因为过长的环形链路而产生额外的延迟。
3D Mesh
3D Mesh为三维的网格结构,将多个2D Mesh叠加并对应节点连接起来,这样做进一步降低了网络直径和平均距离,但物理实现难度比较大。
Octagon/Spidergon结构
Octagon为八边形结构,共包含8个IP核,每个节点与三个节点相连,分别是序号相邻的节点和最远的节点。该结构也可以扩展为8个以上节点,变为Spidergon结构。
Cluster Mesh结构
Cluster Mesh 结构改变了传统的一个IP核连接一个路由器,将4个IP核连接1个路由器。这样做减少了路由器数量,简化了拓扑结构,但更容易造成数据拥塞。
树状结构
该结构类似于数据结构中的树结构,IP为叶子节点,路由器节点作为父节点,在父节点之上可以在增加父节点,层层相扣。降低了设计难度,也降低了物理设计的复杂度。
SPIN结构是一种树状结构,具有16个叶子节点以及8个路由器节点。每个节点拥有4个父节点,通过增加路由节点冗余度的方式,增加多路径选择性,提高系统性能。但是该结构的路由节点复杂,芯片实现难度大
碟状结构
该结构有些类似于FFT中的结构,是一种对数结构。一个n维的蝶形拓扑结构由2n个IP核和n×(2n-1)个路由器的节点组成,路由器分为n层,每层有N/2个路由器。
各种结构之间的比较
标签:SoC,简介,NoC,Mesh,节点,路由,路由器 From: https://www.cnblogs.com/linhaostudy/p/18454096