CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

プログラム配信

リンクの上位側にあるトランスピュータが下位のトランスピュータにプログラムを送信してブートさせることができましたが、さらに下位のリンクがある場合、最初に送信するプログラムにローダを含めて入れ子構造にしておかなければなりません

こうなると上位側のトランスピュータはプログラムの送信と管理に専念することになり主従関係が生まれてしまうということと、各層のトランスピュータが持つプログラムが異なってしまい「並列」という意味ではエレガントではありません

そこでこのような構造を考えてみました。各層のトランスピュータで共通で実行させたいアプリケーション(executable code)に転送したいレイヤーの数だけ同一のローダを先頭にくっつけておきます。これを先頭から実行①すると自身を除くコードを下位のトランスピュータへ転送②、その後アプリケーションのコードブロックを先頭番地に移動③させ改めて先頭から再実行④させます。

下位のトランスピュータでも同一の処理が行われますが下位レイヤーに転送されるたびヘッダにあるローダが1個ずつ減って行き、最下位では先頭番地から直にアプリケーションになるので結果的にすべてのレイヤーで同一のアプリケーションが実行されていることになります