ストールの実行例 (CC5)
CC1 CC2 CC3 CC4 CC5 CC6
IF ID EX MEM WB
lw $2, 20($1)
CC1 CC2 CC3 CC4 CC5 CC6
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
nop
and $4, $2, $5 or $8, $6, $2
$ $ $ IF ID EX MEM WB
add $14, $2, $2 sw $15, 100($2)
ID/EX EX/MEM MEM/WB
IF/ID
IF
ステージID
ステージEX
ステージMEM
ステージWB
ステージIF
ステ ジID
ステ ジEX
ステ ジMEM
ステ ジWB
ステ ジand lw
or nop
add p
ミニクイズ 6
データハザードによりストールしなければならない状況が発生する条件を述べよ データハザードによりストールしなければならない状況が発生する条件を述べよ.
(回答)
ID/EX M R d 1
かつID/EX.MemRead=1 かつ
ID/EX.RegisterRt = IF/ID.RegisterRs
またはID/EX.RegisterRt = IF/ID.RegisterRt
この時,パイプラインをストールさせる(解説)
( )
•ID/EX.MemRead=1は,先行命令がlw
であることを意味する•ID/EX.RegisterRtは,
今EXステージにある命令(先行命令)の書き込みレジスタ番号 今EXステ ジにある命令(先行命令)の書き込みレジスタ番号
•IF/ID.RegisterRsは,
今IDステージにある命令(後続命令)のALUの上側の入力データを 供給するレジスタ番号
供給するレジスタ番号
•F/ID.RegisterRtは,
今IDステージにある命令(後続命令)のALUの下側の入力データを 供給するレジスタ番号
46
供給するレジスタ番号
お絵かきスペース
47
自己確認クイズ
ストールすべき時,ハザード検出ユニットの3
つの出力 によりどのように各部の動作が制御されるか説明せよWB WB WB
IF/IDWrite
ハザード・検出 ユニット
ID/EX.MemRead
IF/ID
制御 M
EX
M EX M
EX
M U
PCWrite 0 X
ID/EX MEM/WB
読出 reg1 読出
ALU
読出 reg1
PC
命令メモリM U
X
ID/EX EX/MEM MEM/WB
0 1
読出
ALU
reg2 書込 reg 書込 データ
読出
reg2 データメモリ
読出 データ アドレス
命令メモリ
M U X X
レジスタ
M U X
2
0 1
デ タ
書込データ IF/ID.RegisterRs
IF/ID.RegisterRt IF/ID.RegisterRd
M U X
レジスタRt
Rd EX/MEM.RegisterRd
ForwardA
ForwardB
2
フォワーディング・
ユニット Rs
ID/EX.RegisterRt
Rt MEM/WB.RegisterRd
48
図4.60:分岐の実現や符号拡張などの回路は省略されている.
お絵かきスペース
49
What to learn
パイプライン処理が理想通りにいかない2つの事象とその対処方法 ハザード=パイプライン処理において次のクロック・サイクルで次の
• データハザード
ハザード=パイプライン処理において次のクロック・サイクルで次の 命令が実行できない事態
• データハザード
1. MEMハザードの条件とフォワーディング
2. EX
ハザードの条件とフォワーディング3.
フォワーディングでは対処不可能な条件とストール• 制御ハザード(分岐ハザード)
1
常に分岐が成立しないと予測して後続命令をフ チNext Topic
1.
常に分岐が成立しないと予測して後続命令をフェッチ2.
動的分岐予測に分岐先命令をフェッチ–
いずれの場合も予測がはずれるとパイプライン上で実行してず 場合 予測 ず ラ 実行 はいけない命令をフラッシュ教材
50
•
教科書4.7
~4.8
制御ハザード ( 分岐ハザード ) とは?
パイプライン処理において、分岐が存在するため、フェッチ済みの後続する 命令が実行すべき命令か否か判断できず、所定のクロック・サイクル内で は命令を実行できない状況
は命令を実行できない状況
140:beq $1 $3 7 clock=100 140:beq $1, $3, 7
144:and $12, $2, $5 148 $13 $6 $2 clock=100
148:or $13, $6, $2 152:add $14, $2, $2 156 b $2 $4 8 156:beq $2, $4, 8 172 $15 100($2)
172:sw $15, 100($2) #条件成立時のbeqからの分岐先
51
ミニクイズ7
前ペ ジの命令列において