處理器運算位數

處理器運算位數

CPU的位寬對CPU性能的影響絕不亞於主頻。位寬是指微處理器一次執行指令的數據頻寬。處理器的定址位寬增長很快,業界已使用過4、8、16位定址再到目前主流的32位,而64位定址浮點運算已經逐步成為CPU的主流產品。

基本介紹

  • 中文名:處理器運算位數
  • 外文名:Processor numbers
  • 對象:CPU
  • 主流:64位
32位處理器的缺陷,64位處理器的優勢,64位處理器的缺點,

32位處理器的缺陷

受虛擬和實際記憶體尺寸的限制,目前主流的32位CPU在性能執行模式方面存在一個嚴重的缺陷:當面臨大量的數據流時,32位的暫存器(註:為了處理數據,暫時儲存結果,或者做間接定址等等動作,每個處理器都具備一些內建的記憶體,這些能夠在不延遲的狀態下存取的記憶體就稱為“暫存器”,每個暫存器的大小都相同)和指令集不能及時進行相應的處理運算。

64位處理器的優勢

32位CPU一次只能處理32位,也就是4個位元組的數據;而64位CPU一次就能處理64位即8個位元組的數據。如果我們將總長128位的指令分別按照16位、32位、64位為單位進行編輯的話:舊的16位CPU(如Intel 80286 CPU)需要8個指令,32位的CPU需要4個指令,而64位CPU則只要兩個指令。顯然,在工作頻率相同的情況下,64位CPU的處理速度比16位、32位的更快.
可以比較一下圖中的32位與64位CPU,64位的代碼流的數量沒有改變,其寬度隨著指令代碼的寬度而變化;而數據流的寬度則增加了一倍。雖然理論上在一個時鐘周期內64位系統處理的數據量是32位系統的兩倍,但理論和現實通常都是有差距的。
要注意的是,CPU不只需要位寬夠寬的暫存器,也需要足夠數量的暫存器,以確保大量數據處理。因此為了容納更多的數據,暫存器和內部數據通道也必須加倍,因此在64位CPU中的暫存器位數一般是32位CPU中的兩倍。
不過,雖然暫存器位數增加了,但正在執行指令的指令暫存器卻都是一樣的,即數據流加倍而指令流不變。此外,增加數據位數還可以擴大動態範圍。在通常使用的十進制中,只能得到最多10個整數(一位數情況下),這是因為0~9中只有10個不同的符號來表示相應的意思,想要表示10以上的數就需要增加一位數,兩位數(00-99)才可以表示100個數。
可以得出十進制的動態範圍的計算公式:DR=10^n (n表示數字位數)。在二進制體系中,相應的我們可以得到公式:DR=2^n,那么32位就可以達到2^32=4.3×109,升級到64位之後,就可以達到2^64=1.8×1019。動態範圍擴大了43億倍。
提示:擴大動態範圍可以在一定程度上提高暫存器中數據的準確性。比如,當使用32位系統處理氣象模擬運算任務時,當處理的數據超過32位所能提供的最大動態範圍時,系統就會出現諸如Overflow(超過了最大正整數)或Underflow(低於最小的負整數)的錯誤提示,這樣暫存器中的數據就無法保證準確。
除了運算能力之外,與32位CPU相比,64位CPU的優勢還體現在系統對記憶體的控制上。由於地址使用的是特殊的整數,而64位CPU的一個ALU(算術邏輯運算器)和暫存器可以處理更大的整數,也就是更大的地址。
傳統32位CPU的定址空間最大為4GB,使得很多需要大容量記憶體的大規模的數據處理程式在這時都會顯得捉襟見肘,形成了運行效率的瓶頸。而64位的處理器在理論上則可以達到1800萬個TB(1TB=1024GB),將能夠徹底解決32位計算系統所遇到的瓶頸現象。

64位處理器的缺點

當然64位定址空間也有一定的缺點:記憶體地址值隨著位數的增加而變為原來的兩倍,這樣記憶體地址將在快取中占用更多的空間,其他有用的數據就無法載入快取,從而引起了整體性能一定程度的下降。

相關詞條

熱門詞條

聯絡我們