一臺伺服器、一臺電腦、一臺手機最重要的電子零部件是什麼?沒錯,就是CPU處理器。它主要負責資料計算、控制功能,是最核心的部分。不過你又知道有多少種CPU架構嗎?主流的X86、ARM到底有什麼區別?
下面就給大家介紹一下幾種常見的CPU架構:
X86
1978年6月8日,Intel釋出了史詩級的CPU處理器8086,由此X86架構傳奇正式拉開帷幕。首次為8086引入X86作為計算機語言的指令集,定義了一些基本使用規則,X86架構使用的是CISC複雜指令集。同時8086處理器的大獲成功也直接讓Intel成為了CPU巨頭,如果你對8086不是那麼熟悉,那麼一定聽過奔騰處理器吧?況且為了紀念8086K誕生40週年,今年Intel釋出了一顆紀念限量版的處理器Core i7-8086K,這你都聽說過吧?
圖片來自Intel官網
IA64(Intel Architecture 64,英特爾架構64)
哇,IA64聽起來好陌生,是的,雖然同出Intel之手。但這可以說是失敗品。當年X86過渡到64位指令集時,一個不小心被AMD彎道超車,最後只能聯合惠普推出了屬於自己的IA64指令集,但這也僅限於伺服器上,也是Itanium安騰處理器的來歷(現在已經涼了)。
圖片來自x86-guide
至於IA64究竟是RISC還是CISC指令集的延續,這個真的很難說清楚,但單純以IA64基於HP的EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)來看,似乎更偏向於RISC體系。
MIPS(Microprocessor without interlockedpipedstages,無內部互鎖流水級的微處理器)
在上世紀80年代由美國斯坦福大學Hennessy教授的研究小組研發,它採用精簡指令系統計算結構(RISC)來設計晶片。和Intel採用的複雜指令系統計算結構(CISC)相比,RISC具有設計更簡單、設計週期更短等優點,並可以應用更多先進的技術,開發更快的下一代處理器。MIPS是出現最早的商業RISC架構晶片之一,新的架構集成了所有原來MIPS指令集,並增加了許多更強大的功能。
MIPS自己只進行CPU的設計,之後把設計方案授權給客戶,使得客戶能夠製造出高效能的CPU。
讓MIPS出名的,可能是在2007年,中科院計算機研究所的龍芯處理器獲得了MIPS的全部專利、指令集授權,中國開始走上了一MIPS為基礎的CPU研發道路。
圖片來自龍芯官網
PowerPC
PowerPC是有藍色巨人IBM聯合蘋果、摩托羅拉公司研發的一種基於RISC精簡指令集的CPU,PowerPC架構最大優點是靈活性非常好,核心數目靈活可變,因此在嵌入式裝置上具有很高效益,可以針對伺服器市場做超多核,針對掌機做雙核,因此它具有優異的效能、較低的能量損耗以及較低的散熱量。
圖片來自wikimedia
ARM(Advanced RISC Machine,進階精簡指令集機器)
ARM可以說是一個異軍突起的CPU架構,採用了RISC精簡指令集,而且ARM發展到今天,架構上非常靈活,可以根據面向應用場景不同使用不同設計的核心,因此可以廣泛用於嵌入式系統中,同時它高度節能的特性,目前各種移動裝置中全都是它的身影。據統計,使用ARM架構的晶片年出貨量高達200億片,隨著物聯網時代降臨,對於低功耗性ARM晶片需求量會發生爆炸性增長。
圖片來自iFixit
CISC、RISC之爭
從上面得知,歷史的長河裡面,有過許許多多的CPU架構,它們之間的差異性非常大,經過時間、使用者的檢驗,我們平常所接觸到CPU架構也就剩X86和ARM兩者,按照最核心的不同可以被分為兩大類,即“複雜指令集”與“精簡指令集”系統,也就是經常看到的“CISC”與“RISC”。
要了解X86和ARM CPU架構,就得先了解CISC複雜指令集和RISC精簡指令集 ,因為它們第一個區別就是X86使用了複雜指令集(CISC),而後者使用精簡指令集(RISC)。造成他們使用不同該指令集的原因在於,面向的裝置、物件、效能要求是不一樣。手機SoC普遍都是採用ARM提供的核心作為基礎,依據自身需求改變SoC的核心架構,而ARM正正是RISC精簡指令集的代表人物。CPU巨頭Intel、AMD所採用的X86架構已經沿用了數十年,是CISC複雜指令集的典型代表。
CISC複雜指令系統就是為了增強原有指令的功能,設定更為複雜的新指令實現部分大量重複的軟體功能的硬體化。由於早期的電腦主頻低、執行速度慢,為了提高運算速度,不得已將更多的複雜指令加入到指令系統中來提高電腦的處理效率,慢慢形成以桌面電腦為首的複雜指令系統計算機。其指令集也是在不斷更新增加當中,如Intel為X299平臺上的處理器增加了AVX 512指令集,目的就是為了提高某一方面的效能。
雖然CISC可以實現高效能CPU設計,但是設計起來就相當麻煩了,要保持龐大硬體設計正確是一件不容易的事情,還要確保效能有所提升,不能開倒車,因此桌面CPU研發時間也慢慢地變長。這時候,以ARM為首的一些RISC精簡指令系統計算機開始嶄露頭角了。
RISC可以說是從CISC中取其精華去其糟粕,簡化指令功能,讓指令的平均執行週期減少,達到提升計算機工作主頻的目的,同時引入大量通用暫存器減少不必要的讀寫過程,提高子程式執行速度,這樣一來程式執行時間縮短並且減少了定址,提高了編譯效率,最終達到高效能目的。
這兩種指令集一直都在求同存異當中,都在追求在體系架構、操作執行、軟硬體、編譯時間以及執行時間等等諸多因素中做出某種平衡,以此達到當初所設計的高效運轉目的。
圖片來自新浪部落格
功耗上的限制
從CISC、RISC設計思路來看,大家不難發現,他們走的路根本不一樣,前者專注於高效能方向,但帶來高功耗,而後者專注於做低功耗的嵌入式,對於效能的最強不是太過強勁。因此我們也看到Intel、AMD他們擅長於設計效能超高的X86處理器,而高通、蘋果依靠ARM IP授權設計出注重效能的SoC晶片。
就像我們以前所舉的例子,Core i7-8086K可以輕易跑出95W功耗,但像高通驍龍845這種最頂級的SoC也不過是5W,只有其1/19,主要是手機尺寸越來越小,電池容量、能量密度發展跟不上,手機所用ARM核心只能是低功耗。
一般來說,處理器的功耗可以隨著製造工藝的進步而降低,但近些年來,移動裝置所採用的的SoC往往率先使用更小的奈米工藝製程,比方說驍龍845的10nm,雖然裡面有取巧成分,但推進速度遠遠快於Intel的10nm工藝,加之SoC還會有對應的低功耗版本工藝,所以無論是設計上、還是工藝上的差別,都導致了ARM、X86功耗差異非常大。
大小核架構
從前的X86傳統CPU,如果是四核或者是雙核,內部的四個、兩個個核心都是一模一樣的,這樣的話,由於一旦軟體只能排程一個核心,處於高頻工作,但由於架構限制,其餘核心也要保持同樣的高頻率和高電壓狀態,這樣就浪費了大量的能量在做無用功。後來就發展出了非同步多核,允許不同核心工作在不同頻率上,以此換來更低功耗。
由於移動裝置更加在意功耗,所以ARM採用了更加激進的做法,八個核裡面允許有不同Cortex-A架構核心,那就是著名的ARM bigLITTLE。這樣的大小核設計目的很明確,就是在有限的電池容量中,兼顧效能、續航的需求,因此SoC內部的CPU是採用異構計算,既有高效能大核心,也有低功耗小核心。
bigLITTLE架構框架,圖片來自ARM官網
晶片設計廠商可以根據自己的需求,設計出有針對性的產品,比方說目前高通驍龍845、華為的麒麟970、聯發科Helio X30都是bigLITTLE架構,這樣的話如果你只是刷刷微博、朋友圈,那麼只需要動用小核心就能完成任務,玩《絕地求生》吃雞遊戲就可能大小核全開,從而保證效能、續航的平衡。
因此ARM的bigLITTLE非同步多核架構非常值得參考,甚至傳聞稱英特爾將在第10代酷睿處理器Lakefield上使用這種技術,高效能大核是Ice lake(下一代Core),低功耗小核心則是Tremont(下一代Atom),因此在整體功耗上控制在35W以內,用於二合一筆記本上。
ARM、X86也能相互融合
之前我們在另一篇超能課堂《手機SoC與電腦的CPU效能究竟差多少?》就總結過,RISC、CISC各有各的優勢,目前兩者界限開始逐漸變得模糊,現代的CPU往往採用了CISC的外圍,而內部則加入了部分RISC的特性,這個也是Intel處理器的開始擁有RISC的典型例子。也就是說其實未來CPU發展方向之一就是融合CISC以及RISC,從軟體、硬體上取長補短,進一步提高處理器的並行性以及工藝水平。
X86、ARM在效能、功耗上各佔優勢,儘管ARM一直想進入高效能伺服器市場上,但一直都是雷聲大雨點小,前不久想要挑戰intel伺服器地位的高通,ARM伺服器部門直接裁員50%,技術副Quattroporte也不玩了;ARM處理器也期望能獲得X86處理器的高效能,以便能用在移動筆記本上,就像剛剛推出的高通驍龍835 Windows筆記本一樣,但評價、反映都是平平;Intel利用X86架構Atom做手機SoC,結果還是敗給了ARM,虧掉數十億美元,最終直接砍掉了這個專案,老老實實做X86處理器。
所以說ARM、X86都在各自領域站穩了腳跟,由於設計之初的理念不同,已經很難滲入對方的領域,只能說不斷嘗試,兩者之間的差異在將來可能會縮小,不斷借鑑改進。
一臺伺服器、一臺電腦、一臺手機最重要的電子零部件是什麼?沒錯,就是CPU處理器。它主要負責資料計算、控制功能,是最核心的部分。不過你又知道有多少種CPU架構嗎?主流的X86、ARM到底有什麼區別?
下面就給大家介紹一下幾種常見的CPU架構:
X86
1978年6月8日,Intel釋出了史詩級的CPU處理器8086,由此X86架構傳奇正式拉開帷幕。首次為8086引入X86作為計算機語言的指令集,定義了一些基本使用規則,X86架構使用的是CISC複雜指令集。同時8086處理器的大獲成功也直接讓Intel成為了CPU巨頭,如果你對8086不是那麼熟悉,那麼一定聽過奔騰處理器吧?況且為了紀念8086K誕生40週年,今年Intel釋出了一顆紀念限量版的處理器Core i7-8086K,這你都聽說過吧?
圖片來自Intel官網
IA64(Intel Architecture 64,英特爾架構64)
哇,IA64聽起來好陌生,是的,雖然同出Intel之手。但這可以說是失敗品。當年X86過渡到64位指令集時,一個不小心被AMD彎道超車,最後只能聯合惠普推出了屬於自己的IA64指令集,但這也僅限於伺服器上,也是Itanium安騰處理器的來歷(現在已經涼了)。
圖片來自x86-guide
至於IA64究竟是RISC還是CISC指令集的延續,這個真的很難說清楚,但單純以IA64基於HP的EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)來看,似乎更偏向於RISC體系。
MIPS(Microprocessor without interlockedpipedstages,無內部互鎖流水級的微處理器)
在上世紀80年代由美國斯坦福大學Hennessy教授的研究小組研發,它採用精簡指令系統計算結構(RISC)來設計晶片。和Intel採用的複雜指令系統計算結構(CISC)相比,RISC具有設計更簡單、設計週期更短等優點,並可以應用更多先進的技術,開發更快的下一代處理器。MIPS是出現最早的商業RISC架構晶片之一,新的架構集成了所有原來MIPS指令集,並增加了許多更強大的功能。
MIPS自己只進行CPU的設計,之後把設計方案授權給客戶,使得客戶能夠製造出高效能的CPU。
讓MIPS出名的,可能是在2007年,中科院計算機研究所的龍芯處理器獲得了MIPS的全部專利、指令集授權,中國開始走上了一MIPS為基礎的CPU研發道路。
圖片來自龍芯官網
PowerPC
PowerPC是有藍色巨人IBM聯合蘋果、摩托羅拉公司研發的一種基於RISC精簡指令集的CPU,PowerPC架構最大優點是靈活性非常好,核心數目靈活可變,因此在嵌入式裝置上具有很高效益,可以針對伺服器市場做超多核,針對掌機做雙核,因此它具有優異的效能、較低的能量損耗以及較低的散熱量。
圖片來自wikimedia
ARM(Advanced RISC Machine,進階精簡指令集機器)
ARM可以說是一個異軍突起的CPU架構,採用了RISC精簡指令集,而且ARM發展到今天,架構上非常靈活,可以根據面向應用場景不同使用不同設計的核心,因此可以廣泛用於嵌入式系統中,同時它高度節能的特性,目前各種移動裝置中全都是它的身影。據統計,使用ARM架構的晶片年出貨量高達200億片,隨著物聯網時代降臨,對於低功耗性ARM晶片需求量會發生爆炸性增長。
圖片來自iFixit
CISC、RISC之爭
從上面得知,歷史的長河裡面,有過許許多多的CPU架構,它們之間的差異性非常大,經過時間、使用者的檢驗,我們平常所接觸到CPU架構也就剩X86和ARM兩者,按照最核心的不同可以被分為兩大類,即“複雜指令集”與“精簡指令集”系統,也就是經常看到的“CISC”與“RISC”。
要了解X86和ARM CPU架構,就得先了解CISC複雜指令集和RISC精簡指令集 ,因為它們第一個區別就是X86使用了複雜指令集(CISC),而後者使用精簡指令集(RISC)。造成他們使用不同該指令集的原因在於,面向的裝置、物件、效能要求是不一樣。手機SoC普遍都是採用ARM提供的核心作為基礎,依據自身需求改變SoC的核心架構,而ARM正正是RISC精簡指令集的代表人物。CPU巨頭Intel、AMD所採用的X86架構已經沿用了數十年,是CISC複雜指令集的典型代表。
CISC複雜指令系統就是為了增強原有指令的功能,設定更為複雜的新指令實現部分大量重複的軟體功能的硬體化。由於早期的電腦主頻低、執行速度慢,為了提高運算速度,不得已將更多的複雜指令加入到指令系統中來提高電腦的處理效率,慢慢形成以桌面電腦為首的複雜指令系統計算機。其指令集也是在不斷更新增加當中,如Intel為X299平臺上的處理器增加了AVX 512指令集,目的就是為了提高某一方面的效能。
雖然CISC可以實現高效能CPU設計,但是設計起來就相當麻煩了,要保持龐大硬體設計正確是一件不容易的事情,還要確保效能有所提升,不能開倒車,因此桌面CPU研發時間也慢慢地變長。這時候,以ARM為首的一些RISC精簡指令系統計算機開始嶄露頭角了。
RISC可以說是從CISC中取其精華去其糟粕,簡化指令功能,讓指令的平均執行週期減少,達到提升計算機工作主頻的目的,同時引入大量通用暫存器減少不必要的讀寫過程,提高子程式執行速度,這樣一來程式執行時間縮短並且減少了定址,提高了編譯效率,最終達到高效能目的。
這兩種指令集一直都在求同存異當中,都在追求在體系架構、操作執行、軟硬體、編譯時間以及執行時間等等諸多因素中做出某種平衡,以此達到當初所設計的高效運轉目的。
圖片來自新浪部落格
功耗上的限制
從CISC、RISC設計思路來看,大家不難發現,他們走的路根本不一樣,前者專注於高效能方向,但帶來高功耗,而後者專注於做低功耗的嵌入式,對於效能的最強不是太過強勁。因此我們也看到Intel、AMD他們擅長於設計效能超高的X86處理器,而高通、蘋果依靠ARM IP授權設計出注重效能的SoC晶片。
就像我們以前所舉的例子,Core i7-8086K可以輕易跑出95W功耗,但像高通驍龍845這種最頂級的SoC也不過是5W,只有其1/19,主要是手機尺寸越來越小,電池容量、能量密度發展跟不上,手機所用ARM核心只能是低功耗。
一般來說,處理器的功耗可以隨著製造工藝的進步而降低,但近些年來,移動裝置所採用的的SoC往往率先使用更小的奈米工藝製程,比方說驍龍845的10nm,雖然裡面有取巧成分,但推進速度遠遠快於Intel的10nm工藝,加之SoC還會有對應的低功耗版本工藝,所以無論是設計上、還是工藝上的差別,都導致了ARM、X86功耗差異非常大。
大小核架構
從前的X86傳統CPU,如果是四核或者是雙核,內部的四個、兩個個核心都是一模一樣的,這樣的話,由於一旦軟體只能排程一個核心,處於高頻工作,但由於架構限制,其餘核心也要保持同樣的高頻率和高電壓狀態,這樣就浪費了大量的能量在做無用功。後來就發展出了非同步多核,允許不同核心工作在不同頻率上,以此換來更低功耗。
由於移動裝置更加在意功耗,所以ARM採用了更加激進的做法,八個核裡面允許有不同Cortex-A架構核心,那就是著名的ARM bigLITTLE。這樣的大小核設計目的很明確,就是在有限的電池容量中,兼顧效能、續航的需求,因此SoC內部的CPU是採用異構計算,既有高效能大核心,也有低功耗小核心。
bigLITTLE架構框架,圖片來自ARM官網
晶片設計廠商可以根據自己的需求,設計出有針對性的產品,比方說目前高通驍龍845、華為的麒麟970、聯發科Helio X30都是bigLITTLE架構,這樣的話如果你只是刷刷微博、朋友圈,那麼只需要動用小核心就能完成任務,玩《絕地求生》吃雞遊戲就可能大小核全開,從而保證效能、續航的平衡。
因此ARM的bigLITTLE非同步多核架構非常值得參考,甚至傳聞稱英特爾將在第10代酷睿處理器Lakefield上使用這種技術,高效能大核是Ice lake(下一代Core),低功耗小核心則是Tremont(下一代Atom),因此在整體功耗上控制在35W以內,用於二合一筆記本上。
ARM、X86也能相互融合
之前我們在另一篇超能課堂《手機SoC與電腦的CPU效能究竟差多少?》就總結過,RISC、CISC各有各的優勢,目前兩者界限開始逐漸變得模糊,現代的CPU往往採用了CISC的外圍,而內部則加入了部分RISC的特性,這個也是Intel處理器的開始擁有RISC的典型例子。也就是說其實未來CPU發展方向之一就是融合CISC以及RISC,從軟體、硬體上取長補短,進一步提高處理器的並行性以及工藝水平。
X86、ARM在效能、功耗上各佔優勢,儘管ARM一直想進入高效能伺服器市場上,但一直都是雷聲大雨點小,前不久想要挑戰intel伺服器地位的高通,ARM伺服器部門直接裁員50%,技術副Quattroporte也不玩了;ARM處理器也期望能獲得X86處理器的高效能,以便能用在移動筆記本上,就像剛剛推出的高通驍龍835 Windows筆記本一樣,但評價、反映都是平平;Intel利用X86架構Atom做手機SoC,結果還是敗給了ARM,虧掉數十億美元,最終直接砍掉了這個專案,老老實實做X86處理器。
所以說ARM、X86都在各自領域站穩了腳跟,由於設計之初的理念不同,已經很難滲入對方的領域,只能說不斷嘗試,兩者之間的差異在將來可能會縮小,不斷借鑑改進。