Obsah
1. Rozhraní pro připojení grafických karet – sběrnice ISA
2. Šestnáctibitová varianta sběrnice ISA – AT Bus
4. Maximální rychlost přenosu dat na osmibitové sběrnici ISA
5. Grafické karty a limity sběrnice ISA
6. Sběrnice VLB – VESA Local Bus
7. Vlastnosti sběrnice VESA Local Bus
8. Burst režim u sběrnice VESA Local Bus
1. Rozhraní pro připojení grafických karet – sběrnice ISA
Většina grafických karet pro osobní počítače IBM PC, které jsme si popsali v předchozích částech tohoto seriálu, byla vybavena rozhraním pro osmibitovou nebo šestnáctibitovou variantu sběrnice ISA. Zkratka ISA vychází z anglického názvu Industry Standard Architecture. Tato sběrnice byla navržena firmou IBM v roce 1980 v laboratořích IBM Development Lab Bocaraton na Floridě. V roce 1981 byla použita osmibitová verze této sběrnice pro první počítače typu IBM PC. Tyto počítače totiž byly vybaveny procesorem Intel 8088 s osmibitovou šířkou datové sběrnice, takže nemělo smysl, aby interní sběrnice počítače byla širší než osm bitů (použití procesoru s osmibitovou sběrnicí mělo tu výhodu, že pro konstrukci počítače bylo možné použít starší čipy kompatibilní s procesory 8080 a 8085). Tato verze sběrnice ISA podporovala připojení přídavných karet s osmibitovým rozhraním a konektorem, který obsahoval celkem 62 kontaktů.

Obrázek 1: Grafická karta MDA s čipem MC6845. Jak je z obrázku patrné, je tato karta určená pro osmibitovou sběrnici ISA, i když její konstrukce dovoluje použití této karty v šestnáctibitové variantě sběrnice.
2. Šestnáctibitová varianta sběrnice ISA – AT Bus
Od roku 1984 se začíná v počítačích IBM PC AT (vybavených procesorem Intel 80286) a kompatibilních používat šestnáctibitová verze této sběrnice, která podporuje karty s konektorem s 98 kontakty. Tato sběrnice se ve firemních materiálech IBM také nazývá AT Bus, ostatní výrobci však používají označení ISA. Šestnáctibitová sběrnice ISA se ve výpočetní technice používala velmi dlouho, zejména díky její konstrukční jednoduchosti (konektor bylo možné vytvořit přímo na plošném spoji bez dalších konstrukčních součástí) a detailnímu popisu komunikačního protokolu a průběhů signálů. Tuto sběrnici lze doposud spatřit například v mnoha průmyslových PC. Šestnáctibitová sběrnice ISA obsahovala adresovou část, která měla šířku 24 bitů, což odpovídá možnostem adresování až 16 MB paměti (pomocí čtyř nejvyšších adresových bitů bylo možné ovládat takzvaný latch, tj. záchytný registr). Kromě paměti bylo možné obsluhovat maximálně 64 kB vstupně/výstupních portů pomocí šestnáctibitové IO sběrnice (adresová část IO sběrnice měla šířku šestnácti bitů, maximální počet portů je tedy roven 216=65536).

Obrázek 2: Grafická karta CGA. Povšimněte si, že se jedná o kartu ISA plné délky a že její plošný spoj zasahuje i do oblasti, ve které se běžně nachází šestnáctibitové rozšíření konektoru ISA. V praxi tento konstrukční nedostatek většinou nevadil, protože počítače PC AT bývaly vybaveny kromě konektorů šestnáctibitové ISA sběrnice i jedním či dvěma „krátkými“ osmibitovými konektory, a především – tato grafická karta již byla s nástupem počítačů PC AT zastaralá.
3. Přenos dat po sběrnici ISA
Datová část sběrnice ISA měla šířku osm či šestnáct bitů. Blokový přenos dat mohl být řešen buď programově (typicky instrukcí REP MOVSW či později na procesorech 80386 instrukcí REP MOVSD) nebo pomocí čtyř (později sedmi) DMA kanálů. Některé karty byly osazeny čipem umožňujícím řízení sběrnice (bus-master), při kterém se o přenos dat starala sama karta a nikoli mikroprocesor či čipset vybavený DMA kanálem (tento způsob přenosu dat se stal častěji používaný s příchodem modernějších sběrnic, například PCI). Počítače PC XT byly vybaveny čipem se čtyřmi osmibitovými DMA kanály, PC AT již sedmi kanály šestnáctibitovými. Pro přenos dat se používal synchronní protokol. Oscilátor použitý pro generování hodinových signálů měl u původního PC XT časovou základnu nastavenou na 70 ns, což odpovídá frekvenci 14,285 MHz. Tato frekvence byla dále dělena třemi, takže skutečná taktovací frekvence byla u prvních verzí sběrnice ISA rovna necelým 4,77 MHz. Později, tj. u PC AT a různých klonů, se používaly také rychlejší varianty sběrnice s hodinovou frekvencí 8 MHz, 8,33 MHz, 10 MHz, 12 MHz, 16 MHz a 20 MHz, ovšem některá zařízení nedokázala korektně pracovat v případě nastavení frekvencí hodinových signálů na 16 MHz či 20 MHz (u grafických karet mohlo docházet k chybám při zápisu barev některých pixelů, u zvukových karet buď docházelo ke zkreslení zvuku – vynechání částí samplů – či dokonce k přerušení DMA přenosu, což buď znamenalo přerušení přehrávání či naopak neustálé opakování přehrávání jednoho zvuku v případě že nedošlo k zachycení přerušení při jeho prvním přehrání).

Obrázek 3: Na této desce určené pro průmyslová PC (takzvaná backplane) je osm černých konektorů šestnáctibitové sběrnice ISA. Na konektorech je patrné oddělení původní osmibitové ISA od „šestnáctibitového“ rozšíření
4. Maximální rychlost přenosu dat na osmibitové sběrnici ISA
Pokusme se nyní zjistit teoretickou (maximální) přenosovou rychlost této sběrnice a vliv přenosové rychlosti na výkonnost grafického systému. Osmibitová sběrnice ISA taktovaná na 4,77 MHz dokázala teoreticky přenést 4,77×106/1024/1024/2 = 2,28 MB/s, protože data se přenášela po jednotlivých bajtech, přičemž v prvním hodinovém cyklu se přenesla adresa a v cyklu druhém datový bajt (mnoho zařízení navíc vyžadovalo několik čekacích cyklů, maximálně čtyři, tj. přenos jednoho bajtu mohl trvat až 6 cyklů sběrnice). Při použití grafické karty CGA s kapacitou video paměti 16 kB to znamená, že za jednu sekundu bylo možné přenést celý obsah video paměti celkem 145×. Hodnota dosažená v praxi byla sice mnohonásobně nižší (například z důvodu nutnosti obnovy dynamických pamětí, načítání instrukcí mikroprocesorem, reakcí na přerušení atd.), ale stále se jedná o hodnotu, která dostačovala pro většinu grafických operací. Pro počítače PC XT vybavené kartou CGA tedy sběrnice ISA nepředstavovala úzké hrdlo, které by programátory omezovalo při implementaci grafických operací (přenos obsahu celé obrazové paměti se prováděl například při scrollingu, protože pro tento jednoduchý efekt neměly první grafické karty určené pro počítače PC žádnou hardwarovou podporu).

Obrázek 4: Přenos jednoho bajtu po osmibitové sběrnici ISA v případě, že jsou kvůli pomalému zařízení použity čtyři čekací stavy (wait state). Celý přenos tedy v tomto případě trval šest cyklů sběrnice.
5. Grafické karty a limity sběrnice ISA
Na osobních počítačích vybavených procesory 80286 a 80386 (což znamená na počítačích vybavených šestnáctibitovými sběrnicemi ISA) se již běžně používaly grafické karty VGA. Na jednu stranu sice byla k dispozici rychlejší sběrnice, ovšem její přenosová kapacita musela být použita pro přenos mnohem většího množství dat. Například šestnáctibitová sběrnice ISA s hodinovou frekvencí 16 MHz dokázala přenést maximálně 16×106/1024/1024 = 15,3 MB/s, ovšem šestnáctibarevný grafický režim karty VGA s rozlišením 640×480 pixelů vyžadoval alokaci obrazové paměti o velikosti 150 kB, tj. těchto obrazů bylo (teoreticky) možné přenést maximálně 102 za sekundu, což je méně než v případě původního PC XT vybaveného kartou CGA. Samozřejmě 102 snímků za sekundu stále ještě nepředstavuje žádný reálný limit, ovšem s rozšířením grafických karet SVGA se již začalo ukazovat, že je zapotřebí sběrnici ISA nahradit rychlejší variantou, protože například v 256barevném grafickém režimu o rozlišení 1024×768 pixelů by bylo možné za jednu sekundu přenést pouze 19 snímků, což je již nedostatečné (nehledě na to, že v reálném počítači je přenosová kapacita sběrnice menší).

Obrázek 5: Dvojice karet, z nichž horní je určena pro šestnáctibitovou sběrnici ISA a dolní pro sběrnici EISA.
Jaká byla nejrychlejší metoda blokového přenosu dat na počítačích s procesorem Intel 386? Pro jednoduchost předpokládejme bloky o velikosti max. 64 kB a reálný režim procesoru.
6. Sběrnice VLB – VESA Local Bus
Sběrnice VESA Local Bus (zkráceně VLB) byla navržena sdružením VESA jako rychlejší doplněk k výkonnostně nedostatečné sběrnici ISA. Zatímco je sběrnice ISA určena pro prakticky libovolné zařízení, u sběrnice VESA Local Bus se předpokládalo její použití zejména pro grafické karty, řadiče rychlých pevných disků a síťové karty. Tato sběrnice byla používána pouze na osobních počítačích typu PC; podpora pro jiné výpočetní systémy prakticky neexistuje, protože architektura sběrnice je poměrně úzce svázána se strukturou a funkcí vývodů mikroprocesoru 486 (naopak příště zmíněná sběrnice PCI se používá i mimo platformu i386). Největší rozšíření sběrnice VLB bylo, jak se ostatně dá očekávat, v dobách osobních počítačů s procesory řady 486, u kterých rostla poptávka po rychlých grafických kartách a pevných discích s většími přenosovými rychlostmi. S dalším vývojem počítačů (zejména těch s procesory Intel Pentium, AMD K6 atd.) začal být zřetelný značný ústup v používání sběrnice VLB, naopak se začala prosazovat perspektivní sběrnice PCI a posléze PCI-X a PCI Express.

Obrázek 6: Grafická karta s čipem firmy Cirrus Logic kombinovaná s řadičem disků a I/O porty určená do sběrnice VESA Local Bus. Poměrně typické je přidružení i dalších funkcí na jednu kartu – zde sériových a paralelních portů, IDE rozhraní atd. Pokud se taková karta zapojila do základní desky, která již tyto obvody obsahovala, většinou došlo ke konfliktu a pomocí jumperů se musely přídavné funkce opět zakázat. Podobná obludná karta dodnes spolehlivě funguje v mém starém počítači s procesorem IBM Blue Lightning, což je jedna z variant procesoru 486 DX2. Tato karta mohla být používána i v počítačích, jejichž sběrnice VLB používala hodinový kmitočet 50 MHz.
7. Vlastnosti sběrnice VESA Local Bus
Jak již název sběrnice VESA Local Bus napovídá, jedná se o sběrnici lokální, tj. o sběrnici, která přímo sdílí datovou a adresovou část s mikroprocesorem počítače (z toho také vyplývá šířka datové části – 32 bitů). To má mimo jiné za následek omezení maximálního počtu připojených zařízení na dvě, maximálně až na tři, protože větší počet zařízení by příliš proudově a impedančně zatěžoval procesorovou sběrnici.

Obrázek 7: Grafická karta vybavená čipem TGUI 9400CXI známé firmy Trident, jejíž grafické karty pro sběrnice ISA i VLB u nás byly poměrně oblíbené a rozšířené.
Mohlo by docházet i k odrazům na adresových/datových vodičích, proto jsou konektory lokální sběrnice umístěny co nejblíže k mikroprocesoru. Také frekvence sběrnice je odvozena z vnější taktovací frekvence mikroprocesoru a může se pohybovat v hodnotách od 33 MHz až do 50 MHz, typicky 33, 40 či 50 MHz i když při přetaktování mikroprocesoru se samozřejmě proporcionálně změnila i frekvence používaná na VESA Local Bus.

Obrázek 8: Základní deska vybavená sběrnicemi ISA a VESA Local Bus. Na tomto snímku je patrné, že sběrnice VLB vznikla (většinou) rozšířením konektoru šestnáctibitové sběrnice ISA. Hnědou barvou je označen rozšiřující konektor VLB, černou barvou pak konektory sběrnice ISA. V popředí můžeme vidět konektor pro osmibitovou variantu sběrnice ISA, tj. jedná se o stejný konektor, jaký byl použitý i v prvních počítačích PC XT.
8. Burst režim u sběrnice VESA Local Bus
Sběrnice VESA Local Bus podporovala takzvaný burst režim přenosu blokových dat. Jednalo se o zvláštní mód, ve kterém se přenesla vždy jedna adresa a po ní čtyři datová slova. Bylo tak možné jednoduše a rychle přenést 4×32 bitů pouze v pěti sběrnicových cyklech oproti osmi cyklům nutným pro přenos čtyř dvojic adresa-data. Jak se budete moci dočíst v dalším pokračování tohoto seriálu, je možné u pokročilejších sběrnic použít vylepšenou variantu burst režimu, ve kterém se po zadání jedné adresy a počtu opakování může přenést mnohem více dat, což ve svém důsledku vede k vyšší přenosové rychlosti, neboť se ušetří cykly nutné pro přenos a dekódování adresy.

Obrázek 9: Méně obvyklá konfigurace základní desky se sběrnicemi EISA a VESA Local Bus. Jedná se o základní desku určenou pro výkonné pracovní stanice a servery, proto je možné instalovat až šestnáct osmibitových paměťových modulů SIMM (vždy po čtveřicích).
9. Odkazy na Internetu
- PC Game Programmer's Encyclopedia
http://www.qzx.com/pc-gpe/ - Xtended Mode – Unchained 640×400×256
http://www.bluemg.de/…xtended.html - PC-GPE: Tseng
http://www.qzx.com/…pe/tseng.txt - PC-GPE: Trident
http://www.qzx.com/…/trident.txt - ISA Video Cards and Graphic Accelerators
http://www.baber.com/…eo_cards.htm - Number Nine Visual Technology: Imagine 128 Series 2
http://stason.org/…128-SER.html - #9GXI LITE video card Settings and Configuration
http://stason.org/…XI-LITE.html - Oak Technology
http://en.wikipedia.org/…k_Technology - Computer Hardware: Information about Number Nine Video Cards
http://www.computerhope.com/help/vnine.htm - Number Nine ships the first 128-bit Graphics Accelerator Board
http://www.encyclopedia.com/…5918685.html - Number Nine Visual Technology
http://en.wikipedia.org/…l_Technology - Wikipedia CZ: Sběrnice:
http://cs.wikipedia.org/…b%C4%9Brnice - Wikipedia EN: Industry Standard Architecture:
http://en.wikipedia.org/…Architecture - Support/peripheral/other chips – 6800 family
http://www.cpu-world.com/…rt/6800.html - Motorola 6845
http://en.wikipedia.org/…otorola_6845 - The 6845 Cathode Ray Tube Controller (CRTC)
http://www.tinyvga.com/6845 - IBM Monochrome Display Adapter
http://en.wikipedia.org/…play_Adapter - Color Graphics Adapter
http://en.wikipedia.org/…hics_Adapter - Wikipedia CZ: Sběrnice:
http://cs.wikipedia.org/…b%C4%9Brnice - Wikipedia EN: Industry Standard Architecture:
http://en.wikipedia.org/…Architecture - Enhanced Graphics Adapter
http://en.wikipedia.org/…hics_Adapter - IBM Multicolor Graphics Adapter
http://en.wikipedia.org/wiki/MCGA - Professional Graphics Controller
http://en.wikipedia.org/…s_Controller - The IBM PGA Graphics Adapter
http://incolor.inebraska.com/…_adapter.htm - Professional Graphics Controller: Notes
http://www.seasip.info/…ePC/pgc.html - A professional graphics controller (PDF ke stažení po zaplacení 10 dolarů)
http://domino.research.ibm.com/…6bfa00685b97?…