2007年04月02日
2007年03月17日
CPU実験終了
最終タイムはコンパイラコード 19.628 sec, ハンドアセンブラコード 18.797 secでした。両方記録更新しました。
20秒切れて本当によかった。お疲れ様でした。最高の班で最高の結果でした。4/2までの短い春休みを楽しもうと思います。
P.S
班のwiki等は準備が整ったら公開しようと思います。今日の発表資料・発表模様の動画(thanks to pascalさん)等は、メールを下されば&面識があれば個人的にお送りさせて頂こうと思います。聞き逃された方は、是非どうぞ(笑)
- Permalink
- by
- at 02:27
- Comments (0)
- Trackbacks (0)
2007年03月08日
22.432秒
ヒートシンクは公式に認められた。
Early Restart DCache(id:yama6), CompilerのBranch周りの最適化(id:ushioda)が主。
僕はひたすら安定するDCMを探していた。
そして分岐予測を真剣に検討開始。
Bimodal Branch Predictor or GShare?
- Permalink
- by
- at 21:15
- Comments (0)
- Trackbacks (0)
23.984秒
- Permalink
- by
- at 00:22
- Comments (0)
- Trackbacks (0)
2007年03月07日
ヒートシンクソリューション
ノリでFPGAにヒートシンクを載せてみたら100MHzで動いてしまった。

このボード(VertexⅡ)になってからは歴代1位のタイムです。
さて、後9日で20秒切れるかどうか。
P.S.
もちろんヒートシンク抜きで動くようにタイミング調節しますよ。
- Permalink
- by
- at 19:12
- Comments (0)
- Trackbacks (0)
2007年01月28日
CPU実験: NOP地獄
CPU実験3回目の中間発表が有りました。発表用のパワポを作るためにデータをグラフ化してみたのでここに貼り付けてみます。CPU実験に入ってからというものあまり外部にアウトプットが無いので今、どういう事をしているのかつらつらと書いてみる事にします。
- Permalink
- by
- at 22:52
- Comments (0)
- Trackbacks (0)
2007年01月14日
命令スケジューリング
久びさのCPU実験エントリです。2007年、僕は準コンパイラ係りとして頑張ります。VHDL?なにそれ。OCaml ! Ocaml !
ush compilerに基本ブロック内スケジューリングを実装しました。「コンパイラの構成と最適化 12.4.1 基本ブロック内の命令スケジューリング」に載っているものを実装しました。
- Permalink
- by
- at 03:57
- Comments (0)
- Trackbacks (0)
2006年11月11日
CPU実験(15)
2006年11月09日
CPU実験(14)
2006年11月08日
CPU実験(13)
USB制御回路にバグが有る。
sldファイルを正常に送れない模様。
黒画像は出たけど、これはちょっとはまりそう。
- Permalink
- by
- at 17:54
- Comments (2)
- Trackbacks (0)
2006年11月07日
CPU実験(12)
今日中に動くかと思われたが、制御系のバグがまだ有る模様。
あと2,3個バグを取れば絶対動くはず。
あと fadd を1 clockで返せるかもしれないアイデアを思いついたので、レイトレが動いたら試してみよう。
- Permalink
- by
- at 01:01
- Comments (0)
- Trackbacks (0)
2006年11月04日
CPU実験(10)
Pipelined FPUがとりあえず出来た。
- fadd / sub
- fmul
- itof
- ftoi
- finv
- fsinv
nuさんがfinv, fsinvを書いてくれた。fadd / sub, fmul, finv, fsinvだけだと、「Text-based Post-Place & Route Static Timing Report」によると100MHzで動くらしい。ftoi, itofは意外とHW量食う事が分かったので将来的に無くす方向で。精度チェックもした。とりあえず50MHzで動かすので全然問題は無い。ほんとかな。
しかし10 ns / stageで動かすのは相当骨が折れた。先輩が100HMzで動かしてなかったら努力しなかったと思う。今はFPUだけだが、CPU本体と合わせると配線遅延もあるしまだまだチューニングがいる気がする。先人は偉大だ...。
さて、ISEのバグではまっていらっしゃるnaokiさんの尻を叩けばを手伝えば来週中にレイトレが動くか!?
- Permalink
- by
- at 04:19
- Comments (0)
- Trackbacks (0)
2006年11月03日
CPU実験(9)
FPUも100MHzが見えてきた。
CompilerはregisterAllocationで悶絶している。
本当は今週中に絵を張りたかったのだが...来週こそ。
寝れないとEmacsを立ち上げる人間しか周りにいない。
TV見るぐらいなら、Emacs立ち上げる。
そのための、alias e='emacs -nw'なのです。
- Permalink
- by
- at 04:51
- Comments (2)
- Trackbacks (0)
2006年10月27日
CPU実験(8)
レイトレ用アーキテクチャでfibが動いた。後はFPUが動けば絵が出そうな気がする。
という訳で頑張ってはいるのだが、全然速くならない。原因は分かっていて、VHDLという言語の理解の浅さに起因する。どうも実際に落とされる回路をイメージしながら書かないとカリカリに高速化出来ないよ。まぁとりあえず遅くても動くのを作ったら、ちょっと手を止めてXilinxのマニュアルを精読して(特にLibraries GuideとXST Guide)、高速化するための前提知識を蓄えよう。
- Permalink
- by
- at 14:28
- Comments (0)
- Trackbacks (0)
2006年10月23日
CPU実験(7)
中間発表でした。うちの班はシミュレーター上でレイトレ完動、実機でSRAMを使ったfibが動作という感じでした。なんか発表してたら皆ひいててちょっと焦った(笑)
- Permalink
- by
- at 21:26
- Comments (3)
- Trackbacks (0)
2006年10月21日
CPU実験(6)
CPU実験(3)
- Permalink
- by
- at 07:19
- Comments (1)
- Trackbacks (0)
2006年10月18日
CPU実験(2)

素因数分解日本記録保持者であられる所のnuさんにより、手押しクロックとLEDが構築された(左下の基盤)。デバッグ効率あがりまくり、らしい。地下に高橋名人がいらっしゃったので今度是非、手押しクロック秒間16連射を見せてもらいたいと思う。
僕はushさんと一緒にcompiler & simulator & assemblerのバグ潰し。4億インストラクションのアッカーマン関数が動いたらしい。シミュレーターでレイトレが走りそう。
月曜日に発表があるのでパワーポイントという凄いソフトを買おうかな、と思っている。学科で配布されないのはどうしたものか。ぷろぐらむなんて書けなくてもこれが使いこなせれば食っていけるといううわさなのに。
- Permalink
- by
- at 18:03
- Comments (4)
- Trackbacks (0)
2006年10月17日
お泊り
先週は何日、夜を学校で過ごしたっけか。とりあえず昼夜逆転しててもぅ意味不明。昨日は体調悪い & 眠すぎで午後の授業さぼって家で寝た。気づいたら朝。生活リズムが元に戻った。
- Permalink
- by
- at 08:41
- Comments (0)
- Trackbacks (0)
2006年10月14日
CPU実験を語る会
is2005の先輩方が色々とノウハウを発表してくださいました。他にも院生の人達と色々話したり。かなり楽しかった。多少黒い話もありましたが(笑)。色々夢も有るのですが、とりあえず堅実に1つ1つ実装して行く方針です。
しかし今週は4日ほど泊まり込んでしまっています。24日の発表までにとりあえずシミュレーター上でのレイトレ完動、そして出来たら今月中にFPUを実装しきってしまいたいと思います(これはきつそう)。もう昼か夜か分からない。
- Permalink
- by
- at 06:45
- Comments (0)
- Trackbacks (0)
2006年10月10日
CPU実験(1)
始まってます。面白すぎる。
とりあえずfibを動かそうという感じでチームが動いています。僕の作業としてはasm, simulatorを書いて、compilerの吐いたfibやgcdを動かしました。fib用命令セットがあまりにもしょぼかった & 仕様が甘かったので、本日レイトレ用の命令セットをきっちり策定。opcode formatも決めたかったのですが、HW屋さんが忙しそうなので夕方ぐらいからFPUを作り始めました。
基本的にIEEE 754 単精度に沿って、非正規化数は無視する方針です。Zero・NaN・Infinite等は考えて無いのですが、とりあえず1.0 + 2.0等が動いたみたいです。きちんとしたテストを通すのはかなりしんどそうです...。
- Permalink
- by
- at 02:00
- Comments (2)
- Trackbacks (0)













