Propojení periferních komponent - Peripheral Component Interconnect

PCI
Místní sběrnice PCI
Sloty PCI Digon3.JPG
Tři 5voltové 32bitové rozšiřující sloty PCI na základní desce (držák počítače na levé straně)
Rok vytvořen 22. června 1992 ; Před 29 lety ( 1992-06-22 )
Vytvořil Intel
Nahrazuje ISA , EISA , MCA , VLB
Nahrazen PCI Express (2004)
Šířka v bitech 32 nebo 64
Rychlost Half-duplex :
133  MB /s (32bitový při 33 MHz-standardní konfigurace)
266 MB/s (32bitový při 66 MHz)
266 MB/s (64bitový při 33 MHz)
533 MB/s (64 -bit na 66 MHz)
Styl Paralelní
Rozhraní za provozu Volitelný
webová stránka www .pcisig .com /domov

Peripheral Component Interconnect ( PCI ) je místní počítačová sběrnice pro připojení hardwarových zařízení k počítači a je součástí standardu PCI Local Bus. Sběrnice PCI podporuje funkce nalezené na sběrnici procesoru, ale ve standardizovaném formátu, který je nezávislý na nativní sběrnici daného procesoru . Zařízení připojená ke sběrnici PCI se zdají masteru sběrnice připojena přímo k její vlastní sběrnici a jsou jim přiřazeny adresy v adresním prostoru procesoru . Je to paralelní sběrnice, synchronní s hodinami jedné sběrnice . Připojená zařízení mohou mít buď podobu integrovaného obvodu osazeného na základní desce ( ve specifikaci PCI nazývaného planární zařízení ), nebo rozšiřující karty, která se vejde do slotu. Místní sběrnice PCI byla poprvé implementována v kompatibilních počítačích IBM PC , kde jako konfigurace sběrnice vytlačila kombinaci několika pomalých slotů ISA ( Industry Standard Architecture ) a jednoho rychlého slotu VESA Local Bus (VLB). Následně byl přijat pro jiné typy počítačů. Mezi typické karty PCI používané v počítačích patří: síťové karty , zvukové karty , modemy , přídavné porty, jako je Universal Serial Bus ( USB ) nebo sériové , karty televizního tuneru a adaptéry hostitele jednotky pevného disku . Grafické karty PCI nahradily karty ISA a VLB, dokud rostoucí potřeby šířky pásma nepřekonaly schopnosti PCI. Preferovaným rozhraním pro grafické karty se pak stal Accelerated Graphics Port (AGP), nadmnožina PCI, než ustoupila PCI Express.

První verze PCI nalezená v maloobchodních stolních počítačích byla 32bitová sběrnice využívající hodiny sběrnice 33  MHz a signalizaci 5 V, ačkoli standard PCI 1.0 poskytoval i 64bitovou variantu. Ty mají na kartě jeden lokalizační zářez. Verze 2.0 standardu PCI představila 3,3 V sloty, fyzicky se liší překlopeným fyzickým konektorem, aby se zabránilo náhodnému vložení 5 V karet. Univerzální karty, které mohou pracovat na libovolném napětí, mají dva zářezy. Verze 2.1 standardu PCI představila volitelný provoz 66 MHz. Serverově orientovaná varianta PCI, PCI Extended ( PCI-X ) fungovala na frekvencích až 133 MHz pro PCI-X 1.0 a až 533 MHz pro PCI-X 2.0. Ve verzi 2.2 specifikace PCI byl představen interní konektor pro přenosné karty s názvem Mini PCI . Sběrnice PCI byla přijata také pro standardní konektor externího notebooku - CardBus . První specifikaci PCI vyvinula společnost Intel , ale za následný vývoj standardu byla zodpovědná skupina PCI Special Interest Group ( PCI-SIG ).

PCI a PCI-X se někdy označují buď jako paralelní PCI nebo konvenční PCI, aby se odlišily technologicky od jejich novějšího nástupce PCI Express , který přijal sériovou architekturu založenou na pruzích. Rozkvět PCI na trhu stolních počítačů byl přibližně 1995 až 2005. PCI a PCI-X pro většinu účelů zastaraly; v roce 2020 jsou však na moderních počítačích stále běžné pro účely zpětné kompatibility a nízkých relativních nákladů na výrobu. Další běžná moderní aplikace paralelního PCI je v průmyslových počítačích , kde mnoho specializovaných rozšiřujících karet, používaných zde, nikdy nepřešlo na PCI Express, stejně jako u některých karet ISA. Mnoho druhů zařízení, která byla dříve k dispozici na rozšiřujících kartách PCI, je nyní běžně integrována na základní desky nebo je k dispozici ve verzích USB a PCI Express.

Dějiny

Typická 32bitová karta PCI pouze 5 V, v tomto případě adaptér SCSI od společnosti Adaptec
Základní deska se dvěma 32bitovými sloty PCI a dvěma velikostmi slotů PCI Express

Práce na PCI začaly v Intel Architecture Labs (IAL, také Architecture Development Lab) c.  1990 . Tým primárně inženýrů IAL definoval architekturu a vyvinul důkaz konceptu čipové sady a platformy (Saturn), který spolupracuje s týmy ve firemních systémech stolních počítačů a základních logických produktových organizacích.

PCI bylo okamžitě použito na serverech a nahradilo architekturu Micro Channel Architecture (MCA) a Extended Industry Standard Architecture (EISA) jako zvolenou sběrnici rozšiřujících serverů. V běžných počítačích byl PCI pomalejší, aby nahradil VLB , a nezískal významnou penetraci na trhu až do konce roku 1994 v počítačích Pentium druhé generace . V roce 1996 VLB téměř vyhynul a výrobci přijali PCI i pro počítače Intel 80486 (486). EISA se i nadále používala společně s PCI až do roku 2000. Společnost Apple Computer přijala PCI pro profesionální počítače Power Macintosh (nahrazující NuBus ) v polovině roku 1995 a spotřebitelskou produktovou řadu Performa (nahrazující přímý slot LC Processor Direct Slot (PDS)) v polovině roku 1996.

Mimo trh serverů zůstala 64bitová verze obyčejného PCI v praxi vzácná, přestože ji používaly například všechny počítače (post-iMac) G3 a G4 Power Macintosh .

Pozdější revize PCI přidaly nové funkce a vylepšení výkonu, včetně 66  MHz 3,3  V standardu a 133 MHz PCI-X a přizpůsobení PCI signalizace jiným formám. PCI-X 1.0b i PCI-X 2.0 jsou zpětně kompatibilní s některými standardy PCI. Tyto revize byly použity na serverovém hardwaru, ale spotřební hardware PC zůstal téměř celý 32bitový, 33 MHz a 5 voltový.

PCI-SIG představil sériový PCI Express v c.  2004 . Od té doby výrobci základních desek postupně přidávají méně slotů PCI ve prospěch nového standardu. Ke konci roku 2013 mnoho nových základních desek vůbec neposkytuje sloty PCI.

Historie PCI
Spec Rok Shrnutí změn
PCI 1.0 1992 Původní vydání
PCI 2.0 1993 Integrovaný konektor a specifikace přídavné karty
PCI 2.1 1995 Začleněna objasnění a přidána kapitola 66 MHz
PCI 2.2 1998 Začleněné ECN a zlepšená čitelnost
PCI 2.3 2002 Začleněné ECN, errata a odstraněné 5voltové klíčové doplňkové karty
PCI 3.0 2004 Odebrána podpora pro 5,0voltový klíčovaný konektor základní desky

Automatická konfigurace

PCI poskytuje samostatnou paměť a paměťové mapované I/O porty adresních prostorů pro rodinu procesorů x86 , 64 a 32 bitů . Adresy v těchto adresních prostorech jsou přiřazeny softwarem. Třetí adresní prostor, nazývaný PCI konfigurační prostor , který používá schéma pevného adresování, umožňuje softwaru určit velikost paměti a adresní prostor I/O potřebný pro každé zařízení. Každé zařízení může prostřednictvím registrů konfiguračního prostoru požadovat až šest oblastí paměťového prostoru nebo prostoru portů vstupu/výstupu (I/O).

V typickém systému se firmware (nebo operační systém ) dotazuje na všechny sběrnice PCI při spuštění (prostřednictvím konfiguračního prostoru PCI ), aby zjistil, jaká zařízení jsou přítomna a jaké systémové prostředky (paměťový prostor, prostor I/O, přerušovací linky atd.) ) každý potřebuje. Poté přidělí zdroje a každému zařízení řekne, jaké je jeho přidělení.

Konfigurační prostor PCI také obsahuje malé množství informací o typu zařízení, což pomáhá operačnímu systému vybrat pro něj ovladače zařízení nebo alespoň vést dialog s uživatelem o konfiguraci systému.

Zařízení mohou mít vestavěnou paměť jen pro čtení (ROM) obsahující spustitelný kód pro procesory x86 nebo PA-RISC , ovladač otevřeného firmwaru nebo volitelnou ROM . Ty jsou obvykle potřebné pro zařízení používaná během spouštění systému, než jsou ovladače zařízení načteny operačním systémem.

Kromě toho existují časovače latence PCI, které jsou mechanismem pro zařízení PCI Bus-Mastering ke spravedlivému sdílení sběrnice PCI. „Spravedlivý“ v tomto případě znamená, že zařízení nebudou využívat tak velkou část dostupné šířky pásma sběrnice PCI, že jiná zařízení nebudou schopna provést potřebnou práci. Toto neplatí pro PCI Express.

Funguje to tak, že každé zařízení PCI, které může pracovat v režimu master sběrnice, vyžaduje implementaci časovače, nazývaného časovač latence, který omezuje čas, kdy toto zařízení může držet sběrnici PCI. Časovač se spustí, když zařízení získá vlastnictví sběrnice, a odpočítává se rychlostí hodin PCI. Když čítač dosáhne nuly, je nutné zařízení uvolnit sběrnici. Pokud na vlastnictví sběrnice nečekají žádná jiná zařízení, může jednoduše sběrnici znovu chytit a přenést více dat.

Přerušení

Zařízení musí dodržovat protokol, aby bylo možné sdílet linky přerušení . Sběrnice PCI obsahuje čtyři přerušovací linky, z nichž všechny jsou k dispozici pro každé zařízení. Nejsou však zapojeny paralelně jako ostatní sběrnice PCI. Polohy linek přerušení se otáčejí mezi sloty, takže to, co se jednomu zařízení jeví jako řádek INTA#, je INTB# pro další a INTC# pro následující. Jednofunkční zařízení používají svůj INTA# pro signalizaci přerušení, takže zatížení zařízení je rozloženo poměrně rovnoměrně na čtyři dostupné přerušovací linky. To zmírňuje běžný problém se sdílením přerušení.

Mapování linek přerušení PCI na linky přerušení systému prostřednictvím hostitelského můstku PCI závisí na implementaci. Kód BIOS (Basic Input/Output System ) specifický pro platformu to má vědět a nastavit pole „linka přerušení“ v konfiguračním prostoru každého zařízení, které udává, ke kterému IRQ je připojeno.

Linky přerušení PCI jsou spouštěny na úrovni . Toto bylo zvoleno před hranou spouštění, aby se získala výhoda při obsluze linky sdíleného přerušení, a kvůli robustnosti: přerušení spouštěná hranou lze snadno přehlédnout.

Pozdější revize specifikace PCI přidávají podporu pro přerušení signalizovaná zprávou . V tomto systému zařízení signalizuje svou potřebu služby provedením zápisu do paměti, nikoli prosazováním vyhrazené linky. To zmírňuje problém nedostatku přerušovacích linek. I když jsou vektory přerušení stále sdíleny, netrpí problémy se sdílením přerušení spouštěných úrovní. Řeší také problém se směrováním, protože zápis do paměti není nepředvídatelně upravován mezi zařízením a hostitelem. Nakonec, protože signalizace zprávy je v pásmu , řeší některé problémy se synchronizací, ke kterým může dojít u účtovaných záznamů a linek přerušení mimo pásmo .

PCI Express vůbec nemá linky fyzického přerušení. Používá výhradně přerušení signalizovaná zprávou.

Konvenční specifikace hardwaru

Diagram znázorňující různé pozice klíčů pro 32bitové a 64bitové karty PCI

Tyto specifikace představují nejběžnější verzi PCI používanou v běžných počítačích:

  • Takt 33,33 MHz se synchronními přenosy
  • Špičková přenosová rychlost 133  MB /s (133 megabajtů za sekundu) pro šířku 32bitové sběrnice (33,33 MHz × 32 bitů ÷ 8 bitů/byte = 133 MB/s)
  • Šířka sběrnice 32 bitů
  • Adresní prostor 32 nebo 64bitové paměti (4  GiB nebo 16  EiB )
  • 32bitový prostor I/O portů
  • 256- byte (na zařízení) konfigurace prostor
  • 5voltová signalizace
  • Přepínání v odražené vlně

Specifikace PCI také poskytuje možnosti pro signalizaci 3,3 V, šířku 64bitové sběrnice a taktování 66 MHz, ale ty se běžně mimo podporu PCI-X na základních deskách serveru běžně nevyskytují.

Rozhodčí sběrnice PCI provádí arbitráž sběrnice mezi více předlohami na sběrnici PCI. Na sběrnici PCI může být umístěn libovolný počet hlavních sběrnic a také požadavky na sběrnici. Pro každý master sběrnice je vyhrazen jeden pár signálů požadavku a povolení.

Napětí karty a klíčování

Gigabitová rozšiřující karta PCI-X Gigabit Ethernet s podporovacími zářezy 5 V a 3,3 V, strana B směrem ke kameře

Typické karty PCI mají jeden nebo dva klíčové zářezy v závislosti na jejich signalizačním napětí. Karty vyžadující 3,3 voltů mají zářez 56,21 mm od zadní desky karty; ty vyžadující 5 voltů mají zářez 104,47 mm od zadní desky. To umožňuje instalaci karet pouze do slotů s napětím, které podporují. „Univerzální karty“ přijímající jakékoli napětí mají oba klíčové zářezy.

Pinout konektoru

Konektor PCI je definován jako 62 kontaktů na každé straně okrajového konektoru , ale dva nebo čtyři z nich jsou nahrazeny zářezy na klíče, takže karta má 60 nebo 58 kontaktů na každé straně. Strana A označuje „stranu pájení“ a strana B označuje „stranu součásti“: pokud je karta držena konektorem směřujícím dolů, pohled na stranu A bude mít zadní desku vpravo, zatímco pohled na stranu B bude mít zadní desku vlevo. Vývody na stranách B a A jsou následující, při pohledu dolů do konektoru základní desky (kolíky A1 a B1 jsou nejblíže zadní desce).

Pinout 32bitového konektoru PCI
Kolík Strana B Strana A. Komentáře
1 −12 V TRST# Kolíky portů JTAG (volitelně)
2 TCK +12 V.
3 Přízemní TMS
4 TDO TDI
5 +5 V. +5 V.
6 +5 V. INTA# Přerušovací vedení (otevřený odtok)
7 INTB# INTC#
8 INTD# +5 V.
9 PRSNT1# Rezervováno Nízko zataženo pro indikaci požadovaného výkonu 7,5 nebo 25 W.
10 Rezervováno IOPWR +5 V nebo +3,3 V
11 PRSNT2# Rezervováno Nízko zataženo pro indikaci požadovaného výkonu 7,5 nebo 15 W.
12 Přízemní Přízemní Klíčový zářez pro karty s podporou 3,3 V.
13 Přízemní Přízemní
14 Rezervováno 3,3 V pomoc Pohotovostní režim (volitelně)
15 Přízemní RST# Reset autobusu
16 CLK IOPWR Takt 33/66 MHz
17 Přízemní GNT# Bus grant ze základní desky na kartu
18 REQ# Přízemní Žádost o sběrnici z karty na základní desku
19 IOPWR PME# Událost správy napájení (volitelně) 3,3 V, otevřený odtok, aktivní nízká.
20 Inzerát [31] Inzerát [30] Sběrnice adres/dat (horní polovina)
21 Inzerát [29] +3,3 V
22 Přízemní Inzerát [28]
23 Inzerát [27] Inzerát [26]
24 Inzerát [25] Přízemní
25 +3,3 V Inzerát [24]
26 C/BE [3]# IDSEL
27 Inzerát [23] +3,3 V
28 Přízemní Inzerát [22]
29 Inzerát [21] Inzerát [20]
30 Inzerát [19] Přízemní
31 +3,3 V Inzerát [18]
32 Inzerát [17] Inzerát [16]
33 C/BE [2]# +3,3 V
34 Přízemní RÁM# Probíhá přesun autobusu
35 IRDY# Přízemní Iniciátor připraven
36 +3,3 V TRDY# Cíl připraven
37 DEVSEL# Přízemní Cíl vybrán
38 PCIXCAP Přízemní STOP# Podpora PCI-X ; Cílové žádosti se zastaví
39 ZÁMEK# +3,3 V Uzamčená transakce
40 PERR# SMBCLK SDONE Chyba parity; Hodiny SMBus nebo Snoop hotovo (zastaralé)
41 +3,3 V SMBDAT SBO# SMBus data nebo Snoop backoff (zastaralé)
42 SERR# Přízemní Chyba systému
43 +3,3 V PAR Rovnoměrná parita nad AD [31:00] a C/BE [3: 0]#
44 C/BE [1]# Inzerát [15] Sběrnice adres/dat (vyšší polovina)
45 Inzerát [14] +3,3 V
46 Přízemní Inzerát [13]
47 Inzerát [12] Inzerát [11]
48 Inzerát [10] Přízemní
49 M66EN Přízemní REKLAMA [09]
50 Přízemní Přízemní Klíčový zářez pro 5 karet s podporou V.
51 Přízemní Přízemní
52 Inzerát [08] C/BE [0]# Sběrnice adres/dat (spodní polovina)
53 Inzerát [07] +3,3 V
54 +3,3 V REKLAMA [06]
55 Inzerát [05] REKLAMA [04]
56 REKLAMA [03] Přízemní
57 Přízemní REKLAMA [02]
58 REKLAMA [01] REKLAMA [00]
59 IOPWR IOPWR
60 ACK64# REQ64# Pro 64bitové rozšíření; žádné připojení pro 32bitová zařízení.
61 +5 V. +5 V.
62 +5 V. +5 V.

64bitový PCI to rozšiřuje o dalších 32 kontaktů na každé straně, které poskytují AD [63:32], C/BE [7: 4]#, paritní signál PAR64 a řadu napájecích a uzemňovacích pinů.

Legenda
Zemnící kolík Reference nulového napětí
Napájecí kolík Dodává energii na kartu PCI
Výstupní pin Poháněno kartou PCI, přijatou základní deskou
Výstup iniciátoru Řízeno hlavním/iniciátorem, přijatým cílem
I/O signál V závislosti na operaci může být poháněn iniciátorem nebo cílem
Cílový výstup Poháněn cílem, přijat iniciátorem/mistrem
Vstup Poháněno základní deskou, přijímané kartou PCI
Otevřený odtok Může být stažen nízko a/nebo snímán více kartami
Rezervováno V současné době nepoužíváme, nepřipojujte

Většina linek je připojena ke každému slotu paralelně. Výjimkou jsou:

  • Každý slot má svůj vlastní výstup REQ# na a GNT# vstup z arbitru základní desky.
  • Každý slot má svou vlastní linku IDSEL, obvykle připojenou ke konkrétní lince AD.
  • TDO je řetězově připojeno k TDI následujícího slotu. Karty bez podpory JTAG musí připojit TDI k TDO, aby nedošlo k přetržení řetězu.
  • PRSNT1# a PRSNT2# pro každý slot mají na základní desce své vlastní výsuvné odpory. Základní deska může (ale nemusí) snímat tyto piny, aby určila přítomnost karet PCI a jejich požadavky na napájení.
  • REQ64# a ACK64# jsou jednotlivě vytaženy pouze na 32bitových slotech.
  • Přerušovací linky INTA# až INTD# jsou připojeny ke všem slotům v různých pořadích. (INTA# na jednom slotu je INTB# na dalším a INTC# na dalším.)

Poznámky:

  • IOPWR je +3,3 V nebo +5 V, v závislosti na základní desce. Sloty mají také hřeben na jednom ze dvou míst, který brání vložení karet, které nemají odpovídající zářez klíče, což indikuje podporu pro tento napěťový standard. Univerzální karty mají jak klíčové zářezy, tak používají IOPWR k určení úrovně I/O signálu.
  • PCI SIG důrazně podporuje signalizaci 3,3 V PCI, což vyžaduje podporu od standardní revize 2.3, ale většina základních desek pro počítače používá variantu 5 V. Přestože mnoho aktuálně dostupných karet PCI podporuje obojí a má dva klíčové zářezy, které to naznačují, na trhu je stále velké množství 5 karet pouze pro V.
  • Pin M66EN je dalším uzemněním na sběrnicích 5 V PCI, které se nacházejí ve většině základních desek PC. Tento pin také uzemňují karty a základní desky, které nepodporují provoz 66 MHz. Pokud všichni účastníci podporují provoz 66 MHz, pull-up odpor na základní desce zvyšuje tento signál vysoko a je povolen provoz 66 MHz. Kolík je stále spojen se zemí přes vazební kondenzátory na každé kartě, aby byla zachována funkce AC stínění.
  • Pin PCIXCAP je dalším uzemněním sběrnic a karet PCI. Pokud všechny karty a základní deska podporují protokol PCI-X , vytahovací odpor na základní desce zvyšuje tento signál vysoko a je povolena operace PCI-X. Kolík je stále spojen se zemí přes vazební kondenzátory na každé kartě, aby byla zachována funkce AC stínění.
  • Minimálně jeden z PRSNT1# a PRSNT2# musí být uzemněn kartou. Zvolená kombinace udává celkové požadavky na výkon karty (25 W, 15 W nebo 7,5 W).
  • SBO# a SDONE jsou signály z řadiče mezipaměti k aktuálnímu cíli. Nejsou to výstupy iniciátoru, ale jsou takto vybarveny, protože jsou cílovými vstupy.
  • PME# ( 19 A ) - Událost správy napájení (volitelně), která je podporována ve verzi PCI 2.2 a vyšší. Jedná se o 3,3 V , otevřený odtok , aktivní nízký signál. Karty PCI mohou tento signál používat k přímému odesílání a přijímání PME přes zásuvku PCI, což eliminuje potřebu speciálního kabelu Wake-on-LAN .

Míchání 32bitových a 64bitových karet PCI v různých šířkách slotů

Částečně zasunutá karta PCI-X ve 32bitovém slotu PCI, která ukazuje, že je třeba, aby zářez byl zcela vpravo a aby na základní desce zůstal prostor zpětně kompatibilní
64bitová karta SCSI pracující ve 32bitovém slotu PCI

Většina 32bitových karet PCI bude správně fungovat v 64bitových slotech PCI-X, ale taktovací frekvence sběrnice bude omezena na taktovací frekvenci nejpomalejší karty, což je inherentní omezení topologie sdílené sběrnice PCI. Když je například do sběrnice PCI-X s frekvencí 133 MHz nainstalována periferie PCI 2,3, 66 MHz, bude celá základní deska sběrnice omezena na 66 MHz. Aby bylo možné toto omezení obejít, mnoho základních desek má dvě nebo více sběrnic PCI/PCI-X, přičemž jedna sběrnice je určena pro použití s ​​vysokorychlostními periferními zařízeními PCI-X a druhá sběrnice je určena pro periferie pro obecné účely.

Mnoho 64bitových karet PCI-X je navrženo tak, aby fungovaly v 32bitovém režimu, pokud jsou vloženy do kratších 32bitových konektorů, s určitou ztrátou výkonu. Příkladem toho je 64bitová karta rozhraní SCSI Adaptec 29160 . Některé 64bitové karty PCI-X však ve standardních 32bitových slotech PCI nefungují.

Instalace 64bitové karty PCI-X do 32bitového slotu ponechá 64bitovou část konektoru na okraji karty nepřipojenou a převislou. To vyžaduje, aby nebyly žádné součásti základní desky umístěny tak, aby mechanicky blokovaly převislou část konektoru na okraji karty.

Fyzické rozměry

Výška držáků PCI:

  • Standardní: 120,02 mm;
  • Nízký profil: 79,20 mm.

Délky karet PCI (standardní držák a 3,3 V):

  • Krátká karta: 169,52 mm;
  • Dlouhá karta: 313,78 mm.

Délky karet PCI (držák s nízkým profilem a 3,3 V):

  • MD1: 121,79 mm;
  • MD2: 169,52 mm;
  • MD3: 243,18 mm.

Mini PCI

Slot Mini PCI
Mini PCI Wi-Fi karta typu IIIB
Převodník PCI-to-MiniPCI typu III
Porovnání karet MiniPCI a MiniPCI Express

Mini PCI byl přidán do PCI verze 2.2 pro použití v přenosných počítačích ; používá 32bitovou sběrnici 33 MHz s napájenými připojeními (pouze 3,3 V; 5 V je omezeno na 100 mA) a podporou pro mastering sběrnice a DMA . Standardní velikost pro karty Mini PCI je přibližně čtvrtina jejich protějšků v plné velikosti. Na rozdíl od stolních karet PCI s držáky nesoucími konektory není přístup ke kartě zvenčí. To omezuje druhy funkcí, které může karta Mini PCI provádět.

Bylo vyvinuto mnoho zařízení Mini PCI, jako je Wi-Fi , Fast Ethernet , Bluetooth , modemy (často Winmodemy ), zvukové karty , kryptografické akcelerátory , SCSI , IDE - ATA , řadiče SATA a kombinované karty. Karty Mini PCI lze používat s běžným hardwarem vybaveným PCI pomocí převaděčů Mini PCI-to-PCI . Mini PCI byla nahrazena mnohem užší kartou PCI Express Mini Card

Technické detaily Mini PCI

Karty Mini PCI mají maximální spotřebu 2 W, což omezuje funkčnost, kterou lze v tomto provedení implementovat. Jsou také vyžadovány pro podporu signálu CLKRUN# PCI používaného ke spouštění a zastavování hodin PCI pro účely správy napájení.

Existují tři faktory tvaru karty : karty typu I, typu II a typu III. Ke konektoru karty použitému pro každý typ patří: Typ I a II používají stohovací stohovací konektor, zatímco typ III používá 124pinový okrajový konektor, tj. Konektor pro typy I a II se liší od konektoru pro typ III, kde konektor je na okraji karty, jako u modulu SO-DIMM . Dalších 24 pinů poskytuje další signály potřebné ke směrování I/O zpět přes systémový konektor (audio, AC-Link , LAN , rozhraní telefonní linky). Karty typu II mají konektory namontované na RJ11 a RJ45. Tyto karty musí být umístěny na okraji počítače nebo dokovací stanice, aby bylo možné porty RJ11 a RJ45 namontovat pro externí přístup.

Typ Karta na
vnějším okraji
hostitelského systému
Konektor Velikost
(mm × mm × mm)
komentáře
IA Ne
Stohování 100 pinů
07,5 0× 70 .0× 450,00 Velký rozměr Z (7,5 mm)
IB 05,5 0× 70 .0× 450,00 Menší rozměr Z (5,5 mm)
IIA Ano 17,44 × 70 .0× 450,00 Velký rozměr Z (17,44 mm)
IIB 05,5 0× 78 .0× 450,00 Menší rozměr Z (5,5 mm)
IIIA Ne 124-pinový
okraj karty
02,4 0× 59,6 × 50,95 Větší rozměr Y (50,95 mm)
IIIB 02,4 0× 59,6 × 44,60 Menší rozměr Y (44,6 mm)

Mini PCI se liší od 144-pin Micro PCI.

Transakce sběrnice PCI

Provoz sběrnice PCI se skládá z řady transakcí sběrnice PCI. Každá transakce se skládá z fáze adresy, po které následuje jedna nebo více fází dat . Směr datových fází může být od iniciátoru k cíli (transakce zápisu) nebo naopak (transakce čtení), ale všechny datové fáze musí být ve stejném směru. Kterákoli strana může datové fáze v kterémkoli bodě pozastavit nebo zastavit. (Jedním z běžných příkladů je zařízení PCI s nízkým výkonem, které nepodporuje transakce série a vždy zastaví transakci po první datové fázi.)

Jakékoli zařízení PCI může zahájit transakci. Nejprve musí požádat o povolení arbitr sběrnice PCI na základní desce. Rozhodce uděluje povolení jednomu z požadujících zařízení. Iniciátor zahájí fázi adresy vysíláním 32bitové adresy plus 4bitového příkazového kódu, poté čeká, až cíl odpoví. Všechna ostatní zařízení prozkoumají tuto adresu a jedno z nich odpoví o několik cyklů později.

64bitové adresování se provádí pomocí dvoustupňové fáze adresy. Iniciátor vysílá nízkých 32 adresových bitů, doprovázených speciálním příkazovým kódem „dvojího adresního cyklu“. Zařízení, která nepodporují 64bitové adresování, jednoduše nemohou na tento příkazový kód reagovat. V dalším cyklu iniciátor vysílá vysokých 32 adresových bitů plus skutečný příkazový kód. Transakce funguje od tohoto okamžiku identicky. Aby byla zajištěna kompatibilita s 32bitovými zařízeními PCI, je zakázáno používat dvojí adresový cyklus, pokud to není nutné, tj. Pokud jsou všechny bity adres vyššího řádu nulové.

Zatímco sběrnice PCI přenáší 32 bitů na datovou fázi, iniciátor přenáší 4 aktivační signály aktivního nízkého bajtu, které indikují, které 8bitové bajty mají být považovány za významné. Zejména zápis musí ovlivnit pouze povolené bajty v cílovém zařízení PCI. Pro čtení z paměti mají malý význam, ale čtení I/O může mít vedlejší účinky. Standard PCI výslovně umožňuje datovou fázi bez povolených bajtů, která se musí chovat jako ne-op.

Adresní prostory PCI

PCI má tři adresní prostory: paměť, I/O adresa a konfigurace.

Adresy paměti mají velikost 32 bitů (volitelně 64 bitů), podporují ukládání do mezipaměti a lze je shlukovat.

I/O adresy jsou z důvodu kompatibility s adresním prostorem I/O portů architektury Intel x86 . Ačkoli specifikace sběrnice PCI umožňuje shlukové transakce v libovolném adresním prostoru, většina zařízení jej podporuje pouze pro paměťové adresy, nikoli I/O.

Nakonec konfigurační prostor PCI poskytuje přístup k 256 bytům speciálních konfiguračních registrů na zařízení PCI. Každý slot PCI má svůj vlastní rozsah adres konfiguračního prostoru. Registry se používají ke konfiguraci paměti zařízení a rozsahů adres I/O, na které by měly reagovat od iniciátorů transakcí. Když je počítač poprvé zapnut, všechna zařízení PCI reagují pouze na přístup do konfiguračního prostoru. Systém BIOS počítače vyhledá zařízení a přiřadí jim rozsahy paměti a adres I/O.

Pokud adresu nenárokuje žádné zařízení, fáze adresy iniciátora transakce vyprší, což způsobí, že iniciátor operaci přeruší. V případě čtení je v tomto případě obvyklé dodávat všechny pro hodnotu načtených dat (0xFFFFFFFF). Zařízení PCI se proto obecně pokoušejí vyhnout se použití hodnoty all-ones v důležitých stavových registrech, takže takovou chybu lze snadno zjistit softwarem.

Kódy příkazů PCI

Existuje 16 možných 4bitových příkazových kódů a 12 z nich je přiřazeno. S výjimkou jedinečného duálního cyklu adres ukazuje nejméně významný bit kódu příkazu, zda jsou následující datové fáze čtení (data odesílaná z cíle do iniciátoru) nebo zápis (data odesílaná z iniciátoru do cíle). Cíle PCI musí prozkoumat kód příkazu i adresu a nereagovat na fáze adresy, které určují nepodporovaný kód příkazu.

Příkazy odkazující na řádky mezipaměti závisí na správně nastaveném registru velikosti mezipaměti mezipaměti konfiguračního prostoru PCI ; nesmí být použity, dokud to není provedeno.

0000: Přerušit potvrzení
Toto je speciální forma cyklu čtení implicitně adresovaná řadiči přerušení, který vrací vektor přerušení. Pole 32bitové adresy je ignorováno. Jednou z možných implementací je generování cyklu potvrzení přerušení na sběrnici ISA pomocí můstku sběrnice PCI/ISA. Tento příkaz je pro kompatibilitu IBM PC ; pokud na sběrnici PCI není žádný řadič přerušení ve stylu Intel 8259 , tento cyklus nemusí být nikdy použit.
0001: Speciální cyklus
Tento cyklus je zvláštním všesměrovým zápisem systémových událostí, o které může mít karta PCI zájem. Pole adresy zvláštního cyklu je ignorováno, ale následuje datová fáze obsahující zprávu o užitečném zatížení. Aktuálně definované zprávy oznamují, že se procesor z nějakého důvodu zastavuje (např. Z důvodu úspory energie). Na tento cyklus nikdy nereaguje žádné zařízení; vždy se ukončí hlavním přerušením po ponechání dat na sběrnici po dobu alespoň 4 cyklů.
0010: Čtení I/O
To provede čtení z I/O prostoru. Je poskytnuto všech 32 bitů čtecí adresy, takže zařízení může (z důvodů kompatibility) implementovat I/O registry s hodnotou menší než 4 bajty. Pokud bajt umožňuje data požadavku, která nejsou v rozsahu adres podporovaném zařízením PCI (např. 4bajtové čtení ze zařízení, které podporuje pouze 2 bajty adresového prostoru I/O), musí být ukončeno přerušením cíle. Je povoleno více datových cyklů s použitím lineárního (jednoduchého přírůstkového) uspořádání série.
Standard PCI odrazuje od používání prostoru I/O v nových zařízeních a upřednostňuje, aby se co nejvíce provádělo mapováním hlavní paměti.
0011: I/O zápis
To provede zápis do I/O prostoru.
010 x : Vyhrazeno
Zařízení PCI nesmí reagovat na adresní cyklus s těmito kódy příkazů.
0110: Čtení z paměti
Tím se provede cyklus čtení z paměťového prostoru. Protože nejmenší paměťový prostor, který je zařízení PCI povoleno implementovat, je 16 bytů, nejsou během fáze adresy potřeba dva nejméně významné bity adresy; ekvivalentní informace dorazí během datových fází ve formě signálů výběru bajtů. Místo toho určují pořadí, ve kterém musí být vrácena data série. Pokud zařízení požadovanou objednávku nepodporuje, musí zadat první slovo a poté se odpojit.
Pokud je paměťový prostor označen jako „přednastavitelný“, musí cílové zařízení ignorovat signály výběru bajtů při čtení paměti a vždy vrátit 32 platných bitů.
0111: Zápis do paměti
Funguje to podobně jako čtení z paměti. Signály výběru bajtů jsou při zápisu důležitější, protože nevybrané bajty se nesmí zapisovat do paměti.
Zápisy PCI jsou obecně rychlejší než čtení PCI, protože zařízení může ukládat příchozí data pro zápis do vyrovnávací paměti a uvolňovat sběrnici rychleji. Pro čtení musí zdržet datovou fázi, dokud nebudou data načtena.
100 x : Rezervováno
Zařízení PCI nesmí reagovat na adresní cyklus s těmito kódy příkazů.
1010: Čtení konfigurace
Je to podobné čtení I/O, ale čte se z konfiguračního prostoru PCI. Zařízení musí reagovat pouze v případě, že nízkých 11 bitů adresy specifikuje funkci a registr, který implementuje, a pokud je uplatněn speciální signál IDSEL. Vysokých 21 bitů musí ignorovat. V konfiguračním prostoru PCI jsou povoleny sekvenční čtení (pomocí lineárního přírůstku).
Na rozdíl od I/O prostoru jsou standardní konfigurační registry PCI definovány tak, aby čtení nikdy nerušilo stav zařízení. Je možné, že zařízení má registry konfiguračního prostoru nad rámec standardních 64 bajtů, které mají načtené vedlejší efekty, ale toto je vzácné.
Přístupy do konfiguračního prostoru mají často několik cyklů zpoždění, aby se linky IDSEL mohly stabilizovat, což je zpomaluje než jiné formy přístupu. Také přístup do konfiguračního prostoru vyžaduje vícekrokovou operaci, nikoli jedinou instrukci stroje. Proto je nejlepší se jim během rutinního provozu zařízení PCI vyhnout.
1011: Zápis konfigurace
Funguje to analogicky ke čtení konfigurace.
1100: Čtení z paměti více
Tento příkaz je shodný s obecným čtením z paměti, ale obsahuje nápovědu, že dlouhé čtení bude pokračovat i po konci aktuálního řádku mezipaměti a cíl by měl interně předem načíst velké množství dat. Cíl je vždy oprávněn považovat to za synonymum pro čtení obecné paměti.
1101: Cyklus duálních adres
Při přístupu k paměťové adrese, která vyžaduje více než 32 bitů k reprezentaci, začíná adresová fáze tímto příkazem a nízkými 32 bity adresy, po nichž následuje druhý cyklus se skutečným příkazem a vysokými 32 bity adresy. Cíle PCI, které nepodporují 64bitové adresování, to mohou jednoduše považovat za další vyhrazený kód příkazu a nemusí na něj reagovat. Tento příkazový kód lze použít pouze s nenulovým adresním slovem vyššího řádu; je zakázáno používat tento cyklus, pokud to není nutné.
1110: Řádek pro čtení z paměti
Tento příkaz je shodný s obecným čtením z paměti, ale obsahuje nápovědu, že čtení bude pokračovat až do konce řádku mezipaměti. Cíl je vždy oprávněn považovat to za synonymum pro čtení obecné paměti.
1111: Zápis do paměti a zneplatnění
Tento příkaz je shodný s obecným zápisem do paměti, ale přichází se zárukou, že bude zapsán jeden nebo více celých řádků mezipaměti, přičemž budou povoleny všechny bajtové volby. Toto je optimalizace pro mezipaměti pro zpětný odposlech sběrnice. Normálně musí mezipaměť pro zpětný zápis obsahující špinavá data přerušit operaci zápisu na tak dlouho, aby mohla nejprve zapsat vlastní špinavá data. Pokud je zápis proveden pomocí tohoto příkazu, data, která mají být zapsána zpět, jsou zaručeně irelevantní a mohou být jednoduše zneplatněna v mezipaměti pro zpětný zápis.
Tato optimalizace ovlivňuje pouze mezipaměť snoopingu a na cíli nezáleží, což může být považováno za synonymum příkazu pro zápis do paměti.

Latence sběrnice PCI

Brzy po vyhlášení specifikace PCI bylo zjištěno, že zdlouhavé transakce některými zařízeními, kvůli pomalým potvrzením, dlouhým datovým výbuchům nebo nějaké kombinaci, mohou způsobit podtečení nebo přetečení vyrovnávací paměti v jiných zařízeních. Doporučení týkající se načasování jednotlivých fází v revizi 2.0 byla v revizi 2.1 povinná:

  • Cíl musí být schopen dokončit počáteční datovou fázi (uplatnit TRDY# a/nebo STOP#) do 16 cyklů od začátku transakce.
  • Iniciátor musí dokončit každou datovou fázi (tvrdit IRDY#) do 8 cyklů.

Navíc od revize 2.1 musí všechny iniciátory schopné prasknout více než dvě datové fáze implementovat programovatelný časovač latence. Časovač začne počítat cykly hodin při zahájení transakce (iniciátor tvrdí FRAME#). Pokud vypršel časovač a arbitr odstranil GNT#, musí iniciátor transakci ukončit při nejbližší legální příležitosti. Toto je obvykle další datová fáze, ale transakce zápisu do paměti a zneplatnění musí pokračovat až do konce řádku mezipaměti.

Zpožděné transakce

Zařízení, která nemohou splnit tato omezení časování, musí používat kombinaci účtovaných zápisů (pro zápisy do paměti) a zpožděných transakcí (pro ostatní zápisy a všechna čtení). Při zpožděné transakci cíl interně zaznamená transakci (včetně dat pro zápis) a přeruší (potvrdí STOP# místo TRDY#) první datovou fázi. Iniciátor musí opakovat přesně stejnou transakci později. Mezitím cíl interně provede transakci a čeká na opakovanou transakci. Když je vidět opakovaná transakce, je doručen výsledek ve vyrovnávací paměti.

Zařízení může být cílem jiných transakcí při dokončení jedné zpožděné transakce; musí si pamatovat typ transakce, adresu, výběr bajtů a datovou hodnotu (pokud je zápis) a dokončit pouze správnou transakci.

Pokud má cíl limit na počet zpožděných transakcí, které může interně zaznamenávat (jednoduché cíle mohou stanovit limit 1), donutí tyto transakce opakovat to bez jejich záznamu. Budou vyřízeny, až bude dokončena aktuální zpožděná transakce. Pokud se dva iniciátoři pokusí o stejnou transakci, může být zpožděné transakci zahájené jedním doručen výsledek druhému; to je neškodné.

Cíl opouští opožděnou transakci, když se opakování podaří doručit výsledek ve vyrovnávací paměti, sběrnice se resetuje nebo když uplyne 2 15 = 32768 hodinových cyklů (přibližně 1 ms), aniž by došlo k opakování. K posledně uvedenému by nikdy nemělo dojít za normálního provozu, ale zabraňuje zablokování celé sběrnice, pokud je resetován jeden iniciátor nebo nefunguje správně.

Mosty sběrnice PCI

Standard PCI umožňuje připojení více nezávislých sběrnic PCI pomocí sběrnicových můstků, které v případě potřeby předají provoz na jedné sběrnici druhé. Ačkoli PCI obvykle nepoužívá mnoho sběrnicových mostů, systémy PCI Express používají mnoho mostů PCI-to-PCI nazývaných kořenový port PCI Express ; každý slot PCI Express se zdá být samostatnou sběrnicí, propojenou mostem s ostatními. Hostitelský most PCI (obvykle Northbridge na platformách x86) propojuje CPU, hlavní paměť a sběrnici PCI.

Zveřejněno píše

Obecně platí, že když můstek sběrnice uvidí transakci na jedné sběrnici, která musí být přeposlána na druhou, musí původní transakce počkat, než se předaná transakce dokončí, než bude připraven výsledek. Jedna pozoruhodná výjimka nastává v případě zápisů do paměti. Zde můstek může zaznamenávat zapisovací data interně (pokud má místo) a dokončení signálu zápisu před dokončením předaného zápisu. Nebo vlastně ještě předtím, než to začalo. Takové zápisy typu „odeslané, ale ještě nedorazené“ se označují jako „zaslané zápisy“, analogicky s poštovní zprávou. Ačkoli nabízejí velkou příležitost pro zvýšení výkonu, pravidla upravující to, co je přípustné, jsou poněkud komplikovaná.

Kombinování, sloučení a sbalení

Standard PCI umožňuje sběrnicovým mostům za určitých situací převést více sběrnicových transakcí na jednu větší transakci. To může zlepšit účinnost sběrnice PCI.

Kombinace
Zápisové transakce na po sobě jdoucí adresy lze zkombinovat do delšího sekvenčního zápisu, pokud je pořadí přístupů v sekvenční sérii stejné jako pořadí původních zápisů. Je -li zápisy téměř po sobě jdoucí, je přípustné vložit další datové fáze se všemi vypnutými povolenými bajty.
Sloučení
Vícenásobné zápisy do disjunktních částí stejného slova mohou být sloučeny do jednoho zápisu s více bajty umožňuje uplatnění. V tomto případě se sloučí zápisy, které byly předloženy na můstek sběrnice v určitém pořadí, takže se při přeposílání vyskytnou současně.
Hroutí se
Více zápisů do stejného bajtu nebo bajtů nelze kombinovat, například provedením pouze druhého zápisu a přeskočením prvního zápisu, který byl přepsán. Důvodem je, že specifikace PCI umožňuje zápisům mít vedlejší účinky.

Signály sběrnice PCI

Transakce sběrnice PCI jsou řízeny pěti hlavními řídicími signály, dva řízené iniciátorem transakce (FRAME#a IRDY#) a tři řízené cílem (DEVSEL#, TRDY#a STOP#). K získání povolení k zahájení transakce slouží dva další rozhodčí signály (REQ# a GNT#). Všechny jsou aktivní-nízké , což znamená, že aktivní nebo tvrdený stav je nízké napětí . Pull-up rezistory na základní desce bylo zajištěno, že zůstanou vysoké (neaktivní nebo deasserted ), není-li poháněn jakýmkoliv zařízením, ale sběrnice PCI nezávisí na rezistorů změnit úroveň signálu; všechna zařízení zvyšují signály po dobu jednoho cyklu, než přestanou signály vysílat.

Načasování signálu

Všechny signály sběrnice PCI jsou vzorkovány na stoupající hraně hodin. Signály se nominálně mění na sestupné hraně hodin, což dává každému zařízení PCI přibližně jednu půlhodinový cyklus, aby se rozhodl, jak reagovat na signály, které pozoroval na stoupající hraně, a jednu polovinu hodinového cyklu k přenosu své odpovědi na druhé zařízení .

Sběrnice PCI vyžaduje, aby pokaždé, když se změní zařízení pohánějící signál sběrnice PCI, musel uplynout jeden cyklus obratu mezi okamžikem, kdy jedno zařízení přestane řídit signál a druhé zařízení se spustí. Bez toho by mohlo nastat období, kdy signál přenášela obě zařízení, což by rušilo provoz sběrnice.

Kombinace tohoto cyklu obratu a požadavku řídit řídicí linku vysoko po dobu jednoho cyklu před ukončením jízdy znamená, že při změně vlastníka musí být každá z hlavních řídicích linek vysoká minimálně po dobu dvou cyklů. Sběrnicový protokol PCI je navržen, takže toto je zřídka omezení; pouze v několika zvláštních případech (zejména rychlé transakce back-to-back ) je nutné vložit další zpoždění, aby byl splněn tento požadavek.

Arbitráž

Jakékoli zařízení na sběrnici PCI, které může fungovat jako hlavní sběrnice, může zahájit transakci s jakýmkoli jiným zařízením. Aby bylo zajištěno, že je současně iniciována pouze jedna transakce, musí každý master nejprve počkat na signál přidělení sběrnice GNT#z arbitru umístěného na základní desce. Každé zařízení má samostatný řádek požadavku REQ#, který požaduje sběrnici, ale arbitr může „zaparkovat“ signál o udělení sběrnice na jakémkoli zařízení, pokud neexistují žádné aktuální požadavky.

Rozhodce může GNT# kdykoli odebrat. Zařízení, které ztratí GNT#, může dokončit svou aktuální transakci, ale nesmí ji spustit (uplatněním FRAME#), pokud nepozoruje, že GNT# potvrdila cyklus před jeho zahájením.

Rozhodce může také poskytnout GNT# kdykoli, a to i během transakce jiného velitele. Během transakce se uplatňuje buď FRAME# nebo IRDY# nebo obojí; když jsou oba deaktivováni, autobus je nečinný. Zařízení může zahájit transakci kdykoli, když je uplatněn GNT# a sběrnice je nečinná.

Fáze adresy

Transakce sběrnice PCI začíná fází adresy . Iniciátor, který vidí, že má GNT# a sběrnice je nečinná, řídí cílovou adresu na řádky AD [31: 0], související příkaz (např. Čtení z paměti nebo zápis I/O) na C/BE [3 : 0]# řádků a táhne FRAME# nízko.

Každé další zařízení prozkoumá adresu a příkaz a rozhodne, zda bude jako cíl odpovídat tvrzením DEVSEL#. Zařízení musí reagovat tvrzením DEVSEL# do 3 cyklů. Zařízení, která slibují odezvu během 1 nebo 2 cyklů, mají údajně „rychlý DEVSEL“ nebo „střední DEVSEL“. (Ve skutečnosti je doba odezvy 2,5 cyklu, protože zařízení PCI musí vysílat všechny signály o půl cyklu dříve, aby mohly být přijaty o tři cykly později.)

Zařízení musí v prvním cyklu zablokovat adresu; iniciátor je povinen odebrat adresu a příkaz ze sběrnice v následujícím cyklu, ještě před přijetím odpovědi DEVSEL#. Další čas je k dispozici pouze pro interpretaci adresy a příkazu po jejím zachycení.

V pátém cyklu adresní fáze (nebo dříve, pokud všechna ostatní zařízení mají střední DEVSEL nebo rychlejší) je u některých rozsahů adres povoleno „subtraktivní dekódování“. Toho běžně používá sběrnicový můstek ISA pro adresy v jeho dosahu (24 bitů pro paměť a 16 bitů pro I/O).

Pokud v šestém cyklu nedošlo k žádné reakci, může iniciátor transakci přerušit zrušením přiřazení FRAME#. Toto je známé jako hlavní ukončení přerušení a je obvyklé, že mosty sběrnice PCI v tomto případě vrací všechna data (0xFFFFFFFF). Zařízení PCI jsou proto obecně navržena tak, aby se vyhnuly použití hodnoty all-ones v důležitých stavových registrech, aby bylo možné takovou chybu snadno zjistit softwarem.

Časování fáze adresy

              _  0_  1_  2_  3_  4_  5_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/
            ___
       GNT#    \___/XXXXXXXXXXXXXXXXXXX (GNT# Irrelevant after cycle has started)
            _______
     FRAME#        \___________________
                    ___
   AD[31:0] -------<___>--------------- (Address only valid for one cycle.)
                    ___ _______________
 C/BE[3:0]# -------<___X_______________ (Command, then first data phase byte enables)
            _______________________
    DEVSEL#            \___\___\___\___
                     Fast Med Slow Subtractive
              _   _   _   _   _   _   _
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/
                 0   1   2   3   4   5

Na náběžné hraně hodin 0 iniciátor pozoruje FRAME# a IRDY# jak vysoké, tak GNT# nízké, takže řídí adresu, příkaz a potvrzuje FRAME# včas pro stoupající hranu hodin 1. Cíle západku adresy a začněte to dekódovat. Mohou reagovat s DEVSEL# včas na hodiny 2 (rychlé DEVSEL), 3 (střední) nebo 4 (pomalé). Subtraktivní dekódovací zařízení, která nevidí žádnou jinou odpověď hodinami 4, mohou reagovat na hodiny 5. Pokud master nevidí odpověď hodinami 5, transakci ukončí a odstraní FRAME# na hodinách 6.

TRDY# a STOP# jsou ve fázi adresy deaktivovány (vysoké). Iniciátor může potvrdit IRDY#, jakmile je připraven k přenosu dat, což by teoreticky mohlo být hned jako hodiny 2.

Dvoucyklová adresa

Aby bylo možné povolit 64bitové adresování, master bude prezentovat adresu ve dvou po sobě jdoucích cyklech. Nejprve odešle bity adresy nižšího řádu se speciálním příkazem „adresa dvou cyklů“ na C/BE [3: 0]#. V následujícím cyklu odešle bity adresy vyššího řádu a skutečný příkaz. Cykly dvou adres jsou zakázány, pokud jsou bity adres vyššího řádu nulové, takže zařízení, která nepodporují 64bitové adresování, jednoduše nemohou reagovat na příkazy dvojitého cyklu.

              _  0_  1_  2_  3_  4_  5_  6_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
            ___
       GNT#    \___/XXXXXXXXXXXXXXXXXXXXXXX
            _______
     FRAME#        \_______________________
                    ___ ___
   AD[31:0] -------<___X___>--------------- (Low, then high bits)
                    ___ ___ _______________
 C/BE[3:0]# -------<___X___X_______________ (DAC, then actual command)
            ___________________________
    DEVSEL#                \___\___\___\___
                         Fast Med Slow
              _   _   _   _   _   _   _   _
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
                 0   1   2   3   4   5   6

Konfigurační přístup

Adresy pro přístup do konfiguračního prostoru PCI jsou dekódovány speciálně. U těchto řádků adres nižšího řádu je uveden posun požadovaného konfiguračního registru PCI a řádky adres vyššího řádu jsou ignorovány. Místo toho musí být další adresní signál, vstup IDSEL, vysoký, než zařízení může uplatnit DEVSEL#. Každý slot připojuje k pinu IDSEL jiný řádek adresy vysokého řádu a je vybrán pomocí kódování jedním horkým písmem na horních řádcích adresy.

Datové fáze

Po fázi adresy (konkrétně počínaje cyklem, kdy DEVSEL# klesá) přichází výbuch jedné nebo více datových fází . Ve všech případech iniciátor pohání signály aktivního nízkého bajtu na řádcích C/BE [3: 0]#, ale data na AD [31: 0] mohou být řízena iniciátorem (v případě zápisů) nebo cíl (v případě čtení).

Během datových fází jsou řádky C/BE [3: 0]# interpretovány jako aktivní nízký bajt umožňuje . V případě zápisu indikované signály indikují, které ze čtyř bytů na sběrnici AD mají být zapsány do adresovaného místa. V případě čtení udávají, o které bajty má iniciátor zájem. U čtení je vždy legální ignorovat signály povolení bajtů a jednoduše vrátit všech 32 bitů; prostředky mezipaměti v mezipaměti jsou vyžadovány vždy vrátit 32 platných bitů. Povolení bajtů je užitečné zejména pro přístupy do prostoru I/O, kde čtení má vedlejší účinky.

Datová fáze se všemi čtyřmi řádky C/BE# odepnutými je standardem PCI výslovně povolena a nesmí mít na cíl žádný jiný účinek než posunout adresu v probíhajícím shlukovém přístupu.

Datová fáze pokračuje, dokud nejsou obě strany připraveny dokončit přenos a pokračovat do další datové fáze. Iniciátor potvrdí IRDY# ( iniciátor připraven ), když již nemusí čekat, zatímco cíl potvrdí TRDY# ( cíl připraven ). Kterákoli strana poskytuje data, musí je před přijetím signálu připravenosti řídit na sběrnici AD.

Jakmile jeden z účastníků potvrdí svůj připravený signál, nemusí se stát nepřipraveným nebo jinak měnit své řídicí signály do konce datové fáze. Příjemce dat musí zablokovat sběrnici AD v každém cyklu, dokud neuvidí jak IRDY#, tak TRDY#, které označují konec aktuální datové fáze a indikují, že právě přenesená data jsou přenášeným slovem.

Aby byla zachována plná rychlost sériového snímání, má odesílatel dat půlhodinový cyklus poté, co viděl, jak IRDY# a TRDY# tvrdily, že přivedly další slovo na sběrnici AD.

             0_  1_  2_  3_  4_  5_  6_  7_  8_  9_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
                ___         _______     ___ ___ ___
   AD[31:0] ---<___XXXXXXXXX_______XXXXX___X___X___ (If a write)
                ___             ___ _______ ___ ___
   AD[31:0] ---<___>~~~<XXXXXXXX___X_______X___X___ (If a read)
                ___ _______________ _______ ___ ___
 C/BE[3:0]# ---<___X_______________X_______X___X___ (Must always be valid)
            _______________      |  ___  |   |   |
      IRDY#              x \_______/ x \___________
            ___________________  |       |   |   |
      TRDY#              x   x \___________________
            ___________          |       |   |   |
    DEVSEL#            \___________________________
            ___                  |       |   |   |
     FRAME#    \___________________________________
              _   _   _   _   _  |_   _  |_  |_  |_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
             0   1   2   3   4   5   6   7   8   9

Toto pokračuje v adresním cyklu zobrazeném výše, za předpokladu jediného adresního cyklu se středním DEVSEL, takže cíl reaguje včas na hodiny 3. V té době však žádná ze stran není připravena k přenosu dat. Pro hodiny 4 je iniciátor připraven, ale cíl není. Na hodinách 5 jsou oba připraveni a probíhá přenos dat (jak je naznačeno svislými čarami). Pro hodiny 6 je cíl připraven k přenosu, ale iniciátor není. Na hodinách 7 se iniciátor připraví a přenesou se data. U hodin 8 a 9 zůstávají obě strany připraveny k přenosu dat a data jsou přenášena maximální možnou rychlostí (32 bitů na hodinový cyklus).

V případě čtení jsou hodiny 2 vyhrazeny pro otáčení kolem sběrnice AD, takže cíl nemá povoleno řídit data po sběrnici, i když je schopen rychlého DEVSEL.

Rychlé čtení DEVSEL#

Cíl, který podporuje rychlý DEVSEL, by teoreticky mohl začít reagovat na cyklus čtení po zadání adresy. Tento cyklus je však vyhrazen pro obrat sběrnice AD. Cíl tedy nemusí ve druhém cyklu transakce řídit sběrnici AD (a tedy nemusí prosazovat TRDY#). Všimněte si, že většina cílů nebude tak rychlá a nebude k vynucení této podmínky potřebovat žádnou speciální logiku.

Ukončení transakcí

Kterákoli strana může požadovat, aby shluk skončil po aktuální datové fázi. Jednoduchá zařízení PCI, která nepodporují víceslovové shluky, o to vždy okamžitě požádají. I zařízení, která podporují shluky, budou mít určitý limit maximální délky, kterou mohou podporovat, například konec jejich adresovatelné paměti.

Ukončení roztržení iniciátoru

Iniciátor může označit jakoukoli datovou fázi jako konečnou v transakci tak, že zruší přiřazení FRAME# současně s tím, jak tvrdí IRDY#. Cyklus poté, co cíl potvrdí TRDY#, konečný přenos dat je dokončen, obě strany deaktivují příslušné signály RDY# a sběrnice je opět nečinná. Master nesmí zrušit přiřazení FRAME# před uplatněním IRDY#, ani nesmí zrušit použití FRAME# během čekání, s tvrzením IRDY#, na cíl, který má uplatnit TRDY#.

Jedinou menší výjimkou je hlavní ukončení přerušení , když žádný cíl neodpovídá pomocí DEVSEL#. V takovém případě je zjevně zbytečné čekat na TRDY#. I v tomto případě však musí master tvrdit IRDY# po dobu alespoň jednoho cyklu po deaktivaci FRAME#. (Běžně bude master před přijetím DEVSEL# tvrdit IRDY#, takže musí jednoduše držet IRDY# prohlášený o jeden cyklus déle.) Toto má zajistit, aby byla na řádku FRAME# dodržována pravidla časování obratu sběrnice.

Ukončení cílové série

Cíl požaduje, aby iniciátor ukončil sérii zadáním STOP#. Iniciátor pak ukončí transakci zrušením přiřazení FRAME# při příští legální příležitosti; pokud si přeje přenést více dat, bude pokračovat v samostatné transakci. Cíl může provést několika způsoby:

Odpojit s daty
Pokud cíl tvrdí STOP# a TRDY# současně, znamená to, že si to přeje, aby to byla poslední datová fáze. Například cíl, který nepodporuje přenosy shluků, to vždy udělá, aby vynutil jednoslovné transakce PCI. Toto je nejefektivnější způsob, jak cíl ukončit výbuch.
Odpojit bez dat
Pokud cíl potvrdí STOP# bez použití TRDY#, znamená to, že si přeje zastavit bez přenosu dat. STOP# je považován za ekvivalent TRDY# za účelem ukončení datové fáze, ale žádná data se nepřenášejí.
Zkuste to znovu
Odpojení bez dat před přenosem jakýchkoli dat je opakování a na rozdíl od jiných transakcí PCI se vyžaduje, aby se iniciátoři PCI před pokračováním operace mírně pozastavili. Podrobnosti najdete ve specifikaci PCI.
Cílové přerušení
Za normálních okolností má cíl DEVSEL# potvrzený přes poslední datovou fázi. Pokud však cíl deaktivuje DEVSEL# před odpojením bez dat (tvrdí STOP#), znamená to, že došlo k přerušení cíle , což je závažná chybová podmínka. Iniciátor se nemusí opakovat a obvykle to považuje za chybu sběrnice . Všimněte si toho, že cíl nesmí odznačit DEVSEL# při čekání s TRDY# nebo STOP# low; musí to udělat na začátku datové fáze.

Po odpojení iniciovaném cílem vždy proběhne alespoň jeden další cyklus, aby master mohl zrušit přiřazení FRAME#. Existují dva dílčí případy, které trvají stejně dlouho, ale jeden vyžaduje další datovou fázi:

Odpojit-A
Pokud iniciátor pozoruje STOP# před uplatněním své vlastní IRDY#, pak může ukončit sekvenci deaktivací FRAME# ve stejnou dobu, kdy deklaruje IRDY#, čímž se burst ukončí po aktuální datové fázi.
Odpojit-B
Pokud iniciátor již v době, kdy pozoruje STOP#cíle, uplatnil IRDY#(bez deaktivace FRAME#), je odhodlán do další datové fáze. Cíl může před ukončením transakce počkat na další datovou fázi, která bude obsahovat STOP# bez TRDY#.

Pokud iniciátor ukončí shluk současně s tím, jak cíl požaduje odpojení, nedojde k dalšímu cyklu sběrnice.

Sekvenční adresování

Pro přístupy do paměťového prostoru lze ke slovům v sérii přistupovat v několika řádech. K přenosu požadované objednávky iniciátora se používají nepotřebné adresní bity nízkého řádu AD [1: 0]. Cíl, který nepodporuje konkrétní objednávku, musí ukončit shluk za prvním slovem. Některé z těchto objednávek závisí na velikosti linky mezipaměti, kterou lze konfigurovat na všech zařízeních PCI.

Objednávání série PCI
A [1] A [0] Pořadí sekvencí (s 16bajtovou mezipamětí)
0 0 Lineární přírůstek (0x0C, 0x10, 0x14, 0x18, 0x1C, ...)
0 1 Přepínač Cacheline (0x0C, 0x08, 0x04, 0x00, 0x1C, 0x18, ...)
1 0 Cacheline wrap (0x0C, 0x00, 0x04, 0x08, 0x1C, 0x10, ...)
1 1 Rezervováno (odpojit po prvním přenosu)

Pokud je počáteční posun v řádku mezipaměti nulový, všechny tyto režimy se sníží na stejné pořadí.

Režimy přepínání řádků mezipaměti a režimy zalamování mezipaměti mezipaměti jsou dvě formy načítání řádku mezipaměti s kritickým slovem. Přepnout režim XOR na zadanou adresu pomocí přírůstkového čítače. Toto je původní pořadí pro procesory Intel 486 a Pentium. Má tu výhodu, že pro jeho implementaci není nutné znát velikost řádku mezipaměti.

PCI verze 2.1 zastaral přepínací režim a přidal režim zabalení řádku mezipaměti, kde načítání probíhá lineárně a obtéká se na konci každého řádku mezipaměti. Když je jeden řádek mezipaměti zcela načten, načítání přeskočí na počáteční posun v dalším řádku mezipaměti.

Většina zařízení PCI podporuje pouze omezený rozsah typických velikostí mezipaměti; pokud je velikost řádku mezipaměti naprogramována na neočekávanou hodnotu, vynutí přístup jedním slovem.

PCI také podporuje sekvenční přístup k I/O a konfiguračnímu prostoru, ale podporován je pouze lineární režim. (To se používá jen zřídka a v některých zařízeních to může být chybné; možná to nepodporují, ale ani nevynucují přístup jedním slovem.)

Příklady transakcí

Jedná se o nejvyšší možnou rychlost čtyřslovného zápisu, ukončenou masterem:

             0_  1_  2_  3_  4_  5_  6_  7_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
                ___ ___ ___ ___ ___
   AD[31:0] ---<___X___X___X___X___>---<___>
                ___ ___ ___ ___ ___
 C/BE[3:0]# ---<___X___X___X___X___>---<___>
                     |   |   |   |  ___
      IRDY# ^^^^^^^^\______________/   ^^^^^
                     |   |   |   |  ___
      TRDY# ^^^^^^^^\______________/   ^^^^^
                     |   |   |   |  ___
    DEVSEL# ^^^^^^^^\______________/   ^^^^^
            ___      |   |   |  ___
     FRAME#    \_______________/ | ^^^^\____
              _   _  |_  |_  |_  |_   _   _
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
             0   1   2   3   4   5   6   7

Na hodinové hraně 1 iniciátor zahájí transakci řízením adresy, příkazu a tvrzení FRAME# Ostatní signály jsou nečinné (označeno ^^^), vytažené vysoko vytahovacími odpory základní desky. To by mohl být jejich obratový cyklus. V cyklu 2 cíl potvrdí DEVSEL# i TRDY#. Je -li také iniciátor připraven, dojde k přenosu dat. To se opakuje pro další tři cykly, ale před posledním (taktovací hrana 5) master deaktivuje FRAME#, což naznačuje, že toto je konec. Na hodinové hraně 6 jsou sběrnice AD ​​a FRAME# undriven (cyklus obratu) a ostatní řídicí linky jsou po dobu 1 cyklu poháněny vysoko. Na hodinové hraně 7 může jiný iniciátor zahájit jinou transakci. Toto je také obratový cyklus pro ostatní řídicí linky.

Ekvivalentní četba čtení trvá ještě jeden cyklus, protože cíl musí počkat 1 cyklus, než se sběrnice AD ​​otočí, než může uplatnit TRDY#:

             0_  1_  2_  3_  4_  5_  6_  7_  8_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
                ___     ___ ___ ___ ___
   AD[31:0] ---<___>---<___X___X___X___>---<___>
                ___ _______ ___ ___ ___
 C/BE[3:0]# ---<___X_______X___X___X___>---<___>
            ___          |   |   |   |  ___
      IRDY#    ^^^^\___________________/   ^^^^^
            ___    _____ |   |   |   |  ___
      TRDY#    ^^^^     \______________/   ^^^^^
            ___          |   |   |   |  ___
    DEVSEL#    ^^^^\___________________/   ^^^^^
            ___          |   |   |  ___
     FRAME#    \___________________/ | ^^^^\____
              _   _   _  |_  |_  |_  |_   _   _
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
             0   1   2   3   4   5   6   7   8

Vysokorychlostní shluk ukončený cílem bude mít na konci další cyklus:

             0_  1_  2_  3_  4_  5_  6_  7_  8_
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
                ___     ___ ___ ___ ___
   AD[31:0] ---<___>---<___X___X___X___XXXX>----
                ___ _______ ___ ___ ___ ___
 C/BE[3:0]# ---<___X_______X___X___X___X___>----
                         |   |   |   |      ___
      IRDY# ^^^^^^^\_______________________/
                   _____ |   |   |   |  _______
      TRDY# ^^^^^^^     \______________/
                   ________________  |      ___
      STOP# ^^^^^^^      |   |   | \_______/
                         |   |   |   |      ___
    DEVSEL# ^^^^^^^\_______________________/
            ___          |   |   |   |  ___
     FRAME#    \_______________________/   ^^^^
              _   _   _  |_  |_  |_  |_   _   _
        CLK _/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
             0   1   2   3   4   5   6   7   8

Na hodinové hraně 6 cíl naznačuje, že se chce zastavit (s daty), ale iniciátor již drží IRDY# nízko, takže existuje pátá datová fáze (taktovací hrana 7), během které se nepřenášejí žádná data.

Parita

Sběrnice PCI detekuje chyby parity, ale nepokouší se je opravit opakováním operací; je to čistě indikace selhání. Z tohoto důvodu není nutné detekovat chybu parity dříve, než k ní dojde, a sběrnice PCI ji ve skutečnosti detekuje o několik cyklů později. Během datové fáze, kterékoli zařízení řídí řádky AD [31: 0], vypočítá sudou paritu nad nimi a řádky C/BE [3: 0]# a odešle to na řádek PAR o jeden cyklus později. Všechna pravidla přístupu a cykly obratu pro sběrnici AD platí pro linku PAR, jen o jeden cyklus později. Zařízení naslouchající na sběrnici AD zkontroluje přijatou paritu a jeden cyklus poté potvrdí řádek PERR# (chyba parity). To obecně generuje přerušení procesoru a procesor může na sběrnici PCI vyhledat zařízení, které chybu detekovalo.

Řádek PERR# se používá pouze během datových fází, jakmile byl vybrán cíl. Pokud je chyba parity detekována během fáze adresy (nebo datové fáze zvláštního cyklu), zařízení, která ji pozorují, uplatní řádek SERR# (chyba systému).

Dokonce i když jsou některé byty maskovány C / BE # čáry a není používán, musí ještě nějakou definovanou hodnotu a tato hodnota se musí použít pro výpočet parity.

Rychlé transakce back-to-back

Vzhledem k potřebě cyklu obratu mezi různými zařízeními pohánějícími signály sběrnice PCI je obecně nutné mít mezi transakcemi sběrnice PCI nečinný cyklus. Za určitých okolností je však povoleno tento nečinný cyklus přeskočit, a to přímo z konečného cyklu jednoho přenosu (IRDY# uplatněno, FRAME# zrušeno) do prvního cyklu dalšího (FRAME# uplatněno, IRDY# zrušeno).

Iniciátor může provádět transakce typu back-to-back, pouze pokud:

  • jsou od stejného iniciátora (nebo by nebyl čas otočit řádky C/BE# a FRAME#),
  • první transakce byla zápis (takže není třeba otáčet sběrnici AD) a
  • iniciátor má stále oprávnění (ze svého vstupu GNT#) používat sběrnici PCI.

Další časová omezení mohou pocházet z potřeby otočit se, jsou cílové řídicí linky, zejména DEVSEL#. Cíl deasserts DEVSEL#, hnací jej vysoko, v cyklu následujícím po konečné datové fázi, což je v případě transakcí typu back-to-back první cyklus fáze adresy. Druhý cyklus fáze adresy je pak rezervován pro obrat DEVSEL#, takže pokud je cíl odlišný od předchozího, nesmí uplatnit DEVSEL# až do třetího cyklu (střední rychlost DEVSEL).

Jedním z případů, kdy tento problém nemůže nastat, je, když iniciátor nějak ví (pravděpodobně proto, že adresy sdílejí dostatek bitů vysokého řádu), že druhý přenos je adresován na stejný cíl jako předchozí. V takovém případě může provádět transakce typu back-to-back. Všechny cíle PCI to musí podporovat.

Je také možné, že cíl sleduje požadavky. Pokud to nikdy nedělá rychle DEVSEL, jsou splněny triviálně. Pokud ano, musí počkat na střední dobu DEVSEL, pokud:

  • aktuální transakci předcházel nečinný cyklus (není back-to-back), popř
  • předchozí transakce byla na stejný cíl, popř
  • aktuální transakce začala cyklem dvojité adresy.

Cíle, které mají tuto schopnost, to indikují speciálním bitem v konfiguračním registru PCI, a pokud to mají všechny cíle na sběrnici, mohou všichni iniciátoři volně používat převody zády k sobě.

Subtraktivní dekódovací sběrnicový můstek musí vědět, že bude očekávat toto dodatečné zpoždění v případě cyklů back-to-back, aby propagoval podporu back-to-back.

64bitový PCI

Počínaje verzí 2.1 obsahuje specifikace PCI volitelnou 64bitovou podporu. To je zajištěno prostřednictvím rozšířeného konektoru, který poskytuje 64bitové rozšíření sběrnice AD ​​[63:32], C/BE [7: 4]#a PAR64, a řadu dalších napájecích a uzemňovacích kolíků. 64bitový konektor PCI lze odlišit od 32bitového konektoru podle dalšího 64bitového segmentu.

Paměťové transakce mezi 64bitovými zařízeními mohou využívat všech 64 bitů ke zdvojnásobení rychlosti přenosu dat. Transakce bez paměti (včetně konfigurací a přístupů do prostoru I/O) nesmí používat 64bitové rozšíření. Během 64bitové série funguje adresování shluku stejně jako při 32bitovém přenosu, ale adresa se zvýší dvakrát za datovou fázi. Počáteční adresa musí být zarovnána na 64 bitů; tj. AD2 musí být 0. Data odpovídající intervenujícím adresám (s AD2 = 1) jsou přenášena na horní polovině sběrnice AD.

Chcete-li zahájit 64bitovou transakci, iniciátor pohání počáteční adresu na sběrnici AD a potvrdí REQ64# současně s FRAME#. Pokud vybraný cíl může podporovat 64bitový přenos pro tuto transakci, odpoví tím, že současně s DEVSEL# potvrdí ACK64#. Cíl se může rozhodnout na základě transakce, zda povolí 64bitový přenos.

Pokud je ve fázi adresy uplatněn REQ64#, iniciátor také pohání vysokých 32 bitů adresy a kopii příkazu sběrnice na vysokou polovinu sběrnice. Pokud adresa vyžaduje 64 bitů, je stále vyžadován dvojí adresní cyklus, ale vysoká polovina sběrnice nese horní polovinu adresy a konečný příkazový kód během obou fázových fází adresy; to umožňuje 64bitovému cíli zobrazit celou adresu a začít reagovat dříve.

Pokud iniciátor vidí DEVSEL# uplatněný bez ACK64#, provede 32bitové datové fáze. Data, která by byla přenesena na horní polovinu sběrnice během první datové fáze, jsou místo toho přenesena během druhé datové fáze. Iniciátor obvykle pohání všech 64 bitů dat, než uvidí DEVSEL#. Pokud ACK64# chybí, může přestat řídit horní polovinu datové sběrnice.

Řádky REQ64# a ACK64# jsou udržovány pro celou transakci s uložením poslední datové fáze a deasserty současně s FRAME# a DEVSEL#.

Linka PAR64 funguje stejně jako linka PAR, ale poskytuje rovnoměrnou paritu nad AD [63:32] a C/BE [7: 4]#. Platí pouze pro fáze adresy, pokud je uplatněn REQ64#. PAR64 je platný pouze pro datové fáze, pokud jsou uplatněny jak REQ64#, tak ACK64#.

Cache snooping (zastaralé)

PCI původně obsahovalo volitelnou podporu pro koherenci mezipaměti zpětného zápisu . To vyžadovalo podporu pomocí paměťových cílů s mezipamětí, které by poslouchaly dva piny z mezipaměti na sběrnici, SDONE (snoop done) a SBO# (snoop backoff).

Protože to bylo v praxi implementováno jen zřídka, bylo to odstraněno z revize 2.2 specifikace PCI a piny znovu použity pro přístup SMBus v revizi 2.3.

Cache by sledovala všechny přístupy k paměti, aniž by tvrdila DEVSEL#. Pokud by si všiml přístupu, který by mohl být uložen do mezipaměti, snížil by SDONE (snoop nebyl proveden). Cíl podporující soudržnost by se vyhnul dokončení datové fáze (tvrdí TRDY#), dokud nezjistí SDONE vysoko.

V případě zápisu do dat, která byla čistá v mezipaměti, by mezipaměť musela pouze zneplatnit její kopii a potvrdit SDONE, jakmile to bylo vytvořeno. Pokud by však mezipaměť obsahovala špinavá data, mezipaměť by ji musela zapsat zpět, aby mohl přístup pokračovat. tak by to zvýšilo SBO# při zvyšování SDONE. To by signalizovalo aktivnímu cíli, aby uplatnil STOP# namísto TRDY#, což by iniciátor odpojilo a zkusilo operaci později. Mezitím by mezipaměť arbitrovala sběrnici a zapisovala její data zpět do paměti.

Cíle podporující koherenci mezipaměti jsou také nutné k ukončení dávek před překročením mezipaměti.

Vývojové nástroje

PCI POST karta , která zobrazuje Power On Self Test čísla (POST) během startu systému BIOS

Při vývoji a/nebo odstraňování problémů se sběrnicí PCI může být zkoumání hardwarových signálů velmi důležité. Logické analyzátory a analyzátory sběrnice jsou nástroje, které shromažďují, analyzují a dekódují signály, které uživatelé mohou užitečným způsobem zobrazit.

Viz také

Reference

Další čtení

Oficiální technické specifikace
Knihy
  • Abbott, Doug (2004). Sběrnice PCI demystifikovaná (2. vydání). ISBN 978-0-7506-7739-4. 250 stran.
  • Shanley, Tom (1999). Architektura systému PCI (4. vydání). ISBN 978-0-201-30974-4. 832 stran.
  • Shanley, Tom (2000). Architektura systému PCI-X (1. vydání). ISBN 978-0-201-72682-4. 752 stran.
  • Solari, Ed (2001). Architektura a design hardwaru a softwaru PCI a PCI-X (5. vydání). ISBN 978-0-929392-63-9. 1140 stran.
  • Goodrum, Alan (1998). Aplikace a design PCI HotPlug (1. vydání). ISBN 978-0-929392-60-8. 162 stran.

externí odkazy

Oficiální
Technické údaje
Seznamy prodejců, zařízení, ID
Tipy
Linux
Vývojové nástroje
Jádra FPGA