1 / 88

第七章 分布共享存储多处理机

第七章 分布共享存储多处理机. 第一节 分布存储与可扩展性. 可扩展通信网络. 一、分布 存储的系统结构. ···. 节点. CA. NIC. 1 、分布 存储的系统 结构 有共享存储、非 共享 存储 2 种. C. M. Shell. P. LD. *NUMA/NORMA 系统与 UMA 系统的 区别: 存储系统 — 一致性模型的实现不同 ( 复杂 ) 通信模型 — 编程 模型、通信辅助部件 ( CA) 的实现不同 同步操作 — 实现方法不同 ( 复杂 ). 回下页. 2 、系统结构相关设计内容.

cecile
Télécharger la présentation

第七章 分布共享存储多处理机

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 分布共享存储多处理机

  2. 第一节 分布存储与可扩展性 可扩展通信网络 一、分布存储的系统结构 ··· 节点 CA NIC 1、分布存储的系统结构 有共享存储、非共享存储2种 C M Shell P LD *NUMA/NORMA系统与UMA系统的区别: 存储系统—一致性模型的实现不同(复杂) 通信模型—编程模型、通信辅助部件(CA)的实现不同 同步操作—实现方法不同(复杂) 回下页

  3. 2、系统结构相关设计内容 (1)存储系统 *Cache一致性:是否支持、协议种类、硬/软分配 *存储一致性:模型种类、对节点硬件/编程模型的限制 (2)通信系统 *编程模型:编程模型的实现(传输协议)、存储一致性的实现 *节点通信:CA结构、通信抽象的实现 (3)同步操作 硬件原语、同步算法的设计(详见上一章) (4)互联网络 拓扑结构、交换策略、路由算法、流控机制(详见第5章) ※本章主要内容: --基于分布共享存储的体系结构 编程模型及CA的实现,一致性模型的设计,时延包容技术 转上页

  4. 二、硬件系统可扩展性 *扩展内容:处理器、存储器、I/O、通信等方面 *扩展目标:有效扩展处理器数量 1、带宽可扩展性 *目标:系统带宽及吞吐率可扩展(节点带宽基本不变) *实现:可扩展IN,分布存储结构,并发事务无全局仲裁 2、时延可扩展性 通信时延—t(n)=t额外+t路由+n/B +t竞争 *目标:节点操作/通信的时延随处理器数(p)增加较少 思考—IN由多级2×2交换开关构成,若忽略IN的网络竞争、t额外=1μs、B=64MBps、t路由0=125ns/跳,p从64→1024时,直通、转发及虫蚀方式传输128B的时延各上升多少? *实现:交换开关快速、拓扑结构合理、网络竞争较小

  5. 3、成本可扩展性 成本—C(p,m)=C固定+C增量(p,m),p为处理器数、m为MEM容量 *目标:固定成本比例适中,增量成本接近线性增长 思考—IN由多级2×2交换开关构成,64个节点时CPU、MEM、IN成本等量平衡(各33.3%),1024个节点时,IN成本上升到多少? *实现:配置可多样性,基本硬件模块化,IN接近线性增长 ※带宽、时延、成本相互关联,设计时需折中 4、物理可扩展性 物理扩展—有芯片级、板级、系统级集成3种方式 紧密封装与松散封装的特点相矛盾 *目标:对资源可扩展性、技术可扩展性均有好处 *实现:在几种方式之间进行折中

  6. 第二节 编程模型的实现 *编程模型的实现: 通信操作通过用户/系统的通信原语实现; 通信原语通过节点的软件/硬件实现 多道程序 共享变量 消息传递 数据并行 编程模型 编译或库层 通信抽象 用户/系统边界 操作系统层 软件/硬件边界 通信硬件层(如NIC) 物理通信介质层(如IN) *(通信)硬件原语的实现: 总线互连—总线控制器通过总线事务实现硬件原语 网络互连—CA通过网络事务实现硬件原语

  7. 串行化的数据包 互连网络 源节点 输出缓冲区 … 输入缓冲区 目的节点 编程模型的操作请求 编程模型的操作处理 一、基本网络事务 1、网络事务 定义:从源输出缓冲区到目的输入缓冲区的单向传输,并在目的节点引发从源节点不能直接看到的动作。 网络事务的驱动与解释方案: ①表示为I/O操作,由软件驱动和解释; ②集成到存储系统中,由专用硬件控制器驱动和解释 网络事务的实现方法,给CA带来较大的设计空间。

  8. 2、网络事务相关内容 (1)网络与总线互连特征的主要区别 (2)网络事务相关内容 格式—由信息在传输链路(不同段宽度可能不同)上串行的方式决定(如定长信息/可变长信息); 输出缓冲—固定格式时(含小的变化范围)可用缓冲区,可变格式时一般用描述符缓冲区; 目的地命名及路由—源提供命名(目的地逻辑地址→物理地址转换)和路由信息(总线事务为目的节点匹配); 回下页

  9. 介质仲裁—无全局仲裁,源端进行局部仲裁后决定是否启动事务,事务所需资源在消息前进过程中逐步分配;介质仲裁—无全局仲裁,源端进行局部仲裁后决定是否启动事务,事务所需资源在消息前进过程中逐步分配; 保护—网络事务前进过程中各网络部件对事务进行检查; 输入缓冲—是多个源所共享的资源,可能发生溢出现象; 动作—目的节点对不同事务有不同动作,对任何事务均会产生一个响应; 结束检测—网络事务非原子性事务,源只有事务已发送到网络的信息,结束信息只能通过编程模型实现(如响应/确认等); 事务排序—节点无法察觉事务的全局顺序性,须对网络事务强加次序约束实现事务的排序(点-点次序的软/硬件实现); 死锁避免—不能产生(发送)事务时,可接收进入的事务; 传输保证—缓冲区满时,可采用抛弃信息并重发或推迟传输直到有空间的方法。 转上页 回下页

  10. 源读 目的地 源写 Load r←[全局地址] Store r→[全局地址] 启动存储器访问 地址变换 局部/全局检查 请求事务 远程存储器访问 应答事务 存储器访问完成 存储器访问 读请求 写请求 读/写请求 等待 等待 读响应/写确认 写确认 读响应 二、共享变量模型实现 命名:共享变量地址常分解成模块(节点)号+局部地址。 操作:包括读、写、读-改-写、作废、更新等。 定序:按操作发出及完成的串行化定序(双向传输)。 1、传输协议—编程模型与网络事务的对应关系 编程模型定序要求采用双向的请求-响应协议。 转上页 回下页

  11. 2、一致性问题解决 Cache一致性问题解决:--相同地址写操作 同一源节点的远程访问发出串行化由源节点保证,远程访问完成串行化由请求-响应传输协议保证; 同一目的节点的远程访问处理与本地访问处理一致,目的节点串行化处理保证不同源节点操作的串行化; 不同源节点远程访问的写传播由Cache一致性协议实现. 顺序一致性问题解决: 同一源节点远程访问的顺序一致性— 通过读响应和写确认来实现发出与完成串行化; 不同节点对远程访问的顺序一致性-- 不能保证,通过节点对接收端的顺序一致性来尽量实现(源端串行化发送,目的端串行化接收和处理)。 转上页

  12. 三、消息传递模型实现 命名:通过消息方式(包括消息信封和消息缓冲区)命名。 操作:包括发送[消息]、接收[消息]等。 定序:按发送及接收原语的操作序定序(单向传输)。 消息传递类型: 同步传送--发送端、相匹配的接收端全部到达,且操作被执行后才可离开,继续后续的操作; 异步互锁传送—发送端、相匹配的接收端任一个到达,即可执行操作,操作完成后(发送请求到达网络、接收操作完成)即可离开; 异步非互锁传送—发送端、相匹配的接收端任一个到达,即可执行操作,操作完成前(发送请求进入缓冲区但未到达网络、接收操作完成)即可离开。 回下页

  13. 源 目的地 Send(Pdest,local,VA,len) Recv(Psrc,local,VA,len) 启动发送 Psrc上地址变换 本地/远程检查 发送准备好请求 远程检查接收条件 应答事务 块数据传输 发送准备好请求 检查 等待 接收准备好应答 数据传输请求 1、消息同步传输协议 发送者启动、接收端维护匹配表的三阶段传输协议: 接收者启动、发送端维护匹配表的为两阶段传输协议。 所有传输协议均假设网络是可靠的,即不需要接收完成后的握手步骤。 转上页 回下页 回下二页

  14. 源 目的地 Send(Pdest,local,VA,len) 启动发送 地址变换 本地/远程检查 块数据发送 接收端检查 接收/缓冲数据 数据传送请求 标志匹配 分配缓冲区 Recv(Psrc,local,VA,len) 2、消息异步传输协议 均由发送者启动、接收端维护匹配表。 非锁定方式传输协议: 若接收标志匹配失败,则将数据存入临时缓冲区,当稍后的接收操作到达时立即处理。 非锁定方式对接收端的缓冲区要求很大。 转上页

  15. 源 目的地 Send(Pdest,local,VA,len) 启动发送 Psrc上地址变换 本地/远程检查 发送准备好请求 远程检查并记录 发送准备好 接收准备好请求 块数据应答 (源→目的地) 发送准备好请求 返回并计算 Recv(Psrc,local,VA,len) 接收准备好请求 检查 数据传送请求 锁定方式传输协议: 同步传送和异步非互锁协议的折中。 锁定方式对接收端的缓冲区要求一般。 转上二页

  16. 四、主动消息机制—硬件原语的低层通信抽象 以受限制的远程过程调用的形式,形成了请求和应答事务 消息的组成: 请求消息包含目标PE地址、目标PE的处理例程标识符(每种消息与一个处理例程对应)、作为处理例程参数的数据等; 应答消息包含源PE地址、源PE的响应例程标识符等。 主动机制的实现: 消息到达通知—通过中断调用或激活线程方式实现,对应程序为用户消息处理程序(可减小系统介入切换开销); 中断调用:用户可直接访问NIC时,可用轮询方式代替 激活线程:可建立服务请求例程栈、用堆栈代替线程切换 数据缓冲管理—数据直接从网络上读入用户数据区。 主动消息机制的应用:可在此基础上建立高级编程模型。

  17. 五、编程模型实现的相关问题 1、输入缓冲区溢出问题 输入缓冲区管理:一般采用固定容量的单个队列进行管理。 溢出处理方法: ①输入缓冲区变大,并为每个源预留部分空间,源在目的端无空间(目的端将流控或否认信息反馈给源端)时可限制发送速度; ②输入缓冲区满时,拒绝接收待进入的事务(事务停留在网络中会向源端产生反向压力),源端感应到反向压力、收到流控信息、否认信息时放慢发送速度。

  18. 2、取死锁问题 产生原因:无法发送(如输出缓冲区满时网络阻塞)时,接收的事务需要一个响应,而响应也无法发送。 死锁解决方法: ①为请求和响应提供两个逻辑上独立的通信网络,如同一方向的虚拟通道中有请求和响应虚拟通道相互独立; ②保证任何节点输出缓冲区总是够用,可通过限制未决事务数量来实现响应的永远可发送(即输出缓冲区事务数量-允许的最大未决事务数量≥1); ③保证任何节点输入缓冲区总是够用(为响应预留缓冲空间),可通过对进入的请求事务抛弃(用否认NACK来应答)、对进入的响应事务吸纳(已预留缓冲空间)并处理实现。 回48页 回28页

  19. 第三节 通信辅助部件CA的实现 编程模型中网络事务的组成: 有消息的组织、发送、接收、解释(处理)四个环节。 网络事务完成与消息处理: 消息的解释方(含网络事务请求方)按硬件通信原语语义(传输协议)解释或/并发出另一个消息; 网络事务请求方根据传输协议可得知网络事务的完成。 CA的设计空间: 设计基础:硬件通信原语(基于本地总线的总线事务); 设计空间:硬件对网络事务中消息的组织和解释程度(消息发送、接收必须由NIC硬件完成)。

  20. 数据 目的地 互连网络 DMA通道 Addr Length Status DMA通道 Addr Length Status CA CA DMA 通 道 DMA 通 道 状态,中断 状态,中断 … Cmd Cmd NIC NIC P P 存储器 存储器 一、物理DMA的CA 硬件不对消息进行组织和解释。 1、CA结构 CA组成:由输入、输出的缓冲队列和DMA通道组成。 DMA通道:包含地址和长度REG、状态REG(含中断使能)。 回下页 回下二页

  21. 消息发送:将陷入OS,OS的特权指令提供地址转换、路由信息、包封装等,仲裁物理介质,并启动DMA通道传输消息。消息发送:将陷入OS,OS的特权指令提供地址转换、路由信息、包封装等,仲裁物理介质,并启动DMA通道传输消息。 消息到达通知:DMA完成消息到存储器的映射后产生中断。 消息解释:通道的中断程序根据I/O或特权指令访问DMA的REG,得到消息头指针,解释消息由用户进程完成。 2、编程模型通信抽象的实现 ①直接在内核支持消息传递的抽象 若有匹配的接收,数据直接拷贝到用户的存储空间; 否则,内核自动分配空间缓冲数据,直到有匹配的接收。 ②用户进程预先分配缓冲区并通知内核在何处接收消息。 转上页

  22. 输入端口 NIC 输入端口 NIC010 NIC011 … … NIC100 NIC111 交换机 … … Addr Length Addr Length DMA 通道 NIC000 NIC001 Addr Addr 存储器总线 NIC100 NIC100 存储器 处理器 3、案例分析—nCUBE/2多处理机 IN:为超立方体静态网络,节点NIC支持路由功能; 节点CA:包含2×log2N个DMA通道(输入、输出独立), 一个交换机(负责各维节点的事务消息转发), 输入通道无长度REG(要求各节点保证消息长度小于存储器缓冲区大小); 通信抽象:网络事务的通信抽象采用主动消息机制。 转上二页

  23. 用户虚拟地址空间 数据 目的地 用户/系统 互连网络 网络输出端口 网络输入端口 … 存 储 器 存 储 器 状态端口 状态, 中断 状态, 中断 P P 二、用户级访问的CA 硬件组织消息,消息解释只能区分系统消息和用户消息。 1、CA结构 消息组织与发送:将用户虚地址空间的某区域映射到NIC相关端口,系统/用户通过访问这些端口来触发CA组织消息,CA组织消息时打上系统/用户标记,进行介质仲裁后发送。 消息接收与解释:系统消息到达时产生系统中断,由OS立即处理;用户消息则加到输入FIFO队列,直到用户进程读取它或产生用户级中断(可借用系统中断处理)。 回下页

  24. 诊断网络 数据网络 控制网络 网络接口NIC 存储器总线 2、案例分析—Thinking Machine CM5多处理机 IN:由两个数据网络、一个控制网络、一个诊断网络组成。 CA结构: NIC有两对数据网络端口和一对 控制网络端口,均以FIFO队列管理; 通过用户虚拟地址空间映射NIC 端口方法,触发NIC启动和接收网络事务; CA维护一张表,指出哪些网络事务标记应引起中断。 CA传输实现:是否采用DMA通道传输,取决于传输产生的总线操作次数及缓冲区能否被缓存等因素。 死锁问题解决: ①两个数据网络分别独立地用于请求和响应; ②通过端到端的流控保证缓冲区不溢出(P22方法②③). 转上页 转22页

  25. 数据 用户信息 目的地 CA CA CA MEM MEM … CP MEM P P CP CP P 三、专用消息处理的CA 硬件(通信处理器CP)组织和解释所有网络事务消息。 1、CA结构 分为CP与P对称、CP集成在NIC中两种结构。 消息组织与发送:P用硬件原语将数据写入共享MEM,CP从共享MEM取数据、组织并发送消息,共享MEM通过标记和锁互斥; 消息接收与解释:CP→MEM、MEM→P。 死锁问题解决:CP未完全消除死锁,需采取相应方法处理。 回下页

  26. 网 络 175Mbps … NIC片 2KB FIFO MEM 64bit、400Mbps Cache一致的Mem bus P CP L1$ i860XP L1$ i860XP DMA 2、案例分析—Intel Paragon多处理机 CA:NIC负责封装消息(不区分系统/用户消息),状态REG的标记位变化将产生中断,DMA对FIFO的读/写不经过Cache; DMA引擎:分别对应于发送和接收,总线仲裁时DMA优先级高于P,传输时DMA监听P的总线操作保持Cache一致性,CA硬件流控在适当时候(如FI、FO满或空等)使DMA暂停并释放总线。 转上页

  27. 数据 Rrsp Src Tag 读 Addr Src Dest Tag 可扩展网络 ② ⑦ ⑥ ③ 伪存储器 伪处理器 伪处理器 伪存储器 … ④ ⑧ ① ⑤ MEM MEM MMU P P MMU LD R←Addr $ $ 四、共享物理地址的CA 硬件组织和解释消息(在总线事务与网络事务间相互转换)。 1、CA结构 CA可看成由伪存储器模块和伪处理器构成。 MEM总线需求:仅是事务拆分型总线不行,必须有两条独立到达MEM的路径,或支持乱序结束的分裂阶段操作,以隐藏时延。 回下页

  28. 伪存储器 伪处理器 Respond Req Req Respond 消息队列 节点间三维双向环网 DMA 块传输引擎 预取队列 5 节点PE:DEC Alpha(64位) 8KBI-Cache+8KBD-Cache 43位虚地址 DTB:32个表项(寄存器) [21位PE#+FC(访问标志)] 32 $ P DTB 特殊寄存器 ·Swaperand ·Fetch&add ·barrier 27 MMU DRAM 32位物理地址 64MB 2、案例分析—CRAY T3D多处理机 PE的总线操作: 总线地址--高5位(DTB索引)+低27位(本地MEM物理地址); 虚-实地址转换—各PE建立全局页表,远程操作不支持分页(低27位物理地址可简单保持到所有节点的总线上); DTB--0#REG总指向本地PE,MMU用LL-SC对REG操作; 转上页 回下页

  29. 读/写操作微程序--①虚-实地址转换②存PE#到DTB③构建临时虚地址(高位为DTB索引)④对临时虚地址执行LD/ST指令。读/写操作微程序--①虚-实地址转换②存PE#到DTB③构建临时虚地址(高位为DTB索引)④对临时虚地址执行LD/ST指令。 CA与总线接口: CA响应地址高5位i非零的总线操作,根据DTB[i]和相关信息组织网络事务,与远程节点通信后给总线返回操作结果; NIC响应网络请求消息,CA产生本地总线操作请求,并将结果住址成消息返回给源节点。 远程操作性能优化: 时延容忍--PE提供零等待写(写缓冲)功能和预取指令,可隐藏网络时延; 块传输--通过DMA提供≤64KB(页大小)的块传输,支持可变长度通信和预取指令。 同步操作的实现:节点设置外部同步REG组,支持同步操作。 转上页

  30. 3、几种CA实现方法比较

  31. 第四节 高速缓存一致性的实现 分布存储结构的Cache一致性实现方法: 串行化特性-- 用网络事务的结束检测代替总线事务的原子性; 用对宿主单元操作的串行化代替总线事务的串行化。 写传播特性-- 用目录协议代替总线监听协议实现写传播和一致性。 Cache一致性的协议: 采用基于目录的作废或更新协议,如MESI协议,本章基本上均基于改进的MESI协议进行讨论。 复杂分布存储结构的Cache一致性实现方法: 不同节点内、节点间互连结构可构成监听-目录、目录-监听、目录-目录的一致性实现方法。

  32. 一、基于目录的一致性协议 1、简单目录组织的协议 节点定义: 宿主节点—主存中含有该块的节点,其他节点该块只在Cache存在; 脏节点—Cache中块的副本处于脏(M)状态的节点; 拥有者节点—保持块副本最新值的节点,需要时提供数据,只有宿主节点或脏节点才可能符合要求; 本地节点或请求节点—发出对块的操作请求的节点。 Cache一致性协议的状态转换图: 与MESI一致或类似。 注意:MESI中的原子性总线事务已变成非原子性的网络事务序列。

  33. 请求节点 请求节点 1 块目录节点 1 对目录的 RdX请求 对目录的 Rd请求 Mem/dir Mem/dir Mem/dir Mem/dir Mem/dir Mem/dir Mem/dir 块目录 节点 $ $ $ $ $ $ $ 2 用共享者的 标识符响应 NIC NIC NIC NIC NIC NIC NIC 2 用拥有者的 标识符响应 P P P P P P P 3 对拥有者 的Rd请求 3a 3b 对共享的 作废请求 对共享的 作废请求 4b 4a 作废确认 数据回答 4a 4b 作废确认 对目录的 修正信息 脏节点 共享节点 共享节点 Cache一致性协议的操作: 注意:①操作过程与MESI有不同(如M态时的修正信息); ②块目录节点一般是宿主节点,但不一定是。 回下二页

  34. P1 Pn … 目录 存储器 $ $ NIC NIC 互连网络 目录 存储器 脏位 存在位 Cache一致性协议的目录组织(简单方法): 将块的目录信息存放在宿主节点的相应存储器中; 块的目录信息由n(为PE总数)个存在位和1个脏位组成(脏位为ON时只有一个存在位为ON)。 注意:本地(远程)节点Cache中不需要保存块的宿主节点信息(因为共享地址空间时,可根据块地址定位到宿主节点)。 回下页

  35. 2、影响目录协议可扩展性的因素 (1)影响协议性能可扩展性的因素 带宽:由扑空率×扑空产生的网络事务量决定; 时延:由关键路径上事务数量决定。 应用特性: 实验表明共享块副本的节点数基本不随节点数增长。 相关分析: 扑空率—与协议的状态转换图有关; 扑空网络事务量—与协议实现及NIC有关; 关键路径事务数量--与目录组织和协议操作有关。 (2)影响目录存储开销可扩展性的因素 存储开销可扩展性由目录随节点数、主存增长的幅度决定。 如上页目录组织的可扩展性不好(开销线性增长)。 转上二页 转上页

  36. (3)基于目录一致性协议的优化 状态转换图的优化目标: 减少扑空率,减少网络事务数量; 操作的优化目标: 减少网络事务数量和大小,减少关键路径上事务数量,增加网络事务的并行性; 目录组织的优化目标: 减少存储开销,优化结构以适应协议操作的优化。

  37. 脏位 所有节点的 所有存储块 地址 存在位 3、目录组织的方法 不同组织方法主要差别: 寻找目录信息源和确定副本位置的方法不同。 组织方法:中心目录、分布目录(全映射目录、有限目录、链式目录)。 (1)中心目录 目录信息源:某特定的节点。 目录结构: 存储开销:目录表容量巨大,需采用相联检索; 对协议性能影响:会产生网络冲突,检索时间过长。

  38. 脏位 宿主节点所 有的存储块 存在位 (2)全映射目录—分布目录 目录信息源:各宿主节点(只保存本节点块目录)。 目录结构: 存储开销: 目录空间=[(N+1)/8]×(M/K)×N, 其中:N为节点数,M为各节点MEM容量,K为常量(块大小); 存储开销的复杂度为O(MN2)。 对协议性能影响: 无影响,关键路径上网络事务的数量只与协议有关。 回下页

  39. 脏位 宿主节点所 有的存储块 存在指针 (3)有限目录—分布目录 全映射目录的优化,目标是改善目录存储开销。 目录结构:共i个存在指针(节点号), i为常量(最大允许节点数)。 存储开销: 目录空间=[(i×log2N+1)/8]×(M/K)×N; 存储开销的复杂度为O(MNlog2N)。 存在指针溢出的处理: 驱逐法(作废所有共享)、替换法(作废某个共享)、软件法(软件中断处理)等。 对协议性能影响: 共享块指针溢出的处理过程,降低了协议的性能,可通过选择i值来减少影响程度。 转上页 回下页

  40. 宿主主存 节点0 $ 节点1 $ 节点2 $ null null 目录表项: 地址 状态 指针 (4)链式目录—分布目录 是全映射目录和有限目录的折中。 目录信息源:同一块的目录分布在多个节点中,共享块的目录头在宿主节点中。 目录结构:有分布式单向链表和双向链表两种结构。 存储开销:目录空间=[(s×2×log2N+1)/8]×(M/K)×N, 其中:s为块的平均共享节点数; 存储开销的复杂度为O(MNlog2N)。 对协议性能影响: 时延有所增加,带宽需求减小,有利于避免活锁。 转上页 回58页

  41. 3:干涉 2:干涉 1:请求 2:干涉 1:请求 1:请求 4a:修改 3a:修改 L L L H H H 2:响应 4:响应 3:响应 3b:响应 4b:响应 R R R a)严格的请求-响应 b)干涉转发 c)应答转发 说明:L—请求节点,H—宿主节点,R—拥有者节点 4、协议操作的实现 目标:减少网络事务量和大小,减少关键路径上操作数量,增加网络事务的并行性。 实现方法:严格的请求-响应、非严格的请求-响应(干涉转发、应答转发)三种。 考虑折中时延与带宽因素,采用应答转发方法较好。 5、协议的状态转换 在后面的案例分析中讲解。 回下页

  42. L2$ L2$ L2$ L2$ P P P P P P P P NIC 主存 交叉开关 L2$ NIC 主存 二、目录协议设计的相关问题 1、协议的性能问题 (1)协议操作的优化 在时延与带宽两者间折中,以达到最佳效果。 (2)机器的高层组织结构 在两级Cache结构中,节点使用多处理器,以改进性能。 成本上:节点的固定开销增加; 性能上:降低了跨节点网络事务数量,且可合并多个请求;节点内网络带宽为各PE分摊。 转上页

  43. 2、协议的正确性问题 满足协议需求、保证存储一致性语义、避免死锁和活锁。 (1)协议需求保证 写传播通过目录结构、按照一致性协议稳定状态转换图的要求产生网络事务,实现写结果为所有PE所见的效果; 串行化通过宿主存储器按请求到达的次序和FIFO完成来实现所有PE按相同顺序看到结果的效果; 请求的完成通过请求的应答、响应或确认到达来标记,其间块状态用忙(或未决)状态表示(构成带过渡状态的转换图)。 块处于忙状态时,对后续操作请求的处理: 采用宿主提供缓冲、请求者提供缓冲、NACK回答并重试、转发给脏节点几种方法中的一种,或几种的混合方式。

  44. (2)顺序一致性语义保证 单个节点访存的顺序一致性通过对该节点存储器的所有访问串行化(按FIFO接收和处理)和原子性保证; 全局节点访问的顺序一致性无法保证(也不需要)。 访问完成通过协议所规定的所有响应/确认标记; 访问原子性通过访问请求发送后,PE一直等待,直到访问完成来保证。 (3)死锁和活锁避免 严格的请求-响应方案:与编程模型解决“取死锁”一致。 非严格的请求-响应扩充方案: 有潜在死锁时,临时性将转发应答协议回到严格的请求-响应协议。 活锁避免:采用FIFO缓冲,只通过头请求(其他回答NACK)。 转22页

  45. I/O接口 主存 (1~4G) 目 录 SysAD总线 集线器 P P L2$ (1~4M) L2$ (1~4M) 互连网络 三、全映射目录的协议分析—SGI的Origin系统 1、Origin2000硬件结构 (1)节点结构 处理器间不采用总线监听一致性协议,由Hub实现处理器间的Cache一致性(网络→PE采用广播、PE→网络采用合并)。 回下页

  46. PE接口 扩展 目录 消息控制器 MEM/DIR接口 路由器 (交换机) 协议表 4×4 交叉开关 路由表 NIC 16位 目录 存储器 I/O接口 Hub(通信辅助部件CA)结构: (2)网络互连 根据节点规模,节点间采用超立方体、或胖超立方体拓扑结构,通过SPIDER路由器和Cray路由器实现互连,互连节点数≤512(1024个PE)。 转上页

  47. SSD/SSR LLP LLP SSD/SSR 说明: SSD—源同步 驱动器 SSR—源同步 接收器 LLP—链路级 协议电路 路由表 路由器 本地部件 发送器 接收器 发送器 接收器 SSD/SSR LLP LLP SSD/SSR LLP SSD/SSR SSD/SSR LLP 发送器 发送器 6×6交叉开关 接收器 接收器 发送器 接收器 发送器 接收器 SPIDER路由器:--连接节点或路由器 由6个全双工、虫孔寻径链路组成,每条链路有两个单向16位物理通道,每个物理通道支持2个虚拟通道。 其中只有两个链路能与节点相连。 Cray路由器:--连接路由器 由8个独立的元路由器组成;每个元路由器节点度为7,各个元路由器与每个SPIDER路由器的不同顶点相连。 回下页

  48. 节点 SPIDER路由器 16个节点 32个节点 4个节点 8个节点 —Cray路由器 —元路由器 512个节点 64个节点 拓扑结构(胖超立方体结构): 节点≤32时,采用SPIDER路由器构成超立方体网络; 节点>32时,需采用Cray路由器构成胖超立方体网络。 转上页

  49. 2、Cache一致性协议 采用改进的MESI协议。 (1)块状态 稳定状态—未拥有(I)、共享(S)、排他(E/M); 忙状态—读忙(RdBusy)、排他读忙(RdXBusy)、非高速缓存读忙(NCRdBusy); 毒化状态—P(用于TLB管理)。 (2)目录组织的方法 目录结构为全位向量的扩展,表高度为存储器块数量。 (3)协议操作的实现 操作:读(Rd)、写(RdX)、回写(WB)。 实现:采用应答-转发方式,减少时延; 采用“忙”状态+NACK方式解决竞争和缓冲区满问题。 回57页

  50. (4)协议的状态转换图 说明:① 块状态—H指主存块状态(非H的Cache块状态),R/L指Cache块状态; ② 每种图例包括几种状态时的操作,如a(11)、a(12)、a(21)等; ③ R的“无动作”表示操作不影响R块状态或操作请求的完成; ④ “无网络事务”表示只有本地操作。 转下页

More Related