历史上,曾参与研发製造 x86 处理器的厂商,不限于我们熟悉的英特尔、AMD 和 VIA,更多是因为被购併、退出市场或产品开发失败,一间间默默消失,渐渐被众人遗忘。
先不提从古早 8086 到 80486,那尸横遍野的先贤先烈(台湾联电也曾参一脚)。1990 年代初期,x86 处理器开始迈进「执行一个指令不够,你可以同时执行两个」的超纯量(Superscalar)管线架构,逐渐跟「高效能」3 个字扯上边之后,直到 20 世纪末,先后出现了 Cyrix、NexGen、Centaur、Rise、Transmeta 与来自俄国的 Elbrus。除了源自苏联超级电脑血统的 Elbrus 至今硕果仅存,其余都如同流星稍纵即逝。
其中最独树一帜、市场定位最鲜明者,莫过于因 Linux 作业系统创造者 Linus Torvalds 加入研发团队,声名大噪的 Transmeta,一个以小博大,企图透过革命性技术,将处理器的硬体複杂度完全转嫁到软体,在行动运算市场杀出一条血路,却又以悲剧黯然收场的故事。
20 世纪末低功耗救世主传说
先提醒各位一件事:关于 21 世纪的定义,期间为「2001 年 1 月 1 日至 2100 年 12 月 31 日」,西元 2000 年还是 20 世纪,请千万不要搞错。
20 世纪末,适用笔电的低耗电处理器可谓凤毛鳞爪,也清一色是现有桌上型处理器的低电压版本,简直聊胜于无,市场比较常见的产品,仅英特尔 MMC(Mobile Module Connector)封装的 Pentium MMX、Pentium II 和 Pentium III,或 AMD 的 Mobile K6 与 Mobile K6-2。
英特尔在 1999 年 3 月公开历史上首颗为了笔电与「600 美元以下低价电脑」量身订做的「Timna」平台,将 Pentium III 处理器核心、Direct Rambus 记忆体控制器、S3 的 Savage 4 绘图核心,以及 ICH2 I/O 控制器,整合至同一晶片,时脉介于 533~700MHz,预计耗电量仅 15.2W,低于同时期 Celeron 处理器加上 810 晶片组的组合,也预期高度整合式的单晶片设计,可节省大约 30 美元硬体成本。
但受制于 Direct Rambus 记忆体的较低产量与高昂价格,英特尔不得不妥协,在 Timna 追加 MTH(Memory Translator Hub,记忆体协定转译器,图中缩写为 MPT,应为 Memory Protocol Translator)以支援普及的 PC100 SDRAM,不仅提高成本,多出一层通讯协定转译造成效能损失,更衍生严重的记忆体模组相容性问题。
况且 Timna 把所有东西绑死在单一晶片,缩减了厂商的硬体规格弹性,相较英特尔 810 之后,越来越多整合绘图核心的北桥晶片组,一再延期的 Timna 毫无任何优势,结果英特尔不得不在 2000 年 9 月 29 日宣布中止 Timna 计画。原先负责 Timna 的英特尔以色列海法研发中心,转而开发 Pentium M「Banias」,用真正为了笔电打造的处理器微架构取而代之,产品上市也是 2003 年 5 月的事了。
但 2000 年 1 月 19 日,成立于 1995 年的 Transmeta,分别针对「重量 2~4 磅」Windows 轻薄笔电与 Linux 行动联网装置,发表「耗电量只有 1W」的 Crusoe TM5400 与 TM3200 处理器。2000 年 10 月 7 日,更进一步推出 L2 快取记忆体加倍、适用于全功能笔电的 Crusoe TM5600。此外,Transmeta 同时发表 18 页的技术白皮书,充分阐述产品设计理念,更可视为埋首研发 5 年的成果报告与对 x86 双雄的宣战公告。
2000 年 4 月,美国网路概念股开始崩盘,好死不死,在 .com 泡沫连环爆的高峰,Transmeta 上演了一齣轰动武林惊动万教的 IPO(首次公开募股)戏码,投资者还包括微软共同创办人之一的 Paul Allen 与「金融巨鳄」George Soros。
2000 年 11 月 6 日,Transmeta 预定那斯达克发行股票的前一天晚上,挟着 Crusoe 产品陆续上市的气势,确定以两倍于原订价格 11~13 美元的 21 美元 IPO,预计发行 1,300 万股,将可筹募 2.73 亿美元,但发行日股票最高价格却达 50.26 美元,最后以 46 美元收盘,如此惊人的上市首日表现,直到 2004 年才被 Google 超越。
IPO 之前,成立 5 年的 Transmeta 累积了 1.47 亿美元亏损,2000 年产品上市后的 9 个月营收,也只不过 382 万美元。不难想见,当时市场多幺期待符合行动运算需求的低功耗处理器,特别当英特尔刚在 Timna 惨遭滑铁卢时。但坊间亦不乏对 Transmeta 长期发展的忧虑,毕竟还有英特尔和 AMD 两个实力雄厚的竞争者,Transmeta 随时都有被 x86 双雄夹杀的风险。
集结众多天才工程师的低调公司
成立于 1995 年、号称集合众多技术天才的 Transmeta,有两位非常重要且知名的人物,一位是历经 AT&T 贝尔实验室与昇阳(Sun)的创办人兼执行长 David Ditzel,另一位是无人不知无人不晓的 Linux 创造者 Linus Torvalds。
Linus Torvalds 在 1997 年离开芬兰,前往美国硅谷,加入在当时还蒙着神祕面纱的 Transmeta。他还说过,Transmeta 提供他很轻鬆的环境,能够让他上班时继续开发 Linux 核心程式码。
▲ Linus Torvalds。
David Ditzel 任职于昇阳期间,于 1992~1995 年,曾与俄罗斯 Elbrus 团队共事。Elbrus 这票俄国人最知名的成就,除了一系列前苏联超级电脑,就是「藉由二进位转译(Binary Translation)之类的软体手段,让超长指令集(VLIW)处理器可执行其他指令集的程式码」。除此之外,Bob Cmelik 和身为 Transmetaq 共同创办人之一的 Colin Hunter,也都是二进位转译技术的行家,后者曾研发 XDOS,类似 Alpha FX!32 的静态转译器。
但问题来了,堂堂一间处理器公司,干嘛劳驾这位大名鼎鼎 Linux 大神和这些「指令集转译」专家?种种巧合,绝非偶然。一份 Transmeta 在 1996 年 8 月 20 日提出申请、1998 年 11 月 3 日生效的专利权,溢出了足以撼动处理器世界的巨大潜力。
1996 年 8 月 20 日申请的专利权透露的蛛丝马迹
1998 年 12 月 7 日,也就是此专利出现后一个月,微处理器报导(Microprocessor Report)深度分析内容,也正式对世界初次揭开 Transmeta 的神祕面纱。
我们先来瞧瞧这份专利权暗藏的蛛丝马迹。
这里出现 3 个关键字:Code Morphing Software(CMS,代码变形软体)、Translator(转译器)和Simulation(模拟)。这颗微处理器「同时由软体和硬体所构成」,从转译不同指令集,到基本功能如中断(Interrupt)与设陷(Trap)处理,都交给软体搞定。
系统主记忆体会切割一块空间,用来摆放转译器和转译后的结果。执行单元的暂存器档案分成两块:「实际工作用的暂存器」(Working Register)和「转译目标指令集定义的暂存器」(Official Register)。
看在 EAX 到 ESP 等 8 个通用资料暂存器(严格说来只能算 7 个,说 6 个大概也不会有太多人反对)和指令指标器 EIP 的份上,从左图就很清楚看出这颗处理器要「模拟」的目标了:80×86 指令集。
右图则有一块「卡关用」的记忆体回存缓冲区(Gated Store Buffer),以部分工作暂存器为指标,标示「已交付」(Committed)和「未交付」(Uncommitted)记忆体资料区域,唯有已交付的资料,才能写回记忆体。意味着「假如赌博性的预测执行确定无效」或发生中断例外,须「回滚」(Rollback)至先前的指令执行状态,并另起炉灶,只须清除未交付的内容,无须赶尽杀绝,全部清空。
这里就颇有玄机了,为何比对记忆体载入(Load)和回存(Store)的位址,有可能造成「例外」(Exception)呢?各位还记得这份专利的名称有这一段「Detecting A Failure of Speculation」吗?
有看过笔者先前那篇超长指令集介绍文,应该都可以一眼看出,这是 CISC(6a)、RISC(6b)和 VLIW(6c)的比较图,直接证实 Transmeta 要做一颗超长指令集处理器。
如果你对超长指令集(VLIW)感到陌生,请先参照笔者之前的专文。
将 x86 代码转换成原生硬体指令序列的二进位转译,并不限只做一次,还可以做第二次或更多次,以便进行更深度最佳化,亦保留了「跳回」第一次转译内容的弹性。
行文至此,想必各位不难猜出 Transmeta 这票人想干的好事,和需要 Linus Torvalds 这位大神的理由了,将 x86 指令集转译为原生 VLIW 指令的 Code Morphing 软体(CMS),即是以 Torvalds 为中心的研究小组开发,要完成 Crusoe 处理器,绝对离不开 Linus Torvalds 这类软体技术人员。
1990 年代超长指令集风潮的集大成
将指令平行化执行的重责大任交给软体承担的 VLIW,在 1980 年代,同时引起美国(Multiflow、Cydrome)和苏联(Elbrus)两方的重视,1990 年代一度蔚为风潮。而 Transmeta 刚好有幸躬逢其盛,初代产品 Crusoe 是一颗经由软体转译方式相容 x86 指令集的 VLIW 处理器。
2000 年和同时期的英特尔 Pentium III 和 AMD K7 相比,处理器微架构简单到让人不可思议,像过去占用大量电晶体和耗电量的 x86 指令解码器与相关功能电路统统不见了,这也充分反映在晶粒面积的差异性。
同为相近的製程(0.18um)、电晶体数量(约接近 3,000 万)和 256kB 第二阶快取记忆体,Crusoe TM5400 硬是比 Mobile Pentium III 小一截,更何况 Crusoe 整合了北桥晶片组(SDR / DDR SDRAM 记忆体控制器和 PCI 汇流排),第一阶快取记忆体容量,还是英特尔整整 4 倍。
Crusoe 的 VLIW 指令包定义了两种长度和 6 个格式,一个 128 位元的「分子」(Molecule)包裹了 2 或 4 个「原子」(Atom),并包含标示指令是否「交付」(Committed)与软体实作预测执行的专属位元。
Crusoe 具备 64 个 32 位元整数通用暂存器和 16 个 80 位元浮点资料暂存器,分别是 x86 指令集的 8 倍和 4 倍,足以存放「好几份不同版本」的暂存器资料,软体实作暂存器更名机制(Register Renaming)。理所当然,Crusoe 的指令运算元格式是三运算元(A+B=C),更有效的充分利用庞大的暂存器档案。
指令包对应 4 个内部执行单元,依序为 Compute(FADD、ALU1)、ALU0(ADD)、Memory(LD)、Branch(BRCC)。
从 2000 年 1 月到 2004 年 1 月的 4 年,Transmeta 总计发表 7 款 Crusoe 处理器。除了最低阶的 TM3200(原名 TM3120),其余都支援动态调整时脉与电压的 LongRun 电源管理技术和 DDR SDRAM。
虽然 TM3200 和 TM5400 是不同晶片,但从内部功能结构图和布局即可看出,设计有高度一致性。
TM5600 真的是如假包换的「第二阶快取容量加倍版」TM5400。
2000 年的 3 款产品都是 IBM 生产,之后就全数转向台积电 0.13um 製程,晶粒面积缩小到 55mm²。这到底有多小?我们就找个对照组来较量一下:0.13um 製程、512kB 第二阶快取记忆体、44M 电晶体的末代英特尔 Pentium III「Tualatin」是 80mm²,可见简化处理器硬体架构带来的潜在成本竞争力,发热量更是天差地远。
LongRun 电源管理技术会自动调节操作电压。以 TM5800 为例,从 300MHz 到 1GHz,「马力全开」的临界点是 667MHz / 1.05V。
根据不同的封装脚位和记忆体,Crusoe 的脚位相容性分成三群。在 2004 年,Transmeta 第二世代产品 Efficeon 问世后,依旧推出封装面积缩小、最低时脉更高的 TM5700 和 TM5900,压榨旧产品的剩余价值。
Transmeta 当然会拟定 Crusoe 产品线的未来发展蓝图,但这就不在本文讨论範围了,请各位静待后面的连载。
日系大厂纷纷趋之若骛
在 2000 年 1 月到 2003 年 3 月,Crusoe 在处理器市场可谓毫无敌手,尤其对「麻雀虽小,五脏俱全」的小型电脑抱有怨念的日本人,更有致命的吸引力。也因此,选择 Crusoe 的客户与採用的系统皆以日系厂商为主,即使中途腰斩的 IBM ThinkPad 支援机种,也是由位于神奈川县秦野市的大和实验室(Yamato Lab)主导,说穿了也是出自日本人的喜好。
Transmeta 最重要的诉求,不外乎「我是货真价实的高效能 x86 相容处理器,可提供和个人电脑相同的使用者体验,连花俏的 Macromedia Shockwave 网页都跑得动」。有经历过微软 Windows CE 残缺不全糟糕经验的读者,应该都可以感同身受。事隔多年,英特尔也在推广超级行动电脑(UMPC,Ultra Mobile PC)时,重现类似的口号。
不限于行动联网装置和笔电,节能省电且体积小巧的 Crusoe 处理器也广泛导入精简型用户端(Thin Client)、平板电脑、高密度多处理器丛集运算平台与刀锋伺服器等。
Crusoe 的效能如何?约定俗成的观点是:时脉 700MHz 的 TM5400 相当于 500MHz 的英特尔 Mobile Pentium III。
另外,Crusoe 价格也颇占便宜,相对同等效能的英特尔 Mobile Pentium III,已经整合北桥晶片组与记忆体控制器的 Crusoe,定价大约落在 200 美元以内,而 Mobile Pentium III 光一颗处理器不含晶片组,就超过 500 美元,竞争力明显有落差,不言可喻。
不过,Crusoe 的短暂成功仅为昙花一现,落落长的採用产品清单,也未能让 Transmeta 发大财。2004 年初,下一代产品 Efficeon 才刚上市,Transmeta 累积了 5.91 亿美元亏损,意思就是「产品上市 4 年内,不但没赚到钱,还多赔了 4 亿美元」,也只能眼睁睁看着英特尔 Centrino 行动运算平台,靠着 3 亿美元行销预算四处攻城掠地,满山满谷的笔电贴好贴满那张「乌鱼子」贴纸。
顺便一提,Linus Torvalds 在 2003 年 7 月就离开 Transmeta 了。
其实 IBM 在 2000 年底闪电取消 Crusoe 处理器的 ThinkPad,就已经是重大警讯:IBM 很可能比 Transmeta 里这票「技术天才」更了解关键技术「代码变形」(Code Morphing)的瓶颈与侷限(IBM 看这种未来技术趋势一向很準,不信可以去看看 IBM 在 2000 年是怎幺诅咒……呃,「预言」Itanium 的)。
也许 Transmeta 选择《鲁滨逊漂流记》里因船难困在岛上长达 28 年的倒楣主角(Robinson Crusoe)命名第一个产品,打从一开始就不是好兆头。