NoC简介

目录

一、什么是NoC

二、NoC的优势

三、什么是路由

四、NoC的种类


一、什么是NoC

NoC(network on chip),片上网络

想要了解NoC,首先需要知道什么是SoC

SoC(System on Chip)片上系统,具有集成度高、功耗低、成本低、体积小等优点,已经成为超大规模集成电路系统设计的主流方向。

SoC整体架构图如下:

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架构如下图所示:

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结构。

2D Mesh结构示意

在 N×N 的2D Mesh中,每个节点与相邻的节点连接(边界节点除外)。该结构具有结构简单,易于实现,可扩展性好等优点,较为广泛使用。

2D Torus

 将2D Mesh结构的每行首尾节点连接起来,每列的首位节点也连接起来,便是2D Torus结构,该结构每个节点在几何上都是等价的,缩短了节点间的平均距离,减小了网络直径,同时该结构可能因为过长的环形链路而产生额外的延迟。

3D Mesh

3D Mesh为三维的网格结构,将多个2D Mesh叠加并对应节点连接起来,这样做进一步降低了网络直径和平均距离,但物理实现难度比较大。

3D Mesh结构

Octagon/Spidergon结构

Octagon为八边形结构,共包含8个IP核,每个节点与三个节点相连,分别是序号相邻的节点和最远的节点。该结构也可以扩展为8个以上节点,变为Spidergon结构。

在这里插入图片描述

Cluster Mesh结构

Cluster Mesh 结构改变了传统的一个IP核连接一个路由器,将4个IP核连接1个路由器。这样做减少了路由器数量,简化了拓扑结构,但更容易造成数据拥塞。

在这里插入图片描述

树状结构
该结构类似于数据结构中的树结构,IP为叶子节点,路由器节点作为父节点,在父节点之上可以在增加父节点,层层相扣。降低了设计难度,也降低了物理设计的复杂度。

SPIN结构是一种树状结构,具有16个叶子节点以及8个路由器节点。每个节点拥有4个父节点,通过增加路由节点冗余度的方式,增加多路径选择性,提高系统性能。但是该结构的路由节点复杂,芯片实现难度大。
SPIN

 碟状结构

该结构有些类似于FFT中的结构,是一种对数结构。一个n维的蝶形拓扑结构由2n个IP核和n×(2n-1)个路由器的节点组成,路由器分为n层,每层有N/2个路由器。

 在这里插入图片描述

各种结构之间的比较

 

  • 32
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: NOC Verilog,简称为NOC Verilog语言,是一种基于硅基微处理器的硬件描述语言,用于描述网络栅格(Network-on-Chip,简称NOC)结构的特性和功能。NOC是一种基于片上网络(Network-on-Chip,简称NOC)的通信架构,用于在片上系统(System-on-Chip,简称SOC)中实现不同功能模块之间的通信和数据传输。 NOC Verilog语言的设计是为了描述和设计NOC的结构和功能,使得硬件工程师可以使用这种语言进行硬件设计和验证。NOC Verilog提供了一种规范和标准的方法来描述NOC的拓扑结构、数据传输和通信协议等方面的信息。 使用NOC Verilog语言可以轻松地建立NOC的模型,并对其进行仿真和验证。通过定义NOC的结构和连接方式,可以方便地确定数据从一个模块到另一个模块的路径,并实现单元之间的通信。 NOC Verilog语言还支持对NOC进行性能分析和优化。在设计NOC时,可以通过修改NOC Verilog代码来调整网络的带宽、时延和吞吐量等性能指标。这样可以根据应用的需求和系统的约束,对NOC进行定制和优化。 总而言之,NOC Verilog是一种用于描述和设计网络栅格结构的硬件描述语言。它提供了一种方便、标准化和规范化的方法,使硬件工程师能够更轻松地设计、验证和优化NOC。 ### 回答2: NOC是网络隔离开关(Network on Chip)的缩写,它是一种用于集成电路内部的通信架构。NOC的设计是为了解决集成电路内各个模块之间的通信问题,特别是在多处理器系统中。NOC的目标是提供高效的通信通道,减少通信延迟,提高系统性能。 Verilog是一种硬件描述语言,用于描述数字电路的结构和行为。它主要用于设计和仿真集成电路,并且对于设计大型复杂系统非常有用。Verilog的设计可以通过编写代码来定义电路的结构和行为,并使用仿真工具验证电路的功能。 当把NOC和Verilog结合起来时,可以使用Verilog来描述和设计NOC结构。通过使用Verilog语言,可以定义NOC的各个模块以及它们之间的通信方式。同时,Verilog还可以用于验证NOC的功能,通过仿真工具来模拟NOC的行为,以确保其在实际应用中的正确性和稳定性。 总而言之,NOC Verilog指的是使用Verilog语言来描述和设计网络隔离开关的结构和行为。通过使用Verilog语言,可以更好地实现NOC的设计、验证和优化,提高集成电路系统的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值