森田/日誌/2009-02-26
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-To do
--perlを思い出す
--遅延スロット導入スクリプトを作成(今日中にできたらいいなぁ)
-進捗
--なぜかTabを区切り文字として認識しない。保留。
while (my $line = <IN>){
chomp($line);
my($inst,$reg1,$reg2)=split(/\t+/,$line);
}
--自己解決。元のソースファイルがおかしかっただけです本当にありがとうございました。
--ラインを読み取り、命令や文の形により3つに分岐。
---ラベルやコメントなどはなにもせずに出力
---分岐命令でない命令は一旦出力せずに保存。その際、保存されている命令を参照レジスタによって出力
---分岐命令がきたら、遅延可能命令が分岐命令で参照されてないかを判断した上で出力順番を変える
--大体完成。動作確認中。
---しかし、PerlにはなんでNULLがないんだ。
--バグ多すぎわろた なれない言語は使うもんじゃないね。
---今日中に終わるかなぁ・・・?
25:29
一応完成。だけど、そこまで厳密にやってないんで逆にクロック増えるかもしれない。そのうち改善するつもり。でも、実装するとエラー起きるんでまだ改善されたかどうかわからず。~
アセンブラ上は問題ないように見えるんですけど、ログ見ると分岐命令のあとにnop nopと並んでもフラッシングしてるんで、回路で分岐命令から3クロック後はフラッシュするようになってる? ストアロードが遅延スロットに送れないってことはないと思うんだけどなぁ。~
まぁ、今日は力尽きたのでこんな感じで終わります。~
-現versionの問題点
--参照している命令と、保存されている命令の間にレジスタの繋がりがあるかどうかを判定して、繋がりがある命令ならば出力という形式。
--よって、保存されている命令とつながりはあるが、二つセットなら後ろにずらせるという形態が実現不可能。
・ソース
ldli r0, #10
ld r1, (r0)
ldli r2, #1
sub r1, r2
st (r0), r1
jmp L008
・現時点での遅延スロット導入
ldli r0, #10 #referenced by ld r1, (r0)
ld r1, (r0) #referenced by sub r1, r2
ldli r2, #1 #referenced by sub r1, r2
sub r1, r2 #referenced by st (r0), r1
jmp L008
st (r0), r1 #Delay slot 1
nop #Delay slot 2
・理想の遅延スロット導入
ldli r0, #10
ld r1, (r0)
ldli r2, #1
jmp L008
sub r1, r2
st (r0), r1
--とりあえず、今の遅延スロットが動いたら考えます。
#comment
終了行:
-To do
--perlを思い出す
--遅延スロット導入スクリプトを作成(今日中にできたらいいなぁ)
-進捗
--なぜかTabを区切り文字として認識しない。保留。
while (my $line = <IN>){
chomp($line);
my($inst,$reg1,$reg2)=split(/\t+/,$line);
}
--自己解決。元のソースファイルがおかしかっただけです本当にありがとうございました。
--ラインを読み取り、命令や文の形により3つに分岐。
---ラベルやコメントなどはなにもせずに出力
---分岐命令でない命令は一旦出力せずに保存。その際、保存されている命令を参照レジスタによって出力
---分岐命令がきたら、遅延可能命令が分岐命令で参照されてないかを判断した上で出力順番を変える
--大体完成。動作確認中。
---しかし、PerlにはなんでNULLがないんだ。
--バグ多すぎわろた なれない言語は使うもんじゃないね。
---今日中に終わるかなぁ・・・?
25:29
一応完成。だけど、そこまで厳密にやってないんで逆にクロック増えるかもしれない。そのうち改善するつもり。でも、実装するとエラー起きるんでまだ改善されたかどうかわからず。~
アセンブラ上は問題ないように見えるんですけど、ログ見ると分岐命令のあとにnop nopと並んでもフラッシングしてるんで、回路で分岐命令から3クロック後はフラッシュするようになってる? ストアロードが遅延スロットに送れないってことはないと思うんだけどなぁ。~
まぁ、今日は力尽きたのでこんな感じで終わります。~
-現versionの問題点
--参照している命令と、保存されている命令の間にレジスタの繋がりがあるかどうかを判定して、繋がりがある命令ならば出力という形式。
--よって、保存されている命令とつながりはあるが、二つセットなら後ろにずらせるという形態が実現不可能。
・ソース
ldli r0, #10
ld r1, (r0)
ldli r2, #1
sub r1, r2
st (r0), r1
jmp L008
・現時点での遅延スロット導入
ldli r0, #10 #referenced by ld r1, (r0)
ld r1, (r0) #referenced by sub r1, r2
ldli r2, #1 #referenced by sub r1, r2
sub r1, r2 #referenced by st (r0), r1
jmp L008
st (r0), r1 #Delay slot 1
nop #Delay slot 2
・理想の遅延スロット導入
ldli r0, #10
ld r1, (r0)
ldli r2, #1
jmp L008
sub r1, r2
st (r0), r1
--とりあえず、今の遅延スロットが動いたら考えます。
#comment
ページ名: