Kalan's Blog

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

Software Engineer / Taiwanese / Life in Fukuoka
This blog supports RSS feed (all content), you can click RSS icon or setup through third-party service. If there are special styles such as code syntax in the technical article, it is still recommended to browse to the original website for the best experience.

Current Theme light

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

Please notice that currenly most of posts are translated by AI automatically and might contain lots of confusion. I'll gradually translate the post ASAP

驅動現代社會的半導體 (2)

昨天介紹了半導體的功用與實際上的運作原理(簡易版),並在最後貼上了這張圖片:

20103565Hn1Trf1bqI

這個電晶體叫做雙極性電晶體,很常用 BJT 來稱呼它。不過在實際應用上,有另外一種電晶體較為常用,叫做場效電晶體,英文簡寫叫做 MOSFET。

場效電晶體(MOSFET)

場效電晶體跟雙極性電晶體一樣有三個極,分別是閘極(gate)、汲極(drain)與源極(source)還有一個基板 body。

在閘極施加電壓時,能夠源極與閘極之間產生電子通道,近而導通電路。由於我們可以靠施加電壓來決定是否導通電路,因此能夠達到開關的效果。

MOSFET 比 BJT 電晶體更常使用的原因有幾點:

  • 在閘極跟 P 型基板間有個 Si 氧化膜,因此就算施加電壓也不會產生電流(高阻抗)。因此功耗消耗相對比 BJT 小
  • MOSFET 的切換開關速度(頻率)比 BJT 高許多
  • 由於結構的關係,MOSFET 通常比 BJT 小

由於以上的優點,在半導體製程中,我們通常都是使用 MOSFET。

製作方式

對 CPU 或其他電路來說,最基礎的元件就是電晶體,然而電晶體的位置與連接方式是重點。要完成這件事,並且又要讓體積足夠小,目前最關鍵的工法叫做光蝕刻法。主要的原理是將電路做成光罩,將電路圖曝光到晶圓上。

由於半導體製程已經進步到數 nm 的地步,因此需要相當精密的操作。最近很常聽到的 EUV 光波長更短,曝光機可以說是製造半導體的關鍵。光是一台曝光機就要數十億台幣。

封裝

刻蝕好的電路在晶圓上需要經過封裝才能真正給其他人使用,因為裡頭的電路相對脆弱,需要一層外皮保護起來;另外這些晶圓上的電路的接點太小了,需要進一步給封裝廠連接接點才有辦法使用。同樣的晶片可能有不同的封裝方式,例如 DIP、PGA、SMD 等等。

撰寫方式

一個 CPU 動輒數十億個電晶體,這個規模不是幾個人手工拉線畫圖就可以完成的,通常需要電腦輔助。現在主要都是以 RTL(Register Transfer Level)來設計邏輯電路,比較有名的像是 verilog。

module half_adder(A, B, sum, c);
  input A, B;
  output sum, c;
  xor (sum, A, B);
  and (c, A, B);
endmodule

看起來很像我們一般在寫的程式碼,不過由於背後的運作是直接轉換成實體電路,因此跟一般程式不太一樣。在實體電路中,他們會是同時執行的。也就是說這邊的半加器不是先求 sum 再求 carry,而是會在一個週期同時完成。邏輯電路撰寫好之後會先模擬並且測試,確定和期待相符之後才會開始佈線。

各種應用

電晶體的應用非常多,沒辦法一一列舉,在這邊分享兩個常見的應用。

CPU / MCU

CPU 或者 MCU 都是由無數個電晶體組成。但是為什麼一堆電晶體就可以組合出 CPU / MCU 呢?

CPU 裡頭的電路非常簡化過後可以大致分為幾種:控制單元、計算單元、儲存單元。控制單元可以根據指令來判斷要執行哪個分支、計算單元負責計算資料、儲存單元則可以儲存資料。

有關於每個單元實際上要怎麼以電路模擬的部分,可以參考 [Day8] 與程式有關的遊戲三選 (2) – TIS-100 與 Turing Complete,基本上所有的功能都可以用邏輯閘做出來,而邏輯閘又可以用電晶體來表示。

**可是電腦明明就不是只有 0 和 1 啊?**像是螢幕為什麼可以多彩繽紛,那麼多顏色。的確,這些技術牽涉到的東西不只有電器信號而已,然而像是螢幕,如果我們將它想像成非常多個微小的 LED 的話,並且可以根據電壓大小組合出不同亮度與顏色。那麼螢幕的顯示就可以抽象化成「計算此顏色所需要的電壓與要在哪裡顯示」。

螢幕背後也有晶片在控制,只要改變螢幕的記憶體位址的值,他就能幫我們改變顏色。因此整個過程又可以再簡化成「計算要改變哪個記憶體位址的值」。我們可以發現,有很多問題簡化到最後都會變成可以計算的問題,只要可以計算就可以利用 CPU。

升壓轉換器

假設今天有一個 IC 需要 5V 或 12V 的電源,但是一顆乾電池只有 1.5V,兩顆的話只有 3V,我們該怎麼辦呢?前面有提到,電晶體有一個功能是「開關」。升壓轉換器的原理是透過電感(線圈)達成,電感有個很神奇的特性,當電流產生變化時,電感會產生電動勢來抵銷這種變化。

如果我們不斷地開關,讓電感不斷地累積能量並釋放給電容充電,就可以得到比輸入電壓還高的電壓。藉此達到升壓的效果。我第一次知道這個電路時覺得很神奇,原來升壓就是不斷開開關關!

當然這並不是神奇的魔法,雖然理論上可以升壓到無限大,但這樣一來 MOSFET 跟電感要承受的功率非常大,幾乎跟直接短路一樣。就算可以,兩顆 1.5V 的乾電池能量也有限,要是升壓太多一下子就用完了。

Prev

那些比較冷門的 Networking 理論 (1)

Next

充電器的原理

If you found this article helpful, please consider buy me a drink ☕️ It'll make my ordinary day shine✨

Buy me a coffee