也许我忽略了导致这些不存在的重要原因,但我觉得通过 PCIe 进行 RAM 扩展是完全可行的。我知道很多操作系统使用虚拟内存并将一些优先级较低的项目存储在硬盘上,但考虑到较低的速度,我觉得我们可以使用一些不太快的额外内存。
6Gb/s SATA ~= 800MB/s
PCIe 2.0 = 500MB/s per lane. 16 Lane ~= 8GB/s
当然,8GB/s 的速度不如实际 RAM 快,但它是 SATA 速度的 10 倍。为什么不使用带有几个 RAM 插槽的 PCIe 板来与最近升级后更换的旧 RAM 一起使用呢?PCIe 的优势在于几乎可以安装在所有主板上。一个“适配器”PCIe RAM 扩展板(据称)可以兼容大多数 PC。
由于这还没有完成,我错过了什么?
答案1
这是一个复杂的问题,高度依赖于你想用该 RAM 做什么。
在大多数情况下,更便宜、更好的方法是直接用支持所需 RAM 数量的新主板替换主板。我面前的主板可以容纳 16 个内存模块。可用的最大模块是 32 GB。这意味着一台机器总共有 512 GB。(别介意 16 个这种大小的模块要花费大约 14,000 美元,或者 MoBo 上还有两个 8 核 CPU。)
在主板上安装 RAM 意味着速度最高。您既可以将其用作 RAM 磁盘,也可以将其用作普通程序和数据存储。两全其美。
但是在你的问题中,你一直将它与 SATA 存储进行比较,所以我认为你会想将这个额外的 RAM 用作 RAM 磁盘,而不是用作一般的 CPU RAM。这是一种有效的用途,几年前人们确实有专门用于此目的的带有大量 RAM 的 PCI 卡。这些卡看起来像另一个磁盘驱动器,而不仅仅是更多的 CPU RAM。这些卡上通常有一个外部电源连接器,这样你就可以在主电源发生故障时为它们提供某种备用电源。
这些类型的卡已基本消失。它们被淘汰的主要原因有三点:1. 现在主板上可以安装比过去多得多的 RAM。2. 有更多使用闪存和 PCIe(有些带有大 RAM 缓存)的现代固态硬盘,性能更好。3. 它们太贵了,但优势有限。
您可能还出于其他原因想要拥有具有大量 RAM 的 PCIe 卡,但所有这些应用都要求卡除了存储数据之外还必须执行其他操作。例如视频卡或数据采集卡。这些情况不适用于此处。
答案2
这种方法已经实现;许多年前,您可以购买带有 RAM 的 ISA 卡(PCI 之前),这些卡在您的 PC 上显示为“扩展”或“扩充”内存。这是突破原始 PC 1MB 限制的一种方法。
现代个人计算机的视频卡上都附有一部分额外的 RAM,与主内存分开。
如今你没有 RAM 扩展卡的原因是延迟是一个严重的问题。操作系统中实际上没有为首选 RAM 和非首选 RAM 提供任何规定,因此你必须将其用作交换磁盘/页面文件。
答案3
2021 年更新
尽管我们还需要等待这两者的下一代,但这项技术正在随着 PCIe 和 DRAM 的发展而到来。
AnandTech 文章 使用 PCIe 插槽安装 DRAM:新款三星 CXL.mem 扩展模块 描述的正是三星正在开发的这种技术:
三星今天发布的是一款 CXL 连接模块,该模块最大程度地装载了 DDR5。它使用完整的 PCIe 5.0 x16 链路,理论上可实现 32 GT/s 的双向传输速度,但缓冲控制器后面有多个 TB 的内存。三星等公司将 NAND 装入 U.2 大小的外形尺寸,并配备足够的冷却系统,三星在这里也做了同样的事情,但使用的是 DRAM。
我对这里使用的技术标签有点怀疑,尤其是 PCIe 5.0,它实际上可能意味着 PCIe 4.0,因为它们听起来一模一样,而且我认为三星不会今天就发布几年后才可用的硬件,而且这个标准还不存在。
文章指出,DRAM 插槽的额定最大功率通常为 ~18W。这意味着像这样的 2 TB 插入式 CXL 模块可能需要大约 70-80 W,这可能需要主动冷却和大型散热器。
这种硬件显然是用于专用计算,而不是普通桌面用途。
答案4
PCI 中已经存在一些最低限度的支持:有一个类代码/子代码 0x500,上面写着“内存控制器”,它是实际上用于一些内部设备用于(缓慢的)设备间通信。
据我所知,这里的问题是 CPU 中的 PCI/PCIe 设备不支持缓存一致性(PCIe 标准也不要求)。如果没有与 PCI 设备对应的内存范围的有效缓存,您就可以告别高速缓存了——CPU 不需要进入缓存,而是始终进入 PCIe 设备才能访问任何给定的地址。在支持 CXL 的 CPU 和设备中,CXL 的这个问题已经得到解决。