Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コンピュータの仕組み(2)
Search
Naoki Kato
PRO
May 08, 2019
Education
3
470
コンピュータの仕組み(2)
Naoki Kato
PRO
May 08, 2019
Tweet
Share
More Decks by Naoki Kato
See All by Naoki Kato
なぜDXが必要なのか 〜教育の情報化の現状と展望〜
naokikato
PRO
0
9
教科書の捉えの変化
naokikato
PRO
0
11
教育現場における生成AIの活用とこれからの学校
naokikato
PRO
0
52
学校や家庭における効果的なICTの活用
naokikato
PRO
0
40
学校や家庭における効果的なICTの活用
naokikato
PRO
0
6
大学で学ぶ色のはなし
naokikato
PRO
0
20
GIGAスクール時代の情報教育とICT活用
naokikato
PRO
1
23
GIGAスクール構想実現に向けた学校の取組
naokikato
PRO
0
94
イントロダクション
naokikato
PRO
0
86
Other Decks in Education
See All in Education
ニュースメディアにおける生成 AI の活用と開発 / UTokyo Lecture Business Introduction
upura
0
150
認知情報科学科_キャリアデザイン_大学院の紹介
yuyakurodou
0
140
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
1
2.6k
Image compression
hachama
0
240
HP用_松尾研紹介資料.pdf
matsuolab
0
310
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
4
15k
Medicare 101 for 2025
robinlee
PRO
0
330
1127
cbtlibrary
0
170
TP5_-_UV.pdf
bernhardsvt
0
120
(2024) Couper un gâteau... sans connaître le nombre de convives
mansuy
2
160
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
2.5k
Carving the Way to Ruby Engineering
koic
3
480
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
It's Worth the Effort
3n
183
28k
BBQ
matthewcrist
85
9.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Music & Morning Musume
bryan
46
6.2k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.4k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Bash Introduction
62gerente
609
210k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
110
Transcript
by Naoki Kato ©Naoki Kato ©Naoki Kato コンピュータの仕組み(2) Computer Science,
Engineering and Literacy
by Naoki Kato © Naoki Kato © Naoki Kato ブール代数
論理や推論を数学で扱うために 数学者ジョージ・ブールによって提唱 定義 集合AとA上の演算(+,・,¬),特別なAの元(⊥,T) が次の関係式を満たす 冪等律:a・a = a+a = a 交換律:a・b = b・a, a+b = b+a 分配律:a+(b・c) = (a+b)・(a+c), a・(b+c) = (a・b)+(a・c) 結合律:(a・b)・c = a・(b・c) (a+b)+c = a+(b+c) 吸収律:(a・b)+a = a,(a+b)・a = a 補元律:a・¬a = ⊥,a+¬a =T ブール代数と論理回路
by Naoki Kato © Naoki Kato © Naoki Kato 二元ブール代数と論理代数
二元ブール代数 元が 1 と 0 のみ 真(T)を 1,偽(F)を 0 に対応させた論理代数 ブール代数と論理回路 ・ ・ + + ¬ ¬ T T ⊥ ⊥ ∧(AND) 論理積 ∨(OR) 論理和 (NOT) 否定 1 0
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算(論理代数における演算)
二変数(0と1)の演算の組合せは 4 通り ブール代数と論理回路 𝑥𝑥 𝑥𝑥 y y 0 0 0 1 1 0 1 1
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算(論理代数における演算)
二変数(0と1)の演算の組合せは 4 通り ブール代数と論理回路 𝑥𝑥 𝑥𝑥 y y 0 0 0 1 1 0 1 1 0 か 1 0 か 1 0 か 1 0 か 1 演算の結果は
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算(論理代数における演算)
二変数の論理演算の結果=種類は 16 通り ブール代数と論理回路 | | NOR XOR NAND 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 𝑥𝑥 𝑥𝑥 y y 0 0 0 1 1 0 1 1 AND OR 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 ∧ ∨ ⊕
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算の完全性
すべての二変数論理演算は, 基本論理演算(∧,∨,‾)の組合せで表現可能 実は(∨,‾)でも表現可能 さらに(NAND)だけでも表現可能 ブール代数と論理回路 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 0 x y x x∨ y x∧ x∨ y ( )
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算(論理代数における演算)
三変数演算 二変数の演算結果 と 残りの変数との演算 N変数演算も二変数演算に帰着可能 すべての論理演算は,基本論理演算で表現可能 ブール代数と論理回路
by Naoki Kato © Naoki Kato © Naoki Kato 論理演算と二進法における算術演算
二進法の数の算術演算は論理演算に帰着可能 例)二進記数法の一桁の加算(結果は二桁) ブール代数と論理回路 X Y C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 𝑥𝑥 ⊕ 𝑦𝑦= ̅ 𝑥𝑥 ∧ 𝑦𝑦 ∨ 𝑥𝑥 ∧ ' 𝑦𝑦 𝑥𝑥 ∧ 𝑦𝑦
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路
論理演算はスイッチの組み合わせで表現できる 1937年,クロード・シャノン ブール代数と論理回路 電流を流す 電流を流さない
by Naoki Kato © Naoki Kato © Naoki Kato 論理ゲート
スイッチで構成した基本論理演算を実現する回路 ブール代数と論理回路 X1 Y1 X2 Y2 X1 Y1 X2 Y2 X1 Y1 論理積(AND)ゲート 論理和(OR)ゲート 否定(NOT)ゲート
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路
論理演算はスイッチの組み合わせで表現できる 1937年,クロード・シャノン 基本論理演算がスイッチで表現できる すべての論理演算がスイッチで表現できる 二進法の数の算術演算が, スイッチの組み合わせで表現できる 二進法で計算を行うコンピュータの開発へ! ブール代数と論理回路 それまでは⼗進法 の計算機を作ろう とがんばっていた
by Naoki Kato © Naoki Kato © Naoki Kato スイッチの変貌とコンピュータの大きさ
リレー 真空管 トランジスタ 集積回路(IC:Integrated circuit) 大規模集積回路(LSI:Large Scale IC) ブール代数と論理回路
by Naoki Kato © Naoki Kato © Naoki Kato 論理ゲート(MIL)記号
論理ゲートを表現する記号 論理回路 論理積(AND)ゲート 論理和(OR)ゲート 否定(NOT)ゲート 否定的論理積 (NAND)ゲート 否定的論理和 (NOR)ゲート 排他的論理和 (XOR)ゲート
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路
組合せ回路 出力値が,その時点での入力値で決まる回路 順序回路 出力値が,現在の状態と入力の値に応じて決まる 論理回路
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:エンコーダ
10進法(ボタン)を2進法に変換 論理回路 Z0 A0 Z0 Z1 Z2 Z3 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A1 A0 0 0 0 1 1 0 1 1 Z1 A1 Z2 Z3 0 1 2 3
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:デコーダ
2進法の数を10進法に変換するデコーダ 論理回路 C1 C0 Z0 Z1 Z2 Z3 Z0 Z1 Z2 Z3 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 C1 C0 0 0 0 1 1 0 1 1
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:デコーダ
2進法の数を10進法に変換するデコーダ 論理回路 C1 C0 Z0 Z1 Z2 Z3 Z0 Z1 Z2 Z3 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 C1 C0 0 0 0 1 1 0 1 1 1 0
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:数字表示
論理回路 C1 C0 Z0 Z1 Z2 Z3 0 1 2 3 4 6 7
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:セレクタ
論理回路 00 01 Z0 Z1 2進→10進デコーダ
by Naoki Kato © Naoki Kato © Naoki Kato 組合せ回路:セレクタ
論理回路 Z0 Z1 2進→10進デコーダ 0 1
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路で作る二進法の数の算術演算
半加算器 二進一桁の加算 論理回路 X Y C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 𝑥𝑥 ⊕ 𝑦𝑦= ̅ 𝑥𝑥 ∧ 𝑦𝑦 ∨ 𝑥𝑥 ∧ ' 𝑦𝑦 𝑥𝑥 ∧ 𝑦𝑦 X Y S C X Y S C
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路で作る二進法の数の算術演算
全加算器 下の桁からの繰り上がりを含めた二進一桁の加算 論理回路 A B Ci 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 A B C0 S Ci C0 S 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1
by Naoki Kato © Naoki Kato © Naoki Kato 論理回路で作る二進法の数の算術演算
二進二桁の加算 論理回路 a0 b0 a1 b1 c0 c1 c2 a1 a0 + b1 b0 = c2 c1 c0 a1 a0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 b1 b0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 c2 c1 c0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0
by Naoki Kato © Naoki Kato © Naoki Kato 順序回路:RS-FF回路
論理回路 S R 内 内部 部状 状態 態 0 0 保持 0 1 0 1 0 1 1 1 不定 RS-FF回路 S R Q Q
by Naoki Kato © Naoki Kato © Naoki Kato 順序回路:トリガフリップフロップ
(T-FF) 信号が入ると状態が変わる 論理回路 S R Q Q ⼊⼒T Q Q ⼊⼒T 出⼒Q
by Naoki Kato © Naoki Kato © Naoki Kato T-FFを使った2進カウンタ
論理回路 T T T Q1 Q2 Q3 X Q1 Q2 Q3 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 X
by Naoki Kato © Naoki Kato © Naoki Kato 順序回路:データフリップフロップ
(D-FF) クロック信号が入った時の入力信号がセットされる 論理回路 S R Q Q Q ⼊⼒D クロック クロック ⼊⼒D 出⼒Q D-FF回路 Q
by Naoki Kato © Naoki Kato © Naoki Kato D-FFを使った記憶回路
論理回路 CLK LD 2ビットの記憶回路 D D D LD CK D LD CK D0 D1 CK LD
by Naoki Kato © Naoki Kato © Naoki Kato D-FFを使った記憶回路
論理回路 CLK LD D D
by Naoki Kato © Naoki Kato © Naoki Kato D-FFを使った記憶回路
論理回路 CLK LD D D
by Naoki Kato © Naoki Kato © Naoki Kato D-FFを使った記憶回路
論理回路 CLK LD 2ビットの記憶回路 D D D LD CK D LD CK D0 D1 CK LD
by Naoki Kato © Naoki Kato © Naoki Kato 加算電卓
論理回路で計算機を作る 0 1 2 3 0 1 2 3 ⼗ 進 ⼆ 進 デ コ & ダ ⼗ 進 ⼆ 進 デ コ & ダ ⼆ 進 ⼆ 桁 加 算 器 ⼆ ビ - ト 記 憶 回 路 ⼆ ビ - ト 記 憶 回 路 ⼆ 進 ⼗ 進 デ コ & ダ
by Naoki Kato © Naoki Kato © Naoki Kato (a+b)-(c+d)
を計算する回路 論理回路で計算機を作る 加算器 加算器 減算器 2ビット記憶回路 2ビット記憶回路 2ビット記憶回路 2ビット記憶回路 ⼆ 進 ⼗ 進 デ コ & ダ
by Naoki Kato © Naoki Kato © Naoki Kato メモリの実現(出力側)
論理回路で計算機を作る ⼆進⼗進変換デコーダ 00 2ビット記憶回路 2ビット記憶回路 2ビット記憶回路 2ビット記憶回路 01 CK 出⼒⽤(取り出したい場所を指定) 取 り 出 し た デ ' タ 00 01
by Naoki Kato © Naoki Kato © Naoki Kato メモリの実現(入力側)
論理回路で計算機を作る ⼆進⼗進変換デコーダ 00 2ビット記憶回路 01 CK 2ビット記憶回路 LD 2ビット記憶回路 2ビット記憶回路 ⼊⼒⽤(⼊れたい場所を指定) ⼊ ⼒ し た い デ ' タ 00 01
by Naoki Kato © Naoki Kato © Naoki Kato プログラマブルコンピュータもどき
論理回路で計算機を作る 4ビットメモリ カウンタ CK 上位2ビット 2ビット記憶回路 2ビット記憶回路 2ビット記憶回路 下位2ビット 加算回路 減算回路 2ビット記憶回路 セレクタ 01 10 11 ⼆ 進 ⼗ 進 変 換 LD 出⼒⽤ ⼊⼒⽤ D0 D1 D2 D3 LD
by Naoki Kato © Naoki Kato © Naoki Kato プログラマブルコンピュータもどき
論理回路で計算機を作る 4ビットメモリ カウンタ CK 上位2ビット 11 01 01 10 10 01 下位2ビット 加算回路 減算回路 2ビット記憶回路 セレクタ case01 case10 case11 ⼆ 進 ⼗ 進 変 換 LD 出⼒⽤ ⼊⼒⽤ D0 D1 D2 D3 LD 出⼒
by Naoki Kato © Naoki Kato © Naoki Kato ノイマン型コンピュータとは
現代のほとんどのコンピュータの型 最大の特徴 命令(たとえば足し算をしろ)と データ(3+5における3と5)を 区別なく主記憶装置(メモリ)に格納 EDVAC以前は,違った計算をするためには, 配線の入れ替えなど物理的な操作が必要 プログラム(命令とデータの集合) を書き換えるだけになった ノイマン型コンピュータ
by Naoki Kato © Naoki Kato © Naoki Kato プ
プロ ログ グラ ラミ ミン ング グと とは は コンピュータの仕組み(2)
by Naoki Kato © Naoki Kato © Naoki Kato フォンノイマン型コンピュータのしくみ
プログラミングとは Photo by Computer Laboratory, University of Cambridge. データ 0と1の集合 プログラム 0と1の集合 データ 0と1の集合 基本的な処理や演算を組合せて 複雑な処理をする⼿順 ソフトウェア
by Naoki Kato © Naoki Kato © Naoki Kato プログラミングとは
これを作ること プログラミングとは プログラム 0と1の集合 基本的な処理や演算を組合せて 複雑な処理をする⼿順 ソフトウェア 0 0000100000000100 1 0011000000000101 2 0001100000000110 3 0000000000000000 4 0000000000000010 5 0000000000000011
by Naoki Kato © Naoki Kato © Naoki Kato 高級プログラミング言語と実行方式
プログラミングとは 0 0000100000000100 1 0011000000000101 2 0001100000000110 3 0000000000000000 4 0000000000000010 5 0000000000000011 10 INPUT A 20 INPUT B 30 PRINT A+B コンパイラ インタプリタ
by Naoki Kato © Naoki Kato © Naoki Kato 一般的なプログラミング
プログラミングとは テキストエディタ 10 INPUT A 20 INPUT B 30 PRINT A+B コンパイラ EXE
by Naoki Kato © Naoki Kato © Naoki Kato インタプリタ型のプログラミング環境
プログラミングとは Scratch Jr画面イメージ:https://itunes.apple.com/us/app/scratchjr/id895485086?ls=1&mt=8より Scrathc Jr 10 INPUT A 20 INPUT B 30 PRINT A+B
by Naoki Kato © Naoki Kato © Naoki Kato プ
プロ ログ グラ ラミ ミン ング グ体 体験 験 コンピュータの仕組み(2)
by Naoki Kato © Naoki Kato © Naoki Kato 昔話:初期のパーソナルコンピュータ
プログラミング体験 左写真引用:http://itoi.jp/pc-8001.html 右写真引用: http://itoi.jp/time31.html#MZ-2000 電源を入れると BASIC
by Naoki Kato © Naoki Kato © Naoki Kato 昔話w
プログラミング体験 元秋田大学教授 中学1年生の私 母 私にパソコンを教えてしまった 担任
by Naoki Kato © Naoki Kato © Naoki Kato IchigoJam
プログラミング体験
by Naoki Kato © Naoki Kato © Naoki Kato IchigoJam
プログラミング体験
by Naoki Kato © Naoki Kato © Naoki Kato IchigoDake+スクールキット
プログラミング体験
by Naoki Kato © Naoki Kato © Naoki Kato Ichigo
Jam で体験 IchigoJam web http://fukuno.jig.jp/app/IchigoJam/ プログラミング体験
by Naoki Kato © Naoki Kato © Naoki Kato お
おし しま まい い コンピュータの仕組み(2)
by Naoki Kato © Naoki Kato © Naoki Kato ノイマン型コンピュータの基本構成
ノイマン型コンピュータ 主記憶装置 出⼒装置 制御装置 演算論理装置 ⼊⼒装置 制御の流れ データの流れ
by Naoki Kato © Naoki Kato © Naoki Kato より具体的な構成
ノイマン型コンピュータ 中央処理装置 主記憶装置 出⼒装置 演算論理装置 ⼊⼒装置 制御装置 伝送装置 プログラムカウンタ 命令レジスタ アキュムレータ
by Naoki Kato © Naoki Kato © Naoki Kato ハードウェアとソフトウェア
ノイマン型コンピュータ 中央処理装置 主記憶装置 出⼒装置 演算論理装置 ⼊⼒装置 制御装置 伝送装置 プログラムカウンタ 命令レジスタ アキュムレータ 基本的な処理や演算を⾏うための機構が スイッチの集合(論理回路)で作られている 基本的な処理や演算を組合せて 複雑な処理をする⼿順 ハ ' ド ウ / ア ソ フ ト ウ / ア
by Naoki Kato © Naoki Kato © Naoki Kato オペレーティングシステムとは
ハードウェアとのやりとりを仲介するソフトウェア オペレーティングシステム オペレーティングシステム (ソフトウェア) ハードウェア アプリケーションソフトウェア
by Naoki Kato © Naoki Kato © Naoki Kato オペレーティングシステムとは
ユーザとのやりとりをする部分(シェル)も含む オペレーティングシステム オペレーティングシステム (ソフトウェア) ハードウェア アプリケーションソフトウェア シェル
by Naoki Kato © Naoki Kato © Naoki Kato オペレーティングシステムの種類
Unix(BSD,Linux,…) TRON Microsoft Windows Mac OS などなど他にもいっぱい オペレーティングシステム
by Naoki Kato © Naoki Kato © Naoki Kato シェルの種類
CUI(Command User Interface) GUI(Graphical User Interface) オペレーティングシステム
by Naoki Kato © Naoki Kato © Naoki Kato オペレーティングシステムの役割
タスク・プロセス管理 メモリ管理 ファイル管理 ネットワーク管理 デバイス管理 オペレーティングシステム
by Naoki Kato © Naoki Kato © Naoki Kato タスク・プロセス管理
同時に行えることは中央演算処理装置の数だけ 時分割で順番にタスクを実行して,同時に動いてい るように見せる(マルチタスク) オペレーティングシステム オペレーティングシステム (ソフトウェア) ワープロソフト 時計ソフト 表⽰ ⼊⼒ 表⽰ 校正
by Naoki Kato © Naoki Kato © Naoki Kato メモリ管理
プログラム(タスク・プロセスなど)へのメモリ割 り当て,終了時の解放 不連続なメモリ領域を連続に見せかける(仮想記 憶) オペレーティングシステム ワープロソフト 時計ソフト 表計算ソフト
by Naoki Kato © Naoki Kato © Naoki Kato メモリ管理
メモリスワッピング(仮想記憶の一機能) 実行しているタスク・プロセスが利用しているメモリ領域は, 一時記憶装置へ移す オペレーティングシステム ワープロソフト 時計ソフト 表計算ソフト ワープロソフト 時計ソフト 表計算ソフト
by Naoki Kato © Naoki Kato © Naoki Kato ファイル管理(ファイルシステム)
コンピュータの資源を 狭義(二次記憶装置内のデータ) 広義(デバイス,プロセス,様々なデータ) 階層構造化,アクセス/検索するための機能 オペレーティングシステム
by Naoki Kato © Naoki Kato © Naoki Kato ファイル管理(ファイルシステム)
オペレーティングシステム (広義) (1)開く (2)書く (3)閉じる パラレル ポート (狭義) (1)開く (2)書く (3)閉じる テキストファイル
by Naoki Kato © Naoki Kato © Naoki Kato ファイル管理(ファイルシステム)
(狭義)二次記憶装置内のデータ オペレーティングシステム naoki 2006 IP1.txt 資料.doc 名簿.xsl フォルダ ファイル
by Naoki Kato © Naoki Kato © Naoki Kato ハードウェア
ネットワーク管理 通信するにはその仕方を決める必要(プロトコル) オペレーティングシステム アプリケーション層 プレゼンテーション層 セッション層 トランスポート層 ネットワーク層 データリンク層 物理層 電気的信号を交換するための決まり データ列を交換するための決まり (通信異常が起きた時などの対処など) 意味あるデータを交換するための決まり (データ形式など)
by Naoki Kato © Naoki Kato © Naoki Kato デバイス管理(デバイスドライバ)
オペレーティングシステム EPSONインクジェット⽤ CANONレーザ⽤ アプリケーションソフトウェア 統⼀された⽅法で どんなプリンタからでも印刷ができる
by Naoki Kato © Naoki Kato © Naoki Kato ブール代数と論理回路
情報の論理数学入門 近代科学社 4-7649-0180-3 コンピュータ回路 森北出版 4-627-82460-2 CPUの創りかた 毎日コミュニケーションズ 4-839-90986-4 参考文献
by Naoki Kato © Naoki Kato © Naoki Kato オペレーティングシステム
情報とコンピューティング オーム社 4274133095 オペレーティングシステム オーム社 4274132501 参考文献
by Naoki Kato © Naoki Kato © Naoki Kato お
おし しま まい い コンピュータの仕組み(2)