THE CIRRUS COMPUTER Its Design, History and Significance

THE CIRRUS COMPUTER Its Design, History and Significance

THE CIRRUS COMPUTER Its Design, History and Significance Emeritus Professor Chris J. Barter The University of Adelaide Abstract Australia was a leader in the design, construction and use of computers in the late 1940s to the early 1960s. The CIRRUS computer, designed and built at the University of Adelaide between 1958 and 1962, is an important part of that story. CIRRUS was a transistorised, magnetic core memory machine, with microcoded instruction sets, stored in changeable read-only memory, with multi-tasking, time-sharing, interactive multi-user capability and sophisticated memory management. The first computer in the world with all those attributes, anticipating the shape of computer designs for the next decade. Second Generation Computers In the mid-1950s, junction transistors became available to build so-called ‘Second Generation Machines’. There were five second generation computers designed and built in Australia in the late 1950s and early 1960s – ADA, SNOCOM, CIRRUS, ATROPOS and ARCTURUS – summarised in the publication “Connections in the History of Australian Computing”, by John Deane.1 ADA1,4 , designed by Murray Allen, was a transistorised and programmable automatic differential analyser, started in 1956 as a PhD project, when commercial germanium junction transistors became available. SNOCOM1,17, designed by Allen and David Wong at Sydney University for the Snowy Mountains Authority (SMA), was the first transistor general purpose computer built in Australia, using the engineering designs developed in ADA, and was delivered to the SMA in 1960, and used extensively in that organization. ATROPOS1, designed and constructed at the Weapons Research Establishment (WRE) laboratories in South Australia in 1962, was created to make impact predictions of rockets fired at the Woomera rocket range, using tracking radar signals as inputs. ARCTURUS1, a small general purpose computer designed by Wong using his SNOCOM experience, was completed in 1966. The CIRRUS Computer CIRRUS1,2,3,6,7,8,9,10,11,12,18 was a transistorised, magnetic core memory machine, with microcoded instruction sets, stored in changeable read-only memory (ROM), with multi-tasking, time-sharing, interactive multi-user capability and sophisticated memory management, the first computer in the world with all those attributes, anticipating the shape of computer designs for the next decade. The Head of Electrical Engineering at the University of Adelaide, Professor E.O. Willoughby, wished to establish a research group in “digital techniques and systems”. In 1958, he hired Allen and Gordon Rose as the nucleus of the group.5 Allen would build on his experience of digital electronic design in ADA4 and SNOCOM1,17 at the University of Sydney. Rose had research interests in computer structures and at the Weapons Research Laboratory. Other members of the founding group were PhD students I. R. Butcher and M. R. Haskard. In 1958, Allen set out the design parameters and basic architecture of the machine: 1. The machine would adopt Sir Maurice Wilkes’ concept of microprogramming a control unit for the generation of register transfer sequences; 2. The machine was to be a timesharing one from the outset, but because of the complexity of the microcode required for the timesharing operating system, the control unit was designed as a “sub-computer”; 3. The basic machine was to be simple, fast and economical in components, and all higher level functionality was to be through microprogramming. The architecture of the basic machine was conventional, but the advanced features and novel performance of the computer would lie with the design of the sub-computer and its microprograms. 4. ROM was to be used to store microprograms, but because many microprograms were likely to involve hundreds of microinstructions, the ROM would have to be very large; 5. It would use magnetic core main memory, and use the latest transistors; 6. Very little of the designs Allen used in ADA and SNOCOM would be of direct use because of the very low currents of the latest high-frequency transistors, the size of core memory and read only memory required. This required experimental research into the engineering of the components of the computer. PhD students Butcher and Haskard were to investigate the use of the recently available high-frequency transistors (including OC44 transistors provided by Philips Research Laboratories in Adelaide) in the design of high-speed flip-flops for registers and the arithmetic logic unit (ALU), core memory (Haskard) and read-only memory drivers (Butcher). The engineering challenge was that the latest surface barrier transistors had only low current capability, whereas the core memory and read-only memories required high-current drivers. Meeting this challenge was crucial to the feasibility of the project, and that work commenced mid-1958.5 The design was published as “The Design of a Digital Computer” by Allen, Rose, Butcher and Haskard in 19596. The report describes the CIRRUS system architecture at the register transfer level (Allen and Rose) and provides details of the electronic experiments and circuit designs (Butcher and Haskard). It was later published in summary form in a conference paper in 19607. In 1959, John Sanderson was appointed at the University, having had experience in compilers at the Weapons Research Laboratory, and worked on the CIRRUS instruction set and compiler. Late in 1959, John Penny undertook a postgraduate degree under Allen’s supervision, having developed an interest in multiprogramming at the CSIRO Division of Mathematical Statistics in Adelaide. Both made significant contributions to the software aspects of CIRRUS. Trevor Pearcey took an interest in the project on his return to CSIRO Melbourne in 1959. Figure 1 of the report sets out the design of a very basic computer, with a conventional register transfer architecture, with main memory, registers, an ALU, a register store and a control unit. The tight budget dictated the minimum possible components. For example, the ALU had only four operations on registers – integer add/subtract, increment/decrement, logical differ and logical product. All other functionality was to be provided through microprogramming.13 To be clear, the basic computer only executes micro-instructions, one at a time. The sub-computer executes microprograms so as to deliver a stream of micro-instructions to the basic computer. The microprogramming envisaged was to be at the architectural level, not simply the generation of control signals from single machine instructions as in a classic Wilkes control unit; accordingly, the CIRRUS control unit was conceived as a ‘sub- computer’. This was succinctly put in an email dated 9 March 2017 by Gordon Rose: “…from the beginning, CIRRUS’s architecture was to be microprogrammed (essentially detailed register transfer sequences) which required a fast read-only memory as it underpinned overall performance.” The architecture of the sub-computer is given in Figure 5 of the report, consisting of an execution unit, a microcode store, a local sequence counter and output gate registers. Many machine code instructions would map directly onto a single micro- instruction, while some complex operations were hundreds of micro-instructions long. These microprograms are managed using a microprogram sequence counter in the sub-computer, which holds the address of the next micro-instruction in the control store to be executed by the sub-computer. The end result of all this is that the sub-computer, in its role as a control unit, generates gate control signals and timing signals to the main computer. The report details the design of a register store which could, through microprogramming, emulate a set of general registers, initially as a cost saving measure, but which proved valuable for context switching in timesharing. The report discusses time- 2 “The CIRRUS Computer: Its Design, History and Significance”, by Chris J. Barter sharing (aka parallel programming) as a solution to the problem of the mismatch in speed between CPU operations and input/output operations on low-cost input-output devices. Allen’s student, Penny, implemented timesharing8,9,15, testing his programs on a CIRRUS emulator he wrote for the WRE IBM 7090. Software development could be undertaken before the hardware was constructed. This was a very early example of hardware/software co-design and bootstrapping. Penny wrote this up as a Masters thesis8 [MSc, 1961], and it was later published with Pearcey as co-author. [ref. Penny and Pearcey9, 1962] In time-sharing, more than one program could be in memory at any one time, and when an I/O operation was executed on the running program, a scheduler would transfer control to another program, so keeping the CPU busy. John Sanderson11 wrote an assembler for a symbolic assembly code called A Code, and later a compiler, C Code, to run on the CIRRUS emulator, and wrote the microprograms which facilitated the execution of Penny’s timesharing system, written in a mix of A Code and microcode. CIRRUS was constructed at the University of Adelaide9,10, (with grants from the University, WRE and the Postmaster-General (PMG’s) Department) by postgraduate students and technical staff of the Electrical Engineering Department. Mainframe wiring was done at Philips Pty Ltd, Hendon, South Australia, to university specifications10. Construction was completed in 1962, and testing was mostly completed in that year. Other notable persons in the early years were Rob Potter, Igor Hawryskiewycz, his brother Peter Hawryskiewycz, and Werner Dorfl, through whose efforts it remained in University service for teaching and research use until late 1971, when CIRRUS was retired. More on Time-sharing, Multi-User and Memory Management in CIRRUS Sanderson11 wrote an assembler to convert symbolic machine instructions (A Code) into 32 bit machine instructions, and a microprogram to interpret the machine instruction as the execution of the microcode in the control store corresponding to that instruction. This allowed user programs to be written in A Code, assembled into machine instructions in main memory, and executed.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us