来源:科技新报(台)
长期关心处理器技术发展者,这20年来,很难不每隔一段时间就会偶尔听到「这技术受Alpha影响」、「这是出自于前Alpha研发团队成员的杰作」,甚至老一辈军武迷,或多或少也会听闻「传说某某某尖端武器有用到地球最快的处理器」,而英特尔晶圆厂在2005年还在使用Alpha服务器控制内部所有流程(AMD那时已全面改换自家Opteron),更曾是某些坚定反抗Wintel阵营的骨灰级老人茶余饭后的闲聊话题。
此外,神威·太湖之光超级计算机用的神威CPU技术来源也是DEC的Alpha21164。
最近因某位发迹于DEC(Digital Equipment Corporation)的Alpha研发团队,往返于AMD与英特尔的「处理器游侠」JimKeller被多次介绍之后,让充满传奇的昔日王者Alpha处理器,似乎又吸引诸多关注的目光。
事实上,Alpha不但曾在1990年代叱咤风云好一阵时日,因一系列商业购并而四散各方的技术研发团队,更对处理器业界造成极度深远的影响,从AMDK7 诞生并引进EV6总线、Sun的超级多核心多执行绪ThroughputComputing、AMD在推土机时代的丛集多执行绪(Cluster-basedMulti-Threading,CMT)、根本是EV7总线借尸还魂的英特尔QPI,到150位Alpha最终团队成员归宿的英特尔8核心Itanium「Poulson」,皆为Alpha的贡献。
但要了解Alpha前,必须先或多或少了解DEC这间公司在Alpha之前的早期产品与历史,才会切身感受为何Alpha能如此独树一帜。
「微型计算机」先驱的DEC
早期「电脑」可一点也不小,动辄好几个机柜甚至塞满一整个房间者比比皆是,所谓的「微型计算机」也只是相对概念,而「单芯片微处理器」更不是理所当然的产物。
DEC公司成立于1957年,算是早期计算机产业的先驱企业之一,1960年代推出18位元PDP-1(ProgrammedData Processor,程序化数字处理器),并让关在研究室的使用者,除了操作这台由四个机柜组成的「昂贵打字机」外,更可以用价值12万美元的PDP-1玩世界首款电脑游戏《Spacewar》。PDP-1总计生产53台,这稀少的数量,今天只会让人第一时间想到超级电脑。
因体积较小而被誉为世界第一台微型计算机的12位元PDP-8发表于1964年,靠着平均售价仅18,000美元的极高性价比,DEC生产并销售超过1,450台PDP-8。DEC也持续发展在商业取得重大成功的PDP家族,吸引大量对应操作系统。其中最具代表性者,莫过于AT&T的贝尔实验室,1971年于PDP-7和对后世影响深远的PDP-11,开发出第一个Unix操作系统。
PDP-11借高度「正交性」(Orthogonal,后面会解释)、通用暂存器、并丰富定址模式的指令集架构,并大幅降低生产成本,而获取空前成功,在市场存活长达20年,催生大量出自东欧共产国家和前苏联的复制版本。
DEC以其为基础,开发在1977年发表的32位元架构VAX(Virtual Address eXtension,虚拟位址扩展)计算机Model11/780,隔年进一步推出基于VAX架构的原生操作系统VMS(VirtualMemory System,虚拟存储器系统),具备大量当时前所未见的崭新技术。
1980年代,从小型工作站到六处理器的大型服务器,都是VAX的「守备范围」,也让DEC赚进大把大把钞票。笔者在20世纪末期的大学时代,修习SAS数据处理课程,也是使用古老的VAX系统,普及甚广之程度,由此可见一斑,象征DEC在1980年代的辉煌,DEC也因注册VAX商标,和一家本来就叫VAX的真空吸尘器厂商闹上法庭。
让VAX「逆向归类」成CISC的RISC风潮
但RISC潮流却即将袭来。1980年,加州大学柏克莱分校DavidPatterson 教授著名的论文,创造了「RISC」(ReducedInstruction Set Computer,精简指令集电脑)一词,间接产生对比用的CISC(ComplexInstruction Set Computer,复杂指令集电脑),并在1981年实作第一颗RISC处理器RISCI。
同时,斯坦福大学JohnHennessy 教授也提出MIPS(Micro processor without Interlocked Pipeline Stages)指令集,1984年开设MIPS公司并推出R2000处理器,有经历过SGI绘图工作站全盛时期或知悉Sony Play Station 2 心脏EmotionEngine 里塞了一颗R4000核心的读者,绝对不可能不知道MIPS的大名。
后来DavidPatterson 和JohnHennessy 共同著作的两本教科书:俗称「白算盘」(之后因应潮流,封面变成iPad的虚拟算盘)的《计算机组织与设计:软硬件介面》(Computer Organization and Design: the Hardware /SoftwareInterface)与《计算机结构:计量方法》(Computer Architecture: A Quantitative Approach),更是大学资讯相关科系的必备教科书,别说计算机结构课程的期中考和期末考(笔者还为了写作业,跑去买解答本),研究所考试更不可能不考里面内容。
像「x86指令集大概只有设计它的人才会喜欢」之类的负面评论之所以「深植人心」,这两位当代RISC大师的巨著绝对功不可没,至于为何计量方法第一版的内容会和白算盘初版有那么多的重叠,那就不在本文讨论范围了,搞不好这两位大师一开始只想写一本书也说不定。
这些努力,除了让更早期的类似概念产品与相关研究(如CDC6600和IBM801 实验性迷你主机)的成果渐渐浮上水面,更促使更多公司投入RISC处理器的研究与开发。当然,也包含DEC,VAX也因RISC诞生而「逆向归类」成CISC家族的成员,而且还是恶名昭彰的经典。
研发Alpha是DEC不得不面对的挑战
DEC在1982~1984年间展开RISC的相关研究,1985年整并4个研究案,成为单一PRISM(ParallelReduced Instruction Set Machine,平行精简指令集计算机)计划,并参与MIPSR3000 处理器研发,也让PRISM拥有许多和MIPS相似的特性。
问题来了,既然PRISM跟MIPS这么像,那DEC为何不干脆直接采用MIPS算了?干么大费周章「为了喝牛奶养一整座牧场」,1988年DEC管理高层决定采用MIPS处理器,终止觉得浪费钱的PRISM计划,计划发起人兼负责人愤而辞职,跳槽到微软开发WindowsNT 操作系统。1989年初,DEC推出使用MIPSR2000 处理器、Ultrix操作系统的首款RISC工作站DECstation3100(代号PMAX),与处理器主频较低(从16.67MHz降到12.5MHz)的DEC station2100(代号PMIN),这条产品线持续到1994年最终采用MIPSR4400 的DEC station 5000 系列(代号3MAX+)。
工作站靠「开外挂」解决燃眉之急,但1980年代末期,面对雨后春笋般诞生的RISC(MIPS、SPARC、PA-RISC)挑战,VAX在服务器市场逐渐缺乏竞争力的确是不争事实,最终DEC还是不得不打造自家RISC指令集与处理器,且需要具有非常强大的竞争力和发展潜力:目标至少25年生命周期,未来可提升1千倍效能(10倍来自提高主频、10倍来自超标量流水线、10倍来自多处理器架构),又经典、又极端、指令集又「干净过头」的Alpha就这样出现了。
复杂指令集经典惨案的VAX
虽然Alpha处理器的世代以EV(ExtendedVAX)开头,但Alpha和VAX却是光谱两端的存在,如同和x86名称很像的英特尔IA-64(IntelArchitecture 64)指令集,实际上根本却和80x86八竿子打不着。
理解Alpha的设计理念前,各位需要先瞧瞧归类成CISC的VAX,究竟多么夸张,连英特尔80x86都小巫见大巫。基本上,论指令集「毫无道理可寻的复杂度」,假若VAX排第二,那恐怕就没人敢排第一了。好吧,英特尔失败的「32位元迷你大型主机」iAPX432有机会可以一拼。
前面有提到VAX发展根基的PDP-11有很强的「指令正交性」,意指为数据来源和运算目标的运算元(Operand)非常「独立」,可分别是暂存器或是透过暂存器定址的存储器位址,VAX就有非常经典的指令叫「ADD6」,可将6个不限定寄存器或存储器的运算元「统统加起来」。习惯组合语言的程序设计师可能觉得很方便,但是对硬件设计者就是大灾难了,光指令解码器要如何迅速搞清楚到底有哪些运算元、计算出这些存储器运算元的有效位址,就是天大的麻烦,而VAX极度复杂的数据定址模式(AddressingMode),更让问题雪上加霜。
此外,设计处理器最棘手之处,在于发生中断(Interrupt)或例外(Exception)时,保存处理器「当下的执行状况」,并当中断例外处理流程结束后,再将处理器回复到先前的状态。这也难怪两位RISC大师会在著作特别强调「难以想像VAX相容处理器的设计者是怎么工作的」,「把东西做出来并验证完毕」已经相当困难,罔论「又快又便宜」。
以VAX-8400来说好了,总计有300多个指令、20种定址模式、指令长度从1~54Bytes,光是要实做这些指令,就需要400~500Kbits的只读存储器(ROM)容量存放微码(Microcode),光用想的就让人头皮发麻。流水线化?超标量?预测执行?非循序指令执行?真的是连想都不用想。
RISC的理论基础「80%程序代码只用到20%简单指令和定址模式」反向套用在VAX也一体适用。根据DEC工程师统计,20%的VAX指令用掉60%微码,但这些复杂指令,只占0.2%使用率。
所以当DEC迫于产品低价化的压力,1984年推出单芯片MicroVAX,将大多数的复杂指令转由软件模拟,处理器碰到这些指令就触发例外,让操作系统搞定,结果芯片总面积「缩减5倍」,还足以提供90%原生VAX效能。某部知名漫画的名言「原来我体内的怪物长这么大了」,大概就给人这样的感觉。
对复杂指令集终极反动的Alpha
Alpha就是对极端复杂的VAX的「终极反动」,放眼「至少在25年内,提升1千倍效能的未来」,彻头彻尾从指令集层面解除任何阻碍高效能微架构的潜在限制,甚至可说到了走火入魔的程度。
1992年发表的Alpha指令集架构,打从一开始就是「64位元的平面存储器定址」,配置32个64位元的整型数据寄存器和32个64位元浮点数据寄存器(讲严格一点都是31个,因为第31个寄存器的数据恒定为零,用来「与零比较」和NOP等用途),支持43位元的虚拟存储器位址(后来扩充到64位元)。
不过Alpha有3个倍受争议之处:
-
浮点运算采用「不精确中断」(Imprecise Interrupt):若处理器发生中断(如外部I/O发出需求),然后处理器处于「明确定义」的状态,例如标定下一个要被执行指令的存储器位址的程式计数器(Program Counter,PC)存入已知的位址,前面所有指令都将被执行完毕,而在后面的指令都不可以被执行,这也是一般我们认知中的「精确中断」 (Precise Interrupt)。
但Alpha的浮点运算却需要塞入额外的TRAPB(Trap Barrier,设陷边界)让处理器「停摆」(Stall),确保在此之前的指令都会在不触发例外的情况下,都被执行完毕,少了这个指令的浮点程式码,运算结果将无法完全符合IEEE 754规范。这作法摆明就是牺牲处理器的中断例外严谨度,将控制单元的部分复杂度从硬件转移到软件,这种「relax limitation for performance」(松绑限制为效能)精神,日后也被英特尔Itanium继承。 -
无法直接载入回存8位元(Byte)和16位元(Half-Word)数据:Alpha的原始设计者不希望看到「小量」的数据存取所需要的额外功能电路,降低数据传输效率,索性采取「锯箭法」,一次只能存取32位元或64位元,再由位元组处理指令「萃取」需要的那一小块数据,等于变相增加指令的数量和程式码体积,即使这工作很单纯。隐而不现的副作用是:让从其他32位元指令集架构(如VAX、MIPS和x86)移植软件到Alpha更困难。
很明显,后继接手新产品开发的DEC工程师并不认同「斩草除根」的暴力手段,1995年10月发表的Alpha 21164A(EV56)处理器,新增六个BWX(Byte-Word eXtension)指令,用来存取8位元和16位元数据。 -
运算元定址模式只有一种:寄存器加上位移值(Register + Offset),和其他RISC指令集相比根本精简过头,这也会增加需要的指令数和程式码体积,这点也影响英特尔Itanium ,还被IBM用力批判了一番。
至于在特殊权限模式执行Alpha的机器码,以便对处理器底层硬件上下其手,介入快取存储器管理、TLB误失处理、中断例外处理、甚至可简化跨指令集的二进位码转换(BinaryTranslation )的PALcode(Privileged Architecture Library code),为了指令流水线化不支持整数除法,32位元单精确度浮点数在暂存器内会自动转换成64位元双倍精确度格式,解密运算会用到的位元计算指令等,也都是Alpha指令集的独有特色。
Alpha还有一个很有趣、但是少人注意的特点:拜指令编码预留大量扩充空间,一开始就支持条件搬移(Conditional Move)指令,讲玄一点,将「分支相依性转化为数据相依性」,替换一般的分支条件判断,也可避开分支预测,利于指令管线化。
以一个简单的条件判断为例:
-
beqra, label //ra = 0,就跳到label
orrb, rb, rc //否则就把rb的数据搬移到rc -
Alpha可一个指令就打死:
-
cmovnera, rb, rc
总之,假若VAX是CISC的异端,那系出同源的Alpha堪称RISC的极致,对同公司前辈VAX的终极反动,纯洁到不能再纯的干净指令集架构,带领处理器产业迈向「25年效能千倍」的美好愿景。
有趣的是,当Alpha处理器要进入生产销售阶段时,DEC行销部门命名为AlphaAXP,但根本没人知道这代表什么意义,后来才有人硬掰了一个非官方全名:AlmosteXactly PRISM。唯一肯定的是:那时DEC确定没人注册AXP商标,不会重蹈VAX和真空吸尘器撞名的覆辙。
1990年代叱咤风云的效能王者
1991年发表的Alpha21064(EV4)主频已上看200MHz,隔年英特尔初代Pentium也才66MHz,可见优势多么巨大。
Alpha基本命名规则如下:
-
EV:Extended VAX,我们很清楚Alpha几乎和VAX无瓜葛,唯一较值得一提的是为了延续VMS操作系统,Alpha需相容VAX的浮点数据格式。
-
21:面对21世纪。
-
0:处理器世代流水号,从零开始。
-
64:64位元。
从1992~2004年,总计出现20个Alpha处理器型号,也包含进攻工作站甚至个人电脑市场的低价产品,但基本上可归类成六世代。
关于扩充指令集,很可能基于对「一次新增大量指令会影响处理器主频」的担忧,DEC并不像英特尔没事一次追加动辄数十、甚至上百个新增指令,态度保守许多。
反观英特尔,就真的是乱加指令好像免钱,随便一次扩充,就比历代Alpha总和还多。
PentiumMMX(P55C,1996):53个MMX,还为此大兴土木加深Pentium的指令管线深度。
-
Pentium III(Katmai,1999):70 个SSE。
-
Pentium 4(Willamette,2000):144 个SSE2。
-
Pentium 4(Prescott,2004):13 个SSE3。
-
Core 2(Merom,2006):16 个SSSE3。
-
Core 2(Penryn,2007):47 个SSE4.1。
-
Core i7(Nehalem,2008):7 个SSE4.2。
-
Sandy Bridge(2011):那「可一对一替换SSE」的AVX 就不提了,数不完。
-
Skylake(2015):版本乱成一团的AVX-512,请饶了笔者吧。
结合一切可想到的有利条件,Alpha处理器的性能表现一直相当出色,从1992年的初代21064(EV4)就靠200MHz主频,创下浮点运算的世界纪录,接连数代主宰1990年代的「效能赛猪公」。
以当时的业界指标SPECCPU 95:
1995年:主频高人一截的EV5痛宰英特尔PentiumPro。
2000年:5年后,主频较低,EV6还是在浮点运算屠杀英特尔PentiumIII。
从陪衬的惠普(HP)PA-RISC处理器也可看出显而易见的事实:在相似的条件下(如市场规模、研发资源、制程技术、开发时程),RISC指令集较易打造出高效能处理器。2001年,效能王者的宝座就换原生双核的IBMPower4 上位了,至今蓝色巨人的RISC仍然坚守不动。
Alpha被HP放弃的十年后,2015年12月31日启用的中国超级电脑「神威太湖之光」,其「260核心」(256个用在运算,4个用于资源管理)SW26010处理器,也是基于Alpha指令集的产物,足以证明其架构的简洁性与前瞻性。
Alpha因痛失苹果机会与连续被购并而被迫消失于历史的洪流
不知不觉中,好像「与来自苹果的机会擦肩而过」就是一连串灾难的保证?假如英特尔当年拒绝替苹果打造第一代iPhone行动处理器,让英特尔错失重大历史机运,那1990年代初期的DEC亦不遑多让。
苹果跟IBM、Motorola组成「AIM联盟」推广PowerPC前,早在1991年就惊艳于初代Alpha(那时还只是展示用的工程样品)的惊人效能,有意在苹果电脑导入Alpha,就被DEC打枪了,理由是「推入市场的时机并未成熟,且VAX架构尚有值得发掘的潜力」(如果换成笔者听到这种借口,还不如一开始就押宝英特尔x86算了,谁会吃饱太闲想碰比x86还难搞的VAX),只能说创造灾难的历史,只会一再一再重演。
因产品价格与专利费用太过昂贵而叫好不叫座的Alpha,未能让DEC摆脱「后VAX时期」留下的困境。从1991~1994年,总计亏损40亿美元,被迫断尾求生,全力卖掉「可割可弃」的部门。
先在1994年7月以4亿美元价码,把生产硬盘驱动器的储存部门卖给硬碟厂商昆腾(Quantum),接着数据库软件部门以1亿美元卖给甲骨文(Oracle),1997年10月将纽约州哈德迅的晶圆厂、德州和以色列的研发中心、Alpha处理器生产权与DEC所有专利的十年使用权,以6亿2,500万美元出售给英特尔(这对英特尔是天上掉下来的大礼,却白白浪费掉),1997年11月再以4亿3千万美元把网通部门卖给Cabletron。
1998年1月26日,陷入财务危机的DEC被康柏(Compaq)以96亿美元收购,1999年康柏的财务危机亦影响到Alpha的开发与服务器生产,让Alpha的未来蒙上一层厚厚的阴影。2000年「.com泡沫」破灭,重创全球IT产业,知名公司股价纷纷一泻千里,惠普(HP)更在2001年9月4日宣布以225亿美元购并康柏,源自于超长指令集(VLIW)化PA-RISC的IA-64指令集与相对应的Itanium处理器,注定完全取代Alpha的地位。
另外某件事也值得在Alpha的墓志铭刻上一笔:专业晶圆代工与IP授权观念尚未成熟的1990年代,DEC就让Alpha成为「开放性架构」,不限DEC自家晶圆厂,三菱(Mitsubishi)、三星(Samsung)、IBM甚至英特尔,都曾生产Alpha处理器。但过度高昂的专利授权费,与DEC高层长期缺乏「电脑需要低价普及化」的意识,都让高高在上的「效能王者」,迟迟难以踏入平常百姓家,即使曾出现「个人电脑专用的Alpha处理器」也依旧让人高不可攀。
差点成为最有资格取代x86的RISC
回顾历史,最有机会也最能肩负「消灭80x86」重责大任的RISC,不是Itanium,而是Alpha。不限英特尔和AMD,「失去微软Windows的保护伞」,对DEC也同样致命。
DEC在1996年发表FX32!二进位码转译器(Binary Translator),让执行WindowsNT 的Alpha系统可执行32位元x86的Windows应用程式,号称「可达到原生环境的40%~50%效能,最佳化后达70%,然后因为同时期Alpha处理器享有对x86的压倒性主频优势,足以抵消转译损耗而有余」,看起来前途一片光明。
但康柏高层1999年8月23日,却以「只有5%的Alpha系统安装WindowsNT」为由,宣布退出WindowsNT 开发计划,也停止在Alpha系统预装WindowsNT。一周之后,继1997年宣布放弃MIPS和PowerPC,微软声明Windows2000 将不会有Alpha版,断了Alpha普及化的最后一丝希望。
从「孤芳自赏」到「流芳百世」
公司风雨飘摇,自然就会有人纷纷跳船另觅出路,尤其Alpha研发团队不少才华洋溢的工程师,他们的动向决定不少公司的命运。Alpha对处理器技术发展的影响极度深远,但篇幅有限,笔者仅能挑出几个公认案例与各位分享。
AMD:受Alpha影响最深的处理器公司,没有之一
让AMD首度有能力正面挑战英特尔的K7:1998年微处理器论坛(Microprocessor Forum)首度曝光时,相信很多人(包含笔者)第一时间还以为自己看到的是「换了指令集的Alpha 21264」,简直是同个模子刻出来的,而且「连系统总线都还是如假包换的EV6」,意味双方的系统芯片组理论上可彼此共通。
K7和Alpha 21264 的演进轨迹也极度神似,唯一差别在于DEC可用到的制程明显不如AMD,K7也比Alpha 21264 还早一年达阵1GHz主频大观,也可足以证明个人电脑市场的巨大出货量,对推进半导体制程发展的重大推力。提醒一点,AMD发表K7前,DEC已经被康柏购并了。
横空出世的K7帮助AMD创下「单季10亿美元营收」里程碑,立下重大战功的Dirk Meyer 在2006~2008年担任AMD营运长,并于AMD开始大事不妙的2008年,从Hector Ruiz手上接下执行长大位,完成分割晶圆厂为Global Foundries、解决跟英特尔的法律诉讼、推出整合处理器与GPU的APU等艰巨任务,但因无法满足AMD董事会对行动市场的期待(和英特尔当时情况如出一辙,x86义和团集体「起乩」妄想x86征服世界),2011年底仓促下台。
谈到AMD从DEC取得EV6总线授权,而让价格便宜甚多、并可提供AGP的K7系统芯片组可相容Alpha 21264,倒也成为可杀入个人电脑市场的难得契机,但康柏却没有好好把握,或着很可能连想都没想过,否则也不会平白无故放弃珍贵的Windows相容性和现成的x86转译器。
让AMD打开服务器天堂大门的K8:笔者不是AMD内部人员,难以判断AMD在K8获得空前成功的背后,到底是「x86 Everywhere起头者」技术长Fred Weber、「处理器游侠」Jim Keller、从英特尔跑去插花短暂负责「真正K10」的Andy Glew,还是哪位大恩大德的功劳比较大,但拜同样「沿用前代核心,改进重点集中在系统架构和整合式存储器控制器」之赐,K8视为「x86世界的穷人版Alpha 21364」这点倒是没啥争议空间。
别忘了,继承HyperTransport遗志,AMD反攻超级电脑市场的布局中,扮演举足轻重角色的Infinity Architecture,也是源自前者留下的遗产。
同时受到多个面向影响的推土机:决定AMD推土机(Bulldozer)丛集多执行绪(Cluster-based Multi-Threading,CMT)的因素还满多,包括「将核心内部宽度扩展为双核规模但塞入四条执行绪」的Alpha 21464(EV8)、负责双核心IBM Power4 的前总工程师Chunk Moore、离开DEC后开发Sun UltraSPARC V 却又因产品被砍跑去AMD的现任ADI技术长Dan Leibholz(与位于美国东岸波士顿的Sun团队)。
但仔细考虑这3个要素融合后的样貌,再加上配合整合GPU的Fusion大战略,推土机演变成「电晶体预算毫无任何浪费、统统砸到刀口上的穷人版Alpha 21464 整数运算核心」就让人完全不感意外了。
真正K10的Zen:这就无需浪费篇幅解释了,Jim Keller这位「游侠」搞完Zen后又跳回英特尔,但对Zen的成功,也许台积电先进制程的「含金量」还比较高一点?
Sun「Thoughput Computing」的真正概念起源
Sun在2004年重整UltraSPARC处理器产品线,认清自身研发能力不足的现实,走向和富士通(Fujitsu)SPARC64截长补短的互补策略,取消「传统」非循序指令执行的UltraSPARC V,转进靠着大量多核心多执行绪、牢牢整合网路辅助处理器、狂拼如瀑布运算吞吐量的「Thoughput Computing」。2005年底发表的8核心、32粗质执行绪UltraSPARC T1「Niagara」(尼亚加拉瀑布)为此系列的首款处理器。
但这概念其实一点都不新鲜。
任职Google、现任Google Maps 工程副总裁的Luiz André Barroso,著作《The Datacenter as a Computer》是数据中心领域不可不读的大作。但2001年仍在康柏工作时,他在知名的电脑机械学会(ACM,Association for Computing Machinery)发表了「An Economic Case for Chip Multiprocessing」,也就是他在DEC和康柏时负责的「Piranha」计划,采用8个简单的循序执行/单指令发出的Alpha处理器,整合理论频宽12.8GB/s的Direct Rambus 存储器控制器与网路通讯协定辅助处理器,追求最高多执行绪效能与能耗比。
Piranha的预设主频并不高,仅500MHz,但经过最佳化设计版,主频将可达1.25GHz。Niagara说是Piranha「精神上的后代」,一点都不为过。
讽刺的是,重视服务反应速度,以便「让使用者接触更多广告」与服务器架构泛用性的Google,依然以传统的高效能x86处理器为数据中心主力,未公开采用这类型的特化型处理器,假若以后真的自行研发替代x86的泛用型数据中心处理器,会不会引进如此激进的概念,我们就不得而知了,感觉机率不高。
英特尔的QPI总线和实质末代Itanium处理器「Poulson」
2001年购并康柏的惠普,敲定Alpha死期不远的下场,并将150名原先负责Alpha21464的芯片设计团队移转给英特尔,以前只有十年专利使用权,现在这些人统统变成员工了,英特尔想做什么就做什么,这些成员也逐步接手Itanium处理器的发展工作──尽管Itanium难逃步上Alpha的后尘。
发展自EV7总线的QPI(QuickPath Interconnect):原名CSI(Common System Interface)、从2008年开始取代英特尔处理器前端总线(FSB,Front-Side Bus),是英特尔对抗HyperTransport的重要武器,也是统合x86与Itanium平台架构的地基。
QPI是序列化(Serial)的高速差动式(Differential)传输点对点连结,传输端(TX)与接收端(RX)各自20位元宽,一对CSI连结除了20×2×2=80条数据线,两个传输方向各需两条前馈主频(Forward Clock)控制线,总计84条。
俗语说得好:眼见为凭,当你看过Alpha 21364 的EV7总线的长相及技术白皮书,再仔细瞧瞧英特尔QPI的细节与大型多处理器环境的虚拟网路功能,一看就知道QPI是由EV7总线衍生出来的产物(单向最小数据传输宽度从16位元扩展到20位元,再提高主频),连有效频宽比率都是80%,没有任何足以让你怀疑的余地。
顺便一题,当年在微处理器论坛代表康柏发表Alpha 21364 和EV7总线的Joel S. Emer,后来跑去英特尔当院士了,目前人在nVidia。
解放IA-64指令集真正潜能的实质末代Itanium 9500「Poulson」:这是有点曲折离奇的故事,英特尔和惠普本来在2003年宣布,四核心Itanium「Tukwila」要交由「前Alpha团队」操刀,也将是第一个支援QPI总线的产品。那时候外界对此深表期待,寄望战功彪炳的这票人能够跳脱惠普研发团队的既有巢臼,做出焕然一新的IA-64处理器架构,特别是更有效率的小型核心。
Alpha团队加入Itanium研发之前,无论英特尔(初代Itanium)和惠普(Itanium 2),都遭遇处理器核心过大的麻烦,主因来自IA-64是超长指令集(VLIW)架构,一个128位元长的指令包,塞了3个41位元长的指令与对应的排序位元,与额外标定32种指令排序规则的5位元,直接静态指令排程,对映「一个萝卜一个坑」的执行单元,也因此,当时的Itanium处理器最多同时执行6条指令(2个指令包),必须提供足够的内部资源,以匹配6个指令的组合,固然简化了处理器内部的数据路径,但却也浪费了庞大的内部执行单元,这是Itanium核心肥大化的元凶。
那时某票专业人士预期的理想手段是:屏弃IA-64的初衷,比照一般超纯量x86处理器,让管线的前后端就此「拖钩」,不再一条肠子通到底,将IA-64指令包变相视为「复杂的指令,再转译为3个独立的41位元微指令」,再送到相对简单、执行单元较少的处理器核心,但这就完全违背IA-64全力发掘指令层级平行化、尽力降低硬件复杂度的设计理念,况且如此一来,过往针对旧款Itanium最佳化的软件,恐怕在新架构处理器会效能不彰(VLIW处理器极度仰赖编译器才能发挥实力)。该如何兼顾指令平行化(ILP)和执行绪平行化(TLP),成为英特尔眼前的大难题。
概因技术风险太高,时程缓不济急,英特尔又将4核心Tukwila专案转回旧有团队,使其继续双核心Montecito设计,变成「核心数加倍+同时多执行绪+旧核心移除x86硬件执行功能+QPI+整合存储器控制器」的过渡期产物。
但2011年7月IEEE Hotchips 23 揭露的8核心Poulson却让众人耳目一新,隐约溢出淡淡的EV8色彩,让人重温昔日Alpha团队的强盛,Poulson不仅配备动态指令排程,管线前后端的执行绪区域完全分而治之,改善功能单元的利用率,并减少多达12%核心电晶体,却倍增可同时发出的指令数(高达12个,等同4个指令包),单核心效能激增25%~40%,无愧于Itanium问世十年来最重大的革新之誉。
可惜时不我与,为时已晚,2012年惠普与甲骨文的法律诉讼(后者单方面停止支援Itanium)虽尘埃落定,但也替Itanium的未来敲响了迟来的丧钟,2017年换汤不换药的末代Kittson,沦为英特尔旗舰产品线的绝响,连制程都还停在32纳米,规格连同期Xeon E7 车尾灯都看不到。
Alpha留给后世的教训:空有技术无法生存
历史很多老牌科技公司,特别是工程师背景的创业者,往往让公司企业文化过度技术导向,也容易陷入「只要产品够好,自然卖得出去」迷思,但商业竞争从来就不是这么一回事,再优异的技术,也要透过行销推广让产品快速普及化,并建立完善的生态系统,才能持续发展,欣欣向荣。这些今日众人习以为常的常识,在那个古老的年代,却是一道难以跨越的心理门槛,只能说这真的是时代的悲剧。事后诸葛是很容易,洞烛机先却很困难,IBM也是到2004年才开始推动「Power Everywhere」。
DEC(或许得加上康柏)跟后知后觉的IBM一样,无法预见家家户户人人都有电脑的愿景,更未对网路时代的到来做好准备,当面对个人电脑市场需求的挑战时,更犯下同样错误,未将操作系统视为关键性技术,错过了放手让微软Windows加上Linux / FreeBSD 等开源操作系统,开疆辟土并巩固处理器市场半壁江山的可能性。讲白了,时下x86指令集的主要价值就建立在相容Windows之上,讲其他的都多余。
别说x86,Alpha系统起码都是同期RISC竞争对手的两倍价,硬件平台的售价高昂到令人发指,更让潜在消费者望而却步,拿下再多效能王者的头衔,都没人愿意掏钱买单。1997年英特尔Pentium II「大弹夹」处处出现在电脑卖场的玻璃柜时,DEC才推出「目标2,500美元Windows NT 系统」的Alpha 21164PC(移除96kB L2 快取以降低成本),早就大势已去。
行文至此,Alpha处理器效能杀遍天下无敌手的全盛时期,难道不会有军火商把脑袋动到效能王者的头上吗?1990年代,的确不缺此类乡野传闻,如某个世代的爱国者飞弹系统,就曾谣传用到某颗Alpha等等,但都死无对证,就留着让时间证明一切吧。