# IBM Advanced Computer Systems project

The ACS-1 and ACS-360 are two related supercomputers designed by IBM as part of the Advanced Computing Systems project from 1965 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 the Itanium processors.
After the ACS project folded, the engineers were given the choice to rejoin other divisions of IBM. Many declined as it would require them to return to the east coast from California. A number formed MASCOR in 1970 but 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 ACS. Amdahl Corporation's 470V/6 were both faster and less expensive than IBM's own high-end designs.

## History
### IBM and CDC

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.
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.
At a meeting in September 1963, IBM 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, later renamed Model 91. Eventually, about a dozen machines in the Model 90 series would be sold.
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.

### Move to California

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.
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.
Harwood Kolsky gave a presentation on the various competing designs, while Gene Amdahl and Chen Tze-chiang talked about their work on the high-end 360 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. In late 1964, Amdahl took a teaching position at Stanford University, wanting to return to the west coast. 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 ACS at the invitation of Bob Evans.
Even at this early meeting, Amdahl made the argument that it would make much more sense to make the ACS 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 48-bit ones, 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.

### Design matures

In early 1966 the Project Y design was finalized as ACS-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 m$^2$) 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.
Another concept developed for the ACS 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 queued instructions while earlier instructions were waiting for data from memory or previous calculations. The outputs from these calculations being executed out of order 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, who had been hired to develop a software simulation of the ACS, developed a system that used a bit-matrix to track which instructions were ready to be executed and which were waiting.
Using the simulator, Conway benchmarked a number of high-performance computing workloads against the IBM 7090, CDC 6600 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.
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.
In a November 1967 project review, Herb Schorr outlined a delivery plan that would ship the first machine in 1971. 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.

### Design "shootout"

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 ACS 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.
Amdahl's continued arguments for 360 compatibility placed him increasingly at odds with Bertram. Bertram responded by "quarantining" him and making sure that no one was allowed to talk to him. Whenever someone would visit, within minutes someone else would arrive and call the first visitor into a meeting. Around the same time, another ACS 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. Earle had been beaten up in a fight in Philadelphia, and when he returned from the hospital Bertram assigned Earle to Amdahl, apparently as a form of punishment.
This backfired badly, as over the next month 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 ACS-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 ACS-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.
In December 1967, Kolsky was sent to meet with Amdahl to get a more detailed description of the proposed design. Around the same time, Amdahl began calling people within IBM to tell them about the new design. As word of the concept spread around the System Development Division in New York, the division's vice president Erich Bloch began to organize an internal review. The ACS team responded with a "frantic" redesign that reduced the number of gates from 270,000 to 200,000 with little effect on performance, which strongly suggested it was overdesigned.
Bloch selected Carl Conti from IBM Poughkeepsie to handle the review, which occurred in March 1968. 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 ACS-1, it would be up to 2.5 times slower on floating-point, and the complex branching system of ACS 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 ACS 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. He also concluded that while the AEC would be closer to 108,000 gates, it was still half as complex as the ACS.
A final review was performed in April, but this was brief and seemingly already decided. In May, IBM announced the ACS-1 would be cancelled and the AEC/360, to be known as the ACS-360 from that point, would move forward. Although Amdahl's competing design had much to do with this, it was not the only reason. Amdahl had also argued that the $15 million would better be spent on improving the operating systems on the 360, which would improve the entire lineup, not just the AEC. But perhaps the most serious blow to the ACS was the continued success of the 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." Although the ACS would have outperformed the Model 95 by a wide margin, by this time Watson Jr. was considering withdrawing from the supercomputer market entirely.
Many of the retrospective articles on the ACS 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." 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. Likewise, Amdahl's claim of an 8 nanosecond cycle was accepted by the Conti review although Mark Smotherman suggests it is not realistic.

### Cancellation

Most of the ACS upper management team left, and Amdahl was placed in command. The AEC/360 continued development along the proposed lines, with the only major change being the introduction of generalized register renaming as part of the out-of-order system and changes to the branch prediction system to work with the 360 instruction set.
While calculating the cost of the machine, Amdahl concluded that there was no way its sales could turn a profit. This was a serious risk to the company, as introducing a high-end machine that was guaranteed to lose money could be seen as anti-competitive behaviour, an attempt to take the market away from companies like CDC. IBM faced a similar problem with Stretch, but over time it was shown that the R&D in that project had been widely used in the company and if it was billed out then it was slightly positive. To allow ACS/360 to more clearly turn a profit, Amdahl suggested producing three models of the same basic system, the original ACS/360, a smaller model with 1⁄3 the performance, and an even smaller version with 1⁄9, which would still make it the fastest machine in IBM's lineup. This proposal was rejected.
In May 1969, IBM upper management instead decided to cancel the entire project, apparently at Amdahl's suggestion. 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 release a machine in the short term. Amdahl later claimed its 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 as fast as the ACS/360 would require it to be priced in a way that would force their other machines to be reduced in price. He has also claimed to have heard rumors that it had been deliberately set up to fail so that the technology could be used in other projects and the R&D cost written off on taxes.
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.
When the ACS 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. Amdahl resigned in September 1970 and formed his own company to build 360-compatible machines, introducing the Amdahl 470/6 in 1975. Amdahl Corporation would become a major vendor of IBM-compatible systems into the 1980s, with a 20% or better market share through the 1970s and 80s.

## Influence

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