Make/Day

毎日なにか作ります

45日目 ~16bitコンピュータの構成~

こんにちは!今日はデジタル回路の話題で更新します。

今回はソースコードは無く、ALUまで設計が完了した今、今後どのように設計していくかを図とともに書き起こしてみるつもりです。
16bitのALUができたら、まずはCPUの設計ですよね。
Nand2tetrisの本で紹介されているHack機械語が動作するように、ALU周辺にデコーダ回路を繋げていくつもりです。

次に、プログラムを保持するためのROMですね。普通のPCで言うと、ハードディスクやSSDなどと言われている部分です。
実は、これはもうできていて、過去記事のromの回で実装しています。
in-reality.hatenablog.com
ここのROM32Kを使います。

後は、CPUがデータの読み書きに使用するRAMが必要です。
コンピュータはこことデータを読み書きすることで計算を更新していきます。実際はもう少し間にいろいろ挟まるのですが、DDRメモリみたいなものだと考えても良いかもしれません。

参考書籍で紹介されているような、カッコイイスクリーンやキーボードなどの入出力装置はプログラムが動いてから実装を考えます。

すると、構成予定はざっくり以下のようになります。

コンピュータの構成図

というか、まんまですね。CPUからはRAMにアクセスするためのアドレスと、読み書きするための信号線、書き込みの許可を申請する信号と、ROMからプログラムを読みだすためのカウンタ値が出力されています。ROMからは命令のみがCPUへ投げられていて、Memory(RAM)からはCPUへの出力のみが出ています。

次回からCPUの設計を頑張っていきます

参考書籍