南方的华为;中国的华为;世界的华为

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享

(5个打分, 平均:4.80 / 5)

任正非:华为云计算要赶超思科谷歌

【陈怀临注:读了任总正非的发言,非常钦佩。任正非确实是一代人才,中国人的精英。在这篇文章里,华为要进军云计算对于陈首席来说不奇怪。钦佩的是任正非对黑寡妇的解释。。。这个认识非常重要。华为现在已经是世界级的重大公司,必须要构建华为共荣圈(eco-system),从而形成于华为为中心的商业集团。。。在国际化的道路上博弈。。。】

 11月30日上午消息,华为总裁任正非昨日在“华为云计算发布会”上发言称,华为在云平台上要在不太长的时间里赶上、超越思科,在云业务上要追赶谷歌,让全世界所有的人,像用电一样享用信息的应用与服务。

昨日,华为在北京正式面向全球发布云计算战略及端到端的解决方案。

以下为演讲全文

云计算是一种新的技术,它像IP技术一样,可以用在任何信息传播需要的地方。如同IP改变了整个通讯产业一样,云计算也将改变整个信息产业。未来信息的广阔包容,规模无比,覆盖天涯,蓬勃发展,风起云涌,烟消云散……,多么变幻无穷,多么像云一样不可估量,这多么形象地描述了未来的信息浪潮。获得信息需要技术的变革,商业模式的创新,它的特性决定了,任何人都无力独揽狂澜。开放、合作是云产业未来的最重要的标志。

华为廿年来,从青纱帐里走出来,一个孤独的“农民”,走在一条曲曲弯弯的田间小路,像当年堂吉诃德一样的封闭,手拿长矛,单打独斗,跌跌撞撞地,走到今天。当我们打开眼界一看,我们已经不得不改变自己长期的封闭自我的方式。以前华为跟别的公司合作,一两年后,华为就把这些公司吃了或甩了。这是“黑寡妇”的做法。今天,我们要改变这个现状,要开放、合作、实现共赢。我们要保持“深淘滩、低作堰”的态度,多把困难留给自己,多把利益让给别人。多栽花少栽刺,多些朋友,少些“敌人”。团结越来越多的人一起做事,实现共赢,而不是一家独秀。

以我为主,加强开发,以人为主,我们愿意积极合作;我们期待基于开放的云平台和各行各业应用服务合作伙伴携手共创未来信息产业的发展。

我们已经走到了通信业的前沿,要决定下一步如何走,是十分艰难的问题。我们以前靠着西方公司领路,现在我们也要参与领路了,我们也要像西方公司一样努力地对世界贡献。每年我参加巴塞罗那3GPP大会,我都感触良多,感谢那些领路人的远见与胸怀博大。这种无私开放、友善合作、胸怀博大,构筑了3GPP在全球的胜利。领路是什么概念?就是“丹柯”。丹柯是一个神话人物,他把自己的心掏出来,用火点燃,为后人照亮前进的路。我们也要像丹柯一样,引领通讯产业前进的路。这是一个探索的过程,在过程中,因为对未来不清晰、不确定,可能会付出了极大的代价。但我们肯定可以找到方向的,找到照亮这个世界的路,这条路就是“以客户为中心”,而不是“以技术为中心”。我们并将这些探索更多的开放与伙伴共享。我们不仅会有更多的伙伴,而且更加不排外,愿意与不同价值观的对手加强合作与理解。

在云平台上我们要更加开放,同时将信息流的管道的直径做得比太平洋还大,让它有更大的能力、心胸,迎接各种云下来的雨。我们的开放要像黄河、长江、密西西比河一样,任雨水在任何地点、任何方式流入一样的方便的接入。我们在风起云涌的云业务上,要更多的包容,我们永远不可能独自做成功几朵云,千万朵云要靠千万个公司来做。云的价值是市场来决定,只有为客户使用的云,才会生存下来。云水谣,云水谣,不断地自我循环,不断地自我加强,浸润着大地,服务于社会。我们更要不排斥一部分特别聪明的人,特别“笨”的人,他们超前了时代,令人不可理解。我们要宽容他们,理解他们。当发现这种现象时,华为公司将支持他个人对其想法的扩张,并授予我们的知识产权,让他没有后顾之忧,也可以给以小额资助,并不以任何利益要求为基础。当“苹果皮”出现时,我也让有关人向他们传递信息,最初得到的反映是负面的,看华为过去的黑寡妇形象,多么的恶劣。我们要理解一些“歪瓜裂枣”,并支持他们,这就是一个开放的、社会的“贝尔”实验室。你怎么知道他们就不是这个时代的梵高,这个时代的贝多芬,未来的谷歌……

信息网络的未来其实就简单化到两个东西,一个是管道,一个是云。未来管道的直径至少是太平洋,绝对不是黄河长江。电影《2012》,是虚构的,但信息社会是真实的,这就是想象不到的信息网络的未来。我们认为管道里流的是水,天上飘的是云,水是不可压缩的,有稳定的流态,有严格的程序与代码。而云是飘渺的,时有时无的,变幻多端的。我们打造的管道是要有稳定的水流量的,有合理的管理。但是云在天上千变万化,刚才还在雷鸣电闪,突然没有了,变成五彩云霞了。怎么适应未来新世界,华为面临着很大的挑战,我认为华为是不适应的,因为华为大多数的人是修万里长城的,踏踏实实做事华为很合适,但是做云用过去修万里长城的办法,修完了导弹一来,长城就没有用了。所以要开放,要合作,站在长城上,多抓几多云。心胸开放,对一个成功公司来说,有多么的困难啊。

华为长期坚持的战略,是基于“鲜花插在牛粪上”战略,从不离开传统去盲目创新,而是基于原有的存在去开放,去创新。鲜花长好后,又成为新的牛粪,我们永远基于存在的基础上去创新。在云平台的前进的过程中,我们一直强调鲜花要插在牛粪上,绑定电信运营商去创新,否则我们的云就不能生存。我们首先是基于电信运营商需求来做云平台、云应用。与其他厂家从IT走入云有不同。我们做的云,电信运营商马上就可以用,容易促成它的成熟。

我们在云平台上要在不太长的时间里赶上、超越思科,在云业务上我们要追赶谷歌。让全世界所有的人,像用电一样享用信息的应用与服务。

相关新闻

华为发布云计算战略和解决方案 任正非表态

(9个打分, 平均:3.56 / 5)

关于开展第六批“千人计划”申报工作的通知


关于开展第六批“千人计划”申报工作的通知

各省、自治区、直辖市党委组织部,教育部人事司、科技部政策法规司、人力资源和社会保障部专业技术人员管理司、中国人民银行党委组织部、国务院国资委企业领导人员管理一局、中国科学院人事教育局、中国工程院办公厅、国家自然科学基金委计划局:

根据《引进海外高层次人才暂行办法》(中组发[2008]28号)、《关于开展2010年“千人计划”申报工作的通知》(组厅函字 [2009]202号)、《关于印发“千人计划”短期项目实施细则的通知》(组厅字[2010]29号)和《关于印发<青年海外高层次人才引进工作细则>的通知》(组通字[2010]63号)等文件精神,现就实施“千人计划”第六批申报工作的有关事项通知如下。

一、申报类型

第六批“千人计划”可申报以下项目:

1、创新人才长期项目;

2、创业人才项目;

3、“青年千人计划”项目;

4、创新人才短期项目。

二、申报要求

创新人才长期项目申报人须2010年7月1日之后回国或来华工作;“青年千人计划”和创新人才短期项目申报人须2011年1月1日之后回国或来华工作。

人选标准和其他要求见相关文件。

三、申报材料

申报材料包括申报书一式10份,附件1份,申报人其他个人信息表1份。申报书和附件请分别装订,其他个人信息表另附。

“青年千人计划”申报材料,部门所属高校报教育部汇总;中科院、部门所属科研机构、转制院所报科技部汇总;省、区、市所属高校、科研机构报专项办汇总。

“青年千人计划”材料报送截止时间为2011年1月31日,其他项目材料报送截止时间为2011年1月1日。

四、其他事项

1、请按时报送。

2、申报材料应填写完整,不得空项、漏项。

3、请用人单位、主管部门认真审核、严格把关,确保信息真实、完整。

4、请同时报送纸质和电子文档。

5、申报材料文本请登陆“千人计划”网站(www.1000plan.org)下载。

附件表格下载:http://www.1000plan.org/groups/viewonetopic/1883

(没有打分)

ARM的薄积与薄发–浅谈ARM的Interconnect的战略

因为Blah blah的原因,笔者最近捡起了ARM。。。对ARM的ARMV5的Core,例如IXP 425,465和IXP23XX,笔者可以说是非常的熟悉。写过许多产品级别的汇编。。。但对基于ARMV7的Cortex-A|M|R没有接触过。但相信这对笔者应该不是个大问题。。。

这个Holiday假期,读了一些Intel的一个大拿王Sir的关于ARM的文章。第一是很钦佩;第二是很confusing。。。他在Intel拿着俸禄,为何对ARM的来龙去脉这么熟悉。。。?唯一的解释就是喜欢。。。

在谈到ARM的Cortex-A15的时候,他的文章中唯一欠缺的就是没有谈到在高端系统中最不可缺少的一个方面–Interconnect。这是个美中不足的地方。。。

这个的意思类似于:当谈AMD的Magny-Cores的时候,不谈HT;当谈INTC的Nehalem的时候,不谈QPI。龙门阵就失去了一半的精彩。。。

大家知道,ARM的市场基本上是SoC这块小天地。。。在SoC这个沃土上,大家更集中考虑的是On-Chip的通信。。。换言之,是Intra-Chip的通信。很难相信你整几个SoC芯片在板子上,然后大家一起互通。这不是以前SoC的做法。SoC+DSP的年代更是一个:SoC的CPU做控制。其他逻辑做协处理器。。。

在Cortex-A9的年代。一个Cortex-A9 MP是能而且只能支持(Up to)4个Cortex-A9的CPU Core的。Cache的一致性也只能通过其SCU(Snoop Control Unit)在这4个Core之间实现。如果你想做一个SoC里面放6,8,12个Core,这个Cache的事情基本上就要把人折腾疯了。。。很难相信一个系统软件工程师会喜欢这样的一个Explicit Clustering Partition的编程模型。。。

这一切都在悄悄的改变。。。

11月,Cortex-A15发布了。。。许多读者更多的注意到了A15各方面性能的提升,as opposed to A8 and A9。其实,伴随着Cortex-A15的发布,还有一个很重要的部分–高端互联逻辑。

这就是 CoreLink 400的CoreLink CCI-400 Cache Coherent Interconnect !!!

The CoreLink CCI-400 provides full coherency between the L2 caches of two multicore Cortex-A15 processors and I/O coherency with up to three other master, such as the Mali GPU, sharing data in either of the L2 caches of the Cortex-A15 processors. The CCI-400 routes traffic to up to three slaves (e.g. two high performance channels to the memory controler and one to the rest of the system) using virtual channels to prevent blocking and barriers to preserve ordering.

拥有了CoreLink的互联,在一个SoC里面,多个Cortex-A15 Cluster(4个为一个Cluster)之间就可以达到一个完整的SMP的模型。

拥有了CoreLink的互联,可以把一个Cortex-A系列芯片,与ARM的GPU芯片ARM Mali-T604互联,并形成一个Cache Coherence的模型。。。

这是ARM能通向高端系统的重要基础。。。

下图所示为一个高端SoC的结构图。这个SoC,拥有8个核(Cortex-A15)。每4个为一个Cluster,通过ARM的SCU互联。另外,拥有一个GPU的Core。所以的逻辑,都通过CoreLink的CCI-400互联,形成一个共享内存的系统:

(8个打分, 平均:4.75 / 5)

The Web Is Dead. Long Live the Internet

【陈怀临注:这是dicom1998在10月份发出的一个文章。一直没有发出,因为感觉需要更多的content。The Web Is Dead. Long Live the Internet的意思大概是:互联网发展到今天,更是一个App的世界了,而非一个没事用Web的年代。。。Internet是一个tunnel来传送content。Content是王;Content是主体。其他的都是工具。。。Google能够address的是能够被index的。而现在许多app的content是Google无法reach的。。。从某个角度而言,Facebook或许有一天会比Google更厉害。。。。。。Who knows。。。】

Looks like the following famous article published a while back has not been discussed yet on this forum. Sorry if it has already been posted.

http://www.wired.com/magazine/2010/08/ff_webrip/all/1

Chris Anderson’s point is that there are closed systems that gives better experiences to users.  And they are not crawled by Google, which favors open systems.

Michael Wolff’s point is more interesting to me: It’s all about the content, and the quality of the content. Personally I never click those ad banners while browsing webs. Facebook and iPhone, although a closed system, provides a platform for these high-quality apps and ads.

On the other hand, reported yesterday, Google Now Accounts for 6.4% of Internet Traffic

(没有打分)

云计算背后的秘密(2)-GFS

由于搜索引擎需要处理海量的数据,所以Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为“BigFiles”的文件系统,而GFS(全称为“Google File System”)这套分布式文件系统则是“BigFiles”的延续。

技术概览

首先,介绍它的架构,GFS主要分为两类节点:其一是Master节点,其主要存储与数据文件相关的元数据,而不是Chunk(数据块)。元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格,数据块副本位置和哪个进程正在读写特定的数据块等。还有Master节点会周期性地接收从每个Chunk节点来的更新(“Heart-beat”)来让元数据保持最新状态;其二是Chunk节点,它主要用于存储数据。在每个Chunk节点上,数据文件会以每个默认大小为64MB Chunk的方式存储,而且每个Chunk有唯一一个64位标签,并且每个Chunk都会在整个分布式系统被复制多次,默认次数为3。下图就是GFS的架构图:

GFS

图1. GFS的架构图

接着,在设计上,GFS主要有八个特点:

  1.  
    1. 大文件和大数据块:数据文件的大小普遍在GB级别,而且其每个数据块默认大小为64MB,这样做的好处是减少了元数据的大小,从而能使Master节点能够非常方便地将元数据都放置在内存中以提升访问效率。
    2. 操作以添加为主:文件很少会被删减或者覆盖,通常只是进行添加或者读取操作,这样能充分考虑到硬盘线性吞吐量大,但随机读写慢的特点。
    3. 支持容错:首先,虽然当时为了设计方便,采用了单Master的方案,但是整个系统会保证Master节点会有其相对应的替身(Shadow),以便于当Master节点出现问题时进行切换。其次,在Chunk层,GFS已经在设计上将节点失败视为常态,所以能非常好地处理Chunk节点失效的问题。
    4. 高吞吐量:虽然以单个节点来看,GFS的性能无论是从吞吐量还是延迟都很普通,但因为其支持上千的节点,所以总的数据吞吐量是非常惊人的。
    5. 保护数据:文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统至少复制三份。
    6. 扩展能力强:因为元数据偏小,使得一个Master节点能控制和管理上千个存数据的Chunk节点。
    7. 支持压缩:对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,并且压缩率非常惊人,有时甚至接近90%。
    8. 基于用户空间:GFS主要运行于系统的用户空间(User Time),虽然在效率方面,用户空间比内核空间略低,但是更便于开发和测试,还有,就是能更好利用Linux的自带的一些POSIX API。

 

优劣点

由于GFS主要是为了存储海量搜索数据而设计的,所以它在吞吐量(Throughput)和伸缩性(Scalability)这两方面表现非常优异,可谓业界的“翘楚”,但是由于其主要以64MB数据块形式存储,所以在随机访问方面速度并不优秀,虽然这点可谓是它的“软肋”,但是这本身也是其当初为了吞吐量和伸缩性所做的权衡。

相关产品

和MapReduce相似的是,GFS在开源界也有其对应的产品,最出名的是HDFS分布式文件系统,在功能和设计上,HDFS从GFS身上借鉴了很多东西,而且由于其本身就是Hadoop系列的一部分,所以它为了更好Hadoop这个MapReduce框架做了很多优化。

实际用例

现在Google内部至少运行着200多个GFS集群,最大的集群有几千台服务器,数据量是PB级别的,并且服务于多个Google服务,包括Google搜索和Google Earth等。同时,在最近几年,由于上面提到的高延迟问题,所以GFS并不很适合新的一些Google产品,比YouTube、Gmail和非常强调实时性的Caffeine搜索引擎等,所以Google已经在开发下一代GFS,代号为“Colossus”,并且在设计方面有许多不同,比如,支持分布式Master节点来提升高可用性并支撑更多文件和chunk节点能支持1MB大小的chunk以支撑低延迟应用的需要等,希望等Colossus成熟的时候,Google也能像当初GFS那样,将其设计的细节和经验拿出来和大家分享。

(3个打分, 平均:4.67 / 5)

SalesForce的DreamForce 2010年会–12月6日-9日 . 旧金山

【陈怀临注:12月6日-9日的由salesforce主办的dreamforce 2010将要隆重开场。这将是云计算的一场盛会。Keynotes除了salesforce的老大CEO Marc Benioff之外,还有一个人,你可以不喜欢,但你不能不attention,他就是Bill Clinton!具体的Agenda可参阅: http://www.salesforce.com/dreamforce/DF10/schedule/agenda.jsp。另外,对云计算长期观察的读者应该知道,HP已经决定彻底dump ORACLE的CRM,而要转向salesforce。估计也会在这次大会上有重大宣布。。。从某个角度而言,目前领导云计算产业的就是salesforce,而非amazon等PaaS的公司。从投资的角度,salesforce应该各位pay attention。。。】

(没有打分)

ARM与x86–蝶变ARM

【陈怀临注:原文可参阅sailing的http://blog.sina.com.cn/s/blog_6472c4cc0100lqr8.html 。写的实在是漂亮和精彩。信息量极大而且严谨。。。

蝶变ARM
1929年开始的经济大萧条,改变了世界格局。前苏联的风景独好,使得相当多的人选择了马克思。惧怕布尔什维克红色力量的人投入了法西斯的怀抱,剩余的人选择了妥协与折中。整个世界的迅速分解使得第二次世界大战成为必然。

1933年,罗斯福成为美国第三十二任总统,开始实施新政。这些新政使美国摆脱了危机,也决定了二战的走向。罗斯福的背后站着的是凯恩斯,凯恩斯的国家资本主义化解了整个资本主义阵营有史以来最大的一次危机。“妥协与折中”得以持续。

战后的世界是属于巨型公司的,这些公司借助国家资本的力量,持续着垄断。垄断的初衷并非都是恶意的,在美国却是一个早在1890年就立法防止的。1911年,美国烟草公司被分拆。1982年,美国电报电话公司被分拆。

这些分拆却很难抵达IT业。1975年成立的Microsoft虽然多次被推入拆分的风口浪尖,却从未被拆分。IBM和Intel多次遭到分拆的威胁,也安然无恙。这些公司的支持者都注意到一个事实,这些公司没有依靠国家资本而获得垄断地位,而是依靠多年苦心积攒的知识产权坚持到现在。

这类垄断之忧不在颛臾而在萧墙之内。在这些巨型IT公司中,最低层的工作人员需要经过多达十几级的汇报关系,才能到达首席执行官。在这十几级汇报链中,向上所传递最多的就是如何粉饰太平。

一些微不足道的小问题在这些大公司中往往也能引发无休止的讨论。为解决某个问题而举行的会议,经常被无休止地扩大,从一个会议扩展为多个会议,从几个人参与变为几十人参与。这个问题变得已不再重要时,内部并无统一意见。

西方巨型公司的弊端在于 欧美所倡导的民主代价过于昂贵。撒切尔夫人是欧洲第一个深刻认识到这些问题的最高执政官。历史上,英国并不重视中小企业的发展,在凯恩斯主义盛行的二十世 纪五十年代,英国经历了三次大规模的企业兼并,至撒切尔夫人执政,巨型企业大行其道。更多的人发现这些大型企业并不能提高生产效率,大范围的垄断与集中, 已使英国经济举步维艰。

上世纪八十年代,撒切尔夫人开始变革,剑锋所指,巨型公司纷纷解体,中小企业如雨后春笋般涌现。撒切尔的私有化,货币控制,削减福利与抑制工党的四项举措,客观上拯救了英国经济,也使这位值得尊敬的女士誉满天下,谤满天下。

ARM在这样的大背景之下诞生,这也注定了这些创始人不会也不愿意使ARM成为巨型公司,这也是取得如此成就的ARM,截至今天人数尚不过两千的最重要原因。ARM最初的简称是Acorn RISC Machine。Acorn Computer创立于1978年,总部位于剑桥,由Andy Hopper(剑桥大学), Chris Curry(Sinclair Research)和Herman Hauser(剑桥大学)创建[48]

Acorn最初使用MOS Technology 6502处理器搭建处理器系统。MOS Technology 6502处理器是一个8位处理器,设计这颗处理器的工程师来自摩托罗拉的MC6800设计团队[48]。基于6502处理器,Acorn开发了最令其自豪的处理器系统BBC Micro[49]

在上世纪80年代至90年代,BBC Micro处理器系统主宰英国的教育市场。当时还有另外一个基于6502处理器的系统,Apple II[50]。从这时起,Acorn和Apple这两个设计理念及产品形态类似的公司结下了不解之缘,有些人将Acorn公司称呼为“The British Apple”[51]。也是在这个时候,Acorn迎来了一生中的对手Intel。基于Intel x86构架的PC对同时代的处理器厂商是一场噩梦,很少有公司能够醒来。或者服从,或者消亡,别无选择。Acorn首先选择服从,向Intel申请80286处理器样片,Intel拒绝了这个请求[52]

工程师对剩余的处理器,进行了充分的评估。结果令人失望。此时的Acorn没有选择,开始认真地考虑是否需要研制一颗属于自己的处理器。他们没有任何处理器设计经验,为数不多的工程师们除了才华,只有梦想。才华与梦想恰能改变整个世界。

1983年10月,Acorn启动了代号为Acorn RISC的项目,由VLSI Technology负责生产。1985年4月26日,VLSI成产出第一颗Acorn RISC处理器,ARM1。ARM1的结构非常简单,仅有个25,000晶体管,甚至没有乘法部件[52]。当时并没有人留意这颗芯片,更多的人关注Intel在1985年10月17日发布的80386处理器[36]

没有人认为这颗略显寒酸的ARM1更给80386带来任何冲击,甚至包括研发这颗芯片的Acorn工程师。做为处理器厂商,与Intel活在同一个时代是一场悲剧,无论是Acorn,IBM亦或是不可一世的DEC。Intel并不是不犯错误,只是有限的几个错误都能被及时修复。才华横溢的Intel工程师将处理器的故事演绎至巅峰,他们的竞争对手也因此步入地狱。

Acorn不得不选择回避,这也决定了ARM处理器的设计理念是low-cost, low-power和high-performance。这个理念与21世纪智能手机的需求不谋而合,却是Intel强加给ARM的。Intel在不经意间为自己树立了一个强大的对手,这个对手在Intel的庇护之下一步步长大。并不夸张的说,没有Intel就没有ARM的今天。

因为对low-cost和low-power的追求,Acorn选择了RISC,而不是CISC,在上世纪80年代,RISC与CISC孰优孰劣尚无定论。在当时采用RISC技术可以看得到的优势是可以用更少的芯片资源,更少的开发人员实现一个性能相对较高的处理器芯片[53]。Intel使用了CISC架构,很大程度上也决定了Acorn选择了RISC。刘备的“每与操相反,事乃可成”,对于Acorn就是“与Intel不同,便有机会”。

ARM的成长步伐仍然是缓慢的,陆续发布的ARM2与ARM3并没有激起波澜。为数不多的公司选择ARM3处理器开发产品。一些公司将ARM3处理器用于研发,最有名的公司就是Apple[53]。在当时,Apple也是为数不多的对ARM友善的公司。

Acorn很快遭遇瓶颈,无论是在财务上还是在技术上。销售量达到150万台的BBC Micro并没有给Acorn带来足够多的财富,与席卷天下的PC相比微不足道[54]。ARM3与Intel在1989年发布的80486也没有太多可比性。危机最终降临到Acorn这个年轻的公司,1985年2月,当时的IT巨头Olivetti出资12M英镑收购Acorn 49.3%的股份[55]。Olivetti的庇护并没有给Acorn带来机遇。

Olivetti创建于上世纪初,对智慧与品质近于苛刻的执着使得他们的产品可以在纽约的现代艺术博物馆中陈列,出现在许多经典的影片中。这些产品并没有改变这个公司的最终命运。Olivetti最终涉足PC领域,使用Zilog的Z8000,去挑战在这个领域所向无敌的Intel。

Olivetti收购Acorn后,更多地将ARM处理器用于研发,而真正的产品使用Zilog系列。这段时间是Acorn最艰难的日子。Acorn的创始人Andy Hopper最终选择从Olivetti独立。出乎意料之外,Olivetti支持了Andy的决定。

1990年11月,Acorn(事实上是Olivetti Research Lab),Apple和VLSI共同出资创建了ARM。Acorn RISC Machine也正式更名为Advanced RISC Machine[55]。在1996年,Olivetti在其最困难的时候将所持有的14.7%的Acorn股份出售给了雷曼兄弟[56]

Apple当时正在为代号为Newton的项目寻找低功耗处理器。Newton项目的终极目标是实现地球上第一个Tablet。Apple对Tablet的前景寄予厚望,他们直接将公司Logo上的Isaac Newton作为项目的名称。Apple最初的Logo是在苹果树和深思的牛顿。两个Steve[i]将公司命名为Apple,与喜欢吃苹果没有什么联系,是因为苹果而不是鸭梨砸到了牛顿头上。

Newton Tablet的想法过于超前,最糟糕的是Jobs当时并不在Apple。Apple用并不太短的时间证明了一条真理,没有Jobs的Apple和没有乔丹的公牛没有太大区别。1996年3月,Steve Jobs再次回到Apple,两年后取消了这个并不成功的项目[57]。等到Jobs再次推出iPad Newton,已是十几年之后的事情了[58]

Apple投入3百万美金拥有了ARM公司43%的股份[60],但是并没有完全押宝在ARM公司,Apple真正关注的是在1991年与IBM和Motorola组建的AIM[59]。在1998年,ARM公司在英国和美国同时上市后,Apple逐渐卖出了这些股份。在2010年,Apple即便准备好了80亿美金,却也无法收购ARM。

1990年的ARM公司,财务依然十分拮据,12个员工只能挤在谷仓[ii]中办公,廉价License的商业模式更不被人看好。依靠Apple的鼎力相助,ARM6[iii]得以问世,却没有改变Apple和ARM的命运。Newton项目设计的是本应该属于下一个世纪的Tablet,ARM6被PC处理器和当时多如牛毛的RISC处理器笼罩,无所作为。

上世纪90年代属于PC领域。AMD的异军突起,及其与Intel的竞争,构建了上世纪九十年代处理器领域一道最炫目的风景线,而服务器领域属于DEC。1992年2月25日,DEC发布的Alpha21064处理器,主频达到150MHz[61],Intel在第二年发布的Pentium处理器,主频仅有66MHz[62]

整个90年代,处理器世界都在惊叹着Alpha处理器所创造的奇迹。DEC陆续发布的Alpha系列处理器既是放到二十一世纪的今天,设计理念依然并不落后。DEC工程师就是在为二十一世纪设计处理器芯片。在Alpha21x64系列处理器的编号中,’21’代表二十一世纪,而’64’代表64位处理器[63]

上帝并不青睐DEC公司,科技与商业的严重背离终于酿成了巨大的灾难。Alpha处理器的技术尚未抵达巅峰,DEC的财务已捉襟见肘。1994~1998年,DEC不断地向世界各地兜售资产。至1997年,DEC出售的资产已遍及五大洲,二十多个国家[64]。1998年1月26日,DEC正式被Compaq收购[65]。在DEC解体的最后一段日子里两个公司最为受益,一个是Intel,另一个就是ARM。

在ARM的起步阶段,鼎力相助的是Apple,最先License ARM内核的是英国本土的GEC半导体公司。在1993年因为Apple的引荐,ARM处理器跋山涉水来到日本,与Sharp建立了合作关系。在此之前Sharp与Apple一直在合作开发Newton项目。

这些合作并没有缓解ARM的财务危机,ARM一直在追寻真正属于自己的客户。1993年,Cirrus Logic[iv]和德州仪器公司TI(Texas Instruments)先后加入ARM阵营。TI给予了ARM雪中送炭的帮助。TI正在说服当时一家并不知名的芬兰公司Nokia与他们一道进入通信移动市场。TI在DSP领域已经取得了领袖地位,但并不熟悉CPU业务,在屈指可数的可以被操控的公司中,他们最终选择了ARM[67]

ARM迎来了上天赐予的机会。通过与Nokia和TI的密切合作,ARM发明了16位的Thumb指令集,也真正意义上创建了基于ARM/Thumb的SoC商业模式[67]。ARM已经逐渐摆脱了财务危机,业务不断扩大。至1993年底,ARM已有50个员工,销售额达到10M英镑。

同年ARM迎来了公司成立以来最重要的一颗处理器内核,ARM7[67]。ARM7使用的Die尺寸是Intel 80486的十六分之一,售价仅为50美金[v]左右。较小的Die尺寸,使得ARM7处理器获得了较的功耗,适合手持式应用[67]

ARM7处理器引起了当时的处理器巨头DEC的关注。1995年,DEC开始研发StrongARM。与其他License ARM内核的半导体厂商不同。DEC获得了ARM架构的完整授权,DEC可以使用ARM的指令集,设计新的处理器架构,这个特权后来被Intel和Marvell陆续继承。第二年的2月5日,DEC正式发布SA110处理器,并开始提供样片[68]。SA110处理器迅速得到了业界的认可,Apple正式使用SA110处理器开发MessagePAD 2000 [69]

StrongARM处理器在设计中注入了Alpha处理器的一些元素。StrongARM使用5级顺序执行的流水线,分离了指令和数据Cache,添加了DMMU和IMMU功能部件,每个MMU中包含32个全互连结构的TLB,添加了16级深度的WB(Write Buffer)[70]。至此ARM处理器更像是一颗微处理器,而不再是微控制器。

DEC的帮助使ARM处理器达到了前所未有的高度。更为重要的是,这颗160MHz,DMIPS为185的处理器,功耗低于500mW[70]。这不仅引起了工业界的浓厚兴趣,学术界也开始真正关注ARM处理器。1997年,DEC如期发布了第二颗StrongARM芯片,SA1100。SA1100在SA110的基础上增加了一些外部设计。第二年Intel为SA1100提供了一个伴侣芯片SA1101,SA1100+SA1101也成为了许多PDA厂商的首选。1999年,Intel发布了最后一颗StrongARM处理器SA1110[vi],和对应的伴侣芯片SA1111。

StrongARM的发布并没有使DEC摆脱财务危机。而DEC却找到了一个更容易赚钱的途径。1997年5月,DEC正式起诉Intel,宣称Intel在设计Pentium,Pentium Pro和Pentium II处理器时侵犯了DEC的10条专利。1997年9月,Intel反诉DEC在设计Alpha系列处理器时侵犯了Intel多达14条专利[72]

在IT界,这样的官司大多不了了之。1997年11月27日,DEC和Intel选择和解。DEC向Intel提供除Alpha处理器之外的所有硬件设计授权,并进一步支持Intel开发IA64处理器。而Intel花费了625M美金购买DEC在Hudson的工厂,Israel Jerusalem和Texas Austin的芯片设计中心。另外这两个公司还签署了长达十年的交叉授权协议[72]

DEC的技术注入使Intel的x86处理器迈入新的时代,很快Intel具备了向所有RISC处理器同时宣战的能力,最终一统PC和服务器领域。此外Intel还从DEC获得了StrongARM。克雷格·贝瑞特认为这是上天赐予Intel的机会,x86处理器与StrongARM的组合,将使Intel的处理器遍及世界上任何需要处理器的领域。

为了迎接StrongARM的到来,贝瑞特放弃了Intel自己的RICS处理器,i860和i960。Intel为StrongARM起了一个炫目的名字XScale,动用了积蓄已久史上最为强大的Ecosystem,强势进军嵌入式领域。

一时间,XScale处理器遍及嵌入式应用的每一个领域,用于手持终端的PXA系列,用于消费类电子的IXC/Intel CE系列,用于存储的IOP系列,用于通信的IXP系列。Intel的处理器技术极大地促进了ARM内核的发展,借用PC帝国的Ecosystem使ARM处理器从生产到设计一步领先于所有嵌入式行业的竞争者。成为XScale处理器试金石的是摩托罗拉半导体的68K处理器。

在XScale系列处理器诞生之前,68K处理器主宰嵌入式领域,Apple Macintosh最初也使用68K处理器。在1997年,摩托罗拉销售了79M片68K处理器,而Intel的x86处理器一共卖出了75M片[73]。这是68K处理器最后的辉煌。Intel和TI主导的ARM处理器终结了68K处理器。摩托罗拉半导体面对ARM的强势出击毫无准备。ARM处理器不断地蚕食68K的市场份额,直到完全占有。

1995年,摩托罗拉半导体的香港设计中心发布第一颗用于手持式设备的DragonBall处理器,MC68328(EZ/VZ/SZ)[74],这是香港半导体界最好的时代。而StrongARM/XScale很快结束了香港设计中心的幸福生活。面对ARM的挑战,DragonBall最终屈服,DragonBall MX(Freescale i.MX)系列处理器开始使用ARM9。使用ARM内核并没有改变摩托罗拉香港设计中心的命运,这个设计中心最终不复存在。

在工业控制领域,68K内核进化为ColdFire[vii]。ColdFire在HP的中低端打印机中取得的成就几乎是最后的绝唱。在通信领域,摩托罗拉半导体抛弃了基于68K内核的MC68360,研发出基于PowerPC架构的MPC860处理器。这颗处理器是通信时代的经典之作,摩托罗拉半导体陆续推出了一系列基于PowerPC内核的通信处理器,却再也没有重现MPC860时代的君临天下。近期推出的QorIQ[viii]系列处理器面对多核MIPS处理器总是滞后一拍。

摩托罗拉半导体,昔日的王者优雅地没落。摩托罗拉半导体于1955年推出第一个锗晶体管,开创了半导体集成电路产业,在整个60年代一骑绝尘,70年代末迎来了68K的辉煌。即使在1985年,摩托罗拉还是全球第三大半导体公司。而怀抱通吃整个产业链的野心,对封闭式系统的挚爱,使摩托罗拉连同半导体部门在同一棵石头上跌到了一次又一次。至21世纪,摩托罗拉半导体(Freescale)的排名在十名左右,2009年的排名仅为第17位。

击败了摩托罗拉半导体的Intel没有感到一丝喜悦,更多的是寒气。2006年,Intel的业绩跌入低谷,这也使得当时的CEO贝瑞特作出了一个艰难的选择,2006年6月27日,Intel将PXA系列处理器出售给了Marvell[12]

Intel虽然保留了ARM处理器的授权,事实上却已彻底退出了ARM阵营。这是Intel一个非常谨慎而且坚决的选择。Intel需要扑灭后院的熊熊烈火。在PC领域,AMD率先推出了64位的K8处理器[75],并在2005的Computex 上,发布双核处理器Athlon 64。Intel x86最引以为豪的性能优势已不复存在。

这段时间Intel只能依靠工艺与强大的商务能力与AMD的Athlon64处理器周旋。2008年11月,Intel正式发布基于Nehalem内核,用于台式机的Core i7处理器[76],用于服务器的Xeon处理器,Core i3/i5也如期而至。Nehalem内核使Intel彻底战胜了AMD。这颗处理器也是Intel开始研发x86处理器以来,第三个具有里程碑意义的产品,之前的两个里程碑分别是80386和Pentium Pro。从这时起AMD处理器在性能上再也没有超过Intel。Intel解决了最大的隐患后,却发现ARM处理器已非吴下阿蒙。

ARM7之后,ARM8内核于1996年发布。ARM8内核生不逢时。与ARM7相比,AMR8在没有显著提高功耗的前提下,性能提高了一倍,依然无法和DEC的StrongARM抗衡[77][78]。仅有少量手机在原型设计中考虑过使用ARM8内核,ARM也仅为用户提供了CPU样板。

ARM8的失败并没有阻碍ARM内核的进一步发展,与StrongARM的竞争没有消减ARM阵营的实力,反而激发了ARM处理器不断向前的动力。1997年ARM9正式发布,DMIPS指标首次超过了1.0大关。ARM9是一个重要的里程碑产品。这个产品标志着ARM处理器正式进入微处理器领域,而不再是简单的微控制器。

ARM9将ARM7的3级指令流水线提高到5级,与StrongARM使用的流水线结构较为相似。进一步细化的流水线使得ARM9最高的时钟频率达到220MHz,而ARM8仅为72MHz[78]。ARM9进一步优化了Load和Store指令的效率,ARM9不再使用普林斯顿结构,而转向哈佛结构,使用了独立的指令与数据Cache。

ARM9的指令执行部件分离了Memory和Write Back阶段,这两个阶段分别用于访问存储器和将结果回写到寄存器。这些技术的应用使得ARM9可以在一个周期内完成Load和Store指令,而在ARM7中,Load指令需要使用3拍,而Store指令需要使用2拍。

此外ARM9可以通过增强的编译器调整指令顺序来解决RAW(Read-after-Write)[ix]类相关。ARM9的这些功能增强,使得在相同的工艺下,其执行性能是ARM7的一倍左右[79]。ARM7并没有被淘汰,简练的设计极大降低了功耗,Apple在2001年10月23日[80]发布的iPod依然使用了ARM7处理器[81]

ARM7与ARM9的合理布局,使得ARM阵营迅猛发展。基于ARM7和ARM9内核的SoC处理器迅速遍及世界的每一个角落。ARM内核依然在前进。1998年的EPF(Embedded Processor Forum) ARM10内核正式推出。2000年4月12日,Lucent发布了第一颗基于ARM10的处理器芯片[83]

ARM10内核的设计目标依然是在相同的工艺下,双倍提升ARM9的性能。而提高性能的第一步是提高指令流水线的时钟频率,而流水线中最慢的逻辑单元决定了时钟频率。ARM10使用了6级流水线结构,但并不是在ARM9的5级流水线的基础上增加了一级,而是进行了细致取舍而调优。最终的结果是在使用相同的工艺时,ARM10内核可使用时钟频率为ARM9内核的1.5倍[82] [84]

ARM10内核重新使用了ARM8内核的系统总线,将ARM9的32位系统总线提高到64位。这也使得ARM10可以在一个时钟周期内完成两条寄存器与存储器之间的数据传递,大幅提高了Load Multiple和Store Multiple指令的效率[84]

另外ARM10改动了Cache Memory系统,与ARM9相比提高了存储器系统的效率。ARM10的指令与数据Cache使用虚拟地址,64路组相连结构,引入了高端处理器中流水线与Cache交换数据的Streaming Buffer和Cache Line filling部件[84]

ARM10内核优化了存储器读指令。实现了最为简单的乱序执行机制。当一条存储器读指令没有执行完毕,其后不相关的指令可以继续执行。ARM10对乘法指令进行了特别的优化,设置了一个新型的16×32的乘法和乘加部件外,同时设置了两级乘法指令流水,使得每一个时钟周期可以执行一条乘法指令[84]。最后ARM10内核增加了对浮点运算的支持。

从技术的角度上看,ARM10远胜过ARM9,但是没有办法在商业上与ARM9一较高下。ARM10的命运与ARM8惊人的一致。生不逢时的ARM8与StrongARM不期而遇,ARM10与XScale生活在同一年代。

Intel的工程师面对ARM的指令流水线耐不住技痒,ARM10的指令流水线与之前的ARM内核相比,可以说是一个飞跃,而与同年代的高端处理器相比只是一个玩具。Intel的帮助极大促进了ARM处理器的发展。

Intel在保证XScale架构低功耗的同时,引入已经在Pentium Pro系列处理器上非常成熟的Superpipelined RISC技术[85],借助Intel的工艺优势,使得XScale处理器的最高运行频率达到了1.25GHz[86]。此时Intel开发的处理器步入了高频低能的陷阱,1.25GHz的PXA3XX性能仅比624MHz的PXA270的执行效率高25%[86]

XScale架构并没有使Intel盈利。ICG(Intel Communication Group)部门和WCCG(Wireless Communications and Computing Group)部门给Intel带来的是巨额亏损,ICG在2002~2004年的亏损分别为$817M, $824M和$791M[87]。2003年12月11日,Intel宣布将WCCG合并到ICG中,并在2004年1月1日生效。

这次合并没有挽救XScale的命运。在2006年,AMD的步步紧逼使Intel迎来了20年以来最糟糕的一季财务报表。Intel开始了有史以来最大规模的裁员。2006年7月13日,Intel宣布取消1000个经理职务[89],2006年9月5日,Intel裁员10%[90]

在此之前Intel将XScale处理器中Marvell还愿意接收的部分出售[12]。Marvell需要的并不是XScale内核,而是Intel从DEC获得的对ARM指令集的完整授权,很快Marvell推出了基于标准ARM v5/v6/v7的处理器,而不再单独依靠XScale。XScale,这个几乎耗尽Intel全部心血的架构,已经走到了最后尽头。

Intel退出ARM阵营,不是因为缺少$600M现金。和许多人预料的并不相同,Intel并不是为了主推ATOM处理器,而放弃XScale。而是因为Intel用长达八年的时间发现了一个事实,ARM的廉价License策略并不能使之获利,而必须做Atom。

ARM的廉价License的获益者是ARM自身,随着处理器厂商的不断加入, ARM阵营获得了迅猛发展,这也加速了处理器厂商的优胜劣汰。但是Intel发现的事实依然适用于所有正在使用ARM授权的半导体厂商。

最令ARM内核尴尬的是,依靠这个号称最为开放的处理器内核,获取暴利的是一些做着史上最为封闭系统的公司。凭借ARM内核,Qualcomm为3G专利找到了最佳载体,Apple不断兜售着各类新奇的电子设备。来自通信领域的Cisco,华为陆续加入ARM阵营。ARM,这个来自半导体领域的处理器,并没有使这个领域受益。ARM的出现,极大降低了处理器的设计门槛,使得单纯依靠半导体技术,为做处理器而做处理器的厂商举步维艰。

Intel首当其冲。Intel的错误在十几年前已然犯下。贝瑞特本应该做出对Intel最为有利选择,从DEC那里获得StrongARM后,再亲手终结StrongARM。贝瑞特不经意的失误为Intel的未来树立了一个强大的对手,也使整个处理器世界更加精彩。ARM已经从XScale处理器中获得了足够的能量,已经可以不依赖任何厂商。他们的命运已经牢牢地掌握在自己手中。

2002年12月,ARM1136内核发布[91]。2004年7月19日,ARM1176内核发布[92]。2005年3月10日,ARM1156内核发布[93]。在此之前的ARM处理器虽然得到了广泛应用,但是从纯技术的角度上看这些处理器微不足道。

ARM11基于ARMv6指令集,之前ARM还开发了V1,V2,V2a,V3,V4和V5指令集。ARM使用的内核与指令集并不一一对应。如ARM9使用V4和V5指令集,XScale使用V5指令集。ARM7最初使用V3,而后使用V4,最后升级到V5。在ARM指令集后还包含一些后缀如ARMv5TEJ,其中T表示支持Thumb指令集,E表示支持Enhanced DSP指令,而J表示支持Jazelle DBX指令。

ARM v4指令集包含最基础的指令集;v5增强了ARM与Thumb指令间的交互同时增加了CLZ(Count Leading Zero)和BKPT(Software Breakpoint)指令;ARMv5TE增加了一系列Enhanced DSP指令,如PLD(Preload Data),LDRD(Dual Word Load),STRD(Dual Word Store)和64位的寄存器传送指令如MCRR和MRRC。ARM v4和v5在指令集上变化不大,v5也可以向前兼容v4指令集[94]

而v6指令集并不能100%向前兼容v5的指令集。由于ARMv6对存储器访问模型的大规模更改,完全的向前兼容不再可能。从x86处理器苛求的向前兼容的角度上看,这些改动并不完美,也正是这些不完美使得ARM内核轻装前进。

ARM的指令集使用RISC架构,但是在ARM指令集中包含许多CISC元素。与PowerPC指令集相比,ARM的指令集凌乱得多,这为指令流水线的译码部件制造了不小的麻烦。在ARM内核包含三类指令集,一个是32b长度的ARM指令,一个是16b长度的Thumb指令,还有一类由8位组成的变长Jazelle DBX(Direct Bytecode eXecution)指令集。在ARM架构为数不多的指令集中,有两类指令值得特别关注,一个是Conditional Execution指令,另一个是移位指令。

绝大多数ARM的数据访问指令都支持条件执行功能。所谓条件执行是指指令可以根据状态位,有选择地执行。使用这种方式可以在一定程度上降低条件转移指令预测失败时所带来的系统延时。在计算GCD(Greatest Common Divisor)时,ARM的条件执行指令发挥了巨大的作用,如图2所示。


2 gcd算法的实现[94]

通过上图可以发现由于SUBGT和SUBLE指令可以根据CMP指令产生的状态决定是否执行,采用该类指令可以显著降低代码长度。ARM指令集还对移位操作进行了特别的处理,事实上ARM不含有单独的移位指令,而使用了Barrel Shifter技术,与其他指令联合实现移位操作。使用这种方法可以有效提高某些运算的效率,如图3所示。

3 Barrel Shifter的使用

这些特殊的指令使得ARM内核有别于其他处理器内核,但这并不意味着也极大提高了执行效率。首先CMP指令,SUBGT和SUBLE指令有较强的相关性,不能并发执行。此外现代处理器的条件预测单元也可以极大降低条件转移指令的命中率。一些处理器,如x86的CMOV指令和PowerPC的isel指令使用了更小的代价实现了ARM的条件执行功能。

ARM内核在条件执行指令时占用了4个状态位,也进一步影响了指令集和寄存器的扩展。绝大多数RISC处理器中具有32个通用寄存器,而ARM内核仅有16个通用寄存器[x]。ARM的特殊移位操作,增加了指令的相关性,在有些情况下,不利于多发射流水线的实现,也增加了指令流水中预约站RS(Reservation Station)的实现难度。

计算机体系结构是一个权衡的艺术,尺有所短,寸有所长。不同的内核都有自己最为合适的应用,不经过认真的量化分析不能轻易得出孰优孰劣的结论。不过仍有一个结论,在现阶段依然适用,处理器领域历经多年的优胜劣汰,所剩无几的处理器内核在激烈的竞争中日渐趋同。

ARM11内核使用了现代处理器中常用的一些提高IPC的技术,这是ARM处理器的一个重要里程碑。ARM11内核引起了计算机科学的两个泰山北斗,David A. Patterson和John L. Hennessy的注意。他们以ARM11内核为主体,而不再是MIPS,书写了计算机体系结构的权威著作,《Computer Organization and Design, Fourth Edition: The Hardware/Software Interface》。这也是学术界对ARM处理器有史以来的最大认可。

ARM11可以支持多核,采用了8级流水线结构,率先发布的内核其主频在350~500MHz之间,最高主频可达1GHz。在使用0.13μm工艺,工作电压为1.2V时,ARM11处理器的功耗主频之比仅为0.4mW/MHz。ARM11增加了SIMD指令,与ARM9相比MPEG4的编解码算法实现速度提高了一倍,改变了Cache memory的结构,使用物理地址对Cache行进行索引[95]。ARM11终于开始使用动态分支预测功能,设置了64个Entry,4个状态的BTAC(Branch Target Address Cache)[95]

ARM11进一步优化了指令流水线对存储器系统的访问,特别是在Cache Miss的情况之下的存储器读写访问。在ARM11内核中,当前存储器读指令并不会阻塞后续不相关的指令执行,即便后续指令依然是存储器读指令,只有3个存储器读指令都发生Cache Miss的情况,才会阻塞指令流水线[95]

虽然ARM11没有使用RISC处理器常用的out-of-order加Superscaler技术,在一个时钟周期之内仅能顺序发射一条指令,但是支持out-of-order completion功能,即在执行单元中的不相关的指令可以乱序结束,而不用等待之前的指令执行完毕。

ARM11的这些功能增强,相对于ARM9/10是一个不小的技术飞跃。但是与其他处于同一时代的x86,PowerPC和MIPS处理器相比,仍然有不小的差距。ARM11内核的存活之道依然是性能功耗比。

依靠着强大的性能功耗比,ARM11内核取得了巨大的商业成功。ARM11内核并不是一个性能很高的处理器,但是随着ARM处理器性能的不断提升,量变终于引发了质变。ARM11内核的出现,使得Smart Phone的出现成为可能。

在此之前,基于ARM9,XScale处理器的手机只是在Feature Phone的基础上添加了少许智能部件。自ARM11的问世起,Apple,HTC在智能手机领域异军突起,Motorola一蹶不振。ARM11之后,ARM迎来了爆发式增长,陆续发布了Cortex A8和A9内核。

ARM处理器内核的快速更新,使得Nokia这个对新技术反应迟钝的公司,一步步走向衰退。在2010年9月底开始出货的Nokia N8[96],居然还在使用着680MHz主频的ARM11处理器[97],而这款产品却号称是Nokia最新的旗舰产品,它的竞争对手早已使用了1GHz主频的Cortex A8处理器。

Cortex处理器是一个分水岭,从1983年开始的ARM内核,迎来了一颗真正意义的现代处理器。此时的ARM已经破茧成蝶,不再是低功耗伴随着低能的处理器。从这一刻起,ARM处理器具备了和Intel,一较高下的能力。2010年4月3日,Apple的Jobs正式发布iPad,ARM随之进入平板电脑领域[99]。ARM已将战火烧到了Intel的后院。

抛弃了XScale架构的Intel,并没有放弃手机处理器。2009年1月23日,Nokia与Intel在手机领域建立长期合作伙伴关系[103]。2009年6月4日,Intel收购Windriver[102]。2010年5月4日,Intel正式发布用于智能手机和平板电脑,代号为Moorestown的处理器[100]。2010年8月29日,Intel收购Infinion的无线部门[104]。在2011年左右,Intel将发布用于智能手机,代号为Medfield的处理器[101]。一系列的合作与收购,使Intel具备了进入手机领域的能力。

至此ARM之于PC领域,x86之于手机领域的野心,已昭然若揭。2010年9月9日,ARM正式发布代号为Eagle,5倍ARM9架构的Cortex A15内核,这颗处理器所关注的应用是高端手机,家庭娱乐,无线架构,还有低端服务器[98]。Cortex A15向世人宣布除了PC,他们还要向Server进军。

ARM,这个曾被Intel鄙视,被其扶植,被其抛弃的处理器,开始直面挑战Intel的x86处理器。这场较量是今后处理器领域5到10年的主旋律。最终结果将影响处理器领域今后20年的格局。不要认为ARM处理器没有进入PC领域的可能,也不要认为ARM处理器可以继续在手机领域中所向披靡。


[i] 苹果公司的两个创始人都叫Steve,一个是Steve Wozniak,另一个是众所周知的Steve Jobs。Steven Wozniak是Apple I和Apple II的发明者。两个Steve在1976年4月,在一个车库中成立众所周知的Apple。

[ii] 英国的谷仓文化与美国的车库文化相近,都是新技术的摇篮。

[iii] ARM公司从ARM3直接升级到ARM6。

[iv] 我最初评估的ARM芯片就是Cirrus Logic的EP7312。当时我还在使用Altera的EPLD,名称是EP7132,我经常混淆这两个名字。在一个机缘巧合之下,粗心的采购将我需要购买的EP7132买成了EP7312,这颗芯片也是我不经意购买的第一颗ARM处理器。

[v] 当时的处理器价格高得离谱,50美金已经是很廉价了。

[vi] 我从SA1110开始接触ARM处理器,那是一个永远值得回忆的时代。

[vii] 我在摩托罗拉半导体部门第一次接触的就是Coldfire处理器,目前这颗处理器仍然在不断发展中,这颗芯片与68K在汇编语言层面兼容,但是目标代码并不兼容。

[viii] QorIQ系列处理器基于E500 mc内核,与E500 v2有些微小差异。我的第一本著作是基于E500内核的《Linux PowerPC详解—核心篇》,当时准备写一套丛书,包括核心篇和应用篇。应用篇主要写外部设备,后来的《PCI Express体系结构导读》源自《Linux PowerPC详解—应用篇》,应用篇应该包含网络协议,PCI Express和USB总线,后来把网络协议部分和USB总线部分删掉了。

[ix] 在处理器体系结构中,重点关注的有三类相关问题,RAW,WAR和WAW。使用寄存器重命名技术可以解决WAR和WAW相关。

[x] 考虑到ARM在ARM11内核之前都不支持动态分支预测,和多发射,使用条件执行指令还是能够提高ARM7/9内核的执行效率。

(4个打分, 平均:5.00 / 5)

ARM与x86–Wintel帝国

【陈怀临注:原文可参阅sailing的新浪博客:http://blog.sina.com.cn/s/blog_6472c4cc0100kq84.html 】

The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air.

从1978年开始的PC帝国,以Intel最终战胜AMD为标志,正式步入后PC时代。这个帝国的成员们各司其职,在可预料的未来中这个帝国并无大事。Intel会一代代推出新的PC处理器,Tick-Tock计划[i]将如期而至。每一年都将是平淡的一年。

在半导体领域,Intel继续一览众小。Intel依然无奈。半导体领域霸主的无奈在于只要PC依然重要,罗伯特·诺伊斯所创建的这个公司就不会有太大的忧虑;半导体领域霸主的无奈在于对手并不在半导体领域,或者说对手是剩余的所有。

ARM处理器的崭露头角正在开创一个属于更多参与者的帝国。在不远的将来这个新的帝国与PC帝国间必有一战[ii]。我们无法预知x86或者ARM获胜,却可以感受这个世界正在变化。世间最可怕的事,莫过于等待。有些人更愿意去预测,去揣度,去逃避这些无休止的等待。即便结果是上帝不经意间的偶然,也依然执着,愿意为逼近明天而重温历史。也许已经发生的和正在发生的事情,揭示了未来。

Wintel帝国
Wintel[2]是Windows和Intel的合成词。Wintel指使用x86处理器[iii]并运行Windows的处理器系统。在Wintel这个词汇中,Intel占有更多的字符,也是Wintel的主体。

Wintel诞生是一个自然的过程。几十年前,一个富有朝气的公司选择了另外一个富有朝气的公司。在他们所涉及的应用领域中,打遍天下无敌手,创建了令所有对手望而生畏的时代,一个只属于这两个公司的时代,Wintel帝国时代。帝国有着铁血般纪律。帝国的组成部件各司其职,彼此互不渗透,有功必赏,有过必罚。帝国没有衰退的前兆,内部也没有太多不和谐的声音。

在PC帝国中,Intel是处理器的最重要的供货商,AMD占据着为数不多的市场份额,更少的一部分份额留给了台湾的VIA[iv]。PC处理器大多使用Windows操作系统,也有些PC安装着其他操作系统,如Linux和BSD。在中国,预装Linux系统的这些PC机,在购买后,基本上会被重新安装。在国外,使用Linux系统的也不过是一些爱好者。Linux给Wintel帝国的运行制造了一些困难,却没有触及帝国的根本。

帝国的日常经营由一些OEM(Original Equipment Manufacture)厂商、ODM(Original Design Manufacture)厂商和BIOS厂商协助打理。因为Linux的存在,还出现了一些OSV(OS Vendor),如Redhat、Ubuntu(Canonical)和SuSE。这些OSV将来自开源社区的代码与Linux内核集成为Linux发布包,提供给OEM使用。

帝国的OEM也都是一些知名公司,如Dell,HP,Acer,Lenovo和Asus等。ODM多集中在台湾。BIOS厂商数量并不多,却也能及时地为这些OEM/ODM服务。整个PC帝国协调有序发展。

帝国内也不时有些出人意料之外的事件。曾经第一个尝试AMD处理器,昔日的OEM霸主Compaq悄然离去。Dell从一个网络直销商,几乎一夜间横空出世。IBM将PC业务转移给了Lenovo。Acer日益壮大。新人来,旧人去,PC帝国依然是铁打的营盘。

Intel的领导人进行了多次更替,先是罗伯特·诺伊斯,后是戈登·摩尔,安迪·格罗夫,克雷格·贝瑞特,到现在的保罗·欧德宁。诺伊斯和摩尔无论是技术还是商业都有领袖才能。诺伊斯是集成电路的发明者。摩尔创造的定律至今尚不过时,这个定律更像是一个商业定律,引导着Intel一代又一代的工程师为捍卫理想,奋勇向前。

格罗夫是Intel的第一个员工,特殊的经历决定了他独特的性格。有人说如果他母亲碍着了他,他也会把她解雇。Intel的前两代领导人恐怕不会这么做。也有人说诺伊斯过于慈善,这也使得格罗夫的闪亮登场成为必然。帝国总需要有些人苛刻一些,严厉一些。

依靠严明的纪律,Intel度过了1986年的寒冬,顺利地从存储器领域过渡到处理器领域,将在其后紧随而且随时可将之超越的日本人抛于脑后[3]。这个决策拯救了Intel。多年之后,更加拼命,更加执着的韩国人在存储器领域彻底战胜了日本人。格罗夫留给Intel的“唯偏执狂才能生存”是许多员工的座右铭,当然真正的偏执狂反而并不认同这句话。前三界领导人性格的互补,使得Intel渡过难关,日益壮大。

1984年,Intel遇到了创建以来的第一次危机,存储器危机。在上世纪七十年代,Intel是存储器芯片的主要提供商。在那个年代Intel在存储器领域的市场占有率几乎是100%,远超过Intel今天在PC领域的市场占有率。

从上世纪80年代起,Intel的存储器危机初露端倪。日本人迅速掌握了存储器设计与生产这个门槛并不是很高的技术核心,借助其特有的高效与后发优势,在短短的两三年时间,大肆吞噬着Intel在存储器领域的市场份额。Intel几乎从存储器领域的统治者沦为一个二流存储器芯片供应商。

1984年,Intel生产的存储器芯片在库房里堆积如山。1986年,Intel迎来了自公司创建以来的第一次亏损。格罗夫与摩尔对此早已先知先觉。

1985年,格罗夫在一次公司会议中问摩尔,“如果我们无法渡过这次危机,被迫下台,下一届领导人将怎么做?”。

“他们将抛弃存储器业务。”摩尔回答着。

“我们为什么不自己动手?”[3]。

也许格罗夫在科技的前瞻性上无法与摩尔相提并论,但是他如岩石的执着,如烈火的果敢,化解了Intel面临的第一次危机,PC开始进入寻常百姓家。从Intel今天在PC领域的领袖地位上看,格罗夫这个决策似乎顺理成章。只有将历史回溯到1985年时,我们才能更加容易地体会到格罗夫的艰难与不得已。

在那个年代,中小型机大行其道。DEC公司的VAX机是所有处理器厂商难以逾越的高峰,Motorola半导体的68K处理器如日中天。很少有人相信Intel能在处理器领域有所作为。在那个年代,Intel推出的每款处理器都是学术界奚落的对象。1986年Intel推出的386处理器遭到了整个学术界的诟病。这些学者的这些技术观点多数是对的。从技术的角度上看,386处理器并不成熟,也给Intel留下了向前兼容,这个堪称伟大的包袱。

技术并不是早期x86处理器的长处。在上世纪80年代至90年代,几乎全部处理器都被技术上绝对领先,绝对强势的Alpha系列处理器[v]压得喘不过气来。竞争对手每推出一个处理器芯片,DEC都会推出另外一个强大到令人放弃追赶的新一代Alpha。

Intel真正的优势是格罗夫虽百折而不挠,我行我素,笼罩当世的大气魄。

1987年,格罗夫正式成为Intel的CEO。格罗夫开始与另外一个更加耀眼的企业领袖比尔·盖茨联手创建了Wintel这个事实上的铁血联盟。无论是Intel还是Microsoft都不承认Wintel联盟的存在,但却无法否认这个词汇在整个处理器行业制造的恐慌与肃杀[vi]。在那个时代,对于处于这个帝国之外妄图涉足PC领域的其他厂商,Wintel这个词汇本身就是一个魔咒,使之望而却步。

1978年,23岁的比尔·盖茨与42岁的格罗夫第一次见面,当时的Microsoft仅有11名员工,而Intel已经推出8086处理器,员工已过万人。公司间的不对等很难给比尔·盖茨带来荣誉,两个人在个性中的共同点使得争吵时有发生。在某个晚宴上,两个人争吵引起了所有人的关注,包括在厨房工作的服务人员。格罗夫能够有条不紊地尽享美餐,而盖茨却吃饱了一肚子气[3]。

在许多情况下,公司间的合作与领导人的恩怨无关。格罗夫与盖茨间的不和谐并不影响Intel和Microsoft在各自的领域成为巨人,也不影响Wintel这个事实联盟的不断前行。从工作划分上看,Intel领导着OEM/ODM提供底层硬件平台,而Microsoft提供操作系统和上层软件,彼此互不干扰,也没有太多的直接冲突。Wintel帝国的各个成员也都相安无事。这是一段属于PC帝国的美好年代。Wintel联盟双方相互间存在的依赖,相互成就了对方的事实,维持着Wintel帝国的稳定。

如同所有联盟,合作和冲突永远并存。只有面对强敌时,两个弱者间的联盟才最为可靠。弱者一定程度的上的妥协是维护联盟的必要条件,如同赤壁之战前孙刘联盟。随着Wintel帝国的前行,Microsoft已经不再弱小,市值逐渐超过Intel,也更加富有。而牢牢掌控着底层硬件平台的Intel对OEM/ODM却在联盟内有着最大的话语权。

这一切使得Wintel帝国内部的冲突更加频繁。Microsoft率先发难。Windows NT开始支持x86处理器的竞争对手,RISC处理器,包括MIPS R3000/R4000, Alpha和PowerPC。Microsoft也多次断言RISC处理器替代Intel x86是大势所趋[4]。

面对这场危机,Intel开始动摇,着手研发抗衡RISC处理器的产品,安腾(Itanium)和Pentium Pro处理器[vii]。采用向前兼容的Pentium Pro处理器在CISC vs. RISC战争中的大获全胜,而抛弃了向前兼容的安腾最终被抛弃。Pentium Pro的胜利和安腾的失败化解了Wintel帝国面临的最大一次危机。对“向前兼容”的依赖,使帝国的这两个重要成员重归蜜月期。1996年,比尔·盖茨在公开场合承认,“最近的两年内,英特尔与微软在合作方面所花的时间比前十年加在一起还要多”。

新贵对盟主地位的追求永不休止。1997年11月20日,Joachim Kempin[viii]在给盖茨的Email中明确地提出微软应该收购AMD或者Cyrix[ix] (Nsemi)以对抗来自Intel的威胁[5]。格罗夫在卸任时也承认自己犯下的最大错误就是使Intel过分地依赖Microsoft[3]。而近些年发生的一些事件[x]更加表明Wintel联盟虽然没有分崩离析,却早已貌合神离。事实上,在IT这个激烈竞争的行业里,只有后浪推前浪,没有永远的合作,更没有永远的联盟。

格鲁夫之后,材料学出身的克雷格·贝瑞特于1997年5月成为Intel的第四任CEO[6]。在他并不长的8年任期中,带给Intel的影响超越了多数评论家的想象。并不夸张地说,如果在未来的某一天Intel走向衰退,贝瑞特将是始作俑者。

贝瑞特给Intel留下了“Copy Exactly”的成产哲学。如果Intel将来要走一条富士康或者台积电的道路,“Copy Exactly”是必须的,而且需要更加强烈的,更加令人窒息的纪律。这个哲学一经推出就饱受质疑。连Intel的员工也问贝瑞特,既然您坚持“Copy Exactly”,为什么还要我们“Innovate”?

在“Copy Exactly”的大背景下,Intel有史以来最失败的芯片Pentium IV诞生了。过分迷信工艺的力量,使得Pentium IV的主频一再挑战着CPU主频的极限。这并没有改变Pentium IV高频低能的结局。AMD的x86 64与多核处理器几乎摧毁了Intel。2006年,Intel业绩步入谷底,也改变了贝瑞特向互联网进军的蓝图。

贝瑞特接任后,开始了预谋已久的“互联网”计划。1997年DEC将StrongARM内核正式出售给Intel[7]。StrongARM内核基于ARM V4 ISA(Instruction Set Architecture),由DEC和ARM联合开发。Intel使用这个内核替代了自己的i860和i960处理器,并在此基础上创建了基于ARM V5 ISA的XScale架构。

XScale架构得Intel正式进入了嵌入式领域。随后Intel大手笔推出了基于XScale架构的一系列处理器,用于手持领域的处理器PXA210, PXA25X, PXA26X, PXA27X和PXA3XX,用于网络存储的I/O处理器IOP31X, IOP32X, IOP33X和IOP34X。

在基于XScale构架的所有处理器中,IXP网络处理器令思科,爱立信和华为这些通信厂商至今还在心痛[xi]。IXP网络处理器的技术源自DEC,Intel保留了DEC网络处理器的整个研发团队,并以XScale架构为核心,设计出第一颗芯片IXP1200[8]。在IXP1200芯片中含有一个类StrongARM SA1100处理器和6个微引擎ME(Micro Engine)。

这颗芯片的亮点是6个微引擎,许多研究资料[9][10][11]表明IXP1200确有较强的网络报文处理能力。一时间网络处理器也成为通信半导体厂商的宠儿,Motorola半导体(Freescale)和IBM也分别收购了几个刚刚Start-up的公司,主推网络处理器[xii]。

XScale构架没有获得预想中的成功。2006年6月27日,Intel将PXA系列手持处理器作价$600M出售给了Marvell[12]。2007年11月12日,Intel将IXP1200,IXP2400,IXP2800这些网络处理器转交给了Netronome这个刚刚Start-up的公司,并向已有的客户承诺将继续生产这些网络处理器,并持续到2012年[13]。I/O处理器无疾而终。

XScale构架并不是贝瑞特“互联网”计划中最重要的一环。2007年10月19日,ITU接纳WiMAX作为3G标准[14][15]。3G领域至此又增加了一个新成员,这个新成员至今还活跃在通信领域。只是后来这个新成员在推广过程中的举步维艰,使得更多的人相信“在美国的某个城市需要贴钱才能卖出去的房产,并不是最糟糕的资产,一个产品最大的悲哀并不是消亡,而是僵而不死”。

遍览整个IT史册,只有摩托罗拉的铱星计划能与贝瑞特的“互联网”计划媲美。铱星计划的失败已经成为MBA的经典案例。Intel的WiMAX仍在持续,只是更多的客户开始质疑Intel的耐心,质疑Intel在Wintel帝国之外的坚忍与能力。

贝瑞特卸任前留给Intel真正有价值的是“Tick-Tock”计划。“Tick-Tock”是一个象声词,如果将正弦时钟波形在音箱中播放时,可以听到连续不断的“Tick-Tock”。Intel从2006年1月5日使用已经成型的65nm技术推出“Core Microarchitecture”,这也标志着Tick-Tock计划的开始[16]。

在Tick-Tock中,Tick指工艺的提高,从65nm,45nm,32nm,22nm,16nm和11nm。数学功底稍微好些的人不难发现,相邻的两个数字之间的倍数大约是1.414[xiii]。Intel继续延续着摩尔提出的“集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍”的定律。Tock指CPU内核的进步,工艺的提高使得之前只能出现在经典论文中的技术得以实现。Tick-Tock计划规划了Intel x86处理器直到2016年的Roadmap。一个长达十年的路标。

表1 Intel的Tick-Tock计划[17]

  体系结构的变化 工艺 发布时间
Tock Core Microarchitecture 65nm 2006-07-27
Tick Penryn 45nm 2007-11-11
Tock Nehalem Microarchitecture 2008-11-17
Tick Westmere 32nm 2010-01-04
Tock Sandy Bridge Microarchitecture expected 2010
Tick Ivy Bridge 22nm expected 2011
Tock Haswell Microarchitecture likely 2012
Tick Rockwell 16nm expected 2013
Tock New Microarchitecture likely 2014
Tick Shrink/Derivative 11nm likely 2015
Tock New Microarchitecture likely 2016

 

Intel的Tick-Tock计划已经执行到Westmere处理器,Sandy Bridge处理器将很快如期而至。Intel将以庞大的人力,充实的物力继续着这个计划。所有这一些都是贝瑞特留给Intel的第五任CEO保罗·欧德宁的。欧德宁必须有所作为。

PC领域再无对手的Intel,目光重新锁定在嵌入式领域,Atom处理器应运而生。这颗芯片上承载着Intel的希望,所有人都在关注Atom能否解开Intel在嵌入式领域的无奈,嵌入式领域的另一个处理器巨头ARM也在枕戈待旦。

Wintel帝国的另一个主角Microsoft已完成政权更替。比尔·盖茨于2008年6月28日正式离任[18]。虽然比尔·盖茨强调将一如既往地关心着Microsoft的一切,并尽可能地提供帮助,Microsoft股东们也应该双手合十,祈祷盖兹永远不要归来。因为那时的微软,处境绝对不会比苹果请回乔布斯时更好。

死灰复燃的苹果,咄咄逼人的谷歌,是微软挥之不去的梦魇。而最为Intel和Microsoft担忧的是Wintel联盟的生死。Intel已经提前做好准备,率先研制基于Linux的Moblin操作系统[19],在2010年与Nokia,将Moblin和Maemo合并为Meego[20]。

对于Microsoft,Windows和ARM何时走到一起的讨论从Windows 7诞生以来,从来都没有停息过。Microsoft明确表示Windows 7不会支持ARM-based的上网本Smart Book)[21]之后,却带来了更多有关Windows和ARM的传言。更多的人想知道Windows 8或者9是否支持ARM[22]处理器。对于ARM,这些期待已经不再重要。WebOS,Andriod的异军突起,使得Microsoft更加尴尬。此时的ARM还需要Windows吗?

——————————————————————————–

[i] Tick-Tock计划是Intel在2007年开始的一项计划,Tick指工艺的进步,而Tock指处理器内核的革新[1]。

[ii] ARM与x86处理器之间的战争早已打响。许多预测家声称,这场战争最终会彻底消灭其他处理器内核,如PowerPC和MIPS,只留下x86和ARM处理器。

[iii] x86处理器的芯片提供商除了Intel,还有AMD和VIA。

[iv] 1998年,VIA收购了Cyrix的大部分资产,并依此进入x86处理器领域。

[v] Alpha处理器也是我第一次接触的第一个高端处理器,…是一个充满激情的岁月。

[vi] 今天的Microsoft总有被Google欺负的感觉。而在盖茨年轻的时候,Microsoft却是不可战胜的。当年有一个工程师向盖茨提了这样一个问题,“我不愿意加入微软,但是我加入的其他公司,不是被您收购,就是被您挤垮。我需要买一个带花园的小房子,需要一份工作。请问在软件领域,有哪些方面是您不愿意涉足的?”。

[vii] Pentium Pro是Intel一颗具有里程碑意义的处理器。这颗处理器将复杂的CISC指令分解成为μops指令(一种RISC指令),之后采用了RISC指令流水线,加大提高了x86处理器的性能。在某种意义上说,这颗处理器拯救了Intel。

[viii] Joachim Kempin当时是Microsoft的高级副总裁。

[ix] AMD和Cyrix是Intel当时的主要竞争对手。从今天AMD和Cyrix的状况上看,盖茨没有采纳Joachim的意见是无比正确的。

[x] 2010年7月23日,Microsoft正式宣布与ARM展开战略级合作[23]。Intel与Nokia联手开发用于手机的Meego操作系统。

[xi] 这些网络通信厂商在Intel网络处理器上投入了大量的人力物力,而Intel却却中断了该产品的后续研发。

[xii] 网络处理器没有一个得到善终。IBM将网络处理器卖给了Hifn,不过近期IBM发布了一颗16核的Wire-Speed网络处理器。Motorola半导体从C-Port手中收购了网络处理器,却无法阻挡Intel在IXP网络处理器的低价格策略。

[xiii] 1.414约等于sqrt(2)。Intel使用这些数字的主要原因是继续捍卫摩尔定律。

(7个打分, 平均:5.00 / 5)

ARM与x86–ATOM的前生今世

【陈怀临注: 我会在最近的一段时间,with some reasons,比较深入的去学习和了解Cortex-A9。这也是我在弯曲评论会开始多谈谈ARM的原因。我个人以前是对IXP或者说ARMV5比较熟悉。Cortex-A9是ARMV7。Sailing(http://blog.sina.com.cn/sailingxr)关于ARM的文章相当不错和专业。希望读者都能收益。弯曲评论发展到今天,就应该广泛的吸收天下人的智慧,这才是凝聚力量和发扬光大的唯一方式,靠和只靠编辑自己是不现实的,也是不应该的。。。另外,弯曲评论前端时间也有专门的关于ATOM的分析文章,可参阅:Intel ATOM处理器剖析与研究
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使用了三十多年的CISC指令又一次被强加在Atom处理器中。失落的设计人员需要再一次为向前兼容付出惨重代价。Intel天才的工程师需要再一次直面这些为处理CISC指令而带来的古怪逻辑。Atom处理器再一次被套上枷锁。Intel再一次丧失了和ARM站在同一起跑线上的机会。

与RISC构架使用的定长指令集不同,Intel的CISC指令的长度从16b到120b不等[35]。变长的指令为指令译码部件带来了额外的负担,而且基于CISC指令的流水线很难进一步提高速度和并发指令条数。从Pentium Pro开始,Intel抛弃了CISC指令流水线,而使用μops流水线,为此在x86处理器中需要使用一个特别的指令译码部件,首先将CISC指令转换为内部指令流水线可以识别的μops[33] [36],然后再送入μops流水线中执行。

x86处理器的绝大多数CISC指令可以方便地翻译成一条或者多条μops指令,也可能是多条CISC指令被优化成为一条μops指令。仍有为数不多的过于复杂的CISC指令需要借助Microcode ROM进行查表译码,x86处理器处理这些指令的效率极低,但是这些指令出现的频率极低,并不会影响指令译码效率[33]

Silverthorne处理器可以使用两种方法实现严格的向前兼容,或者使用μops流水线,或者使用CISC流水线。使用μops流水线也意味着Atom处理器必须保留将CISC指令转换为μops指令的逻辑,也必须保留在绝大多数时间可以安然入睡的Microcode ROM。对于已经集成了23亿个晶体管的Nehalem EX处理器,增加这些古怪的逻辑并不会极大地增加功耗。对于TDP的设计目标仅有2.1瓦的Atom处理器,这些逻辑是不可能被接受的,因为这些古怪逻辑本身使用的功耗已经超过了一些低端ARM处理器[i]

来自Austin的设计人员必须另辟蹊径。他们试图在Atom处理器中使用Intel最新的工艺,直接执行复杂的CISC指令,这也重新揭开了上世纪九十年代开始的RISC与CISC构架之争。在那场战争中,Intel打败了所有RISC厂商,这并不意味着CISC处理器战胜了RISC处理器。在PC服务器领域,Intel的x86处理器最终被RISC处理器同化,而在剩余的几乎所有领域中CISC构架被RISC构架屠杀。

面对CISC构架的举步维艰,Pentium Pro做出了折中选择。Atom处理器却要继续扛起CISC的大旗。所有这一切并不是因为CISC构架仍有可能优于RISC构架,而是Austin的工程师面对向前兼容的不得已。

也许使用第一流工艺可以化腐朽为神奇,也许使用最顶尖的工程师可以将一个O(N2)算法实现得比普通工程师实现O(N×LogN)算法更为快速。也许这些“也许”永远都是“也许”。虽千万难,吾独往矣。帝国启动了赌局。

第一个需要改变的是Power设计理念。多年以来,Intel在PC和服务器上有关Power和Performance性能的设计理念是,处理器提升1%性能,Power可以提高2~3%。在Atom处理器中,这个比例是1比1,处理器每提升1%性能,相应的Power不能提高1%[37]

Atom处理器被迫抛弃了许多在Core 2和Nehalem处理器使用中的高效设计,从零开始。与诸多传说并不一致,Atom并不是削减版的Pentium M或者Core 2。虽然Atom处理器是Intel自Pentium处理器以来最为简单的设计,也是一个全新的设计。这个全新的设计使用了Intel最为古老的CISC流水线。

无奈的工程师们面对由来已久的向前兼容,剩下的选择除了无奈,还是无奈。没有人愿意直面x86处理器这些乖张,谬妄,怪僻,荒诞的CISC指令,也没有人敢甚至去说说挑战“向前兼容”的不合理。

使用μops流水线无法越过Power的天堑,剩下的只有CISC流水线。无奈的设计人员第一个想到的是1989年发布的486处理器[ii],这颗处理器使用了单发射(single-issue),顺序执行(in-order)的CISC流水线。

即使在当年486也不是一个顶级处理器,Atom处理器必须对此加以补充。多发射技术仍是必须的,Atom处理器支持双发射。而现代处理器常用的乱序执行(Out-of-Order Execute)对于追求低功耗的Atom处理器是奢侈的,经过简单地评估,Austin的设计人员暂时放弃了乱序执行这个已经被广泛验证,可以显著提高流水线执行效率的功能。同时486处理器使用的5级流水线并不利于处理器主频的提升,Atom处理器将其提高到16级,如图1所示。

1 Atom处理器的流水线[34]

这不是Atom处理器流水线的全部。Atom处理器还含有两级预先译码部件(Predecoder)。传统的x86指令并不等长,而是16b~120b,Predecoder部件的作用是划分指令边界,然后将其导入L1指令Cache。因此虽然Atom处理器L1指令Cache的大小为36KB,而实际可利用大小仅为32KB,剩余的4KB用来存放SOI(Start of Instruction),EOI(End of Instruction),等一些TAG信息[34]

Atom处理器可以直接处理多数CISC指令,但是仍然有一些过于复杂的CISC指令被分解为若干个μops,再进入指令流水线。Atom处理器的流水线并非没有可取之处,这颗处理器可以直接执行ALU/Memory指令。这类指令首先被分解为ALU和Memory两个微操作,然后成对进入流水线,虽然Memory操作仍不能先于ALU操作执行完毕,也明显提高了这类指令的执行效率。Atom的指令流水线远不如RISC架构那样完美,但这是Intel的工程师在向前兼容的大前提下,为降低功耗而进行的一次大胆尝试。

Atom使用按序执行流水线,使得HT(Hyper-Threading)技术的引入成为必然。HT技术是Intel对SMT(Simultaneous Multithreading)技术的一种称呼。在现代处理器的设计中,可以使用两种技术在节约整个设计成本的前提下大幅提高并行度,一种是提高ILP(Instruction Level Parallelism),一种是增强TLP(Thread Level Parallelism)[38]

Superscalar技术是提高ILP最常用的方法,Superscalar技术是指在同一个时钟周期CPU可以发射多条指令。这一技术最早出现在1964年,Seymour Cray的CDC6600就使用了这一技术[39]。这一方法在绝大多数高端处理器中得到了广泛的应用。Intel的高端处理器可以并发执行3~4条指令。

TLP技术最常用的实现手段即为SMT。来自DEC的工程师准备在Alpha21464(EV8[iii])上率先实现SMT技术。Alpha21464还没有完成最终的Tape-Out,就因为需要为Itanium让路而被迫取消[40][41]。这也是在学术领域无所不能的Alpha处理器的最后绝唱。DEC的这些工程师经过多次辗转,最终在Pentium IV上实现了HT技术。此后MIPS MT和Power5处理器也实现了SMT技术。

HT技术的本质是在同一个CPU中支持多个线程,每一个线程都具有独立的通用寄存器,Local APIC等其他资源,所有的线程共享同一条流水线,可以是一个线程的指令处于流水线的译码阶段,而另一条线程的指令处于执行阶段。当某个线程因为需要执行一些耗时较长的指令时,流水线可以切换到另外一个线程继续执行以避免流水线的阻塞[iv]。对于某些需要大量访问共享资源的应用,使用SMT技术不仅不能提高流水线效率,反而会降低。

Intel声称使用了HT技术的Atom处理器,可以提高36~47%的效率[34]。这也无法回避某些Benchmark的结果,使用HT的结果更加糟糕。有一点是可以肯定的,不支持乱序执行的Atom处理器如果还不支持HT,其执行效率是不值得去评估的。

体系结构上的缺陷很难用任何技术去弥补。Intel依然坚持尝试。在Atom处理器的L1 Cache中的一个Cell使用8个晶体管,与使用6个晶体管的设计相比,这种设计显然将占用相对较大的die size,但是却可以使用更低的工作电压,从而最终降低功耗[28]。但是这些优化不能弥补Atom为支持“向前兼容”而带来的,来自体系结构上的先天缺陷。

第一代Atom处理器,Silverthorne和Diamondville早已问世。基于Atom处理器的Asus EeePC和Acer Aspire One取得了不俗的战绩。第二代Atom处理器,Pineview也得到了帝国各个成员的拥戴。向前兼容策略持续着过去的成功。PC领域因此多了两个新的成员,Netbook和Nettop。这两个新成员被赋予了一个新的名字,上网本。

Asus的第一个上网本EeePC预装着Linux操作系统[31],这个产品并没有被Wintel帝国看好。而EeePC的成功出乎他们意料之外,2007年EeePC的销量达到300,000台[32],并迅速地向百万台销售目标进军。Microsoft如梦初醒,迅速作出反应,在EeePC上预装WinXP,很快在EeePC上Linux与WinXP的预装比例达到了1:9。这个比例依然没有完全反映Linux在上网本中所占的比例,毕竟许多预装着Linux的上网本是销往中国的。随后比WinXP更加秀丽的Win7也出现在上网本中。

Wintel再一次统治了上网本市场,也亲手毁掉了这个市场。最初灵巧便携的EeePC已经成为历史,越来越多的人们看到的是上网本中Atom处理器的低速与Windows的臃肿。上网本的唯一优点只剩下价格。至此上网本成为廉价笔记本的简称。当Apple的Jobs拿出第一个iPad时,属于Wintel的上网本盛宴已经结束。一个新的名词平板电脑(Tablet)被万众瞩目。ARM处理器和Apple却是主角。

Wintel帝国并没有彻底失败。Intel所需要的并不是上网本。Intel并不需要这样的产品去瓜分Laptop市场。帝国的终极目标依然是可以手持的PC。上网本不过是技术尚不成熟的临时产品。Intel很清楚的意识到初期的Atom并不能离开Windows,向前兼容依然重要。只是向前兼容这个紧箍咒套上容易脱离难。

Intel的Moorestown平台终于浮出水面。这是Intel为手持PC开发的第一款产品,与ARM的单芯片解决方案并不相同。Moorestown平台由两个芯片组成,分别是代号为Lincroft的处理器和代号为Langwell的芯片组。Lincroft中包含一个Atom处理器、GPU和存储器控制器,用Intel的45nm工艺实现,而在Langwell芯片组中包含手持PC中常用的外部设备,如摄像机接口、USB接口、1080p HDMI接口和NAND控制器等[29]

Intel为了更快的推出Langwell芯片组,并没有使用自己的生产工艺,而是依靠TSMC的65nm工艺。这引发了人们无限的猜想,在诸多半导体厂商中,Intel始终坚持“in-house-design”的思路,一个芯片从设计到生产都在Intel内部完成,而且Intel有太多的工厂可以生产65nm的芯片。Intel究竟需要从TSMC获得什么?

Intel的Roadmap揭示Moorestown平台仅是一个权宜之计,在并不久远的将来,Medfield平台会将Lincroft和Langwell合二为一,这也将是Intel有史以来第一个单芯片处理器[29][30]。这颗芯片依然采用Intel的“in-house-design”的设计理念吗?

这一切并不重要,从体系结构的角度上看,Moorestown和Medfield平台使用的依然是Atom处理器内核,并以某种方式连接着手持PC使用的外部设备。从性能/功耗比的角度上,基于ARM AMBA总线的外部设备目前是最优的,远胜过追求性能的PCIe设备。

Moorestown和Medfield平台与ARM处理器平台最终需要一决胜负的依然是处理器内核。与在SPECint_base_rate2006 benchmark程序获得117高分的Nehalem处理器(在此之前没有任何处理器获得100以上的分数)不同[42],性能并不是Atom处理器的优势。并不出乎体系结构专家的意外,在许多Benchmark程序下,Atom处理器落后于Cortex A9处理器[43],如下表所示。而Atom处理器使用的功耗与ARM处理器目前并没有可比之处。

CoreMark/MHz Dhrystone Max MHz Estimate CoreMark at Max MHz
Cortex A8 2.4 2.0 1.0GHz (S5PC110) 2415
Cortex A9 2.9 2.5 1.0GHz (Tegra 2)2.0GHz 28815762
MIPS 74K 2.5 2.0 1.6GHz 4000
N280(1 thread) 1.8 2.4 1.67GHz(N280)2.GHz(Z550) 30603673
N280(2 threads) 2.8 N.A. 1.67GHz(N280)2.GHz(Z550) 46645600

Youtube上有一个流传已久的视频[44],一个1.6GHz的Atom处理器(很可能是N270)与一个双核500MHz的Cortex A9平台在相同的分辨率,相同的主存储器大小,相同的操作系统环境下,浏览网页的速度几乎不分上下。采用RISC架构的Cortex A9依然有非常大的潜力可以进一步提升性能,而在体系结构上强调向前兼容的Atom处理器早已被捆住手脚。

失去性能优势的ARM处理器,还有功耗。而失去了性能优势的Atom处理器,只剩下向前兼容。越来越多的人们开始发问,在手持式领域,向前兼容是不是如Intel所料那样重要?虽然Intel一再宣称x86处理器拥有最大的软件Ecosystem,但是目前已有的x86兼容的程序究竟有多少可以不加修改地移植到手持式设备中,又有多少硬件IP可以与PCIe总线直接互连?

如果在手持式设备中,“向前兼容”也不再重要,Atom处理器剩下的只有Intel耗费重金打造的芯片生产工艺。多年以来IT技术被归于高科技领域,这并不是指架个微机编写软件。半导体芯片的制作使用了人类有史以来最复杂的工艺。

首先是硅的提炼,硅原料被投入一个巨大的硅熔炉中,然后再植入一个精度极高的硅种,被融化的硅原料将围绕这个硅种生长,最后形成一个纯度至少为99.9999%的单晶硅锭(圆柱体)。这个硅锭的直径一般为8英寸或者12英寸。之后这个硅锭被切割为一个个Wafer(硅晶片),Wafer再被切割为一个个正方形的Die。每一个Atom处理器将使用一个Die。

这些Die将被多次影印(Photolithography),蚀刻(Etching),最后形成一个多层3D结构。至此Foundry完全结束。经过Foundry处理后的Die,将经过封装,测试等流程,最终成为一个个半导体芯片。

所谓纳米工艺是发生在Etching阶段,Etching也是半导体工艺技术的重中之重。经过影印后,硅晶片将被涂上一层光敏抗蚀膜,之后使用极短的紫外线曝光光敏抗蚀膜。最后用化学溶剂清除已曝光的光敏抗蚀膜连同其下的一层硅。曝光的硅最后将被原子轰击,以生成N井或者P井,最终实现门级电路。

45nm,32nm技术是指MOS晶体管栅极的宽度。这个宽度越低,在相同大小的Die中就可以集成更多的晶体管。贝瑞特时代的Intel抓住了半导体工艺的发展启动机遇,在诸多半导体厂商中脱颖而出。但是这种领先很难持久。半导体成产工艺是材料科学,化学工业,光学技术和精工机械的集大成者,本质上是一门实验科学,需要大量的资金投入。

Intel取得了先机,也毕竟是在以一隅敌全国。Intel率先在Westmere处理器上实现了32nm工艺,22nm也将在2011年中期实现[45][46]。这些成功并没有使Intel在工艺上扩大领先优势,这一优势反而在逐步缩小。ARM Cortex A9已经可以使用Global Foundry提供的28nm工艺。当22nm技术来临时,Intel在生产工艺上的领先优势将不复存在。

Intel率先推出45nm时,是与其他半导体厂商差距最大的时刻,在工艺上几乎领先其他半导体厂商一代。而技术的革新与进步总是开头最难,中期发展阶段最快,至末期的举步维艰。种种迹象表明硅晶片的制造工艺已日趋极限。

如果Atom处理器连工艺的领先都无从谈起,在技术上将没有任何优势可言。一个产品成败并不完全取决于技术。也许二十年前Intel战胜所有RISC厂商的故事可能再次发生,也许偏执的力量可以战胜顶尖的技术。

只是Intel已无格鲁夫。


[i] 至少需要1.65M个晶体管,比ARM7内核本身还复杂。

[ii] 如果程序员基于Atom处理器,进行程序优化,发现gcc编译器使用486的arch速度最快时,千万不要大惊小怪。

[iii] Alpha系列的处理器内部代号都是EV,EV是Extended VAX的缩写。VAX机曾是一个时代的经典。我书写的第一行程序就用VAX机下的行编译器的LET TEMP = A; LET B = A; LET A = TEMP。

[iv] 对于计算机体系结构较为熟悉的读者,可以将HT技术说得更简单一些,就是分属不同线程的指令之间没有相关性,只要有空余的执行单元,即可通过预约站,进入执行单元。

(6个打分, 平均:5.00 / 5)