1. Sběrnice – pojem, typy a základní charakteristiky
Sběrnice (anglicky bus) je soubor vodičů (elektrických linek) spojujících dvě nebo více součástí počítače a sloužících k přenosu dat, adres a řídicích signálů mezi nimi. Bez sběrnice by každá součást musela být spojena s každou jinou samostatným párem vodičů – při desítkách komponent by to bylo fyzicky neproveditelné. Sběrnice tento problém řeší tak, že tvoří sdílené médium, ke kterému se všechny zúčastněné komponenty připojí a střídají se v jeho využívání.
Dobrým přirovnáním je silnice: auta (data) jedou po stejné silnici, ale dopravní pravidla (protokol sběrnice, arbitrace) zajistí, že si navzájem nepřekáží. Stejně jako silnice má kapacitu (počet pruhů = šíře sběrnice) a rychlostní omezení (taktovací frekvence), platí to i pro sběrnici.
Blokové schéma osobního počítače – uprostřed základní desky je horizontální pruh označený „Sběrnice – data, adresy, řízení“. K ní jsou obousměrnými šipkami připojeny CPU, RAM, CMOS, EPROM a chipset (nahoře), dále pak řadič klávesnice PS/2, řadič myši PS/2, řadiče disků IDE-ATA/SATA, USB a paralelní LPT rozhraní (dole). Na pravé straně jsou kolmé sloty PCI-Express, PCI a PCI (bílé). Do nich se zasouvají grafický adaptér, zvukový adaptér a síťový adaptér. Z toho je vidět, proč se sběrnici říká páteř (backbone) celého PC.
Bus Interconnection Scheme (zdroj: Computer Organization and Architecture) – diagram ukazuje tři fyzicky oddělené skupiny vodičů tvořící jednu logickou sběrnici. Nahoře CPU, pak dvě paměťové moduly (Memory) a dvě vstupně/výstupní rozhraní (I/O). Všechny jsou připojeny ke třem vrstvám: Control Lines (řídicí vodiče – nesou signály jako R/W, interrupt, clock), Address Lines (adresní vodiče – CPU na ně vysílá adresu cíle) a Data Lines (datové vodiče – po nich teče samotný obsah přenosu). Tato struktura tří subsběrnic je základem každé paralelní sběrnice.
Tři subsběrnice – data, adresy, řízení
Každá klasická (paralelní) sběrnice se skládá ze tří logicky oddělených skupin vodičů, z nichž každá plní jinou roli:
Datová sběrnice (data bus) přenáší samotný obsah – hodnoty, instrukce, výsledky výpočtů. Její šíře (počet paralelních vodičů, např. 8, 16, 32 nebo 64 bitů) přímo určuje, kolik dat lze přenést za jeden hodinový cyklus. Šíře datové sběrnice se označuje jako datová šíře nebo šíře sběrnice.
Adresní sběrnice (address bus) nese informaci o tom, kde v paměti nebo na jakém zařízení se data nacházejí. Šíře adresní sběrnice určuje maximální adresovatelný prostor: 32-bitová adresní sběrnice může adresovat 232 = 4 GB paměti. Právě proto byly 32-bitové systémy omezeny na 4 GB RAM bez rozšíření (PAE).
Řídicí sběrnice (control bus) přenáší synchronizační a řídicí signály: hodinový signál (clock), signál čtení/zápisu (R/W), signály přerušení (interrupt), potvrzení (acknowledge), reset atd. Koordinuje, kdo smí v daný okamžik sběrnici používat.
Základní charakteristiky sběrnice
Výkon sběrnice se hodnotí dvěma hlavními parametry, ze kterých lze odvodit skutečnou přenosovou rychlost:
Taktovací frekvence (hodinová frekvence, clock)
Udává se v MHz nebo GHz a říká, kolikrát za sekundu může sběrnice zahájit nový přenos. Čím vyšší frekvence, tím více cyklů za sekundu – ale zároveň rostou problémy s elektromagnetickým rušením na paralelních linkách, což vedlo ke vzniku sériových sběrnic.
Datová šíře (šířka sběrnice)
Počet paralelních vodičů nesoucích data najednou. Při 32 bitech se přenesou 4 bajty za jeden cyklus, při 64 bitech 8 bajtů. Výsledná propustnost (bandwidth) je pak: propustnost = frekvence × datová šíře (v bajtech). Například PCI 33 MHz × 4 bajty = 133 MB/s.
Propustnost (MB/s) = Frekvence (MHz) × Datová šíře (bajty)
Rozdělení sběrnic
Rozdělení sběrnic PC – snímek shrnuje tři hlavní osy třídění. Paralelní vs. sériové: paralelní sběrnice (PCI, PCI-X) přenáší více bitů najednou, každý po samostatném vodiči; sériové (PCI Express, USB) přenáší bity jeden po druhém, ale na mnohem vyšší frekvenci a bez problémů se synchronizací paralelních linek. Interní vs. externí: interní (ISA, PCI, PCIe) jsou uvnitř skříně PC; externí (USB, FireWire) spojují PC s periferními zařízeními. Lokální vs. universální: lokální sběrnice (VL-Bus) jsou navrženy pro konkrétní CPU, universální (PCI) jsou nezávislé na procesoru.
| Hledisko | Typ 1 | Příklady | Typ 2 | Příklady |
| Přenos dat | Paralelní | PCI, PCI-X, ISA | Sériová | PCI Express, USB, SATA |
| Umístění | Interní | ISA, PCI, PCIe | Externí | USB, FireWire |
| Závislost na CPU | Lokální | VL-Bus | Universální | PCI |
2. Diferenciální datový pár
Přechod od paralelních sběrnic (ISA, PCI) k sériovým (PCI Express, USB) byl možný díky klíčové technologii – diferenciálnímu signálování (differential signaling). Rozumění této technice je nezbytné pro pochopení toho, proč PCI Express funguje tak, jak funguje.
Proč nestačí jednoduchý signál?
V klasickém jednovodičovém (single-ended) přenosu se logická 1 reprezentuje vysokým napětím (např. 5 V nebo 3,3 V) a logická 0 nízkým napětím (0 V). Problém nastává, když vodič prochází elektromagneticky zarušeným prostředím (uvnitř PC je rušení obrovské – desítky proudovodičů blízko sebe). Rušení se přičte k signálu a přijímač ho nesprávně interpretuje. Proto nelze jednoduše zvyšovat frekvenci jednovodičových linek – při vyšší frekvenci jsou datové impulzy kratší a rušení je relativně větší.
Princip diferenciálního signálování – vlevo nahoře je odesílaný signál (Sender), uprostřed schéma cesty. Diferenciální pár tvoří dva vodiče: D+ nese originální signál, D− nese jeho přesnou inverzi (zrcadlový obraz). Rušení (Noise, modrá elipsa nahoře) se přidá ke oběma vodičům stejnou měrou, protože leží blízko sebe. Na přijímací straně (Receiver, vpravo) se od sebe D+ a D− odečtou: užitečný signál se zdvojnásobí, zatímco rušení (přítomné na obou) se odečte na nulu. Výsledkem je čistý signál vpravo dole, identický s odeslaným. Tato technika se nazývá Common Mode Rejection (potlačení souhlasného rušení) a je důvodem, proč PCIe, USB 3.x a SATA mohou pracovat na GHz frekvencích.
Diferenciální pár – shrnutí
Dva vodiče (D+ a D−) nesou navzájem invertované signály. Rušení, které se ke dvojici vodičů přidá, je na obou vodičích stejné (common mode noise). Přijímač odečte D− od D+: rušení se vyruší, signál se zachová. Tato vlastnost umožňuje pracovat při mnohem nižších napětích (PCIe 1. gen pracuje s amplitudou jen ~0,4 V, oproti 5 V u ISA) a na frekvencích v řádu GHz.
Diferenciální signálování se používá u: PCI Express (každá lane = 2 diferenciální páry), USB (D+/D−), SATA, DisplayPort, HDMI, Ethernet 1000BASE-T. Bez něj by moderní sériové sběrnice s přenosovými rychlostmi v řádu Gb/s nebyly možné.
3. ISA sběrnice
ISA (Industry Standard Architecture) byla první standardizovaná rozšiřující sběrnice osobních počítačů, zavedená společností IBM v roce 1981 jako součást IBM PC. Po celé desetiletí 80. let byla de facto průmyslovým standardem a je tedy výchozím bodem pro porozumění historii sběrnic.
Původ a vývoj ISA
IBM PC (1981) měl 8bitový procesor Intel 8088 a sběrnici o šíři 8 bitů a frekvenci 4,77 MHz. Tato sběrnice se zpětně nazývá PC Bus nebo XT Bus. S příchodem PC/AT (1984) a procesoru Intel 80286 byla sběrnice rozšířena na 16 bitů a frekvenci 8 MHz – tato verze se začala nazývat ISA. Zpětná kompatibilita byla zachována: 8bitové karty šly použít i v 16bitovém slotu (druhá část slotu byla jednoduše nevyužita).
Přehled paralelních sběrnic PC (vlevo) – tabulka ukazuje šest typů sběrnic s jejich datovými šířkami a frekvencemi: PCI (32/64 bit, 33 MHz), AGP (32 bit, 66–533 MHz), ISA (8/16 bit, 8–10 MHz), EISA (32 bit, 8–10 MHz), Micro Channel (32 bit, 5–20 MHz), VL-Bus (32 bit, 40 MHz). Vpravo fotografie průmyslové základní desky (CBP-14P7) s mnoha ISA sloty – ta bílá řada dlouhých černých konektorů uprostřed jsou 16bitové ISA sloty, vlevo od nich kratší 8bitové PC Bus sloty. Schéma vpravo dole ukazuje rozdíl délky: 8bitový slot (A1–A31, B1–B31) versus 16bitový slot (A1–A31+C1–C18, B1–B31+D1–D18).
ISA vs. EISA konektor – vlevo schéma průřezu 8bitového ISA konektoru (jednořadý, jednoduchý profil). Vpravo EISA konektor – fyzicky identický s ISA zvenku, ale s druhou sadou kontaktů v hlubší poloze (EISA karty mají delší kontakty). To zajistilo mechanickou zpětnou kompatibilitu: ISA karta sedí v EISA slotu a dosáhne jen na první sadu kontaktů (8 nebo 16bitový provoz), EISA karta dosáhne na obě sady (32bitový provoz). Vpravo dole fotografie reálné ISA síťové karty s typickým zlatým konektorem v dolní části.
ASUS GMIQ-470 ISA multifunkční karta – žlutá deska plošných spojů s ISA konektorem v dolní části (viditelná dvousekční struktura: kratší 8bitová část vlevo, delší 16bitová část vpravo). Karta integruje Game Port, COM1/COM3, COM2/COM4, FDD konektor (pro disketu) a IDE konektor pro pevný disk. To bylo typické pro ISA éru – všechny běžné periferie se musely přidávat skrze ISA karty, zatímco dnes jsou všechny integrovány přímo na základní desce. Schéma vlevo dole ukazuje rozmístění kontaktů: 8bitová část (A/B strana, 31 pinů) a 16bitová rozšíření (C/D strana, 18 pinů).
Technické parametry ISA
| Parametr | 8-bit ISA (PC/XT Bus) | 16-bit ISA (AT Bus) |
| Datová šíře | 8 bitů | 16 bitů |
| Adresní šíře | 20 bitů (1 MB) | 24 bitů (16 MB) |
| Taktovací frekvence | 4,77–8 MHz | 8–10 MHz |
| Přenosová rychlost | ~4 MB/s | ~16 MB/s |
| Počet pinů (slot) | 62 (A+B strana) | 98 (A+B+C+D strana) |
| Napájecí napětí | 5 V | 5 V |
| Zavedeno | 1981 (IBM PC) | 1984 (IBM PC/AT) |
Proč ISA zaostala a zanikla
ISA má pevnou frekvenci 8–10 MHz – nelze ji zvýšit, protože přímo odpovídala frekvenci procesoru 80286. Procesory šly rychle dopředu (386, 486, Pentium), ale ISA zůstala pomalá. Dalším problémem bylo ruční přiřazování přerušení (IRQ) a DMA kanálů – tzv. „IRQ peklo“ při instalaci karet. ISA zmizela z mainstream desek kolem roku 2000, ale v průmyslových aplikacích se používala ještě v letech 2000–2010.
Co je IRQ (Interrupt Request)?
IRQ (Interrupt Request – žádost o přerušení) je signál, kterým karta (nebo jiné zařízení) upozorní procesor, že potřebuje jeho pozornost – například „přijala jsem data ze sítě, zpracuj je“. Procesor okamžitě přeruší to, co dělal, obslouží zařízení a vrátí se zpět. Každé zařízení musí mít přiřazeno jiné číslo IRQ (IRQ0–IRQ15), jinak si dvě zařízení přerušení splerou a systém zhavaruje. U ISA se toto číslo přiřazovalo ručně přes DIP přepínače nebo propojky.
Co je DIP přepínač?
DIP přepínač (Dual In-line Package switch) je řada malých mechanických přepínačů přímo na kartě – přibližně jako sada miniaturních vypínačů. Nastavením kombinace zapnuto/vypnuto se konfiguroval IRQ, DMA kanál nebo I/O adresa karty. Bylo to pracné, chybovité a vyžadovalo čtení manuálu každé karty. Plug and Play u PCI tento postup plně automatizoval.
EISA – rozšíření ISA na 32 bitů
EISA (Extended ISA, 1988) bylo zpětně kompatibilní rozšíření ISA na 32 bitů. Konektor EISA byl fyzicky identický s ISA (takže ISA karty fungovaly bez problémů), ale EISA karty měly delší kontakty, které dosáhly na druhou sadu pinů v hlubší rovině slotu. EISA dosahovala přenosové rychlosti ~33 MB/s při 8 MHz díky 32bitové šíři. Nikdy se ale příliš nerozšířila – konkuroval jí MCA (Micro Channel Architecture) od IBM a brzy přišlo PCI.
4. PCI sběrnice – konektory, datové šířky, charakteristiky
PCI (Peripheral Component Interconnect) uvedl Intel v roce 1992 jako revoluci v návrhu PC sběrnic. Na rozdíl od ISA je PCI procesorově nezávislá (processor-independent) – nezáleží na tom, jestli v PC sedí Intel, AMD nebo jiný procesor. PCI komunikuje s procesorem přes chipset (Northbridge), nikoli přímo. To umožnilo PCI přežít celou dekádu a zůstat standardem až do nástupu PCI Express v roce 2004.
Architektura PC se sběrnicí PCI (schéma Intel 82443BX platformy pro Pentium II) – nahoře dva procesory Pentium II jsou propojeny přes Host Bus s chipem 82443BX Host Bridge (Northbridge). Z Northbridge vedou tři větve: vlevo AGP 2× Bus pro grafickou kartu (Graphics Device) s lokální pamětí, přes VMI pro video a DVD; vpravo paměťový kontrolér pro Main Memory (SDRAM, 66/100 MHz, 3,3 V); dolů Primary PCI Bus (#0) se čtyřmi PCI sloty. Z PCI sběrnice pak vede most do druhého chipu 82371EB (PIIX4E) (Southbridge – PCI-to-ISA Bridge), který obstarává 2 IDE porty (Ultra DMA/33), 2 USB porty, ISA sběrnici s ISA sloty, systémový BIOS a System Management Bus (SM Bus).
Principy fungování PCI
PCI je synchronní sběrnice – veškeré přenosy jsou synchronizovány s hodinovým signálem. Základní frekvence je 33 MHz, volitelně 66 MHz. Sběrnice je sdílená (shared bus) – všechny PCI karty sdílejí stejné vodiče. O přístup ke sběrnici se rozhoduje pomocí arbitrace: každá karta má signál REQ# (request – žádám o přístup) a GNT# (grant – přístup udělen). Centrální arbitr (v chipsetu) rozhoduje, která karta dostane přístup v daný moment.
PCI podporuje Plug and Play – karty se automaticky konfigurují (přiřazení IRQ, I/O adres, paměťových adres). To byl obrovský pokrok oproti ISA, kde bylo nutné přiřazovat IRQ ručně přes DIP přepínače.
Konektory PCI – varianty 32bit a 64bit, 3,3 V a 5 V
PCI existuje ve více fyzických provedeních, přičemž klíčovým prvkem je poloha klíčovacího výřezu (key notch) v konektoru karty. Tento výřez mechanicky zabraňuje zasunutí karty nesprávného napětí do nesprávného slotu – jednoduchá, ale spolehlivá ochrana.
Varianty PCI karet a slotů – vlevo sloupec: 32bitové varianty. 3.3V 32-bit PCI Card: klíčovací výřez blízko bracketu (levého konce) – karta pracuje s 3,3 V logiku. 5V 32-bit PCI Card: výřez blízko zadního konce – karta pracuje s 5 V logiku. Universal 32-bit PCI Card: dva výřezy – karta přijímá obě napětí a funguje v jakémkoliv 32bitovém slotu. Vpravo sloupec: totéž pro 64bitové varianty. 64bitová karta je delší (přidaná sekce pro 32 dalších datových pinů). Dole schémata slotů: slot 5V má výřez na jiném místě než slot 3.3V, aby se karty nemíchaly.
Kompatibilita PCI karet a slotů – schéma ukazuje čtyři kombinace pro 32bitové (vlevo) a 64bitové (vpravo) verze. Karta s 5V rozhraním (výřez vpravo) zapadne pouze do 5V slotu (Konektor 5V, modrá šipka). Karta s 3,3V rozhraním (výřez vlevo) zapadne pouze do 3,3V slotu (Konektor 3.3V, červená šipka). Universální karta (oba výřezy) zapadne do obou typů slotů. Šipky vizualizují, co do čeho jde a co ne – mechanický klíč je tak jedinou pojistkou proti poškození napěťově nekompatibilní karty.
Reálná 64-bitová PCI karta (S-LINK) – fotografie plné délky karty zdola (kontaktní strana). Tři žluté popisky ukazují tři klíčové oblasti konektoru: vlevo „Klíč pro 3,3 voltové rozhraní“ (fyzický výřez zabraňující nesprávné instalaci), uprostřed „Oblast rozhraní 32 bitů“ (zlaté kontakty pro základní PCI přenos – 49 pinů na každé straně), vpravo „Oblast rozhraní 64 bitů“ (rozšíření s dalšími 32 datovými piny, celkem 81 pinů na každé straně). Tato konkrétní karta je vysoce výkonná průmyslová karta (S32PC164, APEX FPGA od Altera viditelný uprostřed) pro testovací systémy s přenosovými rychlostmi v řádu stovek MB/s.
PCI sloty na serverové základní desce – fotografie desky s více procesory (dva velké LGA sockety vpravo). Čtyři žluté popisky identifikují různé sloty: Klíč pro rozhraní 3,3 voltů (výřez v horní části nejbližšího slotu), Klíč pro rozhraní 5 voltů (výřez ve spodní části slotu napravo), Čtveřice slotů pro 32 bitové PCI karty (standardní délka, bílé sloty v horní části desky), Dvojice slotů pro 64 bitové PCI karty (výrazně delší sloty v dolní části – přesahují standardní délku o sekci pro dalších 32 datových bitů). Přítomnost 64bitových slotů signalizuje servery nebo workstations s SCSI nebo síťovými kartami vyžadujícími vysokou propustnost.
PCI-X – rozšíření PCI pro servery
PCI-X (PCI Extended, 1998) je zpětně kompatibilní rozšíření sběrnice PCI, vyvinuté primárně pro servery a pracovní stanice. Mechanicky jsou sloty PCI-X totožné s 64bitovými PCI sloty – PCI karty v PCI-X slotu fungují (v 32bitovém nebo 64bitovém módu), ale sběrnice automaticky přejde na nižší rychlost. Hlavní novinkou PCI-X bylo:
- Zvýšená frekvence: PCI-X 66 MHz, PCI-X 133 MHz, PCI-X 266 MHz, PCI-X 533 MHz
- Oddělení transakcí (Split Transactions): karta může zahájit požadavek a sběrnici uvolnit – výsledek si vyzvedne later, bez čekání na sběrnici
- Burst přenosy: delší transakce bez opakované arbitrace
Intel PCI-X gigabitová síťová karta (Intel PRO/1000 MT Server Adapter, D33025) – karta s RJ-45 konektorem vlevo a 64-bit PCI-X edge konektorem ve spodní části. Viditelné dva klíčovací výřezy (3,3V klíč a mezera oddělující 32bit a 64bit sekci). Osazen Intel RC82545GM Gigabit Ethernet chip (střed, velký černý čip) a AT93C46 EEPROM pro konfiguraci MAC adresy (pravý horní roh). Takováto karta vyžadovala PCI-X 133 MHz pro dosažení plného výkonu 1 Gbit/s linkové rychlosti s overhead rezervou.
Srovnávací tabulka PCI a PCI-X – šest variant sběrnice s jejich klíčovými parametry. PCI-33 (32 bit): 133 MB/s, 5 V nebo 3,3 V. PCI-66 (32 bit): 266 MB/s. PCI-X 66 (32 bit): 266 MB/s. PCI-X 133 (32 bit): 533–1 066 MB/s. PCI-X 266 (64 bit): až 2 133 MB/s. PCI-X 533 (64 bit): až 4 266 MB/s. Počet pinů roste od 49/81 na 36/50/82 dle verze. Napájení klesá od 5 V (starší) přes 3,3 V (PCI-X 66/133) až na 1,5 V (PCI-X 266/533).
Timeline vývoje sběrnic PCI → PCI-X → PCI Express (zdroj: PCI-SIG) – osa X je čas (1992–2002+), osa Y výkon. Přímka (modrá) reprezentuje Moore’s-law tempo zdvojení, přerušovaná čára je dosažená propustnost. PCI 1.0 (1992, Plug&Play) → PCI 2.0 (1993, Power Management) → PCI 2.1 (1994, 66 MHz 3.3V) → PCI 2.2 (1998, PCI Hot Plug 1.0, Mini PCI) → PCI 2.3+PCI-X 1.0b,2.0 (2002). Souběžně vývoj PCI-X 1.0 (2001, Hot Plug 1.1). Za PCI-X technologicky skočí PCI Express (elipsa vpravo nahoře) – nová architektura se sériovou sběrnicí, která výkonnostně dalece předčila paralení PCI.
5. AGP sběrnice – konektory, datové šířky, verze
AGP (Accelerated Graphics Port) zavedl Intel v roce 1996 jako dedikovanou vysokorychlostní sběrnici výhradně pro grafické karty. V době, kdy 3D hry začínaly být populární, nestačila sdílená sběrnice PCI (133 MB/s) pro přenos textur a geometrických dat mezi CPU/pamětí a GPU. AGP vyřešila tento problém tím, že oddělila grafiku od PCI sběrnice a vytvořila přímé point-to-point spojení mezi GPU a Northbridge.
AGP architektura a místo v systému (schéma VIA chipset platformy) – vlevo blokové schéma: CPU (Slot-1 nebo Socket-370) je připojen k VIA PC133 NB (Northbridge). Z Northbridge vede vlevo AGP port přímo do AGP Slot or 3D Graphics Controlleru s lokální video pamětí; grafická karta pak zprostředkovává výstup na Display i TV přes Encoder. Z Northbridge také vedou: PC133 paměťová linka do SDRAM (operační paměti) a PCI sběrnice dolů do Southbridge (VIA VT82C596B) pro USB, IDE, ISA a BIOS. AGP je tedy point-to-point – na rozdíl od PCI není sdílená s jinými kartami. Vpravo dole fotografie reálné AGP grafické karty s typickým hnědým/béžovým AGP konektorem a VGA výstupem vlevo.
AGP slot na základní desce – celková fotografie základní desky Gigabyte (zlatohnědé PCB). Červená šipka ukazuje přímo na AGP slot – tmavě hnědý, kratší konektor oddělený od sady bílých PCI slotů nalevo. Vizuálně je AGP slot lehce posunut výš (blíže k CPU socketu vpravo) a má jiné zbarvení než PCI. Zleva: tři bílé PCI sloty, pak AGP (hnědý, s červenou šipkou), pak hnědý chipset (Southbridge) a vpravo CPU socket LGA478. Dole jsou přístupné DIMM paměťové sloty a IDE/SATA konektory.
Verze AGP a přenosové rychlosti
AGP je unikátní tím, že sice vychází z fyzického rozhraní podobného PCI, ale operuje na frekvenci 66 MHz (dvojnásobek PCI 33 MHz) a používá tzv. multiplied mode: 1×, 2×, 4× nebo 8×. Číslo označuje, kolikrát za hodinový cyklus jsou data přenášena.
Co je DDR a QDR technika (přenos dat vícekrát za cyklus)?
Hodinový signál má dvě hrany – náběžnou (0→1) a sestupnou (1→0). SDR (Single Data Rate) přenáší data jen na jedné hraně – 1 přenos za cyklus. DDR (Double Data Rate) přenáší data na obou hranách – 2 přenosy za cyklus, tedy dvojnásobná propustnost bez zvýšení frekvence. QDR (Quad Data Rate) přenáší data 4× za cyklus pomocí dalšího triku. AGP 2× používá DDR, AGP 4× a 8× kombinují tyto techniky pro dosažení 4 nebo 8 přenosů za cyklus při stále stejných 66 MHz.
Verze AGP a jejich vzájemná kompatibilita – horní tabulka: AGP 1.0 podporuje 1× a 2× při 3,3 V. AGP 2.0 přidává 4× a volitelně snižuje na 1,5 V. AGP Pro je rozšíření pro workstations (více napájení). AGP 3.0 přidává 8× při 1,5 V (a 0,8 V pro 8× mód). Dolní tabulka: přenosové rychlosti – AGP 1× = 66 MHz × 32 bitů = 266 MB/s; AGP 2× = 533 MB/s (2× data za cyklus); AGP 4× = 1 066 MB/s; AGP 8× = 2 133 MB/s (8× data za cyklus při 66 MHz). Pro srovnání: PCI mělo jen 133 MB/s, takže AGP 8× je 16× rychlejší.
AGP konektory – schémata a reálné karty – vlevo šest schémat průřezu AGP konektoru karty (pohled zboku). Rozměry jsou v mm. AGP 3.3V: jediný výřez blíže k pravému konci (klíčuje pro 3,3V slot). AGP 1.5V: jediný výřez blíže k levému konci. AGP Universal: dva výřezy – funguje v obou typech slotů. AGP Pro Universal: delší konektor (2,92 mm vs. 8,89 mm výška) s dalšími napájení piny na levé straně. AGP Pro 3.3V a AGP Pro 1.5V: jako Pro Universal, ale klíčovány pro jedno napětí. Vpravo tři fotografie grafických karet: nahoře červená karta pro 1.5V Slot (AGP 4×/8×, typ po roce 2001), uprostřed šedá karta pro 3.3V Slot (AGP 1.0, starší typy), dole modrá karta s oběma klíči (3.3V a 1.5V) – AGP Universal grafická karta kompatibilní se staršími i novějšími sloty.
6. AMR, CNR a ACR sběrnice
Na přelomu tisíciletí (1998–2001) Intel zavedl sadu malých proprietárních slotů na základních deskách, jejichž účelem bylo poskytnout levné řešení pro modem a zvukové karty. Tyto sběrnice nejsou příliš důležité z hlediska výkonu, ale jsou součástí syllabu.
AMR/CNR sloty na základních deskách – vlevo základní deska MSI-6368 s červenou šipkou ukazující na malý AMR slot (Audio/Modem Riser) – výrazně kratší slot vedle standardních PCI slotů. AMR slot je tak malý, že by do něj AMR karta zapadla jen z jedné strany (opačně než PCI karty). Vpravo druhá základní deska Gigabyte s jiným layoutem – v pravé části desky je CNR slot (Communications and Networking Riser), také výrazně kratší než PCI. Červená šipka ukazuje přesnou pozici. Oba typy slotů byly záměrně malé – sloužily pouze pro jednoduchou kartu modemu nebo síťového adaptéru.
CNR karta a základní deska s CNR slotem – vlevo nahoře fotografie zvukové karty Hercules Game Theater XP s PCIe konektorem (jde o modernější kartu, ne AMR). Vpravo celá základní deska Gigabyte s červenou šipkou ukazující přesně na CNR slot v pravém horním rohu desky (mezi zadním panelem a prvním PCI slotem). Tato poloha je pro CNR typická – vždy vedle zadního panelu, protože karta CNR má výstupy přímo na zadním panelu skříně.
AMR – Audio/Modem Riser (1998)
Malý slot navržený Intelem pro „riser“ karty s analogovými obvody modemů nebo zvukových karet. Digitální zpracování signálu prováděl software (soft-modem, win-modem), analogová část byla na malé AMR kartičce. Výsledek: levná produkce, ale zatěžoval CPU a měl špatnou kvalitu zvuku. Fyzicky: 46 pinů, pracoval na sběrnici AC’97 (Audio Codec 97) nebo MC’97.
CNR – Communications and Networking Riser (2000)
Nástupce AMR. Přidal podporu pro LAN (10/100 Mbit Ethernet), USB hub a Home Phoneline Network. 60 pinů. Komunikoval s chipstem přes AC’97, MC’97 a USB 1.1. CNR měl lepší uchycení a výstupy směřovaly na zadní panel skříně (RJ-45, RJ-11, audio jacky). Byl podporován Intelem a jeho chipsety i100 a i800 série.
ACR – Advanced Communications Riser (2000)
Alternativa ke CNR vyvinutá koalicí AMD, 3Com, Lucent a dalších jako odpověď na Intel’s CNR. Fyzicky zpětně kompatibilní s AMR (stejný konektor), ale přidával více funkcí (DSL modem, LAN, 1394, USB 2.0). Neměl takový úspěch jako CNR, protože Intel ho nepodporoval ve svých chipsetech.
Všechny tři – AMR, CNR i ACR – zanikly kolem roku 2004–2006. Důvod byl jednoduchý: výrobci základních desek začali integrovat zvuk (HD Audio) a síťový adaptér přímo na základní desku bez nutnosti jakéhokoliv extra slotu. Dnes jsou tyto sběrnice historickou kuriozitou.
7. PCI Express – princip fungování, Lane, Link
PCI Express (zkratka PCIe, plný název Peripheral Component Interconnect Express) zavedla organizace PCI-SIG v roce 2004 jako nástupce PCI a AGP. Přestože si zachoval slovo „PCI” v názvu, jde o zcela odlišnou architekturu – sériovou, paketovou a s plně duplexní komunikací point-to-point.
Proč paralelní PCI nestačilo
S rostoucími nároky na přenosové rychlosti narazila paralelní architektura PCI na fyzikální limit: čím více paralelních vodičů na vyšší frekvenci, tím závažnější je vzájemné elektromagnetické rušení (crosstalk) a rozptyl zpoždění (skew) – různé vodiče mají nepatrně odlišné délky a elektrické vlastnosti, takže bity dorazí v mírně různých časech. Na 33 MHz to nebyl problém, na 133 MHz (PCI-X 533) byl, a na 1 GHz+ by byl naprosto neřešitelný. PCIe tento problém obešlo tak, že přešlo na sériový přenos – ale s diferenciálním signálováním na frekvencích GHz.
Lane (Linka) – základní stavební blok PCIe
Základem PCIe je lane (česky linka nebo pruh). Každá lane se skládá ze dvou diferenciálních párů vodičů:
- TX pár (transmit – vysílání): dva vodiče D+ a D− pro přenos dat od zařízení k základní desce
- RX pár (receive – příjem): dva vodiče D+ a D− pro přenos dat od základní desky k zařízení
Celkem 4 vodiče na jednu lane. Protože TX a RX jsou oddělené, může zařízení vysílat a přijímat současně (full-duplex). To je zásadní rozdíl od PCI, kde sběrnice mohla přenášet jen jedním směrem najednou (half-duplex).
PCIe Link a Lanes – vlevo fotografie PCIe karty (HDMI/DisplayPort adaptér) a pod ní srovnání fyzické délky slotů od nejdelšího po nejkratší: PCI-X (nejdelší – 64-bit paralelní), PCI-Express 16X (dlouhý – pro GPU), PCI (standardní délka), AGP (hnědý, středně dlouhý), PCI-Express 1X (nejkratší). Vpravo diagram „Links and Lanes“ ukazuje tři konfigurace: x1 Link (nahoře) = 1 lane = 1 diferenciální pár Send + 1 diferenciální pár Receive → 1 bit za cyklus; každá lane přes SWITCH na základní desce. x2 Link (uprostřed) = 2 lanes = 2 bity za cyklus. x12 Link (dole) = 12 lanes = 12 bitů za cyklus. Čím více lanes, tím vyšší propustnost – lineárně.
Link – spojení dvou zařízení
Link je kompletní spojení (point-to-point linka) mezi dvěma PCIe komponentami, složené z jedné nebo více lanes. Označuje se jako x1, x2, x4, x8, x16 nebo x32 (číslo = počet lanes v linku). Slot PCIe x16 (pro grafické karty) má 16 lanes = 32 diferenciálních párů = 64 fyzických vodičů jen pro data (plus napájení a ostatní signály).
Klíčový rozdíl: lane vs. link
Lane je základní fyzická jednotka (4 vodiče, full-duplex). Link je logické spojení složené z 1 nebo více lanes. Slot je fyzický konektor s daným počtem lanes. Karta x4 může fyzicky sedět ve slotu x16 (delším) a bude fungovat – nevyužije jen zbývající lanes (mechanická kompatibilita).
Vrstvy protokolu PCIe
Vrstvová architektura PCIe – diagram dvou zařízení (každé zobrazeno jako sada vrstev) komunikujících přes fyzické spojení (šipky dole). Obě strany mají identickou strukturu: Transaction Layer (transakční vrstva, nahoře) – vytváří a zpracovává pakety TLP (Transaction Layer Packets), řídí logiku požadavků a odezev. Data Link Layer (vrstva datového spoje, uprostřed) – zajišťuje spolehlivý přenos; přidává k TLP paketům číslo sekvence a CRC checksum (LCRC), potvrzuje přijetí nebo zajišťuje přenos znovu (ACK/NAK mechanismus). Physical Layer (fyzická vrstva, dole) – rozdělena na Logical Sub-block (kódování 8b/10b nebo 128b/130b, serializace/deserializace) a Electrical Sub-block (diferenciální signálování na fyzickém médiu, RX/TX piny).
Základy technologie PCIe – nahoře vlevo schéma paketové komunikace: Component A (vlevo) odesílá Packet (šipka nahoru vlevo) přes dvě paralelní linky k Component B (vpravo); Component B zároveň odesílá Packet zpět (šipka dole). Tím je ilustrován full-duplex provoz – obě strany vysílají i přijímají současně, nikdo nečeká. Vlevo dole: PCB layout diferenciálního páru – dvě souběžné stopy (černá a žlutá) přibližně stejné délky, navrhovány jako impedančně přizpůsobený pár (100Ω diferenciální impedance). Vpravo dole: osciloskopický záznam „Sample Data Pattern“ – průběhy D+ (plná čára) a D− (přerušovaná čára) v čase 0–4 ns. Viditelné, jak D+ a D− jsou navzájem invertované; přijímač odečte D− od D+ a dostane čistý signál.
Komunikace mezi zařízeními – topologie PCIe
Co je Root Complex?
Root Complex (kořenový komplex) je centrální uzel PCIe hierarchie – „kořen stromu“. Je to hardware integrovaný přímo do procesoru (nebo jeho nejbližšího okolí), který tvoří vstupní bod celé PCIe struktury. Root Complex obsahuje Memory Controller (přímý přístup do RAM), Host-to-PCI Bridge a generuje PCIe lanes. Vše, co je připojeno přes PCIe (GPU, NVMe SSD, síťová karta), je podřízeno Root Complex – jako pobočky stromu závisejí na kmeni.
Co je SLI a CrossFire?
SLI (Scalable Link Interface) je technologie od nVidia, která umožňuje zapojit dvě nebo více grafických karet nVidia do jednoho systému a spojit jejich výpočetní výkon pro vyšší herní výkon. CrossFire je totéž od AMD. Oba systémy vyžadují základní desku s více PCIe x16 sloty (nebo x8+x8) a speciální propojovací můstek (SLI Bridge) nebo softwarové propojení. Dnes jsou obě technologie prakticky obsoletní, protože moderní hry a API (DirectX 12, Vulkan) je nepodporují.
PCIe hierarchická topologie – nahoře CPU s Cache a Platform Memory připojeny přes HOST Bus Segment. Centrálním prvkem je Root Complex (kořenový komplex) – to je v moderních PC integrovaný přímo do procesoru nebo jeho nejbližšího okolí; obsahuje HOST/PCI Bridge, Virtual PCI Bus Segment a Memory Controller. Z Root Complex vychází Links (přímé point-to-point spoje) k PCI/PCI Bridgeům a dále: vlevo přímo k Endpointům (rcA, rcB – zařízení jako síťová karta, NVMe SSD) nebo k PCIEX/PCI Bridge (pro zpětnou kompatibilitu s klasickými PCI sběrnicemi). Vpravo přes Switche (oktagonální bloky) k dalším Endpoints. Architectural Model vlevo dole vysvětluje směry: Upstream Port (čtverec) = směr k Root Complex, Downstream Port (čtverec) = od Root Complex k periferiím, Upstream Flow (šipka nahoru) = data jdou k CPU, Downstream Flow (šipka dolů) = data jdou od CPU.
Základní deska s přechodovými sloty (PCIe + AGP + PCI) – fotografie přechodové desky ECS (fialové PCB) z éry ~2004–2005. Červené šipky a popisky identifikují čtyři typy slotů zdola nahoru: PCI (dva bílé standardní sloty dole) – zpětná kompatibilita. AGP (hnědý slot) – pro stávající AGP grafické karty. PCI-Express x1 (krátký slot, dva kusy) – pro PCIe x1 karty (zvuk, síť). PCI-Express x16 (červený, nejdelší) – pro nové PCIe grafické karty. Tato deska existovala v přechodovém období a umožnila uživatelům přejít na PCIe GPU, ale stále používat staré PCI a AGP karty.
PCIe sloty různých konfigurací – detail základní desky (černé PCB) se čtyřmi žlutými PCIe sloty a jedním bílým PCI slotem. Popis slotů shora dolů dle nadpisu: PCIe 4× (první, kratší žlutý), PCIe 16× (druhý, nejdelší žlutý), PCIe 1× (třetí, nejkratší žlutý), PCIe 16× (čtvrtý, opět dlouhý – pro SLI/CrossFire duální GPU), PCI (bílý, spodní). Jasně viditelný výrazný rozdíl v délce slotů – délka konektoru odpovídá počtu lanes a tedy šíři datové sběrnice. Slot PCIe x16 je bezmála čtyřikrát delší než PCIe x1.
8. Verze PCIe, kódování, přenosové rychlosti a chipset
PCI Express prošel od svého uvedení v roce 2003 (PCIe 1.0a) již pěti hlavními verzemi. Každá generace přibližně zdvojnásobuje propustnost per lane, a to zvýšením přenosové frekvence a vylepšením kódovacího schématu.
Kódování – proč ne čisté bity?
Data nelze přenášet jako surové bity bez kódování. Problém je synchronizace: pokud by se přenášelo dlouhé řetězce nul (00000000...), přijímač by ztratil synchronizaci hodinového signálu, protože hodinový signál je extrahován z hran signálu (transitions). Pokud není žádná hrana, nelze extrahovat hodiny.
Co je DC vyvážení (DC balance)?
DC vyvážení znamená, že v přenášeném datovém toku je přibližně stejný počet logických 1 a logických 0. Proč na tom záleží? Pokud by bylo mnohem více jedniček než nul, průměrné napětí na lince by se odchýlilo od středové hodnoty – to způsobuje problémy s přenosovými transformátory a kondenzátory, které se v signálové cestě vyskytují a jsou navrženy pro nulové stejnosměrné (DC) napětí. 8b/10b kódování garantuje DC vyvážení výběrem vhodných 10-bitových symbolů pro každý 8-bitový byte.
Co je GT/s (Gigatransfer za sekundu)?
GT/s (Giga-transfers per second) udává počet přenosových operací na lince za sekundu – fyzickou rychlost signálu na drátech. Není to totéž co GB/s (gigabajtů za sekundu), protože každý „transfer“ nepřenáší plný bajt dat – část bitů jsou kódovací režijní bity (u 8b/10b 20 %, u 128b/130b 1,5 %). Například PCIe 3.0 přenáší 8 GT/s, ale po odečtení 128b/130b režie je skutečná datová propustnost per lane přibližně 985 MB/s ≈ 1 GB/s.
8b/10b kódování (PCIe 1.x a 2.x)
Každých 8 bitů dat se zakóduje do 10 bitů přenosového symbolu. Výhoda: zaručené minimum přechodů signálu a DC vyvážení. Nevýhoda: 2 bity z 10 jsou „režie“ – efektivita přenosu je jen 80 %. PCIe 1.x má linku frekvenci 2,5 GT/s, ale skutečná propustnost per lane = 2,5 × 0,8 = 250 MB/s (jedním směrem).
128b/130b kódování (PCIe 3.x+)
Výrazně efektivnější: 128 datových bitů + 2 bity synchronizace = 130 bitů. Efektivita 128/130 ≈ 98,5 %. Tím lze při stejné frekvenci linek přenést skoro 2× více dat než s 8b/10b. PCIe 3.0 má linku 8 GT/s × (128/130) = ~985 MB/s ≈ 1 GB/s per lane jedním směrem.
Vývoj propustnosti sběrnic 1992–2022 – graf s osou X (čas) a osou Y (bandwidth v GB/s pro x16 link). Přerušovaná modrá čára „I/O Bandwidth Doubles Every Three Years“ ukazuje požadovaný trend (zdvojení každé 3 roky). Skutečná dosažená bandwidth (plná čára) kopíruje tento trend. Milníky: PCI (1992): 0,13 GB/s; PCI 2.0 (1995): 0,53 GB/s; PCI-X (1998): 1,06 GB/s; PCI-X 2.0 (2001): 2,13 GB/s; PCIe 1.0 (2004, x16): 8 GB/s; PCIe 2.0 (2007): 16 GB/s; PCIe 3.0 (2010): 32 GB/s; PCIe 4.0 (2016): 64 GB/s; PCIe 5.0 (2019): 128 GB/s. Pravý okraj grafu ukazuje tyto hodnoty i pro jednodušší linky (x1): 0,13 až 4 GB/s. Jasně viditelné exponenciální zrychlování.
| Verze PCIe | Frekvence přenosu | Kódování | Per lane (jeden směr) | x16 (jeden směr) | Rok |
| PCIe 1.0 | 2,5 GT/s | 8b/10b (80%) | 250 MB/s | 4 GB/s | 2003 |
| PCIe 2.0 | 5,0 GT/s | 8b/10b (80%) | 500 MB/s | 8 GB/s | 2007 |
| PCIe 3.0 | 8,0 GT/s | 128b/130b (98,5%) | ~985 MB/s | ~16 GB/s | 2010 |
| PCIe 4.0 | 16,0 GT/s | 128b/130b (98,5%) | ~2 GB/s | ~32 GB/s | 2017 |
| PCIe 5.0 | 32,0 GT/s | 128b/130b (98,5%) | ~4 GB/s | ~64 GB/s | 2019 |
| PCIe 6.0 | 64,0 GT/s | PAM4 + FEC (viz níže) | ~8 GB/s | ~128 GB/s | 2022 |
Co je PAM4 a FEC (PCIe 6.0)?
PAM4 (Pulse Amplitude Modulation 4-level) je zcela nová technika modulace signálu. Dosavadní PCIe (1–5) používalo NRZ (Non-Return-to-Zero) – signál je buď vysoký (1) nebo nízký (0), tedy 2 úrovně napětí = 1 bit na symbol. PAM4 používá 4 různé úrovně napětí (00, 01, 10, 11) – každý symbol přenese 2 bity najednou. Při stejné fyzické frekvenci linek tedy přenese 2× více dat než NRZ. Nevýhoda: signál je hůře rozpoznatelný (4 úrovně jsou si blíže), takže chybovost stoupá.
FEC (Forward Error Correction – dopředná korekce chyb) je proto nutná: přidávají se redundantní kontrolní bity, díky kterým přijímač dokáže sám detekovat a opravit chyby vzniklé v přenosu, bez nutnosti opakování dat. Je to podobné, jako když pošleme zprávu třikrát a přijímač vezme většinový výsledek.
Kompatibilita verzí PCIe
PCIe je zpětně i dopředně kompatibilní – karty a sloty různých verzí spolu fungují, jen se dohodnou na nižší rychlosti. Karta PCIe 4.0 v slotu PCIe 3.0 bude fungovat na rychlosti PCIe 3.0. Karta PCIe 1.0 v slotu PCIe 5.0 bude fungovat na rychlosti PCIe 1.0. Tato kompatibilita je garantována standardem.
Souvislost PCIe s chipsetem
Intel Z87 Chipset (pro Haswell, 4. generace Core) – CPU vlevo nahoře obsahuje integrovanou Processor Graphics a přímo řídí PCIe 3.0 linky pro GPU: buď 1×16 lanes, nebo 2×8 lanes, nebo 1×8+2×4 lanes. CPU komunikuje s chipsetem Z87 přes DMI 2.0 (Digital Media Interface, 5 Gb/s). Chipset Z87 pak obstarává: up to 8× PCIe 2.0 x1 linky pro rozšiřující karty, up to 6× USB 3.0, 14× USB 2.0, 6× SATA 6Gb/s s eSATA a RAID, Intel HD Audio, Gigabit LAN (10/100/1000 MAC), Intel ME 9.0 Firmware, Intel Extreme Tuning Utility Support (přetaktování), Intel Rapid Storage Technology (RAID), Smart Connect a Rapid Start Technology.
Intel X99 Chipset (pro Core i7 Extreme, HEDT platforma, LGA2011-v3) – CPU Intel Core i7 na LGA2011-v3 přímo poskytuje 40 PCIe 3.0 lanes pro GPU (konfigurace 2×16, 1×8+1×8, nebo 5×8). To je výrazně více než mainstream (kde CPU dává jen 16 lanes). CPU je připojen ke čtyřem kanálům DDR4 (Up to 2133 MHz) a komunikuje s chipsetem X99 přes DMI 2.0 x4 (4× DMI linky). Chipset X99 obstarává: 8× PCIe 2.0 linky pro méně výkonné karty, 14× USB (6× USB 3.0 + 8× USB 2.0), 10× SATA 3.0 portů, Gigabit LAN, Intel Rapid Storage Technology 13.1 a Intel Extreme Tuning Utility.
Klíčová role chipsetu v PCIe architektuře
Moderní procesory obsahují vlastní PCIe lanes pro přímé připojení GPU (u Intel 16 lanes PCIe 3.0/4.0, u AMD Ryzen 24 lanes PCIe 4.0/5.0). Tyto primerní lanes nabízejí nejnižší latenci a nejvyšší propustnost. Chipset (PCH) pak přidává další lanes – typicky PCIe 3.0 nebo 4.0 linky přes DMI spojení s CPU. Sloty a M.2 patice na základní desce jsou přiřazeny buď přímo CPU lanes (pro GPU a NVMe SSD) nebo chipset lanes (pro ostatní PCIe karty, SATA, USB). Proto záleží, do kterého slotu grafickou kartu nebo NVMe SSD zasadíte – ne všechny sloty jsou stejně výkonné.