首頁>Club>

163
回覆列表
  • 1 # 三袋大菠蘿

    硬體方面就不說了,就開發使用者角度來分析吧。

    第一、cpu配套記憶體訪問速度,這方面x86速度肯定更快。32位C編譯器編譯C函式時候呼叫使用記憶體棧傳遞引數,因為記憶體訪問速度已經夠快,再加上cpu快取記憶體,執行速度能再上一個臺階。而ARM的ram是和CPU在一起的,更多考慮了功耗等問題。ram訪問速度更慢,但作為補償C程式函式的呼叫約定是在32位模式中用4個暫存器傳遞前4個32位引數資料,在64位模式中用8個暫存器傳遞前8個64位引數資料。

    第二、暫存器數量,這方面arm暫存器比x86暫存器更多,這對C程式的編譯會更友好一些。

    第三、關於GPU,arm晶片都是和GPU一起的,為的是減少功耗,x86要看規格和廠商,比如筆記本晶片大多帶整合GPU,而桌上型電腦可能就沒有。

    第四、其他類似simd指令功能使用很不一樣,相對來說arm規範很多,而x86的simd會更糟糕,x86的simd是16位元組對齊,而arm的simd是4位元組對齊。再比如:x86的simd整數乘法會增長資料長度,至少sse2指令集是如此的,而arm的乘法根據不同指令自己選擇。

    我今天想到的就這些吧,如果有後續想起來的我再新增。

  • 2 # Hi土豆

    ARM架構為精簡指令集處理器,X86架構為複雜指令集處理器,二者作業系統互不相容。  

    全新上市的 Microsoft Surface Pro X 採用的是ARM 64 構架,用來執行Windows系統的PC電腦

    重溫下CPU是什麼鬼

    中央處理單元(CPU)主要由運算器、控制器、暫存器三部分組成,從字面意思看運算器就是起著運算的作用,控制器就是負責發出CPU每條指令所需要的資訊,暫存器就是儲存運算或者指令的一些臨時檔案,這樣可以保證更高的速度。

    要了解X86和ARM,就得先了解複雜指令集(CISC)和精簡指令集(RISC) 從CPU發明到現在,有非常多種架構,從我們熟悉的X86、ARM,到不太熟悉的MIPS、IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的“複雜指令集”與“精簡指令集”系統,也就是經常看到的“CISC”與“RISC”。

      x86:Intel一家獨大,當然現在AMD也在奮發圖強追趕lntel

      提到晶片巨頭英特爾,用電腦多多少少要接觸過,但是你知道這家巨頭企業是如何發家的麼?

      事情要從1978年6月8日說起,Intel釋出了一款新型的微處理器“8086”。而這款處理器在新出現時並沒有得到什麼關注,可是他卻創造了一個新的時代。8086意味著x86架構的誕生,而x86作為特定微處理器執行計算機語言的指令集,定義了晶片的基本使用規則。8086也直接帶動了Intel成為全球首屈一指的晶片巨頭。

      而x86不僅僅使Intel平步青雲,也成為了業界的一種標準。在過去的幾十年裡,無論是筆記本、伺服器、超級計算機還是編寫裝置,都可以看到x86的身影。而且,x86架構還在通過不同的方法進行改進,無論AMD、VIA都可以通過X86指令集的彈性來對付Intel,迫使x86進行改變。

    通過幾十年的技術積累,x86伺服器在伺服器領域的地位幾乎是獨孤求敗。小巧靈活的x86伺服器在市場上應用十分廣泛,網際網路以及區域網內的檔案、列印、通訊、web、電子郵件、資料庫以及應用服務等多個領域都可以一展身手。

    x86伺服器最大的特色在於可以相容Windows作業系統,全部都採用了Intel的CPU。而Intel的x86伺服器也可以分為兩代,最初採用的80x86系列在釋出了產品80486後,Intel對該系列產品進行了重新命名並註冊,這也就是現在Intel的Pentium系列,當然,這個系列在中國還有個更響亮的名字,即奔騰系列。

    目前奔騰系列的CPU包括:1、酷睿(Core)系列,主要應用於管理 3D、高階視訊和照片編輯,玩複雜遊戲,享受高解析度 4K 顯示。

    2、奔騰(PenTIum)系列,主要應用於藉助功能豐富的處理器,加快行動式 2 合 1 電腦、膝上型電腦、桌上型電腦和一體機的速度。

    3、賽揚(Celeron)系列,要應用於藉助可靠的效能和高價值,支援基本的消費者應用程式、高清視訊和音訊以及網頁瀏覽。

    4、至強(Xeon)系列,主要應用於提供雲端計算,通過資料分析獲得實時見解,提高資料中心生產力並輕鬆進行擴充套件。

    5、安騰(Itanium)系列,主要應用於為任務關鍵型應用程式和工作負載帶來突破性效能、可靠性、可擴充套件性和可用性。

    6、凌動(Atom)系列,要應用於適用於移動裝置和高能效伺服器。在小型封裝中獲得強大的效能和超長電池續航時間。

    7、Quark系列,主要應用於適用於物聯網 (IoT) 裝置。在小巧外形中獲得低功耗、整合的安全性和可擴充套件架構。

    x86老麼?從時間上來看,確實老了。x86從1978年至今已經將近40年。可經過各種風雲變幻之後,x86依然是伺服器行業絕對的領導者,說這樣的一個伺服器行業領袖已經老去,那無非便是在指摘支撐起整個網際網路的伺服器行業已老。

    而且,經歷了很多代的改進和變革,x86架構伺服器依然是最快的架構之一。而且現在x86也是整個行業的標杆,從技術上來看x86從未落後過,只不過是和其他架構的伺服器相比差距大小是否被拉近了。

    從指令集架構來看,CISC確實是有些陳舊了。即便是Intel也已經承認,CISC架構確實限制了CPU的發展。在CISC微處理器程式的各條指令相互串聯執行,指令操作也需要序列執行,按照這種方式來進行任務執行,其控制當然十分簡單,但計算機的整體利用率卻被拖了後腿,執行速度相對偏慢。這也是CISC架構為中低檔伺服器所採用的原因之一。

    複雜指令集是一種伴隨著計算機誕生便存在的一種指令集。其擁有較強的處理高階語言的能力,對於提高計算機效能有一定好處。而日趨複雜的指令系統不僅帶來的效率的低下,還致使系統結構的複雜性增加,這種複雜性也將導致了CISC的通用性不佳。

    ARM:移動端異軍突起

    在PC領域,Intel的CPU一枝獨秀。而在移動端呢?那就當屬ARM了。ARM全稱為Advanced RISC Machine,也就是進階精簡指令集機器。ARM是RISC微處理器的代表作之一,其廣泛的在嵌入式系統設計中被使用。而且ARM處理器最大的特點在於節能,這也是其在行動通訊領域無人能敵的原因之一。

    打造ARM64位伺服器

    在過去,ARM專注於發展32位架構,在移動端稱霸多年,讓Intel眼饞不矣。而在PC和伺服器領域,Intel的市場也讓ARM十分眼紅。ARM於2011年底釋出的ARMv8為其首款64位處理器,而戴爾在2013年釋出了其首款基於ARM64位構架的伺服器,相應的伺服器解決方案也被開發出來。

    儘管Intel的x86處理器在伺服器領域依然無敵,但64位的ARM構架應該可以找到自己的一席之地,ARM在記憶體和網路介面同計算核心間的距離會被儘可能的拉近,並藉此承載起密度極高的大量計算程序,這種特性與Web伺服器及其應用十分契合。

    在伺服器領域,Intel的晶片也有很多水土不服的領域,比如記憶體容量、I/O和處理效能不成比例時,ARM處理器的表現會更加合格。ARM處理器的ISA複雜程度要低很多,開發成本也要低,相應的,ARM伺服器廠商針對這些應用場景所開發的伺服器也就擁有了打敗Intel的前提條件。而從這些應用環境所切入伺服器市場的ARM架構伺服器其針對客戶也正是x86的原有部分客戶。

    而Intel是不會輕易放手的,在伺服器領域,其工藝對ARM保持領先,其處理器效能也遠高於ARM處理器,可在功耗方面一直是Intel的一個心病。

    此外,Intel也想進軍移動端,要打敗ARM,在低功耗的伺服器領域發力便是一個好的選擇。採用了14nm工藝的Xeon-D,其包括的2個1.4G的Broadwell核心和GPU的功耗才僅僅為6W,在效能功耗比方便比ARM要高出不少。

    在2008年,Intel推出了Atom處理器,這款處理器是Intel史上體積最小,功耗最低的處理器,其開創出去便是之中彌補自己在移動計算領域先天不足的問題,而這一領域被ARM霸佔多年,在技術和經驗中Intel都不佔優勢,想要打敗ARM又談何容易?

    既然雙方都對對方的領域虎視眈眈,那麼ARM和Intel的大戰絕對是不可避免的。那麼想要進入Intel的伺服器領域,ARM就需要拿出來真本事了,以其64位元處理器作為基礎的晶片設計,功耗低、成本低,具備構架彈性,以這些優勢去硬碰Intel又能有幾成勝算呢?

    換個角度看,ARM晶片架構具備一定的靈活性,可以實現很多企業的特性需求,比如快取一致性以及容錯和高可用性等,其軟體的生態環境成熟度卻不及Intel,即便是有了更多的企業關注也未必就能有把握擊敗Intel,那麼又是什麼支援這ARM來客場挑戰Intel呢? 

    從幾個方面比較ARM與X86架構Intel和ARM的處理器,除了最本質的複雜指令集(CISC)和精簡指令集(RISC)的區別之外,下面我們再從以下幾個方面對比下ARM和X86架構。

    1、製造工藝ARM和Intel處理器的一大區別是ARM從來只是設計低功耗處理器,Intel的強項是設計超高效能的桌上型電腦和伺服器處理器。

      一直以來,Intel都是桌上型電腦的伺服器行業的老大。然而進入移動行業時,Intel依然使用和桌上型電腦同樣的複雜指令集架構,試圖將其硬塞入給移動裝置使用的體積較小的處理器中。但是Intel i7處理器平均發熱率為45瓦。基於ARM的片上系統的發熱率最大瞬間峰值大約是3瓦,約為Intel i7處理器的1/15。其最新的Atom系列處理器採用了跟ARM處理器類似的溫度控制設計,為此Intel必須使用最新的22納米制造工藝。

    2、64位計算對於64位計算,ARM和Intel也有一些顯著區別。Intel並沒有開發64位版本的x86 指令集。64位的指令集名為x86-64(有時簡稱為x64),實際上是AMD設計開發的。Intel想做64位計算,它知道如果從自己的32位x86架構進化出64位架構,新架構效率會很低,於是它搞了一個新64位處理器專案名為IA64。由此製造出了Itanium系列處理器。

    而ARM在看到移動裝置對64位計算的需求後,於2011年釋出了ARMv8 64位架構,這是為了下一代ARM指令集架構工作若干年後的結晶。為了基於原有的原則和指令集,開發一個簡明的64位架構,ARMv8使用了兩種執行模式,AArch32和AArch64。顧名思義,一個執行32位程式碼,一個執行64位程式碼。ARM設計的巧妙之處,是處理器在執行中可以無縫地在兩種模式間切換。這意味著64位指令的解碼器是全新設計的,不用兼顧32位指令,而處理器依然可以向後相容。

      這是什麼做到的呢?設計處理器的時候,要考慮大量的技術設計的採用與否,這些技術設計決定了處理器的效能以及功耗。在一條指令被解碼並準備執行時,Intel和ARM的處理器都使用流水線,就是說解碼的過程是並行的。

      為了更快地執行指令,這些流水線可以被設計成允許指令們不按照程式的順序被執行(亂序執行)。一些巧妙的邏輯結構可以判斷下一條指令是否依賴於當前的指令執行的結果。Intel和ARM都提供亂序執行邏輯結構,可想而知,這種結構十分的複雜,複雜意味著更多的功耗。

      那為什麼反而ARM的比X86耗電少得多呢。這就和另外一個因素相關了,那就是設計。

      設計又分為前端和後端設計,前端設計體現了處理器的構架,精簡指令集和複雜指令集的區別是通過前端設計體現的。後端設計處理電壓、時鐘等問題,是耗電的直接因素。當然,其中任何一項都會使得時鐘和電源所控制的模組無法工作。他們的區別在於,門控時鐘的恢復時間較短,而電源控制的時間較長。此外,如果條單條指令使用多個模組的功能,在恢復功能的時候,並不是最慢的那個模組的時間,而可能是幾個模組時間相加,因為這牽涉到一個上電次序的問題,也就是恢復工作時候模組間是有先後次序的,不遵照這個次序,就無法恢復。而遵照這個次序,就會使得總恢復時間很長。

      所以在後端這塊,可以得到一個結論,為了省電,可以關閉一些暫時不會用到的處理器模組。但是也不能輕易的關閉,否則一旦需要,恢復的話會讓完成某個指令的時間會很長,總體效能顯然降低。此外,子模組的門控時鐘和電源開關通常是設計電路時就決定的,對於作業系統是透明的,無法通過軟體來優化。

      再來看前端。ARM的處理器有個特點,就是亂序執行能力不如X86。換句話說,就是使用者在使用電腦的時候,他的操作是隨機的,無法預測的,造成了指令也無法預測。X86為了增強對這種情況下的處理能力,加強了亂序指令的執行。此外,X86還增強了單核的多執行緒能力。這樣做的缺點就是,無法很有效的關閉和恢復處理器子模組,因為一旦關閉,恢復起來就很慢,從而造成低效能。為了保持高效能,就不得不讓大部分的模組都保持開啟,並且時鐘也保持切換。這樣做的直接後果就是耗電高。而ARM的指令強在確定次序的執行,並且依靠多核而不是單核多執行緒來執行。這樣容易保持子模組和時鐘訊號的關閉,顯然就更省電。

      關於X86架構和ARM架構這兩者誰將統一市場的爭執一直都有,但是也有人說這兩者根本不具備可比性,X86無法做到 ARM的功耗,而ARM也無法做到X86的效能。現在ARM架構已經具備了進入伺服器晶片的能力,眾多晶片研發企業紛紛採用ARM架構研發伺服器晶片無疑將促進其繁榮, 2015年一款採用ARM架構的Windows 10平板現身,2019年全新上市的 Microsoft Surface Pro X 採用的是ARM 64 構架,用來執行Windows系統的PC電腦。

  • 3 # 光明右使8787

    指令集不一樣,ARM64是Aarch64指令集,X64是AMD64指令集。

  • 中秋節和大豐收的關聯?
  • 古人說“壽多則辱”,怎麼理解?