Caratteristiche e Differenza tra Architettura Von Neumann e Harvard

Caratteristiche e Differenza tra Architettura Von Neumann e Harvard

L’architettura di Von Neumann

Nell’anno 1946 John Von Neumann, americano di origine ungherese, sviluppa un modello teorico di macchina di calcolo che ancora oggi è valido ed utilizzato per l’effettiva progettazione degli elaboratori, eccezion fatta per alcune macchine ad elaborazione parallela.
La macchina di Von Neumann riporta situazioni diverse ad uno stesso modello concettuale.
Supponiamo che un generico utente debba eseguire una semplice e ripetitiva operazione, ovvero:

  1. leggere un passo su un foglio di procedura (supponiamo una somma)
  2. eseguire il passo, attingendo i dati da un foglio dati
  3. al completamento della procedura, scrivere il risultato su un foglio, eventualmente usandone un altro per i calcoli intermedi

Le azioni descritte sono semplici, quindi non c’è effettivamente bisogno di un operatore umano per svolgerle. Dunque possiamo sostituire l’utente con un dispositivo automatico, cui fornire opportunamente i supporti rappresentati dal foglio di calcolo, dal foglio dati, da quello per i risultati intermedi e finali.

A prescindere da come si realizzano tali oggetti nella pratica, concettualmente possiamo identificare i seguenti componenti:

  1. la memoria, che occorre per la gestione della procedura, dei dati iniziali e per i risultati intermedi e finali
  2. una funzione aritmetica, per lo svolgimento di operazioni, non solo aritmetiche, sui dati
  3. dispositivi di ingresso/uscita (Input/Output, di seguito si indicheranno spesso più brevemente con I/O), per ricevere i dati in ingresso o inviare i dati (risultati) in uscita
  4. un dispositivo di controllo, che coordini il flusso di dati tra i componenti elencati, eseguendo i passi della procedura

Corrispondentemente ai concetti sopra elencati, Von Neumann propone un modello di architettura che si suole comunemente schematizzare come:

  1. la CPU (Central Processing Unit)
  2. le memorie
  3. i dispositivi di I/O
  4. il bus

Per quanto riguarda il bus, nel modello di Von Neumann è in realtà composto da tre bus distinti:

  1. il bus dei dati, bidirezionale, attraverso il quale i dati viaggiano da e verso la CPU
  2. il bus degli indirizzi, in cui i dati viaggiano solo dalla CPU verso gli altri componenti
  3. il bus dei segnali di controllo. Anche in questo caso i dati viaggiano solo dalla CPU verso gli altri componenti.

Il bus

I moduli di un elaboratore hanno la necessità di scambiarsi informazioni. Tale scambio avviene tramite il bus e rappresenta uno degli aspetti più critici di un elaboratore.
Fisicamente, il bus è costituito da conduttori elettrici (linee) che permettono il trasferimento dei dati in parallelo. Le linee possono essere suddivise in tre gruppi, distinti per funzione:

  1. Linee dati, bidirezionali.
  2. Linee indirizzi: identificano l’unità da usare durante il trasferimento e che ha accesso al bus (ogni unità ha un indirizzo)
  3. Linee di controllo, per segnali di temporizzazione, tipo di trasferimento (read o write), indicazioni sul tipo di dati.

Il bus è utilizzato per un trasferimento per volta e quando due sorgenti tentano di inviare dati contemporaneamente, si ha conflitto, risolto in vari modi. Alcuni dispositivi possono inviare dati sul bus (sono dunque attivi e si dicono master – padroni), altri devono attendere una richiesta e dunque sono passivi (slave – schiavi).

Differenza tra Architettura Von Neumann e Harvard

L’architettura di Harvard

L’architettura Harvard, in informatica, è un tipo di architettura hardware per computer digitali in cui vi è separazione tra la memoria contenente i dati e quella contenente le istruzioni. Il termine inizialmente indicava l’architettura del computer Harvard Mark I, un computer basato su relè che memorizzava le istruzioni su un nastro perforato mentre i dati venivano memorizzati in un contatore elettromeccanico a 23 cifre. Questa macchina non era dotata di un’unità di immagazzinamento dei dati: questi erano interamente memorizzati dalla CPU e il loro caricamento e salvataggio era un processo eseguito in modo manuale agendo sui contatori.

Oggi, la maggior parte dei processori implementa percorsi di segnale separati per motivi di prestazioni, ma in realtà implementa un’architettura Harvard modificata, quindi possono supportare attività come il caricamento di un programma dalla memoria del disco come dati ed eseguirlo.

L’architettura Harvard viene spesso utilizzata in processori specializzati come i DSP per il trattamento dei dati audio o video. Per esempio il processore Blackfin della Analog Devices utilizza l’architettura Harvard.

Inoltre molti microcontrollori utilizzati in applicazioni industriali utilizzano questa architettura. Per esempio i controllori PIC prodotti da Microchip Technology Inc e i controllori AVR prodotti da Atmel Corporation sono basati su architettura Harvard.

Differenza tra Architettura Von Neumann e Harvard

La differenza principale che c’è tra le due architetture è la seguente: Nell’architettura di Von Neumann c’è un unico banco di memoria che racchiude Program memory e Data memory, di conseguenza la CPU è costretta a fare la fase di fetch-exec in modo sequenziale; Nell’architettura Harvard possiamo invece distinguere i due banchi di memoria in modo tale che la fase di fetch può sovrapporsi a quella di exec e viceversa.

Comunemente l’architettura Harvard possiamo trovarla in dispositivi nei quali sappiamo all’incirca qual è la grandezza del programma e qual è quella dei dati.

Nei nostri computer (probabilmente anche in quello dal quale stai leggendo questo articolo) vi è una CPU con architettura Von Neumann, dato che, il nostro processore è general purpose e quindi la dimensione del programma o dei dati che esso andrà ad utilizzare può variare.

Caratteristiche e Differenza tra Architettura Von Neumann e Harvard

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *