IBM Advanced Computer Systems project: Difference between revisions

Content deleted Content added
mNo edit summary
Line 28:
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.{{sfn|Smotherman|Sussenguth|Robelen|2016|p=62}}
 
Using the simulator, Conway benchmarked a number of high-performance computing workloads against the [[IBM 7090]], 6000CDC 6600 and [[IBM System/360 Model 91|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.{{sfn|Smotherman|Sussenguth|Robelen|2016|pp=62, 66}}
 
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]].{{sfn|Smotherman|Sussenguth|Robelen|2016|p=63}}