The Stored-Program Computer and Von Neumann Architecture

Turn this article into takeaways for your work.

Each assistant summarizes the article only for you and suggests best practices for your work.

The problem was concrete. The Army's Electronic Numerical Integrator and Computer, or ENIAC, could calculate at electronic speed. But its program was set by hand, with switches and cable connections.

A stored-program computer keeps its instructions in the same memory as its data. Changing the job means loading new contents instead of rewiring the machine. A report dated 30 June 1945 described the design in detail. It first ran a program in memory at Manchester on 21 June 1948 and still sits under almost every computer sold today. A team that had to rewire a giant machine for every problem wrote the fix down, and one name ended up on the paper. For the machine itself, see the history of ENIAC. For the wider field, see The History of Computers and the computer timeline.

Two terms first. "Von Neumann architecture" means a processor plus one memory that holds both orders and numbers. "Harvard architecture" means the opposite choice, with instructions and data kept apart. The first name carries a single person's name even though, as the credit dispute below shows, more than one person helped create the idea.

Timeline at a Glance

Year Milestone Why It Mattered
1801 Jacquard's loom weaves from patterns coded on punched cards A precursor: a machine steered by an external card program.
1834 Babbage conceives the Analytical Engine A programmable design, with its program on cards outside the store.
1936 Turing's paper is received 28 May and read 12 November Showed one machine could run the description of any other.
29 Jan 1944 Eckert writes a three-page memo describing a computer storing program and data in electronic memory Early written trace of the idea, inside the ENIAC team.
1944 Harvard's Mark I reads instructions from paper tape The rival path: program kept outside the machine.
30 Jun 1945 First Draft of a Report on the EDVAC The design in writing, under one name.
30 Sep 1945 Eckert and Mauchly issue their own EDVAC engineering report The engineers' answer, in 50 copies.
8 Jul-31 Aug 1946 The Moore School lectures run Carried the design to engineers abroad.
21 Jun 1948 The Manchester Baby runs its first program First stored program running electronically.
6 May 1949 EDSAC runs its first program The first stored-program machine used as a service.
1951-1952 The IAS machine is built and then dedicated A published design that other labs copied.
1965 Wilkes introduces memory caching The first patch for the memory gap.
1977-1978 Backus names the "von Neumann bottleneck" Turned the design's cost into a research agenda.

The Card and the Tape (1801-1936)

Programs sit outside the machine until Turing writes one as data

Picture a silk workshop in Lyon in 1801, where a loom reads a chain of punched cards and weaves flowers without a weaver lifting each thread. The Computer History Museum says Jacquard's loom "wove textiles following patterns coded on large punched cards" and calls it one of the earliest examples of automatic control. The story of these cards continues in Hollerith and the punched card.

Charles Babbage took the idea furthest before electronics. The Computer History Museum says that in 1834 he conceived the Analytical Engine, "a general-purpose programmable computing machine." In the Lovelace-translated description of it, Menabrea writes of "Operation cards" that direct the machine's actions and cards of the Variables, while the numbers live in a "store," and Lovelace's notes say the engine "weaves algebraical patterns" the way a Jacquard loom weaves flowers. Read that carefully. The orders and the numbers sat in different places, and the orders were on cards fed from outside. This was a precursor of programmable machines, not the stored-program concept. More in Babbage's Analytical Engine and Ada Lovelace's program.

The abstract step came from mathematics. Alan Turing's paper on computable numbers was received on 28 May 1936 and read on 12 November 1936, and in it he writes that it is possible to invent "a single machine which can be used to compute any computable sequence" when it is supplied with a tape carrying the description of another machine. That is the universal machine, a program treated as data on a tape. It was a thought experiment about logic, not a design for a calculator. The paper was about what could be computed, and Turing's later work on machine intelligence is covered in the history of the Turing test.

This era left a gap. The idea of a program as data existed on paper, and the engineered machines still took their orders from cards, tape or wiring.

For teams today: an idea can be sixty years old and still unbuilt. Ask whether your blocker is the idea or the technology to carry it.

The ENIAC Problem (1943-1945)

Rewiring for every job pushes engineers toward memory for orders

Walk into the Moore School in 1944 and you would see cables and switches covering a room-sized machine. The Army's history is plain about it: ENIAC was not an internally programmed machine, and the program was set by hand. Each new problem meant reconnecting cables and resetting switches. The Computer History Museum notes that setting up a new problem took many days. The project, its Army contract and its engineers are told in the history of ENIAC.

The turning point is a memo. On 29 January 1944, the historian Jeremy Norman records, Eckert wrote a three-page typewritten "Disclosure of a Magnetic Calculating Machine" that briefly described a theoretical electronic computer storing its program and data in an electronic memory. It was confidential and was unearthed decades later in the ENIAC patent trial. The IEEE Computer Society biography adds that while ENIAC was still classified, Eckert and Mauchly concluded instructions could be held in a modifiable internal memory. In October 1944 the Moore School obtained a contract supplement for EDVAC, planned as a stored-program machine with mercury delay lines, years before it could run.

John von Neumann arrived in the story late and left a large mark. The Computer History Museum says he learned about ENIAC from "a chance encounter with Herman Goldstine on a railway platform". Norman dates his first visit to ENIAC to September 1944. By the IEEE account of Mauchly, he became a Moore School consultant and helped the staff formalize the stored-program concept, and University of Pennsylvania Archives notes record a meeting on 14 March 1945. The Army's history also credits him with the idea of selecting ENIAC's code with switches so the cables could stay fixed for standard problems.

Meanwhile a different design was already running. At Harvard, Howard Aiken's machine, finished in 1944 as the Automatic Sequence Controlled Calculator and later called the Harvard Mark I, took its instructions from holes in a narrow paper tape. It kept the program outside the machine, as Jacquard had. Computer engineers later borrowed the Harvard name for designs that keep instructions and data in separate stores. The other wartime giant, Colossus, was likewise reconfigured with switches and plugs for the next job.

This era created the next problem. A design existed in conversation and in a few memos, but nobody had yet written the whole of it down for outsiders.

For teams today: the best ideas often live in a hallway conversation. If the design is not written down, whoever writes it first becomes its author.

The First Draft (1945-1946)

One name goes on a report that many people shaped

The turning point is a typed report. It is titled "First Draft of a Report on the EDVAC," dated 30 June 1945, issued under an Army Ordnance contract with the University of Pennsylvania's School of Electrical Engineering. The IEEE biography of Eckert says it was marked a draft and names only von Neumann as author. Norman reports that it was written between February and June 1945 and circulated privately to twenty-four people connected to the EDVAC project.

What does the text say? Von Neumann splits the machine into a central arithmetic part and a central control organ, and he states the key requirement for the control: a distinction must be made between the specific instructions that define a problem and the general control organs, and the former "must be stored in some way". Later in the report he writes that the orders the control receives come from the same place where the numerical material is stored, and that each minor cycle of that memory needs a distinguishing mark showing whether it holds a number or an order. One memory, two kinds of content. That is the design now called by his name. Its opening section lists how existing devices took their instructions: punched cards, teletype tape, magnetic steel wire or tape, motion picture film, or wiring.

The report also created a problem. Because it carried one name, Norman writes, the architecture came to be known as the von Neumann architecture, though he adds that the concept was most likely developed jointly, Eckert from the engineering side and von Neumann from the theoretical side. The IEEE account says von Neumann never disputed the label, which made it hard for Eckert and Mauchly to claim credit. On 30 September 1945 Eckert and Mauchly published their own EDVAC engineering report, in 50 copies, thanking "especially Dr. John von Neumann" for discussions of EDVAC plans. In 1946 they left the Moore School over the school's new patent policy and formed a partnership in June 1946, and EDVAC was not complete until 1951. Norman adds the legal twist: on 8 April 1947 a patent lawyer told them that the First Draft was a publication that barred their ENIAC patent, and Judge Larson's ruling invalidating the patent followed in 1973, as told in the history of ENIAC.

The design spread by teaching. The Moore School lectures ran from 8 July to 31 August 1946 under the title "Theory and Techniques for Design of Electronic Digital Computers." In May 1946 Leslie Comrie returned from the United States with a copy of the First Draft, and by October 1946 Maurice Wilkes was determined to build a stored-program computer at Cambridge. In June 1946 Burks, Goldstine and von Neumann drafted the "Preliminary Discussion of the Logical Design of an Electronic Computing Instrument", the Institute for Advanced Study's version of the design.

For teams today: whoever publishes the clearest write-up gets named in the label. Credit contributors in the document itself, while they are in the room.

The Race to Run (1946-1951)

Manchester, Cambridge and London get programs into memory

Imagine a room in Manchester in June 1948: a rack of tubes, a small cathode ray tube showing dots, and engineers watching a screen. The University of Manchester says Tom Kilburn's program, which found the highest factor of a number, ran successfully on 21 June 1948 on the machine built by F. C. Williams and Kilburn with help from Geoff Tootill. The university calls it the "world's first stored-program electronic digital computer." Its memory was a Williams tube, storing bits as charge on a cathode ray tube screen, and Williams described the first run this way: "A program was laboriously inserted and the start switch pressed."

Be careful with "first." The Baby was a test machine for the memory. The Army history says ENIAC was converted early in 1948 into an internally stored fixed-program machine, with function tables holding 600 two-digit instructions each, without giving a day. Each claim names a different thing, a first program running in a fully rewritable memory versus a converted older machine, so state which you mean.

In London, Turing had already put a design on paper. The ETHW entry on the ACE says he delivered the complete design of the Automatic Computing Engine on 19 February 1946, and that in May 1950 an NPL-built model first ran a program.

At Cambridge, Wilkes's team ran EDSAC's first program, which printed squares, on 6 May 1949, and the laboratory calls it "the first machine in the world to provide a computing service." The IEEE biography of Wilkes says EDSAC was operational in June 1949, so the date depends on whether you count the first run or regular service. EDSAC's memory circulated pulses in a delay tube, the family of memory also planned for EDVAC. The machine that started the conversation, EDVAC, was not complete until 1951.

Each of these is a stored-program computer, and each solved the same problem: a memory fast enough to hold orders as well as numbers. The next problem was the cost of rewriting the whole machine for every lab, which the Institute for Advanced Study set out to remove. The commercial branch is told in UNIVAC and the first commercial computers.

For teams today: "first" is a family of claims. Name the milestone you mean, whether it is first design, first run or first service, and your history will hold up.

The IAS Copies (1951-1955)

A design built to be shared becomes a family

The Institute for Advanced Study in Princeton is not where you would expect a computer. Its archive records that von Neumann had to obtain permission from the Institute to build something on its premises, because its commitment was to the theoretical. The Electronic Computer Project began in 1945 and, the archive says, culminated in January 1952 with a completed machine; calculations had been running since the summer of 1951, and it was formally dedicated in 1952. The Smithsonian dates the build to 1946-1951, so the end date depends on whether you count first calculations, completion or dedication. Julian Bigelow, Gerald Estrin, Willis Ware and James Pomerene were among the principal engineers, and Goldstine came to Princeton to help.

The stated goal, the Smithsonian says, was to make digital computer designs more practical and efficient, and the project's reports were written for others to follow. Copies followed. RAND's JOHNNIAC was, per the Computer History Museum, based on the stored-program computer developed at Princeton's IAS and completed in 1954. In Israel, the Weizmann Institute built WEIZAC from drawings of the IAS computer that Gerald and Thelma Estrin brought on 26 December 1953; it entered operation in October 1955. The classic design became a family of near-identical machines in different cities.

This era made the architecture a standard. The next layer of the story was software, which grew on top of the shared design; it continues in the history of programming languages and the history of operating systems. The wider sweep of machines is in generations of computers.

For teams today: a design published openly can spread faster than a patented one. Decide early whether you want a standard or a monopoly.

The Bottleneck Years (1960s-present)

Backus names the cost, and caches patch it

The turning point is a naming. John Backus gave the 1977 ACM Turing Award lecture, printed in the August 1978 issue of Communications of the ACM. He describes a von Neumann computer as a CPU, a store and a "tube" that can carry a single word between them, and proposes to call that tube the "von Neumann bottleneck." He adds that it is also "an intellectual bottleneck" that keeps programmers thinking one word at a time. Backus, whose name is tied to Fortran, urged functional languages as an alternative. The University of Texas computer scientist Keshav Pingali writes that the lecture boosted research into functional and non-von Neumann architectures, while arguing Backus was mistaken that imperative languages cannot handle parallel programming.

The hardware side had its own fix. In April 1965 Wilkes introduced memory caching, first called "slave memory", a small fast memory placed between the processor and the main store. Today's processors, built on integrated circuits with billions of transistors, lean on caches and usually keep separate instruction and data caches near the core, a hybrid of the two classic designs. The gap is still a topic: a 1994 University of Virginia report by Wulf and McKee popularized the phrase "memory wall," and Anton Ertl of TU Wien argues the gap is real but that cache improvements and software changes leave it unclear that more programs will hit that wall.

The architecture survived by being patched, not replaced. The leftover problem is moving data, not computing on it, which is why Backus's phrase still works as a description of a bottleneck rather than of a single machine.

For teams today: your best design will have a built-in limit. Name it early, and expect to spend decades routing around it.

Key People

Name Role Contribution Year
Joseph Marie Jacquard Weaver and inventor Loom steered by punched cards, a precursor 1801
Charles Babbage Mathematician and inventor Analytical Engine with cards outside the store 1834
Alan Turing Mathematician Universal machine paper; ACE design 1936; 1946
J. Presper Eckert Chief engineer, ENIAC 1944 memo; EDVAC engineering report 1944-1945
John Mauchly Physicist Co-author of the EDVAC engineering report 1945
John von Neumann Mathematician Author of the First Draft; led the IAS project 1945-1952
Herman Goldstine Army officer and mathematician Army liaison; helped draft the IAS Preliminary Discussion 1943-1946
F. C. Williams and Tom Kilburn Manchester engineers Williams tube memory; Baby and its first program 1947-1948
Maurice Wilkes Cambridge computer pioneer EDSAC; introduced memory caching 1949; 1965
John Backus IBM researcher Named the von Neumann bottleneck 1977-1978

Key Facts

The Pattern Behind the History

The same sequence repeats through this story. We call it the Write It Down, Copy It, Pay For It Pattern. It is our synthesis of the history, not a research finding.

  1. A pain point forces the idea. Rewiring ENIAC for every problem made storing orders worth the trouble.
  2. A written document turns talk into a design. The First Draft did what the hallway discussions could not.
  3. The writer gets the label. One name on the title page became the name of the architecture.
  4. Publishing makes it spread. The report, the lectures and the IAS drawings carried it to Cambridge, Manchester, a RAND lab and Rehovot.
  5. The standard brings a cost. One shared memory became the bottleneck Backus named.

What It Teaches Teams Today

  • Write the design down. The idea that is on paper first gets the credit.
  • Credit contributors in the document. A shared effort with one author name leaves a dispute behind.
  • Publish if you want a standard. The IAS design spread because it was shared.
  • Say which "first" you mean. Design, first run, first service and completion are different dates.
  • Name the limit of your design. Backus's bottleneck was a limit that was always there, and naming it set a research agenda.

The stored-program computer began as a fix for a rewiring chore and became the shape of the whole industry. Next time your team has a good idea, write it down with every contributor's name on it, and decide in advance who gets to carry it forward.

About the author

Victor Hoang

Victor Hoang

Co-Founder, Rework.com

Victor Hoang is Co-Founder and CMO of Rework. He spent 12+ years scaling B2B SaaS growth, building a lead engine that generated over 1 million leads and $10M+ in annual recurring revenue. Today he builds AI agents and MCP servers into Rework's products to empower customers across growth and operations. He writes about what actually works.