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

データパスの構築Ⅱ
~制御部の構築~
(教科書5.3節)
制御部の設計
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
15-0
A
L
U
adrs
wd
RegDst
符号拡張
16
y
rd
1
0
32
ALUSrc
MemWrite
データメモリ
1
wd
制御部で,制御信
号を操作し,データ
の流れを制御す
る.
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
ALUctrl
MemToReg
九州大学工学部電気情報工学科
ALU制御部の設計(1)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
1
wd
15-0
b
符号拡張
y
MemWrite
adrs
データメモリ
rd
1
0
32
ALUSrc
ALU制御部
A
L
U
wd
RegDst
16
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
ALU制御部の設計(2)
ALU入出力仕様:
信号の意味
入出力
信号名
ビット幅
演算パラメータ1
入力
a
32
演算パラメータ2
入力
b
32
演算結果
出力
y
32
ゼロ判定(結果が 0 のときに 1)
出力
zero
1
ALU制御(000: AND,001: OR,010: +,
110: –,111: slt)
入力
ALUctrl
3
ALUctrl
3
a
32
b
A
L
U
zero
y
32
32
九州大学工学部電気情報工学科
ALU制御部の設計(3)
+
4
命令語次第
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
wreg
zero
a
rd1
レジスタ
ファイル
15-11
+
2bit
左シフト
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
R形式
ALU制御部
rd
32
ALUctrl
九州大学工学部電気情報工学科
ALU制御部の設計(4)
+
4
加算
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
wreg
zero
a
rd1
レジスタ
ファイル
15-11
+
2bit
左シフト
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
lw
ALU制御部
rd
32
ALUctrl
九州大学工学部電気情報工学科
ALU制御部の設計(5)
+
4
加算
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
wreg
zero
a
rd1
レジスタ
ファイル
15-11
+
2bit
左シフト
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
sw
ALU制御部
rd
32
ALUctrl
九州大学工学部電気情報工学科
ALU制御部の設計(6)
+
4
減算
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
wreg
zero
a
rd1
レジスタ
ファイル
15-11
+
2bit
左シフト
b
rd2
A
L
U
y
adrs
データメモリ
wd
wd
15-0
符号拡張
16
beq
ALU制御部
rd
32
ALUctrl
九州大学工学部電気情報工学科
ALU制御部の設計(7)
ALUの制御パターンは3パターン:
 命令語次第(R形式)
 加算(lw,sw命令)
 減算(beq命令)
どのパターンの制御をするか指定する入力信号(ALUOp, 2bit)が
必要.
信号値
意味
00
加算(lw,sw命令)
01
減算(beq命令)
1X
命令語の指定どおりの演算(R形式)
九州大学工学部電気情報工学科
ALU制御部の設計(8)
R形式
op
rs
rt
rd
shamt
funct
6bit
5bit
5bit
5bit
5bit
6bit
命令
op
funct
ALUctrl
add $○, $△, $□
000000
100000
010
sub $○, $△, $□
000000
100010
110
slt $○, $△, $□
000000
101010
111
and $○, $△, $□
000000
100100
000
or $○, $△, $□
000000
100101
001
九州大学工学部電気情報工学科
ALU制御部の設計(9)
ALU制御部の仕様:
信号の意味
入出力
信号名
ビット幅
ALU制御パターン
入力
ALUOp
2
R形式命令語の funct
入力
funct
6
ALU制御
出力
ALUctrl
3
ALUOp
2
ALU制御部
ALUctrl
3
funct
6
九州大学工学部電気情報工学科
ALU制御部の設計(10)
ALU制御部の仕様:
命令
ALUOp
funct
ALUctrl
lw $○, n($△)
00
XXXXXX
010
sw $○, n($△)
00
XXXXXX
010
beq $○, $△, Label
01
XXXXXX
110
add $○, $△, $□
1X
XX0000
010
sub $○, $△, $□
1X
XX0010
110
slt $○, $△, $□
1X
XX1010
111
and $○, $△, $□
1X
XX0100
000
or $○, $△, $□
1X
XX0101
001
九州大学工学部電気情報工学科
ALU制御部の設計(11)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
符号拡張
16
2
ALU制御部
6
adrs
3
rd
1
0
32
ALUSrc
5-0
y
wd
RegDst
15-0
A
L
U
MemWrite
データメモリ
1
wd
ALUOp
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(1)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
2
符号拡張
ALU制御部
6
adrs
3
rd
1
0
32
ALUSrc
5-0
y
wd
RegDst
16
ALUOp
A
L
U
MemWrite
データメモリ
1
wd
15-0
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(2)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
R形式
符号拡張
16
2
ALU制御部
6
adrs
3
rd
1
0
32
ALUSrc
5-0
y
wd
RegDst
15-0
A
L
U
MemWrite
データメモリ
1
wd
ALUOp
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(3)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
lw
符号拡張
16
2
ALU制御部
6
adrs
3
rd
1
0
32
ALUSrc
5-0
y
wd
RegDst
15-0
A
L
U
MemWrite
データメモリ
1
wd
ALUOp
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(4)
0
+
4
1
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
sw
符号拡張
16
2
ALU制御部
6
adrs
3
rd
1
0
32
ALUSrc
5-0
y
wd
RegDst
15-0
A
L
U
MemWrite
データメモリ
1
wd
ALUOp
b
PCSrc
MemRead
zero
a
rd1
レジスタ
ファイル
0
+
2bit
左シフト
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(5)
0
+
4
RegWrite
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
15-11
1
wreg
0
rd2
2
beq
Branch
adrs
ALUSrc
3
rd
1
0
32
ALU制御部
6
y
wd
符号拡張
5-0
A
L
U
MemWrite
データメモリ
RegDst
16
ALUOp
b
1
wd
15-0
MemRead
zero
a
レジスタ
ファイル
0
+
2bit
左シフト
rd1
1
PCSrc
MemToReg
ALUctrl
九州大学工学部電気情報工学科
主制御部の設計(6)
主制御部の仕様:
ALUOp
RegDst
ALUSrc
MemToReg
RegWrite
MemRead
MemWrite
Branch
lw $○, n($△)
00
0
1
1
1
1
0
0
sw $○, n($△)
00
X
1
X
0
0
1
0
beq $○, $△, Label
01
X
0
X
0
0
0
1
R形式
1X
1
0
0
1
0
0
0
命令
主制御部
op
6
ALUOp
RegDst
ALUSrc
MemToReg
RegWrite
MemRead
MemWrite
Branch
九州大学工学部電気情報工学科
主制御部の設計(7)
PCSrc
0
+
4
1
31-26
主制御部
25-21
20-16
P
命令メモリ inst
C adrs
rreg1
rreg2
0
15-11
1
RegDst
+
2bit
左シフト
RegWrite
a
rd1
レジスタ
ファイル
wreg
0
rd2
b
1
ALUSrc
wd
Branch
zero
A
L
U
y MemRead
adrs
データメモリ
wd
15-0
命令語の op で命
令を識別し,各制
御信号を制御.
16
5-0
2
6
符号拡張
MemWrite
rd
1
0
32
ALUOp
MemToReg
ALU制御部
3
ALUctrl
九州大学工学部電気情報工学科