一句话定义:NoC(Network-on-Chip,片上网络)是把计算机网络那套思路搬进芯片内部——用一组路由器(router)和连线,把芯片上的各个计算核、缓存和加速器连成一张“路网”,让数据以数据包(packet)形式一跳一跳地送达目的地。
为什么需要它:芯片里最朴素的做法是总线(bus):所有单元挂在同一组线上,谁要传数据就先占用,别人排队等。单元少时够用,一旦几十上百个核都要读写共享内存,这条“单车道”就成了瓶颈——算力单元再强,也只能干等着数据送到。就好比一个办公室只有一部电话,人一多,大部分时间都在等别人挂机。
NoC 的解法是把“一部电话”换成“城市路网”:数据被切成固定大小的小片(flit,流控单元),若干 flit 拼成一个包,包上带目的地信息;沿途每个路由器看一眼前方路况,决定往哪个方向转发。网格(mesh)、环(ring)等不同的连线布局叫拓扑(topology),路由器选路的规则叫路由算法。多条路可以同时通车,局部拥堵也能绕行——这才是加核能真加速的前提。
和相邻概念的区别:
| 互连方式 | 直观比喻 | 优点 | 瓶颈 |
|---|---|---|---|
| 总线 Bus | 一条单车道 | 简单、省面积 | 同一时刻基本只能一对通信,节点一多就排队 |
| 交叉开关 Crossbar | 任意两点之间都修专线 | 并发高、延迟低 | 连线数量随节点数平方增长,面积和功耗吃不消 |
| NoC 片上网络 | 路网 + 路口调度 | 可扩展、多路并发 | 设计复杂,调度不好照样堵 |
对从业者的意义:在 AI 芯片和大模型推理硬件里,矩阵运算单元往往不是算不动,而是在等数据。数据搬运的效率取决于互连:片上多核共享缓存、多芯粒(chiplet)拼装、以及芯片间的互联,都绕不开 NoC 的带宽和延迟。一个常见现象是核数翻倍但吞吐不涨,问题常出在通信而非计算。此外还有两个坑:热点(hotspot,少数链路被集中访问)和死锁(deadlock,互相等待对方腾路),都要靠拓扑和路由策略规避。具体带宽、拓扑规格各家不同,以厂商官方文档为准。
对普通人的意义:手机 SoC 里 CPU、GPU、NPU、图像处理单元之间不停传数据,NoC 设计得好,同样电池下更少卡顿、更少发热。它不直接出现在参数表上,却决定了“跑分之外的顺手程度”。
一句话收尾:算力是发动机,NoC 是马路;路修不好,马力再大也只能原地听喇叭。
