今回は、4004のソフトウェア面を見ていくことにしよう。4004の機械語は、8ビットで45種の命令を持つ。
(図01)は、ソフトウェアからアクセス可能なCPU内部レジスタだ。中心になるのは演算が実行できる4ビットのACCUMULATOR(アキュムレーター)、汎用レジスタである4ビットの「インデックスレジスタ」16個である。なお、インデックスレジスタは、0~15の番号を割り当てられ、偶数レジスタと奇数レジスタを「ペアレジスタ」として8ビットとして使う命令がある。
演算命令としては、加算、減算などで、乗算、除算命令は持たない。もっとも、4004後継となる8080やZ-80なども乗算、除算命令を持たなかった。これらが機械語として実装されるのは、16ビット CPU(たとえば8086など)になってからである。このため、乗算、除算の計算は、加減算を使って行う。
4004のアーキテクチャで特殊なのは、RAMのアクセスである。4004は、16ピンしか信号端子がなく、アドレスとデータを時分割で出力するなど複雑な仕組みを強いられた。特にRAMのアクセスは、電卓での利用を考慮し、現在のようにメモリセルが連続したアドレスに割り当てられているのではなく、チップ(4002 RAM)ごとにアクセスする場所をレジスタに登録し、その後、専用の命令を使って、4ビット単位での読み書きを行った。命令として暗黙的にRAMを使うような命令はなく、たとえばサブルーチン呼び出し時のスタックは、CPU内部に3段の12ビットレジスタとして実装されている。
また、チップ内のRAMは、16個の「メインメモリ」4ビットメモリセル(データシートでは、Main Memory Charactersと表記されていた)と4個の4ビット「状態メモリ」(同Status Character)という構造を持っていた。データシートでは、これを「レジスタ」と呼んでいた(図02)。
レジスタは仮数部最大16桁、指数部最大2桁を収容でき、RAMというよりも、電卓のメモリを想定したような構造だった。なお、メインメモリと状態メモリでは、アクセス方法が異なる。
1つのRAMチップには、レジスタが4セットある。1セットは80ビットで、4セット(4002RAM 1チップ分)で320ビット(40バイト)である。
4004では、この4002RAMチップを4つ組でグループとして4グループ、最大16個を接続できた。4002RAMチップは、ダイナミックRAMを使って実装されておりリフレッシュ回路を内蔵していた。
メインメモリをアクセスするには、予め、アクセス先を指定しておく。DCL(DESIGNATE COMMAND LINE)命令で4グループのうちの1つをアキュムレーターの値を使って選択、その後、SRC(SEND REGISTER CONTROL)命令で、レジスタペアの8ビット値を使い、4チップのうちの1つ、チップ内のレジスタの1つ、4ビットのメインメモリ1つを選択する。
なお、DCL、SRC命令は、RAMアクセスだけでなく、4001ROMチップや4002RAMチップ内蔵の入出力ポートのアクセスにも利用される。
プログラムは、4001ROMに格納される。4004は、リセットされるとプログラムカウンタがゼロとなり、0番地から実行を開始する。あとは、命令に従ってROMからプログラムを読み出して実行していく。4004では、RAMが特殊であり、ROMとは異なる方法でアクセス(いわゆるメモリ空間が異なる)ため、汎用のメモリ空間アクセス命令がない。通常、機械語をROMから読み出す必要はないが、データテーブルなどをROM内に置き、これを使って計算を行うことがある。
4004には、そのためにROMアクセス命令が用意されている。FIM(FETCH IMMEDIATE)は、2バイト命令で、2バイト目の8ビットをROMアドレス下位8ビットとして、上位4ビットには、実行中プログラムがあるROMのアドレスを使う。この命令は、指定したアドレスのROM内容8ビットをレジスタペアに格納する。
FIN(FETCH INDIRECT)は、レジスタペア0の内容をROMアドレスの下位8ビットとして、上位4ビットにプログラムカウンタの上位4ビット(実行中のプログラムがあるROMアドレスの上位4ビットと同じ)を使って、ROMを読み出し、指定されたレジスタペアに格納する。
現在のCPUから見ると奇妙な感じのアーキテクチャだが、当時最大の問題はパッケージで16ピン以上に増やすことが困難だった。このため、データとアドレスを重畳し、ROMやRAM側に機能を分散させ、ピン数の削減を行った。
今回のタイトルネタは、1963年の映画「海底軍艦」より、旧日本軍のものとされる架空の潜水艦、伊号403潜の名前から取った。終戦間際に行方不明となった403潜は同作品の謎の1つ。基地からの発進シーンや飛行、潜航、地底など日本の「戦艦」系ドラマの元祖といえる。











![[USBで録画や再生可能]Tinguポータブルテレビ テレビ小型 14.1インチ 高齢者向け 病院使用可能 大画面 大音量 簡単操作 車中泊 車載用バッグ付き 良い画質 HDMI端子搭載 録画機能 YouTube視聴可能 モバイルバッテリーに対応 AC電源・車載電源に対応 スタンド/吊り下げ/車載の3種類設置 リモコン付き 遠距離操作可能 タイムシフト機能付き 底部ボタン 軽量 (14.1インチ)](https://m.media-amazon.com/images/I/51-Yonm5vZL._SL500_.jpg)