OSでマイクロコードのパッチを当てる

 OSでマイクロコードのパッチを当てる時代か。

Intel プロセッサを使用するシステムの信頼性の向上マイクロコード信頼性アップデートが入手できます。

OSやアプリケーションにバグがあるように、CPU(マイクロプロセッサー)にもバグがあります。ただ、CPUの場合にはバグとは言わずエラッタと言います。通常このエラッタの修正はCPUのマイクロコードにパッチを当てることで実現しますが、このマイクロコードへのパッチは通常BIOSからブートストラップ時にCPUが読み込んでいたのですが、それをOSブート時にもやるようになったようです。

まぁこれってちょっとすごいことなんですよ。ブートストラップ時には、余計なタスクがそれ以外には走らないので、比較的安全に修正されたパッチを読み込むことはできるのですが、OS起動時は様々なタスクが動き出すので、当然種々の命令がマイクロコードに翻訳され実行されているはずで、その途中でマイクロコードのパッチを当てるというのは下手をすればシステムクラッシュを起こしかねない訳です。ちょっと前なら確実にそうなっていたはずです。(と言うかそもそもそんなことできない)しかし、今現在のCPUで実際にそうならないのは、今のCPUがそのための支援機能を持っているからなのです。

BIOSアップデータに関してなんですが、実際にはBIOSアップデートはBIOS自体の機能追加やバグ修正だけでなく、このマイクロコードの修正も実施されているので、BIOSアップデートはできるだけやった方がいいです。

知らない人のために説明しておくと、C言語とかの言語で作られたプログラムはコンパイラによってマシン語と呼ばれるプロセッサが直接理解できる命令のデータに変換されるのだけど、もう20年ぐらいCPUはこのマシン語を直接ハードウェアレベルで理解して実行している訳ではありません。じっさいにはそのマシン語をさらにマイクロコードと言うより小さな言語に分解してからハードウェアレベルでいろいろな命令を実行しています。従って、マシン語レベルで何かの命令にエラッタが見つかったとしてもしれを回避する、修正するコードをマイクロコードで書けばこのエラッタを修正することができます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください