Pci express -liittimien tyypit. Emolevyn liittimet: kuinka kytkeä

Kun vaihdat vain yhtä näytönohjainta, muista ottaa huomioon, että uudet mallit eivät välttämättä sovi emolevyllesi, koska laajennuspaikkoja ei ole vain useita, vaan niistä on myös useita eri versioita (sekä AGP:lle että PCI Expressille) . Jos et ole varma tietämykseesi tästä aiheesta, lue osio huolellisesti.

Kuten yllä totesimme, näytönohjain asetetaan tietokoneen emolevyn erityiseen laajennuspaikkaan, ja tämän paikan kautta videosiru vaihtaa tietoja järjestelmän keskusprosessorin kanssa. Emolevyissä on useimmiten yhden tai kahden tyyppisiä laajennuspaikkoja, jotka eroavat kaistanleveydeltä, tehoasetuksista ja muista ominaisuuksista, eivätkä kaikki sovellu näytönohjainkorttien asentamiseen. On tärkeää tietää järjestelmässä olevat liittimet ja ostaa vain niitä vastaava näytönohjain. Erilaiset laajennusliittimet ovat fyysisesti ja loogisesti yhteensopimattomia, ja yhdelle tyypille suunniteltu näytönohjain ei sovi toiseen eikä toimi.

Onneksi viime aikojen aikana ei vain ISA- ja VESA Local Bus -laajennuspaikat (jotka kiinnostavat vain tulevia arkeologeja) ja vastaavat näytönohjaimet ovat unohdettu, vaan myös PCI-paikkojen näytönohjaimet ovat käytännössä kadonneet, ja kaikki AGP-mallit ovat toivottoman vanhentuneita. Ja kaikki ovat moderneja GPU:t He käyttävät vain yhden tyyppistä liitäntää - PCI Express. Aiemmin AGP-standardia käytettiin laajasti, nämä rajapinnat eroavat toisistaan ​​merkittävästi, mukaan lukien suorituskyvyn, näytönohjaimen virransyöttöominaisuuksien sekä muiden vähemmän tärkeiden ominaisuuksien suhteen.

Vain hyvin pienessä osassa nykyaikaisia ​​emolevyjä ei ole PCI Express -paikkoja, ja jos järjestelmäsi on niin vanha, että se käyttää AGP-näytönohjainta, et voi päivittää sitä - sinun on vaihdettava koko järjestelmä. Katsotaanpa tarkemmin näitä liitäntöjä, joita sinun on etsittävä emolevyistäsi. Katso kuvat ja vertaa.

AGP (Accelerated Graphics Port tai Advanced Graphics Port) on nopea PCI-spesifikaatioon perustuva liitäntä, joka on luotu erityisesti näytönohjainten ja emolevyjen yhdistämiseen. AGP-väylä, vaikka se sopii paremmin videosovittimille kuin PCI (ei Express!), tarjoaa suoran yhteyden keskusprosessorin ja videosirun välillä sekä joitain muita ominaisuuksia, jotka joissakin tapauksissa lisäävät suorituskykyä, esimerkiksi GART - kyky lukea tekstuurit suoraan RAM-muistista kopioimatta niitä videomuistiin; korkeammat kellotaajuudet, yksinkertaistetut tiedonsiirtoprotokollat ​​jne., mutta tämän tyyppinen korttipaikka on toivottoman vanhentunut ja uusia tuotteita sen kanssa ei ole julkaistu pitkään aikaan.

Mutta silti, järjestyksen vuoksi mainitaan tämä tyyppi. AGP-spesifikaatiot ilmestyivät vuonna 1997, kun Intel julkaisi määrittelystä ensimmäisen version, joka sisältää kaksi nopeutta: 1x ja 2x. Toisessa versiossa (2.0) ilmestyi AGP 4x ja versiossa 3.0 - 8x. Harkitsemme kaikkia vaihtoehtoja yksityiskohtaisemmin:
AGP 1x on 32-bittinen linkki, joka toimii 66 MHz:n taajuudella ja jonka suorituskyky on 266 MB/s, mikä on kaksi kertaa PCI-kaistanleveys (133 MB/s, 33 MHz ja 32 bittiä).
AGP 2x on 32-bittinen kanava, joka toimii kaksinkertaisella kaistanleveydellä 533 MB/s samalla 66 MHz:n taajuudella johtuen tiedonsiirrosta kahdella rintamalla, samanlainen kuin DDR-muisti (vain suunnassa "näytönohjainkorttiin").
AGP 4x on sama 32-bittinen kanava, joka toimii 66 MHz:llä, mutta lisäsäätöjen seurauksena saavutettiin nelinkertainen "tehokas" 266 MHz:n taajuus, maksimiläpäisynopeudella yli 1 Gt/s.
AGP 8x - lisämuutokset tähän modifikaatioon mahdollistivat suorituskyvyn saavuttamisen jopa 2,1 Gt/s.

AGP-liitännällä varustetut näytönohjaimet ja vastaavat paikat emolevyillä ovat yhteensopivia tietyissä rajoissa. 1,5 V:n näytönohjaimet eivät toimi 3,3 V:n paikoissa ja päinvastoin. On kuitenkin olemassa myös yleisliittimiä, jotka tukevat molempia levytyyppejä. Moraalisesti ja fyysisesti vanhentuneeseen AGP-paikkaan suunniteltuja näytönohjaimia ei ole harkittu pitkään aikaan, joten vanhojen AGP-järjestelmien oppimiseksi olisi parempi lukea artikkeli:

PCI Express (PCIe tai PCI-E, ei pidä sekoittaa PCI-X:ään), joka tunnettiin aiemmin nimellä Arapahoe tai 3GIO, eroaa PCI:stä ja AGP:stä siinä, että se on pikemminkin sarja kuin rinnakkaisliitäntä, mikä mahdollisti kontaktien määrän vähentämisen ja suorituskyvyn lisäämisen. PCIe on vain yksi esimerkki siirtymisestä rinnakkaisväylistä sarjaväyliin. Muita esimerkkejä tästä liikkeestä ovat HyperTransport, Serial ATA, USB ja FireWire. PCI Expressin tärkeä etu on, että se mahdollistaa useiden yksittäisten kaistan pinoamisen yhdeksi kanavaksi lisäämiseksi kaistanleveys. Monikanavainen sarjasuunnittelu lisää joustavuutta, hitaille laitteille voidaan varata vähemmän linjoja pienellä kontaktimäärällä ja nopeille laitteille voidaan varata enemmän.

PCIe 1.0 -liitäntä siirtää dataa nopeudella 250 Mt/s kaistaa kohden, mikä on lähes kaksinkertainen kapasiteetti perinteisiin PCI-korttipaikkoihin verrattuna. PCI Express 1.0 -paikkojen tukemien kaistan enimmäismäärä on 32, mikä antaa jopa 8 Gt/s suorituskyvyn. Kahdeksalla työkaistalla varustettu PCIe-paikka on tällä parametrilla suunnilleen verrattavissa nopeimpaan AGP-versioon - 8x. Mikä on vieläkin vaikuttavampi, kun otetaan huomioon kyky lähettää samanaikaisesti molempiin suuntiin suurilla nopeuksilla. Yleisimmät PCI Express x1 -paikat tarjoavat yhden kaistan kaistanleveyttä (250 MB/s) kumpaankin suuntaan, kun taas näytönohjainkorteissa käytettävä PCI Express x16, joka yhdistää 16 kaistaa, tarjoaa jopa 4 Gt/s kaistanleveyttä kumpaankin suuntaan.

Vaikka kahden PCIe-laitteen välinen yhteys koostuu joskus useista kaistasta, kaikki laitteet tukevat vähintään yhtä kaistaa, mutta voivat valinnaisesti käsitellä niitä useampia. Fyysisesti PCIe-laajennuskortit sopivat ja toimivat normaalisti kaikissa paikoissa, joissa on yhtä suuri tai suurempi määrä kaistaa, joten PCI Express x1 -kortti toimii sujuvasti x4- ja x16-paikoissa. Myös fyysisesti suurempi paikka voi toimia loogisesti pienemmällä määrällä linjoja (esimerkiksi se näyttää tavalliselta x16-liittimeltä, mutta vain 8 linjaa reititetään). Missä tahansa yllä olevista vaihtoehdoista PCIe itse valitsee korkeimman mahdollisen tilan ja toimii normaalisti.

Useimmiten videosovittimissa käytetään x16-liittimiä, mutta on myös levyjä, joissa on x1-liittimet. Ja useimmat emolevyt, joissa on kaksi PCI Express x16 -paikkaa, toimivat x8-tilassa SLI- ja CrossFire-järjestelmien luomiseksi. Fyysisesti muita paikkavaihtoehtoja, kuten x4, ei käytetä näytönohjainkorteissa. Haluan muistuttaa, että kaikki tämä koskee vain fyysistä tasoa, on myös fyysisiä emolevyjä PCI-E liittimet x16, mutta todellisuudessa 8, 4 tai jopa 1 kanavalla erotettuna. Ja kaikki 16 kanavalle suunnitellut näytönohjaimet toimivat tällaisissa paikoissa, mutta heikommin. Muuten, yllä olevassa kuvassa näkyy x16-, x4- ja x1-paikat, ja vertailun vuoksi PCI on myös jäljellä (alla).

Vaikka pelien ero ei ole niin suuri. Tässä on esimerkiksi katsaus kahdesta verkkosivustollamme olevasta emolevystä, jossa tarkastellaan 3D-pelien nopeuden eroa kahdella emolevyllä, parilla testinäytönohjaimella, jotka toimivat 8-kanavaisessa ja 1-kanavaisessa tilassa:

Vertailu, josta olemme kiinnostuneita, on artikkelin lopussa, kiinnitä huomiota kahteen viimeiseen taulukkoon. Kuten näet, ero keskikokoisilla asetuksilla on hyvin pieni, mutta raskaissa tiloissa se alkaa kasvaa ja iso ero merkitty, jos kyseessä on vähemmän tehokas näytönohjain. Ota huomioon, ole hyvä.

PCI Express eroaa suorituskyvyn lisäksi myös uusista virrankulutusominaisuuksista. Tämä tarve syntyi, koska AGP 8x -paikka (versio 3.0) pystyy siirtämään yhteensä enintään 40 wattia, mikä puuttui jo tuolloisista AGP:lle suunnitelluista näytönohjaimista, jotka asennettiin yhdellä tai kahdella tavallisella nelinapaisella teholla. liittimet. PCI Express -paikka voi kantaa jopa 75 W tehoa, ja 75 W lisätehoa on saatavana tavallisen kuusinapaisen virtaliittimen kautta (katso tämän osan viimeinen osa). Äskettäin näyttökortteja on ilmestynyt kahdella tällaisella liittimellä, jotka yhteensä antavat jopa 225 W.

SISÄÄN lisää ryhmää Asiaankuuluvia standardeja kehittävä PCI-SIG esitteli PCI Express 2.0:n tärkeimmät tekniset tiedot. PCIe:n toinen versio kaksinkertaisti vakiokaistanleveyden 2,5 Gbps:stä 5 Gbps:iin, joten x16-liitin voi siirtää dataa jopa 8 Gt/s nopeudella kumpaankin suuntaan. Samaan aikaan PCIe 2.0 on yhteensopiva PCIe 1.1:n kanssa. Vanhat laajennuskortit toimivat yleensä hyvin uusissa emolevyissä.

PCIe 2.0 -spesifikaatio tukee sekä 2,5 Gbps:n että 5 Gbps:n siirtonopeuksia varmistaakseen taaksepäin yhteensopivuuden olemassa olevien PCIe 1.0- ja 1.1 -ratkaisujen kanssa. PCI Express 2.0 taaksepäin yhteensopivuus mahdollistaa vanhojen 2,5 Gb/s ratkaisujen käytön 5,0 Gb/s paikoissa, jotka sitten toimivat pienemmällä nopeudella. Ja version 2.0 spesifikaatioiden mukaan suunnitellut laitteet voivat tukea 2,5 Gbps:n ja/tai 5 Gbps:n nopeuksia.

Vaikka PCI Express 2.0:n pääinnovaatio on nopeus kaksinkertaistettu 5 Gbps:iin, tämä ei ole ainoa muutos, vaan muitakin joustavuutta lisääviä muutoksia, uusia mekanismeja yhteysnopeuksien ohjelmistoohjaukseen jne. Olemme kiinnostuneita muutoksista, jotka liittyvät laitteiden virtalähteen kanssa, koska näytönohjainten tehovaatimukset kasvavat tasaisesti. PCI-SIG on kehittänyt uuden spesifikaation näytönohjainten kasvavaan virrankulutukseen vastaamiseksi, mikä laajentaa nykyisen virtalähteen 225/300 W:iin näytönohjainkorttia kohden. Tämän määrityksen tukemiseksi käytetään uutta 2x4-nastaista virtaliitintä, joka on suunniteltu tarjoamaan virtaa huippuluokan näytönohjaimille.

Näytönohjaimet ja emolevyt, joissa on PCI Express 2.0 -tuki, ilmestyivät laajaan myyntiin vuonna 2007, ja nyt et löydä muita markkinoilta. Molemmat suuret videosirujen valmistajat, AMD ja NVIDIA, ovat julkaisseet uusia GPU-linjoja ja niihin perustuvia näytönohjaimia, jotka tukevat PCI Expressin toisen version lisättyä kaistanleveyttä ja hyödyntävät uusia ohjelmistoominaisuuksia. Virtalähde laajennuskortteja varten. Kaikki ne ovat taaksepäin yhteensopivia emolevyjen kanssa, joissa on PCI Express 1.x -paikat, vaikka joissakin harvoissa tapauksissa on yhteensopimattomuutta, joten sinun on oltava varovainen.

Itse asiassa PCIe:n kolmannen version ilmestyminen oli ilmeinen tapahtuma. Marraskuussa 2010 PCI Expressin kolmannen version tekniset tiedot lopulta hyväksyttiin. Vaikka tämän liitännän siirtonopeus on 8 Gt/s 5 Gt/s sijasta versiossa 2.0, sen suorituskyky on jälleen kasvanut tasan kaksinkertaiseksi PCI Express 2.0 -standardiin verrattuna. Tätä varten he käyttivät erilaista koodausjärjestelmää väylän kautta lähetetyille tiedoille, mutta se oli yhteensopiva aiemmat versiot PCI Express pysyy samana. Ensimmäiset PCI Express 3.0 -version tuotteet esiteltiin kesällä 2011, ja todellisia laitteita on vasta alkanut ilmestyä markkinoille.

Emolevyn valmistajien kesken syttyi kokonainen sota oikeudesta esitellä ensimmäisenä PCI Express 3.0 -tuki (pääasiassa Intel Z68 -piirisarjaan perustuva tuote), ja useat yritykset esittivät vastaavat lehdistötiedotteet kerralla. Vaikka oppaan päivityshetkellä tällaista tukea ei yksinkertaisesti ole olemassa, joten se ei yksinkertaisesti ole kiinnostavaa. Kun PCIe 3.0 -tukea tarvitaan, näkyviin tulee täysin erilaisia ​​​​levyjä. Todennäköisesti tämä tapahtuu aikaisintaan vuonna 2012.

Muuten, voimme olettaa, että PCI Express 4.0 otetaan käyttöön muutaman seuraavan vuoden aikana, ja uusi versio sillä on myös jälleen kaksinkertainen kysyntäkapasiteetti siihen mennessä. Mutta tämä ei tapahdu pian, emmekä ole vielä kiinnostuneita.

Ulkoinen PCI Express

Vuonna 2007 PCI-SIG, joka standardoi virallisesti PCI Express -ratkaisut, ilmoitti ottavansa käyttöön PCI Express External Cabling 1.0 -spesifikaation, joka kuvaa tiedonsiirtostandardin ulkoinen käyttöliittymä PCI Express 1.1. Tämä versio mahdollistaa tiedonsiirron 2,5 Gbps:n nopeudella, ja seuraavan pitäisi nostaa suorituskyky 5 Gbps:iin. Standardi sisältää neljä ulkoista liitintä: PCI Express x1, x4, x8 ja x16. Vanhemmat liittimet on varustettu erityisellä kielekkeellä, joka helpottaa liittämistä.

PCI Express -liitännän ulkoista versiota voidaan käyttää paitsi yhdistämiseen ulkoiset näytönohjaimet, mutta myös ulkoisille asemille ja muille laajennuskorteille. Suositeltu kaapelin enimmäispituus on 10 metriä, mutta sitä voidaan kasvattaa liittämällä kaapelit toistimen kautta.

Teoriassa tämä voisi helpottaa kannettavan tietokoneen ystävien elämää, kun he käyttävät vähän virtaa sisäänrakennettua videoydintä käytettäessä akkuja ja tehokasta ulkoista näytönohjainta, kun ne on kytketty pöytätietokoneen näyttöön. Tällaisten näytönohjainkorttien päivittäminen on huomattavasti helpompaa, PC-koteloa ei tarvitse avata. Valmistajat voivat tehdä täysin uusia jäähdytysjärjestelmiä, joita laajennuskorttien ominaisuudet eivät rajoita, ja myös virtalähteen tulisi olla vähemmän ongelmia— Todennäköisimmin käytetään ulkoisia virtalähteitä, jotka on suunniteltu erityisesti tietylle näytönohjaimelle, ne voidaan integroida samaan ulkoiseen koteloon näytönohjaimen kanssa käyttämällä samaa jäähdytysjärjestelmää. Se saattaa helpottaa järjestelmien kokoamista useille näytönohjaimille (SLI/CrossFire) ja ottaen huomioon suosion jatkuvan kasvun. mobiiliratkaisuja Tällaiset ulkoiset PCI Express -laitteet saivat väistämättä jonkin verran suosiota.

Heidän olisi pitänyt, mutta he eivät voittaneet. Syksystä 2011 lähtien markkinoilla ei käytännössä ole ulkoisia vaihtoehtoja näytönohjainkorteille. Niiden valikoimaa rajoittavat vanhentuneet videosirujen mallit ja kapea valikoima yhteensopivia kannettavia tietokoneita. Valitettavasti ulkoisten näytönohjainkorttien liiketoiminta ei mennyt pidemmälle ja kuoli hitaasti. Emme edes kuule enää voittavia mainoslausuntoja kannettavien tietokoneiden valmistajilta... Ehkä modernin voima mobiili näytönohjain Siitä tuli yksinkertaisesti tarpeeksi vaativiin 3D-sovelluksiin, mukaan lukien monet pelit.

Lupaavassa oheislaitteiden liittämisliittymässä Thunderboltissa, joka tunnettiin aiemmin nimellä Light Peak, on edelleen toivoa ulkoisten ratkaisujen kehittämisestä. Sen on kehittänyt Intel Corporation DisplayPort-teknologiaan perustuen, ja ensimmäiset ratkaisut ovat jo julkaisseet Applen toimesta. Thunderbolt yhdistää DisplayPortin ja PCI Expressin ominaisuudet ja mahdollistaa yhteyden muodostamisen ulkoisia laitteita. Toistaiseksi niitä ei kuitenkaan yksinkertaisesti ole olemassa, vaikka kaapelit ovat jo olemassa:

Tässä artikkelissa emme käsittele vanhentuneita liitäntöjä, koska suurin osa nykyaikaisista näytönohjaimista on suunniteltu PCI Express 2.0 -liitäntää varten, joten suosittelemme, että kaikki AGP-tiedot otetaan huomioon. Uudet levyt käyttävät PCI Express 2.0 -liitäntää, joka yhdistää 16 PCI Express -kaistan nopeuden, mikä antaa jopa 8 Gt/s kumpaankin suuntaan suorituskykyä, mikä on useita kertoja enemmän kuin parhaan AGP:n sama ominaisuus. Lisäksi PCI Express toimii sellaisilla nopeuksilla joka suuntaan, toisin kuin AGP.

Toisaalta PCI-E 3.0 -tukea sisältävät tuotteet eivät ole vielä varsinaisesti ilmestyneet, joten niitä ei myöskään ole kovin järkevää harkita. Jos puhumme vanhan päivittämisestä tai uuden levyn ostamisesta tai samanaikaisesta järjestelmä- ja videokorttien vaihtamisesta, sinun tarvitsee vain ostaa levyt PCI-liitäntä Express 2.0, joka on varsin riittävä ja yleisin useiden vuosien ajan, varsinkin kun PCI Expressin eri versioiden tuotteet ovat yhteensopivia keskenään.

Missä käytetään palamattomia kankaita www.algo-textile.ru. Hyttysverkkotarvikkeet hyttysverkkoihin 2-sklad.ru.

PCI ja PCI-X

PCI- ja PCI-X-väylät

Johdanto

PCI- ja PCI-X-väylät ovat tärkeimmät I/O-laajennusväylät nykyaikaisissa tietokoneissa; videosovittimien liittämistä varten niitä täydentää AGP-portti. I/O-laajennusväylät (Expansion Bus) ovat järjestelmätason liitettävyyttä: niiden avulla sovittimet ja oheislaitteet voivat käyttää suoraan tietokonejärjestelmän resursseja - muistia ja I/O-osoitetilaa, keskeytyksiä, suoraa muistin käyttöä. Laajennusväyliin liitetyt laitteet voivat itse ohjata näitä väyliä ja saada pääsyn muihin tietokoneresursseihin. Laajennusväylät toteutetaan mekaanisesti paikoilla (paikkaliittimillä) tai nastaliittimillä; Niille on ominaista lyhyt johtimien pituus, eli ne ovat puhtaasti paikallisia, mikä mahdollistaa sen saavuttamisen suuret nopeudet tehdä työtä. Näitä väyliä ei saa lähettää liittimiin, mutta niitä käytetään integroitujen emolevyjen laitteiden kytkemiseen.

Aluksi PCI-väylä esiteltiin laajennuksena (mezzanine-väylä) järjestelmiin, joissa oli ISA-väylä. Se kehitettiin Pentium-prosessoreille, mutta se toimi hyvin myös i486-prosessorien kanssa. Myöhemmin PCI:stä tuli keskusväylä joksikin aikaa: se yhdistettiin prosessoriväylään korkean suorituskyvyn sillalla ("pohjoinen" silta), joka oli osa emolevyn piirisarjaa. Loput I/O-laajennusväylät (ISA/EISA tai MCA) sekä paikallinen ISA-tyyppinen X-BUS-väylä ja LPC-liitäntä, johon emolevyn sirut on kytketty (ROM BIOS, keskeytysohjaimet, näppäimistöt, DMA , COM- ja LPT-portit, HDD ja muut "pienet asiat"), jotka on kytketty PCI-väylään "eteläisen" sillan kautta. Nykyaikaisissa emolevyissä, joissa on "hub"-arkkitehtuuri, PCI-väylä on siirretty reuna-alueelle vaarantamatta sen prosessorin ja muistin kanssa, mutta myös lataamatta laitteita muihin väyliin, joissa on liikennettä.

PCI-väylä on synkroninen - kaikki signaalit siepataan CLK-signaalin positiivisella reunalla (reunalla). Nimellistahdistustaajuuden katsotaan olevan 33,3 MHz, sitä voidaan tarvittaessa alentaa. Versiosta PCI 2.1 alkaen on mahdollista nostaa taajuutta 66,6 MHz:iin, jos kaikki väylällä olevat laitteet ovat samaa mieltä. PCI-X:ssä taajuus voi olla 133 MHz.

PCI käyttää rinnakkaismultipleksoitua osoite/data (AD) väylää, jonka tyypillinen leveys on 32 bittiä. Spesifikaatio määrittelee mahdollisuuden laajentaa bittisyvyyttä 64 bittiin; PCI-X-versio 2.0 määrittää myös 16-bittisen väylävaihtoehdon. Väylätaajuudella 33 MHz teoreettinen suorituskyky saavuttaa 132 MB/s 32-bittisellä väylällä ja 264 MB/s 64-bittisellä väylällä; synkronointitaajuudella 66 MHz - 264 MB/s ja 528 MB/s, vastaavasti. Nämä huippuarvot saavutetaan kuitenkin vain pakettisiirron aikana: protokollan ylikuormituksen vuoksi todellinen keskimääräinen väylän läpäisykyky on pienempi.

PCI- ja PCI-X-väylien ja muiden PC-yhteensopivien tietokoneiden laajennusväylien vertailuominaisuudet on esitetty taulukossa. 1.1. ISA-väylä alkaen pöytätietokoneet lähtee, mutta se säilyttää asemansa teollisuus- ja sulautetuissa tietokoneissa sekä perinteisessä slot-versiossa että PC/104:n "sandwich"-versiossa. PCMCIA-paikkoja, joissa on PC Card ja Card Bus -väylät, käytetään laajalti kannettavissa tietokoneissa. LPC-väylä on moderni, edullinen tapa liittää resurssiintensiivisiä laitteita emolevyyn.

Rengas Huippukapasiteetti MB/s DMA-kanavat Bussimestari ACFG Tietojen leveys Osoitteen koko Taajuus 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
Korttibussi 132 - + + 32 32 33

ACFG1- Tukee automaattista konfigurointia. ISA:lle PnP on sovittimien ja ohjelmistojen toteuttama myöhäinen lisäys.

PCI- ja PCI-X-väyläsignalointiprotokolla

Tiedonvaihto PCI- ja PCI-X-väylällä järjestetään transaktioiden muodossa - loogisesti suoritettuina vaihtooperaatioina. Tyypillinen tapahtuma sisältää kaksi laitetta: vaihdon aloittaja, joka tunnetaan myös nimellä master-laite, ja kohdelaite, joka tunnetaan myös nimellä orja. Näiden laitteiden välisen vuorovaikutuksen säännöt määräytyvät PCI-väyläprotokollan mukaan. Laite voi seurata tapahtumia väylällä olematta osallistuja (syöttämättä signaaleja); Termi Snooping vastaa seurantatilaa. On olemassa erityinen tapahtumatyyppi (Special Cycle) - lähetys, jossa aloittaja ei ole vuorovaikutuksessa minkään laitteen kanssa protokollan mukaisesti. Jokainen tapahtuma suorittaa yhden komennon, tyypillisesti lukee tai kirjoittaa tietoja tiettyyn osoitteeseen. Tapahtuma alkaa osoitevaiheella, jossa aloittaja määrittää komennon ja kohdeosoitteen. Sen jälkeen voi seurata datavaiheita, joissa yksi laite (tietolähde) laittaa dataa väylään ja toinen (nielu) lukee sen. Tapahtumia, joissa on useita tietovaiheita, kutsutaan erätapahtumiksi. On myös yksittäisiä tapahtumia (yhdellä datavaiheella). Tapahtuma voidaan suorittaa ilman datavaiheita, jos kohdelaite (tai aloittaja) ei ole valmis vaihtoon. PCI-X-väylään on lisätty attribuuttivaihe, jossa siirretään lisätietoja tapahtumasta.

PCI- ja PCI-X-väyläsignalointiprotokolla

Väyläliityntäsignaalien koostumus ja tarkoitus on esitetty alla olevassa taulukossa. Kaikkien signaalilinjojen tilat havaitaan positiivisella reunalla CLK, ja näitä hetkiä seuraavassa kuvauksessa tarkoitetaan väyläjaksoilla (kuvissa ne on merkitty pystysuorilla katkoviivoilla). Samoja signaalilinjoja ohjataan eri aikoina erilaisia ​​laitteita väylä, ja oikean (konfliktittoman) "valtuutuksen siirto" edellyttää, että on olemassa ajanjakso, jonka aikana mikään laite ei ohjaa linjaa. Aikakaavioissa tämä tapahtuma - niin kutsuttu "piruetti" (käännös) - on osoitettu puoliympyrän muotoisilla nuolilla.

Pöytä. PCI-väylän signaalit

Signaali
Tarkoitus
ILMOITUS Osoite/Data - multipleksoitu osoite/tietoväylä. Tapahtuman alussa osoite lähetetään, seuraavissa jaksoissa - tiedot
C/B# Command/Byte Enable - komento/lupa käyttää tavuja. Seuraavan väyläjakson tyypin määrittävä komento määritellään nelibittisellä koodilla osoitevaiheessa
FRAME#
Kehys. Signaalin tulo merkitsee tapahtuman alkua (osoitevaihe), signaalin poistaminen osoittaa, että seuraava tiedonsiirtojakso on tapahtuman viimeinen
DEVSEL#
Laitevalinta - laite on valittu (ohjauskeskuksen vastaus sille osoitettuun tapahtumaan)
IRDY#
Initiator Ready - päälaitteen valmius tiedonvaihtoon
TRDY#
Target Ready - ohjauskeskuksen valmius tiedonvaihtoon
LOPETTAA#
Pyyntö CPU:lta isännälle nykyisen tapahtuman pysäyttämiseksi
LUKKO#
Väylän lukitussignaali keskeytymättömän toiminnan varmistamiseksi. Sitä käyttää silta, joka vaatii useita PCI-tapahtumia yhden toiminnon suorittamiseen
REQ#
Pyyntö - pyyntö päälaitteelta väylän kaappaamiseksi
GNT#
Grant - väylän ohjauksen myöntäminen isännälle
PAR
Pariteetti - yhteinen pariteettibitti AD- ja C/BE#-linjoille
PERR#
Parity Error — pariteettivirhesignaali (kaikille jaksoille paitsi erikoisjaksoille). Luoda mikä tahansa laite, joka havaitsee virheen
PME#
Virranhallintatapahtuma - signaali tapahtumista, jotka aiheuttavat muutoksen kulutustilassa (PCI 2.2:ssa käyttöön otettu lisäsignaali)
CLKRUN#
Kello käynnissä — väylä toimii nimelliskellotaajuudella. Signaalin poistaminen tarkoittaa synkronoinnin hidastamista tai pysäyttämistä kulutuksen vähentämiseksi (mobiilisovellukset)
PRSN#
Nykyinen - virrankulutuspyynnön koodaavat piirilevyn läsnäoloilmaisimet. Laajennuskortissa yksi tai kaksi LED-linjaa on kytketty GND-väylään, jonka emolevy havaitsee.
RST#
Nollaa - palauta kaikki rekisterit alkuperäiseen tilaan (napsauta "Palauta" -painiketta
ja uudelleenkäynnistyksen yhteydessä)
IDSEL
Initialization Device Select - laitteen valinta konfiguraation luku- ja kirjoitusjaksoissa; Näihin sykleihin reagoi laite, joka havaitsee korkean signaalitason tällä linjalla
SERR#
System Error - järjestelmävirhe. Osoite- tai datapariteettivirhe erityisessä kehyksessä tai muu laitteen havaitsema katastrofaalinen virhe. Aktivoi mikä tahansa PCI-laite ja kutsuu NMI:tä
REQ64#
Pyydä 64 bittiä - pyyntö 64-bittiselle vaihdolle. Signaali syötetään 64-bittisellä aloittimella, ja se osuu ajallisesti yhteen FRAME#-signaalin kanssa. Resetoinnin aikana (RST#-signaali) ilmoittaa 64-bittiselle laitteelle, että se on kytketty 64-bittiseen väylään. Jos 64-bittinen laite ei havaitse tätä signaalia, sen on määritettävä itsensä uudelleen 32-bittiseen tilaan poistamalla käytöstä korkeabittiset puskuripiirit
ACK64#
64-bittisen vaihdon vahvistus. Signaalin syöttää 64-bittinen CPU, joka on tunnistanut osoitteensa, samanaikaisesti DEVSEL#:n kanssa. Jos tätä vahvistusta ei toimiteta, aloittaja pakottaa suorittamaan vaihdon 32-bittisenä
INTA#, INTB#, INTC#, INTD#
Keskeytys A, B, C, D - keskeytä pyyntörivit, tason herkkyys, aktiivinen taso - matala, mikä mahdollistaa linjojen erottelun (jakamisen)
CLK
Kello — väylän kellotaajuus. Sen pitäisi olla välillä 20-33 MHz, PCI 2.1:stä alkaen se voi olla jopa 66 MHz, PCI-X:ssä jopa 100 ja 133 MHz
M66FI
66 MHz käytössä - kellotaajuuden tarkkuus jopa 66 MHz (korteilla 33 MHz on maadoitettu, 66 MHz on ilmainen)
PCIXCAP (38B)

PCI-X-ominaisuudet: PCI-korteilla - maadoitettu, PCI-X133:ssa kytketty maahan 0,01 µF:n kondensaattorilla, PCI-X66:ssa - rinnakkaisella RC-piirillä 10 kOhm, 0,01 µF.

SDONE
Snoop Done - signaali, että snoop-jakso on valmis nykyiselle tapahtumalle. Matala taso osoittaa, että muistin ja välimuistin koherenssin valvontasykli on epätäydellinen. Valinnainen signaali, jota käyttävät vain väylälaitteet, joissa on välimuisti. Vanhentunut PCI 2.2:sta lähtien
SBO#
Snoop Backoff - nykyinen pääsy väylätilaajan muistiin päätyy muokattuun välimuistiriville. Valinnainen signaali, jota käyttävät vain väylätilaajat, joilla on välimuistia algoritmin aikana Kirjoita takaisin. Vanhentunut PCI 2.2:sta lähtien
SMBCLK
SMBus Clock - SMBus-väylän kellosignaali (I2C-liitäntä). Otettu käyttöön PCI 2.3:n jälkeen
SMBDAT
SMBus Data - SMBus-väylän sarjatiedot (I2C-liitäntä). Otettu käyttöön PCI 2.3:n jälkeen
TCK
Test Clock - JTAG testaa käyttöliittymän synkronointia
TDI
Test Data Input - JTAG-testirajapinnan syöttötiedot
TDO
Test Data Output - JTAG testiliitännän lähtötiedot
TMS
Test Mode Select - valitse JTAG-testiliittymän tila
TRST
Test Logic Reset - nollaa testilogiikka

Väylää voi kulloinkin ohjata vain yksi isäntälaite, joka on saanut siihen oikeuden tuomarilta. Jokaisella isäntälaitteella on signaalipari - REQ# väyläohjauksen pyytämiseksi ja GNT# väyläohjauksen hyväksymisen vahvistamiseksi. Laite voi aloittaa tapahtuman (asettaa FRAME#-signaalin) vain, kun se vastaanottaa aktiivinen signaali GNT# ja odota, kunnes bussitoimintaa ei ole. Huomaa, että lepoa odottaessaan tuomari voi "muuttaa mieltään" ja antaa väylän ohjauksen toiselle laitteelle, jolla on korkeampi prioriteetti. GNT#-signaalin poistaminen estää laitetta aloittamasta seuraavaa tapahtumaa ja voi tietyissä olosuhteissa (katso alla) pakottaa sen lopettamaan nykyisen tapahtuman. Väylän käyttöä koskevien pyyntöjen sovittelusta huolehtii erityinen solmu - välimies, joka on osa siltaa, joka yhdistää tämän väylän keskustaan. Prioriteettikaavio (kiinteä, round-robin, yhdistetty) määräytyy välimiesohjelmoinnin mukaan.

Yhteisiä multipleksoituja AD-linjoja käytetään osoitteeseen ja dataan. Neljä multipleksoitua C/BE-linjaa tarjoavat käskykoodauksen osoitevaiheessa ja tavuresoluution datavaiheessa. Kirjoitustapahtumissa C/BE-rivit sallivat datatavujen käytön samanaikaisesti niiden läsnäolon kanssa lukutapahtumissa, nämä signaalit viittaavat seuraavan datavaiheen tavuihin. Osoitevaiheessa (transaction start) isäntä aktivoi FRAME#-signaalin, lähettää kohdeosoitteen AD-väylällä ja välittää tiedon tapahtumatyypistä (komennosta) C/BE#-linjoilla. Osoitettu kohdelaite vastaa DEVSEL#-signaalilla. Päälaite ilmaisee valmiutensa vaihtaa tietoja IRDY#-signaalin kanssa. Tämä valmius voidaan asettaa ennen DEVSEL#:n vastaanottamista. Kun kohdelaite on valmis vaihtamaan tietoja, se asettaa TRDY#-signaalin. Dataa siirretään AD-väylällä vain, kun signaalit IRDY# ja TRDY# ovat samanaikaisesti läsnä. Näiden signaalien avulla isäntä- ja kohdelaitteet koordinoivat nopeuksiaan ottamalla käyttöön odotustilat. Alla olevassa kuvassa on ajoituskaavio keskuksesta, jossa sekä isäntä- että kohdelaitteet syöttävät odotuskellot. Jos molemmat syöttäisivät valmiit signaalit osoitevaiheen lopussa ja poistaisivat ne vasta vaihdon lopussa, niin jokaisessa kellojaksossa osoitevaiheen jälkeen lähetettäisiin 32 bittiä dataa, mikä antaisi maksimaalisen vaihdon suorituskyvyn. Lukutapahtumissa osoitevaiheen jälkeen tarvitaan piruettille lisäkello, jonka aikana aloittaja lopettaa AD-linjan ohjauksen; Kohdelaite pystyy ottamaan AD-väylän hallinnan vasta seuraavassa kellojaksossa. Kirjoitustapahtumassa piruettia ei tarvita, koska aloittaja lähettää tiedot.

PCI-väylällä kaikkia tapahtumia käsitellään purskeina: jokainen tapahtuma alkaa osoitevaiheella, jota voi seurata yksi tai useampi datavaihe. Datavaiheiden lukumäärää paketissa ei nimenomaisesti ilmoiteta, mutta viimeisen datavaiheen kellojaksossa isäntälaite, kun IRDY#-signaali syötetään, poistaa FRAME#-signaalin. Yksittäisissä tapahtumissa FRAME#-signaali on aktiivinen vain yhden kellojakson ajan. Jos laite ei tue erätapahtumia orjatilassa, sen on pyydettävä erätapahtuman lopettamista ensimmäisen datavaiheen aikana (vakuuttamalla STOP#-signaali samaan aikaan kuin TRDY#). Vastauksena tähän isäntä suorittaa tietyn tapahtuman ja jatkaa seuraavan tapahtuman vaihtamista seuraavalla osoitearvolla. Viimeisen datavaiheen jälkeen isäntälaite poistaa IRDY#-signaalin ja väylä menee lepotilaan (Idle) - molemmat signaalit: FRAME# ja IRDY# ovat passiivisessa tilassa.

Aloittaja voi aloittaa seuraavan tapahtuman ilman lepoaikaa asettamalla FRAME# samanaikaisesti IRDY#:n poistamisen kanssa. Tällaiset nopeat vierekkäiset tapahtumat (Fast Back-to-Back) voidaan osoittaa sekä yhdelle että eri kohdelaitteelle. Kaikki kohdelaitteena toimivat PCI-laitteet tukevat ensimmäistä tyyppiä nopeita peräkkäisiä tapahtumia. Toisen tyyppisten vierekkäisten tapahtumien tuki (tällainen tuki on valinnainen) osoitetaan tilarekisterin bitillä 7. Aloittaja saa (jos hän osaa) käyttää nopeita vierekkäisiä tapahtumia erilaisia ​​laitteita(komentorekisterin bitti 9 sallii) vain, jos kaikki väyläagentit sallivat nopean pääsyn. Kun tietoja vaihdetaan PCI-X-tilassa, nopeat peräkkäiset tapahtumat eivät ole sallittuja.

Väyläprotokolla varmistaa keskuksen luotettavuuden - isäntälaite saa aina tiedon tapahtuman käsittelystä kohdelaitteen toimesta. Eräs keino vaihdon luotettavuuden lisäämiseksi on pariteettiohjauksen käyttö: AD- ja C/BE#-linjat sekä osoite- että datavaiheessa on suojattu pariteettibitillä PAR (näiden linjojen asetettujen bittien määrä, mukaan lukien PAR, on oltava parillinen). Todellinen PAR-arvo ilmestyy väylään yhden kellojakson viiveellä suhteessa AD- ja C/BE#-linjoihin. Kun virhe havaitaan, laite generoi PERR#-signaalin (siirretty kellon verran sen jälkeen, kun kelvollinen pariteettibitti ilmestyy väylään). Kun pariteettia lasketaan tiedonsiirron aikana, kaikki tavut otetaan huomioon, mukaan lukien virheelliset tavut (merkitty korkealla C/BEx#-signaalilla). Bittitilan, jopa virheellisissä datatavuissa, on pysyttävä vakaana datavaiheen aikana.

Jokainen tapahtuma väylällä on suoritettava suunnitellusti tai keskeytettävä, ja väylän on mentävä lepotilaan (FRAME#- ja IRDY#-signaalit ovat passiivisia). Tapahtuman suorittamisen aloittaa joko päälaite tai kohdelaite.

Isäntä voi suorittaa tapahtuman jollakin seuraavista tavoista:

  • valmistuminen - normaali lopettaminen tiedonvaihdon lopussa;
  • aikakatkaisu — valmistuminen aikakatkaisulla. Tapahtuu, kun isäntälaitteen väyläohjaus poistetaan tapahtuman aikana (poistamalla GNT#-signaali) ja sen latenssiajastin vanhenee. Tämä voi tapahtua, jos osoitettu kohdelaite on odottamattoman hidas tai tapahtuma on ajoitettu liian pitkäksi. Lyhyet tapahtumat (yhdellä tai kahdella datavaiheella), vaikka GNT#-signaali poistetaan ja ajastin laukeaisi, suoritetaan normaalisti;
  • master-Abort – Keskeytä tapahtuma, kun päälaite ei saa vastausta kohdelaitteelta (DEVSEL#-signaali) tietyn ajan kuluessa.

Tapahtuma voidaan lopettaa kohdelaitteen aloitteesta; Tätä varten se voi syöttää STOP#-signaalin. Tapahtuman päättämistä on kolme mahdollista:

  • uudelleenyritys - toisto, STOP#-signaalin käyttöönotto passiivisella TRDY#-signaalilla ennen ensimmäistä datavaihetta. Tämä tilanne syntyy, kun kohdelaite ei sisäisen kiireen vuoksi ehdi tuottamaan ensimmäistä dataa ajoissa (16 kellojaksoa). Uudelleenyrityksen lopettaminen on ilmoitus isännälle uudelleenkäynnistää sama liiketoimi;
  • irrota - irtikytkentä, STOP#-signaalin syöttäminen ensimmäisen datavaiheen aikana tai sen jälkeen. Jos STOP#-signaali syötetään seuraavan datavaiheen TRDY#-signaalin ollessa aktiivinen, tämä data lähetetään ja tapahtuma on valmis. Jos STOP#-signaali asetetaan, kun TRDY#-signaali on passiivinen, tapahtuma suoritetaan ilman seuraavan vaiheen tietojen lähettämistä. Yhteys katkeaa, kun kohdelaite ei pysty antamaan tai vastaanottamaan seuraavaa pakettidatan osaa ajoissa. Yhteyden katkaisu on ilmoitus isännälle käynnistää tämä tapahtuma uudelleen, mutta muokatulla aloitusosoitteella;
  • target-abort — epäonnistuminen, STOP#-signaalin syöttäminen samanaikaisesti DEVSEL#-signaalin poistamisen kanssa (aiemmin STOP#-signaalin ilmestyessä DEVSEL#-signaali oli aktiivinen). Tämän jälkeen tietoja ei enää lähetetä. Kieltäytyminen tapahtuu, kun kohdelaite havaitsee vakavan virheen tai muun tilan, jonka vuoksi se ei enää pysty palvelemaan annettua pyyntöä (mukaan lukien komento, jota ei tueta).

Kolmen tyyppisen tapahtuman lopettamisen käyttäminen ei ole välttämätöntä kaikille kohdelaitteille, mutta minkä tahansa päälaitteen tulee olla valmis lopettamaan tapahtumat mistä tahansa näistä syistä.

Uudelleen irtisanomisen tyyppiä käytetään viivästyneiden tapahtumien järjestämiseen. Viivästettyjä tapahtumia käyttävät vain hitaat kohdelaitteet ja PCI-sillat siirrettäessä tapahtumia toiseen väylään. Keskeyttämällä (aloittajalle) tapahtuman uudelleenyritysehdon kanssa kohdelaite suorittaa tapahtuman sisäisesti. Kun aloittaja toistaa tämän tapahtuman (antaa saman komennon samalla osoitteella ja samalla joukolla C/BE#-signaaleja datavaiheessa), kohdelaitteella (tai sillalla) on jo tulos valmiina (luku data tai kirjoitus edistyminen tila), että se palaa nopeasti aloittajalle. Laitteen tai sillan on tallennettava tietyn laitteen suorittaman odottavan tapahtuman tulos, kunnes aloittaja pyytää tuloksia. Hän saattaa kuitenkin "unohtaa" toistaa tapahtuman (joistakin hätätilanteita). Tulosten tallennuspuskurin ylivuodon välttämiseksi laitteen on hylättävä nämä tulokset. Pudottaminen voidaan suorittaa ilman sivuvaikutuksia, jos tapahtuma siirrettiin muistiin, joka mahdollistaa esihaun (esihaku-attribuutilla, katso alla). Muuntyyppiset liiketoimet sisään yleinen tapaus On mahdotonta hylätä rankaisematta (heille tietojen eheys saatetaan loukata, hylkääminen on sallittu vain 215 väyläjakson toiston epäonnistumisen jälkeen (kun hylkäysajastin laukeaa). Laite voi ilmoittaa tästä poikkeuksesta ajurilleen (tai koko järjestelmälle).

Tapahtuman aloittaja voi pyytää PCI-väylän yksinomaista käyttöä usean väylätapahtuman vaativan vaihtotoiminnan ajaksi. Joten jos CPU esimerkiksi suorittaa datanmuokkauskäskyn PCI-laitteen muistisolussa, sen täytyy lukea tiedot laitteesta, muokata sitä ALU:ssaan ja palauttaa tulos laitteelle. Jotta muiden aloittajien tapahtumat eivät häiritse tätä toimintoa (mikä voi johtaa tietojen eheysrikkomuksiin), pääsilta suorittaa sen estettynä toimintona - LOCK#-väyläsignaali syötetään koko toiminnan ajan. Perinteiset PCI-laitteet (ei sillat) eivät käytä (tai tuota) tätä signaalia millään tavalla; sitä käyttävät vain sillat välimiesmenettelyn ohjaamiseen.

Laitteistokeskeytykset PC-yhteensopivissa tietokoneissa

PCI-laitteet pystyvät signaloimaan asynkronisia tapahtumia keskeytyksiä käyttämällä. PCI-väylällä on saatavilla neljän tyyppistä keskeytyssignalointia:

  • perinteinen langallinen signalointi INTx-linjojen kautta;
  • energianhallintatapahtumien langallinen signalointi PME#-linjan kautta;
  • signalointi viesteillä - MSI;
  • signalointi kohtalokas virhe SERR#-linjan kautta.

Tämä luku kattaa kaikki näistä signalointityypeistä sekä yleiskuvan laitteiston keskeytystuesta PC-yhteensopivissa tietokoneissa.

Laitteistokeskeytykset PC-yhteensopivissa tietokoneissa

Laitteistokeskeytykset antavat prosessorin vastauksen tapahtumiin, jotka tapahtuvat asynkronisesti suoritettavan ohjelmakoodin suhteen. Muista, että laitteistokeskeytykset jaetaan peitettäviin ja ei-maskeoitaviin. X86-prosessori keskeyttää keskeytyssignaalin saatuaan nykyisen käskyvirran suorittamisen, tallentaa tilan (liput ja paluuosoite) pinoon ja suorittaa keskeytyskäsittelyn. Tietty käsittelyprosessi valitaan keskeytystaulukosta keskeytysvektorilla - tämän taulukon elementin yksitavuisella numerolla. Keskeytysvektori tuodaan prosessorille eri tavoilla: Ei-maskattavalle keskeytykselle se on kiinteä, maskoitavalle keskeytykselle ilmoittaa erityinen keskeytysohjain. Laitteistokeskeytysten lisäksi x86-prosessoreissa on myös sisäisiä keskeytyksiä – niihin liittyviä poikkeuksia erikoistapaukset ohjeiden suorittaminen ja ohjelmiston keskeytykset. Poikkeuksissa vektorin määrittää itse erikoisehto, ja Intel varaa ensimmäiset 32 ​​vektoria (0-31 tai 00-1Fh) poikkeuksia varten. Ohjelmistokeskeytyksessä vektorin numero sisältyy itse käskyyn (ohjelmistokeskeytykset ovat vain erityinen tapa kutsua proseduureja numeron perusteella, jolloin pinoon tallennetaan ensin lippurekisteri). Kaikki nämä keskeytykset käyttävät samaa 256 mahdollisen vektorin joukkoa. Historiallisesti laitteistokeskeytyksiä varten käytetyt vektorit ovat päällekkäisiä BIOS- ja DOS-palvelukutsuissa käytettyjen poikkeusvektorien ja ohjelmistokeskeytysvektorien kanssa. Siten useille vektorinumeroille keskeytystaulukon viittaaman proseduurin on alussa oltava ohjelmakoodi, joka määrittää, mistä syystä sitä kutsuttiin: poikkeuksen vuoksi, laitteiston keskeytys tai soittaa johonkin järjestelmäpalveluun. Siten proseduuri, joka todella varmistaa prosessorin vastauksen samaan asynkroniseen tapahtumaan, kutsutaan vasta sen jälkeen, kun on suoritettu useita toimintoja keskeytyslähteen tunnistamiseksi. Huomioimme tässä myös, että samaa keskeytysvektoria voivat käyttää useat oheislaitteet - tämä on ns. jaettu keskeytyskäyttö, jota käsitellään yksityiskohtaisesti alla.

Keskeytyspalvelurutiinin kutsuminen prosessorin todellisissa ja suojatuissa tiloissa on merkittävästi erilaista:

  • V todellinen tila Keskeytystaulukko sisältää 4-tavuiset kauko-osoittimet (segmentti ja offset) vastaaviin proseduureihin, joita kaukopuhelu kutsuu (Call Far ennalta tallennetuilla lipuilla). Taulukon koko (256 × 4 tavua) ja sijainti (osoitteesta 0 alkaen) ovat kiinteät;
  • Suojatussa tilassa (ja erityistapauksessaan V86-tilassa) taulukko sisältää 8-tavuisia keskeytyskuvauksia, jotka voivat olla keskeytysportteja, trap-portteja tai tehtäväportteja. Taulukon kokoa voidaan pienentää (enintään - 256 × 8 tavua), taulukon sijainti voi muuttua (määritetään prosessorin IDT-rekisterin sisällöstä). Keskeytyksen käsittelijän koodin on oltava vähintään yhtä etuoikeutettu kuin keskeytetyn tehtäväkoodin (muuten laukeaa suojauspoikkeus). Tästä syystä keskeytyskäsittelijöiden on suoritettava käyttöjärjestelmän ydintasolla (nolla käyttöoikeustasolla). Oikeustason muuttaminen käsittelijää kutsuttaessa lisää aikaa pinon uudelleenmäärittelyyn. Tehtävän vaihtamista aiheuttavat keskeytykset (Task Gaten kautta) käyttävät huomattavasti aikaa kontekstin vaihtamiseen - prosessorirekisterien purkamiseen vanhan tehtävän tilasegmenttiin ja niiden lataamiseen uuden tilasegmentistä.

Laitteistokeskeytyksiä varten käytettyjen vektorien lukumäärä käyttöjärjestelmät suojattu tila eroavat reaalitilan käyttöjärjestelmässä käytetyistä numeroista, jotta ne eivät ole ristiriidassa suorittimen poikkeuksissa käytettyjen vektoreiden kanssa.

Prosessori vastaa aina ei-maskoitavaan keskeytykseen (NMI) (jos edellisen NMI:n huolto on valmis); Tämä keskeytys vastaa kiinteää vektoria 2. Ei-maskoitavia keskeytyksiä PC-tietokoneissa käytetään signaloimaan kohtalokkaat laitteistovirheet. Signaali NMI-linjalle tulee muistin ohjauspiireistä (pariteetti tai ECC), ISA-väylän ohjauslinjoista (IOCHK) ja PCI-väylästä (SERR#). NMI-signaali estetään ennen prosessoriin tuloa asettamalla portin 070h bitti 7 arvoon 1, yksittäiset lähteet otetaan käyttöön ja tunnistetaan portin 061h biteillä:

  • bitti 2 R/W - ERP - lupa ohjata PCI-väylän RAM-muistia ja SERR#-signaalia;
  • bitti 3 R/W - EIC - ISA-väylän ohjausresoluutio;
  • bitti 6 R - IOCHK - ohjausvirhe ISA-väylässä (IOCHK# signaali);
  • bitti 7 R - PCK - RAM-pariteettivirhe tai SERR#-signaali PCI-väylällä.

Prosessorin vastausta maskoitaviin keskeytyksiin voidaan viivyttää nollaamalla sen sisäinen IF-lippu (CLI-käsky poistaa keskeytykset käytöstä, STI-käsky ottaa käyttöön). Maskoitavia keskeytyksiä käytetään signaloimaan tapahtumia laitteissa. Kun tapahtuu tapahtuma, joka vaatii vastausta, laitesovitin (ohjain) muodostaa keskeytyspyynnön, joka lähetetään keskeytysohjaimen tuloon. Keskeytysohjaimen tehtävänä on tuoda keskeytyspyyntö prosessorille ja viestiä vektori, jolla ohjelmistokeskeytyksen käsittelymenettely valitaan.

Laitteen keskeytysrutiinin on suoritettava toimintoja laitteen huoltamiseksi, mukaan lukien sen pyynnön nollaus, jotta se voi vastata seuraaviin tapahtumiin, ja lopetuskomentojen lähettäminen keskeytysohjaimelle. Prosessointirutiinia kutsuessaan prosessori tallentaa automaattisesti kaikkien pinon lippujen arvon ja nollaa IF-lipun, mikä poistaa maskettavat keskeytykset käytöstä. Palatessaan tästä proseduurista (IRET-käskyä käyttäen) prosessori palauttaa tallennetut liput, mukaan lukien set (ennen keskeytystä) IF:n, joka taas mahdollistaa keskeytykset. Jos keskeytyskäsittelijän toiminnan aikana vaaditaan reagointia muihin keskeytyksiin (korkeampi prioriteetti), STI-käskyn on oltava käsittelijässä. Tämä pätee erityisesti pitkiin käsittelijöihin; tässä STI-ohje tulee syöttää mahdollisimman aikaisin, heti kriittisen (ei keskeytyvän) osan jälkeen. Keskeytysohjain palvelee myöhempiä saman tai alemman prioriteettitason keskeytyksiä vasta saatuaan EOI (End Of Interrupt) -komennon.

IBM PC -yhteensopivat tietokoneet käyttävät kahta päätyyppiä keskeytysohjaimia:

  • PIC (Peripheral Interrupt Controller) on oheislaitteiden keskeytysohjain, ohjelmisto on yhteensopiva "historiallisen" 8259A-ohjaimen kanssa, jota käytettiin ensimmäisissä IBM PC -malleissa. IBM PC/AT:n ajoista lähtien on käytetty peräkkäistä PIC-paria, mikä mahdollistaa jopa 15 keskeytyspyyntölinjan palvelun;
  • APIC (Advanced Peripheral Interrupt Controller) on edistynyt oheislaitteiden keskeytysohjain, joka on otettu käyttöön moniprosessorijärjestelmien tukemiseksi tietokoneissa, jotka perustuvat 4-5 sukupolven prosessoreihin (486 ja Pentium), ja sitä käytetään edelleen myöhemmissä prosessorimalleissa. Sen lisäksi, että se tukee moniprosessorikokoonpanoja, nykyaikainen APIC mahdollistaa käytettävissä olevien keskeytyslinjojen määrän lisäämisen ja viestimoottorin (MSI) kautta lähetettävien PCI-laitteiden keskeytyspyyntöjen käsittelemisen. APIC-ohjaimella varustetun tietokoneen on kyettävä toimimaan standardin PIC-parin kanssa yhteensopivassa tilassa. Tämä tila aktivoidaan laitteiston nollauksella (ja virran kytkemisellä), jolloin voit käyttää vanhoja OS- ja MS DOS -sovelluksia, jotka eivät tunne APIC:tä ja moniprosessointia.

Perinteinen menetelmä keskeytyspyyntöjen generoimiseksi käyttämällä PIC-paria on esitetty alla olevassa kuvassa.

Keskeytysohjaimen tulot vastaanottavat pyyntöjä järjestelmälaitteet(näppäimistö, järjestelmäajastin, CMOS-ajastin, apuprosessori), emolevyn oheisohjaimet ja laajennuskortit. Perinteisesti kaikki pyyntölinjat, joita luetellut laitteet eivät käytä, ovat kaikissa ISA/EISA-väyläpaikoissa. Nämä linjat on nimetty IRQx ja niillä on yhteinen tarkoitus (katso taulukko alla). Jotkut näistä linjoista on varattu PCI-väylälle. Taulukossa näkyy myös keskeytysprioriteetit - pyynnöt on järjestetty laskevaan järjestykseen. Ohjaimen pyyntörivejä, prioriteettijärjestelmää ja joitain muita parametreja vastaavat vektorien määrät asetetaan ohjelmoidusti ohjaimia alustettaessa. Nämä perusasetukset pysyvät perinteisinä ohjelmistojen yhteensopivuuden kannalta, mutta eroavat toisistaan ​​reaalitilan ja suojatun tilan käyttöjärjestelmien välillä. Esimerkiksi Windows-käyttöjärjestelmässä isäntä- ja orjaohjaimien perusvektorit ovat 50h ja 58h, vastaavasti.

Nimi (numero 1) Vektori 2 Vektori 3 Ohjain/maski Kuvaus
NMI 02h


IRQ0 08h 50h
#1/1h
Kanavan ohjaus, muistin pariteetti (XT:ssä - apuprosessori)
IRQ1 09h 51h
#1/2h
Näppäimistö
IRQ2 0 Ah 52h
#1/4h
XT - vara, AT - ei saatavilla (IRQ8-IRQ15-kaskadi on kytketty)
IRQ8 70h
58h
#2/1h
CMOS RTC - Reaaliaikainen kello
IRQ9 71h
59h
#2/2h
Varata
IRQ10 72h
5 Ah
#2/4h
Varata
IRQ11 73h
5 Bh
#2/8h
Varata
IRQ12 74h
5 Ch
#2/10h
PS/2-hiiri (varaus)
IRQ13 75h
5Dh
#2/20h
Matemaattinen apuprosessori
IRQ14 76h
5 Eh
#2/40h
HDC - HDD-ohjain
IRQ15 77h
5Fh
#2/80h
Varata
IRQ3 0 Bh
52h
#1/4h
COM2, COM4
IRQ4 0 Ch
53h
#1/10h
COM1, COM3
IRQ5I 0Dh
54h
#1/20h
XT - HDC, AT - LPT2, ääni (varaus)
IRQ6 0 Eh
55h
#1/40h
FDC - float drive -ohjain
IRQ7 0Fh
56h
#1/80h
LPT1 - tulostin

*1 Keskeytyspyyntöjä 0, 1, 8 ja 13 ei lähetetä laajennusväylille.
*2 Vektorinumerot näytetään käytettäessä todellisessa prosessoritilassa.
*3 Vektorinumerot näytetään, kun työskentelet Windows-käyttöjärjestelmässä.

Jokaiselle laitteelle, joka tarvitsee keskeytyksiä toimiakseen, on annettava oma keskeytysnumeronsa. Keskeytysnumeroiden osoitukset tehdään kahdelta puolelta: ensin keskeytyksiä vaativa sovitin on konfiguroitava käyttämään tiettyä väylälinjaa (joko jumpperien tai ohjelmiston avulla). Toiseksi sovitinta tukevalle ohjelmistolle on ilmoitettava käytettävä vektorinumero. PnP-järjestelmä ISA- ja PCI-väylille voi osallistua keskeytysten määrittämiseen. Erityisiä CMOS-asetusparametreja käytetään pyyntölinjojen jakamiseen väylien välillä. Nykyaikaisissa käyttöjärjestelmissä on mahdollisuus muuttaa CMOS-asennuksen kautta tehtyjen pyyntöjen kohdistusta.

Kun keskeytysjärjestelmä on konfiguroitu (keskeytysohjain on alustettu, pyyntörivit osoitetaan laitteille ja osoittimet prosessointiproseduuriin on asetettu), maskattavat laitteistokeskeytykset käsitellään seuraavasti:

  • keskeytystapahtuman yhteydessä laite herättää sille osoitetun keskeytyspyyntörivin;
  • ohjain vastaanottaa pyyntösignaalit keskeytyslähteistä (IRQx-signaalit) ja, jos on peittämätön pyyntö, lähettää yleisen keskeytyspyyntösignaalin (INTR-signaalin) x86-prosessorille;
  • prosessori vastaa pyyntöön (kun keskeytykset IF-lipulla ovat käytössä) tallentaa pinoon lippurekisterin sisällön ja paluuosoitteen, minkä jälkeen se generoi INTA (Interrupt Acknowledge) -väyläsyklin, joka toimitetaan keskeytysohjain;
  • sillä hetkellä, kun INTA-signaali vastaanotetaan, keskeytysohjain tallentaa pyyntötulojensa tilan - tähän hetkeen mennessä niiden tila on voinut muuttua: uusia pyyntöjä saattaa ilmestyä tai pyyntö "kärsimättömältä" laitteelta voi kadota. Ohjain analysoi saapuvat pyynnöt ohjelmoidun prioriteettimallin mukaisesti ja lähettää prosessorille keskeytysvektorin, joka vastaa korkeimman prioriteetin peittämätöntä pyyntöä, joka on läsnä ohjaimen tulossa INTA-väyläkomennon antamishetkellä. Samanaikaisesti ohjain suorittaa myös joitain toimintoja vahvistetun prioriteettipolitiikan mukaisesti ottaen huomioon, mikä vektori lähetettiin (mikä pyynnöistä meni palveluun);
  • Vastaanotettuaan keskeytysvektorin prosessori kutsuu vastaavan keskeytyksenkäsittelyproseduurin numerollaan. Jos tiettyä keskeytysvektoria ei käytetä vain laitteistokeskeytyksiä, vaan myös poikkeuksia ja/tai ohjelmistokeskeytyksiä varten, rutiinin on ensin määritettävä, mikä näistä tyypeistä on. Tämä tapahtuma. Tätä varten menettely voi ottaa yhteyttä PIC-ohjaimeen (lukea ISR-rekisteri) ja analysoida prosessorirekisterien tilaa. Lisävaiheita harkitaan siinä tapauksessa, että laitteistokeskeytys havaitaan;
  • Keskeytyksen käsittelyprosessin tulee tunnistaa keskeytyksen lähde - määrittää keskeytyksen aiheuttanut laite. Useiden laitteiden yhteiskäytössä annettu numero pyynnöstä (ja siten vektorin), keskeytyksen lähde voidaan tunnistaa vain peräkkäisellä pääsyllä kunkin laitteen rekistereihin. Tässä tapauksessa tulee ottaa huomioon mahdollisuus vastaanottaa pyyntöjä usealta laitteelta samanaikaisesti tai käsiteltäessä keskeytystä yhdeltä niistä;
  • menettelyn tulee huoltaa keskeytyslähdelaitetta - suorittaa "hyödyllisiä" toimintoja, jotka liittyvät laitteen ilmoittamaan tapahtumaan. Tämän palvelun tulisi myös varmistaa, että keskeytyspyyntösignaali tästä laitteesta poistetaan. Jaetuissa keskeytyksissä voi olla useita lähteitä, ja ne kaikki vaativat ylläpitoa;
  • jos keskeytyskäsittely vie huomattavasti aikaa, jonka aikana järjestelmän on vastattava korkeamman prioriteetin pyyntöihin, niin kriittisen osan jälkeen käsittelijään tulee STI-käsky, joka asettaa prosessoriin keskeytyksen sallimislipun (IF). . Tästä hetkestä lähtien sisäkkäiset keskeytykset ovat mahdollisia, jotka keskeyttävät tietyn käsittelijän työn toisella, korkeamman prioriteetin proseduurilla;
  • Keskeytyskäsittelyn tulee lähettää ohjaimelle komento keskeytyskäsittelyn loppuun saattamiseksi EOI (End Of Interrupt), jonka avulla ohjain sallii myöhemmän signaalin vastaanoton huolletusta ja alemman prioriteetin tuloista. Tämä on tehtävä keskeytyssignaalin poistamisen jälkeen huolletuista laitteista, muuten ohjain lähettää toisen pyynnön EOI:n jälkeen. Keskeytyskäsittelijän, jolle on tullut pyyntö orjaohjaimelta, on lähetettävä EOI sekä orja- että isäntäohjaimelle. Käsittelijän osion, joka alkaa EOI-käskyn antamisesta lopetukseen (IRET-käsky), tulee olla keskeytymätön, eli se on kriittinen osa. Jos käsittelijä salli sisäkkäiset keskeytykset, CLI-käskyn, joka estää keskeytykset, on oltava läsnä ennen EOI-komennon antamista;
  • keskeytyskäsittely saatetaan päätökseen IRET-käskyllä, jolla prosessori palaa suorittamaan keskeytettyä käskyvirtaa haettuaan aiemmin lippurekisterin sisällön pinosta. Tässä tapauksessa laitteistokeskeytykset otetaan uudelleen käyttöön.

Tämä sekvenssi on kuvattu tavallisen keskeytysohjaimen (PIC) yhteydessä, APIC-järjestelmät muuttavat tapaa, jolla keskeytysvektori välitetään ohjaimesta prosessoriin, ja MSI-keskeytykset muuttavat tapaa, jolla signaali välitetään laitteesta APIC-ohjaimeen. . Nämä vivahteet kuvataan seuraavissa osissa.

yleistä tietoa

PCI-sillat (PCI Bridge) ovat erikoislaitteita PCI- (ja PCI-X)-väylien yhdistämiseen toisiinsa ja muihin väyliin. Host Bridgeä käytetään PCI:n liittämiseen tietokoneen keskelle (järjestelmämuisti ja prosessori). Pääsillan "kunniallinen velvollisuus" on tuottaa kutsuja konfigurointitilaan keskusprosessorin ohjauksessa, jolloin isäntä (keskusprosessori) voi määrittää koko PCI-väyläalijärjestelmän. Järjestelmässä voi olla myös useita pääsiltoja, mikä mahdollistaa tehokkaan tiedonsiirron keskuksen kanssa suuremmalle määrälle laitteita (yhdessä väylässä olevien laitteiden määrä on rajoitettu). Näistä linja-autoista yksi on ehdollisesti pääbussiksi (bussi 0).

PCI-vertaissiltoja (PeertoPeer Bridge) käytetään lisäämään PCI-väyliä. Nämä sillat tuovat aina ylimääräistä tiedonsiirtoa, joten laitteiden ja keskittimen välisen viestinnän tehokas suorituskyky heikkenee jokaisen tielle tulevan sillan myötä.

PCMCIA-, CardBus-, MCA-, ISA/EISA-, X-Bus- ja LPC-väylien kytkemiseen käytetään erityisiä siltoja, jotka sisältyvät emolevyn piirisarjoihin tai ovat erillisiä PCI-laitteita (siruja). Nämä sillat muuntavat liittämiensä väylien rajapinnat, synkronoivat ja puskuroivat tiedonvaihtoa.

Jokainen silta on ohjelmoitava - sille on annettu osoitealueet muistissa ja I/O-tilat, jotka on varattu laitteille sen väylissä. Jos nykyisen tapahtuman CPU-osoite sillan yhdellä väylällä (puolella) viittaa vastakkaisen puolen väylään, silta kääntää tapahtuman sopivalle väylälle ja varmistaa väyläprotokollan neuvottelun. Siten joukko PCI-siltoja suorittaa pyyntöjen reitityksen liittyviä väyliä pitkin. Jos järjestelmässä on useita pääsiltoja, niin päästä päähän -reititys eri väylillä olevien laitteiden välillä ei välttämättä ole mahdollista: pääsillat voivat olla yhteydessä toisiinsa vain muistiohjaimen runkopolkujen kautta. Kaikentyyppisten PCI-tapahtumien kääntämisen tukeminen pääsiltojen kautta osoittautuu tässä tapauksessa liian monimutkaiseksi, eikä sitä siksi vaadi PCI-spesifikaatiossa. Siten kaikki aktiiviset laitteet kaikilla PCI-väylillä voivat käyttää järjestelmämuistia, mutta vertaisviestinnän mahdollisuus voi riippua siitä, kuuluvatko nämä laitteet johonkin PCI-väylään.

PCI-siltojen käyttö tarjoaa seuraavat mahdollisuudet:

  • liitettyjen laitteiden mahdollisen määrän lisääminen, väylän sähköisten eritelmien rajoitusten ylittäminen;
  • PCI-laitteiden jakaminen segmentteihin - PCI-väylät - kanssa erilaisia ​​ominaisuuksia bitin syvyys (32/64 bittiä), kellotaajuus(33/66/100/133 MHz), protokolla (PCI, PC-X-tila 1, PCI-X Mode 2, PCI Express). Jokaisella väylällä kaikki tilaajat ovat yhtä suuria kuin heikoin osallistuja; laitteiden oikea sijoittaminen väyliin antaa sinun käyttää laitteiden ja emolevyn ominaisuuksia mahdollisimman tehokkaasti;
  • segmenttien järjestäminen "kuumien" laitteiden liittämisellä/irrottamalla;
  • tapahtumien samanaikainen rinnakkainen toteuttaminen eri väylillä sijaitsevilta aloittajilta.

Jokainen PCI-silta yhdistää vain kaksi väylää: ensisijaisen väylän, joka sijaitsee lähempänä hierarkian huippua, toisioväylän kanssa; Siltaliitäntöjä, joilla se on kytketty näihin väyliin, kutsutaan ensisijaiseksi ja toissijaiseksi. Vain puhtaasti puumainen konfiguraatio on sallittu, eli kaksi väylää on yhdistetty toisiinsa vain yhdellä sillalla, eikä siltoja ole "silmukoita". Tietyn sillan toissijaiseen rajapintaan muiden siltojen kautta kytkettyjä väyliä kutsutaan alisteisiksi väyliksi. PCI-sillat muodostavat PCI-väylien hierarkian, jonka yläosassa on isäntäväylä, numeroitu nolla, yhdistettynä isäntäsiltaan. Jos pääsiltoja on useita, niin niiden linja-autoista (samanarvoinen) pääsilta on se, jolle on annettu nollanumero.

Sillan on suoritettava useita pakollisia toimintoja:

  • huoltaa sen toissijaiseen rajapintaan kytkettyä väylää:
  • suorittaa sovittelun - vastaanottaa REQx#-pyyntösignaalit väyläisänniltä ja antaa heille oikeus ohjata väylää GNTx#-signaaleilla
  • pysäköi väylä - lähetä GNTx#-signaali jollekin laitteelle, kun mikään isäntä ei vaadi väylän ohjausta;
  • generoi tyypin 0 konfigurointijaksoja, joissa muodostetaan yksittäisiä IDSEL-signaaleja osoitettavalle PCI-laitteelle;
  • "vetää" ohjaussignaalit korkealle tasolle;
  • määrittää kytkettyjen laitteiden ominaisuudet ja valita niitä tyydyttävä väylän toimintatila (taajuus, bittisyvyys, protokolla);
  • generoi laitteiston nollauksen (RST#) nollaamalla ensisijaisesta rajapinnasta ja komennolla raportoimalla valitusta tilasta erityisellä hälytyksellä.
  • ylläpitää karttoja resursseista, jotka sijaitsevat sillan vastakkaisilla puolilla;
  • vastata kohdelaitteen varjolla tapahtumiin, jotka isäntä on aloittanut yhdessä rajapinnassa ja osoitettu toisessa rajapinnassa sijaitsevalle resurssille; lähettää nämä tapahtumat toiseen käyttöliittymään, joka toimii päälaitteena, ja lähettää niiden tulokset todelliselle aloittajalle.

Näitä toimintoja suorittavia siltoja kutsutaan läpinäkyviksi silloiksi; Tällaisten siltojen takana olevien laitteiden kanssa työskentelyyn ei tarvita ylimääräisiä siltaohjaimia. Juuri nämä sillat on kuvattu PCI Bridge 1.1 -spesifikaatiossa, ja niille, PCI-laitteille, on erityinen luokka (06). Tässä tapauksessa tarkoitamme "tasaista" resurssien osoitemallia (muisti ja I/O): jokaisella laitteella on omat osoitteensa, jotka ovat yksilöllisiä (ei risteä muiden kanssa) tietyssä järjestelmässä (tietokoneessa).

On myös läpinäkymättömiä siltoja (ei läpinäkyvä silta), joiden avulla voit järjestää erilliset segmentit omilla paikallisilla osoiteavaruuksilla. Läpinäkymätön silta suorittaa osoitteenmuunnoksen (muunnoksen) tapahtumille, joissa aloittaja ja kohdelaite sijaitsevat sillan vastakkaisilla puolilla. Kaikki vastapuolen resurssit (osoitealueet) eivät välttämättä ole tavoitettavissa tällaisen sillan kautta. Läpinäkyviä siltoja käytetään esimerkiksi silloin, kun tietokoneessa on "älykäs input/output" (I20) -alijärjestelmä, jossa on oma I/O-prosessori ja paikallinen osoiteavaruus.

yleistä tietoa

PCI-väylä on natiivisti rakennettu automaattisilla konfigurointiominaisuuksilla. järjestelmäresurssit(muisti- ja I/O-tilat ja keskeytyspyyntörivit). Automaattinen laitekonfigurointi (osoitteiden ja keskeytysten valinta) on tuettu BIOS- ja OS-työkaluilla; se keskittyy PnP-tekniikkaan. PCI-standardi määrittelee kullekin toiminnolle enintään 256 rekisterin (8 bitin) konfigurointitilan, jota ei ole määritetty muisti- tai I/O-tilaan. Niihin päästään kautta erikoisjoukkueet Configuration Read and Configuration Write -väylät, jotka on luotu jollakin alla kuvatuista laitteisto- ja ohjelmistomekanismeista. Tässä tilassa on alueita, joita vaaditaan kaikille laitteille ja tietyille laitteille. Tietyllä laitteella ei välttämättä ole rekistereitä kaikissa osoitteissa, mutta sen on tuettava niille osoitettujen toimintojen normaalia suorittamista. Tässä tapauksessa olemattomien rekisterien lukemisen tulee palauttaa nollia ja kirjoittaminen tulee suorittaa tyhjäkäynnillä.

Toiminnon konfigurointiavaruus alkaa vakiootsikolla, joka sisältää valmistajan, laitteen ja sen luokan tunnisteet sekä kuvauksen tarvittavista ja varatuista järjestelmäresursseista. Otsikkorakenne on standardoitu perinteisiä laitteita(tyyppi 0), PCI-PCI-sillat (tyyppi 1), PCI-CardBus-sillat (tyyppi 2). Otsikkotyyppi määrittää hyvin tunnettujen rekisterien sijainnin ja niiden bittien tarkoituksen. Otsikon jälkeen voi olla laitekohtaisia ​​rekistereitä. Laitteiden standardoituja ominaisuuksia (kykyä) varten (esimerkiksi energianhallinta) konfiguraatiotilassa on rekisterilohkoja, joilla on tunnettu tarkoitus. Nämä lohkot on järjestetty ketjuiksi, ensimmäiseen tällaiseen lohkoon viitataan standardiotsikossa (CAP_PTR); lohkon ensimmäisessä rekisterissä on viittaus seuraava lohko(tai 0 jos tämä lohko- viimeinen). Siten ketjua skannaamalla konfigurointiohjelmisto vastaanottaa listan kaikista saatavilla olevista laitteen ominaisuuksista ja niiden sijainnista toimintokonfiguraatiotilassa. PCI 2.3 määrittelee seuraavat CAP_ID:t, joista osan tarkastelemme:

  • 01 - energianhallinta;
  • 02 - AGP-portti;
  • 03 - VPD (Vital Product Data), tiedot, jotka tarjoavat kattavan kuvauksen laitteiden laitteiston (mahdollisesti myös ohjelmiston) ominaisuuksista;
  • 04 — aukkojen ja alustan numerointi;
  • 05 - MSI-keskeytykset;
  • 06 - Hot Swap, hot-liitäntä Compact PCI:lle;
  • 07 - PCI-X-protokollalaajennukset;
  • 08 - varattu AMD:lle;
  • 09 - valmistajan harkinnan mukaan (Myyjäkohtainen);
  • 0Ah — virheenkorjausportti (Debug Port);
  • 0Bh - PCI Hot Plug, vakiovaruste "hot plug".

PCI-X for Mode 2 -laitteissa määritystila on laajennettu 4096 tavuun; laajennetussa tilassa voi olla laajennettuja kiinteistökuvauksia.

Kovan nollauksen (tai virran kytkemisen) jälkeen PCI-laitteet eivät reagoi muistin ja I/O-tilan käyttöön, ja ne ovat käytettävissä vain asetusten lukemiseen ja kirjoittamiseen. Näissä toiminnoissa laitteet valitaan yksittäisten IDSEL-signaalien avulla ja rekistereitä lukemalla konfigurointiohjelmisto oppii resurssivaatimuksista ja mahdollisista. Kun määritysohjelma on varannut resurssit (POST- tai käyttöjärjestelmän käynnistyksen aikana), konfigurointiparametrit (perusosoitteet) kirjoitetaan laitteen konfigurointirekistereihin. Vasta tämän jälkeen laitteet (tarkemmin sanottuna toiminnot) asetetaan biteille, joiden avulla ne voivat vastata komentoihin päästäkseen muistiin ja I/O-portteihin sekä ohjata itse väylää. Jotta aina löydettäisiin toimiva konfiguraatio, kaikkien korttien käyttämien resurssien tulee olla siirrettävissä tiloissaan. Monitoimilaitteissa jokaisella toiminnolla on oltava oma konfigurointitila. Laite voi yhdistää samat rekisterit sekä muistiin että I/O-tilaan. Tässä tapauksessa molempien kuvaajien on oltava konfiguraatiorekistereissään, mutta kuljettajan on käytettävä vain yhtä pääsytapaa (mieluiten muistin kautta).

Määritystilan otsikko kuvaa kolmentyyppisten osoitteiden tarpeita:

  • rekisterit I/O-tilassa);
  • I/O-rekisterit on yhdistetty muistiin (Memory Mapped I/O). Tämä on muistialue, johon on päästävä tiukasti vaihdon aloittajan pyyntöjen mukaisesti. Näihin rekistereihin pääsy voi muuttaa oheislaitteiden sisäistä tilaa;
  • muistia, joka mahdollistaa esihaettavan muistin. Tämä on muistialue, johon "ylimääräinen" lukeminen (käyttämättömillä tuloksilla) ei johda sivuvaikutukset, kaikki tavut luetaan BE#-signaaleista riippumatta, ja silta voi yhdistää yksittäisten tavujen kirjoituksia (eli se on puhdasta muistia).

Osoitevaatimukset ilmoitetaan perusosoiterekistereissä - BAR (Base Address Register). Konfigurointiohjelma voi myös määrittää tarvittavien alueiden koon. Tätä varten sen on laitteiston nollauksen jälkeen luettava ja tallennettava perusosoitteiden arvot (nämä ovat oletusosoitteita), kirjoitettava FFFFFFFFh jokaiseen rekisteriin ja luettava niiden arvo uudelleen. Vastaanotetuissa sanoissa sinun on nollattava tyypin dekoodausbitit (bitit muistille ja bitit I/O:lle), käännettävä ja lisättävä tuloksena oleva 32-bittinen sana - tuloksena on alueen pituus (ohita porttien bitit ). Menetelmä olettaa, että alueen pituus ilmaistaan ​​muodossa 2n ja alue on luonnollisesti kohdistettu. Vakiootsikko sisältää jopa 6 rekisteriä perusosoite, mutta käytettäessä 64-bittistä osoitusta kuvattujen lohkojen määrä vähenee. Käyttämättömien BAR-rekisterien tulee aina palauttaa nollia luettaessa.

PCI tukee vanhoja laitteita (VGA, IDE), jotka ilmoittavat olevansa sellaisiksi otsikossa olevan luokkakoodin avulla. Niiden perinteisiä (kiinteitä) porttiosoitteita ei ilmoiteta konfiguraatiotilassa, mutta heti kun portin pääsyn salliva bitti on asetettu, laitteet saavat vastata myös näihin osoitteisiin.

Mitä tahansa käyttöliittymää kontekstissa tietokonejärjestelmät, sinun on oltava erittäin varovainen, ettet " törmää" yhteensopimattomiin liitäntöihin samoilla järjestelmän komponenteilla.

Onneksi, kun on kyse PCI-Express-liitännästä näytönohjaimen liittämiseksi, yhteensopimattomuudesta ei tule käytännössä mitään ongelmia. Tässä artikkelissa tarkastelemme tätä yksityiskohtaisemmin ja puhumme myös siitä, mitä PCI-Express on.

Miksi PCI-Expressiä tarvitaan ja mitä se on?

Aloitetaan, kuten tavallista, aivan perusasioista. PCI-Express-liitäntä(PCI-E)- tämä on tässä yhteydessä vuorovaikutusväline, joka koostuu väyläohjaimesta ja vastaavasta paikasta (kuva 2) emolevy(yleistämiseksi).

Tätä korkean suorituskyvyn protokollaa käytetään, kuten edellä mainittiin, näytönohjaimen liittämiseen järjestelmään. Vastaavasti emolevyssä on vastaava PCI-Express-paikka, johon videosovitin on asennettu. Aiemmin näytönohjaimet oli kytketty kautta AGP-liitäntä, mutta kun tämä käyttöliittymä yksinkertaisesti sanottuna "ei enää riittänyt", PCI-E tuli apuun, jonka yksityiskohtaisista ominaisuuksista puhumme nyt.

Kuva 2 (emolevyn PCI-Express 3.0 -paikat)

PCI-Expressin (1.0, 2.0 ja 3.0) tärkeimmät ominaisuudet

Huolimatta siitä, että nimet PCI ja PCI-Express ovat hyvin samankaltaisia, yhteyden (vuorovaikutuksen) periaatteet ovat radikaalisti erilaisia. PCI-Expressin tapauksessa käytetään linjaa - kaksisuuntaista sarjaliitäntä, pisteestä pisteeseen -tyyppiä, näitä rivejä voi olla useita. PCI-Express x16:ta (eli suurin osa) tukevien näytönohjainkorttien ja emolevyjen (emme ota huomioon Cross Fireä ja SLI:tä) tapauksessa voit helposti arvata, että tällaisia ​​linjoja on 16 (kuva 3), melko usein emolevyillä, joissa on PCI-E 1.0, toinen x8-paikka voitiin nähdä toimimaan SLI- tai Cross Fire -tilassa.

No, PCI:ssä laite on kytketty yhteiseen 32-bittiseen rinnakkaisväylään.

Riisi. 3. Esimerkki paikoista, joissa on eri määrä rivejä

(kuten aiemmin mainittiin, x16 on useimmiten käytetty)


Käyttöliittymän kaistanleveys on 2,5 Gbit/s. Tarvitsemme näitä tietoja seurataksemme tämän parametrin muutoksia PCI-E:n eri versioissa.

Lisäksi versio 1.0 kehittyi PCI-E 2.0. Tämän muutoksen seurauksena saimme kaksinkertaisen suorituskyvyn eli 5 Gbit/s, mutta haluan huomata, että suorituskyvyssä näytönohjaimet, ei todellakaan hyödyttänyt, koska se on vain versio käyttöliittymästä. Suurin osa suorituskyvystä riippuu itse näytönohjaimesta; käyttöliittymäversio voi vain hieman parantaa tai hidastaa tiedonsiirtoa (tässä tapauksessa "jarrutusta" ei ole, ja marginaali on hyvä).

Samalla tavalla vuonna 2010, varauksella, rajapinta kehitettiin PCI-E 3.0, tällä hetkellä sitä käytetään kaikissa uusissa järjestelmissä, mutta jos sinulla on edelleen 1.0 tai 2.0, älä huoli - alla puhumme eri versioiden suhteellisesta yhteensopivuudesta taaksepäin.

PCI-E 3.0:lla kaistanleveys on kaksinkertaistunut versioon 2.0 verrattuna. Siellä tehtiin myös paljon teknisiä muutoksia.

Arvioitu syntyvän vuonna 2015 PCI-E 4.0, mikä ei todellakaan ole yllättävää dynaamisen IT-alan kannalta.

No, okei, lopetetaan näillä versioilla ja läpimenoluvuilla, ja käsittelemme asiaa tärkeä kysymys PCI-Expressin eri versioiden taaksepäin yhteensopivuus.

Taaksepäin yhteensopiva PCI-Express 1.0, 2.0 ja 3.0 versioiden kanssa

Tämä kysymys huolestuttaa monia, varsinkin kun näytönohjaimen valinta varten nykyinen järjestelmä. Koska olet tyytyväinen järjestelmään, jonka emolevy tukee PCI-Express 1.0:aa, herää epäilyksiä, toimiiko PCI-Express 2.0 tai 3.0 -näytönohjain oikein? Kyllä, se tulee olemaan, ainakin tämän yhteensopivuuden varmistaneet kehittäjät lupaavat. Ainoa asia on, että näytönohjain ei pysty paljastamaan itseään täysin kaikessa loistossaan, mutta suorituskykyhäviöt ovat useimmissa tapauksissa merkityksettömiä.


Päinvastoin, voit helposti asentaa näytönohjaimet PCI-E-liitäntä 1.0, emolevyillä, jotka tukevat PCI-E 3.0:aa tai 2.0:aa, ei ole lainkaan rajoituksia, joten voit olla varma yhteensopivuudesta. Jos tietysti kaikki on kunnossa muiden tekijöiden kanssa, näitä ovat esimerkiksi riittämättömän tehonsyöttö jne.

Kaiken kaikkiaan olemme puhuneet melko paljon PCI-Expressistä, jonka pitäisi auttaa sinua selvittämään paljon sekaannusta ja epäilyjä yhteensopivuudesta ja ymmärtämään PCI-E-versioiden väliset erot.

PCI Express on väylä, jota käytetään erilaisten komponenttien liittämiseen pöytätietokoneeseen. Sitä käytetään videokorttien liittämiseen, verkkokortit, äänikortit, WiFi-moduulit ja muut vastaavat laitteet. Tämän renkaan kehitys alkoi Intel yhtiö vuonna 2002. Tällä hetkellä tästä linja-autosta kehitetään uusia versioita voittoa tavoittelematon organisaatio PCI Special Interest Group.

Tällä hetkellä PCI Express -väylä on korvannut kokonaan sellaiset vanhentuneet väylät kuin AGP, PCI ja PCI-X. PCI Express -väylä sijaitsee emolevyn alaosassa vaakasuorassa asennossa.

Mitä eroja on PCI Expressin ja PCI:n välillä

PCI Express on väylä, joka on kehitetty PCI-väylän pohjalta. Tärkeimmät erot PCI Expressin ja PCI:n välillä ovat fyysisessä kerroksessa. PCI käyttää jaettua väylää, kun taas PCI Express käyttää tähtitopologiaa. Jokainen PCI Express -laite on kytketty yhteiseen kytkimeen erillisellä liitännällä.

PCI Express -ohjelmistomalli on suurelta osin sama kuin PCI-malli. Siksi useimmat olemassa olevat CI-ohjaimet voidaan helposti muokata käyttämään PCI Express -väylää.

Lisäksi PCI Express -väylä tukee uusia ominaisuuksia, kuten:

  • Laitteiden kuuma kytkeminen;
  • Taattu tiedonsiirtonopeus;
  • Energian hallinta;
  • Lähetettyjen tietojen eheyden valvonta;

Kuinka PCI Express -väylä toimii?

PCI Express -väylä käyttää kaksisuuntaista sarjayhteyttä laitteiden kytkemiseen. Lisäksi tällaisessa yhteydessä voi olla yksi (x1) tai useita (x2, x4, x8, x12, x16 ja x32) erillisiä linjoja. Mitä enemmän tällaisia ​​linjoja käytetään, sitä suuremman tiedonsiirtonopeuden PCI Express -väylä voi tarjota. Riippuen tuettujen linjojen määrästä, emolevyn luokkakoko vaihtelee. Paikkoja on yksi (x1), neljä (x4) ja kuusitoista (x16) riviä.

Visuaalinen esittely PCI Express- ja PCI-korttipaikkojen koosta

Lisäksi mikä tahansa PCI Express -laite voi toimia missä tahansa paikassa, jos siinä on sama tai Suuri määrä rivit. Tämän avulla voit asentaa PCI:n Express-kortti x1-liittimellä emolevyn x16-paikkaan.

PCI Expressin kaistanleveys riippuu kaistojen määrästä ja väyläversiosta.

Yksisuuntainen / molempiin suuntiin Gbit/s
Rivien lukumäärä
x1 x2 x4 x8 x12 x16 x32
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

Jos tarvitset apua näytönohjaimen valinnassa tai soita niin autamme!

WiFi-moduulit ja muut vastaavat laitteet. Intel aloitti tämän linja-auton kehittämisen vuonna 2002. Nyt voittoa tavoittelematon organisaatio PCI Special Interest Group kehittää uusia versioita tästä väylästä.

Tällä hetkellä PCI Express -väylä on korvannut kokonaan sellaiset vanhentuneet väylät kuin AGP, PCI ja PCI-X. PCI Express -väylä sijaitsee emolevyn alaosassa vaakasuorassa asennossa.

PCI Express on väylä, joka on kehitetty PCI-väylän pohjalta. Tärkeimmät erot PCI Expressin ja PCI:n välillä ovat fyysisessä kerroksessa. PCI käyttää jaettua väylää, kun taas PCI Express käyttää tähtitopologiaa. Jokainen laite on kytketty yhteiseen kytkimeen erillisellä liitännällä.

PCI Express -ohjelmistomalli on suurelta osin sama kuin PCI-malli. Siksi suurin osa olemassa olevista PCI-ohjaimet voidaan helposti muokata käyttämään PCI Express -väylää.

PCI Express- ja PCI-paikat emolevyssä

Lisäksi PCI Express -väylä tukee uusia ominaisuuksia, kuten:

  • Laitteiden kuuma kytkeminen;
  • Taattu tiedonsiirtonopeus;
  • Energian hallinta;
  • Lähetettyjen tietojen eheyden valvonta;

Kuinka PCI Express -väylä toimii?

PCI Express -väylä käyttää kaksisuuntaista sarjayhteyttä laitteiden kytkemiseen. Lisäksi tällaisessa yhteydessä voi olla yksi (x1) tai useita (x2, x4, x8, x12, x16 ja x32) erillisiä linjoja. Mitä enemmän tällaisia ​​linjoja käytetään, sitä suuremman tiedonsiirtonopeuden PCI Express -väylä voi tarjota. Riippuen tuettujen linjojen määrästä, emolevyn luokkakoko vaihtelee. Paikkoja on yksi (x1), neljä (x4) ja kuusitoista (x16) riviä.

Visuaalinen esittely PCI Express -paikan mitoista

Lisäksi mikä tahansa PCI Express -laite voi toimia missä tahansa korttipaikassa, jos korttipaikassa on sama tai useampi rivi. Tämän avulla voit asentaa x1-liittimellä varustetun PCI Express -kortin emolevyn x16-paikkaan.

PCI Expressin kaistanleveys riippuu kaistojen määrästä ja väyläversiosta.

Yksisuuntainen / molempiin suuntiin Gbit/s

Rivien lukumäärä

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

Esimerkkejä PCI Express -laitteista

PCI Expressiä käytetään ensisijaisesti erillisten näytönohjainkorttien liittämiseen. Tämän linja-auton tulon jälkeen ehdottomasti kaikki näytönohjaimet käyttävät sitä.

GIGABYTE GeForce GTX 770 -näytönohjain

Tämä ei kuitenkaan ole kaikki, mitä PCI Express -väylä voi tehdä. Sitä käyttävät muiden komponenttien valmistajat.

SUS Xonar DX äänikortti

SSD-asema OCZ Z-Drive R4 Enterprise