軽量なろうリーダー

作品タイトル不明

第三十一話:極微の共鳴

週末。研究室のドアを開けると、そこには稼働し続けるICEの唸り音が静かに響いていた。

「失礼します、‥‥お久しぶりです、今川先生」

忠夫の手には、二週間の執筆コーディングの成果が刻まれた一本のカセットテープが握られている。

「……来たか。佐伯くん、準備は出来ているよ」

今川は、ICEインサーキット・エミュレータの前で、すでに準備を整えていた。

忠夫はテープをセットし、ロードコマンドを叩く。ピーという不規則な変調音が、バイナリデータをメモリ空間へと流し込んでいく。

「……では回します」

忠夫がリターンキーを叩いた瞬間、モニターに鮮やかな青と黒の画面が浮かび上がった。

中央で二つに分割されたフィールド。左右それぞれに、独立して落下を待つブロック。今「対戦型パズル」が、そこに産声を上げた。

「……信じられん」

今川がモニターを覗き込む。二人はキーボードの左右に分かれ、ブロックを操作し始めた。

「この描画速度……。左右のタスクを完全に独立させながら、一ミリ秒の遅延もなく同期させているのか。」

だが、二人が交互にラインを消し、激しいデータのやり取りが発生した直後に「それ」は起きた。

「……っ、止まった」

忠夫が四ラインを同時に消し、相手側へ大量の攻撃データを送り込んだ瞬間、画面が激しくフラッシングし、システムが完全にフリーズした。

「スタックオーバーフローか……?」

今川がコンソールからレジスタの中身を呼び出す。忠夫は画面を凝視し、首を傾げた。

(……何故だ)

一方がラインを消し、相手に攻撃を送る「割り込み処理」の最中に、もう一方がブロックを移動させる命令を送り込んだ。二つのイベントが全く同じクロックで衝突し、リアルタイムOSのタスクスケジューラが無限ループに陥っている。

「なるほど、佐伯くん。ここを見てごらん」

今川がデバッガのコンソールを指差した。

「君のスケジューラは、割り込みを完全に平等に扱おうとしている。だが、この非力なチップでは、衝突した際の優先順位が確定していないと、演算が互いの尻尾を追いかけ始めてしまうんだ」

今川は、ソースコードのリストを追いながら、ペンで一箇所を鋭く指し示した。

「ここを、こうしたらどうだ? 攻撃データの転送タスクに、描画タスクよりも一段階高いプライオリティを与え、かつ、衝突時にはフラグを立てて一クロック分だけ処理を逃がすんだ。癖を逆手に取るのさ」

忠夫はハッとして目を見開いた。

自分は「完璧な並列」を目指すあまり、ハードウェアが持つ「不器用な癖」を考慮に入れていなかった。今川の指摘は、理想論を現実に着地させるための、鮮やかな解決策だった。

「……ありがとうございます、先生。見えました」

忠夫の指が再びキーボードに伸びた。

今川がICEで示したアドレスを狙い、エディタ上でアセンブラのニーモニックを書き換えていく。一クロックを奪い合う熾烈な演算の世界。忠夫は、チップが持つ物理的な限界と対話するように、優先順位のロジックを再構築した。

「書き換え、終わりました」

「よし、バイナリを流し込むぞ」

今川がICEを操作し、パッチを当てた新しいプログラムをターゲットのメモリへと転送する。

「……リセット、スタート」

今川が実行キーを叩いた。

モニターに再び、あの青と黒の世界が戻ってくる。二人は無言でキーボードを叩き、先ほどと同じ激しい攻撃の応酬を再現した。

四ライン消去。大量のデータがバスを駆け抜ける。

一瞬、ICEのコンソールに割り込み競合のフラグが立ったが、システムは沈黙しなかった。今川の授けた「遊び」が、衝突の衝撃を逃がしたのだ。

「……動いた。止まらないぞ、佐伯くん!」

今川が歓喜の声を上げる。モニターの中では、ブロックが滑らかに、そして確実に、未来へと向かって落ち続けていた。

二人の知性が、小さなモニターの中で共鳴を始めた。