軽量なろうリーダー

作品タイトル不明

第六十八話:バレルシフタ

レジスタを十六本に削る。

そう決めてから数時間が経った。

その決断をもってしても、ホワイトボードの上の「三十二ビットの枠」は、なおも削りきれなかった。

関根が、乾いた声で言った。

「……これ以上は、削れません」

西村も、険しい表情で腕を組む。

「即値も、オペコードも限界だ。どこかを残せば、どこかが死ぬ。バランスとしては、ここがデッドラインだ。」

沈黙。

高村がホワイトボードを睨みつける。

「なら――何を捨てる」

誰も答えられない。

夕焼けの会議室に、エンジニアたちの疲弊と焦燥が満ちていく。窓から差し込む赤い光が、行き詰まった設計図を冷酷に照らしていた。

その時、黙ったまま計算を続けていた小林が、ペン先を止めた。

「捨てねえよ」

一歩、前に出る。

「減らすのは“命令の数”だ」

視線が集まる。

小林はホワイトボードの一角、演算器(ALU)の前段を指で叩いた。

「一回でやれる仕事を増やせば、命令そのものが減る。……シフタだ。さっきの案を載せる」

大門が即座に反応した。

「面積を食うと言ったはずだ。それに、ビットの空きはもうどこにもない。シフタを制御するコードをどこにねじ込むつもりだ」

「ここだ」

小林は即答し、レジスタ指定の枠を指差した。

「レジスタを削って、三本の指定で合計三ビット浮いた。……関根、お前はそれを即値の拡張に回そうとして、結局、計算が合わなくなったんだろ?」

関根がハッとして顔を上げた。

「その三ビットを、即値には使わねえ」

小林は力強くマーカーを走らせた。

「シフタの制御専用に全振りする。全ビット対応のバレルシフタは諦めて、機能をアドレス計算に必要な範囲だけに絞り込む。三ビットもあれば、主要なシフトは指定できる」

ホワイトボードに短く、力強い線が書き足される。

「演算命令の中にシフタを組み込むんだ。演算とシフトを同時に一サイクルで回す。そうすれば、独立したシフト命令そのものが消える。アドレス計算が縮む。ループも短くなる。……ビットの余裕はねえ。だが、命令の数ならこれで削れる」

静寂。

関根が即座に頭の中で再計算を始めた。

「……即値の幅を広げるより、シフト命令を演算に統合する方が、トータルでのコード効率は……上がる」

だが、大門はまだ動かない。

「……遅延はどうする。シフタを前に置けば、クロックが落ちるぞ」

一瞬の静寂。

小林は、そこで初めて不敵に笑った。

「だから機能を絞るんだよ。大門、お前の設計なら、この程度の追加遅延、飲み込めるだろ?」

大門は数秒間、ボードを凝視した。

やがて、短く息を吐いた。

「……わかった。その代わり、クロックが落ちたら即座に切り捨てるぞ」

「へっ、上等だ」

小林がニヤリと笑う。

現場のプロ同士が、ギリギリの妥協点で握り合った瞬間だった。

設計の骨格が、ついに固まった。

それは、この時代の既存のCPUとは違う、速さのためだけに研ぎ澄まされた独自の形だった。