Il BUS - Digididattica

Transcript

Il BUS - Digididattica
Il BUS
La trasmissione parallela: il Bus
Come vedremo la comunicazione su medie e lunghe distanze prevede generalmente un tipo di
trasmissione seriale. Sulle brevi distanze la trasmissione parallela riveste comunque un ruolo di
primo piano poiché consente velocità di trasmissione molto elevate.
Studieremo dapprima questo particolare tipo di trasmissione. Vedremo, successivamente, come
interfacciare una linea parallela (caratteristica di ogni elaboratore) con una linea seriale
(caratteristica di una rete).
I PC debbono la propria versatilità ai loro Slot di espansione. Inserendo una scheda nello Slot
appropriato, è possibile trasformare il Computer in uno strumento atto a soddisfare esigenze di
qualsiasi genere (naturalmente entro certi limiti).
Concettualmente il concetto di Bus non è affatto complicato, anzi, di per sé, risulta estremamente
intuitivo anche per i non addetti ai lavori: “un insieme di conduttori (linee del bus) in grado di far
transitare informazioni (Dati, Indirizzi, Interruzioni, Controlli, Comandi)” il tutto in dipendenza di
un sincronismo particolare denominato Clock.
BUS
Tuttavia i vari dispositivi presenti in un Elaboratore necessitano di diversi accorgimenti (e diversi
Chip) tesi ad ottimizzare il trasferimento dei dati. Diversamente dovremmo accontentarci di un
Sistema Base estremamente veloce e flessibile ma che è in grado di offrire solo in minima parte le
potenzialità di cui si è parlato all’inizio di questo paragrafo.
Un Bus, in generale, è costituito da diverse linee di transito che, come vedremo tra poco, è quasi
sempre opportuno suddividere concettualmente in tre gruppi fondamentali: le linee dei dati, le linee
degli indirizzi, le linee di controllo.
•
•
•
Le linee dei dati sono destinate a far transitare informazioni che sono essenzialmente parole
di memoria. Per questo motivo si utilizza un numero di linee adeguato: 8, 16, 32 ….
Le linee degli indirizzi, dovendo spesso contenere indirizzi di memoria vengono scelte
anch’esse in numero adeguato: 20, 24, 32 ….
Le linee di controllo possono contenere informazioni di svariata natura, dai bit di parità
(per il controllo del transito corretto dei dati), alle richieste di Interruzione (che abbiamo
già visto), alle informazioni relative allo scambio dei dati fra periferiche (ad esempio
nell’Handshaking).
Il Bus, come si è detto, è il collegamento fisico tra i dispositivi presenti nell’Elaboratore.
Il punto di partenza del Bus del PC originale era il Bus Locale del Processore 8088.
Nei primi PC il Bus era rappresentato da una semplice espansione del Bus interno del
microprocessore. Il Bus espandeva la piedinatura del chip in modo che potesse collegarsi ai
1
dispositivi che, allora, non avevano le pretese di apertura e le necessità di espansione che
caratterizzano i moderni Elaboratori.
Quando i processori raggiunsero velocità superiori ai 4,7 MHz dei primi PC, per passare agli 8
MHz dei gloriosi 286, fece la sua apparizione il Bus AT.
Caratteristiche fondamentali di questo Bus erano:
•
•
•
•
16 linee per i dati
24 linee per gli indirizzi ( indirizzamento fino a 16 MB di memoria)
Altre linee per il controllo IRQ e DMA (Direct Memory Access)
8 Mhz di frequenza di clock.
Il Bus ISA
Nato sulla base delle specifiche del Bus AT (1984), il Bus ISA (Industry Standard Architecture)
viene approvato formalmente dall’Istituto IEEE nel 1987.
Per motivi di compatibilità, purtroppo, la frequenza di clock doveva essere mantenuta a 8 Mhz.
Per questo motivo si ricorse ad un secondo Bus destinato a velocizzare gli scambi tra il processore e
la memoria.
Quando, nel 1991, i circuiti video cominciarono ad aver bisogno di trasferimenti di dati a velocità
elevata (132 MB/s), il Bus ISA, rivelandosi inadeguato (poteva trasferire solo 8 MB/s), fu
necessario aggiungere un terzo Bus (Local Bus) che collegava direttamente al CPU al sistema di
visualizzazione montato sulla Scheda Madre.
Con l’introduzione del Pentium a 64 bit (1993), VESA sviluppò quello che sarebbe dovuto
divenire uno Standard: il VL Bus ver. 2.
Tuttavia questo nuovo Standard non riuscì mai ad affermarsi. Le aziende avevano ormai spostato
la loro attenzione all’architettura PCI, lo Standard attuale.
Nonostante questo, il Bus ISA rappresenta, ancora oggi, la struttura classica per la definizione e la
rappresentazione, a livello non solo concettuale, di Bus.
Tuttora presente, per motivi di compatibilità, nelle macchine attuali, viene utilizzato insieme al
Bus PCI. Anche se la tendenza sia quella di eliminare definitivamente lo Standard ISA dai nostri
Computer, molti sostengono che, in ogni caso, lo Standard ISA rimane l’unico vero modello di Bus
di espansione.
D’altra parte, la comprensione della struttura ISA facilita enormemente lo studio del Bus PCI.
2
Struttura del Bus di espansione
Per fornire un modello di Bus faremo riferimento alla struttura del Bus ISA servendoci delle sue
caratteristiche principali.
Nella figura che segue vengono rappresentate alcune delle linee del Bus che svolgono funzioni
fondamentali per il traffico delle informazioni.
SD 0
SD 1
.
.
.
SD 15
SA 0
SA 1
.
.
.
SA 23
CLK
REFRESH
MEMR
MEMW
I/O R
I/O W
IRQ3
IRQ4
.
.
.
IRQ15
DACK0
DACK1
DACK7
.
.
.
DRQ0
DRQ1
DRQ7
.
.
.
I/O CH CK
I/O CH RDY
Struttura del Bus ISA – Le principali linee del Bus
3
Le linee da SD0 a SD15 sono le linee System Data. Su di esse transitano parallelamente i 16 bit
dei dati.
Le linee da SA0 a SA23 sono le linee System Address. Su di esse transitano parallelamente 24 bit
d’indirizzo (possibilità d’indirizzamento fino a 16 Mbyte).
La linea CLK è la linea di Clock che trasporta il segnale da 8 a 10 MHz.
La linea REFRESH trasporta il segnale per il Refresh Memory.
La linea MEMR è la linea Memory Read. Indica alla memoria di leggere i dati dal Bus.
La linea MEMW è la linea Memory Write. Indica alla memoria di depositare i dati sul Bus.
La linea I/OR è la linea I/O Read. Indica alla periferica attualmente selezionata di leggere i dati
dal Bus.
La linea I/OW è la linea I/O Write. Indica alla periferica attualmente selezionata di depositare i
dati sul Bus.
Le linee da IRQ3 a IRQ15 sono le linee di Interrupt Request che indicano al processore
l’interruzione da servire. Più periferiche possono generare una medesima interruzione. E’ questo il
motivo per cui vengono usate le interruzioni vettorizzate (si consulti il paragrafo sulle interruzioni).
Le linee da DACK0 a DACK7 sono le linee di DMA Acknowledge. Contengono i segnali di
“ricevuto” durante il processo di Accesso Diretto in Memoria.
Le linee da DRQ0 a DRQ7 sono le linee di DMA ReQuest. Contengono i segnali di “richiesta”
durante il processo di Accesso Diretto in Memoria.
La linea I/OCHCK è la linea I/O Channel Check.. Segnala una NMI (Interruzione Non
Mascherabile).
La linea I/OCHRDY è la linea Channel Ready. Indica a un dispositivo la disponibilità del Bus.
Se questa linea è alta (stato logico 1) il Bus è disponibile. Quando questa linea è bassa indica al
dispositivo di inserire degli stati di attesa (wait states).
Per motivi di sintesi alcune linee sono state omesse. Chi volesse approfondire le conoscenze su
questo standard può consultare la pagina Web www.techfest.com/hardware/bus/isa.htm.
4
Il Bus PCI
Lo scopo originale per il quale venne inizialmente introdotta la tecnologia PCI (Peripheral
Component Interconnect) era quello di facilitare le aziende produttrici di Chip Set e di Schede
Madri realizzando una struttura in grado di collegare fra loro, con estrema flessibilità, i Chip della
MotherBoard.
Il nome stesso “Interconnessione tra Componenti Periferici” non lascia dubbi sulle funzioni
specifiche di supporto che questo Standard prometteva per connettere dispositivi diversi in maniera
semplice e veloce.
Nel Luglio 1992 Intel Corporation presenta la tecnologia PCI. In questa prima versione lo
Standard PCI risultava compatibile con gli altri Bus che allora andavano per la maggiore.
L’interesse per questa tecnologia, che, come già osservato, facilitava enormemente la vita ai
produttori di chip, divenne subito altissimo.
Nel Maggio 1993, proprio quando il Vesa Local Bus, noto come VL Bus, stava per decollare come
supporto fondamentale per i nuovi microprocessori Pentium, Intel propose la seconda versione di
PCI (la cosiddetta “specifica PCI 2.1”). Il nuovo progetto era diverso da VL Bus, inoltre era, con
esso, incompatibile.
Il successo di quello che è ormai noto come Bus PCI non era, però, semplicemente legato ad
eleganti “astuzie” di mercato. La versatilità, ossia la possibilità di offrire prestazioni autonome
rispetto al sistema, e la tolleranza per il “classico” Bus ISA hanno fatto la fortuna di questa
tecnologia per conquistare con trasparenza i consensi del pubblico.
Caratteristiche fondamentali
Il Bus PCI può essere pensato come il Bus di domani. Questo per vari motivi. Il Bus PCI è veloce
(33, 66, 133 Mhz). Il Bus PCI è indipendente dal microprocessore (se l’Industria dei
microprocessori dovesse abbandonare lo Standard Intel, PCI sopravviverebbe). Il Bus PCI non
necessita dell’appoggio su altri Bus (come, ad esempio, accade per VL Bus), ma può gestire
autonomamente anche le espansioni.
•
•
•
•
Velocità. Il Bus PCI può lavorare in modo sincrono o asincrono. In modo sincrono viene
prelevato il clock della CPU ed eventualmente “demoltiplicato” (ad esempio, la CPU lavora
a 66 Mhz e il PCI a 33 Mhz). In modo asincrono può lavorare, con la CPU e/o con le
periferiche utilizzando opportune linee del suo Bus per sospendere momentaneamente la
transazione corrente; questo si ottiene disponendo su tali linee di controllo segnali di
“richiesta”, di “pronto” e di “attesa”( si veda oltre: arbitraggio del Bus).
Multiplexing. Vengono utilizzate 32 linee per il trasferimento dei dati. Al fine di evitare un
numero eccessivo di queste linee, le stesse vengono utilizzate anche per il trasferimento
degli indirizzi. Avviene cioè un multiplexaggio (veloce) ogniqualvolta si debba immettere
sul Bus un Indirizzo oppure un dato. Per questo motivo le 32 linee vengono nominate come
AD00, AD01, ……, AD31 (Dove AD sta per Address-Data).
Bursting. Per velocizzare il transito dei dati lungo le linee del Bus, viene collocato (in
multiplexing) un singolo indirizzo che viene poi seguito da una raffica (bursting) di dati. In
modalità Burst si ottengono prestazioni di 132 MB/s.
Ampiezza. L’ampiezza del Bus dati (32 linee) consente il transito parallelo di 2 Word per
5
•
volta. Nei PCI a 64 bit (PCIX) vengono fatte transitare ben 4 Word alla volta.
Tensione. Il Bus PCI anticipa la logica delle tensioni ridotte. Utilizzando 3,3 Volt invece dei
tradizionali 5Volt, si anticipa la tecnologia a risparmio energetico.
Arbitraggio del Bus e Interruzioni
Delle linee che compongono il Bus PCI, alcune vengono destinate al transito dei dati e degli
indirizzi (linee AD00 – AD31), altre svolgono funzioni di controllo.
Le linee REQ# e GNT# (Request e Grant) svolgono funzioni analoghe a quelle già trattate a
proposito del DMA Controller nel paragrafo relativo al DMA.
Il Bus Controller (Chip specifico che controlla il Bus PCI) invia un Grant (segnale elettrico sulla
linea GNT#) quando riceve un Request (segnale elettrico sulla linea REQ#).
Il dispositivo che riceve il Grant diviene così Master del Bus ossia ne prende il dominio secondo
un ordine di precedenze stabilito dal Bus Controller.
I segnali di Interrupt Hardware viaggiano sulle 4 linee di controllo INTA#, INTB#, INTC# e
INDD#. Si possono così definire 16 diversi Interrupt. Come per gli altri Bus, in caso di condivisione
di Interrupt da parte di più periferiche, si ricorre alle Interruzioni Vettorizzate (già trattate nei
precedenti paragrafi).
Conclusioni
Sebbene il Bus ISA rappresenti il vero modello tradizionale di Bus e il suo studio sia quindi un
fondamento per la comprensione delle tecniche utilizzate per gestire questo strumento di
connessione e di espansione, la conoscenza del Bus PCI è doverosa, viste le implicazioni con gli
Standard precedenti e vista la sua affermazione come risorsa fondamentale per le macchine attuali.
La sua odierna convivenza insieme al Bus ISA è dovuta solo a motivi di compatibilità con vecchi
sistemi. Gli slot di espansione ISA, che ancora troviamo su Computer recenti, dovrebbero,
gradualmente, essere totalmente soppiantati dalla sola presenza degli slot PCI.
Le prestazioni e i livelli di tensione, d’altronde, mostrano con chiarezza che la scelta sia obbligata.
Quello che rimane sono, sempre e comunque, i fondamenti: il Bus è il mezzo su cui transitano i dati
in formato elettrico, le tecniche utilizzate per migliorarne le prestazioni sono solo stratagemmi
mirati a perfezionarne l’architettura, mantenendola al passo con le macchine più recenti.
6