Ibaraki Univ. Dept of Electrical & Electronic Eng.
Keiichi MIYAJIMA
2019. 6.24
演算アーキテクチャ
- 固定小数点数の算術演
算回路 -
2進加算 前に述べたとおり、コンピュータの内部 でのデータは2進数で表現される。
• 2進数の加算のみで減算も表現 できた。
実際の回路構成はどう なっているのか?
2進加算 下位からの桁上げがない場合の2進 数一桁の加算の真理値表を考える。
入力 出力
和 桁上げ出力
0 0 0 1 1 0 1 1
0 0 1 0 1 0 0 1
x
y S C
下位からの桁上げを考慮しない加算
半加算器(half adder:HA)
半加算器
x
y
S
C
下位からの桁上げを考慮しない加算
半加算器(half adder:HA)
HA
論理記号
yx S
C
論理回路
XOR
AND
2進加算 下位からの桁上げを考慮する場合
11 ) 11 +
110
この場所では下位からの桁上げがあるため、
それを考慮する必要がある
全加算器 下位からの桁上げを考慮する場合
入力 出力
和 桁上げ出力
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1
x y C−1 S C
全加算器
x y
S
C
下位からの桁上げを考慮した加算器
全加算器(full adder:FA)
論理記号
x y
S
C
半加算機とORゲートによる構成
OR
FA
−1
C
HA HA
−1
C
「減算器」についてはここでは述べない。
なぜなら、前に述べたとおり、減算は2 の補数を用いることで、加算として取り 扱うことができる。
注
桁上げ伝搬加算機
すべてのビットを同時に加算する
桁上げ伝搬加算器
ハードウェア量は増加するが、
加算の高速化が構成可能
(Carry Ripple Adder)
桁上げ伝搬加算機
FA FA FA
x0
y0
−1
C S 0
C0
−2
Cn
x1
y1
−1
xn
−1
yn
−1
Cn
S1
−1
Sn
和出力
0
加算の時は0
桁上げ伝搬加算機
FA FA FA
x0
y0
−1
C S 0
C0
−2
Cn
x1
y1
−1
xn
−1
yn
−1
Cn
S1
−1
Sn
桁上げが伝達される のに時間がかかる。
桁上げ先見加算器
k k
k x y
G = • Pk = xk + yk とおくと
1 0
0
0 = G + P C−
C
1 0
1 0
1 1
1 = G + PG + P P C−
C
1 0
1 2 0
1 2 1
2 2
2 = G + P G + P PG + P P P C−
C
1 0
1 2 3 0
1 2 3 1
2 3 2
3 3
3 = G + P G + P P G + P P PG + P P P P C−
C
−1
+
= k k k
k G P C
C
(Carry Look-Ahead Adder)
桁上げ伝搬加算機
FA FA FA
x0
y0
−1
C S 0
C0
−2
Cn
x1
y1
−1
xn
−1
yn
−1
Cn
S1
−1
Sn
桁上げ先見加算器の 結果を同時に入力
加算器を用いた減算
補数を用いた加算器による減算はどうなるの か?
補数器
FA FA FA
x0
y0
−1
C S 0
C0
−2
Cn
x1
y1
−1
xn
−1
yn
−1
Cn
S1
−1
Sn
補数器
FA FA FA
x0
y0
D0
C0
−2
Cn
x1
y1
−1
xn
−1
yn
−1
Cn
D1
−1
Dn
差出力
減算の時は1
オーバーフロー コンピュータのハードウェア(容量)は有限なので、
オーバーフロー(桁あふれ)が起こりえる
基本乗算機構 かけ算の場合
基本乗算機構 具体的な例
基本乗算機構 AND素子と1ビット演算
論理積(AND)
X
Y P
入力 出力
0 0 0 1 1 0 1 1
0 0 0 1
X
Y P
繰り返し乗算器
ブースの方法
ブースの方法ついては自分でやること
(レポート課題)
並列乗算器
ウォリスの木
乗算幅の拡張
基本除算機構 割り算の場合 9810 ÷ 910 =1010� 810
2
10 0110 0010
98 = 910 = 10012
1)
1001 0110 ( 0010 )
2)
> ←へシフト
) 010 (
1001
<1100
1001
PQ(商)
(-
0011
) 10 (
3)
1001
>0110
) 010 (
0
←へシフト
)
0
(
1001
<1101
基本除算機構 割り算の場合 9810 ÷ 910 =1010� 810
2
10 0110 0010
98 = 910 = 10012
) 10 (
3)
1001
>0110 0
←へシフト
) 0 ( 1001 1101
(-
<
1001
) 0 ( 0100 1000
2)
1001
>0
余り 商
繰り返し除算器
除算法の改良
繰り返し除算法の短所
・PRとDSの大小比較と減算を別々のタイミングで行う
理由
・比較の結果により減算を行うか否かが決定される
大小比較と減算を演算器としてだけでなく手順として も
共用する方式
引き戻し法・引き放し法
引き戻し法 4710 ÷510 = 910� 210 の場合
2 10 101111
47 = 510 =1012
1)
101
=101 ( 111 ) 101
PQ(商)
(-
000
) 11 (
2)
101
>001
) 111 (
0
101
(-1100
101
(+001
マイナスに なったら、+
に引き戻す
)
11
(
引き戻し法 4710 ÷510 = 910� 210 の場合
2 10 101111
47 = 510 =1012
PQ(商)
101 0
(ー
001 ( 11 ) 011 ( 1 ) 101
101
>
0
1110
101
(+011 ( 1 )
111引き戻し法 4710 ÷510 = 910� 210 の場合
2 10 101111
47 = 510 =1012
PQ(商)
0 0 101
(ー
010
< 111
101
引き戻し法 4710 ÷510 = 910� 210 の場合
2 10 101111
47 = 510 =1012
PQ(商)
0 0 101
(ー
010
< 111
101
商余り
引き放し法
引き放し法については自分でやること
(レポート課題)
乗算収束型除算機構
除算より乗算の法が数倍早いことを利用して、除 算を乗算によって計算する方法
配列型除算器
本日のまとめ
1. 半加算回路と全加算回路
2. 加算機
3. 乗算機構
4. 除算機構
演算アーキテクチャー
-固定小数点の算術演算装置-
本日の課題
1.図の半加算機において、以下の入力パルス列 に対する和出力と桁上げ出力を求めよ
x
HA
y s
c x
y
2.ブースの方法で を計算しなさい。
計算の手順も教科書(図6.25)の例にならって示す こと。
) 13 (
910 × − 10
3. の計算を
計算の手順も教科書の例にならって示すこと。
①繰り返し除算法 ②引き戻し法 ③引き放し法 で、計算しなさい。
) 6
(
8810 ÷ 10
論理積(AND) 論理和(OR)
排他的論理和(XOR) 否定(NOT)
[Exclusive OR]
補足