解説 メモリ診断ツールの有効性を確認する――IT管理者にとって必携のツールか?―― 2. 「R.S.T.」に見るメモリ診断ツールの実体 デジタルアドバンテージ |
本稿で取り上げるメモリ診断ツール「R.S.T.(Ram Stress Test)」は、ウルトラエックス(Ultra-X)が販売している各種テスト・ツールの1つだ(製品情報ページ)。同社の製品ラインアップを見ると、PCやその関連機器の設計・製造に携わるプロフェッショナル向け製品が多いが、R.S.T.の価格は1万2000円と比較的安価であり、また後述するように使い方も簡単なので、エンド・ユーザー向けの製品であることがうかがえる。
独自のOSの上でテスト・プログラムを実行
R.S.T.の特徴は、Windowsなどの既存OSを利用せず、ごく小さな独自OSからブートして、その上でメモリ・テスト・プログラムを実行することだ。そのメリットは、メモリのほとんど全領域をテストできることと、メモリに対して高い負荷(ストレス)をかけたテストを実行できることの2点である。これは、WindowsなどのOS上で動作するメモリ・テスト・プログラムと比べると、そのメリットが理解できる。OS上で動作するメモリ診断ツールは基本的にそのOSのアプリケーションとして扱われる。アプリケーションは、OSからあてがわれたメモリを利用できるが、OS自身が常駐していたりワークエリアとして利用していたりするメモリ領域にはアクセスできない。システムを維持するため、OSがそれらの領域を保護しているからだ。つまり、OSが使用中のメモリ領域はテストできないことになる。
またOS上で動作するメモリ診断ツールは、メモリに高い負荷をかけてテストすることが難しい。これはWindowsなどのマルチタスクOSでは、単一のアプリケーションが長時間占有的にメモリをアクセスする、ということを許さないことが影響している。こうしたOSでは、一見すると実行中のアプリケーションはメモリ・テスト・プログラムのみという状況でも、その裏では各種のタスクが動作している。タスク・スイッチや割り込みなどが発生するとメモリ診断ツール以外のプログラムに制御が移ってしまい、再び制御が戻ってくるまでテストが中断してしまう。そのため、連続して高い頻度でメモリをアクセスするといった高負荷のテストは実現できない。
一方、R.S.T.のようにメモリ・テストのプログラムだけではなくOSまで独自設計していると、プログラムのコードやワークエリアを自由に配置できるから、メモリ全域をテストすることも可能だ。また、高負荷のテストのために、ほとんどの割り込みを禁止してメモリ・テストのプログラムだけを実行し続ける、という制御もできるはずだ。
使い方は単純
R.S.T.の使い方は極めてシンプルだ。インタラクティブに操作してテストを実行するなら、製品に含まれるブート・フロッピーのライト・プロテクトをオンにして、そのフロッピーディスクでPCを起動するだけだ。これで自動的にテスト・プログラムが起動され、メニュー画面が表示される。
最初に表示されるメニュー画面 (拡大表示:6Kbytes) |
通常は「Extended RAM Test」を選べばよい。これでほぼメモリ全域をテストできる。「Base RAM Test」はコンベンショナル・メモリ(先頭の640Kbytes)を、また「L2 Cache RAM Test」は2次キャッシュ・メモリのサイズだけをそれぞれテスト対象とするものだ。 |
通常、ここで選択するのは、ほぼメモリの全領域をテストする「Extended RAM Test」だ。次に表示される画面にて[Enter]キーを押せば、すぐにテストが始まる。単純に1回だけテストを実行するなら手順はこれだけで、あとはテスト終了を待つだけだ。なお、フロッピーディスクのライト・プロテクトをオフにしてブートし、各種設定を変更して保存すると、次回の起動からはインタラクティブな操作なしで、設定したとおりにテストがバッチ実行される。
テスト中に表示される画面 (拡大表示:14Kbytes) | |||||||||
記述はすべて英語だが、操作すべき項目が少ないため、英語でも悩むことはないだろう。 | |||||||||
|
複数のメモリ・テスト・アルゴリズムを用意
メモリ・エラーの中には、ある特定のデータあるいはアクセスのパターンでのみ発現するというものもある。そのためメモリ診断ツールは、1種類ではなく複数のアルゴリズムでメモリをテストする機能を備えている。R.S.T.も下記のようなアルゴリズムでテストできる。なお、上位版のR.S.T. PROは、さらに多くのアルゴリズムのテスト・プログラムを備えている。
テスト項目 | テスト内容の概要 |
Data Bus | メモリ・チップにつながっているデータ転送用バス信号線(データ・バス)をテスト |
Address Line | 意図していない間違ったアドレスが読み書きされていないかをテスト |
Refresh、Slow Refresh | DRAMのデータ記憶を保持するための「リフレッシュ」が正常に機能しているかをテスト |
Stuck Fault | 0を書いても1のままのbitがないかをテスト |
Stuck Low | 1を書いても0のままのbitがないかをテスト |
Snake On、Snake Off | 「Snake」と呼ばれるbitパターンを使用したテスト |
Jump | 仮想記憶によるメモリ・スワップの際に、メモリ・サブシステムにかかる負荷を想定したテスト。アドレスが大きく離れている領域間を交互にアクセスしながら0または1を書き込み、エラーがないかをテスト |
Pseudo Random | 擬似的なランダム・パターンの読み書きテスト。ファームウェアを格納したフラッシュメモリの内容をランダム・パターンに見立て、これをメモリにコピーしてエラーがないかをテスト |
Parity | メモリ・サブシステムのパリティ生成回路やパリティ用bitをテスト |
Walk Left、Inv Walk Left | メモリ全域にわたって、 LSBからMSBへ1または0を移動させていくようにデータを書き込み、エラーがないかをテスト |
Walk Right、Inv Walk Right | メモリ全域にわたって、 MSBからLSBへ1または0を移動させていくようにデータを書き込み、エラーがないかをテスト(Walk Left、Inv Walk Leftの逆パターン) |
Checker Brd | 全メモリに1010……または0101……というパターンのデータを書き込み、エラーがないかをテスト |
ATS | 特定のbitパターンによるテスト |
MATS+ | メモリの各ビットを0→1または1→0と反転していくテスト |
Marching C | 全ビットを0→1→0という順番で書き込み、エラーがないかをテスト |
Block Move | メモリ上のまとまった領域を別の領域に正しくコピーできるかをテスト |
R.S.T.が備える主なメモリ・テストのアルゴリズム | |
上記はウルトラエックスが公表している情報からの抜粋である。Windowsなど現代のOSが一般的に行うメモリ・スワップを想定したテストも組み込まれている。 |
テストにかかる時間はメモリ256Mbytesで6分〜12分程度
もちろんアルゴリズムの数を増やすほど、テストにかかる時間も長くなる。また、PCのプロセッサ/メモリ性能やメモリ容量などにも、テスト時間は大きく左右される。そこで、筆者が使用しているいくつかのPCでR.S.T.の標準テストを実行したときの経過時間を計測してみた。
PC1 | PC2 | PC3 | PC4 | ||
プロセッサ | Pentium III-800EB MHz | Pentium III-1B GHz | Celeron-1.70GHz | Pentium 4-1.90GHz | |
メモリ容量 | 256Mbytes | 512Mbytes | 512Mbytes | 256Mbytes | 512Mbytes |
メモリの種類 | PC133 SDRAM | PC2100 DDR SDRAM | PC800 RDRAM(デュアル) | ||
最大メモリ帯域幅(理論値) | 1.06Gbytes/s | 2.13Gbytes/s | 3.2Gbytes/s | ||
テストにかかった時間 | 11分52秒 | 22分52秒 | 23分36秒 | 6分20秒 | 10分15秒 |
R.S.T.のメモリ・テスト完了までにかかる時間 | |||||
筆者が使用している4台のPCで、メモリ容量などを変えながら計測してみた。PC1の結果を見ると、経過時間はメモリ容量にほぼ比例していることが分かる。またPC2とPC3を比べると、プロセッサの性能が経過時間に大きな影響を与えていることもうかがえる。 |
メイン・メモリの容量が512Mbytesと大きくなってくると、10〜20分以上と時間がかかることが分かる。これは繰り返し回数1回だけの場合の結果なので、何回も連続してテストする場合には、さらに長い時間がかかることに注意したい。
発現しにくいエラーも事前にテストして確認できるのがメリット
さて今回は幸か不幸か、筆者がテストしたPCで記事に都合良くメモリ・エラーが発生してしまった。上記表のPC2とPC3の環境にて、ある特定のDDR SDRAM DIMM(安価なバルク品)を装着してテストを実行すると、ビープ音が鳴り響くとともに、不良を表す赤い「D」というマークが表示されてしまう。PC2とPC3のどちらでも、ある特定の領域で単一のbitがエラーになること、R.S.T.のアルゴリズムの1つ「Walk Left」でのエラーが100%再現することから、DIMM上のメモリ・チップの1つで、ある特定のアドレスに恒久的なエラーが存在することが推測される。
メモリ・エラーが検出されたときのR.S.T.の表示 (拡大表示:47Kbytes) |
通緑色の枠内にある「D」のマークが、エラーの発生した個所を表している(「D」は「Dead」の意味か?)。このPCの場合、168M〜192Mbytesの範囲でLSBから46bit目に、何らかの不良が生じていることが、この表示から分かる。これ以上の詳しい情報を得るには、プリンタをテスト対象のPCに直接つないでレポートを印刷しなければならないため、少々面倒だ。 |
このDIMMをPC3に装着して起動しても、まずPOST時のメモリ・テストは難なくパスしてしまう(Quick Testを無効にし、1〜2分ほどPOST時のメモリ・テストに時間をかけた場合でも)。インストールしてあったWindows 2000 Professionalも、エラーなしで(見かけ上は)正常に起動した。さらに、OS上で各種ベンチマーク・テストを実行して負荷をかけてみたが、ハングアップなどの問題は生じなかった。前述のようにこのDIMMのエラーは、ある特定のアドレスのある特定のbitにて、特定の書き込みパターンを実行したときにだけ生じるという確率の低いものなので、なかなか発現しないのだろう。
とはいえ、このままPCを使い続けていれば、このメモリ・エラーによってコードやデータが書き変わってしまう可能性は残る。その結果PCがハングアップしたり、最悪の場合はデータが損失したりすることもあり得るわけだ。そして、これだけ発現しにくい以上、たとえこうした症状に気付いても、R.S.T.のようなメモリ診断ツールがなければ、メモリ・エラーが原因だとは容易に判断できないだろう。
ビジネス用途ならハードウェアを診断するツールは用意しておきたい
上記のメモリ・エラーは、出荷時のテストが甘かったと思われる安物のメモリが原因だったが、だからといって純正オプションやサードパーティ製のテスト済みメモリが絶対安全とは言い切れない。1つには、メモリ・チップやメモリ・モジュールにも経年変化による故障の可能性はあるからだ。そもそも、ホワイトボックスなど大手ベンダ製PC以外の場合は、純正オプションなどは存在しないという問題もある。
メモリ・エラーの確認だけに使えるソフトウェアに対して1万2000円という金額が対価として妥当かどうかは、意見の分かれるところかもしれない。しかしメモリ・エラーが発生した場合、トラブル・シューティングに割く時間までコストに含めると、決して高くないのでは、というのが筆者の意見である。特に企業内のPCやサーバを管理しているならば、その一環として、メモリ診断ツールのようなテスト・ツールも用意するのは考慮に値することだろう。
関連リンク | |
メモリ診断ツール「R.S.T.」の製品情報ページ |
INDEX | ||
メモリ診断ツールの有効性を確認する | ||
1.なぜメモリ・エラーは生じるのか? | ||
2.「R.S.T.」に見るメモリ診断ツールの実体 | ||
「System Insiderの解説」 |
- Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう - 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は? - IoT実用化への号砲は鳴った (2017/4/27)
スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか? - スパコンの新しい潮流は人工知能にあり? (2017/3/29)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|