萌えハッカーニュースリーダー

2025/03/31 18:35 Notes on the Pentium's Microcode Circuitry

hakase
博士

ロボ子、今日はPentiumプロセッサのマイクロコードROMについて話すのじゃ。

roboko
ロボ子

マイクロコードROMですか。なんだか難しそうですね。

hakase
博士

難しくないぞ!Pentiumは、機械命令を実行するために、マイクロコードROMに格納されたマイクロコードを使うのじゃ。これは、もっと単純なマイクロ命令を内部的に実行する仕組みのことだぞ。

roboko
ロボ子

なるほど。マイクロコードROMは、命令をより細かく分割して実行するためのものなのですね。

hakase
博士

その通り!マイクロコードROMは、2つの長方形のバンクで構成されていて、それぞれが45ビットの出力を提供するのじゃ。合わせて90ビット長のマイクロ命令を実装しているんだぞ。

roboko
ロボ子

90ビットですか!かなり大きいですね。

hakase
博士

そうじゃな。各バンクは、トランジスタのグリッドでできていて、マイクロコードROM全体で4608個のマイクロ命令、414,720ビットを保持しているのじゃ。

roboko
ロボ子

414,720ビット!想像もできない大きさです。

hakase
博士

じゃろ?そして、ROMの90本の出力線は、チップのさまざまな部分に伝わり、チップの回路を制御するのじゃ。

roboko
ロボ子

まるで神経細胞みたいですね。一つの命令が、チップ全体の動作をコントロールするんですね。

hakase
博士

その通り!Pentiumのマイクロ命令は90ビットと多いから、水平マイクロコードアーキテクチャを採用していると考えられるのじゃ。

roboko
ロボ子

水平マイクロコードアーキテクチャですか。それはどういう意味ですか?

hakase
博士

水平マイクロコードは、各ビットが直接ハードウェアの制御信号に対応しているのじゃ。つまり、たくさんの制御信号を同時に出せるから、複雑な処理を効率的に行えるのじゃ。

roboko
ロボ子

なるほど、並列処理が得意なのですね。

hakase
博士

そういうことじゃ!ビットは、グリッド内のトランジスタのパターンによってROMに格納されていて、トランジスタの有無が0または1ビットを格納するのじゃ。

roboko
ロボ子

トランジスタの配置で情報を記録するんですね。原始的ですが、確実な方法ですね。

hakase
博士

そして、マイクロコードアドレスレジスタ(MAR)は、マイクロ命令のアドレスを保持する13ビットのレジスタで、マイクロコードROMの上に配置されているのじゃ。

roboko
ロボ子

MARがアドレスを指定して、ROMから命令を読み出すんですね。

hakase
博士

その通り!MARからの出力は、マイクロコードROM内の行と列を選択し、マイクロコードアドレスはROMから提供されるワードを制御するのじゃ。

roboko
ロボ子

アドレスに基づいて、特定のマイクロ命令が選択されるんですね。

hakase
博士

ROMの各バンクには288行のトランジスタがあって、マイクロアドレスに基づいてこれらの行選択線の1つをアクティブにする回路がROMの右側にあるのじゃ。

roboko
ロボ子

288行もあるんですね。すごい。

hakase
博士

さらに、Pentiumは8行のグループごとに1つの6入力ANDゲートを使用する最適化された実装を使っているのじゃ。

roboko
ロボ子

最適化されているんですね。効率が良いですね。

hakase
博士

マイクロコード出力ビットの16列から1列を選択するマルチプレクサ回路もあるのじゃ。最初の段階には4つの4対1マルチプレクサがあり、次に別の4対1マルチプレクサが出力の1つを選択するのじゃ。

roboko
ロボ子

マルチプレクサで出力を選択するんですね。複雑な回路ですね。

hakase
博士

最後に、BiCMOSドライバが出力を増幅してプロセッサの残りの部分に送信するのじゃ。

roboko
ロボ子

BiCMOSドライバで信号を強化するんですね。

hakase
博士

そして、Pentiumには、テストを容易にするための回路が追加されているのじゃ。プロセッサ内のROMをテストするために、IntelはROM全体をスキャンしてその内容のチェックサムを計算する回路を追加したのじゃ。

roboko
ロボ子

テスト回路まで組み込まれているんですね。信頼性を高めるための工夫ですね。

hakase
博士

そうじゃ!疑似乱数ジェネレータが各アドレスを通過し、別の回路がROM出力のチェックサムを計算して「署名」ワードを形成するのじゃ。

roboko
ロボ子

疑似乱数ジェネレータまで使うとは、徹底的ですね。

hakase
博士

どうじゃ、ロボ子。PentiumのマイクロコードROM、奥が深いじゃろ?

roboko
ロボ子

はい、博士。とても勉強になりました!まるで迷路のような構造ですね。

hakase
博士

迷路といえば、ロボ子の部屋もいつも迷路みたいになっているのじゃ…

roboko
ロボ子

それは言わない約束でしょう!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search