第4章 データパスの設計
4.1 データパスの構成
�ディジタルシステムを レジスタ転送レベルで記述した回路は データパス(演算部)とコントローラ(制御部)
から成り立っている
データパスは
加算、減算の算術演算やAND, OR, NOT などの論理演算を実行する 算術論理演算回路(ALU)
シフト演算を行なうシフタ
演算のデータや結果を一時格納するレジスタ から構成
3
3バスによるデータパスの構成
4
3バスによるデータパスの構成
マイクロ操作
を行なう場合、つぎの制御信号を発生する。
1. Aバスのレジスタ選択: レジスタR1 の内容をAバスに移す 2. Bバスのレジスタ選択: レジスタR2 の内容をBバスに移す 3. ALU の機能選択: 加算
4. シフト選択: シフトなし
5. Cバスのレジスタ選択: Cバスの内容をR0 へ移す
R0 ! R1 + R2
5
3バスによるデータパスの構成
ALUの機能選択:加算
R0 ! R1 + R2
シフト選択:なし
Aバスのレジスタ選択:R1
Bバスのレジスタ選択:R2
Cバスのレジスタ選択:R0
A := R1
B := R2 C := R0+
3バスによるデータパスの構成
R0 ! R1 + R2
R1
R2
R1 + R2
+
R1 + R2
A := R1
B := R2 C := R0R1 + R2
7
アキュムレータを用いた1バス構成
8
アキュムレータを用いた1バス構成
レジスタR1 との加算は
3バス構成でのマイクロ操作
と等価なマイクロ操作は、 1バス構成では
となり、その手順も増え 動作速度が遅くなる
ACC ! ACC + R1
R0 ! R1 + R2
ACC ! R1
ACC !
R0 ! ACC
9
アキュムレータを用いた1バス構成
ACC ! R1
R1 R1
R1
ACC ! R1
R0 ! R1 + R2
アキュムレータを用いた1バス構成
ACC !
R1 R2
R2 R2
+
R1+R2
ACC ! R1
ACC !
R0 ! R1 + R2
11
アキュムレータを用いた1バス構成
R0
R1+R2 R1+R2
R0 ! ACC
ACC ! R1
ACC !
R0 ! ACC
R0 ! R1 + R2
12
4.2 算術演算回路の設計
nビット並列加算器を用いて
加算、減算、桁上げつき加算、1加算、1減算などを実現する 算術演算回路を設計
13
4.2 算術演算回路の設計
4.2 算術演算回路の設計
15
4.2 算術演算回路の設計
16
4.2 算術演算回路の設計
0
0
0 0 0 0
17
4.2 算術演算回路の設計
1
0
B3 B2 B1 B0
4.2 算術演算回路の設計
0
1
B3 B2 B1 B0
19
4.2 算術演算回路の設計
1
1
1 1 1 1
20
演習問題
制御信号 S と4ビットデータ入力A, B をもつ算術演算回路で その出力F が S = 0 のときF = A + 1
S = 1 のとき F = A + B となる回路を設計せよ。
A
B
S
F
4ビット加算器
組合せ回路
Y
X
C
in21
演習問題(解答)
A
B
C
inS
F
4ビット加算器
組合せ回路
Y
X
S Yi Cin F0 1
0 1 Bi 0
A+1 A+B
Y
i= S B
iC
in= S
.
4.3 論理演算回路の設計
23
4.4 ALUの設計
24
4.4 ALUの設計
25
4.4 ALUの設計
4.5 シフタの設計
� � �論理シフトを実現する回路の設計例
ALU の演算結果をX、シフタの出力をY とすると、シフタの機能は
Y ← X Y ← lsl X Y ← lsr X
この3つの機能を区別するためには、2つの制御信号が必要 それを W1W0 とし 第4の機能に
Y ← 0
を追加して
27
4.5 シフタの設計
W
1
W
0
: Y ← X
W
1
W
0: Y ← lsl X
W
1
W
0
: Y ← lsr X
W
1
W
0
: Y ← 0
28
4.5 シフタの設計
W
1
W
0
: Y ← X
W
1
W
0
: Y ← lsl X
W
1
W
0
: Y ← lsr X
W
1
W
0
: Y ← 0
29
4.5 シフタの設計
W
1
W
0
: Y ← X
W
1W0: Y ← lsl X
W
1
W
0
: Y ← lsr X
W
1W0: Y ← 0
0 0
4.5 シフタの設計
W
1
W
0
: Y ← X
W
1
W
0
: Y ← lsl X
W
1
W
0
: Y ← lsr X
W
1
W
0
: Y ← 0 1
0
31
4.5 シフタの設計
W
1
W
0
: Y ← X
W
1W0: Y ← lsl X
W
1
W
0
: Y ← lsr X
W
1W0: Y ← 0
1 1