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