Part2では、「外部バスインタフェース」「制御ユニット」「演算ユニット」という3つの部分で構成されているCPUの基本的な動作原理を見るとともに、CPUの動作周波数について詳しく解説していこう。
命令について理解したところで、もう少しCPU内部に入り込んでいこう。「スーパーパイプライン」などの最新技術を理解するためには、もうちょっと基礎知識をたくわえる必要がある。
先ほど、CPUは単純作業を繰り返すという話をした。さらに細かく見てみると、実は1つの命令は4つのステップで実行されている。その流れを示したのが図1だ。CPU内部には「外部バスインタフェース」「制御ユニット」「演算ユニット」という3つの部分がある。

外部バスインタフェースは、命令やデータをメモリーとやり取りするための門のようなもの。制御ユニットは、読み込んだ命令を「解読」して、さらに具体的な処理内容を指示するところだ。ここには、命令の解読を専門に行う「デコーダー」という機能がある。そして演算ユニットは、制御ユニットが解読した処理内容に従って実際の処理を行う。
メモリー上の命令を外部バスインタフェースを通して制御ユニットに読み込む作業を「フェッチ」と呼ぶ。フェッチされた命令は制御ユニットにあるデコーダーで、足し算なのか、かけ算なのか、あるいはデータ転送なのか、といった具体的な情報に解読される。この作業をデコードと呼び、解読された命令は「制御情報」に姿を変える。これは、演算ユニットをどのように動作させて演算させるかをコントロールする情報だ。演算の対象となるデータは、メモリーから外部バスインタフェースを通して演算ユニット内に読み込まれる。
実際に演算を行う演算ユニットの内部を図解したのが図2だ。演算ユニットの中には、処理中のデータを格納する「レジスター」と、実際に演算を行う「演算器」がある。レジスターは複数あり、演算対象のデータはここに読み込まれる。実はどのレジスターを使うかは命令で指定する。アセンブリ言語にある「eax」はレジスターのことだ。演算器はレジスター内のデータを使って演算し、結果をレジスターに書き込む。レジスターに書き込まれた結果は、メモリーに出力される。

実際の演算は0と1で行われる。それを示したのが図3だ。読み込まれた0と1の機械語命令は、デコーダーを経て制御情報に変わる。それに従って演算器が動作し、0と1だけで表現されたデータで演算し、結果も0と1で出力される。
ちなみに0と1の区別は、コンデンサーの電荷の有無で判断している(図4)。トランジスターがスイッチの役割で、スイッチをオンにするとコンデンサーに電荷がたまる。ある一定値以上に電荷がたまった状態を1、それ以外を0と認識する。スイッチのオン/オフはトランジスターにかける電圧で制御している。結局のところ、CPUは電流と電圧で動作しているのだ。

以上がCPU内部の基本的な動作原理だ。次にCPUの動作周波数について解説する。なぜ「クロック」が高いと処理が速くなるのかを追っていこう。