第11章 互连网络体系结构

之前,我们尚未讨论如何可靠、快速地将消息从一个节点发送到另一个节点。本章目的是讨论多个处理器互连的结构。互连网络最重要的两个性能指标是延迟和带宽。

基于共享存储多处理器的几个通信特性,与诸如局域网或因特网等其他网络系统相比,共享存储多处理器对互连结构性能具有独特的要求:
        1. 消息非常短。许多消息是一致性协议的请求和响应,但不包含数据,也有一些消息包含少量(高速缓存块大小的)数据,这些数据在当前主流系统中为64或128字节。
        2. 消息生成很频繁,因为每个读或写缺失都可能生成涉及几个节点的一致性消息。
        3. 由于消息是因处理器读或写时间而生成的,所以处理器隐藏消息通信延迟的能力相对较低。
        4. 拓扑(或网络的形状)大部分是静态的。

因此,共享存储多处理器互连结构必须提供非常低的延迟和节点之间的高带宽通信,并且针对小的和几乎均匀大小的分组进行过优化。

共享存储多处理器互连网络应当被设计成具有尽可能少的通信协议层,以便最小化通信延迟。例如,互连网络可以仅使用2个协议层次:链路级协议确保单个分组在单个链路上的可靠传送,节点级协议确保分组从一个节点到另一个节点的可靠传送。其次,通信协议应以精简为基本特征。例如,复杂的策略(端到端和涉及丢弃分组的流量控制)可能会对性能造成损害。相反,应该仅在链路级执行流量控制,以避免接收端缓冲区溢出。此外,通常应避免丢弃分组,并且路由协议不需要维护和查找大型的路由表。

在设计共享存储多处理器的互连网络时需要考虑的另一个特性是它如何与多处理器的其他组件交互,如高速缓存一致性和存储一致性模型。

由于性能、可扩展性和成本要求的差异,通过对于某个系统的最佳互联网络对于其他系统可能不是最佳的。

互连网络将多个处理器紧密连接在一起,形成了共享存储多处理器系统,一个或一组处理器封装在一个节点中,这样的节点可以由一个或多个处理器核、高速缓存或层次结构的高速缓存、存储器、通信控制器组成,通信控制器是通过路由器和网络结构接口的逻辑,而路由器通过连接到其他路由器以形成网络。

两台路由器之间的物理线路称为链路。链路可以是单工的,即数据只能在一个方向上发送,或者是双工的,即数据可以在两个方向上发送。互连网络的一个重要特征是网络的形状,称为网络拓扑。

11.1 链路、信道和延迟

链路是连接两个节点的一组导线。在一个周期内可以传输的最小数据称为Phit。Phit通常由链路的宽度确定。例如一条10位宽的链路可以容纳1字节的(8位)Phit,而剩余的2位用于控制信号或奇偶校验信息。然而,数据是以称为Flit的链路级流量控制单元位单位传输的。Flit可以由一个或多个Phit组成,这些Phit作为单个流量控制单元必须用几个时钟周期来传输。接收端可以同意或者拒绝接收一个Flit的数据,这基于接收端可用的缓冲区大小和所用的流量控制项协议。

流量控制机制工作在链路级,以确保数据不会被过快地接收,避免接受路由器的缓冲区溢出。在有损网路中,缓冲区溢出会导致Flit被丢弃并重新传输,从而导致延迟。因此,不会丢弃和重传Flit的无损网络成为首选。stop/go协议的阈值有发送和接收两端之间的往返时延确定。

考虑到数据传输将通过不止一条链路时,有两种网络交换策略。一种策略是电路交换,在传输数据之前为发烧和接收端“预定”链接。这意味着发送端首先发送命令以建立到接收端的连接,传输路径上的路由器将为消息传输预留适当的输入和输出端口以及端口之间连接。一旦连接完成,接收端应答建立完成的消息。此后,发送端可以向接收端发送消息。从这里开始,消息可以非常高效地传播,它不需要被分成多个小的分组,单个数据包也不需要包含路由信息。由于输入端口和输出端口连接已经预留,因此数据包在每个路由器也不会受到大多路由延迟的影响。

另外一种交换策略是分组交换。对于分组交换,当在信道上传输大消息时,消息会分段并封装成分组。消息的每个部分都变成一个分组的有效载荷,并增加头部和尾部进行封装。这种分段允许消息以彼此独立的部分发送,分组的头部和尾部确保可靠传递,并且抱哈足够的信息以便在目的地将分组重新组装成原始消息。分组交换中的分组头部具有更多信息,包括目的地和可能的路由信息。分组在链路上以Flit的粒度传输,根据分组相对于Flit的大小,可能需要多个Flit来传输分组。分组的头部和尾部包含诸如校验和之类的信息,校验和是一组冗余的二进制位串,允许检测或校正分组中因传输错误而改变了的二进制位。

对比电路交换和分组交换,电路交换会因为建立连接而导致显著的延迟,同时,一旦连接建立,如果不立即使用,会使连接的利用率下降。此外,如果有新的连接与已有连接冲突,需要等到已有连接释放,这会给其他通信或连接带来显著的延迟。然而,电路交换也有其优势:连接建立之后,消息传递速度非常快,因为路由器只需要将消息转发给输出端口,而无需决定路由或资源分配;只需要少量的缓冲,因为消息会转发到下一个路由器,在那里有足够的资源来接收信息。更低的延迟、更简单的路由逻辑和最小的缓冲区降低了路由器的功耗。分组交换的情况正好相反。分组交换会在每个路由器引发的显著路由延迟和功耗,但不会引入连接建立或拆除的开销,并且可以每个分组的基础上管理资源,能够更容易地叠加许多不同的通信任务。

11.2 网络拓扑

网络拓扑是互连网络的形状,即节点是如何互连在一起的。因为它会显著影响网络性能(时延、距离、直径、对分带宽)和成本。网络拓扑的选择通常需要再设计阶段的早期决定。

对于小型的多处理器,有时单个路由器就足以互连所有处理器。但是,当节点数大于或等于单个路由器可以连接的节点数时,路由器必须通过网络拓扑的形式相互连接。

几种常见拓扑类型:

在树中,节点位于叶子上,彼此不直接相连,它们通过中间路由器连接。树存在有限带宽问题,根级链路接收的流量多于叶级链路。为了避免根级链路成为系统的瓶颈,可以使用两种相关的拓扑。一种是胖树,与低层级链路相比,胖树具有更胖的高层级链路。另一种是蝶形网络,它实际是一种具备多个高层中间路由和链路拷贝的树。由于蝶形网络中各级链路和路由器的数量相等,它在根级链路不会受到有限带宽的影响。

11.6 多核设计问题

关于单个芯片上互连核称为片上网络NoC体系结构。虽然芯片间的互连网络和NoC在网络拓扑、路由、死锁和路由器体系结构方面面临类似的设计问题,但NoC具有多核特有的设计特性。

NoC特性:
        1. 布线:用于互连的布线通常限制在上层的几个金属层,这些金属层是与电源和时钟信号分发网络共享的。
        2. 链路延迟和路由器延迟关系:在芯片间互联的场景下,链路延迟与路由器延迟相比是显著的。在NoC中设计低延迟、高度流水化的路由器变得越来越重要。
        3. 功耗:NoC将于核或高速缓存等其他组件竞争芯片功耗预算,因此选择低功耗NoC设计非常重要。

当前设计问题:
        1. 不规则拓扑:在某些情况下,多核芯片可以集成异构核、异构高速缓存和各种IP块。导致异构通信带宽的增加。
        2. 服务质量:对QoS的需求随着多核多样性的增加而增加。
        3. 功耗管理:用于NoC的功耗管理技术可分为减少静态功耗和动态功耗,为了减少静态方面,一种可能的技术是响应网络流量的突发和骤降而对端口和链路进行功率门控。缺点是遭受高延迟的风险,因为组件需要一定时间来再次通电。为了减少动态方面,一种肯呢个的技术是动态电压调节,当路由器或链路的带宽利用率低时,调低它们的电压。
        4. 电路交换:优点是连接一旦建立,消息可以高效传输,具有最小的缓冲量,同时由于不需要对路由器资源进行仲裁而具有非常小的路由器延迟。缺陷是带宽利用率低以及连接建立延迟高。但是它在某些情况下更具有吸引力:高路由器延迟、多跳和较大的分组。

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

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

相关文章

react hook使用UEditor引入秀米图文排版

里面坑比较多,细节也比较多 以下使用的是react 18 ice3.0,使用其他react脚手架的配置基本相同,例如umi4 1.下载UEditor 进入UEditor仓库,找到版本v1.4.3.3,点击进去 接着下载ueditor1_4_3_3-utf8-jsp.zip版本 下载好…

CentOS 7 定时任务 + Shell 脚本自动备份 MySQL 数据库(一次 Halo 建站数据库丢失的教训)

文章目录 前置条件创建备份脚本设置 Cron 任务测试备份脚本备份安全和维护一键恢复自动清除备份文件常见问题总结 TIP: 原文链接阅读体验更佳:CentOS 7 自动备份 MySQL 数据库 最近抽空简单搭了一个博客,目前内容较少,后续陆续发…

Supermaven惊艳亮相:300,000个Tokens的超大上下文窗口,能否超越Copilot成为代码补全新王者?

当我看到GitHub宣布Copilot的年经常性收入突破1亿美元时,我意识到代码补全技术已经迈入了新的时代。 大型模型的崛起使得这些工具变得更加智能和实用,吸引了越来越多的开发者加入AI编码的行列。 在这个背景下,Supermaven发布了。这是第一个…

TikTok直播网络不稳定是什么原因

在当今社交媒体平台中,TikTok以其独特的视频内容和社交互动功能而备受欢迎。然而,尽管TikTok为用户提供了直播功能,但一些用户可能会遇到TikTok直播网络不稳定的问题。那么,TikTok直播网络不稳定的原因是什么呢?以下是…

(每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第11章 项目成本管理(五)

博主2023年11月通过了信息系统项目管理的考试,考试过程中发现考试的内容全部是教材中的内容,非常符合我学习的思路,因此博主想通过该平台把自己学习过程中的经验和教材博主认为重要的知识点分享给大家,希望更多的人能够通过考试&a…

关于Arrays类中asList(T... a)泛型参数辨析

前提 我们需要知道两点 (1)T指的是泛型类型,它只能是引用类型,何为引用类型?在java中除了基本数据类型(如byte、short、int、long、float、double、boolean、char)之外的所有类型都是引用类型…

车载电子测试学习内容

搜集了一些车载测试的学习内容,大家可以参考。

从ChatGPT到Sora,来了解大模型训练中的存储

1 从chatGPT到Sora 2022年底,OpenAI推出人工智能聊天机器人ChatGPT,开启了大模型领域的“竞速跑”模式。2024年2月15日,随着视频生成模型Sora的横空出世,OpenAI再度掀起热潮。 Sora将视频生成内容拉到了一个全新的高度&#xff0c…

osmnx笔记:从OpenStreetMap中提取点和边的shp文件(FMM文件准备内容)

1 导入库 import osmnx as ox import time from shapely.geometry import Polygon import os import numpy as np 2 提取Openstreetmap 的graph Gox.graph_from_place(Huangpu,Shanghai,China,network_typedrive,simplifyTrue) ox.plot_graph(G) 3 提取graph中的点和边 gdf…

冯诺依曼体系结构 计算机组成的金字塔

01 冯诺依曼体系结构:计算机组成的金字塔 学习计算机组成原理,到底是在学些什么呢?这个事儿,一两句话还真说不清楚。不过没关系,我们先从“装电脑”这个看起来没有什么技术含量的事情说起,来弄清楚计算机到…

4 种策略让 MySQL 和 Redis 数据保持一致

先阐明一下 MySQL 和 Redis 的关系:MySQL 是数据库,用来持久化数据,一定程度上保证数据的可靠性;Redis 是用来当缓存,用来提升数据访问的性能。 关于如何保证 MySQL 和 Redis 中的数据一致(即缓存一致性问…

2_怎么看原理图之协议类接口之UART笔记

通信双方先约定通信速率,如波特率115200 一开始时,2440这边维持高电平 1> 开始发送时,由2440将(RxD0)高电平拉低,并持续一个T的时间(为了让PC机可以反应过来),T1/波…

汇编语言movs指令学习

字符串传送指令(Move String Instruction) movs 该指令是把指针DS:SI所指向的字节、字或双字传送给指针ES:DI所指向内存单元,并根据标志位DF对寄存器DI和SI作相应增减。该指令的执行不影响任何标志位。 记不清这指令是8086就有的,还是386以后新加的&…

C# OpenVINO PaddleSeg实时人像抠图PP-MattingV2

目录 效果 项目 代码 下载 C# OpenVINO 百度PaddleSeg实时人像抠图PP-MattingV2 效果 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using System; using System.Diagnostics; using System.Drawing; using System.Security.Cryptography; using System.Text; us…

一种新型的AlGaN/GaN HEMTs小信号建模与参数提取方法

来源:A new small-signal modeling and extraction methodin AlGaN/GaN HEMTs(SOLID-STATE ELECTRONICS 07年) 摘要 本文提出了一种新型的用于GaN HEMTs(氮化镓高电子迁移率晶体管)的小信号等效电路,包含2…

Edting While Playing 瓦片地图编辑器开发整合导入自定义贴图 DEVC++ VS2022都可复制粘贴运行

接 多种类型图片模块读取-CSDN博客 与 Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor-CSDN博客 整合实现平面贴图纹理自定义 操作同上 导入步骤: 先运行程序,然后关闭,同目录下有四个文件夹, 把…

模型评估方式

文章目录 一、有监督-分类模型1、混淆矩阵2、分类模型的精度和召回率3、ROC曲线与AUC 二、有监督-回归模型1、均方误差MSE2、 R 2 R^2 R2决定系数3、回归模型代码示例 三、无监督模型1、kmeans求解最优k值的方法:轮廓系数、肘部法2、GMM的最优组件个数:A…

Vue+SpringBoot打造快递管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …

vue3中ref创建变量取值时自动补充 .value 插件 volar

插件 TypeScript Vue Plugin (Volar) 设置中配置

进阶了解C++(2)——复杂的继承及其底层原理

在上篇文章中,给出了关于继承这部分的相关知识,例如继承的定义,继承与默认成员函数等。本文将针对复杂的继承方式, 1. 复杂的继承方式: 1.1 单继承: class Professor { public:int _age;string _name; }…