單片機(jī)的8位或32位說(shuō)的是什么呢?
要搞懂這個(gè)問(wèn)題,首先要搞明白8位或32位說(shuō)的是單片機(jī)的哪一個(gè)部件。
這是單片機(jī)的內(nèi)部框圖,你看單片機(jī)內(nèi)部有這么多部件構(gòu)成,并不單單是一個(gè)CPU,它內(nèi)部還集成了很多其它部件。
我們平時(shí)所說(shuō)的這個(gè)單片機(jī)是多少位的,說(shuō)的是這個(gè)單片機(jī)的CPU是多少位的,而和其它的部件無(wú)關(guān)。
而CPU也是由很多部件構(gòu)成的,真正決定這個(gè)單片機(jī)或者處理器是多少位的,其實(shí)取決于ALU,ALU是Arithmetic logic unit的首字母縮寫(xiě),即邏輯運(yùn)算單元。
CPU是單片機(jī)的核心,而ALU是CPU的核心。
CPU所有的運(yùn)算靠的都是ALU,它專(zhuān)門(mén)執(zhí)行算術(shù)和邏輯運(yùn)算,例如加減乘除運(yùn)算、與或非。
我們所說(shuō)的這個(gè)單片機(jī)是多少位的,其實(shí)說(shuō)的是的ALU的位數(shù),8位單片機(jī)的ALU是8位的。
A、B是它的數(shù)據(jù)輸入,Y是輸出
8位的ALU一次性最多可以處理8位數(shù)據(jù)。
比如計(jì)算兩個(gè)8位二進(jìn)制相加,
只需要給A和B輸入兩個(gè)8位二進(jìn)制數(shù),它的輸出端就能計(jì)算這兩個(gè)8位二進(jìn)制相加的和。
而32位單片機(jī)的ALU是32位的,一次可以計(jì)算兩個(gè)32位二級(jí)制數(shù)相加。
那8位機(jī)可以進(jìn)行16位或者32位的計(jì)算嗎?
這也是可以的,但是相對(duì)麻煩一些,比如當(dāng)我們對(duì)8位單片機(jī)編程時(shí),所定義的int型數(shù)據(jù)就是16位的,那么8位機(jī)就需要把這個(gè)16位數(shù)分成兩個(gè)字節(jié),分別計(jì)算。
計(jì)算32位數(shù)據(jù)也一樣,在8位機(jī)當(dāng)中,我們定義的long int整型數(shù)據(jù)其實(shí)是32位的,這樣8位單片機(jī)就得把32位數(shù)據(jù)分成4個(gè)字節(jié)來(lái)分別計(jì)算。
如果是32位單片機(jī),則它的ALU是32位的,計(jì)算32位數(shù)據(jù)只需要一次運(yùn)算就完事了。
這就是32位單片機(jī)的優(yōu)勢(shì)所在。
而對(duì)于計(jì)算8位數(shù)據(jù),8位或者32位單片機(jī)在速度上幾乎差不多。
ALU和其它部件的數(shù)據(jù)傳輸靠的是數(shù)據(jù)總線,所以我們一般的說(shuō)法是,8位單片機(jī)中的8位指的是數(shù)據(jù)總線的位寬是8位。
但其本質(zhì)上還是它的ALU一次性最多能處理多少位數(shù)據(jù)。
數(shù)據(jù)總線是傳輸數(shù)據(jù)的,比如數(shù)據(jù)總線傳輸?shù)氖?101 0000,那么RAM的某一個(gè)字節(jié)就會(huì)存儲(chǔ)0101 0000,但是RAM存儲(chǔ)器有很多個(gè)字節(jié),我們?cè)趺创_定要給哪一個(gè)字節(jié)存儲(chǔ)數(shù)據(jù)呢?
這就得靠地址總線了,它可以指定給RAM存儲(chǔ)器的哪一個(gè)字節(jié)存儲(chǔ)數(shù)據(jù)。
在RAM存儲(chǔ)器的最開(kāi)始有一個(gè)地址譯碼器的部件。
這是一個(gè)兩位譯碼器,它有兩個(gè)輸入,四個(gè)輸出。
如果我們給它輸入00,它的第一根線輸出1(高電平),此時(shí)只有第一個(gè)RAM字節(jié)可以被數(shù)據(jù)總線寫(xiě)入;
而給它輸入10,它的第二根線輸出1(高電平),指向第二個(gè)RAM字節(jié)。
以此類(lèi)推,它可以單獨(dú)控制每一根線的輸出1。
它一共有4種不同的輸入,則每一個(gè)不同的輸入,對(duì)應(yīng)一個(gè)輸出線是高電平。
在最開(kāi)始,8位單片機(jī)的地址總線是8位的,對(duì)應(yīng)的RAM存儲(chǔ)器的地址譯碼器也是8位的。
則它最多可以尋址到256個(gè)字節(jié),即這種單片機(jī)的RAM值最大可拓展到256字節(jié)。
后來(lái)256字節(jié)不夠用了,人們把8位機(jī)的地址總線拓展到了16位,則此時(shí)它可以尋址到的65536個(gè)字節(jié),也就是64KB的RAM空間,雖然地址總線是16位的,但是數(shù)據(jù)總線是8位的,所以它還是8位單片機(jī)。
隨著技術(shù)的發(fā)展,64KB的內(nèi)存逐漸滿(mǎn)足不了人們的需要。
所以32位CPU就顯現(xiàn)出它的優(yōu)勢(shì)來(lái)了,它不僅有32位的數(shù)據(jù)總線,地址總線也拓展到了32位。
這樣它可以尋址的內(nèi)存空間就達(dá)到了42億多字節(jié)、即4GB,在嵌入式領(lǐng)域幾乎用不到4GB的內(nèi)存空間。
雖然在嵌入式領(lǐng)域用不到這么多內(nèi)存,但是在電腦端,CPU對(duì)RAM要求卻很高,比如32位的電腦處理器,4GB早已不能滿(mǎn)足人們的需求,后來(lái)的故事我們也都知道了,32位處理器也慢慢被淘汰了,64位處理器開(kāi)始大行其道。
好了這就是我對(duì)8位單片機(jī)和32位單片機(jī)的理解,希望對(duì)你有幫助。
審核編輯:湯梓紅
評(píng)論