フォン・ノイマン・アーキテクチャ
『てれたいぷ』試作機は、とりあえず、動作した。しかし、この試作機をそのまま量産することはできない。
試作中には簡単に変更できるようなっていなければならない。なので、回路はリレーや機械式フリップフロップで出来ていた。これらは小型化と安定化、高速化のために半導体の集積回路に変更しなければならない。
動作を確認するために、鍵盤を押した時の信号は、七本の前後に動く『棒』で伝えられている。並行信号を直列化するためには、『直列化円盤』という回転する円盤を使っていた。これらは故障の原因になりやすい。
『てれたいぷ』実証実験を終えた『ふう』と石英丸がみんなを集めて相談を始める。
「なので、まず『棒』の部分は、並行した七本の電線にしなければならないと思う」『ふう』が黒板の上部に二本の横に伸びた平行線を引きながら言った。
「そして、この下に、鍵盤、印字装置、無線通信機などをぶらさげる」平行線から下に線を引いて下に箱を描き、鍵盤、印字、無線などの文字を書く。他にもう一つ箱を描き、『指令装置』と書いた。
「とりあえず、この『指令装置』が全体の制御をする、と置いてみた」
「どうやって、色々の周辺装置を区別するんだ。指令装置から電線で信号を送ると、同時に全部の周辺装置に信号がいっちゃうだろう」
「そこが問題なのよ」
「それ、こうしたら、どうかしら」狐憑きと噂されることもある美少女、『ならべ』が言った。本当の狐憑きではない。物事に集中すると、『うわの空』になってしまうだけだ。
「どうするんだ」
「この指令装置から八本の線を出す」そういって、指令装置の箱の下に仮に四本の縦線を降ろす。
「そして、上の並列信号線と同じように横線を張ることにする」
「鍵盤なんかにつながる線は一本なのか」
「そう、で、この線に電気が流れている装置だけが指令装置と通信できるようにする」
「どうやって」
「それ、周辺装置と七本線の間に『とらんじすた』を挟めばできるわ。なんで思いつかなかったんだろう」『ふう』が言った。確かに八本線側から延びた線をトランジスタのベース端子に繋げれば、エミッタとコレクタの間のスイッチになる。
「そうすると、八つの装置と指令装置が一対一で通信できるというわけか」
「いいえ、二五五個の装置を繋げることができるわ」『ならべ』が否定する。
「なんでだ」
「この、下の八本に出す信号を二進数に見立てればいいのよ。そうすれば、二を八回かけた数字、二五六に一つ少ない二五五の装置を制御できる。それぞれの装置に番地を付けておけばいい」
「なるほど、それは出来るな。どんな手順でやるのか説明して欲しい」石英丸が言う。
「まず、繋いだり、切り離したりするのは、指令装置が行うこととする」
「そして、待機状態の時は、指令装置と鍵盤を繋いでおく。鍵盤から信号が指令装置に来たら、指令装置にその信号を保存しておいて、鍵盤を切り離す」
「それで」
「つぎに指令装置を印刷機につなげ、鍵盤から来た信号を印刷機に送る」
「そして、印刷機を切り離して、同じ信号を無線機に送り、待機状態に戻る。こうすれば、今と同じように動く」
「なるほど、行けそうだな」
「指令装置が受信した信号を保存しておくところも番地を付けて置けば、一元管理できる」
例えば、三本の二進数入力を八本のたこ足スイッチ信号にするような集積回路を復号器という。74LS138という型番の集積回路が有名だ。
「なにより大事なのは、これら一連の手続きを電気回路で作るのではなく、計算機の記憶装置に信号として書いておくこともできるということよ」ソフトウェアだと言っている。
「八本なんて、そんなにたくさんいらないだろ、三本もあれば八つの装置が制御できる。それで充分じゃないのか」
「他の使い道を考えているのよ」
「何に使うの」『ふう』が尋ねる。
「電気で計算する装置よ」
「『じょん』が電子計算機って言っていた機械か」
「そう」
淡路島で飛行艇の機体を設計していたとき、『ならべ』は母親の『かぞえ』に命令されて大量の計算を行っていた。
その時、電動式の計算尺を構想して、数段の足し算、掛け算くらいまでは試していた。母親の航空機改良の情熱は醒めていない。このまま、ずっと計算に付き合わされるのでは、かなわない。
母親に計算機を与えれば、解放されるだろう。
石英丸と『ふう』が堺で作っている半導体は、加算減算が出来た。そして一時的に数字を保存することもできる。
電動計算尺のような方法ではないが、これでも計算できるはずだ。機械は疲れを知らずに計算するだろうから、無限級数を使って、四則演算で三角関数や対数を計算することも出来る。『ならべ』はそう目論んでいた。
実際、現代のコンピュータは、『ふう』と『ならべ』が考えた方法で動作している。
このような方法を『フォン・ノイマン・アーキテクチャ』という。身近にあるパソコンも、タブレットも、スマホも、どれもこの方式を使っている。
『ふう』の、信号が流れる七本の電線をデータバスという。『ならべ』の八本線はアドレス・バスと呼ばれている。
『ならべ』が考えたように、記憶装置にも、一つ一つに番地を付けるとすると、例えば以下のようにすればいい。
アドレス範囲 デバイス
0x01~0x7F RAM 63ワードのメモリ(8bitマシンのバイトに相当)
0x80~0xBF ROM 64ワードのROMメモリ
0xF0 鍵盤
0xF1 印刷機
0xF2 無線機
アドレスの0x7F、0xBFは、十六進数だ。7Fは十進で127番地、BFは191番地を表す。上の表のアドレスを管理するには、八本のアドレス・バスがあればいい。彼らのテレタイプでは、一ワードは七ビットになる。
これは、片田が未来から持ってきたPDPマニュアルのASCIIコード表が七ビットの文字コードだったことによる。
「円盤のところ、並列の信号を直列にするには、どうするんだ」
「ああ、それは、記憶子を直列につなげればできる。試したことがある」石英丸が言った。
「待機状態の時に、無線で信号が来た時にはどうする」鍛冶丸が尋ねる。
「それは、そうね、ここにもう一つ副指令装置を置いておけばいいんじゃないかしら」『ならべ』が言って、無線機の脇に箱を描く。
「この副指令装置は、無線機専用にしておいて、受信した信号を一旦蓄える」
「うん」
「そして、指令装置に、自分と繋ぐように依頼する。そのための信号線が必要になるかもしれないわね」
「なるほど、それは出来そうだな。この仕組みだと、動作速度は恐ろしく速くなる。次の信号が追突することは無いだろう」
このような副指令装置を、現在のパソコンではデバイス・ドライバという。
「あちこちに副指令装置が出来ると、同期をとるための仕組みが必要になるかもしれないな」鍛冶丸が言った。クロック信号を設けて、各装置が同期をとって動く必要があると言っているのだろう。
「でも、この仕組みだと、鍵盤、印刷機、無線機それぞれが独立しているから、管理が容易になりそうね」『かぞえ』が設計の良い所を認める。
このアーキテクチャのおかげで、現在のパソコンは、様々なカードを挿すことにより、容易に機能拡張ができる(USBは、また別の仕組みだ)。
「で、わたしに計算機を作ってくれるというわけね、『ならべ』」『かぞえ』がニヤニヤと笑った。