我们能以比 RAM 更快的速度运行 Linux 吗?

Zig*_*ggy 22 memory linux embedded cache memory-management

这可能是一个愚蠢的问题,可能是误解的结果。我现在正在研究 CPU,尤其是内存。我只是在读 SRAM 比 DRAM 快多少但更贵。SRAM 非常昂贵:我购物了一点,发现了一个 16 MB 的电池供电的 SRAM 卡,价格约为 400 美元。

最近一位朋友提到他一直在 RAM 中运行 Puppy Linux,而且速度很快。不过,我注意到,Linux 的小内核甚至可以更小……小至 8 MB!这让我想到:我们可以在 SRAM 中运行 Linux 吗?这个问题甚至格式正确吗?

谷歌搜索这个问题被证明是无效的,但它提出了更多的问题。可以在 L3 缓存中运行 Linux 吗?英特尔酷睿 i7 可以有一个足以容纳 8MB 的 L3 高速缓存……但我是否犯了绝对错误?这与“嵌入式”Linux 有什么区别?

这就是问题所在:我们可以在 SRAM 或 L3 缓存中运行 Linux 吗?有什么更快的吗?我们的 Linux 能有多快!?

Hen*_*nes 20

Linux 或任何其他操作系统不知道 RAM 是如何工作的。只要内存控制器配置正确(例如为非 SRAM 设置刷新率),那么操作系统并不关心它是否运行在普通动态内存(普通 RAM)、快速页面模式 RAM(FP RAM,来自 C64-ish次)、扩展数据输出模式 RAM (EDO)、同步 RAM (SDRAM)、任何双倍数据速率 SDRAMS (DDR 1/2/3) 等等。

所有这些都支持从随机位置读取和写入。一切都会奏效。

现在缓存有点不同。您不必写入内容即可更改内容。那会碍事。不过还是有点用的。我知道在正确配置内存控制器之前,coreboot 在启动期间使用缓存作为一种内存。(有关详细信息,请查看 FOSDEM 2011 期间 coreboot 演讲中的视频)。

所以理论上是的,你可以使用它。

但是:对于实际任务,具有 1 GB“常规”“中速”内存的系统将比仅使用几 MB 超高速内存的系统性能要好得多。这意味着您有三个选择:

  1. 以正常的“廉价”方式构建事物。如果您需要更高的速度,请添加几十台额外的计算机(所有计算机都带有“慢速”内存)
  2. 或者以十几倍的价格构建一台计算机,而性能却明显低于十几倍。

除了在极少数情况下,最后一个是不明智的。

  • 许多 CPU 通过 CPU 的型号特定寄存器 (MSR) 支持“缓存即 RAM”模式。另请注意,SRAM 比 DRAM 消耗更多功率,这也是一个设计因素。如果 CPU 的缓存足够大或内核足够小,您可以启用这种缓存作为 RAM 模式并使其完全在 CPU 的 SRAM 中执行。但是,您将有有限数量的 RAM 来运行程序等。因为 AFAIK 缓存作为 RAM 和正常模式不会同时工作。不过,我可能是错的。即使是这样,如今 CPU 的大部分速度也是由于使用 L2、L3 缓存。 (6认同)

MSa*_*ers 8

是的,您可以,而且这实际上是自动完成的。RAM 中最常用的部分被复制到缓存中。如果您的总 RAM 使用量小于您的缓存大小(如您所想),则现有的缓存机制将复制 RAM 中的所有内容。

将缓存复制回正常 RAM 的唯一时间是 PC 进入 S3 睡眠模式时。这是必要的,因为缓存在 S3 模式下断电。