7.3分布式共享存储器体系结构 存储器分布于各结点中,所有的结点通过 网络互连。访问可以是本地的,也可以是 远程的。 2021/22 计算机体系结构
7.3 分布式共享存储器体系结构 • 存储器分布于各结点中,所有的结点通过 网络互连。访问可以是本地的,也可以是 远程的。 2021/2/2 计算机体系结构 3
Limitations of Snooping Protocols ·总线的可扩放性收到一定限制 总线上能够连接的处理器数目有限 共享总线存在竞争使用问题 在由大量处理器构成的多处理器系统中,监听带宽是瓶颈 解决方案之一:片上互连网络→并行通信 多个处理器可并行访问共享的 ICache banks 允许片上多处理器包含有更多的处理器 可扩放性仍然受到限制 在非总线或环的网络上监听是比较困难的 必须将一致性相关信息广播到所有处理器,这是比较低效的 如何不用广播方式而保持 cache coherence 使用目录( directory)来记录每个 Cached块的状态 目录项说明了哪个私有 Cache包含了该块的副本 2021/22 计算机体系结构
Limitations of Snooping Protocols • 总线的可扩放性收到一定限制 – 总线上能够连接的处理器数目有限 – 共享总线存在竞争使用问题 – 在由大量处理器构成的多处理器系统中,监听带宽是瓶颈 • 解决方案之一:片上互连网络→并行通信 – 多个处理器可并行访问共享的Cache banks – 允许片上多处理器包含有更多的处理器 – 可扩放性仍然受到限制。 • 在非总线或环的网络上监听是比较困难的 – 必须将一致性相关信息广播到所有处理器,这是比较低效的 • 如何不采用广播方式而保持 cache coherence – 使用目录(directory)来记录每个 Cached 块的状态 – 目录项说明了哪个私有Cache包含了该块的副本 2021/2/2 计算机体系结构 4
解决 Cache-致性问题的关键 寻找替代监听协议的一致性协议。 ·目录协议 目录:用于记录共享块相关信息的数据结构 它记录着可以进入 Cache的每个数据块的访问 状态、该块在各个处理器的共享状态以及是否 參改过等信息。 对每个结点增加目录表后的分布式存储器 的系统结构 2021/22 计算机体系结构
解决Cache一致性问题的关键 • 寻找替代监听协议的一致性协议。 • 目录协议 – 目录:用于记录共享块相关信息的数据结构, 它记录着可以进入Cache的每个数据块的访问 状态、该块在各个处理器的共享状态以及是否 修改过等信息。 • 对每个结点增加目录表后的分布式存储器 的系统结构 2021/2/2 计算机体系结构 5
分布式共享存储结构 CPO CPU CPU2 CPU3 Cac he Cac he Cache Cac he 存储器 存储器 I/ 存储器 存储器 I/ 目录 目录 目录 目录 互连网络 目录 目录 目录 目录 存储器 [][mH[幽][做 CPU CPUS CPU6 Cache Cac he Cache Cac he 2021/22 计算机体系结构
互连网络 存储器 I/o 存储器 I/o 存储器 I/o 存储器 I/o CPU0 Cache CPU1 Cache CPU2 Cache CPU3 Cache 存储器 I/o 存储器 I/o 存储器 I/o 存储器 I/o CPU4 Cache CPU5 Cache CPU6 Cache CPU7 Cache 目 录 目 录 目 录 目 录 目 录 目 录 目 录 目 录 分布式共享存储结构 2021/2/2 计算机体系结构 6
Directory in a Chip Multiprocessor 目录在所有处理器共享的最外层 Cache中 目录记录了每个私有 Cache中块的相关信息 ·最外层 Cache分成若干个 banks,以便并行访问 Cache的 banks数可以与 cores的数量相同,也可以不同 Processor Processor Processor I Processor Processor Processor I Processor Processor Core o Core 1 Core 2 Core 3 Core 4 Core 5 Core 6 Core 7 Private Private Private Private Private Private Private Private Cache Cache 1 Cache 2 Cache 3 Cache 4 Cache 5 Cache 6 Cache 7 Interconnection Network (or Crossbar Switch) Shared Cache Bank o Shared Cache Bank 1 Shared Cache Bank 2 Shared Cache Bank 3 Directory o Directory 1 Directory 2 Directory 3 Memory Controller 0 Memory Controller 1 Memory Controller 2 Memory Controller 3 2021/22 计算机体系结构
Directory in a Chip Multiprocessor • 目录在所有处理器共享的最外层Cache中 – 目录记录了每个私有Cache中块的相关信息 • 最外层Cache分成若干个banks,以便并行访问 – Cache的banks数可以与cores的数量相同,也可以不同 2021/2/2 计算机体系结构 7
Directory in the Shared Cache Shared cache包含所有的私有 Cache 共享 Cache是私有 cache块的超集 Example: Intel Core i7 目录在共享 cache中 共享 cache中的每个块增加若干 presence bits 如果有k个 processors那么共享 cache中每个块含有 presence bits(k位)+ state位 Presence bits指示了包含该块copy的 cores 每个块都有其在私有 cache和共享 cache中的状态信息 State = M(Modified), s Shared), or I(Invalid)in private cache StateTag Block data Block in a Private Cache Presence bits I State I Tag Block Data]Block in a Shared Cache 2021/22 计算机体系结构
Directory in the Shared Cache • Shared Cache 包含所有的私有Cache – 共享Cache是私有cache块的超集 – Example: Intel Core i7 • 目录在共享cache中 – 共享cache中的每个块增加若干presence bits – 如果有k个processors那么共享cache中每个块含有 presence bits(k位) + state位 – Presence bits 指示了包含该块copy的cores – 每个块都有其在私有cache和共享cache中的状态信息 – State = M (Modified), S (Shared), or I (Invalid) in private cache 2021/2/2 计算机体系结构 8
些术语 本地或私有 Cache( Local( or private) Cache) 处理器请求的源 目录( Home Directory) 存放 Cache块相关信息 目录使用 presence bits和 state追踪 cache块 远程 Cache( Remote Cache) 该 Cache中包含一个 Cache块的副本,处于 modified或 shared态 Cache一致性:即要保证 Single-Writer, Multiple Readers 如果_个块在本地 Cache中处于 Modifiec态那么只有一个有效的 副本存在(共享的 Cache和存储器还没有更新 无总线,不用广播方式到所有处理器核 所有消息都有显式的回复 2021/22 计算机体系结构
一些术语 • 本地或私有Cache (Local (or Private) Cache) – 处理器请求的源 • 目录(Home Directory) – 存放Cache块相关信息 – 目录使用presence bits 和 state 追踪cache块 • 远程Cache(Remote Cache) – 该Cache中包含一个Cache块的副本,处于modified 或shared 态 • Cache一致性:即要保证Single-Writer, MultipleReaders – 如果一个块在本地Cache中处于Modified态,那么只有一个有效的 副本存在( 共享的Cache和存储器还没有更新) • 无总线,不用广播方式到所有处理器核 – 所有消息都有显式的回复 2021/2/2 计算机体系结构 9
States for local and shared Cache 对于本地(私有) cache块,存在3种状态: 1. Modified:仅当前 Cache具有该块修改过的副本 2. Shared:该块可能在多个 Cache中有副本 3. Invalid:该块无效 对于共享 Cache中的块,存在4种状态: 1. Modified:只有一个本地 Cache是这个块的拥有者 只有一个本地 Cache具有该块修改后的副本 2. Owned:共享 Cache是 modified块的拥有者 Modified block被写回到共享 Cache,但不是内存 处于 owned态的块可以被多个本地 Cache共享 3. Shared:该块可能被复制到多个 cache中 4. Uncached:该块不在任何本地或共享 Cache中 2021/22 计算机体系结构
States for Local and Shared Cache 对于本地(私有)cache 块,存在3种状态: 1. Modified: 仅当前Cache具有该块修改过的副本 2. Shared: 该块可能在多个Cache中有副本 3. Invalid: 该块无效 对于共享Cache中的块,存在4种状态: 1. Modified: 只有一个本地Cache是这个块的拥有者 只有一个本地Cache具有该块修改后的副本 2. Owned: 共享Cache是modified块的拥有者 Modified block被写回到共享Cache,但不是内存 处于owned态的块可以被多个本地Cache共享 3. Shared: 该块可能被复制到多个cache中 4. Uncached: 该块不在任何本地或共享Cache中 2021/2/2 计算机体系结构 10
Read Miss by Processor P Processor p发送 Read miss消息给Home director Home Directory: block是 Modified态 Directory发送 Fetch message给拥有该块的 remote cache Remote cache发送 Write-Back message到 directory( shared cache Remote cache将该块状态修改为 shared Directory将其所对应的共享块状态修改为 owned Directory发送数据给P,并将对应于P的 presence bi置位 P的 Local cache将所接收到的块状态置为 shared Home Directory: block是 Shared or owned态 Directory发送数据给P,并将对应P的 presence bi置位 P的 lLocal cache将所接收到的块状态置为 shared Home Directory: Uncached->从存储器中获取块 2021/22 计算机体系结构
Read Miss by Processor P • Processor P 发送 Read Miss 消息给 Home directory • Home Directory: block 是 Modified态 – Directory 发送 Fetch message 给拥有该块的remote cache – Remote cache发送 Write-Back message 到 directory (shared cache) – Remote cache 将该块状态修改为shared – Directory 将其所对应的共享块状态修改为 owned – Directory 发送数据给P, 并将对应于P的presence bit置位 – P的Local cache 将所接收到的块状态置为 shared • Home Directory: block 是Shared or Owned态 – Directory发送数据给P,并将对应 P的presence bit置位 – P的Local cache 将所接收到的块状态置为 shared • Home Directory: Uncached -> 从存储器中获取块 2021/2/2 计算机体系结构 11
Read miss to a block in modified state 1. Read Miss by p Requestor Requesting block A Processor p Shared Cache Private Cache emory Directory 4. Data block a reply message to p 2. Fetch Block A 3. Write-Back Block A Total of 4 messages Requested by p Requested by p Processor Q writes-back Block a to shared cache Block a is shared by p and Q It is owned by shared cache Processor Q Private Cache 2021/22 计算机体系结构
Read Miss to a Block in Modified State 2021/2/2 计算机体系结构 12