この図は、DECの初期のミニコンであるPDP-8のブロックダイヤをベースに、多少、書き直したものであるが、左端の中央の箱がメモリ、その上側の箱がメモリアドレスレジスタ、下側の箱がメモリの読み書きのデータを保持するメモリバッファレジスタであり、これらが記憶装置を構成している。
単純な構造のコンピュータのブロックダイヤの例 |
図の中央の部分は、命令を解釈してコンピュータの各部のマルチプレクサを切り替えたり、レジスタにデータを取り込んだりする制御信号を発生する部分である。そして右側に演算器とアキュムレータからなる演算を行う部分と、入出力装置を接続するためのバッファ回路が存在する。
加減算などの演算には2つの入力(オペランド)が必要であるが、この単純なコンピュータでは、アキュムレータと呼ぶレジスタの内容を演算の一方のオペランドとし、結果(リザルト)をアキュムレータに格納する方式を採っている。そして、他方のオペランドを保持するレジスタは、メモリデータレジスタが兼ねている。
このコンピュータの動作であるが、何らかの方法で、既に、メモリにプログラムやデータが格納されているものとする。その状態で、まず、パネルのスイッチにプログラムの先頭の命令が格納されているアドレスをセットし、それをプログラムカウンタに入れてコンピュータのスタートボタンを押す。
話が、ちょっと横道にそれるが、PDP-8の時代のコンピュータでは、パネルは1語分のデータをセットする0/1のトグルスイッチと、そのデータをどのレジスタに書き込むかを選択するロータリースイッチなどを備えている。このパネルの機能を使って、まず、メモリアドレスレジスタにプログラムを格納する先頭アドレスを書き込み、次にプログラムの最初の命令をスイッチにセットし、パネルのストアボタンを押すと、スイッチのデータがメモリに書き込まれ、メモリアドレスレジスタが+1される。次の命令をスイッチにセットし、ストアボタンを押すという操作を繰り返すとメモリにプログラムとデータを書き込むことができるというような仕掛けになっていた。
しかし、この方法で長いプログラムを書き込むのは大変である。従って、初期のコンピュータでは、紙テープなどの入力装置からデータを読み、読み込んだデータをメモリに転送するという機能を持った小さなプログラムを手動でスイッチからメモリに格納し、次に、そのプログラムを起動して紙テープに書かれたプログラムをメモリに書き込むというような方法がとられた。この小さなプログラムをBootstrap Loaderという。
また、当時のコンピュータの主記憶は、磁気的に情報を記憶するコアメモリが使用されており、コアメモリは、最近のFlashメモリと同様に不揮発性のメモリであるので、一旦、Bootstrap Loaderをメモリに入れておけば、毎回、スイッチから入力する必要はなかった。