想必大家都遇到過這樣的問題:安裝某個軟件的時候,出現(xiàn)提示選擇32位版本還是64位版本?
我們也可以查看自己的電腦是32位還是64位系統(tǒng):
大家可能知道32位和64位和系統(tǒng)有關(guān),但其實 32 vs 64 可以有多重含義。
一般情況下,有以下幾種可能: PU 、 程序 、 操作系統(tǒng) 。
今天我來給大家一一介紹下:
首先,我們要先從什么是位數(shù)講起。
計算機中的位數(shù)指的是CPU一次能處理的最大位數(shù)。在Intel由16位的286升級到386的時候,為了和16位系統(tǒng)兼容,它先推出的是386SX,這種CPU內(nèi)部預(yù)算為32位,外部數(shù)據(jù)傳輸為16位。直到386DX以后,所有的CPU在內(nèi)部和外部都是32位的了。
有些人往往會弄不清在計算機中出現(xiàn)的“位”和Byte,KB,MB等有何關(guān)系,8位等于一字節(jié)Byte,即8bit=1B。32位處理器每次最多處理4Byte(32bit),同理,64位處理器每次最多處理 8Byte(64bit) 。
32位架構(gòu)的CPU數(shù)據(jù)總線寬度是32位,每次可以傳輸32位數(shù)據(jù),可以計算4個字節(jié)。
64位架構(gòu)的CPU數(shù)據(jù)總線寬度是64位,每次可以傳輸64位數(shù)據(jù),可以計算8個字節(jié)。
數(shù)據(jù)總線
數(shù)據(jù)總線是CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳輸?shù)耐ǖ?,?shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳輸速度,每根線可以傳輸1位二進(jìn)制數(shù)據(jù),32根線每次就可以傳輸32位數(shù)據(jù),64根線每次就可以傳輸64位數(shù)據(jù)。除了數(shù)據(jù)總線外還有地址總線和控制總線。
地址總線
CPU通過地址總線來指定存儲單元,地址總線的寬度決定了CPU所能訪問的最大內(nèi)存空間大小,1根地址線能訪問的內(nèi)存空間是1bit,32根線訪問的最大內(nèi)存空間是4G,64根線。..太大了。
控制總線
CPU通過控制總線對外部器件進(jìn)行控制,主要通過控制總線來傳輸控制信號和時序信號,控制總線是各種信號線的集合,是計算機各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道,控制總線的寬度決定了CPU對外部器件的控制能力。
總體來說 ,CPU作為總線的主控,通過控制總線向各個外部器件發(fā)送控制信號,通過地址總線訪問內(nèi)存地址,通過數(shù)據(jù)總線傳輸數(shù)據(jù)。
CPU的位數(shù)越大,可以計算的數(shù)值就越大,64位CPU可以執(zhí)行更大數(shù)字的運算,但這個優(yōu)勢在普通應(yīng)用上不太明顯,普通應(yīng)用也沒必要進(jìn)行太大數(shù)字的運算,但是對于數(shù)值計算較多的應(yīng)用就非常明顯。同時64位CPU有更大的尋址空間。
運算速度不同:64位CPU的通用寄存器數(shù)據(jù)寬度是64位,處理器依次可以讀取64位數(shù)據(jù),比32位多一倍,運算速度理論上會提升一倍。像兩個不同的打工人一樣,打工人A一次性可以搬32塊磚,打工人B一次性可以搬64塊磚,誰搬磚的速度快,自然你更喜歡用誰。由于運算速度提升,64位CPU可以在多任務(wù)中運行順暢,來回切換也不會卡頓,王者榮耀都順暢多了。
那么有朋友要問了,既然位數(shù)越高處理器運算速度越快,為什么不用128位、256位的CPU?因為位數(shù)越高,處理器芯片的設(shè)計也就越復(fù)雜,當(dāng)前的科技水平還無法制造這么復(fù)雜的CPU。
程序
指的是32位程序和64位程序。
32位指令的程序一般來說可以在64位機器上運行,可以兼容。
64位指令的程序不可以在32位機器上運行,因為32位的寄存器存不下64位的指令。
注意其實還有16位的程序,但16位的程序不能運行在64位的機器上,因為沒有提供兼容機制。
操作系統(tǒng)
操作系統(tǒng)其實也是程序,64位的操作系統(tǒng)使用的是64位的指令,不能安裝在32位機器上。
設(shè)計初衷不同
64位操作系統(tǒng)的設(shè)計初衷是為了滿足需要大量內(nèi)存和復(fù)雜浮點數(shù)運算的需求,一般用在科學(xué)計算、人工智能、平面設(shè)計、視頻處理、3D動畫和游戲數(shù)據(jù)庫以及各種網(wǎng)絡(luò)服務(wù)器等領(lǐng)域中。
安裝環(huán)境不同
64位操作系統(tǒng)只能安裝在64位CPU的機器上,同時需要配合64位的程序才能發(fā)揮最佳性能,32位操作系統(tǒng)既可以安裝在32位CPU的機器上,也可以安裝在64位CPU的機器上,但沒啥意義,64位的性能會被大打折扣。
尋址能力不同
32位操作系統(tǒng)最多可以尋址2的32次方即4,294,967,296字節(jié),約4GB內(nèi)存,4GB的內(nèi)存就現(xiàn)在而言在很多服務(wù)端程序上都是不夠用的,而64位操作系統(tǒng)理論上可以尋址2的64次方即18,446,744,073,709,551,616字節(jié)超過1億GB內(nèi)存,但這只是理論上,由于不同架構(gòu)的CPU設(shè)計不同,所以尋址能力也有錯差別。
32位操作系統(tǒng)和64位操作系統(tǒng)下數(shù)據(jù)類型對應(yīng)的字節(jié)大小也是不同的,正常數(shù)據(jù)類型對應(yīng)的字節(jié)數(shù)應(yīng)該是CPU位數(shù)決定的,但實際上貌似是由編譯器決定的,看下表:
32位操作系統(tǒng) 64位操作系統(tǒng)
char 1個字節(jié) 1個字節(jié)
short int 2個字節(jié) 2個字節(jié)
int 4個字節(jié) 4個字節(jié)
unsigned int 4個字節(jié) 4個字節(jié)
float 4個字節(jié) 4個字節(jié)
double 8個字節(jié) 8個字節(jié)
long(指針大?。?4個字節(jié) 8個字節(jié)
long long 8個字節(jié) 8個字節(jié)
unsigned long 4個字節(jié) 8個字節(jié)
20世紀(jì)和21世紀(jì)早期制造的計算機大多都是32位的機器,現(xiàn)如今大多都是64位的機器了,但為了兼容32位機器,一般編程都會開發(fā)出兩個版本,例如打包一個Android SDK,SDK內(nèi)部一般都會包含32位和64位的動態(tài)鏈接庫,iOS的Framework內(nèi)部也會有32位和64位的靜態(tài)鏈接庫。
總結(jié)
32位處理器的優(yōu)點唯一值得一提就是它可以與20世紀(jì)末和21世紀(jì)初開發(fā)的所有舊程序兼容。64位處理器可以提升程序的性能,更好的利用64位操作系統(tǒng)的特性。64位的處理器有256TB的虛擬內(nèi)存,其中128TB分配給了用戶空間,另外128TB分配給了內(nèi)核空間(不同架構(gòu)的CPU虛擬內(nèi)存的設(shè)計大小不同,AMD的x86-64架構(gòu)的CPU只有最低48位才會在地址轉(zhuǎn)換時被使用,所以總的虛擬地址空間為2的48次方即256TB,這里涉及到多級頁表中的四級頁表,后續(xù)程序喵會介紹)。
要實現(xiàn)真正意義上的64位計算,光有64位的處理器是不行的,還必須得有64位的操作系統(tǒng)以及64位的應(yīng)用軟件才行,三者缺一不可,缺少其中任何一種要素都是無法實現(xiàn)64位計算的。在64位處理器方面,Intel和AMD兩大處理器廠商都發(fā)布了多個系列多種規(guī)格的64位處理器;
責(zé)任編輯:haq
-
cpu
+關(guān)注
關(guān)注
68文章
10851瀏覽量
211542 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6799瀏覽量
123279
發(fā)布評論請先 登錄
相關(guān)推薦
評論