自從蘋果在iPhone 5s上使用了64位的A7處理器后,手機處理器的位數也就自然而然的成為了人們關注的焦點,那到底64位處理器和32位處理器有什么區別呢?本文將重點介紹一番。
CPU的位是指一次性可處理的數據量是多少,1字節=8位,32位處理器可以一次性處理4個字節的數據量。依次類推,64位處理器可以一次性處理8個字節的數據量,比32位處理器的處理速率加快一倍。
為什么64位會比32位的快,那是因為如果一個機器指令是32位的,那么寄存器是64位就可以一次取兩個指令,也就相當于一個小孩和一個大人搶東西吃,小孩一次只能拿四個,而大人則可以拿8個。
換一種說法,32位跟64位就好比四車道和八車道的區別,只有你堵成晚高峰的北京才能感受得到。你要是四車道都沒開滿,上了八車道也感覺不到區別。一般來說跑計算密集型并且為64位優化過的程序才能感受到區別。
如果說頻率的提升是把一條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方。
64位操作系統跟32位操作系統又有什么區別?
操作系統其實也是程序,64位的操作系統使用的是64位的指令,不能安裝在32位機器上。兩者最大的區別在于:
1、設計初衷不同
64位操作系統的設計初衷是為了滿足需要大量內存和復雜浮點數運算的需求,一般用在科學計算、人工智能、平面設計、視頻處理、3D動畫和游戲數據庫以及各種網絡服務器等領域中。
2、安裝環境不同
64位操作系統只能安裝在64位CPU的機器上,同時需要配合64位的程序才能發揮最佳性能,32位操作系統既可以安裝在32位CPU的機器上,也可以安裝在64位CPU的機器上,但沒啥意義,64位的性能會被大打折扣。
3、尋址能力不同
32位操作系統最多可以尋址2的32次方即4,294,967,296字節,約4GB內存,4GB的內存就現在而言在很多服務端程序上都是不夠用的,而64位操作系統理論上可以尋址2的64次方即18,446,744,073,709,551,616字節超過1億GB內存,但這只是理論上,由于不同架構的CPU設計不同,所以尋址能力也有錯差別。
32位操作系統和64位操作系統下數據類型對應的字節大小也是不同的,正常數據類型對應的字節數應該是CPU位數決定的,但實際上貌似是由編譯器決定的,看下表:
小結
32位處理器的優點唯一值得一提就是它可以與20世紀末和21世紀初開發的所有舊程序兼容。64位處理器可以提升程序的性能,更好的利用64位操作系統的特性。64位的處理器有256TB的虛擬內存,其中128TB分配給了用戶空間,另外128TB分配給了內核空間(不同架構的CPU虛擬內存的設計大小不同,AMD的x86-64架構的CPU只有最低48位才會在地址轉換時被使用,所以總的虛擬地址空間為2的48次方即256TB,這里涉及到多級頁表中的四級頁表,后續程序喵會介紹)。
要實現真正意義上的64位計算,光有64位的處理器是不行的,還必須得有64位的操作系統以及64位的應用軟件才行,三者缺一不可,缺少其中任何一種要素都是無法實現64位計算的。在64位處理器方面,Intel和AMD兩大處理器廠商都發布了多個系列多種規格的64位處理器。
-
芯片
+關注
關注
456文章
50889瀏覽量
424302 -
寄存器
+關注
關注
31文章
5355瀏覽量
120541 -
操作系統
+關注
關注
37文章
6838瀏覽量
123389
發布評論請先 登錄
相關推薦
評論