English Electric KDF9

Last updated

English Electric KDF9
Developer English Electric
Manufacturer English Electric
Generation2
Release date1964;60 years ago (1964)
Units shipped29
Operating system Timesharing Director, Eldon 2, EGDON, COTAN
CPU Transformer-coupled diode–transistor logic, built from germanium diodes, about 20,000 transistors, and about 2,000 toroid pulse transformers) @ 1 MHz
Memory32K words of 48-bit core storage (192K bytes)
Mass5.2 short tons (4.7 t)

KDF9 was an early British 48-bit computer designed and built by English Electric (which in 1968 was merged into International Computers Limited (ICL)). The first machine came into service in 1964 and the last of 29 machines was decommissioned in 1980 at the National Physical Laboratory. The KDF9 was designed for, and used almost entirely in, the mathematical and scientific processing fields  in 1967, nine were in use in UK universities and technical colleges. [1] The KDF8, developed in parallel, was aimed at commercial processing workloads.

Contents

The KDF9 was an early example of a machine that directly supported multiprogramming, using offsets into its core memory to separate the programs into distinct virtual address spaces. Several operating systems were developed for the platform, including some that provided fully interactive use through PDP-8 machines acting as smart terminal servers. A number of compilers were available, notably both checkout and globally optimizing compilers for Algol 60.

Architecture

The logic circuits of the KDF9 were entirely solid-state. The KDF9 used transformer-coupled diode–transistor logic, built from germanium diodes, about 20,000 transistors, and about 2,000 toroid pulse transformers. [2] They ran on a 1 MHz clock that delivered two pulses of 250 ns separated by 500 ns, in each clock cycle. The maximum configuration incorporated 32K words of 48-bit core storage (192K bytes) with a cycle time of 6 microseconds. Each word could hold a single 48-bit integer or floating-point number, two 24-bit integer or floating-point numbers, six 8-bit instruction syllables, or eight 6-bit characters. [3] There was also provision for efficient handling of double-word (96-bit) numbers in both integer and floating point formats. However, there was no facility for byte or character addressing, so that non-numerical work suffered by comparison. Its standard character set was a version of the Friden Flexowriter paper tape code that was oriented to Algol 60, and included unusual characters such as the Algol subscript 10. However, each other I/O device type implemented its own subset of that. Not every character that could be read from paper tape could be successfully printed, for example.

Registers

The CPU architecture featured three register sets. The Nest was a 16-deep pushdown stack of arithmetic registers, The SJNS (Subroutine Jump Nesting Store) was a similar stack of return addresses. The Q Store was a set of 16 index registers, each of 48 bits divided into Counter (C), Increment (I) and Modifier (M) parts of 16 bits each. Flags on a memory-reference instruction specified whether the address should be modified by the M part of a Q Store, and, if so, whether the C part should be decremented by 1 and the M part incremented by the contents of the I part. This made the coding of counting loops very efficient. Three additional Nest levels and one additional SJNS level were reserved to Director, the Operating System, allowing short-path interrupts to be handled without explicit register saving and restoring. As a result, the interrupt overhead was only 3 clock cycles.

Instruction set

Instructions were of 1, 2 or 3 syllables. Most arithmetic took place at the top of the Nest and used zero-address , 1-syllable instructions, although address arithmetic and index updating were handled separately in the Q store. Q Store handling, and some memory reference instructions used 2 syllables. Memory reference instructions with a 16-bit address offset, most jump instructions, and 16-bit literal load instructions, all used 3 syllables.

Dense instruction coding, and intensive use of the register sets, meant that relatively few store accesses were needed for common scientific codes, such as scalar product and polynomial inner loops. This did much to offset the relatively slow core cycle time, giving the KDF9 about a third of the speed of its much more famous, but 8 times more expensive and much less commercially successful contemporary, the Manchester/Ferranti Atlas Computer.

Multiprogramming (timesharing)

The KDF9 was one of the earliest fully hardware-secured multiprogramming systems. Up to four programs could be run at once under the control of its elegantly simple operating system, the Timesharing Director, each being confined to its own core area by BA (Base Address) and NOL (Number of Locations) registers. Each program had its own sets of stack and Q store registers, which were activated when that program was dispatched, so that context switching was very efficient.

Each program could drive hardware I/O devices directly, but was limited by hardware checks to those that the Director had allocated to it. Any attempt to use an unallocated device caused an error interrupt. A similar interrupt resulted from overfilling (or over-emptying) the Nest or SJNS, or attempting to access storage at an address above that given in the NOL register. Somewhat different was the Lock-Out interrupt, which resulted from trying to access an area of store that was currently being used by an I/O device, so that there was hardware mutual exclusion of access to DMA buffers. When a program blocked on a Lock-Out, or by voluntarily waiting for an I/O transfer to terminate, it was interrupted and Director switched to the program of highest priority that was not itself blocked. When a Lock-Out cleared, or an awaited transfer terminated, and the responsible program was of higher priority than the program currently running, the I/O Control (IOC) unit interrupted to allow an immediate context switch. IOC also made provision to avoid priority inversion, in which a program of high priority waits for a device made busy by a program of lower priority, requesting a distinct interrupt in that case.

Later operating systems, including Eldon 2 [4] at the University of Leeds, and COTAN, developed by UKAEA Culham Laboratories with the collaboration of Glasgow University, were fully interactive multi-access systems, with PDP-8 front ends to handle the terminals.

The Kidsgrove and Whetstone Algol 60 compilers were among the first of their class. The Kidsgrove compiler stressed optimization; the Whetstone compiler produced an interpretive object code aimed at debugging. It was by instrumenting the latter that Brian Wichmann obtained the statistics on program behaviour that led to the Whetstone benchmark for scientific computation, [5] which inspired in turn the Dhrystone benchmark for non-numerical workloads. [6]

Reminiscence

Machine code orders were written in a form of octal officially named syllabic octal [7] (also known as 'slob-octal' or 'slob' notation, [8] [9] ). It represented 8 bits with three octal digits but the first digit represented only the two most-significant bits, whilst the others the remaining two groups of three bits each. Although the word 'byte' had been coined by the designers of the IBM 7030 Stretch for a group of eight bits, it was not yet well known, and English Electric used the word 'syllable' for what is now called a byte.

Within English Electric, its predecessor, DEUCE, had a well-used matrix scheme based on GIP (General Interpretive Programme). The unreliability of valve machines led to the inclusion of a sum-check mechanism to detect errors in matrix operations. [nb 1] The scheme used block floating-point using fixed-point arithmetic hardware, in which the sum-checks were precise. However, when the corresponding scheme was implemented on KDF9, it used floating point, a new concept that had only limited mathematical analysis. It quickly became clear that sum checks were no longer precise and a project was established in an attempt to provide a usable check. (In floating point (A + B) + C is not necessarily the same as A + (B + C) i.e. the + operation is not associative.) Before long, however, it was recognized that error rates with transistor machines was not an issue; they either worked correctly or didn’t work at all. Consequently, the idea of sum checks was abandoned. The initial matrix package proved a very useful system testing tool as it was able to generate lengthy performance checks well before more formal test packages which were subsequently developed.

There is a legend that the KDF9 was developed as project KD9 (Kidsgrove Development 9) and that the 'F' in its designation was contributed by the then Chairman after a long and tedious discussion on what to name the machine at launch—"I don’t care if you call it the F—". The truth is more mundane: the name was chosen essentially at random by a marketing manager. [10] (See also KDF8 for the parallel development and use of a commercially oriented computer.)

The EGDON operating system was so named because one was going to UKAEA Winfrith: in Thomas Hardy's book The Return of the Native Winfrith Heath is called Egdon Heath. EGDON Fortran was called EGTRAN. [10] Eldon was so named because Leeds University's computer was located in a converted Eldon chapel.

Physical

The machine weighed more than 10,300 pounds (5.2 short tons; 4.7 t). Control desk with interruption typewriter 300 lb (136 kg), main store and input/output control unit 3,500 (1,587 kg), arithmetic and main control unit 3,500 (1,587 kg), power supply unit 3,000 (1,360 kg). [11]

See also

Notes

  1. The sum check equally well guarded against programming errors, in the event that some or all of a matrix was inadvertently overwritten.

Related Research Articles

A complex instruction set computer is a computer architecture in which single instructions can execute several low-level operations or are capable of multi-step operations or addressing modes within single instructions. The term was retroactively coined in contrast to reduced instruction set computer (RISC) and has therefore become something of an umbrella term for everything that is not RISC, where the typical differentiating characteristic is that most RISC designs use uniform instruction length for almost all instructions, and employ strictly separate load and store instructions.

Dhrystone is a synthetic computing benchmark program developed in 1984 by Reinhold P. Weicker intended to be representative of system (integer) programming. The Dhrystone grew to become representative of general processor (CPU) performance. The name "Dhrystone" is a pun on a different benchmark algorithm called Whetstone, which emphasizes floating point performance.

<span class="mw-page-title-main">PDP-8</span> Minicomputer product line

The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering LINC but has a smaller instruction set, which is an expanded version of the PDP-5 instruction set. Similar machines from DEC are the PDP-12 which is a modernized version of the PDP-8 and LINC concepts, and the PDP-14 industrial controller system.

<span class="mw-page-title-main">IBM 1620</span> Small IBM scientific computer released in 1959

The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive scientific computer. After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as the CPU of the IBM 1710 and IBM 1720 Industrial Process Control Systems.

<span class="mw-page-title-main">UNIVAC 1103</span> Computer

The UNIVAC 1103 or ERA 1103, a successor to the UNIVAC 1101, was a computer system designed by Engineering Research Associates and built by the Remington Rand corporation in October 1953. It was the first computer for which Seymour Cray was credited with design work.

The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense syllables. The first machine in the family was the B5000 in 1961, which was optimized for compiling ALGOL 60 programs extremely well, using single-pass compilers. The B5000 evolved into the B5500 and the B5700. Subsequent major redesigns include the B6500/B6700 line and its successors, as well as the separate B8500 line.

In computer science, computer engineering and programming language implementations, a stack machine is a computer processor or a virtual machine in which the primary interaction is moving short-lived temporary values to and from a push down stack. In the case of a hardware processor, a hardware stack is used. The use of a stack significantly reduces the required number of processor registers. Stack machines extend push-down automata with additional load/store operations or multiple stacks and hence are Turing-complete.

Edinburgh IMP is a development of Atlas Autocode, initially developed around 1966-1969 at the University of Edinburgh, Scotland. It is a general-purpose programming language which was used heavily for systems programming.

<span class="mw-page-title-main">English Electric DEUCE</span>

The DEUCE was one of the earliest British commercially available computers, built by English Electric from 1955. It was the production version of the Pilot ACE, itself a cut-down version of Alan Turing's ACE.

The Whetstone benchmark is a synthetic benchmark for evaluating the performance of computers. It was first written in Algol 60 in 1972 at the Technical Support Unit of the Department of Trade and Industry in the United Kingdom. It was derived from statistics on program behaviour gathered on the KDF9 computer at NPL National Physical Laboratory, using a modified version of its Whetstone ALGOL 60 compiler. The workload on the machine was represented as a set of frequencies of execution of the 124 instructions of the Whetstone Code. The Whetstone Compiler was built at the Atomic Power Division of the English Electric Company in Whetstone, Leicestershire, England, hence its name. Dr. B.A. Wichman at NPL produced a set of 42 simple ALGOL 60 statements, which in a suitable combination matched the execution statistics.

The Burroughs B2500 through Burroughs B4900 was a series of mainframe computers developed and manufactured by Burroughs Corporation in Pasadena, California, United States, from 1966 to 1991. They were aimed at the business world with an instruction set optimized for the COBOL programming language. They were also known as Burroughs Medium Systems, by contrast with the Burroughs Large Systems and Burroughs Small Systems.

The UNIVAC 418 was a transistorized, 18-bit word magnetic-core memory machine made by Sperry Univac. The name came from its 4-microsecond memory cycle time and 18-bit word. The assembly language for this class of computers was TRIM III and ART418.

KDF8 was an early British computer built by English Electric as a version of the RCA 501. By producing a software-compatible system, the intention was to reduce time and cost to develop software. However, the lengthy process of developing manufacturing capability meant that the system was soon outpaced by systems from other vendors. Only a few systems were sold during its 5 years of production. Due to the consolidation of the British computer industry, English Electric's computer division became one of the components of what would become ICL.

<span class="mw-page-title-main">SDS 930</span> Commercial 24-bit computer using bipolar junction transistors sold in the 1960s

The SDS 930 was a commercial 24-bit computer using bipolar junction transistors sold by Scientific Data Systems. It was announced in December 1963, with first installations in June 1964.

<span class="mw-page-title-main">Elliott 803</span>

The Elliott 803 is a small, medium-speed transistor digital computer which was manufactured by the British company Elliott Brothers in the 1960s. About 211 were built.

The IBM System/360 architecture is the model independent architecture for the entire S/360 line of mainframe computers, including but not limited to the instruction set architecture. The elements of the architecture are documented in the IBM System/360 Principles of Operation and the IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information manuals.

<span class="mw-page-title-main">MikroSim</span>

MikroSim is an educational software computer program for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the Microsoft Windows operating system. Devices like miniaturized calculators, microcontroller, microprocessors, and computer can be explained on custom-developed instruction code on a register transfer level controlled by sequences of micro instructions (microcode). Based on this it is possible to develop an instruction set to control a virtual application board at higher level of abstraction.

<span class="mw-page-title-main">SDS 9 Series</span> Backward compatible line of transistorized computers

The SDS 9 Series computers are a backward compatible line of transistorized computers produced by Scientific Data Systems in the 1960s and 1970s. This line includes the SDS 910, SDS 920, SDS 925, SDS 930, SDS 940, and the SDS 945. The SDS 9300 is an extension of the 9xx architecture. The 1965 SDS 92 is an incompatible 12-bit system built using monolithic integrated circuits.

In computing, a syllable is a name for a platform-dependent unit of information storage. Depending on the target hardware, various bit widths are associated with it. Commonly used in the 1960s and 1970s, the term has mostly fallen into disuse in favour of terms like byte or word.

Syllabic octal and split octal are two similar notations for 8-bit and 16-bit octal numbers, respectively, used in some historical contexts.

References

  1. Roberts, Goronwy (1967-03-06). "Computers". Parliamentary Debates (Hansard) . HC. Retrieved 2017-07-08.
  2. "The KDF9 Computer - 30 Years On"
  3. English Electric KDF9: Very high speed data processing system for Commerce, Industry, Science (PDF) (Product flyer). English Electric. c. 1961. Publication No. DP/103. 096320WP/RP0961. Archived (PDF) from the original on 2020-07-27. Retrieved 2020-07-27.
  4. David Holdsworth (Winter 2009–10). "KDF9 Time Sharing: Eldon 2 is not EGDON!". Computer RESURRECTION  issue 49. Computer Conservation Society . Retrieved 2010-10-03.
  5. Curnow, H. J. and Wichman, B. A. "A Synthetic Benchmark" Computer Journal, Volume 19, Issue 1, February 1976., pp. 43–49.
  6. Weiss, Alan. "Dhrystone Benchmark: History, Analysis, "Scores" and Recommendations" (PDF).
  7. Director - Manual (PDF) (Flowchart). English Electric. c. 1960s. Archived (PDF) from the original on 2020-07-27. Retrieved 2020-07-27. (NB. Mentions the term "syllabic octal".)
  8. Beard, Bob (Autumn 1997) [1996-10-01]. "The KDF9 Computer — 30 Years On" (PDF). Resurrection - The Bulletin of the Computer Conservation Society. No. 18. Computer Conservation Society (CCS). pp. 7–15 [9, 11]. ISSN   0958-7403. Archived (PDF) from the original on 2020-07-27. Retrieved 2020-07-27. (NB. This is an edited version of a talk given to North West Group of the Society at the Museum of Science and Industry, Manchester, UK on 1996-10-01. It mentions the term "slob" and "slob-octal" as equivalent to "syllabic octal".)
  9. "Architecture of the English Electric KDF9 computer" (PDF). Version 1. Computer Conservation Society (CCS). September 2009. CCS-N4X2. Archived (PDF) from the original on 2020-04-04. Retrieved 2020-07-27. (NB. Refers to Beard's 1997 article.)
  10. 1 2 "(re)Introducing the KDF9". www.findlayw.plus.com. Retrieved 2020-12-27.
  11. "English Electric | Selling the Computer Revolution | Computer History Museum". www.computerhistory.org. p. 27.