エラー数

エラー数

ここにノートパソコンがあるのですが、メモリモジュールに欠陥があると思われます。そこでダウンロードしましたメムテスト86+そして実行します。

スクリーンショットは私が実際に撮ったものではなく、memtest86+が提供したものです。

メモリテスト

画面上の数字をどう解釈すればいいですか? 約 4 時間実行しましたが、現在はパス 7 です。

特に、

  • テスト番号
  • エラーの数
  • ECCエラーの数

示されますか? メモリ エラーの適切な値は何ですか? どの時点でメモリの交換を検討する必要がありますか?

答え1

要約

まず最も重要な数字:正常なメモリのエラー数は0であるはずです0 より大きい数値は、セクターが破損または不良であることを示している可能性があります。


画面説明

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

データ/テストの説明

MemTestはいくつかのテストを実行し、メモリの各セクターに特定のパターンを書き込み、それを取得します。取得されたデータが元々保存されていたデータと異なる場合、MemTestはエラーを記録し、エラー数1 つ増えます。エラーは通常、RAM ストリップの不良の兆候です。

メモリは情報を保持するメモ帳ではなく、キャッシュなどの高度な機能を備えているため、いくつかの異なるテストが行​​われます。Test #示します。MemTest は、エラーが発生するかどうかを確認するためにさまざまなテストを実行します。

いくつかの(簡略化された)テスト例:

  • セクターを次の順序でテストします: A、B、C、D、E、F。(シリアル)
  • テストセクターは次の順序で行われます: A、C、E、B、D、F。(移動中)
  • すべてのセクターをパターンで埋めます: aaaaaaaa
  • すべてのセクターをランダムなパターンで塗りつぶします。

すべてのテストの詳細な説明:https://www.memtest86.com/technical.htm#詳細

テスト 0 [アドレス テスト、ウォーキング テスト、キャッシュなし]

ウォーキング ワンズ アドレス パターンを使用して、すべてのメモリ バンク内のすべてのアドレス ビットをテストします。

テスト1 [アドレステスト、自分のアドレス、シーケンシャル]

各アドレスは独自のアドレスで書き込まれ、その後一貫性がチェックされます。理論上は、以前のテストでメモリ アドレス指定の問題が検出されているはずです。このテストでは、何らかの理由で以前は検出されなかったアドレス指定エラーが検出されます。このテストは、使用可能な各 CPU で順番に実行されます。

テスト2 [アドレステスト、自分のアドレス、並列]

テスト 1 と同じですが、テストはすべての CPU を使用し、重複するアドレスを使用して並列に実行されます。

テスト 3 [移動反転、1 と 0、連続]

このテストでは、すべて 1 と 0 のパターンを持つ移動反転アルゴリズムを使用します。キャッシュは有効になっていますが、テスト アルゴリズムに多少干渉します。キャッシュを有効にすると、このテストはそれほど時間がかからず、すべての「ハード」エラーといくつかのより微妙なエラーをすばやく検出できます。このテストは簡単なチェックのみです。このテストは、使用可能な各 CPU で順番に実行されます。

テスト 4 [移動反転、1 と 0、並列]

テスト 3 と同じですが、テストはすべての CPU を使用して並列に実行されます。

テスト5 [移動反転、8ビットパット]

これはテスト 4 と同じですが、8 ビット幅の「ウォーキング」 1 と 0 のパターンを使用します。このテストでは、「ワイド」メモリ チップの微妙なエラーをより適切に検出します。

テスト6 [移動反転、ランダムパターン]

テスト 6 はテスト 4 と同じアルゴリズムを使用しますが、データ パターンは乱数とその補数です。このテストは、検出が難しいデータに敏感なエラーを見つけるのに特に効果的です。乱数シーケンスはパスごとに異なるため、複数のパスを実行すると有効性が高まります。

テスト7 [ブロック移動、64手]

このテストは、ブロック移動 (movsl) 命令を使用してメモリに負荷をかけ、Robert Redelmeier の burnBX テストに基づいています。メモリは、8 バイトごとに反転するシフト パターンで初期化されます。次に、movsl 命令を使用して 4 MB のメモリ ブロックが移動されます。移動が完了したら、データ パターンがチェックされます。データはメモリの移動が完了した後にのみチェックされるため、エラーが発生した場所を知ることはできません。報告されるアドレスは、不良パターンが見つかった場所のアドレスのみです。移動は 8 MB のメモリ セグメントに制限されるため、障害が発生したアドレスは、報告されたアドレスから常に 8 MB 未満になります。このテストのエラーは、BadRAM パターンの計算には使用されません。

テスト8 [移動反転、32ビットパット]

これは、連続するアドレスごとにデータ パターンを 1 ビット左にシフトする移動反転アルゴリズムのバリエーションです。開始ビットの位置は、パスごとに左にシフトされます。すべての可能なデータ パターンを使用するには、32 回のパスが必要です。このテストは、データに敏感なエラーを検出するのに非常に効果的ですが、実行時間が長くなります。

テスト9 [乱数列]

このテストは、一連の乱数をメモリに書き込みます。乱数のシードをリセットすることで、参照用に同じ数列を作成できます。最初のパターンがチェックされ、次のパスで補完されて再度チェックされます。ただし、移動反転テストとは異なり、書き込みとチェックは順方向にしか実行できません。

テスト 10 [モジュロ 20、1 と 0]

Modulo-X アルゴリズムを使用すると、キャッシュとバッファリングのアルゴリズムへの干渉により反転を移動しても検出されないエラーが明らかになります。テスト 1 と同様に、データ パターンには 1 と 0 のみが使用されます。

テスト11 [ビットフェードテスト、90分、2パターン]

ビット フェード テストでは、すべてのメモリをパターンで初期化し、5 分間スリープします。次に、メモリを調べて、メモリ ビットが変更されたかどうかを確認します。すべて 1 のパターンとすべて 0 のパターンが使用されます。

不良セクタは時々機能し、また別の時には機能しない可能性があるため、MemTestを数回実行することをお勧めします。合格合格した完了したテスト シリーズです。(上記のテスト シリーズ 1 ~ 11) エラーなしで合格する回数が多いほど、MemTest の実行精度が高くなります。私は通常、確実を期すために 5 回程度パスを実行します。

エラー数正常なメモリの場合は 0 である必要があります。0 より大きい数値は、破損または不良なセクターを示している可能性があります。

ECCエラー数ECCが に設定されている場合にのみ考慮する必要がありますoff。ECC は Error-correcting code memory の略で、メモリ状態内の誤ったビットを検出して修正するメカニズムです。RAID または光学メディアで実行されるパリティ チェックに少し似ています。このテクノロジは非常に高価で、サーバー セットアップでのみ使用される可能性があります。ECC カウントは、メモリの ECC メカニズムによって修正されたエラーの数をカウントします。正常な RAM に対して ECC を呼び出す必要はないため、ECC エラー カウントが 0 を超える場合もメモリが不良である可能性があります。


エラーの説明

エラーが発生した Memtest の例。どのセクター/アドレスが失敗したかを示します。

エラーのあるMemtest画面

最初の列(ツッ)はどのテストが失敗したかを示し、その番号は上ですでに述べたリストのテスト番号に対応しています。2番目の列(合格)は、そのテストがもっている合格。この例の場合、テスト 7 には合格がありません。

3列目(失敗したアドレス) は、メモリのどの部分にエラーがあるかを正確に示します。このような部分には、IP アドレスのように、そのデータ ストレージ部分に固有のアドレスがあります。どのアドレスに障害が発生したか、データ チャンクのサイズがどれくらいかを示します (例では 0.8 MB)

第4 (良い) と 5 番目 (悪い) 列には、それぞれ書き込まれたデータと取得されたデータが表示されます。障害のないメモリでは、両方の列が同じになるはずです (当然です)。

6列目(エラービット) は、障害が発生しているビットの正確な位置を示します。

第7列(カウント) は、同じアドレスと失敗したビットを持つ連続エラーの数を示します。

最後に、最後の7列目(ちゃん) は、メモリ ストリップが存在するチャネル (システムで複数のチャネルが使用されている場合) を示します。


エラーが見つかった場合

MemTestがエラーを発見した場合、どのモジュールに障害があるかを判断する最良の方法は、このスーパーユーザーの質問そして受け入れられた答えは次の通りです。

消去法を使用して、モジュールの半分を削除し、テストを再度実行します...

障害がなければ、これら 2 つのモジュールは正常であることがわかるので、脇に置いて再度テストします。

障害がある場合は、さらに半分に減らし(現在は 4 つのメモリ モジュールのうちの 1 つに減らし)、再度テストします。

ただし、1 つのテストに失敗したからといって、もう 1 つも失敗しないと想定しないでください (2 つのメモリ モジュールが失敗している可能性があります)。2 つのメモリ モジュールで失敗が検出された場合は、その後でその 2 つをそれぞれ個別にテストしてください。

重要な注意: メモリインターリーブなどの機能や、一部のマザーボードベンダーによるメモリモジュールソケットの番号付けスキームが不十分な場合、特定のアドレスがどのモジュールを表しているかを把握することが困難になることがあります。

答え2

テスト番号: memtest が現在実行している特定のテストの番号。テストは多数あります。

エラー数: 発生したメモリエラーの数

ECC エラー: ECC によって修正されたエラーの数。チップセット/メモリには ECC がないため、この数は重要ではありません。

メモリに 0 を超えるエラーがある場合は、メモリを交換する必要があります。

編集: テストは、memtest がメモリに書き込むさまざまなパターンです。さまざまなパターンをメモリに書き込み、それを読み戻してエラーをチェックし、さまざまなパターンを使用してすべてのビットのすべての状態をテストできるようにします。

このカウントは、memtest に読み戻された結果がメモリに書き込まれた結果と一致しなかった回数を示しており、テストされているメモリのチャンクにエラーがあることを示しています。

ECC は、サーバーやワークステーションのメモリ チップに組み込まれているエラー訂正テクノロジです。ほとんどのデスクトップは、ECC が組み込まれたメモリ モジュールをサポートしていません。ほぼすべてのサーバー/ワークステーションはこれをサポートしており、通常は必須です。ECC によって訂正されるエラーの数は、ECC チップが正常に修正したエラーの数です。

答え3

エラー数

テストを実行する際、いずれかのテストでメモリが失敗すると、エラーの数が増加します。正しく記憶していれば、テストに失敗したアドレスの数をカウントします。

ECC エラーの数

ECCメモリデータの破損を防ぐために使用される特殊なメモリ チップです。ECC Errs列には、ECC によって修正された問題の数が表示されます。

(ECC は遅くて高価であり、基本的には RAM を交換する手間がかからないミッションクリティカルなシステム向けです。)

テスト番号

Memtestはメモリに関する様々なテストを行います。メムテスト86ウェブサイト。簡単な英語訳として:

テスト 0: ウォーキング ワンズ アドレス テスト

00000001Memtest は最初のメモリ位置に書き込み、00000010次のメモリ位置に書き込み、というように 8 バイトごとにこのパターンを繰り返します。次に、メモリを読み取り、値が変更されていないことを確認します。(ソース

テスト 1 と 2: 自分の住所の住所テスト

Memtest は各メモリ位置に独自のアドレスを書き込み、値が変更されていないことを確認します。

テスト 1 は順次実行され、テスト 2 は並列実行 (つまり、同時実行を使用) されます。

テスト3&4移動反転テスト

本質的には、このテストはメモリに0をロードし、

  1. メモリの各位置を取得します(最初の/最下位の位置から開始)。
  2. そして、パターンの逆を書き込みます (これはビット単位の NOT であると信じていますが、それに関するドキュメントは見つかりませんでした)。

ここでの目標は、すべてのビットとその隣接ビットを「0 と 1 のあらゆる可能な組み合わせ」でテストすることです。

テスト 3 では同時実行性を使用しませんが、テスト 4 では同時実行性を使用します。

テスト5: 移動反転、8ビットパット

これは、移動反転法を再度実行しますが、今回はテスト 0 からのウォーキング 1 を 8 ビット ブロックで使用します。

テスト6: 移動反転、ランダムパターン

Memtest は、すべて 0 または 1 を連続して使用するのではなく、乱数を使用します。

テスト7: ブロック移動

これは楽しいです。パターンをメモリにロードし、4 MB のブロックで移動し、検証します。

テスト8: 移動反転、32ビットパット

テスト 5 と同じですが、代わりに 32 ビット ブロックを使用します。このテストでは、実際にすべての場所にすべての可能な 32 ビット値をロードします。

テスト9: 乱数

これは疑似乱数をメモリにロードして検証します。疑似乱数ジェネレータのすばらしいところは、それほどランダムではないことです (printf("%d", rand());シードなしで C プログラムを実行して、非常にランダムな 41 を取得したことがあるなら、私の言っていることがおわかりでしょう)。そのため、乱数シードをリセットしてジェネレータを再度実行することで検証します。

テスト 10: モジュロ-X

20 箇所ごとにパターン (すべて 0 またはすべて 1) を書き込み、他のすべての箇所に補数を書き込み、検証します。

テスト11: ビットフェードテスト

これは、RAM にすべて 1 をロードし (さらにすべて 0 をロードし)、5 分間待機して、値のいずれかが変化するかどうかを確認します。

関連情報