當前位置: 華文問答 > 數位

為什麽沒有128位元甚至更多位的處理器呢?用不著?還是做不出來?

2013-09-13數位

Belleve說的非常正確, 128位元處理器做的出來, 用不上.

反對匿名使用者的答案, 處理器的套用與變革, 是由市場驅動的, 並不是想象力.

參考現在的處理器效能, 十年之內不會有128位元通用處理器的需求.

第一點, 處理器位寬的增加, 對數據/地址空間是指數級增長. 不需要128bit.

用主流桌面x86處理器舉例, 從32位元到64位元的過度, 主要原因是為了增大尋址空間. 32位元地址匯流排尋址能力固定在了4G, AMD的第一代64位元處理器采用了40位地址匯流排, 尋址空間為1T. 增加8根線, 空間翻倍是256倍. 如果地址匯流排增加32根, 尋址空間會翻倍2^32. 更_本_用_不_上!

實際上, 即使是Intel最新的處理器, 地址匯流排也沒超過48根.

第二點. 處理器位寬增加, 並不會帶來大幅效能提升.

64bit運算為什麽比32bit更有效率?

假設使用者需要算兩個32位元整形數相乘, 對於32位元cpu或64位元cpu, 都需要計算1次.

假設使用者需要算兩個64位元整形數相乘, 對於32位元cpu, 需要計算4次, 對於64位元cpu僅需一次.

對於絕大多數數據, 32位元整形計算足矣, 如果使用者非要用64位元整形數計算, 64位元cpu才有優勢.

如果有使用者非要用128位元整形數計算, 128位元cpu才有優勢, 這種情況我建議他重寫程式碼.

浮點一會再說.

第三點, 很多人證明過了, 64bit比32bit CPU跑分高, 所以128bit CPU更好?

64bit比32bit CPU跑分高是必然的, 因為CPU內部寄存器數量翻倍了. 但是, 寄存器翻倍帶來的效能提升也不過10~15%. 假設某128bit通用CPU比64bit CPU寄存器再多一倍, 也許效能提升僅會再增加3~5%.

這個不難解釋, 一個使用者, 帶一個手機覺得夠用, 帶兩個手機覺得富余, 帶四個手機覺得和帶兩個手機差不多.

第四點, 在某些測試上, 64bit比32bit CPU更慢, 128bit CPU同理.

因為數據寬度變大了, 先說同頻CPU, 假設結構差不多, Cache大小1024bit.

那麽這個Cache可以存32個32bit數, 或者16個64bit數. 對於普通程式來說, 當然前者更快, 因為Cache容數多Miss少. 假設某128bit CPU的Cache仍是1024bit, 那麽它僅能存放8個數據拷貝, 不得不頻繁存取記憶體, 降低效率.

此外, 128bit CPU意味著更寬的內部匯流排, 這一點會制約CPU主頻上限, 不過對諸如Intel這樣的大廠不是大問題.

第五點, 市面上的128bit CPU是怎麽運作.

市面上並沒有128bit的商業通用CPU. 而專用CPU, 或DSP的位寬有可能超過128bit, 但是它們基本不執行桌面作業系統.

樓上兩位知友提到了1999年Sony的CPU

Emotion Engine

, 這可以算是通用CPU了, 但是很遺憾它仍然是64位元的. 知友"韋誠"的回答中提到了它整形數據是64bit, 雖然它支持128bit的load/store, 我相信它也是僅供SIMD使用的, 而且是32bit x 4的格式(註意沒有單個數據超過32bit). 而且, 這款CPU的僅是數據匯流排到了128bit (bus頻寬待考), 地址線我相信仍沒有超過32位元. 要說是128bit CPU還很勉強. 另外, 由於它的主頻低(300MHz), 所以才敢上128bit的數據匯流排. 要知道同期的Pentium4主頻在2.5G以上.

最後一點, 128bit及以上的真正意義是SIMD.

僅在CPU範圍討論. 假設CPU浮點位寬128bit, 那有兩種用法. 1. 數據精度更高. 2. 可以同時存多個低精度數據.

第一項, 數據精度, IEEE 754規範, 浮點數可以到128位元. 一般科學計算64位元就夠了. 普通的x86 CPU也就支持80位, 也沒見科學家反應精度低, 所以, 與計算吞吐量(即Flops)相比, 精度需求本不大.

第二項, SIMD將多個低精度數據打包使用, 這是現代通用CPU的浮點計算單元格式. 這個Intel在1997年的MMX指令集就實作了. 最新的AVX指令集位寬是256bit. 馬上會有512bit的新指令集誕生.

因此, 如果說Sony Emotion Engine是128bit, 那Intel Core就是256bit.

廢話了不少, 結論就是128bit的通用CPU造出來不難, 但用不上, 市場也不需要. 而現有的64bit CPU的浮點部份已經是256bit了, 可以滿足絕大多數科學計算的需求.

謝邀.