5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Simplescalar使えます?

1 :名無しさん@1周年:01/10/20 19:39
takenや2levの分岐予測の場合に
sim-outorderとsim-bpredで統計の結果が違うのが理解できません
どなたか、お願いします

2 :名無しさん@1周年:01/10/21 21:08
outorderで投機的に実行されてる部分のブランチ命令も
統計の結果に含まれてるんじゃないの?

3 :名無しさん@1周年:01/10/22 23:26
ちょっとやってみた感じ、変わったともなかったけど、
とりあえず、いろいろ設定いじってやって結果みてみます

4 :名無しさん@1周年:01/10/22 23:39
http://www.f2.dion.ne.jp/~impact8/

5 :名無しさん@1周年:01/10/23 00:12
sim-outorderでfetch、decode、issueの幅を1にして、
inorder実行をtrue、wrongpath実行をfalseにしたけど
変わらない・・
というか、sim-outorderだと分岐予測をtakenにしてもnottakenにしても
結果が変わらないのはどういうわけだぁ・・・
sim-bpredだと納得いく結果が出るのに・・・

6 :名無しさん@1周年:01/10/24 14:38
spec_updateをIDにしたら、
2lev,bimod,combにおいて、sim-orderとsim-bpredで分岐結果がほぼ等しくなったけど
sim-outorderにおけるtakenとnottakenの挙動がどうしても理解不能です

7 :名無しさん@1周年:01/10/25 14:28
何がやりたいのかよくわからない。
sim-outorderとsim-bpredで結果が等しくなるように出来てるわけじゃないよね。
結果が異なるのならsim-outorderの方が正しい。
(simplescalarにおいて。simplescalarが現実のプロセッサをちゃんと反映してるかどうかは別)
sim-bpredはブランチプレディクション以外はサボってるけど、スピードが早いだけ。

8 :名無しさん@1周年:01/10/25 16:09
個々のアドレスごとの分岐予測の結果を知りたいのでsimplescalarを使おうと思いました
sim-bpredだと、アドレス単位での結果が取れないので
sim-outorderを使うことにしました

けど、sim-outorderでアドレス単位の分岐ミスのデータを出してみると
分岐以外の場所でカウントしてたり、わけわからないぃって思いまして・・・
2で言われているように、投機的実行とかがいけないのかなぁということで
できるだけ単純なプロセッサっぽい設定にして、結果を出してみたら、
いちおう、分岐アドレスで分岐ミスのカウントがされているので
良かった良かったと思いました

しかし、一通りの分岐設定で結果を出してみたら
takenとnottakenのデータが変だなぁってかんじたのです
何故か、takenとnottakenで結果が同じなんです
sim-bpredだと両方とも納得する値が出るのですが
(sim-bpredだと下のようになります。全ての値は実行された総数です)
(takenの分岐ミス+nottakenの分岐ミス+無条件分岐数=総分岐数)

sim-outorderだと、taken、nottaken共に分岐ミスの回数が一緒で
おそらく全ての条件分岐を分岐せずに次のPCの命令と予測しているようなのです
その上、無条件分岐も分岐しないと予測しているようです
以下のようになります
(takenの分岐ミス=nottakenの分岐ミス=条件分岐の分岐する総数+無条件分岐の総数)

これが疑問に感じたことで、みなさんはどうなんでしょうか?
自分が根本的に勘違いしているのですか?
意見を聞かせてください

多少言葉に誤りがあるかもしれませんので、指摘してくれると嬉しいです

9 :名無しさん@1周年:01/10/25 16:36
http://www2u.biglobe.ne.jp/~hole/

10 :名無しさん@1周年:01/10/25 18:54
たしかにsim-outorderだとnottakenにしてもtakenと同じになるね。
なんでだろう。

11 :名無しさん@1周年:01/10/25 19:12
http://www.f2.dion.ne.jp/~goldman/

12 :名無しさん@1周年:01/10/25 20:02
なんとなくわかった。
bpredはインチキなのでブランチプレディクションするときには
分岐先のアドレスはすべて計算済みってことらしい。
だから、takenもnottakenも選べる。

一方、outorderはその命令がブランチ命令であるといった情報しかない。
プリデコードのブランチビットを想定してるそうな。
こっちはターゲットのアドレスがわからないのでtakenは意味がない。
(プレディクション先のアドレスがわからない場合にはPC+1に
するので実質的にはtakenはnottaken)

13 :名無しさん@1周年:01/10/25 20:16
ううむ・・・良くわからない・・w
Cできなきゃまずいのかなぁ・・・

プリデコードのブランチビットってのはどういうことでしょうか?

ようするに、sim-outorderにおけるtakenとnottakenを出すアルゴリズムが間違ってるってことですよね?
けど、それ以外の分岐予測はうまく働く・・・

takenとnottakenのアルゴリズムが適当と言う結論かな

14 :名無しさん@1周年:01/10/25 20:50
プリデコードはCPUを実装する時の話。
simplescalarがそれを意識してるってこと。
分からなければ気にしなくても良い。

アルゴリズムは間違ってはない。むしろ正しい。
けど、takenとnottakenのアルゴリズムが適当ってのは妥当かな。

単純にtakenって言っても、実際には分岐先のアドレスがわからないと意味がない。
sim-outorderはフェッチユニッにはアドレスがわからないってのを忠実に再現してる。
nottakenも無条件分岐ではtakenなので影響を受ける。
それ以外のアルゴリズムってのは予測になんらかのテーブルを使ってて、
そこからアドレスを予測するから本当の分岐先が分からなくても予測できる。

だから本当に意味のあるtakenを実際のCPUに実装したければbimodみたいにBTBが
あればいいってことになるんだろうけど、それならbimodのほうがいいわけで・・・。

15 :名無しさん@1周年:01/10/25 21:39
フェッチ段階で分岐ということが解るが、分岐先が解らないって事ですか・・・
分岐先が解らないから、分岐しないと予測する。
ということは、初めて出会う分岐はどの予測でも分岐しないと予測しているって事ですかね?
それとも根本的に評価方法が異なるのかな?

実際に、分岐をどちらかに決めうちするCPUってのは存在しましたよね?
プリデコードの段階で分岐先も一緒にキャッシュしちゃうってのは無理なんでしょうか?

それと、「適当」というのは、「ふさわしい」という意味ではなく
「いい加減な」という意味で使いました(^^;いいのかな?

一応sim-outorderは、分岐先のアドレスと分岐方向の予測結果を別々に出してるから
分岐方向くらいはちゃんと正しい値を現して欲しかった・・・・
自分で直せってことなんだろうな(TT
まぁ、「分岐しないと予測した結果」という確証が得られたので
無条件分岐と条件分岐ごとに分岐の実行回数と比較して値を取れば求めるものは出ますね

16 :名無しさん@1周年:01/10/25 21:40
いろいろ助言ありがとうございます

17 :fewe:01/10/25 23:04
えおくぉおおqwpw

18 :名無しさん@1周年:01/10/28 16:28
Simplescalar-PISA用に配布されているSPEC95とSPEC2000のコンパイル済みのバイナリを
TESTインプットで実行してますが一部(SPEC2000のperlbmkやtwolf)で
panic: invalid/unimplemented system call encountered, code 128 [sys_syscall:sysc
all.c, line 2079]
と出て正常に実行できません
バージョンは3.0bを使っていますが、どなたか解決策を知りませんか?

19 :名無しさん@1周年:01/10/29 00:04
バージョン3の入手方法を教えてもらえませんか?

20 :名無しさん@1周年:01/10/29 00:21
ここのサイトにバージョン2のftp先が書いてあるけど
http://www.cs.wisc.edu/~mscalar/simplescalar.html
バージョン3も行けば同じ場所においてあるよ

21 :19:01/10/30 15:35
>>20
ありがと、盲点だったよ。

22 :名無しさん@1周年:01/11/06 10:55
あんまり関係ないけど
execution-drivenシミュレータとtrace-dirvenシミュレータ
の違いを教えてくれませんか?

23 :名無しさん@1周年:02/09/29 22:08
エド…帰ってこい

24 :ユーポス:02/11/05 05:48
うったったー

25 :名無しさん@1周年:02/11/09 05:50
うpしる!

26 :名無しさん@3周年:03/01/30 14:55
ttp://ime.nu/www.eternal.rest.org.uk/58cy/flesh/3rd-ci53/b268-119.jpg

27 :名無しさん@3周年:03/03/16 03:58
http://moepachi.s2.x-beat.com/cgi-bin/file/1047665749.zip

28 :名無しさん@3周年:03/11/16 18:30
文献では97とか出てるのに、分岐予測の成功率が90%台後半にならない。。
なぜだか分かる人いませんか?

29 :名無しさん@3周年:03/11/16 20:12
さらにbimodの方が2レベル分岐予測より精度いいんですけど。
なんでですか?

8 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)