工学

问答题降低Cache失效率有哪几种方法?(至少写出5种)(简述其基本思想。)

题目
问答题
降低Cache失效率有哪几种方法?(至少写出5种)(简述其基本思想。)
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

增加Cache块大小一定会降低失效率吗?


正确答案: 不一定。
对于给定的Cache容量,当块大小增加时,失效率开始是下降,后来反而上升了。主要因为增加块大小会产生双重作用。一方面它减少了强制性失效;另一方面,可能会增加冲突失效。

第2题:

简述通过编译优化降低cache失效率的基本思想。


正确答案: 在编译时,对程序中的指令和数据进行重新组织,是连续访问的指令或数据能够具有根号的时间和空间局部性,以降低Cache失效率。

第3题:

简述钢材矫正有哪几种方法?


参考答案:钢材矫正根据外力来源和性质不同分有火焰矫正、手工矫正和机械矫正三种方法,根据矫正材料的温度分有冷矫正和热矫正两种方法。

第4题:

简述减小Cache失效开销的几种方法。


正确答案: (1)让读失效优先于写。
(2)子块放置技术。
(3)请求字处理技术。
(4)非阻塞Cache技术。
(5)采用两级Cache。

第5题:

降低Cache失效率的措施有哪些?


正确答案: A、增加Cache块大小
B、提高相联度
C、采用VictimCache
D、采用伪相联Cache(列相联)
E、采用硬件预取技术
F、由编译器控制的预取
G、编译器优化

第6题:

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


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

第7题:

简述在cache失效率的策略中,编译优化分块策略的基本思想。


正确答案: 编译器把对数组的整行或整列访问改为按块进行,使得块内的访问具有较好的局部性,从而降低失效率。

第8题:

常用的铸造方法有哪几种(至少写出5种) 。


正确答案:砂型铸造、熔模铸造、离心铸造、金属型铸造、压力铸造、真空密封铸造。

第9题:

通过编译器对程序优化来改进Cache性能的方法有哪几种?简述其基本思想。


正确答案: (1)数组合并,通过提高空间局部性来减少失效次数。有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。
(2)内外循环交换。循环嵌套时,程序没有按数据在存储器中的循序访问。只要简单地交换内外循环,就能使程序按数据在存储器中的存储循序进行访问。
(3)循环融合。有些程序含有几部分独立的程序断,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。
(4)分块。通过改进时间局部性来减少失效。分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。

第10题:

简述降低Cache失效率的几种方法。


正确答案: 常用的降低Cache失效率的方法有下面几种:
(1)增加Cache块大小。增加块大小利用了程序的空间局部性。
(2)提高相联度,降低冲突失效。
(3)VictimCache,降低冲突失效。
(4)伪相联Cache,降低冲突失效。
(5)硬件预取技术,指令和数据都可以在处理器提出访问请求前进行预取。
(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
(7)编译器优化,通过对软件的优化来降低失效率。