「揚げて炙ってわかるコンピュータの仕組み」を読んだ
- タイトル:揚げて炙ってわかるコンピュータの仕組み
- 著者:秋田純一
- 技術評論社
どんな本
コンピュータを「揚げて」「炙って」、解析、再構築することでコンピュータの仕組みに迫ろうという本です。 一般向けの図書なので、コンピュータに関心がある中学生~高校生なら読めそうな難易度だと思いますが、一部難しい部分もあります。
私はコンピュータを一般向けに分かりやすく説明しようと試みる本が好きで良く読んでいます。 この本はタイトルに惹かれて購入しましたが、 揚げて炙るという発想が面白いですし、 著者のコンピュータや半導体業界への考え方はとても勉強になりました。
1章ソフトウェアとハードウェアの世界の境界
コンピュータが進化していき、ソフトウェアとハードウェアの両方が複雑化してきた。
ソフトウェアとハードウェアは知識体系としても学問としても独立してきた。両方を完全に理解するのは非常に難しい状況になっている。
しかし、一つのメリットとして、ハードウェア、ソフトウェアの専門家はそれぞれの分野に専念できるため、より効率的に目標を達成できる。
ソフトウェア屋はソフトの振る舞いだけを考えればよい(ブラックボックス)。
ここで、ブラックボックスの中身を知ればいいことがある。
- ブラックボックスをより深く使いこなせる
- 問題発生の原因が分かる
コンピュータの中身=集積回路 。
集積回路の原料はシリコンである。 シリコンは地球上に大量に存在するためすぐに手に入る。
シリコンから半導体の性質をもつ材料を作ることができる。
コンピュータの回路の性質
集積回路のサイズを小さくしても機能は変わらないので、 同じシリコン材料にたくさんの機能を入れられる。
同じ機能を小さなシリコン材料で実現できる。
サイズが小さくなりすぎると、量子力学的な現象が見られる。
トンネル効果・・・電流を絶縁体で止めているはずなのに、一定確率で電流が流れてしまう現象。
ムーアの法則(ざっくり)
半導体チップの中の回路を半分の大きさで作ると
- 回路の動作速度が2倍になる
- 同一価格で機能が4倍に上昇する
- 同一機能ならば価格が1/4に下がる
2章 ソフトウェアから近づいてみる
内容
- インターネットでどのように情報を通信するのか
- コンピュータは受取った情報をどのように処理するか
- マイコン
私が知りたかった「低レイヤ」的な話から離れていると感じたので、2章は割愛します。
3章ハードウェアから近づいてみる
半導体=導体と絶縁体の中間 導体になったり絶縁体になったりする。 半導体を3つ組み合わせることで、トランジスタをつくる。
トランジスタはコンピュータの最小単位である。
半導体を組み合わせることで、論理回路が作れる(AND回路、OR回路 etc.)。
論理回路を作るとき、トランジスタを配線するのはすごく大変。
回路素子と配線を一緒に半導体材料の中に作りこんだものを「集積回路」という。 集積回路は、半導体材料の上に印刷に似たような加工を行うことで簡単に製造できる。
論理回路を組み合わせれば、演算回路が作成できる。
例:メモリAとメモリBの値を取得してメモリCに格納
演算回路を使用し、データの流れを回路で作ればよい。これを順序回路というが、コンピュータは順序回路という論理回路だと言える。
プログラム=命令に応じてどことどこをつなぐかを制御している。 プログラムの実行に従い、順番に命令を一つずつメモリから読みだし、それに合わせて全体を制御(つまり実行)していく。
4章 揚げて炙って中身を覗く
プリント基板を揚げる
電子機器を分解してみる・・・プリント基盤、集積回路をはじめとするさまざまな電子部品がある。
電子部品をプリント基板から取り出す簡単な方法として、「油であげる」。
基盤を油に沈め、200度まで熱する。基盤をお箸でつつくと部品が外れる。
集積回路を炙る
半導体チップは、プラスチック部品の中に入っているため直接確認できない。
半導体チップを見るために集積回路を炙る。集積回路を鉄皿の上におき、ガスバーナーで炙る。 取り出したICはキラキラして綺麗 w。
5章 取り出したチップを解析してみる
安価なチップと高価なチップを顕微鏡で確認して比較する。
純正のチップとニセモノのチップの比較などもしている。
実際のチップと見ると、「ムーアの法則」を肌で感じることができる。
6章 コンピュータの再構成
命令
RISC-Vの命令フォーマットについて詳細な説明が記載されている。(この本の中でも一番難しい部分)。
CPUの動作
CPUの動画については、YouTubeなどにわかりやすい動画があったのでこちらを参考。 参考: 基本情報技術者試験対策 2 CPUの働き CPU、レジスタ、CPUの命令サイクル - YouTube
- フェッチ:プログラムカウンタに記憶しているアドレスから命令を取得し、命令レジスタにセットする(命令とオペランドをそれぞれセットする)
- デコード:デコーダが、命令レジスタの命令部のコードを解読する
- 対象データの読み出し:処理の対象(命令レジスタのオペランド部で指定されるアドレス)のデータを読み込む
- 実行段階:命令を実行する(必要に応じてALUで演算などを行い、汎用レジスタに記憶する)。
- プログラムカウンタの更新:命令の実行が更新したら、プログラムカウンタを次の命令が格納されたアドレスに送信する
レジスタの役割
名称 | 場所 | 役割 |
---|---|---|
プログラムカウンタ | 制御装置 | 次に実行する命令のアドレスを記憶 |
命令レジスタ | 制御装置 | 実行する命令を一時的に記憶 |
インデックスレジスタ | 演算装置 | 命令のアドレスを修飾する番地を記憶 |
ベースレジスタ | 演算装置 | プログラムの先頭のアドレスを記憶 |
アキュムレータ | 演算装置 | 演算をする際の演算件アの一時的な記憶 |
汎用レジスタ | 演算装置 | さまざまな用途でデータを記憶 |
7章 物理世界とコンピュータの境面
Lチカで感じるパラダイムシフト
Lチカ・・・電子回路の定番で、LEDをチカチカさせる回路のこと。 昔は発振回路を使用していたが、今はマイコンで作るのも一般的になっている。 発振回路でLチカをつくるよりも、マイコンを作った方が部品数が少なくなり安くなる。
これはコンピュータが安く小さくなったことによるパラダイムシフトである。
個人の半導体製造
半導体は設備だけで1億円ほどかかる。設計に必要な情報も機密情報のため一般公開されていない。
そのため、半導体は買うものであり、作るものではないという考えがふつうである。
著者はLチカを作るための半導体チップを作成して動画を公開したところ、「もったいない、無駄遣い」などのコメントをたくさんもらったそうである。 www.youtube.com
しかし、半導体製造が一般人でもできるようになれば、あきらめていたことが実現できたり、新しいプロダクトやビジネスになるかもしれない。 著者は「集積回路の民主化」を目指す「MakeLSI」というプロジェクトを進めているそうである。