级别: 初级 Robert McMillan (bob@linux-mag.com), 自由作家和编辑, Linux Magazine
2002 年 9 月 17 日 别去管贬低者,David Mosberger — 最初将 GCC 移植到 IA-64 的开发人员以及 IA-64 上的 Linux 首席内核架构设计师 — 认为您应关注 Intel 的新 64 位芯片。
David Mosberger 从刚开始他的计算机生涯起就与 64 位 Linux 打交道了。Mosberger 在上个世纪九十年代早期在亚利桑那大学(University of Arizona)攻读硕士学位的同时,还领导着将 Linux 向 Alpha 处理器移植的工作,很快他发现自己的 Linux 业余爱好占据了和研究生功课一样多的时间。他在 1997 年加入惠普的因特网研究组,几年之后,瑞士出生的 Mosberger 抓住了志愿参与安腾(Itanium)移植项目的机会(请参阅
参考资料以获得指向 Mosberger 个人页面以及 IA-64 Linux 项目的链接),现在他成了这个项目的首席内核架构设计师。从 1988 年起,他编写出第一个用于 GNU 编译器集(GNU Compiler Collection,GCC)的 IA-64 后端,还编写了大量 IA-64 工具链支持,并且实现了 Linux 内核的许多特定于 IA-64 的部分。
developerWorks:Linus Torvalds 说过一些对安腾不太客气的话。当您听到他说“我们都在偷偷地等待迎接 Yamhill [传闻中可替代安腾的基于 x86 的 Intel 产品] 项目”,您有何感想?这是否意味着:仅仅因为 Linus 不喜欢,所以安腾将在 Linux 上受挫?
Mosberger:这是个有趣的情况。Linus 是搞技术出身的,他不在乎新闻里写了什么。而且,我认为那封特殊的电子邮件完全是捕风捉影。相反,我认为很明显他希望 x86 能扩展到 64 位,毕竟他从事 x86 方面的工作已超过 10 年。你还能指望怎样?x86 当然是他的至爱。
dW:但如果 Linus 明显对安腾不太感兴趣,这难道对您的工作没有某种形式的影响吗?他对 x86 的偏爱难道不会使他做出一些对安腾不利而对 x86 有利的改变吗?
Mosberger:在某种程度上,你是对的。这可能会发生。但我不认为 Linus 真的对什么体系结构将占据上风那么在意。Linus 关心的是有百分之九十九市场份额的体系结构。如果你仔细看过他的电子邮件,并研究过他如何作出决定,如果所做的事情会扰乱百分之九十九的市场,那它就是个坏主意。他不会那样做。不管那百分之九十九是 x86、安腾、还是别的什么,我认为他并不真正在意。他在意的是哪种产品能便宜地买来在他的书桌上运行,以及哪种产品有杰出的性能。达到他要求的就是他打算使用的。
来自 SuSE 的一些人力图为 x86-64 做些事情,他们说,“我们这样做真的很重要”,而持不同意见的人则说,“不,重点在 x86 上”。因此,从那种意义上说,这是相当民主的。
当然,在过去的三年里,没有实现我们本来想做的事情对我们没有任何影响。我维护一个单独的补丁程序,它建立在 Linus 的补丁程序之上,如果真有什么损害到 IA-64 的事情,我们只需纠正它,然后,比如说,形成两个分支。现在,我认为这种事永远不会发生。我对此并不担心,不过那也是开放源码的优点:如果真的存在问题,并且确实有两种不同的方法来着手处理同一个问题的话,也许就应该有两个项目。
问题是,“我们打算交付具有适当性价比的机器和 CPU 吗?”。许多人目前对此十分消极。有意思的是事情往往摇摆不定。我的意思是,最近三年我一直在留心这件事,一开始 IA-64 被宣传过头了。对此我也觉得不妥。而现在情况完全逆转。现在,似乎一切与 IA-64 相关的东西显然都既差又蠢。事实其实介于两者之间。
我确实很激动。总的说来,Merced 只是一个开发平台,仅此而已。它有许多问题,其中很大的问题是问世太晚。但我想我们现在正开始看到一些基于 McKinley(安腾 2)的机器带来的非常有趣的东西,完全可以设想,这将不是接下来的几年里在 IA-64 舞台上演的唯一戏剧。
安腾 2 确实是功能非常强大的 CPU,我认为人们现在并不十分欣赏它 — 部分原因是还没有足够可用的机器。但我认为当人们开始意识到它是多么强大的 CPU 时,您将看到他们的态度会有所转变。
Merced 几乎是巴洛克式的 CPU 设计。它庞大、笨重而且缓慢。McKinley 是截然不同的品种。它仍然消耗相当数量的电能,但这主要是由于其设计目标并不是使电能的消耗最少。但在我看来,它是非常精简而有效的 CPU。
dW:有多精简?
Mosberger:你可以这样看它。它比 Merced 快两到三倍。在芯片大小方面,它实际上比 Merced 小,而采用的是同样的加工工艺。它仍然是 .18 [微米],因此它甚至没有采用为 P4 和 Athlon 使用的最新工艺。但是,从许多基准测试程序得到的数据来看,它正在让每个人都抢着掏腰包。
dW:那么为什么它比 Merced 快那么多呢?
Mosberger:我认为研制 Merced 时犯了许多错误,我无法确切谈论究竟哪里出了错。部分由于 Merced 做得不太好,某种程度上说,它是此类 CPU 中的第一个(即第一轮循环),所以每个人都在学习什么是真正重要的。在第二轮循环中,他们没有犯那些错误,并且可能放入了一些以前没有想到的东西。
dW:那么让我来问您另一个问题。我觉得大多数人没有想到首先推出的 Merced 芯片表现很差。体系结构现在还有多大的改进空间?现在做到的是否只达到了它能做到的百分之五十?
Mosberger:我不能给出具体的数字。问题是,“你有别的选择吗?”。我认为 IA-64 有很大的发展空间。例如,现在我们可与当今的编译器技术和硬件竞争,但这并不表示我们不能在编译器方面做得更好。很明显,IA-64 在编译器方面比任何其它体系结构有更大的发展空间。
dW:那是为什么?
Mosberger:因为,对于 IA-64,整个前提就是在发送逻辑和指令执行方面从根本上尽可能地简化芯片,而将更多的注意力放在编译器上。在过去,由于指令在其它 CPU 中无序地执行,致使编译器的许多东西都被隐藏起来,所以实质上某些编译器必须做许多弥补工作。在 GCC 方面,我们甚至还没有开始触及问题的表面。
不仅局限于此。在芯片方面,许多很好的想法都被弃之不用,我们将在以后的芯片上看到它们被实现。由于这个原因,所以我很乐观。
dW:您认为专有编译器将始终在这个平台上占据优势吗,或者您认为 GCC 将会赶上来?
Mosberger:我不知道赶上来的是否将是 GCC,但我当然希望并且认为将出现有竞争性的免费编译器。难以想象免费的编译器会大幅度地超过专有编译器,但我认为如果有人真的愿意做的话,它可能会很超过专有编译器几个百分点。不知你是否听说过 ORC [Open Research Compiler,开放研究编译器];它基本上就是过去用于 MIPS 和安腾的 SGI 编译器。他们把它变成开放源码的编译器,而它绝对有安腾后端。我不清楚它是否有 MIPS 后端。现在 Intel 与中国的一所大学有一个联合项目,要真正做一个一流的编译器。不过此时我认为它可能是最差的编译器,因为它不是非常可靠。但可取之处是它的基础结构是正确的,这与 GCC 相比是一项优势,后者的基础结构仍面向非常古老的 CISC 设计。因此我认为两者将存在某些竞争。
dW:为什么 GCC 的性能在安腾上会特别不好呢?
Mosberger:有一件事 GCC 做不到,而这件事很重要,就是多调度组(multiple schedule group),这是 IA-64 非常棒的特性。现在,可以添加这个特性,但坦白地说实际情况要稍稍复杂些。不仅仅是添加一个特性就完了。事实上,整个 GCC 基础结构没有针对现代体系结构进行很好的设计,在现代体系结构中,希望较早地揭示并行性,并且希望这样做与针对 IA-64 还是其它体系结构(RISC 或 CISC)进行编译无关。
我猜这种差别是数量上的差别。在 IA-64 上,很明显它更重要,但如果有人打算修改 GCC 基础结构,那的确会使大家受益。因此,无论如何,这是件正确的事,尽管这不是一个小任务。那就是为什么我认为有这个不同的 ORC 编译器项目也不错的原因。有时有一点竞争真的是件好事。
dW:ORC 是用 GPL 许可证发行的吗?
Mosberger:是的。
dW:那么 GCC 理论上可以采用这个体系结构吗?
Mosberger:是的,当然。妙的是前端实际上就是 GCC。他们只是采用了当时的版本,因此我猜它还没有跟上最新版本,但至少在原理上它确实与 GCC 兼容,因此它应该只是一个插件替代品。
dW:您认为他们会那么做吗?
Mosberger:我认为开发 ORC 的人员正打算那么做。至于他们是否会成功,让我们拭目以待。我肯定开发 GCC 的人员将竭尽所能以确保那不会发生。
dW:Linus 对安腾主要的批评似乎是因为它是作为服务器芯片设计的而不是台式机芯片。
Mosberger:安腾 2 看起来与安腾差别很大。事实上,如果打开[安腾 2]机器,你将很难区分它到底是 P4 还是安腾 2。
dW:但目前安腾的重点似乎不是台式机。
Mosberger:不,现在很明显它是为高端工作站和服务器设计的。Linus 知道 Merced 机器是什么样子;我想他还没有看过 McKinley 机器。我想如果他看到了会吃惊的。就象我说的,这只是第二轮循环。
dW:但您认为这些安腾系统离成为台式机还差多远呢?
Mosberger:Intel 已公开宣布明年将推出 Madison 和 Deerfield。Madison 作为服务器、高端、大容量高速缓存 CPU,Deerfield 则用于低端市场。因此如果你看性能轨迹,原来它趋向高端,而现在它开始出现到低端的分支。所以我们现在会有工作站,不过用的是 Deerfield,它的价格当然会下降。性能当然会上升,但 CPU 主要分为两类:主要面向服务器的和主要面向工作站的。
dW:您看台式机用户会得到什么好处?例如,有没有一些关于 IA-64 体系结构的东西是开发人员特别欣赏的?
Mosberger:嗯,我认为这涉及到性能。但好就好在可以摆脱原有的束缚。看看奔腾 4,它有许多很好的特性,但如果为 x86 做开发,你不能假设每个人都有 P4。有些人用 Athlon,有些人还在用奔腾,其他人用奔腾 2 或奔腾 3,想想看,它们都有不同的指令。尽管它们中的大多数是相同的,但如果想构建高性能的应用程序,就必须提供不同的二进制文件。那样就很让人头疼。
至于安腾,它是全新的设计。你可以从一个“公分母”开始,这基本上就是 P4 现在试图要达到的,而且你不用担心象预取(prefetch)指令这样的基本特性不存在。那样的话,我想开发工作要轻松许多。
dW:但权衡后的结果是为了达到目标而破坏了向后兼容性。
Mosberger:从技术角度看,这显然是希望做的,说它破坏了向后兼容性并不十分正确。安腾和任何其它东西一样是向后兼容的。x86 代码的性能不是特别好,但坦白说,我每天都用它们使用 Acrobat、Open Office、RealPlayer 这类东西。我想说成破坏了向后兼容性有点言过其实,尤其对于 Linux,因为所有重要的开放源码软件都已被移植到 64 位,并且针对 IA-64 重新编译成本机代码,唯一需要在仿真方式下运行的是那些由于各种原因不能本机编译的专有应用程序。而对于这些应用程序,也没有什么问题。上周,我在一台 IA-64 Linux 机器上运行 WINE 下的 TaxCut,它工作很正常 — 甚至表现极佳。
dW:我们已经谈论了许多对 IA-64 的批评;您认为什么将是对 AMD 的 x86-64 体系结构的真正考验?
Mosberger:我猜某种程度上是市场接受度。我的意思是,如果它占领了较大的市场份额,它就会成功。
dW:但从技术角度看如何呢?我不知道您对它的设计了解多少……
Mosberger:我看不出那种体系结构有什么有趣的东西。我想最值得注意的就是将存储器控制器放到 CPU 芯片上,这一点开发 Alpha 的人员已经使用了,而且已经表现出有利也有弊。至于 64 位扩展……也是大同小异。这是显然要做的事。AMD 如果不尝试它,那才叫愚蠢,我祝他们好运。
参考资料
关于作者
对本文的评价
|