CS-計概04:閘與電路

這一個系列是有關「計算機概論」的,主要是我讀書過程中的隨筆。

LuSkywalker
7 min readFeb 6, 2018

4.1 電腦與電學

電子訊號有某個電壓準位,一般而言電壓準位在 0~2 伏特時屬於「低」,代表二進制的 0,而位於 2~5 伏特時則為「高」,代表二進制的 1。

▪︎ 閘 gate:是完成電子訊號基本運算的裝置。閘接受一至多個輸入訊號,產生單一輸出訊號;有數種特定裝置的閘,以下討論六種基本的閘。

▪︎ 電路 circuits:閘可組成電路,完成更複雜的工作。有三種可以描述電路的表示法:

  1. 布林表示法
  2. 邏輯圖
  3. 真值表

4.2 閘

ㄧ、NOT閘

NOT閘接受一個輸入,產生一個輸出。

<DEF>如輸入為 1,則輸出 0;反之亦然。

▪︎ 布林運算式: X = A '

▪︎ 邏輯圖

NOT gate

▪︎ 真值表

truth table of NOT gate

二、AND閘

AND閘接受多個訊號,產生一個輸出。

<DEF>若輸入全為1,則輸出1,反之,則為0。

▪︎ 布林運算式:X = A・B

▪︎ 邏輯圖

AND gate

▪︎ 真值表

truth table of AND gate

三、OR閘

OR閘接受兩個輸入,產生一個輸出。

<DEF>如兩個輸入全為0,則輸出0,反之,輸出1。

▪︎ 布林運算式:X = A + B

▪︎ 邏輯圖

OR gate

▪︎ 真值表

truth table of OR gate

四、XOR閘

XOR閘,又稱互斥閘。

<DEF>若輸出相同,則輸出0,反之,輸出1。

▪︎ 布林運算式:X = A ⊕ B

▪︎ 邏輯圖

XOR gate

▪︎ 真值表

truth table of XOR gate

五、NAND 與 NOR閘

分別為AND與OR閘的相反

❖NAND閘

▪︎ 布林運算式:X = ( A・B ) '

▪︎ 邏輯圖

NAND gate

▪︎ 真值表

truth table of NAND gate

❖NOR閘

▪︎ 布林運算式: X = ( A + B ) '

▪︎ 邏輯圖

NOR gate

▪︎ 真值表

truth table of NOR gate

4.3 閘的建構

❖電晶體 transistor:是以半導體所製成,依據電壓準位來決定要當導線還是電阻的裝置。

transistor

射極一般是接地的。而對電腦而言,源極產生大約5伏特的高電壓值,基極的電壓值用來判斷源極是否形成接地,若接地,電壓值會被下拉至0,反之,則會維持高電壓。

輸出線會接在源極上,若源極接地,則輸出為低準位(二進制的 0),反之則為高準位(二進制的 1)。

如基極訊號為高準位,則源極接地,此時電晶體為 on,反之,電晶體為off。

some example of transistor

4.4 電路

❖組合電路

藉由某個閘的輸出作為另一個閘的輸入,便可組合成電路。

example of combinational circuit

其中圖中的黑點,表示兩線是相連接的,如果沒有點,代表其中一條線從另一條線的上方跳過,互不影響。

此邏輯圖的布林運算式為:( AB + AC ),也可寫成 A ( B + C ),讀者可自行寫出真值表來確認。此現象稱作電路等效性

事實上,布林運算式滿足幾種數學性質:

  1. 交換律,如:AB = BA、A + B = B + A。
  2. 結合律,如:( AB ) C = A ( BC )、A + ( B + C ) = ( A + B ) + C。
  3. 分配律,如:A ( B + C ) = AB + AC、A + BC = ( A + B ) ( A + C )。
  4. 恆等,如:A1 = A、A + 0 = A。
  5. 互補,如:A ( A ' ) = 0、A + A ' = 1。
  6. 狄摩根定律,如:( AB ) ' = A ' + B '、( A + B ) ' = A ' B '。

❖加法器

二進制數元相加可能會產生進位值,如 1 + 1 = 10,能計算 2 個位元總和並產生進位為元的電路稱作半加器 half adder。

考慮半加器時,可寫出以下真值表:

truth table of half adder

可看出來,總和為 A ⊕ B,進位為 AB,由此觀察,我們可畫出半加器的邏輯圖:

一個半加器並未將可能的進位值併入計算,也就是說,一個半加器在兩個單一數元的相加是沒問題的,但在多重數元時會產生問題。

可以考慮進位輸入的電路稱作全加器 full adder。簡單的想法可以用兩個半加器來製作一個全加器;作法為:在總和輸出前,再加上一個半加器與進位輸入做總和,最後調整進位輸出。

以下為全加器的真值表及邏輯圖:

truth table of a full adder
A full adder

❖多工器 multiplexer

為一種產生單一輸出的電路,輸出等於電路中數個輸入的其中一個。依據一些原始輸入以外的輸入訊號(選擇訊號、選擇控制線)來決定哪條輸入將被輸出。

如:選擇訊號為 S0、S1、S2,輸入為D0~D7,則有以下真值表。

truth table of mux

上述多工器可化成此方塊圖。

a sample of mux

4.5 作為記憶體的電路

數位電路也可以儲存資訊,這些電路形成一個循序電路,電路的輸出可以當成電路的輸入,也就是說,某些電路的存在狀態有些被用來決定此電路的下個狀態;一些記憶體設計如:S-R閂。

▪︎ S-R閂 S-R latch:用來儲存一個單一二進制的數元。

a 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↑

4.7 CPU晶片

--

--