CODE 〜 コードから見たコンピュータのからくり

途中で返却期限が来たので返却。16章最後まで。

CODE コードから見たコンピュータのからくり

CODE コードから見たコンピュータのからくり

面白かった。コンピュータの成り立ちがわかる本。

「電球を灯す回路」が「コンピュータ」になるまで

コンピュータ(演算回路とか計算機)は2進数のデジタル表現で動いていることは、大概の人は知っていることだと思う。じゃぁ「なんで2進数なのか」と聞かれると答えられない人は意外と多いんじゃないだろうか。

答えから書くと「その方がコンピュータを作るときに作りやすかったから」ということなんだけど、「なぜ作りやすいのか」ということを、豆電球に電池をつないで点灯させる回路か順に発展していく様子を通して教えてくれる。

すべての(ノイマン型)コンピュータは、(ものすんごく端折ると)スイッチのON/OFFを応用したものが考え方の基礎になっている。

CPUは、そのもっと単純な仕組みである論理回路を祖先としている。論理回路は、たとえば「そのスイッチはONになっているか、あるいはOFFになっているか」というような単純な「状態」を、同じように「ONかOFFか」という「状態」で導き出すもの(この説明で間違ってないかな・・・)。この論理回路(というか回路を構成する部品)は電磁石とスイッチを組み合わせた「(電磁)リレー」で作ることができる。電磁リレーは「ちょっと複雑なスイッチ」みたいなもんで(適当だな)。この「ちょっと複雑なスイッチ」はやがて真空管になり半導体(シリコン)を使ったものになってゆくけど、やっていることは基本的には変わらない。
つまりコンピュータの考え方は電磁リレーの頃からまったく変わっていなくて、たとえば今のCPUの機能を電磁リレーを使って実装できるかといえば、理論上はできてしまう*1

って、ここで俺が文章で書いてもわかりにくいだけだな。ようするにそういうことが一から丁寧に書いてある本ってこと。


ハードウェアに詳しいプログラマにとってもいろいろと興味深い内容です。普段当たり前に使っている「bit」という単位の語源とか、論理式を考案したのは「ジョージ・ブール*2」って名前の人だとか。


この本は前の会社の社蔵書としてあったものを見つけたもの。途中まで読んだけど会社がつぶれたときに返却してしまった。ずっと続きを読みたくて(しかし金はない)今回、図書館で他の図書館から取り寄せてもらうことで、再読する事ができた。取り寄せ本は返却期限が厳しくて、やっぱり半分までしか読めなかったんだけど、この本なら買っても良いな、と思う。じっくりステップを踏んで理解しながら読みたいし。

*1:ただ、それはあまりにも巨大なCPUになるだろうし、装置そのものを維持するための大量の周辺装置(電源装置など)も必要になる。そして機能は実現できても、現代のCPU程度のパフォーマンス(速度と信頼性)は得られないだろう・・・

*2:高級言語をさわったことのある人ならピンとくるだろうね。Boolean変数型の事を「ブール値」って呼ばれてる。