计算机系统结构(高教版)张晨曦习题答案第五章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1 解释下列术语解释下列术语
多级存储层次:由若干个采用不同实现技术的存储器构成的存储器系统,各存储器处在离CPU 不同距离的层次上。

使得靠近CPU 的存储器速度较快,容量较小。

整个存储系统的速度接近与离CPU 最近的存储器的速度,而容量和每位价格接近于最低层次的容量和价格。

全相联映像:指主存中的任一块可以被放置到Cache 中的任意一个位置。

中的任意一个位置。

直接映像:指主存中的每一块只能被放置到Cache 中唯一的一个位置。

中唯一的一个位置。

组相联映像:指主存中的每一块可以被放置到Cache 中固定的一个组中的任意位置。

中固定的一个组中的任意位置。

替换算法:由于主存中的块比Cache 中的块多,所以当要从主存中调入一个块到Cache 中时,会出现该块所映像的Cache 块位置已经被占用的情况。

替换算法即解决如何选择替换块的问题。

题。

LRU :最近最少使用法。

选择近期最少被访问的块作为被替换的块。

写直达法:在执行“写”操作时,不仅把信息写入Cache 中相应的块,而且也写入下一级存储器中相应的块。

储器中相应的块。

写回法:只把信息写入Cache 中相应的块,该块只有在被替换时才被写回主存。

中相应的块,该块只有在被替换时才被写回主存。

按写分配法:在写失效时,先把所写单元所在的块从主存调入Cache ,然后再进行写入。

,然后再进行写入。

不按写分配法:写失效时,直接写入下一级存储器而不将相应的块调入Cache 。

命中时间:CPU 所要访问的块在Cache 中,确认并取走所花费的时间开销。

中,确认并取走所花费的时间开销。

失效率:CPU 一次访存不命中的概率。

一次访存不命中的概率。

失效开销:CPU 一次访存不命中,而额外增加的访存开销。

一次访存不命中,而额外增加的访存开销。

强制性失效:当第一次访问一个块时,该块不在Cache 中,需从下一级存储器中调入Cache 。

容量失效:容量失效:如果程序执行执行时所需的块不能全部调入如果程序执行执行时所需的块不能全部调入Cache 中,则当某些快被替换后,则当某些快被替换后,若若又重新被访问,就会发生失效。

又重新被访问,就会发生失效。

冲突失效:冲突失效:在组相联或直接映像在组相联或直接映像Cache 中,若不多的块映像到同一组中,若不多的块映像到同一组中,则会出现该组中某则会出现该组中某个块被别的块替换,然后又重新被访问的情况。

个块被别的块替换,然后又重新被访问的情况。

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

的失效率。

相联度:组相联中每组的块数n 成为相联度。

成为相联度。

Vic m Cache :在Cache 和它的下一级存储器之间增设一个全相联映像的Cache ,存放因冲突而被替换出去的块。

而被替换出去的块。

故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会引发异常。

非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不会引发异常,而是放弃预取,转变为空操作。

取,转变为空操作。

非阻塞Cache :Cahce 在等待预取数据返回的同时,还能继续提供指令和数据。

在等待预取数据返回的同时,还能继续提供指令和数据。

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

尽早冲启动,继续执行。

请求字优先:调块时,首先向存储器请求CPU 所要的请求字。

请求字一旦到达,就立即送往CPU ,让CPU 继续执行,同时从存储器调入该块的其余部分。

继续执行,同时从存储器调入该块的其余部分。

虚拟Cache :和失效相比,Cache 命中发生的频度高的多。

按照“以经常性事件为重点”的指导思想,应在Cache 中使用虚拟地址。

这样的Cache 成为虚拟Cache 。

多体交叉存储器:在存储系统中采用多个DRAM ,并利用它们潜在的并行性,可以把存储芯片组织为多个体,片组织为多个体,并让他们并行工作。

并让他们并行工作。

并让他们并行工作。

从而能一次读或写多个字,从而能一次读或写多个字,从而能一次读或写多个字,存储器内的各个体是按字存储器内的各个体是按字交叉的。

交叉的。

存储体冲突:两个请求要访问同一体。

存储体冲突:两个请求要访问同一体。

TLB :地址变换缓冲器,用于存放近期使用的页表项,其内容是页表部分内容的一个副本。

5.2 简述“Cache ——主存”层次与“主存——辅存”层次的区别——主存”层次与“主存——辅存”层次的区别
Cache ——主存——主存 主存——辅存主存——辅存 目的目的
为了弥补主存速度的不足为了弥补主存速度的不足 为了弥补主存容量的不足为了弥补主存容量的不足 存储管理实现存储管理实现
全部由专用硬件实现全部由专用硬件实现 主要由软件实现主要由软件实现 访问速度访问速度
几比一几比一 几万比一几万比一 典型的块大小典型的块大小
几十个字节几十个字节 几百到几千个字节几百到几千个字节 CPU 对第二级的访问方式对第二级的访问方式
可直接访问可直接访问 均通过第一级均通过第一级 不命中时CPU 是否切换是否切换
不切换不切换 切换到其他进程切换到其他进程
5.3
全相联映像:利用率高,冲突概率最低,失效率最低。

实现复杂,查找速度慢。

直接映射:查找速度快,失效率最高。

直接映射:查找速度快,失效率最高。

组相联映像:是全关联映像和直接映像的折中。

组相联映像:是全关联映像和直接映像的折中。

5.4
1) 增加Cache 块大小,利用了程序的空间局部性块大小,利用了程序的空间局部性
2) 提高相联度,降低冲突失效提高相联度,降低冲突失效
3) Vic m Cache 降低冲突失效降低冲突失效 4) 伪相联Cache 降低冲突失效降低冲突失效
5) 硬件预取技术硬件预取技术 指令和数据都可以在处理器提出访问请求前进行预取指令和数据都可以在处理器提出访问请求前进行预取
6) 由编译器控制的预取由编译器控制的预取 在编译时加入预取的指令,在数据被用到之前发出预取请求在编译时加入预取的指令,在数据被用到之前发出预取请求 7) 编译器优化编译器优化 通过对软件的优化来降低失效率通过对软件的优化来降低失效率
5.5
1) 让读失效先于写失效:让读失效先于写失效:当当Cache 访问失效时,访问失效时,总是推迟对读失效的处理,总是推迟对读失效的处理,总是推迟对读失效的处理,直到写缓冲器直到写缓冲器清空清空
2) 写缓冲合并:在进行写缓冲器时,将写同一地址的操作合并写缓冲合并:在进行写缓冲器时,将写同一地址的操作合并
3) 请求字处理技术:当CPU 请求的字到达后,不等整个块都调入Cache ,就可以把该字发
送给CPU ,并重启CPU
4) 非阻塞技术:CPU 访问Cache 失效时,继续处理CPU 对Cache 中其他部分的访问中其他部分的访问 5) 二级Cache :在Cache 和主存之间增加一级Cache ,既使CPU 与Cache 速度差异降低,
又使Cache 与主存容量差距缩小与主存容量差距缩小
5.7
写直达法:对Cache 执行写操作时,不仅把信息写入Cache 中相应块,而且也写入主存。

其数据一致性高。

数据一致性高。

写回法:写回法:只把信息写入只把信息写入Cache 中相应块,中相应块,而且仅当该块被替换回主存时才被写回主存。

而且仅当该块被替换回主存时才被写回主存。

而且仅当该块被替换回主存时才被写回主存。

该方该方法操作简单。

法操作简单。

5.8
不能,因为性能不止与失效率有关,还跟失效开销,命中时间有关。

组相联Cache 的失效率虽比相同容量的直接映像的Cache 失效率低,但其命中时间较长,所以性能不一定提高。

失效率低,但其命中时间较长,所以性能不一定提高。

5.9
平均访问时间平均访问时间 = 命中时间L1 + 失效率L 1 ×(命中时间L2 + 失效率L2 × (命中时间L3 +
失效率L3
+ 失效开销L3))
5.10
失效率:失效率: 混合64kb 的失效率低的失效率低
75% × 0.39% + 25% × 4.82% =1.4975% > 1.35%
平均访存时间:平均访存时间:
1) 分开分开 32Kb+32Kb
T = 1 + 1.4795% × 50 = 1.74875
2) 混合64Kb
T = 2 + 1.35% × 50 = 2.675
5.11
1)平均访存时间:)平均访存时间:
直接映像直接映像 T
= 2 + 0.14×80 = 3.12 2路组相联路组相联 T
= 2×1.1 + 0.01×80 = 3 2)CPU 性能:性能:
直接映像:直接映像: T
= IC ×(2.0×2 + 1.2×1.4%×80)= 5.34IC 2路组相联路组相联 T
= IC ×(2.0×2×1.1 + 1.2×1.0%×80) = 5.36IC 结论:平均访问时间减小,CPU 性能不一定提高。

性能不一定提高。

5.12
1)写直达Cache
采用该方法,采用该方法,
读命中,不访问主存;读命中,不访问主存;
写命中,更新Cache 和主存,访问一次;和主存,访问一次;
访问失效:访问失效:
读失效,将主存中的块调入Cache ,访问主存两次;,访问主存两次;
写失效,将要写的块调入Cache ,访问两次主存;再讲修改的数据写入Cache 和主存,共访问主存三次;共访问主存三次;
综上,平均访存次数=(71.3%×0)+(23.8%×1)+(3.8%×2)+(1.3%×3)=0.35
已用带宽已用带宽 =
0.35×10^9/10^9 = 35% 2)写回法Cache
采用该法,采用该法,
读命中,不访问主存;读命中,不访问主存;
写命中,更新Cache ,不访问主,不访问主
访问失效,分两种情况:访问失效,分两种情况:
如果被替换的块没有被修改过,则将主存中的块调入Cache ,需访问主存两次;,需访问主存两次;
如果被替换的块被修改过,则先将此块写入主存,访存两次,再降目标块调入主存,需访存两次,共四次访存两次,共四次
综上,平均访存次数=3.5%×2+1.5%×4=13%
已用带宽=0.13×10^9/10^9
= 13%
5.13
()指令数
停顿)++(指令数存储停顿周期数失效开销失效率指令数
存储访问=指令数停顿周期数指令数
停顿数据访问停顿++指令数取指令停顿=指令数存储停顿周期数数据数据数据指令指令TLB P R f P R TLB =××
配置配置 失效率失效率
CPI 16KB 直接统一映象直接统一映象 0.029
2.95 16KB 两路统一映象两路统一映象 0.022
2.6 32KB 直接统一映象直接统一映象
0.020 2.5。

相关文档
最新文档