ブロック
下に4001のブロック図を示します.
まず,上側にタイミングを生成するブロックがあります.そうでなければΦ1とΦ2,加えてSYNCを入力するとクロックが生成され,各ブロックへ送られます.なお,各ブロックへ送られているクロックをすべて矢印で繋げると大変見にくくなるため省略しています.
次に,左側上方向にデータバスI/Oバッファブロックを見てください.データバスD0~D3の信号線がつながっていることを確認できますね?.4004から4001に送られてくるデータ,つまりアドレスや4001のI/Oから出力されるデータはこのバッファに保持されます.アドレスが送られてきた場合,アドレスレジスタ・デコーダにアドレスが送られ,さらにそのアドレスに対応するデータをROMアレイから取り出すときマルチプレクサを用いています.それらの関係が図で表されていることを確認してください.反対に4001から4004に送られるデータ,つまりROMに保存されているデータや4001のI/Oに入力されたデータはこのバッファに一旦保持されます.これらの動作を制御しているのが図の中央付近にある制御回路です.
次に左下方向にあるブロックをご覧ください.こちらには入力ポートと出力ポートがあり,それぞれI/O0~I/O3が接続されています.繰り返しになりますが,4001には4本の入出力端子があり,それぞれはメタルマスクでデータを記憶するときに入力端子にするのか出力端子にするのかを決めることができます.入力端子にしたのであれば,スイッチやキーボードなどからの信号を4001のバスを通じて4004に送られますし,出力端子にしたのであれば4004からのデータをデータバスを通じて4001に送られ,出力ポートに接続されたLEDなどの周辺機器に出力されます.入出力に関しても制御回路が動作を決めています.
最後にその他の信号についても説明しておきます.CL信号がHighになるとその瞬間に出力ポートにあるレジスタをクリアしてくれます.また,RESET信号がLowになると出力ポートのレジスタに加えて4001の制御回路がクリアされます.