CPU実験、終了!

5ヶ月半の時間をかけたCPU実験も、昨日の発表で全て終了。昨日はとにかく眠かった。帰りの電車の中で立ったまま意識を失うほど疲れてしまっていた。

終結果は62秒@100MHzで、優勝できなかったのが残念。IPCは0.74程度だが、無駄な命令が結構あるのでどうなんだろう。
10月に菅原さんが「とにかく動くものを先に作ったほうがよい」と強調していたのを受けて、プロトタイプを早めに動かして、それをもとに本番機を作るという方法を取った。
去年の優勝班が同じ方法で成功していたというのもあった。

正直ここまで苦労した以上、いろいろ書きたくてたまらないので一気に書いてしまおうと思う。来年度の3年生の参考にもなるだろうし。

で、プロトタイプ機Remiliaなんだがこれが香ばしい。名前もそうなんだけど内容もかなりアレで完全な失敗作になってしまった。以下その仕様

実行ステージはIFID、EXの2段で、分岐は2命令に分けてsetの後にjumpという形。InstructionCacheが4096エントリで、なんとミス毎にキャッシュ全体分を取ってくる

本当に何も考えてなかったと今は思う。11月中旬に再帰fibonacciが動いて、12月中旬にレイトレ動作。実行時間はなんと24時間(!)。そりゃキャッシュミスのペナルティが4000クロックもあれば遅くなる罠。
このへんH野氏との煽りあいは始まっていた。班行動という性質上、機密主義になってしまうことが多いと思うが、他の班の同じ係と相談することは双方にとってよいと思う。

とりあえず12月下旬には新アーキテクチャを練りつつ、FPUを高速化していた。
で、最初妙に遅かったFADDも、配線後の結果が20ns, 18ns, 16ns, 15.5nsと叩いていくうちに速くなり、FMULは14nsまで速くなったので、制御回路も工夫すれば速くなるのでは?と思い100MHz計画がおぼろげに浮かびだす。

正月は遊んで、1月はシミュレーション環境を整備しつつ部品作り。
2月はインフルエンザによる地底人全滅事件や、試験やらでほとんど時間がとれなかったが、暇を見つけて作業していた。
レイトレが動作したのは3月7日くらいか?

アーキテクチャFlandreは最終発表を見てほしいが、スカラー実行のプロセッサとしてはまあ、これ以上速くならないと思う。
IFID,EX1,EX2,EX3の4段パイプラインで、分岐命令とALU命令が高速。再帰fibonacciのIPCは0.95程度。FDIVやSQRTは改善の余地があるが、実行時間には利いてこない気がする。

とりあえずこれで実験は終了。基板ではあとはSDRAMとかで遊んでみようか。
ああ、たまってる課題もやらねば。