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