Paging-multilevel-translate
来源:互联网 发布:可以演戏的软件 编辑:程序博客网 时间:2024/06/05 17:22
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
得到答案:
检查答案:
3 -s 2 -n 3
计算过程同上: PDBR 122
得到答案:
检查答案:
5 问题三:
4 页表结构:
翻译过程:
内存引用对cache的影响?
如果是连续访问相邻的内存地址,这样会增加cache hits。
如果连续访问的内存地址相隔比较大,就会增加cache miss。
阅读全文
0 0
- Paging-multilevel-translate
- Paging-linear-translate.py
- paging
- paging
- flatten multilevel list
- translate
- translate
- translate
- translate
- translate
- translate
- translate
- translate
- translate
- TRANSLATE
- translate
- translate
- translate
- 【我的javaEE学习】前端例子之图片轮播与打字机
- 通过copy引用到局部变量来避免NullPointException
- char,int,float,double所占字节数
- Composer和PHPUnit入门
- JavaScript中变量的声明和赋值
- Paging-multilevel-translate
- 学会止损的前提是分析准确
- firefox打开学校ftp中文显示乱码问题
- Hive的语法知识详解
- sql优化
- CodeForces 893B Beautiful Divisors
- java用文件流实现查看下载次数
- 草堂君送书
- windows关机命令与tomcat的shutdown命令冲突解决方法