ログイン
検索
メインメニュー
ブログ一覧
murataさんのエントリ  murataさんのエントリ配信

2006/05/15
自作PCや組込開発と見える化

執筆者: murata (2:10 pm)
自作PCを作っていて最も陥りやすいトラブルが、マザーボードとメモリの相性だったりします。組み立てて、Windows XPをインストールして、オンライン認証を済ませて、さあ、アプリケーションを使ってみようという段になって初めて、マシンの動作が不安定な事に気がついて、首を捻る事があるのですが、たいていはメモリエラーが原因だったりします。(ちなみに、Windows2000までは再起動後にオンラインで"RAMのエラー"だと指摘されるのですが、WindowsXPだと、"デバイスドライバのエラー"などとより具体的に指摘されてしまうので、却って混乱してしまいます。)


この様な事の無い様に、自作PCを作る際には、組み立てに先立って、マザーボードとメモリの相性を調べておいた方が良いのです。私の場合は、マザーボードをケースに仮留めして、CPUとヒートシンク、フロッピーディスクドライブ、(マザーボードにオンボードビデオがついていない場合はビデオカード)、そしてメモリを取り付けた状態でモニタとキーボードに繋ぎ、memtest-86という診断ソフトをフロッピーからブートします。

少々時間はかかりますが、メモリそのものの不良、もしくはメモリとマザーボードの相性に起因するエラーがあれば、それを可視化する事ができます。メモリを買ったパーツ屋さんが不良や相性での交換に応じてくれる場合は、この段階で問題のないものに交換する事もできます。(お財布にもやさしいですね。)経験上、インテルチップセットのマザーボードは多くの種類のメモリと相性が良い様です。また、経験上、多くの種類のマザーボードと相性が良いのはSamsung製のメモリなのですが、インテルチップセットのマザーボードとSamsungのメモリの組み合わせで不具合が出る場合もあるので、どのメーカーや組み合わせが良いかについては、敢えて書きません。

なお、memtest-86で可視化できるのは、エラーの有無だけではなく、メモリやCPUキャッシュの転送速度、CPUの動作周波数等なので、Dual Channelに対応したマザーボードが真価を発揮しているかとか、CPUがスペック通りに認識されているかをチェックする事もできます。


組込開発においても、こうした見える化を行わないと仕事にならないケースがあります。私は以前に某家電メーカーで無線通信の組込ソフトウェアを開発していたのですが、通信がうまくいっているかどうかや予定した速度で行われているかをチェックする為にはデバッガを使ってトレースしながら確認する訳にはいきません。(通信相手は待ってくれませんから!)

そこで、通信をしている両方の端末の間に、オブザーバーとなる端末を設置して、両者の通信のログをとり、そのログを視覚化するわけです。(その某家電メーカーがその種類の通信プロトコルの提案者でもあったので、私は便利なオブザーバーソフトウェアを利用できたわけですが。)

こうした工夫によって、通信の相手によっては1msを争うようなシビアな状況を把握して、対処する事が可能になるわけです。これも相性問題ですね。同じプロトコルに従っているからと言って、必ずしも良好に通信できるとは限らないのは、プロトコルの細かな解釈が異なっていたり、他社の(時には自社の)全ての実機を相手に通信テストを行ったりしないからなのです。こういう調整は、やり出せばきりがないのですけど。

余談になりますが、暗号化を行わない無線LANが如何に危険なのかも、この事から判りますね?

さて、私はハードウェアの専門家ではないので、憶測になってしまいますが、おそらくは、マザーボードとメモリの相性問題も、似たようなタイミングの問題、それも1μsを争うような問題なんでしょうね。もっと専門的な機材を使って、見える化をしている事になります。信頼されているメモリやマザーボードのメーカー程、沢山の組み合わせでテストをしながら開発しているけど、そうでないメーカー程、手を抜いてしまっているというか、「規格どおりに作ったから良いだろう」って態度になってしまっているというか、そんな感じなのではないかと思います。
murataさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (5627)
このエントリのトラックバックURL
http://astah-users.change-vision.com/ja/modules/weblog/weblog-tb.php?18
印刷用ページ 友達に送る