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
コンピュータはなぜ0と1なのか / How and Why Computers Operate...
Search
HASEGAWA Tomoki
April 12, 2023
Technology
0
410
コンピュータはなぜ0と1なのか / How and Why Computers Operate Using Binary Code
PHP勉強会#151の資料です
HASEGAWA Tomoki
April 12, 2023
Tweet
Share
More Decks by HASEGAWA Tomoki
See All by HASEGAWA Tomoki
なぜキャッシュメモリは速いのか 余談集 / Why is Cache Memory So Fast? Extended.
tomzoh
0
110
なぜキャッシュメモリは速いのか / Why is Cache Memory So Fast?
tomzoh
2
1.1k
PHPからはじめるコンピュータアーキテクチャ 15分ダイジェスト版 / PHP Meets Silicon: A Fun Dive into Computer Structures 15mins ver
tomzoh
2
240
PHPでXOAUTH2を使ってGmailからメールを取り込む / Getting Mail from Gmail with XOAUTH2 in PHP
tomzoh
0
450
PHPからはじめるコンピュータア ーキテクチャ / PHP Meets Silicon: A Fun Dive into Computer Structures PHP Conference 2023 ver
tomzoh
0
370
PHPからはじめるコンピュータア ーキテクチャ / PHP Meets Silicon: A Fun Dive into Computer Structures
tomzoh
4
610
NANDがあればNANDeもできる / With NAND, you can do anything
tomzoh
0
460
PHPerKaigi 2023に行こう! / Let's Attend PHPerKaigi 2023!
tomzoh
1
280
iOSDC Japan, PHPerKaigi とハイブリッド開催 / Hybrid at iOSDC Japan and PHPerKaigi
tomzoh
2
1.7k
Other Decks in Technology
See All in Technology
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
160
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing the Hi-DPI Web
ddemaree
280
34k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
We Have a Design System, Now What?
morganepeng
50
7.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Transcript
長谷川智希 @tomzoh 2023/04/12 PHP勉強会@東京 #151 コンピュータはなぜ0と1なのか アナログの現実世界と電子計算機
2 ୩ஐر ͕ͤΘ ͱ͖ @tomzoh http://www.dgcircus.com デジタルサーカス株式会社 副団長CTO ॴଐ ٕज़ΧϯϑΝϨϯεओ࠻
دߘɾஶॻ 来たれ!PHPer!We are hiring!
3 ୩ஐر ͕ͤΘ ͱ͖ @tomzoh ٕज़ΧϯϑΝϨϯεӡӦࢀՃ 8FCJ04ΞϓϦ։ൃ $16 ϨτϩήʔϜػ
ిࢠ࡞ Ϗʔϧ αοΧʔ؍ઓ ϨϯλϧΧʔτϨʔε ʜ ϥΠϑϫʔΫ
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 4 コンピュータはなぜ0と1なのか アナログの現実世界と電子計算機
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUによって設計が違ったり わかりやすさを優先して単純化して 説明している箇所があります 5 Disclaimer
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 0と1しか処理できないコンピュータ • コンピュータは0と1しか処理できない • ソフトウェアエンジニアならなんとなく実感としてもある • 常に2進数が背後にある感じ
• ビット演算とか浮動小数点演算(の誤差)とか • 文字コードが16進数表記だったり • どうして0と1なのか • 0と1しか無いのにきれいな絵や音を出せるのはなぜか 6
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 現実世界と論理世界 アナログとデジタル • コンピュータ = 電子計算機 (電算機)
• デジタルの値(離散値)を扱う • コンピュータは現実世界に存在している • 現実世界はアナログの世界 • 電気回路はアナログ • 現実世界に存在する電気回路で数値計算や論理演算をしたい 7
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 電気回路での数値表現 • コンピュータは数値を電気回路の電圧として表現する • ある電圧より高ければ1、低ければ0の2値とする • 電気回路の配線は抵抗があるので遠くでは電圧が下がる
• メモリから255を読み込んだ時に近いメモリだと255だけど遠いメモリだと254に… • 2値であれば多少下がっても1は1でいられる • 回路を単純にできる • 電気回路上でのCPU • 物理的なCPUは「足」がたくさんある • 足1本=1bitでデータを表現する 8
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 9
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 10 数値を電圧の高低の2値で 表現しているから A Q コンピュータはなぜ0と1なのか
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか もう少し深掘りする 11
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか なぜ電圧の高低でコンピュータができるのか • コンピュータはなぜ0と1なのか • 数値を電圧の高低の2値で表現しているから • 電圧の高低からvar_dump()ができるの…?
• 遠すぎない…? • PHPはマシン語で書かれたプログラム • せめて電圧の高低からマシン語が動くところまで解説 12
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成 13
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成 コンピュータはCPUと入出力、 メモリで構成される CPUを中心に接続されている CPUは… メモリを読み書きする 入出力(I/O)にアクセスする
これで「コンピュータ」になる 14 CPU メモリ I/O コント ローラ GPU USB Blue tooth 入出力 I/O
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPU: 中央演算装置 15 Central Processing Unit
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPU 中央演算装置 - Central Processing Unit •
データをどこかから持ってきてもう1つのデータと何らかの演算をし、 結果をどこかに保管する装置 • 「どこか」 • レジスタ • メモリ • 入出力(I/O) • CPUの命令は本当にこういう命令しか無い • と言いつつ最近のCPUは機能が多く、機能に関連する命令もたくさんある 16
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか レジスタ CPUに内蔵された爆速メモリ • CPUに内蔵されたメモリ • 「近い方が速い」大原則で爆速 •
Z80の場合 8bitレジスタ 8個 • 8ビットの値しか格納できない変数が8個だけあるプログラミング言語 • それ以外の値はメインメモリや(入出力(I/O)の先にある)ストレージに保存する • とても遅いのでできるだけ避けたい • 特殊なレジスタ • PC プログラムカウンタ: • 今実行している命令のアドレス • 値を入れるとジャンプになる 17
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 命令の順次実行 実行中アドレスを格納するレジスタ: プログラムカウンタ • CPUはメモリに格納された命令を順番に実行する • 命令を実行し、完了したらPCレジスタの値を+1する
• すると次のサイクルではメモリの1つ先の命令を実行することになる • データをどこかから持ってきてもう1つのデータと何らかの演算をし、 結果をどこかに保管する装置 • ジャンプですらPCレジスタへの値の保存 • 「データをPCレジスタから持ってきてジャンプ先のアドレスを加算し、結果をPCレジスタ に保管する」 • マルチスレッドのCPUはPCレジスタが2つある 18
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUの回路 19
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 前提事項 • ここからしばらく右の図をベースに説明します • "CPUの創りかた"のTD4 CPU •
これは概念図ではなく配線図 • 青い箱 IC • 紫色の箱 入力=スイッチ 出力=LED • グレーの箱 ICのピンに分類をつけただけ • グレーの太い線は4本の配線 • つまりこのCPUのレジスタは4ビットの値を保存できる • (あとで出てくる)細い線は1本の配線 20 A レジスタ B レジスタ 入力 PC レジスタ メモリ Address Data 演算器 Decoder 出力 セレクタ
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか AレジスタのIC Aレジスタのリアル見た目 21 A レジスタ B レジスタ
入力 PC レジスタ メモリ Address Data 演算器 Decoder 出力 セレクタ 入力用 出力用 入力用 出力用 4 BIT SYNCHRONOUS BINARY COUNTERS https://www.ti.com/jp/lit/ds/symlink/sn74hc161.pdf
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか A レジスタ B レジスタ 入力 PC レジスタ
メモリ Address Data 演算器 Decoder 出力 セレクタ CPUの回路 - TD4の場合 CPU内部のデータの流れ • TD4の構成 • A, B, PCの3レジスタ • 入力/出力 • レジスタと入力/出力は4bit幅 • 動作イメージ • ①レジスタ or 入力のうち1つが選択される • ②選択されたものとメモリの上位4bit → 演算器 • ③演算器の結果 → レジスタ or 出力 • データが循環している 22 CPUの創りかた https://amzn.to/3zOZnRa 4本の信号線 ① ② ③ ③
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか A レジスタ B レジスタ 入力 PC レジスタ
メモリ Address Data 演算器 Decoder 出力 セレクタ CPUの回路 命令の読み出しとデコード • PCレジスタを担当するIC • 4本の足がメモリと接続されている • 4本の足にアドレスを出力している • メモリはPCレジスタの足が指定したア ドレスのデータを出力している • 上位4ビットは演算に使う • 下位4ビットは命令に使う • 下位4ビットを見てみると… 23 演算4bit 命令4bit
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUの回路 CPUの命令って何? • メモリの足の状態でデータの流れを コントロールするようになっている セレクタ
演算器にどのデータを入れるか 演算器 演算の種類 レジスタ/出力 演算器の出力をどこに保管するか • データをどこかから持ってきて もう1つのデータと何らかの演算をし、 結果をどこかに保管する装置 • CPU命令: データの流れをコントロールするもの • 右の図で言うとデータの下位4bit 24 A レジスタ B レジスタ 入力 PC レジスタ メモリ Address Data 演算器 Decoder 出力 セレクタ
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUクロックによる状態遷移 電子ピタゴラ装置 • CPUはクロックにあわせて動く • クロック:
定期的に0Vと5Vが切り替わる信号線 • M2だと3.5GHz = 35億回/秒 • 全ICにクロックが入力されている • クロックの立ち上がり(0V→5V) • PCレジスタに1が加算される • セレクタや演算器の状態が確定 • クロックの立ち下がり(5V→0V) • 命令で指定されたレジスタが現在の状態を保 存する 25 A レジスタ B レジスタ 入力 PC レジスタ メモリ Address Data 演算器 Decoder 出力 セレクタ
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか ナンデモ作れるNAND CPUの原子 • レジスタやセレクタ、加算機、メモリ • 論理演算の塊 •
論理演算: OR, AND, XOR, … • PHPで 0 & 1 = 0, 1 & 1 = 1 とかやる アレと同じ • NOT + ANDのNANDという演算 • CPUに必要な素子はNANDだけあれば 組合せで作れる • NANDがあればNANDemoできる • 元気ですか〜! 26 https://basics.k-labo.work/2017/08/31/論理演算/
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか いろいろなNAND 27 余談
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか リレー • 電気的にコントロールできるスイッチ • 電圧をかけるとスイッチが切り替わる • 電気的な機械で「カチッ」って音がするやつは
こいつが動いている • コンセントにつけるタイマーとか 28 https://amzn.to/43rEdGh
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか リレーでNAND NANDatte〜 29 https://tams.informatik.uni-hamburg.de/applets/hades/webdemos/05-switched/20-relays/and-nand.html
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 30 http://recursion.jp/rl/relay/j/index.html
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 真空管でNAND 31 https://www.quora.com/How-were-vacuum-tubes-used-to-make-computers
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 32 https://twitter.com/toukatsujin/status/1051016883355377665/photo/1
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか トランジスタでNAND 33 http://www.gxk.jp/elec/musen/1ama/H12/html/H1208A10_.html
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか NANDで作るコンピュータ • Nandgame • https://nandgame.com • ブラウザ上でNANDを組み合せてコンピュータを作る
• 「演算器を作れ」みたいなお題が出てブラウザ上で線を接続して正解を探す • From Nand to Tetris • https://www.nand2tetris.org • NANDでCPUを作ってテトリスを動かす • CPUの創りかた • 言わずと知れた名著 34
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか Nandgame 35 https://nandgame.com/
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか From Nand to Tetris 36 https://www.oreilly.co.jp/books/9784873117126/
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUの創りかた 37 https://amzn.to/43ioLfP
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUが直接実行可能な言語: マシン語 データの取得, 演算, 保存 • CPUの内部で電気回路として表現されたデータ処理
= マシン語 • データの取得, 演算, 保存 • こんなシンプルなマシン語でPHPやJavaは動いている • C言語はプログラムソースをマシン語に変換しているのでマシン語そのもの • マシン語からPHP, Javaまでのプログラム実行の話は PHP勉強会#147「 プ ロ グ ラムを実行するとは ど ういうことか」参照 38
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 補足: 条件付きジャンプ 演算器のフラグ • さすがに代入とジャンプだけではすべてのプログラムは表現できない • 規定回数のループとか作れないし
• 演算器は演算結果によってフラグを立てる • 演算の結果が0になったら立つゼロフラグとか • 演算の結果が桁あふれしたら立つキャリーフラグとか • フラグの状態を出力する足がある • 演算命令の次に条件付きジャンプ命令を置く • a = a - 10 の次に jp z, 0x0000 を置く • a = 10 だったら演算の結果が0になりゼロフラグが立った状態で次の命令を実行する • jp z, 0x0000 だと、ゼロフラグが立っていたらジャンプ、立っていなければ次に行く 39
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか まとめ 40
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか まとめ 0と1で表現される電子ピタゴラスイッチ • コンピュータは数値を電圧の高低の2値で表現しているから0と1しか扱えない • コンピュータはCPU, 入出力(I/O),
メモリからできている • CPUと入出力(I/O), メモリはICの足どうしが導線で接続されている • CPUの中はクロックで状態が遷移する電子ピタゴラスイッチだった • NANDがあればなんでも作れる • ぜひやってみてください! (Nandgameはお手軽でおすすめ) 41 ୩ஐر ͕ͤΘ ͱ͖ @tomzoh
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか おまけ & 参考 42
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUと周辺デバイスの通信 • CPUは周辺デバイスと通信するときにアドレスを指定してデータを送受信する • 例えばメモリの場合: • メモリは1つのアドレスに1バイトのデータがある
• PHPの配列をイメージすると良い • 1バイトの数値が入る巨大な配列 • アドレス指定が64bitなら配列の添字が64bit幅 • 0x0000000000000000〜0xffffffffffffffff • 最大16EB(エクサバイト) • 32bitだと 0x00000000〜0xffffffffの4GB 43
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUとメモリの接続 CPUがメモリからデータを受け取りたい場合 CPUはメモリにアドレスを指定する アドレス指定用の足の電圧をコントロールする アドレスが0xC001なら 0b1100000000000001なので
16本の足の電圧を5V, 5V, 0V, …, 5Vにする メモリは足の電圧を測定する CPUと線でつながっているので16本の足は5V, 5V, 0V, …, 5V。 つまり0b1100000000000001 = 0xC001 とわかる 44 1 1 0 1 CPU MEMORY ? ? ? ? "%%3&44 %"5" "%%3&44 %"5" アドレス 16本 データ 8本 ここからしばらくZ80
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUとメモリの接続 CPUがメモリからデータを受け取りたい場合 メモリはデータを出力する データ通信用の足の電圧をコントロールする データが0x89なら0b10001001なので 8本の足の電圧を5V,
0V, 0V, … 5Vにする CPUは足の電圧を測定する メモリと線でつながっているので8本の足は5V, 0V, 0V, …, 5V。 つまり0b10001001 = 0x89とわかる 45 1 1 0 1 ? ? ? ? CPU MEMORY ? ? ? ? 1 0 0 1 "%%3&44 %"5" "%%3&44 %"5" アドレス 16本 データ 8本
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか アドレスバス・データバス CPUの話をすると必ずアドレスバス・データ バスという言葉がでてくる アドレスを指定する信号線一式 = アドレスバス データを送受信する信号線一式
= データバス バスの信号線の数(幅)はCPUによって違う Z80の場合: アドレスバス16bit データバス8bit 46 1 1 0 1 ? ? ? ? CPU MEMORY ? ? ? ? 1 0 0 1 "%%3&44 %"5" "%%3&44 %"5" アドレス 16本 データ 8本
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか CPUとメモリの接続 CPUがメモリにデータを書き込みたい場合 書き込みも同じ感じ CPUはアドレスとデータを出力する メモリは指定されたアドレスに 指定されたデータを保存する
47 1 1 0 1 1 0 1 0 CPU MEMORY ? ? ? ? ? ? ? ? "%%3&44 %"5" "%%3&44 %"5" アドレス 16本 データ 8本
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 読み込み/書き込みの表現 メモリは書き込みか読み込みかどう判断するの? そう思った方は大変鋭い CPUの動作を表す信号線 現在のアクセスがCPUから見て書き込みなのか読み 込みなのかを表す信号線RDとWR RDが有効な時
メモリはアドレス信号線を見てデータを返す WRが有効な時 メモリはアドレス信号線とデータ信号線を見てデータ を保存する 48 1 1 0 1 1 0 1 0 CPU MEMORY ? ? ? ? ? ? ? ? "%%3&44 %"5" "%%3&44 %"5" 0 ? 1 ? 3% 83 3% 83
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 足の電圧を測定? • このページまでで「足の電圧を測定」とか書いてきた • この考え方は「コンピュータの上からの見え方」 • 実際は…
• メモリ=アドレスの足に電圧をかけられるとデータの足の電圧が変わっちゃう回路 49
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか "%%3&44 %"5" メモリの回路 メモリから値を読み込む時のメモリ内部の動作 • 16本の信号線でアドレス指定 •
2進数16bitの値→65,535本の うち1本だけが1になっている状態 に変換される • メモリセルが選択されて 保存されたデータが電圧の形で 再現される • = データ信号線の足の電圧が変わる • この動きは電気回路なので高速 50 MEMORY 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 A0 A1 A2 A14 A15 D0 D1 D2 D3 %&$0%&3 16本 65,536本
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか I/O "%%3&44 %"5" 3% 83 CPUと入出力(I/O)の接続 並列接続されてバスを共有するメモリや入出力(I/O)
CPUとメモリは アドレスバスとデータバスで接続されている CPUと入出力(I/O)は? アドレスバスとデータバスで接続されている メモリと並行に接続されている メモリとI/Oが同時に動いちゃわない? と思った方は鋭い CPUが「おまえな」と指示する信号線がある Z80の場合、メモリ操作をあらわすMEMRQと入出 力(I/O)操作をあらわすIOREQ 51 CPU MEMORY "%%3&44 %"5" "%%3&44 %"5" 3% 83 3% 83 .&.3 32 *03&2 32
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 52 I/O "%%3&44 %"5" 3% 83 CPU
MEMORY "%%3&44 %"5" "%%3&44 %"5" 3% 83 3% 83 .&.3 32 *03&2 32 I/O "%%3&44 %"5" 3% 83 CPU MEMORY "%%3&44 %"5" "%%3&44 %"5" 3% 83 3% 83 .&.3 32 *03&2 32
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 補足 メモリ 大きく分けて、メインメモリ(一次記憶)、ストレージ(二次記憶) ここまでで話したメモリはメインメモリの方 ストレージは入出力(I/O)の先にある メモリの大原則として近い方が速いというのがある メモリの速度
(M2 Pro MacBook Pro) メインメモリ: 200GB/s ストレージ: 5GB/s 53
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか "CPUの創りかた"よりTD4回路図 54 レジスタ&出力 セレクタ 演算器 入力 Decoder
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成要素間の接続 • コンピュータがCPUと入出力(I/O)、メモリで構成されているのはわかった • 具体的にどうやってつながっている? • CPUはこんな形をしている
• メモリも同じ様な形をしている • 足どうしが線でつながっている • 入出力(I/O)も同じ • I/OコントローラICとつながっている 55
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 56
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか 57 CPU メモリ 配線
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成要素 CPU Central Processing Unit / 中央演算装置
データをどこかから持ってきてもう1つのデータと何らかの演算をし、 結果をどこかに保管する装置 入出力(I/O) メモリ 58
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成要素 CPU 入出力(I/O) 入力: キーボード, トラックパッド, タッチパネル,
… 出力: ディスプレイ, スピーカー, … 両方: ネットワーク, USB, Bluetooth, … メモリ 59
長谷川智希 @tomzoh コンピュータはなぜ0と1なのか コンピュータの構成要素 CPU 入出力(I/O) メモリ CPUが使う命令やデータを保存する装置 大きく分けて、メインメモリ(一次記憶)、ストレージ(二次記憶) MacだとAppleのWebでは「メモリ」「ストレージ」と書かれている
iPhoneとかで「512GB」とか言ってるのはストレージの方 AppleのWebには「容量」とだけ書いてある メインメモリは公表されない 60