Stanislav Hugec , predmet 31SCS , 1.5.2006

 

Zbernica PCI Express

1.Úvod

 

S uvedením 900-ovej série chipsetov od intelu a s nedávnym návratom SLI na scénu videokariet sa PCI express vo veľkom udomácnilo v povedomí nadšencov PC. Základové dosky vybavené slotmi PCI express sa stávajú stále bežnejšie a s narastajúcou všadeprítomnosťou novej zbernice prichádza nevyhnutný zmätok ktorý doprevádza vzostup hociakej novej technológie , obzvlášť tak zložitej a bohatej na novinky ako je PCI express. V tomto článku sú popísané vlastnosti PCI express , ako vylepšuje strarší spôsob prepojovania ktorý všetci poznáme a s ktorým niektorí nie sú veľmi spokojní: PCI.

 

Základy architektúry PC

Úvodom stručne zopakujeme architektúru PC aby sme pripravili pôdu pre diskusiu ktorá bude nasledovať.

Priemerný systém zberníc PCI je založený na nasledujúcej schéme :

 

Logika chipsetu funguje ako prepínač (router) ktorý smeruje tok dát medzi rôznymi zariadeniami ktoré tvoria systém.

V skutočnosti je táto logika rozdelená do dvoch častí : Northbridge a Southbridge (I/O bridge). Toto rozdelenie je prítomné pre viacero dôvodov . Najdôležitejší z nich je fakt že sú prepojené tri hlavné typy zariadení ktoré pracujú vo veľmi tesnom závese. Preto potrebujú mať rýchlejší prístup vzájomne na seba . Sú to : CPU (procesor) , hlavná pamäť , videokarta. V moderných systémoch je grafický procesor videokarty (GPU) funkčne druhým alebo tretím procesorom v poradí. Preto potrebuje mať privilegovaný prístup do hlavnej pamäte. Výsledkom toho sú tieto tri zariadenia spojené dohromady prostredníctvom Northbridge.

 

Northbridge je naviazaný na druhotnú časť southbridge ktorý smeruje tok dát medzi rôznymi zariadeniami vstupu / výstupu (input /output –I/O) : pevné disky, porty USB , Ethernetové porty atď. Tok dát z týchto zariadení je smerovaný cez southbridge do  northbridge a potom do CPU alebo pamäte.

 

Ako je viditeľné z obrázku je zbernica PCI pripojená k southbridge. Táto zbernica je zvyčajne najpomalšou a najstaršou zbernicou v modernom systéme a je prvkom ktorý najviac potrebuje vylepšenie (upgrade).

Skutočnosť ktorú by sme si mali všimnúť na predchádzajúcom diagrame je že moderný systém PC je zmesou špecializovaných zberníc , protokolov a kapacít šírky pásma. Zmes špeciálnych zberníc vyvinutých na pripojenie rôznych typov zariadení priamo k southbridge je niečo ako nepretržite vyvíjajúci sa zásah ktorý je kolektívne konštruovaný priemyslom spotrebnej elektroniky pokúšajúci sa vysporiadať s limitmi starnúcej PCI zbernice. Pretože PCI nemôže skutočne kapacitne postačovať pre veci ako Serial ATA , Firewire atď. , vyvinul sa trend pripojovať rozhrania pre interné a externé I/O zariadenia tejto kategórie priamo k southbridge. Tak je dnešný southbridge zmesou I/O prepínačov a vďaka Moorovým zákonom je schopný stále pridávať funkcie vo forme nových rozhraní ktoré nútia zariadenia „hladné“ po šírke pásma hladovať na PCI zbernici.

 

V ideálnom svete by existoval len jeden primárny typ zbernice a jeden protokol ktorý by prepojoval všetky tieto odlišné I/O zariadenia vrátane videokarty k CPU a hlavnej pamäti. V realite sa však takáto univerzálna prevládajúca zbernica nevyvinie. Nie je ňou ani PCI express ani Infiniband ( aj keď by to bolo možné s Infiniband keby sme zahodili všetok dnešný PC hardware a začali budovať nový systém od začiatku len použitím čisto zariadení kompatibilných s Infiniband. )

Stále aj keď nebude dosiahnutý ideál jednej zbernice a protokolu , mal by sa nájsť spôsob ako priniesť aspoň nejaký poriadok do chaosu. Našťastie táto cesta sa nastúpila s PCI express (PCIe)

 

So zavedením chipsetov 900-ovej série od intelu , zavedením PCIe kompatibilných kariet od NVIDIA a ATI , sa pomaly PCIe začne udomácňovať v nových systémoch.

 

2. Zbernica PCI

Predtým než začneme s detailami o PCIe pomôže nám pochopiť ako funguje PCI a aké sú jej nedostatky (hranice)

 

PCI debutovala v minulosti na 33MHz s 32-bitovou zbernicou a špičkovou teoretickou rýchlosťou 133MB/s. To bolo na tú dobu dosť dobré ale zavádzaním stále nových zariadení do zbytku systému ktoré mali vysoké nároky na šírku pásma sa musela na ich uspokojenie zvýšiť rýchlosť a šírka zbernice. Tým vznikli neskoršie verzie PCI 64bitové na 33MHz s špičkovou rýchlosťou 264MB/s, alebo neskoršia 64bitová 66MHz s rýchlosťou 512MB/s.

 

PCI používa topológiu zdieľanej zbernice aby umožnila komunikáciu rozličných zariadení na zbernici ; všetky rôzne zariadenia (sieťová karta , zvuková karta , karta radiča RAID , ....) sú pripojené na jednu zbernicu , ktorú používajú na komunikáciu s CPU. Na nasledujúcom diagrame je to znázornené.

 

Pretože všetky zariadenia pripojené na rovnakú zbernicu ju musia medzi sebou zdieľať , musí sa používať druh rozhodovania o tom kto a kedy má pridelený prístup k zbernici , najmä v prípadoch keď zbernicu používa súčasne niekoľko zariadení. Pokiaľ má zariadenie kontrolu nad zbernicou stáva sa pánom zbernice (bus master) , to znamená že môže používať v danom čase zbernicu PCI na komunikáciu s CPU prostredníctvom southbridge.

Southbridge je však rozsiahly systém ktorý sme prezentovali v úvode. Southbridge , Northbridge a CPU zastávajú úlohu hostiteľa (root) . Root rozhoduje o všetkom dianí – detekuje a inicializuje zariadenia PCI , je východzím ovládateľom zbernice PCI. Inak povedané je že účelom zbernice PCI je pripájať I/O zariadenia k Rootu, tak aby tento mohol na ne zapisovať a z nich čítať a vo všeobecnosti ich používať buď na komunikáciu so záznamovými zariadeniami alebo okolitým svetom.

Hlavné výhody zdieľanej zbernice sú že je jednoduchá , lacná  a ľahko implementovateľná . To je však len v prípade pokiaľ sa nepokúšame pomocou nej dosiahnuť komunikáciu vyššej kvality. Pokiaľ požadujeme vyššiu výkonnosť a funkčnosť od zdieľanej zbernice , dostávame sa na medze jej použitia. Ďalej sa pozrieme na niektoré tieto medze bližšie aby sme ukázali prínos ktorý získavame zavedením zbernice PCI express.

 

Z pohľadu CPU sú PCI zariadenia prístupné cez značne priamočiary mechanizmus ukladania a vykladania (čítania). Existuje zjednotená časť adresového priestoru určeného pre použitie s PCI. Táto sa pre CPU javí ako časť adresového priestoru hlavnej pamäte . Rozdiel je v tom že na každom rozsahu adries sedí zariadenie PCI namiesto množiny pamäťových buniek obsahujúcich dáta alebo program. Tento priestor je vyznačený na obrázku.

 

Rovnakým spôsobom akým CPU pristupuje do pamäti prevedením uloženia a čítania na špecifickej adrese , pristupuje aj na zariadenia PCI prevedením čítania a zapísania na špecifickú adresu.

 

Tento diagram funguje dobre pokiaľ je na zbernicu pripojených len málo zariadení načúvajúcich na zbernici čakajúc na svoje dátové adresy. Ale prirodzenou vlastnosťou zbernice je že každé zariadenie ktoré na ňu je pripojené a načúva , zároveň vysiela určité množstvo šumu na túto zbernicu. Čím viac zariadení pripojených na zbernicu  a zaťažujúcich ju , tým viacej šumového signálu je prítomného na zbernici. Tým horšie sa cez takúto zbernicu dostáva užitočný signál.

 

3. Zdieľanie zbernice

V tomto zreteli je zdieľaná zbernica  druhom trocha opakujúceho sa scenára : Predstavme si úrad na ktorom majú len jednu telefónnu linku ktorú všetci zdieľajú. Ľudia celý deň pracujú vo svojich kanceláriách so zvesenými slúchadlami telefónu a zapnutým hlasitým odposluchom neustále počúvajúc hlavnú sekretárku budovy kedy zvolá ich meno. „Pán Smith , Je tu slečna Jonesová pri mojom stole a chcela by s vami hovoriť , tak vám ju idem zapnúť. Dávajte prosím pozor , už je tu ...“ Už len s  malým počtom zamestnancov by tento jednoduchý spôsob bol dosť bolestný ale bol by aspoň prijateľný. Ale v budove s niekoľko sto kanceláriami by množstvo šumu a hluku lejúce sa do každého mikrofónu vytvorilo z vlastnej linky hlučný zmätok a bolo by veľmi ťažké počuť a rozumieť svoje meno volané cez ten všetok hrmot.

 

Fenomén vzťahujúci sa k šumu spolu s problémami zošikmenia hodinových hrán je dôvod prečo sú zbernice PCI obmedzené na maximálne 5 zariadení. ( Ak by zariadenia boli namiesto zasúvania do slotu PCI priamo pájkované na matičnú dosku , bol by signál čistejší a mohli by sme pripojiť o niekoľko zariadení viacej na jedinú zbernicu. Čoskoro by sme však opäť narazili na podobný problém. )

 

V skutočnosti to znamená že pri požiadavke pripojiť viacej ako 5 zariadení k systému musíme použiť čip typu most PCI-PCI podľa nasledujúcej schémy:

 

Hierarchická stromová štruktúra znázornená vyššie je prvkom ktorý odlišuje PCI od prepojení peer-to-peer alebo point-to-point nasledujúcej generácie ako HyperTransport alebo Infiniband. Root na vrchole diagramu je hlavným kontrolórom ktorý je zodpovedný inicializáciu a konfiguráciu všetkých PCI zariadení v systéme pri štarte. Toto kladie každé zariadenie PCI do pozície slave (sluha) s jedným masterom (pán) ovládajúcim ho. Pretože master musí vymenovať všetky tieto zariadenia a konfigurovať celý systém pri štarte , nemôžeme pripúšťať žiadne pripájanie zriadení za behu systému („za tepla“ – hot plugging , hot swapping)

 

Organizovanie toku na zbernici

Všeobecne sú dve kategórie do ktorých môžeme rozdeliť tok na zbernici. Je to tok príkazov (command traffic) a tok dát (read/write traffic) . Príkaz pozostáva z dávky dát  obsahujúcej konfiguračnú alebo kontrolnú informáciu ktorá je poslaná určitému zariadeniu na zbernici (na jeho adresu) . Takže príkazový tok v sebe zahŕňa adresný a datový tok. Príklady príkazového toku sú inicializačné inštrukcie zariadeniu , reset zariadenia , konfiguračný príkaz spôsobujúci prepnutie zariadenia do iného operačného módu , a iné. Príkazový tok dovoľuje CPU kontrolovať ako zariadenie PCI spracováva dáta ktoré tečú do neho a z neho.

 

Tok dát (read / write) je najdôležitejším typom toku , pretože obsahuje aktuálne informácie posielané k zariadeniu. napríklad PCI RAID kontrolér používa tok dát na posielanie a prijímanie súborov ktoré zapisuje a číta na pevné disky k nemu pripojené. PCI zvuková karta používa tok dát na získanie dát ktoré potom po D/A prevode vysiela ďalej cez svoj analógový výstup atď. Podobne ako príkazový tok aj dátový tok pozostáva z adries spojených s dátami a tak používa opäť obidva tieto datové toky.

 

Rozličné zbernice a ich protokoly používajú rozličné spôsoby zachádzania s týmito štyrmi prelínajúcimi sa typmi tokov. Napríklad mnohé bežné zbernice sa vlastne skladajú z dvoch oddelených zberníc : adresovej a dátovej. Adresy sú ukladané na adresovú zbernicu a dáta na datovú zbernicu. Výsledkom je že dáta sú schopné tiecť medzi zariadeniami rýchlejšie, pretože každý typ toku má svoju vlastnú zbernicu.

 

Alternatívou k tomuto je multiplex adries a dát na jednej spoločnej zbernici. Toto zahŕňa najprv umiestniť na zbernicu adresu a potom ju nasledovať dátami ktoré sa majú odoslať na tú adresu. PCI preberá tento prístup s jednoduchou 32 bitovou zbernicou na ktorej sú dáta a adresy multiplexované. V telefónnej analógii ktorú sme použili predtým(„Pán Smith , Je tu slečna Jonesová pri mojom stole a chcela by s vami hovoriť , tak vám ju idem zapnúť. Dávajte prosím pozor , už je tu ...“ ) predstavuje  Pán Smith adresu a rozhovor pána Smitha so slečnou Jonesovou predstavuje dáta.

 

Multiplexovanie je menej efektívne na využite šírky pásma oproti dvom samostatným zberniciam , pretože adresový tok zaberá časť pásma ktorá by sa mohla lepšie využiť . Ale multiplexované zbernice sú lacnejšie než  oddelené zbernice pretože je potrebný polovičný počet vodičov zbernice a zariadenia na zbernici potrebujú len polovičný počet pinov oproti dvom samostatným zberniciam.

 

Ďalším obľúbeným spôsobom nakladania s tokom dát je rozdeliť na osobitné zbernice tok príkazov a dát. V našej telefónnej analógii by to bolo ako inštalovať oddelenú linku pre rozhovory vedenia podniku so zamestnancami.

 

PCI a MSI

Neskoršie verzie PCI si volia čiastočne poslednú metódu organizovania zbernicovej komunikácie. Majú takzvanú postrannú zbernicu pre prenášanie niektorých typov príkazových dát. Postranná zbernica je menšia zbernica pozostávajúca z niekoľkých pásiem určených pre prenos kontrolných a konfiguračných dát. Jej použitím sa ale zväčšuje počet pinov , spotreba energie , cena a ďalšie faktory takže nie je celkom optimálnym riešením.

 

Ešte viacej nedávne verzie PCI predpisujú metódu pre použitie štandardných zapisovacích a čítacích operácií na prepustenie jedného typu príkazového a kontrolného datového toku k PCI zariadeniam. Táto metóda nazvaná MSI – message signal interrupt – prerušenie v signále správy rezervuje zvláštny dátový priestor v oblasti pamäte používanej pre PCI na prepustenie určitého typu kontrolnej správy nazývanej prerušenie. Tento priestor pamäte je niečo ako nástenka na ktorú CPU píše správy prerušenia ktoré zariadenie potom čítajú. Ako uvidím ďalej PCIe rozširuje špecifikácie MSI a zahŕňa do nich nie len prerušenia ale všetky kontrolné signály postranného pásma .

 

Súhrn nedostatkov v PCI

Súhrnne PCI vo forme ako existuje dnes má niektoré závažné nedostatky ktoré jej znemožňujú poskytovať šírku pásma a funkcie potrebné dnešnými a budúcimi generáciami zariadení vstupu/výstupu (I/O)  a úložných zariadení. Konkrétne jej vysoko paralelne založená štruktúra zdieľaných zberníc jej kladie nepríjemnú hranicu rýchlosti a stupňovateľnosti rýchlosti zbernice. Jej jednoduchá komunikácia založená na ukladaní a čítaní podobne ako do pamäťového priestoru je menej robustná rozšíriteľná ako model komunikácie založený na smerovaní paketov.

 

4.PCI-X – širšia a rýchlejšia ale stále zastaraná

Špecifikácia PCI-X je pokus o maximálne možne bezbolestnú aktualizáciu PCI ktorá by jej umožnila sa ako tak udržať na scéne o niekoľko rokov dlhšie. Táto obmena vôbec nerieši žiadny z problémov zmieňovaných vyššie. V skutočnosti niektoré z nich ešte zhoršuje.

 

PCI-X v podstate zdvojnásobila šírku zbernice z 32 na 64 bitov a týmto zvýšila paralelné prenosové schopnosti a zvýšila adresový priestor zbernice PCI. Nová norma takisto zvýšila základný hodinový kmitočet PCI na 66MHz s obmenou na 133MHz v high-end verzii. Týmto sa ďalej zvýšila šírka pásma PCI až po špičkovú hodnotu 1GB/s (pri 133MHz) .

 

Posledná verzia PCI-X (PCI-X 266) čerpá dáta zbernicou pri zostupných a vzostupných hranách hodinových impulzov  čo zdvojnásobuje kapacitu. Hoci toto zvyšuje teoretickú šírku pásma PCI-X , zisky šírky pásma dosahované v praxi sú viacej skromné.

 

Oba z týchto zlepšení významne zvýšili šírku pásma a úžitkovú hodnotu PCI , ale súčasne predražili jej výrobu. Čím rýchlejšie beží zbernica sa stáva tým viac citlivejšia na šum. Výrobné štandardy sú kvôli tomuto dôvodu neobyčajne prísne. Chyby materiálu a vyššie hodnoty chybovosti pri výrobe sa priamo prejavujú na šume pri vyšších kmitočtoch hodinového taktu. To znamená že rýchlejšia zbernica PCI-X je aj odpovedajúco drahšia.

 

Vyššia frekvencia hodinového taktu nie je jedinou vecou ktorá zvyšuje šumové problémy a výrobné náklady PCI-X . Ďalším faktorom je väčšia šírka zbernice. Pretože zbernica je širšia a skladá sa z viacerých vodičov je v nej viacej šumu v dôsledku presluchov. Ďalej ešte všetky tieto pridané vodiče sú na svojich koncoch pripojené na rozličné PCI zariadenia . To znamená ešte väčšiu záťaž na zbernicu a tým viac šumu zavedeného do zbernice pripojenými zariadeniami. Potom je tam ešte skutočnosť že všetky zariadenia potrebujú 32 prídavných pinov čo zväčšuje výrobné náklady každého jednotlivého zariadenia a konektorov na základovej doske.

 

Keď sa ešte posčítajú všetky tieto faktory s narastajúcim hodinovým kmitočtom , vyjde z toho že PCI-X je o dosť drahšia alternatíva k PCI. To ju drží mimo hlavný trend predaja PC komponentov. Mali by sme taktiež poznamenať že väčšina problémov súvisiacich s narastajúcim paralelizmom zbernice a dvojitým využitím hodinových taktov taktiež zamoruje nedávne normy DDR , a obzvlášť špecifikáciu DDR II.

 

A po všetkej tej bolesti stále máme dočinenia s topológiou zdieľanej zbernice PCI a všetkými s tým spojenými problémami. Našťastie existuje lepšia cesta.

 

PCI Express: nasledujúca generácia

PCI Express (PCIe) je najnovší názov pre technológiu predtým známu ako 3GIO. I keď bola špecifikácia PCIe dokončená v r. 2002 , zariadenia založené na PCIe začali debutovať na trhu až v lete 2004.

 

Najdrastickejším a najzrejmejším zdokonalením v porovnaní s PCI je zbernicová topolológia bod-k-bodu. (point-to-point) . Je to zrejmé z nasledujúceho obrázku a jeho porovnaním s usporiadaním PCI zberníc znázornených predtým. Na prvom obrázku je zdieľaný prepínač , na druhom zdieľaná zbernica.



 

V topológii bod k bodu je zdieľaná zbernica nahradená zdieľaným prepínačom (switch) . Je to zároveň jediný zdieľaný prostriedok prostredníctvom ktorého komunikujú všetky zariadenia. Na rozdiel od topológie zdieľanej zbernice kde musia všetky zariadenia kolektívne medzi sebou rozhodovať o zdieľaní zbernice, má teraz každé zariadenie v systéme priamy a výhradný prístup k prepínaču. Inými slovami každé zariadenie sedí na zbernici určenej pre neho. Táto sa v terminológii PCIe nazýva linka.

 

Ako smerovač v sieti (router) alebo telefónne spínacie pole , prepínač smeruje tok dát a zriaďuje spojenia bod-k-bodu medzi dvoma komunikujúcimi zariadeniami v systéme. V našej analógii s telefónnom v budove úradu z minulej sekcie , má teraz každý zamestnanec jeho vlastnú súkromnú linku od hlavnej sekretárky budovy . Tak namiesto kričania pozdĺž zdieľanej linky na upriamenie pozornosti príslušného zamestnanca , používa teraz hlavná sekretárka prepojovacie pole na pripojenie zamestnancov jednak priamo k príchodzím hovorom alebo vzájomne medzi sebou.

 

V diagrame bod-k-bodu uvedenom vyššie môže CPU komunikovať s ľubovoľným zariadením PCIe „voľbou“ adresy daného zariadenia a otvorením priamej a súkromnej komunikačnej linky vedenej cez prepínač k danému zariadeniu. Pravdaže ako napríklad v telefónnom spojení cez modem alebo ešte lepšie v internetovom spojení medzi prehliadačom a webovou stránkou si obe komunikujúce strany len myslia že medzi sebou komunikujú cez súkromnú priamu  a spojitú linku. Aj keď v skutočnosti je komunikačný tok roztrhaný do diskrétnych paketov dát ktoré smeruje prepínač dopredu a dozadu medzi dvoma stranami. Podobne ako poštár doručujúci adresované obálky.

 

5.Umožnenie kvality obsluhy (QoS- Quality of service)

Celkový efekt prepínacej topológie je ten že dovoľuje „eleganciu“ potrebnú na centralizovanie  riadenia a smerovania toku do jediného čipu -  prepínača. Na zdieľanej zbernici musia zariadenia na zbernici používať rozhodovací plán na rozhodnutie medzi sebou ako distribuovať zdroje zdieľanej zbernice (vlastnú zbernicu) . V prepínanej topológii všetky tieto rozhodnutia o zdieľaní zdrojov prevádza prepínač.

 

Centralizovaním smerovania toku a manažmentu zdrojov do jedinej jednotky umožňuje PCIe ďalšiu dôležitú a dlho očakávanú funkciu ďalšej generácie : kvalitu obsluhy (QoS). Prepínač PCIe môže niektoré pakety označiť za prioritné. Tak napríklad pakety služieb prebiehajúcich v reálnom čase ( napr. video , audio streamy) môžu prevziať prioritu nad paketmi ktoré nie sú až také kritické. To by malo znamenať menej vynechaných snímkov vo videu a menšie oneskorenie audia v digitálnom záznamovom softvéri.

 

Spätná kompatibilita

Už možno niekto počul že PCIe je spätne kompatibilné s PCI a že operačné systémy môžu bootovať na a používať systém založený na PCIe bez modifikácie. Je bezpochyby podivné ako môže byť model založený na čítaní a ukladaní PCI popísaný predtým kompatibilný s modelom spínaných paketov popísaným teraz. Odpoveď je viac priamočiara než si možno myslíme.

 

PCI a PCIe podobne ako mnohé iné počítačové systémy určené pre prenos dát , implementujú časť OSI zásobníka siete (OSI network stack). Tento článok sa nevenuje detailnému popisu toho zásobníka ale základná idea za tým je ľahko pochopiteľná.

 

PCI implementuje prvé 4 vrstvy OSI zásobníka ktoré špecifikujú javy počínajúc fyzikálnymi  aspektmi prenosu (signály na úrovni vodičov) ďalej cez rozhranie vyššej úrovne ukladania a čítania ktoré používa softvér na vysielanie a príjem cez PCI.  Návrhári PCIe nechali tento model založený na ukladaní a čítaní zo sekcie pamäte nezmenený. Tak aplikácia ktorá chce komunikovať cez PCIe stále prevádza čítanie a zápis na špecifickú adresu. Ďalšie dve nižšie úrovne zásobníka ale berú túto požiadavku na čítanie/zápis a prevedú ju na paket pripojením informácie kontroly smerovania a toku ako aj CRC informácie (kontroly chýb cyklickým zbytkovým kódom – Cyclic Redundance Check). To všetko umiestnia do rámca a pošlú na miesto určenia.

 

Takže aplikácia si stále myslí že zapisuje alebo číta na z adresy v pamäti ako keby  komunikovala so zariadením PCI, ale za tým všetkým sa skrýva celkom odlišná sieť protokolov a signálov uvedená do činnosti aby presúvala tieto požiadavky na čítanie/zápis ďalej k ich cieľu.

 

To nás prináša späť k téme o signáloch príkazov a kontroly. Ako sme naznačili už skôr PCIe preberá všetky signály postranného pásma PCI a prevádza ich na signály MSI (ktoré podliehajú schéme ukladania/čítania) tak že môžu byť zabalené do paketov a smerované tak ako každý iný tok zápisu/čítania. Prirodzene to znamená že všetky typy toku PCIe či už príkazové alebo čítanie/zapisovanie, alebo adresy , dáta sú všetky prenášané jedinou zbernicou.

 

Je dôležité poznamenať na tomto mieste že pod PCIe sú dva páry zbernicového toku logicky rozdelené aj pokiaľ nie sú fyzicky separované do rozdielnych zberníc. Prvé dva typy toku adresy a dáta sú kombinované vo forme paketu. Jadro paketu sa skladá z adresy kombinovanej s úsekom dát. Takže samotná štruktúra paketu spája tieto dva typy.

 

Vlastné pakety sú predsa len všeobecne rozdeľované do dvoch ďalších kategórií : príkazové a čítanie/zápis. V skutočnosti literatúra o zbernicovom systéme založenom na paketoch ako PCIe alebo RAMBUS často hovorí o príkazových a dátových paketoch. Druhý z týchto názvov je viac všeobecnejší názov pre to čo my tu voláme pakety zápisu/čítania.

 

Tok tečie v pármi (lanes)

Keď začali vývojári PCIe rozmýšľať o skutočnom nástupcovi ďalšej generácie pre PCI, bol jedným z problémov s ktorým sa potrebovali popasovať bol počet pinov. V predchádzajúcej časti o PCI sme uviedli niektoré problémy súvisiace s druhom paralelizmu dát vo veľkej mierke ktorý vykazuje PCI (šum, cena , nízke možnosti kmitočtov , atď. ) PCIe rieši tento problém zavedením sériového prístupu.

 

Ako sme sa už zmienili spojenie medzi dvoma zariadeniami PCIe je nazývané linka. Každá linka je vytvorená jedným alebo viacerými pármi. Každý pár (lane) je  schopný preniesť v jednom okamihu jeden bit v oboch smeroch naraz. Je možná táto plne duplexná komunikácia pretože sa každý pár skladá zo signálov send a receive (vysielanie – príjem)

 

 

 

 

Na to aby sa mohli prenášať pakety PCIe ktoré sú zložené z niekoľkých bajtov , linka s jedným párom musí rozobrať jednotlivé pakety na sériu bitov ktoré potom prenesie v poradí jeden po druhom. Zariadenia na prijímacom konci musí pozbierať všetky tieto bity a poskladať z nich kompletný pôvodný paket. Tento dej  rozobratia a poskladania sa musí diať dostatočne rýchlo aby sa zdalo transparentným nasledujúcej vrstve zásobníka. To znamená že vyžaduje určitý výpočetný výkon na každom konci linky. Keďže každý pár má šírku len jedného bitu je na prenos dát potrebný malý počet pinov čo je výhodou. Možno sa zdá že tento sériový spôsob prenosu je zrkadlenie výpočetného výkonu procesorov do prenosovej rýchlosti. To je v kontraste so starým pohľadom na PCI ktorý zrkadlí šírku zbernice a tým počet pinov do prenosovej rýchlosti. Vďake moorovým krivkám je výpočetný výkon procesora lacnejší ako šírka zbernice preto je prínos PCIe veľký

 

Skôr sme uviedli že linka môže byť zložená z jedného alebo viacerých párov. Teraz to vysvetlíme bližšie. jedna z najlepších predností PCIe je schopnosť združovať niekoľko jednotlivých párov spolu aby vytvorili linku. Inými slovami napríklad 2 páry sa môžu spojiť dokopy a vytvoriť jedinú linku schopnú preniesť súčastne 2 bity. Tým sa zdvojnásobí šírka pásma linky. Podobne sa môže skombinovať viacej párov.

 

Linka zložená z jedného páru sa nazýva linka x1 , z dvoch párov linka x2 , a tak ďalej x4 , .... PCIe podporuje šírky liniek x1, x2, x4, x8, x16, a x32.

 

Zisky šírky pásma PCIe oproti PCI sú značné.  Jednotlivý pár má kapacitu prenosu 2,5Gbps v každom smere súčasne. Podobne 2 páry 5Gbps atď. pre každú príslušnú šírku linky. To sú veľmi vysoké prenosové rýchlosti , umožnia vývoj nových tried zariadení a aplikácií ; dobré správy pre nadšencov .

 

6. Súvis PCIe s grafickými akcelerátormi (GPU)

 

V súčasnosti poskytuje PCI express pre videokarty výkon až do 75W v kontraste s 25W alebo 42W poskytované AGP 8x. Viacerým videokartám to nestačilo ako je zrejmé z prídavných napájacích konektorov ktoré sa objavujú na dnešných high-end AGP videokartách. To dokazuje prečo väčšina videokariet strednej triedy do PCI-Express nevyžaduje prídavné napájacie konektory ale ich predchodcovia do AGP potrebovali.

 

Zdá  sa že dni AGP sú spočítané keďže sa ATI a NVIDIA prepli na PCI express a aj ďalšie majoritné grafické podniky ako 3Dlabs alebo XGI tiež propagujú najnovšie podporu tejto architektúry. Spôsobí to ďalšiu amortizáciu vašich drahých AGP kariet , pretože sloty PCIe 16x a AGP 8x nemôžu správne koexistovať na jednej základovej doske. Tento fakt nezastavil mnohých výrobcov od predaja náhradkových riešení PCIe/AGP ktoré používajú zbernicu PCI alebo časť zbernice PCIe. Hoci to poskytuje dobrú motiváciu k upgrade pre užívateľov kariet AGP , malo by sa poznamenať že toto riešenie neposkytuje plnú šírku pásma reálneho slotu AGP 8x.

 

Prevod videokariet SLI( Scalable Link Interface) – stupňovateľné linkové rozhranie – technológia umožňujúca prepojenie dvoch videokariet dohromady aby umožnila stupňovanie výkonu

 

Keď sa objavila prvá techonológia SLI založená na PCI express niektorí ľudia tvrdili že výrobcovia iba preznačili niektoré základné funkcie PCIe. Ani jedna z dosiaľ  spomenutých funkcií funkcií PCIe v  tomto článku sa nezdá žeby mohla špecificky umožňovať tento typ kooperácie medzi videokartami. Je to preto lebo PCIe je balík nasledujúcej generácie vysokej šírky pásma ktorý ako celok umožňuje túto funkčnosť.

 

Prevod 3D grafiky zahŕňa prenosy veľkého množstva dát strašne rýchlo medzi videokartou , CPU a hlavnou pamäťou. V súčasných systémoch je zúženým miestom („hrdlom fľaše“) zbernica AGP. V praxi si to môžeme všimnúť podľa toho koľko pamäte je umiestňovanej na videokarty high-end kategórie. Všetka táto pamäť je potrebná aby grafický procesor (GPU) nemusel siahať vonku do hlavnej pamäte tak často.

 

Situácia sa zmení ak zahrnieme do úvah PCI express. Dve videokarty umiestnené v dvoch slotoch PCIe x16 majú k dispozícii širokopásmové hrdlo spojujúce ich navzájom , k hlavnej pamäti a k CPU. Môžu využívať celé toto pásmo na kooperáciu grafických jadier ktorá by nebola možná s predchádzajúcimi technológiami zberníc.

 

V nasledujúcom sa pozrieme na dve nasledujúce vlastnosti PCIe ktoré sú významné vo vynárajúcej sa scéne SLI GPU.

 

Prerozdelenie párov pri štarte

Žiadna zo základových dosiek ktoré sú doposiaľ k dispozícii nedisponuje dvoma x16 linkami. Niektoré dosky majú dva sloty x16 ale tieto sú pripojené k mostu prostredníctvom liniek x8. Čo z toho vyplýva pomôže osvetliť diagram.

 

Pri štarte vyjednávajú zariadenia PCIe s prepínačom aby zistili maximálny počet párov z ktorých sa môže skladať linka. Toto prerozdelenie šírky linky závisí na maximálnej šírke vlastnej linky ( skutočnom počte párov z ktorých sa môže skladať linka) , na šírke konektora ku ktorému je pripojené zariadenie , a šírke konektora na vlastnom zariadení. (Taktiež to závisí na šírke rozhrania prepínača , ale ponecháme to stranou a predpokladáme že šírka rozhrania prepínača je zhodná s fyzickou šírkou linky).

 

Zariadenie kompatibilné s PCIe má v sebe zabudovaný určitý počet párov. Napríklad prvé karty NVIDIA SLI sú všetky x16 , to znamená že na svojom zásuvnom konektore majú dostatok medených kontaktov na podporu 16 párov. To zároveň znamená že sa musia zasunúť do konektorového slotu  ktorý podporuje najmenej 16 párov. Ak by mal konektor menej ako 16 párov tak potom by nemal dostatok kontaktov aby porozumel všetkým signálom vychádzajúcim z karty. Ak by podporoval viacej párov tak sa prebytočné páry môžu ignorovať.

 

Avšak to že karta aj konektor sú x16 neznamená že sa aj vlastná linka je x16. Fyzická linka sama o sebe by mohla mať dosť medených ciest pre práve 16 párov , alebo nejaký počet väčší alebo menší než 16. Ak linka má len toľko signálových párov že môže podporovať menej než x16 potom prepínač a zariadenie si to vypočítajú a prerozdelia a používajú len tie páry ktoré linka má. Ak linka má viacej ako 16 párov tak sa prebytočné páry ignorujú.

 

Ak sa bližšie pozrieme na schému vyššie zistíme ako to funguje. Páry navyše sú ignorované ale príliš málo párov znamená že zariadenia na každom konci si iba adekvátne priškrcujú svoju šírku pásma.

 

Je tam jedna situácia vyznačená vyššie ktorá nefunguje. To je posledná nad ktorou je text v červenom. Zasunutie karty x16 do konektora x8 nefunguje lebo v konektore nie je dostatok kontaktov na zachytenie všetkých párov vychádzajúcich z karty.

 

Toto prerozdelenie liniek dovoľuje použiť určitú flexibilitu pri návrhu systémov a integrovaných zariadení s rôznym počtom párov , ale spôsobí niektoré nepríjemnosti v oblasti spotrebiteľov. Ľudia budú nútení vypočítavať ako prispôsobiť na seba šírky liniek ciest so šírkami liniek zariadení. Budú spočiatku sklamaní situáciami v ktorej je rozdielna šírka linky a konektora. Ako napríklad v prípade karty NVIDIA zasunutej do slotu x16 pripojenému k linke x8.

 

Karta NVIDIA pripojená k linke x8 komunikuje k prepínaču a správa sa ako pri rýchlosti linky x8. Adekvátne sa potom spomalí a prenáša dáta rýchlosťou zodpovedajúcou linke x8.

 

7. Premostenie PCIe k PCI

V nasledujúcom čase budeme veľa počuť o potrebe premostenia PCI do PCIe. Našťastie je to omnoho ľahšie na pochopenie ako celé PCIe a veci súvisiace so šírkou linky.

 

V podstate premostenie PCIe k PCI prekladá pakety PCIe nazad do starých signálov PCI. To dovoľuje používať staršie zariadenie PCI v systéme PCIe. Toto premostenie môže byť uskutočnené kdekoľvek od základnej dosky až po kartu. Taký prístup používa NVIDIA so svojimi kartami PCIe prvej generácie. Do karty je zabudovaný most PCI – PCIe . To znamená že karta sama o sebe je stále PCI napriek tomu že pasuje do slotu PCIe. Narozdiel ATI má karty ktoré podporujú PCIe od začiatku a preto nepotrebujú mostový čip.

 

Nepredpokladáme že tieto mosty nejako výrazne ovplyvnia niečí život v blízkej budúcnosti a v ďalekej budúcnosti sa naprosto stratia v momente kedy výrobcovia ako NVIDIA prerobia ich produkty na rýdzu podporu PCIe. Prekladací čip pridáva k cene zariadeniu ale jeho dopad na výkonnosť (pokiaľ vôbec nejaký je ) sa len veľmi ťažko kvantifikuje a je ho úplne nemožné izolovať. V blízkej budúcnosti asi zohrá nejakú rolu v konkurencii výrobcov grafických kariet. Naša rada je ale ignorovať ho a zamerať pozornosť na štandardy ktoré sú niekde celkom inde.

 

Záver : PCI Express v reálnom svete

Dobrý príklad premostenia PCIe na PCI je na základovej doske založenej na čipsete od Intelu série 900.  Tieto čipsety používajú logiku mostu PCI.-PCIe integrovanú priamo do southbridge. Toho dovoľuje koexistovať starším zariadeniam PCI so zariadeniami PCIe v jednom systéme.

 

Ukážeme ešte posledný obrázok na ktorom je vyznačené ako sa používa PCIe v novo propagovaných čipsetoch.

 

Ak vidíme linka PCIe je prítomná aj v north aj v southbridge. CPU zastupuje rolu hostiteľa PCI (root). Northbridge a southbridge sa spájajú a dohromady tvoria rolu prepínača PCIe. V tomto návrhu sú north a southbridge prepínačmi PCIe skombinované s jedinou širokopásmovou linkou PCIe.

 

Zbernica PCI nútila aby sa do čipsetu absorbovalo viacero špecializovaných zberníc. PCIe v modernom systéme prináša nejaký poriadok do chaosu pretvorením logiky chipsetu na PCIe switch. Pretvaruje niektoré pripojené zbernice na PCIe a vytvára z PC systém ktorý je omnoho jasnejšie rozšíriteľný a pripravený pre budúce aktualizácie odstránením potreby jednej špecializovanej zbernice za ďalšou.

 

PCIe switch pracuje v pricípe ako switch Ethernetu  ktorý je umiestený medzi zariadeniami PCIe pripojených k doske a zbytkom I/O systému. Toto umožní príchod nových zariadení. Ako napríklad na doske zabudované Gigabitové kontroléry pripojené cez PCI express alebo 10/100 gigabitové sieťové karty. Môžu medzi sebou komunikovať priamo ak to je potrebné. Pridaním tejto novinky sa dáta nebudú potrebovať presunúť cez chipset aby mohli dosiahnuť vedľajšie zariadenie.

 

použité zdroje

 

http://www.pcstats.com

http://arstechnica.com