Topology/Flow Control
单核转多核
向多核的转变的原因
并行限制:单核指令级并行有限制。
功耗限制设计:同样的频率,两倍的晶体管,功耗变成了1.4倍,因此产生了多核设计
Dennard Scaling
面积约束设计:晶体管尺寸缩小,电压缩小,耗电量减少,单位面积功耗基本维持不变。所以只需要关注性能。
Pdyn:动态功耗
Pleak:漏电功耗
dennard sacling失效原因
漏电流增加,导致漏电功耗急剧增加。
限制多核性能的因素
应用程序并行的局限性。
访存,核内通讯
编程的复杂性。
Amdahl定理
加速比:完全串行所需时间 / 并行加速后所需时间
(1-f):只能串行部分比例
f:能够并行部分比例。
S:处理器的个数。
所以当有了S个处理器,并行部分就被分解为f/S。
片上网络
结构
P:处理器
$:Cache
作用
在处理器之间传播缓存一致性消息和缓存行
存在的问题
没有一致的时钟,无法确定哪个存储是最新的。只能通过握手规则判断最新的备份。
如何设计片上网络
拓扑逻辑:网络的结构。如何连接节点
流控:完成路线的方式。
路由器微架构:路由器的设计方式。
路由:消息选择哪条路径
拓扑
拓扑的属性
路由距离:路由时所需的线路数。
直径:最大的路由距离。
平均距离:每两个节点之间的平均距离。
移除多少个节点网络不连通。
等分带宽:最小切割值,反应的是网络的鲁棒性,计算方式为去除最少的链路数,从而将节点分成两份,去除的链路数就是等分带宽。
等分带宽
去除两个链路,网络不连续,等分带宽为2。
假设n个节点
线性array | 环 | |
直径 | n-1 | n/2(若n为偶数) |
平均距离 | n/3 - 1/(3n) | N/4 |
等分带宽 | 1 | 2 |
消息
结构
路由基本单位:数据包(大小限制在64 bits 到 64KB)
流控基本单位:微片。
微片还可以切分为物理微片和逻辑微片。
物理传输数据:一个时钟周期内数据的传输量。
路由算法的特性
确定性路由算法:只要确定源和目的,不管中间如何实现,可能堵塞。
可适应:路上的堵塞程度影响路由(根拥塞程度决定路由)。
最短路径:只选择最短路径。
无死锁:不会产生死锁,所有数据包都可以向前移动。
流控
流控的特性——竞争关系
缓冲的限制
共享带宽以及缓存。
流控协议
无buffer
电路交换模式
基本思想:属于独占模式,只要规定了源和目的,在其间的路径被独占。
好处:实现简单
缺点:发送的报文少,则造成浪费。
丢弃模式
基本思想:两个竞争资源,若没有足够的资源,随机丢弃一个,向源发送报告,让其重新发送。
缺点:流量和缓冲的tradeoff很差
南辕北辙
基本思想:换一条相反的方向的不拥堵的路。故意使得路由远离拥塞点。
缺点:
可能带来活锁。
多次跳跃带来阻塞,因为不断的远离拥塞点,无法前进。
有buffer路由
衡量尺度
吞吐率/时延
缓存利用率
存储转发(包)
以包为基本单位
每次到中间部分就按包存储,有路径就走。没有路径就等待。
优势:其他包可以使用源和目的中间的其他路径。
缺点:以整个包为单位占有资源。每次转发是具有序列化延迟
虚跨交换(包,头分离)
若不要求整包到达。
允许头微片先到,后面的包跟上。但是若头卫片被阻塞,那么整个包就被阻塞。
优点:更低延迟
缺点:仍然是以整包为单位。
虫孔交换模式(微片)
将数据包拆开,以微片为模式传递,也就是通道和缓冲分配给了微片,而不是包。
身体微片与头微片始终保持一致的相对顺序,即使中间间隔比较远。
优点:更小的buffer空间需求。
缺点:可能阻塞通道中间包,其他包无法使用其带宽。
虚通道
虚拟路径模式,每条消息占用虚拟的通道。在一个缓存内有多个队列。
虚拟通道可以被看成通道状态和微片缓冲。
好处:阻塞少。
缺点:让路由器的设计更复杂。
本文来自博客园,作者:Laplace蒜子,转载请注明原文链接:https://www.cnblogs.com/RedNoseBo/p/17282223.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律