Stored-program computer

Last updated

A stored-program computer is a computer that stores program instructions in electronically, electromagnetically, or optically accessible memory. [1] This contrasts with systems that stored the program instructions with plugboards or similar mechanisms.

Contents

The definition is often extended with the requirement that the treatment of programs and data in memory be interchangeable or uniform. [2] [3] [4]

Description

In principle, stored-program computers have been designed with various architectural characteristics. A computer with a von Neumann architecture stores program data and instruction data in the same memory, while a computer with a Harvard architecture has separate memories for storing program and data. [5] [6] However, the term stored-program computer is sometimes used as a synonym for the von Neumann architecture. [7] [8] Jack Copeland considers that it is "historically inappropriate, to refer to electronic stored-program digital computers as 'von Neumann machines'". [9] Hennessy and Patterson wrote that the early Harvard machines were regarded as "reactionary by the advocates of stored-program computers". [10]

History

The concept of the stored-program computer can be traced back to the 1936 theoretical concept of a universal Turing machine. [11] Von Neumann was aware of this paper, and he impressed it on his collaborators. [12]

Many early computers, such as the Atanasoff–Berry computer, were not reprogrammable. They executed a single hardwired program. As there were no program instructions, no program storage was necessary. Other computers, though programmable, stored their programs on punched tape, which was physically fed into the system as needed, as was the case for the Zuse Z3 and the Harvard Mark I, or were only programmable by physical manipulation of switches and plugs, as was the case for the Colossus computer.

In 1936, Konrad Zuse anticipated in two patent applications that machine instructions could be stored in the same storage used for data. [13]

In 1948, the Manchester Baby, built at University of Manchester, [14] is generally recognized as world's first electronic computer that ran a stored program—an event on 21 June 1948. [15] [16] However the Baby was not regarded as a full-fledged computer, but more a proof of concept predecessor to the Manchester Mark 1 computer, which was first put to research work in April 1949. On 6 May 1949 the EDSAC in Cambridge ran its first program, making it another electronic digital stored-program computer. [17] It is sometimes claimed that the IBM SSEC, operational in January 1948, was the first stored-program computer; [18] this claim is controversial, not least because of the hierarchical memory system of the SSEC, and because some aspects of its operations, like access to relays or tape drives, were determined by plugging. [19] The first stored-program computer to be built in continental Europe was the MESM, completed in the Soviet Union in 1950. [20]

The first stored-program computers

Several computers could be considered the first stored-program computer, depending on the criteria. [3]

Telecommunication

The concept of using a stored-program computer for switching of telecommunication circuits is called stored program control (SPC). It was instrumental to the development of the first electronic switching systems by American Telephone and Telegraph (AT&T) in the Bell System, [31] a development that started in earnest by c. 1954 with initial concept designs by Erna Schneider Hoover at Bell Labs. The first of such systems was installed on a trial basis in Morris, Illinois in 1960. [32] The storage medium for the program instructions was the flying-spot store, a photographic plate read by an optical scanner that had a speed of about one microsecond access time. [33] For temporary data, the system used a barrier-grid electrostatic storage tube.

See also

Related Research Articles

<span class="mw-page-title-main">Atanasoff–Berry computer</span> Early electronic digital computing device

The Atanasoff–Berry computer (ABC) was the first automatic electronic digital computer. Limited by the technology of the day, and execution, the device has remained somewhat obscure. The ABC's priority is debated among historians of computer technology, because it was neither programmable, nor Turing-complete. Conventionally, the ABC would be considered the first electronic ALU – which is integrated into every modern processor's design.

<span class="mw-page-title-main">Central processing unit</span> Central computer component which executes instructions

A central processing unit (CPU), also called a central processor, main processor, or just processor, is the most important processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, logic, controlling, and input/output (I/O) operations. This role contrasts with that of external components, such as main memory and I/O circuitry, and specialized coprocessors such as graphics processing units (GPUs).

<span class="mw-page-title-main">History of computing hardware</span>

The history of computing hardware spans the developments from early devices used for simple calculations to today's complex computers, encompassing advancements in both analog and digital technology.

<span class="mw-page-title-main">ENIAC</span> First electronic general-purpose digital computer

ENIAC was the first programmable, electronic, general-purpose digital computer, completed in 1945. Other computers had some of these features, but ENIAC was the first to have them all. It was Turing-complete and able to solve "a large class of numerical problems" through reprogramming.

<span class="mw-page-title-main">EDVAC</span> Early computer

EDVAC was one of the earliest electronic computers. It was built by Moore School of Electrical Engineering, Pennsylvania. Along with ORDVAC, it was a successor to the ENIAC. Unlike ENIAC, it was binary rather than decimal, and was designed to be a stored-program computer.

<span class="mw-page-title-main">John Mauchly</span> American physicist and computer scientist (1907–1980)

John William Mauchly was an American physicist who, along with J. Presper Eckert, designed ENIAC, the first general-purpose electronic digital computer, as well as EDVAC, BINAC and UNIVAC I, the first commercial computer made in the United States.

<span class="mw-page-title-main">Z3 (computer)</span> First working programmable, fully automatic digital computer

The Z3 was a German electromechanical computer designed by Konrad Zuse in 1938, and completed in 1941. It was the world's first working programmable, fully automatic digital computer. The Z3 was built with 2,600 relays, implementing a 22-bit word length that operated at a clock frequency of about 5–10 Hz. Program code was stored on punched film. Initial values were entered manually.

<span class="mw-page-title-main">Harvard Mark I</span> Early American electromechanical computer (1944)

The Harvard Mark I, or IBM Automatic Sequence Controlled Calculator (ASCC), was one of the earliest general-purpose electromechanical computers used in the war effort during the last part of World War II.

von Neumann architecture Computer architecture where code and data share a common bus

The von Neumann architecture—also known as the von Neumann model or Princeton architecture—is a computer architecture based on the First Draft of a Report on the EDVAC, written by John von Neumann in 1945, describing designs discussed with John Mauchly, J. Presper Eckert at University of Pennsylvania's Moore School of Electrical Engineering. The document describes a design architecture for an electronic digital computer with these components:

<span class="mw-page-title-main">Manchester Baby</span> First electronic stored-program computer, 1948

The Manchester Baby, also called the Small-Scale Experimental Machine (SSEM), was the first electronic stored-program computer. It was built at the University of Manchester by Frederic C. Williams, Tom Kilburn, and Geoff Tootill, and ran its first program on 21 June 1948.

<span class="mw-page-title-main">Herman Goldstine</span> American mathematician (1913–2004)

Herman Heine Goldstine was a mathematician and computer scientist, who worked as the director of the IAS machine at the Institute for Advanced Study and helped to develop ENIAC, the first of the modern electronic digital computers. He subsequently worked for many years at IBM as an IBM Fellow, the company's most prestigious technical position.

The First Draft of a Report on the EDVAC is an incomplete 101-page document written by John von Neumann and distributed on June 30, 1945 by Herman Goldstine, security officer on the classified ENIAC project. It contains the first published description of the logical design of a computer using the stored-program concept, which has come to be known as the von Neumann architecture; the name has become controversial due to von Neumann's failure to name other contributors.

<span class="mw-page-title-main">IBM SSEC</span> IBM Selective Sequence Electronic Calculator

The IBM Selective Sequence Electronic Calculator (SSEC) was an electromechanical computer built by IBM. Its design was started in late 1944 and it operated from January 1948 to August 1952. It had many of the features of a stored-program computer, and was the first operational machine able to treat its instructions as data, but it was not fully electronic. Although the SSEC proved useful for several high-profile applications, it soon became obsolete. As the last large electromechanical computer ever built, its greatest success was the publicity it provided for IBM.

<span class="mw-page-title-main">History of computer science</span>

The history of computer science began long before the modern discipline of computer science, usually appearing in forms like mathematics or physics. Developments in previous centuries alluded to the discipline that we now know as computer science. This progression, from mechanical inventions and mathematical theories towards modern computer concepts and machines, led to the development of a major academic field, massive technological advancement across the Western world, and the basis of a massive worldwide trade and culture.

Minimal instruction set computer (MISC) is a central processing unit (CPU) architecture, usually in the form of a microprocessor, with a very small number of basic operations and corresponding opcodes, together forming an instruction set. Such sets are commonly stack-based rather than register-based to reduce the size of operand specifiers.

Theory and Techniques for Design of Electronic Digital Computers was a course in the construction of electronic digital computers held at the University of Pennsylvania's Moore School of Electrical Engineering between July 8, 1946, and August 30, 1946, and was the first time any computer topics had ever been taught to an assemblage of people. The course disseminated the ideas developed for the EDVAC and initiated an explosion of computer construction activity in the United States and internationally, especially in the United Kingdom.

<span class="mw-page-title-main">Computer</span> Machine for processing data and performing calculations

A computer is a machine that can be programmed to automatically carry out sequences of arithmetic or logical operations (computation). Modern digital electronic computers can perform generic sets of operations known as programs. These programs enable computers to perform a wide range of tasks. The term computer system may refer to a nominally complete computer that includes the hardware, operating system, software, and peripheral equipment needed and used for full operation; or to a group of computers that are linked and function together, such as a computer network or computer cluster.

<span class="mw-page-title-main">Manchester Mark 1</span> British stored-program computer, 1949

The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester, England from the Manchester Baby. Work began in August 1948, and the first version was operational by April 1949; a program written to search for Mersenne primes ran error-free for nine hours on the night of 16/17 June 1949.

<span class="mw-page-title-main">Computer architecture</span> Set of rules describing computer system

In computer science and computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the description may include the instruction set architecture design, microarchitecture design, logic design, and implementation.

<span class="mw-page-title-main">Vacuum-tube computer</span> Earliest electronic computer design

A vacuum-tube computer, now termed a first-generation computer, is a computer that uses vacuum tubes for logic circuitry. While the history of mechanical aids to computation goes back centuries, if not millennia, the history of vacuum tube computers is confined to the middle of the 20th century. Lee De Forest invented the triode in 1906. The first example of using vacuum tubes for computation, the Atanasoff–Berry computer, was demonstrated in 1939. Vacuum-tube computers were initially one-of-a-kind designs, but commercial models were introduced in the 1950s and sold in volumes ranging from single digits to thousands of units. By the early 1960s vacuum tube computers were obsolete, superseded by second-generation transistorized computers.

References

  1. Allison, Joanne (1997), Stored-program Computers, archived from the original on 27 September 2011, retrieved 24 August 2011
  2. William F. Gilreath; Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. p. 24. ISBN   978-1-4020-7416-5.
  3. 1 2 Edwin D. Reilly (2003). Milestones in computer science and information technology . Greenwood Publishing Group. p.  245. ISBN   978-1-57356-521-9.
  4. Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. p. 5. ISBN   0-201-43664-7.
  5. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 148. ISBN   978-1-84882-255-9.
  6. Mark Balch (2003). Complete digital design: a comprehensive guide to digital electronics and computer system architecture. McGraw-Hill Professional. p. 149. ISBN   978-0-07-140927-8 . Retrieved 18 May 2011.
  7. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 153. ISBN   978-1-84882-255-9.
  8. Ivor Grattan-Guinness (2003). Companion encyclopedia of the history and philosophy of the mathematical sciences. JHU Press. p. 705. ISBN   978-0-8018-7396-6.
  9. Copeland, Jack (2000). "A Brief History of Computing". ENIAC and EDVAC. Retrieved 27 January 2010.
  10. John L. Hennessy; David A. Patterson; David Goldberg (2003). Computer architecture: a quantitative approach . Morgan Kaufmann. p.  68. ISBN   978-1-55860-724-8.
  11. B. Jack Copeland (2006). Colossus: the secrets of Bletchley Park's codebreaking computers. Oxford University Press. p. 104. ISBN   978-0-19-284055-4.
  12. Christof Teuscher (2004). Alan Turing: life and legacy of a great thinker. Springer. p. 321322. ISBN   978-3-540-20020-8.
  13. Faber, Susanne (2000), Konrad Zuses Bemühungen um die Patentanmeldung der Z3 (in German)
  14. Williams, Frederic; Kilburn, Tom (1948). "Electronic Digital Computers". Nature. 162 (4117): 487. Bibcode:1948Natur.162..487W. doi: 10.1038/162487a0 . S2CID   4110351.
  15. Rául Rojas; Ulf Hashagen (2002). The first computers: history and architectures. MIT Press. p. 379. ISBN   978-0-262-68137-7.
  16. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 158. ISBN   978-1-84882-255-9.
  17. Mike Hally (2005). Electronic brains: stories from the dawn of the computer age. National Academies Press. p. 96. ISBN   978-0-309-09630-0.
  18. Emerson W. Pugh (1995). Building IBM: shaping an industry and its technology. MIT Press. p. 136. ISBN   978-0-262-16147-3.
  19. Olley, A. (2010). "Existence Precedes Essence - Meaning of the Stored-Program Concept" (PDF). History of Computing. Learning from the Past. IFIP WG 9.7 International Conference, HC 2010. IFIP Advances in Information and Communication Technology. Vol. 325. pp. 169–178. doi: 10.1007/978-3-642-15199-6_17 . ISBN   978-3-642-15198-9.
  20. Graham, Loren R. (1993). Science in Russia and the Soviet Union: A Short History. Cambridge University Press. p. 256. ISBN   9780521287890.
  21. Emerson W. Pugh; Lyle R. Johnson; John H. Palmer (1991). IBM's 360 and Early 370 Systems . MIT Press. p.  15. ISBN   978-0-262-51720-1.
  22. Thomas Haigh; Mark Priestley; Crispen Rope (2016). ENIAC in Action:Making and Remaking the Modern Computer. MIT Press. pp. 153, 157, 164, 174, 194. ISBN   978-0-262-03398-5.
  23. Haigh, Thomas (2014). Engineering "The Miracle of the ENIAC": Implementing the Modern Code Paradigm (PDF).
  24. Bruderer, Herbert (4 January 2021). Milestones in Analog and Digital Computing. Springer. ISBN   9783030409746.
  25. Campbell-Kelly, Martin (April 1982). "The Development of Computer Programming in Britain (1945 to 1955)". IEEE Annals of the History of Computing. 4 (2): 121–139. doi:10.1109/MAHC.1982.10016. S2CID   14861159.
  26. Lavington, Simon, ed. (2012). Alan Turing and his Contemporaries: Building the World's First Computers. London: British Computer Society. p. 61. ISBN   9781906124908.
  27. Johnson, Roger (April 2008). "School of Computer Science & Information Systems: A Short History" (PDF). Birkbeck College. University of London. Retrieved 23 July 2017.
  28. Hally, Mike (2005). Electronic Brains (First ed.). Granta. pp. 40–41. ISBN   978-1862076631.
  29. Kilburn, T; Grimsdale, R L; Webb, D C (April 1956). "A transistor digital computer with a magnetic drum store". Proceedings of the IEE - Part B: Radio and Electronic Engineering. 103 (35). Cambridge University Press: 390–406. doi:10.1049/pi-b-1.1956.0079. ISSN   2054-0434.
  30. Grimsdale, R L (Autumn 1995). "The Transition from Valves to Computers". Resurrection (13). Computer Conservation Society. ISSN   0958-7403.
  31. Carbaugh, D.H.; Marselos, N.L. (1983). "Switching System Software". In McDonald, J. C. (ed.). Fundamentals of Digital Switching Systems. Plenum Press. ISBN   0-306-41224-1.
  32. Joel, A. E. (October 1958). "An Experimental Electronic Switching System" (PDF). Bell Laboratories Record . 36 (10): 359–363. Retrieved 13 October 2022.
  33. "Electronic Central Office". Long Lines. Vol. 40, no. 5. December 1960. p. 16.