安田/輪講メモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[安田]]
#contents
* RPR2009に関するメモ [#c13c84b8]
分かったことを簡単にまとめてみる(ちゃんとした文章ではない)
** 2.6章でわかっておくポイント->説明できるように [#r9293022]
-Dynamic schedulingって何?
-なんでROBを追加したのか? ROBのメリットって?
-図2.14はどう動いてる? ROBを追加して何が変わった?
** 改良の流れ [#o42ccae7]
-インオーダー実行。
-パイプライン化。
-アウトオブオーダー実行。
-スコアボード。
-Tomasuloアルゴリズム。
-Reorder buffer
** 動的スケジューリング(Dynamic scheduling) [#be9ccc17]
パイプラインでデータハザードが起こらないようにハードウェアが命令の実行順序を変えること。~
実行順序を変えるとハザードが発生するので、その回避が必要。~
(この項目は、日本語版ヘネパタを読んでまとめたものです)
-スコアボード
--データ依存がなければアウトオブオーダー実行(Out-of-order execution)。
---ただし、アウトオブオーダー実行ではハザードが発生するので、その制御が必要。
--スコアボードが、ハザード検出、命令の発行、実行の制御を行う。
--パイプライン化すると、スコアボードがステージごとにレジスタやオペランドを制御してハザードを解消する。
-Tomasuloアルゴリズム
--スコアボードに集中していたハザード検出や命令実行制御が分散されてる。
--WARやWAWハザードが起こらない仕組みになってる。
---reservation stationとかロード/ストアバッファ。
--Reservation station
---発行はしたけど実行を始められない命令とか、実行制御に必要な情報はココに保持される。
--Common data bus(CDB)
---実行結果はレジスタを経由せずにCDBを通ってfunctional unit(reservation stationとかバッファとかレジスタ)に直接バイパスされる。
---スコアボードで起こる可能性があったレジスタへのアクセスの競合を避けられる。
---一つの実行結果をCDBによって複数のあて先にブロードキャストできる。reservation stationでこの結果を待ってる(かもしれない)命令に渡してやれる。
--ロードバッファ
--ストアバッファ
--reservation stationとかロード/ストアバッファに空きがなければ命令の発行はできない。→構造ハザード
** 投機(Speculation) [#j9ab7347]
分岐がどうなるのかなんていちいち待ってられない。だから分岐の結果を予想してとりあえず実行。~
予想が当たったらそのまま続行。はずれたら今までの取り消して、正しい分岐でやり直し。
-「もはや投機的でない」
--命令を全て発行し終えていて、分岐命令がないと分かったとき?
--あるレジスタが、もうdestination registerにならないと分かったとき?
** 参考になりそうな外部リンク [#k32f8ad2]
ROB:http://csd.ijs.si/courses/trends/tsld056.htm ~
割り込みと例外:http://csd.ijs.si/courses/trends/tsld057.htm
** 疑問 [#pb2a2dd1]
-整数演算命令を多用したプログラムが分岐命令を多く含むのは何故?
終了行:
[[安田]]
#contents
* RPR2009に関するメモ [#c13c84b8]
分かったことを簡単にまとめてみる(ちゃんとした文章ではない)
** 2.6章でわかっておくポイント->説明できるように [#r9293022]
-Dynamic schedulingって何?
-なんでROBを追加したのか? ROBのメリットって?
-図2.14はどう動いてる? ROBを追加して何が変わった?
** 改良の流れ [#o42ccae7]
-インオーダー実行。
-パイプライン化。
-アウトオブオーダー実行。
-スコアボード。
-Tomasuloアルゴリズム。
-Reorder buffer
** 動的スケジューリング(Dynamic scheduling) [#be9ccc17]
パイプラインでデータハザードが起こらないようにハードウェアが命令の実行順序を変えること。~
実行順序を変えるとハザードが発生するので、その回避が必要。~
(この項目は、日本語版ヘネパタを読んでまとめたものです)
-スコアボード
--データ依存がなければアウトオブオーダー実行(Out-of-order execution)。
---ただし、アウトオブオーダー実行ではハザードが発生するので、その制御が必要。
--スコアボードが、ハザード検出、命令の発行、実行の制御を行う。
--パイプライン化すると、スコアボードがステージごとにレジスタやオペランドを制御してハザードを解消する。
-Tomasuloアルゴリズム
--スコアボードに集中していたハザード検出や命令実行制御が分散されてる。
--WARやWAWハザードが起こらない仕組みになってる。
---reservation stationとかロード/ストアバッファ。
--Reservation station
---発行はしたけど実行を始められない命令とか、実行制御に必要な情報はココに保持される。
--Common data bus(CDB)
---実行結果はレジスタを経由せずにCDBを通ってfunctional unit(reservation stationとかバッファとかレジスタ)に直接バイパスされる。
---スコアボードで起こる可能性があったレジスタへのアクセスの競合を避けられる。
---一つの実行結果をCDBによって複数のあて先にブロードキャストできる。reservation stationでこの結果を待ってる(かもしれない)命令に渡してやれる。
--ロードバッファ
--ストアバッファ
--reservation stationとかロード/ストアバッファに空きがなければ命令の発行はできない。→構造ハザード
** 投機(Speculation) [#j9ab7347]
分岐がどうなるのかなんていちいち待ってられない。だから分岐の結果を予想してとりあえず実行。~
予想が当たったらそのまま続行。はずれたら今までの取り消して、正しい分岐でやり直し。
-「もはや投機的でない」
--命令を全て発行し終えていて、分岐命令がないと分かったとき?
--あるレジスタが、もうdestination registerにならないと分かったとき?
** 参考になりそうな外部リンク [#k32f8ad2]
ROB:http://csd.ijs.si/courses/trends/tsld056.htm ~
割り込みと例外:http://csd.ijs.si/courses/trends/tsld057.htm
** 疑問 [#pb2a2dd1]
-整数演算命令を多用したプログラムが分岐命令を多く含むのは何故?
ページ名: