search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

【64位和32位晶元有什麼區別?】

轉自:玩轉單片機

據記載,CPU的位是指一次性可處理的數據量是多少,1位元組=8位,32位處理器可以一次性處理4個位元組的數據量。依次類推,64位處理器可以一次性處理8個位元組的數據量,比32位處理器的處理速率加快一倍。

自從蘋果在iPhone5s上使用了64位的A7處理器后,手機處理器的位數也就自然而然的成為了人們關注的焦點,那到底64位處理器和32位處理器有什麼區別呢?

其實手機處理器和PC處理器對於位數的概念是相同的,這裡我就用PC的處理器來說明了。對CPU有些了解的人大概都知道Pentium3和Pentium4,了解更深的,還會知道是i386處理器在20幾年前把處理器從16位帶入32位時代。

處理器經過了近30多年的考驗后,到現在已經躍升到64位,這可不同1GHz到3GHz的頻率提升。如果說頻率的提升是把一條4車道高速公路的時速限制從120公里提升到了360公里的話,那麼從32位到64位的提升就是將這條提升了3倍時速限制的高速公路從4車道拓寬到了8車道,也就是說,這條公路的運力提升了一倍,這可是質的飛躍。

其實,計算機內部表示的數值是有範圍的,決定性因素在於CPU的寄存器。它是計算機處理數值的最小單元,如果寄存器是32位的,那麼他所能表示的數的範圍最大是2的32次方,即表示的範圍是32個0到32個1,(這裡不計較原碼還是補碼或是移碼),如果寄存器是64位的話,顯而易見,表示的範圍是64個0到64個。

數的表示範圍大了,那麼其計算的精確度就提高了。當然這要操作系統的支持才行,就像有輛跑車能跑300公里每小時,但是駕駛員只會開低檔,好的資源被浪費了。

另外,相信大家都知道32位系統只能識別4g內存而64位系統可以識別4g以上內存。那是因為內存是由很多小的單元組成,為了能取得內存裡面的數據,需要給把每個單元編號,就像家庭住址一樣。而作為內存的單元編號是有專門的寄存器存儲(專業名詞是mar)的,32位系統可以表示的最大地址是2的32次方,一般來說一個單元是8位的,也就是一個位元組。合起來就是4g的存儲空間,同樣的64位系統可以表示的單元地址的總數是2的64方。

現在又有一個問題產生了,那就是為什麼我的電腦是4g內存,而計算機卻顯示3.xxG。其實由於其他的存儲設備也需要空間地址,所以一部分地址被分給其他的存儲設備了,那麼給內存的地址就減少了,識別的內存自然就小於4g。這跟硬碟是不一樣的,硬碟實際容量少於標定容量是由於方便工業生產,廠家的標準是1GB=1000MB而科學標準是1GB=1024MB。

至於為什麼64位會比32位的快,那是因為如果一個機器指令是32位的,那麼寄存器是64位就可以一次取兩個指令,也就相當於一個小孩和一個大人搶東西吃,小孩一次只能拿四個,而大人則可以拿8個。

因此iPhone5s的運行與此相似,它從內存獲得數據,一個時鐘周期內32位只能處理32位的數據,64位就可以取得64位的數據,如此一來速度、性能、效率就提高了。而現在最主要的問題就是加快對64位軟體的開發,這樣才能發揮出64位處理器的最大效能。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦