ImageVerifierCode 换一换
格式:PDF , 页数:10 ,大小:144.93KB ,
资源ID:5685796      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5685796.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第4章习题答案.pdf)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第4章习题答案.pdf

1、习题 1 给出以下概念的解释说明。随机访问存储器(Random Access Memory,RAM)只读存储器(Read Only Memory,ROM)静态随机访问存储器(Static RAM,SRAM)动态随机访问存储器(Dynamic RAM,DRAM)刷新(Refresh)易失性存储器(Volatile Memory)相联存储器(Content Addressed Memory,CAM)存取时间(Access Time)存储周期(Memory Cycle Time)存储带宽(Memory Bandwidth)片选信号(Chip Select Signal)地址引脚复用(Address

2、Pin Multiplexing)行选通信号(Row Address Strobe,RAS)列选通信号(Column Address Strobe,CAS)掩膜 ROM(Mask ROM)PROM(Programmable ROM)EPROM(Erasable PROM)EEPROM(Electrically EPROM)闪存(Flash Memory)多模块存储器(Multi-Module Memory)低位交叉编址(Low-Order interleaving)双口 RAM(Dual Port RAM)高速缓存(Cache)程序访问的局部化 时间局部性(Temporal Locality)

3、空间局部性(Spatial Locality)命中率(Hit Rate)命中时间(Hit Time)失靶率(Miss Rate)失靶损失(Miss Penalty)主存块(Block)Cache 槽或 Cache 行(Slot/Line)直接映射 Cache(Direct-Mapped Cache)全相联 Cache(Fully Associative Cache)组相联 Cache(Set-Associative Cache)多级 Cache(Multilevel Cache)数据 Cache 代码 Cache(指令 Cache)分离式 Cache(Split Cache)先进先出(Firs

4、t-In-First-Out,FIFO)最近最少用(Least Recently Used,LRU)Write Through(写直达、通过式写、直写)写缓冲(Write Buffer)Write Back(写回、回写)虚拟存储器(Virtual Memory)物理存储器(Physical Memory)虚拟地址(Virtual address)虚页号(Virtual Page number)页内偏移量(Page offset)物理地址(Physical address)页框(Page frame)物理页号(Page frame)地址变换(Address translation/Memory

5、mapping)重定位(Relocation)页表(Page table)页表基址寄存器(Page table base register)有效位(Valid bit)修改位(Modify bit/Dirty bit)使用位(Reference bit/Use bit)访问方式位(Access bit)缺页(Page fault)交换(swapping)/页面调度(paging)按需页面调度(Demand paging)LRU 页(Least Recently Used Page)快表(Translation Lookaside Buffer-TLB)分页式虚拟存储器(Paging VM)分段

6、式虚拟存储器(Segmentation VM)段页式虚拟存储器(Paged Segmentation VM)进程(Process)管理模式(Supervisor Mode)用户模式(User Mode)系统调用(System call)异常返回(Return from exception)存储保护(Protection)2简单回答下列问题。(1)计算机内部为何要采用层次化存储体系结构?层次化存储体系结构如何构成?(2)SRAM 芯片和 DRAM 芯片各有哪些特点?各自用在哪些场合?(3)CPU 和主存之间有哪两种通信方式?SDRAM 芯片采用什么方式和 CPU 交换信息?(4)为什么在 CPU

7、 和主存之间引入 Cache 能提高 CPU 访存效率?(5)为什么说 Cache 对程序员来说是透明的?(6)什么是 Cache 映射的关联度?关联度与命中率、命中时间的关系各是什么?(7)为什么直接映射方式不需要考虑替换策略?(8)为什么要考虑 Cache 的一致性问题?读操作时是否要考虑 Cache 的一致性问题?(9)什么是物理地址?什么是逻辑地址?地址转换由硬件还是软件实现?为什么?(10)什么是页表?什么是快表(TLB)?(11)在存储器层次化结构中,“Cache-主存”、“主存-外存”这两个层次有哪些不同?3.已知某机主存容量为 64KB,按字节编址。问:1)若用 1K4 位的

8、SRAM 芯片构成该存储器,需要多少片芯片?2)主存地址共多少位?几位用于选片?几位用于片内选址?3)画出该存储器的逻辑框图。参考答案:参考答案:1)64KB/1K4 位位=128 片片 2)主存地址共主存地址共 16 位,位,6 位选片,位选片,10 位片内选址。位片内选址。4.用 64K1 位的 DRAM 芯片构成 256K8 位的存储器,要求:1)计算所需芯片数,并画出该存储器的逻辑框图。2)若采用分散刷新方式,每单元刷新间隔不超过 2ms,则刷新信号周期是多少?若采用集中刷新方式,则存储器刷新一遍最少用多少读/写周期?参考答案:参考答案:1)256KB/64K1 位位=32 片片.2)

9、采用分散刷新时,刷新周期是存储周期的采用分散刷新时,刷新周期是存储周期的 2 倍;倍;因为因为 DRAM 芯片存储阵列为芯片存储阵列为 64K=256256,所以集中刷新时,整个存储器刷新一遍需要,所以集中刷新时,整个存储器刷新一遍需要 256 个存储(读写)周期。个存储(读写)周期。(异步刷新的刷新周期为(异步刷新的刷新周期为 2ms/256=7.8 s)5.用 8K8 位的 EPROM 芯片组成 32K16 位的只读存储器,试问:1)数据寄存器最少应有多少位?2)地址寄存器最少应有多少位?3)共需多少个 EPROM 芯片?4)画出该只读存储器的逻辑框图。6.某计算机中已配有 0000H-7

10、FFFH 的 ROM 区域,现在再用 8K4 位的 RAM 芯片形成 32K8 位的存储区域,CPU 地址总线为 A0-A15,数据总线为 D0-D7,控制信号为 R/W#(读/写)、MREQ#(访存)。要求说明地址译码方案,并画出 ROM 芯片、RAM 芯片与 CPU 之间的连接图。参考答案:参考答案:CPU 地址线共地址线共 16 位,故存储器地址空间为:位,故存储器地址空间为:0000H FFFFH,其中,其中 8000H FFFFH 为为 RAM 区,共区,共 215=32K 个单元,容量为个单元,容量为 32KB,故需,故需 8Kx4 位的芯片数为位的芯片数为 32KB/8Kx4 位

11、位=4x2=8 片。片。若若 CPU 地址线为地址线为 24 位,位,ROM 区为区为 000000H 007FFFH,则如何?,则如何?ROM 区大小为区大小为 32KB,总大小为,总大小为 16MB=214KB=512x32KB,所以,所以 RAM 区大小为区大小为 511x32KB 共需使用共需使用 RAM 芯片数为芯片数为 511x32KB/8Kx4 位位=511x4x2 个芯片。个芯片。7.假定一个存储器系统支持四体交叉存取,某程序执行过程中访问地址序列为3,9,17,2,51,37,13,4,8,41,67,10,则哪些地址访问会发生体冲突?参考答案:参考答案:对于对于 4 体交叉

12、访问的存储系统,每个存储模块的地址分布为:体交叉访问的存储系统,每个存储模块的地址分布为:Bank0:0、4、8、12、16 Bank1:1、5、9、13、17 37 41 Bank2:2、6、10、14、18 Bank3:3、7、11、15、195167 如果给定的访存地址在相邻的四次访问中出现在同一个如果给定的访存地址在相邻的四次访问中出现在同一个 Bank 内,就会发生访存冲突。所以:内,就会发生访存冲突。所以:17 和和 9、37 和和 17、13 和和 37、8 和和 4、41 和和 37 发生冲突。发生冲突。8.现代计算机中,SRAM 一般用于实现快速小容量的 Cache,而 DR

13、AM 用于实现慢速大容量的主存。以前超级计算机通常不提供 Cache,而是用 SRAM 来实现主存(如,Cray 巨型机),请问:如果不考虑成本,你还这样设计高性能计算机吗?为什么?9.分别给出具有下列要求的程序或程序段的示例:1)对于数据的访问,几乎没有时间局部性和空间局部性 2)对于数据的访问,有很好的时间局部性,但几乎没有空间局部性 3)对于数据的访问,有很好的空间局部性,但几乎没有时间局部性 4)对于数据的访问,空间局部性和时间局部性都好 10.假定某机主存1GB,按字节编址。Cache的数据区(即不包括标记、有效位等存储区)有64KB,块大小为128字节,采用直接映射和通过式写方式。

14、请问:1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。2)Cache的总容量为多少位?参考答案:参考答案:1)主存:主存地址位数为主存:主存地址位数为 30 位。位。Cache 共共 64KB/128B=256 行。行。主存地址划分为:高主存地址划分为:高 15 位:标志;中间位:标志;中间 8 位:行索引(行号);低位:行索引(行号);低 7 位为块内地址。位为块内地址。2)仅考虑有效位和标志位而不考虑替换算法等所需的控制位,仅考虑有效位和标志位而不考虑替换算法等所需的控制位,Cache总容量为:总容量为:256x(128x8+15+1)位位=260K位。位。11.假

15、定某计算机的Cache共16行,开始为空,块大小为1个字,采用直接映射方式。CPU执行某程序时,依次访问以下地址序列:2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。要求:1)说明每次访问是命中还是缺失,试计算访问上述地址序列的命中率。2)若 Cache 数据区容量不变,而块大小改为 4 个字,则上述地址序列的命中情况又如何?参考答案参考答案 1)Cache:直接映射,:直接映射,16=16 块块 x1 字字/块;主存:块;主存:1 字字/块,所以:主存块号块,所以:主存块号=字号字号 映射公式为:映射公式为:Cache 块号块号=字号字号 mod 16

16、开始开始 Cache 为空,所以第一次都是为空,所以第一次都是 miss 2-2:miss,3-3:miss,11-11:miss,16-0:miss,21-5:miss,13-13:miss,64-0:miss、replace 48-0:miss、replace,19-3:miss、replace,11-11:hit,3-3:miss、replace,22-6:miss,4-4:miss,27-11:miss、replace,6-6:miss、replace,11-11:miss、replace 只有一次命中!只有一次命中!2)Cache:直接映射,:直接映射,16=4 块块 x4 字字/块

17、主存:块;主存:4 字字/块,所以:主存块号块,所以:主存块号=字号字号/4 映射公式为:映射公式为:Cache 块号块号=主存块号主存块号 mod 4 开始开始 Cache 为空,所以第一次都是为空,所以第一次都是 miss 2-0-0:miss;3-0-0:hit;11-2-2:miss,16-4-0:miss,replace,21-5-1、13-3-3:miss 64-16-0、48-12-0、19-4-0:miss,replace,11-2-2:hit,3-0-0:miss、replace,22-5-1:hit,4-1-1:miss、replace,27-6-2:miss、repla

18、ce,6-1-1:hit,11-2-2:miss、replace 命中命中 4 次。次。块变大后,提高了空间局部性的利用率,从而使命中率提高!块变大后,提高了空间局部性的利用率,从而使命中率提高!12.假定数组元素在主存按从左到右的下标顺序存放。试改变下列函数中循环的顺序,使得其数组元素的访问与排列顺序一致,并说明为什么修改后的程序比原来的程序执行时间短。int sum_array(int aNNN)int i,j,k,sum=0;for(i=0;i N;i+)for(j=0;j N;j+)for(k=0;k N;k+)sum+=akij;return sum;参考答案:参考答案:int su

19、m_array(int aNNN)int i,j,k,sum=0;for(k=0;k N;k+)for(i=0;i N;i+)for(j=0;j N;j+)sum+=akij;return sum;修改后程序的数组元素的访问与排列顺序一致,使得修改后程序的数组元素的访问与排列顺序一致,使得空间局部性空间局部性比原程序好,故执行时间更短。比原程序好,故执行时间更短。13.分析比较以下三个函数的空间局部性,并指出哪个最好,哪个最差?14.以下是计算两个向量点积的程序段:float dotproduct(float x8,float y8)#define N 1000 typedef struct

20、int vel3;int acc3;point;point pN;void clear1(point*p,int n)int i,j;for(i=0;i n;i+)for(j=0;j3;j+)pi.velj=0;for(j=0;i3;j+)pi.accj=0;#define N 1000 typedef struct int vel3;int acc3;point;point pN;void clear2(point*p,int n)int i,j;for(i=0;in;i+)for(j=0;j3;j+)pi.velj=0;pi.accj=0;#define N 1000 typedef st

21、ruct int vel3;int acc3;point;point pN;void clear3(point*p,int n)int i,j;for(j=0;j3;j+)for(i=0;in;i+)pi.velj=0;for(i=0;in;i+)pi.accj=0;float sum=0.0;int i,;for(i=0;i 8;i+)sum+=xi*yi;return sum;要求:1)试分析该段代码中数组 x 和 y 的时间局部性和空间局部性,并推断命中率的高低。2)假定该段程序运行的计算机的数据 Cache 采用直接映射方式,其数据区容量为 32 字节,每个主存块大小为 16 字节。假

22、定编译程序将变量 sum 和 i 分配给寄存器,数组 x 存放在 00000040H 开始的 32字节的连续存储区中,数组 y 则紧跟在 x 后进行存放。试计算该程序数据访问的命中率,要求说明每次访问的 Cache 命中情况。3)将上述 2)中的数据 Cache 改用 2 路组相联映射方式,块大小改为 8 字节,其他条件不变,则该程序数据访问的命中率是多少?4)在上述 2)中条件不变的情况下,如果将数组 x 定义为 float12,则数据访问的命中率又是多少?参考答案:参考答案:1)数组数组 x 和和 y 都按存放顺序访问,不考虑映射的情况下,空间局部性都较好,但都只被访问一次,所以没有时间局

23、部性。命中率的高低与块大小、映射方式等都有关,所以,无法推断命中率的高低。都按存放顺序访问,不考虑映射的情况下,空间局部性都较好,但都只被访问一次,所以没有时间局部性。命中率的高低与块大小、映射方式等都有关,所以,无法推断命中率的高低。2)Cache:直接映射,块大小:直接映射,块大小 16 字节,数据区大小字节,数据区大小 32 字节,故字节,故 共共 2 行。行。数组数组 x 的的 8 个元素(共个元素(共 32B)分别存放在主存)分别存放在主存 40H 开始的开始的 32 个单元中,共有个单元中,共有 2 个主存块,其中个主存块,其中x0 x3在第在第 4 块,块,x4 x7在第在第 5

24、 块中;数组块中;数组 y 的的 8 个元素(共个元素(共 32B)分别在主存第)分别在主存第 6 块和第块和第 7 块中。块中。所以:所以:x0 x3和和 y0 y3都映射到都映射到 Cache 第第 0 行;行;x4 x7和和 y4 y7都映射到都映射到 Cache 第第 1 行。行。Cache 第第 0-3 次循环次循环 第第 4-7 次循环次循环第第 0 行行 x0-3,y0-3 第第 1 行行 x4-7,y4-7 每调入一块,装入每调入一块,装入 4 个数组元素,因为个数组元素,因为 xi和和 yi总是映射到同一行,相互淘汰对方,故每次都不命中,命中率为总是映射到同一行,相互淘汰对方

25、故每次都不命中,命中率为 0.3)改用改用 2 路组相联,块大小为路组相联,块大小为 8B,则,则 Cache 共有共有 4 行,每组两行,共两组。行,每组两行,共两组。数组数组 x 有有 4 个主存块,个主存块,x0 x1、x2 x3,x4 x5,x6 x7在分别第在分别第 811 块中;块中;数组数组 y 有有 4 个主存块,个主存块,y0 y1、y2 y3,y4 y5,y6 y7在分别第在分别第 1215 块中;块中;Cache第第 0 行行 第第 1 行行 第第 0 组组x0-1,x4-5y0-1,y4-5 第第 1 组组x2-3,x6-7y2-3,y6-7 每调入一块,装入两个数组

26、元素,第二个数组元素的访问总是命中,故命中率为每调入一块,装入两个数组元素,第二个数组元素的访问总是命中,故命中率为 50%。4)若若 2)中条件不变,数组)中条件不变,数组 x 定义了定义了 12 个元素,则个元素,则 12 个元素共有个元素共有 48B,使得,使得 y 从第从第 7 块开始,块开始,xi和和 yi就不会映射到同一个就不会映射到同一个 Cache 行中,即:行中,即:x0 x3在第在第 4 块,块,x4 x7在第在第 5 块,块,x8 x11在第在第 6 块中,块中,y0 y3在第在第 7 块,块,y4 x7在第在第 8 块。块。Cache 第第 0-3 次循环次循环 第第

27、4-7 次循环次循环第第 0 行行 x0-3 y4-7 第第 1 行行 y0-3 x4-7 每调入一块,装入每调入一块,装入 4 个数组元素,第一个元素不命中,后面个数组元素,第一个元素不命中,后面 3 个总命中,故命中率为个总命中,故命中率为 75%。15.以下是对矩阵进行转置的程序段:typedef int array44;void transpose(array dst,array src)int i,j;for(i=0;i 4;i+)for(j=0;j 4;j+)dstji=srcij;假设该段程序运行的计算机中 sizeof(int)=4,且只有一级 Cache,其中 L1 Dada

28、 Cache 的数据区大小为 32B,采用直接映射、写回方式,块大小为 16B,初始为空。数组 dst 从地址 0000C000H 开始存放,数组 src 从地址 0000C010H 开始存放。填写下表,说明对数组元素 srcrowcol和 dstrowcol的访问是命中(Hit)还是失效(Miss)。若 L1 Data Cache 的数据区容量改为 128B 时,重新填写表中内容。src 数组 dst 数组 col=0 col=1 col=2 col=3 col=0 col=1 col=2 col=3 row=0 Miss Miss Row=1 Row=2 Row=3 16.通过对方格中每个

29、点设置相应的CMYK值就可以将方格图上相应的颜色。以下三个程序段都可实现对一个16x16的方格中图上黄色的功能。程序段A 程序段B 程序段C 假设上述三个程序段所运行的计算机中数据Cache的数据区大小为2048B,采用直接映射,块大struct pt_color int c;int m;int y;int k;struct pt_color square1616;int i,j;for(i=0;i 16;i+)for(j=0;j 16;j+)squareij.c=0;squareij.m=0;squareij.y=1;squareij.k=0;struct pt_color int c;in

30、t m;int y;int k;struct pt_color quare1616;int i,j;for(i=0;i 16;i+)for(j=0;j 16;j+)square j i.c=0;square j i.m=0;square j i.y=1;square j i.k=0;|struct pt_color int c;int m;int y;int k;struct pt_color square1616;int i,j;for(i=0;i 16;i+)for(j=0;j 16;j+)squareij.y=1;for(i=0;i 16;i+)for(j=0;j 16;j+)squar

31、eij.c=0;squareij.m=0;squareij.k=0;小为32B,sizeof(int)=4。编译时变量i和j分配在寄存器中,数组square存放在000008C0H开始的连续区域中。请问:三个程序段A、B、C中,写操作次数、写不命中次数、总失效率各是多少?17.假设某计算机有64MB主存,采用字节编址方式。其Cache数据区容量为4KB,采用4路组相联映射、LRU替换和写回(Write Back)策略,块大小为64B。请问:1)主存地址字段如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。2)该Cache的总容量有多少位?3)若Cache初始为空,CPU依次从0号地址

32、单元顺序访问到4344号单元,重复按此序列共访问16次。若Cache命中时间为1个时钟周期,缺失损失为10个时钟周期,则CPU访存的平均时间为多少时钟周期?参考答案:参考答案:1)Cache:4KB=212B=24组组22块块/组组26字节字节/块块 主存地址划分为三个字段:主存地址划分为三个字段:高高 16 位为标志(位为标志(tag)、中间)、中间 4 位为组号(位为组号(Index)、最低)、最低 6 位为块内地址(位为块内地址(Offset)。)。即主存空间划分:即主存空间划分:64MB=226B=216组群组群24块块/组群组群26字节字节/块块 2)Cache 共有共有 64 行,

33、每行中有:行,每行中有:16 位标志、位标志、1 位有效位、位有效位、1 位修改位、位修改位、2 位位 LRU 位和数据位和数据 64B。故总容量为:故总容量为:64(16+1+1+2+648)=34048 位。位。3)因为每块为因为每块为 64B,4345/64=67.89 67x64=4288 所以所以 04344 单元应该对应前单元应该对应前 68 块,也即处理器的访问过程是对前块,也即处理器的访问过程是对前 68 块连续访问块连续访问 16 次。次。总访存次数:总访存次数:16x4345=69520 Cache 共有共有 16 组,每组组,每组 4 行,替换情况如下图所示:行,替换情况

34、如下图所示:LRU 算法:第一次循环,每一块只有第一次未命中,其余都命中算法:第一次循环,每一块只有第一次未命中,其余都命中;以后以后 15 次循环,有次循环,有 20 块的第一字未命中,其余都命中块的第一字未命中,其余都命中.所以所以,命中率命中率 p 为(为(69520-68-15x20)/69520=99.47%平均访存时间为:平均访存时间为:p x Hit Time+(1-p)x Miss Penalty=1xp+10 x(1-p)=1x0.9947+10 x0.0053=1.0477 个时钟周期个时钟周期 18.假定某处理器可通过软件对高速缓存设置不同的写策略,那么,在下列两种情况下

35、应分别设置成什0 631 43441284288435264 16次次1#2#67#0#6568#么写策略?为什么?1)处理器主要运行包含大量存储器写操作的数据访问密集型应用。2)处理器运行程序的性质与 1)相同,但安全性要求高得多,不允许有任何数据不一致的情况发生。参考答案:参考答案:1)采用采用 Write Back 策略较好,可减少访存次数;策略较好,可减少访存次数;2)采用采用 Write Through 策略较好,能保证数据的一致性。策略较好,能保证数据的一致性。19.已知Cache1采用直接映射,共16行,块大小为1字,失效损失为8个总线周期;Cache2也采用直接映射,共4行,

36、块大小为4字,失效损失为11个总线周期。假定开始时Cache为空,采用字编址方式。要求找出一个访问地址序列,使得Cache2具有更低的失效率,但总的失效损失比Cache1大。20.提高关联度通常会降低失效率,但并不总是这样。请给出一个地址访问序列,使得采用LRU替换算法的2-路组相联映射Cache比具有同样大小的直接映射Cache的失效率更高。参考答案:(略)参考答案:(略)能举出很多例子。能举出很多例子。2-way 组相联组相联 Cache 的组数是直接映射的组数是直接映射 Cache 的项数的一半,所以,可以找到一个地址序列的项数的一半,所以,可以找到一个地址序列 A、B、C,使得:,使得

37、A 映射到一个映射到一个 Cache 块,块,B 和和 C 同时映射到另一个同时映射到另一个 Cache 块,并且块,并且 A、B、C 映射到同一个映射到同一个 Cache 组。这样,如果访存的地址序列为组。这样,如果访存的地址序列为 A、B、C、A、B、C、A、B、C,则:,则:对于直接映射对于直接映射 Cache,其命中情况为:,其命中情况为:miss/miss/miss/hit/miss/miss/hit/miss/miss/命中率可达命中率可达 33.3%。对于对于 LRU 的组相联的组相联 Cache,因为,因为 A、B、C 映射到同一个组,所以,每个地址处的数据刚调出映射到同一个

38、组,所以,每个地址处的数据刚调出 Cache就又被访问到,每次都是就又被访问到,每次都是 miss。命中率为。命中率为 0。例如:假定直接映射例如:假定直接映射 Cache 为为 4 块块 x1 字字/块块 则同样大小的则同样大小的 2-way 组相联组相联 Cache 为为 2 组组 x2 块块/组组 x1 字字/块块 当访问序列为:当访问序列为:0、2、4、0、2、4、0、2、4、(局部块大小为(局部块大小为 3)时)时 对于直接映射,其对应的对于直接映射,其对应的 Cache 块为:块为:0-2-0-0-2-0-0-2-0-对于组相联映射,对应的对于组相联映射,对应的 Cache 组为:

39、组为:0-0-0-0-0-0-0-0-0-当访问的局部块大于组的大小时,可能会发生“颠簸”现象:刚被替换出去的数据又被访问,导致失效率为当访问的局部块大于组的大小时,可能会发生“颠簸”现象:刚被替换出去的数据又被访问,导致失效率为 100%!21.假定有三个处理器,分别带有以下不同的Cache:Cache1:采用直接映射,块大小为1字,指令和数据的失效率分别为4%和6%;Cache2:采用直接映射,块大小为4字,指令和数据的失效率分别为2%和4%;Cache3:采用2-路组相联映射,块大小为4字,指令和数据的失效率分别为2%和3%。在这些处理器上运行相同的程序,其中有一半是访存指令,若失效损失

40、为(6+块大小),在带有Cache1的处理器1上测得该程序的CPI为2.0,已知处理器1和2的时钟周期都为420ps,带有Cache3的处理器3的时钟周期为310ps。请问:哪个处理器的Cache缺失损失最大?哪个处理器执行速度最快?22.假定某处理器带有一个数据区容量为256B的Cache,其块大小为32B。以下C语言程序段运行在该处理器上,sizeof(int)=4,编译器将变量i,j,c,stride都分配在通用寄存器中,因此,只要考虑数组元素的访存情况。若Cache采用直接映射方式,则当stride=256和stride=255时,失效率分别为多少?若Cache采用2-路组相联映射方式

41、则当stride=256和stride=255时,失效率又分别为多少?int i,j,c,stride,a512;for(i=0;i 10000;i+)for(j=0;j 512;j=j+stride)c=aj+17;参考答案:参考答案:已知已知 Cache 容量为容量为 256B=8 块块 x8 字字/块块 x4B/字,仅考虑数组访问情况。字,仅考虑数组访问情况。1)直接映射,直接映射,stride=256:访存顺序为访存顺序为 a0,a256,a0,a256,这两个元素一定映射到同一个这两个元素一定映射到同一个 Cache 块中,因此,每次都发生冲突,失效率为块中,因此,每次都发生冲突,

42、失效率为 100%2)直接映射,直接映射,stride=255:访存顺序为访存顺序为 a0,a255,a510,a0,a255,a510,这三个元素中后面两个元素映射到同一个这三个元素中后面两个元素映射到同一个 Cache 块中,而块中,而 a0 不会发生冲突,失效率为不会发生冲突,失效率为 67%3)2-way 组相联,组相联,stride=256:访存顺序为访存顺序为 a0,a256,a0,a256,这两个元素虽然映射到同一个这两个元素虽然映射到同一个 Cache 组中,但可以放在该组不同组中,但可以放在该组不同 Cache 块中,失效率为块中,失效率为 0%4)2-way 组相联,组相联

43、stride=255:访存顺序为访存顺序为 a0,a255,a510,a0,a255,a510,这三个元素中后面两个元素虽映射到同一个这三个元素中后面两个元素虽映射到同一个 Cache 组中,但可放在不同组中,但可放在不同 Cache 块中块中,而而 a0 不会发生冲突,故失效率为不会发生冲突,故失效率为 0%23.假定一个虚拟存储系统的虚拟地址为40位,物理地址为36位,页大小为16KB。若页表中有效位、存储保护位、脏位、使用位共占4位,磁盘地址不在页表中,则该存储系统中每个进程的页表大小为多少?如果按计算出来的实际大小构建页表,则会出现什么问题?参考答案:参考答案:每页大小有每页大小有

44、16KB,所以:虚拟页数为:,所以:虚拟页数为:240B/16KB=2(40-14)=226 物理页面和虚拟页面大小相等,所以物理页号的位数为:物理页面和虚拟页面大小相等,所以物理页号的位数为:36-14=22 页表项位数为:有效位页表项位数为:有效位+保护位保护位+脏位脏位+使用位使用位+物理页号位数物理页号位数=22+4=26 位位 为简化页表访问,每项大小取为简化页表访问,每项大小取 32 位。因此,每个进程的页表大小为:位。因此,每个进程的页表大小为:226x32b=256MB 如果按实际计算出的页表大小构建页表,则页表过大而导致页表无法一次装入。如果按实际计算出的页表大小构建页表,则

45、页表过大而导致页表无法一次装入。24.假定一个计算机系统中有一个TLB和一个L1 Data Cache。该系统按字节编址,虚拟地址16位,物理地址12位,页大小为128B,TLB为四路组相联,共有16个页表项,L1 Data Cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一时刻时,TLB、页表和L1 Data Cache中的部分内容如下:组号组号 标记标记 页框号页框号 有效位有效位 标记标记 页框号页框号 有效位有效位 标记标记 页框号页框号 有效位有效位 标记标记 页框号页框号 有效位有效位 0 03 0 09 0D 1 00 0 07 02 1 1 03 2D 1 0

46、2 0 04 0 0A 0 2 02 0 08 0 06 0 03 0 3 07 0 63 0D 1 0A 34 1 72 0(a)TLB(四路组相联):四组、16 个页表项 虚页号虚页号 页框号页框号 有效位有效位 行索引行索引 标记标记 有效位有效位 字节字节 3 字节字节 2 字节字节 1 字节字节 0 00 08 1 0 19 1 12 56 C9 AC 01 03 1 1 15 0 02 14 1 2 1B 1 03 45 12 CD 03 02 1 3 36 0 04 0 4 32 1 23 34 C2 2A 05 16 1 5 0D 1 46 67 23 3D 06 0 6 0

47、07 07 1 7 16 1 12 54 65 DC 08 13 1 8 24 1 23 62 12 3A 09 17 1 9 2D 0 0A 09 1 A 2D 1 43 62 23 C3 0B 0 B 0 0C 19 1 C 12 1 76 83 21 35 0D 0 D 16 1 A3 F4 23 11 0E 11 1 E 33 1 2D 4A 45 55 0F 0D 1 F 14 0 (b)部分页表:(开始 16 项)(c)L1 Data Cache:直接映射,共 16 行,块大小为 4B 请回答下列问题:1)虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示 T

48、LB 标记?哪几位表示 TLB 索引?2)物理地址中哪几位表示物理页号?哪几位表示页内偏移量?3)主存(物理)地址如何划分成标记字段、行索引字段和块内地址字段?4)CPU 从地址 067AH 中取出的值为多少?说明 CPU 读取地址 067AH 中内容的过程。参考答案:参考答案:1)16 位虚拟地址中低位虚拟地址中低 7 位为页内偏移量,高位为页内偏移量,高 9 位为虚页号;虚页号中高位为虚页号;虚页号中高 7 位为位为 TLB 标记,低标记,低 2 位为位为 TLB 组索引。组索引。2)12 位物理地址中低位物理地址中低 7 位为页内偏移量,高位为页内偏移量,高 5 位为物理页号。位为物理页

49、号。3)12 位物理(主存)地址中,低位物理(主存)地址中,低 2 位为块内地址,中间位为块内地址,中间 4 位为位为 Cache 行索引,高行索引,高 6 位为标志。位为标志。4)地址地址 067AH=0000 0110 0111 1010B,所以,虚页号为,所以,虚页号为 0000011 00B,映射到,映射到 TLB 的第的第 00 组,将组,将 0000011B=03H 与与 TLB 第第 0 组的四个标志比较,虽然和其中一个相等,但对应的有效位为组的四个标志比较,虽然和其中一个相等,但对应的有效位为 0,其余都不等,所以,其余都不等,所以 TLB 缺失,访问主存中的慢表。缺失,访问主

50、存中的慢表。直接查看直接查看 0000011 00B=00CH 处的页表项,有效位为处的页表项,有效位为 1,取出物理页号,取出物理页号 19H=11001B,和页内偏移,和页内偏移 111 1010B 拼接成物理地址:拼接成物理地址:11001 111 1010B。根据中间。根据中间 4 位位 1110 直接找到直接找到 Cache 第第 14行行(即:第即:第 E 行行),有效位为,有效位为 1,且标记为,且标记为 33H=110011B,正好等于物理地址高,正好等于物理地址高 6 位,故命中。位,故命中。根据物理地址最低两位根据物理地址最低两位 10,取出,取出 4AH=01001010

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服