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

【IC】NoC设计入门 -- 拓扑


🗺️ 什么是拓扑 (Topology)?

简单来说,拓扑就是 NoC 的“地图”或“城市布局规划”

它只关心两个问题:

  1. “十字路口”(路由器,Router)放在哪里?
  2. “街道”(链路,Link)如何连接这些“十字路口”?

你选择的“地图”布局,将从根本上决定你这个“芯片城市”的交通效率、建造成本和未来扩展的难易程度。

为什么会有不同的“城市布局”?

你可能会问,为什么不直接用一种“最好”的布局呢?

答案是:没有“最好”,只有“最合适”。 就像现实中,有些城市(如北京)适合棋盘式,有些山城(如重庆)只能依山而建。

在芯片上做“城市规划”时,工程师主要在权衡以下几个核心成本

  1. 性能 (Performance):

    • 延迟 (Latency): 从城市A角到B角,“开车”最快要多久?(这取决于“街道”有多长,要经过多少个“路口”)
    • 吞吐量 (Throughput): 整个城市1小时最多能跑多少辆车?(这取决于“街道”有多宽,“路网”是否密集)
  2. 成本 (Cost):

    • “建路”成本: “街道”(物理上的电线)越多、越长,芯片就越贵,也越耗电。
    • “路口”成本: “十字路口”(路由器)修得越复杂(比如五向路口变八向路口),占地面积(芯片面积)就越大,成本也越高。
  3. 可扩展性 (Scalability):

    • 如果城市要从 16 个街区(4x4)扩建成 64 个街区(8x8),这个“地图”是否容易扩展?还是说需要把原有的路网全部推倒重来?
  4. 物理布线性 (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 转发下去。这个“根”很快就会被堵死。

总结

  1. 拓扑 (Topology) 就是“地图”,它决定了 NoC 的基本骨架。
  2. 它没有“最好”的,只有在性能、成本、功耗、布线之间做出的权衡 (Trade-off)
  3. 在当今绝大多数 2D 芯片中,2D Mesh (二维网格) 是绝对的主流选择。因为它在“物理布线性”和“可扩展性”上取得了完胜,同时性能“足够好”。
http://www.dtcms.com/a/565231.html

相关文章:

  • wordpress主题怎么选电商seo搜索引擎优化
  • DGX Spark 恢复系统
  • 【分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
  • 绵阳网站推广排名新网站快速排名软件
  • 矿山通信如何实现全域一体化?迈威为煤矿装上了“智慧神经网络”
  • 不止于Linux:百花齐放的开源世界与社区的力量
  • python grammar : case sensitive, python Python
  • leetcode--hot100--思路+知识点(II)
  • react antdesign实现表格嵌套表单
  • 3D 技术赋能制造企业精准高效装配生产
  • 山东网站建设app江门住房和城乡建设部网站
  • 数据线厂家东莞网站建设wordpress mysql用户名
  • 4G摄像头行业新风向:AI+低功耗+全球化驱动
  • IDEA / DataGrip 连接 SQL Server 提示“驱动程序无法通过 SSL 加密建立安全连接”的解决方法
  • 【11408学习记录】制胜考研英语阅读:拆解2018真题长难句(含三步核心分析法)​
  • # 数学符号参考手册大全
  • Dremio查询加速技术全解析
  • 黄页营销网站视频免费大全免费的网站模板下载
  • Go语言设计模式:观察者模式详解
  • 什么是音频码率?音频码率128kbps怎么设置?
  • 2026版基于python大数据的旅游可视化及推荐系统
  • 企业财务智能体架构解析:从RPA自动化到AI风控协同
  • 北京seo不到首页不扣费厦门seo顾问屈兴东
  • 玩转Rust高级应用 如何进行理解Refutability(可反驳性): 模式是否会匹配失效
  • Excel怎么快速合并当前工作簿下的所有工作表?
  • 网站建设捌金手指花总十六永久链接生成器
  • Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
  • html网站建设案例杭州发布官网
  • C语言实现观察者模式
  • JAVA算法练习题day62