- PCI Express -

1. Úvod
Periferní zařízení počítačů zaznamenávají v posledních letech nebývalý rozvoj. Ten je hnán neustálým tlakem na zvyšování a zkvalitňování toku dat v uživatelských aplikacích. Dnešní aplikace nepožadují pouze vysokou přenosovou rychlost, ale také tzv. quality of service, což znamená, že data musí být v určitý čas přístupná pro zpracovaní. Příkladem může byt typické trhání videa při přehrávání, kdy počítač má dostatek systémových prostředků, ale nemá přístup k právě požadovaným datům. Pro splnění těchto náročných požadavků se v roce 1999 začala formovat skupina firem IBM, HP a Compaq pod vedením firmy Intel. V té době byla vytvořena specifikace "3GIO (Third Generation Input and Output) ARCHITECTURE" tedy třetí generace vstup výstupních zařízení. Dnes je specifikace známa pod obchodním názvem PCI Express. Specifikaci zastřešuje skupina PCI-SIG, tak jako všechny předcházející specifikace PCI a PCI-X.
2. Požadavky na architekturu 3GIO
Uživatelé požadují po moderním elektronickém průmyslu v podstatě dvě protichůdná řešení a to maximalizaci výkonu a minimalizaci ceny. To byl jeden z důvodů tvorby nové specifikace. Dále byla specifikace doplněna o nové požadavky, funkce a vlastnosti:
• Sjednocení přístupu pro více platforem (desktop, mobilní zařízení, servery, pracovní stanice)
• Podpora různých druhů připojení (čip-čip, karta-karta přes konektor nebo kabel)
• Nové mechanické uspořádání
• Zachování současného softwarového modelu
• Detekce a konfigurace PCI Express zařízení pomocí současných mechanismů
• Bootování existujících operačních systémů bez nutnosti modifikovat SW
• Podpora existujících driveru zařízení
• Podpora nových funkcí - vyžaduje úpravu konfiguračního mechanismu
• Výkon
• Nízká režie na vlastní komunikaci a rychlá odezva
• Vysoká přenosová rychlost na pin, z toho plynoucí omezení počtu pinů a nožů konektoru
• Škálovatelná šířka přenosové trasy
• Speciální vlastnosti
• Podpora různých datových typů a pravidel pro přenosy dat
• PowerManagement a úsporné režimy práce
• Identifikovat podporované režimy pro dané zařízení
• Přechod zařízení do daného stavu
• Identifikace současného stavu zařízení
• Generování wakeup sekvencí pro zdroje
• Postupný náběh napájecích napětí
• Podpora QoS (Quality of Service)
• Izochronní datový tok (je požadován nezávislý datový tok v závislosti na čase)
• HotPlug a HotSwap
• Zachování podpory současných zařízení typu HotPlug a HotSwap
• Zavedení ryzího standardu HotPlug a HotSwap bez pomocných signálů
• Jeden softwarový model pro všechny platformy
• Datová integrita
• Podpora detekce chyb na linkové vrstvě jak v datech tak i v paketech
• Oprava chyb
• Podpora současné verze PCI
• Rozšířené generování chyb pro jejich lepší lokalizaci
• Nezávislost na typu přenosového média a napěťových úrovních
• Podpora jednoduchého testovacího mechanizmu
3. Základní modely sběrnic PCI, PCI-X a PCI Express
3.1 Architektura PCI - PC do roku 2004
Sběrnice PCI Express se významně odlišuje od svých předchůdců, protože mění celkovou filozofii pohledu na sběrnice, tak, jak je známe do dnešních dnů. Obvyklá představa sběrnice vycházela z propojení několika zařízení sdílející stejnou skupinou vodičů (paralelní nebo sériového). Některé typy sběrnic byly doplněny o vybrané vodiče sloužící pro dekódování daného zařízení, informaci o jeho stavu a synchronizaci hodinovým signálem. Pro lepší představu vyjděme ze sběrnice PCI nebo PCI-X, jak je známe z dnešních počítačů PC (obr. 1).

Tento typ sběrnice dovoluje paralelní řazení zařízení do slotu nebo přímé propojení mezi zařízeními na desce plošného spoje. Počet zařízení na sběrnici je omezen elektricky dovolenou zátěží sběrnice, logicky může byt sběrnice rozšířena na dalších 256 segmentů oddělených bridgem. Za bridgem může následovat dalších 32 zařízeni. Pracovní frekvence sběrnice PCI je obvykle pevná a to 33 nebo 66 MHz. Sběrnice typu PCI-X řídí pracovní frekvenci hodin podle počtu slotů nebo připojených zařízení.
Tabulka 1 udává přehled jednotlivých typů PCI sběrnic a počet potřebných pinů pro sestavení komunikace mezi zařízeními na sběrnici.

Typ sběrnice PCI - 33 PCI - 66 PCI-X 66 PCI-X 133 PCI-X 266 PCI-X 533
Počet datových bitů 32 64 32 64 32 64 32 64 16 32 64 16 32 64
Počet pinů 49 81 49 81 50 82 50 82 36 50 82 36 50 82
Přenosová rychlost MB/s 133 266 266 533 266 533 533 1066 533 1066 2133 1066 2133 4266
Napájecí napětí 5/3,3V 3,3V 3,3V 3,3V 1,5V a 3,3V 1,5V a 3,3V
Tabulka 1: Přehled konfigurace jednotlivých typů PCI sběrnic

Tento přístup klade vysoké nároky na kvalitu signálů, prostor na desce plošného spoje, mechanickou konstrukci konektorů a odolnost proti změnám parametrů sběrnice. Pokud vyjdeme z typického zapojení PCI nebo PCI-X slotu (obr. 2) je nutné zohlednit několik zásad při návrhu zapojení:
• Zatížení sběrnice se musí pohybovat v rozsahu 8-10pf na jedno zařízení, a to podle typu signálu
• Impedance vedení pro klasickou verzi PCI musí byt v rozsahu 60-100Ω a pro PCI-X 57Ω ±10%
• Délka skupin vedení je omezena v rozsahu viz. tab. 2
• Minimalizovat rozdíl délek mezi datovými a strobovacími signály, musí byt menší než 80ps pro sběrnici PCI-X

Dále jsou tyto parametry omezeny elektrickými vlastnostmi materiálů plošných spojů a konektorů, kde se používají obvykle materiály FR4. Pro klasické PCI stačí 4 vrstvy a pro PCI-X je doporučeno vrstev 6. Takovéto omezení není jednoduché dodržet, protože se jedná o vodiče, které mají přesné umístění na nožích konektoru a jsou doplněny o napájecí a další pomocné signály.


Délka signálů PCI-X PCI Jednotka
min. max. min. max.
CLK vedení 2,4 2,6 2,4 2,6 palce
CLK zpoždění 360 468 - - ps
AD[31:0] vedení 0.75 1.5 - 1.5 palce
AD[31:0] zpoždění 113 270 - - ps
AD[63:32] vedení 1.75 2.75 - 2.0 palce
AD[63:32] zpoždění 263 495 - - ps
Tabulka 2: Maximální délky vedení a zpoždění sběrnic typu PCI a PCI-X

Jako příklad uveďme část plošného spoje sběrnice PCI-X 533 viz obr. 3. Jak je vidět, konstrukce plošného spoje je poměrně komplikovaná a klade vysoké nároky na návrhový systém. Je nutno podotknout, že takto navrženou sběrnici bude možné používat maximálně pro jeden slot. V případě potřeby dalších slotů pracujících na této frekvenci je nutné použít komplikovanější HOST-PCI bridge se dvěma oddělenými sběrnicemi PCI-X. Počet vodičů se zdvojnásobí a systém přechází na architekturu typu peer-to-peer.


Obrázek 3: Část plošného spoje sběrnice PCI-X 533
3.1.1 Rekapitulace
Z výše popsaného výčtu jsou zřejmé nevýhody dnešních PCI zařízení a pochopitelný tlak výrobců na změnu koncepce, hlavně v oblasti zvýšení přenosové rychlosti, zkvalitnění datového přenosu, úspory místa na plošných spojích, snížení elektromagnetického vyzařování (EMI), zjednodušení návrhu plošných spojů a sjednocení přístupu ke sběrnicím pro všechna zařízení.
Omezení architektury PCI:
• Velikost přenášeného bloku dat není omezená, díky tomu není možné jednoznačně definovat velikost bufferu, čímž může docházet k častému odpojování zařízení od sběrnice
• PCI zařízení může vkládat velký počet wait-state
• Paměťově orientované operace vyžadují spolupráci s cache procesoru, aby byla zajištěna koherence dat - snížení výkonu CPU a PCI
• Přenos dat je omezen pouze na transakce v délce 32/64 bitů
• Na sběrnici může probíhat pouze jedna transakce a to, jen jedním směrem
• PCI master neví, jestli cílové zařízení může transakci přijmout - retry
Sběrnice PCI Express

Model fyzické vrstvy sběrnice PCI Express vychází spíše ze sítí typu peer-to-peer než z architektury PCI nebo PCI-X. Jistá podobnost architektury PCI Express je i v dělení vrstev viz obr. 4 se síťovým modelem ISO-OSI. Architektura typu peer-to-peer umožňuje nezávislou komunikaci mezi jednotlivými zařízeními, kdy jedno zařízení nemusí čekat na uvolnění sběrnice při vzniku požadavku na komunikaci s jiným zařízením, jak tomu bylo u architektury PCI. Pochopitelně komunikace neprobíhá pouze jedním směrem, ale oběma - rozhraní je plně duplexní.


Obrázek 4: Vrstvy sběrnice PCI Express
Další významnou změnou je způsob přenosu signálu po vedení. Sběrnice PCI využívaly k přenosu jeden vodič s dvoustavovou modulací (logická úroveň 1 nebo 0) naproti tomu sběrnice PCI Express využívá dva vodiče v diferenciálním zapojení. Modulace vodičů je obvykle vícestavová - používají se obvody preemfáze sloužící k úpravě signálů na vedení (obr. 5). Pozn. tento typ víceurovňové modulace neslouží k zvýšení přenosové rychlosti, ale ke korekci ztrát vznikajících na vedení při vysokých frekvencích (skinefekt, vyzařování).


Obrázek 5: Průběh signálu na Lanu sběrnice PCI Express
3.2.1 PCI Express Link
PCI Express Link reprezentuje komunikační kanál mezi dvěma zařízeními sběrnice PCI Express (obr. 6). Základní PCI Express Link je sestaven ze dvou nízkonapěťových diferenciálních párů a to přijímacího a vysílacího komunikačního páru označovaného jako Lane. Činnost vysílače i přijímače je na sobě nezávislá a Link tvoří plně duplexní komunikační kanál.


Obrázek 6: PCI Express Link
Základní vlastnosti komunikačního kanálu Link:
• Základní link se skládá ze dvou jednosměrných diferenciálních párů v každém směru, reprezentující přijímací a vysílací pár. Hodinový signál je kódovaný do datového toku, aby mohlo být dosaženo maximální přenosové rychlosti. Samostatně vedené hodiny a data na vysokých frekvencích jsou náchylné k fázovému posunů a jitteru.
• Každý link může pracovat s příslušnými signálovými úrovněmi pro které byl navržen. Přenosová rychlost dle současné specifikace dosahuje 2,5Gbitu/s na jeden Lane v jednom směru. Zvýšení pracovní frekvence se předpokládá v dalších verzích specifikace.
• Každý Link musí podporovat alespoň jeden Lane. Pro zvýšení přenosové rychlosti je možné využít sdružování Lanes do Linků v povolené šířce. Obvykle se jedná o hodnoty x1, x2, x4, x8, x12, x16 a x32. Stejná šířka musí byt dodržena jak pro přijímací, tak vysílací část.
• Během hardwarové inicializace Linku se vyjedná pracovní frekvence a počet Lanessestavujících Link. Obdoba vyjednávání pracovní frekvence sítí typu Ethernet.
3.2.2 Zařízení sběrnice PCI Express
Podobně jako sběrnice PCI, tak i sběrnice PCI Express je sestavena ze zařízení, která jsou vzájemně propojena a zajišťují nezbytné funkce sběrnice. Jedné se o zařizení: root complex, switches, endpoints a bridges. Jednotlivá zařízení a jejich funkce budou popsány v následujícím textu. Jednotlivé typy zařízení je možné propojovat a kombinovat libovolně při dodržení 4 základních pravidel:
• Na sběrnici může existovat pouze jedno zařízení typu root complex, které zajišťuje propojení mezi PCI Express zařízením, hostitelským systémem a pamětí.
• Každý switch má pouze jeden upstream port, počet downstream portů je omezen na 256.
• Každý endpoint a bridge má pouze jeden upstream port.
• Každý link může propojovat pouze jeden upstream a downstream port. Vyjímku tvoří propojení typu Advanced Peer-to-peer Link (nebude popisováno - využití v multiprocesorových systémech, nebo při propojení více PCI Express sběrnic s několikaroot complexy).
Tyto požadavky neomezují vzájemné propojení jednotlivých zařízení na sběrnici PCI Express. Například na root complex zařízení může být připojeno několik switchu, endpointů nebo bridgůe jak ukazuje obr. 7.


Obrázek 7: Architektura sběrnice PCI Express
- Root Complex
Je obdobou HOST-PCI Bridge u sběrnice PCI, který vytvářel propojení mezi hostitelským procesorem a systémovou pamětí. V současnosti zastává Root Complex následující funkce:
• Propojení sběrnice hostitelského procesoru se systémovou pamětí (řadič paměti)
• Propojení sběrnice hostitelského procesoru se sběrnicí PCI Express přes downstream porty a linky
• Propojení systémové paměti se sběrnicí PCI Express přes downstream porty a linky
Root complex dále zajišťuje podporu PCI Express a systémových prostředků. Systémové prostředky jsou konfigurovatelné přes I/O prostor hostitelské sběrnice. Obvykle se jedné o řadič přerušení, Power Management a řadič Hot Plug zařízení.
Na obr. 8 je základní model root complexu. Jak je vidět z obrázku, veškerá zařízení sběrnice PCI Express jsou na straně downstreamu (tedy "pod Root Complexem'") a zařízení hostitelského procesoru a paměti na straně upstreamu. Jak již bylo zmíněno výše, zařízení musejí byt kompatibilní s modelem směrnice PCI, což se odráží i v modelu root complexu - vytváří se virtuální HOST-PCI bridge a PCI segmenty. Klíčové jsou především tyto části:
• Virtuální HOST-PCI Bridge, propojující systémovou část a vlastní sběrnici PCI Express
• Blok root complex registrů (RCRB) zajišťující konfiguraci.
• Virtuální segment sběrnice PCI, zajišťující propojení mezi virtuálními bridgi HOST-PCI a PCI-PCI. Dále jsou generovány signály IDSEL obdobně jako u sběrnice PCI, které zajišťují přístup ke konfiguračním registrům.
• Virtuální PCI-PCI bridge zajišťuje větvení transakcí přicházajících z hostitelského procesoru na sběrnici PCI Express nebo dat přicházejících ze sběrnice do hlavní paměti.
Root complex se může chovat také jako virtuální switch, kdy dochází k propojení dvou zařízení (Linků) přímo na fyzické úrovní. Příkladem může být propojené zařízení rca a rcb z obr. 8 Tato funkce nemusí byt implementovaná.

Obrázek 8: Architektura Root Complexu

- Switch
Switch zajišťuje větvení a rozšiřování sběrnice PCI Express od downstream portu root complexu, nebo jednoho switche k dalším PCI Express zařízením (endpointy, switche a bridge). Primárně switchzajišťuje přenos paketů mezi upstream a downstream portem. Architektura zachovává členění do PCI segmentů a virtuálních sběrnic (obr. 9). Každý switch má následující vlastnosti:
• Je sestaven nejméně ze dvou nebo více virtuálních PCI-PCI bridgu.
• Používá PCI Bridge mechanismus pro přenos dat založený na cílové adrese.
• Musí podporovat přenos všech typů transakcí (TLP)
• Nesmí generovat pakety s menší délkou, než do něho vstoupily. Pokud přijde paket o délce 512 bytů, nemůže být rozdělen na dva o délce 256 bytů.
• Pokud vznikne současně několik požadavků na jeden virtuální kanál, budou rozděleny podle priority (kanál s nejvyšší prioritou zvítězí), nebo se využije rotující priorita.

Obrázek 9: Architektura switche

- Bridge
Bridge zajišťuje převod mezi PCI Express a jiným typem sběrnice (PCI, PCI-X, nebo jiným). V podstatě se dá říct, že bridge se chová podobně jako swich, ale musí být schopen přenášet specifické transakce jiného typu sběrnice a pochopitelně podporovat specifikaci příslušné sběrnice. Vnitřní zapojení bridge ukazuje obr. 10.

Obrázek 10: Architektura bridge

- Endpoint
Pod pojmem Endpoint rozumíme koncové zařízení připojené ke sběrnici PCI Express, které tvoří downstream Root Complexu nebo Switche. Endpoint obsahuje jedno zařízení s jednou až osmi funkcemi (ekvivalent ke specifikaci PCI). Endpointy můžeme rozdělit do dvou skupin a to Legacy Endpoints a PCI Express Endpoints.

• Legacy Endpoint podporuje následující typy operací:
• Musí podporovat konfigurační mechanizmus typu 0 (ekvivalent s PCI - typ jedna se využívá pro bridge - po dosažení cílového bridge je konvertován na typ 0)
• Může podporovat žádosti typů I/O
• Může generovat požadavek na I/O operaci
• Může podporovat operace typu LOCK (specifikace nedoporučuje jejich používání)
• Nesmí generovat požadavek na operace typu LOCK
• Může implementovat rozšířený konfigurační prostor, avšak ten nemusí být využit softwarem (zpětná kompatibilita s PCI)
• Při vzniku požadavku na transakci do hlavní paměti nemusí generovat adresu větší než 4Gbyty (32bitů)
• Generovaní přerušení může podporovat jak 32-bitovou verzi, tak 64-bitovou verzi MSI
• Má dovoleno používat 32bitové adresování pro bázové adresy vyžadující paměťový přístup
• PCI Express Endpoint
• Musí podporovat konfigurační mechanizmus typu 0
• Nesmí generovat požadavky na operace typu I/O
• Nepodporují a negenerují operace typu LOCK
• Při vzniku požadavku na transakci do hlavní paměti musí podporovat generování adresy větší než 4Gbyty (32bitů)
• Generovaní přerušení musí podporovat 64 bitovou verzi MSI4
• Pro všechny bázové adresy, které mají nastavený prefetch bit, musí být podporováno 64-bitové adresování. Adresy nepoužívající prefetch bit, mohou podporovat jen 32-bitovou verzi adresování
• Minimální velikost požadovaná, pro přidělení bázové adrese je 128 bytů

Z výše zmíněného výčtu a názvu je patrno, že legacy endpoints jsou zařízení, zachovávající zpětnou kompatibilitu se standardem PCI. Především to platí pro SW model a zařízení za bridgem typu PCI Express - PCI.

Vrstvy sběrnice PCI Express

3.2.3 Vrstvy sběrnice PCI Express
V předcházející části jsme se seznámili se zařízeními, které tvoří základní bloky sběrnice. Jednotlivá zařízení jsou propojena tzv. Linkem, který zajišťuje přenos dat pomocí paketů mezi jednotlivými komponenty a tvoří část přenosové trasy. Dále je přenosová trasa připojena k vysílači a přijímači fyzické vrstvy. Na tuto vrstvu navazuje linková a transakční vrstva, ve kterých je formován paket a doplňován o potřebné informace. Tyto tři vrstvy tvoří základní komunikační model sběrnice PCI Express definované specifikaci 1.a.
Transakční vrstva je obvykle propojena ještě s vrstvou (core logic), která realizuje interface mezi hostitelským procesorem a sběrnicí PCI Express. Tato vrstva není specifikována standardem PCI Express a záleží na konkrétní implementaci použitého procesoru nebo systému.
3.2.4 Transakční vrstva
Nejvyšší vrstvou architektury je transakční vrstva. Tato vrstva je zodpovědná za zpracování (kompozici a dekompozici) paketů transakční vrstvy (Transaction Layer Packet - TLP) obr. 11. Tyto pakety nesou informaci o typu prováděné operace, jako je čtení, zápis, zpráva nebo operace s IO prostorem. Všechny pakety, které výžadují potvrzení jsou implementovány jako dvě transakce (request/completion) a jsou přijímány nebo posílaný do vrstvy core logic. Každý vysílaný paket má svoje identifikační číslo, aby cílové zařízení mohlo poslat completion transakci zdroji. Dále vrstva zajišťuje nastavování atributů, posílaní zpráv, které v podstatě realizují virtruální vodiče přerušení, řízení napájení, jak jsme je znali z jiných typů sběrnic.

Obrázek 11: Paket transakční vrstvy

Jak je vidět z obr. 11, paket transakční vrstvy se skládá z hlavičky (TLP Header - obr. 12), vlastních dat, pokud jsou požadována pro příslušný typ operace a nepovinným kontrolním součtem ECRC .
Hlavička se skládá z řídících informací o typu přenosu. Délka hlavičky může být v rozsahu 3-4 doublewordy podle Fmt (DW = 4 byty) viz. tab. 3. Význam jednotlivých atributů hlavičky je popsán v následujícím textu.
- Fmt udává formát paketu TLP a zda paket obsahuje data:
Fmt[1:0] Formát TLP
00b 3 DW, bez dat
01b 4 DW, bez dat
10b 3 DW a data
11b 4 DW a data
Tabulka 3: Formát hlavičky paketu TLP

- Type udává typ paketu TLP, respektive typ operace, co se bude provádět. Je vázán také na Fmt. Příslušné kombinace Fmt a typu operace jsou uvedeny v tab. 4.
- TC udává Traffic Class
- TD povoluje připojení ECRC (TLP Digest) ke konci paketu
- EP nese informaci o chybě vzniklé v datech, například při chybě parity při čtení ze sběrnice PCI. Tato chyba nemusí být nutně kritická. Jedná se o informaci pro nadřazený sytém, který se s chybou vypořádá. Tato chyba se nesmí vyskytnou v žádné jiné části než datové! Proto se tomuto mechanizmu také říká data poisoning.
- Attr atributy udávající informace pro přenos dat a koherenci cache
- Lenght jde o délku přenášených dat v DW uvnitř paketu. Tedy maximální délka může být 2**10 DW = 4096 bytů

Obrázek 12: Formát hlavičky paketu sběrnice PCI Express


Typ TLP
Fmt
Type
Popis

MRd
00/01
0 0000
Žádost o čtení z paměti

MRdLk
00/01
0 0001
Žádost o čtení z paměti s požadavkem na Lock

MWr
10/11
0 0000
Žádost o zápis do paměti

IORd
00
0 0010
Žádost o I/O čtení

IOWd
10
0 0010
Žádost o I/O zápis

CfgRd0
00
0 0100
Konfigurační čtení typu 0

CfgWr0
10
0 0100
Konfigurační zápis typu 0

CfgRd1
00
0 0101
Konfigurační čtení typu 1

CfgWr1
10
0 0101
Konfigurační zápis typu 1

Msg
01
1 0rrr
Žádost o zprávu - rrr viz tab. 5

MsgD
11
1 0rrr
Žádost o zprávu - rrr viz tab. 5

Cpl
00
0 1010
Dokončení transakce bez dat

CplD
10
0 1010
Dokončení transakce s daty

CplLk
00
0 1011
Dokončení transakce bez dat s Lockem

CplDLk
10
0 1011
Dokončení transakce s daty a s Lockem
Tabulka 4: Jednotlivé atributy hlavičky paketu TLP


r[2:0]
Popis

000
Zpráva je směřována na root complex

001
Směrováno podle adresy

010
Směrováno podle ID

011
Vysíláno root complexem

100
Lokální - ignorováno v příjímači

101
Zpráva je odeslána do RC switchem až po přijmu zprávy od všech zařízení

110 a 111
Nepoužívají se a jsou ignorovány
Tabulka 5: Typy směrováni zprav

3.2.5 Linková vrstva
Linková vrstva je vložená mezi transakční a fyzickou vrstvu. Jejím úkolem je zajišťování integrity dat - detekce a oprava chyb. Data přijatá z transakční vrstvy jsou opatřena kontrolním kódem, identifikačním číslem a poslána do fyzické vrstvy viz. obr. 13. Naopak data přijatá z fyzické vrstvy jsou otestována, zda neobsahují nějakou chybu a jsou poslána do transakční vrstvy. V případě výskytu chyby, vrstva zajišťuje opakovaný požadavek na data, dokud nejsou požadovaná data přitomná, nebo dokud není linka prohlášena za nefunkční.

Obrázek 13: Paket linkové vrstvy
3.2.6 Fyzická vrstva
Fyzická vrstva zajišťuje veškeré obvody nutné pro připojení k linku. Jsou to fázové závěsy, buffery, sério-paralelní a paralelně sériové převodníky, impedanční přizpůsobení a v neposlední řadě i logiku pro inicializaci a udržování spojení na linku (vyjednání přenosové rychlosti, formátu přenosu dat). Tato vrstva je zodpovědná za komunikaci mezi linkem a linkovou vrstvou. Paket přijatý z linkové vrstvy LLTP je doplněn o kódy začátku konce paketu podobně, jako je tomu u síťových paketů (Ethernet). Dále je paket zakódován kódem 8 na 10. Tím jsou do paketu doplněny další informace zajišťující synchronizaci. Potom je paket převeden na sériový kód a odvysílán do příslušného Lanu. Přijímací část fyzické vrstvy postupuje opačným způsobem. Dekóduje přijatý paket na řídící kódy, data a rekonstruuje hodiny. Pokud je rámec paketu v pořádku a odpovídá kontrolní součet, je odeslán do linkové vrstvy, dále je také odesláno potvrzení o přijetí dat zdroji transakce, který vyprázdní retry buffer. Pokud přijdou data s chybou, odesílá se do zdrojového portu požadavek na opakování transakce.
Je nutno podotknout, že pokud dojde v budoucnu ke změně formátu kódování (64bitů na 66bitů) nebo rychlosti, je třeba změnit pouze fyzickou vrstvu a není nutné měnit žádnou jinou vrstvu modelu PCI Express.
3.2.7 Virtuální kanály - VC a Traffic Class - TC
Každý PCI Express port může byt rozdělen až do 8mi virtuálních kanálů, identifikovaných číslem kanálu. Jak napovídá název, virtuální kanál není fyzickým kanálem, ale mapuje se na fyzické kanály v časovém multiplexu a podle pravidel určovaných arbitrážní logikou kanálů. Traffic class zajišťuje relativní prioritu mezi jednotlivými přenosy. Pomocí mapovaní TC na VC je možné zajistit deterministický a izochronní transfer dat tzv. Quality of Service.
Využití virtuálních kanálů a traffic classes umožňuje využít přenosovou trasu z hlediska přenosu velkých objemů dat (paketů). Horší situace nastane při vzniku požadavku na přenos série menších paketů. V takovémto případě je přenosová rychlost ovlivněna délkou paketu, kdy je k aktivním datům připojena řídící informace a to 5 DW hlavičky + 2 DW DLLP (Data Link Layer Packet). Dále požadavek na čtení je ovlivněn latencí (doba od poslání požadavku na čtení až po příjem dat). U zápisu není latence obvykle kritická, protože se tvoří přirozený pipe-line při průchodu dat směrem od zdroje k cíli. Posledním faktorem, který ovlivňuje rychlost čtení, je nastavení maximální délky požadavku na čtení v registru RCB. Nastavení se může pohybovat v rozsahu 128, 256, 512, 1024, 2048 a 4096 bytů. Přehled využití linky nám ukáže tab. 6.


Délka datové části paketu
Využití sběrnice PCI Express v[ %]

byty
Zápis
Čtení RCB (256B)
Čtení RCB(128B)

4
16
12
12

8
28
22
22

32
62
53
53

64
76
69
69

128
86
82
72

256
92
90
74

512
96
94
75

1024
98
97
75

2048
99
98
75

4096
99
98
76
Tabulka 6: Využití sběrnice PCI Express pro různe délky přenosu a nastavení RCB

3.3 Signály sběrnice PCI Express a mechanické uspořádání
Jak již bylo zmíněno v předešlých kapitolách, tak sběrnice PCI Express pracuje na jiných principech něž dosud používané sběrnice v počítačích PC. Základem je Line sestavený ze dvou diferenciálních párů a to příjímacího a vysílacího. Vlastní sběrnice je doplněna o další pomocné a napájecí signály. Přehled signálů pro konektor typu x1 a jejich popis je uveden v tab. 7.


Číslo pinu
Stran A
Stran B


Název
Popis
Název
Popis

1
+12V
Napájení +12V
PRSNT1#
Detekce přítomnosti karty Hot-Plug

2
+12V
Napájení +12V
+12V
Napájení +12V

3
RSVD
Vyhrazeno pro budoucí použití
+12V
Napájení +12V

4
GND
Zem
GND
Zem

5
SMCLK
System Managenet Bus Clock
JTAG2
TCK, hodinový signál pro JTAG

6
SMDAT
System Management Bus Data
JTAG3
TDI, vstupní data pro JTAG

7
GND
Zem
JTAG4
TDO, výstupní data od JTAGu

8
+3,3V
Napájení +3,3V
JTAG5
TMS, výběr modu pro JTAG

9
JTAG1
TRST, reset JTAGu
+3,3V
Napájení +3,3V

10
3,3Vaux
Pomocné napájení 3,3V - pro wake-up
+3,3V
Napájení +3,3V

11
WAKE#
Signál pro reaktivaci zařízení z PWD
PERST#
Reset

12
RSVD
Vyhrazeno pro budoucí použití
GND
Zem

13
GND
Zem
REFCLK-
Referenční hodinový signál, negativní

14
PETp0
Vysílač - Lane 0 pozitivní
REFCLK+
Referenční hodinový signál, pozitivní

15
PETn0
Vysílač - Lane 0 negativní
GND
Zem

16
GND
Zem
PERp0
Přijímač - Lane 0 pozitivní

17
PRSNT2#
Detekce přítomnosti karty Hot-Plug
PERn0
Přijímač - Lane 0 negativní

18
GND
Zem
GND
Zem
Tabulka 7: Popis konektoru PCI Express

Konektor pro verze x2, x4, x8 a x16 je rozšířen o další nože konektoru - obvykle o čtyři pozice, které obsahují GND a přijímací a vysílací pár. Je nutno podotknout, že implementace některých signálů není nutná a je pouze doporučena. Detailní popis signálů bude rozebrán v následujícím odstavci, nebo v literatuře [3].
- REFCLK (nutno implementovat)
Referenční hodiny - obdoba signálu CLK jak ho známe ze sběrnice PCI. Vlastní hodinový rozvod se skládá z diferenciálních vodičů REFCLK+ a REFCLK- s rozsahem napěťových úrovní 0 - 0,7V. Pracovní kmitočet je stanoven na 100MHz ±300ppm. Zásuvná karta nemusí využívat referenční hodiny z konektoru, ale musí udržovat datový tok v rozsahu 600ppm. Referenční hodiny mohou využívat hodiny s rozprostřeným spektrem.
- PERST (nutno implementovat)
Signál inicializující kartu po zapnutí napájení, nebo může sloužit jako tzv. warm reset.
- WAKE# (nepovinné)
Signál pro reaktivaci zařízení z power down modu, otevřený kolektor. Tato funkce vyžaduje přítomnost napájecího napětí 3,3Vaux. Po detekci signálu WAKE# musí sytém zapojit hlavní napájení slotu a obnovit referenční hodiny.
- SMBus System Management Bus (nepovinné)
Sběrnice určená ke komunikaci mezi zařízeními, může zajišťovat doplňkovou zprávu power managementu, identifikovat verze firmwaru a hardwaru. Sběrnice se skládá ze dvou signálů SMCLK a SMDAT a odpovídá standardu I2C.


Napájecí napětí
1x
4x/8x
16x

+3,3V



Tolerance napětí
9%
9%
9%

Proud
3.0A (max)
3.0A (max)
3.0A (max)

Zatížení (kapacita)
1000uF
1000uF
1000uF

+12V



Tolerance napětí
8%
8%
8%

Proud
0,5A(max)
2,1A (max)
4,4A (max)

Zatížení (kapacita)
300uF
1000uF
2000uF

+3,3Vaux



Tolerance napětí
9%
9%
9%

Proud



Povoleny waku-up
375mA (max)
375mA (max)
375mA (max)

Nepovoleny wake-up
20mA (max)
20mA (max)
20mA (max)

Zatížení (kapacita)
150uF
150uF
150uF
Tabulka 8: Maximálni proudové zatížení konektoru sběrnice PCI Express

3.3.1 Mechanické uspořádání
Mechanické uspořádání ukazuje obr. 14. Jak je vidět PCI Express konektor s šířkou X16 se využíje pro grafickou kartu a nahradí stávající AGP konektor. Další konektory budou pro běžné PC X1 a pro servery X4 nebo X8. Po dobu několika let se bude ještě udržovat standard PCI, který bude postupně nahrazen sběrnicí PCI Express (obdobný přechod se odehrával u sběrnice ISA, která byla postupně vytlačena PCI konektory)


Obrázek 14: Mechanické uspopřádání konektorů na základní desce PC v roce 2004

Rozměry přídavných karet by měly splňovat některá omezení, co se týče maximálních rozměrů dle tab. 9. Karty připojované pomocí kabelů mohou mít jiné rozměry a uspořádání.


Šířka linku
Typ karty
Výška karty
Šířka karty

x1
Standardní karty poloviční délky
111.15 mm (max)
167,65 mm (max)

x1,x4,x8,x16
Standardní karty plné délky
111.15 mm (max)
312 mm (max)

x1,x4,x8,x16
Karty s nízkým profilem
68,9 mm (max)
167,65 mm (max)
Tabulka 9: Rozměry přídavných karet sběrnice PCI Express

4 Souhrn
Využití sběrnice PCI Express přináší zvýšení propustnosti dat v oblasti počítačů PC, zmenšení rozměrů karet, zjednodušení návrhu plošných spojů a sjednocení různých platforem, jako jsou síťové karty, grafické karty a komponenty přenosných počítačů. Dále specifikace umožňuje připojovat zařízení pomocí kabelů, což vede k vysoké univerzálnosti standardu (nepředpokládá se nahrazení rozhraní SerialATA).
Jako příklad porovnávající výkonnost sběrnice PCI a PCI Express uveďme síťovou kartu pracující na 1Gbitu/s, kdy máme k dispozici standardní počítač, který má sběrnici PCI v šířce 32 bitů pracující na frekvenci 33MHz. Tedy maximální datový tok, který může vzniknout, je 100Mbytu pro příjem a stejný objem pro vysílaní, což není standardní sběrnice PCI schopna přenést (max. propustnost je 133Mbytu/s v jednom směru) a potřebuje 124 nožů konektoru. Sběrnice PCI Express x1 potřebuje 36 nožů konektoru a maximální propustnost je 2,5Gbitů/s v obou směrech (při použití kódování 8/10 asi 250Mbytů surových dat za sekundu). Navíc propojení je typů peer-to-peer, takže datový tok není omezován žádným dalším zařízením na sběrnice. K saturaci může docházet až ve switchi nebo root complexu při přístupu do paměti. Připojení 4 takových síťových karet do systému je bez problému možné, co se týče sběrnice a propustnosti dat mezi pamětí a root complexem. Jako další příklad uveďme grafickou kartu pracující na sběrnici AGP. V současné době je maximální propustnost sběrnice AGP 2Gbyty/s jedním směrem. Při použití sběrnice PCI Express x16 bude propustnost směrem do karty dvojnásobná (viz. tab. 10) a směrem z karty bude možné využít další 4Gbyty/s. Tedy celková propustnost dat mezi grafickou kartou a hlavní pamětí činí 8Gbytů/s. Při využití plné šířky kanálu nebude v současnosti vznikat úzké hrdlo na sběrnici, ale spíš v paměťových modulech.
Zvýšení pracovní frekvence sběrnice ze současných 2,5Gbitu/s na 5Gbitů/s (3,125Gbitů/s) a později na 10Gbitů/s povede k lineárnímu nárůstu výkonu s frekvencí. Nasazení sběrnice s vyšší frekvencí zatím brání relativně vysoká cena nových technologií pracujících na frekvencích do 10Gbitů/s, nedostatečná propustnost dat mezi hlavní pamětí a sběrnicí a v neposlední řadě je nutné ověřit, funkčnost a vlastnosti masového nasazení technologie PCI Express.


Počet lanu v linku
x1
x2
x4
x8
x12
x16
x32

Počet vodičů pro jeden směr
2
4
8
16
24
32
64

Přenosová rychlost v Gbitech/s
2,5
5
10
20
30
40
80

Přenosová rychlost v Mbytech/s
250
500
1000
2000
3000
4000
8000
Tabulka 10: Přehled přenosových rychlostí sběrnice PCI Express v závislosti na počtu lanu v linku

Odvrácenou stránkou technologie PCI Express je relativní složitost vlastního protokolu, znemožňující jednoduchý, levný a rychlý návrh řadiče do hradlového pole. Navíc v současné době (rok 2004) neexistují běžně dostupné komponenty převádějící protokol PCI Express na uživatelsky "přívětivou" sběrnici, jak tomu bývalo dřív u výrobců PCI matchmakeru, které převáděly protokol PCI do paměťově mapovaných prostorů doplněných o sadu uživatelských registrů, mailboxu, doorbellu a DMA kanálů. Toto zatím znemožňuje návrh zařízení s touto technologií pro malosériovou výrobu v počtu stovek kusů.
Jako nejschůdnější řešení se jeví využití hradlových polí se sériovým interfacem schopným zpracovávat datový tok fyzické vrstvy kompatibilní s formátem PCI Express a implementovat zbývající vrstvy včetně logic core. Vhodná hradlová pole pro tento účel jsou Virtex II Pro, nebo Virtex II Pro X od firmy Xilinx a Stratix GX od firmy Altera.