Hlavní navigace

Accelerated graphics port (AGP) a sběrnice PCI-X

23. 10. 2008
Doba čtení: 13 minut

Sdílet

V dnešní části seriálu o architekturách počítačů bude popsán interní port označovaný zkratkou AGP, včetně jeho zvláštních režimů a funkcí, jež přispívají k dosažení co nejlepšího využití přenosového pásma. Také si řekneme, jaké typy sběrnic se postupně vyvinuly z původní univerzální sběrnice PCI.

Obsah

1. Interní port AGP
2. Verze AGP a jejich vzájemná kompatibilita
3. Kompatibilita mezi různými verzemi AGP
4. Zvláštní režimy AGP
5. PCI vs AGP
6. Následovníci sběrnice PCI a portu AGP
7. Sběrnice PCI-X
8. Literatura a odkazy na Internetu
9. Obsah dalšího pokračování seriálu

1. Interní port AGP

Interní port AGP zaujímá v pomyslné hierarchii sběrnic zvláštní místo. Nejedná se totiž v pravém slova smyslu o sběrnici, neboť k AGP lze připojit pouze jedno zařízení. Typická součást prakticky každé sběrnice, tj. arbitrážní obvod (a z toho vyplývající předem známý a všemi zařízeními dodržovaný komunikační protokol), zde není z tohoto důvodu obsažen, jedná se o spojení typu point-to-point, které je spíše typické pro porty určené k připojení externích zařízení. Označení AGP vzniklo zkrácením plného názvu Accelerated Graphics Port, a jak již tento název napovídá, jedná se o port určený prakticky výhradně k připojení grafických adaptérů, zejména pak grafických akcelerátorů. Hlavním důvodem vedoucím k zavedení AGP byly stoupající požadavky na rychlost přenosu grafických dat, především videa a textur pro trojrozměrné scény (požadavky na rychlost přenosu rostou v případě, kdy se textury musí načítat dynamicky, tj. během vykreslování trojrozměrné scény). Na druhou stranu se požadovalo zachování kompatibility s grafickou kartou VGA, a to až na úroveň jednotlivých řídicích registrů, což není právě jednoduchá záležitost.

pc3401

Obrázek 1: Z tohoto (nám již dobře známého) schématu je patrné, že se komunikace s grafickým akcelerátorem připojeným na AGP odehrává přes takzvaný north bridge, což je čip s velkou mírou integrace (a také poměrně vysokou „inteligencí“) umístěný na základní desce v blízkosti mikroprocesoru. Mikroprocesor bývá na desce umístěný v horní části, tj. na „severu“ (north). Druhý čip – south bridge – zajišťuje styk počítače s vnějším světem, emuluje dnes již překonanou řadu obvodů 82×x (8251, 8255, 8257 a 8259) a také v některých případech emuluje sběrnici ISA.

Z důvodu zobrazení videa ve velkém rozlišení či trojrozměrných scén v reálném čase byl při návrhu AGP kladen velký důraz na dosažení co nejvyšší rychlosti přenosu dat s malou latencí (samotná průměrná rychlost, i když by byla vysoká, nemusí pro tyto účely dostačovat, kritické jsou zejména výpadky v přenosu). Reálná rychlost AGP samozřejmě reflektuje postupný vývoj výpočetní techniky a představuje určitý kompromis mezi dosažitelnou rychlostí a cenou celého grafického subsystému. Tak, jak cena technologií postupně klesá, je možné přecházet na rychlejší (a především univerzálnější) řešení, což v tomto případě znamená některou z variant sběrnice PCI-X či – což je dnes z mnoha dobrých důvodů preferováno – na sběrnici PCI Express.

Technologie AGP vznikla úpravou sběrnice PCI, proto jsou použity velmi podobné řídicí signály, stejně jako demultiplexing dat a adres (adresová a datová část AGP i sběrnice PCI tedy pro přenosy využívá stejné vodiče, což v tomto případě není na škodu, zejména když vezmeme do úvahy dále popsané blokové přenosy, při jejichž použití se přenos adres minimalizuje). Došlo však také k několika nutným modifikacím, z nichž patrně nejvýraznější je odstranění arbitrážního obvodu. Z tohoto důvodu je možné k AGP připojit pouze jedno zařízení, což přispívá k rychlejší práci a zjednodušení řídicích obvodů na připojené grafické kartě či grafickém akcelerátoru. Mezi další změny patří podpora vyšší frekvence hodinového signálu, která se zvýšila z 33 MHz (standardní „pětivoltová“ PCI) na 66 MHz. Na této základní frekvenci by měly pracovat všechny grafické karty či grafické akcelerátory připojené do AGP, tato frekvence je také mnohdy použita pro grafické čipy integrované přímo na základní desce.

pc3402

Obrázek 2: Grafický akcelerátor připojovaný přes AGP

2. Verze AGP a jejich vzájemná kompatibilita

Podobně jako sběrnice PCI, i AGP existuje v několika variantách, které se liší napětím signálů i tvarem konektorů. Celkem existuje dokonce pět typů navzájem odlišných konektorů (a to do celkového počtu nezahrnuji konektory portů odvozených od AGP, které však nebyly standardizovány). Největší rozdíly panují samozřejmě v přenosové rychlosti, jedná se totiž o důležitý údaj, který se navíc dobře porovnává. V jednom taktu synchronizačních hodin AGP se může provést buď jeden přístup do paměti (tento parametr je opět shodný s PCI sběrnicí), dva přístupy (používá se stejný princip jako u DDR pamětí), čtyři přístupy (dva hodinové signály otočené o 90°, QDR paměti) nebo dokonce osm přístupů. Termínem „přístup do paměti“ je zde myšlen především zápis do framebufferu či texturovací paměti grafického akcelerátoru, opačný směr přenosu se používá pouze minimálně; příkladem mohou být výpočty prováděné pomocí GPU, jejichž výsledek se vrací zpět do operační paměti mikroprocesoru.

Přenosové rychlosti pro základní takt 66 MHz odpovídají 266 MB.s-1 (jeden přístup do paměti), 533 MB.s-1 (dva přístupy do paměti), 1066 MB.s-1 (čtyři přístupy do paměti) a konečně celých 2133 MB.s-1 při osmi přístupech do paměti v jednom taktu hodinového signálu. V režimu jednoho přístupu do paměti se v jednom taktu vždy přenesou čtyři byty (32 bitů, což je současně i šířka datové části), při dvou přístupech osm bytů, při čtyřech přístupech šestnáct bytů na jeden takt a při osmi přístupech dokonce 32 bytů.

pc3403

Obrázek 3: Velikosti a tvary konektorů AGP spolu s umístěním klíčů

Oproti PCI sběrnici se také změnily amplitudy všech digitálních signálů; existuje starší verze AGP s amplitudou signálů 3,3 V, modernější verze s amplitudou 1,5 V (amplitudou je zde myšlena napěťová úroveň logické hodnoty 1) a u nejnovější (finální, dále již patrně nerozvíjené) verze se úroveň signálů snížila až na 0,8 V. U starší verze AGP lze využívat pouze jeden nebo dva přístupy do paměti v jednom taktu, modernější verze již podporuje všechny výše popsané možnosti.

Jednotlivé varianty AGP jsou vypsány v následující tabulce spolu se základní charakteristikou:

Verze Podporované rychlosti Úroveň signálů
AGP 1.0 1× 2× 3,3 V
AGP 2.0 1× 2× 4× 3,3 V nebo 1,5 V
AGP Pro 1× 2× 4× 3,3 V nebo 1,5 V
AGP 3.0 1× 2× 4× 8× 1,5 V ovšem pro rychlost 8× 0,8 V

Jednotlivé přenosové rychlosti, jež se označují AGP ?×, jsou vypsány níže:

Označení Hodinová frekvence Režim přenosu Úroveň signálů Výsledná rychlost
AGP 1× 66 MHz 32 bitů za takt 3,3 V 266 MB.s-1
AGP 2× 66 MHz 2× 32 bitů za takt 3,3 V 533 MB.s-1
AGP 4× 66 MHz 4× 32 bitů za takt 1,5 V 1066 MB.s-1
AGP 8× 66 MHz 8× 32 bitů za takt 0,8 V 2133 MB.s-1

3. Kompatibilita mezi různými verzemi AGP

Zajištění vzájemné kompatibility mezi různými verzemi AGP portů, konektorů a karet nemusí být vždy jednoduché. V poslední tabulce jsou vypsány funkční i nefunkční kombinace konektorů a karet. V jednotlivých řádcích jsou uvedeny typy karet, ve sloupcích pak typy konektorů. Pokud je v některé buňce tabulky napsáno „nelze zapojit“, znamená to nemožnost zasunout kartu do daného konektoru kvůli jinak umístěným klíčům:

Konektor/karta 3.3 Connector 1.5 Connector Universal Connector Universal AGP3.0 Connector AGP3.3 Connector
AGP 3.3 funkční nelze zapojit funkční nelze zapojit nelze zapojit
AGP 1.5 nelze zapojit funkční funkční funkční nefunkční
AGP Universal funkční funkční funkční funkční nefunkční
Universal AGP 3.0 nelze zapojit funkční funkční funkční funkční
AGP3.0 nelze zapojit nefunkční nefunkční funkční funkční
pc3404

Obrázek 4: Různé typy konektorů AGP na grafických akcelerátorech

4. Zvláštní režimy AGP

Vzhledem k tomu, že AGP je určen výhradně pro připojení grafických karet a grafických akcelerátorů, podporuje protokol AGP některé zvláštní režimy přenosu dat, které nemají u jiných sběrnic či portů obdobu. Tyto režimy jsou určeny pro efektivní přenos popř. sdílení grafických dat, zejména textur a/nebo přenos videa (pro představu – video o rozlišení 1024×768 pixelů promítané s 25 snímky za sekundu představuje datový tok přibližně 56 megabytů za sekundu).

Prvním podporovaným „zvláštním“ režimem je přenos textur, přičemž přenášená rastrová data textury mají označení (příznak) „pouze pro čtení“. Tím se zaručí, že textury nejsou ukládány do vyrovnávací paměti, což je vzhledem k povaze textur zbytečné – textury jsou totiž většinou předpočítány, přičemž se nepočítá s jejich dynamickou modifikací. Výjimkou jsou samozřejmě run-time výpočty typu bumpmappingu či mipmappingu, výsledky těchto výpočtů jsou však použity pouze při výpočtu jednotlivých fragmentů a nikam jinam se neukládají. Díky zavedení tohoto režimu dochází ke zvýšení využití vyrovnávacích pamětí relevantními daty až o desítky procent.

Při práci s texturami je také možné (na úrovni operačního systému či ovladače) provést rozhodnutí, zda bude pro textury používána výhradně paměť integrovaná na grafickém akcelerátoru, nebo se tato paměť stane (z pohledu aplikací) rovnocenná s operační pamětí počítače. Zde se vlastně vývoj vrátil zpět do doby osmibitových počítačů, ve kterých byla grafická paměť (framebuffer) uložena v operační paměti, mnohdy na volitelném místě (bylo možné změnit počáteční adresu video paměti, moderně řečeno framebufferu):

  • Režim DMA: v tomto režimu jsou veškerá rastrová data textur uložena v paměti grafického akcelerátoru. Pokud již není v paměti grafického akcelerátoru volný prostor pro uložení další textury, nebo je textura ve vykreslované scéně použita poprvé, musí se data zkopírovat z operační paměti počítače do paměti integrované na grafickém akcelerátoru. Toto kopírování probíhá po velkých blocích (řádově desítky kilobytů) pomocí režimu DMA. Každý přenos tedy znamená velkou zátěž pro celý systém, tato zátěž je však pouze krátkodobá a občasná. Režim DMA se stává výhodným především v případech, že na grafickém akcelerátoru je nainstalována paměť s dostatečnou kapacitou.
  • Režim Execute: v tomto režimu je z hlediska texturování paměť integrovaná na grafickém akcelerátoru a operační paměť rovnocenná. To znamená, že se při texturování nemusí na grafický akcelerátor přenášet celá textura, ale je umožněn přenos pouze malé části, která je v dané chvíli potřebná. V systému existuje tzv. GART (Graphics Address Remapping Table), ve které jsou vedeny informace o uložení a funkci stránek paměti. Jedna stránka má konstantní velikost 4 KB. V případě, že jsou data z nějaké stránky vyžadována pro vykreslování a stránka je uložena v operační paměti, je proveden přenos těchto 4 KB do paměti grafického akcelerátoru a následně se provede úprava záznamu v GART. Vzhledem k poměrně malé velikosti stránek tak nedochází k jednorázovému zatížení systému, protože se zátěž v čase rozloží. Tento režim je populární u „integrovaných“ grafických čipů, včetně grafických karet použitých v noteboocích.

5. PCI vs AGP

Z výše uvedených informací můžeme správně dojít k závěru, že pro výkonné grafické karty a grafické akcelerátory bylo použití AGP mnohem výhodnější než využití sběrnice PCI (v běžných stolních počítačích se totiž používala většinou pouze nejpomalejší verze PCI s kapacitou 132 MB.s-1). Důvodů je více, od rychlejší komunikace mezi mikroprocesorem, operační pamětí a grafickým akcelerátorem, až po využití „zvláštních“ režimů DMA a Execute. Další výhodou je fakt, že na PCI sběrnici je možné připojit další grafickou kartu či grafický akcelerátor a vytvořit tak například vícemonitorový grafický systém, a to i při použití běžných grafických karet s výstupem na jeden monitor (opět se nejedná o žádnou technologickou novinku, už v dobách počítačů PC AT bylo možné zkombinovat například grafickou kartu CGA/EGA/VGA a MDA či Hercules, takový systém se dal využít v některých integrovaných vývojových prostředích pro jednodušší ladění aplikací nebo například v AutoCADu). S nástupem sběrnice PCI Express však nastává útlum v prodeji AGP karet a v nových základních deskách se mnohdy již s AGP vůbec nesetkáme.

6. Následovníci sběrnice PCI a portu AGP

Tak jako všechny sběrnice, které jsme si popsali v předchozích částech tohoto seriálu, i sběrnice PCI postupně zastarávala a nedokázala zajistit dostatečně široké přenosové pásmo vyžadované některými datově náročnějšími zařízeními, například řadiči SCSI disků, gigabitovými síťovými kartami atd. Přenosové pásmo 133 MB.s-1 (platné pro nejpomalejší verzi PCI) je sice na první pohled dostatečné, musíme si však uvědomit, že se o toto pásmo dělí všechna zařízení připojená na PCI, což je především u serverů vybavených například několika síťovými kartami problematické a úzké hrdlo.

pc3405

Obrázek 5: Postupný vývoj sběrnic PCI, PCI-X a PCI Express

Jedním ze způsobů urychlení bylo „vysunutí“ grafické karty na zvláštní rozhraní – výše popsaný AGP, což poměrně zásadním způsobem snížilo tok dat po PCI sběrnici. Dále se zvyšovala jak hodinová frekvence z 33 MHz na 66 MHz (poněkud nestandardně pak až na 133 MHz), tak i šířka datové části sběrnice z 32 bitů na 64 bitů. Pro nasazení v serverech však i toto zvýšení přenosového pásma v některých případech nedostačovalo (AGP zde naopak nebylo využito), nehledě na to, že došlo ke ztrátě kompatibility s „pětivoltovými“ PCI kartami (viz předchozí část tohoto seriálu). Na scéně se z těchto důvodů objevila nejprve sběrnice PCI-X a posléze PCI Express.

pc3406

Obrázek 6: Na této základní desce jsou téměř všechny zmiňované sběrnice a port AGP pěkně pohromadě; jedná se o typickou desku „přechodového“ období – jak mezi PCI+AGP a PCI Express, tak i mezi původním paralelním rozhraní IDE a jeho následovníkem SA­TA.

7. Sběrnice PCI-X

Prvním vážnějším pokusem o vytvoření náhrady za sběrnici PCI je sběrnice označovaná jako PCI-X, která vznikla přímým a do značné míry i kompatibilním rozšířením původní sběrnice PCI. Hodinová frekvence se zvýšila na 66 MHz či na 133 MHz, datová část sběrnice byla rozšířena na 64 bitů (zde je oproti 64bitové PCI pouze velmi málo rozdílů). Přenosové rychlosti při těchto frekvencích dosahují hodnot 533 MB.s-1 resp. 1066 MB.s-1. V navazujícím standardu PCI-X 2.0 se hodinové frekvence opět zvýšily, konkrétně na hodnoty 266 MHz a 533 MHz, což samozřejmě vedlo i ke zvýšení maximální teoretické přenosové rychlosti na 2,15 GB.s-1 a úctyhodných 4,3 GB.s-1. Vzhledem k tomu, že je tato sběrnice určena pro servery, objevují se zde některé vlastnosti, které zajišťují provozuschopnost počítače i v případě závady na některé kartě – vadné karty se mohou za běhu systému znovunastavit (provést reset) nebo je možné jejich logické odpojení od sběrnice – u serverů například výpadek jedné síťové karty nemusí nutně znamenat jeho okamžitý restart s výměnou karty.

Přitom je zachována obousměrná zpětná kompatibilita s PCI 2.x – karty PCI-X je možné použít v běžném PCI slotu, ovšem pouze na těch základních deskách, které podporují napájení 3,3 V (viz předchozí díl tohoto seriálu). Naopak lze 3,3 voltové PCI karty použít i ve sběrnici PCI-X, ovšem v tomto případě je přenosová rychlost snížena tak, aby byla korektně obsloužena nejpomalejší karta v systému. To mj. může znamenat, že „ušetření“ v podobě například starší síťové karty určené pro sběrnici PCI může zpomalit například přístup na SCSI disky atd. I přes některé vylepšené vlastnosti se však sběrnice PCI-X nerozšířila do té míry, že by se stala ve světě PC dominantní; tuto roli převzala až PCI Express popsaná příště.

pc3407

Obrázek 7: Gigabitová síťová karta určená pro sběrnici PCI-X

8. Literatura a odkazy na Internetu

  1. Wikipedia EN: Peripheral Component Interconnect,
    http://en.wiki­pedia.org/wiki/Pe­ripheral_Compo­nent_Intercon­nect
  2. PCI Vendor and Device Lists,
    http://www.pci­database.com/in­dex.php
  3. Seznam PCI VID/DID,
    http://www.pci­database.com/re­ports.php?type=csv
  4. PCI bus pinout,
    http://pinouts­.ru/Slots/PCI_pi­nout.shtml
  5. How to recognise a 3.3 Volt PCI slot,
    http://www94.web­.cern.ch/hsi/s-link/devices/s32pci64­/slottypes.html
  6. Computer Bus and BackPlane Design,
    http://www.in­terfacebus.com/De­sign_Interface_ta­ble.html
  7. VESA Local Bus,
    http://en.wiki­pedia.org/wiki/VE­SA_Local_Bus
  8. VESA Local Bus,
    http://cs.wiki­pedia.org/wiki/VE­SA_Local_Bus
  9. Applied Micro Circuits Corporation:
    S5935 PCI product Data Book,
    Applied Micro Circuits Corporation, San Diego, 1999
  10. Bhatt Ajay V.:
    Creating a PCI Express Interconnect,
    Technology and Research Labs, Intel Corporation, 2003
  11. Intel Coproration, Neshati Ramin:
    PCI Express Base Specification 1.0a,
    Intel Corporation, 2003
  12. PCI-X,
    http://en.wiki­pedia.org/wiki/Pci-x
  13. PCI Express,
    http://en.wiki­pedia.org/wiki/PCI_Ex­press
  14. PCI Express 3.0 Bandwidth: 8.0 Gigatransfer­s/s,
    http://www.ex­tremetech.com/ar­ticle2/0,1697,­2169018,00.asp

CS24_early

9. Obsah dalšího pokračování seriálu

V následující části tohoto seriálu bude popsán současný favorit mezi sběrnicemi určenými nejenom pro osobní počítače. Jedná se o sběrnici PCI Express (i když označení sběrnice je v tomto případě poněkud nepřesné), která postupně nahradila jak původní sběrnici PCI, tak i interní AGP.

pc3408

Obrázek 8: Karta určená do sběrnice PCI Express 1×, kterou je však možné zapojit i do všech širších konektorů PCI Express – 2×, 4×, 8× i 16×

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.