次のページ 前のページ 目次へ

3. 基本概念

3.1 説明を始める前に

前出の通り、まだ BadRAM は生まれて間がありません。そのため、今後大幅な変更の可能性があります。したがって、常に最新の状況をチェックし、常にこのドキュメントの最新のバージョンを使うようにしてください。

3.2 このドキュメントを理解するための必要事項

このドライバはまだ実験段階にあります。正直な話、私自身はまだ BadRAM が動作する linux ボックスをほんの3つしか知りません(しかしながら、BadRAM が全く動かないと言う話はまだ聞いたことはありません)。よって、全ての詳細な手順についてのべた膨大な標準ドキュメントを作成することは意味がありません。これらの理由から、私はこのドキュメントの読者が以下の事ができると仮定します。

(訳注:実際には、複数メモリモジュールを増設単位とするハイエンド用途マザーボードや30ピン SIMM を使ったマザーボードでは動かないケースがあるとのことです。検証はこのドキュメントが書かれた時点では主に SDRAM について述べられていますが、EDORAM を使ったものは動作するとのことです。くれぐれもご注意ください)

あなたが、これらについて知らなければこの HOWTO はあまり手助けにはならないでしょう。私ができるアドバイスは Kernel-HOWTO と TIPS-HOWTO を読むことを勧めるだけです。私の HOWTO は初心者向けではなく、初級者から専門家に向けたものです。このドキュメントを読み進むにあたってはその点に注意してください。

(訳注:

あわせてご覧ください)

3.3 不良のある RAM モジュールかどうかを知る方法

主に 2種類の症状があります −

ロックアップ

このような明確な状況に出くわしたとしたら、非常に幸運です。もしカーネルが Oops によってロックアップしたら(そして何か悪いことをした覚えがないなら ;-))、明らかにハードウエアの障害が発生しているというわけです。 しばしば、不具合は RAM モジュールに原因があります。非常に明確な以下の 症状を示します―

実行時にエラーが発生する

非常に原因を突き止めがたい、驚くほど多くの問題はメモリの問題です。当初問題のないメモリモジュールでさえ、それらが時間の経過により暖まってくると問題を発生することがあります。それらのモジュールのチップは突如過熱してしまい、あるビットの内容が壊れてしまったりします。 まだ割り当てていないメモリ領域は、それだけでは全く問題ないのですが、そのページ(=メモリ上の特定の位置のこと)がたとえばカーネルによって使われていたとしたら...何が起こるかは言うに及びませんね。ありがちな症状としては、次のものがあります。

おっと、「無秩序」の使い方について説明が必要でしたね。私にとってこういう言葉はコンピュータ科学について論じている場合には親しんでいるものではありません。何かが本当にでたらめに起こる事はあり得ません。 十分注意深く調べれば、何かが起こったり、起こらなかったりする事へのちゃんとした( 主に悪い )理由や解釈を得る事ができるものです。ですからどうか、私の「無秩序」という表現は「全くのでたらめ」という意味ではなく「まるででたらめに起こるように見える」、という風に理解してください。

3.4 理論を少しばかり

最初に少し理論について。どのように解決しているのか?

いったんは、全てのデータが通常どおりに RAM に格納されたとしても、一つ以上の RAM モジュールが壊れていたとしたら、システム自体に害が及びます。次のような状況を想像してください。 メモリ内には非常に優秀なプログラムが格納されていますが、あなたの気付かないうちに、メモリ上のバイトが勝手に入れ替わっていきます。 CPU はデータを読み込んでゆき、まさにその地点に来たとき、データを全く異なって解釈します。その場合、起こりうることとして、プログラムが期待した動作をしないか、もしくはクラッシュしてしまうでしょう。

それではどうやって解決するのか。それには二つの解決方法があります。

通常は、最初の方法を採ることでしょう。が、近所の取り扱い店では結構高額を支払うことになるでしょう。これらの100% 保証のメモリを確実に作る方法がなく、製造者は 60% 程度のロスを伴うために非常に高価なのです。いわば、彼らはたくさんの不良モジュールを捨てているのですから。

BadRAM システムの着眼点は先に述べた2番目の解決策です。Linux カーネルのブート過程で、システムは指定された RAM 領域を使わないものとしてロックしてしまいます。 そうすることにより、カーネルはこのメモリを決して使わなくなり、この手の不良なメモリによってシステムが問題を生じないようにすることができます。メモリを割り当てる際には、この問題のある場所はただ単にとばされるだけです。

3.5 表記規則について

理解を助けるために、次のような表現を取りたいと思います −

もし、これらの用語に関して興味がおありなら、BadRAM-4096 仕様書を前出の私のページからダウンロードして見てください。

3.6 必要なファイル

注意 - BadRAMパッチは現在 i386 プロセッサでのみ動作します! Alpha/Macs などで動くものはまだサポートされていません。もし、これらのマシン上でのテストができるなら、 Rick までご連絡ください。

さあ、やってみよう

次のファイルをインターネットから取ってくる必要があります。

たくさんエラーがでそうだと思われているときは、memtest で表示される膨大なエラーにうんざりすることでしょう。そういうときのために、私はこの作業を大幅にスピードアップするパッチを作成しました。 http://webrum.uni-mannheim.de/math/schmoigl/linux から、memtest86-patch を入手してみてください。


次のページ 前のページ 目次へ