← サイトトップ  |  semiconductor 目次

SEMI-001

NMOS・PMOS・CMOS とは何か — なぜ CMOS は消費電力が少ないのか

作成: 2026-06-28  |  カテゴリ: semiconductor(半導体デバイス/ロジック)

このノートのゴール: 半導体設計(EDA)を学び始めた人向けに、デジタル回路の最小部品である NMOS / PMOS トランジスタの動作と、それを相補的に組み合わせた CMOS の仕組みを理解する。とくに「なぜ CMOS はほとんど電力を食わないのか」を、回路図と電流経路の図で腹落ちさせることを目標にする。
要約: MOSFET はゲート電圧でオン/オフする電子スイッチである。NMOS はゲートが High でオン(出力を GND へ引き下げる=プルダウン)、PMOS はゲートが Low でオン(出力を電源へ引き上げる=プルアップ)と、互いに正反対に振る舞う。CMOS(Complementary MOS)はこの 2 種を上下に積んで「常に片方だけがオン」になるよう組む方式。だから定常状態では 電源(VDD)から GND まで貫通する直流経路ができず、静的消費電力がほぼゼロになる。電力を使うのは主に切り替えの瞬間だけで、その動的電力は P = α·C·VDD²·f で表される。NMOS だけで作る抵抗負荷型ロジックは、出力 Low のあいだ電源→抵抗→GND に電流が流れ続けてしまい、ここで大きく差がつく。
【本ノートでの用語規約】
NMOS / PMOS: それぞれ N チャネル/P チャネル MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)の略。本ノートでは論理回路のスイッチとして扱い、デバイス物理(不純物ドーピング等)の詳細は別ノートに譲る。
High / Low: 論理の 1 / 0。電圧で言うと High ≈ VDD(電源電圧, 例 1.8V や 3.3V)、Low ≈ 0V(GND)。
プルダウン(pull-down)=出力ノードを GND(Low)に引き下げる役割、プルアップ(pull-up)=出力ノードを VDD(High)に引き上げる役割。NMOS はプルダウン担当、PMOS はプルアップ担当、と最初に固定して読むと混乱しない。
しきい値電圧 Vth: そのトランジスタがオンし始めるゲート電圧の境目。NMOS は正、PMOS は負の値を持つ(後述)。
「相補的(complementary)」: NMOS と PMOS が「一方がオンなら他方はオフ」と必ず裏返しの関係になっていること。CMOS の C はこれ。

1. その前に:MOSFET は「電圧で開け閉めする蛇口」

NMOS も PMOS も MOSFET というトランジスタの仲間で、端子が 3 つある(厳密にはボディ端子を入れて 4 つだが、論理の説明では 3 つで足りる)。ソース(S)・ドレイン(D)が電流の入口と出口、ゲート(G)が開閉を制御する取っ手だ。ゲートは薄い絶縁膜(酸化膜)で本体から隔てられていて、ゲートには電流がほぼ流れない(電圧をかけるだけ)。この「電圧をかけるだけで S–D 間の通り道(チャネル)が開く」性質が、後で効いてくる省電力の土台になる。 🟢

水道の蛇口にたとえると、ソース=水源、ドレイン=蛇口の先、ゲート=ハンドル。ハンドル(ゲート電圧)をどちらに回すと水(電流)が流れるか、が NMOS と PMOS で逆になっている、というのがこの章の核心だ。

NMOS(N チャネル) D(ドレイン) G(ゲート) S(ソース→GND) ゲートを High にすると ON VGS > Vth(正)→ 導通 PMOS(P チャネル) S(ソース→VDD G(ゲート) D(ドレイン→出力) ゲートを Low にすると ON VGS < Vth(負)→ 導通
図1. NMOS と PMOS の記号と「オンになる条件」。NMOS はゲート High でオン、PMOS はゲート Low でオン(記号のゲート側の○がこの“逆”を表す)。NMOS のソースは GND 側、PMOS のソースは VDD 側に置くのが定石。

2. NMOS 単体:High でオンするプルダウン

NMOS は ゲート電圧がソースより十分高い(VGS > Vth、Vth は正の値)と S–D 間がつながってオンになる。ソースを GND(0V)につないでおけば、ゲートを High にした瞬間にドレイン側のノードが GND と短絡され、そのノードは Low に引き下げられる。これが「プルダウン」だ。ゲートが Low(0V)ならオフのままで、ドレイン側は切り離される。 🟢

覚え方:NMOS は「1 を入れると 0 を作る」「下(GND)に強い」。GND につないで Low を作るのが得意で、逆に High を伝えるのは苦手(しきい値ぶん電圧が落ちる)という性質がある。だから NMOS はプルダウン専任にするのが理にかなっている。

3. PMOS 単体:Low でオンするプルアップ

PMOS はすべてが NMOS の裏返し。ゲート電圧がソースより十分低い(VGS < Vth、Vth は負の値)とオンになる。ソースを VDD(電源)につないでおけば、ゲートを Low にした瞬間にドレイン側のノードが VDD と短絡され、そのノードは High に引き上げられる。これが「プルアップ」。ゲートが High なら PMOS はオフ。 🟢

覚え方:PMOS は「0 を入れると 1 を作る」「上(VDD)に強い」。High を伝えるのが得意で Low は苦手。だから PMOS はプルアップ専任。記号でゲートに小さな○(バブル)が付くのは「Low でオンする=反転している」ことを表している。

表1. NMOS と PMOS の対比
項目NMOS(N チャネル)PMOS(P チャネル)
オンになる条件ゲート = High(VGS > Vth, Vth>0)ゲート = Low(VGS < Vth, Vth<0)
つなぐ位置出力ノードと GND の間出力ノードと VDD の間
役割プルダウン(Low を作る)プルアップ(High を作る)
得意な伝達強い 0(Low)強い 1(High)
キャリア電子(速い)正孔(やや遅い → 同じ駆動力には幅を広く取る)

4. CMOS インバータ:2 つを「相補的」に積む

ここからが本題。最も基本的な CMOS 回路は インバータ(NOT ゲート)だ。作り方は単純で、PMOS を上(VDD 側)に、NMOS を下(GND 側)に縦積みし、両方のゲートを共通の入力 A につなぎ、2 つのドレインの接続点を出力 Y にするだけ。 🟢

VDD GND PMOS 上=プルアップ NMOS 下=プルダウン Y(出力) 2つのドレインの接続点 A(入力)
図2. CMOS インバータの回路図。入力 A は PMOS と NMOS のゲートに共通接続。A が High なら下の NMOS がオン・上の PMOS がオフ、A が Low なら逆。どちらの場合も、上下のうち必ず片方だけがオンになる。

なぜこれが反転(NOT)になるか。入力 A を High にすると、ゲート High でオンする NMOS が導通して出力 Y を GND(Low)に引き下げ、同時に PMOS はオフ。逆に A を Low にすると、PMOS が導通して Y を VDD(High)に引き上げ、NMOS はオフ。つまり 入力の反対が出力に出る。NAND / NOR など他のゲートも、この「上に PMOS 網(プルアップ)/下に NMOS 網(プルダウン)」という相補構造を拡張して作る。🟢

5. 核心:なぜ CMOS は静的にほとんど電力を食わないのか

電力を消費するには 電流が流れる経路が要る。乾電池に何もつながなければ減らないのと同じで、VDD から GND まで電流が流れて初めて電力(P = V × I)を消費する。ここで CMOS インバータの 2 つの安定状態を電流経路つきで見てみよう。

入力 A = Low → 出力 Y = High VDD GND PMOS ON NMOS OFF Y=High A=Low × ここで切れている VDD→GND の貫通電流なし 入力 A = High → 出力 Y = Low VDD GND PMOS OFF NMOS ON Y=Low A=High × ここで切れている VDD→GND の貫通電流なし
図3. CMOS インバータの 2 つの定常状態と電流経路。左:A=Low では PMOS だけオン、下の NMOS がオフなので GND まで道がつながらない。右:A=High では NMOS だけオン、上の PMOS がオフ。どちらの安定状態でも上下のどこか一段が必ずオフになり、VDD から GND へ突き抜ける直流経路(貫通電流)が存在しない。
これが省電力の正体: CMOS は「常に PMOS 段か NMOS 段のどちらかがオフ」という相補構造のおかげで、出力が High でも Low でも、電源から GND へ電流が流れ続ける道ができない。出力ノードの電圧を保持するだけなら電流は要らない(ゲートは絶縁されていて電流を吸わない)。よって静的(定常)消費電力はほぼゼロ。回路が「何もしていない」あいだは、ほとんど電気を食わないのである。🟢

6. では、どこで電力を使うのか

静的にゼロなら永久機関かというと、もちろんそうではない。CMOS が電力を使うのは主に次の 3 つで、現実の消費電力はこの合計になる。

(1) 動的電力(スイッチング電力)— 主役

出力 Y には、次段のゲート容量や配線容量がぶら下がっている(これを負荷容量 C と呼ぶ)。出力が Low→High に変わるとき、PMOS を通して VDD からこの容量 C に電荷を充電する。逆に High→Low では NMOS を通して C の電荷を GND へ捨てる。この充電・放電のたびに電源からエネルギーを取り出している。1 回の充放電(0→1→0)で消費するエネルギーは C·VDD² で、1 秒あたりの平均電力は次式になる。🟢

Pdyn = α · C · VDD² · f
記号意味効かせ方
α(活性化率)そのノードが 1 クロックあたり実際に切り替わる確率(0〜1)切り替わらない回路は電気を食わない(クロックゲーティングの根拠)
C出力にぶら下がる負荷容量微細化・低容量化で減る
VDD電源電圧2 乗で効く → 電圧を下げるのが一番効く(低電圧化)
f動作周波数速くするほど線形に増える

ポイントは VDD が 2 乗で効くこと。だから低消費電力設計では電源電圧を下げるのが王道になる。また α·f が「実際に切り替わる回数」なので、止まっている回路はほとんど電力を使わない(=静的にゼロという CMOS の利点がそのまま生きる)。

入力 A 出力 Y 電源電流 I 充電(C を VDD へ) 放電 切り替わっていない間は電流ほぼゼロ(=電力ほぼゼロ) H L
図4. 動的電力の波形イメージ。入力が切り替わる瞬間にだけ電源電流がスパイク状に流れ(負荷容量 C の充放電)、入力が一定の区間では電流がほぼ流れない。電力を食うのは「変化の瞬間」だけ、というのが CMOS の振る舞い。

(2) 短絡電流(short-circuit current)

入力が Low↔High へ切り替わるごく短い遷移の途中では、入力電圧が中間にある一瞬だけ PMOS と NMOS が両方ともわずかにオンになり、VDD→GND に瞬間的な貫通電流が流れる。これが短絡電流で、入力の立ち上がり/立ち下がりが鈍い(遅い)ほど大きくなる。通常は動的電力の数〜十数%程度で、入力波形を急峻にすれば抑えられる。🟢

(3) リーク電流(leakage current)

理想的にはオフのトランジスタは電流を 0 にするはずだが、現実にはオフでもわずかに漏れる(サブスレッショルドリーク、ゲートリークなど)。これが静的消費電力をぴったりゼロにはしない原因で、トランジスタが微細化して Vth が下がるほど無視できなくなる。最先端の微細プロセスでは、このリークが消費電力のかなりの割合を占めるようになり、パワーゲーティング(使わないブロックの電源を切る)などの対策が要る。🟢

7. 比較:NMOS だけのロジックはなぜ電気を食うのか

CMOS の偉さは、PMOS の代わりに抵抗を使う旧来の「抵抗負荷型(NMOS)ロジック」と比べると一目瞭然だ。プルアップを抵抗 R で済ませ、プルダウンだけ NMOS にする構成を考える。

抵抗負荷型(NMOS): 出力 Low のとき VDD GND R NMOS ON Y=Low A=High VDD→R→NMOS→GND 電流が流れ続ける CMOS: 出力 Low のとき VDD GND PMOS OFF NMOS ON Y=Low A=High × PMOS オフで道が切れる 定常電流ゼロ
図5. 抵抗負荷型(NMOS)と CMOS の対比(どちらも出力 Low)。左の抵抗負荷型は出力 Low のあいだ VDD→R→NMOS→GND に直流が流れ続け、その間ずっと電力を消費する。右の CMOS は同じ出力 Low でも上の PMOS がオフなので電流が流れない。

抵抗負荷型では、出力が Low のときに必ず VDD から抵抗と NMOS を通って GND まで電流が流れ続ける。出力を Low に保っているだけ(=何もしていない)のに、ずっと電力を捨て続けることになる。さらに困ったことに、この貫通電流を小さくしようと R を大きくすると、今度は出力 High→Low… いや Low→High の立ち上がりが遅くなる(C を R 経由でしか充電できない)というトレードオフに陥る。CMOS はプルアップを「能動的にオフにできる PMOS」に置き換えることで、このトレードオフを断ち切り、定常電流ゼロと速い充放電を両立させた。これが CMOS がデジタル LSI の標準になった最大の理由だ。🟢

表2. 抵抗負荷型(NMOS)ロジック vs CMOS
観点抵抗負荷型(NMOS)CMOS(相補型)
プルアップ抵抗 R(常時導通)PMOS(オフにできる)
出力 Low 時の定常電流流れ続ける(電力を捨てる)ほぼゼロ
静的消費電力大きいほぼゼロ(リークのみ)
主な消費定常の貫通電流切替時の動的電力 α·C·VDD²·f
速度と電力の関係R で板挟み(トレードオフ)両立しやすい
トランジスタ数(インバータ)1(+抵抗)2(PMOS+NMOS)
注意(誤解しやすい点): 「CMOS は電力ゼロ」ではない。正しくは「何もしていない定常状態の電力がほぼゼロ」であって、回路がせっせとスイッチングすれば動的電力 α·C·VDD²·f をしっかり消費する。だから高速・高並列な現代の CPU/GPU では、結局この動的電力(と微細化で増えたリーク)が発熱の主役になり、クロックゲーティング・電圧スケーリング・パワーゲーティングといった低電力設計が重要になる。🟡

8. まとめ

参考文献

確信度ラベル: 🟢=標準的教科書で確認済みの基礎事項 / 🟡=標準的だが文脈依存(数値や割合は条件で変わる) / 🔴=推論・未確認。本ノートに 🔴 はなし。