8

Perché l'architettura computerizzata basata sull'architettura von Neumann è preferita all'architettura di Harvard, quando si progettano personal computer; mentre l'architettura di Harvard viene utilizzata per progettare sistemi computerizzati basati su microcomputer e sistemi computerizzati basati su DSP?von neumann vs harvard architecture

risposta

10

I progetti CPU attuali per PC hanno sia elementi Harvard che Von Neumann (più Von Neumann anche se).

Se si osservano le cache L1, si vedrà che nei sistemi AMD, ARM e Intel si hanno Istruzione L1 Cache e Data L1 Cache, a cui è possibile accedere in modo indipendente e in parallelo. Questa è la parte di Harvard. Tuttavia, in L2, L3 o in DRAM, i dati e i codici sono misti. Questo è il Von Neumann parte.

Quindi, perché non è stata adottata una pura architettura di Harvard per PC? La mia opinione è che non ha senso. Se si profila la maggior parte delle applicazioni, si vedrà che il rapporto di perdita della cache delle istruzioni L1 è molto piccolo. Ciò significa che generalmente la dimensione del codice non è un problema. Quindi non avrebbe senso progettare un percorso completamente separato per il codice. I dati possono diventare molto grandi ma il codice non può davvero.

In DSP è consigliabile utilizzare codice e percorsi dati separati. Questo perché DSP lavora principalmente su "streaming data", il che significa che la necessità di memorizzare nella cache è piuttosto piccola. Anche i codici DSP possono contenere coefficienti pre-calcolati che aumentano le dimensioni del codice. Quindi esiste un equilibrio tra dimensioni dei dati e dimensioni del codice, il che significa che ha senso usare un'architettura di Harvard.

+1

* puro * Harvard significherebbe RAM separata (o ROM), non solo cache suddivise. Quindi il codice che hai appena compilato potrebbe dover essere scritto sul disco dalla memoria dati e caricato nuovamente nella memoria del programma dal disco. Ha senso solo quando il codice è fisso e nella ROM. (E anche allora, le cache unificate hanno senso fino a L1, come fai notare). Parte della ragione per le cache divise è la velocità effettiva/latente: non è possibile creare una cache a 64k che sia veloce quanto il throughput combinato di due cache 32k separate. [guarda anche questa risposta] (http://stackoverflow.com/a/38549736/224132) sui trucchi di velocità per le piccole cache. –

4

La differenza fondamentale tra l'architettura di Von Neumann e l'architettura di Harvard è che, mentre nell'architettura di Harvard, la memoria delle istruzioni è distinta dalla memoria dei dati, in Von Neumann sono uguali. Ciò riflette la realtà pratica dei PC (in cui i programmi sono archiviati e letti dallo stesso supporto dei dati, solitamente disco e RAM) e microcontrollori (in cui il programma è memorizzato in una memoria non volatile e i dati sono memorizzati nella memoria volatile)).

Problemi correlati