PCI Express

PCI Express (Peripheral Component Interconnect Express) ehk PCIe või PCI-E (tuntud ka kui 3GIO (3rd Generation I/O); mitte segamini ajada PCI-X ja PXI) on kiire jadasiin, mis loodi asendamaks vanemaid PCI, PCI-X ja AGP standardeid.

Erinevalt PCI siinist, mis kasutab andmete edastamiseks ühissiini, põhineb PCI Expressi kakspunkt-topoloogial, kus iga seade on juurkompeksiga ühendatud eraldi jadaühendusega. PCI Expressi seadmed suhtlevad teineteisega kommutaatorite vahendusel. Iga seade on kommutaatoriga seotud kakspunktühendusega.

PCI Expressi siin toetab kaartide käigultvahetust, teenusekvaliteeti (QoS), energiatarbimise kontrolli ja edastatud andmete terviklikkuse kontrolli.

PCI Expressi standardi arendamist alustas Intel. Esimene ametlik PCI Expressi baasspetsifikatsioon ilmus 2002. aasta juulis. PCI Expressi standardi arendamisega tegeleb organisatsioon PCI Special Interest Group, mis ühendab enam kui 900 ettevõtet.

PCI Expressi siini eesmärgiks on selle kasutamine ainult lokaalse siinina. Kuna PCI Expressi tarkvaraline mudel on suures osas päritud PCI-lt, siis olemasolevad süsteemid ja kontrollerid võivad olla kohandatud PCI Expressi siini kasutamiseks ainult füüsiliselt, ilma tarkvara versiooni uuendamata. PCI Expressi siini kõrge piiktulemuslikkus võimaldab selle kasutamist AGP ning PCI ja PCI-X siinide asemel. Loodetakse, et PCI Express vahetab need siinid personaalarvutites välja.

Pistikud 
 Madala profiiliga kaardid
 Mini Card – Mini PCI kujuteguri asendus. Pistikule Mini Card on viidud siinid x1 PCIe, USB 2.0 ja SMBus.
 ExpressCard – PCMCIA-sarnane kujutegur, PC Cardi järglane. Pistikule ExpressCard on viidud siinid x1 PCIe ja USB 2.0. ExpressCardi kaardid toetavad käigultvahetust.
 AdvancedTCA – telekommunikatsiooniseadmete kujutegur.
 PCI Expressi kaablite spetsifikatsioonid võimaldavad luua ühendusi pikkusega kuni paarkümmend, mõnikord ka paarsada meetrit, mis võimaldab luua «lahtiseid» arvuteid.
 Mobile PCI Express Module – NVIDIA loodud GPU pistiku standard sülearvutitele. Võimaldab GPU lihtsamalt välja vahetada.

PCI Express X1

Mini PCI-E 
Mini PCI Express – PCI Expressi siini formaat kaasaskantavate seadmete jaoks.

Selle standardi pistiku jaoks toodetakse hulgaliselt lisaseadmeid:
 WiFi-kaardid
 WiMax-kaardid
 GSM-modemid
 GPS-vastuvõtjad
 Pooljuhtkettad (SSD) – kasutab mittestandardset Mini PCI-E ühenduspesa (SSD Mini PCI Express) pinouti.
 PCIe ×1
 USB 2.0
 SMBus
 Indikaator-LED-i väljundid
 Ühenduse väljundid SIM-kaardi ja GSM WCDMA jaoks
 Omab reserveeritud kontakte (tulevastele seadmetele)
 Toide 1.5 В ja 3.3 В

SSD Mini PCI Express 
 PATA
 SATA
 USB
 Toide 3.3 В

ExpressCard 

ExpressCardi pesi kasutatakse 2010. aasta novembri seisuga järgmiste seadmete ühendamiseks:
 SSD-kõvakettad
 Kontrollerid 1394/FireWire (iLINK)
 Dokk-jaamad 
 Mõõteriistad 
 Mälu
 Mälukaartide (CF, MS, SD, xD, jt) adapterid
 Arvutihiired
 Rööppordid
 PC Card/iPCMCIA adapterid
 PCI laiendused
 PCI Expressi laiendused
 Kaugjuhtimine
 SATA-kontrollerid
 Jadapordid
 SmartCardi adapterid
 Televisioonituunerid
 USB-kontrollerid
 Juhtmevabad võrguadapterid (Wi-Fi)
 Juhtmevabad laiaribalised võrguadapterid (3G, CDMA, EVDO, GRPS, UMTS, jt)

Protokolli kirjeldus 

PCI Express seadmete ühendamiseks kasutatakse kahesuunalist punkt-punkt tüüpi jadaühendust, mida nimetatakse rajaks (Lane). See vastandub teravalt PCI-le, milles kõik seadmed ühenduvad üldise 32-bitilisele paralleelsele kahesuunalisele siinile.
Kahe PCI Expressi seadme vahelist ühendust nimetatakse liiniks (Link), ja see koosneb ühest (nimetatakse x1) või mitmest (x2, x4, x8, x12, x16 ja x32) rajast, ehk kahesuunalisest seeriaühendusest. Liini iga seade peab toetama vähemalt ühendust x1.

Üks suuri erinevusi PCI ja PCIe vahel on veel nende siinide topoloogia. Erinevalt PCI paralleelsiinist, kus kõik seadmed jagavad ühiseid aadressi-, andme- ja juhtimisliine, kasutab PCIe kakspunktühendust, kus igal liinil saab olla maksimaalselt kaks seadet. Selleks, et ühendada samasse süsteemi rohkem seadmeid, kasutab PCIe süsteem kommutaatoreid (switche) ja sildu (bridge). PCIe süsteemi hierarhia tipuks on protsessor, liidest protsessori ja muude siini komponentide vahel nimetatakse juurkompleksiks (Root complex). Igal PCIe komponendil on pordid, mille külge ühenduvad teised seadmed, juurkompleksi porte nimetatakse juurportideks. Kommutaator võimaldab ühe PCIe pordi külge ühendada rohkem kui üht seadet, ehk omab ühte ülesvoolu porti protsessori suunas ning mitut allavoolu porti otspunktide suunas. Seadet, mis on PCIe süsteemis "lõpus" ega ole kommutaator või sild, nimetatakse otspunktiks (endpoint) ja mis on võimeline toimima transaktsioonide algatajana (initiator) ja lõpetajana (completer). Sellistel seadmetel on ainult üks ülesvoolu port. Sild võimaldab PCIe süsteemi ühendada teist tüüpi siine (näiteks PCI või PCI-X), sellisel juhul on tegemist pärisillaga (forward bridge). Kui aga ühendatakse vastupidi (PCI süsteemi külge PCIe siin), siis sellist vahendatavat silda nimetatakse pöördsillaks (reverse bridge). Seadmed, mis on algselt disainitud PCI või PCI-X jaoks, aga millele on hiljem külge arendatud PCIe liides nimetatakse pärand otspunktideks (legacy endpoint) ja koheselt PCIe süsteemi jaoks disainitud seadmeid nimetatakse põlis-otspunktideks (native endpoint).

Elektrilisel tasemel kasutab iga ühendus madalpingelist diferentsiaalset signaaliedastamist (LVDS), kus iga ühenduse raja kaudu saadetakse sama signaali positiivne ja negatiivne „versioon". Sellega saavutatakse veakindlus - immuunsus mürade ja pingelangu vastu. Kuna viigud on üksteisele lähedal, siis välised mürad mõjutavad neid peaaegu võrdselt. Informatsiooni vastuvõtt ja edastamine toimub iga PCI Expressi seadmega kahe eraldatud juhi kaudu. Nii loob seade ühenduse PCI Expressi kommutaatoriga ainult nelja juhi abil.

Sellisel lähenemisviisil on järgnevad eelised:
 PCI Expressi kaart sobib sisse ja töötab korrektselt igas pesas sama või suurema ribalaiusega (näiteks kaart x1 hakkab töötama pesades x4 ja x16);
 Suurema füüsilise suurusega pesa ei saa kasutada kõiki lane'e (näiteks, slotile x16 võib juurde juhtida informatsiooni sideliinid, mis sobivad x1 või x8 juurde ja see kõik hakkab normaalselt talitlema, kuid seega on vaja ühendada kõik liinid «toide» ja «maandus», mis on vajalikud sloti x16 jaoks).

PCI Expressi siinil läheb kasutusse maksimaalne kogus lane'e, mis on saadaval nii kaardil kui ka pesal, kuid see ei võimalda seadmel töötada pesas, mis on mõeldud PCI Express siinist väiksema ribalaiusega kaartidele. Näiteks kaart x4 ei mahu füüsiliselt standardsesse x1 pesasse, vaatamata sellele, et ta saaks töötada x1 pesas, kasutades ainult üht lane'i. Osadel emaplaatidel võib näha mittestandardseid pesi x1 ja x4, millel puudub äärmine vahesein, ja sellisel juhul võib paigaldada nendesse kaarte, mis on suurema pikkusega kui pistik. Samal ajal ühte osa kaardist ei varustata toitega ja maandusega, mis võib kaasa tuua erinevaid probleeme.

PCI Express edastab kõiki kontrollandmeid, sealhulgas katkestusi, samade liinide kaudu, mida kasutatakse andmete edastamiseks. Jadaprotokoll ei saa olla kunagi lukustatud, niiviisi on PCI Expressi siini viivitused võrreldavad PCI omadega (PCI siin kasutab signaali edastamist katkestuste kohta eraldiolevaid füüsilisi liine IRQ#A, IRQ#B, IRQ#C, IRQ#D). 

Kõikides ülikiiretes jadaprotokollides, näiteks gigabitine Ethernet, peab olema sünkroonimise informatsiooni kandev edastamissignaal (ehk Taktsignaal) sisseehitatud. Sünkroniseerimissignaali tekitab andmevoo allikas ning saadab selle andmevoo sees vastuvõtjale, kus vastuvõtja taastab faasiluku (PLL) ahela abil andmevoost sünkroniseerimissignaali. Füüsilisel tasandil kasutatakse PCI Expressi kanali kodeerimise meetodit 8b/10b (8 bitti 10-s, koondamine 20%) konstantse osa kõrvaldamiseks edastamissignaalis ja kinnistades sünkroonimisinfo andmevoo sisse. Alates PCI Express 3.0st kasutatakse säästlikumat 128b/130b kodeeringut 1,5% koondamisega.

Mõned protokollid (näiteks SONET/SDH) kasutavad meetodit, mida nimetatakse scrambling'uks, sünkroonimisinfo kinnistamiseks andmevoo sisse ja edastatava signaali spektri "erosiooni" jaoks. PCI Expressi spetsifikatsiooni on ette nähtud scrambling-funktsioon, kuid scrambling PCI Expressis erineb sellest, mis on SONET'''il.

 Andmeedastuskiirus 
 Ribalaius 
PCIe 1.0 puhas bitikiirus on 2,5 GT/s (gigatehingut sekundis). Siini ribalaiuse (ehk teisisõnu suurima läbilaskevõime) arvutamiseks tuleb arvesse võtta dupleksi ja koondamist 8b/10b (8 bitti 10-s), mille tulemusel on saadud ribalaiuse ühikuks GB/s. Näiteks on PCI-E 1.0 x1 ühenduses dupleksi maksimaalne läbilaskevõime (kahel suunal):

 2,5 · 2 · 0,8 · 1/8 = 0,5 GB/s

 kus 2,5 – andmeedastuskiirus, Gbit/s;
 2 – dupleksi (kahesuunalisuse) arvessevõtmine;
 0,8 – koondamise arvessevõtmine 8b/10b 1.0 ja 2.0 jaoks;
0.985 – 3.0 kuni 5.0 jaoks, kuna need standardid kasutavad 128b/130b kodeeringut;
 1/8 – ümberarvestustegur Gbit/s GB/s-sse.

 Konkureerivad protokollid 
Lisaks PCI Expressile on veel mitmeid ülikiireid standardiseeritud jadaliideseid, näiteks HyperTransport, InfiniBand, RapidIO ja StarFabric.
Protokollide väljatöötamiseks on kulunud märkimisväärsed rahasummad, seetõttu eelistab iga tootja omi liideseid.
Standarditud ülikiire liides peaks ühelt poolt olema paindlik ja venivusega, teiselt poolt peaks olema madala latentsusega ja omama madalaid üldkulusid (see tähendab, et ametliku informatsiooni paketi osa ei tohi olla suur). Sisuliselt on erinevused kahe liidese vahel täpselt arendajate valitud konkreetse liidese kompromissis nende kahe vasturääkivate nõudmiste vahel.

Näiteks võimaldab ametlik marsruudi lisainformatsioon paketis organiseerida keerulise ja paindliku paketi marsruutimist, kuid suurendab üldkulusid paketi töötlemisel, samuti väheneb liidese läbilaskevõime, tarkvara, mis algväärtustab ja seadistab seadeid, mis on ühendatud liidese juurde, läheb keerulisemaks. Selleks, et saaks seadmeid "kuumalt" ühendada on vaja spetsiaalne tarkvara, mis jälgiks muudatusi võrgu topoloogias. Näited liidestest, mis on selleks kohandatud, on RapidIO, InfiniBand ja StarFabric.

Samal ajal, lühendades pakette saab vähendada andmete edastamise viivitused, mis on oluline eeldus mälu liidesele. Kuid väike pakettide arv toob kaasa selle, et osa paketti ametlikust valdkonnast suureneb, mis vähendab liidese efektiivset läbilaskevõimet. Sellise liidese näiteks on HyperTransport.

PCI Expressi seisukoht – kirjutatud lähenemisviiside vahel, kuna PCI Expressi siin on kavandatud tööks kohaliku siinina, mitte protsessor-mälu siinina või keerulise marsruutimisvõrgustiku siinina. Lisaks, PCI Express on algselt mõeldud kui siin, mis on loogilises kooskõlas PCI siiniga, mis samuti tõi kaasa omad piirangud.

 Redaktsioonid 
 PCI Express 2.0 
PCI-SIG grupp laskis välja PCI Express 2.0 spetsifikatsiooni 15. jaanuaril 2007. Peamised uuendused PCI Express 2.0-s:

 Kiirem andmeedastus – PCI Express 2.0 spetsifikatsioon määrab maksimaalseks läbilaskevõimeks ühel lane ühendusel 5 GT/s. 
  Tagasiühilduvus – PCIe 2.0 emaplaadi pesad on 100% tagasiühilduvad PCIe 1.x kaartidega. PCIe 2.0 kaardid on samuti tagasiühilduvad, kuid töötavad vaid 1.x pesa kiirusel (2,5 GT/s). 
 Dünaamilise lingi kiiruse haldamine – liini opereerimiskiiruse kontrollimiseks.
 Liini läbilaskevõimest teatamine – arvutile (operatsioonisüsteemile, draiveritele jne) liini kiiruse ja laiuse muudatustest teatamine.
 Struktuuride võimaluste laienemine – kontrollregistrite laiendamine seadmete, pesade ja interconnecti paremaks halduseks.
 Pääsu reguleerimise teenused – valikulised komponendid peer-peer tehingute haldamiseks.
 Funktsiooni nullimine – valikuline mehhanism seadmesiseste funktsioonide nullimiseks.
 Võimsuse ümbermääratlemine rohkem voolu tarbivate seadmete jaoks.

 Väline kaabeldusspetsifikatsioon ePCIe 
7. veebruaril 2007 lasi PCI-SIG grupp välja süsteemivälise kaabelduspetsifikatsiooni ePCIe. Kaabli maksimaalne pikkus pole määratud. Kaabel edastab andmeid kiirusel kuni 2,5 GT/s. Standardkaablid ja konnektorid on loodud x1, x4, x8 ja x16 liini laiustele.

 PCI Express 2.1 
Füüsilised omadused (kiirus, ühenduspesa) vastavad 2.0-le, tarkvarale on aga lisatud funktsioonid, mida kavatsetakse täielikult rakendada versioonis 3.0. Kuna enamik emaplaate müüakse versiooniga 2.0, ei anna üksnes 2.1 versiooniga graafikakaardi olemasolul antud režiimi kasutada.

 PCI Express 3.0 
2010. aasta novembris kinnitati PCI Express 3.0 versiooni spetsifikatsioonid. 3.0 liidese andmeedastuskiiruseks on 8 GT/s (gigatehingut/s). Kuid sellest hoolimata oli selle reaalne läbilaskevõime ikka kahekordistatud võrreldes PCI Express 2.0 standardiga. See sai võimalikuks tänu agressiivsemale kodeerimisskeemile 128b/130b, kus 128 bitti andmeid, mis saadakse siini kaudu, kodeeritakse 130 bitiga. PCI Express 2.0-l on andmesidekiirus 5 GT/s ja kodeerimisskeem 8b/10b. Säilis ühilduvus varasemate PCI Expressi versioonidega.

 PCI Express 4.0 
29. novembril 2011 kuulutas PCI-SIG avalikult välja esialgse PCI Express 4.0 standardi, mille bitikiirust ja ribalaiust oli taas kahekordistatud (võrreldes eelmise standardiga) vastavalt kiirusele 16 GT/s ja ~32 GB/s. Säilis nii tarkvaraline kui ka mehaaniline tagasiühilduvus. 4.0 standard on toetatud alates 11. põlvkonna Intel Core ning AMD 3000 ja 5000 seeria protsessorites ning vastavaid protsessoreid toetavates emaplaatides. Standard loodi nii serverites kui ka lauaarvutites kasutamiseks.

Esimesed füüsilised seadmed, mis kasutasid PCIe 4.0 standardit ehitati alles 2016. aasta augustis ning standard avalikustati alles 2017, kaubanduslikult muutusid saadavaks 4.0 seadmed veelgi hiljem, venitades standardi väljalaske ligi 7 aasta peale.

 PCI Express 5.0 
2017. aasta juunis avalikustas PCI-SIG esmased PCI Express 5.0 spetsifikatsioonid, järjekordselt kahekordistades ribalaiust kuni 128GB/s x16 liini korral ning bitikiirust kiiruseni 32GT/s, seejuures säilitades nii tarkvaralise kui ka mehaanilise tagasiühilduvuse. Ametlikult kinnitati 5.0 spetsifikatsioon 2019. aasta maikuus, mis oli PCIe ajaloos esmakordne juhtum, kus uus spetsifikatsioon avaldati enne seda, kui eelmine versioon oleks kommertsturule jõudnud. PCIe 5.0 standardit toetavad alates 12. põlvkonna Intel Core protsessorid ja Intel 600 kiibistikuga emaplaadid.

 PCI Express 6.0 
 
2022 jaanuaris avalikustas PCI-SIG PCI Express 6.0 spetsifikatsiooni, mille puhas bitikiirus ulatub kuni 64GT/s ning ribalaius x16 liini korral kuni 256GB/s. Standard loodi suuremahuliste andmete töötlemiseks (näiteks masinõppe/tehisintellekti, kõrgjõudlustöötluse, andmekeskuste, nutistu, militaar- ja kosmosetehnoloogiate arenduseks).

PCIe 6.0-ga plaanitakse kasutusele võtta NRZ (Non-return-to-zero'') signaaliedastuse asemel PAM4 (Pulsi-amplituudmodulatsiooni) signaaliedastamine, mis jagab kahendsignaali (0 või 1) omakorda kaheks, tekitades neli võimalikku signaaliolekut (00, 01, 10 või 11). See tehnoloogia võimaldab ühe signaaliga edastada kaks korda rohkem andmeid ilma ribalaiust kahekordistamata ja tänu sellele võib PCIe 6.0 töötada sagedusel kuni 30 GHz ilma liinide pikkuseid suurendamata.

2022. aasta aprilli seisuga pole teadaolevalt ühtegi 6.0 standardile vastavat seadet veel toodetud.

Vaata ka 
 ISA
 VLB
 VMEbus
 Mobiilne moodul PCI Expressi siinil

Viited

Kirjandus

Välislingid 
 PCI Special Interest Group (ingl)
 PCI Express Specifications and White Papers (ingl)
 PCI Express® External Cabling 1.0 Specification (ingl)
 PCI Express® 2.0 Frequently Asked Questions/ Küsimused PCI-E 2.0 standardi kohta (ingl)
 Creating a Third Generation I/O Interconnect (PDF) (ingl)
 Intel Developer Network for PCI Express Architecture (ingl)
 Tehnoloogia PCI Express 3. (vene)
 PCI Express saabumispunkt aasta 2014 (vene)
 S. Ozero, А. Karabuto. Uued siinid. 1. osa. PCI Express – üldmõiste ja võimalused / Sec.Ru publikatsioon (vene)
 Põhja-Ameerika Express: PCI Express siini uus tehnoloogia (vene)
 PCI Express 3.0. Frequently Asked Questions. PCI-SIG. Retrieved 23 November 2008. (ingl)
 PCIe ajalugu (ingl)
 Andmekaitse ja infoturbe leksikon (ingl-est)

Emaplaat
Arvutisiinid
Jadasiinid