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