2014年10月30日改訂 Intel 4004

Intel 4004の回路図を読む

1. 基本回路

omiokone


トランジスタは全てP-ch MOSFET。8/18のような寸法はμm単位の ゲート巾/ゲート長 (ゲート長がソース→ドレイン方向)と推測される。単一の数字はゲート巾でゲート長は既定値を使うと考えられる。
電源はVSS=GND VDD=-15V。下図(a)は入力L(=VDD)でFETがON、出力H(=VSS)となるNOT回路。(b)はいずれかの入力Lで出力Hとなり、L=1の負論理でのNOR回路。(c)はNAND回路。

logic circuit

回路中の負荷抵抗はチップ上の面積を減らすためMOSFETで作る(回路図1枚目右下の凡例参照)。実際のNOT回路は下図(a)となる。問題はQ1 ONで出力電位が上がった時Q2のVGSが大きくなって負荷電流が増大し、望ましい動作と逆になる。また出力をVDD+Q2のスレッショルド電圧より下げられない。(b)のようにQ2にdepletion型(VGS=0Vでも電流あり)を使えば、出力によらず負荷は一定となる。ただしenhancement型(VGS=0VでOFF)と作り分ける必要があり、実用化はイオン注入が一般化した6502やZ80の世代からである。4004では記号Bの抵抗の回路を使い(c)のように構成する。出力=Hの間にCは充電される。Q1 OFFで出力が下がると、Q2のゲートはさらにCにより引き下げられ出力がVDDまで振れる。例えば(a)の回路でプッシュプル出力のVDD側トランジスタを駆動すると、出力はVDDよりスレッショルド電圧2コ分高くまでしか引っ張れないので場合により(c)を使っている。(c)の回路は高速化のためとも考えられるが、トランジスタのパラメータが不明なので、はっきりしない。

load circuit

4004でレジスタや一時記憶は下図のダイナミックレジスタを使っている。Q1 ONの時はQ2に入力が接続されNOT回路として働く。Q1 OFFの後もQ2のゲートに蓄えられた電荷でそれまでの状態を保持する。この回路は電荷の消失のため、ダイナミックRAMと同じく定期的な再書き込みが必要となる。そのため4004のクロック周期は最大2μsに制限されている。

dynamic register

嶋正利のプロセッサ温故知新に「命令レジスタには8ビットのドライバ付スタティック型フリップフロップを使用した」とあるが、これは記憶違いであろう。回路図2枚目右側のOPR/OPAレジスタは上記ダイナミックレジスタの出力と反転それぞれにプッシュプルドライバをつけたもの。別にコマンドレジスタがありスタティック回路だが、これは4002 RAMの選択信号を記憶しておくためのもの。

Intel 4004 | 2>