コンピュータは、電気を用いて曖昧さのない形で、より大規模に正確に計算できるよう、 論理回路で構成されています。扱うのは真(True・1)と偽(False・0)の 2 値だけです。
1 桁の 2 進数どうしの足し算を並べてみます。
0 1 0 1 + 0 + 0 + 1 + 1 ---- ---- ---- ---- 00 01 01 10 ↑ 桁上げ C(carry)と 和 S(sum)
この表を、さっきの真理値表と見比べてください。 桁上げ C は P AND Q、和 S は P XOR Q とまったく同じです。 つまり、AND ゲートと XOR ゲートを 1 個ずつ並べれば、1 ビットの足し算ができます。これを半加算器といいます。
多桁の足し算では、下の桁からの桁上がりも一緒に足さなければなりません。 つまり 3 つの 1 ビットの数を足す回路が要ります。これが全加算器です。
作り方は簡単で、半加算器を 2 個つなぐだけです。 まず P と Q を足し(C1, S1)、その和 S1 に R を足します(C2, S2)。 最終的な和は S2、桁上げは C1 OR C2 になります (C1 と C2 が同時に 1 になることは決してないので、これで足ります)。
いちばん下の桁には下からの桁上げがないので半加算器、 その上の桁からは全加算器を積み上げます。 下の桁で発生した桁上げが、上の桁へ次々に伝わっていきます。
電流が流れた場合を 1、流れない場合を 0 とし、人間の心臓の鼓動のように 1 と 0 を繰り返します。 このパルス信号の1 周期をクロックといい、 1 秒間に発生できるパルスの数を Hz(ヘルツ)で表します。
周波数を上げるほど熱が出ます。そのため半導体はできるだけ小さく作られてきましたが、 CPU は「もうこれ以上小さくできない大きさ」に近づいているといわれています。 だから最近は、周波数を上げる代わりにコアの数を増やす(マルチコア)方向に進みました。