Intel 4004の回路図を読む
2. タイミング発生器
omiokone
マニュアルから抜粋した図を使い命令サイクルを説明する。オーバーラップしない2相クロックΦ1 Φ2を使い、8クロックで1命令サイクルを成す。命令の実行は、A1~A3の3クロックでプログラムカウンタの12bit値を下位4bitから3回に分けて4bitバス経由でROM(専用の4001)に送る。次のM1 M2で8bit命令が上位4bit(OPR)、下位4bit(OPA)の順でCPUに転送され、X1~X3で処理される。JMPなど2byte命令では同じ命令サイクルをもう一度くりかえす。命令は8または16クロックで実行され、命令に応じ細かくクロック数が変わることはない。SYNCは4001 ROM、4002 RAMに命令サイクルの開始を知らせる同期信号。
タイミング発生器は回路図3枚目の右上にある。下図(a)がその概念図で(b)のようにシフトレジスタの1つだけ1を立て、これをシフトさせて8個の信号を生成する。最初の7個のレジスタが全て0(正常なら8個目だけ1)の時、次のクロックで1個目のレジスタに1が入る。このしくみで電源投入時でたらめな状態から7クロック後までには正常になり、誤動作しても復帰できる。タイミング発生器の下が外部リセット回路で、POC(Power On Clear?)入力をいったんR-Sフリップフロップでラッチして、解除はA1サイクルに同期させて内部に分配している。嶋氏の著書(注)でこの部分は失敗だったとある。タイミング発生器にリセットがかからないのでLSIテスタでの試験がしづらいため。
(注)嶋正利「マイクロコンピュータの誕生」p81 岩波書店 1987
下図はシフトレジスタ1bit分で、ダイナミックレジスタ2段から成る。2段にするのはΦ2の間に次のbitの入力(=このbitの出力)を変化させないためである。タイミング発生器は多くの回路に接続されるため、2段目は大きな容量性負荷を駆動できるようプッシュプル出力にしてある。
<1 | Intel 4004 |
3>