降低Cache失效率有哪几种方法?简述其基本思想。

大学 思想, 已帮助 人

降低Cache失效率有哪几种方法?简述其基本思想。

请帮忙给出正确答案和分析,谢谢!

热搜:体温测量的常用方法有哪几种?

答案解析

难度★★☆ 搜索
  • 正确答案:常用的降低Cache失效率的方法有下面几种。 ①增加Cache块大小。增加块大小利用了程序的空间局部性原理。 ②增加Cache的容量。 ③提高相联度降低冲突失效。 ④伪相联映像Cache降低冲突失效。当对伪相联映像Cache进行访问时首先是按与直接映像相同的方式进行访问。如果命中则从相应的块中取出所访问的数据送给CPU访问结束。如果失效就将索引字段的最高位取反然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配则称发生了“伪命中”。否则就访问下一级存储器。 ⑤硬件预取技术。指令和数据都可以在处理器提出访问请求前进行预取。 ⑥由编译器控制的预取。这是硬件预取的替代方法在编译时加入预取的指令在数据被用到之前发出预取请求。 ⑦编译器优化。通过软件优化方法来降低失效率。 ⑧Victim Cache。在Cache和它与下一级存储器的数据通路之间增设一个全相联映像的小Cache存放因冲突而被替换出去的那些块。每当发生失效时在访问下一级存储器之前先检查Victim Cache中是否含有所需的块。如果有就将该块与Cache中某个块做交换把所需的块从Victim Cache调入Cache。
    常用的降低Cache失效率的方法有下面几种。①增加Cache块大小。增加块大小利用了程序的空间局部性原理。②增加Cache的容量。③提高相联度,降低冲突失效。④伪相联映像Cache,降低冲突失效。当对伪相联映像Cache进行访问时,首先是按与直接映像相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果失效,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。⑤硬件预取技术。指令和数据都可以在处理器提出访问请求前进行预取。⑥由编译器控制的预取。这是硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。⑦编译器优化。通过软件优化方法来降低失效率。⑧VictimCache。在Cache和它与下一级存储器的数据通路之间增设一个全相联映像的小Cache,存放因冲突而被替换出去的那些块。每当发生失效时,在访问下一级存储器之前,先检查VictimCache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从VictimCache调入Cache。