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
430
コンピュータはなぜ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
asumikamというカンファレンスオーガナイザの凄さを語る / The Brilliance of Asumikam
tomzoh
1
300
なぜキャッシュメモリは速いのか 余談集 / Why is Cache Memory So Fast? Extended.
tomzoh
0
130
なぜキャッシュメモリは速いのか / Why is Cache Memory So Fast?
tomzoh
2
1.2k
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
470
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
620
NANDがあればNANDeもできる / With NAND, you can do anything
tomzoh
0
490
PHPerKaigi 2023に行こう! / Let's Attend PHPerKaigi 2023!
tomzoh
1
290
Other Decks in Technology
See All in Technology
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
非機能品質を作り込むための実践アーキテクチャ
knih
3
700
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
150
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
180
5分でわかるDuckDB
chanyou0311
10
3.2k
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
620
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Embracing the Ebb and Flow
colly
84
4.5k
Building an army of robots
kneath
302
44k
Statistics for Hackers
jakevdp
796
220k
The Language of Interfaces
destraynor
154
24k
Code Review Best Practice
trishagee
65
17k
Faster Mobile Websites
deanohume
305
30k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
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