Kuidas PCI Expressi siin töötab? PCI Express - mis see on ja peamised omadused

ISA siini

Siiniliidese standardid

Kui siini laius suurenes ja kella sagedus arvutis suurenes, muutusid ka siiniliidese standardid. Praegu kasutavad arvutid järgmisi peamisi siiniliidese standardeid:

· ISA siin;

· PCI siini;

Muid standardeid, nagu MCA (Micro Channel Architecture), EISA (Extended Industry Standard Architecture) ja VESA, mida tavaliselt nimetatakse kohalikuks siiniks, VL siiniks ja mille on välja töötanud VESA (Video Electronics Standards Association) videoelektroonika.

Esimese ühise siiniliidese standardi, ISA (Industry Standard Architecture) siini, töötas IBM välja IBM PC AT arvuti loomisel (1984). See 16-bitine siin, mille taktsagedus on 8,33 MHz, võimaldab paigaldada nii 8-bitiseid kui ka 16-bitisi laienduskaarte (ribalaiusega vastavalt 8,33 ja 16,6 MB/s).

Kiirete välisseadmete ja RAM-i vaheline andmevahetus toimub protsessori osalusel, mis mõnel juhul võib viia arvuti jõudluse vähenemiseni. ISA siinis kasutusele võetud otsejuurdepääsu režiimis suhtleb välisseade RAM-iga otse DMA kanalite kaudu (Direct Memory Access). See andmevahetusrežiim on kõige tõhusam olukordades, kus suure teabehulga edastamiseks on vaja suurt kiirust (näiteks andmete kõvakettalt mällu laadimisel).

Mälu otsese juurdepääsu korraldamiseks kasutatakse DMA-kontrollerit, mis on sisse ehitatud emaplaadi ühte kiibi. Mälu otsejuurdepääsu vajav seade võtab kontrolleriga ühendust ühe vaba DMA kanali kaudu, teatades tee (aadressi), kust või kuhu andmeid saata, andmeploki algusaadressi ja andmemahu. Vahetuse initsialiseerimine toimub protsessori osalusel, kuid tegelik andmeedastus toimub DMA-kontrolleri, mitte protsessori kontrolli all.

ISA siini tänapäevastel emaplaatidel puudub ja see on säilinud ainult vanemates arvutites.

PCI siini (Peripheral Component Interconnect) arendas Intel 1993. aastal mitmete teiste ettevõtete osalusel oma uue suure jõudlusega Pentium protsessori jaoks.

Praegu töötab kõiki PCI standardeid välja ja hooldab PCI-SIG (PCI – Special Interest Group) organisatsioon.


Uusim PCI standard PCI 3.0, mis võeti vastu 2004. aastal, määratleb nii 32-bitise siini taktsagedusega 33 MHz ja tippläbilaskevõimega 133 MB/s ning 64-bitise siini taktsagedusega 33 ja 66 MHz ja maksimaalne läbilaskevõime vastavalt 266 ja 533 MB/s.

Andmeedastuse kiirendamiseks PCI siinil kasutatakse sarivõtte režiimi. Selles režiimis ei edastata mis tahes aadressil asuvaid andmeid mitte ükshaaval, vaid terve komplektina korraga.

PCI siini aluspõhimõte on nn sildade kasutamine, mis suhtlevad PCI siini ja teiste siinide vahel. PCI siini oluline omadus on see, et DMA kanalite asemel rakendab see tõhusamat siini mastering režiimi, mis võimaldab välisel seadmel juhtida siini ilma protsessori osaluseta. Teabeedastuse ajal võtab siini üle Bus Masteringut toetav seade ja saab ülemaks. Selle lähenemisviisiga vabastatakse keskprotsessor andmeedastuse ajal muude ülesannete täitmiseks. See on eriti oluline multitegumtöötlussüsteemide (nt Windows ja Unix) kasutamisel.

Emaplaadi PCI-kaardi pistikud on näidatud joonisel fig. ??????.

Riis. ??????. PCI-kaardi pesad emaplaadil:

a) 32-bitine pistik; b) 64-bitine pistik

PCI standardile lisandub standard PCI Hot Plug v1.0. Sellele standardile vastavaid PCI-seadmeid saab arvuti töötamise ajal pessa sisestada või sealt eemaldada – nn kuum pistik.

PCI siine kasutatakse tänapäevastes arvutites süsteemiüksuse siseseadmete, näiteks helikaardi või modemi ühendamiseks. Graafikaseadmete jaoks ei ole neil siinidel aga piisavat andmeedastuskiirust, mistõttu töötas PCI-SIG välja uue standardi - PCI-X (X tähistab eXtended), mille taktsagedused on 66, 133, 266 ja 533 MHz ning tippvõimsused. 533, vastavalt 1066, 2132 ja 4264 MB/s. See standard on PCI 3.0 standardiga tagasiühilduv, st. Teie arvuti saab kasutada nii PCI 3.0 kui ka PCI-X kaarte.

PCI-X standardi uusim versioon PCI-X 2.0 võeti vastu 2002. aastal. Praegu selle standardi siine praktiliselt ei kasutata, kuna samal aastal hakkas PCI-SIG välja töötama põhimõtteliselt uue PCI siinistandardi - PCI Express.

PCI Expressi standard, mida nimetatakse ka PCI-E-ks või PCe-ks, asendab PCI- ja PCI-X-siinide poolt kasutatava paralleelselt jagatud struktuuri seadmete jadaühendustega, kasutades lüliteid. Selle standardi vana nimi on 3GIO (3 rd Generation Input/Output – kolmanda põlvkonna sisend/väljund).

Uusim praegune PCI Expressi standard on PCI Express Base 2.0, mis võeti vastu 2006. aastal.

Erinevalt PCI standardist, mis ühendab kõik seadmed ühise 32-bitise paralleelse ühesuunalise siiniga, kasutab PCI Express seadme ühendamiseks üht või mitut kahesuunalist punkt-punkti jadaühendust vase keerdpaarside kaudu.

Andmete vahetamisel keerdpaari kaudu kasutatakse madalpinge diferentsiaalsignaali edastamise meetodit - LVDS (Low-Voltage Differential Signaling). Andmed LVDS-is edastatakse järjestikku, bittide kaupa. Sel juhul kasutatakse ühe signaali edastamiseks diferentsiaalpaari, s.t. et saatepool rakendab paari juhtmetele erinevaid pingetasemeid, mida võrreldakse vastuvõtupoolel. Teabe kodeerimiseks kasutatakse paari juhtide pingeerinevust. Signaali väike amplituud, aga ka paari juhtmete ebaoluline elektromagnetiline mõju üksteisele võimaldavad vähendada liinis müra ja edastada andmeid kõrgetel sagedustel, s.t. suure kiirusega. Andmeedastuskiiruse suurendamiseks saab kasutada mitut ühendust (keerdpaare), mille kaudu edastatakse bitte paralleelselt, s.t. samaaegselt.

PCI Express saab andmete edastamiseks kasutada ühte või mitut ühendust. Seadme ühenduste arv määratakse numbriga, millele järgneb (või sellele eelneb) täht x. Spetsifikatsioon määratleb praegu 1x, 2x, 4x, 8x, 16x ja 32x ühendused. Igal neist PCI Expressi siiniühendustest (välja arvatud ühendus 32x, mida veel ei kasutata) on oma tüüpi konnektorid. Joonisel fig. ???? Kuvatud on kõige levinumad PCI Expressi pesad: 1x, 2x, 4x, 8x ja 16x.

Riis. ??????. Levinumad PCI Expressi pistikud: a) 1x pesa; b) pesa 4x;

c) pesa 8x; d) pesa 16x;

PCI Expressi siini läbilaskevõime ühenduse kohta on praegu 2,5 Gbit/s, väljavaade kasvada kuni 10 Gbit/s. PCI Expressi standard peaks asendama PCI ja PCI-X standardid, samuti järgmises jaotises käsitletava AGP standardi. Kuid PCI Expressi standard ühildub nende standarditega ja ilmselt kasutatakse seda koos nendega pikka aega, kuna paljud PCI- ja AGP-standarditel põhinevad kaardid on välja antud ja väljastamist jätkavad.

Selles artiklis räägime PCI siini edu põhjustest ja kirjeldame seda asendavat suure jõudlusega tehnoloogiat - PCI Expressi siini. Vaatame ka PCI Expressi siini arenduslugu, riist- ja tarkvaratasemeid, selle juurutamise omadusi ja loetleme selle eelised.

Kui 1990. aastate alguses. Ilmnes, et selle tehnilised omadused ületasid oluliselt kõiki seni eksisteerinud siine, nagu ISA, EISA, MCA ja VL-bus. Sel ajal sobis 33 MHz sagedusel töötav PCI-siin (Peripheral Component Interconnect) hästi enamiku välisseadmete jaoks. Kuid tänaseks on olukord paljuski muutunud. Esiteks on protsessori ja mälu taktsagedused oluliselt kasvanud. Näiteks protsessori taktsagedus tõusis 33 MHz-lt mitme GHz-ni, samal ajal kui PCI töösagedus tõusis vaid 66 MHz-ni. Selliste tehnoloogiate nagu Gigabit Ethernet ja IEEE 1394B tekkimine ähvardas, et kogu PCI siini ribalaius võidakse kulutada ühe nendel tehnoloogiatel põhineva seadme teenindamiseks.

Samal ajal on PCI-arhitektuuril eelkäijatega võrreldes mitmeid eeliseid, mistõttu oli ebaratsionaalne seda täielikult üle vaadata. Esiteks ei sõltu see protsessori tüübist, see toetab täielikult puhvri isolatsiooni, siini mastering tehnoloogiat (siinide hõivamine) ja PnP tehnoloogiat. Puhvri isolatsioon tähendab, et PCI siini töötab sõltumatult sisemisest protsessori siinist, võimaldades protsessori siinil töötada sõltumatult süsteemisiini kiirusest ja koormusest. Tänu siinihõivetehnoloogiale saavad välisseadmed otse juhtida andmeedastuse protsessi siinil, selle asemel et oodata abi keskprotsessorilt, mis mõjutaks süsteemi jõudlust. Lõpuks võimaldab Plug and Play tugi seda kasutades seadmeid automaatselt seadistada ja konfigureerida ning vältida džemprite ja lülititega sebimist, mis ISA seadmete omanike elu päris palju rikkus.

Vaatamata PCI kahtlemata edule seisab see praegu silmitsi tõsiste probleemidega. Nende hulka kuuluvad piiratud ribalaius, reaalajas andmeedastusvõimaluste puudumine ja järgmise põlvkonna võrgutehnoloogiate toetuse puudumine.

Erinevate PCI standardite võrdlusomadused

Arvestada tuleb sellega, et protokolli tööpõhimõtte ja siini topoloogia omaduste tõttu võib tegelik läbilaskevõime olla teoreetilisest väiksem. Lisaks jaotatakse kogu ribalaius kõigi sellega ühendatud seadmete vahel, nii et mida rohkem seadmeid siinil on, seda vähem ribalaiust igaüks neist saab.

Standardi täiustused, nagu PCI-X ja AGP, kavandati selle peamise puuduse – madala taktsageduse – kõrvaldamiseks. Kuid taktsageduse suurenemine nendes rakendustes tõi kaasa siini efektiivse pikkuse ja pistikute arvu vähenemise.

Siini uue põlvkonna PCI Express (või lühendatult PCI-E) tutvustati esmakordselt 2004. aastal ja see oli mõeldud kõigi eelkäija ees seisvate probleemide lahendamiseks. Tänapäeval on enamik uusi arvuteid varustatud PCI Expressi siiniga. Kuigi neil on ka standardsed PCI-pesad, pole kaugel aeg, mil siinist saab ajalugu.

PCI Expressi arhitektuur

Siiniarhitektuuril on mitmetasandiline struktuur, nagu on näidatud joonisel.

Siin toetab PCI-aadressi mudelit, mis võimaldab sellega töötada kõigil hetkel olemasolevatel draiveritel ja rakendustel. Lisaks kasutab PCI Express siini standardset PnP mehhanismi, mis on ette nähtud eelmises standardis.

Vaatleme PCI-E organisatsiooni erinevate tasandite eesmärki. Siini tarkvara tasemel genereeritakse lugemis-/kirjutuspäringud, mis edastatakse transpordi tasemel spetsiaalse pakettprotokolli abil. Andmekiht vastutab vigade parandamise kodeerimise eest ja tagab andmete terviklikkuse. Põhiline riistvarakiht koosneb kahest simplekskanalist, mis koosneb edastus- ja vastuvõtupaarist, mida koos nimetatakse liiniks. Üldine siini kiirus 2,5 Gb/s tähendab, et iga PCI Expressi raja läbilaskevõime on kummaski suunas 250 MB/s. Kui arvestada protokolli ülekoormusest tingitud kadu, siis iga seadme kohta on saadaval ca 200 MB/s. See läbilaskevõime on 2–4 korda suurem kui PCI-seadmete jaoks. Ja erinevalt PCI-st, kui ribalaius jaotatakse kõigi seadmete vahel, läheb see igale seadmele täielikult.

Tänapäeval on PCI Expressi standardil mitu versiooni, mis erinevad oma ribalaiuse poolest.

PCI Express x16 siini läbilaskevõime PCI-E erinevate versioonide jaoks, Gb/s:

  • 32/64
  • 64/128
  • 128/256

PCI-E siini formaadid

Praegu on PCI Expressi vormingute jaoks saadaval erinevad valikud, olenevalt platvormi eesmärgist – lauaarvuti, sülearvuti või server. Serveritel, mis nõuavad rohkem ribalaiust, on rohkem PCI-E pesasid ja nendel pesadel on rohkem magistraale. Seevastu sülearvutitel võib keskmise kiirusega seadmete jaoks olla ainult üks rada.

PCI Express x16 liidesega videokaart.

PCI Expressi laienduskaardid on väga sarnased PCI-kaartidega, kuid PCI-E pesadel on suurem haarduvus, et kaart ei libiseks pesast vibratsiooni või transpordi tõttu. PCI Expressi pesadel on mitu vormitegurit, mille suurus sõltub kasutatavate radade arvust. Näiteks 16 sõidurajaga buss kannab nimetust PCI Express x16. Kuigi radade koguarv võib olla kuni 32, on praktikas enamik emaplaate nüüd varustatud PCI Express x16 siiniga.

Väiksemate kujunditega kaarte saab ühendada suuremate jaoks mõeldud pesadesse ilma jõudlust kahjustamata. Näiteks PCI Express x1 kaardi saab ühendada PCI Express x16 pesaga. Nagu PCI siini puhul, saate vajadusel seadmete ühendamiseks kasutada PCI Expressi laiendit.

Erinevat tüüpi pistikute välimus emaplaadil. Ülevalt alla: PCI-X pesa, PCI Express x8 pesa, PCI pesa, PCI Express x16 pesa.

Ekspresskaart

Express Card standard pakub väga lihtsat võimalust süsteemi seadmete lisamiseks. Express Card moodulite sihtturg on sülearvutid ja väikesed personaalarvutid. Erinevalt tavapärastest lauaarvuti laienduskaartidest saab Express-kaardi arvuti töötamise ajal süsteemiga ühendada igal ajal.

Üks populaarne Express Cardi variant on PCI Express Mini kaart, mis on mõeldud Mini PCI vormiteguri kaartide asendamiseks. Selles vormingus loodud kaart toetab nii PCI Expressi kui ka USB 2.0. PCI Express Mini kaardi mõõtmed on 30x56 mm. PCI Express Mini kaarti saab ühendada PCI Express x1-ga.

PCI-E eelised

PCI Expressi tehnoloogia pakub PCI ees eeliseid järgmises viies valdkonnas:

  1. Suurem jõudlus. Vaid ühe sõiduraja abil on PCI Expressil kaks korda suurem läbilaskevõime kui PCI. Sel juhul suureneb läbilaskevõime võrdeliselt siini liinide arvuga, mille maksimaalne arv võib ulatuda 32-ni. Täiendav eelis on see, et siini infot saab edastada samaaegselt mõlemas suunas.
  2. I/O lihtsustamine. PCI Express kasutab selliseid siine nagu AGP ja PCI-X ning sellel on vähem keerukas arhitektuur ja suhteliselt lihtne rakendamine.
  3. Mitmetasandiline arhitektuur. PCI Express pakub arhitektuuri, mis suudab kohaneda uute tehnoloogiatega, ilma et oleks vaja olulisi tarkvarauuendusi.
  4. Uue põlvkonna sisend/väljundtehnoloogiad. PCI Express võimaldab uusi andmehõivevõimalusi koos samaaegse andmeedastustehnoloogiaga, mis tagab teabe õigeaegse vastuvõtmise.
  5. Kasutusmugavus. PCI-E muudab kasutaja jaoks süsteemi uuendamise ja laiendamise palju lihtsamaks. Täiendavad Expressi kaardivormingud, nagu ExpressCard, suurendavad oluliselt võimalust lisada serveritesse ja sülearvutitesse kiireid välisseadmeid.

Järeldus

PCI Express on siinitehnoloogia välisseadmete ühendamiseks, mis asendas sellised tehnoloogiad nagu ISA, AGP ja PCI. Selle kasutamine suurendab märkimisväärselt arvuti jõudlust, aga ka kasutaja võimalusi süsteemi laiendada ja värskendada.

Tere kõigile, kes tunnevad huvi, mis on PCI pesa. Ma arvan, et neid on palju, sest seda standardit kasutatakse tänapäevani, hoolimata kaasaegsete analoogide väljalaskmisest. Kui teie arvuti pole enam noor, on teil tõenäoliselt tegemist ka PCI-ga.

See artikkel aitab teil mõista selle funktsioone ja erinevusi "Expressi" modifikatsioonist, millest olete ehk kuulnud, kuna see on nüüdseks laialt levinud.

Sissejuhatus terminisse

Ülalmainitud lühend tähistab Peripheral component interconnect, mis sõna-sõnalt tähendab väliskomponentide omavahelist ühendamist. Kuigi see fraas ei kajasta PCI füüsilist teostust, valiti see mõjuval põhjusel.

Nagu aru saate, kuuluvad arvuti “aju” erinevad seadmed (heli, video, võrgukaart jne), nn. perifeersed komponendid. Enamik neist ühendatakse emaplaadiga.

Seadmete ja emaplaadi vaheliseks ühendamiseks kasutatakse spetsiaalseid elektroonilisi kiirteid ehk teisisõnu busse. See on täpselt see, mida PCI on. Tegelikult on see emaplaadil asuv pikk laienduspesa, kuhu saab sisestada videokaardi jne.

Kontrolleri kohta

Samuti on olemas selline asi nagu PCI-kontroller Simple communications või Management Engine Interface, mis tagab arvutisse installitud programmide draiverite ja emaplaadi draiverite koostoime. Mõnikord süttib pärast süsteemi uuesti installimist seadmehalduris selle üksuse kõrval kollane kolmnurk.

Sel juhul peaksite draiverid alla laadima Inteli ametlikult veebisaidilt või muust usaldusväärsest allikast ja installima. Lõppude lõpuks juhib see liides temperatuuri, jahutite pöörlemist, puhkerežiime jne.

Lugu

Liidese loomise ja toe eest vastutab 1992. aastal Intel Corporationi juhtimisel asutatud PCI Special Interest Group. Samal ajal ilmus selle esimene versioon, mis avaldati spetsiaalselt Pentiumi, Pentium Pro ja 486 protsessorite funktsionaalsuse rakendamiseks.

Järgmisel aastal ilmus järgmine mudel 2.0 ja veel 3 aasta pärast - 2.1, mis oli populaarsuse tipus. Tõsi, 2 aasta pärast jõudis arvutigraafika uuele tasemele ja PCI ei vastanud enam selle nõuetele. Seejärel hakati videokaarte ühendama toona uue pistiku kaudu.

Kuid liides, mida me kaalume, kaotas oma positsiooni alles 2005. aastal. Selle aja jooksul on sellest välja tulnud palju põlvkondi, kuid ma arvan, et te ei taha nendega oma pead vaevata. Pealegi on tavakasutaja jaoks nendevahelised erinevused tähtsusetud või arusaamatud.

PCI spetsifikatsioonid

Põhilised pordiparameetrid, mida peaksite teadma:

  • Sagedus - 33,33 või 66,66 megahertsi, teave saadetakse sünkroonselt;
  • Biti suurus - nagu tavaliselt, 32 või 64 bitti;
  • Mälu ja I/O portide aadressiruum on sama - 4 baiti (32 bitti);
  • Teine aadressiruum (konfiguratsioon) 1 funktsiooni kohta on 256 baiti;
  • 32-bitise ja 33 MHz mudeli maksimaalne kiirus on 133 megabaiti sekundis;
  • Pinge - 3,3 või 5 volti;
  • Seal on Multiply bus master funktsioon, see tähendab, et samal siinil saab korraga töötada mitu kõvaketta kontrollerit.

Erinevus PCI-Expressiga

See on oma eelkäija kaasaegne modifikatsioon. See põhineb PCI tarkvaramudelil, kuid oluliselt täiustatud jõudlusega. Enamik seadmeid toodetakse praegu selle liidesega.


Esimene erinevus nende vahel on see, et vananenud versioon on paralleelne ja uus on järjestikune. See tähendab, et teisel juhul on kahesuunaline ühendus, mis võib sisaldada mitut rida (alates x1 kuni x32). Mida rohkem neid on, seda suurem on töö kiirus.

Olgu kuidas on, kaasaegse bussi läbilaskevõime on suurem kui vananenud bussil. Võrdluseks: 66 MHz sagedusega PCI on 266 MB/s ja 16 rajaga PCI-E 3. põlvkond 32 GB/s.

Nüüd teate PCI põhitõdesid.

Soovitan teil selle teabega mitte peatuda ja saada uusi teadmisi meie ajaveebi teistest artiklitest.

WiFi moodulid ja muud sarnased seadmed. Intel alustas selle bussi arendamist 2002. aastal. Nüüd töötab mittetulundusühing PCI Special Interest Group selle bussi uusi versioone.

Hetkel on PCI Express siin täielikult välja vahetanud sellised vananenud siinid nagu AGP, PCI ja PCI-X. PCI Express siin asub emaplaadi allosas horisontaalasendis.

PCI Express on siin, mis töötati välja PCI siini baasil. Peamised erinevused PCI Expressi ja PCI vahel peituvad füüsilises kihis. Kui PCI kasutab jagatud siini, siis PCI Express kasutab tähe topoloogiat. Iga seade on ühendatud eraldi ühendusega ühise lülitiga.

PCI Expressi tarkvaramudel järgib suures osas PCI mudelit. Seetõttu saab enamikke olemasolevaid PCI-kontrollereid hõlpsasti muuta PCI Expressi siini kasutamiseks.

PCI Expressi ja PCI pesad emaplaadil

Lisaks toetab PCI Express siini uusi funktsioone, näiteks:

  • Seadmete kuumühendamine;
  • Garanteeritud andmevahetuskiirus;
  • Energia juhtimine;
  • Edastatud teabe terviklikkuse jälgimine;

Kuidas PCI Expressi siin töötab?

PCI Express siin kasutab seadmete ühendamiseks kahesuunalist jadaühendust. Lisaks võib sellisel ühendusel olla üks (x1) või mitu (x2, x4, x8, x12, x16 ja x32) eraldi rida. Mida rohkem neid liine kasutatakse, seda suuremat andmeedastuskiirust suudab PCI Expressi siin pakkuda. Sõltuvalt toetatud ridade arvust on emaplaadi klassi suurus erinev. Seal on ühe (x1), nelja (x4) ja kuueteistkümne (x16) joonega pesasid.

PCI Expressi pesa mõõtmete visuaalne demonstratsioon

Pealegi võib iga PCI Expressi seade töötada mis tahes pesas, kui pesas on sama või mitu rida. See võimaldab paigaldada x1 pistikuga PCI Expressi kaardi emaplaadi x16 pessa.

PCI Expressi ribalaius sõltub radade arvust ja siini versioonist.

Ühesuunaline/mõlemad suunad Gbit/s

Ridade arv

PCIe 1.0 2/4 4/8 8/16 16/32 24/48 32/64 64/128
PCIe 2.0 4/8 8/16 16/32 32/64 48/96 64/128 128/256
PCIe 3.0 8/16 16/32 32/64 64/128 96/192 128/256 256/512
PCIe 4.0 16/32 32/64 64/128 128/256 192/384 256/512 512/1024

PCI Expressi seadmete näited

PCI Expressi kasutatakse peamiselt diskreetsete videokaartide ühendamiseks. Alates selle bussi tulekust kasutavad seda absoluutselt kõik videokaardid.

GIGABYTE GeForce GTX 770 graafikakaart

Kuid see pole veel kõik, mida PCI Express siin suudab teha. Seda kasutavad teiste komponentide tootjad.

SUS Xonar DX helikaart

SSD-draiv OCZ Z-Drive R4 Enterprise

Kus kasutatakse mittesüttivaid kangaid www.algo-textile.ru. Sääsevõrkude tarvikud sääsevõrkudele 2-sklad.ru.

PCI ja PCI-X

PCI ja PCI-X siinid

Sissejuhatus

PCI ja PCI-X siinid on tänapäevaste arvutite peamised sisend-/väljundlaiendussiinid; videoadapterite ühendamiseks täiendab neid AGP-port. I/O laiendussiinid (Expansion Bus) on süsteemitasemel ühenduvus: need võimaldavad adapteritel ja välisseadmete kontrolleritel otse kasutada arvutisüsteemi ressursse – mälu ja I/O aadressiruumi, katkestusi, otsejuurdepääsu mälule. Laiendussiinidega ühendatud seadmed saavad ise neid siine juhtida, pääsedes ligi teistele arvutiressurssidele. Laiendussiinid on mehaaniliselt teostatud pesade (pesakonnektorite) või tihvtidega; Neid iseloomustab juhtmete lühike pikkus, see tähendab, et need on puhtalt kohalikud, mis võimaldab neil saavutada suuri töökiirusi. Neid siine ei pruugita konnektoritesse väljastada, vaid neid kasutatakse integreeritud emaplaatide seadmete ühendamiseks.

Alguses tutvustati PCI siini laiendusena (mezzanine siin) ISA siiniga süsteemidele. See töötati välja Pentiumi protsessoreid silmas pidades, kuid töötas hästi ka i486 protsessoritega. Hiljem sai PCI-st mõneks ajaks kesksiin: see ühendati protsessori siiniga suure jõudlusega sillaga (“põhjasild”), mis oli osa emaplaadi kiibistikust. Ülejäänud I/O laiendussiinid (ISA/EISA või MCA), samuti kohalik ISA-laadne X-BUS siin ja LPC liides, millega on ühendatud emaplaadi kiibid (ROM BIOS, katkestuskontrollerid, klaviatuurid, DMA , COM- ja LPT-pordid, HDD ja muud “pisiasjad”), mis on ühendatud PCI siiniga “lõuna-silla” kaudu. Kaasaegsetes “jaoturi” arhitektuuriga emaplaatides on PCI siini perifeeriasse viidud, ilma et see kahjustaks selle sidekanali mahtu protsessori ja mäluga, aga ka laadimata seadmeid teistele transiitliiklusega siinidele.

PCI-siin on sünkroonne – kõik signaalid püütakse kinni CLK signaali positiivse servaga (servaga). Nominaalseks sünkroniseerimissageduseks loetakse 33,3 MHz, vajadusel saab seda alandada. Alates versioonist PCI 2.1 on võimalik sagedust tõsta 66,6 MHz-ni, kui kõik siinis olevad seadmed “nõustuvad”. PCI-X-is võib sagedus ulatuda 133 MHz-ni.

PCI kasutab paralleelselt multipleksitud aadressi/andmeside (AD) siini, mille tüüpiline laius on 32 bitti. Spetsifikatsioon määratleb võimaluse laiendada biti sügavust 64 bitini; PCI-X versioon 2.0 määratleb ka 16-bitise siini valiku. Siini sagedusel 33 MHz ulatub teoreetiline läbilaskevõime 32-bitise siini puhul 132 MB/s ja 64-bitise siini puhul 264 MB/s; sünkroniseerimissagedusel 66 MHz - vastavalt 264 MB/s ja 528 MB/s. Need tippväärtused saavutatakse aga ainult pakettedastuse ajal: protokolli ülekoormuse tõttu on siini tegelik keskmine läbilaskevõime madalam.

PCI ja PCI-X siinide ning arvutiga ühilduvate arvutite teiste laiendussiinide võrdlusomadused on toodud tabelis. 1.1. ISA-siin lahkub lauaarvutitest, kuid säilitab oma positsiooni tööstuslikes ja sisseehitatud arvutites, nii traditsioonilises pesa versioonis kui ka "sandwich" PC/104 versioonis. Sülearvutites kasutatakse laialdaselt PCMCIA pesasid koos PC-kaardi ja kaardibussi siinidega. LPC siin on kaasaegne ja odav vahend mitteressursimahukate seadmete ühendamiseks emaplaadiga.

Rehv Maksimaalne läbilaskevõime MB/s DMA kanalid Bussimeister ACFG Andmete laius Aadressi suurus Sagedus MHz
ISA-8 4 3 - - 8 20 8
ISA-16 8
7
+
-
16
24
8
LPC 6,7
7
+
-
8/16/32
32
33
EISA
33,3 7 +
+
32
32
8,33
MCA-16
16
-
+
+
16
24
10
MCA-32
20
-
+
+
32
32
10
VLB
132
-
(+)
-
32/64
32
33-50(66)
PCI
133-533
-
+
+
32/64
32/64
33/66
PCI-X
533-4256
-
+
+
16/32/64
32/64
66-133
PCI Express
496-15872
-
+
+
1/2/4/8/12/16/32
32/64
2,5 GHz
AGP 1x/2x/4x/8x
266/533/1066/2132
-
+
+
32
32/64
66
PCMCIA
10/22
+
-
+
8/16
26
10
Kaardibuss 132 - + + 32 32 33

ACFG1- Toetab automaatset konfigureerimist. ISA jaoks on PnP hiline lisand, mida rakendavad adapterid ja tarkvara.

PCI ja PCI-X siini signaalimisprotokoll

Infovahetus PCI ja PCI-X siinil on korraldatud tehingutena – loogiliselt sooritatud vahetusoperatsioonidena. Tüüpiline tehing hõlmab kahte seadet: vahetusinitsiaatorit, mida tuntakse ka ülemseadmena, ja sihtseadet, mida nimetatakse ka alamseadmeks. Nende seadmete vahelise suhtluse reeglid määrab PCI siini protokoll. Seade suudab jälgida siinis toimuvaid tehinguid ilma osalejaks olemata (signaale sisestamata); Termin Snooping vastab jälgimisrežiimile. On olemas spetsiaalne tehingutüüp (Special Cycle) - leviedastus, mille käigus algataja ei suhtle protokolli järgi ühegi seadmega. Iga tehing täidab ühe käsu, mis tavaliselt loeb või kirjutab andmeid määratud aadressile. Tehing algab aadressifaasiga, milles algataja määrab käsu ja sihtaadressi. Järgneda võivad andmefaasid, kus üks seade (andmeallikas) paneb andmed siinile ja teine ​​(valamu) loeb neid. Tehinguid, millel on mitu andmefaasi, nimetatakse paketttehinguteks. On ka üksikuid tehinguid (ühe andmefaasiga). Tehingu saab lõpule viia ilma andmefaasideta, kui sihtseade (või algataja) ei ole vahetuseks valmis. PCI-X siinile on lisatud atribuudi faas, mille käigus edastatakse tehingu kohta lisateavet.

PCI ja PCI-X siini signaalimisprotokoll

Siiniliidese signaalide koostis ja eesmärk on toodud allolevas tabelis. Kõikide signaaliliinide olekuid tajub positiivne serv CLK ja neid momente on edasises kirjelduses mõeldud siinitsüklitena (joonistel tähistatud vertikaalsete punktiirjoontega). Erinevatel aegadel juhivad samu signaaliliine erinevad siiniseadmed ning korrektseks (konfliktivabaks) “volituste üleandmiseks” on vajalik ajavahemik, mille jooksul ükski seade liini ei juhi. Ajadiagrammidel tähistab seda sündmust - nn piruetti (pööret) - paar poolringikujulist noolt.

Tabel. PCI siini signaalid

Signaal
Eesmärk
AD Aadress/andmed – multipleksitud aadress/andmesiin. Tehingu alguses edastatakse aadress, järgnevates tsüklites - andmed
C/B nr Command/Byte Enable – käsk/luba baitidele juurde pääseda. Järgmise siinitsükli tüübi määrav käsk määratakse aadressifaasis neljabitise koodiga
RAAM #
Raam. Signaali sissetoomine tähistab tehingu algust (aadressifaasi), signaali eemaldamine näitab, et järgnev andmeedastuse tsükkel on tehingus viimane
DEVSEL#
Seadme valimine - seade on valitud (juhtimiskeskuse vastus sellele adresseeritud tehingule)
IRDY#
Initiator Ready – põhiseadme valmisolek andmevahetuseks
TRDY#
Target Ready – juhtimiskeskuse valmisolek andmevahetuseks
STOP#
CPU-lt taotlus ülemseadmele praeguse tehingu peatamiseks
LUKKU#
Siini lukustussignaal katkematu töö tagamiseks. Kasutatakse silla poolt, mis nõuab ühe toimingu sooritamiseks mitut PCI tehingut
REQ#
Taotlus – peaseadme taotlus siini arestimiseks
GNT#
Grant - siini juhtimise andmine kaptenile
PAR
Paarsus – ühine paarsusbitt AD ja C/BE# ridade jaoks
PERR#
Parity Error — paarsusvea signaal (kõikide tsüklite jaoks, välja arvatud eritsüklid). Loob mis tahes seade, mis tuvastab vea
PME#
Toitehalduse sündmus - signaal sündmuste kohta, mis põhjustavad muutusi tarbimisrežiimis (PCI 2.2-s kasutusele võetud lisasignaal)
CLKRUN#
Kell töötab – siin töötab nominaalsel taktsagedusel. Signaali eemaldamine tähendab tarbimise vähendamiseks sünkroonimise aeglustumist või peatamist (mobiilirakenduste puhul)
PRSN#
Olevik – plaadi kohaloleku indikaatorid, mis kodeerivad energiatarbimise päringu. Laienduskaardil on GND siiniga ühendatud üks või kaks LED-liini, mida tajub emaplaat
RST#
Lähtesta - lähtestage kõik registrid nende algolekusse (klõpsake nuppu "Lähtesta".
ja taaskäivitamisel)
IDSEL
Initialization Device Select – seadme valik konfiguratsiooni lugemis- ja kirjutamistsüklites; Nendele tsüklitele reageerib seade, mis tuvastab sellel liinil kõrge signaalitaseme
SERR#
Süsteemi viga – süsteemiviga. Aadressi või andmepaarsuse viga spetsiaalses kaadris või muu seadme tuvastatud katastroofiline viga. Aktiveerib mis tahes PCI-seade ja kutsub NMI-d
REQ64#
64-bitise taotlus – 64-bitise vahetuse taotlus. Signaali sisestab 64-bitine initsiaator, see langeb ajaliselt kokku FRAME# signaaliga. Lähtestamise lõpetamise ajal (RST# signaal) annab 64-bitisele seadmele signaali, et see on ühendatud 64-bitise siiniga. Kui 64-bitine seade seda signaali ei tuvasta, peab see konfigureerima end ümber 32-bitisele režiimile, keelates suurebaidilised puhverahelad
ACK64#
64-bitise vahetuse kinnitus. Signaali sisestab 64-bitine protsessor, mis on oma aadressi ära tundnud, samaaegselt koodiga DEVSEL#. Kui seda kinnitust ei esitata, sunnib algataja vahetust teostama 32-bitisel tasemel
INTA#, INTB#, INTC#, INTD#
Katkestus A, B, C, D - katkestuspäringu read, taseme tundlikkus, aktiivne tase - madal, mis võimaldab ridade eraldamist (jagamist)
CLK
Kell — siini taktsagedus. Peaks jääma vahemikku 20-33 MHz, alates PCI 2.1-st võib see olla kuni 66 MHz, PCI-X-is kuni 100 ja 133 MHz
M66EN
66MHz Luba - taktsageduse eraldusvõime kuni 66 MHz (kaartidel 33 MHz on maandatud, 66 MHz puhul tasuta)
PCIXCAP (38B)

PCI-X võimalused: PCI-plaatidel - maandatud, PCI-X133-l ühendatud maandusega läbi 0,01 µF kondensaatori, PCI-X66 puhul - paralleelse RC-ahelaga 10 kOhm, 0,01 µF.

SDONE
Snoop Done – annab märku, et praeguse tehingu snoop-tsükkel on lõppenud. Madal tase näitab, et mälu ja vahemälu sidususe jälgimise tsükkel on mittetäielik. Valikuline signaal, mida kasutavad ainult vahemäluga siiniseadmed. PCI 2.2 seisuga aegunud
SBO#
Snoop Backoff - praegune juurdepääs siini abonendi mälule jõuab muudetud vahemälu reale. Valikuline signaal, mida kasutavad tagasikirjutusalgoritmi ajal ainult vahemäluga siiniabonendid. PCI 2.2 seisuga aegunud
SMBCLK
SMBus Clock - SMBus siini kellasignaal (I2C liides). Kasutusele võetud alates PCI 2.3 versioonist
SMBDAT
SMBus Data - SMBus siini jadaandmed (I2C liides). Kasutusele võetud alates PCI 2.3 versioonist
TCK
Test Clock – JTAG testliidese sünkroonimine
TDI
Test Data Input – JTAG testliidese sisendandmed
TDO
Test Data Output – JTAG testliidese väljundandmed
TMS
Test Mode Select – valige JTAG testliidese režiim
TRST
Test Logic Reset – lähtestage testloogika

Igal ajahetkel saab siini juhtida ainult ühe peaseadmega, mis on saanud selleks õiguse vahekohtunikult. Igal ülemseadmel on paar signaali – REQ# siini juhtimise taotlemiseks ja GNT# siini juhtimise lubamise kinnitamiseks. Seade saab tehingut alustada (FRAME# signaali seadistada) ainult siis, kui see võtab vastu aktiivse GNT# signaali ja ootab, kuni siini tegevust ei toimu. Pange tähele, et puhkeaega oodates võib kohtunik "mõtet muuta" ja anda bussi juhtimise teisele kõrgema prioriteediga seadmele. GNT# signaali eemaldamine takistab seadmel järgmise tehingu alustamist ning teatud tingimustel (vt allpool) võib sundida seda käimasolevat tehingut lõpetama. Bussi kasutamise taotluste arbitraaži tegeleb spetsiaalne sõlm - vahekohtunik, mis on osa seda bussi keskusega ühendavast sillast. Prioriteediskeem (fikseeritud, ring-robin, kombineeritud) määratakse vahekohtuniku programmeerimisega.

Aadresside ja andmete jaoks kasutatakse ühiseid multipleksitud AD-liine. Neli multipleksitud C/BE liini tagavad juhiste kodeerimise aadressifaasis ja baitide eraldusvõime andmefaasis. Kirjutamistoimingutes lubavad C/BE read kasutada andmebaite samaaegselt nende olemasoluga AD siinil lugemistehingutes, need signaalid viitavad järgmise andmefaasi baitidele. Aadressifaasis (transaction start) aktiveerib juht FRAME# signaali, edastab sihtaadressi AD siinil ja edastab C/BE# liinidel informatsiooni tehingu tüübi (käskluse) kohta. Adresseeritud sihtseade vastab DEVSEL# signaaliga. Peaseade näitab oma valmisolekut andmevahetuseks IRDY# signaaliga seda valmisolekut saab seadistada enne DEVSEL# vastuvõtmist. Kui sihtseade on andmete vahetamiseks valmis, seab see signaali TRDY#. Andmeid edastatakse AD siinil ainult siis, kui signaalid IRDY# ja TRDY# on samaaegselt olemas. Neid signaale kasutades koordineerivad juht- ja sihtseadmed oma kiirusi ooteolekute sisseviimisega. Alloleval joonisel on kujutatud vahetuse ajastusskeem, kus nii ülem- kui ka sihtseade sisestavad ootekellasid. Kui mõlemad sisestaksid valmis signaalid aadressifaasi lõpus ja ei eemaldaks neid enne vahetuse lõppu, siis edastataks igas aadressifaasi järgses taktitsüklis 32 bitti andmeid, mis tagaks vahetuse maksimaalse jõudluse. Lugemistehingutes on pärast aadressifaasi vaja pirueti jaoks lisakell, mille jooksul algataja lõpetab AD liini juhtimise; Sihtseade suudab AD siini juhtimise üle võtta alles järgmises taktitsüklis. Kirjutamistehingus pole piruetti vaja, sest algataja edastab andmed.

PCI siinis käsitletakse kõiki tehinguid pakettidena: iga tehing algab aadressifaasiga, millele võib järgneda üks või mitu andmefaasi. Andmefaaside arv paketis ei ole otseselt näidatud, kuid viimase andmefaasi taktitsüklis eemaldab ülemseade IRDY# signaali sisestamisel signaali FRAME#. Üksikute tehingute puhul on FRAME# signaal aktiivne ainult ühe taktitsükli jooksul. Kui seade ei toeta alamrežiimis paketttehingut, peab ta taotlema paketttehingu lõpetamist esimese andmefaasi ajal (kehtides STOP# signaali samaaegselt TRDY#-ga). Vastuseks sellele viib ülem antud tehingu lõpule ja jätkab järgneva tehingu vahetamist järgmise aadressiväärtusega. Pärast viimast andmefaasi eemaldab juhtseade IRDY# signaali ja siin läheb jõudeolekusse (Idle) – mõlemad signaalid: FRAME# ja IRDY# on passiivses olekus.

Algataja saab alustada järgmist tehingut ilma puhkeperioodita, määrates FRAME# samaaegselt IRDY# eemaldamisega. Selliseid kiireid külgnevaid tehinguid (Fast Back-to-Back) saab adresseerida kas ühele või erinevatele sihtseadmetele. Esimest tüüpi kiireid külgnevaid tehinguid toetavad kõik sihtseadmena töötavad PCI-seadmed. Teist tüüpi külgnevate tehingute tugi (selline tugi on valikuline) on tähistatud olekuregistri bitiga 7. Algataja saab (võimaluse korral) kasutada kiireid külgnevaid tehinguid erinevate seadmetega (loa määrab käsuregistri bitt 9) ainult siis, kui kõik siiniagendid lubavad kiireid kõnesid. Andmete vahetamisel PCI-X režiimis ei ole kiired külgnevad tehingud lubatud.

Siiniprotokoll tagab vahetuse töökindluse – ülemseade saab alati infot sihtseadme tehingu töötlemise kohta. Vahetuse töökindluse suurendamise vahendiks on paarsuskontrolli kasutamine: AD ja C/BE# read nii aadressifaasis kui ka andmefaasis on kaitstud paarsusbitiga PAR (nende ridade seatud bittide arv, sealhulgas PAR, peab olema paaris). Tegelik PAR-väärtus ilmub siinile AD ja C/BE# liinide suhtes ühe taktitsükli viivitusega. Kui tuvastatakse viga, genereerib seade PERR# signaali (nihutatakse ühe kella võrra pärast kehtiva paarsusbiti ilmumist siinile). Pariteedi arvutamisel andmeedastuse ajal võetakse arvesse kõiki baite, sealhulgas kehtetuid baite (märgitud kõrge C/BEx# signaaliga). Biti olek peab isegi kehtetute andmebaitide korral jääma andmefaasi ajal stabiilseks.

Iga tehing siinis peab olema plaanipäraselt lõpule viidud või katkestatud ning buss peab minema puhkeolekusse (signaalid FRAME# ja IRDY# on passiivsed). Tehingu lõpuleviimise algatab põhiseade või sihtseade.

Kapten saab tehingu lõpule viia ühel järgmistest viisidest:

  • lõpetamine – tavaline lõpetamine andmevahetuse lõppedes;
  • time-out — ajalõpu järgi valmimine. Tekib siis, kui peamise siini juhtseade eemaldatakse tehingu ajal (eemaldades GNT# signaali) ja selle latentsustaimer aegub. See võib juhtuda, kui adresseeritud sihtseade on ootamatult aeglane või tehing on ajastatud liiga pikaks. Lühikesed tehingud (ühe või kahe andmefaasiga), isegi kui GNT# signaal eemaldatakse ja taimer käivitatakse, lõpetatakse normaalselt;
  • master-Abort – Tehingu katkestamine, kui juhtseade ei saa sihtseadmelt vastust (DEVSEL# signaal) määratud aja jooksul.

Tehingu saab lõpetada sihtseadme algatusel; Selleks võib see sisestada STOP# signaali. Võimalik on kolme tüüpi tehingu lõpetamine:

  • uuesti proovimine - kordamine, STOP# signaali sisseviimine passiivse TRDY# signaaliga enne esimest andmefaasi. Selline olukord tekib siis, kui sihtseadmel ei ole sisemise hõivatuse tõttu aega esimesi andmeid õigeaegselt toota (16 taktitsüklit). Korduskatse katkestamine on märguanne juhtseadmele sama tehingu taaskäivitamiseks;
  • disconnect - lahtiühendamine, STOP# signaali sisseviimine esimese andmefaasi ajal või pärast seda. Kui STOP# signaal sisestatakse siis, kui järgmise andmefaasi TRDY# signaal on aktiivne, siis need andmed edastatakse ja tehing lõpetatakse. Kui STOP# signaal on seatud siis, kui signaal TRDY# on passiivne, siis sooritatakse tehing ilma järgmise faasi andmeid edastamata. Ühenduse katkestamine toimub siis, kui sihtseade ei suuda õigeaegselt väljastada ega vastu võtta järgmist pakettandmete osa. Ühenduse katkestamine on juhis ülemale selle tehingu taaskäivitamiseks, kuid muudetud algusaadressiga;
  • target-abort - rike, STOP# signaali sisseviimine samaaegselt signaali DEVSEL# eemaldamisega (varasematel juhtudel oli STOP# signaali ilmumisel DEVSEL# signaal aktiivne). Pärast seda andmeid enam ei edastata. Keeldumine toimub siis, kui sihtseade tuvastab saatusliku vea või muud tingimused, mille tõttu ta ei saa enam antud päringut teenindada (sealhulgas toetamata käsk).

Kolme tüüpi tehingute lõpetamise kasutamine ei ole kõigi sihtseadmete jaoks vajalik, kuid iga peaseade peaks olema valmis tehingute lõpetamiseks mis tahes nimetatud põhjustel.

Katse lõpetamise tüüpi kasutatakse hilinenud tehingute korraldamiseks. Edasilükatud tehinguid kasutavad ainult aeglased sihtseadmed ja PCI-sillad tehingute teisele siinile tõlkimisel. Katkestades (algataja jaoks) uuesti proovimise tingimusega tehingu, täidab sihtseade tehingu sisemiselt. Kui algataja kordab seda tehingut (annab andmefaasis sama käsu sama aadressiga ja sama C/BE# signaalide komplektiga), on sihtseadmel (või sillal) tulemus juba valmis (andmete lugemine või kirjutamise edenemine olek), et see naaseb kiiresti algatajale. Antud seadme poolt sooritatud poolelioleva tehingu tulemus peab seade või sild salvestama seni, kuni algataja tulemusi küsib. Ta võib aga tehingut korrata "unustada" (mõnede ebanormaalsete olukordade tõttu). Tulemuste salvestuspuhvri ületäitumise vältimiseks peab seade need tulemused ära viskama. Kukkumist saab teha ilma kõrvalmõjudeta, kui tehing lükati eellaadimist võimaldavasse mällu (atribuudiga prefetchable, vt allpool). Üldjuhul ei saa teist tüüpi tehingutest karistamatult loobuda (nende puhul võib andmete terviklikkus olla rikutud), väljaviskamine on lubatud alles pärast 215 siinitsükli edutut kordamist (kui käivitub kasutuselt kõrvaldamise taimer). Seade saab sellest erandist teatada oma draiverile (või kogu süsteemile).

Tehingu algataja võib taotleda PCI siini eksklusiivset kasutamist vahetusoperatsiooni kestel, mis nõuab mitut siinitehingut. Näiteks kui CPU täidab PCI-seadmele kuuluvas mäluelemendis andmete muutmise käsu, peab ta lugema seadmest andmeid, muutma neid oma ALU-s ja tagastama tulemuse seadmele. Selleks, et teiste algatajate tehingud ei segaks seda toimingut (mis võib põhjustada andmete terviklikkuse rikkumisi), teostab põhisild seda blokeeritud toiminguna – LOCK# siini signaal edastatakse kogu toimingu ajaks. Tavalised PCI-seadmed (mitte sillad) ei kasuta (ega tooda) seda signaali mingil viisil; seda kasutavad vaid sillad vahekohtu kontrollimiseks.

Riistvarakatkestused arvutiga ühilduvates arvutites

PCI-seadmetel on võimalus asünkroonsetest sündmustest katkestuste abil signaali anda. PCI siinil on saadaval nelja tüüpi katkestuste signaalimine:

  • traditsiooniline juhtmega signaalimine INTx liinide kaudu;
  • energiajuhtimise sündmuste juhtmega signaalimine PME# liini kaudu;
  • signaalimine sõnumite abil - MSI;
  • andes märku saatuslikust veast liinil SERR#.

See peatükk hõlmab kõiki neid signalisatsioonitüüpe, aga ka üldist pilti arvutiga ühilduvate arvutite riistvarakatkestuse toest.

Riistvarakatkestused arvutiga ühilduvates arvutites

Riistvarakatkestused annavad protsessori vastuse sündmustele, mis toimuvad käivitava programmikoodi suhtes asünkroonselt. Tuletame meelde, et riistvaralised katkestused jagunevad maskeeritavateks ja mittemaskeeritavateks. Katkestussignaali korral peatab x86 protsessor jooksva käsuvoo täitmise, salvestades virna oleku (lipud ja tagastusaadress) ning teostab katkestuste käsitlemise protseduuri. Konkreetne töötlemisprotseduur valitakse katkestuste tabelist katkestusvektoriga - selles tabelis oleva elemendi ühebaidise numbriga. Katkestuste vektor tuuakse protsessorisse erineval viisil: mittemaskeeritavate katkestuste puhul on see fikseeritud, maskeeritavate katkestuste puhul teatab spetsiaalne katkestuste kontroller. Lisaks riistvaralistele katkestustele on x86 protsessoritel ka sisemised katkestused – erandid, mis on seotud käskude täitmise erijuhtudega ja tarkvara katkestustega. Erandite puhul määrab vektori eritingimus ise ja Intel jätab esimesed 32 vektorit (0-31 või 00-1Fh) erandite jaoks. Tarkvarakatkestuste puhul sisaldub vektori number käsus endas (tarkvarakatkestused on vaid spetsiifiline viis protseduuride numbri järgi kutsumiseks, kusjuures lipuregister salvestatakse kõigepealt virna). Kõik need katkestused kasutavad sama 256 võimalikust vektorist koosnevat komplekti. Ajalooliselt kattuvad riistvarakatkestuste vektorid, välja arvatud BIOS-i ja DOS-i teenusekõnede jaoks kasutatud tarkvarakatkestuste vektorid ja vektorid. Seega peab paljude vektornumbrite puhul katkestustabelis viidatud protseduur sisaldama esmalt programmikoodi, mis määrab, miks see välja kutsuti: erandi tõttu, riistvaralise katkestuse tõttu või mõne süsteemiteenuse väljakutsumiseks. Seega kutsutakse protseduur, mis tegelikult tagab protsessori reageerimise samale asünkroonsele sündmusele, alles pärast katkestuse allika tuvastamiseks tehtud toiminguid. Samuti märgime siinkohal ära, et sama katkestusvektorit saavad kasutada mitmed välisseadmed – see on nn katkestuste jagatud kasutamine, millest on allpool üksikasjalikult juttu.

Katkestusteenuse rutiini kutsumine protsessori reaalsetes ja kaitstud režiimides on oluliselt erinev:

  • reaalrežiimis sisaldab katkestustabel 4-baidiseid kaugosutajaid (segment ja nihe) vastavatele protseduuridele, mis kutsutakse välja kaugkõnega (Call Far koos eelsalvestatud lippudega). Tabeli suurus (256 × 4 baiti) ja asukoht (alates aadressist 0) on fikseeritud;
  • Kaitstud režiimis (ja konkreetsel juhul V86 režiimis) sisaldab tabel 8-baidiseid katkestuste deskriptoreid, milleks võivad olla katkestusväravad, lõksväravad või ülesannete väravad. Tabeli suurust saab vähendada (maksimaalselt - 256 × 8 baiti), tabeli asukohta saab muuta (määrab protsessori IDT registri sisu). Katkestuste töötleja kood peab olema vähemalt sama privilegeeritud kui katkestatud ülesande kood (muidu käivitatakse turvaerand). Sel põhjusel peavad katkestuste töötlejad töötama OS-i kerneli tasemel (nullõiguste tasemel). Õiguste taseme muutmine töötleja kutsumisel toob kaasa lisaaega, mis kulub virna uuesti määratlemisele. Katkestused, mis põhjustavad ülesannete vahetamist (Task Gate'i kaudu), kulutavad palju aega konteksti vahetamisele - protsessoriregistrite mahalaadimisele vana ülesande olekusegmenti ja uue ülesande olekusegmendist laadimisele.

Kaitstud režiimiga operatsioonisüsteemide riistvarakatkestuste jaoks kasutatavad vektornumbrid erinevad reaalrežiimi operatsioonisüsteemides kasutatavatest, et need ei oleks vastuolus protsessori erandite jaoks kasutatavate vektoritega.

Protsessor reageerib alati mittemaskeeritavale katkestusele (NMI) (kui eelmise NMI teenindus on lõpetatud); See katkestus vastab fikseeritud vektorile 2. Arvutite mittemaskeeritavaid katkestusi kasutatakse saatuslike riistvaravigade signaalimiseks. Signaal NMI liinile tuleb mälu juhtimisahelatelt (paarsus või ECC), ISA siini juhtliinidelt (IOCHK) ja PCI siinilt (SERR#). NMI signaal blokeeritakse enne protsessorisse sisenemist, määrates pordi 070h biti 7 väärtusele 1, üksikud allikad on lubatud ja identifitseeritud pordi 061h bittide järgi:

  • bitt 2 R/W - ERP - luba juhtida RAM-i ja PCI siini SERR# signaali;
  • bitt 3 R/W - EIC - ISA siini juhtimise eraldusvõime;
  • bitt 6 R - IOCHK - juhtimisviga ISA siinil (IOCHK# signaal);
  • bitt 7 R - PCK - RAM-i paarsusviga või SERR# signaal PCI siinil.

Protsessori reaktsiooni maskeeritavatele katkestustele saab edasi lükata, lähtestades selle sisemise IF-lipu (CLI-käsk keelab katkestused, STI-käsk lubab). Maskeeritavaid katkestusi kasutatakse seadmete sündmustest signaalimiseks. Kui toimub sündmus, mis nõuab vastust, genereerib seadme adapter (kontroller) katkestusnõude, mis saadetakse katkestuskontrolleri sisendisse. Katkestuste kontrolleri ülesandeks on tuua katkestusnõue protsessorisse ja edastada vektor, mille järgi tarkvara katkestuste käsitlemise protseduur on valitud.

Seadme katkestamise rutiin peab seadme teenindamiseks tegema toiminguid, sealhulgas lähtestama selle päringu, et see saaks vastata järgmistele sündmustele, ja saatma katkestuskontrollerile lõpetamiskäske. Töötlemisrutiini kutsumisel salvestab protsessor automaatselt kõigi virna lippude väärtused ja lähtestab IF-lipu, mis keelab maskeeritavad katkestused. Sellest protseduurist naastes (kasutades IRET-i käsku) taastab protsessor salvestatud lipud, sealhulgas seatud (enne katkestust) IF-i, mis võimaldab taas katkestusi. Kui katkestuste käitleja töötamise ajal on vaja reageerida teistele katkestustele (kõrgema prioriteediga), siis peab STI käsk käitlejas olemas olema. See kehtib eriti pikkade käitlejate kohta; siin tuleks STI juhis sisestada võimalikult vara, kohe pärast kriitilist (mittekatkestatavat) sektsiooni. Katkestuste kontroller teenindab järgnevaid sama või madalama prioriteediga katkestusi alles pärast EOI (End Of Interrupt) käsu saamist.

IBM PC-ga ühilduvad arvutid kasutavad kahte peamist tüüpi katkestuskontrollereid:

  • PIC (Peripheral Interrupt Controller) on välisseadmete katkestuskontroller, tarkvara, mis ühildub "ajaloolise" 8259A kontrolleriga, mida kasutati esimestes IBM PC mudelites. Alates IBM PC/AT ajast on kasutatud paari kaskaad-PIC-i, mis võimaldab teenindada kuni 15 katkestuspäringu rida;
  • APIC (Advanced Peripheral Interrupt Controller) on täiustatud välisseadmete katkestuskontroller, mis on kasutusele võetud mitme protsessori süsteemide toetamiseks arvutites, mis põhinevad 4-5 põlvkonna protsessoritel (486 ja Pentium) ning seda kasutatakse ka tänapäeval hilisemate protsessorimudelite jaoks. Lisaks mitmeprotsessori konfiguratsioonide toetamisele võimaldab kaasaegne APIC suurendada saadaolevate katkestusliinide arvu ja käsitleda sõnumimootori (MSI) kaudu saadetud PCI-seadmete katkestustaotlusi. APIC-kontrolleriga varustatud arvuti peab suutma töötada standardse PIC-paariga ühilduvas režiimis. Selle režiimi aktiveerib riistvara lähtestamine (ja sisselülitamine), mis võimaldab kasutada vanu OS-i ja MS DOS-i rakendusi, mis ei tunne APIC-d ja multitöötlust.

Traditsiooniline skeem katkestustaotluste genereerimiseks paari PIC-i abil on näidatud alloleval joonisel.

Katkestuskontrolleri sisendid võtavad vastu päringuid süsteemiseadmetelt (klaviatuur, süsteemitaimer, CMOS-taimer, kaasprotsessor), emaplaadi välisseadmete kontrolleritelt ja laienduskaartidelt. Traditsiooniliselt on kõik päringuliinid, mida loetletud seadmed ei hõivata, kõigis ISA/EISA siini pesades. Need read on tähistatud IRQx-ga ja neil on ühine eesmärk (vt allolevat tabelit). Mõned neist liinidest on eraldatud PCI siinile. Tabelis on näidatud ka katkestuste prioriteedid – päringud on järjestatud kahanevas järjekorras. Kontrolleri päringuridadele, prioriteetsüsteemile ja mõnele muule parameetrile vastavate vektorite arvud määratakse kontrollerite lähtestamise ajal programmiliselt. Need põhisätted jäävad tarkvara ühilduvuse osas traditsioonilisteks, kuid erinevad reaal- ja kaitstud režiimis OS-ide vahel. Näiteks Windows OS-is on põhi- ja alamkontrollerite baasvektorid vastavalt 50h ja 58h.

Nimi (number 1) Vektor 2 Vektor 3 Kontroller/mask Kirjeldus
NMI 02h


IRQ0 08h 50h
#1/1h
Kanali juhtimine, mälupaarsus (XT-s - kaasprotsessor)
IRQ1 09h 51h
#1/2h
Klaviatuur
IRQ2 0 Ah 52h
#1/4h
XT - reserv, AT - pole saadaval (IRQ8-IRQ15 kaskaad on ühendatud)
IRQ8 70h
58h
#2/1h
CMOS RTC – reaalajas kell
IRQ9 71h
59h
#2/2h
Reserv
IRQ10 72h
5 Ah
#2/4h
Reserv
IRQ11 73h
5Bh
#2/8h
Reserv
IRQ12 74h
5Ch
#2/10h
PS/2-Mouse (reserv)
IRQ13 75h
5Dh
#2/20h
Matemaatika kaasprotsessor
IRQ14 76h
5 Eh
#2/40h
HDC - HDD kontroller
IRQ15 77h
5Fh
#2/80h
Reserv
IRQ3 0Bh
52h
#1/4h
COM2, COM4
IRQ4 0Ch
53h
#1/10h
COM1, COM3
IRQ5I 0Dh
54h
#1/20h
XT – HDC, AT – LPT2, heli (reserv)
IRQ6 0 Eh
55h
#1/40h
FDC - ujuvajami kontroller
IRQ7 0Fh
56h
#1/80h
LPT1 - printer

*1 Katkestustaotlusi 0, 1, 8 ja 13 ei väljastata laiendussiinidele.
*2 Reaalprotsessori režiimis töötamisel kuvatakse vektornumbrid.
*3 Windows OS-is töötades kuvatakse vektornumbrid.

Igale seadmele, mis vajab oma töö toetamiseks katkestusi, tuleb määrata oma katkestuse number. Katkestuste numbrite määramine toimub kahest küljest: esiteks tuleb katkestusi vajav adapter konfigureerida kasutama kindlat siiniliini (kas hüppajate või tarkvara abil). Teiseks peab adapterit toetavat tarkvara teavitama kasutatavast vektorinumbrist. PnP-süsteem ISA- ja PCI-siinide jaoks võib osaleda katkestuste määramise protsessis spetsiaalseid CMOS-i seadistusparameetreid kasutatakse päringuliinide jaotamiseks siinide vahel. Kaasaegsetel operatsioonisüsteemidel on võimalus muuta CMOS-i häälestuse kaudu tehtud jaotamise päringute määramist.

Pärast katkestussüsteemi konfigureerimist (katkestuskontrolleri initsialiseerimist, päringuliinide määramist seadmetele ja töötlemisprotseduuride viidate seadistamist) töödeldakse maskeeritavaid riistvarakatkestusi järgmiselt:

  • katkestuse sündmuse korral ergastab seade talle määratud katkestusnõude rea;
  • kontroller võtab vastu katkestuse allikatest päringu signaale (IRQx signaalid) ja maskeerimata päringu olemasolul saadab x86 protsessorile üldise katkestuse taotluse signaali (INTR signaal);
  • päringule vastates (kui IF-lipuga katkestused on lubatud) salvestab protsessor pinusse lipuregistri sisu ja tagastusaadressi, misjärel genereerib INTA (Interrupt Acknowledge) siinitsükli, mis edastatakse katkestuse kontroller;
  • INTA signaali vastuvõtmise hetkel salvestab katkestuskontroller oma päringu sisendite oleku - selleks hetkeks võis nende olek muutuda: võivad ilmuda uued päringud või kaduda "kannatamatu" seadme päring. Kontroller analüüsib sissetulevaid päringuid vastavalt programmeeritud prioriteetskeemile ja saadab protsessorile katkestusvektori, mis vastab kõrgeima prioriteediga maskeerimata päringule, mis on kontrolleri sisendis INTA siini käsu andmise ajal. Samal ajal teostab vastutav töötleja ka mõningaid toiminguid vastavalt kehtestatud prioriteedipoliitikale, võttes arvesse, milline vektor saadeti (milline päringutest läks teenusesse);
  • Pärast katkestusvektori vastuvõtmist kutsub protsessor oma numbri abil välja vastava katkestuste käsitlemise protseduuri. Kui antud katkestusvektorit ei kasutata mitte ainult riistvaraliste katkestuste, vaid ka erandite ja/või tarkvara katkestuste jaoks, siis peab rutiin esmalt kindlaks määrama, millise neist tüüpidest sündmus on. Selleks saab protseduur ühendust võtta PIC-kontrolleriga (lugeda ISR-registrit) ja analüüsida protsessoriregistrite seisu. Täiendavaid samme kaalutakse juhul, kui tuvastatakse riistvarakatkestus;
  • Katkestuse käsitlemise protseduur peab tuvastama katkestuse allika – määrama selle põhjustanud seadme. Kui antud päringunumbrit (ja seega ka vektorit) kasutavad ühiselt mitu seadet, saab katkestuse allika tuvastada ainult järjestikuse juurdepääsu kaudu iga seadme registritele. Sel juhul tuleks arvestada võimalusega saada päringuid mitmelt seadmelt samaaegselt või ühe katkestuse töötlemise ajal;
  • protseduur peab teenindama katkestuse allika seadet - tegema "kasulikke" toiminguid, mis on seotud sündmusega, millest seade märku andis. See teenus peaks tagama ka selle seadme katkestuse taotluse signaali eemaldamise. Jagatud katkestuste korral võib allikaid olla mitu ja kõik need vajavad hooldust;
  • kui katkestuse töötlemine võtab palju aega, mille jooksul süsteem peab vastama kõrgema prioriteediga päringutele, siis pärast kriitilist osa lisatakse töötlejasse STI käsk, mis määrab protsessoris katkestuse lubamise lipu (IF). . Sellest hetkest alates on võimalikud pesastatud katkestused, mis katkestavad antud töötleja töö mõne teise, kõrgema prioriteediga protseduuriga;
  • Katkestuste käsitlemise protseduur peab saatma kontrollerile käskluse katkestamise töötlemise lõpetamiseks EOI (End Of Interrupt), mille abil kontroller võimaldab järgnevalt signaali vastu võtta teenindatavast sisendist ja madalama prioriteediga sisenditest. Seda tuleb teha pärast katkestussignaali eemaldamist hooldatavatelt seadmetelt, vastasel juhul saadab kontroller pärast EOI-d teise päringu. Katkestuste töötleja, mille kohta päring on tulnud alamkontrollerilt, peab saatma EOI nii alam- kui ka ülemkontrollerile. Käsitleja osa, mis algab EOI käsu andmisest kuni lõpetamiseni (IRET käsk), peab olema katkematu ehk see on kriitiline lõik. Kui töötleja lubas pesastatud katkestusi, peab enne EOI käsu andmist olema katkestusi keelav CLI käsk;
  • katkestustöötlus lõpetatakse IRET-käsuga, millega protsessor naaseb katkestatud käsuvoo täitmise juurde, olles eelnevalt pinust välja otsinud lippude registri sisu. Sel juhul lubatakse riistvarakatkestused uuesti.

Seda järjestust kirjeldatakse seoses tavalise katkestuskontrolleriga (PIC), APIC-ga süsteemid muudavad katkestuste vektori kontrollerilt protsessorisse edastamise viisi ja MSI katkestused muudavad signaali edastamise viisi seadmest APIC-kontrollerisse. . Neid nüansse kirjeldatakse järgmistes osades.

Üldine informatsioon

PCI sillad (PCI Bridge) on spetsiaalne riistvara PCI (ja PCI-X) siinide omavaheliseks ja teiste siinidega ühendamiseks. Host Bridge'i kasutatakse PCI ühendamiseks arvuti keskosaga (süsteemimälu ja protsessor). Peasilla "auväärne kohustus" on genereerida kõnesid keskprotsessori kontrolli all olevasse konfiguratsiooniruumi, mis võimaldab hostil (keskprotsessoril) konfigureerida kogu PCI siini alamsüsteemi. Süsteemil võib olla ka mitu põhisilda, mis võimaldab pakkuda kõrgjõudlusega sidet keskusega suuremale hulgale seadmetele (seadmete arv ühel siinil on piiratud). Neist bussidest üks on tinglikult määratud põhibussiks (buss 0).

Täiendavate PCI siinide ühendamiseks kasutatakse PCI peer sildu (PeertoPeer Bridge). Need sillad lisavad alati täiendavat andmeedastust, nii et seadme ja jaoturi vahelise side tõhus jõudlus väheneb iga takistava sillaga.

PCMCIA, CardBus, MCA, ISA/EISA, X-Bus ja LPC siinide ühendamiseks kasutatakse spetsiaalseid sildu, mis sisalduvad emaplaadi kiibikomplektides või on eraldi PCI seadmed (kiibid). Need sillad teisendavad ühendatud siinide liideseid, sünkroonivad ja puhverdavad andmevahetust.

Iga sild on programmeeritav – talle on antud aadressivahemikud mälus ja seadmetele eraldatud sisend/väljundruumid selle siinidel. Kui praeguse tehingu CPU aadress silla ühel siinil (küljel) viitab vastaspoole siinile, tõlgib sild tehingu vastavale siinile ja tagab siini protokolli läbirääkimise. Seega teostab PCI-sildade kogum päringute marsruutimist mööda seotud siine. Kui süsteemil on mitu peasilda, siis ei pruugi erinevate siinide peal olevate seadmete vaheline ots-ots-marsruutimine olla võimalik: põhisillad võivad olla omavahel ühendatud ainult mälukontrolleri magistraalteede kaudu. Igat tüüpi PCI-tehingute tõlkimise toetamine peamiste sildade kaudu osutub sel juhul liiga keeruliseks ja seetõttu pole PCI spetsifikatsioonis seda rangelt nõutud. Seega pääsevad süsteemimälu juurde kõik aktiivsed seadmed kõikidel PCI siinidel, kuid peer-to-peer side võimalus võib sõltuda sellest, kas need seadmed kuuluvad ühte või teise PCI siini.

PCI-sildade kasutamine pakub selliseid võimalusi nagu:

  • võimaliku ühendatud seadmete arvu suurendamine, siini elektriliste spetsifikatsioonide piirangute ületamine;
  • PCI seadmete jaotus segmentideks - PCI siinid - erinevate omadustega bitisügavus (32/64 bitti), taktsagedus (33/66/100/133 MHz), protokoll (PCI, PC-X Mode 1, PCI-X Mode 2, PCI Express). Igal siinil on kõik abonendid võrdsed nõrgima osalejaga; seadmete õige paigutus siinidel võimaldab maksimaalse efektiivsusega kasutada seadmete ja emaplaadi võimalusi;
  • segmentide organiseerimine seadmete "kuum" ühendamise/lahtiühendamisega;
  • erinevatel bussidel asuvatelt algatajatelt tehingute samaaegse paralleelse täitmise korraldamine.

Iga PCI sild ühendab ainult kahte siini: esmase siini, mis asub hierarhia tipule lähemal, sekundaarse siiniga; Sillaliideseid, mille kaudu see on nende siinidega ühendatud, nimetatakse vastavalt primaarseks ja sekundaarseks. Lubatud on ainult puhtalt puutaoline konfiguratsioon, see tähendab, et kaks siini on omavahel ühendatud ainult ühe sillaga ja sildade “aasusid” pole. Antud silla sekundaarse liidesega teiste sildade kaudu ühendatud siine nimetatakse allutatud siinideks. PCI-sillad moodustavad PCI-siinide hierarhia, mille ülaosas on põhisillaga ühendatud põhisiin, nummerdatud null. Kui põhisildasid on mitu, siis nende bussidest (mis on võrdsed) on peamine see, millel on nullnumber.

Sild peab täitma mitmeid kohustuslikke funktsioone:

  • teenindada selle sekundaarse liidesega ühendatud siini:
  • teostab arbitraaži - REQx# päringu signaalide vastuvõtmine siiniülematelt ja neile õiguse andmine siini juhtimiseks GNTx# signaalidega
  • parkige siin - saatke mõnele seadmele GNTx# signaal, kui siini juhtimist ei nõua ükski master;
  • genereerida 0-tüüpi konfiguratsioonitsükleid üksikute IDSEL-signaalide moodustamisega adresseeritavale PCI-seadmele;
  • "tõmba" juhtsignaalid kõrgele tasemele;
  • määrata ühendatud seadmete võimalused ja valida neid rahuldav siini töörežiim (sagedus, bitisügavus, protokoll);
  • genereerida riistvara lähtestamine (RST#), lähtestades esmasest liidesest ja käsuga, teatades valitud režiimist spetsiaalse häirega.
  • pidama silla vastaskülgedel asuvate ressursside kaarte;
  • reageerima sihtseadme varjus tehingutele, mille juht on algatanud ühes liideses ja adresseeritud teises liideses asuvale ressursile; edastage need tehingud teisele liidesele, mis toimib ülemseadmena, ja edastab nende tulemused tõelisele algatajale.

Neid funktsioone täitvaid sildu nimetatakse läbipaistvateks sildadeks; Selliste sildade taga asuvate seadmetega töötamiseks pole vaja täiendavaid silladraivereid. Just neid sildu on kirjeldatud PCI Bridge 1.1 spetsifikatsioonis ja neile kui PCI-seadmetele on eriklass (06). Sel juhul eeldatakse ressursi adresseerimismudelit (mälu ja I/O): igal seadmel on antud süsteemis (arvutis) ainulaadsed (teistega mitte ristuvad) aadressid.

Samuti on olemas läbipaistmatud sillad (mittepaistev sild), mis võimaldavad korraldada eraldi segmente oma kohalike aadressiruumidega. Läbipaistmatu sild teostab aadressi translatsiooni (teisendamise) tehingute jaoks, mille algataja ja sihtseade asuvad silla vastaskülgedel. Kõik vastaspoole ressursid (aadressivahemikud) ei pruugi olla sellise silla kaudu kättesaadavad. Läbipaistmatuid sildu kasutatakse näiteks siis, kui arvutil on “intelligentne sisend/väljund” (I20) alamsüsteem, millel on oma I/O protsessor ja kohalik aadressiruum.

Üldine informatsioon

PCI siinil on algselt võimalus süsteemiressursse automaatselt konfigureerida (mälu- ja I/O-ruumid ning katkestusnõude read). Seadme automaatset konfigureerimist (aadresside ja katkestuste valik) toetavad BIOS ja OS-i tööriistad; see on keskendunud PnP-tehnoloogiale. PCI standard määrab iga funktsiooni jaoks konfiguratsiooniruumi kuni 256 registrist (8-bitist), mis ei ole määratud ei mälu- ega sisend-väljundruumile. Nendele pääseb juurde spetsiaalsete siinikäskude abil Configuration Read ja Configuration Write, mis on loodud ühe allpool kirjeldatud riist- ja tarkvaramehhanismi abil. Selles ruumis on alad, mis on vajalikud kõigi ja konkreetsete seadmete jaoks. Antud seadmel ei pruugi olla registreid kõigil aadressidel, kuid see peab toetama neile adresseeritud toimingute tavapärast lõpetamist. Sel juhul peaks olematute registrite lugemine tagastama nullid ja kirjutamine peaks toimuma tühikäigu toiminguna.

Funktsiooni konfiguratsiooniruum algab standardse päisega, mis sisaldab tootja, seadme ja selle klassi identifikaatoreid ning vajalike ja hõivatud süsteemiressursside kirjeldust. Päise struktuur on standardiseeritud tavaseadmetele (tüüp 0), PCI-PCI sildadele (tüüp 1), PCI-CardBus sildadele (tüüp 2). Päise tüüp määrab hästi tuntud registrite asukoha ja nende bittide eesmärgi. Päise järel võivad olla seadmepõhised registrid. Seadmete standardiseeritud võimaluste (võimekuse) jaoks (näiteks energiahaldus) on konfiguratsiooniruumis teadaoleva otstarbega registrite plokid. Need plokid on organiseeritud ahelateks, esimesele sellisele plokile viidatakse standardpäises (CAP_PTR); ploki esimeses registris on link järgmisele plokile (või 0, kui see plokk on viimane). Seega saab konfiguratsioonitarkvara ketti skaneerides nimekirja kõigist saadaolevatest seadme omadustest ja nende asukohtadest funktsioonide konfiguratsiooniruumis. PCI 2.3 määratleb järgmised CAP_ID-d, millest mõnda me vaatame:

  • 01 - energiamajandus;
  • 02 - AGP port;
  • 03 - VPD (Vital Product Data), andmed, mis annavad põhjaliku kirjelduse seadmete riistvara (võimalik, et ka tarkvara) omadustest;
  • 04 — pesade ja šassii nummerdamine;
  • 05 - MSI katkestab;
  • 06 - Hot Swap, kuum ühendus kompaktse PCI jaoks;
  • 07 - PCI-X protokolli laiendused;
  • 08 - reserveeritud AMD jaoks;
  • 09 - tootja äranägemisel (Vendor Specific);
  • 0Ah — silumisport (Debug Port);
  • 0Bh - PCI Hot Plug, "hot plug" standardvarustus.

PCI-X režiimi 2 seadmete jaoks on konfiguratsiooniruum laiendatud 4096 baidini; laiendatud ruumis võivad olla laiendatud kinnisvarakirjeldused.

Pärast kõva lähtestamist (või sisselülitamist) ei reageeri PCI-seadmed mälu- ja sisend-/väljundruumi juurdepääsudele ning on saadaval ainult konfiguratsiooni lugemiseks ja kirjutamiseks. Nendes toimingutes valitakse seadmed individuaalsete IDSEL-signaalide abil ning registreid lugedes õpib konfiguratsioonitarkvara tundma ressursinõudeid ja seadme võimalikke konfiguratsioonivõimalusi. Pärast seda, kui konfiguratsiooniprogramm on ressursside eraldanud (POST-i või OS-i alglaadimise ajal), kirjutatakse konfiguratsiooniparameetrid (baasaadressid) seadme konfiguratsiooniregistritesse. Alles pärast seda seatakse seadmed (täpsemalt funktsioonid) bittideks, mis võimaldavad neil vastata käskudele juurdepääsuks mälule ja I/O portidele ning juhtida siini ise. Selleks, et alati oleks võimalik leida toimiv konfiguratsioon, peavad kõik kaartide hõivatud ressursid olema oma ruumis teisaldatavad. Multifunktsionaalsete seadmete puhul peab igal funktsioonil olema oma konfiguratsiooniruum. Seade suudab kaardistada samu registreid nii mällu kui ka I/O ruumi. Sel juhul peavad mõlemad deskriptorid olema nende konfiguratsiooniregistrites, kuid draiver peab kasutama ainult ühte juurdepääsumeetodit (eelistatavalt mälu kaudu).

Konfiguratsiooniruumi päis kirjeldab kolme tüüpi aadresside vajadusi.

  • registreerib I/O ruumis);
  • I/O registrid on mällu vastendatud (Memory Mapped I/O). See on mäluala, millele tuleb juurde pääseda rangelt vastavalt sellele, mida vahetuse algataja nõuab. Juurdepääs nendele registritele võib muuta välisseadmete sisemist olekut;
  • mälu, mis võimaldab eellaaditavat mälu. See on mäluala, kus "lisa" lugemine (kasutamata tulemustega) ei too kaasa kõrvalmõjusid, kõiki baite loetakse sõltumatult BE# signaalidest ja üksikute baitide kirjutamist saab sildada (st see on mälu kõige puhtamal kujul).

Aadressinõuded on näidatud baasaadressiregistrites - BAR (Base Address Register). Konfiguratsiooniprogramm suudab määrata ka vajalike alade suuruse. Selleks peab see pärast riistvara lähtestamist lugema ja salvestama baasaadresside väärtused (need on vaikeaadressid), kirjutama igasse registrisse FFFFFFFFh ja lugema nende väärtuse uuesti. Vastuvõetud sõnades peate lähtestama tüübi dekodeerimisbitid (bitid mälu jaoks ja bitid I/O jaoks), inverteerima ja suurendama saadud 32-bitist sõna - tulemuseks on ala pikkus (ignoreeri portide bitte ). Meetod eeldab, et piirkonna pikkus on väljendatud kui 2n ja piirkond on loomulikult joondatud. Standardpäis mahutab kuni 6 baasaadressiregistrit, kuid 64-bitise adresseerimise kasutamisel väheneb kirjeldatud plokkide arv. Kasutamata BAR-registrid peaksid lugemisel alati nullid tagastama.

PCI toetab pärandseadmeid (VGA, IDE), mis deklareerivad end sellistena päises oleva klassikoodi järgi. Nende traditsioonilisi (fikseeritud) pordiaadresse konfiguratsiooniruumis ei deklareerita, kuid niipea, kui pordi juurdepääsu lubamise bit on seadistatud, lubatakse seadmetel ka neile aadressidele vastata.