← TIC — Tecnologie dell'informazione e della comunicazione  ·  Il computer e l'informazione digitale

L'architettura di un computer

Nell'argomento precedente abbiamo visto i componenti hardware uno per uno. Ora vediamo come sono organizzati insieme secondo un modello preciso, descritto per la prima volta nel 1945 e ancora oggi alla base della quasi totalità dei computer.

John von Neumann, il matematico che nel 1945 descrisse questa architettura
John von Neumann, il matematico che nel 1945 descrisse questa architetturaLos Alamos National Laboratory — Wikimedia Commons, libero uso

Nel 1945 il matematico John von Neumann descrisse, in un famoso rapporto tecnico, l'architettura che avrebbe cambiato per sempre l'informatica. La sua idea rivoluzionaria: conservare dati e programma nella stessa memoria (il cosiddetto "stored-program concept"). Prima di allora, per far eseguire un calcolo diverso a un computer bisognava letteralmente ricollegare i suoi cavi a mano — un'operazione lentissima.

Due programmatrici ricollegano manualmente i cavi dell'ENIAC per un nuovo calcolo (1946, prima dell'architettura di von Neumann)
Due programmatrici ricollegano manualmente i cavi dell'ENIAC per un nuovo calcolo (1946, prima dell'architettura di von Neumann)Foto US Army, pubblico dominio, Wikimedia Commons
💡 Lo sapevi?

Il "collo di bottiglia" di von Neumann

Dato che dati e istruzioni condividono lo stesso bus verso la memoria, la CPU a volte deve aspettare il proprio turno per usarlo: un limite di velocità ancora oggi chiamato "collo di bottiglia di von Neumann", che i progettisti di computer cercano di ridurre con memorie cache sempre più veloci.

Con l'architettura di von Neumann, basta scrivere il nuovo programma in memoria: il computer diventa così una macchina davvero general purpose.

💡 Lo sapevi?

Un genio precocissimo

John von Neumann sapeva dividere numeri di otto cifre a mente già a 6 anni e parlava correntemente più lingue da bambino. Da adulto contribuì non solo all'informatica, ma anche a fisica, economia e teoria dei giochi.

L'architettura di von Neumann si basa su quattro unità fondamentali, collegate tra loro da un canale di comunicazione chiamato bus:

  • la CPU, a sua volta divisa in ALU (Unità Aritmetico-Logica, che esegue i calcoli) e CU (Unità di Controllo, che coordina tutte le altre unità);
  • la memoria centrale, che contiene sia i dati sia le istruzioni del programma in esecuzione;
  • i dispositivi di input, che portano dati dall'esterno verso il computer;
  • i dispositivi di output, che restituiscono i risultati verso l'esterno.
Schema dell'architettura di von Neumann: CPU, memoria, input e output collegati dal bus
Schema dell'architettura di von Neumann: CPU, memoria, input e output collegati dal busSchema originale
Focus

ALU e CU

L'ALU (Unità Aritmetico-Logica) esegue i calcoli e i confronti. La CU (Unità di Controllo) non calcola: dirige il traffico, cioè coordina il lavoro di tutte le altre unità.

Ogni singola istruzione di un programma viene eseguita dalla CPU seguendo sempre lo stesso ciclo, ripetuto milioni di volte al secondo:

  1. fetch (prelievo): la CPU preleva dalla memoria l'istruzione da eseguire;
  2. decodifica: la CU interpreta l'istruzione, cioè stabilisce che operazione richiede;
  3. esecuzione: l'operazione viene eseguita, spesso dall'ALU;
  4. memorizzazione: se serve, il risultato viene scritto in memoria.
Focus

Il clock: il metronomo della CPU

Un segnale elettrico regolarissimo, il clock, scandisce il ritmo con cui la CPU ripete il ciclo fetch-decodifica-esecuzione. La sua frequenza si misura in gigahertz (GHz), la stessa unità già incontrata parlando della velocità del processore.

🎮 Mettiti alla prova

Rimetti in ordine il ciclo di esecuzione di un'istruzione

Tocca due passaggi per scambiarli di posto, poi verifica se l'ordine è quello giusto.

  1. Fetch: la CPU preleva l'istruzione dalla memoria
  2. Decodifica: la CU interpreta l'istruzione
  3. Esecuzione: l'operazione viene eseguita (spesso dall'ALU)
  4. Memorizzazione: il risultato viene scritto in memoria

J. Robert Oppenheimer e John von Neumann davanti alla IAS machine (1952), tra i primi computer basati su questa architettura
J. Robert Oppenheimer e John von Neumann davanti alla IAS machine (1952), tra i primi computer basati su questa architetturaJeremy Norman Collection of Images — Wikimedia Commons, CC BY 4.0
💡 Lo sapevi?

Una macchina da 200 moltiplicazioni al secondo

La IAS machine (1952), costruita seguendo l'architettura di von Neumann, poteva eseguire circa 200 moltiplicazioni al secondo e la sua memoria conteneva 1024 numeri. Un computer di oggi ne esegue miliardi al secondo.

Focus

Un'alternativa: l'architettura di Harvard

Nell'architettura di Harvard, usata per esempio in alcuni microcontrollori, dati e istruzioni sono conservati in memorie separate invece che in una sola come nel modello di von Neumann. Ogni approccio ha vantaggi diversi a seconda dell'uso.

🧪 Attività pratica⏱ 15 min

Segui il ciclo

In coppia, scegliete un'operazione semplice (es. 5+3) e recitate ad alta voce i passaggi del ciclo: uno studente "preleva" il numero scritto su un foglio (fetch), lo legge ad alta voce interpretandolo (decodifica), poi insieme calcolate il risultato (esecuzione) e lo scrivete su un altro foglio (memorizzazione). Individuate in quale passaggio entra in gioco la memoria e in quale la CPU.

💡 Lo sapevi?

Giorni di lavoro per un solo calcolo

Prima dell'architettura di von Neumann, riprogrammare l'ENIAC per un nuovo problema poteva richiedere a un team di persone anche diversi giorni di lavoro, ricollegando a mano centinaia di cavi e interruttori — lo stesso risultato che oggi si ottiene aprendo un nuovo programma in pochi secondi.

VideoL'architettura di Von Neumann in 3 minuti (Informaticaso)VideoArchitettura di Von Neumann e funzionamento della CPU (Get the Cookie)VideoArchitettura PC: il ciclo Fetch-Decode-Execute (Gaetano Mastrorilli)

Ora che sappiamo come sono organizzati i componenti di un computer, nel prossimo argomento mettiamo a fuoco meglio la differenza tra hardware e software.

ARCHITETTURA DI VON NEUMANN CPU ALU (calcolo) + CU (controllo) Memoria centrale dati + istruzioni insieme Bus collega tutte le unità Input tastiera, mouse... Output monitor, stampante...

Mettiti alla prova

1. Chi ha descritto per primo, nel 1945, il modello architetturale ancora oggi alla base dei computer?

Il matematico John von Neumann.

2. Qual è l'idea rivoluzionaria dell'architettura di von Neumann?

Conservare dati e programma nella stessa memoria, invece di dover ricollegare fisicamente la macchina per ogni nuovo calcolo.

3. Quali sono le quattro unità fondamentali dell'architettura di von Neumann?

CPU (con ALU e CU), memoria centrale, dispositivi di input, dispositivi di output.

4. A cosa serve il bus?

A collegare e far comunicare tra loro CPU, memoria e periferiche.

5. Elenca in ordine le fasi del ciclo di esecuzione di un'istruzione.

Fetch (prelievo), decodifica, esecuzione ed eventuale memorizzazione del risultato.

6. Qual è la differenza tra ALU e CU?

L'ALU esegue i calcoli aritmetici e logici; la CU coordina le altre unità senza eseguire calcoli.

7. Vero o falso: nell'architettura di Harvard dati e istruzioni condividono la stessa memoria.

Falso: nell'architettura di Harvard sono in memorie separate; è quella di von Neumann a condividerle.

8. Quante moltiplicazioni al secondo poteva eseguire la IAS machine?

Circa 200 al secondo.

9. Che cos'è il clock di una CPU, e in che unità si misura?

Un segnale che scandisce il ritmo del ciclo fetch-decodifica-esecuzione; si misura in gigahertz (GHz).

10. Che cos'è il "collo di bottiglia di von Neumann"?

Il limite di velocità dovuto al fatto che dati e istruzioni condividono lo stesso bus per raggiungere la memoria, per cui la CPU deve talvolta aspettare il proprio turno.

Per chiarimenti su questo argomento è possibile scrivere via email