IBM Advanced Computer Systems project

Summary

The ACS-1 and ACS-360 are two related supercomputers designed by IBM as part of the Advanced Computing Systems project from 1961 to 1969. Although the designs were never finished and no models ever went into production, the project spawned a number of organizational techniques and architectural innovations that have since become incorporated into nearly all high-performance computers in existence today. Many of the ideas resulting from the project directly influenced the development of the IBM RS/6000 and, more recently, have contributed to the Explicitly Parallel Instruction Computing (EPIC) computing paradigm used by Intel and HP in high-performance processors.

After the ACS project folded, the engineers were given to choice to rejoin other divisions of IBM. Many declined as it would require them to return to the east coast from California. Many of these went on to form MASCOR, Multi Access System Corp, in 1970. This was short-lived as they were unable to raise capital. Gene Amdahl took the opportunity to start his own company, building IBM-compatible mainframe computers using the ECL designs worked on for ASC. Amdahl Corporation's 470V/6 were both faster and less expensive than IBM's own high-end designs.

History edit

IBM and CDC edit

IBM introduced its first supercomputer, the IBM 7030 Stretch, in May 1961. They had to withdraw it from the market when tests at the launch customer, Los Alamos Scientific Laboratory, demonstrated it had very poor real-world performance. Almost immediately, IBM organized two development projects, Project X at the IBM Poughkeepsie Laboratory and Project Y at the IBM Thomas J. Watson Research Center. Project X was tasked with designing a machine that would run 10 to 20 times as fast as Stretch, while Y was to be 100 times faster.[1]

In the spring of 1962, Control Data Corporation (CDC) announced that they had installed two computers at Lawrence Radiation Laboratory and had received a contract for a third, a much more powerful design. That new machine was officially announced in August 1963 as the CDC 6600, causing IBM CEO Thomas J. Watson Jr. to write a now-famous memo asking how it was that this small company could produce machines that outperformed those from IBM.[1]

At a meeting in September 1963, the company decided to shore up the high-end of what was then known as the New Product Line, or NPL. Project X was directed to implement the NPL instruction set, becoming a high-end machine in that lineup. When NPL was launched in 1964 as the System/360, Project X became the Model 92. Eventually, about a dozen machines in the Model 90 series would be sold.[1]

Project Y was never directed to use NPL, as it was a longer-term project aimed purely at the scientific market. Development was assigned to Jack Bertram and his Experimental Computers and Programming Group and started in earnest in late 1963. Bertram brought in John Cocke, Frances Allen, Brian Randell, Herb Schorr, and Edward H. Sussenguth, among others. Schorr developed the initial instruction set and recruited his former student, Lynn Conway, to work on a system simulator.[1]

Move to California edit

The System/360 was an immediate runaway success, but production line problems plagued deliveries and much of the company was dedicated to fixing them. Meanwhile, CDC announced they would be introducing a new machine that was 10 times the performance of the 6600. Watson was convinced that the 360 instruction set would not be suitable for the new design and was worried that development would be slowed by the turmoil at the labs due to the 360 problems. In the spring of 1965, he approved the creation of a new division in California that would be closer to their customers at the weapons labs. A building in Sunnyvale, California was purchased in 1965 and set up as the IBM Advanced Computing Systems. Max Paley would be the lab director.[2]

At a steering meeting in August 1965, Paley, Bertram, and Schorr gave presentations on the design so far. The machine would use a 48-bit word length, as that was the standard for scientific computing. The machine would have a clock cycle time of 10-nanoseconds, about 10 times faster than the 6600, with six or seven internal cycles per clock. The arithmetic logic units (ALUs) that performed most of the mathematics would be pipelined, as in the 6600, and it would dispatch multiple instructions per cycle. Branching performance would be improved with a buffer that would begin executing both sides of the branch.[2]

Harwood Kolsky gave a presentation on the various competing designs, while Gene Amdahl and Chen Tze-chiang talked about their work on the Model 92. Kolsky had worked at Los Alamos for seven years before joining the Stretch project, while Amdahl had left IBM after being passed over to lead Stretch development but returned to IBM Research in 1960 and joined the Project X effort.[2] In late 1964, Amdahl took a teaching position at Stanford University, but in January 1965 he was named an IBM Fellow for his work on the Model 92. As a Fellow, Amdahl was entitled to work at any IBM facility of his choosing and decided to join ASC at the invitation of Bob Evans.[3][4]

Even at this early meeting, Amdahl made the argument that it would make much more sense to make the ASC compatible with the 360, as had been the case with Project X. While it might run marginally slower than the ACS, due largely to it using a 32-bit word and having 16 registers instead of 32, it would offer customers of the Model 92 an upgrade path to much higher performance and leverage all of the software and especially their compiler technology developed for that machine.[2]

Design matures edit

In early 1966 the Project Y design was finalized as ASC-1, with the only major change being the removal of the 192-bit extended floating-point format. In 1966, a new building with 38,000 square feet (3,500 m2) was built at 2800 Sand Hill Road in Menlo Park, California, near the Stanford Linear Accelerator and the project moved there late in the year. A significant change to the design occurred during this period. Originally, the compiler was responsible for moving instructions out of a large core memory or thin film memory store into a smaller cache of static RAM (although that term was not in use at the time) inside the CPU. Reviewing the system, Schorr and Dick Arnold concluded it would not work, and decided to reimplement it as a single-level with hardware caching of 32 or 64 kWords.[5]

Another concept developed for the ASC was dynamic instruction scheduling, or DIS. The ALU and indexing units, which calculated addresses, both had six-slot buffers from which it could select two instructions to execute out-of-order. This allowed the system to execute instructions while others were waiting for data from memory or previous calculations. The outputs from these calculations would then be placed back in memory at the correct time, giving the illusion that everything had been executed in the order it was found in the machine code. Lynn Conway developed a system that used a bit-matrix to track which instructions were ready to be executed and which were waiting as part of the development of a software simulation of the new system.[5]

Using the simulator, Conway benchmarked a number of high-performance computing workloads against the IBM 7090, 6000 and S/360 Model 91. In comparison to the 7090, IBM's older scientific offering, ACS-1 would perform the Lagrangian Hydrodynamics Calculation (LHC) 2,500 times faster. On the more complex Neutron Diffusion (ND) code, it outperformed the 7090 by almost 1,300 times, and was about 60 times as fast as the 6600.[6]

Allen, Cocke, and Jim Beatty led the development of the compilers for the machine. This represented a significant effort as the system was to be highly advanced and aggressively optimize code. Among its features was the ability to unwind loops, schedule instructions around the basic block concept, and separate those optimizations that were code-based vs. platform-based. The compiler would be used by both a PL/1 front-end as well as an expanded version of Fortran IV.[4]

In a November 1967 project review, Herb Schorr outlined a delivery plan that would ship the first machine in 1971.[7] The plan estimated that over 100,000 lines of Fortran and assembly code would be needed for the operating system and nearly 70,000 lines for the compilers, assembler, and library routines. He estimated the cost of development to be $15 million ($137 million in 2023) for the software alone.[4]

Design "shootout" edit

Amdahl continued to agitate for a 360-compatible version of the machine. In January 1967, Ralph L. Palmer asked John Backus, Robert Creasy, and Harwood Kolsky to review the project and Amdahl's concept. Kolsky concluded that the 360-compatible version would be too difficult, and pointed out that the ASC was aimed at the CDC 6600 market, not the 360's, so if the customer was interested in compatibility, 6600 compatibility would seem more useful. The next month, Amdahl once again argued for 360 compatibility for marketing reasons.[4]

Amdahl's continued arguments for 360 compatibility placed him increasingly at odds with Bertram, who was now running the project. Bertram responded by "quarantining" him and making sure that no one was allowed to talk to him. Around the same time, another ASC team member, circuit designer John Earle, was being removed from the main team due to his working style which was causing friction in the team. Bertram assigned Earle to Amdahl, apparently as a form of punishment. This backfired badly, as Amdahl was able to convince Earle that a 360-compatible version was possible, and Earle went ahead and designed it. The result was the Amdahl-Earle Computer, or AEC/360. Using many of the concepts in ASC-1 they produced a design that was slightly slower than it, but cost perhaps 75% as much to build, with only 90,000 gates instead of 270,000 (a gate requires about five transistors using the ECL logic of the era). Much of the reduction was due to the fewer and smaller registers, which accounted for half of the gates in the ASC-1. The loss of performance due to fewer registers was to be made up by a faster 8 nanosecond clock, possible due to a streamlined internal design.[4]

In December 1967, Amdahl began calling people within IBM to tell them about the new design. Kolsky was sent to meet with Amdahl to get a more detailed description of the proposed design.[7] This proved interesting to management, who arranged a complete project review in March 1968 under the leadership of Carl Conti from IBM Poughkeepsie. Amdahl presented performance estimates based on hand-calculated cycle counts. Conti accepted Amdahl's arguments that on integer benchmarks, the AEC/360 would be up to five times as fast as the ASC-1, it would be up to 2.5 times slower on floating-point, and the complex branching system of ASC seemed to offer 10 to 20% at best and could be adapted to the AEC if desired. But a key point made by Conti was that if the ASC system was so reliant on the compilers for its performance, moving that code to some other machine could result in far different outcomes and that could be considered a disadvantage.[8]

The most serious blow to the ASC was the continued success of the S/360. In January 1968, NASA had taken delivery of a 360 Model 95, which IBM described as "the fastest, most powerful computer now in user operation."[8] Another problem was that Max Paley publically supported Amdahl's concept. In May, IBM announced the ASC-1 would be cancelled and the AEC/360, to be known as the ASC-360 from that point, would move forward. Most of the upper management team left, and Amdahl was placed in command. One major change during this period was to introduce register renaming as part of the out-of-order system and changes to the branch prediction system.[8]

Many of the retrospective articles on the ASC project note that the original machine would have been a world leader. Conway notes that "In hindsight, it is now recognized that had the ACS-1 been successfully built, it would have been the premier supercomputer of the era."[7] The decision to cancel the original design rested mostly on the cycle counts which had not been tested as the simulator she had developed had not been ported.[7] Likewise, Amdahl's claim of an 8 nanosecond cycle was accepted by the Conti review although Mark Smotherman suggests it is not realistic.[8]

Cancellation edit

Amdahl calculated that for the series to be profitable, they would have to produce three models. The high-end AEC concept would have only a small number of sales, so it would be matched by a smaller model with 13 the performance, and an even smaller version with 19, which would still make it the fastest machine in IBM's lineup.[8]

In May 1969, IBM upper management instead decided to cancel the entire project.[8] What had initially been intended to be a project to compete with the fast-moving CDC had now stretched on for the better part of a decade and showed little evidence that it would ever be worthwhile. Amdahl later claimed it was cancellation was due primarily to it upsetting IBM's carefully planned pricing structure. The company as a whole had an understanding that machines above a certain performance level would always lose money, and that introducing a machine that was so fast would require it to be priced in a way that would force their other machines to be reduced in price.[3]

Shortly after the announcement of the project's cancellation, in August 1969, IBM announced the IBM System/360 Model 195, a re-implementation of the Model 91 using integrated circuits that made it twice as fast as the Model 85, which at that time was the fastest machine in the lineup. To address the high-end market, a vector processing task force was started in Poughkeepsie.[9]

When the project was cancelled, many of the engineers were not interested in returning to the main IBM research campus in New York. and wished to remain in California. Some ended up at IBM's hard drive research facility in San Jose, California, while many others left to form a new company, Multi Access System Corp, or MASCOR. This failed to raise capital and folded after only a few months.[9] Amdahl resigned in September 1970 and formed his own company to build the system he had outlined with Earle, introducing it as the Amdahl 470/6 in 1975. Amdahl Corporation would become a major vendor of IBM-compatible systems into the 1980s, when the mainframe market began to shrink.

Many of the innovations resulting from the project would eventually find direct realization in the IBM RS/6000 series of machines (later known as the IBM System p line of workstations and servers), apart from influencing the design of other machines and architectures.

Influence edit

Although neither the ACS-1 nor the ACS-360 was ever manufactured, the IBM Advanced Computing Systems group responsible for their design developed architectural innovations and pioneered a number of RISC CPU design techniques that would become fundamental to the design of modern computer architectures and systems:

  • Aggressive reduction in the number of logic gate levels for pipeline stages to reduce the cycle time
  • Tight integration between processor and memory
  • Cache memory with streamlined I/O to/from cache
  • Compiler optimization techniques
  • Virtual-memory operating systems
  • Multiple instruction decode and issue (a first)
  • Use of a branch target buffer (a first)
  • Multithreading implemented in hardware (a first for IBM)
  • Dynamic instruction scheduling/out-of-order execution
  • Hardware register renaming
  • Instruction predication
  • Level-sensitive scan design (used by IBM)
  • Fixed-head hard disks
  • Air-cooled high-speed LSI circuits
  • Advanced simulation tools used in the design process

References edit

Citations edit

  1. ^ a b c d Smotherman, Sussenguth & Robelen 2016, p. 60.
  2. ^ a b c d Smotherman, Sussenguth & Robelen 2016, p. 61.
  3. ^ a b "Interview with Gene Amdahl". IEEE Design and Test of Computers. April 1997.
  4. ^ a b c d e Smotherman, Sussenguth & Robelen 2016, p. 63.
  5. ^ a b Smotherman, Sussenguth & Robelen 2016, p. 62.
  6. ^ Smotherman, Sussenguth & Robelen 2016, pp. 62, 66.
  7. ^ a b c d Conway 2011, p. 20.
  8. ^ a b c d e f Smotherman, Sussenguth & Robelen 2016, p. 67.
  9. ^ a b Smotherman, Sussenguth & Robelen 2016, p. 68.

Bibliography edit

  • Smotherman, Mark K.; Sussenguth, Edward H.; Robelen, Russell J. (2016). "The IBM ACS Project". IEEE Annals of the History of Computing. 38 (1): 60–74. doi:10.1109/MAHC.2015.50.
  • Conway, Lynn (2011). "IBM-ACS: Reminiscences and Lessons Learned from a 1960's Supercomputer Project" (PDF). Dependable and Historic Computing: Essays Dedicated to Brian Randell on the Occasion of his 75th Birthday. Springer-Verlag. pp. 185–224.

External links edit

  • IBM Advanced Computing Systems (ACS) — 1961–1969 — Documentation project for the IBM ACS-1 supercomputer maintained by Mark Smotherman