片上网络NoC(1)——导论

一、多核时代的出现

        自从20世纪90年代末引入多核芯片研究以来,片上网络已经成为一个重要且不断发展的研究领域。随着计算核心数量的不断增加,多核处理器被广泛应用在高端服务器、智能手机,甚至物联网(Internet of Things,IoT)网关等各种领中。为了提高计算核心利用率,我们迫切地需要更大的通信带宽,并构建可扩展的片上互连结构。

        通常来说,片上互连结构的设计方式和部署形态取决于多核架构本身的通信需求。随着片上计算核心数量的增加,用于连接它们的可扩展、低延迟和大带宽的通信结构变得至关重要。在4个计算核心或8个计算核心的情况下,总线(bus)和交叉开关(crossbar)是主要的互连结构。总线是共享的多比特物理通道,每个计算核心均连接在总线上,并对总线进行监听。在一个特定的时刻,只允许一个计算核心向总线发送数据。总线可以提供较低的传输延迟,但是无法提供足够的带宽。交叉开关(crossbar)可以为任何一对计算核心提供非阻塞的连接。交叉开关具有大的带宽和相对较低的延迟,但是受限于面积和功率方面的表现,交叉开关的规模扩展性不佳。因此,片上网络正在迅速取代总线和交叉开关,成为多计算核心芯片中普遍存在的通信结构。在这种片上网络中,每个节点都有路由器,节点间通过短距离的本地片上链路连接到邻居节点;多个通信流在这些链路上时分复用,因此可以提供高可扩展性和大传输带宽。

二、片上网络与片外网络的比较

        虽然片上网络可以借鉴超级计算机、工作站集群和因特网路由器中使用的多机箱互连网络的设计思想,但片上网络面临的设计要求差异巨大。因此,片上网络迫切需要全新的设计。幸运的是,将通信移动到芯片内可以大大减轻以前多机箱互连网络所面临的输入/输出 (Input/Output,I/O)
瓶颈问题:丰富的片上布线资源可提供比芯片外I/O 大出好几个数量级的带宽,同时避免了片外 IO 传输相关的固有延迟开销。

        然而,许多严格的技术限制为片上网络设计带来了挑战。具体而言,在严格的功率范围和面积预算之内,针对高性能多核处理器的片上网络必须提供足够大的传输带宽,并同时保持极低的传输延迟。因此,在多核和众核芯片设计中,高速缓存、互连组件将会和计算核心竞争同一颗芯片上的空间和资源。对架构设计者而言,在严格的面积和功率限制下集成大量组件并在这些组件之间
进行综合权衡,是在设计时所必须面对的重大挑战。

        片上网络的创新使其具有可与交叉开关相提并论的通信延迟,因此使得片上网络被广泛采用。此外,尽管相比总线和交叉开关,片上网络对功耗的需求小得多,但仍然需要精心设计,否则一不小心,就会导致过大的片上网络功耗。因此,功率限制是设计片上网络时必须考虑的问题。

三、片上网络的演变

        片上网络,作为广义的互连网络的一个子集,可以看作是用于实现节点之间数据传输的可编程系统。片上网络可以被视为一个系统,是因为它集成了许多组件,包括通道(channel)、缓冲区(buffer)、交换单元(switch)和控制(control)。
        当节点数量很少时,可以使用专用的布线来连接它们。然而,当片上节点数量激增时,使用专用布线是不可行的,这是因为直接连接每个节点所需的布线量过高。
        在计算核心数量较少的设计中,可以采用总线(bus)和交叉开关(crossbar)。在传统的多处理器系统和更新的多核架构中,基于总线的系统只能扩展连接数量不多的处理器。这种有限的可扩展性是因为添加到总线上的计算核心越多,这些计算核心对总线的竞争就越大,从而使总线流量迅速饱和。在这种情况下,每个连接到总线的处理器很难获得足够大的带宽。而且,驱动长距离物理连线的总线所需的功耗也比较大。此外,随着计算核心数量的增加,集总式仲裁器(arbiter)也会带来额外的仲裁延迟。为了解决这些问题,复杂的总线设计采用了分段(segmentation)、分布式仲裁(distributed arbitration)、分离传输(split transactions)等技术,使其越来越类似于基于开关结构的片上网络。
        交叉开关解决了总线的带宽问题,并已用于少量节点的片上互连。但是,随着计算核心数量的增加,它们需要占用较大的芯片面积,并且产生更大的功耗,因此其可扩展性并不理想。为了应对该问题,层级交叉开关(hierarchical crossbar)应运而生,其中计算核心采用簇(cluster)的方式进行组织——一个簇构成一个节点,并且使用多级较小规模的交叉开关来提供不同层级间的互连。这些复杂的交叉开关结构,类似于多跳(multi-hop)片上网络,其中每一跳完成一层交叉开关内的数据传输。
        由于多种原因,片上网络是总线和交叉开关最有吸引力的替代方案。首先,片上网络为片上通信提供了一种可扩展的解决方案,因为它们能够使用较小的面积提供可扩展的带宽,并且随着节点数量的增加,提供近似线性的带宽增幅。其次,片上网络的布线非常高效,在相同链路上复用不同的通信流,进而提供更大的传输带宽。最后,具有规则拓扑结构的片上网络具有固定长度的局部短互连,因此,可以使用规则的可复用结构进行模块化优化和构建,从而减轻了验证的负担。

四、片上网络的基本构建模块

        片上网络的设计可以分解为各种构建模块:拓扑、路由、流控制、路由器微体系结构,以及链路结构。

  • 拓扑:片上网络由传输通道和路由器(router)节点组成。网络拓扑确定了网络中节点和通道之间的物理布局和连接。
  • 路由:对于给定的拓扑,路由算法确定消息从源节点到达目的节点所通过的网络路径。路由算法平衡流量(或负载)的能力直接影响了片上网络的吞吐量和性能。
  • 流控制:流控制是指在消息通过网络时如何为消息分配资源。流控制机制负责为等待的数据包分配(和解除分配)缓冲区和通道带宽。与基于以太网技术的片外网络相比,大多数片上网络设计被认为是无损设计。
  • 路由器微体系结构:常见的路由器微体系结构由以下组件组成:输入缓冲区(input buffer)、路由器状态(router state)、路由逻辑(routing logic)、分配器(allocator)和交叉开关(crossbar)。路由器功能通常设计成流水线结构,以提高吞吐量。片上网络中经过路由器产生的延迟是通信延迟的主要部分。因此,大量的研究工作通过减少路由器流水线级数来降低网络延迟。
  • 链路结构:大多数片上网络原型使用传统的全摆幅逻辑和带有中继器(repeater)的连线。当传输数据1(高电平)时,全摆幅线从0V(接地)提高到电源电压:当传输数据0(低电平)时,全摆幅线从电源电压降低到0V(接地)。对于较长的连线,降低延迟的有效方法是插入等间隔的中继器(反相器或缓冲区),使延迟能够与中继器的数量(而不是长度的二次方)成线性关系。

五、总结

        当片上存在多个处理节点需要进行互连与数据交互时,最简单的方式是采用总线或crossbar结构进行连接,但是当节点很多的时候,总线会由于节点的竞争增大而迅速饱和,从而导致带宽受限,corssbar则会因为节点的增加占用较大的芯片面积,从而导致功耗增大。

        因此,片上网路的发展逐渐得到重视,片上网络的设计可以分解为各种构建模块:拓扑、路由、流控制、路由器微体系结构,以及链路结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Microsoft Word 清除格式

Microsoft Word 清除格式 References 选择文本,用快捷键 Ctrl Shift N,可以快速清除格式。 选择文本,清除格式。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

System V信号量

1.信号量 信号量本质上就是一把计数器(资源计数器) 表示资源数目的计数器,每一个执行流想访问公共资源内部的某一份资源,不应该让执行流先访问,而是先申请信号量资源,其实就是先对信号量计数器进行–操作,本质上,只要–成功,就完成了对资源的预订机制 如…

leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中…

Ubuntu编译和测试ITK4.13.1

安装不麻烦,环境配置挺麻烦,主要是gcc、cmake和ccmake的版本不匹配问题。 环境: gcc -- 7.5.0 cmake -- 3.15.2 ccmake -- 3.15.2 参考以下两篇博客安装: 1、 ITK的安装与测试(Ubuntu系统)_ubuntu20…

Confluence CVE-2023-22527利用工具

介绍 Confluence CVE 2021,2022,2023 利用工具,支持命令执行,哥斯拉,冰蝎 内存马注入 支持 Confluence 版本:CVE-2021-26084,CVE-2022-26134,CVE_2023_22515,CVE-2023-2…

计算机网络——06分组延时、丢失和吞吐量

分组延时、丢失和吞吐量 分组丢失和延时是怎样发生的 在路由器缓冲区的分组队列 分组到达链路的速率超过了链路输出的能力分组等待排到队头、被传输 延时原因: 当当前链路有别的分组进行传输,分组没有到达队首,就会进行排队,从…

【MySQL进阶之路】生产案例:大量数据刷盘导致的数据库性能抖动问题优化

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

【Docker】Docker Container(容器)

文章目录 一、什么是容器?二、为什么需要容器?三、容器的生命周期容器OOM容器异常退出容器暂停 四、容器命令详解docker createdocker logsdocker attachdocker execdocker startdocker stopdocker restartdocker killdocker topdocker statsdocker cont…

Apache 神禹(shenyu)源码阅读(一)——Admin向Gateway的数据同步(Admin端)

源码版本:2.6.1 单机源码启动项目 启动教程:社区新人开发者启动及开发防踩坑指南 源码阅读 前言 开了个新坑,也是第一次阅读大型项目源码,写文章记录。 在写文章前,已经跑了 Divide 插件体验了一下(体…

Mac OS 取消隔离扩展属性

sudo xattr -rd com.apple.quarantine ${file} 扩展属性的大小通常被限制为明显小于最大文件大小的值。典型用途包括存储文档的作者、纯文本文档的字符编码或校验和、加密哈希或数字证书和自主访问控制信息。 在类 Unix系统中,扩展属性通常缩写为xattr。 从 macO…

elasticsearch 索引的监控

** 1. 监控索引的健康状态信息 ** 如果创建了一个索引test-3-2-1并且你想知道索引test-3-2-1的健康状态可以使用索引的cat端点,代码如下。 GET /_cat/indices/test-3-2-1?v&formatjson会得到类似于以下的健康状态监控信息 [{"health" : "ye…

DataEase

一. DataEase (一). 说明 安装文档 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与他人分…

比特币突然大涨

作者:秦晋 2月9日,除夕夜,比特币突然大涨,最高涨至48219美元,涨幅超6%。据CNBC报道,本周比特币已经上涨10.76%,创下自12月8日以来的最佳的一周。本周ETH上涨8.46%,成为自1月12日以来…

mac无法往硬盘里存东西 Mac硬盘读不出来怎么办 Mac硬盘格式 硬盘检测工具

mac有时候会出现一些问题,比如无法往硬盘里存东西,或者无法往硬盘上拷贝文件。这些问题会给用户带来很大的困扰,影响正常的工作和学习。那么,mac无法往硬盘里存东西,mac无法往硬盘上拷贝怎么办呢?软妹子将为…

DAY9.

1.选择芯片型号 2. 3. 4. 5. 6. 7.

相机图像质量研究(12)常见问题总结:光学结构对成像的影响--炫光

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

关于node与node-sass那些事

昨晚找了之前的一个项目想要复习下,结果npm i报错,大致意思就是noda-sass的版本和node的对不上,那怎么办呢: 1.换node版本,那好吧,首先要明白,对应的版本关系 2.然后我开始用nvm换node版本&am…

MySQL-----DCL基础操作

▶ DCL简介 DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 DCL--管理用户 ▶ 查询用户 use mysql; select * from user; ▶ 创建用户 ▶ 语法 create user 用户名主机名 identified by 密码 设置为在任意主机上访问…

2024 年适用于 Windows 的 10 款顶级录屏软件

什么是屏幕录制软件? 屏幕录像机是专用软件,允许用户捕获整个屏幕或显示器的特定部分。无论是捕获窗口的特定区域、完整的网页、可滚动的屏幕截图或包括光标移动的录音等。一款优秀的截屏软件是将所有这些功能集成到一个软件包中,以简化日常工…

小白水平理解面试经典题目LeetCode 102 Binary Tree Level Order Traversal【二叉树】

102. 二叉树层次顺序遍历 小白渣翻译 给定二叉树的 root ,返回其节点值的层序遍历。 (即从左到右,逐级)。 例子 小白教室做题 在大学某个自习的下午,小白坐在教室看到这道题。想想自己曾经和白月光做题&#xff0c…