问题:什么是缓存一致性?
多处理器体系结构
多处理器定义为紧耦合处理器组成的计算机
这些处理器的协调与使用由单一处理器系统控制,通过共享地址空间来共享存储器
1. 按照存储器组织方式分为两类
- 对称(共享存储器)多处理器(SMP)
- 也被称为集中式共享存储器多处理器
- 特点:
- 核心数较少
- 共享一个集中式存储器
- 所有处理器平等访问它
- 也被称为 一致存储器访问多处理器(UMA)
- 因为: 所有处理器访问存储器的延迟都是一致的
- 分布式共享存储器(DSM)
- 特点:
- 为了支持更多的存储器,存储器必须分散在处理器之间,而不是集中式的
- 也被称为 非一致存储器访问(NUMA)
- 它的访问时间取决于数据字在存储器中的位置
- 特点:
- 在 SMP 和 DSM 这两种体系结构中,线程之间的通信是通过共享地址空间完成的。
2. 并行处理的挑战
- 程序的并行度不足 —— 程序并不完全会在并行模式下运行
- 并行处理器之间进行远程访问的延迟较高
- 在现有的共享存储器多处理器中,分离核心之间的数据通信通常在 35 ~ 50 个时钟周期,分离芯片上的核心之间的数据通信花费 100 ~ 500 甚至更多个时钟周期
- 线程级并行(第5章)主要关心的技术是降低远程通信延迟过长导致的影响。
多处理器的缓存一致性问题
3. 什么是多处理器缓存一致性
- 定义
如果每次读取某一数据项时都会返回该数据项的最新写入值,那么就说这个存储器系统是一致的
- 这个定义包含存储器系统行为的两个方面:
- 一致性
- 连贯性
- 具体看第5章笔记
- 这个定义包含存储器系统行为的两个方面:
4. 一致性的实现方案
NOTE:
MSI 是 专用缓存块 的状态,与监听式还是目录式无关,这两个只是实现的方案,两种实现方案可能都是基于MSI或MESI的,区别在于是通过总线广播监听,还是通过目录控制。
- 监听式
- 如果一个缓存拥有某一物理存储器块中的数据副本,它就跟踪该块的共享状态。
- 在SMP中,所有的缓存块都可以通过某种广播介质访问,所有缓存控制器都监听这一介质,已确定自己是否拥有所请求块的副本。
- 监听协议也可以用作多芯片多处理器的一致性协议,有些设计在每个多核心内部目录协议的顶层支持监听协议!
- 两种实现方法:
- 写入失效协议
- 确保处理器在写入某一数据项之前,获取该数据项的独占访问
- 写入更新协议
- 在写入一个数据项时,更新该数据项的所有缓存副本
- 写入失效协议
- 两种实现方法:
- 目录式
- 特定物理存储器块的共享状态保存的位置称为目录。
- 和监听式的区别:
- 目录的作用是 —— 避免广播操作。
- 在SMP中: 使用一个集中目录。
- 在DSM中: 使用分布式目录。
- 区别
- 状态发生转换时的不同:
- 在目录式中,用于定位一个数据项独占副本并使其生效,需要在发出请求的节点与目录之间进行通信,在目录与一个或多个远程节点进行通信。
- 而咋监听式协议中,这两个步骤通过向所有节点进行广播而结合在一起。