A mai alaplapok legnagyobb részét elfoglalják a bővítőkártyáknak szánt foglalatok. A mostanában gyártott alaplapokhoz alapvetően három típusú kártya használható: ISA, PCI, AGP. Mára már szinte csak két típus maradt fent ( az újabb alaplapokban már csak ez a két típus található meg): a PCI és az AGP.
Megnevezés | Szélesség (bit) | Sebesség (MHz) | Sávszélesség (Mbájt/sec) |
16 bites ISA | 16 | 8,3 | 15,9 |
EISA | 32 | 8,3 | 31,8 |
PCI | 32 | 33 | 127,2 |
PCI 2.1 | 64 | 66 | 508,6 |
AGP | 32 | 66 | 254,3 |
AGP Pro | 32 | 66 | 254,3 |
![]() PCI sín az alaplapon |
A CPU fejlődését leszámítva a PC-n belül kétségtelenül az volt a legnagyobb
változás, hogy az ISA (Industry Standard Architecture) sínt felváltotta a PCI
(Peripheral Component Interconnect) csatlakozó. Az ISA-t már sokszor eltemették
- például a PC98 specifikáció (Compaq-Intel-Microsoft)
szerint tilos a használata -, de az alaplapgyártók az olcsó gépekbe szánt eszközeikről
ma sem hagyják még el teljesen, bár adapterkártyát már szinte senki sem gyárt
hozzá. A 16 bites ISA sín leváltása már egy évtizeddel ezelőtt napirendre került:
az IBM 1987-ben jelent meg a PS/2
sorozattal, ebben a mikrocsatorna (MCA - Micro Channel Architecture) névre hallgató
csatlakozó fogadta az adapterkártyákat. Az MCA műszaki szempontból nem volt
rossz megoldás, de az IBM levédte, és licencdíjat
akart szedni a használatáért a többi gyártótól. Azok válaszként 1989-ben kidolgozták
a szabadon alkalmazható 32 bites EISA (Extended ISA) felületet, ez felülről
volt kompatibilis az ISA-val, vagyis használhatóak maradtak benne az ISA adapterkártyák.
Eredetileg az ISA egy 6 megahertzes órajelet továbbított az adaptereknek, ezt
később 8,33 megahertzre növelték. Az órajelet felhasználhatja a periféria, de
a sínen folyó adatátvitelnek nem kell ehhez az órajelhez igazodnia, vagyis az
ISA aszinkron sín. Átviteli sebességének elvi maximuma 8 megabájt/másodperc,
a gyakorlatban 4-6 megabájt érhető el rajta. Az EISA már szinkron sín, vagyis
átvitelét az órajele ütemezi, s ez a sín szélességével együtt a maximális sebességet
is meghatározza. Az ISA-kompatibilitás miatt megtartották a 8,33 megahertzet,
maximális sebessége így 4 bájt X 8,33 megahertz = 33 megabájt/másodperc volt.
Ára és nehézkes konfigurálása miatt fénykorában is csak a kiszolgálókban terjedt
el, ma már nem használják. Az IBM hosszú ideig ragaszkodott az MCA-hoz, többször
is megújította a specifikációt, de végül - látván a piac többi szereplőjének
ellenállását - feladta. Az MCA utolsó változatának maximális sebessége 40 megabájt/másodperc
volt. Mivel az ISA lassúsága kezdetben elsősorban a grafikus kártyáknál okozott
szűk keresztmetszetet, a távol-keleti gyártók egyik szervezete, a Video Electronics
Standard Association (VESA) olyan csatlakozót dolgozott ki, amely közvetlenül
a processzorsínre épült az alaplapon. Innen kapta a lokális busz (VL - VESA
local bus) nevet. Sebessége azonos volt az utána érkező 32 bites PCI sebességével,
de csak viszonylag szűk határok között lehetett terhelni, és ami ennél is fontosabb,
jellegéből adódóan processzorfüggő. Ezért a 386/486-os CPU-k eltűnésével a VESA
is kihalt. Sebessége olyan új, nagyobb felbontású üzemmódokat tett lehetővé
a képernyőn, amelyeket az ISA nem. A VESA-nak ezeket definiálnia kellett, és
VESA-kompatibilis módok néven ma is használatosak.
A PCI sín előnyei révén jó ideje az uralkodó adaptercsatlakozó a PC-ben, sőt
proceszszorfüggetlensége okán más architektúrákban (Apple,
Sun) is alkalmazzák. A PCI specifikáció első
változatát 1992 júniusában tette közé az Intel,
ezt 1993 áprilisában követte a 2.0-s, 1995 elején a 2.1-es verzió, majd 1999
januárjában a 2.2.-es verzió. A PCI szinkron sín, első definíciója 32 bit széles
és maximálisan 33 megahertzes órajelű, azaz 4x33 = 132 megabájt/szekundum sebességű
illesztőfelületet rögzített. Második változata az akkoriban megjelent 64 bites
külső adatsínnel rendelkező processzorokhoz, így például a Pentiumhoz
igazodva már 64 bit széles sínt is alkalmaz, ennek sebessége 264 megabájt/másodperc.
Végül a 2.1-es verzió legfontosabb újdonsága a 66 megahertzre növelt órajel
volt, ez a 64 bites szélességgel 524 megabájtos teljesítményt érhet el másodpercenként.
Hangsúlyozni kell, hogy a megadott sebességek az elméleti maximumok, a valódi
értékek a körülményektől függően alakulnak, a gyakorlatban ezeknek az 50-80
százaléka érhető el. Energiatakarékos üzemmódban az órajel csökkenthető, alvó
állapotban pedig meg is állítható.
Opcionálisan négy megszakításvonal szerepel a PCI specifikációjában: INTA, INTB,
INTC és INTD azonosítóval; ezek a PCI sínen levő perifériák kiszolgálására használhatók,
és megoszthatók. A megszakítás a számítógépes rendszerek általános vezérlőeszköze,
minden architektúrában alkalmazzák. A rendszert a processzor irányítja: sorban
végrehajtja az éppen futó program utasításait. Sokszor azonban félbe kell szakítania
ezt, mert valamilyen külső esemény történt, például a felhasználó leütött egy
billentyűt. Ezeknek a kéréseknek a fogadására a legtöbb CPU-hoz hasonlóan az
Intel típusainak is két bemenetük van: az INTR (interrupt - megszakítás) és
az NMI (non-maskable interrupt - nem maszkolható megszakítás). Az a legfontosabb
különbség a kettő között, hogy az INTR bemeneten érkező kéréseket a programozó
figyelmen kívül hagyhatja (maszkolhatja), az NMI-re azonban a processzor mindenképpen
reagál. A letiltásra azért van szükség, mert minden operációs rendszerben vannak
olyan kritikus programrészek, amelyeknek a végrehajtását nem tanácsos félbeszakítani.
Egy ilyen programrész előtt le kell tiltani az INTR fogadását, a végrehajtása
után pedig újra engedélyezni kell A PC-ben az NMI is letiltható, csak nem a
CPU-ban, hanem egy külső logikai kapun keresztül. Az NMI-t a memória paritáshibájának
és az ISA adapterek hibájának a jelzésére használják, valamint rendszervezérlésre;
a �normál" megszakításkérések fogadására az INTR szolgál.
Mivel sokféle periféria kérhet megszakítást, de a CPU-nak csak egy ilyen bemenete
van, megszakítás-vezérlőt kell alkalmazni. Ez egyrészt több perifériától fogadhat
megszakításkérést, másrészt azonosítja, hogy melyikről van szó, hiszen a különböző
perifériák kiszolgálásához más-más programot kell futtatni a processzoron. Annak
idején az eredeti PC-ben és XT-ben az Intel 8259A
típusú megszakítás-vezérlőjét használták; arra 8 periféria csatlakozhat egyszerre.
Az AT-be már két ilyen áramkört építettek, így a megszakítások száma 15-re nőtt.
Mi történik akkor, ha ennél többre van szükség? A 15 megszakításból néhányat
eleve elfoglalnak a rendszer elemei - például a valaha önálló segédprocesszorként
működő, ma a processzorba beépített lebegőpontos egység -, és már az eredeti
AT-ben is meglevő perifériák, mint a hajlékonylemez, a merevlemez és soros,
párhuzamos kapuk. A konfigurációból hiányzó perifériák megszakításai felhasználhatók,
de az új perifériáknak - CD-ROM, hálózati kártya,
hangkártya stb. - szabadon kiosztható megszakítások
száma korlátozott.
Egy megszakításra akár még két periféria is ráköthető, vagyis a megszakítás
megosztható. A megosztott megszakításról érkező kérésre az első perifériát kiszolgáló
rutin indul el, és megkérdezi a hozzá tartozó eszközt, hogy ő kérte-e a megszakítást.
Ha igen, akkor kiszolgálja, ha nem, akkor elindítja a második perifériát kezelő
eszközmeghajtót, s az kezeli a saját perifériáját. Sajnos a hagyományos, 8259A
által kezelt megszakítások fizikai kialakítása nem teszi lehetővé a megosztást;
ha két periféria egyszerre kér megszakítást, vagy a két kérés között csak rövid
idő telik el, akkor a 8259A ezt hibás működésnek érzékeli. Sok esetben a megszakítások
szűkössége miatt használják a SCSI csatolót, mert arra egyszerre hét periféria
- merevlemez, CD-ROM, lapolvasó stb. - köthető rá, és csak egy megszakításra
van szüksége. Hasonló haszonnal jár az USB
csatoló is.
Az Intel a többprocesszoros rendszerek támogatására a 90 és 100 megahertzes
Pentiumoktól kezdve - a Celeron
kivételével - külön megszakítás-vezérlőt (APIC - Advanced Programable Interrupt
Controller) is épít processzoraiba, és lapkakészleteinek
nagy része (HX, TX, LX stb.) tartalmaz egy ezzel együttműködő újabb megszakítás-vezérlőt,
a 82039-et, de ez a perifériák által használható megszakításokat nem érinti.
Egy PCI eszköz, ha a funkciójához megszakításra van szüksége, akkor az INTA-t
használja. Amennyiben két funkciót - például két soros kapu - lát el, akkor
az első az INTA, a második az INTB megszakítás, és így tovább. Nem követelmény,
hogy a PCI perifériák valamennyi INTA vonala a PCI INTA bemenetére csatlakozzék,
mivel akkor ez lenne a legterheltebb vonal, szinte minden PCI eszköznek lévén
INTA megszakítása. A PCI specifikáció semmiféle útmutatást nem ad a négy PCI
megszakítás megosztására nézve, lehet hardveresen �beégetett" vagy programból
konfigurálható. Sok esetben például a BIOS Setupban beállítható, hogy az alaplapon
levő két IDE kapu melyik PCI megszakítást
használja. A PCI periféria nem tudja előre, hogy melyik megszakításra kerül
a négy közül, ezt a BIOS állítja be a gép
bekapcsolása után - nem úgy, mint az ISA perifériákon: ott az adapterkártyán,
átkötésekkel van beállítva, hogy az adapter melyik megszakítást használja. A
BIOS osztja ki az allokálható megszakításokat - felmérvén a gépben levő PCI
és ISA perifériákat -; a PCI megszakításokat csak akkor osztja ki, ha szükséges.
A perifériának az a következő feladata, hogy a felhasznált (legfeljebb négy)
PCI megszakítást hozzárendelje a szabad IRQ vonalakhoz. Elvileg csak a szabad
IRQ megszakításokat használhatja, hiszen ezek nem oszthatók meg. Sajnos azonban,
mivel nem - vagy nem jól - ismer fel minden ISA eszközt, időnként mégis megosztja
a már használt IRQ-kat is, ezért ezek az eszközök nem fognak működni.
Ennek elkerülésére a BIOS Setupban az ISA
eszközök által eleve elfoglalt megszakításokat a �Legacy ISA" beállítással kivehetjük
a BIOS választékából. A �PCI/ISA Plug & play" beállítás azt jelzi, hogy ez a
megszakítás kiadható vagy egy ISA eszköznek (ha felismerte) vagy a négy PCI
megszakítás valamelyikének. A kiosztás után a PCI eszköz egy regiszterébe a
BIOS kiírja, hogy melyik megszakítást kapta meg, az operációs rendszer pedig
- a perifériát lekérdezve - ennek megfelelően állíthatja be az eszközmeghajtóját.
Tapasztalat szerint a felhasználó - esetleg hibás - megszakítás-beállításait
a BIOS nem bírálja felül. Csak a perifériacím-ütközésre figyel, ha tehát, mondjuk,
a PCI és az ISA sínen is van COM1 soros port, akkor figyelmeztetést küld az
ütközésről, és ha nem reagálunk, akkor a PCI sínre csatlakozót engedélyezi,
az ISA-t pedig letiltja - mivel a PCI sínen lévő perifériákat �tapogatja le"
először. A BIOS a megszakítás-ütközés megszüntetését az operációs rendszerre
bízza: vele oldatja fel azt a helyzetet például, hogy a COM1 (ISA) és a COM3
(PCI) is az IRQ3-at akarja használni. A Windows
95/Windows 98 pedig annak adja a megszakítást, és azt használja, amelyiket
előbb találja meg; az iménti példában ez a COM1 lesz az ISA sínen.
A személyi számítógépekben általában 5 voltos, 33 megahertzes PCI sínt használnak,
a kevés számú kivétel közé tartozik például a Silicon
Graphics nemrég piacra hozott PC-je: az 3,3 voltos PCI adaptereket fogad.
Az ajánlás 2.1-es verziója már a 66 megahertzes változatot is definiálja; az
64 biten elvileg már 8bájt X 66 megahertz = 528 megabájt/másodperces maximális
sebességet érhet el. Az alaplap érzékeli, hogy 33 vagy 66 megahertzes-e az adapterkártya,
és e szerint választja ki az órajelet. A két adaptertípus együtt is használható,
ilyenkor azonban a 66 megahertzesek is a 33 megahertzes közös órajelet kapják.
A leírásban szereplő órajel csak a maximum, az adaptereknek működniük kell a
0-33, illetve a 0-66 megahertzes tartományban, mert ez szükséges az energiatakarékos
üzemmódhoz és az alvó állapothoz. Nagyfrekvenciás jelek továbbításakor - többek
között - a visszaverődés és az áthallás okoz nehézségeket. Az elektromágneses
hullám visszaverődik a vezeték szabad végéről - mint a vízhullám a medence faláról
-, és interferál a beérkező jelekkel. Ennek elkerülésére egy ellenállással (vagy
impedanciával) zárják le a kábel végét, mint például a hagyományos koaxkábeles
Ethernet hálózatot vagy a SCSI sínt. Az
ellenállás azonban növeli az energiafogyasztást. A PCI-t úgy tervezték, hogy
ne kelljen lezárni, sőt ahhoz, hogy a csatlakozón a feszültség elérje a névleges
3,3 vagy 5 voltot, nem is szabad lezárni, különben a sín nem működik. Az egymáshoz
közeli vezetékeken haladó nagyfrekvenciás jelek feszültséget indukálnak a szomszédos
vezetékekben, a vezeték hosszával arányos nagyságút: ez az áthallás. Ezért nem
lehet akármilyen hosszú IDE kábelt, nyomtatókábelt
stb. használni. Az alaplapon levő PCI sín vezetékei még elég rövidek, de egy
nagyobb rendszerben, ha a szekrény hátoldalán kell az egyik dobozból a PCI sínt
átvezetni a másikba, akkor az áthallás már bajt okozhat. A PCI erre két megoldást
kínál. Az egyik szerint nem egyszerre adja ki a jeleket a vezetékeken, hanem
az első órajel alatt csak mondjuk az 1-es, a 3-as, az 5-ös stb. kábelekre, a
másodikban pedig a többi - a 2-es, 4-es stb. - vezetékekre. A második megoldás
minden kábelen egyszerre továbbítja a jeleket, de fokozatosan kapcsolja rájuk
a feszültséget: az első órajel alatt mondjuk csak 2,5 voltot és a másodikban
az 5 voltot, mivel az indukció arányos a feszültségváltozással. Sajnos mindkét
módszer tönkreteszi a PCI egyik legnagyobb előnyét, a sebességét, ezért a gyakorlatban
ritkán alkalmazzák őket.
Egy átvitel az irányától függően lehet adatkérés (olvasás) vagy adatküldés (írás).
Azon a csatlakozón, amelyhez memória és/vagy egyidejűleg több eszköz is kapcsolódik,
továbbítani kell a címzettet kiválasztó információt is, vagyis az adat címét.
Méghozzá az adat előtt, hogy íráskor a céleszköz felkészülhessen a fogadására,
olvasáskor pedig a küldőnek legyen ideje �előkeresni". Hagyományos átvitelnél
a címet minden egyes adat előtt továbbítják a sínen. Az adatok továbbításuk
közben a legtöbb esetben nem tetszőlegesen, hanem valamilyen logikai sorrendben
követik egymást, ezt a csomagátvitellel (burst átvitel) lehet kihasználni. Csak
az első átvitel, az úgynevezett címfázis továbbítja a legelső adat címét és
az átvitel típusát, ezt sorban, további címközlés nélkül követik az adatokat
átvivő adatfázisok. A második, harmadik stb. adat címét automatikusan generálja
a másik, íráskor a fogadó, olvasáskor a küldő oldal. Egy fázis hossza egy órajel,
azaz 33 megahertzes órajelnél 30 nanoszekundum, 66 megahertznél pedig 15 nanoszekundum.
A terminológiai egyszerűsítés céljából a PCI leírása kezdeményezőnek (initiator)
nevezi az aktív, az átvitelt vezérlő oldalt, illetve célnak (target) a passzív,
a kérésre reagáló oldalt. A csomagátvitellel sok idő takarítható meg: az Intel-kompatibilis
processzorok a 486-os óta csomagátvitellel is tudnak kommunikálni a memóriával
vagy a külső gyorsítótárral. A PCI, ha lehetséges, minden egyes tranzakciót
csomagátvitellel hajt végre. Abban az esetben, ha a másik oldal erre nem képes,
akkor az első adat továbbítása, az első adatfázis után jelzi ezt a kezdeményezőnek,
s az leállítja a tranzakciót. Majd a második adattal újraindítja, ezt a túloldal
ismét leállítja stb. - ily módon a hagyományos átvitel is megoldható a PCI-on.
Mindkét oldal csökkentheti a sebességet azzal, hogy az adatfázisok közé szünetet,
várakozó fázisokat iktat be. Míg az említett processzorok esetében egy csomagátvitel
maximum 4 adatfázisból állhat - azaz 4x8 = 32 bájt lehet egy csomagban -, a
PCI esetén nincs ilyen beépített korlátozás, csak az adott körülmények befolyásolják
a csomag hosszát, így tehát akár több kilobájt is átvihető egyetlen menetben.
A sín csatlakozói nemcsak a szinkron vagy aszinkron működésben különböznek egymástól,
hanem abban is, hogy a cím- és az adatbitek közös vezetéken haladnak - multiplexeltek
-, vagy külön vonal tartozik mindegyikhez. A külön adat- és címsín nyilván gyorsabb
működést tesz lehetővé, de növeli a költségeket, a csatlakozónak és az adapterkártyáknak
is több hely kell. A PCI 32 címvezetéke és a 32, illetve a 64 bites változat
64 adatvonala önmagában, a kísérőjelek nélkül is szép mennyiség. Összehasonlításként
a 16 adat- és 24 címbitet hordozó ISA csatlakozó összesen 98 vezetéket tartalmaz,
még ha a legtöbb adapter nem is használja mindegyiket. Csomagátvitelnél csak
az első címet kell kiadni, a címsín az adatfázisok alatt kihasználatlan, ezért
a multiplexelt felépítést választották a PCI tervezői. Az AD (Address-Data)
vonalak az első fázisban a címet, a következőkben pedig az adatokat továbbítják.
A következő ábra a legfontosabb PCI jeleket mutatja. Ezek egy része a 64 bites
változathoz szükséges, más részük opcionális.
A PCI sín legfontosabb jelei
A C/BE (Command/Byte Enable) vezetékeken a kezdeményező a címfázis alatt a
művelet típusára utaló parancsot, az adattovábbító fázisok alatt pedig a bájtkiválasztó
jeleket adja ki. A 32 bites PCI a négy C/BE vonalon 16-féle parancsot tud kiadni,
a 2.1-es változat ebből 14-et használ, kettő más célra van fenntartva. A parancsok
három nagy csoportot alkotnak, úgymint: memóriára vonatkozó, perifériának szóló
és speciális parancsok. Utóbbiak közé tartozik például az üzenetküldés: ez értesíti
a PCI eszközöket, hogy a rendszer energiatakarékos, alvó állapotba került (processor
halt), vagy hiba miatt leállt (processor shutdown). A parancsok egy része -
például a gyorsítótár és a főmemória közötti adatátvitelt támogató - a PC-ben
nem használatos, mert ott a főmemória, illetve a gyorsítótár nem a PCI sínre
csatlakozik. A 32 bit széles PCI a memóriára vonatkozó parancsokkal mindig 4
egymást követő bájtot visz át, a kiadott startcímnek oszthatónak kell lennie
4-gyel. Például szükségünk van a 101-es memóriacímen lévő adatbájtra. A kezdeményező
által kiadott startcím ekkor 100 lesz, mert ez a hozzá legközelebb eső, néggyel
osztható cím. A memóriamodul - ha képes rá, azaz 32 bites - a PCI sínen a 100,
101, 102 és 103 címen lévő bájtokat egyszerre küldi el. Közülük csak a másodikra,
a 101 címűre van szükség, ezért a C/BE vonalon kiadott kóddal a kezdeményező
az érkező 32 bitből csak a 8 és 15 közöttieket �engedi be". Ezért hívják bájtengedélyezésnek
a C/BE adattovábbító fázisok alatti funkcióját. Segítségével a küldött vagy
érkező 4 bájtból tetszőlegesen válogathatunk. Például kérhetjük minden másodikat,
vagy kihagyhatunk egyet. A bájtválogatás a csomagban egymást követő adatfázisokban
változhat. Ha az előzőekben említett csomag folytatódik, a második fázisban
a 104, 105, 106 és 107 címen lévő bájtok érkeznek. Tetszőlegesen válogathatunk
közülük, függetlenül attól, hogy az előző fázisban melyiket választottuk. Íráskor
ugyanez a módszer, csak az adat iránya fordított: a processzortól halad a memória
felé. Előnye ennek a megoldásnak, hogy a PCI-n akkor is használható a csomagátvitel,
ha nem szomszédos adatokat akarunk elérni.
A PCI sebességeként emlegetett 132 megabájt/másodperc csak elméleti érték. Tételezzük
fel, hogy minden átvitel csomagban történik, és minden csomag három adatfázisból
áll, azaz 3x4 = 12 bájtot továbbít. Egy csomag hossza ebben az esetben olvasáskor
6, íráskor pedig 5 órajel. Számolnunk kell a csomagok között egyfázisnyi szünetet
is, mert nem csak egy periféria használja a PCI sínt. Olvasás közben az AD vonalak
iránya megváltozik, a címet a processzor, az adatokat pedig a memória teszi
rá a sínre, az ütközés elkerülésére be kell iktatni egy plusz órajelet. Egy
csomag hossza így 33 megahertzes órajelnél íráskor 5x30 = 150 nanoszekundum,
olvasáskor 6x30 = 180 nanoszekundum. Az írás sebességére ekkor 76,3, az olvasáséra
pedig 63,5 megabájtot kapunk másodpercenként.
A perifériák általánosságban nem tudnak csomag átvitellel kommunikálni. Négy
olyan eszköz van közöttük, amelyik rendelkezik saját memóriával, és így elvileg
alkalmas a csomagátvitelre a PCI sínen: a képernyővezérlő, a hálózati adapterkártya,
a merevlemez, valamint a hangkártyák egy része. Gondot okoz azonban, hogy az
Intel processzorok csak a memóriához forduláskor dolgoznak csomagátvitellel,
a perifériakezelő utasítások (IN és OUT) a hagyományos módon működnek. Ezért
ezek az említett eszközök csak akkor használhatják ki a PCI sebességét, ha nem
perifériaként kezeli őket a processzor. Két lehetőség van ennek elkerülésére:
az egyik, hogy saját vezérlőjük hozzáférhet a főmemóriához, a másik, hogy az
új típusú, 32 bites DMA vezérlő továbbítja számukra az adatokat. A PCI lehetővé
teszi a központi processzortól független adattovábbítást, akár az adapter és
a főmemória, akár két PCI adapterkártya között.
Ellentétben az ISA-val, a PCI sín forgalmát tehát nemcsak a CPU vagy a DMA vezérlő,
hanem az adapterek vezérlői is irányíthatják, és előfordul, hogy egyszerre ketten
is szeretnék használni. Ezért az alaplapon szükség van egy hozzáférés-kiosztóra
(arbiter), ez utalja ki a használat jogát a jelentkezőknek. Minden PCI vezérlőnek
van egy igénylő (REQ) kimeneti és egy nyugtázó (GNT) bemeneti vonala. Amikor
használni akarja a sínt, a REQ vonalon jelzi ezt a kiosztónak, s az a GNT vonalon
értesíti, ha ő lesz a következő. Ezt a gyorsabb váltás érdekében még az előző
síntulajdonos adatátvitele alatt megteheti, ennek a befejezését az újnak meg
kell várnia. A PCI-leírás nem szabja meg - a platformfüggetlenség miatt nem
is tehetné -, hogy több egyidejű jelentkező esetében mi alapján dönt a hozzáférés-kiosztó.
Ennek egyetlen feltétele van csupán: az, hogy a módszer mentes legyen a �halálhuroktól"
(deadlock), azaz nem fordulhat elő az az eset, hogy az eszközök kölcsönösen
egymásra várnak. Egy csomagban az egymást követő adatfázisok száma nem korlátozott,
sőt, a hosszabb csomagok nagyobb átlagsebességet jelentenek. Többvezérlős környezetben
azonban meg kell akadályozni, hogy az éppen aktuális vezérlő �ráüljön" a sínre,
és emiatt adatok vesszenek el, mert például a hálózati kártya nem jut szóhoz
a képernyővezérlő miatt. Ezért mindegyik PCI vezérlőben van egy időzítő annak
meghatározására, hogy meddig használhatja a sínt a vezérlő. Az időtartam lehet
fixen beépített vagy a rendszer indulásakor szoftverből beállítható. Valahányszor
a vezérlő megkapja a sínt, az időzítő elkezdi a visszaszámlálást, és ha az idő
letelt, a vezérlőnek a következő adatfázis befejezése után vissza kell adnia
a sínt a kiosztónak. Ez alól csak akkor van kivétel, ha a sínkiosztó még nem
vette vissza tőle a nyugtázó (GNT) jelet, ami azt jelenti, hogy más még nem
jelentkezett a sínért.
Az átvitel közben esetleg fellépő hibák detektálására paritás-ellenőrzést végez
a PCI. Az adatot továbbító oldal kiszámítja az AD és a C/BE vonalak paritását,
és ennek megfelelő bitet küld el a paritásvonalon (PAR). A fogadó oldal a vett
adatból szintén kiszámítja a paritást, és összehasonlítja a PAR vonalon érkezővel.
Amennyiben a kettő nem egyezik, ezt a paritáshiba-vonalon (PERR) jelzi a rendszernek.
Íráskor - mivel a vezérlő kezeli mind az AD, mind a C/BE vonalakat - a paritásbitet
a címmel vagy az adattal egy időben tudja továbbítani. Olvasáskor a céleszköz
csak az AD sínt használja, a C/BE a vezérlő kezében marad, ezért a cél csak
kicsit késve tudja kiszámolni a közös paritást. Így a PAR vonalon küldött bit
olvasáskor mindig az aktuálist megelőző fázisra vonatkozik. A paritáshiba kezelésének
módja már nem része a PCI-leírásnak - ha az átvitel megismétlése nem segít,
akkor feltehetően hardverproblémáról van szó.
Az alaplapon elhelyezkedő PCI csatlakozók lehetnek 5 és 3,3 voltosak, 32, illetve
64 bitesek. A specifikáció az energiatakarékos 3,3 voltos csatlakozók, illetve
adapterkártyák használatát ajánlja. Ezek is megkapják a PC tápegysége által
előállított négyféle feszültséget (3,3 volt, 5, +12 és -12 volt), de a csatlakozók
vonalai 3,3 volttal dolgoznak. A 32 bites kártyák használhatóak a 64 bites foglalatokban,
és fordítva. Ügyelni csak a feszültség egyezésére kell, de a kártyák és az aljzatok
olyan kialakításúak, hogy megakadályozzák a helytelen csatlakozó-kártya párosítást.
Az alaplap érzékeli a kártya jelenlétét, és a teljesítményigényét (25, 15 és
7,5 watt) is jelezheti.
A tavaly januárban kiadott 2.2-es specifikáció számos újdonságot tartalmaz.
Legfontosabbak közé tartozik a Hot-Plug specifikáció, amely lehetővé teszi a
Hot Replace funkciót, vagyis egy meghibásodott PCI eszköz kicserélését, a Hot
Upgrade funkciót, vagyis egy működő eszköz újabbal való kicserélését, valamint
a Hot Expansiont, vagyis egy eddig még nem használt eszköz rendszerbe illesztését
- mindez a számítógép, illetve az operációs rendszer leállítása nélkül. Másik
lényeges újdonság a PCI Power Management, amely biztosítja az ACPI
(Advanced Configuration and Power Interface) kompatibilitást. Az ACPI segítségével
a a PCI eszközök beilleszthetők a számítógép energiatakarékossági műveleteibe,
így ki lehet kapcsolni a nem használt eszközöket.
A PCI szabvánnyal kapcsolatos linkek:
http://www.pcisig.com/
http://www.picmg.com
http://www.pci.org/
http://www.linuxdoc.org/HOWTO/PCI-HOWTO.html
http://www.microsoft.com/hwdev/PCI/
http://www.asus.com.tw/Products/Techref/Multimedia/agp_feature.html
![]() AGP sín az alaplapon |
Az Intel 1996-ban adta ki az AGP (Accelerated
Graphics Port) első specifikációját, és egy évvel később, 1997 májusában jelentette
be az első AGP-t támogató lapkakészletét, a
440LX-et. Ahhoz, hogy lássuk, hogyan gyorsítja az AGP a háromdimenziós ábrázolások
megjelenítését, át kell tekintenünk ezeknek az előállítási módját és az AGP
nélküli működést. A térbeli testek perspektivikus (valamely térbeli pontból
látható) képét két lépésben állítja elő a számítógép. Először az ábrázoló geometria
szabályai szerint kiszámítja a testváz perspektivikus képét, rendszerint elemi
háromszögekre bontva a bonyolult alakzatokat. Ehhez nagy mennyiségű lebegőpontos,
vagyis törtekkel végzett műveletre van szükség: ki kell számítani az átfedéseket,
a takarásokat is. A látható részek vázát azután beborítja a megfelelő felülettel,
textúrával. A textúrákat bitképek formájában készen kapja a rendszer, de a körülményeknek
- megvilágításnak, nézőpontnak - megfelelően sokszor még át kell alakítania,
transzformálnia kell őket, több textúrát - például szilárd felületet és vizet
- kell kombinálnia; mindezt a munkát a 3D megjelenítőkártya
grafikus vezérlőprocesszora végzi el.
A kész textúrákat szintén a grafikus CPU
teszi fel a testvázra - ha van grafikus CPU a konfigurációban; ha nincs, akkor
ezt is a CPU csinálja -, s ezzel előáll a végleges kép. Ez a kép azonban a virtuális
helyszínen való mozgással folyamatosan változik, újra kell számolni a testvázakat
és a textúrákat, a folyamatos megjelenítéshez tehát nagy lebegőpontos teljesítményű
CPU és 3D megjelenítőkártya szükséges. Az Intel processzorok a cég szerint a
Pentium II-vel érték el az ehhez szükséges
lebegőpontos sebességet, és ezzel nem a CPU, hanem a CPU és a videokártyát összekapcsoló
PCI sín a legfőbb akadály a sebességnövelés útjában.
Az általában 1 és 128 kilobájt közötti méretű bitmintákat a processzor a merevlemezről
a PCI sínen át beolvassa a rendszermemóriába. Innen veszi elő őket a grafikus
vezérlő, és szintén a PCI sínen átviszi a videokártyán levő saját memóriájába.
Ennek csak egy részét foglalja el a pillanatnyi képernyőtartalom, a többi a
képelőkészítéshez szükséges adatokat, közöttük a textúrákat tárolja. A grafikus
vezérlő itt transzformálja őket, s viszi fel a testvázra. Ennek a megoldásnak
azonban több hátránya is van: - a textúrákat két helyen is tárolja: a rendszermemóriában
és a megjelenítő memóriában; - a megjelenítő memória mérete korlátozza a használható
textúrák számát, illetve méretét, s ezzel a kép finomságát; - a PCI sín terheltsége
közvetlenül befolyásolja a kép minőségét: ha a textúrák nem érkeznek időben,
akkor akadozik a megjelenítés. Az AGP sínnek az az egyik jó tulajdonsága, hogy
a PCI-nál négyszer gyorsabban, legfeljebb 528 megabájt/másodperc sebességgel
kommunikál a rendszermemóriával, és ezzel a PCI forgalmát is csökkenti. De van
más, legalább ilyen fontos erénye is: ennek a sebességnek a jóvoltából a rendszermemóriában
foglalhat le helyet a textúráknak, és a grafikus vezérlő közvetlenül innen veheti
őket, s nem kell előbb a megjelenítő memóriába vinnie őket. A rendszermemória
erre a célra lefoglalt részét AGP memóriának nevezik. Az AGP memória lényegében
a videokártyán lévő megjelenítő memória kiterjesztése. A megjelenítő memória
egy részét a processzor ugyanúgy látja, mint a rendszermemóriát, az ezekre a
címekre vonatkozó kéréseit a lapkakészlet címdekóderei irányítják a PCI vagy
az AGP sínen át a videokártyára. A CPU fizikailag csak a lassúbb elérésből veheti
észre a különbséget. A CPU-nak a videomemóriának küldött és az AGP tartományra
eső címeit azonban nem a videokártyára irányítja a lapkakészletbe integrált
memóriahozzáférés-vezérlő, hanem a rendszermemória felé. A baj az, hogy az AGP
memória mérete dinamikusan változik az igények szerint a szabad rendszermemória
méretétől függően, s mivel a rendszermemóriát a rendszer is használja, azért
az erre a célra lefoglalt terület általában fizikailag nem függő. Ahhoz, hogy
a processzor és a grafikus vezérlő is összefüggő területnek lássa az AGP memóriát,
a lapkakészlet átfordítja a rá vonatkozó címeket, és így folytonosnak mutatja
a fizikailag széttagolt területet. A címfordítást a lapkakészletbe integrált
GART (Graphics Address Remapping Table) nevű táblázat teszi lehetővé: ezt úgy
töltik fel, hogy egy adott bájtot ugyanazon a címen lásson a grafikus vezérlő
és a processzor. Az Intel 1998 májusában adta ki az AGP specifikációjának második
verzióját. Az AGP a 32 bites, 66 megahertzes PCI sín továbbfejlesztése. Új jelekkel
és üzemmódokkal egészíti ki azt, de az eredeti PCI jeleket és funkciókat változatlanul
hagyja. A jelkiosztásnak érdekes vonása, hogy az AGP csatlakozón szerepelnek
az USB soros átviteli vonalai (USB+ és USB-),
az USB hubként is működő monitorok számára. Így az USB csatlakozó lehet az AGP
videokártyán, vagy mehet közvetlenül a videojelkábelen, mert ott van még két
szabad érintkező.
Ami a protokollt illeti, a PCI és az AGP átvitel között az a legfontosabb különbség,
hogy az AGP tranzakciók átlapolódnak, azaz például az adatkérés (olvasás) kiadása
után nem kell megvárni, hogy a memória előkeresse a kért információt, hanem
nyomban indítható a következő kérés. Az AGP vezérlő és a memóriavezérlő is várakozási
sorokba (queue) rendezi a hozzá érkezett kéréseket, valamint a küldendő/fogadott
adatokat. A kérések sora két részre oszlik: a sürgősekre, azaz a magas prioritásúakéra
és az alacsony prioritásúakéra. Ebből az is következik, hogy a tranzakciók végrehajtása
nem feltétlen követi az indítási sorrendet. Egy tranzakciótípuson belül azonban
már a kiadási sorrend számít. Tehát egy AGP rendszermemória-írás előbb befejeződhet,
mint egy olvasás, még ha az olvasáskérés érkezett is előbb, de az írások és
az olvasások külön-külön már az indítási sorrendet követik. A memóriavezérlőnek
más sorrendben is kiolvashatja a kért adatokat, de a kérési sorrendben kell
elküldenie őket az AGP vezérlőnek. A lapkakészlet vezérlője külön sorba teszi
a processzortól az AGP vezérlőhöz érkezett kéréseket - ezek PCI átvitellel jutnak
el a vezérlőhöz -, de ezek a kérések nem lapolódhatnak át: új tranzakció csak
az előző befejeződése után indítható. A videokártyán levő AGP vezérlő AGP és
PCI átvitellel is elérheti a rendszermemóriát, pontosabban az itt levő AGP memóriát;
a processzor a lapkakészleten át csak PCI átvitellel fordulhat az AGP vezérlőhöz
és az adapterkártyán lévő megjelenítő memóriához. Ez alól egyetlen kivétel van,
az opcionális gyors írás (FW - Fast Write): ilyenkor a processzor PCI művelettel
- tehát nem átlapolhatóan -, de az AGP sebességével írhat a megjelenítő memóriájába.
Az AGP sín forgalma így átlapolódott AGP és normál PCI átvitelek keveréke, a
kétféle átvitel azonban teljesen független egymástól, csupán ugyanazokon a vezetékeken
zajlik. Az AGP sínt viszont csak egyetlen vezérlő használhatja, ezért nevezik
portnak vagy kapunak is. A PCI átvitelben a cím az átvitel első fázisában -
a címfázisban -, ugyanazokon a vezetékeken halad, mint később az adatok az egymás
utáni adatfázisokban. Az AGP egy nyolcbites önálló címsínnel, az SBA-val (Side
Band Address) egészíti ki a PCI-t. Ezen egy 32 bites cím csak 4 átviteli ciklusban
továbbítható, de ha a cím első 24 bitje azonos az előzőleg továbbított cím első
24 bitjével, akkor csak az új cím eltérő 8 bitjét kell átvinni. Az AGP háromféle
átviteli sebességgel dolgozhat: egyszeressel, kétszeressel és négyszeressel.
Egyszeres sebességen egy órajel alatt négy bájtot visz át, legnagyobb sebessége
ekkor megegyezik a szintén 66 megahertzes PCI sín sebességével, tehát 266 megabájt/másodperc
(4 bájt X 66 megahertz). Effektív átbocsátóképessége azonban az átlapolódó AGP
átvitelek révén már ekkor is nagyobb a PCI-énál. A kétszeres sebességet úgy
érik el, hogy az órajel felfutó és lefutó élén is továbbítódik egy adag, azaz
négy bájt, a legnagyobb sebesség ilyenformán 528 megabájt (2 X 4 bájt X 66 megahertz).
Végül négyszeres sebességen egy órajel alatt négy adag, azaz 4 X 4 bájt megy
át, a legnagyobb sebesség több mint 1 gigabájt/másodperc, pontosabban 1056 megabájt/másodperc.
Ehhez az órajelen kívül két külön időzítőjel is szükséges; ezeknek kétszer akkora
a frekvenciájuk, mint az órajelé. A négyszeres sebesség a leírás szerint opcionális,
nem kötelező. A PCI átvitelek sebessége a PCI specifikációnak megfelelően egyszeres,
kivéve a már említett gyors írást: ezzel az írásmóddal kétszeres. Aki a szokásos
irodai környezetben használja a személyi számítógépét, az AGP nem hoz érzékelhető
teljesítménynövekedést. Az Intel ezzel a sínnel a DVD-s
házimozi alkalmazásoknál akart sebességnövekedést elérni.
A grafikus kártyák hihetetlen fejlődésének lehetünk tanui. Most már nem ritka a 2 (pl. Ati Rage Fury Maxx) vagy akár négy (pl. 3dfx Voodoo 6000) grafikus processzorral szerelt kártya, min. 32-64 Mbájt memóriával. Ezeknek a kártyáknak már jóval nagyobb az energiafogyasztása, amit esetenként az AGP busz már nem képes szolgáltatni. Bár most még nagyon ritkák az AGP Pro busszal szerelt kártyák, ennek a továbbfejlesztésnek pontosan az volt a fő célja, hogy képes legyen még nagyobb mennyiségű elektromos áramot szolgáltatni a kártyáknak. Ezért a szabvány előírja a kiegészítő csatlakozást (ha összehasonlítjuk az AGP sínnel, akkor az AGP sín mellett még egy kiegészítő sínt is találunk), a kártya mechanikai specifikációját, az I/O csatlakozókat és az alaplapon lévő elrendezést is. Az AGP Pro sín az AGP sín továbbfejlesztése és ennek következtében ezt a sínt egészítette ki mindkét irányban további csatlakozókkal. Így, ebben a sínben lehet használni a régi AGP buszos kártyákat is. A régi (AGP) és az új (AGP Pro) csatlakozók típusait láthatjuk a következő ábrán:
![]() |
![]() |
Az AGP szabvánnyal foglalkozó linkek:
http://www.agpforum.org/
http://www.agpforum.org/specs_specs.htm
- AGP Pro leírása
http://support.intel.com/support/technologies/graphics/agp/
http://developer.intel.com/technology/agp/
http://www.microsoft.com/hwdev/agp/
http://www.ati.com/na/pages/faq/agp_faq.html