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-ga) on kiire jadasiin, mis loodi vanemate PCI, PCI-X ja AGP standardite asemele.
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.
Mini PCI-E.
Mini PCI Express – PCI Expressi siini formaat kaasaskantavate seadmete jaoks.
Selle standardi pistiku jaoks toodetakse hulgaliselt lisaseadmeid:
ExpressCard.
ExpressCardi pesi kasutatakse 2010. aasta novembri seisuga järgmiste seadmete ühendamiseks:
Protokolli kirjeldus.
PCI Express seadmete ühendamiseks kasutatakse kahesuunalist punkt-punkti 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 jadaü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 (') ja sildu ('). PCIe süsteemi hierarhia tipuks on protsessor, liidest protsessori ja muude siini komponentide vahel nimetatakse juurkompleksiks (""). 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 lisatud PCIe liides, nimetatakse pärand otspunktideks ("legacy endpoint") ja kohe PCIe süsteemi jaoks disainitud seadmeid nimetatakse põlisotspunktideks ("native endpoint").
Elektrilisel tasemel kasutab iga ühendus madalpingelist diferentsiaalset signaaliedastamist (), 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 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 pessa, 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 , peab olema sünkroonimise informatsiooni kandev edastamissignaal (ehk Taktsignaal) sisseehitatud. Sünkroonimissignaali tekitab andmevoo allikas ning saadab selle andmevoo sees vastuvõtjale, kus vastuvõtja taastab faasiluku () ahela abil andmevoost sünkroonimissignaali. 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 ) 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
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 väiksema 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. Et seadmeid saaks "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:
Väline kaabeldusspetsifikatsioon ePCIe.
7. veebruaril 2007 lasi PCI-SIG grupp välja süsteemivälise kaabeldusspetsifikatsiooni 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 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 128 GB/s x16 liini korral ning bitikiirust kiiruseni 32 GT/s, seejuures säilitades nii tarkvaralise kui ka mehaanilise tagasiühilduvuse. Ametlikult kinnitati 5.0 spetsifikatsioon 2019. aasta mais, 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 64 GT/s ning ribalaius x16 liini korral kuni 256 GB/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 ("") 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.