Pegasus: Difference between revisions
m →Technical details: Beter wording |
→Technical details: Fix some mis-statements |
||
| Line 11: | Line 11: | ||
As mentioned, the machine was built out of vacuum tubes; the [[general register]]s and [[main memory]] (termed 'computing store') were nickel [[delay line]]s (since the speed of sound in nickel did not vary so much with temperature as in the then-much-used mercury, it was easier to work with - in addition to being cheaper). The main memory lines each held one [[word]]; i.e. [[random access]] to it incurred no [[access time]] delay. | As mentioned, the machine was built out of vacuum tubes; the [[general register]]s and [[main memory]] (termed 'computing store') were nickel [[delay line]]s (since the speed of sound in nickel did not vary so much with temperature as in the then-much-used mercury, it was easier to work with - in addition to being cheaper). The main memory lines each held one [[word]]; i.e. [[random access]] to it incurred no [[access time]] delay. | ||
The machine also included a [[fixed-head disk|fixed-head]] [[drum]] (termed the 'main store'), to which single-word and 'block' multi-word transfers were available; [[instruction]]s, however, could only be [[fetch]]ed and [[execute]]d from the computing store. [[Sector interleaving|Interleaving]] was used on the drum, to prevent | The machine also included a [[fixed-head disk|fixed-head]] [[drum]] (termed the 'main store'), to which single-word and 'block' multi-word transfers under [[programmed I/O|program control]] were available; [[instruction]]s, however, could only be [[fetch]]ed and [[execute]]d from the computing store. [[Sector interleaving|Interleaving]] was used on the drum, to prevent full-rotation access times on access to sequential locations. | ||
Implementation made heavy use of standard [[hardware module]]s (called 'packages'), intended to ease maintenance. The modules, produced in a limited number of types, made use of [[printed circuit board]]s (both of these points on cost grounds). A Pegasus contained 444 modules, of only 20 types; the [[Central Processing Unit|CPU]] contained 314, of only 5 types. Much use was made of [[parity]], to enhance reliability; [[margin]]ing was also used. | Implementation made heavy use of standard [[hardware module]]s (called 'packages'), intended to ease maintenance. The modules, produced in a limited number of types, made use of [[printed circuit board]]s (both of these points on cost grounds). A Pegasus contained 444 modules, of only 20 types; the [[Central Processing Unit|CPU]] contained 314, of only 5 types. Much use was made of [[parity]], to enhance reliability; [[margin]]ing was also used. | ||
| Line 20: | Line 20: | ||
* integers used [[one's complement]] for negative numbers; | * integers used [[one's complement]] for negative numbers; | ||
* there was no [[hardware]] support for [[floating point]]; | * there was no [[hardware]] support for [[floating point]]; | ||
* there were 8 general registers ('sort of' 8; the 8th could not be written, and always read as 0); | * there were 8 general registers ('sort of' 8; the 8th could not be written, and always read as 0); could be used as [[index register]]s; | ||
* it had 19-bit instructions, stored two per word, with a stop/go bit in the extra bit; | * it had 19-bit instructions, stored two per word, with a stop/go bit in the extra bit; | ||
* it had 49 [[operation code]]s; | * it had 49 [[operation code]]s; | ||
| Line 31: | Line 31: | ||
''Note: There are some inconsistencies between sources as to a few of the details; take everything here with a grain of salt!'' | ''Note: There are some inconsistencies between sources as to a few of the details; take everything here with a grain of salt!'' | ||
The main memory and drum were both divided into 8-word 'blocks' (6 of these in the main memory); provision was made for the transfer of blocks back and forth between the two. (The programmer, for [[program]]s longer than 6 blocks, thus had to explicitly transfer blocks of the program between the main memory and the drum, as needed.) The drum was divided into a 4,096 word read/write area; a write-protected 512 word area which held a [[bootstrap]]; and another write-protected 512 word area for [[diagnostic]]s. | The main memory and drum were both divided into 8-word 'blocks' (6 of these in the main memory); provision was made for the transfer of complete blocks back and forth between the two. (The programmer, for [[program]]s longer than 6 blocks, thus had to explicitly transfer blocks of the program between the main memory and the drum, as needed.) The drum was divided into a 4,096-word read/write area; a write-protected 512-word area which held a [[bootstrap]]; and another write-protected 512-word area for [[diagnostic]]s. | ||
The Pegasus was apparently the first machine in the world to have a set of general registers (now a standard concept). The [[arithmetic logic unit|ALU]] of the Pegasus is named the "mill" in original Pegasus documentation - the same term as used by [[Charles Babbage|Babbage]] for this function! | The Pegasus was apparently the first machine in the world to have a set of general registers (now a standard concept). The [[arithmetic logic unit|ALU]] of the Pegasus is named the "mill" in original Pegasus documentation - the same term as used by [[Charles Babbage|Babbage]] for this function! | ||
Latest revision as of 09:14, 1 October 2026
The Pegasus was a fairly early computer produced by Ferranti. The basic concept was to produce a machine that was economical, reliable, and easy to repair when it failed (which happened a fair amount, as it was built out of vacuum tubes, and, lke all such, had only a moderate MTBF).
Work on what was to become the Pegasus actually started at Elliott Brothers in April 1952; after changes at Elliotts led to the departure of key personnel, some to eventually move to Ferranti, work started there (at a facility near London; their unit near Manchester was then focused on the higher-performance Mercury) in November, 1953.
The first machine was operational by October, 1955. A total of 40 were produced; the last one was completed in October, 1962.
The Pegasus was noted for the involvement of Christopher Strachey in the design; he, along with others, argued against the use of optimum programming for the machine (as used in the Elliott Brothers machine), on the grounds that it diverted programmers into worrying about very local optimizations, etc. He felt it was more important to produce a machine that was easy to use; a goal which it was agreed the Pegasus met.
Technical details
As mentioned, the machine was built out of vacuum tubes; the general registers and main memory (termed 'computing store') were nickel delay lines (since the speed of sound in nickel did not vary so much with temperature as in the then-much-used mercury, it was easier to work with - in addition to being cheaper). The main memory lines each held one word; i.e. random access to it incurred no access time delay.
The machine also included a fixed-head drum (termed the 'main store'), to which single-word and 'block' multi-word transfers under program control were available; instructions, however, could only be fetched and executed from the computing store. Interleaving was used on the drum, to prevent full-rotation access times on access to sequential locations.
Implementation made heavy use of standard hardware modules (called 'packages'), intended to ease maintenance. The modules, produced in a limited number of types, made use of printed circuit boards (both of these points on cost grounds). A Pegasus contained 444 modules, of only 20 types; the CPU contained 314, of only 5 types. Much use was made of parity, to enhance reliability; margining was also used.
It was a serial computer, with a clock rate of 3 μseconds/bit; its primary architectural attributes were:
- word length was 39 bits;
- integers used one's complement for negative numbers;
- there was no hardware support for floating point;
- there were 8 general registers ('sort of' 8; the 8th could not be written, and always read as 0); could be used as index registers;
- it had 19-bit instructions, stored two per word, with a stop/go bit in the extra bit;
- it had 49 operation codes;
- instructions contained a 6-bit op-code, a 3-bit register selection, a 3-bit index register number, and a 7-bit memory address or constant;
- the main memory was only 48 words in size; the drum held 5120 words;
- the basic instruction time was 315 μseconds;
- the drum rotated at 3720 RPM (roughly 16 milliseconds per rotation);
- each track was 128 words long.
Note: There are some inconsistencies between sources as to a few of the details; take everything here with a grain of salt!
The main memory and drum were both divided into 8-word 'blocks' (6 of these in the main memory); provision was made for the transfer of complete blocks back and forth between the two. (The programmer, for programs longer than 6 blocks, thus had to explicitly transfer blocks of the program between the main memory and the drum, as needed.) The drum was divided into a 4,096-word read/write area; a write-protected 512-word area which held a bootstrap; and another write-protected 512-word area for diagnostics.
The Pegasus was apparently the first machine in the world to have a set of general registers (now a standard concept). The ALU of the Pegasus is named the "mill" in original Pegasus documentation - the same term as used by Babbage for this function!
There were two models of the machine ('Pegasus 1' and 'Pegasus 2'); they differed principally in the size of the memories (particularly the drum), and in the richness of the available I/O device suite.
Further reading
- Hugh McGregor Ross, Pegasus: The Early Seminal Computer, Bright Pen, Sandy, 2012 - the author was one of the engineers who built Pegasus; also contains re-prints of papers about Pegasus, and information on descendants
- Simon H. Lavington, The Pegasus Story: A History of a Vintage British Computer, Science Museum, London, 2000
- Simon H. Lavington, Early Computing in Britain: Ferranti Ltd. and Government Funding, 1948-1958, Springer Nature, Cham, 2019 - covers the environment in which the Pegasus was produced in some detail
- Simon H. Lavington, Early British Computers: The Story of Vintage Computers and the People Who Built Them, Manchester University, Manchester, Digital Press, Bedford, 1980
- John F. Wilson, Ferranti: A History - Volume I: Building a Family Business, 1882–1975, Carnegie Publishing, Lancaster, 2001 - not much technical content, but does cover the organizational context
- John Hendry, Innovating for Failure: Government Policy and the Early British Computer Industry, MIT Press, Cambridge, 1990 - covers the background at Eliotts in Chapter 7; the Pegasus appears in Chapter 8
External links
- Ian Merry, The design of Pegasus -
- Ferranti Pegasus
- Pegasus Programming Manual - includes much general instruction on programming