シミュレータ

20 Mar

実はこれはあんまり書くことなかったり。

TAの菅原さんに「どうしてコンパイラ演習もHW演習もあるのに、シミュレータ演習はないんですか?」と聞いたら、「シミュレータくらいなにも教えなくなってそれくらい書けるだろ?(意訳)」とのことだったが、確かに「そうですよね」と言うしかない程度。

パイプラインや命令フェッチタイミング、キャッシュなどを考慮したシミュレータは、ハードウェア係がハードウェアを実装開始する前に実装してもいいと思う。実機よりもずっとデバッグしやすいし、タイミングが問題になる部分があるとシミュレータを実装していて書き方に困る。

シミュレータに関連してやった面白いことは、せいぜいグラフィカルなバージョンを作ったことくらい。
・DirectXを久しぶりに触ってみたかった
・中間発表での単なるパフォーマンス
という不純(?)な動機によって開発されたが、命令の並列度が低いと、それを視覚的に目の当たりにせざるを得なくなる。そういう意味では自分のやる気を引き出すのには有用だっただろう。

実際にはできなかった妄想としては「向上余地検知システム」があった。これは、効果的な複合命令などを多くの自動実験を元に探し出すという代物。面白いかな?と思っていたが、コンパイラ係海野がどんどん数値に基づいた改善案を出してくれていたので、これを実装する意味(言い訳)はなくなってしまった。

それから、バーチャルマシン。これは普通に面白そうだし、レイトレのようにシステムコールが発行されないターゲットはお手軽な気がする。うちの班のアセンブリがまともな速度で実行できるとなれば、CPU実験用のMLコンパイラもある程度まともな用途に使えることになるし、今からやってもいいかもしれない。

Leave a Reply

Your email address will not be published.