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
教育現場における生成AIの活用とこれからの学校
naokikato
PRO
0
39
学校や家庭における効果的なICTの活用
naokikato
PRO
0
29
学校や家庭における効果的なICTの活用
naokikato
PRO
0
5
大学で学ぶ色のはなし
naokikato
PRO
0
12
GIGAスクール時代の情報教育とICT活用
naokikato
PRO
1
22
GIGAスクール構想実現に向けた学校の取組
naokikato
PRO
0
84
イントロダクション
naokikato
PRO
0
71
情報処理学オリエンテーション
naokikato
PRO
2
260
GIGAスクール構想定着期に向けて
naokikato
PRO
0
130
Other Decks in Education
See All in Education
横浜国立大学大学院 国際社会科学府 経営学専攻博士課程前期(社会人専修コース)_在校生体験談
miki_small_pin
0
700
勉強したらどうなるの?
mineo_matsuya
10
6.5k
世界のオープンソースロボットたち #1
shiba_8ro
0
140
construindo uma carreira com opensource
caarlos0
0
240
CompTIA Security+ SY0-601 Resumo
mariliarochas
2
2.6k
(2024) Couper un gâteau... sans connaître le nombre de convives
mansuy
2
150
Medicare 101 for 2025
robinlee
PRO
0
240
Semantic Web and Web 3.0 - Lecture 9 - Web Technologies (1019888BNR)
signer
PRO
1
2.5k
ヘイトスピーチがある世界のコミュニケーション
ktanishima
0
130
ACT FAST 20240830
japanstrokeassociation
0
320
Qualtricsで相互作用実験する「SMARTRIQS」実践編
kscscr
0
290
CSS3 and Responsive Web Design - Lecture 5 - Web Technologies (1019888BNR)
signer
PRO
1
2.5k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
204
24k
Thoughts on Productivity
jonyablonski
67
4.3k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
It's Worth the Effort
3n
183
27k
Embracing the Ebb and Flow
colly
84
4.5k
Practical Orchestrator
shlominoach
186
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Happy Clients
brianwarren
98
6.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
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)