Hardware del computer
Come funziona un computer
I computer condividono un’unica architettura comune, detta “macchina di Von Neumann“, il cui schema di funzionamento è il seguente.

I componenti alla base di questa macchina sono:
– il processore (CPU): esso esegue una sequenza di istruzioni (appartenenti ad un insieme predefinito di istruzioni possibile) caricate in memoria dal programmatore, che elaborano dei dati, anch’essi caricati in memoria.
– la memoria del computer è unica e contiene quindi sia il programma (con le istruzioni da eseguire) che i dati che esso utilizza: essa viene controllata dalla CPU, che carica sia istruzioni che dati, li elabora secondo le istruzioni ricevute, e li salva nella memoria. La memoria nei computer moderni corrisponde alla RAM, ma in ogni caso la RAM è una specifica implementazione della memoria.
– l’I/O (Input/Output) consente l’accesso con l’esterno: è un componente che ha una memoria interna che memorizza i dati ricevuti dall’esterno e quelli da inviare e quindi comunica con le periferiche (tastiere, mouse, monitor, memorie di massa, rete, ecc.).
– ogni componente comunica con gli altri mediante bus, linee dati dedicate ad alta velocità.
Questo modello è stato esteso e reso col tempo più complesso, ma la sua architettura di base ancora oggi è questa.
Come funziona la CPU?
La sua attività è scandita da un clock, un componente che emette un segnale temporizzato che determina il ciclo di esecuzione di una istruzione (oggi nell’ordine di Ghz, ovvero miliardi di segnali al secondo). Questo ciclo è diviso in 3 macro fasi:
- fetch: viene caricato il codice dell’istruzione dalla memoria
- decode: il codice viene decodificato in una istruzione
- exec: l’istruzione viene eseguita.
Il ciclo ricomincia con l’istruzione successiva. La CPU ha una piccola memoria di lavoro, ovvero delle celle, dette registri, che memorizzano i valori tra istruzioni successive. Le istruzioni hanno tutte pari tempo di esecuzione, cioè un ciclo di clock, e devono essere molto semplici.
Ad esempio per eseguire una semplice somma di due numeri occorrono 4 istruzioni:
- Caricare il primo valore in un primo registro
- Caricare il secondo valore in un secondo registro
- Eseguire la somma e salvare il valore in un terzo registro
- Salvare il dato in memoria
Le istruzioni del processore sono memorizzate tramite codici numerici (da cui la decodifica) detti “linguaggio macchina” che viene rappresentato in maniera leggibile in istruzioni dette “Assembly“. La semplicità di queste istruzioni le rende estremamente veloci ma significa anche che scrivere un programa complesso implica dove scrivere miliardi di istruzioni, cosa impossibile per un essere umano. Per risolvere questo problema nei computer vengono utilizzati dei linguaggi di programmazione detti “ad alto livello“, che permettono di eseguire istruzioni più articolate e quindi agevolare la vita del programmatore. Esistono poi dei programmi speciali (detti compilatori o interpreti) che traducono le istruzioni “ad alto livello” in istruzioni “a basso livello” (cioè nel linguaggio macchina).
Come funziona la memoria?
Prima di tutto esistono due tipi di memoria:
- la memoria centrale del computer, descritta dalla macchina di Von Neumann. Questa memoria nei computer moderni corrisponde alla RAM, ed è una memoria molto veloce (nell’ordine dei Mhz, velocissima per noi ma molto più lenta della CPU). Come noto, se spegnamo il computer, la memoria viene inizializzata perdendo tutti i dati è quindi temporanea.
- la memoria di massa, che è una periferica, anche se fisicamente è collocata internamente nei moderni computer e cellulari. E’ una memoria che memorizza i dati in modo permanente, mediante una struttura ad archivio che prevede cartelle e documenti. Nei computer moderni corrisponde agli SSD, gli HD, le memorie USB e le schede SD.
In memoria i dati sono memorizzati sotto forma di numeri, e tramite un sistema di numerazione binario tramite unità di memoria dette bit, che possono assumere solo il valore di 0 oppure 1. Questo è stato fatto perché è infinitamente più semplice ed economico memorizzare i numeri tramite due stati possibili, in un sistema basato su elettricità con due diverse tensioni elettriche. Quindi per rappresentare il valore 2 abbiamo bisogno di 2 bit, con valore “10”, mentre 3 sarà “11”. Per memorizzare il valore 4 usiamo tre bit: “100” e così via come in questa tabella:
Decimale | Binario |
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
… |
Come si può vedere ogni volta che aggiungiamo un bit raddoppiamo i valori memorizzabili: con 1 bit sono 2, con 2 bit sono 4, con 3 bit 8, con 4 sono 16 e così via. La regola è che con N bit si possono memorizzare 2^N valori. Le unità di misura più importanti della memoria sono:
byte | 8 bit -> 256 valori memorizzabili. | unità di misura fondamentale della memoria. |
KiloByte (KB) | 1024 byte (2^10 byte) | documenti e testi |
MegaByte (MB) | 1024 KB (2^20 byte) | immagini |
GigaByte (GB) | 1024 MB (2^30 byte) | video |
TeraByte (TB) | 1024 GB (2^40 byte) | memorie RAM e SSD |
Petabyte (PB) | 1024 TB (2^50 byte) | grandi archivi dati su Internet |
Questi dati possono rappresentare informazioni come testi, immagini, video in quanto ne sono la rappresentazione tramite codici numerici (ad esempio la lettera “a” è codificata col valore 97, tramite il noto codice ASCII, mentre una immagine è codificata tramite i suoi pixel con la codifica RGB, ecc.).
Come funzionano le periferiche ?
Le periferiche sono connesse al computer mediante un componente di I/O, che viene usato come una specie di memoria “temporanea” dove memorizzare i dati che transitano da e verso le periferiche. Le periferiche più note sono tastiera, mouse e monitor in un PC, oppure lo schermo touch in uno smartphone/tablet, ognuno di questi dispositivi trasforma una azione meccanica (es. pressione del tasto) in un segnale elettrico e quindi in un segnale digitale che viene trasmesso all’I/O, e poi utilizzato dalla CPU per gestire l’input. Allo stesso modo la CPU memorizza nell’I/O le informazioni che devono essere inviate alla periferica, e queste le trasforma in segnale elettrico e ad esempio nei monitor in segnale visivo per l’utente.
Le periferiche possono essere anche senza fili, come ad esempio con la tecnologia Bluetooth: pensiamo ai mouse e tastiere, ma anche alle cuffie, gli smartwatch, ecc. Un’altra tecnologia molto diffusa è NFC-RFID, che viene usata per esempio per i pagamenti digitali (ad esempio per pagare alla cassa del supermercato o per pagare il pedaggio dell’autostrada).
Un computer o uno smartphone dispone quindi di un insieme di porte di comunicazione col mondo esterno, alcune per connessioni a filo altre senza filo:
- porte video: lo standard più noto è HDMI che trasmette dati video a monitor e TV;
- porte audio: lo standard è il jack da 3,5mm (è molto antico e risale agli anni 60);
- porte di rete LAN: lo standard è noto col nome commerciale di Ethernet;
- le porte USB: le più antiche sono di tipo A, le più moderne di tipo C, che nascono per trasferire dati su memorie esterne, ma che oggi permettono di svolgere qualsiasi operazione digitale: trasmissione dati, video, audio, ecc. e perfino la ricarica elettrica del computer.
Reti dati e Internet
La connessione principale però verso il mondo esterno è la rete Internet. Essa consiste in una tecnologia informatica e di telecomunicazioni dove i computer si trasmettono dati digitali in unità dette pacchetti (un dato complesso viene diviso in pacchetti) e dove ogni computer su Internet ha un indirizzo specifico. La rete va pensata come una struttura complessa organizzata per “strati” dove il primo strato è quello della trasmissione fisica, tramite cavo o per onde radio Wifi, satellitari o tramite la rete dati cellulare (4G/5G) che a sua volta internamente contiene dati che contengono pacchetti che a loro volta contengono dati che a loro volta permettono di trasferire richieste di informazioni, testo, video, immagini, ecc. Per gestire questa infrastruttura la rete è composta da nodi di smistamento in cui giocano un ruolo importante dei mini computer chiamati router.
Anche nella trasmissione di dati l’informazione viene trasmessa tramite bit. Qui un elenco di unità di misura utilizzate.
bit | 0 o 1 | unità di misura fondamentale della velocità di trasmissione |
KiloBit (Kb)/s | 1024 bit (2^10 bit) | modem (es. 56Kb), connessione 2G e 3G |
MegaBit (Mb)/s | 1024 Kb (2^20 bit) | Bluetooth (fino a 100Mb) e Wifi (fino a 500Mb), 4G e 5G |
GigaBit (Gb)/s | 1024 Mb (2^30 bit) | Fibra ottica |
TeraBit (Tb)/s | 1024 Gb (2^40 bit) | Cavi oceanici sottomarini |
Petabit (Pb)/s | 1024 Tb (2^50 bit) | velocità di trasmissione del bus dati del computer. |