多核对操作系统的影响1Cache一致性.ppt
《多核对操作系统的影响1Cache一致性.ppt》由会员分享,可在线阅读,更多相关《多核对操作系统的影响1Cache一致性.ppt(101页珍藏版)》请在三一办公上搜索。
1、多核对操作系统的影响(1)Cache一致性,2,outline,Cache Coherence问题Cache Coherence的提出多个Cache不一致的原因两种设计Cache一致性协议策略监听总线协议基于目录的Cache一致性协议三种Cache一致性策略,3,Cache Coherence问题,Cache Coherence问题的提出在多核和多处理器系统中,多个Cache对应的copy内容应该一致:,Memory,Cache,core,Cache,core,Cache,core,这几个copy应该一致,4,多个Cache不一致的原因,共享可写数据的不一致性进程迁移的不一致性I/O操作(绕过
2、Cache的I/O操作),5,共享可写数据的不一致性(sharing of writable data),core1,core2,更新前,x,x,x,核,Cache,sharedmemory,core1,core2,写通过,x,x,x,core1,core2,写回,x,x,x,Cache和内存时刻保持一致,6,进程迁移的不一致性,core1,core2,迁移前,x,x,核,Cache,core1,core2,写通过,x,x,x,core1,core2,写回,x,x,x,7,I/O操作(绕过Cache的I/O操作),core1,core2,x,x,存储器,core1,core2,写通过,x,x,
3、core1,core2,写回,x,x,x,x,x,x,x,I/O,存储器,输入,存储器,输出,c1,c2,总线,8,两种设计Cache一致性协议策略,写无效(write invalidate)任一core写它的私有Cache时,它都使所有其它的Cache中的副本失效。对Write-through,它也更新memory中的副本(最终是一个Cache中的副本和memory中的副本是有效的)。对Write-back,它使memory中的副本也失效(最终只有一个Cache中的副本是有效的)。,9,两种设计Cache一致性协议策略,写更新(write update)任一处理器写它的私有Cache时,它都
4、立即更新所有其它的Cache中的副本。对Write-through,它也更新主存储器中的副本。对Write-back,对存储器中副本的更新延迟到这个Cache被置换的时刻。,10,下图表示数据块x在共享存储器和三个核的Cache中的副本一致的情形。,x,共享存储器,Cache,P1,x,P2,x,x,P3,总线,核,11,下图表示core1进行写无效操作后的情形。写通过:,x,I表示无效,core1,I,core2,x,I,core3,共享存储器,Cache,总线,核,12,写回:,x,I表示无效,core1,I,core2,I,I,core3,共享存储器,Cache,总线,核,13,下图表示
5、core1进行写更新操作后的情形(写通过)。,x,I表示无效,core1,x,core2,x,x,core3,共享存储器,Cache,总线,核,14,写无效的问题主要开销在两个方面:(1)作废各Cache副本的开销;(2)由作废引起缺失造成的开销,即处理机需要访问已经作废的数据时将引起Cache的缺失。,15,写无效后果:如果一个Core经常对某个块连续写,且Core间对共享块的竞争较小,这时写无效策略维护一致性的开销是很小的。如发生严重竞争,即Core之间对某个地址的共享数据竞争,将产生较多的作废,引起更多的作废缺失。结果是共享数据在各Cache间倒来倒去,产生颠簸现象,当缓存块比较大时,这
6、种颠簸现象更为严重。,16,写更新的问题由于更新时,所有的副本均需要更新,开销很大。,17,outline,Cache Coherence问题Cache Coherence的提出多个Cache不一致的原因两种设计Cache一致性协议策略监听总线协议写一次协议基于目录的Cache一致性协议三种Cache一致性策略,18,监听总线协议(Snoopy protocol),通过总线监听机制实现Cache和共享存储器之间的一致性。适用性分析:适用于具有广播能力的总线结构多Core系统,允许每个Core监听其它Core的存储器访问情况。只适用于小规模的多Core系统。,19,写一次(write-once)
7、协议写无效监听一致性协议,将写通过和写回策略结合。为了减少总线流量,高速缓存块的第一次写用写通过方法,产生一份正确的主存储器副本,并使其它的Cache中的副本无效,之后就采用写回方法更新Cache与主存储器。,20,一致性协议的内容包括(1)Cache可能出现的状态集合(2)共享主存的状态(3)为维护一致性而引起的状态转换。,21,每份Cache中的副本可能出现的四种状态(1)有效(valid state):与主存储器副本一致的Cache副本,即该副本未经修改,所以这个Cache副本不是唯一的副本。(2)保留(reserved state):这一Cache副本是第一次修改,并用写通过方法写入主
8、存,所以这一Cache副本和主存储器副本一致。(3)重写(dirty state):Cache副本不止一次被修改过,由于不再采用写通过方法,所以这个Cache副本是唯一的副本。与存储器和其它的Cache副本都不一致。主存储器中的副本也是无效的。(4)无效(invalid state)与存储器或其它的Cache副本不一致,或在Cache中找不到。,22,局部命令(Local commands)(1)P-Read:本地处理机读自己的Cache副本。(2)P-Write:本地处理机写自己的Cache副本。,23,一致性命令(1)Read-blk:从另一Cache读一份有效的副本。(2)Write-i
9、nv:在写命中时在总线上广播一个无效命令。(3)Read-inv:在写缺失时在总线上广播一个无效命令。,24,Dirty:modified more than once,the only copy in the system;Invalid:inconsistent copy;Reserved:after written once,the only copy consistent with memory;Valid:A copy consistent with the memory copy.,Write-Once一致性协议状态转移图其中,四种状态的含义如下:,25,Invalid,Valid
10、,Dirty,Reserved,Read-inv(4),P-Write(1),P-Write(hit:local still dirty),P-Write(hit:local,not memoryupdate,local copy becomes dirty),P-Write(hit:local,updatememory copy,broadcastwrite-inv to all cache,local copybecomesreserved),Read-blk(3),Read-inv(4),P-Read(2),Read-blk(3),Read-inv(4)/Write-inv(5),P-R
11、ead(hit:alwayslocal,no statetransition),26,Invalid,Valid,Dirty,Reserved,27,Invalid,Valid,Dirty,Reserved,28,Invalid,Valid,Dirty,Reserved,29,Invalid,Valid,Dirty,Reserved,30,Invalid,Valid,Dirty,Reserved,31,Write-Once一致性协议状态转移表,必是局部进行,不影响有效状态,第一次写命中,用写通过法。同时修,改本地和主存副本并广播Write-inv使所有副本失效,command,currents
12、tate,nextstate,status,P-Read,有效,有效,Read-hit,P-Write,有效,保留,Write-hit,action,第二次写命中,用写回法。但不修改,主存的副本,P-Write,保留,重写,Write-hit,32,写缺失时,则从主存或远程Cache送来副本,。并广播Read-inv使所有其它副本无效。,command,currentstate,nextstate,status,P-Write,无效,保留,Write-miss,action,(续表),第二次以后更多的写命中,用写回法。,无状态改变。,P-Write,重写,重写,Write-hit,33,写缺失
13、时,则从主存或远程Cache送来副本,。并广播Read-inv使所有其它副本无效。,command,currentstate,nextstate,status,P-Write,无效,保留,Write-miss,action,(续表),第二次以后更多的写命中,用写回法。,无状态改变。,P-Write,重写,重写,Write-hit,34,command,currentstate,nextstate,status,action,(续表),读缺失时,如远程Cache中没有重写副本,则主,存中一定有一份正确的副本,供给发请求的Cache。如远程的Cache有重写的副本,则它禁止主存操作,并将副本发给请
14、求的Cache,两种情况均使发请求的Cache得到的副本为有效。,P-Read,无效,有效,Read-miss,35,远程Cache读此副本,读后两份副本均有效,Read-blk,保留或重写,有效,command,currentstate,nextstate,status,action,(续表),写缺失时,远程Cache读一个块,并修改它,并使所有其它Cache的副本无效。,Read-inv,除无效外的其它状态,无效,36,写命中时,一远程Cache修改其本地副本,并使数据块的其它副本无效,Write-inv,有效,无效,command,currentstate,nextstate,statu
15、s,action,(续表),如果副本处于重写状态,必须通过块替换写回主存,否则不产生替换操作,Write-inv,有效,无效,替代,37,一个具体的例子如下图的系统:,Memory,C1,Core1,C2,Core2,C3,Core3,38,读的情况:(1)如果C1为Valid,读C1,则Read hit,状态不变。(2)如果C1为Reserved,读C1,则Read hit,状态不变。(3)如果C1为Dirty,读C1,则Read hit,状态不变。(4)如果C1为Invalid,C2和C3没有东西,则读C1时Read miss,这时只有memory中有正确的副本,把它取到C1,C1改为Va
16、lid(P-Read负责实现状态的改变)。,39,(5)如果C1为Invalid,C2为Dirty,则读C1时Read miss,这时只有C2中的内容是正确的,要发Read-blk信号把副本从C2读到C1,同时修改memory,把C1,C2都改为Valid(程序状态转移图中P-Read(2)使C1Valid,Read-blk(3)使C2 Valid)。(6)如果C1为Invalid,C2为Reserved,则读C1时Read miss,这时发Read-blk信号把 C2C1,C1,C2都改为Valid,其中Read-blk(3)负责把C2由ReservedValid,P-Read(2)负责把C
17、1由InvalidValid。,40,写的情况:(1)如果C1为Valid,写C1,则Write hit,发P-write修改C1内容,修改memory,发Write-inv(4)给所有Cache,C1变成Reserved状态。(2)如果C1为Reserved,写C1,则Write hit,发P-write修改C1内容,不修改memory,C1状态变为Dirty。(3)如果C1为Dirty,写C1,则Write hit,发P-write修改C1内容,不修改memory,状态仍为Dirty。,41,(4)如果C1为Invalid,C2,C3没有东西,这时memory中有这个地址的数据副本,从me
18、mory中读取该副本到C1,再把要写的内容写入C1,这时C1和memory内容不一致,把C1的状态变为Dirty。(5)如果C1为Invalid,C2为Dirty,这时memory中内容和C2中的内容不一致,把 C2C1,再把要写的内容写入C1,C1Dirty,发Read-inv使其它所有Cache的副本变成无效状态。,42,(6)如果C1为Invalid,C2为Reserved,这时memory中的内容和C2内容一致,把C2C1,再把要写的内容写入C1,这时C1与memory内容不一致,使C1Dirty,发Read-inv使其它所有Cache的副本变成无效状态。,43,C1的三种状态的图示:
19、,x,x,core1,x,core2,x,core3,C1,C2,C3,memory,valid,C1中的副本和memory中一致,44,x,x,core1,I,core2,I,core3,C1,C2,C3,memory,Reserved,Invalid,C1中的副本和memory中一致,都正确,45,x,x,core1,I,core2,I,core3,C1,C2,C3,memory,Dirty,Invalid,C1中的副本和memory不一致,只有C1中的副本正确,46,其它的一些问题 Core要向Cache写数据,如果write miss,表示该数据块不在Cache中或者该数据快处于无效状
20、态,那么需要把正确的数据从memory或其它的Cache中取过来,然后再写操作。,47,为什么不能直接写?(1)可能该数据块根本不在Cache中,所以需要从其它地方调入。(2)已在Cache中,但数据不正确,这时如果直接写入数据,整个数据块可能还是不正确的。例如,数据不正确的原因是100号单元数据已修改,如果要写入一个数据到101单元,这时不能直接写,否则100号单元还是错的。,48,Cache Coherence问题概要:多核或多处理机系统共享存储器Cache块的状态访问的数据是最新的,不是“过时”的内容,49,Cache Coherence问题监听总线协议基于目录的Cache一致性协议目录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多核 操作系统 影响 Cache 一致性
链接地址:https://www.31ppt.com/p-6456669.html