マイクロプロセッサーを云々する時には必ずと言っていいほどi4004から始められますが、詳しく書かれているサイトが多いのでここではTMS1000を少し学んでみたいと思います。
PROGRAM COUNTER は6bitあり0〜63までをカウントできるレジスタです。
SUBROUTINE RETURN REGISTER も同じく6bitあり0〜63まで戻る位置を覚えておけるレジスタです。PROGRAM COUNTER と同じです。
PAGE ADDRESS REGISTER は4bitで0〜15までページを切り替えることができます。PROGRAM COUNTER が6bitでPAGE ADDRESS が4ビットなので合わせて10bitとなり0〜1023まで番地を持てます。
TTLには2回路入りや4回路入り、6回路入りがありますが、2回路や4回路はわかりますが6回路入りは中途半端な気がしていました。自身が8ビット時代以降なので不思議に思うだけでディスクリートトランジスタやTTLでコンピュータが出来ていた頃、6回路入りは半端な存在ではなかったのでしょう。なんでも8の倍数の前の時代からコンピュータはありました。
PAGE BUFFER REGISTER はページを切り替えた時の戻りページを覚えておくためのレジスタです。
PROGRAM COUNTERとSUBROUTINE RETURNのセットとPAGE ADDRESSとPAGE BUFFERのセットを組み合わせて実行すべき命令や読み書きするデータの位置を制御しているのがわかります。
INSTRUCTION DECODER は8bit幅の命令を実行します。4ビットCPUなのに何故8bitの命令なのでしょうか。上の図では真ん中に書いてあります。やはり命令デコーダがCPUの中心部なのですね。
この頃の4ビットCPUを見てみると皆50個位の命令を持っていました。4ビットだからといって命令長が4ビットなわけはなく(命令が16個では実用にならない)8や16ビット長にして一通りの処理ができる命令デコーダにしてあります。
CPU | 基本命令数 |
TMS-1000 | 43 |
TMS-1200 | 43 |
i4004 | 46 |
HMCS-4 | 46 |
uCOM-4 | 55 |
X,Y,ACCUMULATOR REGISTER は演算を行う値を記憶するところです。数式で言えば変数にあたります。特にACCUMULATORは一時的な値の保持に使われます。
この他に出力が二つあります。その一つにPLAと書かれていますがプログラミングが可能なのでしょうか。もう少し調べないとわかりません。
このようにプロセッサの中を見てきましたが、一つ一つは論理回路の集合でできていることがわかります。クロック、レジスタ、バッファ、カウンタはフリップフロップでできます。デコーダやALUも論理回路の組み合わせでできます。
CPUはリレーでも真空管でもディスクリートトランジスタやTTLでも作れることがよくわかります。ただ一般の個人でも手に入れることができるようになったのがワンチップでできたCPUからでした。ここから広義でのコンピュータが爆発的に普及し始めたのです。