下载此文档

计算机组成原理cache论文-缓存一致性的解决方案.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
缓存一致性的解决方案
摘要:随着计算机技术的飞速发展,CPU时计算机组成的核心部分,提高CPU的性能一直是一个很重要的课题,所以CPU从单核提高到多核,但是总会有一些技术上的难题需要解决,这其中,Cache的一致性问题的解决就推动计算机多核的发展,解决一致性人们提出了一些协议,这其中比较好的解决方案是MESI协议,MESI协议通过监视机制,实时监视总系的事务,当修改某一缓存时,通过通知其它同样持有同一内容的缓存来保持缓存的一致性。
这一协议是目前比较好的解决缓存一致性问题的解决方案,本篇文章就这一经典协议做了分析与总结。
关键词:缓存一致性窥探协议
引言
现代的CPU上,大部分都需要通过缓存来进行内存访问,由于物理架构的原因,CPU没有管脚直接连到内存,所以CPU的读/写(以及取指令)单元正常情况下不能进行直接内存访问。相反,CPU和一级缓存通讯,而一级缓存才能和内存通讯。而现在又大多有了二级缓存,甚至三级缓存。
缓存是分段(line)的,即下文要用的“缓存段”(cache line),当我们提到”缓存段”的时候,就是指一段和缓存大小对齐的内存,而不关心里面的内容是否真正被缓存进去。当CPU看到一条读内存指令时,它会把内存地址传递给一级数据缓存,一级数据缓存会检查它是否有这个内存地址对应的缓存段,没有的话,它会把对应的缓存段加载进来。
如果进行的是读操作,这就很简单,所有级别的缓存都遵循以下规律:在任意时刻,任意级别缓存中的缓存段的内容,等同于它关联内存中的内容。
如果进行写操作,情况就会变得复杂些,一般分为两种基本的写模式:直写(write-through)和回写(write-back)。
直写简单一点:透过缓存,直接把数据写到下一级内存中,如果对应的段被缓存了,就更新缓存中的内容,同样遵循前面的定律:缓存中的段永远和它关联内存的内容匹配。
回写相对复杂一些,回写模式下不会立即把数据传递给下一级,而是仅仅修改本级缓存中的内容,并将其标记为“脏段”,“脏段”会在触发回写,就是将缓存段中的内容传递给下一级,然后脏段又变干净了,即当一个脏段被丢弃了,总是要进行一次回写,在回写模式中,去掉了“任意时刻”这个修饰词,而是以相对弱化的条件代替它:缓存段干净时,缓存段的内容和内存一致;缓存段是脏段时,缓存段中的内容最终要回写到内存中,也就是说可以允许关联内存不和缓存内容同步,但最终要同步。
问题由来
在计算机中,Cache的出现是为了CPU访问内存的速度,只有一个CPU时,不会出现必将难处理的情况,但是有多个CPU时,会出现一个难解决的问题:Cache的一致性如何保证。
具体情况是,多组缓存会共同持有一块内存的内容,如果某一缓存修改了这块内存的内容,那么其它缓存中就不知道这个情况,就会造成缓存的不一致问题,想要解决问题,如果让多个CPU公用一个缓存,每当有指令时,让这些CPU一个一个执行指令,所以每次只有一个CPU在执行指令,虽然这样可以解决缓存不一致问题,但这样会太浪费时间,效率太低,
问题的根源在于有多组缓存,而上面的方法是一组缓存,所以如果将多组缓存看成一组缓存,
看似很难实现,但这确实是可行的,为了实现这样的想法,缓存一致性协议就应运而生了,
这个协议就是能够保证缓存内容的一致性,使多核的效率很大地提高。
缓存一致性协议又有好几种,目前多数计算机都采用的使“窥探(snooping)”协议,这就是本文的主要讲的协议。
“窥探”机制
窥探一种是缓存中的窥探器监视总线事务的机制,它的目标是为了处理好缓存一致性的问题,这个机制是Ravishankar和Goodman在1983年提出的。
当一个特定的数据被多个缓存共享时,并且有一个处理器要修改这个共享数据,那么必须要通知其它拥有这个数据拷贝的缓存。否则,就会违背缓存一致性。这个数据更改通知就可以通过监视总线来完成。所有的监视器监视总线上的每个事务,如果总线上有一个修改共享缓存块事务,相应的监视器就会确保缓存的一致性。
所谓的修改也就是在上面有提到两种写模式,在直写模式下,没有问题,因为写操作一执行,它的效果是立即显现的,不会有停留。但是如果存在回写模式,就会出现问题,因为有可能在写指令执行过后很久,才会触发回写,数据被写回内存中去(这是由于回写机制决定的)——在这段时间内,就可能会出现其它处理器的缓存也去写这块内存,这样就情况就变得不好处理。在回写模型中,如果仅仅把写操作信息通知给其它处理器是不够的,由于回写机制会有时间延迟,所以我们还要做的是,在修改之前就要通知其它处理器,这样就可以避免其它处理器也去写这块内存。具体想法有了,人们就提出来解决这个问题的目前最有效的方案,就是MESI协议(Modified、Exclusive、Shared、Inva

计算机组成原理cache论文-缓存一致性的解决方案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yzhlya
  • 文件大小161 KB
  • 时间2018-01-20