PCI-siin

**PCI** (lühend sõnadest *Peripheral Component Interconnect*, inglise keeles ’välisseadmeühendus’) on Intel Corporationi välja töötatud kohaliku siini standard, mida kasutatakse enamiku tänapäevaste personaalarvutite juures kõrvuti uuema PCI Expressi ja vanema ISA-laiendussiinistandardiga. PCI-siin (nagu kõik teised arvutisiinid) tähendab elektriliste ühenduste kogumit, mille kaudu andmeid kandvad elektrisignaalid liiguvad ühest arvutisüsteemi osast teise.

PCI-siini standardi määravad:
* füüsilised parameetrid (näiteks ühenduspesade tüübid);
* elektrilised parameetrid (näiteks pinge);
* loogiline mudel (näiteks tsüklite tüübid siinis).

Laiendussiinid võimaldavad arvutisse lisada laienduskaarte ning ühendada neid protsessori ja põhimäluga. Iga siin koosneb kahest osast: andmesiinist ja aadressisiinist, kuid need võivad olla ka kokku multipleksitud samadele füüsilistele ühendustele.

PCI on siin. Igal siinil on mitu pesa. Esialgne PCI lubas ühele siinile kuni 3 pesa, uuem standard lubab kuni 6 pesa. Rohkemate pesade vajadusel võib arvuti sees olla ka mitu PCI-siini, igaühel kuni 6 pesa. Lisaks võib PCI-siinil olla PCI sild, mille taga on uus PCI-siin. Nii saab kokku palju siine teha, näiteks IBM-i suurtes serverites esineb sadu PCI-siine (pesasid on seega veel rohkem).

## Ajalugu
Vanasti kasutati PC-des ISA siini, selle kitsaks jäämisel VLB siini ning serverites EISA siini. Sunidel olid SBus siinid, Macidel NuBus, IBM-il MCA, jne. Mõned neist olid 16-bitised, enamik 32-bitised.

1991. aasta kevadel lõpetas Intel PCI-siini esimese versiooni väljatöötamise. Kuna VLB oli ajutine häkk ja disainitud 486 protsessorite jaoks, siis Pentium protsessorite jaoks oli vaja uut, kiiremat siini. Inseneride eesmärk oli töötada välja kulutasuv ja produktiivne lahendus, mis võimaldaks realiseerida protsessorite Pentium ja Pentium Pro võimet. Eriti rõhutati, et välja töötamine (areng) toimub nullist ja insenerid ei püüdnud juba olemasolevaid seadmeid modifitseerida. Lisaks sellele oli vaja võtta arvesse neid vigu, mida tegi VESA, kui projekteeris VLB-siini (elektriline koormus ei võimaldanud ühendada rohkem kui 3 laienduskaarti). Samuti rakendada seadmete autokonfiguratsiooni arvutile Amiga (protokoll Autoconfig).

Aastal 1992 ilmus PCI-siini esimene versioon ja Intel teatas, et siini standard on lahtine ning et nad loovad PCI Special Interest Groupi. Seega on igal huvitatud arendajal võimalus luua PCI seadmeid ilma litsentsi ostmata. PCI kujutab endast hübriidi ISA- ja VLB-siinist. Uus standard pakub seadmetele otsest juurdepääsu süsteemi mälule, aga kasutab silda, et luua ühendus esisiiniga ja seejärel protsessoriga. Sild on vajalik, et reguleerida PCI kiirust sõltumata protsessori kiirusest. Esimese versiooni taktsagedus oli 33&nbsp;MHz, siini laius oli kas 32 või 64 bitti ning ta toetas 3,3 V ja 5 V seadmeid. PCI on kuni 10% kiirem kui VLB standard. Teoreetiliselt on siini ribalaius 133&nbsp;Mbit/s, aga praktikas umbes 80&nbsp;Mbit/s. See standard ei saavutanud aga populaarsust enne Windows 95 turule ilmumist, sest mainitud operatsioonsüsteem toetas isehäälestumist (Plug and Play (PnP)). Lühidalt tähendab see seda, et süsteem tunneb ise porti või pesasse ühendatud seadme või kaardi ära ning seadistab automaatselt kõik vajaliku. Ehk siis: tarvitseb riistvarakomponendid (näiteks graafika- või helikaart) ainult arvuti vabasse pessa panna ja ülejäänu toimub enam-vähem automaatselt. Uus komponent annab endast märku pärast arvuti käivitamist ning kooskõlastab arvuti sisehaldussüsteemis kõik vajaliku.

1993. aasta keskel lahkus Intel ühendusest VESA ja hakkas tegema aktiivseid samme PCI-siini edendamiseks turul. Vastus Uneseti spetsialistidele ja konkureerivatele ettevõtetele, kes rääkisid, et see siin on allpool igasugust arvestust (siini tunnusjooned olid sarnased näiteks Zorro III-ga, avaldati palju artikleid, kus räägiti, et siinil on vale disain) oli PCI 2.0.

Füüsiliselt paikneb PCI enamasti rööbiti varasema ISA süsteemisiiniga. Vahel esineb süsteemiplaadil ka kombineeritud ISA- ja PCI-siin võimaldades kasutada emba–kumba neist. Ta loob otsese juurdepääsu perifeeriaseadmetele pöördumaks esisiini poole, millega on ühendatud protsessor.

Aastal 1995 ilmus PCI versioon 2.1 (teise nimega "paralleelne PCI-siin"). See tagab taktsageduse 66&nbsp;MHz ja siini maksimaalne edastuskiirus on 533&nbsp;Mbit/s (64-bitine versioon taktsagedusega 66&nbsp;MHz). Lisaks toetab seda operatsioonsüsteem Windows 95 (isehäälestumise tehnoloogia), mis võimaldas IBM PC kasutajatel mitte tunda end riivatud võrreldes teiste platvormidega. Versioon PCI 2.1 oli nii populaarne, et varsti kanti see üle teistele platvormidele protsessoritega Alpha, MIPS, PowerPC, SPARC, jne.

Aastal 1997, seoses arvutigraafika arenguga ja AGP-siini väljatöötlemisega ei rahuldanud PCI-siin enam kõiki vajadusi ja enam ei kasutatud seda videokaartide juures (nõuded olid ülepaisutatud). AGP-siin suhtles otse operatiivmäluga, võimaldades sinna laadida 3D-elemente ja neid sealt kiirelt kätte saada. Füüsiliselt on see PCI-st erinev ning omavahel neid kaarte vahetada ei saa. Läbi aja on AGP-st ilmunud suuremate sagedustega versioone, mis kannavad lisandina nimes kordajat, mis näitab, mitu korda suurem on kiirus algse AGP-ga võrreldes (X2 – 133&nbsp;MHz, X4 – 266&nbsp;MHz, X8 – 533&nbsp;MHz).

## PCI-siini tehniline ülevaade

Siini taktsagedus on 33 või 66&nbsp;MHz, mis võimaldab arendada suurt läbilaskmevõimet. Maksimaalne läbilaskmevõime on:
* 132&nbsp;Mbit/s, kui siinilaius on 32 bitti ja taktsagedus on 33&nbsp;MHz; 
* 264&nbsp;Mbit/s, kui siinilaius on 32 bitti ja taktsagedus on 66&nbsp;MHz; 
* 264&nbsp;Mbit/s, kui siinilaius on 64 bitti ja taktsagedus on 33&nbsp;MHz; 
* 528&nbsp;Mbit/s, kui siinilaius on 64 bitti ja taktsagedus on 66&nbsp;MHz. 
Kui taktsagedus on 66&nbsp;MHz, siis on vaja järgida, et kõik perifeeria seadmed töötaksid samal taktsagedusel.

Mälu aadressiruum on 32 või 64 bitti. I/O aadressiruum on 32 bitti. Konfiguratsiooniruum iga seadme kohta on 256 baiti.

PCI on 64-bitine siin, kuigi seda kasutatakse tihti ka 32-bitise siinina. See tähendab, et ühekorraga saab edastada kas 32 või 64 andmebitti. Toimub sünkroonne andmevahetus, siin on multipleksitud (aadress ja andmed edastatakse kasutades sama liini).

Pinge on kas 3,3V või 5V. Eksisteerivad ka universaalsed emaplaadid mis toetavad nii 3,3V kui ka 5V seadmeid.

Siini spetsifikatsioon võimaldab kombineerida kuni kaheksa funktsiooni ühel plaadil (video + heli, jne.).

PCI seadmel on 47 kontakti (49 masteringi puhul).

Toetab isehäälestumist.

## PCI-siini eelised
Siini väljatöötamisel kaasati tema arhitektuuri eesrindlikud tehnilised lahendused, mis võimaldasid suurendada läbilaskevõimet. PCI-siin on esimene siin IBM PC arhitektuuris, mis ei ole seotud vaid selle arhitektuuriga. See ei sõltu enam protsessorist ja seda kasutatakse ka näiteks Macintosh arvutites.

PCI-siinil on veel üks väga suur eelis kõrge kiirusega andmete edastuse juures – Burst Mode Transfer ehk valangrežiimis edastus. Vanemad siinid vajavad ühe andmeploki edastuseks esmalt aadressi ning seejärel andmeid. Järgmise ploki saatmiseks tuleb uuesti defineerida aadress ja saata andmed. Lisanduvad veel spetsiaalsed plokid igale tsüklile. Valangrežiimis saadetakse esmalt üks aadresside plokk ja seejärel kaks või rohkem andmete plokki. Selline moodus annab palju suuremad andmeedastuskiirused.

PCI on väga odav, laialt levinud ja voolusäästlik siin.

PCI-siin erineb teistest siinidest selle poolest, et komponendid asetsevad plaadi PCI adapterite vasakul pealispinnal. Sel põhjusel jagab äärmine PCI pesa tavaliselt maandumiskohta ISA pesaga (*shared slot*).

Niinimetatud sildadeülene protsessor (PCI Bridge) võib olla lülitatud mitmete PCI kanalite külge, andes võimaluse saata üheaegselt andmeid edasi sõltumatute PCI kanalite vahel.

## PCI-siini signaalid
PCI on põhiliselt mõeldud suhtluseks, kus mälusse tuleb kirjutada või mälust lugeda palju andmesõnu järjest. Siini *master*iks on kas protsessor või DMA kontroller ehk initsiaator. Adresseeritav seade on sihtkoht.

Sümbol – (miinus) signaali ees tähendab, et selle signaali tase on loogiline null, märgistus {XX:0} tähendab rühma signaale numbritega 0–XX.
* AD{31:0} – multipleksitud aadressisiin/andmesiin. Aadressi edastatakse signaaliga FRAME, järgnevas signaalis edastatakse andmeid.
* FRAME# – initsiaatori saadetav signaal, mis näitab ülekande kestust.
* DEVSEL# – seadme vastus, mis näitab, et ta on andmevahetusesoovist aru saanud ja andmevahetuseks valmis.
* IRDY# – initsiaatori valmisolek andmevahetuseks.
* TRDY# – näitab, kas sihtkoht on valmis andmevahetuseks või mitte.
* STOP# – tehingu lõpp (sihtkoha seadmete päring).
* LOCK# – kasutatakse paigaldamisel, hooldusel ja PCI ressursside vabastamisel.
* REQ# – PCI-seadmete siini haaramise päring.
* GNT# – siini kasutamise luba.
* PAR# – paarsuse üldine bitt liinidele AD{31:0} ja C/BE{3:0}.
* ParityER# – signaal tähendab, et on paarsuse viga.
* RST# – kõikide seadmete lähtestamine.
* SERR# – süsteemi viga, aktiveeritakse ükskõik milliste PCI seadmetega ning selle tulemus on maskeerimata tehingu lõpp (NMI).
* REQ#64 – 64-bitise vahetuse päring.
* ASK#64 – 64-bitise vahetuse kinnitamine.
* Clock# – sünkroonimissignaal siini taktsagedusel.
* Test Clock# – TSTRES, TestDO, TestDI signaalide kohandamine liidese JTAG testimiseks (tavaliselt ei ole kasutusel).
* TSTMSLCT# – testrežiimile üleminek.
* CLK# – 33&nbsp;MHz või 66&nbsp;MHz taktsignaal.

Sümbol *#* nimetuse lõpus näitab, et signaal on aktiivne madalapingelises olekus

## PCI seadme konfigureerimine
Kui seade on arvutiga ühendatud, siis talle omistatakse initsialiseerimise käigus aadress kasutades IDSEL# signaali (Input Device Select). Kuna PCI seadmete maksimaalne arv on 21, siis PCI konfigureerimise tarkvara skaneerib kõik 21 võimalikku asukohta selgitamaks välja, millised seadmed on reaalselt olemas. Iga seade võib küsida aadressi I/O aadressiruumis või mälu aadressiruumis ja see info kirjutatakse seadme registrisse. Kui seade vajab installeerimist, kirjutatakse installeerimise kood seadme ROM-i, seejärel PCI tarkvara loeb seda koodi, käivitab ja teeb vajaliku initsialiseeringu.

## Füüsilised mõõtmed
### Normaalsuuruses (''full-size'') kaardid
Normaalsuuruses kaardi kõrgus on 107&nbsp;mm ja sügavus on 312&nbsp;mm, kuid paljudele kaasaegsetele arvutitele need ei sobi. Kohad, kuhu tuleb kruvid keerata, on ka standardiseeritud. Vaatamata sellele, et kaart võib ka väiksem olla, on kruvi suurus sama ning kõik kruvid peavad olema hoolikalt kruvitud.

### Keskmise suurusega (''half-length'') kaardid
Peaaegu kõikidele kaasaegsetele arvutitele sobib see standard.
* laius – 15,24&nbsp;mm
* sügavus – 175,26&nbsp;mm
* kõrgus – 106,68&nbsp;mm

### Poole kõrgusega (''half-height'') kaardid
Need on ’madala profiili’ kaardid, kuhu sobivad seadmed järgmises vahemikus:
* kõrgus: 36,07&nbsp;mm – 64,41&nbsp;mm
* sügavus: 119,91&nbsp;mm – 167,64&nbsp;mm

### Mini PCI
Sülearvutitest leiame ka PCI modifikatsiooni Mini PCI. Standardi järgi on Mini PCI kaardid normaalsuuruses kaartidest umbes 1/4 võrra väiksemad. Tavalise PCI-siiniga varustatud riistvaras saab kasutada Mini PCI kaarte Mini PCI to PCI muundurite abil. Uuematel arvutitel on Mini PCI asendatud PCI Express Mini kaartidega.

## Tulevik
PCI-siiniliidest asendatakse järk-järgult PCI Expressi, HyperTransporti ja USB-siiniliidestega. Tänapäevastele emaplaatidele (alates ligikaudu aastast 2010) paigaldatakse varasema 5–6 asemel ainult üks, harva kaks PCI-pesa.

## Vaata ka
*Emaplaat
*Siin
*Aadressisiin
*Jadasiin
*Paralleelsiin

## Viited