32 位机器如何支持超过 4 GB 的 RAM?

32 位机器如何支持超过 4 GB 的 RAM?

我一直对此感到疑惑,但从未完全理解 32 位机器如何寻址超过 4 GB 的内存。我的意思是,没有剩余的地址线了,对吗?

我知道,即使在我们的设施中,我们也有戴尔数据库服务器,其机器可寻址的内存为 8 GB,并且运行 32 位版本的SQL 服务器. 是否采用旋转内存窗口的方式,实现了类似于8086的20条地址线的EMS内存?

答案1

为了支持超过 4 GB 的内存,Windows 使用物理地址扩展(PAE)。它使用分页表来映射大于 4 GB 的内存。通过这样做,物理地址大小增加到 36 位,即 64 GB。PAE 也用于 64 位操作系统;在这种情况下,最大大小加倍到 128 GB。

这种方法确实意味着每个进程仍然被限制在最大 4 GB 内存。

答案2

它被称为聚丙烯酰胺凝胶电泳。它通过更改处理器上的页表布局来支持高达 64 GB 的 RAM。但是,任何一个应用程序仍然只能使用 2-3 GB(取决于内核的设置方式,通常 Windows 为 2 GB,Linux 为 3 GB)。此外,PAE 往往会使机器运行速度稍慢,因为页表查找需要经过额外的级别。

任何相对较新的处理器都应该支持它。

答案3

英特尔有一项名为 PAE 的功能,它实际上使操作系统能够利用超过 4GB 的内存。每个应用程序只能使用 2(或 3)GB 的内存空间,但由于操作系统现在拥有更多内存来分配内容 - 进程之间的共享将减少,因此可能带来一些性能优势。

然而,真正的魔力始于使用 AWE API,通过它,您可以使用专门为此编写的单个 32 位应用程序实际使用更多内存。这就是 SQL Server 正在做的事情。

答案4

32 位操作系统上的应用程序可以访问 4GB 的地址空间。但这是虚拟地址空间,与物理 RAM 的大小完全无关。大多数现代 32 位处理器都有足够的地址线来寻址 64GB 的 RAM。4K 字节的块会根据需要映射到进程的地址空间。

PAE 允许访问超过 4GB 的 RAM。它并不是人们常说的黑客攻击,而是相当高效。PAE 不会做出任何根本性的改变,只是细节不同。事实上,大多数现代系统默认使用 PAE。DEP 依赖于 PAE 内核。

不幸的是,只有服务器才能访问超过 4GB 的 RAM。台式机可能正在使用 PAE,但会忽略超过 4GB 的任何 RAM。这有许多技术和营销原因。

相关内容