第15回ASICデザインコンテスト/前田・山本作業用
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[第15回ASICデザインコンテスト]]
*第15回ASICデザインコンテスト/作業用 [#d31c76e6]
#contents
**設計方針 [#re77b7d2]
**改良案 [#a4b71fcb]
**役割 [#i7557c24]
-前田
-山本
**ToDo [#p3b9505a]
***前田 [#mbdaee9c]
-%% 中間コードを用いた最適化の検討 %%
--構文木レベルの最適化でも手書きアセンブリプログラムと同等のコードが吐き出されるようになったので、中間コードの採用はしない方針。
-主に論理合成スクリプトや最適化方法について調べる。
***山本 [#a312ece8]
-%%いろんなプロセッサを知る, 高速な加算器を理解する, さっさと実装する, 動作確認をする, デバッグ,arg を退避する,マルチサイクルのままつめる,パイプライン化%%
-次の一手を考える
**進捗状況 [#z872423d]
**スケジュール [#o94cf62a]
[共通]
03月03日-03月07日 : アーキテクチャの基本方針決定/仕様策定
03月16日-03月17日 : 一旦完成したCPU/コンパイラに対して性能評価を行う
04月01日-04月09日 : 論文作成/添削
[回路設計]
03月01日-03月04日 : APPNAの実装
03月05日-03月07日 : PARTHENONによる例題パッケージの合成とSUB命令追加
03月08日-03月15日 : アーキテクチャの仕様に基づいたCPUの、SFLによるプログラミング
03月16日-03月19日 : デバッグ
03月20日-03月XX日 :
[コンパイラ]
03月01日-03月07日 : コンパイラの最適化技法の調査及びyacc/lexによるプログラミングに慣れる
03月08日-03月15日 : アーキテクチャの仕様に基づいた字句解析器及び構文解析器のプログラミング
03月16日-03月18日 : 中間コード生成プログラムと、アセンブリコードを生成するバックエンド部の作成
03月19日-03月22日 : 中間コードに対して各種最適化技術の実装
03月23日-03月28日 : 論理合成系に関する調査
**評価の記録 [#rf965ca7]
|日付|リビジョン|power|th|recur|sort|エネルギー・時間積(TxE)|方法|備考|
|2010年03月04日|SN/Xオリジナル|5680.1|63.6|323|26216||||
|2010年03月05日||5680.0|65.4|303|22940||回路|減算回路の追加|
|2010年03月20日|r1|8728.4|56.4|405|16,210|3.23|回路|オリジナルアーキテクチャ|
|2010年03月20日|r2|8728.4|56.4|405|16,210|3.23|その他|Makefileの修正|
|2010年03月21日|r3|8141.6|56.6|405|16,210|&color(blue){3.04};|回路|base,opreg2をそれぞれmar,opreg1と共有|
|2010年03月21日|r4|7774.5|53.6|405|16,210|&color(blue){2.74};|回路|マルチプレクサの最適化(EXE2ステージ)|
|2010年03月21日|r5|6241.5|69.6|405|16,210|&color(red){2.85};|回路|opreg1を削除して命令メモリ流しっぱなし|
|2010年03月21日|r6|6241.5|69.6|405|16,210|2.85|アセンブラ|アセンブラがコメント文(//hogehoge)に対応|
|2010年03月21日|r7|6241.5|69.6|333|16,206|&color(blue){2.34};|コンパイラ|ZERO_ADRS初期化命令の削除及びARGの属性を変数へ変更|
|2010年03月22日|r8|6241.5|69.6|333|14,214|&color(blue){2.06};|コンパイラ|FOR文の継続条件ロードの最適化及びPP/MMの最適化(i=i+-imm, i=imm+i)|
|2010年03月22日|r9|6241.5|69.6|333|12,614|&color(blue){1.82};|コンパイラ|配列アドレスに関する命令(MLD,MST)の最適化|
|2010年03月22日|r10|6241.5|69.6|333|10,334|&color(blue){1.49};|コンパイラ|配列のインデックスアドレスの最適化|
|2010年03月22日|r11|8479.9|54.1|333|10,334|&color(red){1.58};|回路|r2をベースにマルチプレクサの最適化|
|2010年03月22日|r12|8479.9|54.1|309|9,574|&color(blue){1.36};|コンパイラ|代入命令の構文木の右ノードがoprの場合の最適化|
|2010年03月23日|r13|8479.9|54.1|289|9,574|&color(blue){1.27};|コンパイラ|関数コール時の不必要な命令の削除|
|2010年03月25日|r14|9913.5|49.8|186|6,173|&color(blue){0.57};|回路|パイプライン化|
|2010年03月26日|r15|10011.6|42.7|186|6,173|&color(blue){0.49};|回路|RET, CAL, BEQ のときにALUを使わないようにした|
|2010年03月26日|r16|10181.0|42.5|180|6,173|&color(blue){0.48};|回路|CAL のときは飛び先が確定しているので、フォワーディング|
|2010年03月27日|r17|10090.6|54.8|135|4,662|&color(blue){0.35};|回路|メモリの同時読書きを可能にし、それに合わせパイプラインを改良|
|2010年03月27日|r18|10343.1|42.4|135|4,662|&color(blue){0.276};|回路|デコードをEXE1ステージで行うようにした|
|2010年03月27日|r19|10300.2|42.4|135|4,662|&color(blue){0.275};|回路|不必要な baseの書き換えを行わないようにした|
|2010年03月27日|r20|10267.6|42.3|135|4,662|&color(blue){0.274};|回路|sel_vをselに変更|
|2010年03月28日|r21|10267.6|42.3|135|4,662|0.274|その他|SVN管理下の不必要な一時ファイルの削除|
|2010年03月28日|r22|10583.4|52.0|123|3,954|&color(blue){0.268};|回路|BEQのときに無条件ストールしないようにした|
|2010年03月29日|r23|10314.4|49.4|123|3,954|&color(blue){0.248};|回路|記述の最適化|
|2010年03月29日|r24|10276.2|47.2|123|3,954|&color(blue){0.236};|回路|IFステージのaltの最適化|
|2010年03月29日|r25|10276.2|47.2|110|3,954|&color(blue){0.212};|コンパイラ|SLT/SLTE及びFUNC+FUNCの最適化|
|2010年03月29日|r26|10278.5|51.7|110|3,954|&color(red){0.231};|回路|assign collision の解消|
|2010年03月29日|r27|10105.7|50.4|110|3,954|0.221|回路|レジスタbaseをmdrと共有(MLDは必ず1クロックストールするので衝突しない)|
|2010年03月29日|r28|10228.5|51.0|104|3,954|0.214|回路|RETのストールを減らした(2回->1回)|
|2010年03月29日|r29|10540.3|49.9|97|3,574|&color(blue){0.182};|回路|記述の大幅な見直し&br();pcを1つ増やしステージごとにもうけた&br();フラッシュ・ストールの信号と分岐先アドレスを示すワイヤを統一した|
|2010年03月29日|r30|10540.3|49.9|97|3,574|0.182|コンパイラ|定数畳み込みに関するバグの修正|
|2010年03月29日|r31|10714.7|56.5|86|3,363|&color(blue, 0.175);|回路|静的分岐予測(後方分岐)の実装|
|2010年03月30日|r32|10741.6|55.3|86|3,363|&color(blue, 0.172);|回路|opr1とopr2の一致判定回路を不一致判定回路に変更(opr1eqopr1 -> opr1&color(red){n};eqopr2)|
|2010年04月03日|r33|10662.2|56.7|80|3,363|&color(blue, 0.163);|回路|r31を基にCAL命令の最適化|
|2010年04月03日|r34|10538.4|56.7|80|3,363|&color(blue, 0.161);|回路|Han-Carlson Adderの最適化|
|2010年04月04日|r35|10017.8|23.5|80|3,363|&color(blue, 0.063);|その他|論理合成スクリプトの為の記述最適化|
|2010年04月04日|r36|9923.8|23.5|80|3,363|0.063|その他|assign collisionの解消とwhile文バグの修正|
|2010年04月05日|r37|9923.8|23.5|80|3,363|0.063|その他|read信号が0のときは不定値を流すようにメモリを修正|
|2010年04月05日|r38|9923.8|23.5|80|3,363|0.063|その他|規程課題の仕様に合わせたメモリ記述に変更|
|2010年04月07日|r39|9923.8|23.5|80|3,363|0.063|コンパイラ|while文のバグの修正その2|
**工夫した点や改良点 [#z67bba70]
***回路設計 [#r8582e73]
***コンパイラ [#ja44aded]
-変数の負数表現をsub命令で代用
**コメント [#c9fbe8f4]
このグループの活動に対する提案、意見、質問などはこちらから。
#comment
終了行:
[[第15回ASICデザインコンテスト]]
*第15回ASICデザインコンテスト/作業用 [#d31c76e6]
#contents
**設計方針 [#re77b7d2]
**改良案 [#a4b71fcb]
**役割 [#i7557c24]
-前田
-山本
**ToDo [#p3b9505a]
***前田 [#mbdaee9c]
-%% 中間コードを用いた最適化の検討 %%
--構文木レベルの最適化でも手書きアセンブリプログラムと同等のコードが吐き出されるようになったので、中間コードの採用はしない方針。
-主に論理合成スクリプトや最適化方法について調べる。
***山本 [#a312ece8]
-%%いろんなプロセッサを知る, 高速な加算器を理解する, さっさと実装する, 動作確認をする, デバッグ,arg を退避する,マルチサイクルのままつめる,パイプライン化%%
-次の一手を考える
**進捗状況 [#z872423d]
**スケジュール [#o94cf62a]
[共通]
03月03日-03月07日 : アーキテクチャの基本方針決定/仕様策定
03月16日-03月17日 : 一旦完成したCPU/コンパイラに対して性能評価を行う
04月01日-04月09日 : 論文作成/添削
[回路設計]
03月01日-03月04日 : APPNAの実装
03月05日-03月07日 : PARTHENONによる例題パッケージの合成とSUB命令追加
03月08日-03月15日 : アーキテクチャの仕様に基づいたCPUの、SFLによるプログラミング
03月16日-03月19日 : デバッグ
03月20日-03月XX日 :
[コンパイラ]
03月01日-03月07日 : コンパイラの最適化技法の調査及びyacc/lexによるプログラミングに慣れる
03月08日-03月15日 : アーキテクチャの仕様に基づいた字句解析器及び構文解析器のプログラミング
03月16日-03月18日 : 中間コード生成プログラムと、アセンブリコードを生成するバックエンド部の作成
03月19日-03月22日 : 中間コードに対して各種最適化技術の実装
03月23日-03月28日 : 論理合成系に関する調査
**評価の記録 [#rf965ca7]
|日付|リビジョン|power|th|recur|sort|エネルギー・時間積(TxE)|方法|備考|
|2010年03月04日|SN/Xオリジナル|5680.1|63.6|323|26216||||
|2010年03月05日||5680.0|65.4|303|22940||回路|減算回路の追加|
|2010年03月20日|r1|8728.4|56.4|405|16,210|3.23|回路|オリジナルアーキテクチャ|
|2010年03月20日|r2|8728.4|56.4|405|16,210|3.23|その他|Makefileの修正|
|2010年03月21日|r3|8141.6|56.6|405|16,210|&color(blue){3.04};|回路|base,opreg2をそれぞれmar,opreg1と共有|
|2010年03月21日|r4|7774.5|53.6|405|16,210|&color(blue){2.74};|回路|マルチプレクサの最適化(EXE2ステージ)|
|2010年03月21日|r5|6241.5|69.6|405|16,210|&color(red){2.85};|回路|opreg1を削除して命令メモリ流しっぱなし|
|2010年03月21日|r6|6241.5|69.6|405|16,210|2.85|アセンブラ|アセンブラがコメント文(//hogehoge)に対応|
|2010年03月21日|r7|6241.5|69.6|333|16,206|&color(blue){2.34};|コンパイラ|ZERO_ADRS初期化命令の削除及びARGの属性を変数へ変更|
|2010年03月22日|r8|6241.5|69.6|333|14,214|&color(blue){2.06};|コンパイラ|FOR文の継続条件ロードの最適化及びPP/MMの最適化(i=i+-imm, i=imm+i)|
|2010年03月22日|r9|6241.5|69.6|333|12,614|&color(blue){1.82};|コンパイラ|配列アドレスに関する命令(MLD,MST)の最適化|
|2010年03月22日|r10|6241.5|69.6|333|10,334|&color(blue){1.49};|コンパイラ|配列のインデックスアドレスの最適化|
|2010年03月22日|r11|8479.9|54.1|333|10,334|&color(red){1.58};|回路|r2をベースにマルチプレクサの最適化|
|2010年03月22日|r12|8479.9|54.1|309|9,574|&color(blue){1.36};|コンパイラ|代入命令の構文木の右ノードがoprの場合の最適化|
|2010年03月23日|r13|8479.9|54.1|289|9,574|&color(blue){1.27};|コンパイラ|関数コール時の不必要な命令の削除|
|2010年03月25日|r14|9913.5|49.8|186|6,173|&color(blue){0.57};|回路|パイプライン化|
|2010年03月26日|r15|10011.6|42.7|186|6,173|&color(blue){0.49};|回路|RET, CAL, BEQ のときにALUを使わないようにした|
|2010年03月26日|r16|10181.0|42.5|180|6,173|&color(blue){0.48};|回路|CAL のときは飛び先が確定しているので、フォワーディング|
|2010年03月27日|r17|10090.6|54.8|135|4,662|&color(blue){0.35};|回路|メモリの同時読書きを可能にし、それに合わせパイプラインを改良|
|2010年03月27日|r18|10343.1|42.4|135|4,662|&color(blue){0.276};|回路|デコードをEXE1ステージで行うようにした|
|2010年03月27日|r19|10300.2|42.4|135|4,662|&color(blue){0.275};|回路|不必要な baseの書き換えを行わないようにした|
|2010年03月27日|r20|10267.6|42.3|135|4,662|&color(blue){0.274};|回路|sel_vをselに変更|
|2010年03月28日|r21|10267.6|42.3|135|4,662|0.274|その他|SVN管理下の不必要な一時ファイルの削除|
|2010年03月28日|r22|10583.4|52.0|123|3,954|&color(blue){0.268};|回路|BEQのときに無条件ストールしないようにした|
|2010年03月29日|r23|10314.4|49.4|123|3,954|&color(blue){0.248};|回路|記述の最適化|
|2010年03月29日|r24|10276.2|47.2|123|3,954|&color(blue){0.236};|回路|IFステージのaltの最適化|
|2010年03月29日|r25|10276.2|47.2|110|3,954|&color(blue){0.212};|コンパイラ|SLT/SLTE及びFUNC+FUNCの最適化|
|2010年03月29日|r26|10278.5|51.7|110|3,954|&color(red){0.231};|回路|assign collision の解消|
|2010年03月29日|r27|10105.7|50.4|110|3,954|0.221|回路|レジスタbaseをmdrと共有(MLDは必ず1クロックストールするので衝突しない)|
|2010年03月29日|r28|10228.5|51.0|104|3,954|0.214|回路|RETのストールを減らした(2回->1回)|
|2010年03月29日|r29|10540.3|49.9|97|3,574|&color(blue){0.182};|回路|記述の大幅な見直し&br();pcを1つ増やしステージごとにもうけた&br();フラッシュ・ストールの信号と分岐先アドレスを示すワイヤを統一した|
|2010年03月29日|r30|10540.3|49.9|97|3,574|0.182|コンパイラ|定数畳み込みに関するバグの修正|
|2010年03月29日|r31|10714.7|56.5|86|3,363|&color(blue, 0.175);|回路|静的分岐予測(後方分岐)の実装|
|2010年03月30日|r32|10741.6|55.3|86|3,363|&color(blue, 0.172);|回路|opr1とopr2の一致判定回路を不一致判定回路に変更(opr1eqopr1 -> opr1&color(red){n};eqopr2)|
|2010年04月03日|r33|10662.2|56.7|80|3,363|&color(blue, 0.163);|回路|r31を基にCAL命令の最適化|
|2010年04月03日|r34|10538.4|56.7|80|3,363|&color(blue, 0.161);|回路|Han-Carlson Adderの最適化|
|2010年04月04日|r35|10017.8|23.5|80|3,363|&color(blue, 0.063);|その他|論理合成スクリプトの為の記述最適化|
|2010年04月04日|r36|9923.8|23.5|80|3,363|0.063|その他|assign collisionの解消とwhile文バグの修正|
|2010年04月05日|r37|9923.8|23.5|80|3,363|0.063|その他|read信号が0のときは不定値を流すようにメモリを修正|
|2010年04月05日|r38|9923.8|23.5|80|3,363|0.063|その他|規程課題の仕様に合わせたメモリ記述に変更|
|2010年04月07日|r39|9923.8|23.5|80|3,363|0.063|コンパイラ|while文のバグの修正その2|
**工夫した点や改良点 [#z67bba70]
***回路設計 [#r8582e73]
***コンパイラ [#ja44aded]
-変数の負数表現をsub命令で代用
**コメント [#c9fbe8f4]
このグループの活動に対する提案、意見、質問などはこちらから。
#comment
ページ名: