計算機構成論II 第3回 (全15回)
電気情報系学科
2019年10月30日(木)テキストの5章
基本的演算とその拡張
命令語= 命令オペレータ部 + オペランド
論理演算 加算、減算
命令レジスタ プログラム カウンタ 命令デコーダ ALU 算術論理 演算 ユニット レ ジ ス タ 群 メモリ部 入出力部 制御部 演算部
CPU
基本的演算とその拡張
論理演算
ブール代数則
恒等則: A+0=A,
恒等則: 𝐴 + 0 = 𝐴,
𝐴 ∙ 1 = 𝐴
0と1の代数則: 𝐴 + 1 = 𝐴,
𝐴 ∙ 0 = 0
逆元則: 𝐴 + 𝐴 = 1, 𝐴 ∙ 𝐴 = 0
交換則: 𝐴 + 𝐵 = 𝐵 + 𝐴, 𝐴 ∙ 𝐵 = 𝐵 ∙ 𝐴
結合則: 𝐴 + 𝐵 + 𝐶 = 𝐴 + 𝐵 + 𝐶, 𝐴 ∙ (𝐵 ∙ 𝐶) = 𝐴 ∙ 𝐵 ∙ 𝐶
論理演算
ブール代数則
ドモルガンの定理
𝐴 + 𝐵 = 𝐴 ∙ 𝐵 ,
𝐴 ∙ 𝐵 = 𝐴 + 𝐵
論理和 論理積 MIL記号 A B C ORゲート A B C ANDゲート
排他的 論理和 A C XORゲート + 論理否定 NOTゲート
A B C
𝐴 ⊕ 𝐵 = 𝐴 + 𝐵 ⋅ 𝐴 ∙ 𝐵 = 𝐴 ⋅ 𝐵 + 𝐴 ⋅ 𝐵
A B C 排他的 論理和 XORゲート + Exclusive OR論理回路は汎用ICとしても実現されている。
加算と減算
1ビット半加算器
A B C ANDゲート XORゲート + Exclusive OR A B C 桁上げはANDゲート、 和はXORゲートで表現できる。加算と減算
1ビット全加算器
下の桁からの桁上げと上の桁への桁上げを持つ加算器を全加算器と呼ぶ 𝐴𝑖 𝐵𝑖 𝐶𝑖−1 𝑆HA
HA
𝑆𝑖 𝐶 𝐶𝑖加算と減算
1ビット全加算器
𝐴𝑖 𝐵𝑖 𝐶𝑖−1 𝑆 HA HA 𝑆𝑖 𝐶 𝐶𝑖 𝐶𝑖 = 𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1 + 𝐴𝑖 ⋅ 𝐵 ∙ 𝐶𝑖 𝑖−1 +𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1 + 𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1 = 𝐴𝑖 ⋅ 𝐵𝑖 + 𝐴𝑖 ⋅ 𝐶𝑖−1 + 𝐵𝑖 ⋅ 𝐶𝑖−1 = (𝐴𝑖 ⋅ 𝐵 + 𝐴𝑖 𝑖 ⋅ 𝐵𝑖) ⋅ 𝐶𝑖−1+ 𝐴𝑖 ⋅ 𝐵𝑖 + 𝐴𝑖 ⋅ 𝐵 ⋅ 𝐶𝑖 𝑖−1 = 𝐴𝑖 ⋅ 𝐵𝑖 + 𝐴𝑖 ⋅ 𝐵 ⋅ 𝐶𝑖 𝑖−1++ 𝐴𝑖 ⋅ 𝐵𝑖 + 𝐴𝑖 ⋅ 𝐵 ⋅ 𝐶𝑖 𝑖−1 = 𝐴𝑖⨁𝐵𝑖 ⋅ 𝐶𝑖−1+ 𝐴𝑖⨁𝐵𝑖 ⋅ 𝐶𝑖−1=𝐴𝑖⨁𝐵𝑖⨁ 𝐶𝑖−1 𝑆𝑖 = 𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1 + 𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1 +𝐴𝑖 ⋅ 𝐵 ⋅ 𝐶𝑖 𝑖−1 + 𝐴𝑖 ⋅ 𝐵𝑖 ⋅ 𝐶𝑖−1加算と減算
1bit 全加算器(Full Adder)は結局1bit 半加算器を2個組みあわせて構成される。 𝐴𝑖 𝐵𝑖 𝐶𝑖−1 𝑆𝑖 𝐶𝑖 Ai Bi
32bit 順次桁上げ加算器
C-1 FA A0 B0 Si C0 FA A1 B1 Si C1 FA A29 B29 S29 C29 FA A30 B30 S30 C30 FA A31 B31 S31 C3132bit 順次桁上げ加算器
C-1 FA A0 B0 Si C0 FA A1 B1 Si C1 FA A29 B29 S29 C29 FA A30 B30 S30 C30 FA A31 B31 S31 C31 減算への対応 + + + + + 補 数 用 制 御 信 号 線順次桁上げ方式:キャリーの伝搬を待たないと上位の桁の結果が 確定しないので演算時間がかかる。
キャリー先読み方式などではこの問題を解決している。
C-1 FA A0 B0 Si C0 FA A1 B1 Si C1 FA A29 B29 S29 C29 FA A30 B30 S30 C30 FA A31 B31 S31 C31
キャリー先読み論理回路 Carry Look Ahead
Carry Look ahead 方式
乗算
10011 x 10101=? 19x 21=39910011
x 10101
10011
00000
10011
00000
10011
110001111
乗算は左シフトと加算の繰り返し乗算
被乗数 乗数
32bit 符号なし2進整数 32bit 符号なし2進整数
I レジスタ(64bit) J レジスタ(32bit)