Evoluzione del bus


I primi PC degli anni 80, basati su CPU Intel 8088, avevano un bus che aveva una velocita' di circa 4 MHz, con 8 linee per i dati, e 20 per l'indirizzo, poteva quindi trasportare un byte alla volta, ed ammetteva una memoria massima di 1 Mbyte.
Con i PC-AT del 1984, che avevano CPU 286, la velocita' del bus fu portata ad 8 MHz, con 16 bits per i dati e 24 per l'indirizzo, si poteva cosi' arrivare ad avere 16 Mbyte di memoria nel PC


Attorno al 1987, con le CPU Intel 386 DX, che avevano registri a 32 bits, l'IBM cerco' di egemonizzare il mercato dei PC; coi PC PS/2 introdusse un nuovo bus, il microchannel, dalle specifiche proprietarie, incompatibile con i vecchi bus, di questo periodo e' anche il sistema operativo OS/2, con cui l'IBM cercava di strappare mercato alla Microsoft. Il microchannel era un bus molto avanzato rispetto a quello che si era visto fino ad allora sul mercato; aveva 32 linee per i dati, 32 per l'indirizzo, e poteva indirizzare fino a 4 Gbyte di memoria, permetteva il bus mastering da parte delle diverse devices collegate e prevedeva un sistema Plug and Play

Il mercato reagi' male a questo tentativo IBM ed altri produttori introdussero lo standard ISA (Industry Standard Architecture), che riprendeva la struttura dei vecchi bus. Il bus ISA era a 16 bits ad andava a 8 Mhz, al bus, utilizzando appositi slot sulla scheda madre a 62 contatti, erano collegate le schede. In figura slots ISA

ISA slots

Ci furono poi vari tentativi di migliorare il bus, Compaq ed altri produttori proposero il bue EISA, con 32 bits per i dati; nel 1992, col PC 486 fu anche introdotto il bus VESA (Video Electronics Standard Association), un bus a 32 bits, che andava a 33 MHz, ed era compatibile con le vecchie schede ISA.

Nel 1993 l'Intel propone il bus PCI (Peripheral System Interconnect), questo bus prende piede con i PC pentium attorno al 1994 e resta in uso fin verso il 2005. Quando inizia ad essere soppiantato dal PCI-Express. Il bus PCI ha 32 bits per i dati, e va a 33 Mhz, permette il bus mastering ed il "burst mode", cioe' una modalita' di trasferimento in cui si trasmette un solo indirizzo per una serie di dati contigui.
Il bus PCI puo' avere 4 o 5 slot per schede (in figura) ed utilizza un suo sistema interno di 4 interupts per le schede (denominati #a,#B,#c,#D), che sono poi mappati dal BIOS sugli usuali IRQ. Il PCI prevede la configurazione automatica delle periferiche (Plug&Play)

PCI slots

Il bus PCI ha avuto varie evoluzioni, il PCI 2.0 e' del 1993, il 2.1 prevede un bus a 64 bits, il 2.2 puo' andare anche a 66 MHz, ma quasi tutte le schede madri per PC hanno un PCI a 33 Hz e 32 bits.
Nel 1999 viene introdotto il PCI-X, che va a 133 MHz, la versione 2.0 del PCI-X , del 2002, puo' andare a 266 e ce ne sono anche a 533 MHz. Il PCI-X e' usato per lo piu' sui server.

Il PCI finisce per essere inadeguato per le necessita' delle schede video e nel 1997 l'Intel affianca al PCI l'AGP (accelerated graphics port, o advanced graphics port), un canale ad alta velocita' dedicato alle schede video. l'AGP e' basato sulle specifiche del PCI 2.1, con un canale a 32 bits, che pero' va a 33 MHz, invece che a 33 come il bus PCI. Utilizza segnali elettrici a 3.3 Volt.
I primi AGP furono utilizzati con i Pentium II ed i cipset Intel 440LX. L'AGP ha poi avuto varie evoluzioni: l' AGP 2x, sempre a 66 MHz, ma che manda 2 dati ad ogni ciclo di clock (double pumped), l'AGP 4x, che manda 4 dati per ciclo di clock ed utilizza segnali a 1.5 Volt, l'AGP 8x, che manda 8 dati per ciclo di clock ed ha segnali a 0.8 Volt.
Le diverse versioni di AGP non sono compatibili, poiche' utilizzano voltaggi diversi, occorre quindi fare attenzione alla compatibilita' fra scheda video e scheda madre. In figura un connettore AGP.

Slot AGP

La soluzione PCI+AGP costituisce uno standard di fatto fino al 2004 quando l'Intel propone il PCI Express, questo bus sostituisce al collegamento parallelo del PCI un certo numero di connessioni seriali punto-punto, ogni connessione seriale (lane) utilizza 2 conduttori (il segnale e' codificato come differenza di tensione fra i 2 conduttori) e puo' arrivare a 2.5 Gbit/sec.Una coppia di conduttori e' usata per mandare dati alla device, una coppia per ricevere. Una device puo' essere collegata con 2,4,8,12,16 o 32 lanes.
Mentre a livello hardware le connessioni sono diverse a livello di software il PCI ed il PCI express sono compatibili, nel senso che essi presentano la stessa interfaccia al sistema che non si accorge di avere un PCI express al posto di un PCI.
Il PCI express dovrebbe rimpiazzare sia il PCI che l'AGP. In figura connettori PCI-express per connessioni con diverso numero di linee.

connettori PCI-express