Von Neumann versus Harvard: omgang met instructies en data vergeleken
In een Von Neumann-architectuur delen instructies en data één geheugen en één bus, dus de processor kan niet tegelijk een instructie ophalen en data benaderen. Deze beperking heet de Von Neumann-bottleneck. In een Harvard-architectuur staan instructies en data in aparte geheugens met aparte bussen, zodat ze tegelijk toegankelijk zijn. De meeste moderne CPU's combineren beide: het hoofdgeheugen is gedeeld, maar de L1-cache is gesplitst in een instructie- en een datacache. Dit heet de gemodificeerde Harvard-architectuur.
| Kenmerk | Von Neumann | Harvard |
|---|---|---|
| Geheugen | Eén geheugen voor zowel instructies als data | Aparte geheugens voor instructies en data |
| Bus | Eén gedeelde bus | Aparte bussen |
| Instructies ophalen en data benaderen | Concurreren om dezelfde bus (Von Neumann-bottleneck) | Kunnen tegelijk plaatsvinden |
| Doorvoer | Lager bij gelijke busnelheid | Hoger. Parallelle toegang is mogelijk |
| Flexibiliteit | Hoog. Programma's zijn data, dus laden, genereren en wijzigen is eenvoudig | Lager. Code en data zijn gescheiden |
| Toewijzing van geheugen | De verdeling tussen code en data is flexibel | De grootte van elk geheugen ligt vast |
| Hardwarecomplexiteit | Eenvoudig | Complexer. Twee geheugens en twee bussen |
| Typische apparaten | Algemene computers | Digital signal processors en veel microcontrollers (zoals AVR en PIC) |
| In moderne CPU's | Gedeeld hoofdgeheugen | Gesplitste L1-instructie- en datacache (gemodificeerde Harvard) |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.