第4章 データパスの設計
4.1 データパスの構成
�
タ ムをタ転送 ベ 記述した回路
ータ 演算部 コン ーラ 制御部
成 立 い
ータ
加算 減算 算術演算やAND, OR, NOT 論理演算を実行す 算術論理演算回路 ALU
フ 演算を行 う フタ
演算 ータや結果を一時格納す タ 構成
3バスによるデータパスの構成
3バスによるデータパスの構成
マ ク 操作
を行 う場合 制御信号を発生す
1. A タ選択: タR1 内容をA 移す
2. B タ選択: タR2 内容をB 移す
3. A1U 機能選択: 加算
4. フ 選択: フ し
5. C タ選択: C 内容をR0 へ移す
R0 ← R1 + R2
3バスによるデータパスの構成
ALUの機能選択:加算
R0 ← R1 + R2
Aバ のレ タ選択:R1
Bバ のレ タ選択:R2
Cバ のレ タ選択:R0
+
3バスによるデータパスの構成
R0 ← R1 + R2
R1
R2
R1 + R2
+
R1 + R2
A := R1
B := R2
C := R0
R1 + R2
アキュムレータを用いた1バス構成
アキュムレータを用いた1バス構成
タR1 加算
構成 マ ク 操作
等価 マ ク 操作 構成
そ 手順 増え 動作速度 遅
ACC ← ACC + R1
R0 ← R1 + R2
ACC ← R1
ACC ← ACC + R2
R0 ← ACC
アキュムレータを用いた1バス構成
ACC ← R1
R1 R1
ACC ← R1
R0 ← R1 + R2
アキュムレータを用いた1バス構成
ACC ← ACC + R2
R1 R2
R2 R2
+
R1+R2
ACC ← R1
ACC ← ACC + R2
R0 ← R1 + R2
アキュムレータを用いた1バス構成
R1+R2 R1+R2
R0 ← ACC
ACC ← R1
ACC ← ACC + R2
R0 ← ACC
R0 ← R1 + R2
4.2 算術演算回路の設計
nビッ 並列加算器を用い
加算 減算 桁上 加算 加算 減算 を実現す
算術演算回路を設計
4.2 算術演算回路の設計
4.2 算術演算回路の設計
4.2 算術演算回路の設計
4.2 算術演算回路の設計
0
0
0 0 0 0
4.2 算術演算回路の設計
1
0
B3 B2 B1 B0
4.2 算術演算回路の設計
0
1
B3 B2 B1 B0
4.2 算術演算回路の設計
1
1
1 1 1 1
演習問題
制御信号 S ビッ ータ入力A, B を 算術演算回路 そ 出力F S = 0 F = A + 1
S = 1 F = A + B 回路を設計せ
A
B
S
F
4ビット加算器
組合せ回路
Y
X
C
in演習問題(解答)
A
B
S
組合せ回路
Y
X
S Yi Cin F 0
1
0 1 Bi 0
A+1 A+B
Y
i= S B
iC
in= S
.
4.3 論理演算回路の設計
4.4 ALUの設計
4.4 ALUの設計
4.4 ALUの設計
4.5 シフタの設計
� � �
論理 フ を実現す 回路 設計例A1U 演算結果をX フタ 出力をY す フタ 機能 Y ← X
Y ← lsl X Y ← lsr X
機能を区別す た 制御信号 必要
そ を W1W0 し 第 機能 Y ← 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
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
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
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
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 1