【IC】NoC设计入门 -- 拓扑
🗺️ 什么是拓扑 (Topology)?
简单来说,拓扑就是 NoC 的“地图”或“城市布局规划”。
它只关心两个问题:
- “十字路口”(路由器,Router)放在哪里?
 - “街道”(链路,Link)如何连接这些“十字路口”?
 
你选择的“地图”布局,将从根本上决定你这个“芯片城市”的交通效率、建造成本和未来扩展的难易程度。
为什么会有不同的“城市布局”?
你可能会问,为什么不直接用一种“最好”的布局呢?
答案是:没有“最好”,只有“最合适”。 就像现实中,有些城市(如北京)适合棋盘式,有些山城(如重庆)只能依山而建。
在芯片上做“城市规划”时,工程师主要在权衡以下几个核心成本:
- 
性能 (Performance):
- 延迟 (Latency): 从城市A角到B角,“开车”最快要多久?(这取决于“街道”有多长,要经过多少个“路口”)
 - 吞吐量 (Throughput): 整个城市1小时最多能跑多少辆车?(这取决于“街道”有多宽,“路网”是否密集)
 
 - 
成本 (Cost):
- “建路”成本: “街道”(物理上的电线)越多、越长,芯片就越贵,也越耗电。
 - “路口”成本: “十字路口”(路由器)修得越复杂(比如五向路口变八向路口),占地面积(芯片面积)就越大,成本也越高。
 
 - 
可扩展性 (Scalability):
- 如果城市要从 16 个街区(4x4)扩建成 64 个街区(8x8),这个“地图”是否容易扩展?还是说需要把原有的路网全部推倒重来?
 
 - 
物理布线性 (Layout-friendliness):
- (这是芯片设计中非常现实的考量!)
 - 这个“地图”画出来是不是规整的、方方正正的?
 - 如果是一个规整的“棋盘”,芯片制造工具(EDA)就能很容易地自动铺设电线。
 - 如果是一个混乱的“蜘蛛网”,电线长长短短、七扭八歪,工具会“疯掉”,人工也无法实现,这在工程上是不可行的。
 
 
几种主流的“城市布局”方案 (Topologies)
现在我们来看几种最经典的“地图”方案,看看它们各自的优缺点。
1. 必学:2D Mesh (二维网格)
- 比喻: 曼哈顿、北京、西安的**“棋盘式”街道网**。
 - 结构:
- “十字路口”(路由器)被排列成一个 N×MN \times MN×M 的网格。
 - 每个“路口”都用“街道”(链路)连接到它东、南、西、北的邻居。
 - 同时,每个“路口”还会引出一条“小路”,连接到它旁边的“功能区”(如 CPU 核)。
 
 - 优点 (为什么它最火):
- 物理布线超级友好! 它的结构和芯片(本身就是一块2D方块)完美契合。所有“街道”都是短的、直的、规整的,制造成本低,功耗也低。
 - 可扩展性极好: 3x3 扩到 4x4?在旁边加一排“路口和街道”就行了,非常简单。
 - 路由简单: 使用 XY 路由(先X后Y)非常直观。
 
 - 缺点:
- 延迟相对较高: 如果“家”在左下角 (0,0),“商场”在右上角 (7,7),你需要“开车”经过 7+7 = 14 个“路口”,距离很长。
 
 
R---R---R (R = 路由器/路口) | | | (|,- = 链路/街道) R---R---R | | | R---R---R
2. 常见:Ring (环形)
- 比喻: 城市**“环线”**(比如北京的二环路)。
 - 结构:
- 所有“路口”被“街道”串成一个封闭的圆圈。
 - 每个“路口”只连接左右两个邻居。
 
 - 优点:
- 简单,成本低: “街道”总数很少(和“路口”一样多)。
 
 - 缺点:
- 可扩展性极差: 环线上的“站点”(路口)越多,从一站到最远一站的距离就越长,延迟急剧增加。
 - 吞吐量低: 整个环线是共享的,很容易在某一段造成“堵车”,进而影响整个环线。
 - 可靠性差: 环线上任何一条“街道”坏了(断路),整个交通就瘫痪了。(除非你修两条反向的环路,但成本又上去了)。
 
 
R---R/ \ R R\ /R---R
3. 进阶:Torus (环面)
- 比喻: 一个“缠绕”起来的 Mesh。想象一下,你把一张“棋盘”地图卷成一个圆筒,再把圆筒的两头接起来,变成一个**“甜甜圈”**。
 - 结构:
- 它首先是一个 Mesh (网格)。
 - 但是: 最上面一排的“路口”会连接到最下面一排;最左边一排的“路口”会连接到最右边一排。
 
 - 优点:
- 性能很棒! “缠绕”起来的连接提供了“捷径”。从 (0,0) 到 (7,7) 不再需要走14跳,你可以通过“环绕”的近路(比如从 (7,7) 直接“绕”到 (0,7) 再到 (0,0)),平均延迟比 Mesh 低很多。
 
 - 缺点 (致命的):
- 物理布线噩梦! 想象一下,在平整的 2D 芯片上,你要从最“顶”拉一条(或多条)很长的电线,跨越整个芯片,连接到最“底”。这些超长电线(Long Wires)会带来巨大的延迟、功耗和制造难度。
 - 正是因为这个工程上的巨大代价,Torus 在 2D 芯片上用得远不如 Mesh 广泛。
 
 
4. 其他:Tree (树形)
- 比喻: 公司的组织架构图(CEO -> 部门经理 -> 员工)或河流系统(干流 -> 支流)。
 - 结构:
- “功能区”(叶子节点)连接到低级“路口”,低级“路口”汇聚到高级“路口”,最终汇聚到一个“根路口”(Root)。
 
 - 优点:
- 适合“广播”或“汇聚”型的数据(比如一个“老板”要给所有“员工”发通知)。
 
 - 缺点:
- “树根”是天大的瓶颈! 想象一下,如果两个不同部门底下的“员工”要通信,数据必须先跑到“CEO”(根路口),再由 CEO 转发下去。这个“根”很快就会被堵死。
 
 
总结
- 拓扑 (Topology) 就是“地图”,它决定了 NoC 的基本骨架。
 - 它没有“最好”的,只有在性能、成本、功耗、布线之间做出的权衡 (Trade-off)。
 - 在当今绝大多数 2D 芯片中,2D Mesh (二维网格) 是绝对的主流选择。因为它在“物理布线性”和“可扩展性”上取得了完胜,同时性能“足够好”。
 
