新聞 > 科教 > 正文

你的電腦會越來越流暢 因為英特爾終於想通了

用過電腦的差友應該都知道,Windows的兼容性好到讓人幾乎找不到不兼容的軟件。甚至於最新的 Windows11系統,依然能無壓力運行27年前的 Office95。

這種極端的兼容性一方面有微軟的功勞,另一方面,英特爾的 x86處理器架構實在是。

太穩定了!

即使是今年最新的英特爾 i3、i5、i7,他們仍然高度兼容1987年的 x86開山之作——8086處理器的指令集。

雖然後面為了新的硬件特性增加了不少新的指令集,但老的指令集也堅決不刪。

突出的就是個一脈相承,同宗同源。。。

但是看樣子,英特爾在堅持了快半個世紀之後,終於決定給它來一刀了。。。

大概是果子的 ARM處理器給了英特爾太大的震撼,前些日子英特爾發佈了一份《構想簡化的英特爾架構》白皮書。

其中正式宣佈了英特爾未來處理器的新架構—— x86S。

和名字暗示的一樣,這個新架構依舊和現有的 x86同源。

但是,英特爾砍掉了一大堆舊特性,把它給精簡(Simplify)了。

最核心的一點,就是只保留了64位模式,徹底砍掉了16位和32位模式的支持。

要知道,64位處理器如果想要原生支持舊時代的32位程序,代價還是相當大的。

比如說在驍龍8Gen2里,需要兼容32位的 A710核心,能耗上比沒有兼容性包袱的 A715核心差了20%。

而現在,英特爾也像蘋果、高通一樣,為了產品性能,全面擁抱64位設計了。。。

OK,照理來說,這篇稿子說到這兒就該結束了。結果我在看英特爾這個白皮書的時候,發現裏面提到:「簡化架構依舊可以通過64位模式提供32位程序支持」。

換句話說,我們現在電腦上那堆破爛好用的小工具、QQ、百度網盤,以及各種網絡遊戲。。。

這些處於「32位重災區」的程序,就算一輩子不改用64位代碼,也能在英特爾之後的 x86S架構上直接運行。

而不是像手機上那樣,被蘋果和谷歌推着全面轉向64位開發。

我擦,英特爾這是開發了什麼劃時代的魔法???

為了搞明白英特爾到底是做了什麼,才做到了蘋果都做不到的事,我好好去找了找資料。

然後發現了一個事:

英特爾移除32位模式,確實不等於移除32位程序支持。甚至移除了32位模式,還能讓32位程序的運行速度變快。。。

話說到這塊兒,我們就得聊一聊英特爾現在是怎麼設計處理器的了。

首先,一塊最新的英特爾 i9處理器,運行效率可以媲美蘋果 M1處理器。

但是大家猜猜,它在運行一個最新開發的64位程序時,第一步執行的操作是什麼?

是把自己模擬成一顆1978年的8086處理器,然後以16位模式開始運行程序代碼。。。

別問,問就是「兼容性考慮」的一部分。

但是,模擬出來的16位模式是肯定執行不了64位程序。

所以處理器會退出16位模擬——再切換進32位模擬。。。

32位模擬自然也是跑不了的,這時候處理器才會最終回到64位工作模式,再次開始執行。

OK,這次程序終於跑起來了。

是不是很抽象。。。

所以為什麼,處理器里會有這麼抽象的一個「逐級切換」的過程呢——因為1985年,英特爾設計首顆32位架構處理器80386的時候,就是這麼定義「兼容的運行規範」的。

別問,問就是「兼容性考慮」的一部分。

雖然以如今處理器的性能來說,「逐級模擬」的性能損耗也不是那麼大。

但由於作業系統的調度方式,它每秒都要發生幾十上百次!

積少成多,這得多浪費啊。。。

就這樣英特爾還能把 i9的運行效率做到蘋果 M1的水平,對不起英子,以前是我誤會你了。

我向你道歉!!!

咳咳,好了我們言歸正傳:

而這次的 x86S最重要的一點變化,就是砍掉了這個「逐級模擬」模式,起手直接進入64位模式幹活。

這不簡單多了!

而且沒有了16位和32位模擬,不僅是代碼執行流程得到了精簡,處理器設計也能得到簡化。

要知道,這些功能實現的根本,是光刻機在晶片上刻出來了相應的電路。

把這些爺爺輩電路砍掉之後,騰出來的地方自然可以給更新、更寶貴的功能模塊使用。

OK,英特爾做了什麼我們搞明白了,可是另一個問題還是沒解決:

為什麼處理器里都沒有32位模式了,未來的 x86S也還是能無傷運行32位程序?

這件事,功勞其實在微軟。

早在 WinXP64位版發佈的時候,微軟的程式設計師們就在系統里內置好了「32位 Windows子系統」,能夠以近乎無損且無感的方式轉譯32位程序到64位系統中執行。

換句話說,現在我們電腦里的32位程序,其實也沒用到處理器的32位模式。

它們一直都是被 Windows系統自己轉譯執行的。。。

emmmm,顯得英特爾之前的兼容操作更蠢了。

假如你是個一直使用最新 Windows系統的普通用戶,那麼英特爾接下來要推廣的 x86S對你是百利無一害的。

等新的 x86S處理器發佈之後,沖就完事了。

現在大家應該能看出來,作為一個沿用了小半個世紀的架構,每一顆英特爾 x86處理器都是一個小小的「屎山堆」。

上面提到的16-32-64的兼容模式,是對處理器性能比較有影響的一個設計,但它其實還只是 x86這坨屎山的一個側面。

事實上,英特爾這次為了列舉 x86里有多少「過時特性」,花掉了十多頁 pdf。。。

x86S將刪除和修改的特性列表

所以為什麼英特爾憋到現在才開始決定對 x86架構動刀子,以前沒有人站出來過嗎?

其實是有過的,早在1994年的時候,32位的 x86處理器就已經暴露出問題了。

最主要的隱患是,它的內存尋址最大隻支持到4GB,再大就不支持了。

這對當時的個人電腦來說問題不大,但是對於企業和網站的伺服器來說,這相當於把性能上限給鎖死了。

那一次,英特爾給出的答案是推出全新的「安騰」架構——不僅支持超大的內存,而且設計比 x86架構精巧的多。

雄心勃勃的英特爾想讓大家通過「安騰」處理器重新認識電腦。

安騰電腦的貼紙

結果因為完全不兼容以前的 x86程序,任何一個程序要想運行在安騰處理器上,都要重寫。

而且據開發過安騰程序的小夥伴說,開發安騰架構的程序,要比開發 x86架構的程序複雜的多。

於是全世界的程式設計師們一起,給英特爾結結實實上了一課——壓根沒人想給他搞開發。。。

估計就是因為這次險些把公司玩死的經歷,才讓英特爾把保證兼容這件事給寫進了祖訓里。

但是現在,時代又不一樣了。

最近兩年,蘋果靠着 M系列晶片瘋狂吃走市場,傳統 x86電腦的市佔率如山體滑坡。。。

在伺服器上,同樣是 x86節節敗退,ARM步步緊逼。

假如大家看過行業新聞會發現,現在華為、阿里發佈的新款伺服器,幾乎都是一水的 ARM處理器。

兼容性固然可以換來 x86程式設計師們的肯定,但假如整個 x86市場都要被干穿了,兼容不兼容的。。。

還是先放一邊兒吧。

現在的市場風向,已經足夠激起英特爾的危機感了。

而 x86S,就是英特爾應對這次危機的答卷。

並且與上一次大刀闊斧,「重新做人」的安騰相比,x86S這次的調整就像一場精妙的手術。

對普通用戶來說,原有的軟件都能正常使用,就和蘋果從英特爾轉向 ARM時一樣——那處理器的變化和我們有什麼關係呢?

我對 x86S能產生怎樣的效果,還是比較樂觀的。

畢竟前兩年就有一個現成的例子:高通和聯發科放棄32位支持之後,安卓手機晶片的性能瞬間飆升了一截,首次和早早放棄32位的蘋果 A系列晶片站到了同一水平線上。

同樣的,對於 x86這位拖着半個世紀包袱的老將,放下過去的重擔,想來只會讓它跑的更快。

責任編輯: 夏雨荷  來源:差評 轉載請註明作者、出處並保持完整。

本文網址:https://hk.aboluowang.com/2023/0627/1919551.html