Apri il menu principale

L'architettura di von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. Per tale caratteristica l'architettura di von Neumann si contrappone all'architettura Harvard nella quale invece i dati del programma e le istruzioni del programma sono memorizzati in spazi di memoria distinti.

L'importanza dell'architettura di von Neumann è notevole in quanto è l'architettura hardware su cui è basata la maggior parte dei moderni computer programmabili. Tra chi ha concepito questa architettura vi sono J. Presper Eckert e John Mauchly, principali progettisti anche dell'ENIAC (primo computer elettronico general purpose della storia e primo computer elettronico Turing completo della storia).

Un computer basato sull'architettura di von Neumann è detto "modello di von Neumann" oppure, come lo chiamò von Neumann stesso, "stored-program computer".

Indice

StoriaModifica

L'architettura di von Neumann prende nome dal matematico e informatico John von Neumann il quale inizialmente ha contribuito a svilupparla per l'EDVAC e successivamente l'ha adottata per la IAS machine. L'EDVAC è un computer elettronico costruito dalla Moore School of Electrical Engineering (una ex scuola universitaria dell'Università della Pennsylvania)[1] su commissione dell'Ordnance Department (un ex dipartimento dell'esercito degli Stati Uniti d'America).[2] Anche la IAS machine è un computer elettronico, ma è stato costruito dall'Institute for Advanced Study.

John von Neumann non è stato il principale progettista dell'EDVAC, bensì colui che ha descritto l'architettura dell'EDVAC nella relazione First draft of a report on the EDVAC datata 30 giugno 1945. In seguito il matematico Herman Goldstine, supervisore alla Moore School of Electrical Engineering per l'Ordnance Department, ha fatto distribuire copie di tale relazione in molte università degli Stati Uniti d'America. L'architettura hardware dell'EDVAC è così diventata di dominio pubblico e First draft of a report on the EDVAC è diventata il testo di riferimento per una nuova generazione di computer basati sull'architettura hardware dell'EDVAC. Di conseguenza tale architettura è diventata nota come "architettura di von Neumann" suscitando malcontento tra gli altri progettisti dell'EDVAC.

Sebbene l'architettura di von Neumann sia stata sviluppata per l'EDVAC, non è stato l'EDVAC il primo computer operativo della storia basato sull'architettura di von Neumann. Prima dell'EDVAC sono diventati operativi i seguenti computer basati sull'architettura di von Neumann:

L'EDVAC è stato consegnato al Ballistics Research Laboratory nell'agosto 1949 ma è diventato operativo solo nel 1951 a causa di alcuni malfunzionamenti scoperti solo in seguito.

Attraverso i decenni degli anni 1960 e 1970 i computer in generale sono diventati più piccoli e veloci, che ha portato ad alcune evoluzioni nella loro architettura. Ad esempio, la memoria mappata I / O consente ai dispositivi di ingresso e di uscita di essere trattati allo stesso modo della memoria. A volte è utilizzato un bus di sistema unico per fornire un sistema modulare con costi inferiori. Questo è talvolta chiamato una "razionalizzazione" dell'architettura. Nei decenni successivi, microcontrollori semplici hanno a volte omesso delle caratteristiche nei modelli per ridurre i costi e le dimensioni. Ai computers più grandi sono state aggiunte funzioni per prestazioni più elevate.

DescrizioneModifica

 
Architettura di von Neumann
 
Schema dell'architettura System bus, evoluzione di quella di von Neumann

Lo schema si basa su sei componenti fondamentali:

  1. CPU (o unità di lavoro) che si divide a sua volta in unità aritmetica e logica (o ALU) e Unità di controllo;
  2. Unità di memoria, intesa come memoria di lavoro o memoria principale (RAM, Random Access Memory);
  3. Unità di input, tramite la quale i dati vengono inseriti nel calcolatore per essere elaborati;
  4. Unità di output, necessaria affinché i dati elaborati possano essere restituiti all'operatore;
  5. Bus, un canale che collega tutti i componenti fra loro.

All'interno dell'ALU è presente un registro detto accumulatore, che fa da ponte tra input e output grazie a una speciale istruzione che carica una parola dalla memoria all'accumulatore e viceversa.

È importante sottolineare che tale architettura, a differenza di altre, si distingue per la caratteristica di immagazzinare all'interno dell'unità di memoria, sia i dati dei programmi in esecuzione che il codice di questi ultimi.

Bisogna comunque precisare che questa è una schematizzazione molto sintetica, sebbene molto potente e espressiva: basti pensare che i moderni computer di uso comune sono progettati secondo l'architettura von Neumann. Difatti essa regola non solo gli insiemi, ma l'intera architettura logica interna degli stessi, ovvero la disposizione delle porte logiche, perlomeno per quanto riguarda la parte elementare, sulla quale si sono sviluppate le successive progressioni.

Inoltre, quando si parla di unità di memoria si intende la memoria primaria, mentre le memorie di massa sono considerate dispositivi di I/O.

Il motivo di ciò è innanzitutto storico, in quanto negli anni quaranta, epoca a cui risale questa architettura, la tecnologia non lasciava neanche presupporre dispositivi come hard disk, CD-ROM, DVD-ROM o anche solo nastri magnetici, ma anche tecnico, se si considera che in effetti i dati da elaborare devono comunque essere caricati in RAM, siano essi provenienti da tastiera o da hard-disk.

NoteModifica

  1. ^ La Moore School of Electrical Engineering è stata unita ad altri dipartimenti dell'Università della Pennsylvania. L'attuale discendente della Moore School of Electrical Engineering è la School of Engineering and Applied Science.
  2. ^ L'Ordnance Department è diventato l'Ordnance Corps.

Voci correlateModifica

Altri progettiModifica

Collegamenti esterniModifica

  • (EN) Emulatore macchina di von Neumann, su home.gna.org. URL consultato il 15 febbraio 2008 (archiviato dall'url originale il 19 febbraio 2008).
  • (EN) JOHNNY Emulatore macchina di von Neumann particolarmente per l'insegnamento (Open Source)
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica