本篇文章将带你理解 :
· i860在1990年代初期是那时期的「超级打算机单芯片」
· 英特尔i860累积的宝贵履历,对后来Pentium涌现的MMX指令集产生极大影响

笔者在2020年7月撰文先容过IBM BlueGene/L(1999年)和Fujitsu A64FX(2019年)两款相隔20年、承先启后的「超级打算机系统单芯片 」。但早在1989年,英特尔发布以色列海法团队操刀的i860,不但声势浩大,是打算机工业史上第一个「百万晶体管」芯片,更被誉为「Cray On a Chip」的「单芯片超级打算机」──虽然日后证明完备是不切实际的营销炒作,但或多或少粉饰了整体更精良的i960。
▲ 虽然以失落败停止,但 i860 却充分象征 RISC 对打算机工业的影响有多深远。上图可清楚看到i860有一个整数逻辑运算单元和三个浮点运算单元(乘法、加法、图形)。
反过来说,i860 也让英特尔提前体验 MMX 之类的 SIMD(单一指令多重数据) 指令,以及冥冥之中预言超长指令集(VLIW)架构的Itanium 处理器,当碰到编译器无法充分优化代码时,究竟会发生什么惨剧。
英特尔1989年推出的初代i860 XR(代号N10),运行频率为25MHz、33MHz或40MHz,第一级cache是4kB指令加上8kB数据。1991 年问世的第二代i860 XP(代号 N11)增加 4MB 分页、更高容量第一级cache内存(16kB 指令、16kB数据)、支持外部第二级cache(82495 快取内存掌握器搭配数颗 32kB 容量的 82490 SRAM)、更快系统总线(理论传输带宽 400MB/s)、频率提升至 50MHz 且供应多处理器环境必备的总线窥伺协议、与可外挂的 MESI 快取数据同等性协议掌握器,以上诸多强化项目,让i860 XP的晶体管数量激增到255万。
▲ i860 在 1990 年代初期可是非常吓人的怪物,说是那时期的「超级打算机单芯片」一点都不为过,只是末了还是雷声大雨点小,无疾而终。
当时i860结合了许多独一无二的功能,最引人瞩目的是超长指令集(VLIW)架构与高速浮点运算能力。
i860 有一个 32 位宽度的整数逻辑运算单元和三个 64 位宽度的浮点运算器(浮点加法、浮点乘法、绘图),标准「单指令标量」(Scalar)模式,i860 每个频率周期仅能撷取并实行一个指令,但「双指令超标量」(Superscalar,这名称很随意马虎误导人,超标量流水线和超长指令集实质上是截然不同的观点)模式时,可配对一个 32 位编码长度的整数指令和一个32位编码长度的浮点指令成64位指令包,使能同时透过64位宽的总线撷取并实行,这一个萝卜一个坑能塞多满,极度仰赖编译器的指令安排。因此英特尔命名为「i860 64 位微处理器」,很显然是极易让人困惑的说法,坊间已长期以讹传讹积非成是的「如何定义 64 位」只会越来越乱无章法。
i860 还有一种看起来很神奇的「用户可见流水线」(User Visible Pipeline)模式,当指令用到某个「存放多频率周期运算结果」的暂存器,可直策应用目前值,而不必等待末了结果,这让笔者隐约想起 DEC Alpha 为了追求更佳浮点运算效能的「禁绝确中断」和 Itanium 处理器的背后精神「Relax Limitations For Performance」。
此外,i860 内置浮点运算器,32个32 位浮点数据暂存器,可为「16 个 64 位双倍精确度浮点」或「8 个128 位四倍精确度浮点」。附着在浮点运算器的「绘图单元」(是的,你绝对没看错)可当成「16个64位整数」,实行线条绘制、Gouraud着色、去除隐蔽线条的Z缓冲(ZBuffer),与如SIMD指令的让64位数据路径处理8个8位像素、4个16位像素或2个32位像素。
▲ 多处理器配置是 i860 XP 的重头戏,英特尔就以此为根本,建造 4096 颗 i860 XP 的 Paragon XP/S 超级电脑。
英特尔 i860 累积的宝贵履历,对后来 Pentium 涌现的 MMX 指令集产生极大影响,卖力 i860 的主架构师、以色列海法研发中央的 David Perlmutter,也是 Pentium MMX(P55C)主导者,之后更藉领导Pentium M「Banias」体系发展,替英特尔变出救命稻草,奠定众人对英特尔的以色列人「 善于精髓精辟现有产物,压榨最多潜在代价等既定印象。
乍看i860彷佛很厉害,号称频率33MHz时,拥有高达66M FLOPS(每秒6,600万次浮点运算)的理论浮点运算效能,远远超越「介于5M~10M」的主流处理器,但还是老话一句:全体i860的设计都基于「编译器能有效处理好指令排程任务」,但现实证明是不可能的任务。流传宣传峰值60M~80M FLOPS的i860 XP(英特尔于HotChips公布的数字更是惊世骇俗的100M FLOPS),纵然实行人工撰写的组合措辞代码,也顶多达40MFLOPS,乃至大多数编译器,连实现区区10MFLOPS都有困难。
i860 还有更严重的问题:无法高效快速实行多进程(Process)储存和重现处理器状态(Context Switch,可翻译成高下文交流或「环境切换」)。当多工操作系统的多行程要共享单一处理器,交流处理器的行程或发生中断(Interrupt)时,必须先储存目前行程状态,再将准备实行的行程状态载回处理器。i860 最空想也需最少 62 个时钟周期,最差更高达「2 千个」,使其根本无法当成一样平常用场的泛用途理器。想当初,Pentium MMX 那共用浮点寄存器的 MMX 暂存器切换,才不过「几十个」时钟周期,就让很多人不满意了。
总之,大略一句话回答 i860 没有成功的紧张缘故原由:账面空有精良的理论性能,但短缺配套的最佳化编译器(英特尔又再次栽在软件)及正常行程切换,无法发挥「一定程度」潜能。时任英特尔CEO的安迪·葛洛夫(Andy Grove)就暗示i860市场失落败,应归因于「分身乏术」(being stretched too thin),同时推出「基于CISC,却兼容所有个人打算机软件」的80486和「基于RISC,效能很棒,却不兼容任何现有软件」的i860,让消费者完备搞不懂英特尔到底要走哪个方向, 终极市场依旧做出习以为常的决定。
话说回来,i860 还是导入超级打算机,最具代表性者莫过于英特尔自家 Paragon 系列和 iPSC(Personal SuperComputer)系列,前者长出多达 4,096 颗 i860 XP 的 Paragon XP/S 超级打算机,后者第三代产品则是用最多 128 颗 i860 XP 的iPSC/860「个人超级打算机」。
▲ 英特尔Paragon 超级打算机的 CP16 运算节点,可很清楚看到三颗 i860 XP。(Source:维基百科)
除此之外,具GPU单元的i860也用在事情站,如NeXT Cube事情站的NeXTDimensions显卡图形加速器和SGI RealityEngine的几何处理引擎(Geometry Engine)。美国军方亦采购相称数量的i860,给航空打算和数字数据处理赞助处理器利用。
▲ 昔日 3D 图形处理霸主 SGI 的 RealityEngine 几何处理引擎,上面壮不雅观的 12 颗 i860 XP。
有趣的是,至今构成微软 Windows 操作系统心脏的 Windows NT 系统核心,最早就以代号「Dazzle」的 i860 XR 事情站为最初平台,后面才陆续移植到「Jazz」MIPS 处理器系统、80386、Alpha和 PowerPC,以是一贯不乏 NT 简写并不是「New Technology」而是 i860 XR 代号「N-Ten」(N10)的说法。
行文至此,i860 处理器本身是英特尔考试测验RISC架构时的产物,继i960再次用实际行动面对RISC新潮流,不放弃CISC同时,也做点新东西试手气,而从RISC涌现后,更无人胆敢逆向操作、自找麻烦打造全新CISC指令集。英特尔i960和i860充分象征无论新来还是后到的处理器厂商,全体打算机工业界,无不遵照RISC精神和思路,改进或设计指令集架构和处理器微架构。
斯坦福大学MIPS共同设计者Steven Przybylski 说过的名言:「RISC 是1985 年后的所有电脑。」 (RISC:any computer announced after 1985.)其意就在此,RISC 的遍及大势,仿佛飞出全垒打墙的棒球和变心的爱人,一去不转头。
既然RISC是历史的一定,那身为RISC开山祖师精灵的蓝色巨人IBM,要若何设法将旗下纷乱的中端CISC产品线,统合至崛起中的IBM 801后代,就是非常有趣的话题,这也造成IBM的RISC指令集陷入空前绝后的版本分裂,耗费近20年才再度统一。这便是下一期的主题:镜头转回 IBM,一窥 AS/400 的出身与 PowerPC 的演进史。
推举阅读:
回顾历史梦幻处理器:打算机架构、商业大型机与超级电脑的出身(1960 年代)曾经的黑科技:三进制打算机曾领先美国13年!打破封锁/禁运,前苏联/俄罗斯的CPU自研之路!