A computer architecture in which the program's instructions and the data reside in separate memory banks that are addressed independently. Named after the Mark I computer at Harvard University in the 1940s, a pure Harvard architecture can execute instructions and process data simultaneously, because each has its own address bus.
Microcontrollers, which have separate program and data memory banks (flash memory and RAM), often adhere to the Harvard architecture model and provide simultaneous overlap. However, most computers use the von Neumann architecture and employ CPU caches to achieve overlap (see cache
). Contrast with von Neumann architecture
. See Mark I
and address bus
This diagram shows how the two memory banks are addressed independently for simultaneous instruction execution and data processing. (Image courtesy of Microchip Technology Inc., www.microchip.com)