Atom的前生今世
世间本没有PC处理器和嵌入式处理器。这两种处理器在同一天诞生。
1976年5月,Intel开始设计8086处理器。工程师没有想到这颗处理器将给后世带来如此深远的影响。如同许多改变人类命运的产品,设计者最初并没有太大的追求,诸多的不经意与偶然促成了一个伟大的产品[24]。1978年6月8日,Intel正式推出8086处理器[25]。1981年8月12日,基于8088处理器的IBM PC诞生[26]。PC很快席卷了整个世界。
嵌入式处理器这个称呼也随之出现。从广义的角度上讲,所有处理器都是嵌入式处理器,包括用于服务器,PC和嵌入式领域的处理器。PC的日益普及,使得PC处理器从广义的嵌入式领域中脱颖而出,成为单独的一个产业,也就有了PC处理器。
在不久的将来手机也将从广义的嵌入式领域中独立,也会有单独的手机处理器,而不再是嵌入式处理器在手机中的应用。ARM处理器在手机领域的强势地位使得越来越多的人将其贴上了手机处理器的标签。更多的人认为将来的PC是揣在兜里,而不是装在包里。这些猜测触动了Intel这个巨人的心,失去未来的PC是Intel无法承受之重。
巨人的行动并非永远迟缓。2004年,地处Texas州的Intel Austin研发队伍启动了代号为Silverthorne的项目,这个项目所研发的芯片将取代A100和A110这两个低功耗处理器(A100和A110处理器的项目代号为Stealey,基于90nm工艺,是Pentium M的派生芯片[27])。这颗芯片也将是第一颗Atom处理器。Silverthorne项目的启动为两年后Intel毅然抛弃XScale构架埋下了伏笔。拥有顶尖处理器设计能力的Intel绝不允许ARM在旁酣睡。
Austin的研发队伍在项目启动时收到了来自高层的三条指令。Atom处理器必须是一个低功耗芯片,TDP(Thermal Design Power)约为ULV(Ultra Low Volatage) Dothan(即Intel Celeron M ULV)内核的十分之一(Dothan的TDP约为21瓦)。这颗处理器必须有足够的性能可以快速地浏览网页,流畅地运行高端操作系统[34]。这两条指令虽然苛刻,毕竟合理,也是可以通过努力实现的。
Austin的研发人员为此热血沸腾,也许他们将有机会创造一个完全不同的处理器,也许他们将有机会再一次改变这个世界。最容易想到的是使用RISC架构。从Pentium Pro开始,x86处理器使用了RISC流水线,在这条流水线中运行的是μops,并不是程序员使用的CISC指令。在流水线的开始阶段,x86处理器将CISC指令转换为μops,之后进入指令流水线运行。
如果能够将μops作为指令集直接提供给程序员使用,Austin的研发人员可以抛掉所有包袱,创造一颗完全不同的处理器。这个处理器可以自由地使用Intel从Pentium Pro开始的,并经过若干次改进而调优的μops流水线。Intel引以为傲的PCI/PCIe局部总线架构也可抛弃,毕竟PCIe设备的耗电量远大于ARM的AMBA设备。
主推一个新的指令集ISA(Instruction Architecture)是一件异常困难的事情。对于Intel这并非不可实现的。使用μops作为新的ISA,不过是将原先由硬件进行的指令翻译过程(Instruction Transforming)转交给编辑器。基于x86处理器的程序只需要经过重新编译,就可以运行在新的处理器平台上。一旦抛弃了CISC指令集,Austin的工程师可以自由地使用Intel所有的技术积累,更重要的是这颗处理器可以借鉴整个处理器界的成果。在多数情况下,新设计的处理器总比之前的好些。
所有这一切不过是研发人员的一厢情愿。来自高层的指令坚定而且明确,这颗低功耗处理器必须严格实现x86向前兼容。这意味着具有30多年历史的x86指令集,必须要不打一丝折扣地在这颗芯片上实现。向前兼容是Intel巨大的利润来源,也是摆在这个星球上最顶级处理器设计人员面前的一个不可逾越的山峰。在Intel并不长的历史中,违背向前兼容的例子只有以惨败而告终的Itanium。
多少年来,Intel的领袖集团都很偏执,偏执的侧重各有不同。格罗夫偏执着改变,将Intel从一个存储器厂商塑造为处理器厂商,更多的偏执着使用了三十多年的x86指令集。
Intel处理器的开发史是工程师与向前兼容不断斗争的奋斗史。许多年之前,Intel凭借向前兼容这一利器,打败了所有RICS厂商,包括DEC,SUN,Motorola和IBM,一统PC与服务器领域。这并不意味着CISC处理器战胜了RISC处理器,x86处理器已经进化成为RISC处理器,只是依然披着CISC指令的外衣。
对CISC指令的向前兼容需要许多额外的晶体管,更为重要的是Intel从1978年使用至今的CISC指令绝非完美,PowerPC和ARM用区区两三百页就能描述清楚的指令集,x86处理器需要使用1千6百多页。x86处理器的指令不仅冗长,更糟糕的是并不等长。处理这些不等长引发的对界问题是众多IC程序员的技术噩梦。
Itanium处理器决定放弃向前兼容,却成了Intel的一场商业噩梦。Intel至今没有醒来,也不敢在Atom处理器上重新进行尝试。一次错误并不意味着下一次依然错误。也许Atom处理器已经错过了再次改变世界的良机。也许Intel错过了丢弃这个糟糕指令集的机会,失去了这个可能的伟大变革,也可能失去了整个世界。
变革不仅需要勇气,更多的是能力。放弃向前兼容的变革也许会使Intel再次获得历史赋予的机会,也许会毁掉Intel。这样的决定,是勇气,是梦想,是坚贞,是决别。这样的决定,诺伊斯可以做,摩尔可以做,格鲁夫可以做,贝瑞特不敢做,欧德宁不敢想。
Intel这样的大公司,只有创始人才敢做,也有能力做出一些伟大的变革,只有他们才有毁掉这个公司的勇气。领袖有了雄威之气,剩下的人才可能有雄威之气。贝瑞特和欧德宁们恐怕做梦都没有考虑过这些可能毁掉Intel的决定,虽然这个决定也可能是上天赐给Intel的机会。睡梦中的格罗夫也许曾无数次被怒火激醒,“再锋利的剑,到了你们手里只能是一把生锈的钝刀!”。
Intel使用了三十多年的