——x86和ARM爭霸戰"/>
999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?特約撰稿人/林亦

喬布斯和歐德寧 圖/9to5Mac
十六年前,蘋果電腦的舞臺上曾經亂入過一個大白,不過這個大白手里不是采集咽拭子的棉簽,而是一塊用來做芯片的晶圓。當時穿著無塵服的英特爾 CEO 歐德寧,把這塊晶圓遞給了蘋果 CEO 喬布斯,兩人一次握手,搭載英特爾 x86 處理器的蘋果筆記本就迅速面市,個人電腦市場徹底成了 x86 架構處理器的天下。
不過盛極而衰、樂極生悲,危機的種子常常就是埋在極盛之時。就在這段蜜月期,蘋果還看上了英特爾的一款低功耗x86 處理器,就提出來了想合作,說自己正在做一個掌上產品,能聽歌能打電話還能上網,非常看好這款產品的市場。結果英特爾對此頗不以為然,時值英特爾 x86處理器在個人電腦市場如日中天,這單合作就此作罷,結果,這個掌上產品就是后來的 iPhone。而iPhone 轉頭選擇 ARM 芯片,這件跟電腦看似風馬牛不相及的事,就像蝴蝶效應,在十幾年后的個人電腦市場,掀起了一陣血雨腥風。甚至一向偏好 x86 架構的 Linux 系統創始人林納斯,也在今年把隨身筆記本換成了 ARM 架構的 MacBook Air,當然裝的還是 Linux 系統。芯片處理器大家都知道,今天我們就來談一下處理器的兩大架構:x86 和 ARM,關于他們的前世今生、恩怨情仇。

計算機系統抽象圖 圖/知乎@老蕭
首先我們需要搞清楚 x86 架構、ARM 架構,到底是什么?x86、ARM,都是指令集架構中的一種。我們用電腦的時候,常用到各種軟件,軟件運行靠的是底下硬件的支撐。咱們在電腦上算一個式子,最底下其實是硬件電路在那劈里啪啦地一會兒通一會斷,而指令集架構,就是軟件和硬件中間的一套規則,作用就是把軟硬件分離。比如說有一套指令集里包括了加減乘除法,那下面的硬件就得把這些基本指令的電路做出來,然后上面的軟件就得把式子拆分成基本的加、減、乘、除,做到這兩點,軟件就能在硬件上運行了,而且軟件不需要知道硬件的結構,硬件也不用知道軟件的行動,按照指令逐項執行就可以了。
這樣一來,軟硬件的通用性就有了質的飛躍。指令集概念出來之前,換個電腦型號,原來用的軟件就得重新寫。有了指令集之后,遵循同一套指令集的所有硬件設備,只要是用這套指令集寫出來的軟件,就都能安裝運行。
1964年的 IBM System/360 大型電腦,是第一款用上了指令集架構這個概念的計算機。當時的主要賣點就是隨著硬件的不斷更新換代,軟件不用重新寫。這意味著,一家小公司可以先買一個小型電腦系統,然后再根據業務增長來升級硬件,而原來的操作系統和軟件都不受影響,還是能正常使用。這件我們今天來看理所當然的事情,對于那個時代的人們來說,是“嘆為觀止”的。

IBM System/360 圖/維基百科

英特爾8088 圖/網絡
靠著指令集架構實現了軟硬件分離的 System/360,不僅完勝 IBM 自有的全部五條產品線,還拿下了創紀錄的市場訂單:產品發布后的前四周收到了超過一千份訂單,在接下來的四個月里又收到了一千份訂單。等到 IBM 進軍個人電腦市場的時候,指令集架構這個概念自然也就延續了下來。1981年,IBM發布了自家的第一款個人電腦IBM 5150,在市場上大獲成功,銷量達到了 IBM 預期的八倍。
IBM 5150 的處理器,選擇了英特爾 8088,而這塊處理器實際上是更早英特爾 8086 處理器的閹割版,8086 才是完全體,只是價格更貴,所以 IBM 選了 8088。
IBM 5150 的成功帶動了個人電腦市場的蓬勃發展,為了保持兼容性,接下來的歷代處理器也都用了同一套指令集架構。新處理器的命名回歸了 8086 序列,被叫做 80186、80286、80306、80486,而這套延續至今的指令集架構,也就被叫做了 x86 架構。

x86架構發展史 圖/林亦
這里有樁趣事不得不提。5150 制霸個人電腦市場的時候,IBM 在計算機產業擁有絕對話語權,但IBM依然保有危機意識。在指令集橫空出世后,硬件開始走向通用化、標準化之路,組裝電腦變得簡單,IBM預見到,再過若干年,可能一個普通年輕人就能完成裝機工作,那么IBM還有何優勢可言?因為裝機難度降下去之后,處理器的技術含量就是最高的了,最容易發展成計算機產業的龍頭老大,從而替代IBM的行業地位。于是,IBM 開始打壓處理器廠商,當時 IBM 就要求英特爾把 x86 指令集授權給其他廠商,其中就包括今天的 AMD。
第二供應商原則就是第一供應商授權第二家公司生產并銷售某個產品。這種做法起源于六十年代,像CPU這種復雜的電子元件,如果只有一家公司能夠生產,那么購買者將承擔很大的風險,當時芯片收購方大部分是軍方。為了防止一家獨大,開發出了這種制度。后來芯片使用變成了IBM這種民用設備生產商,這種制度也被沿用了下來。
現在來看,雖然 IBM 頗具眼光,但依然未能阻擋歷史的行程,不僅沒能打壓處理器廠商,還促成了處理器兩大廠商的誕生。正因為 x86 陣營的兩大廠商長期競爭,當真正的“異族”兵臨城下的時候,才沒有因為長期安逸而一敗涂地。這個呼嘯而來的“異族”軍團,就是 ARM 指令集架構。x86 和 ARM 的核心區別,就在于 x86 是復雜指令集,而 ARM 則是精簡指令集。
在普通用戶看來,精簡指令集和復雜指令集是艱深的技術概念,這里我們可以用樂高積木來類比。首先,程序員給早期計算機寫程序,需要直接去使用指令集里的基本指令,如果把寫代碼比作是拼積木的步驟,那精簡指令集提供的就是一個個最基礎的積木塊,而復雜指令集提供的則是一些拼好的積木團。顯而易見,把積木團拼起來的步驟肯定更少,代碼也就更短,不僅更好寫,而且很重要的一點是,在那個年代,這樣還更省錢。運行程序的時候,這些拼裝步驟要存在內存里,80年代初 64 KB 內存就要 500 美元,多跑幾千條指令那可能就要多花幾千塊錢,甚至有時候內存還可能裝不下,所以對早期計算機來說,直接拼積木團,步驟更少的復雜指令集就更受歡迎。

樂高倫敦巴士 圖/網絡

x86 指令集架構誕生于70年代末,流行起于80年代初,那時候被市場追捧的毫無疑問是復雜指令集。不過今天的程序員已經比老一輩程序員幸福多了,內存雖然也不便宜,但跟 40年前比那真是白菜價,而且寫代碼也不用再從基本指令寫起了,直接大塊大塊的“積木”往上拼,這個就要感謝編譯器。
編譯器就是把程序員用的這些大積木塊自動拆碎,自動給出把它們拼起來的步驟。一代代工程師的智慧凝結在一塊,今天的編譯器效率已經非常高了,所以也很少會有程序員、會去和前面那些基礎的積木團塊打交道了,這樣一來,復雜指令集帶來的編程速度和內存成本上的優勢,也就沒那么明顯了。
專業人士可能會提到 x86 依然具備不可替代的性能優勢,但這一點其實沒那么肯定。如上,復雜指令集提供直接拼好的積木團,乍一看好像速度更快,但有一個問題,你拼這些大積木團也要花時間,拼基礎積木塊的步驟雖然多,但每一步花的時間也更短。另外,由于每個基礎塊的拼裝時間都是一樣的,我還可以同時拼好幾塊積木,同時開始同時完成,一點也不浪費時間,效率成倍增加,這就是精簡指令集的流水線機制。而復雜指令集就無法實現這種操作,積木團有大有小,有的拼起來快,有的拼起來慢,要是同時多拼幾個的話,每一步都得等最大的那塊拼完,先拼完的要等后面在拼的,這就造成了資源浪費。所以復雜指令集雖然可以直接操作積木團,但一對上讓精簡指令集效率倍增的流水線,依然自嘆弗如。

圖/林亦
實際上 80年代末有一些基于精簡指令集架構的處理器,性能可以吊打 x86 處理器,連英特爾和 AMD 都開始做自己的精簡指令集處理器,但因為 x86 生態已經成型了,所以精簡指令集并沒有快速制霸市場,精簡指令集的處理器再強,能給 x86 電腦開發程序嗎?能運行基于 x86 指令集的各種工程模擬軟件嗎?答案都是不能。
Pentium Pro 中具備三個能夠把x86指令轉換成118位定長的RISC風格微操作(micro-ops)的譯碼器,其中一個能把復雜x86指令轉換成4個RISC風格微操作,另外兩個解碼器則是各可以把一條“簡單”x86指令轉換成一條RISC風格微操作,即所謂的“4+1+1”的3路解碼格局。
而且當年英特爾和 AMD 的工程師也都不是等閑之輩,1995年,英特爾在Pentium Pro 上加了一個對標流水線的機制,讓復雜指令可以高效地拆成一系列執行時間相等的微指令,這樣 x86 也能實現流水線效率,性能劣勢遂隨之抹平。接著基于 x86 指令集的 Windows 95 和 Windows 98 兩款操作系統,又在個人電腦市場風靡。至此,Wintel 聯盟擁有了 x86 架構的護城河。
實際上 x86 架構的成功,還是離不開歷史行程。如上所述,早期計算機最佳選擇是用復雜指令集,代碼寫得快,還能盡量節約昂貴的內存。就因為這個早期優勢,于是 IBM 5150 就選擇了英特爾的8088并因此爆火,于是 80186、80286、80386 就一路高歌猛進,還跟 Windows 達成了長效合作,于是整個個人電腦硬件生態就都圍繞著 x86 架構建立了起來,所以 x86 的成功,尤其是后來的地位,靠的是這一路積累的歷史優勢,并非理論特性。
有的讀者可能會說,x86 后來加入 AVX 指令集,是否說明 AVX 加速離不開復雜指令集架構的理論特性,然而,它其實還是屬于 x86 的歷史優勢。AVX 主要是給向量計算加速,精簡指令集也可以很方便地用軟件編寫復雜的向量加速指令,但是有寫的必要嗎?當年科學計算軟件、工程模擬軟件都在 x86上,如果給精簡指令集架構做一套這樣的東西,可能不存在用戶。當 x86 上的這些軟件都用上了 AVX加速之后,想讓它們再針對精簡指令集改一套就更難了。編程領域一直有個說法,“如果一個東西能用,那就別輕易改”,因為復雜代碼內部的邏輯關系錯綜復雜,改一行代碼,大概率就會影響其他的地方。所以很多工程類軟件就被牢牢地綁在了 x86 架構上,一換其它架構,即使能運行也明顯慢半截,但這其實并不是 x86 的理論特性決定的,歸根結底,靠的還是一路積累下來的歷史優勢。實際上x86 的理論特性反而藏著一個隱患,就是復雜指令集里面的“復雜”這兩個字。


2013年和 2015年,威斯康星大學的研究人員發表了兩篇論文,結論就是剔除了制程工藝、操作系統這些外界因素之后,處理器的性能和功耗,其實和使用的是復雜指令集還是精簡指令集沒有關系。反過來說,x86 和 ARM兩大陣營比拼的反而是操作系統和制程工藝。英特爾在制程工藝上占據了很長時間的優勢,為 x86 的領先地位做出了不小的貢獻,但接下來,半導體歷史上值得反復玩味的一幕就出現了,蘋果找到了當時能把電路結構做得最細的英特爾,結果英特爾沒看上蘋果的手機業務。
iPhone 最終選擇了做牛頓手寫板時用過的 ARM 架構,起初用的是三星的 ARM 芯片,從 iPhone 4 開始,改用自研的 ARM 芯片。當然智能手機也不止蘋果一家入場,但高通、三星,包括華為,在處理器上都選擇了 ARM 架構,而 x86自從錯過 iPhone 之后,就一直沒能入局,于是整個智能手機市場,就都選擇了ARM 架構。為全球市場大量生產 ARM 芯片的臺積電,也在充裕研發資金的支持下,開始了制程工藝的快速推進。然后,質變就此發生。
2017年左右,互聯網上開始出現關于臺積電制程追平英特爾的討論。同年,英特爾不再公布芯片中晶體管數量的官方數字,反倒是蘋果從大概2013、2014年左右開始年年公布 A 系列芯片的晶體管數量,到發布 M 系列電腦處理器的時候,更是每三分鐘必展現一張大號書寫晶體管數量的圖片。

2013年iPhone 5S秋季發布會

2014年iPhone 6 & 6 plus秋季發布會

這個數字本身意義并不大,多算少算差別很大,但它背后確實能看出來,時代變了。到這兒,ARM 陣營的制程工藝終于是和 x86 這邊平起平坐了。
此時,復雜指令集的“復雜”這兩個字,就顯露出問題來了。x86 處理器能高效執行復雜指令,離不開比 ARM 更復雜的硬件結構,但是當制程工藝逐漸逼近理論極限的時候,結構的復雜性就會把這個難度翻上幾倍。舉個例子,假設我和工作室的李曉白,比賽誰能在同樣尺寸的白紙上畫出更多的重復圖形,我畫方形,李曉白畫初音立繪吧。那這比賽還有比的必要嗎?結果顯而易見。所以前幾年咱們看到英特爾的制程停滯不前,并非不思進取,而是 x86 制程推進的難度真的比 ARM 大太多了。
然而這并不意味著伴隨智能手機市場一路成長的 ARM架構,就能在個人電腦市場風生水起。x86 的護城河,即我們前面反復提到的歷史優勢,影響不可謂不深遠。今天ARM 架構筆記本最有名的就是蘋果,但更早試水的其實是微軟和高通。
Wintel 看似是牢不可破的聯盟,但微軟早就悄悄開發了 “Wualcomm”,比蘋果的速度還快。早在 2017年,市面上就出現了搭載驍龍 835 的 Windows 筆記本,但完成度并不高。當時這臺電腦能穩定運行的主要就是 Windows 自帶軟件,包括微軟 Office 三件套,但像工程模擬、編程開發、還有游戲等 x86 的傳統優勢項目,就一個都沒發揮出來,大部分不能運行或加載過慢。從這一點就能看出來 x86 的這道護城河有多深,別說城外的人無法入侵,城內的人也難以另辟蹊徑,突破重圍。但早期 ARM 版 Windows 效果不佳也和試水的態度有關,ARM 精簡指令集的特點就是軟件的發揮空間特別大,它的所有指令都是固定長度的短指令,就看你軟件怎么去組合和優化。加入優化到極致,復現整個 x86 也并非不可能。當然這件事工程量巨大,也沒有必要。
不過在 ARM 陣營拿到了更好的制程工藝之后,ARM 處理器的硬件性能已經得到很大改善,如果專注于寫指令轉譯,把大部分 x86 程序的效率在 ARM 架構上復原80%,還是有不錯的發展空間。這件事需要極大的決心和魄力,于是蘋果來了。
Windows on ARM 還是試水,蘋果做M1卻抱著“要么成,要么死”的決心,以做創業公司的魄力賭上了個人電腦整個產品線。破釜沉舟,背水一戰,蘋果取得了不俗的成績。
在不懈努力下,蘋果的 Rosetta 2 轉譯做得很不錯,硬件和驅動也下了不少功夫,甚至還整出了 M1上開虛擬機跑 Windows,比正宗 ARM 版 Windows 筆記本還穩定的賽博狠活。
過渡期靠著 Rosetta 2 的 x86 轉譯穩住之后,臺積電 5 nm 制程、還有 macOS 搭配 M1 芯片聯調優化的優勢就有機會展現出來了,整體效果就是輕便、續航時間長,性能還很強。市場反饋也比較積極,2020、2021、2022 連續三年蘋果個人電腦的銷量增速都要高于全球 PC 市場。

軟件廠商看到之后,也開始陸續把程序往 ARM 架構上遷移,比如全球知名“蘋果最佳開發者”——微軟,還有 Adobe 的一些軟件。筆者比較關注的虛幻引擎,也在給 ARM 架構做原生適配,這些在網上都能查到詳細清單。不過最有象征意義的還是前頭說 Linux 的創始人也開始用上ARM 架構了,具體來說是一臺 M2 芯片的 MacBook Air,當然運行的是 Linux 系統。
Linus 在 Linux 5.19 內核的發布郵件里講了這件事,他說目前他還只是拿這臺筆記本做測試、寫寫文檔,并沒有真正用它來開發 Linux,但未來他會讓這臺 ARM 架構的筆記本、成為他出差時候用的主力機,并且他也要用它來認真研究 ARM 版 Linux 的開發了。這段話可以說是給這波由蘋果推動的ARM 架構在個人電腦上的發展做了來自技術領袖的官方認證。



不過說到這兒,ARM 和 x86 在個人電腦領域的大戰還遠遠沒有結束,甚至可以說尚未開戰。蘋果的“大動干戈”,實際上只是在“護城河”的外面剛剛安營扎寨。如前述,x86 的護城河是Wintel 聯盟從 80年代一路積累下來的歷史優勢,蘋果電腦即使是在使用英特爾處理器的時候,也沒和 Wintel 正面對抗過,像科學計算、工程模擬、還有大型游戲這些 Wintel 的傳統強項,兩邊基本上沒爆發過正面沖突。現在真正可能產生變數的,反而是“城里”的微軟。微軟早變意志不堅定,跟“城外”的高通暗通款曲,雖然試水產品效果一般,但現在一旦被“城外吃著火鍋唱著歌”的蘋果一刺激,認真對待這場變革,那 x86的歷史優勢可能就真的要被動搖了。
不過其間利害關系也是錯綜復雜,假如微軟填平“護城河”,帶領高通長驅直入,蘋果就能馬上借勢跟進,更別說還有 Steam、Linux,他們一直盯著游戲、編程開發這些細分領域。微軟一旦帶路,這些廠商全部會來分一杯羹。彼時,x86和 Windows,還真不好說是誰先消失于歷史的舞臺。
更重要的是,這道護城河可能根本無法填平。x86 上傳統工程模擬軟件的歷史包袱,跟蘋果這邊的程序不是一個量級,2006年蘋果電腦從PowerPC 換到 x86 架構的時候,上面的程序就經歷過一輪遷移,但 x86 上的很多程序是從 80年代一路發展過來的,不知道有的軟件會不會真有來自八九十年代的邏輯或者代碼,如果真有,那真的太酷了,在修改前人代碼能有多慫這件事上,你永遠可以對程序員抱有期待,所以 x86 專業軟件遷移到 ARM 這件事,很可能永遠都不會發生。
另外有沒有可能 x86 給ARM還以顏色呢?說實話這個可能性反而不小,現在總說 x86 能耗高,續航不行,這其實是被制程拖累了。x86 陣營的 AMD,用的是臺積電的先進制程工藝,續航就好不少。英特爾換上技術出身的 CEO 之后,資源都在向制程突破上傾斜,甚至還用上了政策工具,按照現在的路線圖,如果英特爾再次奪回了制程工藝的領先地位,這個劣勢就能被抹平,假如接下來微軟也能崛起的話,形勢甚至可以逆轉。前段時間筆者見過一個榮耀筆記本,它就是給芯片加了一個功耗限制,系統不工作的時候把 CPU 頻率壓下去,雖然跑分降了不少,但續航能多好幾個小時,用一整天都沒問題。假如微軟大夢初醒之后,能好好研究一下這個方向,從系統層面精準地控制處理器頻率升降,那 x86的續航絕對還有提升空間。
在此,筆者也談一下個人對 x86 大戰 ARM的看法。主觀上講筆者希望 ARM 可以大獲全勝,但這是典型的位置思維偏差。筆者是軟件工程師,而 ARM 講究的就是只給最基本的指令做好硬件實現,剩下的都交給邏輯和算法。從程序員的角度來看,這是個很清爽的設計,沒有執著于電路里的算法,廣闊天地大有可為。

舉個實際例子,十月初 Deep Mind AlphaTensor 這個項目里,AI 發現了一種人類未曾發現的,比現有方法更快的計算大矩陣相乘結果的算法。矩陣運算是今天計算機運算的基礎,你隨便玩個 3D 游戲,跑個圖的過程可能就發生了幾萬次矩陣運算,假如每次矩陣運算的速度提高 1%,總性能的提升也是很震撼的。當這種底層算法改進被發現的時候,如果是精簡指令集處理器,升級一下編譯器、升級一下操作系統和軟件,就能感受到性能提升了,但換成復雜指令集處理器就不一定。有可能也是只需要升級軟件,但也有可能必須要等到下一代處理器做完硬件升級才能體驗到,這就慢了大半拍。
今天在算法領域,有許多 AI 正在不知疲倦地做著探索工作,未來這種底層算法的新發現只多不少,所以筆者認為,靈活的 ARM 架構更適合這個快速變化的時代,這也是筆者主觀希望 ARM 替代掉 x86的原因。
客觀分析,根據前述,x86 被 ARM 顛覆這種情況很難出現,要么是英特爾和 AMD 出于某種原因,主動決定放棄 x86 改做 ARM 處理器,要么老牌工業軟件全被新一代產品替代掉,不然 x86 流失的就只是一些中間用戶,市場份額很難受到實質性影響。反之,如果英特爾能在2024年左右率先做到 2 nm 制程,率先進入埃米時代,那 x86 反倒會逆轉,用經營多年的通用性和兼容性,把流失的中間用戶再吸收回來,這件事的可能性要比 ARM顛覆 x86 大不少,至少這個是寫在了英特爾路線圖上的。所以筆者雖然主觀上支持ARM,但客觀上認為 ARM 很難撼動 x86 在個人電腦市場的地位。
有趣的是,我們去觀察蘋果在 2024年之前能搶下來多少地盤,會建立起一個怎樣的 ARM 新生態,會不會有更多的ARM 版生產力工具出來,會不會出現一個基于 ARM 的 3D 創作社區……這個過程一定會誕生很多新的玩法和機會,筆者也會持續關注。
