コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t...

26
コンピュータアーキテクチャ 1授業概要・2進数表現・論理回路の復習 2013年9月25日 金岡 晃

Upload: others

Post on 12-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

コンピュータアーキテクチャ第1週 授業概要・2進数表現・論理回路の復習

2013年9月25日

金岡 晃

Page 2: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

この授業について

• 講義科目名称– コンピュータアーキテクチャ

• 英文科目名称– Computer Architecture

• 開講期間– 秋学期

• 配当年– 1学年

• 単位数– 2

• 科目必選区分– 必修

• 担当教員– 金岡晃

• 開講日時– 水曜日2限

2013/9/25 コンピュータアーキテクチャ1

Page 3: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

授業計画

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)

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

1/22-2/8 期末試験

2013/9/25 コンピュータアーキテクチャ

Page 4: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

授業概要

• 授業の目的と学習概要

– 教育目標

• コンピュータのハードウェアが、どのようにして命令を処理するのか、どのように計算をするのか、また処理を高速化するためにどのような工夫をしているのかを理解する。今後コンピュータによる情報処理について学ぶ上で、その基本となる「コンピュータとは何か・何ができるのか」について理解することが、出発点になる。

– 期待される学習成果

• 具体的には、数の表現と演算方法、コンピュータの命令セット、制御方式、コンピュータの基本構成などを学ぶ。また、処理を高速化するためのキャッシュやパイプラインについても取り上げる。また、基本情報技術者試験の対象内容を含む科目である。

2013/9/25 コンピュータアーキテクチャ3

Page 5: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

教科書と参考書

• 教科書

– 「図解コンピュータアーキテクチャ入門[第2版]」(堀桂太郎著、森北出版)

• 参考書

– 「基本情報技術者試験学習テキスト1テクノロジ系」(浅井宗海、実教出版)

– 「コンピュータアーキテクチャ」(内田啓一郎・小柳滋著、オーム社)

– 「アセンブラ言語CASLⅡ」(東田幸樹・広瀬啓雄・山本芳人著、工学図書)

2013/9/25 コンピュータアーキテクチャ4

Page 6: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

評価方法とオフィスアワー

• 評価方法

– 平常点(授業参加等) 30%

– 中間試験 30%

– 期末試験 40%

• オフィスアワー

– オフィスアワーについてはメールで個別に時間を予約するものとする

• 連絡先:[email protected]

2013/9/25 コンピュータアーキテクチャ5

Page 7: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

授業用Webサイト

• http://www.klab.is.sci.toho-u.ac.jp/classes/

• 金岡が受け持っている講義の資料(この講義以外も)をアップロードしています

• 「コンピュータアーキテクチャ」のページも作成しました

• 講義資料をPDF化してすべて載せていきます。

2013/9/25 コンピュータアーキテクチャ6

Page 8: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

第1週 2進数表現・論理回路の復習

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

7 2013/4/10 コンパイラとプログラム言語

Page 9: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

本日の到達目標と概要

• 到達目標

– 2進数の表現と論理回路を学ぶ

• 概要

– 基数

– 数値の表現

– 演算精度

– 論理演算とシフト演算

– 加算器・半加算器・全加算器

– 組合せ回路と順序回路

8 2013/9/25 コンピュータアーキテクチャ

Page 10: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

基数

2013/9/25 コンピュータアーキテクチャ9

人間が日常使っている数値 10進数

コンピュータが扱う数値 2進数

基数とは

10進数では9の次は10、99の次は100、のように10倍ごとに桁が上がる

桁上がりの基準となる数 基数

Page 11: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

2進数と10進数の関係(1)

2013/9/25 コンピュータアーキテクチャ10

2進数 10進数 2のべき乗

0 0

1 1 20

10 2 21

11 3

100 4 22

101 5

110 6

111 7

1000 8 23

1001 9

2進数 10進数 2のべき乗

1010 10

1011 11

1100 12

1101 13

1110 14

1111 15

10000 16 24

10001 17

10010 18

10011 19

Page 12: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

2進数と10進数の関係(2)

2013/9/25 コンピュータアーキテクチャ11

10進数の12345 104 × 1 + 103 × 2 + 102 × 3 + 101 × 4 + 100 × 5

各桁の数字は、基数の桁数だけべき乗されている

2進数の1011 23 × 1 + 22 × 0 + 21 × 1 + 20 × 1 = 11

10進数にすると112進数の111

2進数の10011010

2進数を10進数に変換する

小数も同じ

2進数の110.101 22 × 1 + 21 × 1 + 20 × 0+2−1 × 1 + 2−2 × 0 + 2−3 × 1 = 6.625

Page 13: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

2進数と10進数の関係(3)

2013/9/25 コンピュータアーキテクチャ12

10進数を2進数に変換する

160 = 128 + 32 = 27 + 25

2のべき乗の足し算に変える

27 10000000

25 100000

27 + 25 10100000

2で割っていき、商とあまりから求める

160

80

40

20

10

5

2

1

0

…0

…1

…0

…0

…0

…0

…0

…1

10100000

Page 14: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

16進数

• 0-9,A-Fの16文字で表す

2013/9/25 コンピュータアーキテクチャ13

2進数 10進数 16進数

0 0 0

1 1 1

10 2 2

11 3 3

100 4 4

101 5 5

110 6 6

111 7 7

1000 8 8

1001 9 9

2進数 10進数 16進数

1010 10 A

1011 11 B

1100 12 C

1101 13 D

1110 14 E

1111 15 F

10000 16 10

10001 17 11

10010 18 12

10011 19 13

2進数 10進数 16進数

10100 20 14

10101 21 15

10110 22 16

10111 23 17

11000 24 18

11001 25 19

11010 26 1A

11011 27 1B

11100 28 1C

11101 29 1D

n進数であることを明示する場合は(0000111)nのように()と右下に基数を記載する

Page 15: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

数値の表現:固定小数点数と2の補数

• コンピュータの内部では整数を2進数の固定小数点数として表現している

– 固定小数点数:データの中で小数点の位置が固定されている

• 16ビット(2バイト)や32ビット(4バイト)の大きさで表現される

• 先頭のビットは符号を表し、符号ビット(Sign Bit)と言う

2013/9/25 コンピュータアーキテクチャ14

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0ビット番号:

符号ビット(正:0、負:1)

Page 16: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

2の補数

• 負の数を表現する場合は、2の補数と呼ばれる表現が使われる

• nビット表現のデータの場合、n+1ビット目が1となる値から負として表現したい数値を引くことで求められる

2013/9/25 コンピュータアーキテクチャ15

16ビット表現データの場合で (-11010)2 を表す:

10000000000000000-11010=1111111111000110

簡単なやり方:値を反転(逆)にして、その値に1を加える

2の補数表現を利用する理由

演算が容易になる。減算(引き算)が2の補数の加算(足し算)で行うことが可能。

Page 17: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

浮動小数点数• 実数を扱うときには固定小数点数ではなく浮動小数点数(小数点の位置が動く)で表現される

• 10進表現の199610.21は1.9961021x10^5– 左部分を仮数、右部分を基数と指数

• 32ビットの場合– 先頭1ビット:仮数の符号– 8ビット:指数部– 23ビット:仮数部

2013/9/25 コンピュータアーキテクチャ16

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

31 30 29 28 27 26ビット番号:

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 025 24 23 22 21 20 19 18 17 16

符号ビット(正:0、負:1)

指数部 仮数部

Page 18: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

論理演算

• 論理演算

– ブール演算(Boolean Operation)とも。

– 「真(1)」と「偽(0)」の2つの結果を出す演算

– 3つの基本的な演算

• 論理和(OR)

• 論理積(AND)

• 否定(NOT)

• 論理和(OR)

– 0 or 0のみ0。あとは1になる。

• 論理積(AND)

– 1 and 1のみ1。あとは0になる。

• 否定

– not 0は 1、not 1は0

• そのほかに否定論理和(NOR)、否定論理積(NAND)、排他的論理和(XOR)などがある

2013/9/25 コンピュータアーキテクチャ17

Page 19: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

論理和、論理積、否定

2013/9/25 コンピュータアーキテクチャ18

論理和(OR)

論理積(AND)

否定(NOT)

X Y X or Y

0 0 0

0 1 1

1 0 1

1 1 1

真理値表

X Y X or Y

0 0 0

0 1 0

1 0 0

1 1 1

真理値表

X not X

0 1

1 0

真理値表

Page 20: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

論理和、論理積、否定

2013/9/25 コンピュータアーキテクチャ19

否定論理和(NOR)

否定論理積(NAND)

排他的論理和(XOR)

X Y X or Y

0 0 1

0 1 0

1 0 0

1 1 0

真理値表

X Y X or Y

0 0 1

0 1 1

1 0 1

1 1 0

真理値表

真理値表X Y X or Y

0 0 0

0 1 1

1 0 1

1 1 0

Page 21: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

シフト演算

• シフト演算の種類– 論理シフト

• 2進数の桁を左または右に移動する演算– 論理左シフト– 論理右シフト

– 算術シフト• 符号ビットについてはシフトの対象としない演算

– 算術左シフト– 算術右シフト

2013/9/25 コンピュータアーキテクチャ20

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0ビット番号:

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

左に1ビットシフト

Page 22: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

論理回路

2013/9/25 コンピュータアーキテクチャ21

論理回路とは

演算回路の組み合わせによりさまざまな論理演算を実現する回路

演算回路

論理演算を実現する回路:AND回路、OR回路、NOR回路など

代表例:加算器(半加算器、全加算器)複数の桁の2つのデータを入力し、その加算の結果を出力する回路

Page 23: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

加算器

• 半加算器(Half Adder)

• 1つの桁の加算を行う回路。2つの入力の和を求める。

• 桁上がり(繰り上がり)が生じる可能性があるので出力は2つ

– 全加算器(Full Adder)

• 1つの桁の加算を行う回路。3つの入力の和を求める。

• 下位からの桁上がり(繰り上がり)に対応した加算器

– 加算器

• 半加算器と全加算器を組み合わせることで複数桁の加算を行う加算器を実現することができる。

2013/9/25 コンピュータアーキテクチャ22

半加算器

全加算器

nビット全加算器

Page 24: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

組合せ回路と順序回路

• 組合せ回路

– これまでやってきた回路のようなもの

• AND、OR、NOT、NAND、NOR、XOR

– 入力した値だけで出力結果が決まる回路

• 順序回路

– 出力結果が入力の値だけでは決まらず、回路の内部状態と合わせて結果が決まる

– 代表例

• フリップフロップ

– RSフリップフロップ

2013/9/25 コンピュータアーキテクチャ23

Page 25: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

RSフリップフロップ

2013/9/25 コンピュータアーキテクチャ24

S R Q

0 0 Q

0 1 0

1 0 1

1 1 ×(禁止)

1つ前の入力の状態が今回の出力に関係してくる

Page 26: コンピュータアーキテクチャ - klab.is.sci.toho ... · 10進数の12345 s r4× s+ 3 × t + s r2 u 1 v 0 w 各桁の数字は、基数の桁数だけべき乗されている

本日の到達目標と概要

• 到達目標

– 2進数の表現と論理回路を学ぶ

• 概要

– 基数

– 数値の表現

– 演算精度

– 論理演算とシフト演算

– 加算器・半加算器・全加算器

– 組合せ回路と順序回路

25 2013/9/25 コンピュータアーキテクチャ