880 likes | 1.03k Views
第七章 分布共享存储多处理机. 第一节 分布存储与可扩展性. 可扩展通信网络. 一、分布 存储的系统结构. ···. 节点. CA. NIC. 1 、分布 存储的系统 结构 有共享存储、非 共享 存储 2 种. C. M. Shell. P. LD. *NUMA/NORMA 系统与 UMA 系统的 区别: 存储系统 — 一致性模型的实现不同 ( 复杂 ) 通信模型 — 编程 模型、通信辅助部件 ( CA) 的实现不同 同步操作 — 实现方法不同 ( 复杂 ). 回下页. 2 、系统结构相关设计内容.
E N D
第一节 分布存储与可扩展性 可扩展通信网络 一、分布存储的系统结构 ··· 节点 CA NIC 1、分布存储的系统结构 有共享存储、非共享存储2种 C M Shell P LD *NUMA/NORMA系统与UMA系统的区别: 存储系统—一致性模型的实现不同(复杂) 通信模型—编程模型、通信辅助部件(CA)的实现不同 同步操作—实现方法不同(复杂) 回下页
2、系统结构相关设计内容 (1)存储系统 *Cache一致性:是否支持、协议种类、硬/软分配 *存储一致性:模型种类、对节点硬件/编程模型的限制 (2)通信系统 *编程模型:编程模型的实现(传输协议)、存储一致性的实现 *节点通信:CA结构、通信抽象的实现 (3)同步操作 硬件原语、同步算法的设计(详见上一章) (4)互联网络 拓扑结构、交换策略、路由算法、流控机制(详见第5章) ※本章主要内容: --基于分布共享存储的体系结构 编程模型及CA的实现,一致性模型的设计,时延包容技术 转上页
二、硬件系统可扩展性 *扩展内容:处理器、存储器、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的时延各上升多少? *实现:交换开关快速、拓扑结构合理、网络竞争较小
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种方式 紧密封装与松散封装的特点相矛盾 *目标:对资源可扩展性、技术可扩展性均有好处 *实现:在几种方式之间进行折中
第二节 编程模型的实现 *编程模型的实现: 通信操作通过用户/系统的通信原语实现; 通信原语通过节点的软件/硬件实现 多道程序 共享变量 消息传递 数据并行 编程模型 编译或库层 通信抽象 用户/系统边界 操作系统层 软件/硬件边界 通信硬件层(如NIC) 物理通信介质层(如IN) *(通信)硬件原语的实现: 总线互连—总线控制器通过总线事务实现硬件原语 网络互连—CA通过网络事务实现硬件原语
串行化的数据包 互连网络 源节点 输出缓冲区 … 输入缓冲区 目的节点 编程模型的操作请求 编程模型的操作处理 一、基本网络事务 1、网络事务 定义:从源输出缓冲区到目的输入缓冲区的单向传输,并在目的节点引发从源节点不能直接看到的动作。 网络事务的驱动与解释方案: ①表示为I/O操作,由软件驱动和解释; ②集成到存储系统中,由专用硬件控制器驱动和解释 网络事务的实现方法,给CA带来较大的设计空间。
2、网络事务相关内容 (1)网络与总线互连特征的主要区别 (2)网络事务相关内容 格式—由信息在传输链路(不同段宽度可能不同)上串行的方式决定(如定长信息/可变长信息); 输出缓冲—固定格式时(含小的变化范围)可用缓冲区,可变格式时一般用描述符缓冲区; 目的地命名及路由—源提供命名(目的地逻辑地址→物理地址转换)和路由信息(总线事务为目的节点匹配); 回下页
介质仲裁—无全局仲裁,源端进行局部仲裁后决定是否启动事务,事务所需资源在消息前进过程中逐步分配;介质仲裁—无全局仲裁,源端进行局部仲裁后决定是否启动事务,事务所需资源在消息前进过程中逐步分配; 保护—网络事务前进过程中各网络部件对事务进行检查; 输入缓冲—是多个源所共享的资源,可能发生溢出现象; 动作—目的节点对不同事务有不同动作,对任何事务均会产生一个响应; 结束检测—网络事务非原子性事务,源只有事务已发送到网络的信息,结束信息只能通过编程模型实现(如响应/确认等); 事务排序—节点无法察觉事务的全局顺序性,须对网络事务强加次序约束实现事务的排序(点-点次序的软/硬件实现); 死锁避免—不能产生(发送)事务时,可接收进入的事务; 传输保证—缓冲区满时,可采用抛弃信息并重发或推迟传输直到有空间的方法。 转上页 回下页
源读 目的地 源写 Load r←[全局地址] Store r→[全局地址] 启动存储器访问 地址变换 局部/全局检查 请求事务 远程存储器访问 应答事务 存储器访问完成 存储器访问 读请求 写请求 读/写请求 等待 等待 读响应/写确认 写确认 读响应 二、共享变量模型实现 命名:共享变量地址常分解成模块(节点)号+局部地址。 操作:包括读、写、读-改-写、作废、更新等。 定序:按操作发出及完成的串行化定序(双向传输)。 1、传输协议—编程模型与网络事务的对应关系 编程模型定序要求采用双向的请求-响应协议。 转上页 回下页
2、一致性问题解决 Cache一致性问题解决:--相同地址写操作 同一源节点的远程访问发出串行化由源节点保证,远程访问完成串行化由请求-响应传输协议保证; 同一目的节点的远程访问处理与本地访问处理一致,目的节点串行化处理保证不同源节点操作的串行化; 不同源节点远程访问的写传播由Cache一致性协议实现. 顺序一致性问题解决: 同一源节点远程访问的顺序一致性— 通过读响应和写确认来实现发出与完成串行化; 不同节点对远程访问的顺序一致性-- 不能保证,通过节点对接收端的顺序一致性来尽量实现(源端串行化发送,目的端串行化接收和处理)。 转上页
三、消息传递模型实现 命名:通过消息方式(包括消息信封和消息缓冲区)命名。 操作:包括发送[消息]、接收[消息]等。 定序:按发送及接收原语的操作序定序(单向传输)。 消息传递类型: 同步传送--发送端、相匹配的接收端全部到达,且操作被执行后才可离开,继续后续的操作; 异步互锁传送—发送端、相匹配的接收端任一个到达,即可执行操作,操作完成后(发送请求到达网络、接收操作完成)即可离开; 异步非互锁传送—发送端、相匹配的接收端任一个到达,即可执行操作,操作完成前(发送请求进入缓冲区但未到达网络、接收操作完成)即可离开。 回下页
源 目的地 Send(Pdest,local,VA,len) Recv(Psrc,local,VA,len) 启动发送 Psrc上地址变换 本地/远程检查 发送准备好请求 远程检查接收条件 应答事务 块数据传输 发送准备好请求 检查 等待 接收准备好应答 数据传输请求 1、消息同步传输协议 发送者启动、接收端维护匹配表的三阶段传输协议: 接收者启动、发送端维护匹配表的为两阶段传输协议。 所有传输协议均假设网络是可靠的,即不需要接收完成后的握手步骤。 转上页 回下页 回下二页
源 目的地 Send(Pdest,local,VA,len) 启动发送 地址变换 本地/远程检查 块数据发送 接收端检查 接收/缓冲数据 数据传送请求 标志匹配 分配缓冲区 Recv(Psrc,local,VA,len) 2、消息异步传输协议 均由发送者启动、接收端维护匹配表。 非锁定方式传输协议: 若接收标志匹配失败,则将数据存入临时缓冲区,当稍后的接收操作到达时立即处理。 非锁定方式对接收端的缓冲区要求很大。 转上页
源 目的地 Send(Pdest,local,VA,len) 启动发送 Psrc上地址变换 本地/远程检查 发送准备好请求 远程检查并记录 发送准备好 接收准备好请求 块数据应答 (源→目的地) 发送准备好请求 返回并计算 Recv(Psrc,local,VA,len) 接收准备好请求 检查 数据传送请求 锁定方式传输协议: 同步传送和异步非互锁协议的折中。 锁定方式对接收端的缓冲区要求一般。 转上二页
四、主动消息机制—硬件原语的低层通信抽象 以受限制的远程过程调用的形式,形成了请求和应答事务 消息的组成: 请求消息包含目标PE地址、目标PE的处理例程标识符(每种消息与一个处理例程对应)、作为处理例程参数的数据等; 应答消息包含源PE地址、源PE的响应例程标识符等。 主动机制的实现: 消息到达通知—通过中断调用或激活线程方式实现,对应程序为用户消息处理程序(可减小系统介入切换开销); 中断调用:用户可直接访问NIC时,可用轮询方式代替 激活线程:可建立服务请求例程栈、用堆栈代替线程切换 数据缓冲管理—数据直接从网络上读入用户数据区。 主动消息机制的应用:可在此基础上建立高级编程模型。
五、编程模型实现的相关问题 1、输入缓冲区溢出问题 输入缓冲区管理:一般采用固定容量的单个队列进行管理。 溢出处理方法: ①输入缓冲区变大,并为每个源预留部分空间,源在目的端无空间(目的端将流控或否认信息反馈给源端)时可限制发送速度; ②输入缓冲区满时,拒绝接收待进入的事务(事务停留在网络中会向源端产生反向压力),源端感应到反向压力、收到流控信息、否认信息时放慢发送速度。
2、取死锁问题 产生原因:无法发送(如输出缓冲区满时网络阻塞)时,接收的事务需要一个响应,而响应也无法发送。 死锁解决方法: ①为请求和响应提供两个逻辑上独立的通信网络,如同一方向的虚拟通道中有请求和响应虚拟通道相互独立; ②保证任何节点输出缓冲区总是够用,可通过限制未决事务数量来实现响应的永远可发送(即输出缓冲区事务数量-允许的最大未决事务数量≥1); ③保证任何节点输入缓冲区总是够用(为响应预留缓冲空间),可通过对进入的请求事务抛弃(用否认NACK来应答)、对进入的响应事务吸纳(已预留缓冲空间)并处理实现。 回48页 回28页
第三节 通信辅助部件CA的实现 编程模型中网络事务的组成: 有消息的组织、发送、接收、解释(处理)四个环节。 网络事务完成与消息处理: 消息的解释方(含网络事务请求方)按硬件通信原语语义(传输协议)解释或/并发出另一个消息; 网络事务请求方根据传输协议可得知网络事务的完成。 CA的设计空间: 设计基础:硬件通信原语(基于本地总线的总线事务); 设计空间:硬件对网络事务中消息的组织和解释程度(消息发送、接收必须由NIC硬件完成)。
数据 目的地 互连网络 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(含中断使能)。 回下页 回下二页
消息发送:将陷入OS,OS的特权指令提供地址转换、路由信息、包封装等,仲裁物理介质,并启动DMA通道传输消息。消息发送:将陷入OS,OS的特权指令提供地址转换、路由信息、包封装等,仲裁物理介质,并启动DMA通道传输消息。 消息到达通知:DMA完成消息到存储器的映射后产生中断。 消息解释:通道的中断程序根据I/O或特权指令访问DMA的REG,得到消息头指针,解释消息由用户进程完成。 2、编程模型通信抽象的实现 ①直接在内核支持消息传递的抽象 若有匹配的接收,数据直接拷贝到用户的存储空间; 否则,内核自动分配空间缓冲数据,直到有匹配的接收。 ②用户进程预先分配缓冲区并通知内核在何处接收消息。 转上页
输入端口 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(要求各节点保证消息长度小于存储器缓冲区大小); 通信抽象:网络事务的通信抽象采用主动消息机制。 转上二页
用户虚拟地址空间 数据 目的地 用户/系统 互连网络 网络输出端口 网络输入端口 … 存 储 器 存 储 器 状态端口 状态, 中断 状态, 中断 P P 二、用户级访问的CA 硬件组织消息,消息解释只能区分系统消息和用户消息。 1、CA结构 消息组织与发送:将用户虚地址空间的某区域映射到NIC相关端口,系统/用户通过访问这些端口来触发CA组织消息,CA组织消息时打上系统/用户标记,进行介质仲裁后发送。 消息接收与解释:系统消息到达时产生系统中断,由OS立即处理;用户消息则加到输入FIFO队列,直到用户进程读取它或产生用户级中断(可借用系统中断处理)。 回下页
诊断网络 数据网络 控制网络 网络接口NIC 存储器总线 2、案例分析—Thinking Machine CM5多处理机 IN:由两个数据网络、一个控制网络、一个诊断网络组成。 CA结构: NIC有两对数据网络端口和一对 控制网络端口,均以FIFO队列管理; 通过用户虚拟地址空间映射NIC 端口方法,触发NIC启动和接收网络事务; CA维护一张表,指出哪些网络事务标记应引起中断。 CA传输实现:是否采用DMA通道传输,取决于传输产生的总线操作次数及缓冲区能否被缓存等因素。 死锁问题解决: ①两个数据网络分别独立地用于请求和响应; ②通过端到端的流控保证缓冲区不溢出(P22方法②③). 转上页 转22页
数据 用户信息 目的地 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未完全消除死锁,需采取相应方法处理。 回下页
网 络 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暂停并释放总线。 转上页
数据 Rrsp Src Tag 读 Addr Src Dest Tag 可扩展网络 ② ⑦ ⑥ ③ 伪存储器 伪处理器 伪处理器 伪存储器 … ④ ⑧ ① ⑤ MEM MEM MMU P P MMU LD R←Addr $ $ 四、共享物理地址的CA 硬件组织和解释消息(在总线事务与网络事务间相互转换)。 1、CA结构 CA可看成由伪存储器模块和伪处理器构成。 MEM总线需求:仅是事务拆分型总线不行,必须有两条独立到达MEM的路径,或支持乱序结束的分裂阶段操作,以隐藏时延。 回下页
伪存储器 伪处理器 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操作; 转上页 回下页
读/写操作微程序--①虚-实地址转换②存PE#到DTB③构建临时虚地址(高位为DTB索引)④对临时虚地址执行LD/ST指令。读/写操作微程序--①虚-实地址转换②存PE#到DTB③构建临时虚地址(高位为DTB索引)④对临时虚地址执行LD/ST指令。 CA与总线接口: CA响应地址高5位i非零的总线操作,根据DTB[i]和相关信息组织网络事务,与远程节点通信后给总线返回操作结果; NIC响应网络请求消息,CA产生本地总线操作请求,并将结果住址成消息返回给源节点。 远程操作性能优化: 时延容忍--PE提供零等待写(写缓冲)功能和预取指令,可隐藏网络时延; 块传输--通过DMA提供≤64KB(页大小)的块传输,支持可变长度通信和预取指令。 同步操作的实现:节点设置外部同步REG组,支持同步操作。 转上页
第四节 高速缓存一致性的实现 分布存储结构的Cache一致性实现方法: 串行化特性-- 用网络事务的结束检测代替总线事务的原子性; 用对宿主单元操作的串行化代替总线事务的串行化。 写传播特性-- 用目录协议代替总线监听协议实现写传播和一致性。 Cache一致性的协议: 采用基于目录的作废或更新协议,如MESI协议,本章基本上均基于改进的MESI协议进行讨论。 复杂分布存储结构的Cache一致性实现方法: 不同节点内、节点间互连结构可构成监听-目录、目录-监听、目录-目录的一致性实现方法。
一、基于目录的一致性协议 1、简单目录组织的协议 节点定义: 宿主节点—主存中含有该块的节点,其他节点该块只在Cache存在; 脏节点—Cache中块的副本处于脏(M)状态的节点; 拥有者节点—保持块副本最新值的节点,需要时提供数据,只有宿主节点或脏节点才可能符合要求; 本地节点或请求节点—发出对块的操作请求的节点。 Cache一致性协议的状态转换图: 与MESI一致或类似。 注意:MESI中的原子性总线事务已变成非原子性的网络事务序列。
请求节点 请求节点 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态时的修正信息); ②块目录节点一般是宿主节点,但不一定是。 回下二页
P1 Pn … 目录 存储器 $ $ NIC NIC 互连网络 目录 存储器 脏位 存在位 Cache一致性协议的目录组织(简单方法): 将块的目录信息存放在宿主节点的相应存储器中; 块的目录信息由n(为PE总数)个存在位和1个脏位组成(脏位为ON时只有一个存在位为ON)。 注意:本地(远程)节点Cache中不需要保存块的宿主节点信息(因为共享地址空间时,可根据块地址定位到宿主节点)。 回下页
2、影响目录协议可扩展性的因素 (1)影响协议性能可扩展性的因素 带宽:由扑空率×扑空产生的网络事务量决定; 时延:由关键路径上事务数量决定。 应用特性: 实验表明共享块副本的节点数基本不随节点数增长。 相关分析: 扑空率—与协议的状态转换图有关; 扑空网络事务量—与协议实现及NIC有关; 关键路径事务数量--与目录组织和协议操作有关。 (2)影响目录存储开销可扩展性的因素 存储开销可扩展性由目录随节点数、主存增长的幅度决定。 如上页目录组织的可扩展性不好(开销线性增长)。 转上二页 转上页
(3)基于目录一致性协议的优化 状态转换图的优化目标: 减少扑空率,减少网络事务数量; 操作的优化目标: 减少网络事务数量和大小,减少关键路径上事务数量,增加网络事务的并行性; 目录组织的优化目标: 减少存储开销,优化结构以适应协议操作的优化。
脏位 所有节点的 所有存储块 地址 存在位 3、目录组织的方法 不同组织方法主要差别: 寻找目录信息源和确定副本位置的方法不同。 组织方法:中心目录、分布目录(全映射目录、有限目录、链式目录)。 (1)中心目录 目录信息源:某特定的节点。 目录结构: 存储开销:目录表容量巨大,需采用相联检索; 对协议性能影响:会产生网络冲突,检索时间过长。
脏位 宿主节点所 有的存储块 存在位 (2)全映射目录—分布目录 目录信息源:各宿主节点(只保存本节点块目录)。 目录结构: 存储开销: 目录空间=[(N+1)/8]×(M/K)×N, 其中:N为节点数,M为各节点MEM容量,K为常量(块大小); 存储开销的复杂度为O(MN2)。 对协议性能影响: 无影响,关键路径上网络事务的数量只与协议有关。 回下页
脏位 宿主节点所 有的存储块 存在指针 (3)有限目录—分布目录 全映射目录的优化,目标是改善目录存储开销。 目录结构:共i个存在指针(节点号), i为常量(最大允许节点数)。 存储开销: 目录空间=[(i×log2N+1)/8]×(M/K)×N; 存储开销的复杂度为O(MNlog2N)。 存在指针溢出的处理: 驱逐法(作废所有共享)、替换法(作废某个共享)、软件法(软件中断处理)等。 对协议性能影响: 共享块指针溢出的处理过程,降低了协议的性能,可通过选择i值来减少影响程度。 转上页 回下页
宿主主存 节点0 $ 节点1 $ 节点2 $ null null 目录表项: 地址 状态 指针 (4)链式目录—分布目录 是全映射目录和有限目录的折中。 目录信息源:同一块的目录分布在多个节点中,共享块的目录头在宿主节点中。 目录结构:有分布式单向链表和双向链表两种结构。 存储开销:目录空间=[(s×2×log2N+1)/8]×(M/K)×N, 其中:s为块的平均共享节点数; 存储开销的复杂度为O(MNlog2N)。 对协议性能影响: 时延有所增加,带宽需求减小,有利于避免活锁。 转上页 回58页
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、协议的状态转换 在后面的案例分析中讲解。 回下页
L2$ L2$ L2$ L2$ P P P P P P P P NIC 主存 交叉开关 L2$ NIC 主存 二、目录协议设计的相关问题 1、协议的性能问题 (1)协议操作的优化 在时延与带宽两者间折中,以达到最佳效果。 (2)机器的高层组织结构 在两级Cache结构中,节点使用多处理器,以改进性能。 成本上:节点的固定开销增加; 性能上:降低了跨节点网络事务数量,且可合并多个请求;节点内网络带宽为各PE分摊。 转上页
2、协议的正确性问题 满足协议需求、保证存储一致性语义、避免死锁和活锁。 (1)协议需求保证 写传播通过目录结构、按照一致性协议稳定状态转换图的要求产生网络事务,实现写结果为所有PE所见的效果; 串行化通过宿主存储器按请求到达的次序和FIFO完成来实现所有PE按相同顺序看到结果的效果; 请求的完成通过请求的应答、响应或确认到达来标记,其间块状态用忙(或未决)状态表示(构成带过渡状态的转换图)。 块处于忙状态时,对后续操作请求的处理: 采用宿主提供缓冲、请求者提供缓冲、NACK回答并重试、转发给脏节点几种方法中的一种,或几种的混合方式。
(2)顺序一致性语义保证 单个节点访存的顺序一致性通过对该节点存储器的所有访问串行化(按FIFO接收和处理)和原子性保证; 全局节点访问的顺序一致性无法保证(也不需要)。 访问完成通过协议所规定的所有响应/确认标记; 访问原子性通过访问请求发送后,PE一直等待,直到访问完成来保证。 (3)死锁和活锁避免 严格的请求-响应方案:与编程模型解决“取死锁”一致。 非严格的请求-响应扩充方案: 有潜在死锁时,临时性将转发应答协议回到严格的请求-响应协议。 活锁避免:采用FIFO缓冲,只通过头请求(其他回答NACK)。 转22页
I/O接口 主存 (1~4G) 目 录 SysAD总线 集线器 P P L2$ (1~4M) L2$ (1~4M) 互连网络 三、全映射目录的协议分析—SGI的Origin系统 1、Origin2000硬件结构 (1)节点结构 处理器间不采用总线监听一致性协议,由Hub实现处理器间的Cache一致性(网络→PE采用广播、PE→网络采用合并)。 回下页
PE接口 扩展 目录 消息控制器 MEM/DIR接口 路由器 (交换机) 协议表 4×4 交叉开关 路由表 NIC 16位 目录 存储器 I/O接口 Hub(通信辅助部件CA)结构: (2)网络互连 根据节点规模,节点间采用超立方体、或胖超立方体拓扑结构,通过SPIDER路由器和Cray路由器实现互连,互连节点数≤512(1024个PE)。 转上页
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路由器的不同顶点相连。 回下页
节点 SPIDER路由器 16个节点 32个节点 4个节点 8个节点 —Cray路由器 —元路由器 512个节点 64个节点 拓扑结构(胖超立方体结构): 节点≤32时,采用SPIDER路由器构成超立方体网络; 节点>32时,需采用Cray路由器构成胖超立方体网络。 转上页
2、Cache一致性协议 采用改进的MESI协议。 (1)块状态 稳定状态—未拥有(I)、共享(S)、排他(E/M); 忙状态—读忙(RdBusy)、排他读忙(RdXBusy)、非高速缓存读忙(NCRdBusy); 毒化状态—P(用于TLB管理)。 (2)目录组织的方法 目录结构为全位向量的扩展,表高度为存储器块数量。 (3)协议操作的实现 操作:读(Rd)、写(RdX)、回写(WB)。 实现:采用应答-转发方式,减少时延; 采用“忙”状态+NACK方式解决竞争和缓冲区满问题。 回57页
(4)协议的状态转换图 说明:① 块状态—H指主存块状态(非H的Cache块状态),R/L指Cache块状态; ② 每种图例包括几种状态时的操作,如a(11)、a(12)、a(21)等; ③ R的“无动作”表示操作不影响R块状态或操作请求的完成; ④ “无网络事务”表示只有本地操作。 转下页