虚拟地址大小:32位
页面大小= 4K = 2 ^ 12字节
页数是多少? 我知道答案是(2 ^ 32)/(2 ^ 12)= 2 ^ 20,但为什么?
我认为它应该是(2 ^ 32)/(2 ^ 15)因为字节位转换(2 ^ 12)*(8)= 2 ^ 15
答案 0 :(得分:1)
内存中的每个字节都有一个从0开始的数字地址.CPU有一个或多个寄存器,它们保存正在处理的那个字节的地址。寄存器是一种物理设备,它可以存储的数量有限。
虚拟地址大小:32位
这意味着地址寄存器可以存储一个地址(数字),可以是0
和2^32 -1
之间的任何地址。
作为地址寄存器可以存储的最大地址是2^32 -1
,没有必要拥有更多的内存字节。因为CPU永远无法使用它们。因此,通常我们假设总内存为2^32
个字节。
页面大小= 4K = 2 ^ 12字节
数百万字节的总内存实际上是在称为页面的块中组织的。这里2^32
个字节的总内存被分块为2^12
个字节的页面。
页数是多少?
答案是(2 ^ 32)/(2 ^ 12)= 2 ^ 20。干得好!
但为什么呢?我认为它应该是(2 ^ 32)/(2 ^ 15)因为字节位转换(2 ^ 12)*(8)= 2 ^ 15
此处2^32
是内存中的总字节数。 2^12
是页面中的总字节数。分子和分母都应该是相同的单位 - 字节。所以你不需要将分母转换成位。
我过度使用memory
,address
,register
等术语的简化。上面提到的许多陈述对于真正的笔记本电脑无效 - 但对初始学习很有用。