https://jishuin.proginn.com/p/763bfbd2cf85

来源:科技新报(台)

长期关心处理器技术发展者,这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等等,但都死无对证,就留着让时间证明一切吧。

 

[转帖]深度解读:传奇的Alpha处理器的更多相关文章

  1. SQL Server 2019 深度解读:微软数据平台的野望

    本文为笔者在InfoQ首发的原创文章,主要利用周末时间陆续写成,也算近期用心之作.现转载回自己的公众号,请大家多多指教. 11 月 4 日,微软正式发布了其新一代数据库产品 SQL Server 20 ...

  2. 我就是认真:Linux SWAP 深度解读(必须收藏)

    我就是认真:Linux SWAP 深度解读(必须收藏) http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660097& ...

  3. AI 新技术革命将如何重塑就业和全球化格局?深度解读 UN 报告(上篇)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 张钦坤 腾讯研究院秘书长蔡雄山 腾讯研究院法律研究中心副主任祝林华 腾讯研究院法律研究中心助理研究员曹建峰 腾讯研究院法律研究中心高级研究员 ...

  4. 如何用区块链技术解决信任问题?Fabric 架构深度解读

    阿里妹导读:区块链技术,随着比特币的兴起而为大家所知.但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改”.“公开链”.“分布式数据”.“共识机制”等. 这篇文章将抛砖引玉,通过深度解读Hy ...

  5. 深度解读 AlphaGo 算法原理

    http://blog.csdn.net/songrotek/article/details/51065143 http://blog.csdn.net/dinosoft/article/detail ...

  6. 重写equal()时为什么也得重写hashCode()之深度解读equal方法与hashCode方法渊源

    今天这篇文章我们打算来深度解读一下equal方法以及其关联方法hashCode(),我们准备从以下几点入手分析: 1.equals()的所属以及内部原理(即Object中equals方法的实现原理) ...

  7. 【转载】深度解读 java 线程池设计思想及源码实现

    总览 开篇来一些废话.下图是 java 线程池几个相关类的继承结构: 先简单说说这个继承结构,Executor 位于最顶层,也是最简单的,就一个 execute(Runnable runnable) ...

  8. 深度解读Facebook刚开源的beringei时序数据库——数据压缩delta of delta+充分利用内存以提高性能

    转自:https://yq.aliyun.com/topic/58?spm=5176.100239.blogcont69354.9.MLtp4T 摘要: Facebook最近开源了beringei时序 ...

  9. Java并发指南12:深度解读 java 线程池设计思想及源码实现

    ​深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...

  10. 干货来了!2019阿里云合作伙伴峰会SaaS加速器专场回顾合集:嘉宾分享、深度解读

    2019年7月26日,在上海举办的阿里云合作伙伴峰会上,阿里云正式发布SaaS生态战略,计划用阿里云的品牌.渠道.资本.方法论.技术加持伙伴,成就亿级营收独角兽. 该生态战略计划招募10家一级SaaS ...

随机推荐

  1. Java的这个强大功能,很多人都不知道

    摘要:大多数框架采用单一的语言所开发.JNI这项Java中提供的强大功能,却逐渐的被人遗忘了. 本文分享自华为云社区<Java中一个逐渐被遗忘的强大功能,强到你难以置信!!>,作者:冰 河 ...

  2. Scala Http请求工具类

    import java.io.IOException import java.util import org.apache.http.client.ClientProtocolException im ...

  3. Java SpringBoot Bean InitializingBean 项目初始化

    Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的ge ...

  4. 大数据-业务数据采集-FlinkCDC DebeziumSourceFunction via the 'serverTimezone' configuration property

    Caused by: org.apache.kafka.connect.errors.ConnectException: Error reading MySQL variables: The serv ...

  5. 设置MySQL 创建数据库,默认为UTF-8

    Windows 安装 MySQL 5.7 x64 位 MySQL 8.0及以上默认为utf8,所以不需要设置 mysql> show variables like 'character_%' m ...

  6. Mac下Homebrew替换镜像

    替换git和homebrew镜像源 一.git加速 查找域名对应的地址 nslookup github.com nslookup github.global.ssl.fastly.Net 修改host ...

  7. peewee 操作 sqlite 锁表问题分析

    在使用python orm 框架 peewee 操作数据库时时常会抛出以一个异常,具体的报错就是 database is locked 初步了解是因为sqlite锁的颗粒度比较大,是库锁.当一个连接在 ...

  8. IntelliJ IDEA 2024年最新下载、安装使用教程、亲测可用

    本文讲的是2023.3最新版本IntelliJ IDEA破解.IntelliJ IDEA激活码.IntelliJ IDEA安装.IntelliJ IDEA永久激活码的最新永久激活教程,本文有mac和w ...

  9. MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】

    MPI Maelstrom POJ - 1502 实验室有很多台计算机,由于每个人计算机的性能不同,导致计算机之间发送信息的速度不同,所以花费时间不同. 消息从第一台电脑发送到第二台电脑后,这两台电脑 ...

  10. [计数dp] 整数划分(模板题+计数dp+完全背包变种题)

    计数类 dp 可分为 计数 dp 和数位统计 dp.大多是用来统计方案数什么的,特别强调 不重不漏,在此还是根据各个题的特点将计数 dp 和数位 dp 分开整理.其实数位 dp 的题目会相对多很多- ...