转页式存储(已知系统为32位实地址,采用48位虚拟地址,页面大小4KB,页表项大小为8B;每段最大为4GB。)

      版权声明:本文为博主原创文章,未经博主允许不得转载。不准各种形式的复制及盗图          https://blog.csdn.net/qq_26816591/article/details/51910582        </div>
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
                          <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
      <div class="htmledit_views" id="content_views">

页式存储(清华大学)
已知系统为32位实地址,采用48位虚拟地址,页面大小4KB,页表项大小为8B;每段最大为4GB。
(1)假设系统使用纯页式存储,则要采用多少级页表,页内偏移多少位?
(2)假设系统采用一级页表,TLB命中率为98%,TLB访问时间为10ns,内存访问时间为100ns,并假设当TLB访问失败后才访问内存,问平均页面访问时间是多少?
(3)如果是二级页表,页面平均访问时间是多少?
(4)上题中,如果要满足访问时间<=120ns,那么命中率需要至少多少?
(5)若系统采用段页式存储,则每用户最多可以有多少段?段内采用几级页表?

参考答案:

(1)首先,页面大小为4KB,故页内偏移需要12位来表示。其次,系统虚拟地址一共48位,所以剩下的48-12=36位可以用来表示虚页号。每一个页面可以容纳的页表项为:4KB/8B=29(也就是可以最多表示到9位长的页号),而虚页号的长度为36位,所以需要的页表级数为:36/9=4级。

(2)当进行页面访问时,首先应该先读取页面对应的页表项,98%的情况可以在TLB中直接得到得到页表项,直接将逻辑地址转化为物理地址,访问内存中的页面。如果TLB未命中,则要通过一次内存访问来读取页表项,所以页面平均访问时间是:

98%×(10+100)ns+2%×(10+100+100)ns=112ns

(3)二级页表的情况下:

如果TLB命中,和(2)的情况一样,如果TLB没有命中,采用二级页表需要访问3次内存,所以页面平均访问时间是:

98%×(10+100)ns+2%×(10+100+100+100)ns=114ns

(4)假设快表的命中率为p,应该满足以下式子:

p×(10+100)ns+(1-p)×(10+100+100+100)ns<=120ns

可以解得:p>=95%,所以如果要满足访问时间<=120ns,那么命中率至少为95%。总结知识点:在多级页表的情况下,如果TLB没有命中,则需要从虚拟地址的高位起,每N位(其中N就是类似于(1)中的9)逐级访问各级页表,以第(1)问为例,如果快表未命中,则需要访问5次内存才能得到所需页面。


  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值