Architettura di un sistema di elaborazione
N. 3
I Bus presenti nel PC (Unità 4-5)
Nei sistemi elettronici e nei computer in particolare, i componenti del sistema colloquiano tramite linee
dedicate dette BUS. Il bus è quindi un canale che permette a periferiche e componenti del sistema di
dialogare tra loro. Un solo bus può collegare tra loro più dispositivi.
In particolare il flusso delle informazioni, costituito da dati, codici e indirizzi, viaggia su linee a più fili,
ognuno dei quali trasporta l’informazione di un bit.
Fisicamente, il bus è composto da tanti conduttori elettrici lungo i quali l’informazione viene
trasformata sotto forma di segnali elettrici binari.
Le connessioni elettriche del bus possono essere realizzate direttamente su circuito stampato. In questo
caso, il bus è riconoscibile sulla scheda madre perché si nota sul circuito un nutrito gruppo di piste
compatte che vanno a toccare i vari componenti della scheda.
Il bus è quindi una linea a cui sono contemporaneamente connesse le unità del calcolatore e che
consente il trasferimento di dati tra tali unità.
Il bus si divide in tre bus minori:
• bus dati
• bus indirizzi
• bus controlli
Il Bus dei dati è l’insieme delle linee che trasportano i dati ed è usufruibile da tutti i componenti
del sistema, sia in scrittura sia in lettura. E’ bidirezionale, serve ad esempio a trasferire il contenuto
di una cella di memoria in un registro del processore o, viceversa, per scrivere il contenuto di un
registro in una locazione di memoria.
Il Bus degli indirizzi è l’insieme delle linee che trasportano gli indirizzi. È il bus attraverso il quale la
CPU decide in quale indirizzo andare a scrivere o a leggere informazioni; sia le celle di memoria
(RAM) sia le periferiche di I/O (Input/Output) sono infatti divise in zone, ognuna delle quali ha un dato
indirizzo. Dopo aver comunicato l'indirizzo tramite questo bus, la scrittura o lettura avviene
normalmente tramite il bus dati. Naturalmente questo bus è fruibile in scrittura solo dalla CPU ed in
lettura dagli altri componenti, in quanto tramite questo bus viene dato solo l'indirizzo della cella, che è
deciso dalla CPU. È monodirezionale.
Il bus controlli è un insieme di collegamenti il cui scopo è coordinare le attività del sistema; tramite
esso, la CPU può decidere quale componente deve scrivere sul bus dati in un determinato momento,
quale deve leggere l'indirizzo sul bus indirizzi, quali celle di memoria devono scrivere e quali invece
leggere, etc. Infatti la memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico
bus condiviso; questo significa che senza un controllo da parte dalla CPU si verrebbero a creare dei
conflitti e delle collisioni. Il bus controlli è bidirezionale: trasferisce all’unità stabilita l’istruzione da
eseguire e poi trasmette all’unità di elaborazione il segnale dell’avvenuto espletamento dell’operazione.
Vediamo di rappresentare tutto ciò in particolare:
1
L’ampiezza dei bus ….(pag. 48,49,51)
Il compito dei bus è trasferire dati; la misura di questa capacità, la rapidità di trasferimento, è misurata
in bps (bit per secondo).
L 'ampiezza del valore che si può leggere o scrivere con un'unica operazione (parola o word) dipende
dall'ampiezza del bus dati.
Le caratteristiche principali di un bus sono la capacità della linea e la velocità di trasmissione; la prima
indica la quantità di dati elementari (binari) che possono essere trasmessi in ogni operazione, mentre la
seconda è legata al tempo medio impiegato da due unità per scambiarsi un dato.
A seconda del microprocessore:
- il bus dati può avere 8,16,32,64,80 linee (bit). Il numero dei bit del bus dati rappresenta la massima
dimensione dei dati che è in grado di elaborare con una singola istruzione;
- il bus indirizzi rappresenta lo spazio fisico di indirizzamento, inteso come spazio degli
indirizzi disponibili. Il bus degli indirizzi di solito ha 16, 20, 24, 32 linee (bit), quindi
lo spazio di indirizzamento di un microprocessore è rispettivamente di 64KB, 1MB, 16MB e 4GB.
Poiché nei sistemi che operano in base binaria le quantità vengono solitamente espresse in
termini di potenze di 2, vale la seguente corrispondenza:
1 KB → equivale a 210 byte = 1024 byte
1 MB → equivale a 220 = 210× 210 = 1024 × 1024 byte
1 GB → equivale a 230 = 210 × 210 × 210 = 1024 × 1024 × 1024 byte
m
Un bus indirizzi con m≥1 linee contiene 2 indirizzi (numerati da 0 a 2
Su un bus dati con n linee si possono scambiare parole da n bit.
m-1
).
Lo spazio viene ripartito tra memoria RAM, ROM e interfacce di I/O.
Il collegamento fra le diverse unità si basa sui concetti di master-slave (pag. 55).
In prima istanza, il collegamento contemporaneo di tutti i dispositivi potrebbe apparire poco
facilmente gestibile: si pensi al caso in cui la CPU stia accedendo alla memoria per
leggere un dato e contemporaneamente da un’interfaccia input/output siano in arrivo dati che
devono transitare su questo stesso bus.
La soluzione è stata identificata attribuendo ad un solo componente del sistema, la CPU
appunto (master), la gestione dell’intero sistema ed in particolare l’accesso al bus, impedendo
dunque alle unità periferiche (slave) la possibilità di accedervi autonomamente.
Ogni trasferimento di dati avviene sotto il controllo della CPU, che identifica la sorgente e la
destinazione dei dati mediante il loro indirizzo, e sincronizza con i segnali di controllo i
dispositivi che devono colloquiare.
Così il bus viene utilizzato evitando qualsiasi collisione fra i dati di competenza delle diverse
periferiche.
Alcuni dispositivi sono in grado di comportarsi sia come master sia come slave e in un certo istante può
esistere un solo master, per cui è necessario regolare l’accesso ai bus attraverso un’operazione chiamata
arbitraggio. L’arbitraggio può essere gestito da un dispositivo chiamato arbitro del bus (arbitraggio
centralizzato) o dai dispositivi stessi che si autoregolano (arbitraggio distribuito).
2
I bus si possono dividere in due categorie: bus interni alla CPU e bus esterni, secondo la
seguente figura
I bus possono essere ancora suddivisi in altre due categorie: sincroni e asincroni
Bus sincroni: è previsto un segnale di sincronizzazione (clock) che permette di gestire la
temporizzazione delle comunicazioni.
Bus asincroni: la comunicazione è gestita senza segnali di sincronia, attraverso lo scambio dei
messaggi, sfruttando al meglio le prestazioni di ciascun dispositivo che utilizza i bus.
Ma come avviene la lettura o la scrittura di un dato dalla memoria?
3
Per eseguire un operazione di lettura il processore fornisce sul bus indirizzi (arancio) l'indirizzo della
locazione desiderata (PASSO1) e sul bus di controllo (verde) un segnale per abilitare la Ram
all'operazione di lettura (PASSO2), quindi riceve dalla Ram sul bus dati (azzurro) il valore presente in
quella locazione (PASSO3) e sul bus di controllo (verde) un segnale per confermare l’avvenuto
espletamento dell’operazione (PASSO4).
Per eseguire una operazione di scrittura il processore fornisce sul bus indirizzi (arancio) l'indirizzo
della locazione desiderata (PASSO1), sul bus dati (azzurro) il valore da memorizzare in memoria
(PASSO2) e sul bus di controllo (verde) un segnale per abilitare la Ram all'operazione di scrittura
(PASSO3), quindi la Ram preleva il dato da memorizzare dal bus dati (azzurro) e lo scrive in memoria
(PASSO4) e sul bus di controllo (verde) invia un segnale per confermare l’avvenuto espletamento
dell’operazione (PASSO5) .
Chi gestisce il processo di elaborazione è il microprocessore: quando si parla di lettura il dato entra nel
microprocessore, quando si parla di scrittura il dato esce dal microprocessore.
4
Esistono sul BUS due linee di controllo molto importanti:
- INTR (Interrupt Request) è una linea utilizzata dalle unità di I/O per comunicare al processore di
interrompere l’attività in corso perchè si deve gestire un trasferimento di dati
- INTA (Interrupt Acknowledge) è una linea gestita dal processore che serve ad avvisare il dispositivo
di I/O che il processore è pronto a gestire il trasferimento.
Quindi, alle operazioni che devono essere ripetute per ciascuna istruzione contenuta in un programma,
in dettaglio possiamo considerare le due linee di interrupt:
1)
2)
3)
4)
5)
6)
Il processore legge l’istruzione dalla memoria (fetch)
La decodifica (decode)
Calcola gli indirizzi degli operandi in memoria
Carica gli operandi dalla memoria (fetch)
Esegue l’istruzione (exec)
la CPU verifica, leggendo lo stato di un apposito registro del dispositivo, la disponibilità della
periferica. Quindi richiede la lettura del dato
7) La periferica di I/O carica i dati nel proprio buffer e, quando deve trasmettere i dati al
processore, attiva la linea INTR
8) Il processore analizza se ci sono richieste di interruzioni (INTR) da parte di qualche
dispositivo di I/O
9) Se ci sono richieste termina l’istruzione in corso, gestisce l’eventuale evento dando l’OK
(attiva l’INTA) e attende i dati dalla periferica
10) La periferica si identifica e trasmette il dato
11) Il processore calcola la posizione dell’istruzione successiva a quella che stava trattando prima della
richiesta di interrupt e ricomincia dal passo 1.
(Nota: nella successiva dispensa Gestione I/O il concetto verrà approfondito ulteriormente)
Il Clock
Come abbiamo visto precedentemente, il computer funziona mediante gli impulsi di un clock, ogni
operazione infatti non può essere eseguita in qualsiasi momento, casualmente, ma è regolata da impulsi
regolari. Il clock genera impulsi di tensione di una certa frequenza, misurata in MHz o in GHz, ma non
tutti i componenti funzionano alla stessa frequenza, è per questo che esistono diversi clock, per
scopi diversi. Il clock più conosciuto è quello del processore, indica cioè la frequenza di lavoro del
processore. Tuttavia il clock più importante è quello del bus front-side (FSB), (l‘FSB è quella parte di
bus di sistema che mette in collegamento la CPU con qualunque altra periferica installata nel computer,
ad esempio modem interni, scheda video, scheda audio, ecc....), ovvero il clock di sistema, da questo
clock dipendono le frequenze di lavoro del processore e dei vari bus.
Il clock del processore lavora sincronizzandosi su un multiplo di quello del bus di sistema. I pin del
processore si occupano di mantenere la sincronia fra i due clock.
Molti dispositivi possiedono un clock: le unità disco hanno bisogno di un clock per funzionare, la
frequenza di questo deve essere doppia rispetto alla velocità con cui gira il disco; lo schermo, per
regolare la frequenza di refresh; il modem, per inviare e ricevere i bit a una velocità adeguata.
5
Tipi di Bus
Se si vogliono aggiungere componenti ad un sistema, esistono dei connettori disponibili, detti slot di
espansione del sistema, che fanno parte del bus e nei quali vengono inserite le schede di interfaccia.
Quando queste schede vengono inserite, si collegano elettricamente al bus e quindi diventano a tutti gli
effetti parti integranti del sistema.
(bus di espansione: che si estendono all’esterno dell’unità funzionale e che la collegano alle altre
unità funzionali (CPU, Memoria e Unità Periferiche)
Bus PCI
Il bus PCI (Peripheral Component Interconnect interconnessione componente periferica), è
l'interfaccia sviluppata da Intel intorno agli anni
Novanta per collegare al computer le più svariate
periferiche.
bus e garantire che tutti i dispositivi possano
dialogare tra loro.
E’ il bus attualmente più diffuso: è un bus a 32 bit
con larghezza di banda a 133 MBytes/s, generata
da una trasmissione dati con frequenza pari a
33MHz. Supporta il bus mastering, infatti il
trasferimento dei dati per l’I/O non è controllato dal
microprocessore ma da uno speciale circuito, detto
chipset, che è un insieme di circuiti per gestire il
Sebbene l'interfaccia PCI abbia fatto segnare un notevole passo avanti nell'evoluzione dei pc, sia per il
costo contenuto sia per le buone (e inizialmente sufficienti) prestazioni che ne hanno decretato la
diffusione di massa rimpiazzando l'ISA, i primi limiti si sono fatti sentire poco dopo in sistemi come
server e workstation, dove vi è bisogno di un enorme larghezza di banda per la trasmissione dei dati. Fu
così che si iniziò a cercare e progettare sostituti per questa interfaccia: ad esempio il PCI a 66MHz, la
diretta conseguenza del classico PCI: si caratterizza per un aumento della frequenza da 33 a 66MHz,
per poi essere sfruttato sia con interfaccia a 32 che a 64bit per una banda massima teorica di
528MBytes/s.
Bus PCI Express (PCIe)
Il PCI Express è il successore (seriale) del bus di espansione PCI (parallelo), introdotto con i primi
Pentium, che ha preso il posto della vecchia interfaccia per schede grafiche, l'AGP.
L'architettura è completamente differente dal bus PCI classico.
La sua caratteristica seriale aiuta a semplificare
il layout delle schede madri ed è costituito da
una serie di canali. Tali canali possono essere
aggregati secondo le esigenze rendendo di fatto
il sistema molto flessibile. La banda a
disposizione di ciascun canale è dedicata e
quindi non condivisa con gli altri. Un canale
PCIe (detto x1) ha una banda disponibile di
266 MByte/sec. Pertanto, nelle moderne schede
video che utilizzano 16 canali PCIe la banda a
disposizione è di circa 4 GByte/sec (il doppio
del bus AGP 8x).
6
Slot PCI Express (Partendo da sopra: x4, x16, x1 e
x16), comparati ad uno slot PCI tradizionale a 32 bit
(ultimo), in una DFI LanParty nF4 SLI-DR
Plug and Play
Per identificare in modo univoco una scheda all’interno di un pc, il microprocessore deve conoscere 3
parametri:
•
•
•
L’indirizzo di interfaccia, o porta
Il numero di interrupt, ovvero quale linea deve utilizzare per effettuare l’interrupt
Che modalità di comunicazione ha con le periferiche, cioè se la lettura/scrittura dei dati in
memoria avviene passando dal microprocessore o dal DMA (in quest’ultimo caso occorre
conoscere anche il canale di comunicazione con la memoria)
Per installare una scheda, era necessario che l’utente conoscesse i parametri d’impostazione, quindi
occorreva conoscere bene la configurazione della macchina per evitare il blocco del sistema.
Già con la versione di Windows ’95 sono state rese disponibili un certo tipo di schede in grado di
dialogare direttamente con il sistema operativo, il quale, conoscendo la configurazione hardware della
macchina, assegna automaticamente i parametri richiesti.
La tecnologia fu indicata con il termine plug and play (collega e utilizza) e con essa anche utenti molto
inesperti possono installare nuove schede di espansione.
In genere per scheda plug and play si intende una scheda che possa essere messa in uso
semplicemente collegandola alla scheda madre del computer mentre il computer stesso è spento e
riavviando.
Il plug and play ha permesso soprattutto di facilitare l'installazione delle periferiche, rendendo
automatici il caricamento dei driver e l'allocazione delle risorse, semplificando quindi l'interazione con
l'hardware da parte dell'utente.
Con il plug and play, il BIOS prima ed il sistema operativo poi si fanno carico di effettuare queste
scelte per conto dell'utente, in maniera del tutto trasparente all'utente.
Standard Usb
Nei personal computer, i primi dispositivi diffusi su larga scala ad essere "veramente" plug and play
(cioè anche hot plug, un'interfaccia che permette il collegamento e/o lo scollegamento di un dispositivo
anche a sistema avviato.) sono state le periferiche USB.
7
L'Universal Serial Bus (USB) è uno standard
di comunicazione seriale che consente di
collegare diverse periferiche ad un computer.
Le principali caratteristiche di Usb sono, oltre al basso costo, la velocità di trasferimento dei dati fino a
12Mbps (Megabit al secondo) e un collegamento fino a 127 dispositivi periferici.
Il sistema USB consiste in un singolo host (gestore) e molte periferiche collegate da una struttura ad
albero attraverso dei dispositivi chiamati hub (concentratori). La lunghezza massima che può avere il
cavo senza che il segnale diventi troppo debole è pari a 5 m; oltre questo limite è necessario ricorrere
ad uno o più hub attivi che amplifichino il segnale. Le specifiche prevedono il collegamento
consecutivo al massimo di 5 hub.
Standard ATA
Consiste in un'interfaccia standard per la
connessione di dispositivi di memorizzazione
quali hard disk e unità CD-ROM all'interno dei
personal computer. Sono molti i termini
utilizzati per designare tale standard, comprese
abbreviazioni e acronimi quali IDE, EIDE,
ATAPI. Gli standard ATA permettono
collegamenti con lunghezze di cavo comprese
tra 45 e 90 cm, quindi l'utilizzo prevalente per
tale tecnologia è per le memorie di massa
all'interno dei personal computer.
I cavi Parallel ATA permettono il trasferimento
di dati con 16 o 32 bit per volta.
Standard SATA
Il Serial ATA (abbreviazione dell'inglese
"Serial Advanced Technology Attachment"), in
sigla SATA, è una interfaccia per computer
generalmente utilizzata per connettere hard disk
o drive ottici (masterizzatori e/o lettori di DVD,
CD, ecc.)
Il Serial ATA è l'evoluzione dell'ATA,
rinominato Parallel ATA (PATA) in seguito
alla nascita del Serial ATA in modo da evitare
fraintendimenti, rispetto al quale il Serial ATA
presenta tre principali vantaggi: maggiore
velocità, cavi meno ingombranti e possibilità di
hot swap (cioè la possibilità di collegare o
scollegare i dispositivi anche a computer
acceso, c'è bisogno però che anche la scheda
madre supporti questa modalità).
8
Gli hard disk esterni di ultima generazione
possono essere collegati al computer tramite
l'interfaccia ESATA (External SATA),
un'interfaccia standard utilizzata per connettere
dispositivi esterni (ad esempio gli hard disk
esterni), più veloce ed efficiente rispetto
all'USB.
Bus SCSI
L'interfaccia SCSI (Small Computer System Interface), che si
pronuncia “Scasi”, viene per lo più usata per la comunicazione
con unità hard disk e unità nastro di memorizzazione di massa,
ma anche per connettere una vasta gamma di dispositivi, come
scanner d'immagini, lettori e scrittori di CD (CD-R e CD-RW),
lettori DVD. In effetti lo standard SCSI è stato ideato per
favorire l'intercambiabilità e la compatibilità dei dispositivi
(tutti, almeno in teoria). Esistono anche stampanti SCSI.
I dispositivi dialogano attraverso il bus SCSI collegato al computer attraverso un controllore: questo
dispositivo viene detto SCSI host adapter o semplicemente controllore SCSI.
In passato l'interfaccia SCSI era molto diffusa in ogni tipologia di computer, mentre attualmente trova
un vasto impiego solamente in workstation, server e periferiche di fascia alta (cioè con elevate
prestazioni).
I computer desktop e portatili sono invece di solito equipaggiati con l'interfaccia ATA/IDE (acronimi
rispettivamente di Advanced Technology Attachment e Integrated Drive Electronics) per gli hard disk e
con l'interfaccia USB (Universal Serial Bus) per altre periferiche di uso comune.
Irda
La porta a infrarossi (IRDA) è una porta seriale senza fili che funziona attraverso raggi infrarossi, come
i telecomandi dei televisori. E’ bidirezionale e la velocità di trasmissione che riesce a raggiungere è
piuttosto bassa (9600 bit al secondo), proprio per questo è in grado di collegare tastiere e mouse ed
altre apparecchiature che non richiedono alte velocità. Recenti evoluzioni di questa porta hanno
aumentato la sua velocità fino a 4Mbps; il trasferimento dei dati è possibile solo se le porte “si vedono”
e la loro distanza non supera i 2-3 metri.
Bluetooth
La 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.
9
Curiosità: Attualmente più di un miliardo di dispositivi montano un'interfaccia Bluetooth. I telefoni
cellulari che integrano chip Bluetooth sono venduti in milioni di esemplari e sono abilitati a riconoscere
e utilizzare periferiche Bluetooth in modo da svincolarsi dai cavi. BMW è stato il primo produttore di
autoveicoli a integrare tecnologia Bluetooth nelle sue automobili in modo da consentire ai guidatori di
rispondere al proprio telefono cellulare senza dover staccare le mani dal volante. Attualmente molti
altri produttori di autoveicoli forniscono di serie o in opzione vivavoce Bluetooth che integrati con
l'autoradio dell'automobile permettono di utilizzare il cellulare mantenendo le mani sul volante a quindi
aumentando la sicurezza della guida.
La porta seriale
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 (full-duplex), sia dal computer alla
periferica che viceversa. L’utilizzo principale della seriale avviene nel caso di collegamenti con
periferiche attive, come mouse, modem, scanner, penne ottiche; il connettore della porta seriale ha 9
punti di contatto (pin): uno serve per i bit di trasmissione, uno per i dati, uno per il collegamento a
terra, gli altri per lo scambio di particolari segnali fra le periferiche ed il PC. I segnali riguardano, ad
esempio, lo stato di “pronto a ricevere” della periferica o del computer e quello di “richiesta di invio”.
La porta parallela
La porta parallela si usa quasi sempre per la stampante, ma è 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: i bit viaggiano parallelamente su otto fili.
La porta parallela consente il transito in una sola direzione (half-duplex), dal computer alla periferica;
viene usata quasi esclusivamente per il collegamento con le stampanti. I connettori della porta parallela
hanno 25 pin, otto dei quali per l’invio dei dati e gli altri per l’invio e lo scambio di segnali (anche se
non può ricevere dati, la porta parallela può ricevere segnali dalla periferica, come il segnale di
“occupato” o quello di “carta esaurita”). La trasmissione parallela non consente un controllo
sull’identità fra i dati trasmessi e quelli ricevuti, quindi, pur garantendo una maggiore velocità,
permette solo collegamenti a breve distanza.
10