計算機科学実験及演習3A

3回生前期学生実験のハードウェアの方が終了した。自分の班はアーキテクチャの改良として、5段パイプライン+即値加算の追加を行なった。ちなみにソートコンテストは2位。1位の @k_hanazukiたそはクロックをaltpllで60MHzに上げていた。自分のとこは40MHzが限界じゃないかなぁと思って試していなかったが、今になって思えばやるだけやってみれば良かった気もする。


ソートのアルゴリズムはクイックを途中で打ち切り、最後に挿入ソートで整えるつもりだったが、挿入のコードがバグっているのに終了間際に気付いてアウト。結局クイック単体で提出し、平均で9万サイクル程度。ちなみに挿入を混ぜると8万前半まで下がった感じ。平均実行時間は2.34145ms。1位に1msも離されていてちょっと悔しい。


真面目にソート速度コンテストに出すなら、パタヘネ下巻を参考に5段パイプラインを実装、アルゴリズムはクイック+挿入、あとはクイックの打ち切る幅を調整したり、altpllでどこまでクロックを上げれるか試す、とかが無難なんじゃないかなぁと思った。このぐらいなら大して面倒でも無いし。ちなみに5段パイプライン+スーパースケーラをやる気力は私には無かった。どれ程の精神力があれば出来るのだろう...。


CAD上では動くのに実機で動作が怪しい時や、ソートのコードを書いていて、アセンブラかハードのどっちが間違っているのか疑心暗鬼になった時は楽しく無かったが、それでもちゃんと実機でソートが動いた時は嬉しかった。サークルの後輩(文学部)の "語学、特に英語がしんどい。けど何だかんだで楽しい。"といった発言を聞いて、自分も似たようなもんだなと思ったりもした。計算機コースに来て良かった気がする。


次の実験はコンパイラ(TinyC)の作成。コンテスト等も無いので適当に済ます気まんまんである...-ω-);