Memtest86 如何在内存不足的情况下运行?

The*_*eLQ 17 memtest memtest86+

我正在阅读另一个关于 Memtest 的问题并开始想:Memtest86 如何在 RAM 坏的情况下运行?

想一想:Memtest86 需要存储有关 RAM 有多大的信息,它在 RAM 中放了什么供以后比较,在哪里更新屏幕,以及更多信息。使用变量的行为需要 RAM 正常运行。但是,当您在可能有缺陷的 RAM 上运行程序时,您如何获得可靠的结果?

与此类似的是从您检查的硬盘驱动器运行硬盘驱动器检查程序。你永远不会那样做,坏块可能会以许多意想不到的方式影响程序

Memtest86 如何在内存不足的情况下运行?

use*_*723 9

主要是因为加载 memtest 所需的 ram 量非常小。如果程序运行了,很可能这一区域的内存是没问题的。

有机会——

  1. 加载的内存 memtest 的一小部分是坏的。
  2. 它仍然足够好,能够成功完成所有测试而没有明显问题。

极不可能。


dig*_*txp 7

Memtest 非常耐用,因为它并不真正依赖于它正在测试的 RAM。

例如,测试 0 使用步行算法,该测试只需要一个指针(可能缓存),因为它只比较两个连续的内存地址。

因此,如果我们有一个 3 位 RAM 棒,memtest 会加载它:

<pointer location> 00000001 00000010 00000100 00001000 00010000 00100000 01000000
Run Code Online (Sandbox Code Playgroud)

如果第一个地址损坏,它将比较两个随机位置:

00000001 00100000
Run Code Online (Sandbox Code Playgroud)

即使 memtest 的变量已损坏,它仍然会失败。