欢迎来到天天文库
浏览记录
ID:27418862
大小:298.00 KB
页数:101页
时间:2018-12-02
《多核对操作系统的影响1cache一致性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、多核对操作系统的影响(1)Cache一致性outlineCacheCoherence问题CacheCoherence的提出多个Cache不一致的原因两种设计Cache一致性协议策略监听总线协议基于目录的Cache一致性协议三种Cache一致性策略2CacheCoherence问题CacheCoherence问题的提出在多核和多处理器系统中,多个Cache对应的copy内容应该一致:MemoryCachecoreCachecore……Cachecore这几个copy应该一致3多个Cache不一致的原因共享可写数据的不一致性进程迁
2、移的不一致性I/O操作(绕过Cache的I/O操作)4共享可写数据的不一致性(sharingofwritabledata)core1core2更新前xxx核Cachesharedmemorycore1core2写通过x’xx’core1core2写回x’xxCache和内存时刻保持一致5进程迁移的不一致性core1core2迁移前xx核Cachecore1core2写通过xx’x’core1core2写回x’xx6I/O操作(绕过Cache的I/O操作)core1core2xx存储器core1core2写通过xxcore1co
3、re2写回x’xxx’x’xxI/O存储器输入存储器输出c1c2总线7两种设计Cache一致性协议策略写无效(writeinvalidate)任一core写它的私有Cache时,它都使所有其它的Cache中的副本失效。对Write-through,它也更新memory中的副本(最终是一个Cache中的副本和memory中的副本是有效的)。对Write-back,它使memory中的副本也失效(最终只有一个Cache中的副本是有效的)。8两种设计Cache一致性协议策略写更新(writeupdate)任一处理器写它的私有Cach
4、e时,它都立即更新所有其它的Cache中的副本。对Write-through,它也更新主存储器中的副本。对Write-back,对存储器中副本的更新延迟到这个Cache被置换的时刻。9下图表示数据块x在共享存储器和三个核的Cache中的副本一致的情形。x共享存储器CacheP1xP2xxP3…………总线核10下图表示core1进行写无效操作后的情形。写通过:x’I表示无效core1Icore2x’Icore3…………共享存储器Cache总线核11写回:x’I表示无效core1Icore2IIcore3…………共享存储器Cach
5、e总线核12下图表示core1进行写更新操作后的情形(写通过)。x’I表示无效core1x’core2x’x’core3…………共享存储器Cache总线核13写无效的问题主要开销在两个方面:(1)作废各Cache副本的开销;(2)由作废引起缺失造成的开销,即处理机需要访问已经作废的数据时将引起Cache的缺失。14写无效后果:如果一个Core经常对某个块连续写,且Core间对共享块的竞争较小,这时写无效策略维护一致性的开销是很小的。如发生严重竞争,即Core之间对某个地址的共享数据竞争,将产生较多的作废,引起更多的作废缺失。结
6、果是共享数据在各Cache间倒来倒去,产生颠簸现象,当缓存块比较大时,这种颠簸现象更为严重。15写更新的问题由于更新时,所有的副本均需要更新,开销很大。16outlineCacheCoherence问题CacheCoherence的提出多个Cache不一致的原因两种设计Cache一致性协议策略监听总线协议写一次协议基于目录的Cache一致性协议三种Cache一致性策略17监听总线协议(Snoopyprotocol)通过总线监听机制实现Cache和共享存储器之间的一致性。适用性分析:适用于具有广播能力的总线结构多Core系统,允
7、许每个Core监听其它Core的存储器访问情况。只适用于小规模的多Core系统。18写一次(write-once)协议写无效监听一致性协议,将写通过和写回策略结合。为了减少总线流量,高速缓存块的第一次写用写通过方法,产生一份正确的主存储器副本,并使其它的Cache中的副本无效,之后就采用写回方法更新Cache与主存储器。19一致性协议的内容包括(1)Cache可能出现的状态集合(2)共享主存的状态(3)为维护一致性而引起的状态转换。20每份Cache中的副本可能出现的四种状态(1)有效(validstate):与主存储器副本一
8、致的Cache副本,即该副本未经修改,所以这个Cache副本不是唯一的副本。(2)保留(reservedstate):这一Cache副本是第一次修改,并用写通过方法写入主存,所以这一Cache副本和主存储器副本一致。(3)重写(dirtystate):Cache副本不止一次被
此文档下载收益归作者所有