科技行者

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

知识库

知识库 安全导航

至顶网服务器频道设计沿用30年 x86架构老当益壮

设计沿用30年 x86架构老当益壮

  • 扫一扫
    分享文章到微信

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

1970年代末期问世的计算机技术,到现在恐怕都已成为老古董,唯独有个例外:对世上绝大多数计算机发号施令的x86指令集架构(ISA)。

作者:CNET:Tom Krazit/唐慧文:译 2007年4月5日

关键字: x86

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

    1970年代末期问世的计算机技术,到现在恐怕都已成为老古董,唯独有个例外:对世上绝大多数计算机发号施令的x86指令集架构(ISA)

    今天,世界上逾九成的PC与服务器都采用x86指令集架构,但这种ISA设计早在1978年就问世,是英特尔8086芯片的一部分。

    本月英特尔全球开发者论坛将在北京举行年度大会,届时x86指令集架构将是一大主题。

基本上,指令集是一串让软件程序能使用的计算机操作指令。当然,除了x86指令集之外,另有别的指令集,例如IBMPowerSunSparc和英特尔自家的EPIC (explicitly parallel instruction computing) Itanium计划,诸如此类。但x86仍活跃至今,而且放眼望去看不到竞争对手,因为x86提供够强的效能,而且近三十年来为支持x86平台而写的软件不计其数。 

    单名Arvind的麻省理工学院(MIT)计算机科学与工程学教授说:若你回顾计算机学的历史,巨变之所以发生,都是因为市场上涌现截然不同的新需求或新的变化。

    x86显然是特例。即使发明了浏览器,或低价位的网络计算机,眼看PC似乎就要被淘汰,但x86幕后的工程师总是能想出办法,让它能适应环境变迁。

    批评者指出,过时的功能与软件是x86的负担,为了维持其固有的设计,往往在节电效率与软件开发上必须有所牺牲。 但这恐怕是见仁见智的问题。

出身寒微

    x86 ISA1978年随着英特尔推出8086处理器而首度亮相。Mercury Research分析师Dean McCarron说,即使在当时,这种设计受限于它搜寻内存地址的方式,也不被视为市场上最优秀的指令集架构。但因IBM的新PC选用8088 ISA--8086大同小异的版本--于是 x86架构开始普及化。

    超微公司(AMD)技术官Phil Hester说:“x86起初是为八位芯片设计(英特尔与AMD目前的芯片已进步到64),用来执行电子表格。因此,原来的设计不足以支持当前运算所需的一般用途缓存器(general-purpose registers)的数量。缓存器基本上是数据等候处理时暂存的小型装置,一般用途缓存器可储存数据或地址。

    随着使用IBM PC的人数及制造IBM兼容PC的厂商增家,x86逐渐成为PC市场不可或缺的心脏。1990年代中期,英特尔挟着x86芯片进攻服务器市场,进一步巩固ISA的支配地位。今天,全球售出的服务器中,超过90%都采用英特尔或AMD制造的x86处理器。

    英特尔与AMD不断在ISA中加入延伸指令集,所以x86能一直与时俱进。例如,英特尔在1990年代中期加入MMXSSE指令集,用来改善绘图效能。AMD近年来则加入64位延伸,协助避开缓存器的问题。 

    但随着一代又一代的延伸指令集加入x86 ISAx86芯片也变得愈来愈复杂,而且必须兼顾对旧功能的支持,才能确保软件的兼容性。

    XenSource虚拟化软件技术官Simon Crosby说:不论如何,英特尔架构实在没理由这么复杂。何不舍弃芯片上60%的晶体管,毕竟其中大多数都用来支持老旧的程序。

    Crosby说,如果芯片制造商宣称该公司的芯片只能用来跑19901995年以后写的旧软件,成本和用电量势必大幅降低。问题是,在Windows操作系统深处埋藏了许多撷取自1980年代初期所写的MS-DOS操作系统的程序代码,而那些程序代码在开机时会找寻某些指令集。

    这正是促使英特尔与惠普连手推动EPIC计划的动机。EPIC计划的目的,是以干净的设计,清除x86设计的许多怪异特色以及对旧技术的支持,以便为未来20年的现代运算奠定基础。

    然而,EPIC也演变成不宜推出新指令集的教训。

    软件开发人员怯于从头学习全新的计算机语言,而且初期部署的问题重重,都阻挠英特尔和惠普为EPIC处理器打造广大的市场。同时,AMDOpteron x86-64处理器(后来英特尔也跟进)是压倒骆驼的最后一根稻草,把EPICItanium打入高阶服务器市场,让应用程序能利用Itanium提供的效能优势。

    资金也是问题。业者多年来已在x86软件上投入巨资,即使是影响力强大的英特尔,也无法说服软件开发人员舍弃既有的投资。

有替代品吗?

     去年,英特尔技术官Justin Rattner表示,该公司不打算在可见的未来开发新的ISA。微软资深副总裁Rick Rashid说,他领导的研究部门并未从事有关替代指令集的计划,虽然微软支持多种不同的指令集,例如1999年支持Windows NT 4.0

    未来有什么变量能改变现况呢? 效能总是软件开发人员关切的因素,但目前还看不出来有什么重大的新发展。Hester说,不大可能出现所谓干净的设计,能够达到比现代x86 ISA10%以上的效能或节能效率。

    英特尔数字企业事业群资深副总裁既资深芯片设计师Pat Gelsinger说,小幅的效能改良,不足以鼓励开发人员大举迁离x86平台。他说:现行设计每年让效能加倍,且能执行旧有的应用程序。

    同时,芯片业持续在处理器上塞进更多的晶体管,意味维持旧程序运作需要的晶体管日益减少。Gelsinger说:兼容性的负担仍在,但兼容性的利多于弊。

    可能促成改变的一种技术改良,是双核心或多核心芯片的推出。芯片制造商已公认,用多个速度较慢的处理器核心来打造芯片,是回避单一高速核心耗电问题的一种方式。不过,目前,每个核心必须使用同一指令集。

    Arvind说,有些人认为,未来可能采用混合式的解决方案:为x86设计小型、节电效率更高的核心,但采用别的ISAs,专门用来执行特定的任务,例如视讯处理。IBMCell处理器设计便是一个例子,用于SonyPlayStation 3游戏机。Cell使用PowerPC核心。

    放眼更远的未来,芯片制造商可能维持基本的x86核心,以维持回溯兼容性,并采专用的硬件来复杂处理任务,这部分就不一定会在x86上执行了。

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

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

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