【计算机系统结构】第5章 存储层次问答题

匿名 (未验证) 提交于 2019-12-03 00:27:02

第5

1. 单级存储器的主要矛盾是什么?通常采取什么方法来解决?

(3) 容量越大,速度越慢。

采取多级存储层次方法来解决。

2. 评价存储层次的主要参数有哪些?

存储层次的平均每位价格、命中率或失效率、平均访问时间。

3. “Cache-主存”和“主存-辅存”层次的主要区别是什么?

存储层次

比较项目

“Cache-主存层次

主存-辅存层次

目的

为了弥补主存速度的不足

为了弥补主存容量的不足

存储管理的实现

全部由专用硬件实现

主要由软件实现

访问速度的比值

(第一级比第二级)

几比一

几万比一

典型的块(页)大小

几十个字节

几百到几千个字节

CPU对第二级的访问方式

可直接访问

均通过第一级

不命中时CPU是否切换

不切换

切换到其他进程

4. 在存储层次中应解决哪四个问题?

(4)写策略:当进行写访问时,应进行哪些操作。

5. 地址映像方法有哪几种?它们各有什么优缺点?

(1)全相联映像。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。

(2)直接映像。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。

(3)组相联映像。组相联是直接映像和全相联的一种折中。

6. 组相联Cache比相同容量的直接映像Cache的失效率低。由此是否可以得出结论:采用组相联Cache一定能带来性能上的提高?为什么?

不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。

7. Cache中,有哪两种实现并行查找的方法?

(2)用单体多字存储器和比较器来实现。

8. 替换算法有哪几种?它们各有什么优缺点?

(1)随机法:简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其失效率比LRU的高。

(2)先进先出法:容易实现。它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。

(3)最近最少使用法LRU:失效率最低。但是LRU比较复杂,硬件实现比较困难。

9. 写策略主要有哪两种?它们各有什么优点?

(1) 写直达法:易于实现,而且下一级存储器中的数据总是最新的。

(2) 写回法:速度快,写操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。

10. 在写回法中,可采用什么方法减少在替换时块的写回?

常采用“污染位”标志。即为Cache中的每一块设置一个“污染位”(设在与该块相应的目录表项中),用于指出该块是“脏”的(被修改过)还是干净的(没被修改过)。替换时,若被替换的块是干净的,则不必写回下一级存储器,因为这时下一级存储器中相应块的内容与Cache中的一致。

11. 当发生Cache写失效时,是否调入相应的块,有哪两种选择?

(1)按写分配法:写失效时,先把所写单元所在的块调入Cache,然后再进行写入。这种方法也称为写时取方法。

(2)不按写分配法:写失效时,直接写入下一级存储器而不将相应的块调入Cache。这种方法也称为绕写法。

12. 按照Cache产生失效的原因不同,可以把失效分为哪三类?

强制性失效、容量失效、冲突失效。

13. 3C失效与Cache的相联度、容量有什么样的关系?

⑴ 相联度越高,冲突失效就越少。

⑵ 强制性失效和容量失效不受相联度的影响。

⑶ 强制性失效不受Cache容量的影响,但容量失效却随着容量的增加而减少。

⑷ 2:1的Cache经验规则:大小为N的直接映像Cache的失效率约等于大小为N/2的两路组相联Cache的失效率。

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

不一定。

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

15.伪相联的基本思想是什么?

采用这种方法时,在命中情况下,访问Cache的过程和直接映像Cache中的情况相同;而发生失效时,在访问下一级存储器之前,会先检查Cache另一个位置(块),看是否匹配。确定这个另一块的一种简单的方法是将索引字段的最高位取反,然后按照新索引去寻找伪相联组中的对应块。如果这一块的标识匹配,则称发生了伪命中。否则,就只好访问下一级存储器。

16.伪相联的优点是什么?

伪相联既能获得多路组相联Cache的低失效率又能保持直接映像Cache的命中速度。

17. 降低Cache失效率有哪些方法?

增加Cache块大小、提高相联度、增加Cache的容量、Victim Cache、伪相联Cache、硬件预取技术、由编译器控制的预取、编译器优化。

18. 减少Cache失效开销有哪些方法?

(1) 让读失效优先于写。

(2) 写缓冲合并。

(3) 请求字处理技术。

(4) 非阻塞Cache或非锁定Cache技术。

(5) 采用二级Cache。

19. 减少Cache命中时间有哪些方法?

容量小且结构简单的Cache、虚拟Cache 、Trace Cache、Cache访问流水化。

20. 请求字处理技术有哪两种具体的实现方法?

⑴ 尽早重启动: 在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行

⑵ 请求字优先: 调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立刻送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。请求字优先也称为回绕读取或关键字优先。

21.采用二级Cache的基本思想是什么?

通过在原有Cache和存储器之间增加另一级Cache,构成两级Cache。把第一级Cache做得足够小,使其速度和快速CPU的时钟周期相匹配,而把第二级Cache做得足够大,使它能捕获更多本来需要到主存去的访问,从而降低实际失效开销。

22. 采用容量小且结构简单的Cache有什么好处?

(1)可以有效地提高Cache的访问速度。因为硬件越简单,速度就越快。小容量Cache可以实现快速标识检测,对减少命中时间有益。

(2)Cache足够小,可以与处理器做在同一芯片上,以避免因芯片外访问而增加时间开销。

(3)保持Cache结构简单可采用直接映像Cache。直接映像Cache的主要优点是可以让标识检测和数据传送重叠进行,这样可以有效地减少命中时间。

23. “虚拟索引+物理标识” Cache的基本思想是什么?

直接用虚地址中的页内位移(页内位移在虚实地址的转换中保持不变)作为访问Cache的索引,但标识却是物理地址。CPU发出访存请求后,在进行虚实地址转换的同时,可并行进行标识的读取。在完成地址变换之后,再把得到的物理地址与标识进行比较。

24.可采用什么方法提高存储器带宽?

(1)增加存储器的宽度。

(2) 采用简单的多体交叉存储器。

(3)独立存储体。

(4)避免存储体冲突。

25.增加存储器的宽度有什么不足之处?

(1)它会增加CPU和存储器之间的连接通路(通常称为存储器总线)的宽度,使其实现代价提高。

(2)由于CPU访问Cache仍然是每次访问一个字,所以CPU和Cache之间需要有一个多路选择器,而且这个多路选择器可能会处在关健路径上。主存宽度增加后,用户扩充主存时的最小增量也增加了相应的倍数。在具有纠错功能的存储器中实现对一行(一次可并行读出的数据)中部分数据的写入比较复杂。

26.简述DRAM专用交叉结构优化的三种方式。

(1)Nibble方式 ― 每次进行行访问时,DRAM除能够给出所需的位以外,还能给出其后的3位。

(2)Page方式 ― 缓冲器以SRAM的方式工作:通过改变列地址,可以随机地访问缓冲器内的任一位。这种访问可以反复进行,直到下一次行访问或刷新。

(3)Static column方式 ― 和Page方式类似,只是在列地址改变时,无需触发列访问选通线。



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!