2004 年 4 月 01 日 在最近 10 年中,IBM 在半导体领域实现了一个又一个的突破:铜技术,绝缘硅,硅锗合金,应变硅和 low-k 绝缘体。所有这些技术都滋生于 IBM 肥沃的研究土壤。这种对现代芯片制造知根知底的能力并非是空穴来风,而是来自于半导体工业中最先进的 R & D 部门的封闭且洁净的实验室。 最初,每个计算机的中央处理单元(或称为 CPU)都是惟一的。每个 CPU 都有自己的指令集,且与其他 CPU 的指令集不兼容。这种情况的变化要回溯到 1964 年引入 IBM S/360 产品线的电子管年代:突然之间,我们不需要每次新买一台计算机时都丢弃原来的代码并重新设计代码了。现在的 IBM 大型机依然保持着对 1962 年这种革命性的指令集的向后兼容性。IBM 其他的 CPU 产品线也保持着相同的兼容性。 从用户模式来看,PowerPC? 系列处理器对应用提供了完全的兼容性:从最底层的自动交通指示灯到功能强大的 Apple Xserve G5。另外,PowerPC 微处理器还与 IBM 的其他 RISC 处理器产品线 POWER? 和 Star 共用一大组通用指令集,这样就使得这三条产品线保持着“近似”的兼容性。在很多情况中,这等价于二进制兼容;在有些情况中,则意味着需要进行简单的重编译;不论如何,这都意味着程序移植已经是小菜一碟了。 IBM 的四条处理器产品线 -- POWER 体系结构,PowerPC 系列的处理器,Star 系列,以及 IBM 大型机上所采用的芯片 -- 都有一个共同的祖先:IBM 801。
当时的大部分计算机,例如 IBM S/360 大型机,都有复杂的冗余指令集,我们今天称之为 CISC(复杂指令集计算机)。计算机的趋势是日益小型化,而 1947 年开始的晶体管的变革更加加剧了这一趋势的变化。随着集成电路越来越小,设计人员可以利用更多的空间在芯片中实现更多指令。到 20 世纪 70 年代,芯片的复杂度已经发展到芯片可以实现非常不可思议的事情(例如日益复杂的数字钟表)。但是另外一个事实是芯片执行指令时需要更多的机器时间,这使得 801 项目组无法实现自己的性能指标。 IBM 的 John Cocke 在实现复杂性领域并不是生手,他早就从事于 IBM Stretch 计算机的研究,IBM Stretch 计算机是 IBM 704大型机的一个竞争对手,它的继承者是 ACS (高级计算机系统);而 704 的继承者是 S/360,二者也是竞争对手。
他对指令集进行了拆分,并设计了一台只有当时同类计算机一半电路的机器,但是其运行速度却是同类计算机的两倍。快速的核心和更少的电路带来的不仅仅是性能的提升,而且功耗也更少(这对于现在的很多用户来说都是最重要的一个问题),成本也更低。这种体系结构称为 RISC(精简指令集计算机)。有些人喜欢称 RISC 为“load-store”,意思是想强调 RISC 计算机只有 100 多条指令(POWER 体系结构也是如此)。其他的 RISC 计算机并没有采用一套精简指令集,而是采用一组精简过的指令:CISC 的每条复杂指令都被拆分成更小的基本单元,然后再组合起来实现复杂指令的功能。 无论如何,CPU 中的复杂性并没有简单地消失,而是转嫁到编译器中了。为了更好地实现这种功能,John Cocke 不仅成为编译器领域的专家,而且在编译器的优化方面特有专长。他在 RISC 和编译器优化方面的工作为他赢得了很多荣誉,其中包括 1987 年的图灵奖。 就 IBM 801 而言,它从来都没有成为一个电话转换器。相反,IBM 801 后来成为第一个 RISC 芯片,在很多 IBM 的硬件产品中广泛采用 -- 曾经有一段时间,它作为一个微控制器和处理器甚至限制了其竞争对手 IBM 大型机的发展。 RISC 体系结构在工作站和嵌入式市场中很快占据了主导地位,John Cocke 之后又转入其他项目的研究之中。在 20 世纪 80 年代,他有机会在一个后来被命名为“America”的项目中重新提炼 801 的设计,这个项目后来就成为 POWER 系列的芯片。之后的几年中,他甚至在 PowerPC 体系结构的开发中贡献了很大的力量。与 801 类似,PowerPC 也被设计成为可以在任何机器上运行的一个通用微处理器,它在从最高端到最低端的机器上都可以运行。 现在,RISC 体系结构是惟一一种最通用的 CPU,它是很多平台的基础:从工作站到蜂窝电话,从视频游戏终端到超级计算机,从交通指示灯到桌面系统,从宽带调制解调器到自动加油站和防撞系统。甚至 x86 的制造商(他们在相当长的一段时间内都生产 CISC 芯片)也基于 RISC 体系结构研制了他们的第五代和第六代芯片,并将 x86 的操作码转换成 RISC 操作,以保持向后兼容。
801 的设计非常简单。但是由于所有的指令都必须在一个时钟周期内完成,因此其浮点运算和超量计算(并行处理)能力很差。POWER 体系结构就着重于解决这个问题。POWER 芯片采用了 100 多条指令,是非常优秀的一个 RISC 体系结构。 以下对每种 POWER 芯片简单进行一下介绍;更详细的内容请参考 参考资料中的链接。
Star 系列芯片源自于对 PowerPC 体系结构的修改,同时还从 POWER 产品线中继承了很多特点。从一开始起,这些芯片就只针对于一种应用进行优化:商业应用。这种专用化使其在 UNIX 服务器领域几乎在 10 年的时间中都牢居霸主地位。 RS64 系列将诸如分支预测、浮点处理以及硬件预取之类的问题留给其兄弟 POWER3 芯片来解决,自己则专注于整数运算性能和大型复杂的片上、片外缓存的处理。RS64 系列从面世以来就一直是 64 位的,2000 年在 RS64 IV 中引入了多线程的设计。RS64 可以在一台机器内扩展到多达 24 个处理器,功耗则只需要每个处理器 15 瓦即可,这一点与其兄弟 POWER 芯片有很大的区别。 这些特性使 RS64 芯片非常适合一些系统,例如联机事务处理(OLTP)、商业智能、企业资源计划(ERP)以及其他一些大型的、功能强大的、具有多用户和多任务而缓存命中率很低的系统,其中包括 Web 服务。RS64 芯片只装备在 IBM 的 eServer iSeries(RS 系列)和 pSeries(AS 系列)服务器中。
现在,商业计算和科学计算的聚合对处理器的设计提出了一个要求:在一个处理器上解决两方面的市场需求。因此 Star 系列正被全新设计的 POWER4 芯片所取代。
PowerPC 是 Apple、IBM 和摩托罗拉(Motorola)联盟(也称为 AIM 联盟)的产物,它基于 POWER 体系结构,但是与 POWER 又有很多的不同。例如,PowerPC 是开放的,它既支持高端的内存模型,也支持低端的内存模型,而 POWER 芯片是高端的。最初的 PowerPC 设计也着重于浮点性能和多处理能力的研究。当然,它也包含了大部分 POWER 指令。很多应用程序都能在 PowerPC 上正常工作,这可能需要重新编译以进行一些转换。 尽管 IBM 和摩托罗拉分别独自开发了自己的芯片,但是从用户层来讲,所有的 PowerPC 处理器都运行相同的关键 PowerPC 指令集,这样可以确保在之上运行的所有软件产品都保持 ABI 兼容性。从 2000 年开始,摩托罗拉和 IBM 的 PowerPC 芯片都开始遵循 Book E 规范,这样可以提供一些增强特性,从而使得 PowerPC 对嵌入式处理器应用(例如网络和存储设备,以及消费者设备)更具有吸引力。 除了兼容性之外,关于 PowerPC 体系结构的最大一个优点是它是开放的:它定义了一个指令集(ISA),并且允许任何人来设计和制造与 PowerPC 兼容的处理器;为了支持 PowerPC 而开发的软件模块的源代码都可以自由使用。最后,PowerPC 核心的精简为其他部件预留了很大的空间,从新添加缓存到协处理都是如此,这样可以实现任意的设计复杂度。 IBM 的 4 条服务器产品线中有两条与 Apple 计算机的桌面和服务器产品线同样基于 PowerPC 体系结构,分别是 Nintendo GameCube 和 IBM 的“蓝色基因(Blue Gene)”超级计算机。 现在,三种主要的 PowerPC 系列是嵌入式 PowerPC 400 系列以及独立的 PowerPC 700 和 PowerPC 900 系列。由于历史的原因,我们介绍独立的 PowerPC 600 系列,因为它是第一个 PowerPC 芯片。
虽然最初考虑用作一个桌面系统的芯片,但是 PowerPC 的低功耗使其成为嵌入式领域中很好的一个替代品,其高性能又对高级应用很有吸引力。现在,PowerPC 已经是很多东西的大脑:从视频游戏终端、多媒体娱乐系统,到数字助手和蜂窝电话,再到基站和 PBX 开关。我们家中的宽带的调制解调器、hub 和路由器、自动化子系统、打印机、复印机以及传真中也都可以找到 PowerPC。当然,桌面系统中也会有 PowerPC。
原因之一是与其他类型的机器相比,大型机对于 CPU 的依赖程度更少,而对于系统体系结构和 I/O 通道的依赖程度则更多。S/360 系列大型机是一个创新,它引入了对业界机器的兼容性的概念,现在有些磁心仍然支持当时的功能。当它在 1971 年名字换成 S/370 时,就成为业界第一个切换为芯片的大型机。当然,它们使用的是 CISC 芯片:具体地讲,是具有 CISC 体系结构的二极管。大约 10 年之后,当 RISC 体系结构出现时,它又切换为 RISC 芯片,令人惊奇的是,其性能获得了显著的提升。然而更重要的一次变化是采用 CMOS 来替代二极管;第一代(G1)CMOS 大型机芯片于 1985 年面世,直到 1997 年 IBM 宣布此后所有的大型机都将只配备 CMOS 而不再采用二极管。实际上不只大型机切换到了 CMOS:尽管二极管统治了早期的芯片制造世界,但是现在大部分处理器都是使用 CMOS。 那么这些 CMOS 芯片究竟是什么呢?哦,CMOS(互补金属氧化物半导体)芯片使用金属氧化物半导体场效应晶体管(MOSFET),显然它是一种 FEI(场效应晶体管)。这是与二极管的根本区别,有关这些区别的影响的详细信息请参阅 参考资料。 虽然二极管的速度很快,但是功耗也高,即使处于备用状态或恒态时也是如此。相反,FET 的速度较慢,但是在恒态下根本不消耗能源。因此,对于那些需要长期供电(而系统性能并不重要)的系统来说,FET 才是正确的选择。因此,当计算还很原始时,人们想出数字钟表来就是很好的一种思路,现在是 CMOS 芯片来驱动。它们还需要满足其他需要更少功耗和并不要求太高性能的系统(例如存放个人计算机的 BIOS 信息)的要求。 这就是为什么它这么慢! 现在,二极管和 FET 之间另外一个重要的区别是拓扑结构:二极管采用的是纵向布线,而基于 FET 的芯片则采用横向布线。因此,在基于 FET 的芯片上空间就更大。在 20 世纪 80 年代和 90 年代的早期,芯片的小型化已经使得芯片的尺寸非常之小,以至于更小的基于 FET 的芯片上可以留出更多的空间,可以放置更多的晶体管,从而实现远远高出二极管模型的性能。基于 FET 的芯片还有最后一个优点:与临近晶体管之间的电子干扰远远小于二极管。因此,尽管二极管也在进行一场日益小型化的战争,但是每次更小一点时,就会加剧了电子干扰的程度,甚至到不可接受的程度;而基于 FET 的芯片则可以变得更小,甚至可以在更大的表面区域中实现更高的布线密度。因此,大部分最新的高级纳米级的芯片都是 CMOS 芯片。 关于大型机芯片另外一个真正有意义的指标是芯片的冗余度。大型机芯片通常会将 20 或 30 甚至更多个芯片封装在一个多芯片模型(MCM)中:其中一半用作备用芯片,以便在活动芯片失效时立即接管这些芯片的工作。更详细地说,大型机会将自己接收到的每条指令都在独立的芯片上执行两次,并在返回结果之前对其进行校验。每个芯片集成 10 亿个晶体管是芯片制造业中的一个里程碑,当我们达到这个水平时,可以发现这种稳定性对于消费用的处理器也同样适用。
在最近几年中,IBM 逐渐向外界开始开放自己的制造工厂和研发中心,这在以前是从未有过的事情。芯片用户包括 Sony、Qualcomm 甚至 AMD。 图 1. 薄晶片:300mm 的晶片生产出了更多芯片 原因之一是 IBM 在纽约的顶级 Fishkill 工厂。Fishkill 工厂如此先进,可以生产几乎所有最新的芯片:从铜 CMOS XS 到绝缘硅、硅锗合金以及low-k 绝缘体,所有这些都可以在 300mm 的晶片上生产。Fishkill 工艺是如此先进,以至于工人甚至无需穿“兔形套装”,因为晶片从头到尾都是在封闭的 FOUP 中生产的。最后,Fishkill 操作非常优秀,服务器中只运行 Linux。 Fishkill 以及 IBM 的大部分其他工艺都花费了大量的时间来使用 PowerPC 核心生产芯片。这是因为 PowerPC 核心速度非常快,而且非常小(这样可以在芯片上为定制留出更多空间);另外一个原因是由于 PowerPC 体系结构可以与多个协处理器组合使用。这也是为什么 PowerPC 会在诸如机顶盒、游戏机和 Playstation2 视频游戏控制台等高度专用化的环境中如此成功的原因。 IBM 工厂也是世界上领先的 ASIC(专用集成电路)的供应商,业务范围从可定制控制处理器(CCP,这种芯片中很大一部分设计是固定的,但是要留下足够的空间进行定制)到 IBM 专家对现有产品进行裁减从而为新应用制造芯片,到对其他供应商的处理器和协处理器提供技术支持。简而言之,他们任何事都可以做。
每个芯片集成了 10 亿个晶体管的芯片现在已经不入主流,业界观察家认为到 2010 年,芯片主频将达到 100 GHz。 同时,我们期望看到 POWER5 和细胞超级芯片的发布,后者是由 Sony、Toshiba 和 IBM 共同开发的。
|
联系客服