片上网络NoC(3)——拓扑指标
目录
一、概述
二、指标
2.1 与网络流量无关的指标
2.1.1 度(degree)
2.1.2 对分带宽(bisection bandwidth)
2.1.3 网络直径(diameter)
2.2 与网络流量相关的指标
2.2.1 跳数(hop count)
2.2.2 最大通道负载(maximum channel load)
2.2.3 路径多样性(path diversity)
三、总结
一、概述
片上网络的拓扑(topology)确定了网络中节点和通道之间的物理布局和连接。拓扑对网络的整体成本效率(cost-performance)有相当重要的影响。拓扑决定了一条消息的跳数或经过的路由器个数,以及每跳经过的互连线的物理距离,因此会对网络延迟产生显著的影响。因为信息经过路由器(router)和链路(link)需要消耗能量,所以拓扑对跳数的影响会直接反映在网络的功耗方面。此外,拓扑决定了节点之间可用路径的总数,从而影响网络扩散流量及满足带宽需求的能力。拓扑的实现复杂度取决于两个因素:每个节点上的链路数量(即节点度)和在芯片上布局拓扑的难易程度(即所需的导线长度和金属布线层数)。
总线是最简单的拓扑之一,它使用一个共享的通道来连接一组组件。总线上的所有组件都可以观察到总线上的每一条消息。因此,总线是一种有效的广播方式。然而,由于不断增加组件会造成共享通道趋近饱和,总线的可扩展性是十分受限的。
在本文中,我们将重点研究交换拓扑(switched topology)。在交换拓扑中,一组组件通过路由器和链路进行连接。
二、指标
在设计片上网络时,首先需要考虑拓扑。对于拓扑设计,有几个重要的指标来对拓扑进行一个直觉性的解释。下图中给出了几种常见的简单拓扑结构:

2.1 与网络流量无关的指标
首先我们考虑一组在设计阶段考虑的、与网络流量无关的指标。
2.1.1 度(degree)
一个拓扑的度表示每个节点拥有的链路数量。以上图为例,ring结构的度为2,tours结构的度为4,mesh结构比较特殊,其中处于不同位置节点的度是不同的。
度是一个可以有效衡量网络开销的指标,节点的度越大,表示节点路由器需要更多的端口。相应地,路由器的实现复杂度及面积和功耗都会有所增大。我们把每个路由器的端口数称为路由器基数(router radix)。
2.1.2 对分带宽(bisection bandwidth)
对分带宽指的是将网络划分成两个相同部分后,两部分之间的通信带宽。(一个网络通常很难划分成完全相同的两部分,这里的对分一般只要求近似相同,通常只要求对分后的网络各个维度上的节点数相等或只能在一个维度上节点数相等。)还是以上图为例,穿过ring结构的对分线的链路数量为2,穿过mesh结构的对分线的链路数量为3,穿过torus结构的对分线的链路数量为6。
这一带宽指标可以有效地反映特定网络在最坏工作情况下的性能,因为对分带宽限制了可以从系统一端移动到另一端的总数据量。另外,这一指标同时也表示了实现片上网络时所必需的全局连线数量,所以它也可以用来衡量网络的开销。相当于评价片上网络而言,对分带宽其实并不能很好地评价片上网络,因为片上网络的全局连线资源同芯片与片外通信的引脚带宽资源相比,连线资源要丰富得多。
2.1.3 网络直径(diameter)
网络直径指的是拓扑中任意两个节点之间的最短路径组成的集合中的最大值(即网络中所有源—目的节点对的最短路径中的跳数最大值)。例如,之前例子中的ring结构和mesh结构的网络直径为4,torus结构的网络直径为2。在没有链路竞争的情况下,网络直径可以作为衡量拓扑中最大延迟的指标。
2.2 与网络流量相关的指标
接下来,我们定义一组和网络流量(traffic,指源—目的节点对之间的通信)有关的指标。
2.2.1 跳数(hop count)
我们定义从一个节点路由至另一个节点称为一跳(hop)。跳数是指一条消息从源节点路由到目的节点需要跳的总次数,或者指这条消息所通过的链路总数。
这是一个可以简单有效地反映网络延迟的指标,因为即使在网络内部没有竞争的情况下,网络中的每一个节点和链路还是会引入传输延迟的。网络的最大跳数取决于其直径。除了最大跳数,平均跳数也可以很好地反映网络延迟,其表示网络所有可能的源—目的节点对之间的路径的跳数的平均值。
2.2.2 最大通道负载(maximum channel load)
这一指标可用于估计网络所能支持的最大带宽,或者每个节点在网络饱和前每秒可注入的最大比特数。最大通道负载与最大注入带宽(maximum injection bandwidth)之间存在如下关系。
最大注入带宽=1/最大通道负载
直观上,想要估计网络能够支持的最大带宽,首先需要确定在特定流量模式下网络中哪个链路或通道最拥挤,因为该链路将限制整个网络的带宽。在均匀随机流量下,限制网络带宽的瓶颈链路大多情况下是将网络对分切割后连接切割后两部分网络的链路。接下来估计该通道负载。由于在设计的早期阶段,我们无法得知通道的具体使用情况(每个通道有多少个实际的物理互连及每个互连的带宽大小),所以我们需要一个能够相对地测量通道负载的指标,即注入带宽相对系数。所以,当我们说通道负载为2时,意味着该通道负载是注入带宽的两倍。
举例来说,假设通道负载是 2,那么如果每个节点的每个时钟周期将一个flit(flow control unit,流控制单元,可以认为时流控制中最小粒度数据单元)注入网络,则意味着会出现两个flit在同一时钟周期内都需要穿过该通道的情况。如果这个通道每个时钟周期只能处理一个flit,则这个通道会成为瓶颈通道。这个瓶颈通道会将网络的最大注入带宽限制为链路带宽的一半,即每个节点最多可以每隔一个时钟周期向网络中注入一个flit(而不是每周期注入一个)。由于每个通道工作时的实际负载量一定,因此最大通道负载越大,相应的网络最大注入带宽越小。
2.2.3 路径多样性(path diversity)
在给定源节点和目的节点的前提下,如果这个节点在对某个拓扑中拥有多条最短路径,而在另一个拓扑中只有一条 最短路径,则认为前者的拓扑具有更大的路径多样性。
拓扑中的路径多样性使路由算法在处理负载均衡问题时具有更大的灵活性,从而通过减小通道负载,提高了网络吞吐量。路径多样性还使得数据包能够拥有绕过网络中故障的潜力。
三、总结
本文中,我们介绍了片上网络的拓扑指标,这些指标可以分成与网络流量无关的指标和与网络流量有关的指标,这些指标给出了拓扑及其性能的直觉性描述。
相关文章:
片上网络NoC(3)——拓扑指标
目录 一、概述 二、指标 2.1 与网络流量无关的指标 2.1.1 度(degree) 2.1.2 对分带宽(bisection bandwidth) 2.1.3 网络直径(diameter) 2.2 与网络流量相关的指标 2.2.1 跳数(hop coun…...
二叉树 ---- 所有结点数
普通二叉树的结点数: 递归法: 对二叉树进行前序or后序遍历: typedef struct Tree {int data;Tree* leftChild;Tree* rightChild; }tree,*linklist; //计算普通二叉树的结点数 int nodenums(linklist node) {if(node nullptr) return 0; …...
步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储
博客原文 文章目录 前言集群环境nfs 环境搭建pod 挂载 nfs架构图 pvc 方式挂载 nfs架构图 storageclass 方式动态申请 pv架构图 参考 前言 持久化卷(Persistent Volume, PV)允许用户将外部存储映射到集群,而持久化卷申请(Persist…...
Stable Diffusion 模型下载:Disney Pixar Cartoon Type A(迪士尼皮克斯动画片A类)
本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...
Modelsim10.4安装
简介(了解,可跳过) modelsim是Mentor公司开发的优秀的HDL语言仿真软件。 它能提供友好的仿真环境,采用单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速…...
Java基于微信小程序的医院核酸检测服务系统,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
VC++ 绘制折线学习
win32 有三个绘制折线的函数; Polyline,根据给定点数组绘制折线; PolylineTo,除了绘制也更新当前位置; PolyPolyline,绘制多条折线,第一个参数是点数组,第二个参数是一个数组、指…...
速盾:dns解析和cdn加速的区别与联系
DNS解析和CDN加速是两种不同的网络技术,但在网站访问过程中起到了相互协作的作用。 首先,DNS解析(Domain Name System)是将域名转换为IP地址的过程。当用户输入一个网址时,计算机会先向本地DNS服务器发送一个查询请求…...
C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据
对上两篇篇的工作C Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个保存按钮,用于保存成绩数据…...
ChatGPT 4:新特性与优势
ChatGPT 4:新特性与优势 一、引言 ChatGPT 4是一款备受瞩目的人工智能模型,它以其强大的语言生成能力和智能回答能力,为用户提供了更高效、更便捷的对话体验。为了能够充分享受ChatGPT 4的各项功能,本文将向您详细介绍其新特性&…...
【教程】MySQL数据库学习笔记(二)——数据类型(持续更新)
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、整…...
Servo的并发模型介绍
Servo是一个由Mozilla Research开发的实验性浏览器引擎,旨在为未来的网页和应用程序提供高性能的渲染。Servo的并发模型是其核心特点之一,它利用现代多核处理器的优势,通过异步编程和并行处理来提高渲染效率和响应性。以下是对Servo并发模型的…...
Vue3大事件项目(ing)
文章目录 核心内容1.大事件项目介绍2.大事件项目创建3.Eslint配置代码风格4.配置代码检查工作流问题: pnpm lint是全量检查,耗时问题,历史问题 5.目录调整6.vue-router4 路由代码解析7.引入 Element Plus 组件库8.Pinia 构建仓库 和 持久化9.Pinia 仓库统一管理 核心内容 Vue3…...
基于spring boot实现邮箱发送和邮箱验证
目录 一、邮箱发送实现1. 开通邮箱服务2. 添加邮箱依赖3.添加配置4.添加邮箱通用类5. 测试类 二、邮箱验证实现1.添加依赖2. 添加配置3.添加controller4. 测试 项目地址: https://gitee.com/nssnail/springboot-email 一、邮箱发送实现 1. 开通邮箱服务 使用qq邮箱、163邮箱都…...
华清作业day56
SQLite特性: 零配置一无需安装和管理配置;储存在单一磁盘文件中的一个完整的数据库;数据库文件可以在不同字节顺序的机器间自由共享;支持数据库大小至2TB;足够小,全部源码大致3万行c代码,250KB…...
【FPGA】VHDL:八段码到8421BCD码转换电路
目录 EDA设计基础练习题 : 实验要求如下: 代码 八段码到8421BCD码转换电路 8421BCD码到八段码转换电路 八段码到8421BCD~运行结果展示 8421BCD转八段码~运行结果展示 特别注意 软件:Quartus II 13.0 (64-bit) 语言:VHDL E…...
docker安装、运行
1、安装 之前有docker的话,需要先卸载旧版本: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装之前需要安装yum工具: sud…...
新型RedAlert勒索病毒针对VMWare ESXi服务器
前言 RedAlert勒索病毒又称为N13V勒索病毒,是一款2022年新型的勒索病毒,最早于2022年7月被首次曝光,主要针对Windows和Linux VMWare ESXi服务器进行加密攻击,到目前为止该勒索病毒黑客组织在其暗网网站上公布了一名受害者&#x…...
qt-C++笔记之判断一个QLabel上有没有load图片
qt-C笔记之判断一个QLabel上有没有load图片 code review! 在Qt框架中,QLabel是用来显示文本或者图片的一个控件。如果你想判断一个QLabel控件上是否加载了图片,你可以检查它的pixmap属性。pixmap属性会返回一个QPixmap对象,如果没有图片被加…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Menu组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Menu组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Menu组件 以垂直列表形式显示的菜单。 子组件 包含MenuItem、MenuItemGroup子组…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
