科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件古老的x86设计仍未过时

古老的x86设计仍未过时

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

20世纪70年代后期的计算技术很少有能持续到今天的,但是有一个显著的例外:那就是用于全世界绝大部分计算机的基础运算指令。

2007年4月11日

关键字:

  • 评论
  • 分享微博
  • 分享邮件


20世纪70年代后期的计算技术很少有能持续到今天的,但是有一个显著的例外:那就是用于全世界绝大部分计算机的基础运算指令。

X86指令集体系结构,作为Intel8086芯片的一部分于1978年面世,现今在世界上超过90%的PC机和服务器中使用它。

另外的指令集当然也存在,但都是一个软件程序可以使用的基本操作列表。如IBM的Power,Sun的微系统Sparc和Intel自己的EPIC(精确并行指令计算)项目等。但是x86仍旧继续兴旺繁荣而且在可见的未来没有任何真正的竞争对手。因为它提供了足够好的性能以及存在已经写了将近30年的大量软件。

麻省理工学院计算机科学与工程系的Arvind教授说到:“如果你看一下计算机的历史,就会发现任何重大发展都是因为市场中存在一个新的需求或改变”。

但是显然x86是这个规则的一个例外。无论是浏览器的出现还是被认为使得PC机流行起来的廉价网络计算机的发明,x86后的引擎都能找到适当的方法来适应新情况。

这是一个问题吗?

批评者说x86承受了支持过时特性和软件的负担,并且由于它的遗产影响了能量效率的改进和软件的发展。喜剧家可能会说这取决于你怎么看待disco。

卑微的开始

1978年x86 ISA伴随Intel的8086处理器面世,分析家McCarron 院长说当时市场上因为它的寻址方式并不认为是最完美的实现形式。IBM为他们的新机器选择了做了轻微修改的8088版,由此x86体系结构开始不断发展。

AMD公司首席技术官Phil Hester说:“它已开始是设计用于电子表格的8位芯片(Intel和高级微设备AMD当前芯片是64位)”。因此,刚开始的设计缺少对适当数量通用寄存器的支持,在现代计算机时代需要用到通用寄存器。通用寄存器是重要的用来等待处理的小型数据暂存站,它既可以用来存放数据也可以存放数据存储的地址,因此十分有用。

随着使用IBM生产的个人计算机的增加以及所谓克隆制造的发展,x86成为个人计算机市场不可替代的心脏。20世纪90年代中期,Intel使用x86芯片进入服务器市场巩固了ISA的统治。现今,世界上超过90%的服务器芯片使用来自Intel或AMD的x86处理器。

Intel和AMD通过不断的为ISA添加扩展来不断更新x86,例如90年代中期Intel的MMX和SSE指令提高了图像的性能,近10年来AMD的64位扩展帮助解决了寄存器问题。主管公司研究部门的微软高级副总裁Rick Rashid说:“在指令级别上已经发生了很大的变化,我们只要同样的调用它即可”。

但是x86ISA每一代的扩展,越来越增加了芯片的复杂性,对于旧特性的支持保证了软件的兼容性。

虚拟软件公司的首席技术官Simon Crosby说:“无论如何,没有任何原因说明为什么Intel的体系结构仍旧如此复杂,不知道他们为什么不减少芯片上60%的晶体管,其中大部分都是有效模式”。

如果芯片生产商声明他们的芯片只能运行老版本的软件如1990年或1995年的,你会发现价格和功耗将会大大减小。问题是Windows深层代码是取自20世纪80年代早期的MS-DOS操作系统,这些代码在引导时需要寻找特定指令。

指令的大部分特性且支持合理的新技术,为未来20年提供一个现代基础指令集体系结构。

相反,EPIC成为如何不引入一个新的指令集的教训。软件开发人员回避不得不学一门新的计算机语言,以及早期的问题阻碍Intel和HP开拓处理器广大市场的机会。AMD深受人们欢迎的Opteron x86-64处理器(后来被Intel复制)成为最终的胜利者,并将EPIC和Itanium推向了高端服务器市场,因为该领域可以充分利用Itanium提供的性能来满足端口应用。

和大多其它事情一样,都是取决于资金问题。数以十亿的资金已经投入应用于x86的软件,即使是Intel这一技术业界最有影响的公司,也难以使开发人员从这些投资中撤出。

有可以替代的吗?

去年,Intel首席技术官Justin Rattner说他们公司在可以预见的未来没有开发新的ISA的计划。虽然最近的Windows NT4.0支持多种不同的指令集,但微软的Rashid说他们公司也没有任何开发用于竞争的指令集的项目。

因此什么可以改变这场游戏呢?性能始终是让软件开发人员认真考虑的问题,但是目前并没有显著改变。Hester说任何所谓的“全新”设计可使现代x86 ISA在性能或功耗方面改进10%左右的说法是靠不住的。

Intel数字企业集团职深芯片设计师、高级副总裁、执行经理Pat Gelsinger说性能方面的一些小的改进并不会极大的促使人们离开x86,对于已经存在的可以运行老的应用的设计,每年我们在性能方面都取得两倍的改进。

芯片工业可以继续在处理器上集成晶体管的能力意味着越来越少的晶体管用来维持有效代码的运行。Gelsinger说虽然存在兼容性问题,但是兼容的价值超过了它所导致的价格升高。

一项技术改进是引入带有两个或多个处理内核的芯片。芯片生产商通过在芯片上构建多个低速处理器内核来解决单个高速内核所导致的功耗问题。不过,目前每个内核需要使用同样的指令集。

Arvind说到,有些人认为混合将是未来发展的一种可能:可以在x86芯片上使用其它的专门用来完成某一特定人物的ISA来构建更小性价比更高的内核,如视频处理等。

IBM在它们的单元处理器设计中正在做类似的工作,并用作索尼的PlayStation 3的核心。在8个独立的处理单元中有一种管理角色使用了PowerPC内核。沿着这条路进一步发展,芯片厂家将会保留基本的x86内核用来维持向后兼容性,并可以完成下一代复杂的专注于不同硬件(可能运行也可能不运行x86)的处理任务。

McCarron说到这种改变的最早努力可见于AMD的Fusion项目,在该项目中他们计划将一个图像处理器集成到PC处理器上。在下一个10年中,拥有使用不同ISA的混合内核的处理器可能会变成现实,但是不要依赖它。

McCarron说:“我们需要的是一种进化的体系结构,当出现问题时它可以适应调节。我们最终所追求的是它可以使得所有器件一起配合工作,这就是我们想要的。”


 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章