IRFにアクセスできるRISA

結局、今日のゼミは昨日作ったスライドをネタに90分間話しまくり。主にオレと教授が議論しているんだけなんだけどね。もちろん、他のゼミ生も質問してくるが、あまり回数は多くない。でも、結構核心を衝くものが多い。どうでもいいことをベラベラ喋ってるだけの男(オレのこと)とは違うな。
まあ、そんなことはどうでもよろし。教授から出た質問の1つにかなり面白そうなのがあった。IRFに入れる命令からさらにIRFの命令を読み込むとどうなるかというものである。つまり、RISAからもIRFにアクセスできるようにしたらどうなるかということである。あの論文のアーキテクチャでは、直接は書かれていなかったと思うが、そういうことはできない感じである。
IRF内の命令は固定なわけだから、IRFの命令に付加されるIRFへのインデックス(これは次に実行される命令を指すものである)も固定である。そのような命令の流れが何回も色々な場所で現れるなら有効であろう。まあ、普通に考えれば、あまり使えるアイデアではなさそうだ。このアーキテクチャを考えたグループもそう思って取り入れなかったのかもしれない。
IRFに格納する命令をプログラム実行中に変更していくようにすれば役に立つような気もする。32命令で収まるループなら、IRFに命令をロードすればループ内の命令はコード上では1語で可能である。まあ、IRFに命令をロードする命令が32命令以上必要な気もしますが・・・。それでも、命令キャッシュアクセスを減らせるので消費電力の削減には有効か。しかし、それなら0次キャッシュを載せれば良い気もする。
考えてみれば、IRFなんてのは自由に読み書きができる0次キャッシュみたいなものなのだな。そういえば何年か前に、CPUのキャッシュメモリを普通のメモリのようにアクセスできた方が効率が良いプログラムを書けるから、そういうの作ってくれないかなあといった感じのシミュレーション屋のレポートを見た覚えがある。もちろん、そんなことしたらメモリの構成が違うマシンごとに最適なプログラムは変わってしまう。ただ、私もキャッシュは必要ないならない方が良いと考えているので、この辺のことをもう少し真剣にやってみようかな。