計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part...

66
計算機構成特論 Part 1 加減算器・その 1 荒木 徹 電子情報・数理教育プログラム 2016 年度 前期 荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 1 / 62

Transcript of 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part...

Page 1: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

計算機構成特論 Part 1加減算器・その 1

荒木 徹

電子情報・数理教育プログラム

2016年度 前期

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 1 / 62

Page 2: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 2 / 62

Page 3: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 3 / 62

Page 4: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ハーフ・アダー

1ビットの 2数の加算

z = x + y , x , y ∈ {0, 1} ⇒ z は 2ビット:和(s),キャリー(c)

x y c s

0 0 0 00 1 0 11 0 0 11 1 1 0

和とキャリー

和 s = x ⊕ y = xy + xy

キャリー c = xy

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 4 / 62

Page 5: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Half Adder

s = x ⊕ y , c = xy .

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 5 / 62

Page 6: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダー

1ビットの 3数の加算

z = x + y + ci , x , y , ci ∈ {0, 1} ⇒ z は 2ビット:和(s),キャリー(c)

x y ci s c

0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

和とキャリー

和 s = x ⊕ y ⊕ ci , キャリー c = xy + xci + yci

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 6 / 62

Page 7: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Full Adder

s = x ⊕ y ⊕ ci , c = xy + xci + yci

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 7 / 62

Page 8: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

様々なフルアダーの実現

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 8 / 62

Page 9: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

多ビットの加算

基本は筆算

1 2 3 4+) 5 6 7 8

0 6 9 1 2

2数の加算でのポイント

1 下位の桁から,一桁ずつ限定して加算を行う.

その桁での和とキャリを確定するという計算を

上位の桁へ向かって順次シフトしながら繰り返す

2 キャリはいつも 1以下

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 9 / 62

Page 10: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

直列加算器

「同じ処理の繰り返し」を回路にすると順序回路になる

直列加算器(Bit-serial adder)

シフトレジスタ,全加算器,D-FFを使って,1ビットずつ加算する.次の桁へのキャリーを D-FFに保存する.

処理時間

1クロックで一桁加算 =⇒ nビットをO(n)時間で加算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 10 / 62

Page 11: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 11 / 62

Page 12: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

リプルキャリーアダー(順次桁上げ加算器)

Ripple Carry Adder

全加算器を n個直列に接続した加算器

長所と短所

回路規模が小さくすむ

同じ形式の繰り返しなので,ハードウェア化が容易

キャリーの伝搬時間がビット数に比例(O(n))

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 12 / 62

Page 13: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ伝搬パス

キャリ伝搬パス

キャリを順にすべてのフル・アダーに通して上位に伝えていく

パス上のゲート数(ビット数に比例)だけ遅延が発生する

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 13 / 62

Page 14: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 14 / 62

Page 15: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダーを見直す

sと c

s = x ⊕ y ⊕ cin c = xy + xcin + ycin

x と y は先に確定している

下位からのキャリ cinがくるのを待ってから,和とキャリを求める

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 15 / 62

Page 16: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダーを見直す(2)

式の変形

x と y が確定しているのだから,計算できるものは先にしておく

その結果と下位からのキャリの演算を行うようにする

s = x ⊕ y ⊕ cin

= (x ⊕ y)⊕ cin.

c = xy + xcin + ycin

= xy + (x + y) · cin= xy + (x ⊕ y) · cin 変形したフル・アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 16 / 62

Page 17: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダーを見直す(3)

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 17 / 62

Page 18: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダーを見直す(3)

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 17 / 62

Page 19: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ伝搬のしくみ

Generation gi = xi · yiPropagation pi = xi ⊕ yi

ジェネレーションとプロパゲーションの意味

gi = 1 ⇐⇒ 第 i 桁でキャリが発生する

pi = 1 ⇐⇒ 第 i 桁はキャリを伝搬する

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 18 / 62

Page 20: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ジェネレーションとプロパゲーション

ジェネレーション(Generation):キャリの生成

gi = xi · yi

プロパゲーション(Propagation):キャリの伝搬

pi = xi ⊕ yi

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 19 / 62

Page 21: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ伝搬のしくみ

第 i 桁でのジェネレーションとプロパゲーション

gi = xi · yi , pi = xi ⊕ yi

キャリ再帰式

第 i 桁からのキャリを ci+1とすると

ci+1 = gi + pici .

2進数の加算を行うときに,頭で実行している計算はこの式

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 20 / 62

Page 22: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

フル・アダーを見直す(4)

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 21 / 62

Page 23: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

リプルキャリーアダーの構造

g と pとキャリー再帰式

1段目で,各桁の generationと propagationを計算

その後,キャリー再帰式を使って,キャリーを計算

最後の段で,propagationとキャリーから和を計算

gi = xiyi , pi = xi ⊕ yi

ci+1 = gi + pici .

si = pi ⊕ ci .

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 22 / 62

Page 24: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 23 / 62

Page 25: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ・ルックアヘッド・アダー

ジェネレーション gi = xi · yiプロパゲーション pi = xi ⊕ yi

キャリ再帰式 ci+1 = gi + pici

Carry Lookahead Adder

各桁のキャリを,下位のジェネレーションとプロパゲーションを使って,

直接計算する

キャリ伝搬パスを 2段 AND-OR回路にしてしまう

計算時間は定数O(1)

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 24 / 62

Page 26: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ伝搬パスの式変形

第 i桁へのキャリ ci

c1 = g0 + p0c0

c2 = g1 + p1c1

= g1 + p1g0 + p1p0c0

c3 = g2 + p2c2

= g2 + p2g1 + p2p1g0 + p2p1p0c0

c4 = g3 + p3c3

= g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 25 / 62

Page 27: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 26 / 62

Page 28: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ・ルックアヘッドの特徴

ゲート段数はビット数によらず定数

ゲート数がとても多い ⇒ O(n2)

ビット数にしたがってファンイン・ファンアウトが増加

ファンイン・ファンアウト

ファンインが高いゲート(ANDやOR)は遅延が大きい

ファンアウトが高いと配線容量による遅延が発生

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 27 / 62

Page 29: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ・ルックアヘッド・アダー

とにかく必要な情報を並列に求める

ゲート数の大幅な増加(O(n) → O(n2))ファンイン・ファンアウトの増加

現実的には数ビット程度でしか使えない

冗長な項が多すぎる

同じ計算をあちこちで行っている

多段ルックアヘッド型加算器

ルックアヘッド型加算器は,大きなビット数は扱えない

ルックアヘッド型加算器を 2段以上重ねると,より大きなビット数は扱える

リプルキャリー型よりも(かなり)高速になる

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 28 / 62

Page 30: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

16ビット加算器を作る

4ビット加算器から 16ビット加算器へ

1 キャリ・ルックアヘッドで各桁のキャリを g と pから計算できる

2 ビット数が大きくなるとコスト大

3 4ビットのキャリ・ルックアヘッドアダーを組み合わせて,高速な16ビット加算器を構成することを考える

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 29 / 62

Page 31: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

4-bit Lookahead Carry Generator

4-bitブロックからの gp情報

最下位へのキャリ入力 c0から独立に計算する.

g[i+3,i ] = gi+3 + pi+3gi+2 + pi+3pi+2gi+1 + pi+3pi+2pi+1gi

p[i+3,i ] = pi+3pi+2pi+1pi

各桁からのキャリ情報

pg 入力とキャリ入力 c0からルックアヘッド型で計算する.

ci+1 = gi + pici

ci+2 = gi+1 + pi+1gi + pi+1pici

ci+3 = gi+2 + pi+2gi+1 + pi+2pi+1gi + pi+2pi+1pici

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 30 / 62

Page 32: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 31 / 62

Page 33: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ブロックの情報の計算

ブロックの gp情報

g [j , i ] = 1:第 i ビットから第 j までのブロックの最上位ビットからキャリーが発生する

p[j , i ] = 1:第 i ビットへのキャリーを,第 j ビットまで伝える

ブロックの gp情報の計算

k を i ≤ k ≤ j となる整数とすると,

g [j , i ] = g [j , k + 1] + p[j , k]g [k, i ],

p[j , i ] = p[j , k + 1]p[k , i ]

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 32 / 62

Page 34: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

16 bits Tow-level Carry-Lookahead Adder

4-bit lookahead carry generatorを 2段にした 16-bit carry-lookahead adder

Sumの計算

和が計算されるまでの段数は?

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 33 / 62

Page 35: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Two-level Carry-Lookahead Adder

遅延について

1 入力 xi , yi から gi , pi を計算(1段)

2 1段目の lookahead carry generatorで g , pを計算(2段)

3 2段目の lookahead carry generatorから c4, c8, c12を計算(2段)

4 各 4-bitブロックの内部キャリを計算(2段)

5 最後の和を計算(1段)

1 gi = xiyi , pi = xi ⊕ yi2 g[i+3,i ] = gi+3 + pi+3gi+2 + pi+3pi+2gi+1 + pi+3pi+2pi+1gi ,

p[i+3,i ] = pi+3pi+2pi+1pi3 c4 = g[3,0] + p[3,0]c0, . . .4 c5, c6, c7などの計算5 si = pi ⊕ ci

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 34 / 62

Page 36: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Two-level Carry-Lookahead Adder

合計 8段分のゲート遅延時間が必要

nビットの場合

およそ 4 log4 n段分のゲート遅延時間で和が計算できる

64ビットの場合,3段のキャリ・ルックアヘッド・アダーで 12段分の遅延時間

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 35 / 62

Page 37: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

1 加算器の基本 - 1ビットの加算

2 リプルキャリーアダー

3 キャリの伝搬を高速にする

4 キャリ・ルックアヘッド

5 並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 36 / 62

Page 38: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ルックアヘッド型の問題点を改善するために…

短所を改善する

1 冗長な計算をなるべく減らし

2 ゲートのファンイン・ファンアウトを増加させずに

3 全体の段数を減らす

並列プレフィックス型アダー

リプル・キャリ・アダー(遅延時間が大)

キャリ・ルックアヘッド(回路規模(ゲート数など)が大)

それぞれの持つ構造をあわせ持った,両者の欠点を補うような構造

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 37 / 62

Page 39: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

4ビットの場合

Exercise

正しく和が計算できることを確かめてみよう

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 38 / 62

Page 40: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 39 / 62

Page 41: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

リプル・キャリ・アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 40 / 62

Page 42: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ネットワークのイメージ図~リプル・キャリ・アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 41 / 62

Page 43: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリ・ルックアヘッド・アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 42 / 62

Page 44: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ネットワークのイメージ図~キャリ・ルックアヘッド

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 43 / 62

Page 45: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス型アダー

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 44 / 62

Page 46: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

ネットワークのイメージ図~並列プレフィックス型

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 45 / 62

Page 47: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

もう一度復習

和とキャリの計算

第 i 桁からのキャリ:ci+1 = gi + pici

第 i 桁の和:si = pi ⊕ ci

ci = g[i ,0]であり,pi , gi は各桁で独立に計算できる

和を計算するとは

1 Given: (g0, p0), (g1, p1), . . . , (gn−1, pn−1)

2 Find: (g[0,0], p[0,0]), . . . , (g[k,0], p[k,0]), . . . , (g[n−1,0], p[n−1,0])

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 46 / 62

Page 48: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

(g , p)の計算

第 i + 1桁と第 i 桁の 2ビットから成るブロックの generator g[i+1,i ] と

propagation p[i+1,i ]を考える

(gi+1, pi+1), (gi , pi )

g[i+1,i ] = gi+1 + pi+1gi

p[i+1,i ] = pi+1 · pi

並列プレフィックス演算

(g[i+1,i ], p[i+1,i ]) = (gi+1, pi+1) ◦ (gi , pi )

ここで

g[i+1,i ] = gi+1 + pi+1gi

p[i+1,i ] = pi+1 · pi

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 47 / 62

Page 49: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス演算

並列プレフィックス演算

(g ′ + p′g , p′p) = (g ′, p′) ◦ (g , p)

結合律が成り立つ{(g ′′, p′′) ◦ (g ′, p′)

}◦ (g , p) = (g ′′, p′′) ◦

{(g ′, p′) ◦ (g , p)

}可換ではない

(g ′, p′) ◦ (g , p) ̸= (g , p) ◦ (g ′, p′)

(0, 0) ◦ (1, 1) = (0 + 0 · 1, 0 · 1) = (0, 0)

(1, 1) ◦ (0, 0) = (1 + 1 · 0, 1 · 0) = (1, 0)

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 48 / 62

Page 50: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス演算

並列プレフィックス演算

(gi+1 + pi+1gi , pi+1pi ) = (gi+1, pi+1) ◦ (gi , pi )

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 49 / 62

Page 51: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス演算

並列プレフィックス問題

1 Given: (g0, p0), (g1, p1), . . . , (gn−1, pn−1)

2 Find: (g[0,0], p[0,0]), . . . , (g[k,0], p[k,0]), . . . , (g[n−1,0], p[n−1,0])

(g[k,0], p[k,0]) = (gk , pi ) ◦ · · · ◦ (g1, p1) ◦ (g0, p0)

並列化

演算 ◦は結合律が成り立つので,i ≤ j ≤ k なら

(g[k,i ], p[k,i ]) = (g[k,j+1], p[k,j+1]) ◦ (g[j ,i ], p[j ,i ])

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 50 / 62

Page 52: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリの計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 51 / 62

Page 53: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリの計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 52 / 62

Page 54: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリの計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 52 / 62

Page 55: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリの計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 52 / 62

Page 56: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

キャリの計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 52 / 62

Page 57: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス型アダー

キャリの伝搬

1 初段で 2ビットずつグループ分け(初段のグループ化)

2 2段めでは下のグループへ情報を伝えて,4ビットのグループを作る

3 以下,4ビット→8ビットと,より大きなグループを作りながら,プロパゲーションとジェネレーションを計算する(グループの成長)

グループの成長

「指数関数的にグループを成長させる」のがポイント

この成長がゲートの段数を決める

ゲートの段数をO(log n)にすることができる

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 53 / 62

Page 58: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

和の計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 54 / 62

Page 59: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

和の計算

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 55 / 62

Page 60: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 56 / 62

Page 61: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス型アダー

ネットワークの構成

並列型プレフィックス型アダーは,以下の三つの規則的な構造を持つ

1 初段のグループ化(2段ずつまとめる)

2 グループの成長(指数関数的に増大させる)

3 残りの項のジェネレーション生成

特徴

ビット数が増えても,ファンイン・ファンアウトが増加しない

AND-ORゲートの繰り返しでビット数を拡張できる

ゲート数はO(n log n)程度

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 57 / 62

Page 62: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス型アダーの種類

ネットワークの構成法

初段のグループ化

残りの項のジェネレーション生成

の方法によって,ネットワークのバリエーションがあり,それぞれ

回路規模(ゲート数)

ゲートの段数

ファンイン・ファンアウト

が変わってくる

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 58 / 62

Page 63: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Kogge-Stone Adder

論理段数は最小な構成でファンアウトも小さくなるが、回路規模が大きい

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 59 / 62

Page 64: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Brent-Kung Adder

回路規模は最小な構成になるが、論理段数が大きくなる

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 60 / 62

Page 65: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

Han-Carlson Adder

回路規模を抑えつつ、論理段数も小さく抑えている

Kogge-Stoneと Brent-Kungの構成を混合させたような構成

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 61 / 62

Page 66: 計算機構成特論 Part 1 - 加減算器・その1 - Gunma University...計算機構成特論Part 1 加減算器・その1 荒木徹 電子情報・数理教育プログラム 2016年度前期

並列プレフィックス型アダー

まとめ

キャリ・ルックアヘッド型の欠点を解消

ファンイン(定数),ファンアウト(高々log n)が少ない

O(log n)の段数で加算を計算できる

比較的対称な構造を持つ

同じビット数の加算でも,それを行う回路の構成は数多く存在する.

ビット数の大きな場合での Parallel-Prefix Networkを構成する問題は一つの研究課題

荒木 徹 (電子情報・数理教育プログラム) 計算機構成特論 Part 1 2016 年度 前期 62 / 62