CS-計概04:閘與電路
這一個系列是有關「計算機概論」的,主要是我讀書過程中的隨筆。
4.1 電腦與電學
電子訊號有某個電壓準位,一般而言電壓準位在 0~2 伏特時屬於「低」,代表二進制的 0,而位於 2~5 伏特時則為「高」,代表二進制的 1。
▪︎ 閘 gate:是完成電子訊號基本運算的裝置。閘接受一至多個輸入訊號,產生單一輸出訊號;有數種特定裝置的閘,以下討論六種基本的閘。
▪︎ 電路 circuits:閘可組成電路,完成更複雜的工作。有三種可以描述電路的表示法:
- 布林表示法
- 邏輯圖
- 真值表
4.2 閘
ㄧ、NOT閘
NOT閘接受一個輸入,產生一個輸出。
<DEF>如輸入為 1,則輸出 0;反之亦然。
▪︎ 布林運算式: X = A '
▪︎ 邏輯圖
▪︎ 真值表
二、AND閘
AND閘接受多個訊號,產生一個輸出。
<DEF>若輸入全為1,則輸出1,反之,則為0。
▪︎ 布林運算式:X = A・B
▪︎ 邏輯圖
▪︎ 真值表
三、OR閘
OR閘接受兩個輸入,產生一個輸出。
<DEF>如兩個輸入全為0,則輸出0,反之,輸出1。
▪︎ 布林運算式:X = A + B
▪︎ 邏輯圖
▪︎ 真值表
四、XOR閘
XOR閘,又稱互斥閘。
<DEF>若輸出相同,則輸出0,反之,輸出1。
▪︎ 布林運算式:X = A ⊕ B
▪︎ 邏輯圖
▪︎ 真值表
五、NAND 與 NOR閘
分別為AND與OR閘的相反
❖NAND閘
▪︎ 布林運算式:X = ( A・B ) '
▪︎ 邏輯圖
▪︎ 真值表
❖NOR閘
▪︎ 布林運算式: X = ( A + B ) '
▪︎ 邏輯圖
▪︎ 真值表
4.3 閘的建構
❖電晶體 transistor:是以半導體所製成,依據電壓準位來決定要當導線還是電阻的裝置。
射極一般是接地的。而對電腦而言,源極產生大約5伏特的高電壓值,基極的電壓值用來判斷源極是否形成接地,若接地,電壓值會被下拉至0,反之,則會維持高電壓。
輸出線會接在源極上,若源極接地,則輸出為低準位(二進制的 0),反之則為高準位(二進制的 1)。
如基極訊號為高準位,則源極接地,此時電晶體為 on,反之,電晶體為off。
4.4 電路
❖組合電路
藉由某個閘的輸出作為另一個閘的輸入,便可組合成電路。
其中圖中的黑點,表示兩線是相連接的,如果沒有點,代表其中一條線從另一條線的上方跳過,互不影響。
此邏輯圖的布林運算式為:( AB + AC ),也可寫成 A ( B + C ),讀者可自行寫出真值表來確認。此現象稱作電路等效性。
事實上,布林運算式滿足幾種數學性質:
- 交換律,如:AB = BA、A + B = B + A。
- 結合律,如:( AB ) C = A ( BC )、A + ( B + C ) = ( A + B ) + C。
- 分配律,如:A ( B + C ) = AB + AC、A + BC = ( A + B ) ( A + C )。
- 恆等,如:A1 = A、A + 0 = A。
- 互補,如:A ( A ' ) = 0、A + A ' = 1。
- 狄摩根定律,如:( AB ) ' = A ' + B '、( A + B ) ' = A ' B '。
❖加法器
二進制數元相加可能會產生進位值,如 1 + 1 = 10,能計算 2 個位元總和並產生進位為元的電路稱作半加器 half adder。
考慮半加器時,可寫出以下真值表:
可看出來,總和為 A ⊕ B,進位為 AB,由此觀察,我們可畫出半加器的邏輯圖:
一個半加器並未將可能的進位值併入計算,也就是說,一個半加器在兩個單一數元的相加是沒問題的,但在多重數元時會產生問題。
可以考慮進位輸入的電路稱作全加器 full adder。簡單的想法可以用兩個半加器來製作一個全加器;作法為:在總和輸出前,再加上一個半加器與進位輸入做總和,最後調整進位輸出。
以下為全加器的真值表及邏輯圖:
❖多工器 multiplexer
為一種產生單一輸出的電路,輸出等於電路中數個輸入的其中一個。依據一些原始輸入以外的輸入訊號(選擇訊號、選擇控制線)來決定哪條輸入將被輸出。
如:選擇訊號為 S0、S1、S2,輸入為D0~D7,則有以下真值表。
上述多工器可化成此方塊圖。
4.5 作為記憶體的電路
數位電路也可以儲存資訊,這些電路形成一個循序電路,電路的輸出可以當成電路的輸入,也就是說,某些電路的存在狀態有些被用來決定此電路的下個狀態;一些記憶體設計如:S-R閂。
▪︎ S-R閂 S-R latch:用來儲存一個單一二進制的數元。
S Set、R Reset,透過此設計,只要S與R保持為1,X與Y的值皆能保持不變;通常,我們把X當作現在電路的狀態。
假設目前X為1,則Y為0,如果須將X設為0的話,只需將R設為0,X就會變成0,這時立刻將R設為1,X就會保持為0了。相反的,如需將X設為1,則需變動S為0,待X變為1後,再立刻改變S為1,X就會保持為1。
4.6 積體電路
積體電路是一種嵌入多重閘的矽片,矽片邊緣上有許多腳位,代表著輸入或輸出。積體電路是依據閘的數量來分類的
SSI(小型積體電路) → 1~10
MSI(中型積體電路) → 10~100
LSI(大型積體電路) → 100~100,000
VLSI(超大型積體電路) → 100,000↑