Paging-multilevel-translate

1 首先查看一些基本的假设:

page size:              32 bytes (2 ^ 5 =32)
virtual address space :  1024 pages (1024 * 32 bytes = 32KB)
physical memory :        128 pages (128 * 32 bytes = 4 KB)

2 通过上面的参数我们可以得到:

virtual address  : 15 bits (offset 5 bits , VPN 10 bits )
physical address :  12 bits (offset 5 bits , PFN 7 bits )

3 可能用到的参数:

-s SEED,  --seed=SEED        随机种子
-n NUM,   --addresses=NUM    虚拟地址的个数
-c,       --solve            得到答案

4 问题一:

不管是几级页表结构,都只需要一个寄存器就可以了。我们只需要暂存第一级页表的地址即可。

5 问题二:

1 -n 1 -s 0 (只翻译一个虚拟地址)

这里写图片描述

首先得到PDBR的值为:108 ,虚拟地址为0x611c。PDBR表示PDE。所以PDE在page108中。

将0x611c拆分: 11000 01000 11100

因为11000的值为 0x18 即 24。

在页表中查找page 108的第25个条目(从0开始,所以24为第25个条目):

这里写图片描述

得到0xa1 ,拆分0xa1: 1 0100001 ,最高为为1,因此有效。

0100001的值为:0x21 即 33。所以PTE在page33中。

查找page 33 :

这里写图片描述

因为01000的值为:0x8,即8。我们发现page33的第9个条目为 b5 。

将b5拆分:1 0110101,最高位为1,因此有效。

0110101的值为:0x35即53。所以物理地址在page53 中。

查看page 53:

这里写图片描述

因为offset的值为:11100(0x1c)即28

所以物理地址为:53 * 32 + 28 = 1724 转换为物理地址 -> 0x6bc。

查看第29个条目:08。

所以得到的物理地址为:0x6bc,对应的内容为:0x08。

检查答案:

这里写图片描述

2 -s 1 -n 3

计算过程同上: PDBR 17

得到答案:

虚拟地址物理地址地址对应的值
0x6c740xc340x06
0x6b220x8e20x1a
0x03df0x0bf0x0f

检查答案:

这里写图片描述

3 -s 2 -n 3

计算过程同上: PDBR 122

得到答案:

虚拟地址物理地址地址对应的值
0x7570not valid
0x72680xca80x16
0x1f9fnot valid

检查答案:

这里写图片描述

5 问题三:

4 页表结构:

翻译过程:

这里写图片描述

内存引用对cache的影响?

如果是连续访问相邻的内存地址,这样会增加cache hits。

如果连续访问的内存地址相隔比较大,就会增加cache miss。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机的小粽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值