> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/computer-science/machines/von-neumann-machine.md).

# von neumann machine

* His EDVAC (Electronic Discrete Variable Automatic Computer) is close to how  computers are used
* four parts:
  * memory
    * where instructions and data are stored
  * control unit
    * interprets instructions while coordinating other units
  * arithmetic logic unit
    * performs arithmetic and logical operations
  * input/output
    * provides the interface with users
    * an accumulator interact with control unit and input/output
* Main feature is **stored program**
  * before all computers were built with fixed programs, much like today’s desktop calculators that cannot run other software
  * Stored program was a giant jump in making machine hardware be independent of software programs that can run on it.
  * A separation of hardware from software
* There is latency associated with data transfer between CPU and memory
  * To improve computing efficiency, today’s computers **add more and more cache between CPU and main memory.**
  * Caching at the chip level
