第五章 作业(149A)【计算机系统结构】

简介: 第五章 作业(149A)【计算机系统结构】

前言

2023-6-24 10:43:46

以下内容源自《【计算机系统结构】》

仅供学习交流使用

推荐

第三章 作业(7BF)【计算机系统结构】
答案参考:

https://www.docin.com/p-820917079.html(14)

https://www.docin.com/p-2845679339.html(54)

第五章 作业

1

5.1 解释下列名词

多级存储层次    命中时间      不命中率    不命中开销
全相联映像   直接映像      组相联映像   替换算法
LRU       写直达法    写回法     按写分配法
不按写分配法    强制性不命中    容量不命中 冲突不命中
2:1Cache经验规则  相联度     牺牲Cache 故障性预取
非故障性预取    非阻寒Cache    尽早重启动 请求字优先
多级包容性   虚拟Cache   并行主存系统  多体交又存储器
存储体冲突   TLB
多级存储层次︰采用不同的技术实现的存储器,处在离CPU不同距离的层次上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层
(离CPU更远的一层)存储器中内容的子集。目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
命中时间:访问Cache命中时所用的时间。
不命中率(失效率):CPU访存时,在一级存储器中找不到所需信息的概率。
不命中开销(失效开销):CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。
全相联映象︰主存中的任一块可以被放置到Cache 中任意一个地方。
直接映象︰主存中的每一块只能被放置到Cache 中唯一的一个地方。
组相联映象:主存中的每一块可以放置到Cache 中唯一的一组中任何一个地方( Cache 分成若干组,每组由若干块构成)
替换算法︰由于主存中的块比Cache 中的块多,所以当要从主存中调一个块到Cache 中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。
这时,需要被迫腾出其中的某一块,以接纳新调入的块。
LRU∶选择最近最少被访问的块作为被替换的块。实际实现都是选择最久没有被访问的块作为被替换的块。
写直达法︰在执行写操作时,不仅把信息写入Cache 中相应的块,而且也写入下一级存储器中相应的块。
写回法︰只把信息写入Cache 中相应块,该块只有被替换时,才被写回主存。
按写分配法︰写失效时,先把所写单元所在的块调入Cache,然后再进行写入。
不按写分配法∶写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。
强制性不命中(强制性失效):当第一次访问一个块时,该块不在Cache 中,需要从下—级存储器中调入Cache,这就是强制性失效。
容量不命中(容量失效)︰如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。
冲突不命中(冲突失效)︰在组相联或直接映象Cache 中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),
然后又被重新访问的情况。
2:1Cache经验规则︰大小为N的直接映象Cache的失效率约等于大小为N/2的两路组相联Cache的实效率。
相联度∶在组相联中,每组Cache 中的块数。
牺牲Cache(Victim Cache) :位于Cache和存储器之间的又一级Cache,容量小,采用全相联策略。用于存放由于失效而被丢弃(替换)的那些块。每当失效发生时,
在访问下一级存储器之前,先检查Victim Cache 中是否含有所需块。
故障性预取∶在预取时,若出现虚地址故障或违反保护权限,就会发生异常。
非故障性预取︰在预取时,若出现虚地址故障或违反保护权限,不发生异常。
非阻塞Cache : Cache在等待预取数据返回时,还能继续提供指令和数据。
尽早重启动︰在请求字没有到达时,CPU处于等待状态。一旦请求字到达,就立即发送给CPU,让等待的CPU尽早重启动,继续执行。
请求字优先:调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。
多级包容性:如果第一级的数据总是同时存在于第二级Cache中,则称第二级Cache有多级包容性。(有利于I/O于Cache之间内容一致性的检测)
虚拟Cache :地址使用虚地址的Cache。
并行存储系统:在一个访存周期内能并行访问多个存储字的存储器,它能有效地提高存储器的带宽。
多体交叉存储器︰具有多个存储体,各体之间按字交叉的存储技术。
存储体冲突:多个请求要访问同一个体。
TLB:一个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。

4

5.4设有一个"Cache-主存”层次,Cache为4块,主存为8块:试分别对于以下3种情况,画出

其映像关系示意图,并计算访存块地址为5时的索引(index) 。

类似于图5.7 3种映像规则

(1)全相联。

访存块地址为5时的索引可以是0 1 2 3

(2)组相联,每组两块。

访存块地址为5时的索引可以是2 3


(3)直接映像。

访存块地址为5时的索引可以是1



8 补充

5.8假设对指令Cache的访问占全部访问的75%;而对数据Cache 的访问占全部访问的 25%。Cache的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache 中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种 Cache 的失效率更低?两种情况下平均访存时间各是多少?

解∶(1)根据题意,约75%的访存为取指令。 25%的访存为取数据
因此,分离Cache的总体失效率为:(75%×0.39% ) + (25%×4.82% ) =1.4975%
容量为64KB的混合Cache的失效率略低一些,只有1.35%
(2)平均访存时间公式可以分为指令访问和数据访问两部分∶
平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)
所以,两种结构的平均访存时间分别为∶
分离Cache的平均访存时间=75%× (1+0.39%×50 ) +25%×( 1+4.82%×50 )= (75%× 1.195) +(25%×3.41 ) =1.74875
混合Cache的平均访存时间=75%x(1+1+1.35%×50 ) +25%×( 1+1+1.35%×50 ) = ( 75%×2.675 ) + (25%× 2.675) =2.675
因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。

9

5.9假设在3000次访存中,第一级Cache 不命中110次,第二级Cache不命中55次。试同:在

这种情况下,该Cache系统的局部不命中率和全局不命中率各是多少?

解:
第一级Cache局部不命中率=全局不命中率=110/3000==3.67%
第二级Cache局部不命中率=55/110=50%
第二级Cache全局不命中率=55/3000≈1.83%

10

5.10给定以下的假设,试计算直接映像Cache和两路组相联Cache的平均访问时间以及CPU

的性能由计算结果能得出什么结论?
(1)理想Cache情况下的CPI为,时钟周期为2ns,平均每条指令访存1.2次;

(2)两者Cache容量均为64KB,块大小都是32字节;

(3)组相联Cache 中的多路选择器使CPU的时钟周期增加了10%;

(4)这两种Cache的失效开销都是80ns;

(5)命中时间为1个时钟周期;

(6)64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。


类似于例5.2

解:
(1)直接映象Cache
平均访存时间T= TA+ FTM = 2ns + 0.014×80ns = 3.12ns
CPU时间=IC×[ CPI×CYCLE+每条指令访存次数×失效率×失效开销×CYCLE]
=IC×[2.0×2ns + 1.2×0.014×80ns ] =5.344×IC
(2)两路组相联Cache
平均访存时间TA= TAi+ FTM = 2ns×1.1+0.01×80ns = 3.00ns
CPU时间=ICX[ CPIxCYCLE+每条指令访存次数×失效率×失效开销×CYCLE]
=ICX[2.0×2ns×1.1 +1.2×0.01 ×80ns ] = 5.360×IC
(3)比较与结论
平均访存时间sag/平均访存时间直接映象=3.00/3.12=0.96,两路组相联Cache较快;
CPU时间atax /CPU时间sag=(5.360xIC)/(5.344xIC)=1.003,直接映象Cache较快。
(因为组相联的时钟延长了10%,它的指令执行时间加长了)
解︰
平均访问时间=命中时间+失效率×失效开销
平均访问时间1-路=2ns+1.4%*80ns=3.12ns
平均访问时间2-路=2ns*(1+10%)+1%*80ns=3.00ns
两路组相联的平均访问时间比较低
CPU time= (CPU执行+存储等待周期)*时钟周期
CPU time=IC (CPI执行+总失效次数/指令总数*失效开销)*时钟周期
=IC((CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期))
用80代替失效开销*时钟周期
CPU time 1-way=IC(2.0*2ns+1.2*1.4%*80ns)=5.344×IC ns
CPU time 2-way=IC(2.0*2ns*1.1+1.2*1%*80ns)= 5.360×IC ns
相对性能比∶
平均访问时间1-路>平均访问时间2-路
CPU time 1way<CPU time 2way 
直接映象cache的访问速度比两路组相联cache要慢,
而两路组相联Cache的平均性能比直接映象cache要高。
因此这里选择两路组相联。

最后

2023-6-24 12:32:19

你对我百般注视,

并不能构成万分之一的我,

却是一览无余的你。

祝大家逢考必过

点赞收藏关注哦

相关文章
|
1月前
|
存储 传感器 算法
【软件设计师备考 专题 】设计物理数据:数据特性分析和逻辑数据组织
【软件设计师备考 专题 】设计物理数据:数据特性分析和逻辑数据组织
116 1
|
1月前
|
存储 固态存储 Linux
外部存储结构简要回顾
外部存储结构简要回顾
31 0
|
10月前
|
芯片
第三章 作业(7BF)【计算机系统结构】
第三章 作业(7BF)【计算机系统结构】
149 0
|
10月前
|
存储
第六章 习题(6789B)【计算机系统结构】
第六章 习题(6789B)【计算机系统结构】
88 0
|
8月前
|
存储 算法 C语言
程序组织单元及其组成编程
程序组织单元及其组成编程
|
9月前
信息的表示与处理 (深入理解计算机系统第二章)(下)
信息的表示与处理 (深入理解计算机系统第二章)(下)
62 0
|
9月前
|
存储 Linux Windows
信息的表示与处理 (深入理解计算机系统第二章)(上)
信息的表示与处理 (深入理解计算机系统第二章)(上)
34 0
|
10月前
第一章 作业(479)【计算机系统结构】
第一章 作业(479)【计算机系统结构】
90 0
|
11月前
|
Java
程序三大结构-系统学习一
编程从三大结构考虑问题,这样的思考方式、学习方式也有了更加深刻的认识与理解
|
缓存 虚拟化 芯片
【操作系统】第三章:计算机体系结构及内存分层体系(Part1:计算机体系结构)
【操作系统】第三章:计算机体系结构及内存分层体系(Part1:计算机体系结构)
210 0