片上网络(1)概述

news2024/11/18 23:24:31

前言

NoC:On-Chip Networks,片上网络。

        由于多核乃至众核时代的到来,用于连接它们的可扩展、低延迟、大带宽的通信结构变得至关重要。

        在核心较少时,总线Bus和矩阵/交叉开关Crossbar是主要的互联结构。总线可以提供较低的传输延迟,但是无法提供足够的带宽。Crossbar具有大的带宽和相对较低的延迟,但是受限于面积和功耗方面的表现,规模扩展性不佳。

        因此,片上网络正迅速取代总线和矩阵开关,成为多核芯片中普遍存在的通信结构。

1.片上网络的演变

        片上网络,作为广义的互连网络的一个子集,可以看作是用于实现节点之间数据传输的可编程系统。片上网络可以被视为一个系统,是因为它集成了许多组件,包括通道(channel)、缓冲区(buffer)、交换单元(switch)和控制(control)

  当节点数量很少时,可以使用专用的布线来连接它们。然而,当片上节点数量激增时,使用专用布线是不可行的,这是因为直接连接每个节点所需的布线量过高。

  在计算核心数量较少的设计中,可以采用总线和交叉开关。在传统的多处理器系统和更新的多核架构中,基于总线的系统只能扩展连接数量不多的处理器。这种有限的可扩展性是因为添加到总线上的计算核心越多,这些计算核心对总线的竞争就越大,从而使总线流量迅速饱和。在这种情况下,每个连接到总线的处理器很难获得足够大的带宽。而且,驱动长距离物理连线的总线所需的功耗也比较大。此外,随着计算核心数量的增加,集总式仲裁器(arbiter)也会带来额外的仲裁延迟。为了解决这些问题,复杂的总线设计采用了分段(segmentation)、分布式仲裁(distributed arbitration)、分离传输(split transactions)等技术,使其越来越类似于基于开关结构的片上网络。

  交叉开关解决了总线的带宽问题,并已用于少量节点的片上互连。但是,随着计算核心数量的增加,它们需要占用较大的芯片面积,并且产生更大的功耗,因此其可扩展性并不理想。例如,某A处理器采用8×9 的扁平交叉开关互连所有计算核心,其存储控制器的面积开销几乎等同于单个计算核心。为了应对该问题,层级交叉开关(hierarchical crossbar)应运而生,其中计算核心采用簇(cluster)的方式进行组织——一个簇构成一个节点,并且使用多级较小规模的交叉开关来提供不同层级间的互连。举例来说,对于某B架构中的16个计算核心,如果使用相同的扁平交叉开关架构,则需要一个 17×17的交叉开关,其面积开销至少比最终采用5×5的层级交叉开关设计大8倍(5×5的层级交叉开关设计:每4个计算核心组成一个簇,簇和簇之间通过5×5 的交叉开关进行连接)。这些复杂的交叉开关结构,类似于多跳(multi-hop)片上网络,其中每一跳完成一层交叉开关内的数据传输。

  由于多种原因,片上网络是总线和交叉开关最有吸引力的替代方案。首先,片上网络为片上通信提供了一种可扩展的解决方案,因为它们能够使用较小的面积提供可扩展的带宽,并且随着节点数量的增加,提供近似线性的带宽增幅。其次,片上网络的布线非常高效,在相同链路上复用不同的通信流,进而提供更大的传输带宽。最后,具有规则拓扑结构的片上网络具有固定长度的局部短互连,因此,可以使用规则的可复用结构进行模块化优化和构建,从而减轻了验证的负担。

2.片上网络的基本构建模块

  片上网络的设计可以分解为各种构建模块: 拓扑、路由、流控、路由器微体系结构,以及链路结构。本书的其余部分是按照这些构建模块顺序组织的,我们在此简要介绍每一个模块。

1. 拓扑

  片上网络由传输通道和路由器(router)节点组成。网络拓扑确定了网络中节点和通道之间的物理布局和连接。

2. 路由

  对于给定的拓扑,路由算法确定消息从源节点到达其目的节点所通过的网络路径。路由算法平衡流量(或负载)的能力直接影响了片上网络的吞吐量和性能。

3. 流控

  流控制是指在消息通过网络时如何为消息分配资源。流控制机制负责为等待的数据包分配(和解除分配)缓冲区和通道带宽。与基于以太网技术的片外网络相比,大多数片上网络设计被认为是无损设计①。

4. 路由器微体系结构

  常见的路由器微体系结构由以下组件组成:输入缓冲区(input buffer)、路由器状态(route r state)、路由逻辑(routing logic)、分配器(allocator)和交叉开关(crossbar)。路由器功能通常设计成流水线结构,以提高吞吐量。片上网络中经过路由器产生的延迟是通信延迟的主要部分。因此,大量的研究工作通过减少路由器流水线级数来降低网络延迟。

5. 链路结构

        大多数片上网络原型使用传统的全摆幅逻辑和带有中继器(repeater)的连线。当传输数据1(高电平)时,全摆幅线从0V(接地)提高到电源电压;当传输数据0(低电平)时,全摆幅线从电源电压降低到0 V(接地)。对于较长的连线,降低延迟的有效方法是插入等间隔的中继器(反相器或缓冲区),使延迟能够与中继器的数量(而不是长度的二次方)成线性关系。

3.性能和成本

  在讨论不同的片上设计要点和相关研究时,重要的是要考虑网络的性能和成本的均衡。性能通常使用网络传输延迟或所接受的流量来衡量。粗略的性能估算经常使用零负载延迟(zero-lo ad latency)作为指标,即当网络中没有其他数据包传输时,数据包经历网络所需要的时间。零负载延迟提供了平均消息延迟的下限。可以通过平均传输距离(以网络跳数给出)乘以每一跳所需要的延迟,来计算零负载延迟的具体数值。

        除了提供低延迟的通信,网络还必须提供高吞吐量。因此,性能也通过其吞吐量来衡量。高饱和吞吐量表明,在所有数据包经历非常高的延迟之前(未饱和时),网络可以接受大量的流量,维持更大的带宽。下图展示了片上网络的延迟和吞吐量的关系曲线,标注了零负载延迟和饱和吞吐量。

        与片上网络相关的两个最主要的开销是面积和功耗。


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

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

相关文章

云原生Kubernetes:pod基础与配置

目录 一、理论 1.pod 2.pod容器分类 3.镜像拉取策略 4.pod 的重启策略 二、实验 1.Pod容器的分类 2.镜像拉取策略 三、问题 1.apiVersion 报错 2.pod v1版本资源未注册 3.格式错误 4.取行显示指定pod信息 四、总结 一、理论 1.pod (1) 概念 Pod是kubernetes中…

pgzrun 拼图游戏制作过程详解(4,5)

4. 将小拼图位置随机打乱 建立swap_Square(i,j)坐标互换函数 将Gird[i]和Gird[j] 中的小拼图信息进行互换 def swap_Square(i,j): # 两个拼图的位置互换temp_posGird[i].posGird[i].posGird[j].posGird[j].postemp_pos 导入随机数模块 import random 随机抽取…

ruoyi-nbcio移植过程中的一些问题记录

1、打包去掉测试出现 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test 错误 在pom.xml里增加下面 去掉测试 <!--添加配置跳过测试--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId…

2023.05.27系统分析师考试案例分析及解析

案例分析真题1 阅读以下关于软件系统分析与建模的叙述&#xff0c;在纸上回答问题1至3. 说明: 某软件公司拟开发一套汽车租赁系统&#xff0c;科学安全和方便的管理租赁公司的各项业务&#xff0c;提高公司效率&#xff0c;提升利率。注册用户在使用系统镜像车辆预约时需执行…

利用Windows搭建Emby媒体库服务器,轻松实现无公网IP的远程访问

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中&#xff0c;观看视频绝对是主力应用场景之一&…

css+js:实现tab切换线条跟随效果

目录 实现效果原理解析代码实现 实现效果 使用css和js实现一个tab切换的效果 原理解析 如上图 红色框框代表盒子,总宽度记作 totalWidth绿色框框代表每一项,宽度记作itemWidth深蓝色框框代表的是下划线,宽度记作activeWitdh 那么我们可以得到线的左边距是每一项的左边距加上…

通讯网关软件002——利用CommGate X2HTTP-U实现HTTP访问OPC UA Server

本文介绍利用CommGate X2HTTP-U实现HTTP访问OPC UA Server。CommGate X2HTTP是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;实现上位机通过HTTP来获取OPC UA Server的数据。 【解决方案】设置网关机…

c++ 中的函数指针

以下图片演示了c中函数指针的用法。如下图可见&#xff0c;把函数地址赋值给函数指针&#xff0c;用函数名或者函数名的地址&#xff0c;都可以&#xff0c;c编译器不报错。即 ptr f 和 ptr &f 都对。但准确的话&#xff0c;函数名就是地址&#xff0c;在编译时候&#x…

19 视图定义 union 是根据第一个 select 字段列表顺序,来进行 merge 的

前言 这个问题主要是 在之前存在这样的一个问题, 在生产环境上面 按照 我的直观理解, mysql 应该是根据 key 进行 merge, 所以 select 的顺序应该是 “不重要”??, 但是 结果我理解错了 然后 线上的查询也出现了问题, 发现很奇怪的问题, 明明 key01 列 是 id, 但是有一部…

【Linux问题】This account is currently not available.

在切换mysql用户时候出现下面问题 Last login: Fri Sep 15 09:32:46 CST 2023 on pts/0 This account is currently not available.查看 mysql用户信息 cat /etc/passwd | grep mysql他是 mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin把 /sbin /nologin 改成 /b…

使用阿里PAI DSW部署Stable Diffusion WebUI

进入到网址https://pai.console.aliyun.com/里边。 点击创建实例。 把实例名称填写好&#xff0c;选择GPU规格&#xff0c;然后选择实例名称是ecs.gn6v-c8g1.2xlarge。 选择stable-diffusion-webui-env:pytorch1.13-gpu-py310-cu117-ubuntu22.04&#xff0c;然后点击下一步。…

云原生Kubernetes:K8S集群使用带凭证的harbor仓库

目录 一、理论 1.部署harbor 创建私有项目&#xff0c;使用凭证登录 二、实验 1.部署harbor 创建私有项目&#xff0c;使用凭证登录 三、问题 1.harbor页面无法打开 2.生成harbor 登录凭据资源清单报错 3.tomcat-deployment 资源生成报错 一、理论 1.部署harbor 创建私…

CSV文件打开乱码解决方案

思路 借助第三方软件转码即可。 案例 打开CSV文件显示如下&#xff1a; 导入到python中&#xff0c;借助pandas文件读取 另存为csv文件格式即可 代码如下&#xff1a; import pandas as pd df pd.read_csv(rD:\BaiduNetdiskDownload\csv&xlsx版数据\城市产业创新指数…

人工智能现在可以从文本中生成具有CD音质的音乐,而且只会越来越好

想象一下&#xff0c;键入“戏剧性的介绍音乐”并听到一首飙升的交响乐&#xff0c;或者编写“令人毛骨悚然的脚步声”并获得高质量的音效。这是稳定音频的承诺&#xff0c;一个文本到音频的人工智能模型周三宣布由能合成立体声的稳定人工智能44.1千赫来自文字描述的音乐或声音…

antv-G6知识图谱安装--使用(实例)--连接线修改成动态,并添加跟随线移动的光圈,设置分支跟踪定位功能

这系列文章主要是完成一个图谱的自定义修改&#xff08;最近太忙了长篇分段更新自己使用流程&#xff09; 1. 连接线修改成动态&#xff0c;并添加跟随线移动的光圈 2. 自定义卡片样式和文字内容 3. 自定义伸缩节点的样式&#xff0c;并添加动画样式 3. 自定义弹窗样式 4. 自定…

Redis缓存更新策略、详解并发条件下数据库与缓存的一致性问题以及消息队列解决方案

0、前言 我们知道&#xff0c;缓存由于在内存中&#xff0c;数据处理速度比直接操作数据库要快很多&#xff0c;因此常常将数据先读到缓存中&#xff0c;再进行查询、更新等操作。 但与之而来的问题就是&#xff0c;内存中的数据不仅没有持久化&#xff0c;而且需要保证…

Dajngo02_第一个Django案例

Dajngo02_第一个Django案例 经过之前学习&#xff0c;我们已经可以创建Django环境 现在开始尝试快速使用Django开发一个案例 案例&#xff1a;利用Django实现一个查看当前时间的web页面。 在django中要提供数据展示给用户,一般情况下我们需要完成3个步骤&#xff1a; 在urls.…

如何选择合适的预测性维护工具和平台

随着技术的不断进步&#xff0c;预测性维护&#xff08;Predictive Maintenance&#xff0c;简称PdM&#xff09;已经成为许多企业提高生产效率、减少停机时间和维护成本的核心策略。然而&#xff0c;选择适合自己业务需求的PdM工具和平台可能并不容易。本文将为您提供一些关键…

传统机器学习总结以及深度学习初识

传统机器学习总结以及深度学习初识 文章目录 前言一、传统机器学习总结1.1. 监督学习算法&#xff08;Supervised Learning&#xff09;1.2. 无监督学习算法&#xff08;Unsupervised Learning&#xff09; 二、深度学习初识三、github与gitee的介绍3.1. GitHub&#xff1a;3.2…

Sqlserver 监控使用磁盘空间情况

最近遇到一个小问题&#xff1a;为了保存以往的一些数据&#xff0c;间了大量临时表&#xff0c;导致SQLserver 数据增长过快&#xff0c;不得不想个办法监控磁盘空间使用情况。 网上一般有几种办法&#xff1a; 一是使用 dm_os_volume_stats函数&#xff0c;缺点是 无法获取非…