内容发布更新时间 : 2025/5/7 0:38:49星期一 下面是文章的全部内容请认真阅读。
相联度:在组相联中,每组Cache中的块数。
Victim Cache:位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。用于存放由于失效而被丢弃(替换)的那些块。每当失效发生时,在访问下一级存储器之前,先检查Victim Cache中是否含有所需块。
故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会发生异常。
非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不发生异常。
非阻塞Cache:Cache在等待预取数据返回时,还能继续提供指令和数据。
尽早重启动:在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行。
请求字优先:调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。
虚拟Cache:地址使用虚地址的Cache。
多体交叉存储器:具有多个存储体,各体之间按字交叉的存储技术。
存储体冲突:多个请求要访问同一个体。
TLB:一个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。
5.2 简述“Cache—主存”层次与“主存—辅存”层次的区别。 答:
存储层次 比较项目 目的 存储管理的实现 访问速度的比值 (第一级比第二级) 典型的块(页)大小 CPU对第二级的访问方式 不命中时CPU是否切换 “Cache—主存”层次 为了弥补主存速度的不足 全部由专用硬件实现 几比一 几十个字节 可直接访问 不切换 “主存—辅存”层次 为了弥补主存容量的不足 主要由软件实现 几万比一 几百到几千个字节 均通过第一级 切换到其它进程
5.3 地址映象方法有哪几种?它们各有什么优缺点?
答:(1) 全相联映象。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映象。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映象。组相联是直接映象和全相联的一种折衷。
5.4 降低Cache失效率有哪几种方法?简述其基本思想。 答:常用的降低Cache失效率的方法有下面几种: (1) 增加Cache块大小。增加块大小利用了程序的空间局部性。 (2) 增加Cache的容量。 (3) 提高相联度,降低冲突失效。 (4) 伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。
26
如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。
(5) 硬件预取技术。在处理器提出访问请求前预取指令和数据。 (6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。 (7) 编译器优化,通过对软件的优化来降低失效率。 (8) “牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。
5.5 简述减小Cache失效开销的几种方法。
答:让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache技术、采用二级Cache。
5.6