めざせ4004! IC24個で電卓用CPUを作ってみた: Chapter 3 アーキテクチャ設計

 EX4-2024はTD4EX4を拡張して制作します。 TD4EX4は16個の汎用ロジックICによるCPUですが、RAMアドレスが4ビット幅しかないため16バイトまでのRAMしか搭載できず、電卓を作っても2~3桁がせいぜいでした。EX4-2024では本格的な電卓を作成できるCPUを目指すため、RAMアドレスを8ビット幅に拡張し、さらにインデックスレジスタを追加します。

Chapter 3-1 レジスタ構成

  EX4-2024のレジスタ構成を示します。

 アキュムレーターである4ビット幅のAレジスタとBレジスタはTD4EX4と同じです。これは加減算機能を持ち、通常の算術演算に使います。加算時に繰り上がりが発生した場合はキャリーフラグ(C)が1になります。減算時は繰り下がり(ボロー)が発生しない場合にキャリーフラグ(C)が1になります。 プログラムカウンタ(PC)もTD4EX4と同じです。12ビット幅であるため最大4kBのROMを接続できます。

 インデックスレジスタは最終的に3本にしました。それぞれX、Y、Zと命名します。これらはRAMアドレスの計算に使用され、C言語で言うところの配列の添え字やポインタとして利用できます。

 フラグ類に関してはキャリーフラグ(C)のみです。これはTD4から変わっていません。本来であれば演算結果がゼロであることを示すゼロフラグ(Z)をサポートするべきなのですが、敢えて止めています。なぜならゼロフラグをサポートすれば、必然的にそれ用の条件ジャンプ命令(JNZなど)が必要になり、使用IC数が大幅に増えるからです。