CMOSとは:インバーター・NOT回路のしくみ

前回の記事で、NMOS(1でON)とPMOS(0でON)という、スイッチとしての性質が真逆な2体のトランジスタを学びました。これら2つを「ペア」として扱い、一つの目的のために組み合わせた構造をCMOS(相補型MOS)と呼びます。

CMOSとは:NMOSとPMOSの組み合わせ

CMOSとは:インバーター回路の仕組みと構造

CMOSは「NMOSFETとPMOSFETを組み合わせた、効率的な回路構造」のことです。

「CMOS」はComplementary Metal Oxide Semiconductorの略で、日本語では相補型金属酸化膜半導体と呼ばれます。

ここで重要なのは、CMOSは特定の半導体デバイスそのものを指す名前ではなく、あくまで「p型とn型をどう配置するか」という回路の作り方(方式)を指します。

MOSFETとは:構造・動作原理・応用

CMOSの構造

CMOS回路は、2種類のトランジスタを組み合わせます。例えば、上側にPMOS、下側にNMOSを配置します。

CMOSトランジスタの構造

CMOS構造では、PMOSのソースを電源(Vdd)に接続し、NMOSのソースをGND(グランド)に接続します。

そして、2つのゲートを1つの入力線でつなぎ、その中間地点から出力を取り出します。この「電源と地面の間にスイッチを2つ置く」というシンプルな形が、すべての計算の出発点になります。

では、このように接続したCMOS回路はどんな挙動をするのでしょうか。

CMOSの動作:信号を反転するインバーター(NOT回路)

CMOS回路を用いると、入力信号を反転させるインバーターとして機能します。すなわち、入力0の場合1を、入力1の場合は0を出力します。

CMOSがどうやって信号をひっくり返すのか、その仕組みを見ていきましょう。

CMOSインバーターの動作原理

ここでは分かりやすく、電源電圧(Vdd)を1.0V、GNDを0Vと仮定し、それぞれをデジタルの「1」と「0」に対応させて考えます。

CMOSインバーター・NOT回路の動作原理
  • 「0(0V)」を入力した場合
  • 下側のNMOSはOFFになり、上側のPMOSがONになります(※1Vの電源に対し、ゲートが0Vとなり、相対的に負電圧が印加されるため)。出力は電源(Vdd)とつながり、「1(1V)」が出力されます。

  • 「1(1V)」を入力した場合
  • 上側のPMOSはOFFになり、下側のNMOSがONになります。出力は地面(GND)とつながり、「0(0V)」が出力されます。

このように、CMOS回路は入力値を反転させる「インバーター・NOT回路」として機能します。

NOT回路の「真理値表」

デジタル回路の世界では、入力と出力の関係をまとめた表を「真理値表(しんりちひょう)」と呼びます。インバーター(NOT回路)の真理値表は非常にシンプルです。

入力 (A) 出力 (NOT A)
0 1
1 0

ただ0を1に、1を0に反転するだけのこのシンプルな表が、実は巨大なコンピュータの計算を支える基礎となります。では、この「反転」が具体的にどのような役に立つのか見ていきましょう。

0・1反転の計算事例:2進数の引き算と補数

「反転させるだけで何ができるの?」と思うかもしれませんが、NOT回路(インバーター)はコンピュータの引き算において極めて重要な役割を担っています。

コンピュータの内部では、引き算を直接行うのではなく「引きたい数字の『補数』を作って足し算する」という処理が行われます。この補数を作るプロセスでNOT回路が活躍します。

インバーターを使った「7 - 3」の計算手順

4ビットの計算(7 - 3 = 4)を例に、インバーターがどのように計算を支えているか見てみましょう。

1. 数字を2進数にする

NOT回路・インバーターの活用例・なぜ便利なのか

まず、10進数の7は「0111」、3は「0011」と表されます。

2. インバーターで「3」を反転させる

NOT回路・インバーターを利用した0・1反転

引く数である3(0011)をNOT回路に通すと、全てのビットが反転し「1100」となります。

3. 反転した数に1を足して「-3相当」を作る(補数)

NOT回路・インバーターを利用した補数の作成

反転させた1100に1を足すと、「1101」になります。これがコンピュータの世界で「-3」として機能する値(補数)となります。

4. 足し算を実行して、はみ出た桁を捨てる

インバーター・NOT回路を利用した足し算・引き算の例

元の7(0111)に、先ほどの補数(1101)を足し算します。結果は「10100」となりますが、4ビットの枠組みからはみ出た一番左の「1」を除外します。すると、残ったのは「0100」、10進数に戻すと「4」となり、正しく計算できました。

インバーターによる「反転」のおかげで、引き算を足し算の回路だけで実現できました。このように補数を利用することで、足し算用の回路をそのまま引き算にも流用でき、CPUの構造を劇的にシンプルに保つことができるのです。

前の講座

NMOSFETとPMOSFETの違い:構造と動作原理
NMOSFETとPMOSFET

Semi-journalの企業スポンサー制度

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です