未识别内存管理接口(UIMMI)

由于未识别内存不被 Windows 操作系统管理,因此任何应用程序都可以对未识别内存进行管理和读写访问。显而易见,一个应用程序存放于未识别内存的数据很容易被另一个应用程序覆盖,这样就可能产生严重的问题。为了避免此类数据访问冲突问题,您需要仔细地管理设置应用程序以保证仅有一个应用程序在使用未识别内存。这样的操作是繁琐复杂,并且容易出错的。此外,在某些情况下,您可能希望多个应用程序可以同时使用未识别内存,而不是某个应用程序排它性地使用未识别内存。

考虑到上述不便和限制,我们推出了一个新的功能模块:未识别内存管理接口(UIMMI)。这个管理接口提供了一个统一的方式来管理和使用未识别内存。更为重要的是,它可以允许多个应用程序同时使用未识别内存而不用担心访问冲突问题。

使用 UIMMI

每个支持 UIMMI 的应用程序都有一个统一的启动按钮,通常位于应用程序主界面的左下角处。以 Primo Ramdisk 软件为例,以下步骤介绍如何通过 UIMMI 启用未识别内存。

    1. 运行 Primo Ramdisk 软件并点击 UIMMI 启动按钮。
    2. UIMMI 定义了两组类型的参数:全局参数和本地参数。全局参数应用于所有支持 UIMMI 的应用程序,而本地参数仅应用于当前的应用程序。点击启用按钮设置未识别内存。
    3. 根据需要设置全局和本地参数。本文下节将详细介绍 UIMMI 参数。点击继续按钮,程序开始检测未识别内存地址空间,并返回检测结果。如果成功,检测到的未识别内存就可以在支持 UIMMI 的应用程序中使用。

      UIMMI 参数

      [全局参数]

      前端地址保留和限额:这两个参数定义 UIMMI 允许管理的未识别内存地址范围。下图解释了它们如何影响 UIMMI 的管理空间。

      默认状态下,UIMMI 会识别并管理全部的未识别内存。如果设置了前端地址保留,则从起始地址开始的相应大小的未识别内存空间被保留为系统或其它应用程序使用,不被 UIMMI 管理。如果设置了限额,则限制了 UIMMI 最大可管理的未识别内存容量,剩余部分(后端地址空间)则保留为系统或其它应用程序使用,而不被 UIMMI 管理。

      借助于这两个参数,UIMMI 能够为系统和第三方应用程序保留相应的前端地址空间和后端地址空间,以避免同时使用未识别内存导致的冲突问题。通常这些保留空间为主板集成显卡使用。因为部分主板厂商在集成显卡时会将未识别内存用作共享显存。例如微星 MSI 880GM-E41 主板能够设置多达 1024 MB 的物理内存为共享显存。如果 BIOS 里的“UMA Location”选项设置为“Below”,其共享显存使用系统管理的内存而不是未识别内存,这个情况下它不会和 UIMMI 冲突,因此也无需保留未识别内存地址空间。但是如果“UMA Location”设置为“Above”,其共享显存则会使用未识别内存的后端地址空间,这个情况下,UIMMI 必须保留后端地址空间,以避免冲突。具体设置的例子如下:假设您的计算机安装了 8 GB 的物理内存并且32位操作系统只识别到 3.25 GB,预计的未识别内存应该有 4.75 GB。如果共享显存设置为 1 GB,则我们需要设置 UIMMI 限额不高于3.75 GB。由于 MSI 880GM-E41 主板仅使用后端地址空间,所以这里我们无需设置前端地址保留。

      小贴士:如何知道主板集成显卡使用的是前端未识别内存还是后端未识别内存?
      由于主板制造商以及主板型号众多,我们无法一一列出所有主板的情况。但是您可以自己通过以下简单步骤获取主板集成显卡使用未识别内存的情况。
      1. 首先,保留任意一端(前端或后端)未识别内存地址空间,保留空间大小和共享显存大小一致。
      2. 然后将剩余的未识别内存用任意数据填满。比如用剩余的未识别内存创建一个内存虚拟硬盘,然后将该硬盘填满。
      3. 如果您发现计算机出现花屏或显示异常的情况,这意味着被 UIMMI 使用的未识别内存和共享显存冲突。此时您可以尝试保留另一端地址空间,然后重复步骤 2。

      未识别内存休眠文件位置:该参数指定未识别内存休眠文件的根目录位置。默认状态下,休眠文件和 Windows 系统在同一分区。

      [本地参数]

      未识别内存休眠:当该参数被勾选时,应用程序可以安全地进入休眠状态并从休眠状态恢复到工作状态。UIMMI 会创建一个名为“imhiberfilex.sys”的文件用于休眠前保存未识别内存中的数据。如果此参数未被勾选,则计算机从休眠状态恢复时会出现未识别内存数据丢失而引起异常。当然如果您的计算机禁用了休眠功能,则您不需要勾选该参数,这样可以避免创建休眠文件,从而节省硬盘空间。

      :如果您的系统是 Windows 8 或其后的操作系统,并且开启了“快速启动”(Windows 默认开启),则此参数必须勾选。

      支持 UIMMI 的应用程序

      Romex Software 的所有产品,除了 VSuite Ramdisk,均支持 UIMMI。VSuite Ramdisk 已经被其后续产品 Primo Ramdisk 替代。

      标签