王齐 。 《后科技时代--处理器的思考》

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




在距离今天不到六十年的时间里,出现了几个与当今电子信息领域有着重大影响的公司和个人。最重要的公司当然是Fairchild半导体,另一些是Fairchild半导体派生出的公司。最有影响力的人选有诸多争议,有人说是Robert Noyce,也有人说是Jack Kilby,我以为只能是William Shockley。我每阅读着与Shockley有关的史料事迹,总有莫名的酸楚。他是硅谷的事实缔造者,也是硅谷第一弃徒。整个硅谷,整个IT史册,再无一人如Shockley般谤满天下。

1947年12月16日,John Bardeen,Walter Brattain和William Shockley发明了人类历史上第一颗固态放大器,之前的放大器采用的是至今或许已被遗忘的真空电子管。他们意识到这个放大器的本质是阻抗的变化,将他们的发明称为Trans-resistor,简称为Transistor。多年以后,钱学森将其正式命名为晶体管。正是这一天的发明,人类进步的历史轨迹被再次更改。一个令所有人为之振奋的电子信息时代即将到来。

1956年的诺贝尔物理奖没有丝毫争议地赋予了这三人。在此前的一年Shockley只身来到加州,来到Santa Clara,成立了Shockley半导体实验室。在这片美国最晚迎来阳光的大地,因为Shockley的到来,将升起第一面迎接电子信息时代的旗帜。

Shockley选人的眼光,与他的科技才能严格成正比。IT史册记载了先后加入Shockley半导体实验室的八位科学家,他们分别是Julius Blank,Victor Grinich,Jean Hoerni,Eugene Kleiner,Jay Last,Gordon Moore,Sheldon Roberts和Robert Noyce。这八个人即将被Shockley称为Traitorous Eight。

Shockley的用人方式,与他的科技才能成反比,在获得诺贝尔物理奖后,也许他认为在科技领域已经没有什么值得他去挑战,他选择挑战财富。他的目标是生产5美分一支的晶体管,借此挑战在加州已经声名赫赫的Hewlett和Packard。Shockley的这个目标直到上世纪八十年代才得以实现。Shockley的想法总是令人难于琢磨。在Shockley半导体实验室存在的岁月里,起初怀抱着无限崇拜与幻想的,Shockley天才的门徒们始终忍受着煎熬。从加入这个到离开这里,他们没有创造出任何一项可以另他们为之自豪的产品。

在Shockley否决了他们准备研究集成电路的一项提议之后,他们被最后一根稻草压垮。这八个人已经不再对Shockley存有任何幻想,集体向Shockley提出辞职。震惊的Shockley,愤怒的Shockley,狂躁的Shockley将这八个人统称为Traitorous Eight。发明了晶体管的Shockley,注定不能制造出晶体管。面对着即将到来的电子信息时代,Shockley黯然离去。他最终加入了斯坦福大学,成为一名教授。

也许是因为Shockley过于孤独,也许是因为Shockley过于希望被人再次关注,他发表了一篇可以让他在耻辱架上停留相当长一段时间的论文,黑人的智商低于白种人。这是Shockley的最后绝唱。1989年,Shockley在孤独中离开这个世界,他的孩子也只是在报纸中得知他的死讯。他启动了一个时代,却只是一个匆匆过客。

离开Shockley之后的Traitorous Eight得到新生,共同创建了仙童半导体公司。这个公司书写了一段至今仍令整个硅谷炫彩夺目的传奇。但是仙童半导体公司并没有看到硅谷最强盛的一刻。业已故去的Jobs,将仙童半导体公司比喻为一颗成熟的蒲公英,你一吹它,这种创业精神的种子就随风四处飘扬了。陪伴着这些种子同时离去的是人才。这些陆续离去的人才击垮了这家伟大的公司,也创造了硅谷持续的辉煌。

从这时起,叛逆精神在硅谷生根发芽;从这时起,更多的年轻人意识到从车库里诞生的创意完全可以击垮貌似不可战胜的巨人;从这时起,在这片土地上可以诞生任何奇迹。来自全世界各个角落的资金疯狂涌入这片长不足32公里的大地。Intel,Apple,Oracle,Sun Microsystem,AMD,Yahoo等一系列公司先后诞生在这里,组成了上世纪下半叶一道最为炫丽的风景线。集成电路屹立在这道风景线之上。

1958年,Jack Kilby与Robert Noyce先后发明集成电路,Jack Kilby因此获得了2000年的Nobel物理奖。Robert Noyce于1990年故去,没有等到颁奖的这一天,但是他仅凭创建了Intel这一件事情,在半导体工业界的地位就几乎无人可敌。

在集成电路出现之后,更大规模集成电路的到来,通用处理器的横空出世只是时间问题。1965年Gordon Moore提出在一个集成电路上可容纳的晶体管数目,大约每隔24个月(1975年摩尔将24个月更改为18个月)增加一倍,性能提升一倍。摩尔定律指引并激励着一代又一代的工程师奋勇向前。

1971年,第一个微处理器4004在Intel诞生,随后是8008,8086,80286。很快微处理器席卷了整个天下。在上世纪八十年代中后期,Motorola 68K,MIPS,x86,SUN SPARC,Zilog Z80,联手上演了一场至今仍令人难以忘怀的微处理器大战。

在上世纪九十年代初,x86处理器在微处理器大战中胜出,中小型机逐步退出历史舞台,Intel却迎来了一场更大的危机。DEC(Digital Equipment Corporation)的Alpha处理器,AIM(Apple IBM Motorola)的PowerPC处理器,MIPS处理器和SUN UltraSPARC处理器组成了有史以来最强大的微处理器联盟,RISC联盟。Intel将要迎接来自这个联盟的挑战。当时的Intel在面对这个联盟时没有任何可以与之对抗的技术优势。事实上,RISC联盟的任何一只力量在处理器上的技术也领先于Intel。

面对这一切,昔日最坚定的盟友Microsoft开始动摇,公开宣称支持这个RISC联盟。Intel并没有动摇,至少Andy Grove没有动摇。对于Intel,退路只有万丈深渊。我喜欢那时那样的Intel。Andy Grove时代的Intel是一个连说“老子不会”都无比自信的Intel,是“老子除了技术不行,其他都行”的Intel。那时的Intel,乐子之无知,乐子之无思,乐子之独行。

几乎控制了Server市场全部份额的RISC联盟很快面对了一个几乎无解Chicken and Egg Question。Wintel联盟在不断前行的历程中,有如黑洞,疯狂般席卷着天下的应用。在整个PC世界中,几乎所有应用都已经基于x86这个并不完美的指令集。没有应用,RISC联盟无法进入PC世界去击败Intel,RISC联盟无法进入PC世界也就没有应用。面对这个难题,即便是Wintel联盟中一支的Microsoft亦无法化解。这是一种天然的力量。

RISC联盟只能在Server市场中苟存,看着Intel在不断地发展壮大,进入Server,然后战胜整个RISC联盟。面对这个由Chicken and Egg Question形成的天然力量,SUN没有办法,AIM也没有。处理器界的一代传奇DEC第一个倒下。当时的DEC在技术层面是如此强大。在DEC轰然倒塌后并不太长几年的时间内,投靠AMD的工程师先后开发出了K7和K8处理器。这两颗处理器依然可以给Intel带来灭顶之灾。

当一切成为往事,这段历史依然回味无穷。在PC领域,究竟是先有“Chicken”,还是先有“Egg”,Intel无法回答,Microsoft也无法。几乎所有Chicken and Egg Question都是如此简单,都可以用寥寥数语清晰地描述。我不太担心去解决那些需要三四天才能说清楚的问题,我总能在这些貌似复杂的过程中,找到最薄弱或者次薄弱环节,剩余部分将迎刃而解。世上最难解决的问题恰是用几句话就能够说明白,有如哥德巴赫猜想,有如费马大定律。

Chicken和Egg本是一对孪生兄弟,是在同一个时刻内降临于天地之间。初期并没有清晰的Chicken也没有清晰的Egg。Chicken和Egg是在无数次生物化学反应中水乳交融,多次反复后,在某个瞬间自然分解而成。

在Chicken和Egg的不断进化过程中,历经数不清的磨合和相互间的取长补短。Chicken和Egg最终成型后,几乎无法化解,或者说需要化解的力量要如此之大没有人愿意去化解。获胜方将逍遥于Chicken和Egg之间,挑战者将去面对着Chicken and Egg Dilemma。

Intel凭借来自PC领域的资金和Chicken and Egg的保护伞,学会了当年“老子不会”的所有知识,屹立于集成电路的浪潮之巅,执着捍卫着摩尔定律的正确,芯片制作工艺从65nm,45nm,32nm,22nm,14nm直到10nm。至今,天下半导体公司的合力在处理器制作技术上也无法与其抗衡。Intel更加明了制作工艺比拼的是金钱。金钱可以带来世上的绝大多数,却带不来真正的创新,并不为工艺上的领先欢欣鼓舞。在战胜RISC联盟之后长达十年的时间里,Intel所感受到更多的是来自浪潮之巅的寒意。曾经弱小到不能再弱小的ARM正在给Intel这个巨人制造一道或许难解的Chicken and Egg Question。

以ARM处理器为中心的半导体联盟完全控制了移动终端。在这个比PC领域更加宽广的舞台中,如今的Intel没有任何份额。Intel始终在反击。x86具有足够的性能优势,也有显而易见的劣势。事实上只要x86处理器还继续背着向前兼容(backward-compatibility)的包袱,无论使用什么样的工艺,与ARM都不会在同一个起跑线上竞争。

在2012年的CES,Intel展示了基于Atom SoC的Medfield手机,可以预期Intel在陆续的几年时间内,将推出几款功耗更低,性能更高的处理器。这并不意味着x86可以很容易地进入手持式市场。如果处理器技术可以决定一切,当年的Intel不可能战胜RISC联盟。在处理器领域之外,Intel一直在寻找新的盟友。Wintel联盟已是同床异梦。Windows 8将支持ARM平台,x86也选择了Android。或许ARM处理器进入PC领域只是时间问题,x86处理器进入手持式领域依然有许多问题需要解决。

Android与ARM的组合渐入佳境,几乎所有Android的应用都在某种程度上与ARM处理器有着千丝万缕的联系。运行在x86处理器之上的Android系统,几乎没有什么可以直接使用的应用程序。使用Binary Translation将基于ARM的应用程序移植到x86也许是一个不错的想法。这个想法并不新,RISC联盟当年用过这个方法。另外一条路艰辛许多,Intel可以将Android上使用频率较高的应用程序一个一个地移植到x86平台,只是这件事情究竟该如何做,由谁去做。Intel可以投资80亿美金去建设22nm工厂,却没有足够的能力和足够的财力完成这些移植。

应用匮乏将使x86-Based的手持式设备举步维艰;没有更多的厂商拥护x86-Based的手持式设备将使应用进一步匮乏。Intel在CES 2012上发布的手持式终端仅是投石问路,没有人可以预料最终结局。值得庆幸的是,或许Intel正在面对着的问题,并不是Chicken and Egg Question,这与RISC联盟曾经面对过的Chicken and Egg Question并不相同。

在手持互联领域,在这个年代或许依然存在着Chicken and Egg的故事,却不在传统的处理器和操作系统之中。也许与很多人估计的并不不同,Intel的实质对手并不是ARM,Intel即便战胜了ARM也很难破解在移动终端上所需要解决问题。

以应用为王为大前提的手持互联领域中,Intel甚至还没有起步,占据了移动处理器全部市场份额的ARM也并不算是Winner。在一个ARM SoC中,处理器微架构并没有占据统治地位。在手持式互联领域,ARM只能算作幕后英雄,真正的弄潮儿是Apple,Google和一些掌控着应用的公司。

ARM更似处理器的掘墓人。因为ARM的存在,处理器设计的门槛再不断降低。以前没有处理器设计经验的Qualcomm和Apple之类的公司可以顺利进军这个领域。在中国的珠海,一些制作ARM SoC厂商的制作能力与设计速度令人叹为观止,这已经使得欧美一些单纯制作ARM SoC的传统处理器厂商几乎寸步难行。

2012年这个世界将产出大约80亿个ARM SoC,远超过x86处理器的销售量。只有两千左右员工的ARM向Intel清晰地传达了一个事实,单纯的处理器设计并不需要动用十万员工。这并不是Intel真正需要面对的难题。Intel所需要战胜的并不是ARM。从某种意义上说,Intel与ARM非但不是对手,而是盟友。他们有着相同的称呼,处理器厂商。在不远的将来,他们将共同面对即将到来的,针对处理器的挑战。

这个挑战首先来自操作系统。操作系统已经完成三次大的革新。最初的处理器并没有操作系统,只有一些简单的批处理和任务排队功能。在中小型机中,UNIX和VMS操作系统的出现奠定了现代操作系统大的基调。PC的兴起极大促进了操作系统的发展,先后出现了CP/M和DOS以磁盘管理为中心的操作系统。这些操作系统的主要工作是管理基本的硬件信息,并为用户提供基础的字符界面。这些操作系统属于第一代操作系统。

第二代操作系统引入了图形界面,鼠标的发明极大降低了人机交互的难度。Apple和Microsoft的努力使得图形界面的深入人心。这是一个属于PC的辉煌时代。在这个时代,Intel和Microsoft在各自的领域并不是技术上的领跑者,却和而凝结出一种令所有对手望而生畏的气势。峰之所至,无坚不摧。

前两代操作系统以管理处理器硬件资源为核心。我们正在经历着第三代操作系统。iOS和Android的兴盛,促进了移动互联网的发展,以应用为中心的厂商依靠着这一代操作系统日益强大。这一代操作系统引入了Touch和Gesture等一系列辅助功能,但这不是这代操作系统最重要的特征。与前两代操作系统不同,第三代操作系统的重心不再是管理处理器系统提供的基础硬件;这一代操作系统不再是处理器微架构的衍生品;这一代操作系统是进一步服务于应用,硬件资源管理不再作为中心。

第三代操作系统也可以被称为应用操作系统,主体是服务于应用,不再是硬件资源的管理者。运行在这一代操作系统中的应用程序也在参与着硬件资源的管理,使用者已经不需要了解过多的处理器知识,不需要了解磁盘目录文件这些细节。七八岁的孩童,七八十岁的老人都可以熟练地操作着这些应用。

这些应用的出现,使得操作系统与处理器之间的紧耦合已经被打破。这个年代将很难出现,Wintel联盟因为x86与Windows水乳交融所形成的Chicken and Egg Question,也极大降低了ARM处理器进入PC领域,x86处理器进入手持互联领域的难度。这一代操作系统的出现使得通用处理器与传统操作系统已渐别这个时代的浪潮之巅。

处理器面临的第二个挑战源于自身发展的后继乏力。通用处理器的诞生是电子信息时代得以爆发式发展的基础,摩尔定律的持续正确为处理器的进一步发展插上翅膀。但是摩尔定律并不是摩尔真理,总有失效的一天。至今,这一天不再是离我们很近,而是已经到来。在Intel的Tick-Tock计划中,Tock已经越来越难引起更多人的关注,重要的是Tick。Tick的持续发展维护着摩尔定律的最后领地,却已很难改变摩尔定律的最终结局。

在处理器微架构中,流水线的设计已成往事。我很难相信x86指令流水线的执行效率能够明显超越ARM或者是MIPS,反之亦然。指令流水线性能的提高只剩下工程师在1/2,1/4个节拍中的精益求精,不存在质得飞跃。这使得本世纪初兴起了一场多处理器革命,使用更多的处理器提高整个处理器系统的执行速度。这场革命尚未步入高潮,就已经遭遇瓶颈。

很多人意识到同构多处理器系统很难提高并行度,从而转向异构多处理器系统,也进一步加大了处理器间总线互联的压力。在这样的系统中,互联总线的效率也决定了应用程序的执行效率。在多处理器系统中,需要首先解决的问题依然是进一步提高存储系统的带宽,并尽可能降低存储系统的延时。返璞归真,我们需要解决的问题依然在存储器子系统中。

在Intel每一次的Tock中,重大的技术革新集中于存储器子系统,引入了结构更加复杂,容量更加庞大的Cache Memory。Cache Memory系统不能提高运算类指令的执行效率,只是在以存储器为中心的处理器体系结构中,Cache Memory的效率决定了一个程序最终的执行效率。从体系结构层面上看,Cache Memory的设计方法已经趋于稳定,在整个科技界,即便在理论界,我也看不到哪怕是所谓的革新。

Intel在Cache Memory的领先源于工艺。制作工艺的领先使Intel可以在Cache Memory系统上花费更多资源。只要Intel的竞争对手没有在制作工艺上迎头赶上,就没有可能在Cache Memory子系统领域中更胜一筹,就没有可能在存储器子系统的设计中超过Intel。依靠着在Cache Memory中的优势,Intel屹立处理器领域之巅,所有竞争对手望尘莫及。在存储器子系统中大获全胜的Intel,赢得了Server,并没有赢得天下。

在比Server领域更加宽广的手持式领域中,所比拼的并不是存储器子系统,芸芸众生使用电子设备的主要目的不是用来算题或是为他人提供服务。即便仅考虑Server领域,Intel也正在面临着更多的挑战。存储器的瓶颈与功耗严重阻碍了处理器系统的进一步发展。存储器瓶颈的愈发严重,使得Server处理器需要更加庞大,更加复杂的Cache Memory系统与之匹配。使用这样的Cache Memory将使处理器系统的功耗持续上升。

存储器瓶颈与功耗已经成为Server处理器进一步发展的障碍。因为存储器瓶颈而增强存储器子系统,因为存储器子系统的增强,而进一步提高了功耗。从这种因果关系可以发现,似乎只要解决了存储器瓶颈问题其余问题便迎刃而解。

这个问题却很难解决,甚至可以说在以存储器为中心的冯诺依曼体系(Von Neumann Architecture)中,这个问题几乎无解。我们在试图解决这个问题,并在试图取得在某种意义上突破性的进展之前,需要重新讨论这个问题源自何方。

1945年6月30日,John von Neumann正式发表“First Draft of a Report on the EDVAC”,简称为First Draft,这个设计草稿令整个科学界欢欣鼓舞,第二年John von Neumann,Arthur Walter Burks与Herman Heine Goldstine一道进一步完善了First Draft,发表了另一篇题为“Preliminary discussion of the logical design of an electronic computing instrument”的论文。这两篇文章所阐述的内容被后人称为冯诺依曼体系。

在此之前,世上并没有处理器,只有一些可以执行固定任务的计算器,有进行简单加减乘除的计算器,求解微积分的计算器,求解倒数的计算器。在这个前冯诺依曼体系年代,科学家们为了进行新的科学计算,需要设计一款新型的定制计算器,需要重新搭建电子设备。冯诺依曼体系改变了这一切,建立了计算机体系结构中最重要的组成原理,影响至今。冯诺依曼体系第一次引入了Store-Program计算理论,确定了一个计算机的五大组成部分,包括Arithmetic Logic Unit,Processor Registers,Control Unit(包括IR和PC),用于存储指令和数据的Memory和输入输出设备。

在这种体系中,计算机将按照程序规定的顺序,将指令从存储器中取出并逐条执行。在程序和数据中使用二进制表示方法,当一个计算课题发生变化后,只需要更改Memory中的程序,而不需要重新设计一款新的计算器。

冯诺依曼体系极大化解了此前在计算器设计中的冗余,可以将世上的绝大多数应用规约于一个统一模型,奠定了现代计算机体系结构的基础。计算机的历史揭开了新的一页。这套体系诞生至今,在计算机体系结构中始终占据着主导地位。在计算机体系结构持续发展的几十年时间以来,没有任何理论能将其颠覆,更多的只是在冯诺依曼体系之上的修修补补。

大规模集成电路的出现为冯诺依曼体系插上翅膀。基于这个体系的通用处理器最终成为可能。Intel与其他处理器厂商一道上演了通用处理器的传奇。摩尔定律的持续正确使得处理器迅猛发展,处理器变得愈发强大,愈发廉价。通用处理器席卷了天下应用。通用处理器的大规模推广与普及也奠定了当今电子信息领域的基础。

Von Neumann Architecture并不完美,在这种以存储器为中心的体系结构中,存储器必然成为瓶颈,这一瓶颈也被称为Von Neumann瓶颈。这一瓶颈伴随着冯诺依曼体系的出现而出现,目前尚无有效的方法消除。Cache Memory的出现极大缓解了Von Neumann瓶颈,随后出现的Modified Harvard Architecture,Branch Predictor和NUMA体系结构进一步缓解了这个瓶颈。但是这种量的积累并没有引发质变。冯诺依曼体系并没有因此升华,直到今日存储器瓶颈依然存在,而且愈演愈烈。

在今天的Server领域,几乎所有应用都有一个相同的运行轨迹。I/O设备首先将数据发送到存储器子系统,处理器对数据进行处理后再交还于存储器子系统,I/O设备再从存储器子系统中获取数据,之后再做进一步的处理。在这种模型中,每进行一次运算,需要多次访问存储器子系统。存储器子系统必然成为瓶颈,使用再多的处理器也不能解决这些问题。

首先是作为数学家与物理学家的John von Neumann,从事计算机科学的出发点,是进行科学计算,他没有预料到二十一世纪的今天,有这样不学无术的一群人在这样地使用计算机。在我们所处的这个时代,通用处理器的主要功能早已不是在进行风花雪月的数学计算。

通用处理器在一路前行的道路上,席卷天下,应用边界在不断的扩张。我们可以使用处理器进行文字数据,数据挖掘,上网聊天,打游戏。在今天使用处理器的人群中,用其进行科学运算的屈指可数。为了专门算题买台PC或者Server的人,我一个也没有见过。

今天的处理器如此科技,如此廉价,已被视作电子信息领域高科技的象征。这导致天下人对通用处理器的盲从,导致了通用处理器能够更加顺利地席卷着天下应用。众多应用的叠加,使得处理器遭遇了前所未有的存储器瓶颈问题。可以预见,只要通用处理器继续吸纳着更多的应用,存储器瓶颈只能更加严重,功耗将持续上升。

问题是我们为什么要用通用处理器解决所有问题。通用处理器可以解决很多问题,但在这个世界上,许多问题的解决根本不需要使用通用处理器。冯诺依曼体系的提出是针对当时电子设备高度定制化所产生的浪费,至今已时过境迁。在冯诺依曼体系之下,即便是即便是验证i加j确实等于2的问题,也需要将程序与数据输入到处理器,需要各种算术逻辑,数据传送单元的共同参与,经过了诸多操作后,获得最终结果。

如果仅是为了验证i加j确实等于2的问题,倘若使用定制逻辑,只需要使用一个加法器和一个比较器,并不需要通用处理器。但是在摩尔定律持续正确的年代,处理器持续着廉价。在多数应用场景中,使用通用处理器依然最为有效。即便是一些扭曲身形去迎合通用处理器的应用,也因为通用处理器的飞速进展,获得了事实上的最优。在摩尔定律持续正确的年代,绝大多数采用定制逻辑而违背冯诺依曼体系的处理机制没有获得成功。

顺势而为是取得一定程度的成功的保障。在许多情况之下,即便你明知99%以上的人选择了一条弯路,依然需要这种顺势而为。因为这99%的合力就算是在走一条事实上的弯路,也远快过独自一人走真正的捷径,也更容易到达终点。

时过境迁,种种迹象表明摩尔定律不再正确。这意味着在面积大小一定的Die中将无法容纳更多的晶体管。使用通用处理器,无论是同构或者异构模型,在解决某类应用时,已经不再是最优方案,甚至不是次优方案。

通用处理器在一路前行的道路,是与存储器瓶颈不断斗争的历史。从冯诺依曼体系诞生至今,通用处理器所面临的主要问题依然是存储器的延时与带宽。在一个通用处理器中,存储器子系统占据了绝大多数资源。在一个通用处理器中,如果去除L1,L2等诸多层次的Cache子系统,去除指令流水线中为了减轻存储器瓶颈的各种预测机制和MMU后,所剩无几。如今的通用处理器更是将主要的资源放在道路建设上,并没有专注于应用问题的解决。

这种并不专注同时也意味着巨大的浪费,与John von Neumann的初衷不再吻合。John von Neumann所设计的体系是基于当时的认知,为了避免定制逻辑所造成的浪费。至今通用处理器本身已经成为最大的定制逻辑,在这个定制逻辑中,所关注的主要问题是如何修路,很多情况下是为了修路而修路,以容纳更多的应用,即便有很多应用根本不需要这条路,也不需要依照冯诺依曼体系的要求去执行。

在这种趋势下,存储器瓶颈将持续存在,持续恶化。我们正在经历着一个以应用为中心的时代。不同的应用对处理器系统有着不同的需求。这使得定制化与差异化重回议程。在一个通用处理器中,正在容纳更多的定制逻辑,正在容纳更多的加速模块。这些变化使得所谓的通用处理器并不再是绝对意义上的通用。

ARM这个比Intel弱小得多的企业,依靠着并不领先的技术取得如今的成就,我认为最主要的原因是ARM为其他厂商的差异化与定制化提供了便利条件。电子信息领域经历了Mainframe Era,PC Era,Internet Era,而至Mobile Era时代。在这个名为Mobile的Era中, ARM身后隐藏的定制化与差异化已经成为Mobile的时代主题。

作为公司的ARM距离Intel还有相当长的一段距离,但是作为一个行业的ARM已经取得事实上的领先。从这个角度上说,不是ARM在手持互联领域中暂时领先与Intel,而是在Mobile Era的时代,定制化与差异化在与通用化的较量中获得了先机。

对定制化与差异化的最大挑战是IC设计领域中客观需要的规模效应。定制化与差异化的思路与此背道而驰。Intel使用单一产品覆盖绝大多数的应用,产生了规模效应,实现了利润最大化,Gross Margin超过60%。采用ARM的定制化与差异化方案的任何公司都无法获得这样的Gross Margin。在Mobile Era中,手持处理器厂商呈百花齐放格局;在Mobile Era中,各式应用的不同要求使得相关的处理器进一步差异化。

单个厂商获得60%以上的Gross Margin正在成为过去。Intel维持高额的Gross Margin主要依靠的是Mobile Era的Server领域。Intel的Mainframe处理器首先是针对Server的一种定制化,之后将这种设计简化到PC领域,以获得最大的规模化效应。Intel从Nehalem开始的Tock过程,事实上是一个针对Server的定制过程。今天的Intel已经不是凭借着PC的占有率去攻占Server,而是凭借着Mobile Era对Server的需求,维护着在PC领域中的地位。

在手持式领域,Intel的Medfield仅是一次尝试,并不会给ARM的Cortex系列处理器带来质的挑战。整个业界窒息般等待着的是Intel在Atom处理器中的Tock-Tick,Silvermont和Airmont。Tick-Tock计划在Atom处理器中的引入转达着Intel对在手持式领域中,所遭受的一个接着一个失败的愤怒。认真起来的Intel在处理器领域依然无敌,从纯技术的角度上看,如果Intel的竞争对手在芯片的制作工艺上没有出现大的突破,那么Intel出现功耗性能比超越世上任何一个ARM SoC处理器只是时间问题。ARM阵营将对此没有任何办法。

只是决定一个手持式处理器最终成败的并非是处理器微架构的性能功耗比,购买手持式产品的最终用户有几人能够理解处理器微架构。处理器微架构之外的音视频效果,互联网体验,设备提供商是否足够的Fashionable更能够吸引他们的眼球。

在手持互联领域中,处理器进一步的定制化已经成为事实。在手持式处理器中,已经含有各类音视频加速引擎。在一些基于Web的应用中,正在使用一些专用加速引擎去解析HTML,去解析Javascript。在这个领域中,通用处理器正在为定制化预留空间,在未来的几年内,将会出现更多的加速引擎,进一步减轻处理器的负担。

如果Intel将芯片制作工艺上的优势仅仅转化为处理器的性能功耗比,依然以处理器微架构为中心,所取得的成就将十分有限。我更期待在未来的几年内,Intel能够将工艺领先而获得的额外资源用于定制与差异化逻辑,淡化处理器微架构在系统中的位置,进而为定制化和差异化提供空间。若仅在技术层面考虑,这将是其他处理器厂商的噩梦。

问题是如何为手持式领域进行定制化与差异化。在手持互联领域中存在两类公司,一类是Apple与Samsung,另一类是山寨。我不得不承认,这些生产手持设备的厂商合在一起也不如Intel更懂硅芯片的制造,但是几乎任何一家都比Intel更加理解芸芸众生为什么要买一个手持产品,也更加理解如何针对这些产品进行深度的定制化与差异化。

定制化与差异化也同时决定着,即便Intel能够在技术层面上完全领先也无法取得其在PC领域中的地位,也因此无法获得足够高的Gross Margin。这些现状将会使Intel这个具有十万员工的公司,在没有一个Andy Grove般强势有力的领袖时,很难在内部形成有效的合力。Intel在手持互联处理器中的艰难在很大程度上是颛臾之忧。

在技术层面之外,第一类手持设备厂商Apple与Samsung在为最终用户提供各类产品的同时,还生产用于手持式设备的处理器。在这个手持处理器这个领域,Intel要与这些既是运动员又是裁判员的第一类厂商竞争,并不公平。这些内外之扰,决定了Intel即便在三年后制作出在技术层面超过Qualcomm的处理器,也并没有丝毫办法把握能够主导这个市场。

在手持式领域中,也许依然存在着Chicken或者Egg,但是单纯的处理器或者操作系统将不再是Chicken也不再是Egg。在Server,或者是其他Embedded领域,大量出现的定制与差异化逻辑已经使得处理器微架构在一个系统中逐步偏离设计中心。

这些定制化与差异化的大规模出现,是因为许多人已经意识到有些应用并不适合处理器去解决,摩尔定律的事实结束使得通用处理器的效率无法继续获得线性加速比。很多人意识到我们似乎重新回到前冯诺依曼体系时代,那个只有差异与定制的时代。

这些变化并不意味着处理器会消亡,只是处理器不会在继续通用化的道路上顺利向前,并不会作为绝对的中心。将有更多的应用将按照自己的特点使用定制逻辑,不再是交由处理器。这将进一步化解存储器的瓶颈,进一步的降低功耗。这些变化将使我们迎来一个新的时代,一个属于定制化与差异化的时代。

从技术的角度上看,定制化与差异化是消减存储器瓶颈的有效手段。在Server或者是其他领域,如果一个应用的90%以上工作可以交予定制逻辑,剩余的10%再交予处理器,以目前的半导体技术,存储器将不再是瓶颈,处理器系统的功耗也将随之降低。

但我认为这并不是定制化的主要方向,定制化逻辑并不一定要隶属于处理器。在未来,定制逻辑之间,带有智能功能的外部设备间可以直接交互信息而不必通过处理器。在这些智能设备中可以含有冯诺依曼体系的处理器,也可以没有。

在数据中心的应用中,如果智能网卡可以通过与智能盘卡之间的直接交互,而不是全部通过通用处理器,我们将可以不再使用机器人去维护这样的系统,也不需要使用专门的电力通路。这种设备的运行有如人体,肢体器官间存在着更多的下意识行为和更加自然的操作,不必全部由大脑指挥。

我没有理论与数据验证这一结论,只是自觉告诉我这种智能设备将很快出现,将有更多的应用远离通用处理器系统。在可以预见的将来,各类定制化与差异化应用将继续着劈波斩浪。这是一个年轻人可以持续着向广袤神秘的未知领域挑战,是一个可以持续着带来新希望的大应用时代。在摩尔定律即将且正在结束的时代,定制化与差异化的时代窗口将再次开启。只是这一次,我们不知道何时还能再有冯诺依曼。

(37个打分, 平均:4.73 / 5)

雁过留声

“王齐 。 《后科技时代--处理器的思考》”有40个回复

  1. zeroflag 于 2012-02-07 6:18 下午

    个人不是特别信服文章的结论。无论摩尔定律是否依然生效,通用化与定制化相比,通用化从发展速度到成本下降速度都要更快。这是经济学原理决定的,而非技术原因。这一点,从以太网和FC的对比上可以非常清楚的看出。

    其实,回顾PC的体系架构的发展,从最早的80286+80287,到独立显卡,历史上出现了很多种特殊的协处理器来辅助CPU运算,实现更好性能的例子。现在浮点运算的功能早被CPU收回去了,看意思近几年可能显卡的功能也会被CPU收回去,成为CPU的一个功能。不能忽视的事实是,这些协处理器必须得到整个系统软件的支持才能顺利的工作,因此,这类协处理器也必须得是通用的,或者基本通用的。

    除了协处理器外,另一类更接近作者所言的定制化的例子,就是RMI一类的为网络设备设计的CPU,集成了很多诸如IPSEC加速一类的定制化需求,但是其仍然与外置硬件加密卡的模式没有本质性的区别,无非就是功能更小众一些,但是随着IPV6的发展,在网卡上甚至在X86 CPU上集成IPSEC加密的加速模块也不是不可想象的。

    所以,个人认为,为了小众应用搞定制化CPU恐怕得不偿失,而且有很多替代方案,如FPGA等,很多FPGA还有通用处理器的IP呢;而为了大众应用(如集成显卡)搞的定制化最后会成为CPU的事实功能标准。

  2. 大宋民工 于 2012-02-07 6:30 下午

    这个东西兄弟不懂,请高人现身。
    我记得以前看过有人写的处理器存贮器一体化好像也是为了解决这个问题的一种思路,各有什么利弊,请大家发言。

  3. 麦克 于 2012-02-07 8:17 下午

    写的很好。
    intel的问题是,看到移动计算这个市场,进不去,心里着急。

    其实,如果intel能够分拆出一个移动计算的部门,这个部门可以使用 arm 的指令集,相信凭 intel本身的技术和制造实力,一定不弱于 高通、nvidia,可惜intel被自身算限制,x86坚持到底。

    另一方面,在server计算领域,基于异构的计算多核心的发展,我认为刚刚开始。想象一下想在的PC具备10年前超级计算机的能力,那么,未来的十年,现在的上千个通用CPU和GPU构成的超级计算机,能否在PC上实现呢? 这条路还是可以继续走下去,真的很期待的说。从应用上来看,光线追踪,AI、由于计算能力不足,目前还是比较奢侈的算法,未来十年的游戏是否能够普及呢?

  4. cjk 于 2012-02-07 8:46 下午

    苹果的A5/A6系列CPU,就是差异化的典型,但量级要求还是比较高,一般厂商没钱这么玩。
    王齐所述的趋势是切实存在的,目前产业确实在变化,国内已经产生了一批基于ARM IP的小公司,能够设计一些差异化不是特别大的产品。但整个产业链的准备是不足的,虽然前段IP核公司已经提供了方面的知识产权准备,但后端的芯片制造公司能力还没完全上来,末端设备商家 –如OEM(主要是山寨或国内中等规模厂商)的能力就更差了,因而并未能基于这些IP制造出高质量且差异化的产品。目前推动ICT发展的主力军还是国际一线厂家,而这些厂家天生没有实现大规模差异化的基因。从这个意义来说,差异化的关键可能是在国内的工程能力能上来,恐怕未来5年,这个趋势还成不了气候

  5. spike 于 2012-02-07 9:46 下午

    相关的两个rumor:
    1.AMD打算放弃专注于x86架构的策略?是向nvidia那样还是另辟蹊径?

    2.Google打算今年在Android中使用Portable Native Client技术消除不同ISA对应用的影响?不知道效率有多高?

    知情的给点信息哈

  6. kevint 于 2012-02-07 11:17 下午

    印象中Traitorous Eight离开的原因是Shockley坚持使用GaAs作为半导体的研究方向,而其他人坚信硅才是正确的方向

  7. 理客 于 2012-02-07 11:55 下午

    王大侠的佳作博大精深,很真实,包括shockley不该说的不同种族智商差异的皇帝新装。举世皆浊我独清,众人皆醉我独醒。历史是用来证明和沉积的,千百年沉积到血液和骨子里的民族根质包括智商在内的差异是符合进化论的事实,解释了黑人和犹太人的天壤之别的原因,包括阿拉伯人,把自己当下的无能都归结到外因是男人最无能的表现。

  8. shuyong 于 2012-02-08 12:04 上午

    无责任风闻:1,AMD走的路子有点像nvidia;2, NaCl从公开的代码库和新闻看,目前只用在Chrome项目里。NaCl的主题是沙箱和安全,从老的资料看有5%的性能损失。

    Intel现在的Android策略好像是紧逼盯人,想翻身好像把宝压在了以HTML5为基础的项目上,例如Chrome, Tizen。成不成,3年后才知道。

  9. kevint 于 2012-02-08 12:05 上午

    借用文章的观点回应理客对MS战略评论

    “事实上只要x86处理器还继续背着向前兼容(backward-compatibility)的包袱,无论使用什么样的工艺,与ARM都不会在同一个起跑线上竞争。”
    我觉得这句话同样适合wintel左边的微软。把x86处理器换成windows,工艺换成架构,ARM换成android。说的是同一个问题。新时代还背历史包袱,只能输在历史起跑线上。

    “运行在x86处理器之上的Android系统,几乎没有什么可以直接使用的应用程序。使用Binary Translation将基于ARM的应用程序移植到x86也许是一个不错的想法。这个想法并不新,RISC联盟当年用过这个方法。”

    如果说运行在arm上的windows系统希望运行原生的windows程序,抛开UI巨大的差异不说,用Binary Translation,性能天生腰斩。市场会埋单么

    排列组合一下,intel+android,intel+ms, arm+android,arm+ms。不难发现除了arm+android这一组合处在统治地位,intel+android和arm+ms一样的面临鸡-鸡蛋的困局。反而传统有优势的intel+ms处在最不利的地位。intel不能利用android的平台优势,ms不能利用arm开放低价的市场优势。
    如果aa是1,那ia和am都为0,而im则是-1

    所以解开这个困局,个人观点,不管对于intel还是ms,从0出发都比从-1出发要强。

    从开发角度,应用感知OS远远要多于处理器,即从A+A上移植应用到I+A要比移植到M+A上容易的多。所以我更看好IA组合。从这个角度看,MS在移动上能走多远,真的看造化了。

  10. 理客 于 2012-02-08 12:58 上午

    工程上如何把windows PC/laptop及其应用紧密容易的捆起来,简单直接的硬干很难成功,总是要一些合理的trading-off,所以idea总是比真干要容易得多

  11. hello 于 2012-02-08 2:36 上午

    最后说了半天,还是要用大量的冯系通用处理器。所谓的定制其实也已经很成熟,这个世界上有每天都成产生各种定制ASIC。最后半导体工业的竞争一直就是基于工艺和架构的竞争。说到通用,廉价的FPGA的大量使用也许才是另一种通用。

  12. boox 于 2012-02-08 7:25 上午

    按照作者的思路,未来FPGA厂家才是王道

  13. JW 于 2012-02-08 8:43 上午

    瞎扯。Intel的Architecture不比Sun的差。别看人家是RISC,其实过了前几个decode stage早就打成了自己的uop。 而且它的branch predictor啥的做得都是巨牛无比的。

  14. JW 于 2012-02-08 8:46 上午

    Intel工艺先进那是没话说。

  15. 理客 于 2012-02-08 9:04 上午

    合久可能分,分久可能合,长久看,是分是合,看TCO

  16. 素里太守 于 2012-02-08 3:53 下午

    to kevint 6楼。
    肖克利的坚持的方向是锗为材料。坤化鎵(GaA)是N年以后的事情。

    同意你九楼的观点。ia的组合好于am的组合。对ANDROID APP来说一半是纯JAVA的在ia上都不要改,一半是有NATIVE CODE的(SO文件,需要重新编译链接,大部分都很简单几分钟搞定),Intel投钱自己建个APP store就成。关键是现在am的组合APP太少,从IPHONE和ANDROID上移植APP的成本太高。

  17. caibird3rd 于 2012-02-08 5:44 下午

    前面技术史的部分可以当作趣闻野史看看,后面的就算了,嘿嘿

  18. kevint 于 2012-02-08 7:56 下午

    to 14
    记岔了。呵呵

  19. 休假式治疗 于 2012-02-08 10:47 下午

    定制化、差异化和通用的FPGA哪个更能激发全体技术人员的潜力呢。

  20. ZW 于 2012-02-09 3:01 下午

    有人关注 Xilinx 的Zynq吗?FPGA 和 双核ARM core,通用部分用 ARM core, 差异部分分到 FPGA fabric 定制, 满符合作者的想法。

  21. yunhaid 于 2012-02-09 3:57 下午

    个人感觉,FPGA会有巨大发展,甚至有可能FPGA会成为PC标配,以后软件工程师也要开始写数字芯片程序。

  22. 理客 于 2012-02-09 4:29 下午

    在服务端定制化引擎优化冯诺依曼架构的瓶颈更为可能,但在智能终端领域,则充满了变数,一个是通用和定制化的成本差异,在海量的低价终端类设备,一点点的成本差异乘以海量也是一个巨大的数字,不敢不敢小觑,另外一个是元计算、高速网络和web app等新的变化可以通过更低的成本解决智能终端的性能问题。所以不看好智能终端使用FPGA方案

  23. sailing 于 2012-02-09 4:30 下午

    FPGA在用很多逻辑模拟一部分定制的逻辑,以实现动态重配置,损耗较高,但是对于某种应用,依然比通用处理器高效。

    不知道Memristor-based的FPGA会不会带来一些质得改变。

    Zynq的前途未卜。之前有过几代FPGA集成SOC的芯片,均告失败。前一阵和Xilinx的人简单聊过,个人认为Zync在需要定制化的高端Server中将有所作为,而不是对成本较为敏感的Embedded领域。

  24. 胡不才 于 2012-02-09 6:26 下午

    To 素里太守 14楼:
    mac上的iphone虚拟机就是x86的,所有的apple store里的程序其实都有一个x86的版本。只要intel迎头赶上,apple能马上就换平台,而上面的应用丝毫不受影响。

    其实,当年Intel是靠给日本人做内存起家的,嘿嘿。下一个Intel应该诞生在山寨的中国,只不过,我们需要超前思考以及勇于开拓创新。

  25. guest 于 2012-02-09 7:23 下午

    历史是用来证明和沉积的,千百年沉积到血液和骨子里的民族根质包括智商在内的差异是符合进化论的事实,解释了黑人和犹太人的天壤之别的原因,包括阿拉伯人,把自己当下的无能都归结到外因是男人最无能的表现。!!!

  26. 沙加 于 2012-02-10 1:50 上午

    为什么有此等自信下一个Intel诞生在山寨的中国?山寨的做些快餐式的东西还行,也能有些不错的市场创意,但个人感觉绝对绝对成不了大气候。Intel没错当年是搞内存起步的,但几个创始人本身就是集成电路界的魁首

  27. 胡不才 于 2012-02-11 11:22 上午

    To 沙加:
    技术这东西就是窗户纸,当年Intel创始人只是师从肖克莱,但是并非是什么魁首。现在国内和国外的技术差距已经很小,很多国人也都是师从“国际大牛”,以中国人的才智,加上适当的土壤,成就个把Intel,苹果之流应该不难。你放眼看看,中国什么样的公司没有?从百度(google),腾讯(facebook)到网易,新浪,从华为(cisco)中兴到太阳能。现在就差在没有微软,甲骨文,Intel,苹果这样的公司了,为啥呢?因为成就这样的公司都需要特殊条件,盖茨和乔布斯都是少年天才,10几岁接触电脑或电子学,我们现在的90后,00后应该也如此,所以乐观估计,2020-2030应该会有一批世界级公司诞生。
    最后,从进化的观点,不是最强最牛的物种存活,而是最适应环境的物种。山寨就是其中之一。从进化的观点,复杂事物都是从简单事物不断进化而来,优胜略汰,软件也好,系统也罢,公司都一样。

  28. 理客 于 2012-02-11 1:24 下午

    如果教育和环境能向ZY秩序较快的有效improvement,几十年内出现引领世界的公司不是什么难事,但如果整个社会主流都是为自己而苟且,不去努力改变社会环境,那么几十年以后仍然很难有戏,而至少目前看这个社会环境仍然是在恶化中,而不是优化中,这是中国最大的危机和变数,如果很少有人愿意为此付出牺牲,大多数人都以这种牺牲为傻瓜,那么中国永远都不会走向一个良性的社会环境。或者说中国目前最需要的最缺的不是聪明人,而是傻瓜。当一个社会不能寄希望一个明君或者人文领袖的话,那么只能靠发动群众自下而上的改变土壤了

  29. 沙加 于 2012-02-11 9:48 下午

    山寨的确是比较适应环境的物种,因此可以快速成长起来。但山寨最大的问题在于,都是赚快钱的主,兴衰往往就在一两年间。中国当前的环境,也缺少把实业做大做强的各种因素。

  30. TO 胡不才 于 2012-02-11 11:22 下午

    Intel创始人可是有2次机会得NOBEL 奖的,还不是魁首?

  31. 胡不才 于 2012-02-12 4:23 下午

    其实看大辽的VC,又何尝不是赚快钱的主?只不过人家追求“更大”的利润所以可以等更长的时间花更大的气力:风投的目标都是10X,30X,100X。山寨和他们比起来就是小巫了,所以制度再完善些,环境在适应些,眼光再长远些就一定会更好。

    关于Intel的创始人是否魁首,我的意思是至少他们出来单干时还不是。而且,是否诺贝尔和成就伟大的公司也没有必然的联系,思科的创始人就是两个斯坦福的研究生,然后两人功成身退,继续做大做强的是拿过接力棒的人。

  32. shuyong 于 2012-02-12 7:09 下午

    还真的不看好山寨能在技术上有突破,能沉下心来打基础。他们的基因里面充满了用尽一切手段抄近路,打一枪换一个地方的思路。想改变,太难。毕竟大宋没有重视工程知识的传统。

  33. citylonely 于 2012-02-15 11:43 下午

    叫漫谈还可以,叫冷思考有点自夸了….
    情绪十足,功力不够,甚至有些拖沓,不着边际
    历史写的有点意思,最后部分实在是非常吃力,不要说让人信服了,甚至谈不上有一个结论

  34. 刘贤玉 于 2012-02-20 9:47 下午

    最后的部分的结论十分不能令人信服,我们真的那么需要外设和外设之间的通信吗?CPU总线已经成为最后的瓶颈了吗?

    另辟蹊径可以带来性能上的效益,但是统一的架构和编程基础,才有可能发展.

    仅仅一个定制化的问题,何以能谈到冯诺依曼架构的过时.

  35. jerry 于 2012-02-21 12:00 下午

    作者對現在的狀況很清楚,當時對未來的理解就沒什麼vision, 很多關鍵問題沒touch到,application 與memory system的關係,EDA tools, 設計與驗證方法學,problem solving model, 希望作者能給我們些觀點。

  36. jerry_gzy 于 2012-02-21 12:01 下午

    作者對現在的狀況很清楚,但是對未來的理解就沒什麼vision, 很多關鍵問題沒touch到,application 與memory system的關係,EDA tools, 設計與驗證方法學,problem solving model, 希望作者能給我們些觀點。

  37. Taylor 于 2012-03-03 12:15 上午

    寫得真好,這樣的文章應該多發出來!值得去好好思考.

  38. HAHA 于 2012-03-11 10:11 上午

    通用处理器本来就是定制asic中的一种,何来过时一说

  39. chenxj 于 2012-03-18 8:37 上午

    多核也是业务定制的一种选择,用FPGA或协处理器来达到的加速效果,用定制的AMP多核系统也可以实现,最多浪费一些core来专门加速定制业务。这相对定制asic来讲,成本和实现难度都要小很多。个人预测,非对称的多核系统未来可能会有一席之地,而当前还没有能够形成垄断地位的AMP系统,甚至没有大规模的商业投入这个领域。处女地啊,各位!

  40. lalo 于 2012-04-25 5:03 下午

    是这个回事儿, 通用处理器 功耗太大了。