CMOS是什麼?組合nMOS與pMOS來省電的原理

約 10 分鐘 · 更新:2026年10月23日

CMOS是把nMOS和pMOS這2種電晶體配成一組來製作電路的方式。這2種電晶體會因相反的訊號而導通,所以其中一個一定是關閉的。因此在輸出不變的期間,幾乎沒有電流從電源直接流過去。由於這種省電的特性,CPU、記憶體等大多數的數位晶片,都是用CMOS製作的。

這篇文章可以了解

  • nMOS和pMOS是「因相反訊號而接通的開關」
  • 把2個配成一組的NOT閘(反相器)如何動作,以及靜止時幾乎不耗電的理由
  • 即使如此仍會耗電的3種情況(每次切換時的充電與放電、漏電、一瞬間的直接穿過)
  • 大多數數位晶片採用CMOS的理由,以及從1963年開始的歷史
  • 和電腦設定中的「CMOS」、相機的「CMOS感測器」有什麼關係

先備知識:知道「電晶體是用電來切換的開關」和「電腦把電壓的高、低當成1和0」這2件事。詳細說明請看「電晶體是什麼?」。

生活中的例子:數十億個開關與電池

高效能的手機晶片裡,有超過100億個電晶體。2023年iPhone用的「A17 Pro」,約有190億個。如果每一個在什麼都不做的時候,也一直讓電流流過,會怎麼樣呢?電流加起來會很大,電池很快就沒電,晶片也會變熱。

實際上並不會這樣。原因之一,就是CMOS這種電路的做法。本文會依序說明CMOS為什麼能省電,以及即使如此,它還會在哪裡耗電。

另外,這裡說的「反相器」,是把0和1反過來的小電路。它和冷氣等家電裡的「逆變器」(改變電的形式的裝置)是不同的東西,只是兩者的英文都叫inverter。

原理①:因相反訊號而接通的2種開關

晶片中的電晶體,是用電的訊號把電流的通路接通或切斷的開關。接收訊號的部分稱為閘極。加在閘極上的電壓是高還是低,決定了開關的切換。

這種開關有動作正好相反的2種。一種是閘極電壓高,也就是1的時候接通的nMOS。另一種是電壓低,也就是0的時候接通的pMOS。

對兩者同時送出相同的訊號,一個會接通,另一個一定切斷。CMOS就是利用這種「正好相反」的方式。開頭的C是英文Complementary(互補)的縮寫,意思是「互相補足」。

為了讓說明簡單,這裡把兩者當成只會「接通、切斷」的開關。內部原理的差異,可以在比較頁「nMOS與pMOS的差異」中閱讀。

原理②:配成一組就成為NOT閘

最簡單的CMOS電路,是把pMOS和nMOS各1個上下排列。上面的pMOS接到電源的+端,下面的nMOS接到0 V端。2個閘極輸入相同的訊號,再從兩者之間取出輸出。

CMOS的NOT閘:輸入為0和為1時,各是哪個電晶體接通 輸入為0 電源+端 pMOS 導通 輸出 1 nMOS 截止 0 V 輸入為1 電源+端 pMOS 截止 輸出 0 nMOS 導通 0 V
左邊是輸入為0、右邊是輸入為1的時候。粗的彩色線,是和輸出相連的通路。不論哪一邊,都有一個電晶體是切斷的。省略的部分:輸入的配線(輸入會同時進到2個閘極)、實際的電路符號、切換途中的動作。

輸入為0時,上面的pMOS接通,下面的nMOS切斷。輸出和電源的+端相連,變成1。輸入為1時則相反,輸出和0 V端相連,變成0。

這個電路會輸出和輸入相反的值,所以稱為NOT閘,或反相器(把值反過來的東西)。依固定規則處理0和1的一個電路單位,稱為邏輯閘。種類和規則在「邏輯閘是什麼?」中說明。

這裡的重點是:不論輸出是0還是1,上下其中一個一定是切斷的。從電源的+端到0 V端,不會形成讓電流直接穿過的通路。

原理③:靜止時幾乎不耗電的理由

在CMOS普及之前的1970年代,電腦用晶片的主流,是只用nMOS製作的方式。這種方式會在輸出和電源+端之間,放一個一直讓電流通過的零件。那是電阻(讓電流不容易流動的零件),或是代替電阻的電晶體。

輸入為1、nMOS接通時,輸出變成0。但這時電流會從電源+端,經過電阻和nMOS,持續流向0 V端。只要輸出維持在0,就算什麼都沒在計算,電流也一直在流。

輸出為0時:只用nMOS的方式電流會持續流動,CMOS則不會有電流穿過 只用nMOS 電源+端 電阻 輸出 0 nMOS 導通 0 V 電流持續流動 CMOS 電源+端 pMOS 截止 輸出 0 nMOS 導通 0 V 電流無法穿過
兩邊都是輸入為1、輸出為0的時候。左邊如箭頭所示,電流持續流動。右邊上面的pMOS切斷,所以沒有可以穿過的通路。省略的部分:輸入的配線、實際的電路符號。上面的零件在這裡用電阻代表。

晶片上排列著數萬、數百萬個這樣的邏輯閘。只用nMOS的方式,其中輸出為0的邏輯閘,在靜止時也一直耗電。如果是CMOS,維持輸出時的電流幾乎是零。說「幾乎」,是因為有後面會說明的漏電。

原理④:即使如此仍會耗電的3種情況

每次切換時的充電與放電

輸出的後面,連接著下一個邏輯閘的輸入和配線。這些東西有儲存少量電荷的性質,這種性質稱為電容。它的作用和儲存電的零件相同(「電容器是什麼?」)。

輸出從0變成1時,電流從電源經過pMOS,流進配線等的電容。這稱為充電。輸出從1變成0時,儲存的電荷經過nMOS,流向0 V端。這就是放電。每次電流流動時,那些能量主要在電晶體中變成熱。

輸出切換時:從0變成1時對電容充電,從1變成0時放電 0→1時 電源+端 pMOS 導通 電容 nMOS 截止 0 V 充電:流入 1→0時 電源+端 pMOS 截止 電容 nMOS 導通 0 V 放電:流出
「電容」的符號(2條短的平行線),是把輸出後面的配線和下一個邏輯閘儲存電荷的性質,合起來用1個符號表示。箭頭是電流的方向。省略的部分:輸入的配線、直接穿過的電流、漏電流。

也就是說,CMOS主要依「0和1互換的次數」耗電。CPU配合像時鐘一樣、每秒跳動數十億次的訊號動作。在這樣的CPU中,這部分的電力在很多情況下占了很大的比例。這種切換時使用的電力,稱為動態功耗。

降低電壓,效果很好

1次充電儲存的電荷量,和電源電壓成正比。而把電荷推出去的力道也是電壓。所以電壓減半時,1次切換使用的能量是一半的一半,也就是4分之1。

寫成公式,切換的電力是「切換的比例 × 電容 × 電壓的平方 × 每秒的訊號次數」。用符號寫成 P = αCV²f。想代入數字試試看的人,可以使用CMOS功耗計算工具。

把電晶體和配線做小,電容也會變小。這是晶片世代進步後,1次切換的能量會減少的理由之一(「「2奈米」「3奈米」是什麼的長度?」)。

關閉時也會漏一點

理想的開關在切斷時,完全不讓電流通過。實際的電晶體即使切斷,也會漏出極少量的電流。因為這種漏電,在靜止時也持續消耗的電力,稱為靜態功耗。

電晶體越小,漏電越容易增加,溫度上升時也會增加。因此,現在的晶片會下各種工夫,例如把沒在使用的部分整個斷電。2種電力的差異,可以在比較頁「靜態功耗與動態功耗的差異」中閱讀。

切換的一瞬間,兩邊都會接通

輸入的電壓不是一瞬間從0變成1,而是花一點時間上升。在途中的電壓,pMOS和nMOS會同時處於稍微接通的狀態。只有在這段短暫的時間,電流會從電源直接穿過,流到0 V端。這稱為貫穿電流,通常比充電和放電的電力小。

NAND也用同樣的想法製作

輸入有2個以上的邏輯閘,也能用同樣的想法製作。讓輸出變成1的上方通路用pMOS組成,讓輸出變成0的下方通路用nMOS組成。並且讓其中一條通路接通時,另一條一定切斷。

例如2輸入的NAND閘,是「只有兩個都是1時才輸出0」的電路。下方通路把2個nMOS排成一列(串聯),上方通路把2個pMOS並排(並聯)。兩個都是1時,下方通路接通;任一個是0時,上方通路接通。共使用4個電晶體。

不論哪種輸入,上下都不會同時接通。因此NAND閘在靜止時的電力也幾乎是零。組合邏輯閘來做加法的原理,在「電腦怎麼用0和1計算?」中說明。

為什麼大多數晶片都是CMOS?

第1個理由,是前面看到的低耗電。1個晶片裡塞進數十億個電晶體,即使每個只有一點點電流,加起來也會變成很大的電力和熱。靜止時幾乎不用電流的CMOS,是容易增加1個晶片(積體電路)上電晶體數量的方式。

第2個理由,是0和1很分明。CMOS的輸出,會確實地連到電源+端或0 V端的其中一端。只用nMOS的方式,0的電壓由上方電阻和下方nMOS「拔河」決定,所以不會剛好是0 V。0和1的電壓差越大,配線上有雜訊時越不容易讀錯(這個餘裕稱為雜訊邊限)。

第3個理由,是能用同一種做法,把各種電路放進1個晶片。計算的電路、CPU裡又小又快的記憶體、DRAM和快閃記憶體周邊的電路,都能用CMOS製作。相機的影像感測器也用同樣的技術,將光轉成電的像素和讀出電路,整合在1個晶片上。

另一方面,處理大電力的零件等,也會使用其他種類的電晶體(「功率半導體是什麼?」)。

歷史:從1963年的發明到成為主角

CMOS在1963年,誕生於美國快捷(Fairchild)公司的研究所。法蘭克·萬拉斯(Frank Wanlass)和薩支唐(C. T. Sah)在學會論文中,發表了把nMOS和pMOS配成一組的電路。萬拉斯在同一年1963年的6月申請專利,1967年12月取得美國專利。

不過,早期的CMOS在性能上有弱點,沒有馬上普及。投入製造的是美國的RCA公司,最先為太空與航空設備製作。1968年,RCA推出了通用邏輯IC「CD4000」系列的第一款產品(根據電腦歷史博物館的說明)。

1970年代的電腦用晶片,如原理③所見,主流是速度較快、只用nMOS的方式。CMOS主要用在鐘錶等特別重視低耗電的用途。改變潮流的例子之一,是日立在1978年發表的高速CMOS記憶體(後來的產品「HM6147」)。它用少得多的電流,達到和英特爾高速nMOS記憶體「2147」相同的速度(根據日本半導體歷史館的說明)。

年事件
1963年快捷的萬拉斯和薩支唐發表CMOS。萬拉斯申請專利
1967年CMOS的美國專利(第3,356,858號)成立
1968年RCA推出邏輯IC「CD4000」系列的第一款產品
1978年日立發表和nMOS記憶體一樣快的高速CMOS記憶體
之後CMOS也逐漸擴展到微處理器、DRAM等

根據日本半導體歷史館的說明,在日立的記憶體之後,CMOS也擴展到了微處理器、DRAM等。現在,進行計算的晶片大多是CMOS。

常見的誤解

誤解:CMOS是在電晶體導通的期間耗電

實際上,主要是在輸出「切換的時候」耗電。即使有導通的電晶體,只要後面的通路被另一個切斷的電晶體堵住,電流就不會持續流動。這是從電燈那種「開著的期間一直用電」的印象,容易產生的誤解。靜止時使用的,只有漏電的部分。

誤解:電腦設定畫面中的「CMOS」,指的是CPU的製作方式

實際上,它指的是一個小記憶體,在關掉電源後,仍能保存BIOS(開機時最先執行的程式)的設定和日期、時間。以前的電腦在這裡使用低耗電的CMOS晶片(例如摩托羅拉的MC146818A),並用鈕扣電池保存內容。現在它已成為另一顆大晶片的一部分,但這顆電池至今仍稱為「CMOS電池」。「清除CMOS」是把設定恢復成初始狀態的操作,和CPU的電路無關。

誤解:「CMOS感測器」的CMOS,是相機專用零件的名稱

實際上,意思是用CMOS的做法製作的影像感測器。因為能使用和CPU等同一類的製造技術,容易把讀出和處理的電路整合在同一個晶片上,也能降低耗電。它稱為CMOS 影像感測器。和以前就有的CCD方式的差異,可以在「CMOS 影像感測器與CCD的差異」中比較。

從數字來看

數字意義
2個CMOS的NOT閘使用的電晶體(pMOS和nMOS各1個)
4個CMOS的2輸入NAND閘使用的電晶體
4分之1電源電壓減半時,1次切換使用的能量
最大20 µACMOS的IC「74HC00」(內含4個NAND閘)的電源電流。輸入固定在電源電壓或0 V、輸出什麼都不接的時候(電源6 V、最高85 °C。德州儀器的資料手冊)
約15 mA與約110 mA1978年日立的CMOS記憶體,和同樣速度的英特爾nMOS記憶體「2147」的電流(日本半導體歷史館說明中的數值)

µA(微安培)是100萬分之1安培,mA(毫安培)是1000分之1安培。74HC00的20 µA,是4個閘合計的上限。日立記憶體的電流,約為7分之1(本站的計算)。

進一步學習

接著閱讀

系列「初次認識半導體」的文章

  1. 半導體該從哪裡開始學?給初學者的學習順序指南
  2. 半導體是什麼?導電性可以大幅改變的材料
  3. 電晶體是什麼?手機裡超過100億個的小開關
  4. 積體電路(IC)是什麼?晶片、晶粒、LSI、SoC的差異
  5. 「2奈米」「3奈米」是什麼的長度?看懂晶片製程世代的數字
  6. 二極體是什麼?讓電流只往一個方向流的原理與用途
  7. CMOS是什麼?組合nMOS與pMOS來省電的原理
  8. GAA電晶體是什麼?FinFET之後、2奈米世代的奈米片

這個領域的題目: MOSFET

參考資料

入門解說一覽