Wat is beter?
Elke architectuur heeft zijn voordelen: Als al het andere gelijk is, heeft het Harvard-model het voordeel qua prestaties. Het Von Neumann-model is flexibeler.
Moderne hybriden
De meeste computers voor algemeen gebruik (PC’s, Mac’s, enz.) zijn tegenwoordig hybride ontwerpen die u het beste van beide architecturen bieden. Diep in de CPU werken ze volgens het Harvard-model met afzonderlijke geheugens voor instructies en gegevens om de prestaties te maximaliseren. Maar de instructie- en gegevenscaches worden beide automatisch geladen vanuit een gemeenschappelijke geheugenruimte. Vanuit het oogpunt van programmeren lijken deze computers pure Von Neumann-machines met vele gigabytes aan virtueel geheugen.
Microcontrollers
Microcontrollers zoals die welke de Arduino’s aandrijven, zijn ontworpen voor ingebedde toepassingen. In tegenstelling tot computers voor algemeen gebruik heeft een ingebedde processor meestal een welomschreven taak die hij betrouwbaar en efficiënt moet uitvoeren – en dat tegen minimale kosten. Zij zien af van de luxe van meerlaagse caching en schijfgebaseerde virtuele geheugensystemen en beperken zich tot wat essentieel is voor de taak.
Het Harvard-model blijkt een goede match te zijn voor embedded toepassingen en de Atmega 328 die in de Arduino UNO worden gebruikt, gebruiken een relatief zuivere Harvard-architectuur. Programma’s worden opgeslagen in Flash-geheugen en gegevens worden opgeslagen in SRAM.
Voor het grootste deel, zorgen de compiler en run-time systemen voor het beheer van deze voor u, maar wanneer dingen krap beginnen te worden, helpt het om te weten hoe de dingen werken onder de motorkap. En het wordt veel sneller krap op deze kleine machines!
Een compleet andere schaal
Het grootste verschil tussen deze microcontrollers en uw computer voor algemeen gebruik is de enorme hoeveelheid beschikbaar geheugen. De Arduino UNO heeft slechts 32K bytes Flash geheugen en 2K bytes SRAM. Dat is meer dan 100.000 keer MINDER fysiek geheugen dan een low-end PC! En dat is niet eens de disk drive meegerekend!