Source Summary: von Neumann 1945 — EDVAC Report

Full title: First Draft of a Report on the EDVAC
Authors: John von Neumann
Affiliation: Institute for Advanced Study, Princeton / Moore School of Electrical Engineering
Venue: Technical report, Moore School of Electrical Engineering, University of Pennsylvania (June 30, 1945)
PDF: papers/neumann-1945-first-draft-of-a-report.pdf
Note: PDF is a scanned document; content based on the report itself.


Contributions

  1. Stored-program architecture — program instructions stored in the same memory as data; the CPU reads and executes them sequentially. The foundational design of every digital computer since.
  2. Memory hierarchy — distinction between fast working memory (registers) and slower main memory; delayed access acceptable given the speed advantage.
  3. Serial execution with conditional branching — one instruction at a time, with branch instructions enabling loops and conditionals → Turing-complete sequential computation.
  4. Arithmetic logic unit (ALU) — dedicated circuitry for arithmetic and logic operations, separate from control.
  5. Binary representation — advocated binary (base 2) over decimal for reliability and simplicity of circuit design.

The Architecture

Von Neumann describes five logical organs that together constitute a complete computing machine:

1. Central Arithmetic (CA)

The unit that performs arithmetic (add, subtract, multiply, divide) and logical operations. Operates on numbers stored in registers. In modern terminology: the ALU + registers.

2. Central Control (CC)

Interprets instruction codes and coordinates the actions of all other parts. Fetches the next instruction, decodes it, triggers the appropriate operation. The modern CPU control unit + instruction pointer.

3. Memory (M)

Stores both data and instructions in the same address space — the defining feature of the von Neumann architecture. EDVAC used a mercury delay line memory of ~1000 words of 32 binary digits each.

4. Input (I)

Reads data from external media (punched cards, teletype) into memory.

5. Output (R)

Writes data from memory to external media.

Input → Memory ↔ CA (arithmetic)
          ↕
      CC (control) → Output

The stored-program concept

Instructions are encoded as numbers and stored in memory, just like data. The control unit reads an instruction from a memory address, executes it, and increments the instruction pointer to the next address. A branch instruction can set the pointer to any address, enabling loops and conditionals.

This makes a computer universally programmable without rewiring — exactly the hardware realization of Turing’s Universal Turing Machine.

Binary arithmetic

Von Neumann argued for binary (not decimal) representation because:

  • Electronic components are naturally bistable (on/off, high/low voltage)
  • Binary arithmetic circuits are simpler than decimal
  • Error detection is straightforward with binary

Historical Context

The EDVAC (Electronic Discrete Variable Automatic Computer) was being designed at the Moore School as the successor to ENIAC. The report was written by von Neumann based on discussions with J. Presper Eckert, John Mauchly, and the Moore School team.

Controversy: The report was circulated without listing co-authors, which created priority disputes. Eckert and Mauchly were developing similar ideas; the report gave von Neumann’s name to the architecture.

Influence: The “von Neumann architecture” became the standard design for:

  • EDVAC (1949)
  • Manchester Mark 1 (1949) — first stored-program computer to run a program
  • Every subsequent general-purpose computer

Connection to Turing

Turing’s 1936 Universal Turing Machine proved that a single machine can simulate any other machine if given a description of it on the tape. Von Neumann’s stored-program architecture is the physical realization: the “description” (program) lives in memory alongside the data, and the CPU is the universal interpreter.


Key References

  • Turing 1936 — Universal Turing Machine (theoretical precedent)
  • ENIAC 1945 — predecessor (hard-wired, not stored-program)
  • Shannon 1938 — Boolean circuit design (hardware foundation)