硬科技:RISC诸神的黄昏系列 DEC的Alpha (中)

俗语说的好:过犹不及。从一个极端激烈反动到另一的极点,不见得是最好的选择,时下存活在市场上的产品与技术,也往往不是看起来「最具进步色彩」的那个。DEC在研发Alpha指令集时,过度重视效能,将大量的工作和複杂度,从硬体「转嫁」到软体,也为此

俗语说的好:过犹不及。从一个极端激烈反动到另一的极点,不见得是最好的选择,时下存活在市场上的产品与技术,也往往不是看起来「最具进步色彩」的那个。DEC在研发Alpha指令集时,过度重视效能,将大量的工作和複杂度,从硬体「转嫁」到软体,也为此复出了不少代价。

硬科技:为何x86的虚拟化这么难搞(上)

硬科技:为何x86的虚拟化这么难搞(中)

硬科技:为何x86的虚拟化这么难搞(下)

照片中提到了DEC Alpha registers、47、31,包含了屏幕截图、精简指令集计算机、十二月阿尔法、中央处理器、微处理器

先从中断 (Interrupt) 说起。在我们所熟知的「精确中断 (Precise Interrupt)」,若处理器发生中断,如外部I/O发出存取需求,将标定下一个要被执行指令的记忆体位址的程式计数器 (PC,Program Counter) 存入已知的位址,在此之前的所有指令都将被执行完毕,而在后面的指令都不可以被执行。换言之,处理器处于被「明确定义」的状态,中断不会影响程式执行的结果。

但Alpha浮点运算的中断却是「不精确」的,如发生中断,需要另外塞一个 TRAPB (Trap Barrier,设陷边界) 指令让处理器停摆,强制完成前面的指令,将控制单元的部份複杂度转移到软体,牺牲掉处理器的中断例外严谨度。如果少了这个TRAPB,浮点程式码的运算结果将无法完全符合IEEE754规範。

然后Alpha打从一开始就是货真价实的纯种64位元指令集架构,其原始设计者也很偏执的不想看到像8位元和16位元长度的小量资料存取,所以一次只能存取32位元或64位元,再用位元组处理指令去撷取所需要的那一小块,变相增加指令的数量与程式码的体积。背后付出的代价是:这提高了从其他32位元指令集架构移植到Alpha的困难度。后来DEC才在1995年10月的Alpha 21164A (EV56) 才补回六个可直接处理8位元和16位元的BWX (Byte-Word eXtension) 指令。

Alpha为了方便指令管线化,也不支援整数除法,32位元单精确度浮点数在暂存器内会被自动转换成64位元双倍精确度格式。到头来,一切都是为了效能而生。

笔者在上集说到DEC的VAX有「二十种」运算元定址模式,但Alpha就冲到极端的「一种」,只有暂存器加上位移值 (Register + Offset),根本精简过头了,这也会理所当然的「增肥」程式码需要的指令数量与体积。

照片中提到了Addressing mode、Alpha、MIPS64,包含了音乐、Google表格、日常、谷歌、Google表格

拜指令编码预留了大量扩充空间,Alpha一开始就支援条件搬移 (Conditional Move,或称引述执行) 指令,将「分支相依性转化为资料相依性」。当可在分支发生之前,确认分支条件的结果,编译器即可使用引述码取代分支,来控制指令执行流程,可避开分支预测,利于指令管线化。

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

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

Alpha可以一个指令就打死:

cmovne ra, rb, rc

乍看一下一行指令很漂亮,但这东西其实也是高效能多重指令派发非循序指令执行的紧箍咒,64位元的ARMv8指令集,最重要的成就就在于取消了这个棘手的限制,也直接促使了Apple A11之后的绝对效能优势。

为何Apple自产自销的ARM处理器这么厉害(上)

为何Apple自产自销的ARM处理器这么厉害(中)

为何Apple自产自销的ARM处理器这么厉害(下)

这些神奇的特色,后来也可在Intel的IA-64指令集上看到神似的鬼影,但唯一共同点就是都被IBM骂翻了。

回顾消失在历史洪流的Intel旗舰处理器Itanium(上)

回顾消失在历史洪流的Intel旗舰处理器Itanium(中)

回顾消失在历史洪流的Intel旗舰处理器Itanium(下)

最后,Alpha也甚少增加新指令。总观近代处理器发展史,Intel随便来一次指令集扩充,都比Alpha的历代总和来得多。(53个MMX,70个SSE,144个SSE2,47个SSE4.1,数不完的AVX和AVX-512)

照片中提到了名称、数量、用途,包含了数、紧身连衣裤、服装、挂脖、人造皮革

结合一切可以想的到的有利条件,Alpha的性能表现一直相当的出色,从1992年的初代21064 (EV4) 就靠着200MHz的时脉,创下浮点运算的世界纪录,接连数代主宰了1990年代的「效能赛猪公」,尤其是当时的业界指标SPEC CPU。在第一次波斯湾战争大出风头的爱国者飞弹,据传其系统的运算心脏也是Alpha。

1995年:时脉高人一截的21164痛宰Intel Pentium Pro。

照片中提到了受测系统、处理器、时脉,包含了鼓、设计、写作、产品设计、字形

2000年:五年后,时脉较低的21264还是在浮点运算屠杀Intel Pentium III。

照片中提到了受测系统、处理器、时脉,包含了数、设计、产品设计、产品、线

Intel Pentium Pro三位总工程师之一的Robert Colwell曾在其回忆录The Pentium Chronicle提及「Alpha比我们曾经拥有过的任何东西都来得好」,但现实很残酷,天底下任何产品的背后都是「技术、商业、政治」交相影响后的产物,也注定Alpha只能在一连串的併购案后,默默的淹没于历史的洪流。

原创文章,作者:普拉斯,如若转载,请注明出处:https://www.53moban.com/1834.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息