Hvilken er bedst?
Hver arkitektur har sine fordele: Alt andet lige har Harvard-modellen en fordel med hensyn til ydeevne. Von Neumann-modellen er mere fleksibel.
Moderne hybrider
I dag er de fleste computere til generelle formål (pc’er, Mac’er osv.) hybriddesigns, der giver dig det bedste af begge arkitekturer. Dybt inde i CPU’en arbejder de efter Harvard-modellen ved hjælp af separate caches til instruktioner og data for at maksimere ydeevnen. Men både instruktions- og datacacherne indlæses automatisk fra et fælles hukommelsesområde. Set fra et programmeringsperspektiv fremstår disse computere som rene Von Neumann-maskiner med mange gigabyte virtuel hukommelse.
Mikrocontrollere
Mikrocontrollere som dem, der driver Arduinoerne, er designet til indlejrede applikationer. I modsætning til computere til generelle formål har en indlejret processor typisk en veldefineret opgave, som den skal udføre pålideligt og effektivt – og til minimale omkostninger, Mikrocontroller-designs har en tendens til at være ret spartanske. De giver afkald på luksuselementer som caching i flere lag og diskbaserede virtuelle hukommelsessystemer og holder sig til det, der er væsentligt for opgaven.
Harvard-modellen viser sig at være et godt match til indlejrede applikationer, og de Atmega 328, der anvendes i Arduino UNO, bruger en relativt ren Harvard-arkitektur. Programmer gemmes i Flash-hukommelse og data gemmes i SRAM.
For det meste tager compileren og run-time-systemerne sig af at administrere disse for dig, men når det begynder at blive stramt, hjælper det at være opmærksom på, hvordan tingene fungerer under motorhjelmen. Og tingene begynder at blive strammere meget hurtigere på disse små maskiner!
En helt anden skala
Den største forskel mellem disse mikrocontrollere og din almindelige computer er den enorme mængde hukommelse, der er til rådighed. Arduino UNO har kun 32K bytes flash-hukommelse og 2K bytes SRAM. Det er mere end 100.000 gange MINDRE fysisk hukommelse end en low-end pc! Og så er diskdrevet ikke engang medregnet!