Slide 1

Slide 1 text

コンピューターの基礎 シリーズAI入門 © FSCjJh3NeB 2021 (※ 但し画像を除く)

Slide 2

Slide 2 text

n AIは計算機で作成されることが多い u 計算機ができたことで,AI研究が盛り上がった u 計算機はそもそもどんなもの? p 計算機はどういう仕組みでできている? p 計算機はどういう仕組みで計算している? p (なんで,それで知能ができるの???) 2

Slide 3

Slide 3 text

日用品過ぎて謎の存在コンピュータ n Computer? u Compute=“計算する”を意味する動詞が元 p 我々が今,一般にいう「コンピュータ」登場以前は 計算を行う人を指して「 Computer」と呼称 u この講義では計算機とコンピュータを同義で呼称 u 実は「コンピュータ」は「そろばん」とほぼ同じ 3

Slide 4

Slide 4 text

映画:Hidden Figures n マーキュリー計画に参加し た Computer(右の3人の女性) が主人公の映画 u 日本題:ドリーム u 半分以上は実話 u 初期のプログラミング言語 FORTRAN の話も出てくる 4 ※ マーキュリー計画:1958年〜1963年 IBM 7090 は 1959年に完成,導入 本作品で主人公(ポスター真ん中)として取り上げられた キャサリン・ジョンソン博士は2020年2月に101歳で逝去

Slide 5

Slide 5 text

IT, ICT n IT u Information Technology u 情報技術 n ICT u Information/Communication Technology u 情報通信技術 5

Slide 6

Slide 6 text

情報処理と情報通信 n 情報通信:入力=出力 n 情報処理:入力 = 出力 / 6

Slide 7

Slide 7 text

コンピュータの基礎構成要素 n 基本は3種類:入力・演算(処理)・出力 f(x) 入力 演算 出力 7

Slide 8

Slide 8 text

コンピュータの基礎構成要素 n 基本は3種類:入力・演算(処理)・出力 入力 演算 出力 8

Slide 9

Slide 9 text

コンピュータの基礎構成要素 n 演算部分が本体 u パソコンを買うときによく聞く単語=重要な要素 G PU メモリ CPU HDD/SSD GPU データを記録 データを処理 9

Slide 10

Slide 10 text

コンピュータの基礎構成要素 n ハードウェアを制御するためにはソフトウェアも G PU BIOS OS アプリ アプリ ミドルウェア ミドルウェア 10

Slide 11

Slide 11 text

コンピュータの基礎構成要素 n ハードウェアを制御するためにはソフトウェアも G PU BIOS OS アプリ ミドルウェア ソフトウェア ハードウェア 11

Slide 12

Slide 12 text

n “計算”は文明の構築に不可欠な要素 u 暦の策定,建造物(ex.ピラミッド)の構築,などなど u 補助ツールとしての計算機もいろいろ 計算機色々 砂そろばん (メソポタミア?) 千 百 十 一 算木 (中国?) 計算尺 ※ Description: Calculator Triumphator CRN1 build 1958 in Germany (DDR) * Source: made by author * Date: 2006-02-12 * Author: Hannes Grobe 手回し式計算機※ 12

Slide 13

Slide 13 text

コンピュータの計算原理 n 実は「コンピュータ」は「そろばん」とほぼ同じ 13

Slide 14

Slide 14 text

コンピュータの計算原理 n 電磁リレー u 電磁石を使って,回路をON・OFF n 真空管 u 電気的に,電気のON・OFFを制御 n トランジスタ u 真空管をもっと進化させたようなイメージ 「そろばん」の“珠”を,スイッチで表現 14

Slide 15

Slide 15 text

スイッチの原理 n リレー回路の場合は単純な電磁石の仕組み u 電気を通すと,磁石の力でスイッチON u 電気を止めると,磁力が消えてスイッチOFF × 15

Slide 16

Slide 16 text

スイッチの原理 種別 速度 安定性 作りやすさ 電磁リレー とても遅い すぐ壊れる 簡単 真空管 遅い すぐ壊れる すこし難しい トランジスタ 早い まず壊れない 非常に難しい 16

Slide 17

Slide 17 text

最古の(電子式)コンピュータ…? n 定義によるが,多くの場合… u ABC:Atanasoff-Berry Computer u ENIAC: Electronic Numerical Integrator and Computer 時期的には1940年代,第2次世界大戦中に開発 ENIACは特に,弾道計算を目的に作成された 17

Slide 18

Slide 18 text

余談:類するもの n Enigma,Bombe,COLOSSUS u ABC,ENIACと同時期に作成された計算機 u 暗号生成・解析用 ※ A rebuild of a British Bombe located at Bletchley Park museum. Photographer: User:Tom Yates Enigma Colossus Mark-I Bombe※ これらは特定の暗号生成・解析しかできず,さらにEnigmaはほぼ機械式 18

Slide 19

Slide 19 text

ポイント n この時代のコンピュータは,ハードウェア的に プログラムを作成するものが多い u 「4+8」を計算させるとして,回路上の線などを 物理的に差し替えることで実行 n ただし,基本的な原理は現在も変わらず u 大まかには,小型化&高速化したもの 情報空間=「仮想世界」,物理空間=「現実世界」??? 小型化・ブラックボックス化により 現実感がないが,当然,物理的な動きに根ざす 19

Slide 20

Slide 20 text

ABC vs. ENIAC n 書籍やWebサイトにより「世界最初の電子式コン ピュータ」や,その成立年には揺らぎ… u 定義の仕方により見解が分かれる u 多くの場合でABCもしくはENIACがあげられ,後者が主 流 n 成立年の揺らぎについて(※トリビア) u どの論文・特許・レポートなどを用いるかによる n ABCとENIACの揺らぎ u 「電子式コンピュータ」の定義等による 20

Slide 21

Slide 21 text

ABC vs. ENIAC n ABC u 二進法によるデータ表現 u 機械的なデバイス(歯車や機械的スイッチ)を用いず, 電子的に計算を実行 u 計算をする部分とデータを保持する部分メモリを分離 u 非プログラム内蔵方式 u 連立一次方程式を解く機能のみを実現 n ENIAC u 10進法によるデータ表現 u 機械的なデバイス(歯車や機械的スイッチ)を用いず, 電子的に計算を実行 u 計算をする部分とデータを保持する部分メモリを分離 u プログラム内蔵方式(後になってから) p チューリング完全(ここでは様々な計算問題を解ける…位でOK) 21

Slide 22

Slide 22 text

この時代のコンピュータの基礎構成要素 メモリ (計算用回路) 出力 電気を貯める 電気を流す・止める 光る 22 Central Processing Unit

Slide 23

Slide 23 text

この時代のコンピュータの基礎構成要素 n CPU,メモリ,などはすごそうだ(実際スゴイ)が, 基本的には下のような回路のちょっとスゴイ版 電池 スイッチ ×電球 23

Slide 24

Slide 24 text

プログラム内蔵方式 n メモリ上にプログラムを読み込み,実行する u <-> ワイヤードプログラム方式 p 回路上で,線(ワイヤー)を繋いでプログラムを表現する 24 ENIACの操作風景 ケーブルを抜き差ししている

Slide 25

Slide 25 text

当時におけるコンピュータの評価 n コンピュータは全世界で5台ぐらいしか売れないと思う トーマス・J・ワトソン( IBM創業者 )?(1943年?) ※ ※ 実際にはそんなことは言っていないと言う説がかなり優勢 電卓と同様かつ手のかかるもので, 多くの人にとっては全く縁のないものだった 25

Slide 26

Slide 26 text

最初期の汎用コンピュータ&ハードディスク n UNIVAC-I (1951) n IBM 305 RAMAC (1956) 最初期のコンピュータ ENIAC 完成が おおよそ1946年 汎用電子デジタルコンピュータは,その5年後に ENIAC のエンジニアらが設計 汎用のハードディスクは,さらに5年後の 1956年 (ダートマス会議も同年) ※厳密には305に搭載された350ユニット 26

Slide 27

Slide 27 text

現代のコンピュータの基礎構成要素 メモリ (計算用回路) 入出力 電気を貯める 電気を流す・止める 光る 27 Central Processing Unit

Slide 28

Slide 28 text

メモリ 現代のコンピュータの基礎構成要素 I/O バス レジスタ CPU 28

Slide 29

Slide 29 text

そろばんの計算方法(数字の表し方) 2 6 5 1〜4 5 29

Slide 30

Slide 30 text

そろばんの計算方法(足し算) 265+ 111 = ? 30

Slide 31

Slide 31 text

そろばんの計算方法(足し算) 3+ 5 = ? 31

Slide 32

Slide 32 text

そろばんの計算方法(足し算) 3+ 6 = ? 32

Slide 33

Slide 33 text

そろばんの計算方法(足し算) 3+ 7 = ? 33

Slide 34

Slide 34 text

そろばんの計算方法(足し算) n 玉の位置で数値を表現 n 各列が桁(1, 10, 100, 1000…)に対応 n 玉が動かせなくなったら(各列で9以上になった ら)その分を上の桁に繰り越し 引き算は逆の操作 かけ算は足し算の繰り返しでもOK 電気的にできたら高速にできるかも? 34

Slide 35

Slide 35 text

コンピュータの計算原理 n 「そろばん」で言う,玉の位置を電気的に保持し, 計算を実現 n 電気のあり・なし(ON/OFF)で表現 u 1桁あたり玉が一つの「そろばん」を考えると良い OFF/0 OFF/0 ON/1 35

Slide 36

Slide 36 text

デジタル計算機 n デジタル -> digital ------> digit -> 桁 砂そろばん (メソポタミア?) 千 百 十 一 算木 (中国?) 計算尺 ※ Description: Calculator Triumphator CRN1 build 1958 in Germany (DDR) * Source: made by author * Date: 2006-02-12 * Author: Hannes Grobe 手回し式計算機※ 石や棒などの独立したモノで 何らかの数値を表すタイプ 明確な切れ目がない,定規のようなタイプ デジタル アナログ 36

Slide 37

Slide 37 text

n 離散値(デジタル)と連続値(アナログ) u 離散値:デジタル (カクカクしてる) u 連続値:アナログ (なめらか) デジタルとアナログ 37

Slide 38

Slide 38 text

コンピュータの計算原理 n 電磁リレー u 電磁石を使って,回路をON・OFF n 真空管 u 電気的に,電気のON・OFFを制御 n トランジスタ u 真空管をもっと進化させたようなイメージ 「そろばん」の“珠”を,スイッチで表現 38

Slide 39

Slide 39 text

スイッチの原理 種別 速度 安定性 作りやすさ 電磁リレー とても遅い すぐ壊れる 簡単 真空管 遅い すぐ壊れる すこし難しい トランジスタ 早い まず壊れない 非常に難しい 動く・熱が出る=壊れやすい …と,考えればOK! 39

Slide 40

Slide 40 text

回路用記号(一部) 抵抗 スイッチ (ON/OFF) スイッチ (プッシュ) LED 交差 (接触なし) グラウンド 結線 スイッチ (トランジスタ) 40

Slide 41

Slide 41 text

トランジスタ n とりあえずここでは「半導体」を使ったスイッチ n 電気でON/OFFを制御 N型:普段はOFF 制御線に電気を流すとON P型:普段はON 制御線に電気を流すとOFF IN OUT IN OUT GATE GATE 41

Slide 42

Slide 42 text

n 計算のためには電気回路で論理演算を実現する必要 n 論理演算(Logical Operation) u ブール演算(Boolean Operation)とも u 1(真)か0(偽)かの2通りの入力値に対して1つの値を出力 する演算 u AND,OR,NOT の3種類ができればOK 42

Slide 43

Slide 43 text

AND I1 I2 O 0 0 0 0 1 0 1 0 0 1 1 1 I1 I2 O 43

Slide 44

Slide 44 text

OR I1 I2 O 0 0 0 0 1 1 1 0 1 1 1 1 I1 I2 O 44

Slide 45

Slide 45 text

NOT I O 0 1 1 0 I O ※ LEDの記号との混乱に注意 45

Slide 46

Slide 46 text

NOT AND (NAND) I1 I2 O 0 0 1 0 1 1 1 0 1 1 1 0 I1 I2 O 46

Slide 47

Slide 47 text

NOT OR (NOR) I1 I2 O 0 0 1 0 1 0 1 0 0 1 1 0 I1 I2 O 47

Slide 48

Slide 48 text

n 論理演算をそのまま電気回路で実現するのは なかなか困難なタスク… n 実際には,NAND,NOR,NOT を実現 u AND は NAND の NOT u OR は NOR の NOT 48

Slide 49

Slide 49 text

NOT I O 0 1 1 0 I O Vh I O 49

Slide 50

Slide 50 text

NOT AND (NAND) I1 I2 O 0 0 1 0 1 1 1 0 1 1 1 0 I1 I2 O Vh O I1 I2 50

Slide 51

Slide 51 text

NOT OR (NOR) I1 I2 O 0 0 1 0 1 0 1 0 0 1 1 0 I1 I2 O Vh O I1 I2 51

Slide 52

Slide 52 text

2進数における 1bit の演算 n 入力は,IA,B の2つ n 結果の最大値は,10進数での 2,2進数の10 u 出力が2桁なので,2つの線が必要 IA IB 0 0 0 1 1 0 1 1 O 0 1 1 2 O2 O1 0 0 0 1 0 1 1 0 1bit = 1桁 52

Slide 53

Slide 53 text

2進数における 1bit の演算 IA IB O1 O2 IA IB 0 0 0 1 1 0 1 1 O2 O1 0 0 0 1 0 1 1 0 53

Slide 54

Slide 54 text

XOR I1 I2 O 0 0 0 0 1 1 1 0 1 1 1 0 I1 O I2 00 1 01 1 10 1 11 0 00 0 01 1 10 1 11 1 I1 I2 O この回路で実現 54

Slide 55

Slide 55 text

2進数における n bit の演算 n n-1 n-2 … j … 1 0 IA IB O 0桁目があるので,これで n bit n bit 同士の足し算では,最大 n+1 bit j 桁目の出力を決める要因は…? IA,j , IB,j と (IA,j-1 + Ib,j-1 )の桁上がりの有無 55

Slide 56

Slide 56 text

2進数における 1bit 3入力 の演算 IA IB Ic 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 O2 O1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 IA IC O1 O2 IB 下位の桁からの繰り上がり 56

Slide 57

Slide 57 text

2進数における 1bit 3入力 の演算 IA IC O1 O2 IB IA IB O1 O2 IA IB O1 O2 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 0 1 0 1 1 0 0 1 1 0 1 0 1 1 57

Slide 58

Slide 58 text

2進数における N bit の演算 IA IB O1 O2 IA IB O1 O2 IC IA IB O1 O2 IC IA IB O1 O2 IC IA,0 IB,0 IA,1 IB,1 IA,2 IB,2 IA,n-1 IB,n-1 … O0 O1 O2 On-1 On … 58

Slide 59

Slide 59 text

シークエンス回路 n 順序回路とも n 単純な論理回路だけでは状態が保持できない u 2入力の回路で,1+2+3 を実現するには… p 1+2 の結果(A)を求める p Aの状態をセットし,A+3の結果(B)を求める n 過去の状態も参考に,出力を決められる回路 n “遅延(Delay)”要素によって過去状態を保持 自動でセットしたい 59

Slide 60

Slide 60 text

シークエンス回路 論理回路 入力 出力 内部状態 次の 内部状態 D D D 遅延回路 60

Slide 61

Slide 61 text

シーケンス回路の構成要件 n 「出力を入力につなげば,前の状態を取り込める」 という発想自体は理解できる n 単純に,出力を入力に戻してOKか? u 「ラットレーシング」現象 p 入力と出力が区別できなくなりループしてしまう… 61

Slide 62

Slide 62 text

シーケンス回路の構成要件 n 入出力の対応を明確にするために, 何らかの「カウンタ」を持ち込んではどうか? u 状態1に対する出力を,状態2の入力に… n 「カウンタ」をどう実現? u 発振回路:一定の周期で電圧を上下させる仕組み n 「カウンタ」に対応させた出力の入力をどう実現? u 遅延回路:カウンタに応じて前の状態を戻す仕組み 62

Slide 63

Slide 63 text

発振回路 n 水晶の圧電効果を用いるものが一般的 u 原理や回路についてはここでは省略 n 発振回路によって,特定の周波を得ることができ, これをクロック信号(カウンタ)に利用 t 1t 63

Slide 64

Slide 64 text

発振回路 n 実は発振回路は非常に身近 u CPUにおける重要な要素の一つ n これらの数値が発振回路のクロック周波数 u 1秒あたりのカウント回数( ≈ 計算回数) 64

Slide 65

Slide 65 text

クロック周波数 n 1秒間に刻むクロックの数 n 動作周波数とも n 単位はHz(ヘルツ) u 1秒間に10回のクロックを刻む場合,10Hzと表現 n このクロックを回路(コンピュータ)全体で 共有することで,同期をとる 65

Slide 66

Slide 66 text

遅延回路 n 単位遅延(1t分の遅延)で,出力を戻す回路 u n回単位遅延させることで,任意の時間の遅延も実現 φ1 φ2 t φ1 φ2 O I 一瞬だけ電気(電荷) を保持できる部品 キャパシタ (≈コンデンサ) パストランジスタ (スイッチの⼀種) 66

Slide 67

Slide 67 text

パストランジスタ n P型とN型のトランジスタを組み合わせた ( Complementary :C型 )のトランジスタ u ここではP型,N型の欠点を相補するスイッチ …といった程度の認識でOK I O G G I O G 67

Slide 68

Slide 68 text

レジスタ n メモリ(データを保持する回路)の一種 u 先の遅延回路の応用の一種ともいえる n 特に“内部メモリ”として利用 I φ1 ・Wt φ2 φ1 ・Wt φ1 ・Rd O 68