Intel 4004の回路図を読む
3. 命令デコーダ
omiokone
回路図2枚目が命令デコーダで、下図にADD(加算)命令の部分を抜き出した。内部データバスは命令コード、データともにL=1である。命令の上位4bitがOPRレジスタにラッチされ、反転/非反転出力に接続されたQ1~Q4はADD命令のコード1000の時全てOFFとなりADD命令線がLになる。
ADD命令線からは1~4の信号(アクティブH)が作られる。これらはタイミング信号とANDをとり、以下の機能を果たす
- 加算器出力→アキュムレータ
- 加算器キャリ出力→キャリレジスタ
- アキュムレータ→加算器入力
- キャリレジスタ→加算器キャリ入力
各命令について詳細な解説はしないが、ポイントを述べると
- JMP/JMS/JCN/ISZ/JIN/FINは2命令サイクルで実行される。命令デコーダの左にあるSingle Cylcle Flip Flopは通常、出力SC=Lで、前記命令の2サイクル目でHになる。信号の論理式にDC(Double Cycle?)とあるのはSCの否定である。
- アキュムレータ操作の命令はOPR=1111で、これをデコードしたのがOPE(OPEration?)信号線。さらに下位4bitのOPAをデコードしたのを合成する。
- I/O命令はあらかじめSRC命令で4001 ROM、4002 RAMのどのI/Oポート、あるいはRAMのどの部分かを指定してから行う。I/O命令はOPR=1110で、これをデコードしたのがI/O信号線。ただしCPUはSBM/ADM命令以外は命令コード 1110 0XXXがCPUからの送出。1110 1XXXがCPUへの読み込みと認識するだけで(IOW/IOR信号線)、具体的な動作はROM/RAMがM2サイクルのOPAを取り込んで判断する。
<2 | Intel 4004 |
4>