John von Neumann, nato János Neumann (Budapest, 28 dicembre 1903 – Washington, 8 febbraio
1957), è stato un matematico e informatico ungherese
naturalizzato statunitense.
Con l'espressione architettura di von Neumann (o
macchina di von Neumann) ci si riferisce a uno schema di
progettazione di calcolatori elettronici che prende nome
dal matematico John von Neumann e che fu sviluppato
per il sistema IAS machine e dell'Institute for Advanced
Study. Schematic of the von Neumann architecture. The
Control Unit and Arithmetic Logic Unit form the main
components of the Central Processing Unit (CPU)
Lo schema si basa su cinque componenti fondamentali:
1. CPU o unità di lavoro che si divide a sua volta in
1. Unità operativa, nella quale uno dei
sottosistemi più rilevanti è l'ALU (Arithmetic Logic Unit)
2. Unità di controllo CU
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
L’ALU gestisce le operazioni aritmetiche quali l'addizione, la sottrazione, lo shift dei bit
(scorrimento di posizione a destra o a sinistra per effettuare operazioni all'interno di una word), gli
operatori logici AND, OR, NAND (¬ AND), NOR (¬ OR).
L’Unità di controllo CU (Control Unit) legge dalla memoria le istruzioni, e se occorre legge anche i
dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria
o in un registro della CPU.
È 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: basti pensare che i moderni computer di uso comune sono progettati secondo l'architettura
Von Neumann., inoltre, quando si parla di unità di memoria si intende la memoria principale,
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.
1
Nell'architettura di von Neumann, quando ci si riferisce alla memoria, s'intende la memoria
principale, che è quella sulla quale il calcolatore carica i processi (programmi in esecuzione) ed i
dati ad essi relativi (si parla appunto di memoria di lavoro), mentre si considera la memoria
secondaria alla stregua di un dispositivo d'ingresso (input) e/o di uscita (output) dei dati
In informatica si distinguono due tipi di memoria: la memoria principale o centrale, costituita
fondamentalmente da memoria RAM, e la memoria secondaria o memoria di massa, i cui maggiori
rappresentanti sono gli hard disk, ma anche supporti rimovibili come dischi floppy, CD, DVD,
nastri magnetici, memorie flash di ogni tipo ed altro ancora.
Una memoria centrale può essere considerata astrattamente come una sequenza finita di celle in cui
ogni cella contiene una sequenza finita di bit. Normalmente i bit sono gestiti a gruppi di otto, detti
byte. Pertanto lo spazio fisico della memoria può essere immaginato come una sequenza di
locazioni, ognuna contenente un byte. Ogni posizione è individuata da un preciso indirizzo,
normalmente espresso tramite un numero intero positivo. La memoria centrala è costituita
fondamentalmente da:
I costi di produzione della memoria centrale sono maggiori di quelli per realizzare memoria
secondaria, pertanto al fine di ottenere un buon compromesso tra costi e prestazioni i calcolatori
dispongono in generale più di memoria secondaria che non di memoria centrale. Infine, poiché i
dispositivi impiegati attualmente per la memoria centrale non permettono di conservare i dati
memorizzati dopo che il calcolatore è stato spento, le informazioni vengono conservate nella
memoria secondaria in grado di mantenersi inalterata anche con il calcolatore spento.
Oggi la memoria centrale ha normalmente un tempo di accesso variabile da 5 a 70 nanosecondi.
La caratteristica principale della memoria di massa è la "non volatilità", ovvero la possibilità di
memorizzare permanentemente i dati (per questo si parla anche di memoria di archiviazione).
Inoltre, la memoria di massa ha un costo inferiore rispetto alla memoria principale, per questo
verrebbe da chiedersi perché nei moderni computer non si utilizzi solo memoria secondaria (tramite
il meccanismo della memoria virtuale): la ragione risiede nel fatto che i tempi medi di accesso a
memoria principale sono dell'ordine delle centinaia di nanosecondi, contro i millisecondi delle
memorie di archiviazione, che, quindi, necessitano di tempi di accesso maggiori di ben 5 ordini di
grandezza.
La tecnologia, infatti, è riuscita nel corso degli anni a rendere le memorie ROM e RAM sempre più
veloci, ma nulla ha potuto contro i limiti "fisici" dei dischi, che hanno bisogno di aspettare che la
testina si posizioni sulla traccia giusta (tempo di ricerca o seek-time) e sul blocco giusto (latenza di
rotazione o 'latency-time).
Altri tipi di memorie sono:
Memoria ROM: memoria di sola lettura, è una tipologia di memoria informatica, in particolare una
tipologia di memoria non volatile (memoria informatica in grado di mantenere memorizzati i dati
anche se non è alimentata elettricamente) in cui i dati sono memorizzati nella sua fase di
costruzione e non possono essere più modificati per l'intera durata della sua vita.
2
La ROM contiene i dati necessari alla "partenza" dell'elaboratore informatico.
In essa é contenuto il BIOS (Basic Input/Output System) ovvero un software che parte all'avvio del
computer compiendo: controllo dell'hardware e fase di boot-strap (cerca il sistema operativo e lo
carica in RAM per l'esecuzione). La ROM é un chip inserito sulla scheda madre.
Con lo sviluppo della tecnologia é stato necessario prevedere l'aggiornamento del BIOS.
Memoria Cache: memoria temporanea, non visibile al software, che memorizza un insieme di dati
che possano successivamente essere velocemente recuperati su richiesta. Le parole chiave sono
"temporanea" e "velocemente": in pratica, questo significa che non c'è nessuna certezza che i dati si
trovino nella cache, ma che convenga comunque fare un tentativo per verificarne l'eventuale
presenza.
Simbolo
in Bit
in Byte
1 b (bit)
1
1/8
1 B (byte)
8
1
1 KB ( kilobyte)
8.192
1.024
1 MB (megabyte)
8.388.608
1.048.576
1 GB (gigabyte)
8.589.934.592
1.073.741.824
1 TB (terabyte)
8.796.093.302.400
1.099.511.628.000
L'accesso alla memoria è sicuramente l'operazione più frequente della CPU. Il tempo di accesso alla
memoria è il numero di cicli di clock necessari per operare sulla memoria (generalmente uno);
questo era un valore importante, poiché, maggiori erano i cicli necessari, più lento era il processore.
Oggi con i processori moderni, la regola non è cambiata, ma è diventato un dettaglio insignificante.
Con 500 Mhz, per operare sulla memoria erano necessari 2 ns (nanosecondi), oggi abbiamo
processori a 3 Ghz (3000 Mhz circa), e 0,33 ns per operazioni sulla memoria. Processori differenti
impiegano un diverso numero di cicli di clock. Per esempio, l'8088 e l'8086 richiedevano quattro
cicli. Dall'80486 solamente un ciclo.
NANOSECONDO: è un'unità di tempo pari ad un miliardesimo di secondo. È formata usando il
prefisso standard nano-, che significa 10-9. Il suo simbolo è ns. Per alcuni oggetti un nanosecondo è
una quantità di tempo piuttosto lunga.
I normali microprocessori di oggi, che si trovano nei computer più recenti, possono effettuare anche
un centinaio di operazioni diverse in un nanosecondo.
MILLISECONDO: un millesimo di secondo.
3