為什麼沒有「128位」的通用處理器

2022-09-17 06:06:14 字數 1584 閱讀 8717

在專用領域,比如dsp,gpu中,通用暫存器通常都很寬,也就是說大於通常的32位或者64位。其原因在於,這些針對特定領域設計的處理器,其硬體架構是為問題服務的,舉例來說,gpu處理顏色的時候,乙個畫素argb是四個32位或者16位的浮點數,所以暫存器有128位或者64位寬也就不足為奇了。

那麼我們為什麼沒有見到,或者說市場上為什麼沒有「128位」的通用處理器呢?這有很多計算機體系結構的原因在裡面,容我一一說來:

首先,我們得定義這個「128位」是什麼。以傳統的power、x86和x64來說,處理器的位數是用通用暫存器的寬度來定義的,即32位處理器的通用暫存器是32位,64位處理器的暫存器是64位,那麼如果我們有了128位處理器,也應該一樣。但是,這麼做有必要麼?常規的整數運算是用不到這麼大的暫存器的,真正的大數運算也不會用這種方法來實現。而在現代的32位、64位處理器中,更重要的浮點運算所使用的浮點暫存器早已經是128位甚至256位了。所以128位通用暫存器在這裡沒什麼意義。

那麼就有人說,我們需要128位的定址能力。好吧,64位的定址能力是2^64位元組,大約是1.84467441 × 1019 位元組,如果你對這個科學計數法表示的數字沒什麼感覺,我用另外一種寫法:18.45 eb 也就是大約18200000 tb,如果說這個不夠用,那你需要的不是人類目前的矽晶元計算機,你需要求助於e.t.。

使用大位址空間有幾個額外的問題,尤其是對risc處理器來說,會帶來致命的效能問題。很多使用者,尤其是初級的計算機使用者,並不知道risc這四個字母下隱藏的計算機哲學,或者說藝術:所有的op code都是定長。以power為例,訪問32位的常量位址,需要分兩次計算16位的位址,因為op code中只有16bits來存放這樣的資料,64位則需要四個op存放。而在cisc處理器中,位址可以直接編碼在指令裡,導致指令明顯變長,比如32位的跳轉通常是5個位元組,而64位下面甚至需要15個位元組。這只是問題的開始:隨著使用的op的增多,對cpu匯流排和cache的壓力也越來越大,原本乙個時鐘週期能fetch兩條指令,現在可能一條都取不到;原本可以存放兩條、四條指令的cache空間,現在只能存放一條指令。

另乙個原因是程式中的資料結構。學過電腦科學初級內容的人都知道,現代資料結構中最最最最最基本的要素是:指標。大多數關鍵的資料結構都離不開指標:鍊錶、樹……,對於程式來說,從32位編譯成64位會大幅增加執行時的記憶體消耗,道理很簡單,指標本身變長了,儲存指標自身需要的空間增加了。變成128位是什麼樣呢?可想而知。同樣訪問記憶體中的資料需要更多的時間,因為資料本身變大了,假設乙個結構體裡面有兩個指標,32位下編譯出來需要8個位元組,64位就需要16個位元組(假設4位元組對齊)。同理,cache面臨更大的壓力。

上面是軟體上的,或者說是理論上的,那麼我們來看看硬體上的問題。既設我們需要製造「128位」的通用處理器,有128位的位址匯流排,128位甚至256位的資料匯流排,那麼什麼樣的封裝能滿足要求呢?在現代處理器3~~4g的這個工作頻率上,安排這麼大量的匯流排連線,那麼保守估計需要1500~~2500個針腳的封裝才能穩定工作(需要大量的供電和接地針腳來瓶很電流和改善訊號質量),而且這麼高密度的,還有大電流,估計要12~~24層佈線,設計生產這樣的一塊pcb本身就是挑戰電子製造業,至於良品率和**就不敢想了。

既然我們有了便宜的4核、8核處理器,為什麼要設計生產完全不可行,沒有任何工業和商業價值的「128位」處理器呢?所以,市場上沒有「128位」通用處理器。

基帶處理器和應用處理器的核間通訊

當前的手機架構使用著多種處理器間通訊方式,目前分離式ap cp流行的介面有spi i2c uart usb和雙埠互聯等,soc式則採用共享記憶體。控制命令以訊息的格式在基帶處理器和ap處理器間傳送,完成通話 短訊息 移動上網等功能,通訊協議包括傳統at命令 mbim等。一般來說,晶元都會支援多種介面...

為什麼微處理器要從單核轉向多核

原文出處 自從英特爾在2005年推出了第一代雙核處理器之後,我們經常會被使用者問到這個問題,為什麼微處理要從單核轉向多核?計算機上不斷湧現的新興使用模式讓終端使用者對處理器的處理能力 即效能 提出了更高的要求,並且對效能每年提高的幅度還在不斷加速,而多核技術是目前行之有效的方法。為什麼不能用單核的設...

為什麼微處理器要從單核轉向多核?

最近開始在網上看一些經典的網際網路的文章 新聞之類。平時對這些關注不多,以後注意積累這方面的內容吧。總結如下 假定計算機的其他子系統不存在瓶頸的話,那麼影響計算機效能高低的核心部件就是處理器。反映在指令上就是處理器執行指令的效率。處理器效能 主頻 x ipc 因此,提高處理器效能就是兩個途徑 提高主...