第六十七話:命令の形
全員が立ったまま、ホワイトボードに書かれている「32ビットの枠」を凝視している。
高村がマーカーを走らせた。
「……命令フォーマットからいく」
四角い枠が、いくつかに分割される。
「三十二ビット固定長でいく以上、ここにすべてを押し込むことになる。オペコード、レジスタ指定、即値――これをどう割り当てるかで、すべてが決まる」
関根が一歩前に出た。
「レジスタを三十二本にするなら、一本の指定に五ビット必要です」
「演算命令はソースが二つ、書き込み先が一つ。三つ指定すれば、それだけで十五ビットが消えます」
西村が低く、計算結果を叩きつけるように言った。
「残りは十七ビット。ここからオペコードを引けば、即値に回せるのは十ビットそこらだ。……余裕は、どこにもないな」
小林が腕を組み、ホワイトボードを睨みつける。
「命令を増やせばオペコードが足りなくなる。かといって即値を広く取れば、今度はレジスタが苦しくなる。……どこかを削るしかねえ」
沈黙。
忠夫が一歩前に出た。
「なら――形式を分けるのはどうですか?」
ホワイトボードの枠に、一本の線を引く。
視線が集まる。
「レジスタ同士で演算する命令と、即値を使う命令を分ける。無理に一つに詰め込まなければ、無駄なビットを減らせます」
関根がすぐに頷いた。
「……確かに。即値を使わない命令なら、その分を他に回せる」
西村が続く。
「デコードも単純になるな。命令の先頭を見れば、残りをどう扱うか決められる。回路が迷わない」
小林がホワイトボードを見ながら低く呟いた。
「……だが余白は、まだ足りねえな」
沈黙。
高村が振り返った。
「なら、優先順位を決める。――速さか、柔軟性か」
誰もすぐには答えなかった。
「柔軟性」を選べば、命令一つで複雑な処理ができる「気が利くチップ」になるが、回路は複雑になり、動作は重くなる。
「速さ」を選べば、命令は単純になるが、その分だけ猛烈なスピードで高回転させることができる。
やがて――。
忠夫が口を開いた。
「速さです」
一拍。
「CPUがどれだけ速くても、データ待ちで止まれば意味がない」
静かに、だが迷いのない断言だった。
中途半端に賢いエリートを作るより、弾丸のように速い最速のマシンを作る。その決断に、高村はわずかに頷いた。
「なら、決まりだ」
マーカーが走る。
三十二本を前提にした枠が削られ、線が引き直される。
案が、仕様に変わっていく。
「……レジスタは十六本だ」
誰も異論はなかった。
高村はペンを止めずに言う。
「次に進む」
ホワイトボードの別の場所に、新しい枠が引かれる。
そこから先は、もう試行ではなかった。
設計が、動き出していた。




