基于总线的共享内存系统中的缓存协议解析
1. 缓存协议的基础概念
在多处理器系统中,缓存协议起着至关重要的作用,它确保了各个处理器缓存之间的数据一致性。下面是一些常见缓存协议相关的缩写及其描述:
| 缩写 | 描述 |
| ---- | ---- |
| PrRd | 处理器读取 |
| PrWr | 处理器写入 |
| BusRd | 块的读取请求 |
| BusWrite | 向内存写入一个字并使其他副本无效 |
| BusUpgr | 使其他副本无效 |
| BusUpdate | 更新其他副本 |
| BusRdX | 读取块并使其他副本无效 |
| Flush | 向请求缓存提供一个块 |
| S | 共享线激活 |
| ¯S | 共享线停用 |
在状态转换图中,不同的操作会引发不同的状态转换。例如,当处理器对处于无效状态的块进行写入操作(PrWr)时,会在总线上发起一个BusRdX请求。如果块处于有效状态,处理器读取操作不会导致状态改变,也不会发起协议事务;而处理器对处于有效状态的块进行写入操作时,必须发起一个BusWrite请求,但状态不变。总线侧的请求也可能触发状态转换,比如当块处于有效状态,且传入的BusWrite或BusRdX的地址与缓存标签存储中的地址匹配时,该块必须被无效化,从而转换到无效状态。
2. 窥探式缓存协议的设计空间
简单的窥探式缓存协议虽然基础,但存在一些潜在的性能瓶颈。其中一个明显的不足是,所有的写入请求都会发起总线事务。然而,在多处理器系统中,无论是运行多个独立应用程序还是显式并行程序,处理器之间共
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



