見出し画像

NATUを作る(パート5)

HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。

今回は、NX RED VIIIの実行ユニットの続きを作っていきたいと思います。


I/Oポート制作

位置決め

まずは、I/Oポートの位置を決めていきます。

今回のポート数は8にしたいと思います。
理由は、なんとなくです。

I/Oポートの位置を決める

配置もだいたい、なんとなくです。

特に深い意味とかはありません。

あ、やっぱ7にします。
理由は、000を入力した時はどのポートも指定していない状態にしたいからです。

今、回路を組みながら命令セットを考えていて、命令セット的に7の方が都合がよかったからです。

実際に組む

次は、I/Oポートの実際の回路を組んでみました!

I/Oポートとデコーダー(一部)

この回路をたくさん作って、I/Oポートを作っていきたいと思います。

命令デコーダーもセットになっています。

ちょっと改良

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

I/Oポート(1ポートだけ)

無事、コピーが完了しました!
しっかり、7ポートあります。

それじゃぁ、端の方をしっかり作ってから、
ALUに繋げたいと思います。

I/Oポート

片方は、こうなっています。

コピーした時のためにたるが設置されていますが、本来この位置には必要ありません。

なので、見た目が悪いのでここはコンクリートに置き換えておきます。

びふぉあー
あふたー

個人的には、こっちの方がすっきりしていていいと思います。

それでは、ALUと接続していきたいと思います。

インプットポートもアウトプットポートも、両方ともALUに接続していきます。

ALUとI/Oポートを接続

これにより、ALUとI/Oポートが双方向に通信できるようになります。

ALUはレジスタとつながっているので、これでALUを経由してレジスタとI/Oポートがつながったことになります。

それでは、I/Oポートの命令デコーダーの入力部分に、仮の回路を設置して、実際に動かしてみたいと思います。

動作確認

それでは、スイッチオン!

アウトプットポート

遅延をちゃんと調整すれば、想定通り1が出力されました!

成功です。

それでは、今度はインプットも試してみたいと思います。

こちらも成功しました!

インプットとアウトプットを両方行えば、入力した値が帰ってきます。

110を入力すると、110が帰ってくる

無事、完成してよかったです。

実行ユニットも今度こそ完成、、、

、、、と言いたいところですが、まだレジスタデリートが残っています。

今回の実行ユニットは、アキュムレータとレジスタデリートの二つの高速化技術が詰め込まれている感じですね。

ですが、次回のレジスタデリートで、おそらく実行ユニットは完成だと思います。

今回は、途中で休憩もしていたので、約1時間半の作業でした。
お疲れさまでした。

それじゃあ、次回、また会いましょう

この記事が気に入ったらサポートをしてみませんか?