欢迎光临KOTOO财情




充满传奇色彩且对后世影响深远的 Alpha 处理器

2024-05-21 295


长期关心处理器技术发展者,这 20 年来,很难不每隔一段时间就会偶尔听到“这技术受 Alpha 影响”、“这是出自于前 Alpha 研发团队成员的杰作”,甚至老一辈军武迷,或多或少也会听闻“传说某某某尖端武器有用到地球最快的处理器”,而英特尔晶圆厂在 2005 年还在使用 Alpha 服务器控制内部所有流程(AMD 那时已全面改换自家 Opteron),更曾是某些坚定反抗 Wintel 阵营的骨灰级老人茶余饭后的闲聊话题。

最近因某位发迹于 DEC(Digital Equipment Corporation,迪吉多电脑公司)的 Alpha 研发团队,往返于 AMD 与英特尔的“处理器游侠”Jim Keller 被《科技新报》专文介绍后,让充满传奇的昔日王者 Alpha 处理器,似乎又吸引诸多关注的目光。

事实上,Alpha 不但曾在 1990 年代叱咤风云好一阵时日,因一系列商业购并而四散各方的技术研发团队,更对处理器业界造成极度深远的影响,从 AMD K7 诞生并引进 EV6 总线、昇阳(Sun)的超级多核心多执行绪 Throughput Computing、AMD 在推土机时代的丛集多执行绪(Cluster-based Multi-Threading,CMT)、根本是 EV7 总线借尸还魂的英特尔 QPI,到 150 位 Alpha 最终团队成员归宿的英特尔 8 核心 Itanium“Poulson”,族繁不及备载,皆为 Alpha 的贡献。

但要了解 Alpha 前,必须先或多或少了解 DEC 这间公司在 Alpha 之前的早期产品与历史,才会切身感受为何 Alpha 能如此独树一帜。

“微型计算机”先驱的 DEC

早期“电脑”可一点也不小,动辄好几个机柜甚至塞满一整个房间者比比皆是,所谓的“微型计算机”也只是相对概念,而“单芯片微处理器”更不是理所当然的产物。

DEC 公司成立于 1957 年,算是早期计算机产业的先驱企业之一,1960 年代发表 18 位元 PDP-1(Programmed Data Processor,程式化资料处理器),并让关在研究室的使用者,除了操作这台由四个机柜组成的“昂贵打字机”外,更可以用价值 12 万美元的 PDP-1 玩世界首款电脑游戏《Spacewar!》(太空战争,此游戏在 1970 年代成功商品化)。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,虚拟位址扩展)计算机 Model 11/780,隔年进一步推出基于 VAX 架构的原生操作系统 VMS(Virtual Memory System,虚拟内存系统),具备大量当时前所未见的崭新技术。

1980 年代,从小型工作站到六处理器的大型服务器,都是 VAX 的“守备范围”,也让 DEC 赚进大把大把钞票。笔者在 20 世纪末期的大学时代,修习 SAS 资料处理课程,也是使用古老的 VAX 系统,普及甚广之程度,由此可见一斑,象征 DEC 在 1980 年代的辉煌,DEC 也因注册 VAX 商标,和一家本来就叫 VAX 的真空吸尘器厂商闹上法庭。

让 VAX“逆向归类”成 CISC 的 RISC 风潮

但 RISC 潮流却即将袭来。1980 年,加州大学柏克莱分校 David Patterson 教授著名的论文,创造了“RISC”(Reduced Instruction Set Computer,精简指令集电脑)一词,间接产生对比用的 CISC(Complex Instruction Set Computer,复杂指令集电脑),并在 1981 年实作第一颗 RISC 处理器 RISC I。

同时,史丹佛大学 John Hennessy 教授也提出 MIPS(Microprocessor without Interlocked Pipeline Stages)指令集,1984 年开设 MIPS 公司并推出 R2000 处理器,有经历过 SGI 绘图工作站全盛时期或知悉 Sony PlayStation 2 心脏 Emotion Engine 里塞了一颗 R4000 核心的读者,绝对不可能不知道 MIPS 的大名。

后来 David Patterson 和 John Hennessy 共同著作的两本教科书:俗称“白算盘”(之后因应潮流,封面变成 iPad 的虚拟算盘)的《计算机组织与设计:软硬件界面》(Computer Organization and Design: the Hardware/Software Interface)与《计算机结构:计量方法》(Computer Architecture: A Quantitative Approach),更是大学资讯相关科系的必备教科书,别说计算机结构课程的期中考和期末考(笔者还为了写作业,跑去买解答本),研究所考试更不可能不考里面内容。

像“x86 指令集大概只有设计它的人才会喜欢”之类的负面评论之所以“深植人心”,这两位当代 RISC 大师的巨著绝对功不可没,至于为何计量方法第一版的内容会和白算盘初版有那么多的重叠,那就不在本文讨论范围了,搞不好这两位大师一开始只想写一本书也说不定。

这些努力,除了让更早期的类似概念产品与相关研究(如 CDC6600 和 IBM 801 实验性迷你主机)的成果渐渐浮上水面,更促使更多公司投入 RISC 处理器的研究与开发。当然,也包含 DEC,VAX 也因 RISC 诞生而“逆向归类”成 CISC 家族的成员,而且还是恶名昭彰的经典。

研发 Alpha 是 DEC 不得不面对的挑战

DEC 在 1982~1984 年间展开 RISC 的相关研究,1985 年整并 4 个研究案,成为单一 PRISM(Parallel Reduced Instruction Set Machine,平行精简指令集计算机)计划,并参与 MIPS R3000 处理器研发,也让 PRISM 拥有许多和 MIPS 相似的特性。

问题来了,既然 PRISM 跟 MIPS 这么像,那 DEC 为何不干脆直接采用 MIPS 算了?干么大费周章“为了喝牛奶养一整座牧场”,1988 年 DEC 管理高层决定采用 MIPS 处理器,终止觉得浪费钱的 PRISM 计划,计划发起人兼负责人愤而辞职,跳槽到微软开发 Windows NT 操作系统。1989 年初,DEC 推出使用 MIPS R2000 处理器、Ultrix 操作系统的首款 RISC 工作站 DECstation 3100(代号 PMAX),与处理器时脉较低(从 16.67MHz 降到 12.5MHz)的 DECstation 2100(代号 PMIN),这条产品线持续到 1994 年最终采用 MIPS R4400 的 DECstation 5000 系列(代号 3MAX+)。

工作站靠“开外挂”解决燃眉之急,但 1980 年代末期,面对雨后春笋般诞生的 RISC(MIPS、SPARC、PA-RISC)挑战,VAX 在服务器市场逐渐缺乏竞争力的确是不争事实,最终 DEC 还是不得不打造自家 RISC 指令集与处理器,且需要具有非常强大的竞争力和发展潜力:目标至少 25 年生命周期,未来可提升 1 千倍效能(10 倍来自提高时脉、10 倍来自超纯量管线、10 倍来自多处理器架构),又经典、又极端、指令集又“干净过头”的 Alpha 就这样出现了。

复杂指令集经典惨案的 VAX

虽然 Alpha 处理器的世代以 EV(Extended VAX)开头,但 Alpha 和 VAX 却是光谱两端的存在,如同和 x86 名称很像的英特尔 IA-64(Intel Architecture 64)指令集,实际上根本却和 80×86 八竿子打不着。

理解 Alpha 的设计理念前,各位需要先瞧瞧归类成 CISC 的 VAX,究竟多么夸张,连英特尔 80×86 都小巫见大巫。基本上,论指令集“毫无道理可寻的复杂度”,假若 VAX 排第二,那恐怕就没人敢排第一了。好吧,英特尔失败的“32 位元迷你大型主机”iAPX432 有机会可以一拼。

前面有提到 VAX 发展根基的 PDP-11 有很强的“指令正交性”,意指为资料来源和运算目标的算子(Operand)非常“独立”,可分别是暂存器或是透过暂存器定址的内存位址,VAX 就有非常经典的指令叫“ADD6”,可将 6 个不限定暂存器或内存的算子“统统加起来”。习惯组合语言的程序员可能觉得很方便,但是对硬件设计者就是大灾难了,光指令解码器要如何迅速搞清楚到底有哪些算子、计算出这些内存算子的有效位址,就是天大的麻烦,而 VAX 极度复杂的资料定址模式(Addressing Mode),更让问题雪上加霜。

此外,设计处理器最棘手之处,在于发生中断(Interrupt)或例外(Exception)时,保存处理器“当下的执行状况”,并当中断例外处理流程结束后,再将处理器回复到先前的状态。这也难怪两位 RISC 大师会在著作特别强调“难以想像 VAX 相容处理器的设计者是怎么工作的”,“把东西做出来并验证完毕”已经相当困难,罔论“又快又便宜”。

以 VAX-8400 来说好了,总计有 300 多个指令、20 种定址模式、指令长度从 1~54 Bytes,光是要实做这些指令,就需要 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 误失处理、中断例外处理、甚至可简化跨指令集的二进制码转换(Binary Translation)的 PALcode(Privileged Architecture Library code),为了指令管线化不支援整数除法,32 位元单精确度浮点数在暂存器内会自动转换成 64 位元双倍精确度格式,解密运算会用到的位元计算指令等,也都是 Alpha 指令集的独有特色。

Alpha 还有一个很有趣、但是少人注意的特点:拜指令编码预留大量扩充空间,一开始就支援条件搬移(Conditional Move)指令,讲玄一点,将“分支相依性转化为资料相依性”,替换一般的分支条件判断,也可避开分支预测,利于指令管线化。

以一个简单的条件判断为例:

beq ra, label //ra = 0,就跳到 label or rb, rb, rc // 否则就把 rb 的资料搬移到 rc

Alpha 可一个指令就打死:

cmovne ra, rb, rc

总之,假若 VAX 是 CISC 的异端,那系出同源的 Alpha 堪称 RISC 的极致,对同公司前辈 VAX 的终极反动,纯洁到不能再纯的干净指令集架构,带领处理器产业迈向“25 年效能千倍”的美好愿景。

有趣的是,当 Alpha 处理器要进入生产销售阶段时,DEC 行销部门命名为 Alpha AXP,但根本没人知道这代表什么意义,后来才有人硬掰了一个非官方全名:Almost eXactly PRISM。唯一肯定的是:那时 DEC 确定没人注册 AXP 商标,不会重蹈 VAX 和真空吸尘器撞名的覆辙。

1990 年代叱咤风云的效能王者

1991 年发表的 Alpha 21064(EV4)时脉已上看 200MHz,隔年英特尔初代 Pentium 也才 66MHz,可见优势多么巨大。

Alpha 基本命名规则如下:

  • EV:Extended VAX,我们很清楚 Alpha 几乎和 VAX 无瓜葛,唯一较值得一提的是为了延续 VMS 操作系统,Alpha 需相容 VAX 的浮点资料格式。
  • 21:面对 21 世纪。
  • 0:处理器世代流水号,从零开始。
  • 64:64 位元。

从 1992~2004 年,总计出现 20 个 Alpha 处理器型号,也包含进攻工作站甚至个人电脑市场的低价产品,但基本上可归类成六世代。

关于扩充指令集,很可能基于对“一次新增大量指令会影响处理器时脉”的担忧,DEC 并不像英特尔没事一次追加动辄数十、甚至上百个新增指令,态度保守许多。

反观英特尔,就真的是乱加指令好像免钱,随便一次扩充,就比历代 Alpha 总和还多。

Pentium MMX(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 年代的“效能赛猪公”。

以当时的业界指标 SPEC CPU 95:

1995 年:时脉高人一截的 EV5 痛宰英特尔 Pentium Pro。

2000 年:5 年后,时脉较低,EV6 还是在浮点运算屠杀英特尔 Pentium III。

从陪衬的惠普(HP)PA-RISC 处理器也可看出显而易见的事实:在相似的条件下(如市场规模、研发资源、制程技术、开发时程),RISC 指令集较易打造出高效能处理器。2001 年,效能王者的宝座就换原生双核的 IBM Power4 上位了,至今蓝色巨人的 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

回顾历史,最有机会也最能肩负“消灭 80×86”重责大任的 RISC,不是 Itanium,而是 Alpha。不限英特尔和 AMD,“失去微软 Windows 的保护伞”,对 DEC 也同样致命。

DEC 在 1996 年发表 FX32! 二进制码转译器(Binary Translator),让执行 Windows NT 的 Alpha 系统可执行 32 位元 x86 的 Windows 应用程序,号称“可达到原生环境的 40%~50% 效能,最佳化后达 70%,然后因为同时期 Alpha 处理器享有对 x86 的压倒性时脉优势,足以抵消转译损耗而有余”,看起来前途一片光明。

但康柏高层 1999 年 8 月 23 日,却以“只有 5% 的 Alpha 系统安装 Windows NT”为由,宣布退出 Windows NT 开发计划,也停止在 Alpha 系统预装 Windows NT。一周之后,继 1997 年宣布放弃 MIPS 和 PowerPC,微软声明 Windows 2000 将不会有 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 等等,但都死无对证,就留着让时间证明一切吧。

(首图来源:维基百科)

2020-03-26 13:06:00

标签:   资讯头条 kotoo科技资讯 kotoo科技 kotoo科技资讯头条 科技资讯头条 KOTOO商业产经 新闻网 科技新闻网 科技新闻 Kotoo科技新闻网 Kotoo科技新闻网 科技新闻 科技新闻网 新闻网 KOTOO商业产经 科技资讯头条 kotoo科技资讯头条 kotoo科技 kotoo科技资讯 资讯头条 Kotoo Kotoo科技新闻网 科技新闻 科技新闻网 新闻网 KOTOO商业产经 科技资讯头条 kotoo科技资讯头条 kotoo科技 kotoo科技资讯
0