版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高速缓冲存储器一致性计算机术语01简介实现一致性MESI协议目录030204基本信息高速缓冲存储器一致性(Cachecoherence),也称缓存一致性,高速缓存间一致性。是指在采用层次结构存储系统的计算机系统中,保证高速缓冲存储器中数据与主存储器中数据相同机制。在一个系统中,当许多不同的设备共享一个共同存储器资源,在高速缓存中的数据不一致,就会产生问题。这个问题在有数个CPU的多处理机系统中特别容易出现。简介简介内存系统的本质是,一个内存系统应该能提供一组保存值的存储单元,当对一个存储单元执行读操作时,应该能返回“最近”一个对该存储单元的写操作所写入的值。在串行程序中,程序员利用内存来将程序中某一点计算出来的值,传递到该值的使用点,实际上就是利用了以上的基本性质。同样,运行在单处理器上的多个进程或线程利用共享空间进行通信,实际上也是利用了内存系统的这个性质。一个读操作应返回最近的向那个位置的写操作所写的值,而不管是哪个线程写的。当所有的线程运行在同一个物理处理器上时,它们通过相同的高速缓存层次来看内存,因此在这种情况下,高速缓存不会引起问题。当在共享存储的多处理器系统上运行一个具有多个进程的程序时,希望不管这些进程是运行在同一个处理器上,还是在不同的处理器上,程序的运行结果都是相同的。然而,当两个运行在不同的物理处理器上的进程通过不同的高速缓存层次来看共享内存时,其中一个进程可能会看到在它的高速缓存中的新值,而另一个则可能会看到旧值,这样就引起了一致性问题
。高速缓冲存储器一致性的比较正式的一个定义是当一个共享存储的机器满足以下条件时,则可以认为该系统是高速缓冲存储器一致的:以上定义保证了两个属性写广播和写串行化。写广播指的是写操作被其他所有处理器所观察到。定串行化是指对某一存储位置的所有写操作的顺序,在所有处理器看来都是一样的。高速缓冲存储器一致性可以分为三个层级:一致性一致性关于一致性的概念,直观上可以定义为每个读操作必须返回最后写入此位置的值。对于每个处理器单元的操作都有一个总体的、串行的操作序是我们希望在任何一个一致性存储系统中见到的。因此,可以对高速缓存一致性进行一个更加形式化的定义方法:如果某个程序的任何执行结果都满足下列条件:对于任何单元,有可能建立一个假想的操作序列(也就是说,将所有进程发出的读写操作排成一个全序,此序列与执行结果一致,并且在序列中):任何特定进程发出的操作所表现出来的序和该进程向存储系统发出它们的序相同,且每个读操作返回的值是对相应单元按照串行顺序写入的最后一值,那么此多处理器存储系统是一致性。此外,关于多个私有缓存还存在另外一方面的问题:如果数据是由一个处理器核对某个单元写入,而另一个处理器从中读出这样的方式来进行传递的话,那么我们前面所的一致性将是非常重要的。最终,写在一个单元中的数据将对所有的读取者都会是可见的,但这种一致性并没有指明所写入的数据何时会成为可见的。通常,在编写一个并行程序时,我们希望在写和读之间建立一种序,即我们需要定义一个序模型,依照该模型,程序员能推断他们程序的执行结果及其正确性。这个模型就是存储同一性。一个完整的一致性模型包括高速缓存一致性及存储同一性两个方面,且这两个是互补的:高速缓存一致性定义了对同一个存储进行的读写操作行为,而存储同一性模型定义了访问所有存储的读写行为。在共享存储空间中,多个进程对存储的不同单元做并发的读写操作,每个进程都会看到一个这些操作被完成的序。实现实现高速缓存一致性协议是解决缓存一致性问题的主要方案,同时也是保证存储同一性的重要手段。它定义了共享缓存块在各个私有缓存中的存在形式,并详细定义了各个私有缓存之间的通信行为。学术界及工业界已经提出了多种高速缓存一致性协议模型,但所有模型的出发点都是一样的,它们都是为了保证存储模型SWMR(single-writer,multiple-reader)属性,即对于一个给定的缓存块,在系统运行的任意时刻,保证(1)同时只能有一个处理器核拥有对此缓存的写权限;或者(2)同时可以有零个或者多个处理器核拥有对此缓存块的读权限。根据共享数据的修改方式的不同,可以将高速缓存一致性协议的实现分为两种形式:写无效协议、写更新协议。其中,在写无效协议中,处理器核在对某个存储块进行写操作之前,必须保证当前的处理器核拥有对此缓存块的读写权。如果两个或者多个处理器核试图同时访问同一个数据项并执行写操作,那么它们中同时只能有一个在进行,另一个访问请求会被阻塞;在某个处理器执行写操作时,其它所有私有缓存中该数据的副本都会被置为无效状态。在当前处理器完成写操作后,后续的对此数据的所有操作,都必须首先获得此新写入数据的副本。因此,写无效型的协议强制执行了写操作的串行化。写更新协议也称为写广播协议,它是指处理器核在对某个数据进行写操作时,同时更新当前数据在其它所有缓存中的数据副本。有两种主要的缓存一致性协议:基于侦听形式的高速缓存一致性协议(或侦听协议)及基于目录结构的高速缓存一致性协议(或目录协议)。MESI协议MESI协议单核Cache中每个Cacheline有2个标志:dirty和valid标志,它们很好的描述了Cache和Memory(内存)之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器中,多个核会共享一些数据,MESI协议就包含了描述共享的状态。在MESI协议中,每个Cacheline有4个状态,可用2个bit表示,它们分别是:M(Modified):这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本Cache中。E(Exclusive):这行数据有效,数据和内存中的数据一致,数据只存在于本Cache中。S(Shared):这行数据有效,数据和内存中的数据一致,数据存在于很多Cache中。I(Invalid):这行数据无效。在该协议的作用下,虽然各cache控制器随时都在监听系统总线,但能监听到的只有读未命中、写未命中以及共享行写命中三种情况。读监听命中的有效行都要进入S态并发出监听命中指示,但M态行要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏省苏州市昆山市中考数学第一次适应性试卷
- 草原洪涝后人畜共患病风险预警课件
- 草原人畜共患病健康促进科普课件
- 全国高血压日互动游戏课件
- 离散数学及其应用-03 集合的基本概念和运算
- 2026年高考新课标一卷理综生物真题试卷
- 2025年安徽省(专升本)英语考试题库(含答案)
- 2026每月时政考试题目及答案
- 2026第四季度医保知识培训考试题目及答案
- 怎么复习效率最高 - 期末冲刺课件
- 2025~2026学年七年级上学期第一次月考数学试卷2【附解析】
- 河南省郑州市实验中学2026-2027学年高二上学期第一次月考英语试卷
- 加入保险行业的十五大理由
- 酮症酸中毒指南2025版
- 社区公文写作格式和范文(15篇)
- 10kV配电站房建设施工方案
- 检验科试剂耗材精细化管理方案
- 物业维修管理流程及注意事项
- 2026年河南省高考物理试卷(含答案及解析)
- TAVR麻醉管理策略
- 直通线的制作
评论
0/150
提交评论