情報塾(2003.4.27) CPUとメモリがどんなふうに動くのだろう。 レジスタやI/O プログラムの実行、マシン語。 電子回路・アドレスバス・データバス・メモリ構造PCの中はどうなっているのだろう。 レジスタやI/O プログラムの実行、マシン語。 OS(オペレーティングシステム)、マルチタスク。
PCの中味 -ハードウェア- 電子回路 プリント板(マザーボード) CPU 回路図と 機構図面 コントローラ LCD(液晶) CRT メモリ マイクロプロセッサ マイコン/Intel 電子回路 プリント板(マザーボード) CPU 回路図と 機構図面 コントローラ LCD(液晶) CRT 表示装置 グラフィック チップ ノースブリッジ (チップセット) メモリ スピードが 早いが容量の小さい 記憶装置 サウスブリッジ (チップセット) スピードが 遅いが容量の大きい 記憶装置 プリンタ HDD キーボード マウス CPU:Central Processing Unit
メモリ(論理的には) アドレス データ “C3” 「64Kバイトのアドレス空間」…という言い方をする。 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1番地に “2A”を書込む アドレス データ 3番地の データを読む “C3” 「64Kバイトのアドレス空間」…という言い方をする。
メモリ(物理的には) メモリ チップ 1:3V 0:0V 16本のアドレスバス 8本のデータバス ---D0 ---D1 ---D2 A0----- A1----- A2----- A3----- A4----- A5----- A6----- A7----- A8----- A9----- A10--- A11--- A12--- A13--- A14--- A15--- R/W ---D0 ---D1 ---D2 ---D3 ---D4 ---D5 ---D6 ---D7 16本のアドレスバス 8本のデータバス 1:3V 0:0V
メモリ(読む時) “1” メモリ チップ 16本のアドレスバス 8本のデータバス “読め!” ---D0 ---D1 ---D2 ---D3 A0----- A1----- A2----- A3----- A4----- A5----- A6----- A7----- A8----- A9----- A10--- A11--- A12--- A13--- A14--- A15--- R/W “1” “読め!” ---D0 ---D1 ---D2 ---D3 ---D4 ---D5 ---D6 ---D7 16本のアドレスバス 8本のデータバス “FF00番地のデータを” “FF00番地のデータ”3A“ が出てくる。
メモリ(書く時) “0” メモリ チップ 読むだけで書けないメモリをROM(Read Only Memory)という。 R/W “0” “書け” ---D0 ---D1 ---D2 ---D3 ---D4 ---D5 ---D6 ---D7 16本のアドレスバス 8本のデータバス “FF01番地に” “FF01番地にデータ”1A“ を書け! 読むだけで書けないメモリをROM(Read Only Memory)という。 読み書きできるメモリをRAM(Random Access Memory)という。
CPUとメモリ CPU メモリ (RAM) 物理的には線でつながっている。
ブロック図 CPU メモリ (RAM) アドレスバス データバス こういう書き方もできる。 A0~A15 D0~D7 R/W R/W
レジスタとI/O CPU メモリ (RAM) アドレスバス データバス レジスタ プリンタに打ち出したり (書き込み)、キーボード A0~A15 M/IO R/W D0~D7 M/IOが1の時メモリ、0の時I/O プリンタに打ち出したり (書き込み)、キーボード から読み込んだり(読み込み) をレジスタで行う。 メモリ (RAM) R/W M/IO アドレスバス A0~A15 データバス D0~D7 I/Oの“FFF0”番地に“41(A)”を書き込むとAという文字がプリンタに打ち出される。 レジスタ M/IO
プログラムの実行 CPU メモリ レジスタ ハードディスクから プログラムを読み 0000番地 込んできてそれを C800番地からCFFF番地 まで書き込み。C800番地から プログラムを実行する。 0000番地 メモリ アドレスバス/ データバス C800番地 CFFF番地 FFFF番地 レジスタ ハードディスク
プログラムの実行 CPU メモリ レジスタ ハードディスクから プログラムを読み 0000番地 込んできてそれを C800番地からCFFF番地 まで書き込み。C800番地から プログラムを実行する。 0000番地 メモリ アドレスバス/ データバス C800番地 CFFF番地 FFFF番地 レジスタ ハードディスク
プログラムの実行 CPU メモリ レジスタ レジスタ 0000番地 C800番地 上から順番にやる。こういうのをマシン語という。 3D:次の2バイトのI/0アド レスからAレジスタに 読み込みなさい。 3E:次の2バイトのI/0アド レスからBレジスタに ED:A+BをAに入れる E2:次の2バイトのI/0アド レスにAレジスタから 書き込みなさい。 Aレジスタ Bレジスタ アドレスバス/ データバス 0000番地 メモリ C800番地 上から順番にやる。こういうのをマシン語という。 CFFF番地 FFFF番地 EFF0番地 レジスタ キーボード FFF0番地 レジスタ プリンタ
プログラムの実行 CPU メモリ レジスタ レジスタ (1)CPUがアドレスバスにC800を出す。 CPU (2)メモリがC800番地のデータ“3D”を出すのでCPUはそれを読む。 03 02 Aレジスタ Bレジスタ (3)CPUは“3D”を見て次の2バイトをで示すアドレスを取ってくる。 “3D”は次の2バイトで示すI/Oアドレスからデ-タを読み込んでAレジスタに入れる命令。 3D メモリ C800 (4)取ってきた“EF00”をアドレスバスに出す・ EF,FO C801,C802 (5)キーボ-ド入力“03”をAレジスタに読みこむ。 (6)CPUがアドレスバスにC803を出して次の命令“3E”を取ってくる。これでまたキーボードからの02をBレジスタに入れる。 アドレスバス/ データバス (7)CPUがアドレスバスにC806を出して次の命令“ED”を取ってくる。これでこれでA+Bを計算してそれをAに入れる。 EFF0番地 レジスタ 03 (8)CPUがアドレスバスにC807を出して次の命令“E2”を取ってくる。“E2”は次の2バイトで示すI/OアドレスにAレジスタの内容を書き込む命令。 05 02 FFF0番地 レジスタ
プロセス(タスク) CPU メモリ レジスタ *同時に複数のプロセス(タスク)が実行できることをマルチタスクという。 0000番地 アドレスバス/ データバス ゲーム プロセス B700番地 BCFF番地 ワープロプロセス C800番地 CFFF番地 FFFF番地 レジスタ ハードディスク ワープロプログラム ゲームプログラム
OS(Operating System) CPU OS(Windows) メモリ レジスタ *OSが各プロセスを切り替えている。 OS(Operating System) CPU *OSが各プロセスを切り替えている。 0000番地 OS(Windows) メモリ 「よしきた!」 「プリンタに打ち出して」 アドレスバス/ データバス ゲーム プロセス 次の10msは ワープロプロセス 最初の10msは ゲームプロセス B700番地 BCFF番地 ワープロプロセス C800番地 CFFF番地 FFFF番地 レジスタ ハードディスク ワープロプログラム ゲームプログラム *実際はI/Oへの読み書きは各プロセスがOSに頼み OSが実行している。
エラー CPU メモリ プロセス1 プロセス2 0000番地 B700番地 BCFF番地 C800番地 CFFF番地 FFFF番地 3D:次の2バイトのI/0アド レスからAレジスタに 読み込みなさい。 3E:次の2バイトのI/0アド レスからBレジスタに ED:A+BをAに入れる E2:次の2バイトのI/0アド レスにAレジスタから 書き込みなさい。 Aレジスタ Bレジスタ アドレスバス/ データバス 0000番地 メモリ B700番地 プロセス1 仮に“F2”がCPUが解釈できないコマンドだった場合,CPUはハング(暴走) BCFF番地 STA B800 C800番地 プロセス2 CFFF番地 他のプロセスに間違って書きこんだりしても,CPUはハング(暴走) FFFF番地 仕事が終わった後、プロセスが使用していたメモリ領域は 解放されなければならないがこれが解放されないとハング。
What’s next プログラムファイルやデータファイルはどのような形でPCの中に入っているのだろう? What’s next プログラムファイルやデータファイルはどのような形でPCの中に入っているのだろう? ビット・バイト・2進数・16進数・アスキーコード HTMLファイルというのはどんなふうに書けばよくて、どんなことができるのだろう。 HTML文法・ハイパーリンク プログラム(ソフト)というのはどう書けばいいのだろう。 WORDやEXCELやパワーポイントでどんな事ができるのだろう。 PCの中はどうなっているのだろう。 CPU/メモリ/チップセット/インターフェイス CPUとメモリがどんなふうに動くのだろう。 電子CPUとメモリがどんなふうに動くのだろう。 電子回路・アドレスバス・データバス・メモリ構造 インターネットはどのようになっているのだろう。 -IPアドレス/WWWサーバ/DNSサーバ/SMTPサーバ/FTPサーバ -イーサアドレス/ARP/DHCP/NAT/TCP-IP