自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

理論實踐完美結(jié)合 制作4位計算機圖解

運維 服務器運維
Waitingforfriday有一篇詳細的教程,講解了如何自己動手,制作一臺四位計算機。從中可以看到,二進制、數(shù)理邏輯、電子學怎樣融合在一起,構(gòu)成了現(xiàn)代計算機的基礎(chǔ)。

你是否想過,計算機為什么會加減乘除?或者更直接一點,計算機的原理到底是什么?

Waitingforfriday有一篇詳細的教程,講解了如何自己動手,制作一臺四位計算機。從中可以看到,二進制、數(shù)理邏輯、電子學怎樣融合在一起,構(gòu)成了現(xiàn)代計算機的基礎(chǔ)。

一、什么是二進制?

首先,從最簡單的講起。

計算機內(nèi)部采用二進制,每一個數(shù)位只有兩種可能"0"和"1",運算規(guī)則是"逢二進一"。舉例來說,有兩個位A和B,它們相加的結(jié)果只可能有四種。

這張表就叫做"真值表"(truth table),其中的sum表示"和位",carry表示"進位"。如果A和B都是0,和就是0,因此"和位"和"進位"都是0;如果A和B有一個為1,另一個為0,和就是1,不需要進位;如果A和B都是1,和就是10,因此"和位"為0,"進位"為1。

#p#

二、邏輯門(Logic Gate)

布爾運算(Boolean operation)的規(guī)則,可以套用在二進制加法上。布爾運算有三個基本運算符:AND,OR,NOT,又稱"與門"、"或門"、"非門",合稱"邏輯門"。它們的運算規(guī)則是:

AND:如果( A=1 AND B=1 ),則輸出結(jié)果為1。

OR:如果( A=1 OR B=1 ),則輸出結(jié)果為1。

NOT:如果( A=1 ),則輸出結(jié)果為0。

兩個輸入(A和B)都為1,AND(與門)就輸出1;只要有任意一個輸入(A或B)為1,OR(或門)就輸出1;NOT(非門)的作用,則是輸出一個輸入值的相反值。它們的圖形表示如下:

#p#

三、真值表的邏輯門表示

現(xiàn)在把"真值表"的運算規(guī)則,改寫為邏輯門的形式。

先看sum(和位),我們需要的是這樣一種邏輯:當兩個輸入不相同時,輸出為1,因此運算符應該是OR;當兩個輸入相同時,輸出為0,這可以用兩組AND和NOT的組合實現(xiàn)。最后的邏輯組合圖如下:

再看carry(進位)。它比較簡單,兩個輸入A和B都為1就輸出1,否則就輸出0,因此用一個AND運算符就行了。

現(xiàn)在把sum和carry組合起來,就能得到整張真值表了。這被稱為"半加器"(half-adder),因為它只考慮了單獨兩個位的相加,沒有考慮可能還存在低位進上來的位。

#p#

四、擴展的真值表和全加器

如果把低位進上來的位,當做第三個輸入(input),也就是說,除了兩個輸入值A(chǔ)和B以外,還存在一個輸入(input)的carry,那么問題就變成了如何在三個輸入的情況下,得到輸出(output)的sum(和位)和carry(進位)。

這時,真值表被擴展成下面的形式:

如果你理解了半加器的設(shè)計思路,就不難把它擴展到新的真值表,這就是"全加器"(full-adder)了。

#p#

五、全加器的串聯(lián)

多個全加器串聯(lián)起來,就能進行二進制的多位運算了。

先把全加器簡寫成方塊形式,注明三個輸入(A、B、Cin)和兩個輸出(S和Cout)。

然后,將四個全加器串聯(lián)起來,就得到了四位加法器的邏輯圖。

#p#

六、邏輯門的晶體管實現(xiàn)

下一步,就是用晶體管做出邏輯門的電路。

先看NOT。晶體管的基極(Base)作為輸入,集電極(collector)作為輸出,發(fā)射極(emitter)接地。當輸入為1(高電平),電流流向發(fā)射極,因此輸出為0;當輸入為0(低電平),電流從集電極流出,因此輸出為1。

接著是AND。這需要兩個晶體管,只有當兩個基極的輸入都為1(高電平),電流才會流向輸出端,得到1。

最后是OR。這也需要兩個晶體管,只要兩個基極中有一個為1(高電平),電流就會流向輸出端,得到1。

#p#

七、全加器的電路

將三種邏輯門的晶體管實現(xiàn),代入全加器的設(shè)計圖,就可以畫出電路圖了。

按照電路圖,用晶體管和電路板組裝出全加器的集成電路。

左邊的三根黃線,分別代表三個輸入A、B、Cin;右邊的兩根綠線,分別代表輸出S和Cout。

#p#

八、制作計算機

將四塊全加器的電路串聯(lián)起來,就是一臺貨真價實的四位晶體管計算機了,可以計算0000~1111之間的加法。

電路板的下方有兩組各四個開關(guān),標注著"A"和"B",代表兩個輸入數(shù)。從上圖可以看到,A組開關(guān)是"上下上上",代表1011(11);B組開關(guān)是"上下下下",代表1000(8)。它們的相加結(jié)果用五個LED燈表示,上圖中是"亮暗暗亮亮",代表10011(19),正是1011與1000的和。

結(jié)論

雖然這個四位計算機非常簡陋,但是從中不難體會到現(xiàn)代計算機的原理。

完成上面的四位加法,需要用到88個晶體管。雖然當代處理器包含的晶體管數(shù)以億計,但是本質(zhì)上都是上面這樣簡單電路的累加。

責任編輯:景琦 來源: 阮一峰blog
相關(guān)推薦

2014-11-25 15:36:47

雙主機計算機ITM

2012-09-05 10:25:05

超級計算機500強

2021-02-04 11:01:59

計算機信號轉(zhuǎn)換

2021-01-22 05:44:24

數(shù)據(jù)底層架構(gòu)

2022-05-23 10:02:22

加密系統(tǒng)計算機

2009-10-30 11:24:31

2010-04-05 17:04:22

約翰·馮·諾依曼生平

2012-10-29 09:21:00

計算機分析引擎蒸汽式

2010-11-17 10:22:37

TOP10超級計算機

2019-09-19 09:30:53

量子計算機芯片超算

2020-12-24 13:44:14

計算機互聯(lián)網(wǎng) 技術(shù)

2012-03-31 09:59:22

2010-01-18 15:49:28

個人超級計算機

2009-08-12 17:08:06

C#遠程計算機

2021-02-26 05:17:38

計算機網(wǎng)絡(luò)二進制

2021-02-20 20:55:06

USB接口總線

2021-01-27 14:18:17

量子計算傳統(tǒng)計算量子機器

2014-04-10 09:40:51

System 360計算機計算機系統(tǒng)

2011-12-08 12:04:30

2012-06-20 10:40:36

量子計算機
點贊
收藏

51CTO技術(shù)棧公眾號