计算机体系结构5_缓存一致性协议

一,AMD64缓存一致性协议

        通过缓存一致性协议保证各个缓存之间,缓存与主存之间,多处理器之间的数据一致性。AMD64的缓存一致性协议为MOESI(modified, owned, 

exclusive,shared,invalid)协议。

               

                 当cache line没有保存有效的数据时,被称作invalid,有效的数据可以来自主存或者其他处理器的缓存。

                 

                 当cache line保存的数据为最近,最新的,被拷贝的数据在主存中也为最近,最新的数据,同时其他处理器没有持有此数据的拷贝,

                 称作exclusive

                  

                 当cache line保存的数据为最近,最新的,其他处理器持有此数据的拷贝,称作shared。当其他处理器以owned模式持有此数据,则当前数

                 据在主存中也为最近最新的。

                 

                  当cache line保存的数据为最近,最新的,在主存中的数据为过时的,没有其他处理器持有此数据的拷贝,称作modified

                  

                  当cache line保存的数据为最近,最新的,称作owned。owned与shared相似之处在于,其他处理器可以持有此数据最近,最新的拷贝,

                  与shared不同在于,主存中此数据可能为过时的。一份数据只可以有一个处理器持有其owned状态,其他处理器对此数据持有shared状态。

二,AMD64缓存一致性状态图

        下图为软件观点的,多种访存操作驱动的MOESI状态图:

                          

                 

                     为了保证内存的一致性,其他具有内部缓存的处理器在缓存数据时,需要获取最新的数据拷贝,此拷贝可以在主存中或者在其他

                     处理器的内部缓存中。当一个设备访存miss时,探测其他设备的是否持有此数据最新的拷贝,此操作称作probe。如果其他设备、

                     中持有此数据最新的拷贝,它将其提供给请求设备,否则主存提供最新的数据。

                     

                     主要有两类设备probe方式:

                         read probe,指示其他设备请求数据出于读意图。

                         write probe,指示其他设备请求数据出于修改意图。

                      图7-2指出,由probe导致的状态转移包含probe的发起设备和接收设备。一些read probe由那些打算缓存此数据的设备发起,另外一些

                      发起的read probe并不是为了缓存此数据,如I/O设备。

                      

                      读命中不会导致MOESI状态转移,写命中通常导致MOESI状态转移到modified状态。如果cache line已经为modified状态,写命中不会改变

                      它的状态。

    参考:

             AMD64 Architecture Programmer’s Manual Volume 2: System Programming

时间: 2024-07-28 15:56:13

计算机体系结构5_缓存一致性协议的相关文章

缓存一致性协议

缓存一致性协议 操作系统的CPU和内存并不是直接交互操作的.我们的CPU有一级缓存,CPU直接操作一级缓存,由一级缓存和内存进行交互. 当然,有的CPU有二级缓存,甚至三级缓存等.实际上,大概二十年前,一级缓存是直接和内存交互的,现在,一般是二级缓存和内存直接通讯. 每个CPU都有一级缓存,但是,我们却无法保证每个CPU的一级缓存数据都是一样的. 所以同一个程序,CPU进行切换的时候,切换前和切换后的数据可能会有不一致的情况.那么这个就是一个很大的问题了. 如何保证各个CPU缓存中的数据是一致的

多线程之:MESI-CPU缓存一致性协议

MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中,详见"support the more efficient write-back cache in addition to the write-through cache previously used by the Intel 486 processor"

计算机体系结构6_缓存结构

一,缓存结构         下图为一个n-way set-associative cache 结构图:                                                               缓存组织为cache line数组的形式,每一个cache line由三部分组成,内存数据,tag,其他信息.                     多个cache line一行,组成一个set,一列cache line为way,在n-way set-associat

计算机体系结构7_缓存控制机制

一,缓存控制机制            AMD64提供一系列机制用于设置内存的缓存特性:                                            Cache disable                       CR0的bit 30为cache-disable bit,CR0.CD. CR0.CD=0,开启缓存功能:CR0.CD=1,关闭缓存功能.                       当缓存功能被关闭时,读写均通过主存完成.              

缓存一致性(Cache Coherency)入门(转)

参考原文:http://fgiesen.wordpress.com/2014/07/07/cache-coherency/ 本文是RAD Game Tools程序员Fabian "ryg" Giesen在其博客上发表的<Cache coherency primer>一文的翻译,经作者许可分享至InfoQ中文站.该系列共有两篇,本文系第一篇. 我计划写一些关于多核场景下数据组织的文章.写了第一篇,但我很快意识到有大量的基础知识我首先需要讲一下.在本文中,我就尝试阐述这些知识.

如何实现多控缓存一致性?看浪潮高端存储的

高端IT系统的缓存管理一直是个极具挑战性的课题,从计算领域到存储领域,该问题普遍存在. 比如,多核心多CPU体系中的分布式L1/2/3缓存的一致性管理,而随着从SMP到NUMA的演进,NUMA架构下的分布式缓存管理更是增加了CPU内硬件的复杂度.在存储领域,全对称多活多控制器存储系统从一开始便普遍使用集中式的数据缓存来保证缓存一致性. 本文中,笔者对几种多控高端存储下的缓存一致性管理.缓存镜像管理等方面做简要分析,并以浪潮AS18000高端存储系统为例来实际分析. 1. 多控高端存储系统的缓存管

【更正】ISCA2016:计算机体系结构顶会CNN走红,神经网络论文夺桂冠

ISCA(The International Symposium on Computer Architecture)是计算机体系结构领域的顶级会议.自1973年创办以来,迄今已经举办了 43 届(1974 年空缺). 今年的 ISCA 于 6 月 18 日至 22 日在韩国首尔召开,这次会议有近 800 名来自世界各地的工业界和学术界的专家学者参加,在参会人数上创下历史新高.本届会议共收到了 291 篇投稿论文,最终录用了 57 篇,接收率为19.6%. ISCA的"C"成了CNN的&

《新编计算机科学概论》一第2章 计算机体系结构

第2章 计算机体系结构 本章重点讨论计算机体系结构.从体系结构上看,计算机系统包括硬件和软件两大部分.硬件是计算机系统的物质基础,软件是系统运行的灵魂,两者相辅相成,缺一不可.本章先从系统结构的角度介绍了计算机系统的层次结构,在讨论层次结构时引入了虚拟机的概念,虚拟机的引入有助于我们正确理解各种计算机语言的实质和实现途径,从而更好地进行计算机语言的研究和应用.本章还从体系结构的角度分析了系统硬件的结构,并重点讨论了处理器体系结构.最后在分析硬件结构的基础上,介绍了计算机软件系统的结构. 硬件部分

《新编计算机科学概论》一2.2  计算机体系结构概述

2.2 计算机体系结构概述 体系结构的概念是从软件设计者的角度对计算机硬件系统的观察和分析.结构是指各部分之间的关系.通过分析系统的组成和结构,可以指导更好地进行软件设计. 2.2.1 计算机体系结构的基本概念 计算机体系结构 计算机体系结构(computer architecture)通常是指程序设计人员所见到的计算机系统的属性,是硬件子系统的结构概念及其功能特性.经典的"计算机体系结构"定义是1964年C. M. Amdahl在介绍IBM 360系统时提出的. 按照计算机系统的多级