第六十八話:バレルシフタ
レジスタを十六本に削る。
そう決めてから数時間が経った。
その決断をもってしても、ホワイトボードの上の「三十二ビットの枠」は、なおも削りきれなかった。
関根が、乾いた声で言った。
「……これ以上は、削れません」
西村も、険しい表情で腕を組む。
「即値も、オペコードも限界だ。どこかを残せば、どこかが死ぬ。バランスとしては、ここがデッドラインだ。」
沈黙。
高村がホワイトボードを睨みつける。
「なら――何を捨てる」
誰も答えられない。
夕焼けの会議室に、エンジニアたちの疲弊と焦燥が満ちていく。窓から差し込む赤い光が、行き詰まった設計図を冷酷に照らしていた。
その時、黙ったまま計算を続けていた小林が、ペン先を止めた。
「捨てねえよ」
一歩、前に出る。
「減らすのは“命令の数”だ」
視線が集まる。
小林はホワイトボードの一角、演算器(ALU)の前段を指で叩いた。
「一回でやれる仕事を増やせば、命令そのものが減る。……シフタだ。さっきの案を載せる」
大門が即座に反応した。
「面積を食うと言ったはずだ。それに、ビットの空きはもうどこにもない。シフタを制御するコードをどこにねじ込むつもりだ」
「ここだ」
小林は即答し、レジスタ指定の枠を指差した。
「レジスタを削って、三本の指定で合計三ビット浮いた。……関根、お前はそれを即値の拡張に回そうとして、結局、計算が合わなくなったんだろ?」
関根がハッとして顔を上げた。
「その三ビットを、即値には使わねえ」
小林は力強くマーカーを走らせた。
「シフタの制御専用に全振りする。全ビット対応のバレルシフタは諦めて、機能をアドレス計算に必要な範囲だけに絞り込む。三ビットもあれば、主要なシフトは指定できる」
ホワイトボードに短く、力強い線が書き足される。
「演算命令の中にシフタを組み込むんだ。演算とシフトを同時に一サイクルで回す。そうすれば、独立したシフト命令そのものが消える。アドレス計算が縮む。ループも短くなる。……ビットの余裕はねえ。だが、命令の数ならこれで削れる」
静寂。
関根が即座に頭の中で再計算を始めた。
「……即値の幅を広げるより、シフト命令を演算に統合する方が、トータルでのコード効率は……上がる」
だが、大門はまだ動かない。
「……遅延はどうする。シフタを前に置けば、クロックが落ちるぞ」
一瞬の静寂。
小林は、そこで初めて不敵に笑った。
「だから機能を絞るんだよ。大門、お前の設計なら、この程度の追加遅延、飲み込めるだろ?」
大門は数秒間、ボードを凝視した。
やがて、短く息を吐いた。
「……わかった。その代わり、クロックが落ちたら即座に切り捨てるぞ」
「へっ、上等だ」
小林がニヤリと笑う。
現場のプロ同士が、ギリギリの妥協点で握り合った瞬間だった。
設計の骨格が、ついに固まった。
それは、この時代の既存のCPUとは違う、速さのためだけに研ぎ澄まされた独自の形だった。




