APPUNTI DI ARCHITETTURA DEGLI ELABORATORI
Il computer è un sistema digitale per l’elaborazione di dati, una macchina programmabile, cioè in
grado di ricevere ordini dall’esterno e di eseguirli.
In termini molto generali si può definire un computer come un dispositivo che:
1. riceve dati dall’esterno (input, cioè «messi dentro», ossia «in ingresso»)
2. li memorizza e li elabora
3. comunica i risultati dell’elaborazione (output, cioè «messi fuori», ossia «in uscita»).
Elaborare (in inglese to process) un’informazione significa trasformarla in un’altra informazione:
per esempio, si può elaborare un insieme di numeri (input) trasformandolo in un grafico (output). I
dati sono sequenze di bit, e il computer li elabora mediante un grande numero di operazioni molto
semplici (somme, differenze e confronti logici tra numeri) che il computer sa eseguire in modo
particolarmente rapido e affidabile.
L’hardware
Il computer è formato da dispositivi elettronici e meccanici che nell’insieme costituiscono
l’hardware. Il loro funzionamento è controllato da opportuni programmi che costituiscono il
software. Dell’hardware fanno parte gli apparecchi elettrici, elettronici e meccanici necessari per
l’ingresso, l’uscita e l’elaborazione dei dati. Il microprocessore che esegue calcoli è un componente
hardware, come pure il ventilatore che evita il surriscaldamento dei circuiti integrati.
Il software
Il software organizza il funzionamento dell’hardware. L’hardware del computer, per svolgere il
proprio compito, deve ricevere istruzioni precise su come interagire con il mondo esterno e su come
elaborare, cioè trasformare, i dati ricevuti. Queste istruzioni sono fornite da programmi che
descrivono in dettaglio tutte le operazioni che il computer deve eseguire. Tali programmi
costituiscono il software, di cui riparleremo in dettaglio più avanti. I computer in commercio
contengono già il software detto sistema operativo (come per esempio Microsoft Windows o
gnu/Linux), che è essenziale per il funzionamento dell’hardware.
Esistono poi moltissimi altri programmi che fanno parte del software applicativo (come per
esempio Microsoft Office o OpenOffice); questi programmi ci consentono cioè di utilizzare il
computer per applicazioni specifiche come scrivere una lettera, preparare una presentazione,
comporre un brano musicale e così via.
L’interno di un calcolatore
I computer hanno in comune un modello fondamentale di elaboratore detto modello di Von
Neumann, ideato nel 1946 da John Von Neumann. Tale modello presenta le seguenti unità:
- CPU (Central Processing Unit, unità centrale di elaborazione), composta da ALU e CU
o CU (Control Unit, unità di controllo): presiede a tutte le operazioni, interpretando le
istruzioni prelevate dalla memoria e controllandone l’esecuzione attraverso l’invio di
appositi segnali alle altre unità;
o ALU (Arithmetic Logic Unit, unità aritmetico-logica): è dedicata alla esecuzione delle
operazioni aritmetiche e logiche;
- Memoria Centrale (Main Memory): nella memoria centrale avviene la registrazione sia dei
dati che delle istruzioni del programma in esecuzione
- Unità di input: dalle unità di ingresso si acquisiscono dati/programmi da trasferire in
memoria
- Unità di output: unità di uscita sulle quali vengono trasferiti i dati elaborati
Tutte le unità appena descritte comunicano tra di loro attraverso il bus.
Descriviamo in dettaglio le varie componenti:
CPU
L’unità centrale di elaborazione, chiamata comunemente processore, può considerarsi il cervello del
computer. E’ un circuito integrato che contiene due componenti: l’unità aritmetico logica (ALU) e
l’unità di controllo (CU). La ALU svolge operazioni aritmetiche (come sottrazioni o addizioni) e
operazioni logiche (come il confronto del valore di due dati).
La CU dirige il processo di elaborazione dei dati:



Interpreta le istruzioni e le trasferisce dalla RAM alla CPU
Indica alla ALU quale operazione eseguire in ogni momento
Traferisce i dati elaborati dalla ALU alla RAM
Il processore conserva i dati su cui sta operando in registri la cui capacità determina il numero di bit
che il processore può trattare simultaneamente. Tale numero prende il nome di parola (un multiplo
del byte) che nei computer odierni è a 64 bit.
Le istruzioni sono espresse in linguaggio macchina, codice interpretato dall’unità di controllo. Ogni
elaborazione complessa è suddivisa in operazioni più elementari effettuate durante un ciclo di
istruzione.
Le fasi di un ciclo di istruzione sono:
 Fetching (Prelievo di un’istruzione): la CU mette sul bus indirizzi l’indirizzo dell’
istruzione da prelevare dalla memoria principale. La RAM invia alla CPU l’istruzione
richiesta sul bus dati.
 Deconding (Decodifica dell’istruzione): L’unità di controllo decodifica l’istruzione
ricevuta per passarla alla ALU. che compie le operazioni necessarie.
 Executing (Esecuzione dell’istruzione): la ALU esegue le operazioni richieste.
Un’istruzione della CPU è descritta da una sequenza binaria di lunghezza variabile, di solito da 1 a
8 byte. Ciascun processore ha un particolare insieme di istruzioni che è capace di eseguire, stabilito
dai programmatori della casa costruttrice del processore.
Ciclo di clock
Ogni computer è dotato di un orologio interno detto orologio di sistema (System clock) che
garantisce la sincronizzazione tra la CPU e gli altri dispositivi. Il clock è un circuito che cambia fra
il valore zero e il valore uno e viceversa. Si definisce ciclo di clock il tempo trascorso fra due
variazioni di clock. Il ciclo deve svolgersi in un tempo tale da consentire a tutti i circuiti interessati
il completamento corretto dell'operazione effettuata.
Si chiama frequenza di clock il numero di clock nell'unità di tempo (al secondo). Maggiore sarà la
frequenza e maggiori sono le operazioni che si possono fare nello stesso tempo. La frequenza viene
misurata in Hertz: numero di cicli al secondo. Le moderne CPU sono molto veloci e, per misurare la
frequenza, vengono utilizzati multipli dell'unità di misura, così si parla di Mhz (megahertz ovvero
milioni di cicli al secondo) o Ghz (gigahertz ovvero miliardi di operazioni al secondo).
Ad esempio, un calcolatore con frequenza di clock di 1GHz possiede un ciclo clock di durata
1/1GHz = 10-9 sec = 1 nsec
Relazione tra istruzioni e cicli di clock: Alcune istruzioni, per essere completate, necessitano di più
cicli di clock. Ad esempio per le istruzioni di salto possono essere necessari 5 cicli di clock, per le
istruzioni di calcolo in virgola mobile 16 cicli di clock).
Le porte di input/output
Le porte sono degli alloggiamenti, di solito posti sul retro del pc, in cui vengono inseriti i cavi delle
periferiche per collegarle alla scheda madre. Le principali sono:
o Porte seriali: la porta seriale viene utilizzata per collegare dispositivi che non richiedono un
flusso di dati molto veloce; nella porta seriale i dati vengono inviati un bit alla volta: i bit
viaggiano in serie, l’uno dopo l’altro, sullo stesso filo; per trasmettere un byte, sono
necessari otto invii. La porta seriale consente il transito dei dati in entrambe le direzioni, sia
dal computer alla periferica che viceversa. Le porte seriali sono identificate dalla sigla
RS232. E’ tipicamente usata per la connessione di mouse ma anche nel caso di collegamenti
con periferiche attive, come modem, scanner, penne ottiche.
o Porte PS/2: la porta PS/2 serve per il collegamento del mouse e della tastiera; utilizzata
come alternativa alla porta seriale, prende il nome dal fatto di essere stata utilizzata per la
prima volta sull'IBM PS/2.
o Porte parallele: la porta parallela è adatta per qualunque dispositivo che richieda un flusso
di dati più veloce rispetto alla capacità della porta seriale; nella porta parallela i dati
vengono trasmessi un byte alla volta poiché i bit viaggiano parallelamente su otto fili. La
porta parallela consente il transito in una sola direzione, dal computer alla periferica; si
usava principalmente per collegare al computer le stampanti, ma oggi sono sempre meno
usate, sostituite dalle porte USB.
o Porte USB (Universal serial bus): la porta USB è adatta per connettere al computer
qualunque tipo di dispositivo purché compatibile col collegamento USB; è un’evoluzione
della porta seriale, infatti, il metodo di invio e ricezione dei dati è di tipo seriale e
o
o
o
o
o
o
bidirezionale, ma ad alta velocità (480 Mbps per la versione 2.0 e fino a 4,8 Gbps della
versione 3.0). Oltre alla velocità, i pregi che fanno delle USB le porte più diffuse oggi sono:
o la comodità: l’inserimento degli spinotti è molto semplice (altri tipi di porte
richiedono invece di inserirli con cura, orientandoli in modo particolare o
avvitandoli)
o si possono collegare e scollegare “a caldo” (cioè a computer acceso) apparecchiature
che vengono automaticamente riconosciute (funzione plug&play) dal computer
acceso
o la versatilità: consentono di collegare al computer dispositivi periferici di ogni tipo
(come stampanti, modem, dischi rimovibili, lettori multi-mediali, mouse, tastiera,
fotocamere digitali)
o l’alimentazione: con le porte USB si può anche trasferire potenza elettrica dal
computer alle periferiche.
A una singola porta USB si possono collegare fino a 127 dispositivi contemporaneamente;
perciò spesso tornano utili gli hub, che sono dispositivi con uscite USB multiple.
Porte SCSI (Small Computer System Interface): la porta SCSI è una porta ad altissime
prestazioni solitamente utilizzata per il collegamento di periferiche veloci come memorie di
massa, scanner, schede di acquisizione. E’ stata progettata per realizzare il trasferimento dei
dati in modalità parallela. Attualmente la versione Ultra-640 SCSI ha un trasfert rate pari a
640 MByte/s e consente il collegamento di 16 dispositivi al massimo, ma non il
collegamento a caldo. Attualmente si trova solo su workstation, server e periferiche di fascia
alta.
Porta a Infrarossi (IrDA, Infrared Data Association): è una porta seriale senza fili che
funziona attraverso raggi infrarossi, come i telecomandi dei televisori. E’ bidirezionale e la
velocità di trasmissione riesce a raggiungere in qualche dispositivo, i 16 Mbps. La velocità
più diffusa è 4Mbps; il trasferimento dei dati è possibile solo se le porte “si vedono” e la
loro distanza non supera i 2-3 metri.
Porta Bluetooth: consente di collegare diversi dispositivi (ad esempio cellulari, stampanti,
notebook o computer desktop dotati della stessa tecnologia) ad una distanza di 10 metri
senza fili e ad una velocità di 1 Mbps in maniera totalmente sicura ed affidabile.
Rappresenta una valida alternativa alla tecnologia a raggi infrarossi in quanto i dispositivi
non devono essere necessariamente orientati tra di loro per poter funzionare in maniera
corretta.
Porte di rete: collegano il computer alla rete locale o a un router. Lo standard è la presa
RJ45.
Porte FireWire (IEEE 1394): la porta Firewire consente il collegamento al computer di
periferiche ad alta velocità. E’ più veloce della USB ma meno diffusa perché brevettata dalla
Apple (quindi richiede un pagamento ai detentori del brevetto); si usa in particolare nei
dispositivi di acquisizione audio e video, con il vantaggio di poter collegare direttamente tra
loro le periferiche senza passare per il computer. Sviluppata da Apple, è presente su tutti i
computer Mac e su un numero crescente di nuovi PC. La velocità di trasferimento dati di
una connessione Firewire può arrivare a 800Mbps. Il Firewire supporta il collegamento a
caldo.
Porta video: viene utilizzata per connettere il monitor al computer.
o Porta HDMI (High Definition Multimedia Interface): standard per l’interfaccia di segnali
audio-video creato nel 2002 dai principali produttori di elettronica, tra cui Sony. Panasonic,
Toshiba, Hitachi). Attualmente siamo alla versione HDMI 2.0 con una velocità di 18 Gbps.
Molti computer moderni, specie di tipo portatile (notebook) sono privi di porte seriali e talvolta
anche della porta parallela. Volendo collegare un dispositivo che necessiti di una di queste
porte, si può ovviare al problema impiegando appositi adattatori, da connettersi a una porta
USB: essi ricreano, all'altro estremo del cavo, la porta desiderata (seriale, parallela, bluetooth,
infrarossi). Naturalmente se ne può usare più di uno, per disporre di diverse porte aggiuntive.
SERIALE
PARALLELA
BLUETOOTH
INFRAROSSI
USB 1.1
SCSI 1
SCSI 2
FIREWIRE (IEEE 1394)
ULTRA SCSI
ULTRA 2 SCSI
FIREWIRE 400
USB 2.0
FIREWIRE 800
ULTRA 3 SCSI
Velocità porte (in MB/s)
ULTRA SCSI 320
USB 3
ULTRA SCSI 640
0
100
200
300
400
500
600
700