Hardware del computer
Tipi di computer
I computer non solo quelli che in gergo comune sono chiamati “computer”, ovvero i personal computer. Possiamo individuare 4 tipologie di computer:
- personal computer: computer casalingo o da ufficio, in formato fisso o portatile (detto anche notebook), con schermo, tastiera e mouse/touchpad, e con sistema operativo Windows, Mac o Linux (ma non solo).
- dispositivo mobile: si tratta degli smartphone o dei tablet, con schemo touch ed eventuale penna e tastiera/mouse, con sistema operativo iOs o Android. Vanno considerati nella categoria anche i dispositivi smart, che montano una variante di sistema operativo Android o iOs (o simili, come Tizen o WebOs o anche Linux) come ad esempio SmartTV o orologi smart, con interfacce specifiche (ad esempio l’orologio è sensibile al movimento, la SmartTV funziona col telecomando).
- server: computer con versioni speciali dei sistemi operativi Windows, Mac o Linux (quest’ultimo di gran lunga il più diffuso), generalmente non dotati di schermo/tastiera/mouse ma che hanno lo scopo di fornire servizi digitali, di solito sulla rete Internet.
- supercomputer: computer speciali con sistemi operativi dedicati, per svolgere attività di calcolo ad alta velocità.
Non importa quindi la forma fisica, la presenza di determinate periferiche o meno, per determinare cosa è un computer. Un computer può essere definito come una qualsiasi “macchina di Turing”, ovvero una macchina programmabile con una sequenza arbitraria di istruzioni prefefinite (dette appunto programmi) e con una memoria per memorizzare dati, input ed output. Inoltre la pressochè totalità dei computer esistenti non solo è una macchina di Turing, ma è una implementazione di una specifica architettura di computer, detta di “Von Neumann” dal nome del suo creatore.
Architettura del computer
L’architettura detta “macchina di Von Neumann“, ha il seguente schema di funzionamento:

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 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. Questa scelta tecnologica è dovuta al fatto che è molto semplice rappresentare queste due informazioni tramite stati elettrici di corrente e quindi usarli per la memorizzazione, in un sistema basato su elettricità. Quindi anzichè costruire memorie con componenti complessi con 10 diverse tensioni elettriche (per i valori da 0 a 9) si è preferito costruirle (per ragioni economiche) con componenti più semplici che hanno due sole tensioni, e rappresentare valori numerici come una composizione di questi componenti semplici.
Quindi per rappresentare valori maggiori di 0 e 1, come il valore 2, abbiamo bisogno di 2 bit, con valore “10”, mentre il valore 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 funziona la CPU?
La CPU come detto esegue le istruzioni del computer, prelevandole dalla memoria centrale, e poi salvando in memoria i risultati delle operazioni. Le istruzioni possibili come vedremo più avanti con gli algoritmi sono sono in generale di 4 tipi:
- calcolo (operazioni matematiche e logiche)
- assegnazione (utilizzo di variabili in memoria)
- condizione (decisione su una condizione logica)
- salto (per eseguire una specifica parte di un programma, usato in combinazione con la condizione)
E’ stato dimostrato infatti che qualsiasi algoritmo è sempre una combinazione di queste istruzioni. Vedremo più avanti come funzionano gli algoritmi.

La CPU internamente è costituita dai seguenti componenti:
- CU (Control Unit): il cuore operativo della CPU, che gestisce il caricamento delle istruzioni, condizioni e salti;
- ALU (Arithmetic Logic Unit): la “calcolatrice” della CPU;
- IR e PC: due registri speciali che vedremo qui sotto;
- Registri: celle di memoria della cpu usate per fare calcoli.
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 (il posto in memoria è indicato dal registro PC e l’istruzione viene memorizzata in IR). Le istruzioni sono infatti codificate come numeri, perché la memoria del computer può contenere solo numeri.
- decode: il codice viene decodificato in una istruzione specifica (tra quelle possibili)
- exec: l’istruzione viene eseguita, facendo uso anche dei registri. Viene aggiornato il PC al nuovo indirizzo per la prossima istruzione.
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
I codici numerici delle istruzioni (da cui la decodifica) sono detti “linguaggio macchina” che viene rappresentato in maniera leggibile in un linguaggio detto “Assembly“. La semplicità di queste istruzioni le rende estremamente veloci ma significa anche che scrivere un programa complesso implica dover scrivere miliardi di istruzioni, cosa impossibile per un essere umano. Per risolvere questo problema nei computer vengono utilizzati dei programmi speciali che permettono di usare linguaggi di programmazione più potenti che permettono di eseguire istruzioni più articolate e quindi agevolare la vita del programmatore. Vedremo questo più avanti.
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. Sono periferiche quindi la 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 che viene poi trasformato in un segnale digitale che viene trasmesso all’I/O. L’I/O lo trasmette poi alla 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: ad esempio nei monitor in segnale visivo per l’utente.
La più importante periferica è la memoria di massa, che come visto sopra, memorizza i dati in documenti detti “files” che a loro volta sono organizzati in “cartelle” (folders) e grazie al sistema operativo (il programma base del computer) consentono di tenere organizzate le informazioni del computer. E’ una periferica perché il computer vero e proprio vi accede tramite I/O.
Un computer o uno smartphone dispone poi di un insieme di porte di comunicazione col mondo esterno, alcune per connessioni a filo altre senza filo. Le connessioni con cavo più importanti sono:
- 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) e trasmette direttamente segnale elettrico che viene convertito in suono, o viceversa il suono viene convertito in segnale elettrico.
- porte di rete LAN: le reti LAN sono reti locali di computer, che tramite un router (vedi sotto) possono essere collegate ad Internet.
- le porte USB: connessioni che permettono di svolgere qualsiasi comunicazione digitale tra computer e perifiche o tra computer e computer: trasmissione dati, video, audio, ecc. e sempre attraverso la stessa porta perfino la ricarica elettrica del computer (Power Delivery).
Le periferiche possono essere anche senza fili, come ad esempio con la tecnologia Bluetooth. Con questa tecnologia possiamo collegare mouse, tastiere, cuffie, orologi smart come se fossero collegati “col filo”. In questo caso ogni dispositivo comunica col computer con una piccola antenna che ha una distanza massima di circa 10 metri e può inviare e ricevere dati.
Un’altra tecnologia senza fili è 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). L’utente passa il proprio dispositivo vicino alla stazione di ricezione (ad esempio il POS del supermercato) e questo dispositivo si comporta come un magnete, ed attraverso questo sistema il POS riceve dei dati che identificano il dispositivo (e quindi il proprietario) autorizzando quindi il pagamento.
Infine abbiamo la tecnologia Wifi, che viene usata per connettersi ad un router/modem (ma può essere usata anche per connettere direttamente due computer). E’ una tecnologia che permette di creare una rete LAN ma senza fili. Le reti LAN possono essere anche “miste”, cioè con alcuni computer collegati col filo, ed altri senza.
La velocità di questi dispositivi si misura in bit/secondo o multipli (Kbit = 1000 bit, Mbit = 1000Kbit, ecc.). Sebbene 8 bit sono come detto sopra 1 byte, in realtà nel mondo reale si usano 10 bit per trasmettere 1 byte perchè i 2 bit aggiuntivi servono per dare informazioni in più per gestire eventuali errori (ad esempio per interferenze).
| 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. |
Qui alcune velocità tipiche di connessione:
| Connessione | Tipologia | Velocità tipica | Tipo di utilizzo |
| Bluetooth | computer-periferica senza filo | 10 Mbit/s | tastiere, mouse, cuffie wireless, orologi smart |
| Wifi | computer-computer senza filo | 10 Gbit/s (max) | Connessione di rete LAN |
| USB | computer-periferica a filo | da 5Gbit/s (USB3) a 40Gbit/s (USB4) | Come bluetooth ma anche schermi, memorie esterne. Oggi lo standard è con spina tipo C ma sono ancora diffuse le spine tipo A. |
| LAN | computer-computer con filo | da 10 Mbit (anni 90) a 1 Gigabit | Connessione di rete LAN |
Reti dati e Internet
La connessione più importante col mondo esterno è la rete Internet, una rete globale di computer che permette alle persone di comunicare ed accedere a molti servizi digitali: informazione, istruzione, gioco, streaming di film, comunicazione. E’ una tecnologia sia informatica che 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 ed unico. La rete va pensata come una struttura complessa organizzata in reti locali, che fanno parte di reti geografiche, che a loro volta sono parte di reti nazionali, fino ad arrivare alle reti internazionali. La comunicazione avviene tramite molti tipi di canali fisici: via cavo elettrico, tramite fibra ottica, con la Wifi e con la rete cellulare (es. 5G). Le grandi reti internazionali che collegano i continenti si appoggiano a grandi cavi sottomarini appoggiati sul fondo degli oceani, e più recentemente si usa anche la rete di connessione satellitare, tramite reti di satelliti che comunicano tra loro e a terra.

Per gestire questa infrastruttura la rete è composta da nodi di smistamento in cui giocano un ruolo importante dei mini computer chiamati router. Il router è un dispositivo, un vero e proprio piccolo computer, che serve per gestire comunicazioni nella rete Internet. Ve ne sono di casalinghi per gestire la rete di casa, ma possono essere anche molto più grandi e potenti per connettere migliaia di dispositivi, città ed aree geografiche più vaste. Il modem è invece un dispositivo che serve per connettere due reti che hanno tecnologie diverse (ad esempio la fibra ottica, oppure per accedere alle reti cellulari).
Qualunque sia la tecnologia fisicamente utilizzata, la comunicazione nella rete avviene tramite pacchetti dati che passano tra i nodi della rete (cioè computer e router).
