← サイトトップ | 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 で逆になっている、というのがこの章の核心だ。
図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 の利点がそのまま生きる)。
図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. まとめ
NMOS :ゲート High でオン。GND 側につないで Low を作るプルダウン 。🟢
PMOS :ゲート Low でオン。VDD 側につないで High を作るプルアップ 。🟢
CMOS :両者を相補的に積み、常に片方だけオン にする。だから定常状態で VDD →GND の貫通路ができず静的電力ほぼゼロ 。🟢
電力を使うのは主に切替時の動的電力 P=α·C·VDD ²·f (VDD が 2 乗で効く)。ほかに短絡電流とリーク電流。🟢
NMOS だけ(抵抗負荷型)だと定常時に直流が流れ続けて電力を食う。CMOS はそれを相補構造で断ち切った。🟢
参考文献
Neil H. E. Weste, David Money Harris, CMOS VLSI Design: A Circuits and Systems Perspective , 4th ed., Addison-Wesley — インバータの相補動作、Power(dynamic / short-circuit / leakage)の章。🟢
Jan M. Rabaey, Anantha Chandrakasan, Borivoje Nikolić, Digital Integrated Circuits: A Design Perspective , 2nd ed., Prentice Hall — Ch. on Power Dissipation(P=α·C·VDD ²·f の導出)。🟢
Adel S. Sedra, Kenneth C. Smith, Microelectronic Circuits — MOSFET の動作としきい値、CMOS インバータの章。🟢
確信度ラベル: 🟢=標準的教科書で確認済みの基礎事項 / 🟡=標準的だが文脈依存(数値や割合は条件で変わる) / 🔴=推論・未確認。本ノートに 🔴 はなし。