用過電腦的差友應(yīng)該都知道,Windows 的兼容性好到讓人幾乎找不到不兼容的軟件。
甚至于最新的 Windows 11 系統(tǒng),依然能無壓力運(yùn)行 27 年前的 Office 95。
(資料圖片)
這種極端的兼容性一方面有微軟的功勞,另一方面,英特爾的 x86 處理器架構(gòu)實(shí)在是。。。
太穩(wěn)定了!
即使是今年最新的英特爾 i3、i5、i7,它們?nèi)匀桓叨燃嫒?1987 年的 x86 開山之作 —— 8086 處理器的指令集。
雖然后面為了新的硬件特性增加了不少新的指令集,但老的指令集也堅(jiān)決不刪。
突出的就是個(gè)一脈相承,同宗同源。。。
但是看樣子,英特爾在堅(jiān)持了快半個(gè)世紀(jì)之后,終于決定給它來一刀了。。。
大概是果子的 ARM 處理器給了英特爾太大的震撼,前些日子英特爾發(fā)布了一份《構(gòu)想簡化的英特爾架構(gòu)》白皮書。
其中正式宣布了英特爾未來處理器的新架構(gòu) —— x86S。
和名字暗示的一樣,這個(gè)新架構(gòu)依舊和現(xiàn)有的 x86 同源。
但是,英特爾砍掉了一大堆舊特性,把它給精簡(Simplify)了。
最核心的一點(diǎn),就是只保留了 64 位模式,徹底砍掉了 16 位和 32 位模式的支持。
要知道,64 位處理器如果想要原生支持舊時(shí)代的 32 位程序,代價(jià)還是相當(dāng)大的。
比如說在驍龍 8Gen2 里,需要兼容 32 位的 A710 核心,能耗上比沒有兼容性包袱的 A715 核心差了 20%。
而現(xiàn)在,英特爾也像蘋果、高通一樣,為了產(chǎn)品性能,全面擁抱 64 位設(shè)計(jì)了。。。
OK,照理來說,這篇稿子說到這兒就該結(jié)束了。結(jié)果我在看英特爾這個(gè)白皮書的時(shí)候,發(fā)現(xiàn)里面提到:“簡化架構(gòu)依舊可以通過 64 位模式提供 32 位程序支持”。
換句話說,我們現(xiàn)在電腦上那堆 破爛 好用的小工具、QQ、百度網(wǎng)盤,以及各種網(wǎng)絡(luò)游戲。。。
這些處于 “32 位重災(zāi)區(qū)” 的程序,就算一輩子不改用 64 位代碼,也能在英特爾之后的 x86S 架構(gòu)上直接運(yùn)行。
而不是像手機(jī)上那樣,被蘋果和谷歌推著全面轉(zhuǎn)向 64 位開發(fā)。
我擦,英特爾這是開發(fā)了什么劃時(shí)代的魔法???
為了搞明白英特爾到底是做了什么,才做到了蘋果都做不到的事,我好好去找了找資料。
然后發(fā)現(xiàn)了一件事:
英特爾移除 32 位模式,確實(shí)不等于移除 32 位程序支持。甚至移除了 32 位模式,還能讓 32 位程序的運(yùn)行速度變快。。。
話說到這塊兒,我們就得聊一聊英特爾現(xiàn)在是怎么設(shè)計(jì)處理器的了。
首先,一塊最新的英特爾 i9 處理器,運(yùn)行效率可以媲美蘋果 M1 處理器。
但是大家猜猜,它在運(yùn)行一個(gè)最新開發(fā)的 64 位程序時(shí),第一步執(zhí)行的操作是什么?
是把自己模擬成一顆1978 年的 8086 處理器,然后以 16 位模式開始運(yùn)行程序代碼。。。
別問,問就是 “兼容性考慮” 的一部分。
但是,模擬出來的 16 位模式是肯定執(zhí)行不了 64 位程序。
所以處理器會(huì)退出 16 位模擬 —— 再切換進(jìn) 32 位模擬。。。
32 位模擬自然也是跑不了的,這時(shí)候處理器才會(huì)最終回到 64 位工作模式,再次開始執(zhí)行。
OK,這次程序終于跑起來了。
是不是很抽象。。。
所以為什么,處理器里會(huì)有這么抽象的一個(gè) “逐級(jí)切換” 的過程呢 ——因?yàn)?1985 年,英特爾設(shè)計(jì)首顆 32 位架構(gòu)處理器 80386 的時(shí)候,就是這么定義 “兼容的運(yùn)行規(guī)范” 的。
別問,問就是 “兼容性考慮” 的一部分。
雖然以如今處理器的性能來說,“逐級(jí)模擬” 的性能損耗也不是那么大。
但由于操作系統(tǒng)的調(diào)度方式,它每秒都要發(fā)生幾十上百次!
積少成多,這得多浪費(fèi)啊。。。
就這樣英特爾還能把 i9 的運(yùn)行效率做到蘋果 M1 的水平,對(duì)不起英子,以前是我誤會(huì)你了。
我向你道歉!??!
咳咳,好了我們言歸正傳:
而這次的 x86S 最重要的一點(diǎn)變化,就是砍掉了這個(gè) “逐級(jí)模擬” 模式,起手直接進(jìn)入 64 位模式干活。
這不簡單多了!
而且沒有了 16 位和 32 位模擬,不僅是代碼執(zhí)行流程得到了精簡,處理器設(shè)計(jì)也能得到簡化。
要知道,這些功能實(shí)現(xiàn)的根本,是光刻機(jī)在芯片上刻出來了相應(yīng)的電路。
把這些爺爺輩電路砍掉之后,騰出來的地方自然可以給更新、更寶貴的功能模塊使用。
OK,英特爾做了什么我們搞明白了,可是另一個(gè)問題還是沒解決:
為什么處理器里都沒有 32 位模式了,未來的 x86S 也還是能無傷運(yùn)行 32 位程序?
這件事,功勞其實(shí)在微軟。
早在 WinXP 64 位版發(fā)布的時(shí)候,微軟的程序員們就在系統(tǒng)里內(nèi)置好了 “32 位 Windows 子系統(tǒng)”,能夠以近乎無損且無感的方式轉(zhuǎn)譯 32 位程序到 64 位系統(tǒng)中執(zhí)行。
換句話說,現(xiàn)在我們電腦里的 32 位程序,其實(shí)也沒用到處理器的 32 位模式。
它們一直都是被 Windows 系統(tǒng)自己轉(zhuǎn)譯執(zhí)行的。。。
emmmm,顯得英特爾之前的兼容操作更蠢了。
假如你是個(gè)一直使用最新 Windows 系統(tǒng)的普通用戶,那么英特爾接下來要推廣的 x86S 對(duì)你是百利無一害的。
等新的 x86S 處理器發(fā)布之后,沖就完事了 。
現(xiàn)在大家應(yīng)該能看出來,作為一個(gè)沿用了小半個(gè)世紀(jì)的架構(gòu),每一顆英特爾 x86 處理器都是一個(gè)小小的 “屎山堆”。
上面提到的 16-32-64 的兼容模式,是對(duì)處理器性能比較有影響的一個(gè)設(shè)計(jì),但它其實(shí)還只是 x86 這坨屎山的一個(gè)側(cè)面。
事實(shí)上,英特爾這次為了列舉 x86 里有多少 “ 過時(shí)特性 ”,花掉了十多頁 pdf。。。
x86S 將刪除和修改的特性列表
所以為什么英特爾憋到現(xiàn)在才開始決定對(duì) x86 架構(gòu)動(dòng)刀子,以前沒有人站出來過嗎?
其實(shí)是有過的,早在 1994 年的時(shí)候,32 位的 x86 處理器就已經(jīng)暴露出問題了。
最主要的隱患是,它的內(nèi)存尋址最大只支持到 4GB,再大就不支持了。
這對(duì)當(dāng)時(shí)的個(gè)人電腦來說問題不大,但是對(duì)于企業(yè)和網(wǎng)站的服務(wù)器來說,這相當(dāng)于把性能上限給鎖死了。
那一次,英特爾給出的答案是推出全新的“安騰”架構(gòu) —— 不僅支持超大的內(nèi)存,而且設(shè)計(jì)比 x86 架構(gòu)精巧的多。
雄心勃勃的英特爾想讓大家通過“安騰”處理器重新認(rèn)識(shí)電腦。
安騰電腦的貼紙
結(jié)果因?yàn)橥耆患嫒菀郧暗?x86 程序,任何一個(gè)程序要想運(yùn)行在安騰處理器上,都要重寫。
而且據(jù)開發(fā)過安騰程序的小伙伴說,開發(fā)安騰架構(gòu)的程序,要比開發(fā) x86 架構(gòu)的程序復(fù)雜的多。
于是全世界的程序員們一起,給英特爾結(jié)結(jié)實(shí)實(shí)上了一課 —— 壓根沒人想給他搞開發(fā)。。。
估計(jì)就是因?yàn)檫@次險(xiǎn)些把公司玩死的經(jīng)歷,才讓英特爾把保證兼容這件事給寫進(jìn)了祖訓(xùn)里。
但是現(xiàn)在,時(shí)代又不一樣了。
最近兩年,蘋果靠著 M 系列芯片瘋狂吃走市場,傳統(tǒng) x86 電腦的市占率如山體滑坡。。。
在服務(wù)器上,同樣是 x86 節(jié)節(jié)敗退,ARM 步步緊逼。
假如大家看過行業(yè)新聞會(huì)發(fā)現(xiàn),現(xiàn)在華為、阿里發(fā)布的新款服務(wù)器,幾乎都是一水的 ARM 處理器。
兼容性固然可以換來 x86 程序員們的肯定,但假如整個(gè) x86 市場都要被干穿了,兼容不兼容的。。。
還是先放一邊兒吧。
現(xiàn)在的市場風(fēng)向,已經(jīng)足夠激起英特爾的危機(jī)感了。
而 x86S,就是英特爾應(yīng)對(duì)這次危機(jī)的答卷。
并且與上一次大刀闊斧,“重新做人”的安騰相比,x86S 這次的調(diào)整就像一場精妙的手術(shù)。
對(duì)普通用戶來說,原有的軟件都能正常使用,就和蘋果從英特爾轉(zhuǎn)向 ARM 時(shí)一樣 ——那處理器的變化和我們有什么關(guān)系呢?
我對(duì) x86S 能產(chǎn)生怎樣的效果,還是比較樂觀的。
畢竟前兩年就有一個(gè)現(xiàn)成的例子:高通和聯(lián)發(fā)科放棄 32 位支持之后,安卓手機(jī)芯片的性能瞬間飆升了一截,首次和早早放棄 32 位的蘋果 A 系列芯片站到了同一水平線上。
同樣的,對(duì)于 x86 這位拖著半個(gè)世紀(jì)包袱的老將,放下過去的重?fù)?dān),想來只會(huì)讓它跑的更快。
標(biāo)簽: