当前位置: 首页 > news >正文

NOC片上网络总线初探

NoC(Network on Chip,片上网络) 是一种在复杂芯片(如多核处理器、SoC)内部,用于连接大量核心(CPU、GPU)、内存、缓存和其他IP模块的通信架构。

1. 为什么需要NoC?传统总线的问题

在芯片核心还很少的时代(比如双核、四核),通常使用传统的总线(Bus) 或交叉开关(Crossbar) 进行通信。

  • 总线(Bus):像一条共享的高速公路,所有组件都连接在这条公路上。缺点是独占性,同一时间只能有一对组件通信,其他组件必须等待,容易成为性能瓶颈。
  • 交叉开关(Crossbar):像是一个巨大的交换机,可以建立多个并行的点对点连接,性能很好。但问题是复杂度高,随着核心数量(N)的增加,其布线资源和面积开销会以 N² 的速度增长,成本极高。

当芯片发展到拥有几十个甚至上百个核心时(例如,服务器CPU、AI加速器),传统的总线架构就无法满足高带宽、低延迟、可扩展的通信需求了,这时,NoC就成为了必然选择。

2. NoC的核心思想和工作原理

NoC借鉴了大型计算机网络(如互联网)的思想,将通信和计算分离。

  • 网络化:将芯片上的各个模块看作网络中的一个个“节点”(Node)。
  • 路由:数据被打包成一个个“数据包”(Packet),通过一系列“路由器”(Router)和“链路”(Link)被路由到目的地。
  • 并行通信:多个数据包可以同时在网络的不同部分传输,实现了极高的并行通信能力。

NoC的基本组成单元:

  1. 处理单元(PE):就是需要被连接的各个核心、内存控制器、DSP等IP模块。
  2. 路由器(Router):网络的核心交换设备,负责接收、缓存、选择和转发数据包。每个路由器通常连接到邻近的其他路由器和本地处理单元。
  3. 网络接口(NI):连接处理单元和路由器的适配器,负责将处理单元的通信请求打包成网络数据包,或者将收到的数据包解包并传递给处理单元。
  4. 链路(Link):连接路由器和网络接口的物理通道(一组导线)。

3. NoC的主要拓扑结构

拓扑结构决定了路由器和处理单元是如何连接的,直接影响性能、面积和功耗。常见的有:

  • 网格(Mesh):最常见的一种,路由器呈二维网格排列,每个路由器连接东、南、西、北四个邻居和本地一个处理单元。结构规整,易于设计和布局布线。例如,Intel的很多至强处理器就采用Mesh NoC。

  • 环(Ring):路由器连接成一个环。结构简单,但延迟会随着节点增多而变大。在一些多核CPU(如早期的Intel酷睿)中常用。

  • 蝶形(Butterfly):一种高性能拓扑,适用于高吞吐量场景,但结构更复杂。

  • 树(Tree):像公司组织架构图,根节点带宽压力大,可能成为瓶颈。

4. NoC相比传统总线的优势

特性传统总线 (Bus)片上网络 (NoC)
可扩展性 差,核心越多,竞争越激烈,性能下降快 优秀,增加核心只需增加路由器和链路,性能线性增长
并行性 差,共享介质,同一时间只能一对一通信 强,多对通信可在网络的不同部分同时进行
带宽 有限,所有流量共享总线的最大带宽 极高,整体带宽是众多链路带宽的总和
功耗 所有信号广播,功耗较高 点到点通信,只在需要时激活相关链路,更节能
时钟 通常需要全局同步时钟 可以设计为全局异步局部同步(GALS),设计更灵活
设计复杂度 简单 复杂,需要设计路由算法、流控、避免死锁等

5. 应用场景

NoC是现代复杂芯片的“血管”和“神经系统”,广泛应用于:

  • 多核CPU:AMD EPYC、Intel Xeon、ARM Neoverse等多核服务器处理器。
  • AI加速器:NVIDIA的GPU、Google的TPU,内部有巨大的NoC来处理海量核心间的数据流。
  • 复杂SoC:智能手机的SoC(如高通骁龙、苹果A系列),连接CPU、GPU、NPU、ISP、内存控制器等。
  • FPGA:新一代FPGA内部也采用NoC来提供高速互连。

总结

NoC(片上网络)是一种用于芯片内部、基于分组交换的高速互连技术。它通过将计算机网络的思想引入芯片设计,解决了多核时代传统总线架构存在的可扩展性差、带宽瓶颈等问题,是实现当今拥有数十亿晶体管、上百个核心芯片的基石技术。

http://www.hskmm.com/?act=detail&tid=21257

相关文章:

  • AT_agc037_c [AGC037C] Numbers on a Circle
  • 记账本|基于SSM的家庭记账本小程序设计与实现(源码+数据库+文档) - 实践
  • redis数据连接写法
  • 缩放 div
  • 死锁的概念
  • 【2025-09-29】团队合作
  • 杂凑算法学习笔记
  • pg库支持扩展postgis
  • kuboard部署启用3个etcd(k8s单个master)
  • 数据库服务分布架构(MyCAT)
  • 题解:P14038 [PAIO 2025] Adventure Plan
  • 20231414_王仕琪_密码技术密码杂凑算法学习笔记
  • web3D、webGL、webGPU、webGIS、webXR、webCodecs的概念和对比 - 实践
  • Claude code的 thinking on/off差别有多少
  • Ubuntu 25的网络配置
  • 2025.9.26 测试
  • 贝叶斯学习笔记 - 详解
  • Ubuntu 24和25配置apt国内源
  • 实用指南:AWS实战:轻松创建弹性IP,实现固定公网IP地址
  • 完整教程:自然语言处理项目之情感分析(下)
  • 还在为安装PS发愁?这款网页版工具,打开浏览器就能用!
  • 委托相关
  • 清除“请允许观看视频”通知页面的完整指南
  • 千亿芯片公司被股东“抛弃” ,AI芯片第一股前景几何?
  • Java 与智慧港口:航运调度与物流枢纽数字化
  • DeepSeek-V3.2-Exp 发布,训练推理提效,API 同步降价
  • 图片任意切割工具(Python 3.8 实现)
  • 从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现
  • 超精简的小型C编译器
  • Day1 Linux 入门:9 个核心命令(whoami/id/pwd 等)