簡單了解一下arm架構(gòu)和x86架構(gòu)
最后修改時間:2020-07-13 瀏覽:
隨著蘋果在北京時間6月23日2020WWDC開發(fā)者大會上宣布將在全新Mac產(chǎn)品中全面引入自研ARM架構(gòu)芯片而非繼續(xù)使用英特爾芯片消息后,arm架構(gòu)與x86架構(gòu)引起一些相關(guān)用戶的興趣。接下來就簡單了解一下arm架構(gòu)和x86架構(gòu)的區(qū)別和各自的一些優(yōu)勢,蘋果為什么要放棄x86架構(gòu)引入arm架構(gòu)芯片。
首先在根本上了解一下arm架構(gòu)和x86架構(gòu)的區(qū)別,即所謂的“復(fù)雜指令集”和“精簡指令集”系統(tǒng),x86架構(gòu)使用的是復(fù)雜指令集(CISC)arm架構(gòu)使用的是精簡指令集(RISC),區(qū)別在于考慮問題的方式不同。
借用一個網(wǎng)上例子,比如說我們要命令一個人吃飯,那么我們應(yīng)該怎么命令呢?我們可以直接對他下達“吃飯”的命令,也可以命令他“先拿勺子,然后舀起一勺飯,然后張嘴,然后送到嘴里,最后咽下去”。從這里可以看到,對于命令別人做事這樣一件事情,不同的人有不同的理解,有人認(rèn)為,如果我首先給接受命令的人以足夠的訓(xùn)練,讓他掌握各種復(fù)雜技能(即在硬件中實現(xiàn)對應(yīng)的復(fù)雜功能),那么以后就可以用非常簡單的命令讓他去做很復(fù)雜的事情——比如只要說一句“吃飯”,他就會吃飯。但是也有人認(rèn)為這樣會讓事情變的太復(fù)雜,畢竟接受命令的人要做的事情很復(fù)雜,如果你這時候想讓他吃菜怎么辦?難道繼續(xù)訓(xùn)練他吃菜的方法?我們?yōu)槭裁床豢梢园咽虑榉譃樵S多非常基本的步驟,這樣只需要接受命令的人懂得很少的基本技能,就可以完成同樣的工作,無非是下達命令的人稍微累一點——比如現(xiàn)在我要他吃菜,只需要把剛剛吃飯命令里的“舀起一勺飯”改成“舀起一勺菜”,問題就解決了,多么簡單。這就是“復(fù)雜指令集”和“精簡指令集”的邏輯區(qū)別。
兩者的差異也使得在應(yīng)用領(lǐng)域中有著相對明顯的區(qū)分,x86架構(gòu)更加專注于高性能但同時高功耗的實現(xiàn),而arm架構(gòu)則專注于低功耗領(lǐng)域。Mac產(chǎn)品之前采用的x86架構(gòu)CPU的功耗通常在幾十到一百多,甚至是200的功耗。相對于筆記本需要的續(xù)航,靜音,散熱等需求,顯得有點背道而馳,而arm架構(gòu)的CPU功能可以做到個位數(shù),更加符合筆記本的需求,同時可以打通iOS和iPadOS的情況下,在一部分常規(guī)需求的客戶就更可能會更偏向Mac的選擇。
近十多年來,關(guān)于CISC和RISC的區(qū)分已經(jīng)慢慢的在模糊,例如自P6體系(即Pentium Pro)以來,作為CISC代表的X86架構(gòu)引入了微碼概念,與此對應(yīng)的,處理器內(nèi)部也增加了所謂的譯碼器,負(fù)責(zé)將傳統(tǒng)的CISC指令“拆包”為更加短小的微碼(uOPs)。一條CISC指令進來以后,會被譯碼器拆分為數(shù)量不等的微碼,然后送入處理器的執(zhí)行管線——這實際上可以理解為RISC內(nèi)核 CISC解碼器。而RISC也引入了指令集這個就邏輯角度而言非常不精簡的東西,來增加運算性能。