Arhitectura Harvard este o arhitectură a calculatoarelor caracterizată prin stocarea separată a instrucțiunilor și datelor. Numele acestei arhitecturi provine de la sistemul de calcul Harvard Mark I, ce stoca instrucțiunile pe 24 biți pe o bandă perforată, iar datele în contoare electromecanice ce permiteau 23 de cifre.

Din cauza lungimii cuvintelor, a tehnologiei de implementare și a structurii memoriei de adresare diferite, în cadrul acestei arhitecturi nu este necesar ca cele două tipuri de memorie (program si date) să dispună de aceleași caracteristici. De regulă memoria pentru instrucțiuni are o capacitate mai mare decăt cea de date. De exemplu, microcontrolerele PIC au un cuvânt de date de 8 biți și o lungime a instrucțiunii de 12, 14, 16 sau 32 biți.

În funcție de necesarul de memorie, instrucțiunile pot fi stocate de exemplu într-o memorie de tip ROM („read-only”), în timp ce datele se află într-o memorie de tip „citire-scriere”.

În arhitectura von Neumann pură CPU-ul poate fie citi o instrucțiune, fie citi/scrie date din/în memorie. Nu pot fi efectuate ambele operațiuni simultan, deoarece se folosește aceeași magistrală. Prin contrast, într-un calculator bazat pe arhitectura Harvard, CPU-ul poate citi o instrucțiune și în același timp poate accesa și date, chiar și fără cache. De aceea o arhitectură Harvard poate fi mai rapidă: fetch-urile instrucțiunilor și accesul la date nu concurează pentru aceeași cale de transfer de date. Arhitectura Harvard are spații de adresare separate pentru date și instrucțiuni: adresa 0 pentru date nu este aceeași cu adresa 0 pentru instrucțiuni.

În perioada modernă, arhitectura Harvard este folosită în principal în două tipuri de dispozitive:

  • Procesoarele de semnale (DSP) specializate din cadrul dispozitivelor pentru prelucrarea semnalelor audio și/sau video.
  • Microcontrollerele din cadrul aplicațiilor electronice (PIC de la Microchip, AVR de la Atmel); acestea dispun de dimensiuni mici ale memoriilor de program și de date și se folosesc de avantajul arhitecturii RISC – executarea instrucțiunilor într-un ciclu mașină (nu neapărat un ciclu de ceas).