
NATUを作る(パート5)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、NX RED VIIIの実行ユニットの続きを作っていきたいと思います。
I/Oポート制作
位置決め
まずは、I/Oポートの位置を決めていきます。
今回のポート数は8にしたいと思います。
理由は、なんとなくです。

配置もだいたい、なんとなくです。
特に深い意味とかはありません。
あ、やっぱ7にします。
理由は、000を入力した時はどのポートも指定していない状態にしたいからです。
今、回路を組みながら命令セットを考えていて、命令セット的に7の方が都合がよかったからです。
実際に組む
次は、I/Oポートの実際の回路を組んでみました!

この回路をたくさん作って、I/Oポートを作っていきたいと思います。
命令デコーダーもセットになっています。

それでは、インプットポートとアウトプットポートをそれぞれ1ポートずつ作ったので、早速コピーしていきたいと思います!

無事、コピーが完了しました!
しっかり、7ポートあります。
それじゃぁ、端の方をしっかり作ってから、
ALUに繋げたいと思います。

片方は、こうなっています。
コピーした時のためにたるが設置されていますが、本来この位置には必要ありません。
なので、見た目が悪いのでここはコンクリートに置き換えておきます。


個人的には、こっちの方がすっきりしていていいと思います。
それでは、ALUと接続していきたいと思います。
インプットポートもアウトプットポートも、両方ともALUに接続していきます。

これにより、ALUとI/Oポートが双方向に通信できるようになります。
ALUはレジスタとつながっているので、これでALUを経由してレジスタとI/Oポートがつながったことになります。
それでは、I/Oポートの命令デコーダーの入力部分に、仮の回路を設置して、実際に動かしてみたいと思います。
動作確認
それでは、スイッチオン!

遅延をちゃんと調整すれば、想定通り1が出力されました!
成功です。
それでは、今度はインプットも試してみたいと思います。
こちらも成功しました!
インプットとアウトプットを両方行えば、入力した値が帰ってきます。

無事、完成してよかったです。
実行ユニットも今度こそ完成、、、
、、、と言いたいところですが、まだレジスタデリートが残っています。
今回の実行ユニットは、アキュムレータとレジスタデリートの二つの高速化技術が詰め込まれている感じですね。
ですが、次回のレジスタデリートで、おそらく実行ユニットは完成だと思います。
今回は、途中で休憩もしていたので、約1時間半の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう