量就可以提高命中率。 1 2 3 4 5 6 7 8 9 10 11 12
十七
在计算机系统中设置虚拟存储器和Cache的主要目的各是什么?试举出这两种存储系统在具体实现时至少4个方面的差别,并说明主要理由。 答:
区别方面 目的 实现方法 两级存储器速度比 页或块的大小 等效容量
Cache存储系统 提高主存速度 全部硬件 3~10 1~16W 主存
虚拟存储系统 扩大主存容量 软件为主、硬件为辅
10 1KB~16KB 虚拟存储器
5
字地址 12 40 260 280 180 800 500 560 600 1100 1200 1000
字节地址
48 160 1040 1120 720 3200 2000 2240 2400 4400 4800 4000 命中率
1K页面 页面流 1 1 2 2 1 1 2 2 2 1 1 2 50%
L H L H H R H R H R H R
.5K页面 页面流 1 1 2 2 3 4 1 2 2 3 4 1 25%
L H L H L L R R H R R R
2K页面 页面流 1 1 1 1 1 1 1 1 1 1 1 1 50%
L H H H H R R R H R H R
4K内存 页面流 1 1 2 2 1 3 2 4 4 1 1 3
L H L H H L H L H R H H
58.3%
理由 硬件速度高 硬盘访问时间长 Cache成本大 命中率高
透明性 不命中时的处理
对系统和应用程序员
等待主存
只对应用程序员
任务切换
VM由软件实现 OS多任务、硬盘慢
十八
试比较下列5种Cache的主要优缺点: 第一种:直接映像方式的Cache 第二种:全相联映像方式的Cache 第三种:组相联映像方式的Cache
第四种:位选择组相联映像方式的Cache 第五种:段相联映像方式的Cache 并回答下列问题:
根据硬件的复杂性和实现所需要的成本排出5种Cache的次序,并说明理由。 根据块替换算法实现的灵活性排出5种Cache的次序,并说明理由。 解释各种Cache的块映像方式对命中率的影响。
在采用相联映像方式的Cache种,说明块大小、组数、Cache容量、块替换算法等对Cache性能的影响。 答:
根据实现所需的硬件复杂性和成本的排序:(从低到高) 直接映像方式 ,无需相联比较电路,按地址访问。
段相联映像方式 ,需要相联比较的部分最少,因为段的容量最大。
位选择组相联映像方式,组之间相联比较,组内直接映像,映像关系比组相联方式简单。 组相联映像方式,部分需要相联比较电路。
全相联映像方式,全部需要相联比较电路,按内容访问。
实现替换算法灵活性的排序:(从低到高) 直接映像方式,没有灵活性。
段相联映像方式,如果发生段失效,整个段内的数据都将作废,但段的容量很大。 位选择组相联映像方式,主存中的组和Cache中的组是多个块到一个块的映像。 组相联映像方式,主存中的组和Cache中的组是多个块到多个块的映像。 全相联映像方式,可以在任意位址映像,实现起来最灵活。
Cache命中率与容量的关系:
Cache的命中率随它的容量的增加而提高。 关系曲线可以近似地表示为H=1-S-0.5。 Cache命中率与块大小的关系:
在组相联映象方式中,块的大小对命中率的影响非常敏感 块很小时,命中率很低。
随着块大小的增加,由于程序的局部性,命中率增加。 当块非常大时,进入Cache中的许多数据可能用不上。 当块大小等于Cache的容量时,命中率将趋近于零。 Cache命中率与组数的关系:
在组相联映象中,分组的数目对命中率的影响很明显。 随着组数的增加,Cache的命中率要降低。
当组数不太大时(512组以下),命中率的降低相当少,
当组数超过一定数量时,命中率的下降非常快。 Cache命中率与替换算法的关系: 替换算法按照优先顺序:OPT、LFU、FIFO。
十九
假设在一个采用组相联映像方式的Cache中,主存由B0~B7共8块组成,Cache有2组,每组2块,每块的大小为16个字节,采用LFU块替换算法。在一个程序执行过程中依次访问这个Cache的块地址流如下:
B6, B2, B4, B1, B4, B6, B3, B0, B4, B5, B7, B3 写出主存地址的格式,并标出各字段的长度。 写出Cache地址的格式,并标出各字段的长度。
画出主存与C写出主存地址的格式,并标出各字段的长度。 写出Cache地址的格式,并标出各字段的长度。
画出主存与Cache之间各个块的映像对应关系。
如果Cache的各个块号为:C0、C1、C2和C3,列出程序执行过程
如果采用FIFO替换算法,计算Cache的块命中率。 采用LFU替换算法,计算Cache的命中率。
如果改为全相联映像方式,再做5.6可以得到什么结论?
如果在程序执行过程当中,每从主存装入一块到Cache,则平均要对这个块访问16次。计算Cache的命中率。 答:
主存地址格式:
1
区号 Cache地址格式: 1
组号
1 2 1 2 1 2
1 2 1 2 1 2 1 组号 1 块号 4 块内偏移 1 块号 4 块内偏移
时间t 块地址流 组相联 先进先出算法 (FIFO算法) 组相联 最久没有使用算法 (LFU算法) 全相联 先进先出算法 (FIFO算法) 全相联 最久没有使用算法 (LFU算法) B6 B6 B6 B2 B6 B6 B6 B2 1 B6 2 B4 B4 3 B2 B4 4 B1 B4 B1 B2 5 B4 B4 B1 B2 6 B6 B1 B2 7 B3 8 B0 9 B4 10 B5 B4 B3 11 B7 B5 B4 B3 12 命中次数及B3 B5 B4 B7 B3 命中率 3次 25% 3次 25% 3次 33% 3次 25% B4* B4* B0 B6 B3 B6 B3 B0* B5 B6 B3 B1 B1* B4 B6* B6* B6 B6* B7 调入 调入 调入 调入 命中 命中 替换 替换 替换 替换 替换 命中 B4 B4 B4 B1 B2 B4 B1 B2 B4 B1 B6 B2 B4 B1 B0 B1 B0 B4 B3 B2 B5 B4 B3 B2 B5 B4 B3 B7 B5 B4 B3 B7 B6* B6 B3 B3 B2 B2 调入 调入 调入 调入 命中 命中 替换 替换 替换 替换 替换 命中 B6 B6 B2 B6 B2 B4 B6 B2 B4 B1 B6 B2 B4 B1 B6 B2 B4 B1 B3 B2 B4 B1 B3 B0 B4 B1 B3 B0 B4 B1 B3 B0 B5 B1 B3 B0 B5 B7 B3 B0 B5 B7 调入 调入 调入 调入 命中 命中 替换 替换 命中 替换 替换 命中 B6 B6 B2 B6 B2 B4 B6 B2 B4 B1 B6 B2 B4 B1 B6 B2 B4 B1 B6 B3 B4 B1 B6 B3 B4 B0 B6 B3 B4 B0 B5 B3 B4 B0 B5 B7 B4 B0 B5 B7 B4 B3 调入 调入 调入 调入 命中 命中 替换 替换 命中 替换 替换 替换 两种块替换算法对同一个块地址流的调度过程
H'=1-(1-H)/n=95.3%
二十
在一个采用组相联映像方式的Cache中,Cache的容量为16KB。主存采用模8低位交叉方式访问,每个存储体的字长为32位,总容量为8MB。要求Cache的每一块在一个主存周期中分别从8个存储体中取得,Cache的每一组内共有4个块。要求采用按地址访问方式构成相联目录表,实现主存地址到Cache地址的变换并采用8个相等比较电路。 设计主存地址格式,并标出各字段的长度。 设计Cache地址格式,并标出各字段的长度。
相联目录表的行数是多少?
设计相联目录表每一行的格式,并标出每一个字段的长度。
每个比较电路的位数是多少?
画出主存地址经过相联目录表变换为Cache地址的逻辑示意图。 答:
主存地址格式:
9 9 2 3
区号 组号 块号 块内偏移 Cache地址格式: 9 2
组号 块号 3 块内偏移 组号9位,8个相等比较电路==>相联目录表应有64行。 相联目录表格式:
11 2 1 8 11 主存区号组内块号 缓存块号 标志 比较电路地位数是11位。 区号E 区内组号G 组号g Cache地址 b 组内块号B 组内块号b ≠ ?? ?? ?? ?? 或 相等比较 = E, B ? 主存区号组内块号 2 缓存块号 1 标志 块内地址W 块内地址w 主存地址 ≠ 二十一
块失效 与 相等比较 = E, B b ≠ 相等比较 = e E, B b e 块表(按地址访问,读出的多个字段进行相联比较,e为有效位)
一个采用位选择组相联映像方式的Cache,要求Cache的每一块在一个主存周期内取得。主
存采用4个存储体的低位交叉访问,每个存储体的字长为4个字节,总容量为1MB。Cache的容量位1KB,每一组内由4个块。采用按地址访问的存储器构成相联目录表,实现主存地址到Cache地址的变换,采用4个相等比较电路。 设计主存地址格式,并标出各字段的长度。 设计Cache地址格式,并标出各字段的长度。 设计相联目录表每一行的格式、行数。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机体系结构(3)在线全文阅读。
相关推荐: