分布式共享存储器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
环接口、MMU(存储器管理单元)、缓存和一部分存储器集成在 一个称为Memnet 设备的器件中。
Memnet中没有集中式的全局存储器。共享地址空间中的每个32字 节数据块都有一个属主机器。
属主机器在其属主存储器域中为32字节数据块保留物理存储器。 数据块可被置于除属主机器以外的任何机器的缓存中。
6.2 共享存储器
6.2.3 基于环的多处理机
写操作
若本地不存在所需块,CPU发出包含读请求和置无效请求的信 包。
第一个有此数据块的机器将该块拷入信包,同时抛弃自己的 拷贝。
其余机器仅从自己的缓存中抛弃该数据块。当信包返回到发 送者时,本地存储该数据块并执行写操作。
6.2 共享存储器
6.2.3 基于环的多处理机
6.2.4 交换式多处理机
目录 记录哪些簇拥有哪些块的拷贝。因为每簇有1M存储块,目录中 有1M个项。每一簇的每个表项保留一个一位的位图,以判定簇是 否将该块放入缓冲区。
簇0是否拥有存 储器中的块 3的拷贝
6.2 共享存储器
6.2.4 交换式多处理机
缓存 每个缓存块有以下三个状态之一: 未缓存——存储器中有此块的唯一拷贝 干净——存储器已更新,块可能在若干缓存中 脏——存储器错误,块仅在一个缓存中 每个缓存块的状态存于其目录项的状态域中
缓存一致性协议
CPU 缓存
CPU 缓存
CPU 缓存
存储器
总线
6.2 共享存储器
6.2.2 基于总线的多处理机
通写缓存一致性协议
事件 读失败 读命中 写失败 写命中
缓存响应本地CPU操作时执 行的动作
从存储器中取得数据并存储 到缓存中
从本地缓存中取得数据
更新存储器中的数据并存储 到缓存中
更新存储器和缓存
6.2.4 交换式多处理机
基于总线和基于环的多处理机当CPU增加到一定数量时,总线或 环的带宽达到饱和。两种方法解决带宽不足问题: 减少通信流量 增加通信容量
增加总线带宽 改变互联网络的拓扑结构,增加通信容量。 建立层次结构
6.2 共享存储器
6.2.4 交换式多处理机
建立层次结构 仍在一根总线上挂一些CPU,当将整个单元看作一个簇。系统 中有多个簇,用簇间总线相连。
第6章 分布式共享存储器
共享存储器简介 一致性模型 基于分页的分布式共享存储器 共享变量的分布式共享存储器 基于对象的分布式共享内存
6.1 简介
❖ 并行及分布式计算机系统分类
紧耦合
MIMD
并行分布式 计算机
多处理机 (共享存储器)
松耦合
多计算机 (私有存储器)
总线型 Sequent Encore
交换型 超级计算机RP3
单一主机
6.2 共享存储器
6.2.3 基于环的多处理机
每个机器的Memnet设备上有一个块表,包括每个块在共享地址空 间的入口,以块序号为索引。
块表
✓ 有效位:判断块是否在缓存中且已被 更新
✓ 互斥位:确定本地拷贝是否唯一
✓ 属主位:只有当本机是该块的属主机 器时才置位。
✓ 中断位:用于强制中断
Memnet和基于总线的多处理机比较 相似之处: 读操作返回的都是最近写入的值。读操作时,数据块可能在 一个缓存中,也可能在多个缓存中。 写操作时,数据块只能在一个缓存中。 区别: 基于总线的多处理机是紧耦合的,基于环的多处理机是耦 合的较松一些。 基于环的多处理机没有集中式全局存储器。
6.2 共享存储器
CPU Cache
Memory
Bus
6.1 简介
❖ 交换型多处理机
将存储器分成许多存储器模块,用十字交叉开关将它们与CPU 相连。
M M MM
C C C C
优点:多个CPU能够同时 访问存储器。
缺点:n个CPU和n个存 储器模块,需要n2个交叉 开关。
6.1 简介
❖ 交换型多处理机
❖ Omega网络 C
CPU
A
B
C
W2
W1

无效
图6-3 (c)
W1
存储器错误
Write once 协议
A再次写W,A所进行的这些和以后的写操作都在本地执行, 没有任何的总线通信。
CPU
A
B
C
W3
W1

无效
图6-3 (d)
W1
存储器错误
Write once 协议
C读写W,A通过在总线上监听而发现请求,则发信号禁止 存储器响应。然后A提供C所需要的字,并将自己的缓存项 置无效。 C发现该字来自其他的缓存而不是存储器,并且其状态为 Dirty,则响应的标示为dirty。C 现在有唯一的有效的拷贝。
缓存响应远程CPU操 作时执行的动作 无动作
无动作 无动作
使缓存项无效
✓ 易于理解和使用。缺点:所有写操作必须通过总线。
6.2 共享存储器
6.2.2 基于总线的多处理机
Write once协议 ✓ 思想:允许正被多个CPU读取的字出现在它们所有的缓存中。 而仅被一个CPU经常写的字将只保存在它的缓存中,为减少总线 流量,不必每次都写回存储器。 ✓ 该协议管理缓存块,每个块处于以下三种状态之一: 无效——本缓存块无有效数据 干净——存储器被更新,该块可能在别的缓存中 脏 ——存储器错误,该数据块不在其他缓存中
簇内总线 簇间总线
超级簇间总线
6.2 共享存储器
6.2.4 交换式多处理机
基于网状簇的分层设计
✓ 16个簇、每簇有一条总线,4个CPU,16M全局存储器和一些I/O设备 ✓ 总共地址空间256M,分为16块,每块16M ✓ 存储器以16字节的块为单位,因此1簇有1M存储器块。
6.2 共享存储器
✓ 定位位:表明若块存在并有效,它定 位在缓存中何处。
6.2 共享存储器
6.2.3 基于环的多处理机
读操作
当CPU要从共享存储器中读一个字时,该存储器地址传送给 Memnet设备, Memnet设备检查表项以确定该块是否存在。
若存在,读请求立即的到满足。
否则,Memnet设备捕获令牌,将请求信包送入环中。请求信包 包含目标地址和32字节的哑域。
中获取页。
6.1 简介
❖ 分布式共享存储器
不足之处 页在网上频繁的调入调出。
改进 不共享整个地址空间,而只共享那些由多个进程引用的变量
和数据结构。 在多台计算机上复制共享变量,通过共享复制的变量而不是
整个页。读操作可以可以在本地进行而不引起任何的网络通信, 写则可以通过多拷贝更新协议完成。
6.2 共享存储器
由于总线会成为一种瓶颈,基于总线的多处理机总数最多只能 有几个。交换式多处理机可应用于大系统,但相比之下过于昂 贵、缓慢、复杂以及难以维护。
大的多计算机系统易于建立,单主板计算机(包含一个CPU、 一个存储器、一个网络接口)可以相互连接在一起,不受数量 的限制。
结论:
从硬件设计者的角度看,多计算机系统比多处理机系统更优越。
6.1 简介
❖ 多处理机和多计算机的比较
从软件角度 用于多处理机编程的技术很多。大量的理论和实践知识可用于 多处理机编程。 对于多计算机系统,通信一般使用消息传递。复杂。
结论: 从软件设计者的角度看,多处理机系统比多计算机系统更优越。
多计算机系统易于建立但难于编程,多处理机系统易于编程但难于 建立!
总线型 LAN工作站
交换型
超立方体 Transputer
6.1 简介
❖ 基于总线的多处理机
基于总线的多处理机由若干个CPU组成,它们都连接到一个公 共的总线上,并且共享一个存储器模块。
为了避免总线过载,需要高速缓存,但带来了不一致问题。连 接的CPU数量有限。
CPU Cache
CPU Cache
6.2.1 芯片存储器
芯片包含CPU和存储器。CPU和存储器通过地址线和数据线直接 相连。广泛用于汽车、电气用具、玩具等。
将芯片扩展,使多个CPU可以共享同一存储器。不仅复杂,而且 非常昂贵和不实用。
6.2 共享存储器
6.2.2 基于总线的多处理机
基于总线的多处理机:当任一CPU要从存储器中读取数据时,它 将数据的地址放在总线上,并在控制总线上加上“读”信号。
发送块到R和属主所在 簇(如果在其他地方 缓存过),通知属主 所在簇将其标记为干 净且它在R簇的缓存中
6.2 共享存储器
6.2.4 交换式多处理机
协议(写操作)
块状态 未缓存
干净

R的缓存
邻近者缓存
属主所在簇的 存储器
簇缓存
发送块到R;标记 为脏,只有在R簇 中才缓存
发送信息给属主所 载簇,请求脏状态 的唯一拥有权如果 被允许,使用块
2x2 开关 M
C
M
C
M
C
M
❖ 结论
需要的交叉开关数量多,需要解决交换延迟,价格昂贵。 建立一个大的、紧密偶合的、共享存储器的多处理机系统是困 难的 。
6.1 简介
❖ 基于总线的多计算机
❖ 每个CPU都与它自身的存储器直接相连。 ❖ 由于仅是CPU和CPU之间的通信,通信量比当互连网络用于CPU
和存储器之间的通信量低几个数量级。
工作站
Local memory
CPU
工作站
Local memory
CPU
工作站
Local memory
CPU
图1-4 局域网上由多台工作站组成的计算机系统
网络
6.1 简介
❖ 交换型多计算机
❖ 两种流行的拓扑结构:网格和超立方体
6.1 简介
❖ 多处理机和多计算机的比较
从硬件角度
设计一种使多个处理机同时使用同一存储器的机器是非常困难 的。
信包在环中传递,每个Memnet设备检查自己是否有所需的块, 若有则将块置于哑域。
6.2 共享存储器
6.2.3 基于环的多处理机
写操作 若包含要写字的块存在于本地并且是系统中的唯一拷贝,字就 在本地写入。 若所需块在本地存在,但不是系统中的唯一拷贝 CPU将在环中发出置无效信包,强制其它机器抛弃此块的拷 贝。 置无效信包返回时,将该块的互斥位置位,字在本地写入。
复制块并使其无效,发送 块给 R,将所
发送信息给属主所 有的缓存置无效;
在簇,请求脏状态 将它标记为脏并存
的唯一拥有权
在于R簇的缓存中
使用块
缓存到缓存地传送 到R中,将邻近的 拷贝置无效
发送块到R和属主所在 簇(如果在其他地方缓 存过),通知属主所在 簇将其标记为脏并只存 在于R簇的缓存中
6.2 共享存储器
6.2.4 交换式多处理机
协议(读操作)
块状态 R的缓存
邻近者缓存
属主所在簇的存储器
簇缓存
未缓存 干净 使用块 脏 使用块
发送块到R;标记为 干净,仅在R簇的缓 存中
复制块到R的缓存 中
从存储器到R拷贝块; 标记表明仍然在R簇 的缓存中
发送块到R和属主 所在簇,通知属主 所在簇将其标记为 干净,并存储在R 所在簇
存储器读出需要的数据,将其放在总线上,在控制总线上加“准 备好”信号,CPU可读到相应的数据。
CPU
CPU
CPU
存储器
总线
为防止多个CPU同时访问存储器,需要总线仲裁机制。
6.2 共享存储器
6.2.2 基于总线的多处理机
基于总线的多处理机容易超载。为了降低总线负载,将每个CPU 提供一个监听高速缓存。
Write once 协议
初始状态含有值W1的字W在主存中,同时也在B的缓存中。
CPU
A
B
C
ຫໍສະໝຸດ Baidu
W1
存储器正确
W1
干净
图6-3 (a)
Write once 协议
A读取字W获取W1,B不响应读操作,只是内存响应。
CPU
A
B
C
W1
W1
干净 干净
图6-3 (b)
W1
存储器正确
Write once 协议
A写入值W2,B在总线上监听,一旦发现写操作,将自己的 缓存项置无效。A的拷贝标记为脏数据。
6.1 简介
❖ 分布式共享存储器
设计思想 一组由局域网互联的工作站共享一个分页的虚拟地址空间。设
置每页刚好在一台机器上。对本地页的访问由硬件实现。试图访 问其他机器上的页时,由操作系统处理。
既易于编程,又易于建立!
与虚拟存储器系统比较 相同点:当一进程访问一未驻留存储器的页时,激活陷阱,
操作系统获取相应页并将其调入。 不同点:操作系统不是从磁盘而是通过网络从另一个处理机
CPU
A
B
C
W1
W3
W1
W3
无效 无效

图6-3 (e)
存储器错误
Write once 协议
存储器何时更新?
当缓存缺乏空间而必须清除某一字时,如果该字的状态为dirty。 那时,该字从所有的缓存中消失,写回到存储器。
缓存一致性协议具有三个重要的属性
缓存对总线的监听保证了一致性。 协议建立在存储器管理单元中 整个算法在一个存储器周期中完成
6.2 共享存储器
6.2.3 基于环的多处理机
一个独立的地址空间被分成一个私有区和一个共享区。 私有区被分成段,使得每个机器都有一个段用来存放堆栈和其他
非共享的数据和代码。共享区对所有的机器都是一样的。 共享存储器被分成32字节的块,是机器间传输的单元。
Memnet 环
6.2 共享存储器
6.2.3 基于环的多处理机
相关文档
最新文档