CPU的工作原理,最簡單的元器件構(gòu)成最復(fù)雜的運(yùn)算
[導(dǎo)讀]我們都知道,人類進(jìn)行運(yùn)算的本質(zhì)是查表,并且我們存儲(chǔ)的表是有限的。那么,計(jì)算機(jī)是怎樣進(jìn)行四則運(yùn)算的呢?也是查表嗎?答案肯定不是!今天,我們就來說說CPU是如何計(jì)算11的?,F(xiàn)代計(jì)算機(jī)又叫電子計(jì)算機(jī),肯定是由電路和電子元件來實(shí)現(xiàn)的。我們都知道,一臺(tái)計(jì)算機(jī)的核心就是處理器(CPU),它的...
現(xiàn)代計(jì)算機(jī)又叫電子計(jì)算機(jī),肯定是由電路和電子元件來實(shí)現(xiàn)的。我們都知道,一臺(tái)計(jì)算機(jī)的核心就是處理器(CPU),它的職責(zé)就是運(yùn)算。CPU是一塊超大規(guī)模的集成電路,我們要想弄清楚計(jì)算機(jī)的運(yùn)算機(jī)制,就要了解集成電路是如何具有運(yùn)算能力的,而集成電路是由大量晶體管等電子元件封裝而成的。
所以,探究計(jì)算機(jī)的計(jì)算能力,先要從晶體管的功能入手。
晶體管如何表示0和1
從第一臺(tái)計(jì)算機(jī)到EDVAC,這些計(jì)算機(jī)使用的都是電子管和二極管等元件,利用這些元件的開關(guān)特性實(shí)現(xiàn)二進(jìn)制的計(jì)算。然而電子管元件有許多明顯的缺點(diǎn)。例如,在運(yùn)行時(shí)產(chǎn)生的熱量太多,可靠性較差,運(yùn)算速度不快,價(jià)格昂貴,體積龐大,這些都使計(jì)算機(jī)發(fā)展受到限制。于是,晶體管開始被用來作計(jì)算機(jī)的元件。
晶體管利用電訊號(hào)來控制自身的開合,而且開關(guān)速度可以非??欤瑢?shí)驗(yàn)室中的切換速度可達(dá)100GHz以上。使用了晶體管以后,電子線路的結(jié)構(gòu)大大改觀,進(jìn)入了晶體管為代表的第二代電子計(jì)算機(jī)時(shí)代。
1947年貝爾實(shí)驗(yàn)室的肖克利等人發(fā)明了晶體管,又叫做三極管。下圖是晶體管的電路符號(hào)。需要說明的是,晶體管有很多種類型,每種類型又分為N型和P型,下面圖中的電路符號(hào)就是一個(gè)N型晶體管。
晶體管電路有導(dǎo)通和截止兩種狀態(tài),這兩種狀態(tài)就可以作為“二進(jìn)制”的基礎(chǔ)。從模電角度來說晶體管還有放大狀態(tài),但是我們此處考慮的是晶體管應(yīng)用于數(shù)字電路,只要求它作為開關(guān)電路,即能夠?qū)ê徒刂咕涂梢粤恕?/span>
如上圖所示,當(dāng)b處電壓>e處電壓時(shí),晶體管中c極和e極截止;當(dāng)b處電壓
換句話說,這個(gè)三極管的b極電壓相對e極為低電平時(shí)三極管就會(huì)導(dǎo)通,相對e極為高電平時(shí)三極管就會(huì)截止。從這里可以看出,晶體管的導(dǎo)通與截止這兩種狀態(tài)對外可以使用b極電壓的相對高低來表示,進(jìn)而說明了我們可以使用高電平或者低電平狀態(tài)來表示二進(jìn)制。也就是說b極是一個(gè)輸入量(自變量),可以作為變量存儲(chǔ)兩個(gè)數(shù)值:高電平或低電平;相應(yīng)的輸出值(因變量)就是電路實(shí)際的變化:導(dǎo)通或截止。
就上面這個(gè)N型晶體管而言,高電平截止,低電平導(dǎo)通。假如此時(shí),我們把高電平作為“1”,低電平作為“0”。那么b極輸入1,就會(huì)導(dǎo)致電路截止,如果這個(gè)電路是控制計(jì)算機(jī)開關(guān)機(jī)的,那么就會(huì)把計(jì)算機(jī)關(guān)閉。這就是機(jī)器語言的原理。
實(shí)際用于計(jì)算機(jī)和移動(dòng)設(shè)備上的晶體管大多是MOSFET(金屬-氧化物半導(dǎo)體場效應(yīng)晶體管),它也分為N型和P型,NMOS就是指N型MOSFET,PMOS指的是P型MOSFET。注意,MOS中的柵極Gate可以類比為晶體管中的b極,由它的電壓來控制整個(gè)MOS管的導(dǎo)通和截止?fàn)顟B(tài)。
NMOS電路符號(hào)如下圖:
PMOS電路符號(hào)如下圖:
NMOS在柵極高電平的情況下導(dǎo)通,低電平的情況下截止。所以NMOS的高電平表示“1”,低電平表示“0”;PMOS相反,即低電平為“1”,高電平為“0”。到了這個(gè)時(shí)候,你應(yīng)該明白“1”和“0”只是兩個(gè)電信號(hào),具體來說是兩個(gè)電壓值,這兩個(gè)電壓可以控制電路的通斷。
門電路
一個(gè)MOS只有一個(gè)柵極,即只有一個(gè)輸入;而輸出只是簡單的電路導(dǎo)通、截止功能,不能輸出高低電壓信號(hào),即無法表示“1”或“0”,自然無法完成計(jì)算任務(wù)。此時(shí)就要引入門電路了(提示:電壓、電平、電信號(hào)在本文中是一回事)。
門電路是數(shù)字電路中最基本的邏輯單元。它可以使輸出信號(hào)與輸入信號(hào)之間產(chǎn)生一定的邏輯關(guān)系。門電路是由若干二極管、晶體管和其它電子元件組成的,用以實(shí)現(xiàn)基本邏輯運(yùn)算和復(fù)合邏輯運(yùn)算的單元電路。這里只介紹最基礎(chǔ)的門電路:與門、或門、非門、異或門。
1、與門
與門電路是指只有在一件事情的所有條件都具備時(shí),事情才會(huì)發(fā)生。
下面是由MOS管組成的電路圖。A和B作為輸入,Q作為輸出。
例如A輸入低電平、B輸出高電平,那么Q就會(huì)輸出低電平;轉(zhuǎn)換為二進(jìn)制就是A輸入0、B輸出1,那么Q就會(huì)輸出0,對應(yīng)的C語言運(yùn)算表達(dá)式為0