- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十讲 存储管理.doc
第十讲 存储管理
在如下一段C语言程序的for循环中,
void cycle(double* a) {
int i;
double b[65536];
for(i=0; i3; i++) {
memcpy(a, b, sizeof(b));
}
}
程序memcpy函数执行过程中可能发生哪些例外,各多少次。
答:
忽略外部中断(包括键盘,鼠标等输入),内部程序执行例外可能有:
TLB例外(TLB Miss Exception)
缺页异常(Page Fault Exception)
TLB例外和页大小有关,还和TLB表项以及替换算法有关(分表假设为4K、128项和最近未使用LUR,不考虑ITLB miss例外),则:65536*8*2 =512*2=256*4k,也就是256次例外
缺页异常具体次数和页大小有关,假设页大小为4K(假设页分配后不会被替换出去,且忽略临时变量i,以及指令代码段发生的缺页例外,假设内存足够大,页加载入主存后不会被替换):正常情况下a不会缺页,b缺页可以有128次。
对于指令Cache是否有必要考虑Cache别名问题?
答:
有必要,可能会由于cache别名导致取错指令,甚至导致Last level cache不能维护和一级指令cache之间的inclusion关系,从而导致死机。
假定在某一个CPU的Cache中需要64位虚拟地址,8位的进程标识,而其支持的物理内存最多有64GB。请问,使用虚拟地址索引比使用物理地址作为索引的Tag大多少?这个值是否随着Cache块大小的变化而发生改变?
答:
由于虚拟地址有64位,进程标识为8位;而物理地址是64GB,即需要36位物理地址。这样,使用虚拟地址比使用物理地址总共增加的位数为8+(64-36)=8+28=36位;
而保持页大小不变化,改变块的大小,增加的位数保持不变。
考虑一个包含TLB的当代处理器。(1)请阐述TLB、TLB失效例外、页表和Page fault之间的关系。(2)如果有这样一个机器设计:对于同样的虚拟地址,TLB命中和Page fault同时发生,这样的设计合理么?为什么?(3)现代计算机页表普遍采用层次化的方式,请解释原因。
答:
TLB:Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。简单的说,页表是内存块的目录文件实现从页号到物理块号的地址映射。用固定大小的页(Page)来描述逻辑地址空间,用相同大小的页框(Frame)来描述物理内存空间,从逻辑页到物理页框的页面映射,.
Page Fault:缺页,就是TLB中没有虚地址VA对应的页表,主存中也没有VA对应的物理地址。这时候发生Page Fault Exception(缺页例外),需要交给操作系统处理,通常需要消耗很多的时间来处理该例外。
不合理,因为Page Fault发生时意味着主存中没有虚地址VA对应的页表,这是TLB中也应该没有,因为TLB里的页表都是主存中换进去的,是主存中页表的子集,应该发生TLB miss。倘若没有发生,说明TLB不是主存页表的子集,这会导致存储不一致,也违背了层次化设计的基本要求。
多级页表可以减少页表所占用的存储空间。比如:
一个32位逻辑地址空间的计算机系统,页大小为4KB,那么页表有一百万条目。假设每个条目占4B,则需要4MB物理地址空间来存储页表本身。
一个地址(32位系统,页大小 4K) 可以被分为 :一个20位的页号 +一个12位的偏移。如果对页表进行再分页,那么页号分解为:一个10位的页号 +一个10位的偏移。因此,一个逻辑地址表示如下 :p1 是用来访问外部页表的索引, p2 是外部页表的页偏移。
已知一台计算机的虚地址为48位,物理地址为40位,页大小为16KB,TLB为64项全相联,TLB的每项包括一个虚页号vpn,一个物理页号pfn,以及一个有效位valid,请根据如下模块接口写出一个TLB的地址查找部分的Verilog代码。
module tlb_cam(vpn_in, pfn_out, hit,…);
其中vpn_in为输入的虚页号,pfn_out为输出的物理页号,hit为表示是否找到的输出信号,“…”表示与该TLB输入输出有关的其他信号。重复的代码可以用“…”来简化。
答:
module tlb_cam(input_valid, vpn_in, pfn_out, hit, clock);
input clock;
input input_valid;
input [33:0] vpn_in;
output [25:0] pfn_out;
output hit;
reg [33:0] vpn_reg;
always@(pos
您可能关注的文档
- 第十四章 安神药.doc
- 第十四章 电磁波 单元测试.doc
- 第十四章 电磁波 单元综合练习.doc
- 第十四讲 多边形的边角与对角线.doc
- 第十回章 原子原子核.doc
- 第十学时.doc
- 第十届“七彩年华•深圳市未成年人道德.doc
- 第十届“中旅杯”“明日之星”导游风采大赛预赛.doc
- 第十届“燕大杯”乒乓球比赛竞赛规程.doc
- 第十届“素质杯”优质课大赛决赛.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)