マルチサイクルを用いた実現方式

マルチサイクルを用いた実現方式
(教科書5.4節)
マルチサイクル方式(1)
2つのデータパス実現方式
z 単一クロックサイクル: 1命令を1クロックサイクルで処理
z マルチクロックサイクル: 1命令を複数クロックサイクルで処理
単一クロックサイクル方式は処理効率が悪い.
CLK
処理時間
命令
命令
時間のかかる命令にクロック・
サイクル時間をあわさなければ
ならない.→余り時間の発生
命令
命令
命令
クロック・サイクル
時間は一定.
九州大学工学部電気情報工学科(2006年度)
マルチサイクル方式(2)
マルチクロックサイクル方式
z 1命令の実行を(同程度の処理量の)複数小作業に分割する
z 各小作業を1クロックサイクルで処理する
z 1命令は複数クロックサイクルで実行される
z クロック・サイクル時間を短くする(動作周波数を高くする)
CLK
処理時間
命令
命令
命令
命令
命令
CLK
処理時間
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(1)
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
MemWrite
32
rd
ALUctrl
LW命令実行の場合
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(2)
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
MemWrite
32
rd
ALUctrl
LW命令実行の場合
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(3)
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
MemWrite
32
rd
ALUctrl
LW命令実行の場合
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(4)
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
MemWrite
32
rd
ALUctrl
LW命令実行の場合
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(5)
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
MemWrite
32
rd
ALUctrl
LW命令実行の場合
九州大学工学部電気情報工学科(2006年度)
マルチサイクル処理例(6)
1クロック・サイクルより長い時間
値を保持しなければならない信
号線には,レジスタを挿入する.
+
4
RegWrite
MemRead
25-21
20-16
rreg1
rreg2
P
命令メモリ inst
C adrs
a
rd1
レジスタ
ファイル
wreg
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
異なるクロック・サイ
クルで動作するので,
共通化可能!
符号拡張
16
MemWrite
32
rd
ALUctrl
九州大学工学部電気情報工学科(2006年度)
マルチサイクル・データパス(1)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
マルチサイクル・データパス(2)
プログラムカウンタ(PC)
信号の意味
入出力
信号名
ビット幅
次のクロック・サイクルで更新するPCの
値
入力
32
記憶してる値(現在のPCの値)
出力
32
更新要求(1で要求)
入力
1
命令レジスタ(IR): メモリから読み出した命令を記憶する.
信号の意味
入出力
信号名
次のクロック・サイクルで記憶する命令
入力
32
記憶している命令(現在のIRの値)
出力
32
書き込み要求(1のとき要求)
入力
IRWrite
ビット幅
1
九州大学工学部電気情報工学科(2006年度)
マルチサイクル・データパス(3)
MDR(メモリデータレジスタ),A,B,ALUOut: いずれも通常のレ
ジスタ(Dフリップフロップ)
信号の意味
入出力
信号名
ビット幅
次のクロック・サイクルで記憶するデータ
入力
32
現在記憶しているデータ
出力
32
九州大学工学部電気情報工学科(2006年度)
R形式命令の実行(命令取得とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
R形式命令の実行(命令解読とレジスタ読出し)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
R形式命令の実行(演算の実行)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
R形式命令の実行(演算結果の書込み)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
lw命令の実行(命令取得とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
lw命令の実行(命令解読とレジスタ読出し)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
lw命令の実行(アドレス計算)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
lw命令の実行(メモリへのアクセス)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
lw命令の実行(ロード結果の書込み)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
sw命令の実行(命令取得とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
sw命令の実行(命令解読とレジスタ読出し)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
sw命令の実行(アドレス計算)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
sw命令の実行(メモリへのアクセス)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
beq命令の実行(命令取得とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
beq命令の実行
(命令解読とレジスタ読出し,分岐先PCの計算)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
beq命令の実行(分岐条件判定とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
j命令の実行(命令取得とPC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
j命令の実行(命令の解読)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
j命令の実行(PC更新)
PCWriteCond
31-26
制御部
5-0
PCWrite
31-28
IRWrite
wd
MDR
1
rd
25-21
20-16
0
rreg1
rreg2
レジスタ
ファイル
RegDst
wreg
15-111
1
0
rd1
0
B
adrs
ALU
制御部
00
01
10
rd2
wd
MemToReg
15-0
符号拡張
16
32
ALUCtrl
zero
ALUSrcA
1
ALUSrcB
00
01
4
10
11
A
L
U
ALUOut
メモリ
RegWrite
A
IorD
IR
PC
0
MemRead
PCSource
2bit
左シフト
25-0
MemWrite
ALUOp
2bit
左シフト
九州大学工学部電気情報工学科(2006年度)
制御部の設計(1)
R形式
第1サイクル
lw
sw
j
IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00;
PCWrite=1
ALUSrcA=0
ALUSrcB=11
ALUOp=00
第2サイクル
第3サイクル
ALUSrcA=1
ALUSrcB=00
ALUOp=10
ALUSrcA=1
ALUSrcB=10
ALUOp=00
ALUSrcA=1
ALUSrcB=10
ALUOp=00
第4サイクル
RegDst=1
MemToReg=0
RegWrite=1
IorD=1
MemRead=1
IorD=1
MemWrite=1
第5サイクル
beq
ALUSrcA=1
ALUSrcB=00
ALUOp=01
PCSource=01
PCWriteCond=1
PCSource=10
PCWrite=1
MemToReg=1
RegDst=0
RegWrite=1
九州大学工学部電気情報工学科(2006年度)
制御部の設計(2)
R形式
lw
sw
beq
j
第1サイクル
IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00;
PCWrite=1
第2サイクル
ALUSrcA=0
ALUSrcB=11
ALUOp=00
ALUSrcA=0
ALUSrcB=11
ALUOp=00
ALUSrcA=0
ALUSrcB=11
ALUOp=00
ALUSrcA=0
ALUSrcB=11
ALUOp=00
ALUSrcA=0
ALUSrcB=11
ALUOp=00
第3サイクル
ALUSrcA=1
ALUSrcB=00
ALUOp=10
ALUSrcA=1
ALUSrcB=10
ALUOp=00
ALUSrcA=1
ALUSrcB=10
ALUOp=00
ALUSrcA=1
ALUSrcB=00
ALUOp=01
PCSource=01
PCWriteCond=1
PCSource=10
PCWrite=1
第4サイクル
RegDst=1
MemToReg=0
RegWrite=1
IorD=1
MemRead=1
IorD=1
MemWrite=1
第5サイクル
MemToReg=1
共通
RegDst=0
RegWrite=1
やる必要はないが,
やっても無害.やっ
たほうが制御部が
簡潔になる.
九州大学工学部電気情報工学科(2006年度)
制御部の設計(3)
R形式
lw
sw
beq
j
第1サイクル
IorD=0; MemRead=1; IRWrite=1; ALUSrcA=0; ALUSrcB=01; ALUOp=00; PCSource=00;
PCWrite=1
⓪
第2サイクル
ALUSrcA=0; ALUSrcB=11; ALUOp=00
第3サイクル
ALUSrcA=1
ALUSrcB=00
ALUOp=10
ALUSrcA=1
ALUSrcB=10
ALUOp=00
⑥
第4サイクル
第5サイクル
RegDst=1
MemToReg=0
RegWrite=1 ⑦
①
②
IorD=1
MemRead=1
③
ALUSrcA=1
ALUSrcB=00
ALUOp=01 ⑧
PCSource=01
PCWriteCond=1
PCSource=10
PCWrite=1
⑨
IorD=1
MemWrite=1
⑤
MemToReg=1
RegDst=0
RegWrite=1 ④
九州大学工学部電気情報工学科(2006年度)
制御部の設計(4)
状態遷移図
2
lw
3
4
sw
lw/sw
0
1
5
R形式
6
7
beq
j
8
9
九州大学工学部電気情報工学科(2006年度)
制御部の設計(5)
制御部
状態レジスタ
組み合わせ
論理回路
各制御信号
IR
31-26
次状態
九州大学工学部電気情報工学科(2006年度)