Day3 — 前导:电晶体如何组成逻辑闸

如果用非常概括性的说法来描述 CPU 的组成,其实就是数以亿计的电晶体组合而成的。那麽电晶体又是怎麽组成的呢?

一切来自於沙子

沙子的主要成分为二氧化矽,经由提炼之後可以生成粗矽,也就是半导体最主要的成分—矽(Silicon)。

接下来要透过蒸馏以及其他化学反应处理提高纯度,纯度如果不够高容易产生缺陷。接下来是制造矽晶圆,也就是制作 IC 的基本元素,再透过各种处理将电路复制到晶圆後经由封装测试,就变成我们所看到的各种 IC 了。整个过程听起来很简单,但要从沙子变成晶圆可不是在家搓搓揉揉烧一烧就能够变出来的,所有的步骤都是需要公司倾尽全力的资源才能完成。

仔细想一想要将数以亿计的电晶体塞到一颗小小的 CPU,还要能正确无误地运作,简直就是人类文明的奇蹟。

然而对我来说最神奇的是,大自然随处可见的沙子,是构成人类现代科技的基础,到头来一切都源自元大自然。

矽有什麽神奇之处?

现在我们知道半导体的成分由沙子而来(经过各种加工之後),那麽矽到底有什麽特质,使得半导体产业如此依赖於矽?首先需要澄清的是,并不是只有矽才能拿来当作半导体,只是矽的原料比较容易入手,因此通常会使用矽来制作。

关键在於矽的原子结构,在矽的最外层有四个电子,这些电子受到能量後比较容易跳出原子的束缚变成可以自由移动的电子。一旦电子可以移动,就能够形成电流。

原子的导电程度根据价电子变成自由电子的难易度决定,绝缘体因为不容易让电子摆脱束缚,无法形成自由电子;导体则是不需要太多能量,甚至是在一般温度下也能够产生大量自由电子,因此可以导电。半导体最大特色就在於,虽然它平时无法导电,但只要施加电位差就能够跃升成为自由电子,达成导电。

参杂(doping)

为了近一步提升半导体的导电性(本段落皆以矽为例),可以加入其他杂质元素,这个过程就做参杂。

如果参杂的元素为三价元素,则参杂後会变成 P 型半导体;如果参杂的元素为五价元素,则参杂後会变成 N 型半导体。参杂过後会让内部结构的电子更加容易流动,提高了半导体的导电性。

如果将 P 型半导体与 N 型半导体结合就能够组成二极体。二极体最大的特性在於施加顺向电压时能够导通,但施加逆向电压时则无法导通。

电晶体

透过调整参杂浓度的变化,并且将原本的二极体中间再加入一层半导体,就形成了电晶体。以 NPN 电晶体为例,这三层半导体分别称为射极(emitter)、基极(base)与集极(collector)。

https://ithelp.ithome.com.tw/upload/images/20210916/20103565yF6qgbA69T.jpg

主要的特性在於当我们在基极与射极形成顺向偏压时,由於基极的参杂浓度不同,在电子移动时有一部分也会跑去集极(N型半导体)进一步造成射极与集极导通。

简单来说,我们可以透过控制基极与射极的输入电压(高电位与低电位),来控制射极与集极的导通与否,也就达成了开关的效果。

除了开关的效果之外,电晶体还可以用来当作放大电路使用,不过因为篇幅关系这里只针对开关作用做说明。

值得一提的是在理解电路时,我们时常说的电流方向,其实与真实的电子流动相反,在电路当中能够移动的只有电子。至於为什麽要这样表示,可是是因为大家已经习惯从正到负这种概念了。

逻辑闸

现在,有了开关结构,我们就可以实作逻辑闸了。举例来说,如果我们要做一个 AND 的电路可以这样做:
https://ithelp.ithome.com.tw/upload/images/20210916/20103565lBTZoizKZA.jpg

当 A 跟 B 都施予电压时才能够让整个电路导通,达到 AND 的效果。

下图是一颗电晶体与键盘的比例图:

https://ithelp.ithome.com.tw/upload/images/20210916/20103565Hn1Trf1bqI.jpg

半导体产业

虽然说这种电晶体已经很小了,但很显然对电晶体数量用亿来算的现代 CPU 来说,这样子还是太大。因此现代半导体产业最主要的挑战就是如何在有限的面积内塞入更多电晶体,在 1970 年代时的制程为 10um,现在已经来到 5nm,面积比 1970 年代小 2000 倍。

一些想法

我自己很希望半导体的制程在未来可以普及到一般家庭当中,就像 3D 列印一样。不需要奈米制程,只要微米制程甚至在更高也没关系,让一般人也能够做出积体电路。

Upgraded Homemade Silicon Chips

目前看起来只要有设备,要做出来并非难如登天,只是影片中的设备看起来也是要价不菲,一般家庭可能也没有那个空间放置。不知道未来会不会有革新技术出现,大幅改变人们制作积体电路的方式?


<<:  日志集中管理

>>:  铁人赛开场就决定是你了,Ruby 30 天刷题修行篇第一话

Day17:比大小

记得初学Java的时候,若要对List进行排序,可以使用Collections的静态方法sort()...

【Day21】:客制化的PWM输出

客制化PWM 这里所说的客制化PWM指的就是我们可以输出任何想要的方波波形,例如输出10个完整的波後...

找LeetCode上简单的题目来撑过30天啦(DAY29)

题号:59 标题:Spiral Matrix II 难度:Medium Given a positi...

Day 13. slate × Interfaces × Positioning

紧接着这一篇要来探讨 slate 是如何实现『定位』这件事的。 在开发以 text 文字资料模型为...

[Day 06] Sass - Partials

这篇文章会讲解如何将Sass分成多个档案模组化管理,并於编译时只会编译到同一个css档案内 首先,我...