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

マルチサイクルを用いた実現方式
(教科書5.4節)
マルチサイクル方式(1)
クロック数から見た命令の処理方式の分類
 単一クロックサイクル: 1命令を1クロックで処理.
 マルチクロックサイクル: 1命令を複数クロックで処理.
単一クロックサイクル方式は処理効率が悪い.
CLK
処理時間
命令
命令
時間のかかる命令にクロックを
あわさなければならない.→余
り時間の発生
九州大学工学部電気情報工学科
命令
命令
命令
クロックの間隔は常
に均等.
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル方式(2)
マルチクロックサイクル方式
 1命令を,複数個の,同じ程度の時間の単純作業に分割する.
 各小作業を1クロックで実行,1命令を複数クロックで実行.
 クロックをあげる.
CLK
処理時間
命令
命令
命令
命令
命令
CLK
処理時間
九州大学工学部電気情報工学科
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル処理例(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
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル型回路(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル型回路(2)
プログラムカウンタ(PC)
信号の意味
入出力
信号名
ビット幅
次のクロックで更新するPCの値
入力
32
記憶してる値
出力
32
更新要求(1で要求)
入力
1
命令レジスタ(IR): メモリから読み出した命令を記憶する.
信号の意味
入出力
信号名
ビット幅
次のクロックで記憶する命令
入力
32
記憶している命令
出力
32
書き込み要求(1のとき要求)
入力
九州大学工学部電気情報工学科
IRWrite
1
Created by Tsuneo Nakanishi, 2002-2004
マルチサイクル型回路(3)
MDR(メモリデータレジスタ),A,B,ALUOut: いずれも通常の
レジスタ(Dフリップフロップ)
信号の意味
入出力
信号名
ビット幅
次のクロックで記憶するデータ
入力
32
記憶しているデータ
出力
32
九州大学工学部電気情報工学科
Created by Tsuneo Nakanishi, 2002-2004
R形式命令の実行(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
R形式命令の実行(2)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
R形式命令の実行(3)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
R形式命令の実行(4)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
lw命令の実行(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
lw命令の実行(2)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
lw命令の実行(3)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
lw命令の実行(4)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
lw命令の実行(5)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
sw命令の実行(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
sw命令の実行(2)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
sw命令の実行(3)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
sw命令の実行(4)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
beq命令の実行(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
beq命令の実行(2)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
beq命令の実行(3)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
j命令の実行(1)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
j命令の実行(2)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
j命令の実行(3)
PCWriteCond
ALUOp
31-26
制御部
00
01
10
ALU
制御部
5-0
PCWrite
31-28
2bit
左シフト
RegWrite
25-0
IRWrite
MemWrite MemRead
P 0 IorD
C
PCSource
メモリ
adrs
rd
25-21
20-16
I
R
0
M
D
R
15-111
1
rreg1
rreg2
RegDst
1
wd
0
レジスタ
ファイル
wreg
rd2
wd
MemToReg
15-0
A
1
ALUSrcB
00
B
01
4
10
11
ALUCtrl
zero
A
L
U
A
L
U
O
u
t
2bit
左シフト
符号拡張
16
九州大学工学部電気情報工学科
rd1
0
ALUSrcA
32
Created by Tsuneo Nakanishi, 2002-2004
制御部の設計(1)
R形式
第1サイクル
lw
sw
beq
j
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
第4サイクル
RegDst=1
MemToReg=0
RegWrite=1
IorD=1
MemRead=1
IorD=1
MemWrite=1
第5サイクル
九州大学工学部電気情報工学科
ALUSrcA=1
ALUSrcB=00
ALUOp=01
PCSource=01
PCWriteCond
=1
PCSource=10
PCWrite=1
MemToReg=1
RegDst=0
RegWrite=1
Created by Tsuneo Nakanishi, 2002-2004
制御部の設計(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
やる必要はないが,
やっても無害.やっ
たほうが制御部が
簡潔になる.
Created by Tsuneo Nakanishi, 2002-2004
制御部の設計(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サイクル
RegDst=1
MemToReg=0
RegWrite=1⑦
第5サイクル
九州大学工学部電気情報工学科
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④
Created by Tsuneo Nakanishi, 2002-2004
制御部の設計(4)
状態遷移図
2
lw
3
4
sw
lw/sw
0
1
5
R形式
6
7
beq
j
8
9
九州大学工学部電気情報工学科
Created by Tsuneo Nakanishi, 2002-2004
制御部の設計(5)
制御部
I
R
31-26
組み合わせ
論理回路
状
態
レ
ジ
ス
タ
各
制
御
信
号
次状態
九州大学工学部電気情報工学科
Created by Tsuneo Nakanishi, 2002-2004