Stored-program computer

A stored-program computer is one which stores program instructions in electronic memory.[1] Often the definition is extended with the requirement that the treatment of programs and data in memory be interchangeable or uniform.[2][3][4]

A computer with a von Neumann architecture stores program data and instruction data in the same memory; a computer with a Harvard architecture has separate memories for storing program and data.[5][6]

Stored-program computer is sometimes used as a synonym for von Neumann architecture,[7][8] however Professor Jack Copeland considers that it is "historically inappropriate, to refer to electronic stored-program digital computers as 'von Neumann machines'".[9] Hennessy and Patterson write that the early Harvard machines were regarded as "reactionary by the advocates of stored-program computers".[10]

The stored-program computer idea 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 as well.[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 machine as needed.

The University of Manchester's Small-Scale Experimental Machine (SSEM) is generally recognized as world's first electronic computer that ran a stored program—an event that occurred on June 21, 1948.[13][14] However the SSEM was not regarded as full-fledged computer, more a proof of concept that was built on to produce the Manchester Mark 1 computer. On May 6, 1949 the EDSAC in Cambridge ran its first program, and due to this event, it is considered "the first complete and fully operational regular electronic digital stored-program computer".[15] It is sometimes claimed that the IBM SSEC, operational in January 1948, was the first stored-program computer;[16] 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.[17]

References

  1. ^ Allison, Joanne (1997), Stored-program Computers, http://www.computer50.org/mark1/stored.html, retrieved 24 August 2011 
  2. ^ William F. Gilreath; Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. p. 24. ISBN 9781402074165. http://books.google.com/books?id=9DuC35atMu0C&pg=RA1-PA24. 
  3. ^ Edwin D. Reilly (2003). Milestones in computer science and information technology. Greenwood Publishing Group. p. 245. ISBN 9781573565219. http://books.google.com/books?id=JTYPKxug49IC&pg=PA245. 
  4. ^ Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. pp. 5. ISBN 0-201-43664-7. 
  5. ^ Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 148. ISBN 9781848822559. 
  6. ^ Mark Balch (2003). Complete digital design: a comprehensive guide to digital electronics and computer system architecture. McGraw-Hill Professional. p. 149. ISBN 9780071409278. http://books.google.com/books?id=uFSRT-OIxyoC&pg=PA149. Retrieved 18 May 2011. 
  7. ^ Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 153. ISBN 9781848822559. http://books.google.com/books?id=X1m1tNcfWQYC&pg=PA153. 
  8. ^ Ivor Grattan-Guinness (2003). Companion encyclopedia of the history and philosophy of the mathematical sciences. JHU Press. p. 705. ISBN 9780801873966. http://books.google.com/books?id=2hDvzITtfdAC&pg=PA705. 
  9. ^ Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC, http://www.alanturing.net/turing_archive/pages/Reference%20Articles/BriefHistofComp.html#ACE, retrieved 27 January 2010 
  10. ^ John L. Hennessy; David A. Patterson; David Goldberg (2003). Computer architecture: a quantitative approach. Morgan Kaufmann. p. 68. ISBN 9781558607248. http://books.google.com/books?id=XX69oNsazH4C&pg=PA68. 
  11. ^ B. Jack Copeland (2006). Colossus: the secrets of Bletchley Park's codebreaking computers. Oxford University Press. p. 104. ISBN 9780192840554. http://books.google.com/books?id=gfL4ky-TQOMC&pg=PA104. 
  12. ^ Christof Teuscher (2004). Alan Turing: life and legacy of a great thinker. Springer. p. 321–322. ISBN 9783540200208. http://books.google.com/books?id=0IIsoRqw9hgC&pg=PA321. 
  13. ^ Rául Rojas; Ulf Hashagen (2002). The first computers: history and architectures. MIT Press. p. 379. ISBN 9780262681377. http://books.google.com/books?id=nDWPW9uwZPAC&pg=PA379. 
  14. ^ Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 158. ISBN 9781848822559. 
  15. ^ Mike Hally (2005). Electronic brains: stories from the dawn of the computer age. National Academies Press. p. 96. ISBN 9780309096300. http://books.google.com/books?id=DKcqJJacxxwC&pg=PA96. 
  16. ^ Emerson W. Pugh (1995). Building IBM: shaping an industry and its technology. MIT Press. p. 136. ISBN 9780262161473. http://books.google.com/books?id=Bc8BGhSOawgC&pg=PA136. 
  17. ^ Olley, A. (2010). "Existence Precedes Essence - Meaning of the Stored-Program Concept". IFIP Advances in Information and Communication Technology 325: 169–178. doi:10.1007/978-3-642-15199-6_17.  draft edit