esc
Type to search, or take a leap:
1945 AD (EDVAC report)·Computing·verified

Stored-program computer

A computer whose instructions live in the same read-write memory as its data, encoded as ordinary numbers. Because the program is just numbers in memory, the machine can be given an entirely new task by loading new numbers — no rewiring — and can even read and modify its own instructions.

深层档案目前以英文写就——经核验的翻译已列入路线图。浏览器自带的翻译功能在本页表现良好。

Stored-program computer
CC BY 2.0 · Wikimedia Commons

✦ 等等,真的吗?

ENIAC, the room-sized machine that came just before the idea, was "programmed" by physically re-plugging cables and throwing hundreds of switches; setting up a new problem could take days. In June 1945 John von Neumann circulated a 101-page "First Draft of a Report on the EDVAC" that described storing the program as numbers in memory alongside the data. The first machine actually to run a stored program was the Manchester "Baby," which executed its first program on 21 June 1948 — the moment software became a thing you could load instead of a thing you had to build.

它是什么

A stored-program computer keeps its program in the same memory as its data, both written in the same binary numbers. Nothing about the wiring says "this number is an instruction and that one is data" — the machine simply fetches whatever it is pointed at and treats it as a command. Because instructions are just numbers, they can be loaded, copied, generated, and altered like any other data. That single design choice is what makes a computer *general-purpose*: one physical machine can run a spreadsheet, a game, or a compiler, depending only on which numbers currently sit in memory.

它为何重要

Earlier calculating machines were specialized: to change the task you changed the machine. ENIAC (1945) could be rewired for new problems, but "rewired" meant days of plugging cables. The stored-program idea collapsed that setup time to the time it takes to load a file, and it separated software from hardware for good — the machine became a fixed, mass-producible object, and the interesting, endlessly varied part became the numbers you fed it. Every computer since, from mainframes to the phone in your pocket, is a stored-program machine.

它解锁了什么

Everything downstream in computing assumes it. Programming languages exist because a program is data a *translator program* can read and rewrite. Operating systems, which load and switch between programs, are only possible when programs are loadable numbers. Self-modifying code, compilers, interpreters, viruses, and the entire software industry all rest on the flat, unpretentious fact that in a stored-program computer, instructions and data are made of the same stuff.

最简可行版本

A processor that endlessly repeats a fetch–execute cycle: read the next instruction from memory, decode what it means, do it, then read the next — with instructions and data sharing one addressable store. This is the "von Neumann architecture."

此条目尚待完整撰述——制图师正在工作。它在图中的位置已经核验无误。

来源

  • John von Neumann, 'First Draft of a Report on the EDVAC' (1945)
  • Alan M. Turing, 'On Computable Numbers, with an Application to the Entscheidungsproblem' (1936)
  • Martin Davis, *The Universal Computer: The Road from Leibniz to Turing* (2000)

发现本页有误?这里的每一条论断,都应当经得起质疑。 提交更正 →