ハザード (hazard) 命令を適切なサイクルで実行できないような状況が存在す る.これをハザードと呼ぶ. 計算機アーキテクチャ特論 (Advanced Computer Architectures) 構造ハザード (structural hazard) 4.レジスタ・リネーミング,メモリ・データフロー 吉瀬 謙二 計算工学専攻 kise _at_ cs.titech.ac.jp www.arch.cs.titech.ac.jp W832 講義室 金曜日 13:20 – 14:50 1 データ依存関係のない命令列 := := := := R3 R4 R5 R6 + + + + 1 1 1 1 (1) (2) (3) (4) 代入 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 := := := := R3 R3 R5 R3 x + + x R5 1 1 R4 If R3=20, R5=3 60 := 20 x 3 61 := 60 + 1 4 := 3 + 1 244:= 60 x 61 制御ハザード(control hazard) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 R3 R4 R3 R7 := := := := R3 R3 R5 R3 x + + x R5 1 1 R4 If R3=20, R5=3 60 := 20 x 3 61 := 60 + 1 4 := 3 + 1 244:= 4 x 61 (1) (2) (3) (4) (1) (2) (3) (4) 出力依存 (output dependence) (1) (2) (3) (4) R3 R4 R3 R7 (1) (2) (3) (4) If R3=20, R5=3 60 := 20 x 3 61 := 60 + 1 4 := 3 + 1 XXX:= 60 x 61 3番目の命令が完了する前に,4番目の命令を実行してはいけない. RAW (read after write) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 データ・ハザード(data hazard) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 真のデータ依存 (true data dependence) R3 R4 R3 R7 データ依存関係のある命令列 レジスタ R3 R4 R5 R6 オーバラップ実行する命令の組み合わせをハードウェアがサ ポートしていない場合. 資源不足により生じる. := := := := R3 R3 R5 R3 x + + x R5 1 1 R4 (1) (2) (3) (4) (1) (2) (3) (4) 1番目の命令の代入が3番目の命令の代入より後に完了してはいけない. WAW (write after write) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 逆依存 (antidependence) R3 R4 R3 R7 := := := := R3 R3 R5 R3 x + + x R5 1 1 R4 If R3=20, R5=3 60 := 20 x 3 XX := 4 + 1 4 := 3 + 1 XXX:= 4 x XX データ依存関係 (data dependence) (1) (2) (3) (4) 真のデータ依存 (true data dependence) RAW, read after write 出力依存 (output dependence) WAW, write after write 偽のデータ依存 (1) (2) (3) (4) 逆依存 (antidependence) WAR, write after read RAR ?, read after read 2番目の命令が実行を始める前に,3番目の命令を完了してはいけない. WAR (write after read) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 パイプライン処理 (pipelining) プロセッサのデータパス(パイプライン処理) Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 レジスタ名前換え,レジスタ・リネーミング スーパースカラ・プロセッサと命令レベル並列性 複数のパイプライを利用して IPC を 1以上に引き上げる n-way スーパースカラ ハザードの積極的な解消とストールの隠蔽が重要 R3 R4 R3 R7 := := := := R3 R3 R5 R3 x + + x R5 1 1 R4 (1) (2) (3) (4) n (3) (1) (2) 2-way superscalar R8 := R9 := R10:= R11:= R3 x R5 R8 + 1 R5 + 1 R10 x R9 (1) (2) (3) (4) (4) 命令レベル並列性は? Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 データ依存関係 (data dependence) ハードウェアによるレジスタ名前換え 真のデータ依存 (true data dependence) 論理レジスタ (logical register) RAW, read after write プログラマやコンパイラから見えるレジスタ 機械命令のフィールドで指定 MIPSの命令セットでは R0 – R31 という論理レジスタを利用 出力依存 (output dependence) WAW, write after write 偽のデータ依存 物理レジスタ (physical register) 逆依存 (antidependence) WAR, write after read 32 bits Logical Register File src addr src addr 32 bits dst addr 5 32 src1 5 data dst addr dst addr 32 locations 7 7 7 7 32 128 locations data write data write data 32 32 R0 – R31 write data write data 32 32 32 32 32 32 Physical Registers フリータグ・バッファ 32 src 32 32 src2 32 write data 物理的に存在するレジスタ ハードウェアによるレジスタ名前換え Physical Registers 5 プログラマやコンパイラから陽に見える必要はない. Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 MIPS Register File src2 addr プロセッサアーキテクチャから見えるレジスタ RAR ?, read after read Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 src1 addr 32 data src data src data src data src data src data src data src data head P1 P2 P4 P6 P7 P8 P9 P10 32 bits レジスタ マップテーブル R0 R1 R2 R3 R4 R5 R6 R7 tail data 32 src 128 locations P1 P2 data write data write data write data 8ビット I0: I1: I2: I3: sub add or and $5,$1,$2 $9,$5,$4 $5,$5,$2 $2,$9,$1 フリータグ・バッファ 13 12 11 10 9 head dst = $5 src1 = $1 src2 = $2 0 1 2 3 4 5 6 7 8 9 10 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 32 src 32 data 32 src 32 data 32 32 src data P0 – P127 レジスタ・リネーミング(演習) レジスタ・マップテーブル Cycle 2 0 1 2 3 4 dst = p9 src1 = p1 src2 = p2 I0: I1: I2: I3: sub add or and $5,$1,$2 $9,$5,$4 $5,$5,$2 $2,$9,$1 フリータグ・バッファ head I0: sub p9,p1,p2 31 data 32 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 レジスタ・マップテーブル data 32 src write data レジスタ・リネーミング(演習) Cycle 1 data 32 src 32 src P0 – P127 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 32 src dst = src1 = src2 = 0 1 2 3 4 5 6 7 8 9 10 dst = src1 = src2 = I1: add 31 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 レジスタ・リネーミング(演習) レジスタ・マップテーブル Cycle 3 I0: I1: I2: I3: レジスタ・リネーミング(演習) sub add or and $5,$1,$2 $9,$5,$4 $5,$5,$2 $2,$9,$1 フリータグ・バッファ head dst = src1 = src2 = dst = src1 = src2 = R3 R3 R5 R3 x + + x R5 1 1 R4 sub add or and 0 1 2 3 4 5 6 7 8 9 10 $5,$1,$2 $9,$5,$4 $5,$5,$2 $2,$9,$1 フリータグ・バッファ head I2: or 31 dst = src1 = src2 = I3: and 31 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Exercise レジスタ名前換え,レジスタ・リネーミング := := := := I0: I1: I2: I3: dst = src1 = src2 = Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 R3 R4 R3 R7 レジスタ・マップテーブル Cycle 4 0 1 2 3 4 5 6 7 8 9 10 フリータグ・バッファ (1) (2) (3) (4) 36 35 34 33 32 (3) (1) (2) R8 := R9 := R10:= R11:= R3 x R5 R8 + 1 R5 + 1 R10 x R9 (1) (2) (3) (4) (4) 命令レベル並列性の向上 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 スーパースカラ・プロセッサにおける問題 スーパースカラ・プロセッサにおける問題 レジスタ・リネーミング State Element 1 1サイクルに複数(N個)の命令のリネーミングをおこなう必用がある. N倍で動作させる. State Element 1 Combinational logic State Element 2 N個の命令を扱えるように回路を構成する. Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 State Element 2 Combinational logic State Element 3 Clock cycle State Element 1 Clock cycle Combinational logic Combinational logic Clock cycle Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Combinational logic State Element 2 Out-of-orderスーパースカラ・プロセッサ 2命令のレジスタ・リネーミング レジスタ・マップテーブル Cycle 1 sub $5,$1,$2 add $9,$5,$4 0 1 2 3 4 5 6 7 8 9 10 フリータグ・バッファ 13 12 11 10 9 head I1 dst = $5 src1 = $1 src2 = $2 sub p9,p1,p2 add p10,p9,p4 0 1 2 3 4 5->9 dst = $9 src1 = $5 src2 = $4 Branch Branch handler handler Register Register file file dst = p9 src1 = p1 src2 = p2 ALU ALU dst = p10 src1 = p9 src2 = p4 Time 見つける. 真のデータ依存関係の違反を「回避」する. 真のデータ依存関係の違反を「検出」する. 真のデータ依存関係を「解消」する. FP FP ALU ALU Memory dataflow Memory FP FP ALU ALU Adr Adr gen. gen. Adr Adr gen. gen. Reorder buffer Store queue Data Data cache cache Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 アナウンス Consumer Floating-point Register dataflow 真のデータ依存関係 Data Dependency ALU ALU Operand Operand Fetch Fetch I1 dst == I2 src1 ? Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Producer Integer RS ->10 31 Fetch Fetch Decode Decode Rename Rename MUX I2 Instruction flow Instruction Instruction cache cache 講義スライド,講義スケジュール www.arch.cs.titech.ac.jp どこまで? Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005 28
© Copyright 2024 Paperzz