スライド 1

Similar documents
Microsoft PowerPoint - Lec ppt [互換モード]

計算機アーキテクチャ特論 後半第2回 アウトオブオーダー実行 Out-of-Order Execution

Microsoft PowerPoint - NxLec ppt

< B8CDD8AB B83685D>

Microsoft PowerPoint - Sol7 [Compatibility Mode]

Microsoft PowerPoint - Lec ppt [互換モード]

スライド 1

コンピュータ工学Ⅰ

スライド 1

Microsoft PowerPoint - Chap5 [Compatibility Mode]

コンピュータ工学Ⅰ

Microsoft PowerPoint - Chap4 [Compatibility Mode]

計算機アーキテクチャ

MIPSのマイクロアーキテクチャ

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

スライド 1

Microsoft PowerPoint - Chap3 [Compatibility Mode]

計算機アーキテクチャ

6. パイプライン制御

スライド 1

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

スライド 1

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Microsoft PowerPoint - NxLecture ppt [互換モード]

PowerPoint プレゼンテーション

スライド 1

ソフトウェア基礎技術研修

スライド 1

スライド 1

スライド 1

スライド 1

スライド 1

Microsoft PowerPoint - NxLec ppt

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

CPUスケジューリング

MW100 Modbusプロトコルによるデータ通信の設定について

今回の内容 命令スケジューリング グラフ彩色によるレジスタ割り当て

syougai

Microsoft PowerPoint - 11Web.pptx

15群(○○○)-8編

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Microsoft PowerPoint - 3.3タイミング制御.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint ppt

Microsoft PowerPoint - ProcML-12-3.ppt

Microsoft PowerPoint - arc5

Microsoft PowerPoint - arc12

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

Microsoft PowerPoint - Chap2 [Compatibility Mode]

hard5.pptx

コンピュータの仕組み(1)ハードウェア

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo

Microsoft PowerPoint - NxLec ppt

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

Microsoft PowerPoint ppt

Microsoft PowerPoint - OS04.pptx

05-scheduling.ppt

hard3.pptx

Microsoft PowerPoint - vlsi4.ppt [互換モード]

Microsoft PowerPoint - Lec pptx

スライド 1

ソフトウェア基礎技術研修

スライド 1

2.1 インテル マイクロアーキテクチャー Haswell インテル マイクロアーキテクチャー Haswell は インテル マイクロアーキテクチャー Sandy Bridge とインテル マイクロアーキテクチャー Ivy Bridge の成功を受けて開発された この新しいマイクロアーキテクチャーの

PowerPoint プレゼンテーション

ソフトウェア基礎技術研修

Prog1_12th

情報科学概論

Microsoft PowerPoint - 09_2008_0619.pptx

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

スライド 1

2006年10月5日(木)実施

出 アーキテクチャ 誰が 出 装置を制御するのか 1

スライド 1

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

about MPI

スライド 1

04-process_thread_2.ppt

Microsoft Word - 3new.doc

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint - t-kubo07PN-LAMBDA-slide.ppt

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

Microsoft Word - レポート回答集.docx

Microsoft PowerPoint - NxLec ppt

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

Microsoft PowerPoint - ICD2011UenoSlides.pptx

Microsoft PowerPoint - kougi4.ppt

富士通SPARC64 VII プロセッサ

Microsoft PowerPoint ppt

Microsoft PowerPoint - 鵜飼裕司講演資料shirahama_egg.ppt [互換モード]

Microsoft PowerPoint - kougi9.ppt

MMUなしプロセッサ用Linuxの共有ライブラリ機構

スライド 1

スライド 1

Transcription:

Dispatch 0 年後学期 計算機アーキテクチャ第二 (O) アウトオブオーダ実行プロセッサとバックエンド フロントエンド 命令ウィンドウ : 命令を格納するバッファ ALU Dispatch 命令フェッチ, デコード, リネーミング バックエンド ディスパッチ (dispatch) : 命令ウィンドウに命令を格納する動作 発行 (issue, fire) : 命令ウィンドウから, データ依存が解消された命令を機能ユニットに送り出す動作 ALU Issue ALU Dispatch アウトオブオーダ実行プロセッサの命令パイプライン 命令発行機構 : 97 Rename Dispatch Issue Read Execute Commit IBM 0/9 の浮動小数点ユニットでは アウトオブオーダ実行のための洗練された方式が採用されていた. Robert Tomasulo によって発明されたこの手法では () レジスタリネーミングを導入して WAW ハザードと WAR ハザード ( 偽のデータ依存 ) を排除 () 命令が必要とするオペランドがいつ利用できるかを探知し,RAW ハザードを最尐化 近年のプロセッサでは, この手法のさまざまなバリエーションが採用されているが, これら つの重要な概念は共通の特徴 The Alpha Microprocessor Architecture R. E. Kessler, E. J. McLellan, and D. A. Webb, Compaq Computer Corporation

命令発行機構 : IBM 0/9 の浮動小数点ユニットでは アウトオブオーダ実行を行う洗練された方式が採用されていた Robert Tomasulo によって発明されたこの手法では 命令が必要とするオペランドがいつ利用できるかを探知し RAW ハザードを最尐化 レジスタリネーミングを導入して WAW ハザードと WAR ハザードを回避 近年のプロセッサでは この手法のさまざまなバリエーションが採用されているが これら つの重要な概念は共通の特徴 () レジスタリネーミングを導入して WAW ハザードと WAR ハザードを回避 S と T という つの一時レジスタが利用できると仮定 DIV.D F0,F,F ADD.D F,F0,F8 S.D F,0(R) SUB.D F8,F0,F MUL.D F,F0,F8 DIV.D F0,F,F ADD.D S,F0,F8 S.D S,0(R) SUB.D T,F0,F MUL.D F,F0,T 7 8 それぞれの演算器 (FP 加算器,FP 乗算器など ) は, そこで実行される命令のみを蓄える, 分散化された命令ウィンドウを持つ. これをリザベーションステーションと呼ぶ. リザベーションステーションに, オペランドの値を格納することで, レジスタファイルを経由しないオペランドの受け渡しを実現. 保留中の命令は, その入力を提供するリザベーションステーションの情報 を持つ. 命令がディスパッチ ( リザベーションステーションに格納 ) される時, 保留中のオペランド用のレジスタ指示子をリザベーションステーションの名前にリネームする. 複数の同じレジスタへの書き込みが生じる場合には最後のデータのみをレジスタに書き込む. 9 0 集中化された構成ではなく リザベーションステーションを使用することによる つの重要な利点 () ハザード検出および実行制御の分散化 各機能ユニットはリザベーションステーションに保持された情報によって, そのユニットでいつ命令が実行を始めるかを決める. () 実行結果がレジスタを経由するオーバヘッドを隠蔽 実行結果 ( オペランド ) が格納されているリザベーションステーションから機能ユニットにオペランドが直接渡され, レジスタを経由する必要がない. 実行結果は, 共通の結果バスでバイパスされ, オペランドを待つ全てのリザベーションステーションが同時に値を取得する. このバスは,IBM 0/9 で共通データバス (CDB: common data bus) と呼ばれる. 複数の実行ユニットを備えたパイプラインでは つ以上のバスが必要 ロードバッファの つの機能 計算されるまでの間, 実効アドレスの要素を保持 メモリからデータが到着するのを待っている処理中のロード命令を探知 完了して CDB の利用を待っているロードの結果を保持 ストアバッファの つの機能 計算されるまでの間, 実効アドレスの要素を保持 データ値がストアされるのを待っている処理中のストア命令の書き込み先メモリアドレスを保持 メモリユニットが利用可能になるまで格納するアドレスおよび値を保持 浮動小数点機能ユニットとロードユニットの結果はすべて CDB を経由して, レジスタファイル, リザベーションステーション, ストアバッファに送られる.

. リザベーションステーションへの命令格納 命令キュー ( 正確なデータフローを保証するために FIFO で命令を格納している ) のヘッド ( 先頭 ) から命令を取り出す. 適切な ( 当該命令を処理する演算器の ) リザベーションステーションに空きがある場合は, そこに命令を送る. レジスタファイルがオペランド値を持つ場合, その値も同時にリザベーションステーションに送られる. 空のリザベーションステーションがない場合, 構造ハザードとなり, リザベーションステーションやバッファが解放されるまでストール. オペランド値がレジスタファイルにない場合 ( その値はまだ生成されていない ), オペランド値を生成する命令が格納されているリザベーションステーションを検出する. このステップがレジスタリネーミングに対応し,WAR と WAW ハザードを除去する. 命令実行の開始と実行 (execute) つ以上のオペランドがまだ利用できない場合は, 値が送られてくるのを待ちながら共通データバスを監視する. オペランドが利用可能になった時に, それを待つリザベーションステーションに格納する. すべてのオペランドが利用可能になった時に, そのオペレーションは対応する機能ユニットで実行できる. すなわち, オペランドが利用可能になるまで命令の実行を遅らせることによって, RAW ハザードを回避する. 同じ機能ユニットを利用する複数の命令が同一のクロックサイクルにおいて実行可能になるかもしれない点に注意する. 同じクロックサイクルにおいて, 個々の機能ユニットは異なる命令の実行を開始することができるが, つの機能ユニットに対して つ以上の命令が実行可能であれば, ユニットはそれらの中から つを選択する. 整数演算, 浮動小数点演算のリザベーションステーションについては, この選択は任意の方式で行うことができる. ロードとストアの場合には制約を考慮する必要がある.. 実行 (execute) の続き ロードとストアは 段階の実行過程を必要とする. 第 段階では, ベースレジスタが利用可能な場合に実効アドレスを計算する. また, 得られた実効アドレスをロード ストアバッファに格納する. 第 段階では, メモリユニットが利用可能になるとすぐに, ロードバッファのロード命令を実行する. ストアバッファのストア命令は, メモリユニットに送られる前に, ストアすべき値を待たなければならない. ロードとストアは実効アドレス計算を通じてプログラム順序を維持する. それによって メモリを経由するハザードに対処できる. 例外の振る舞いを維持するために, 命令は, プログラム順序において先行する分岐がすべて完了するまで実行を始めてはいけない. この制約により 実行中に例外を引き起こす命令が実際に実行を完了するということが保証される. 分岐予測を利用するプロセッサ ( 動的スケジューリングのすべてのプロセッサがそうであるが ) では, 分岐に続く命令の実行を始める前に, 分岐予測が正しいことをプロセッサが知らなければならないことを意味する. リザベーションステーションが保有する 7 つのフィールド. 結果書き込み (Write Result) Op: ソースオペランド S および S に対して行うオペレーション 結果が利用可能になったら,CDB に結果を流し, そこからレジスタ およびこの結果を待っているすべてのリザベーションステーション ( ストアバッファを含む ) に書き込む. ストアされる値およびストアするメモリのアドレスの両方が利用可能になるまで, ストア命令はストアバッファの中に保存され, メモリユニットが利用可能になるとすぐに結果が格納される. Qj Qk: 対応するソースオペランド値を生成するリザベーションステーションの番号. 値が 0 の場合は, ソースオペランドが Vj または Vk としてすでに利用可能であるか, 不必要であることを示す. Vj Vk: ソースオペランドの値. 各オペランドについては,V フィールドあるいは Q フィールドのどちらかが常に有効となる. ロード命令については,Vk フィールドはオフセットフィールドを保持するために利用される. A: ロードあるいはストア命令がメモリアドレス計算の情報を保持するために利用する. 最初に, 命令の即値のフィールドがここに格納される. アドレス計算の後には, 実効アドレスが格納される. Busy : 当該リザベーションステーション, および, 対応する機能ユニットが占有されていることを示す. 7 8

レジスタファイルの各エントリには Qi フィールドを追加 Qi : このレジスタへ実行結果を格納する操作を含んでいるリザベーションステーションの番号. Qi の値がブランク ( すなわち 0) の場合は, 現在, このレジスタに格納すべき結果を計算する命令が実行中でない. このため, このレジスタに格納されている内容がその値となる. 9 0 動的スケジューリングの例題 dispatch 最初のロードだけが完了してその結果が書き戻されている時, 次の命令列に対するスケジューリングの状態はどのようになっているか?. L.D F,(R). L.D F,(R). MUL.D F0,F,F. SUB.D F8,F,F. DIV.D F0,F0,F. ADD.D F,F8,F Mem[ + Regs[R]] Mem[ + Regs[R]] 動的スケジューリングの例題 dispatch 例題. と同じコードセグメントを利用して,MUL.D がその結果を書く準備ができている場合, 状態テーブルがどのようになっているかを示せ.. L.D F,(R). L.D F,(R). MUL.D F0,F,F. SUB.D F8,F,F. DIV.D F0,F0,F. ADD.D F,F8,F Mem[+Regs[R]] Regs[F]

アナウンス フロントエンド 命令ウィンドウ : 命令を格納するバッファ ALU 講義スライド, 講義スケジュール www.arch.cs.titech.ac.jp Dispatch 命令フェッチ, デコード, リネーミング バックエンド