商业微处理器:历史、理论和趋势(二)从IBM 360到Cray-1:1964-1976年的大型机

早期的计算机价格昂贵,主要是军方定制的机器或者是面向企业的机器,这类机器对价格不是很敏感。1964年同时推出的两台计算机刚好是这两个领域的典型代表。

IBM System 360

IBM System 360系列计算机是IBM公司1964年推出的一系列计算机,该系列的计算机最吸引人的特性就是兼容性。该系列的所有机器之间都是相互兼容的,为一台机器编写的代码无需修改即可运行在新机器上,显著提高了用户黏性。文献[2]中详细介绍了IBM360设计时对当时不同标准的考量,许多其中制定的数据标准沿用至今,成为国际标准。值得一提的是,IBM除了自己设计计算机,同时还自己建工厂生产计算机和存储设备,自己编写系统软件,并培训服务人员。System 360的系统设计者*s后来将自己在IBM经历写成了经典的《人月神话》[3]一书,探讨大型软件开发时遇到的种种问题。IBM 360系列计算机同时还集成了一系列先进技术,例如经典的乱序执行算法,Tomasulo算法[4]。

CDC 6600

在IBM称霸大型机市场的年代里,能够与其正面交手的公司,大概只有一家了,这就是CDC公司。不同于IBM主要为*、企业提供服务,CDC公司主要面对的应用负载是科学计算,例如导弹计算、核物理模拟等。受美国原子能委员会的委托,CDC为其制作高性能的计算机,此时CDC公司的总设计师,正是日后大名鼎鼎的Seymor Cray。1963年8月,CDC 6600横空出世,运算速度是当时主流大型机性能的十倍,更令人惊讶的是,如此高性能的机器,其设计团队只有三十多个人。究其原因,CDC 6600使用了十个外围处理器,可以执行向量指令[5],这种结构后来被吸收进微处理器的设计当中。除此之外,指令通过一台*处理器调度,使用另一种乱序执行算法,ScoreBoard算法[6],该算法同样是教科书级的。

CDC STAR-100和TI ASC

1972年又有两台超级计算机诞生了,他们是CDC的STAR-100和德州仪器Texas Instruments的ASC计算机,主要用于核能模拟和地震预测等领域。Cray在设计CDC 7600的后续机种CDC 8600时遭遇瓶颈,系统复杂度过高导致无法正常运转。CDC公司因此采用了另外的设计,也就是STAR-100,Cray本人也因此离开了CDC公司。CDC STAR-100[7]和TI ASC[8]计算机均采用向量结构,支持向量指令。同时缺点也如出一辙:向量指令的启动开销过大,导致只有较大的向量通过向量执行才能获得较好的性能,短向量的并行效果还不如顺序执行[1]。这些早期的探索为向量化技术的成熟进行了有益的探索。

Illiac IV

Illiac IV是伊利诺伊大学(University of Illinois)为美国国家航空航天局下属的艾姆斯研究中心(Ames Research Center)研制的计算机[9],名字也是两家拼起来的。该计算机具有四个控制单元CU,每个CU可 以控制64个处理单元PE[10,11]。CU获取指令,控制指定数量的PE完成相同的操作,这样每次可同时完成256个元素的向量操作,PE之间通过交叉网络进行通信。由于Illiac IV设计理念超前,当时的编程和编译技术尚且不能跟上,因此为Illiac IV定制编译器的工作又持续了几年,这时著名的Cray-1诞生了。

Cray-1

1976年,Cray推出了Cray-1向量处理机[12–14]。集成电路技术的加持使得Cray这次能够充分发挥自己的才能,Cray-1一改前代向量机的弊端,性能和可操作性获得了极大的提升。Cray-1的突出特点包括:

  1. 极大地减小了向量操作的启动时间,使得较短的向量也可以取得较好的性能。
  2. 使用Chaining技术,引入向量寄存器,并且程序员可以显示的指定向量部件的Data Forwarding,减轻了内存带宽的压力。
  3. 扩展标准的FORTRON库,使得编程人员无需对代码进行改动即可获得加速效果。这些因素使得Cray-1大获成功,和它标志性的Seat一同深入人心。

[1] John L. Hennessy and David A. Patterson. Computer Architecture, Sixth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., 2017.

[2] G. M. Amdahl, G. A. Blaauw, and F. P. *s. Architecture of the ibm system/360. IBM Journal of Research and Development, 8(2):87–101, 1964.

[3] Fred P. *s. The mythical man-month. SIGPLAN Not., 10(6):193, 1975.

[4] R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1):25–33, 1967.

[5] J. E. Thornton. Design of a Computer—The Control Data 6600. Scott Foresman, 1970.

[6] James E. Thornton. Parallel operation in the control data 6600. In Proceedings of the October 27-29, 1964, Fall Joint Computer Conference, Part II: Very High Speed Computer Systems, AFIPS ’64 (Fall, part II), page 33–40, New York, NY, USA, 1964. Association for Computing Machinery.

[7] Charles J. Purcell. The control data star-100: Performance measurements. In Proceedings of the May 6-10, 1974, National Computer Conference and Exposition, AFIPS ’74, page 385–387, New York, NY, USA, 1974. Association for Computing Machinery.

[8] W. J. Watson. The ti asc: A highly modular and flexible super computer architecture. In Proceedings of the December 5-7, 1972, Fall Joint Computer Conference, Part I, AFIPS ’72 (Fall, part I), page 221–228, New York, NY, USA, 1972. Association for Computing Machinery.

[9] R.M. Hord. The Illiac-IV, The First Supercomputer. Springer-Verlag Berlin Heidelberg, 1982.

[10] G. H. Barnes, R. M. Brown, M. Kato, D. J. Kuck, D. L. Slotnick, and R. A. Stokes. The illiac iv computer. IEEE Transactions on Computers, C-17(8):746–757, 1968.

[11] W. J. Bouknight, S. A. Denenberg, D. E. McIntyre, J. M. Randall, A. H. Sameh, and D. L. Slotnick. The illiac iv system. Proceedings of the IEEE, 60(4):369–388, 1972.

[12] Richard M. Russell. The cray-1 computer system. Commun. ACM, 21(1):63–72, 1978.

[13] J. Kolodzey. Cray-1 computer technology. IEEE Transactions on Components, Hybrids, and Manufacturing Technology, 4(2):181–186, 1981.

[14] Richard L. Sites. An analysis of the cray-1 computer. In Proceedings of the 5th annual symposium on Computer architecture, page 101–106. Association for Computing Machinery.

上一篇:微体系结构历史梳理(一)引言


下一篇:商业微处理器:历史、理论和趋势(五)从1996 到2003:微处理器的基本形态