web-dev-qa-db-ja.com

Memtest86はRAMが不良の場合どのように機能しますか?

Memtestに関する別の質問を読んでいて、疑問に思い始めました。Memtest86はRAMが不良の場合、どのように機能するのでしょうか。

考えてみてください。Memtest86は、RAMの大きさ、後で比較するためにRAMに入れるもの、画面を更新する場所、およびより多くの情報。変数を使用するには、RAMが正しく機能する必要があります。しかし、欠陥のある可能性のあるRAMでプログラムを実行するときに、信頼できる結果を得るにはどうすればよいでしょうか。

これに類似しているのは、チェックするハードドライブからハードドライブチェックプログラムを実行することです。あなたは決してそれをしません、悪いブロックは多くの予期しない方法でプログラムに影響を与える可能性があります

Memtest86はRAMが不良の場合どのように機能しますか?

17
TheLQ

主な理由は、memtestをロードするのに必要なRAMの量が非常に少ないためです。プログラムが実行されている場合は、この1つの領域のメモリに問題がない可能性があります。

そのチャンス-

  1. Memtestがロードされたメモリの小さなセクションが不良です。
  2. それでも、目立った問題なしにすべてのテストを正常に完了することができたので十分でした。

-非常に可能性が低いです。

9
user606723

Memtestは、テスト中のRAMに実際には依存しないという点で、非常に耐久性があります。

たとえば、テスト0は ウォーキングのもの アルゴリズムを使用し、2つの連続するメモリアドレスのみを比較するため、そのテストに必要なのは単一のポインタ(おそらくキャッシュされる)だけです。

したがって、3ビットのRAMスティックがある場合、memtestはこれをロードします:

<pointer location> 00000001 00000010 00000100 00001000 00010000 00100000 01000000

また、最初のアドレスが破損している場合は、2つのランダムな場所を比較します。

00000001 00100000

また、memtestの変数が破損している場合でも、失敗します。

7
digitxp

Memtestは、少なくともそれ自体がロードされているメモリが良好であるという少なくとも1つの仮定を絶対に行わなければなりません。その後、残りのメモリ全体をスキャンしてテストすることができます。

ロードされた唯一のプログラムであるため、システム上の実質的にすべてのメモリにアクセスできる必要があり、そのメモリを読み取って比較できるため、それ自体のメモリのエラーを読み取って検出できる可能性があります。 「既知の良い」サンプル。

3
Mokubai

小さいことによって。一部のRAMが不良である場合、プログラムが小さいほど、プログラムの一部が不良箇所の1つにある可能性は低くなります。メモリをロードするのに十分な距離で起動することを考慮してください。テストにはRAMを使用するファームウェアコードが含まれますが、そこまで到達できれば、RAMの低い領域は十分に機能しているため、memtestはそれらから実行できます。

1
wrosecrans

考えてみてください。Memtest86は、RAMの大きさ、後で比較するためにRAMに入れるもの、画面を更新する場所、およびより多くの情報。変数を使用するには、RAMが正しく機能する必要があります。しかし、欠陥のある可能性のあるRAMでプログラムを実行すると、信頼できる結果を得るにはどうすればよいでしょうか。

さて、これはMemtestが行うことです-それはあなたのRAMに様々な(既知の)パターンを書き込み、それを読み戻し、そして比較します。不一致がある場合は、RAMを破損する必要があります。

これに類似しているのは、チェックするハードドライブからハードドライブチェックプログラムを実行することです。あなたは決してそれをしません、悪いブロックは多くの予期しない方法でプログラムに影響を与える可能性があります

これは事実ですが、選択の余地がない場合もあります。プログラムを正常にロードできる限り、プログラムは診断タスクを実行できるはずです(何らかの障害のあるメディアで実行されている場合でも)。

Memtest86はRAMが不良の場合どのように機能しますか?

さて、それは最初にそれ自身をメモリにロードしなければなりません。ほとんどの場合、このメモリは引き続き良好です。 notの場合、Memtestは、いくつかのインプレース変数をチェックサムと比較することにより、プログラム自体が破損していると判断する可能性があります。それらが一致しない場合は、RAMが不良であるか、ダウンロードしたコピーが破損していることがすぐにわかります(後者かどうかを判断するのは簡単な作業です)。原因かどうか)。


TL、DR:Memtest86 +は、RAMがまだ正常である(RAM $ ===がロードされる可能性が最も高い場所)と仮定してのみ機能します。この領域が破損していると仮定すると、Memtest86 +自体は単に機能しません。 (これは、テストを実行していなくてもRAMが悪いことを示す非常に簡単な指標です)。

1
Breakthrough

RAMアプリケーションが変数を保存しているのが悪い場合、ほとんどのテストは失敗します。

アルゴリズムは、あらゆる種類の異なるパターンを書き込み、それらを再度読み取ることによって、それらが適切に書き込まれているかどうかを確認します。書き込みまたは読み取りが正しく行われなかった場合、問題のテストは失敗します。ほとんどのテストを実行して数時間実行することで、RAMがどれほど安定しているかを確認できます...

0
Thomas Hunter