第六十六話:最初の分岐
沈黙が落ちたまま、数秒が過ぎた。
最初に動いたのは、高村だった。
ホワイトボードの前へ出る。
「……整理するぞ」
低く、現場を締める声だった。
「今の話は、“CPUはシンプルにする。その代わりソフトで最適化する”――そういう設計思想だな」
忠夫は頷いた。
「はい」
高村は腕を組む。
「で、その前提を先に決める、と」
「そうです」
一拍。
高村は視線を横へ流した。
「関根。どう見る」
「理屈としては通っています。命令を単純化してパイプラインを回しやすくする――」
だが、そこで言葉を切る。
「ただ……」
ホワイトボードを見る。
「レジスタ数、かなり増やさないと成立しませんよね。論文でも……三十二本が前提でした」
斎藤が頷く。
「ああ、その通りだ。三十二本のレジスタをコンパイラに自由に割り当てさせる。それがRISCの肝だからな」
大門が低く言う。
「……三十二本か。今のマイコンから見れば、倍以上だな」
沈黙が落ちる。
設計者にとって、三十二本のレジスタを並べるという提案は、限られたチップ面積に「巨大な構造物」を置くのに等しかった。
その沈黙を、小林が破った。
「……数を増やせばいい、って話でもないな」
腕を組んだまま、ホワイトボードを睨む。
「レジスタを増やせば、その分だけ命令で使うビットが増えるし、ダイサイズも大きくなる」
一歩、前へ出る。
「おまけに命令長を固定にするなら、余裕はそうないはずだ」
西村が頷いた。
「デコードも重くなる。ハードを単純にするって話と逆行するぞ」
関根が続く。
「……それに、今のコンパイラ技術で三十二本全部を効率よく使い切れるとも限らない。遊んでいるレジスタを抱えるくらいなら、もっと別の機能に面積を割くべきじゃないですか?」
空気が少し変わる。
“数を増やせば解決”ではない。
全員がそれを理解し始めていた。
小林が腕を組んだまま、少しだけ視線を落とした。
「……なら、レジスタを増やす代わりに、一命令の『仕事の密度』を上げるしかないな」
ホワイトボードの、演算器(ALU)の前段を指差す。
「例えば、ALUの入力にバレルシフタを噛ませる」
空気が変わる。
大門がすぐに反応した。
「……シフタか」
一拍。
「だが、あれはチップ面積を食う。簡単に積める代物じゃないぞ」
「だが、計算の『ついで』にシフト演算を実行できるなら、アドレス計算の命令数を劇的に減らせる。レジスタを減らしても、スループットでカバーできる余地はある」
小林が食い下がる。現場の叩き上げらしい、実利を求めた提案だった。
大門が低く言葉を落とす。
「回路は嘘をつかん。余計な面積を増やせば、それだけ信号の遅延も増える。……速くするつもりが、クロックの上がらない鈍重なチップになったら本末転倒だぞ」
静寂。
議論が煮詰まりかけたとき、高村が一歩前に出た。
「まだ結論は出さない」
全員の視線が集まる。
高村はホワイトボードを指した。
「シフタは保留だ」
一拍。
「入れるかどうかは、命令フォーマットとレジスタ構成を詰めてから判断する」
視線を巡らせる。
誰も異論はなかった。
結論は出ていない。
だが――
全員の視線は、同じ場所に向いていた。




