【发布时间】:2011-07-23 15:10:26
【问题描述】:
Intel x86 内存模型有分段和分页。系统可以寻址高达 64 TB 的虚拟内存是什么意思?我的理解是只有 4GB 的虚拟内存是可寻址的。这里的差距是什么?这都是在32位处理器的上下文中
这是数学:
2^13(段选择器)* 2(LDT 或 GDT)* 2^32 = 2^46 = 64 TB。这在文献中被称为总虚拟内存。他们是否错误地将其称为虚拟内存?令我困惑的是,处理器本身只有 32 位地址线。
或者,他们是否想说这是可以分配的总虚拟内存总量(跨所有进程?)
【问题讨论】:
-
您确定它不在 64 位处理器的上下文中吗?你能链接到你的来源吗?
-
您确定它是 32 位处理器吗?即使使用 PAE,32 位处理器也仅支持 64 GB。然而,64 位处理器目前支持 256 TB 的虚拟内存,但通常支持更少(可能为 64 TB)的物理内存。
-
是的 32 位。 2^13(段选择器)* 2(LDT 或 GDT)* 2^32 = 2^46 = 64 TB。这在文献中被称为总虚拟内存。这在文献中被称为虚拟内存 - 他们是否错误地将其称为虚拟内存?令我困惑的是,处理器本身只有 32 位地址线。此外,每个段没有关联的页基地址。这只是使用了错误的术语吗?
-
我不会说将其称为虚拟内存是错误的,但它有点可疑。我不知道他们为什么还要费心说出 64TB 的数字。没有人会将如此疯狂的设置用于任何有用的目的。一个更有用的数字是可寻址物理内存的总量,通常要少得多。
标签: memory x86 virtual intel memory-segmentation