天天看點

商業微處理器:曆史、理論和趨勢(二)從IBM 360到Cray-1:1964-1976年的大型機

早期的計算機價格昂貴,主要是軍方定制的機器或者是面向企業的機器,這類機器對價格不是很敏感。1964年同時推出的兩台計算機剛好是這兩個領域的典型代表。

IBM System 360

IBM System 360系列計算機是IBM公司1964年推出的一系列計算機,該系列的計算機最吸引人的特性就是相容性。該系列的所有機器之間都是互相相容的,為一台機器編寫的代碼無需修改即可運作在新機器上,顯著提高了使用者黏性。文獻[2]中詳細介紹了IBM360設計時對當時不同标準的考量,許多其中制定的資料标準沿用至今,成為國際标準。值得一提的是,IBM除了自己設計計算機,同時還自己建工廠生産計算機和儲存設備,自己編寫系統軟體,并教育訓練服務人員。System 360的系統設計者Brooks後來将自己在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. Brooks. Architecture of the ibm system/360. IBM Journal of Research and Development, 8(2):87–101, 1964.

[3] Fred P. Brooks. 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.

繼續閱讀