摘要 许多现代计算机系统,包括同构架构(homogeneous architecture)和异构架构(heterogeneous architecture),在硬件上都支持共享内存(shared memory)。在共享内存系统中,每个处理器核心都能对一个共同的地址空间进行读写操作。内存一致性模型(memory consistency model)定义了在共享内存系统中,内存操作(如加载(load)和存储(store))的可见性与顺序规则,即规定了从任一处理器视角观察到的内存操作执行顺序应满足何种约束。
许多现代计算机系统,包括同构架构(homogeneous architecture)和异构架构(heterogeneous architecture),在硬件上都支持共享内存(shared memory)。在共享内存系统中,每个处理器核心都能对一个共同的地址空间进行读写操作。内存一致性模型(memory consistency model)定义了在共享内存系统中,内存操作(如加载(load)和存储(store))的可见性与顺序规则,即规定了从任一处理器视角观察到的内存操作执行顺序应满足何种约束。
一致性模型(consistency model)定义了有关加载(load)和存储(store)(或称内存读写(memory read/write))操作的语义规则,以及这些操作如何在多个处理器之间相互作用并影响内存状态。作为一致性模型实现的关键组成部分,大多数现代共享内存系统还配备了缓存一致性协议(cache coherence protocol),用于确保当多个处理器缓存同一内存地址的数据时,所有缓存副本保持一致,即任何处理器对共享数据的修改都能被其他处理器及时、正确地感知。
本导论旨在帮助读者建立对内存一致性(memory consistency)与缓存一致性(cache coherence)的基本理解,涵盖其核心挑战、设计权衡以及典型解决方案。在提供高层次抽象概念的同时,我们也会结合现实世界系统中的具体实例(如x86、ARM、RISC-V等主流架构)加以说明。
本书第二版反映了自第一版发布以来十年间的重要进展。除对原有内容进行修订和更新外,第二版新增了两个关键章节:一章聚焦于非CPU加速器(特别是GPU)在共享内存环境下的内存一致性与缓存一致性问题;另一章则系统介绍了与一致性模型相关的形式化语义(formal semantics)、验证方法(verification techniques)及自动化工具(如Litmus、Hermit、TriCheck等),这些工具在现代体系结构设计与验证中发挥着日益重要的作用。
computer architecture(计算机体系结构), memory consistency(内存一致性), cache coherence(缓存一致性), shared memory(共享内存), memory systems(内存系统), multicore processor(多核处理器), heterogeneous architecture(异构架构), GPU(图形处理单元), accelerators(加速器), semantics(语义学), verification(验证)