組成電腦的基礎元件-- 邏輯閘

文章推薦指數: 80 %
投票人數:10人

基本邏輯閘(Logic Gate). 反閘(NOT) 的圖示與功能如下,其輸入輸出都只有一條,當輸入0 的時候就輸出1, ... 少年科技人雜誌--2014年12月號(開放公益出版品) 組成電腦的基礎元件--邏輯閘 組成電腦的基礎元件--邏輯閘 在[上期的少年科技人雜誌]當中,我們探討了「電腦的歷史、工業與結構」這個議題,並且在透視電腦的內部結構這篇文章中看到了電腦的基本組成元件,那就是邏輯閘。

在接下來的幾期當中,我們將逐步的從邏輯閘開始,解說「電腦是如何用邏輯閘所組成的」這個問題。

組成電腦的基本邏輯閘包含AND、OR、NOT、XOR等四種,其中AND、OR、NOT三種就可以組成所有電路,包含XOR,但是加上XOR時會比較方便,因為在有些電路上用XOR可以大量減少邏輯閘的數量。

基本邏輯閘(LogicGate) 反閘(NOT)的圖示與功能如下,其輸入輸出都只有一條,當輸入0的時候就輸出1,而輸入1的時候就輸出0。

圖、反閘(NOT) 及閘(AND)的圖示與功能如下,其輸入有兩條,輸出只有一條,當輸入11的時候才會就輸出1,其他三種情況則一律輸出0。

圖、及閘(AND) 換言之、AND是在AB兩者都為1的時候才會輸出1,這和邏輯學上的「且」(AND)相同,當我們說「他高且帥」的時候,代表他同時具有「高」和「帥」兩個特性。

或閘(OR)的圖示與功能如下,其輸入有兩條,輸出只有一條,當輸入00的時候才會就輸出0,其他三種情況則一律輸出1。

圖、或閘(OR) 換句話說、只要AB兩者當中有一個為1,那麼輸出就會是1,這和邏輯學上的「或」(OR)相同,當我們說「高或帥」的時候,代表他只要具備「高」或「帥」其中一個特性就滿足了條件。

互斥或閘(XOR)的圖示與功能如下,其輸入有兩條,輸出只有一條,當兩條不一樣的時候就輸出1,兩者一樣的時候則會輸出0。

圖、互斥或閘(XOR) 有了上述邏輯閘之後,我們就可以用這樣的閘來組成電腦當中最核心的一個運算,那就是加法了。

但是、要理解如何用邏輯閘組成加法運算之前,我們必須先了解二進位這個概念。

半加器與全加器 將兩個輸入相加的電路,稱為「半加器」(halfadder),而將三個輸入相加的電路,則稱為「全加器」(fulladder)。

圖、半加器 半加器的電路如上圖所示,而其輸入輸出的真值表如下所示: A+B→S,進位C 0+0→00 0+1→10 1+0→10 1+1→0,1(因為1+1=2=0+(1×2)) 上述的輸出S只有在A,B兩者不同的時候才會是1,這完全符合XOR電路的行為模式,因此我們可以用一個XOR電路輕易地完成S的輸出動作。

而C則是在A,B兩者均為1的情況下才會是1,否則就會是0。

這與AND閘的真值表完全一致,因此我們只要用一個AND閘就可以做到C的功能了。

但是、雖然我們想做的事情是兩組二進位數字的加法,但是由於相加之後可能會產生進位,因此必須要考慮到三個位元相加的情況,這時就需要將半加器進一步擴充為全加器,以便進行三位元相加的運算。

以下是全加器的電路圖與真值表,其中的輸出S只要用兩個XOR閘就能做到,因為S只有在奇數個1的時候才會輸出1,偶數個1的時候就會輸出0,這種組合完全符合n輸入的XOR閘之行為。

圖、全加器的電路與真值表 但是對於輸出C而言,則需要兩個AND閘和一個OR閘連接之後才能達成,您可以根據上面的AND,OR之真值表定義,驗證一下該電路的輸出是否真的符合上圖真值表的要求,這會是一個很好的練習。

在此、我們直接提出了全加器的電路圖,而沒有展示這個電路的「設計過程」,因為這種設計過程牽涉到一種稱為「卡諾圖」的電路化簡工具, 維基百科:卡諾圖 Wikipedia:Karnaugh_map 二進位加法電路 有了上述的全加器電路之後,我們就可以任意地進行三個位元的加法,於是只要我們將這些全加器一個接一個的串起來,並將進位輸出到下一個全加器當中,就可以任意地做出n位元的加法器電路了,以下是一個四位元加法器的圖示。

圖、四位元加法器 當您能做出n位元加法器時,應該就可以理解為何電腦的基本組成會是「邏輯閘」了,因為我們可以輕易地串接出32位元的加法器,當然也可以用類似的原理做出「減法器、乘法器、除法器」,然後做出整顆「中央處理器」(CPU),甚至是整台電腦的數位電路了。

參考文獻 維基百科:邏輯閘 維基百科:加法器 少年科技人雜誌,採用創作共用:姓名標示、相同方式分享授權,歡迎加入雜誌社團



請為這篇文章評分?