试题详情
简答题降低Cache失效率有哪几种方法?(至少写出5种)(简述其基本思想。)
  • 常用的降低Cache失效率的方法有下面几种:
    (1)增加Cache块大小。增加块大小利用了程序的空间局部性。
    (2)增加Cache的容量。
    (3)提高相联度,降低冲突失效。
    (4)伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
    (5)硬件预取技术。在处理器提出访问请求前预取指令和数据。
    (6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
    (7)编译器优化,通过对软件的优化来降低失效率。
    (8)“牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache调入Cache。
  • 关注下方微信公众号,在线模考后查看

热门试题