
NATUを作る(パート15)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、ROMの出力をPCに接続していきたいと思います。
早速ミス発見
前回、ROMと実行ユニットを接続したので、次はROMとPCになります。
それでは、早速作業開始!
あ
やべ
やらかしたああああ

なにをやらかしたのかというと、実行ユニットのレジスタです。
実行ユニットのレジスタは、今は通常のCPUと同じになっていますが、実はループ式である必要があったのです。
今のままでは、すべてのスレッドでレジスタを共有していることになりますが、それだとスレッド同士で干渉が発生してしまいます。
それだとまずいので、修正する必要があります。
さらに、I/Oポートも、今は一つしかありませんが、本来は6つ用意する必要があったんです、、、
6スレッドなので、6つです。
ですが、その修正がかなり大規模で、実行ユニットをまるごと作り変えるに等しいです。
あーもう!
どうしよう!
結構大事なところを見落としてしまいました、、、
もうだめだあ
しゃーないので、作り直します、、、
うーん、、、
どんなロジックで各スレッドに処理を割り振るか考えながら作業していましたが、少し難しそうです、、

あと、レジスタがループ式になったことで、かなり大型になったので、ALUをどうするか問題もあります。
ALUどうする?
当然収まるっちゃおさまるんですが、スペースが余り過ぎるんですよね、、、
そこで、一つ目の案が下の画像です。

二つのレジスタとALUを使って、このスペースを有効活用する案です。
もう一つが、下の画像です。

二つのレジスタと一つのALUを使って、ALUを10Hzで動かす案です。
NX RED VIと同じ構造です。
どちらにするか、、、
でも、難易度的には2ALUの方が楽かもしれません。
なので、2ALUにするかもしれません。
では、今回はこれで終わりにしたいと思います。
ちょっと、、実行ユニットの作り直しがショックすぎて今はやる気が起きません、、、
それでは、次回は実行ユニットを作り直していきたいと思います。
今回は、約1時間の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう