Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Von Neuman: data and address bus shared between data memory and program memory (type of memory is decided by decoding a single address bus)
Harvard: Data memory and program memory have their own address and data bus. (the same address can exist in program memory and data memory/IO)
Von Neumann architecture is a design model for a stored program digital computer that uses a central processing unit and a single separate storage which holds both data and instructions.
The use of a stored digital computer program that keeps the instructions and data in read and write random access memory (RAM) was a significant advancement over the program controlled computers. The old program controlled computers used switches and patch leads to route control signals and data. The fundamental design of the Von Neumann model still holds true in most modern computers. For example, the same memory is used for both program instructions and data. The terms stored program architecture and Von Neumann architecture are often used interchangeably. The alternative to the Von Neumann architecture is the Harvard architecture. The Harvard architecture stores a program in a modifiable form, but does not use the same physical memory storage for general data.
Before Von Neumann architecture, computers were very rigid and fixed in what they could do because of their design. The computers could do basic mathematics, but could not be used for and word processing, gaming or anything similar. To change the program of these fixed machines meant essentially changing everything about the machine. The concept of stored program computers changed all of this. A computer that is designed to include an instruction set and can store in memory a set of instructions, known as a program, that details the computation. The ability to treat instructions as data is what allows compilers and automated programming tools possible. In other words you can write programs that write programs.
Von Neumann architecture may be somewhat slower than the contrasting Harvard Architecture for certain specific tasks, but it is much more flexible and allows for many concepts unavailable to Harvard architecture such as self programming, word processing and so on.
Harvard architectures are typically only used in either specialized systems or for very specific uses. It is used in specialized digital signal processing (DSP), typically for video and audio processing products. It is also used in many small microcontrollers used in electronics applications such as Advanced RISC Machine (ARM) based products for many vendors.
In a computer using the Von Neumann architecture without cache; the central processing unit (CPU) can either be reading and instruction or writing/reading data to/from the memory. Both of these operations cannot occur simultaneously as the data and instructions use the same system bus. In a computer using the Harvard architecture the CPU can both read an instruction and access data memory at the same time without cache. This means that a computer with Harvard architecture can potentially be faster for a given circuit complexity because data access and instruction fetches do not contend for use of a single memory pathway.