你的电脑会越来越流畅 因为 Intel终于想通了
你的电脑会越来越流畅因为Intel终于想通了这种极端的兼容性一方面有微软的功劳,另一方面,Intel的x86处理器架构实在是……太稳定了!即使是今年最新的Inteli3、i5、i7,他们仍然高度兼容 1987年的x86开山之作 —— 8086处理器的指令集。虽然后面为了新的硬件特性增加了不少新的指令集,但老的指令集也坚决不删。突出的就是个一脉相承,同宗同源。但是看样子,Intel在坚持了快半个世纪之后,终于决定给它来一刀了。大概是果子的ARM处理器给了Intel太大的震撼,前些日子Intel发布了一份《构想简化的Intel架构》白皮书。其中正式宣布了Intel未来处理器的新架构——x86S。和名字暗示的一样,这个新架构依旧和现有的x86同源。但是,Intel砍掉了一大堆旧特性,把它给精简(Simplify)了。最核心的一点,就是只保留了64位模式,彻底砍掉了16位和32位模式的支持。要知道,64位处理器如果想要原生支持旧时代的32位程序,代价还是相当大的。比如说在骁龙8Gen2里,需要兼容32位的A710核心,能耗上比没有兼容性包袱的A715核心差了20%。而现在,Intel也像苹果、高通一样,为了产品性能,全面拥抱64位设计了。OK,照理来说,这篇稿子说到这儿就该结束了。结果我在看Intel这个白皮书的时候,发现里面提到:“简化架构依旧可以通过64位模式提供32位程序支持。”换句话说,我们现在电脑上那堆 破烂 好用的小工具、QQ、百度网盘,以及各种网络游戏。这些处于“32位重灾区”的程序,就算一辈子不改用64位代码,也能在Intel之后的x86S架构上直接运行。而不是像手机上那样,被苹果和谷歌推着全面转向64位开发。我擦,Intel这是开发了什么划时代的魔法???为了搞明白Intel到底是做了什么,才做到了苹果都做不到的事,我好好去找了找资料。然后发现了一个事:Intel移除32位模式,确实不等于移除32位程序支持。甚至移除了32位模式,还能让32位程序的运行速度变快。话说到这块儿,我们就得聊一聊Intel现在是怎么设计处理器的了。首先,一块最新的Inteli9处理器,运行效率可以媲美苹果M1处理器。但是大家猜猜,它在运行一个最新开发的64位程序时,第一步执行的操作是什么?是把自己模拟成一颗 1978年的8086 处理器,然后以16位模式开始运行程序代码。别问,问就是“兼容性考虑”的一部分。但是,模拟出来的16位模式是肯定执行不了64位程序。所以处理器会退出16位模拟——再切换进32位模拟。32位模拟自然也是跑不了的,这时候处理器才会最终回到64位工作模式,再次开始执行。OK,这次程序终于跑起来了。是不是很抽象。所以为什么,处理器里会有这么抽象的一个“逐级切换”的过程呢?因为1985年,Intel设计首颗32位架构处理器 80386 的时候,就是这么定义“兼容的运行规范”的。别问,问就是“兼容性考虑”的一部分。虽然以如今处理器的性能来说,“逐级模拟”的性能损耗也不是那么大。但由于操作系统的调度方式,它每秒都要发生几十上百次!积少成多,这得多浪费啊。就这样Intel还能把i9的运行效率做到苹果M1的水平,对不起英子,以前是我误会你了。我向你道歉!!!咳咳,好了我们言归正传:这次的x86S最重要的一点变化,就是砍掉了这个“逐级模拟”模式,起手直接进入64位模式干活。这不简单多了!而且没有了16位和32位模拟,不仅是代码执行流程得到了精简,处理器设计也能得到简化。要知道,这些功能实现的根本,是光刻机在芯片上刻出来了相应的电路。把这些爷爷辈电路砍掉之后,腾出来的地方自然可以给更新、更宝贵的功能模块使用。OK,Intel做了什么我们搞明白了,可是另一个问题还是没解决:为什么处理器里都没有32位模式了,未来的x86S也还是能无伤运行32位程序?这件事,功劳其实在微软。早在WinXP64位版发布的时候,微软的程序员们就在系统里内置好了“32位Windows子系统”,能够以近乎无损且无感的方式转译32位程序到64位系统中执行。换句话说,现在我们电脑里的32位程序,其实也没用到处理器的32位模式。它们一直都是被Windows系统自己转译执行的。emmmm,显得Intel之前的兼容操作更蠢了。假如你是个一直使用最新Windows系统的普通用户,那么Intel接下来要推广的x86S对你是百利无一害的。等新的x86S处理器发布之后,冲就完事了。现在大家应该能看出来,作为一个沿用了小半个世纪的架构,每一颗Intelx86处理器都是一个小小的“屎山堆”。上面提到的16-32-64的兼容模式,是对处理器性能比较有影响的一个设计,但它其实还只是x86这坨屎山的一个侧面。事实上,Intel这次为了列举x86里有多少“过时特性”,花掉了十多页pdf。x86S将删除和修改的特性列表:所以为什么Intel憋到现在才开始决定对x86架构动刀子,以前没有人站出来过吗?其实是有过的,早在1994年的时候,32位的x86处理器就已经暴露出问题了。最主要的隐患是,它的内存寻址最大只支持到4GB,再大就不支持了。这对当时的个人电脑来说问题不大,但是对于企业和网站的服务器来说,这相当于把性能上限给锁死了。那一次,Intel给出的答案是推出全新的“安腾”架构——不仅支持超大的内存,而且设计比x86架构精巧的多。雄心勃勃的Intel想让大家通过“安腾”处理器重新认识电脑。安腾电脑的贴纸:结果因为完全不兼容以前的x86程序,任何一个程序要想运行在安腾处理器上,都要重写。而且据开发过安腾程序的小伙伴说,开发安腾架构的程序,要比开发x86架构的程序复杂的多。于是全世界的程序员们一起,给Intel结结实实上了一课——压根没人想给他搞开发。估计就是因为这次险些把公司玩死的经历,才让Intel把保证兼容这件事给写进了祖训里。但是现在,时代又不一样了。最近两年,苹果靠着M系列芯片疯狂吃走市场,传统x86电脑的市占率如山体滑坡。在服务器上,同样是x86节节败退,ARM步步紧逼。假如大家看过行业新闻会发现,现在华为、阿里发布的新款服务器,几乎都是一水的ARM处理器。兼容性固然可以换来x86程序员们的肯定,但假如整个x86市场都要被干穿了,兼容不兼容的,还是先放一边儿吧。现在的市场风向,已经足够激起Intel的危机感了。而x86S,就是Intel应对这次危机的答卷。并且与上一次大刀阔斧,“重新做人”的安腾相比,x86S这次的调整就像一场精妙的手术。对普通用户来说,原有的软件都能正常使用,就和苹果从Intel转向ARM时一样—— 那处理器的变化和我们有什么关系呢?我对x86S能产生怎样的效果,还是比较乐观的。毕竟前两年就有一个现成的例子:高通和联发科放弃32位支持之后,安卓手机芯片的性能瞬间飙升了一截,首次和早早放弃32位的苹果A系列芯片站到了同一水平线上。同样的,对于x86这位拖着半个世纪包袱的老将,放下过去的重担,想来只会让它跑的更快。...PC版:https://www.cnbeta.com.tw/articles/soft/1367295.htm手机版:https://m.cnbeta.com.tw/view/1367295.htm