• 検索結果がありません。

授業計画

N/A
N/A
Protected

Academic year: 2021

シェア "授業計画"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

コンピュータアーキテクチャ

第 3 週 演算アーキテクチャ(演算アルゴリズムと回路)

2013年10月9日 金岡 晃

(2)

授業計画

第 1 週 (9/25)

授業概要・2進数表現・論理回 路の復習

第 2 週 (10/2)

2進演算(数の表現)

第 3 週 (10/9)

演算アーキテクチャ(演算アル ゴリズムと回路)

第 4 週 (10/16)

ノイマン型コンピュータ・命令 とは・命令の使い方

第 5 週 (10/23)

休講 第 6 週

(10/30)

命令セットアーキテクチャ(命 令の表現・命令の実行の仕組)

第 7 週 (11/6)

ハーバードアーキテクチャ・

RISC と CISC ・制御アーキテク

第 8 週 (11/13)

中間試験 第 9 週

(11/20)

休講 第 10 週

(11/27)

メモリの仕組 第 11 週

(12/4)

キャッシュメモリと仮想メ モリ

第 12 週 (12/11)

割込みアーキテクチャ 第 13 週

(12/18)

パイプライン 第 14 週

(1/8)

入出力アーキテクチャ・ま

とめ

(3)

【復習】第 2

2進演算(数の表現)

コンピュータアーキテクチャ

(4)

10 進数の 2 進表現: 2 進化 10 進数( BCD )

10進数の1桁(0-9)を2進(0と1)で表現するためには 少なくとも4ビットが必要

2進数4ビットでは

16通りの表現が可能(0000-1111)

10通りのみを使用して10進数と対応づけた単純な手法:

2進化10進数(BCD:Binary Coded Decimal)

10 進数 BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

複数桁の10進数は?

各桁の数字を

BCD で表現

(5)

10 進数の 2 進表現: 3 増しコード

10 進数

3増し コード

0 0011

1 0100

2 0101

3 0110

4 0111

5 1000

6 1001

7 1010

8 1011

9 1100

BCDに3を加算したコード

• 0000のデータ割り当てが無い

• 各ビットを反転する(NOTをとる)と、10進数の9の 補数となる(自己補数化性)

0011(0) → 1100(9)

10進数の9の補数

足すと9になる数のペア 減算に都合

が良い

• 四捨五入の判断がMSBを見るだけで可能

「データがない」ことを示すのに

0000を利用可能

(6)

10 進数の 2 進表現:グレイコード

10 進数 グレイコード

0 0000

1 0001

2 0011

3 0010

4 0110

5 0111

6 0101

7 0100

8 1100

9 1101

10進数のデータが1変わるときに、対応するコードのビッ トの変更が1か所だけで済む表現

たとえばBCDで(7)10から(8)10に増えるとき, 0111が1000になるので

計4ビットのデータを変換しなければならないが

グレイコードでは1ビットのデータ変換だけで良い

(7)

負の数の表現:符号と絶対値表現

10 進数 2 進表現

-7 1111

-6 1110

-5 1101

-4 1100

-3 1011

-2 1010

-1 1001

-0 1000

10 進数 2 進表現

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

MSBを符号ビットとし、残りのビット

で数値を絶対値にしたデータを表す

(8)

負の数の表現: 2 の補数表現

10 進数 2 進表現

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

10 進数 2 進表現

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

負の数はその数の絶対値の2の補数で

表す

(9)

実数の表現:浮動小数点数

ビット番号:

符号ビット

(正:0、負:1) 指数部 小数点 仮数部

0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

31 30 29 28 27 2625 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

実数を 2 進数で表現する (5.625)

10

(101.101)

2

整数部を0以外の1桁(つまり2進数の場合 1)に調整(正規化、normalize)する。

1.01101 × 2

2

仮数部 指数部

32 ビット

(単精度)の場合

• MSB:仮数の符号

• 8ビット:指数部

• 23ビット:仮数部

バイアス表現:

-127乗から128乗まで表すため に、127を加算して2進表現する けち表現(Economized Representation)

2進数を正規化すると必ず1になるため、1を省略して1ビット省略する方法

(10)

演習:浮動小数点数

浮動総数点数で表す 32 ビット:

構成はスライド 23 と同じ バイアスは 127 けち表現

128

0.00001625

(11)

前回の演習

0.00001625 板書で下記のように書きましたが、これは間違いです。

1.625 × 10 5

※最初に問題を作るときに10のべき乗で問題を作ってしまった。

1.625 × 10 5 2進表現するには ここは2のべき乗で表されなけ ればならない

問題が良く なかった

0.052734375 まず2進数で表現: 0.000011011

指数部と仮数部に分ける: 1.1011 × 2

−5

あとは一緒

(12)

3 週 演算アーキテクチャ

(演算アルゴリズムと回路)

コンピュータアーキテクチャ

(13)

本日の到達目標と概要

• 到達目標

– 算術演算の基本アルゴリズムを習得する

• 概要

– 加減算アルゴリズム

– 乗算アルゴリズム:ブース法( Booth Algorithm )

– 除算アルゴリズム:引き戻し法( Restoring Division )と引き放し

法( Nonrestoring Division )

(14)

加減算アルゴリズム

• 加算

– 全加算器をビット数分並べる

• 減算

– 2 の補数表現にして加算にす る

• これらを合わせると加減算を両 方演算可能な回路を構成できる

𝑦 𝑥

𝑐 𝑠

𝑋

FA

𝑋 𝑌 𝐶1

𝐶0 𝑆

FA

𝑋 𝑌 𝐶1

𝐶0 𝑆

FA

𝑋 𝑌 𝐶1

𝐶0

𝑆 𝑆3

𝐶O

𝑆2

𝑆1 𝑋0

𝑌1 𝑋1 𝑌2 𝑋2 𝑌3 𝑋3

全加算器( FA )

加減算器の例

𝐶𝑆𝐺𝑁: 制御信号

𝑋 + 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 0 𝑋 − 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 1

(15)

乗算アルゴリズム

ブース法

( Booth Altorithm ) 前提

𝑃 = 𝑋 ⋅ 𝑌 を求める。

このとき 𝑋 を被乗数、 𝑌 を乗数と呼ぶ。

また 𝑋 を2進数表現した際の各ビットを 𝑥

𝑖

で表す。

𝑖 (0,1, … ) は下位から数えて何ビット目かを示す。

• 負の乗算にも対応した広く利用されている方式。

• 負の数は2の補数で表現される

• 乗数を2進展開し、各ビットについてシフトと加算を行っていく

• 各ビットとその前のビットの値の組み合わせによりシフトと加算の 動作が異なる

• 𝑖 ビット目の動作では 𝑦

𝑖

と 𝑦

𝑖−1

の組み合わせを見る

• 組合せは以下の3種類:00または11、10、01

• 動作は加算の位置が変化する方法と加算の位置を変化させない方法

で異なる

(16)

ブース法( Booth Algorithm )

加算位置が変化する方法 𝑃 = 0, 𝑦

−1

= 0 とする

各ビット 𝑖 (0,1, … , 𝑛 − 1) について以下の動作を行う 𝑦

𝑖

と 𝑦

𝑖−1

が等しい場合:なにも行わない 𝑦

𝑖

= 0, 𝑦

𝑖−1

= 1 の場合: 𝑋 × 2

𝑖

を 𝑃 に加算 𝑦

𝑖

= 1, 𝑦

𝑖−1

= 0 の場合: 𝑋 × 2

𝑖

を 𝑃 から減算 加算位置が変化しない方法

𝑃 = 0, 𝑦

−1

= 0 とする

各ビット 𝑖 (0,1, … , 𝑛 − 1) について以下の動作を行う

𝑦

𝑖

と 𝑦

𝑖−1

が等しい場合:なにも行わなず、 𝑃 を右にシフト

(17)

ブース法:演算例

𝑃 = 3 ⋅ 5

加算位置が変化する方法 加算位置が変化しない方法

(18)

除算アルゴリズム

引き戻し法 (Restoring Division)

引き放し法 前提

𝑋 と 𝑌 の商 𝑄 と剰余 𝑅 求める。

このとき 𝑋 を被除数、 𝑌 を除数と呼ぶ。

また 𝑋 を2進数表現した際の各ビットを 𝑥

𝑖

で表す。

𝑖 (0,1, … ) は下位から数えて何ビット目かを示す。

𝑋 は 2𝑛 ビット、 𝑌 は 𝑛 ビットとする。

また 𝑋 の上位 𝑛 ビットを 𝑋1 、下位 𝑛 ビットを 𝑋2 とする

𝑋 の上位 𝑛 ビットから 𝑌 を引いていく。筆算では 𝑋 の上位 𝑛 ビットと 𝑌 の大小を

比較し、大きければその桁の商を1、小さければ0としているが、引き戻し

法ではまず減算を行い、その結果の正負を判定する。負である場合、同じ

ものを加算することで元に戻す。

(19)

除算アルゴリズム:引き戻し法

START

𝑌 ≠ 0

𝑋1 ← 𝑋1 − 𝑌

𝑋1 < 0

𝑋1 ← 𝑋1 + 𝑌

を左へ

1ビットシフト

𝑋1 ← 𝑋1 − 𝑌

𝑋1 ≥ 0 𝐶 ← 1

𝑛 ← 𝑛 − 1

𝐶 ← 0 𝑋1 ← 𝑋1 + 𝑌

𝑛 ≠ 0

END

オーバフロー

No

No Yes

Yes

𝑋1 𝑋2 𝐶

Yes

Yes

No

No

フローチャート

(20)

除算アルゴリズム:引き戻し法

START

𝑌 ≠ 0

𝑋1 ← 𝑋1 − 𝑌

𝑋1 < 0

𝑋1 ← 𝑋1 + 𝑌

を左へ

1ビットシフト

𝑋1 ← 𝑋1 − 𝑌

𝑋1 ≥ 0 𝐶 ← 1

𝑛 ← 𝑛 − 1

𝐶 ← 0 𝑋1 ← 𝑋1 + 𝑌

𝑛 ≠ 0 オーバフロー

No

No Yes

Yes

𝑋1 𝑋2 𝐶

Yes

Yes

No

一度減算を行う 減算の結果が

正か負か 判断 負であれば

商のその桁は 0 とし、

減算を元に戻す

(引き戻し)

(21)

引き戻し法:演算例

𝑋 = 22, 𝑌 = 6 𝑋 = 35, 𝑌 = 7

(22)

引き放し法のフローチャート

START

𝑌 ≠ 0

𝑋1 ← 𝑋1 − 𝑌

𝑋1 < 0

𝑋1 ← 𝑋1 + 𝑌 𝑛 ← 𝑛 − 1

𝑋1 ≥ 0

𝑛 ← 𝑛 − 1 𝐶 ← 0

を左へ

1ビットシフト 𝑋1 ← 𝑋1 + 𝑌

𝑛 ≠ 0 オーバ

フロー

No

No Yes

Yes

Yes

Yes

No

No を左へ1ビットシフト

𝑋1 𝑋2 𝐶

𝑋1 𝑋2 𝐶 𝐶 ← 1

を左へ

1ビットシフト 𝑋1 ← 𝑋1 − 𝑌

𝑋1 𝑋2 𝐶

𝑋1 ≥ 0 𝐶 ← 0 𝑋1 ← 𝑋1 + 𝑌

No Yes

𝐶 ← 1

(23)

引き放し法のフローチャート

START

𝑌 ≠ 0

𝑋1 ← 𝑋1 − 𝑌

𝑋1 < 0

𝑋1 ← 𝑋1 + 𝑌 𝑛 ← 𝑛 − 1

𝑋1 ≥ 0

𝑛 ← 𝑛 − 1 𝐶 ← 0

を左へ

1ビットシフト 𝑋1 ← 𝑋1 + 𝑌

𝑛 ≠ 0

END

オーバ フロー

No

No Yes

Yes

Yes

Yes

No

No を左へ1ビットシフト

𝑋1 𝑋2 𝐶

𝑋1 𝑋2 𝐶 𝐶 ← 1

を左へ

1ビットシフト 𝑋1 ← 𝑋1 − 𝑌

𝑋1 𝑋2 𝐶

𝑋1 ≥ 0 𝐶 ← 0 𝑋1 ← 𝑋1 + 𝑌

No Yes

𝐶 ← 1

フローチャート 引き戻し法と

比較すると ループ部分の

演算回数が 少なくなっている

(高速化)

𝐶 に入れられた値を上位より

記載すると商が求まり、最終

的な 𝑋1 が剰余を示している。

(24)

引き戻し法:演算例

𝑋 = 22, 𝑌 = 6 𝑋 = 35, 𝑌 = 7

(25)

本日の到達目標と概要

• 到達目標

– 算術演算の基本アルゴリズムを習得する

• 概要

– 加減算アルゴリズム

– 乗算アルゴリズム:ブース法( Booth Algorithm )

– 除算アルゴリズム:引き戻し法( Restoring Division )と引き放し 法( Nonrestoring Division )

24 2013/10/09

参照

関連したドキュメント

・職員一・人一・人が収支を意識できるような、分かりやすいバランスシートを管

認知症の周辺症状の状況に合わせた臨機応変な活動や個々のご利用者の「でき ること」

情宣打ち合わせ 総務ミーティング チーフ会議⑦ 総務ミーティング 職員会議 すてっぷ会議 とびらミーティング

グループホーム 日 曜日 法人全体 法人本部 つどいの家・コペル 仙台つどいの家 つどいの家・アプリ 八木山つどいの家

16 水 給振伝送事務 月案会議 チーフ会議 施設懇談会(AM) とびらミーティング くれよんCR

○東十条・神谷地区及び桐ケ丘地区の2地区に専任のコミュニティソーシャルワ

理事長 CEO CO O CMO CFO 協定委員会 二法人の協定に関する事項. 法人リーダー会議 管理指標に基づく目標の進捗管理

SDGs