offset 和 no 有什么区别?页面中的条目数?
What the difference between offset and no. of entries in a page?
假设一台机器有38位的虚拟地址和32位的物理地址。
(b) 对于两级页面 table、16 KB 页面和 4 字节条目,应为顶级页面 table 字段分配多少位以及下一级页面 table 字段有多少?解释一下。
答案如下:
偏移字段需要 14 位来寻址 16 KB。这为页面字段留下了 24 位。由于每个条目是 4 个字节,一页可以容纳 16KB / 4 字节 = 2^12
页 table 个条目和 因此需要 12 位来索引一页 。所以为每个分配 12 位
页字段的地址将寻址所有 2^38 个字节。
我不是很明白,如果我们有14位的偏移量,用于页内寻址,那是什么一页可以容纳16KB / 4 byte = 2^12 ?另一个偏移量?
回答原问题:
不,它不是二级偏移量,它只是用作二级页面内部的索引table。前 12 位作为第一级条目的索引,后 12 位作为二级页面内的索引 table。
- 38 位虚拟地址
- 16KB 页面大小
- 32位物理地址
我们可以得出结论:
- 主内存大小为2^32 = 4GB.
- log2(16K) = 14,14 位 for offset。
- 页面条目是 4 个字节
- 38-14 = 24 位 参考页
- 2^24 个不同的虚拟页面
- 2^18种不同的物理帧
现在假设我们要为页面table分配space,如果我们分配一个页面16KB
,它将有多少条目? 16K/4 = 4K 条目.
PAGE:
0x000 entry 1
0x001
0x002
0x003
-----------------
0x004 entry 2
0x005
0x006
0x007
------------------
. entry 3
.
.
.
------------------
0xFFC entry 4096 (NOTE! 4K = 4096 as its 2^12)
0xFFD
0xFFE
0xFFF
------------------
现在如果我们将页面的 24 位分成两半,12 位用于一级页面,12 位用于二级页面。我们可以处理多少页?
第一级有 2^12
个不同的页面,其中每个条目都指向第二级页面 table。二级页面table也有2^12个条目,每个条目指向一个大小为16KB的框架。
(2^12)*(2^12)*(2^14) = 2^38
使用这个 2 级页面 table,您可以寻址 2^38 个虚拟地址。
假设一台机器有38位的虚拟地址和32位的物理地址。
(b) 对于两级页面 table、16 KB 页面和 4 字节条目,应为顶级页面 table 字段分配多少位以及下一级页面 table 字段有多少?解释一下。
答案如下:
偏移字段需要 14 位来寻址 16 KB。这为页面字段留下了 24 位。由于每个条目是 4 个字节,一页可以容纳 16KB / 4 字节 = 2^12 页 table 个条目和 因此需要 12 位来索引一页 。所以为每个分配 12 位 页字段的地址将寻址所有 2^38 个字节。
我不是很明白,如果我们有14位的偏移量,用于页内寻址,那是什么一页可以容纳16KB / 4 byte = 2^12 ?另一个偏移量?
回答原问题:
不,它不是二级偏移量,它只是用作二级页面内部的索引table。前 12 位作为第一级条目的索引,后 12 位作为二级页面内的索引 table。
- 38 位虚拟地址
- 16KB 页面大小
- 32位物理地址
我们可以得出结论:
- 主内存大小为2^32 = 4GB.
- log2(16K) = 14,14 位 for offset。
- 页面条目是 4 个字节
- 38-14 = 24 位 参考页
- 2^24 个不同的虚拟页面
- 2^18种不同的物理帧
现在假设我们要为页面table分配space,如果我们分配一个页面16KB
,它将有多少条目? 16K/4 = 4K 条目.
PAGE:
0x000 entry 1
0x001
0x002
0x003
-----------------
0x004 entry 2
0x005
0x006
0x007
------------------
. entry 3
.
.
.
------------------
0xFFC entry 4096 (NOTE! 4K = 4096 as its 2^12)
0xFFD
0xFFE
0xFFF
------------------
现在如果我们将页面的 24 位分成两半,12 位用于一级页面,12 位用于二级页面。我们可以处理多少页?
第一级有 2^12
个不同的页面,其中每个条目都指向第二级页面 table。二级页面table也有2^12个条目,每个条目指向一个大小为16KB的框架。
(2^12)*(2^12)*(2^14) = 2^38
使用这个 2 级页面 table,您可以寻址 2^38 个虚拟地址。