问题
我见过一些程序(尤其是 RAM 驱动软件)声称能够访问 32 位系统(包括 XP)上的“不可用 RAM”。我想知道它们是否真的可以,如果可以,它们是如何做到的。
技术的
有几种不同的方法可以限制 32 位 Windows 系统中安装的 RAM 数量(这里简化了):
2:2 (2GB) 虚拟地址空间
因为Windows 对地址空间进行分区,程序最多只能分配 2GB 大小的内存块。交换机
/3GB
可以通过将比例从 2:2 更改为 3:1 来在一定程度上缓解这种情况。3.xGB - 4GB
由于硬件地址映射(多模光纤输入输出系统),部分地址空间将被使用通过其他设备安装(或内置于)系统。内存重新映射可能有助于支持此功能的系统。
4GB+
因为 32 位指针最多只能指向 232 个地址,所以它最多只能指向 4GB 的数据。使用PAE 模式可以通过使用更大的指针和“页面”来帮助解决这个问题(很像旧的 16 位 DOS 段:偏移内存方案,这很讽刺,因为保护模式应该比实模式更好)。
微软的营销限制
除了硬件和软件的数学限制之外,微软还施加人为限制在 Windows 上(*包括 64 位版本),以便他们可以针对不同目的和价格营销不同的版本。
具体内容和示例
我的问题不是 Windows 或常规程序(如记事本)会受到这些影响。我已经熟悉这些限制及其典型的解决方法(包括俄罗斯补丁这使得 Windows 7 内核更像 Windows Server 2003 内核),我没兴趣再重复这些事情。
我的问题是关于那些声称能够克服一个或多个这些限制。
我认为我见过其他程序做出这样的声明,但我确信某些 RAM 驱动器软件确实如此。一些示例包括拉克斯科,数据存储器, 和加沃特舞曲。我之前尝试过几个有类似要求的 RAM 驱动器程序(我认为 Gavotte 就是其中之一),但无法让任何一个程序真正访问额外的内存。
索赔
Raxco 做出以下声明:
RamDisk Plus 不仅可以使用 4GB 以上的隐藏 RAM 创建 RAM 磁盘,还可以使用 3.2GB 到 4GB 之间的不可访问内存。
后来他们提到:
请记住,只有当 Windows 报告隐藏 RAM 高于 4GB 时才能执行此操作。
第一个说法很好,因为与大多数此类程序不同,它对于克服了哪些限制并不含糊。
但是,与大多数此类程序一样,它对于访问额外内存所需的硬件和软件要求含糊其辞,也没有说明其工作原理或会产生什么样的副作用(例如,如果它只是添加了开关或/3GB
启用了 PAE 模式,那么它就没有“解决”问题,而是启用了一种特殊的 Windows 模式(这会影响操作系统和所有程序)并适应这种情况)。
Jens 对 Gavotte RAM 驱动器的讨论似乎表明它们(至少 Gavotte)确实通过使用 PAE 工作。它还提到了这篇文章幽灵仓库摘自德国杂志不作为突破的源泉。不幸的是,这篇文章不仅不是免费的,而且我的德语还不够流利,无法阅读技术文章,所以我不知道它是否提供了有关其工作原理或其要求的详细信息。
概括
有人知道这些程序的说法是否属实吗?有人真的见过它们工作吗?如果有,那么需要什么才能使它们工作?此外,它们究竟是如何实现的(它们是否通过启用/3GB
、PAE 等来影响整个系统和所有程序,还是它们在做一些特殊的事情,例如使用超大指针并直接访问硬件?
答案1
我见过一些程序(尤其是 RAM 驱动软件)声称能够访问 32 位系统上的“不可用 RAM”。也就是说,即使 Windows 无法查看或访问 32 位系统上安装的 4GB 内存,这些程序也声称可以。
我猜想从技术上来说,如果程序能够尽早插入自身以激活 PAE 或 64 位模式,然后在操作系统完成加载之前模拟正常操作,那么这是可能的。
在我的 4GB 的 32 位系统上,Windows 只能看到 3.20GB,BIOS 也是如此。
这是因为 32 位系统有 4 GB 地址空间。其中一部分(理想情况下为 512 MB 或更少)应用于 RAM。其余部分用于 PCI 地址空间、虚拟内存地址等。
这不是使用 PAE 或 /3G 开关的问题,因为这不是 Windows 的限制,而是主板的限制。如果芯片组和内存控制器无法访问超出范围的内容,那么我看不出 Windows 或任何软件如何能够访问,即使它们直接访问硬件。
没错。如果你的内存控制器或主板限制为 4 GB,那就没戏了。游戏结束了。
我知道使用 PAE 需要使用服务器或 64 位版本的 Windows
不,这是错误的。
PEA 的工作原理是三十二位操作系统。它使用 36 位寻址。可以将其视为 16 (2 4 ) 个窗口,每个窗口大小为 4 GB (2 32 )。或者将其视为一本 16 页的书。您无法同时看到多页,但可以翻页。
(尽管我不明白为什么这些版本的 Windows 可以访问 BIOS 无法访问的内容)。然而,这些程序对此只字未提,并暗示(或直接说)它们适用于使用消费者版本的 Windows 的普通用户。
PAE 是这些 Windows 操作系统上的一个选项,假设硬件支持它。
- Windows 7(仅 32 位)
- Windows Server 2008(仅 32 位)
- Windows Vista(仅 32 位)
- Windows Server 2003(仅 32 位)
- Windows XP(仅 32 位)
来源。
如您所见,它仅适用于 32 位操作系统。服务器版本和消费者版本均适用。我似乎记得它后来从 Windows 7 SP1 中删除了,尽管 MS 网站上没有提到这一点。
我尝试过几个这样的程序(特别是 RAM 驱动器),但无法让其访问上部内存。有人知道这些程序的说法是否属实吗?有人真的见过它工作吗?如果有,他们究竟是如何做到的?
如果不知道是哪些程序,我们就无法回答这个问题。
但是它们可能在支持聚丙烯酰胺凝胶电泳,但不能在缺少铜线或内存控制器不支持它的主板上使用。(例如旧 CPU、旧芯片组、比 Pineview 或 Diamondville 更旧的原子 CPU)。
答案2
在 32 位系统中使用上位内存的 Ram-Disks。
必须在 Bios 中查看,要做到这一点,在许多主板上,您必须确保主板本身已切换到扩展内存。32 位操作系统必须处于 PAE 模式。从逻辑上讲,您的内存应该大于 4Gig。
在 32 位系统中,我们得到少于 4Gig 的原因是总地址空间也被视频卡内存空间用来设置视频卡 RAM。该空间中布置的 GPU 卡 RAM 越多,系统 RAM 的“虚拟内存”地址空间就越少。
64 位系统中没有这样的限制,因为显卡的 64 位驱动程序可以分配 32 位地址限制之外的空间,但并不是需要这样做,因为其余 RAM 仍然可以分配足够的虚拟内存空间。
----视频内存---系统内存----|32位结束|----扩展--
下面是很久以前我自己在 32 位系统中做扩展内存盘时写的 C&P 帖子,它应该涵盖所有可能出错的地方。我为 32 位 XP 设置了一个 4GB 内存盘,使用扩展内存。
使用 32 位系统中无法访问的其他 4Gig 作为 ramdisk。
多年来,我的系统中一直有一个 ramdisk,并在其上放置互联网临时文件。网络本应受到连接速度的瓶颈,但速度却快了很多。显然,页面在显示之前先在更快的磁盘上组装起来,使其速度更快。
最终,我厌倦了 ramdisk 占用我有限的 32 位空间,或者我在运行包含大量图片的 photoshop,或者其他一些东西,然后我关闭了 ramdisk。最终,我将其完全删除,因为它用得不够多。
在检查适用于 Windows 7 的 Windows 7 64 位内容时,我发现这些 ramdisk 现在可以设置为使用 Windows 32 位最大分配之后不可用的 4 GB :-)
我使用的是 DataRam 内存,下面是测试后得到的 2 个简单提示。我将 Boot.ini 设置为在 PAE 模式下运行(否则它无法使用系统之外的内存)。由于是 64 位系统,我已经让系统在 EXTENDED 模式下启动。(这是主板上在扩展内存中运行的一个选项。)完成所有操作后,我就能让 ramdisk 占用我 8GB 内存中的最后 4GB。
更多信息:所有驱动程序都必须能够在扩展/Pae 下运行,以使操作系统进入 PAE 模式。如果您还没有这样做过,您可能应该首先在 PAE 模式下测试您的系统。起初我的系统崩溃了,因为我意外地将 ramdisk 驱动程序本身设置为正常内存空间。我跳回到 NOPAE 模式,关闭驱动程序,然后返回 PAE 模式以在 PAE 模式下对其进行配置。
这就是我的 Boot.ini 的样子,所以当我搞砸了时我可以在两种模式之间跳转。
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="PAE XP Professional" /fastdetect /pae
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Professional No Pae" /fastdetect /noexecute=alwaysoff /NOPAE
只是为了让您有所了解或可以搜索正确的方法来做到这一点,不要假设我的方法对您来说是正确的。它只是表明我有一种进入操作系统的备用方法。
这是我第一次在旧的 32 位 XP 中使用全部 8GB 内存,所以我认为这非常酷。我想其他人也会这样认为。尤其是当 w7 64 位等系统在某些方面如此糟糕的时候。
该 ramdisk 是“免费的”,它在配置时会添加一个购买内存的附加项,我相信其他 ramdisk 现在可以做到这一点。只有前 4GB 是免费的,但足以满足我的需要。
该 ramdisk 的速度比我的普通 SATA 驱动器快大约 70 倍,而不是旧 ramdisk 的 100 倍,因此似乎开销稍微大一点。
答案3
所有这些程序都需要支持 PAE 的系统和重新映射 4GB 以上物理内存的主板。在 Windows 启动初期,这些程序会占用 4GB 以上的所有内存。基本上,如果内存适用于完全支持 PAE 的操作系统,那么这些程序就可以找到它。
如果 BIOS 看不到内存,它就不会将其映射到 4GB 标记以上,因此它不会工作。只有当您拥有超过 4GB 的物理 RAM 或您的 BIOS 将硬件映射所遮蔽的 RAM 重新映射到 4GB 标记以上时,才会存在高内存。如果上述情况均未发生,则不存在高内存。
大多数不支持 64 位 CPU 的消费级主板也不支持超过 4GB 的物理 RAM,也不支持重新映射由硬件映射遮蔽的内存(这是由于芯片组限制)。因此,这种方法奏效的情况非常有限 —— 这主要是一种营销噱头,不劳而获。
答案4
嗯..基本上我在运行 Windows XP,使用 Gavotte Ramdrive.. Windows XP 下有 3.2 GB 的可用内存(Ramdrive 未使用任何内存,基本上是 Windows XP 的最大值)然后我得到了一个 12GB 的 Ramdrive,页面文件位于其上(4GB)我以前有一台 APU-5800K,配备 Gigabyte F2A55-M 主板..现在是不同的主板,仍然使用相同的设置,但有额外的显卡。操作系统没有添加/PAE。16 GB 总系统内存。它运行得非常好,特别是旧软件,它们不能使用超过一个核心。硬盘一直是这些软件的瓶颈,安装上述软件(如 X3-The Threat 或类似软件)可大大改善加载时间。(从一个扇区到另一个扇区,以及其他长时间加载)基本上适用以下情况:IDE < SATA < SSD < Ramdrive。它确实比 SSD 运行得更快。而且由于虚拟内存也是从中来使用的,所以任何曾经使用过的内存都会以 Ram 速度加载。我不会超频(对组件/处理器不利,会缩短使用寿命)我使用的 RAM 是 1866,对板载 GPU(HD7660D)也非常有用,现在有了显卡,我将 <4GB 上的负载减少到 0。因此,在 Windows XP 下 3.2GB(最大),任何游戏的加载时间都超快。:D 此外,没有旧软件能够使用 >4GB。所以是的。它就像梦一样工作。而不是在 CNC3、X 系列、较旧但仍然更大的射击游戏、辐射等中对超大版本进行 30 次加载。
- 还好。
我希望这有帮助..
注意:为了使其工作,我确实必须对主板的 BIOS 设置进行一些调整,但一旦它工作起来..砰!..声音屏障就出现了..
嗯...我不想花时间做项目符号格式化..呜呜...
Sowwies...我忘了说实际答案了。是的,在 32 位 Windows 上可以使用超过 4Gb。Gavotte Ramdrive..guud.. 顺便说一句,安装该软件时,不要更改 Ramdrive 设置实用程序中的任何内容,只需运行一次即可。它会自动查找任何未使用的内存,然后将其添加到 Ramdrive。只需先设置为 Ramdrive..(无论如何,对我来说就是这样的..)祝你好运,Ramdrive 速度快点。
AMD APU-A5800K
16GB 物理内存(1866 可实现最佳 APU 性能)(您也可以使用 21xx 内存,但我从未尝试过,以获得更快的内部 GPU 性能以及更快的 Ramdrive 加载时间)
技嘉 F2A55-M
板载显卡 HD7660D,具有 1024 MB 共享内存(顺便说一下,运行良好)(需要在 BIOS 选项中进行设置,如果只有 32MB 可用,那么确实很糟糕)
Windows XP-32(SP3) 下有 2.7GB 可用内存(新主板和独立显卡为 3.2GB)(另请注意,如果将共享内存设置为 512MB,大多数情况下就足够了,在旧主板上,可用的系统内存会增加..)(就我个人而言,我宁愿坚持使用 7660D 的 1GB 共享内存,因为这比蜗牛速度要好,不是吗?)
12GB Ramdrive (Gavotte),带 2-4GB 页面文件
如果您希望软件运行速度真正快,请将其安装在 Ramdrive 上,然后在退出之前将该安装复制到 Harddrive。
我有一个设置,可以自动在 Ramdrive 上加载两个部分。第一部分是低负载部分,例如浏览器(Windows 启动后大约 2 秒可用),其次是较大的部分(游戏)的加载,加载时间从几秒到将近 30 秒不等。(带有指示器:D)如果您想在游戏的某些部分保存,并且厌倦了每次重新加载等待 30 秒左右,那么,这个设置可以在 3 秒内完成。是的。快多了。
此外,还有一点需要注意:Windows XP 最好地运行 Windows XP 软件。因此,尽管在较新的系统上有 VM-ing 和所有这些爵士乐,是的,在 2017 年仍然使用 Windows XP-32 最适合我的游戏,因为我也可以使用 Windows 7 来玩较新的东西。
UGH。不过还有更多信息...如果 BIOS 或 OS 以某种方式部分使用了 >4GB 的 RAM,那么 Gavotte 可能会失败,并且在安装了 Ramdrive 后重新启动时会停止系统...发生这种情况时,请务必尝试使用(一次性)PCI 卡,然后关闭板载 GPU 并将其内存使用设置为 0。我在较新的主板上遇到了这个问题,但在安装了附加显卡后,它又可以正常工作了...我仍然怀念我的旧主板......(当电源装置发生故障并通过它发送 220 时被烧坏了..D:)(是的,使用旧电源装置可能对系统有害)(但是嘿,它被抢救出来了,对吧?..真的很脏..)
祝你好运,在极快的速度和加载时间内玩游戏,享受更多乐趣。(对于那些说 Windows XP-Pro SP3 的人,混蛋,试着让近 800 款游戏在较新的操作系统上运行。一点也不好玩。)(此外,HD7660D 内置显卡非常不糟糕,特别是对于较旧的软件,但请确保安装正确的驱动程序。)(在大多数情况下 14.4 可以工作,但有时该驱动程序太新。)(是的,它可能太新了,因为有些游戏首先检查一些东西,然后它们无法识别 CPU 或 GPu 或两者。)(它需要在我的计算机下显示 CPU 规格(右键单击)。)