Itifaki ya kuashiria basi ya PCI na PCI-X. Itifaki ya basi ya PCI


Kifaa cha kukarabati na kujaribu kompyuta za kibinafsi (PC) Kadi ya POSTA PCI hutumiwa kutambua makosa wakati wa kutengeneza na kuboresha kompyuta na mifumo ya pembeni. Itapata matumizi mapana katika mifumo yoyote ya kielektroniki inayofanya kazi kwenye kompyuta kama vile IBM PC (au inayotangamana nayo).

Habari za jumla

POST Kadi PCI (Kielelezo 1) ni kadi ya upanuzi ya Kompyuta ambayo inaweza kusakinishwa katika sehemu yoyote ya bure ya PCI (33 MHz) na imeundwa kuonyesha misimbo ya POST inayozalishwa na mfumo wa BIOS wa PC katika fomu ya kirafiki.

Mchele. 1. Mwonekano vifaa

Shukrani kwa matumizi ya FPGA (mantiki inayoweza kupangwa mzunguko jumuishi) kutoka Altera, imewezekana kuunda kifaa ambacho ni rahisi na rahisi kunakiliwa na wapenda redio.

Kwa kuongeza, kifaa kinaweza kutumika kama tester ya microcircuit. Kwa kusudi hili, hutoa jopo la pini 44 kwa chip.

Kifaa cha PCI cha POST Card kina sifa zifuatazo za kiufundi:

  • Ugavi wa voltage, V +5
  • Matumizi ya sasa, mA
  • Masafa ya basi ya PC PC, MG c 33
  • Anwani ya bandari ya uchunguzi 0080h
  • Ashirio la misimbo ya POST (katika heksadesimali) baiti 1
  • Dalili ya ishara za basi la PG RST (hatua ya kushoto), CLК (kiashiria cha kulia)
  • Viashiria vya uwepo wa voltage ya usambazaji wa nguvu, V +5, +12, -12, +3.3
  • Inaoana na ubao wa mama kulingana na Intel chipsets, VIA, SIS
  • Ukubwa bodi ya mzunguko iliyochapishwa mm 112x90

Msingi wa PCI ya Kadi ya POST ni FPGA DD1 (Mchoro 1, 2), ambayo hutumia kifaa kilichorahisishwa cha PCI Target ambayo inasaidia kuandika kwenye bandari ya pato na usanidi wa moja kwa moja (Plug & Plug), ya kutosha kwa uendeshaji wa kifaa. FPGA Altera EPM3064ALC44-10 imejumuishwa kwenye kit na imeratibiwa na MASTER KIT haswa ili kufanya kazi katika PCI ya POST Card. Chip ya DD2 ina kidhibiti cha voltage cha +3.3 V ili kuwasha FPGA. Taarifa kutoka kwa FPGA hutolewa katika mfumo wa serial na kurekodiwa katika rejista DD4, DD5. Matokeo yao yanaunganishwa kwa njia ya kuzuia vipingamizi kwa kiashiria cha sehemu 7 HL1, ambacho kinaonyesha misimbo ya POST. Ili kuhakikisha kuwa mchakato wa kuonyesha misimbo ya POST haujavunjwa katika tukio la kushindwa kwa kizazi cha PCI CLK kwenye ubao wa mama wenye makosa, POST Card PCI inajumuisha jenereta tofauti kwenye chip DD3.

Mchele. 2. Msingi mchoro wa umeme Vifaa vya PCI vya POST CARD

LED zilizounganishwa kwa njia ya kupinga vikwazo zinaonyesha kuwepo kwa voltages +3.3, +5, + 12 na -12 V kwenye basi ya PCI.

Kanuni ya uendeshaji

Kila wakati unapowasha nishati ya Kompyuta yako inayooana na IBM na kabla ya mfumo wa uendeshaji kuanza kupakia, kichakataji cha kompyuta hufanya kazi. Utaratibu wa BIOS inayoitwa "Power On Self Test" - POST (Power On Self Test). Utaratibu huo pia unafanywa wakati wa kushinikiza WEKA UPYA kitufe au wakati wa kuwasha upya kwa laini ya kompyuta. Katika baadhi ya matukio maalum, ili kupunguza muda wa boot ya PC, utaratibu wa POST unaweza kufupishwa kidogo kwa wakati, kwa mfano, katika hali ya "Quick Boot" au wakati wa kuondoka kwa "usingizi" mode (Hibernate).

Kusudi kuu la utaratibu wa POST ni kuthibitisha kazi za msingi na mifumo ndogo ya PC (kumbukumbu, processor, ubao wa mama, kidhibiti cha video, kibodi, floppy na anatoa ngumu) kabla ya kupakia mfumo wa uendeshaji. Hii inalinda mtumiaji kutokana na kujaribu kufanya kazi kwenye mfumo mbaya, ambayo inaweza, kwa mfano, kusababisha uharibifu wa data ya mtumiaji kwenye gari ngumu. Kabla ya kila jaribio kuanza, utaratibu wa POST hutoa msimbo wa POST ambayo hutolewa kwa anwani maalum katika nafasi ya anwani ya kifaa cha PC I/O. Ikiwa hitilafu itagunduliwa katika kifaa kinachojaribiwa, utaratibu wa POST hugandisha tu, na msimbo wa POST uliochapishwa awali huamua kipekee ni jaribio gani la kufungia kulifanyika. Kwa hivyo, kina na usahihi wa uchunguzi kwa kutumia nambari za POST zimedhamiriwa kabisa na kina na usahihi wa vipimo vya utaratibu wa POST unaofanana wa mfumo wa BIOS wa kompyuta.

Baadhi ya misimbo ya makosa ya BIOS

Jedwali linaonyesha baadhi ya misimbo ya AMI BIOS inayoonyesha makosa ya kawaida ya Kompyuta.

Jedwali

Kanuni

Kutofanya kazi vizuri

Hitilafu ya usanidi wa kumbukumbu ya mfumo (kosa mbaya)

Hitilafu ya usanidi wa kumbukumbu ya mfumo (beep)

Uanzishaji wa mapema wa kidhibiti cha kibodi

Hitilafu ya kuanzisha VGA BIOS

Hitilafu ya jaribio la kumbukumbu ya video ya CGA

Hitilafu ya mtihani wa skana ya CGA

Hitilafu katika kumbukumbu ya video au mizunguko ya kuchanganua

Inalemaza IRQ12 ikiwa panya ya PS/2 haipo

Onyesho la ujumbe wa makosa

Kuamua aina ya kumbukumbu, kiasi cha jumla na uwekaji kwa mistari

Kuripoti hitilafu wakati wa hatua za awali za uanzishaji

Kando na misimbo ya POST iliyo hapo juu, ujumbe kuhusu matukio wakati wa utekelezaji wa Kidhibiti cha Uanzishaji wa Kifaa (DIM) hutolewa kwenye mlango wa uchunguzi. Kuna vituo kadhaa vya ukaguzi vinavyoonyesha hali ya uanzishaji wa mfumo au mabasi ya ndani.

Ikiwa hitilafu ya usanidi wa kumbukumbu ya mfumo (misimbo ya DE au DF) imegunduliwa, msimbo wa DE, msimbo wa DF, na msimbo wa hitilafu ya usanidi hutolewa kwa kusafirisha 80h kwa mfuatano katika kitanzi kisichoisha, ambacho kinaweza kuchukua maadili yafuatayo:

00 - RAM haijatambuliwa;

01 - DIMM imewekwa aina mbalimbali(mfano, EDO na SDRAM);

02 - kusoma yaliyomo ya SPD imeshindwa;

03 - moduli haikidhi mahitaji ya uendeshaji kwa mzunguko maalum;

04 - moduli haiwezi kutumika katika mfumo huu;

05 - habari katika SPD hairuhusu matumizi ya modules zilizowekwa;

06 - hitilafu iligunduliwa katika ukurasa wa kumbukumbu ya chini.

Utatuzi wa shida kwa kutumia kijaribu cha POST Card

Awali ya yote, wakati nguvu imewashwa, kabla ya utaratibu wa POST kuanza, mfumo lazima uweke upya na ishara ya RST (RESET), ambayo inaonyeshwa kwenye Kadi ya POST kwa blinking fupi ya dot ya kushoto kwenye kiashiria. Wacha tuangalie makosa kadhaa maarufu ya PC na njia za kuziweka ndani.

Misimbo ya POST haionyeshwa

Ikiwa kompyuta haifanyi kazi, katika hali ngumu zaidi, kuweka upya haipiti kabisa, au hupita, lakini hakuna nambari za POST zinazoonyeshwa kwenye kiashiria.

Inashauriwa kuzima kompyuta mara moja na kuondoa kadi zote za ziada na nyaya, pamoja na kumbukumbu ya RAM kutoka kwa slots motherboard , na kuacha tu ubao wa mama yenyewe umeunganishwa na usambazaji wa umeme. imewekwa na processor na Kadi ya POSTA. Ikiwa wakati ujao unapowasha kompyuta, mfumo unaweka upya kwa kawaida na nambari za kwanza za POST zinaonekana, ni wazi tatizo liko katika vipengele vya kompyuta vilivyoondolewa kwa muda. Kebo zinaweza kuunganishwa vibaya. Kwa kuingiza moduli za kumbukumbu kwa mlolongo, adapta ya video, na kisha kadi zingine, na kutazama nambari za POST kwenye kiashiria, moduli mbaya hugunduliwa.

Hata uwekaji upya wa mfumo wa awali haufanyi kazi (kwenye kiashiria cha Kadi ya POST, mwanzoni mwa jaribio, nukta ya kiashiria cha kushoto haiwashi kwa muda mfupi)

Katika kesi hii, ugavi wa umeme wa kompyuta au ubao wa mama yenyewe ni mbaya (saketi za kizazi cha ishara za RESET ni mbaya). Sababu halisi inaweza kuamua kwa kuunganisha inayojulikana block nzuri lishe.

Ishara ya kuweka upya hupita, lakini hakuna misimbo ya POST inayoonyeshwa kwenye kiashiria (mfumo unaojumuisha tu ubao wa mama, kichakataji, Kadi ya POSTA na usambazaji wa umeme unajaribiwa)

Ikiwa ubao wa mama ni mpya, basi sababu inaweza kuwa sahihi swichi zilizowekwa kwenye ubao wa mama. Ikiwa swichi zote na processor zimewekwa kwa usahihi, na ubao wa mama hauanza, unapaswa kuchukua nafasi ya processor na nzuri inayojulikana. Ikiwa hii haina msaada, basi tunaweza kuhitimisha kuwa ubao wa mama au vipengele vyake ni vibaya (kwa mfano, sababu ya malfunction inaweza kuharibiwa habari katika Flash-BIOS).

Hitilafu za Kompyuta zimegunduliwa kwa kutumia kijaribu Kadi ya posT

Baada ya kuwasha nguvu ya kompyuta (au kubonyeza kitufe cha RESET) na kabla ya msimbo wa kwanza wa POST kuonekana Kiashiria cha POST Kadi, ishara maalum inaonyeshwa (angalia Mchoro 3), ambayo inaonyesha kwamba PC haitoi misimbo yoyote ya POST. Kipengele hiki cha uendeshaji wa Kadi hii ya POST hurahisisha utambuzi na hukuruhusu kuamua wazi ikiwa kompyuta inaanza kabisa. Kwa kuongeza, ishara sawa inaonyeshwa wakati wa kuweka upya programu ya basi ya PCI ili kurekodi kifungu cha ishara ya RST. Sehemu 7 za viashiria vya Kadi ya POST zinaonyesha hali ya ishara za basi za PCI za RST na CLK. Kuwasha kwa sehemu ya kulia inalingana na uwepo wa ishara inayotumika ya maingiliano ya CLK ya basi ya PCI, kuwasha kwa sehemu ya kushoto inalingana na uwepo wa ishara inayotumika ya RST.

Mchele. 3. Dalili kwenye Kadi ya POSTA kwamba Kompyuta haitoi misimbo yoyote ya POSTA

Ikiwa kompyuta inafanya kazi vizuri, unapowasha nguvu, mfumo lazima kwanza uweke upya na ishara ya RESET (ambayo imeonyeshwa kwenye Kadi ya POST na alama maalum), basi kompyuta inapaswa kuanza na kifungu cha mfululizo cha nambari zote za POST. . Ikiwa kompyuta haifanyi kazi, katika hali ngumu zaidi, kuweka upya haipiti kabisa, au hupita, lakini hakuna nambari zingine za POST zinaonyeshwa kwenye kiashiria.

Katika kesi hii, inashauriwa kuzima kompyuta mara moja, kukata kadi zote za ziada na nyaya, pamoja na kumbukumbu kutoka kwa ubao wa mama, na kuacha tu ubao wa mama na processor na imewekwa kushikamana na usambazaji wa umeme. Ubao wa POST Kadi.

Ikiwa wakati ujao unapowasha kompyuta, mfumo unaweka upya kwa kawaida na nambari za kwanza za POST zinaonekana, basi tatizo liko katika vipengele vya kompyuta vilivyoondolewa kwa muda. Nyaya zinaweza kuunganishwa vibaya (kebo ya IDE mara nyingi huingizwa kichwa chini).

Moduli ya kumbukumbu, adapta ya video, na kadi zingine zimewekwa kwa mpangilio na, kwa kutazama misimbo ya POST, moduli yenye hitilafu hugunduliwa.

Kwa mfano, na kumbukumbu mbovu kwa kompyuta zilizo na AMI BIOS, mlolongo wa nambari za POST kawaida huwekwa kwa nambari d4; na AWARD BIOS - kwenye misimbo C1 au C6. Inatokea kwamba sio moduli ya kumbukumbu yenyewe ambayo ni mbaya, lakini ubao wa mama - sababu ni mawasiliano mabaya katika viunganishi vya SIMM/DIMM (wasiliani zimepigwa/zimefungwa kwa kila mmoja), au moduli haijaingizwa kikamilifu kwenye kiunganishi.

Ikiwa adapta ya video ya kompyuta zilizo na AMI BIOS ni mbaya, mlolongo wa nambari za POST umewekwa kwa nambari 2C, 40 au 2A kulingana na urekebishaji wa BIOS, au nambari hizi hazipo, na mfuatiliaji hana mistari inayolingana ya uanzishaji. kadi ya video (kuonyesha aina, kiasi cha kumbukumbu na mtengenezaji wa adapta ya video ).

Vile vile, kwa kompyuta zilizo na BIOS ya AWARD, ikiwa adapta ya video haifanyi kazi, mlolongo wa misimbo ya POST ama huwekwa kwa msimbo 0d au "kuruka" msimbo huu. Ikiwa uanzishaji wa kumbukumbu na adapta ya video ulikwenda vizuri, sasisha kadi zilizobaki moja baada ya nyingine na, kwa kuunganisha nyaya, kulingana na usomaji wa kiashiria cha Kadi ya POST, tambua ni sehemu gani ya "sagging" ya basi ya mfumo na kuzuia. kompyuta kutoka kuwasha.

Katika Mtini. 4-6 inaonyesha dalili ya Kadi ya POSTA wakati a makosa mbalimbali.

Mchele. 4. Msimbo wa hitilafu ya kumbukumbu ya video (wakati wa majaribio, kadi ya kumbukumbu ya video iliondolewa kwenye kitengo cha mfumo)

Mchele. 5. Msimbo wa hitilafu wa kidanganyifu cha "Mouse" (panya ilizimwa wakati wa majaribio)

Mchele. 6. Nambari ya makosa ya RAM (wakati wa majaribio, moduli ya kumbukumbu iliondolewa kwenye ubao wa mama)

Mlolongo wa vitendo vya kufufua Kompyuta kwa kutumia kijaribu cha PCI cha POST Card

1. Zima nguvu kwenye kompyuta yenye hitilafu.

2. Sakinisha POST Kadi kwenye nafasi yoyote ya bure kwenye ubao mama.

3. Washa nguvu ya PC na usome msimbo wa POST unaofanana kutoka kwa kiashiria cha POST-Kadi, ambayo boot ya kompyuta inaingiliwa ("kufungia").

4. Kutumia meza za msimbo wa POST, ikiwa ni lazima, tambua ni vipimo gani vilivyosababisha matatizo na sababu zao zinazowezekana.

5. Wakati nguvu imezimwa, panga upya nyaya, modules za kumbukumbu za RAM na vipengele vingine na viunganisho ili kuondokana na malfunction.

6. Rudia hatua 3, 4, 5 ili kukamilisha utaratibu wa POST na upakiaji wa kawaida mfumo wa uendeshaji.

7. Kutumia huduma za programu, upimaji wa mwisho wa vipengele vya vifaa unafanywa, na katika kesi ya makosa ya "floating" (isiyo imara), muda mrefu wa vipimo vya programu sambamba hufanyika.

Akihutubia Vifaa vya PCI

Kwa basi ya PCI, uongozi wa dhana za kushughulikia umepitishwa: basi, kifaa, kazi. Dhana hizi huonekana tu wakati wa kufikia rejista za nafasi ya usanidi. Rejesta hizi zinapatikana katika hatua ya usanidi - uhasibu upya wa vifaa vilivyotambuliwa, ugawaji wa rasilimali zisizoingiliana kwao (maeneo ya kumbukumbu na nafasi ya I/O) na kugawa nambari za kukatiza kwa vifaa. Wakati wa operesheni zaidi ya mara kwa mara, vifaa vitajibu maombi kwenye kumbukumbu waliyopewa na anwani za I/O, zinazowasilishwa kwa moduli za programu zinazohusiana. Anwani hizi hupokelewa kutoka kwa basi la AD mwanzoni mwa kila shughuli. Laini tofauti za IDSEL hutumiwa kufikia nafasi ya usanidi

Kifaa cha PCI ni chipu au kadi ya upanuzi iliyounganishwa kwenye mojawapo ya mabasi ya PCI na kutumia njia ya IDSEL iliyokabidhiwa kwayo inayomilikiwa na basi hili kwa kitambulisho. Kifaa kinaweza kuwa cha kazi nyingi, yaani, kinajumuisha wengi (kutoka 1 hadi 8) kinachojulikana kazi. Kila chaguo la kukokotoa limetengewa nafasi ya usanidi ya baiti 256. Vifaa vya kufanya kazi nyingi vinapaswa tu kujibu mizunguko ya usanidi na nambari za utendakazi ambazo nafasi yake ya usanidi inapatikana. Katika kesi hii, nambari ya chaguo la kukokotoa 0 lazima iwepo; nambari za kazi zingine hupewa kiholela na msanidi wa kifaa (katika safu 1-7). Vifaa rahisi (vinavyofanya kazi moja), kulingana na utekelezaji, vinaweza kujibu nambari yoyote ya chaguo-msingi au nambari 0 pekee ya tendakazi.

Basi ya PCI ni seti ya mistari ya ishara inayounganisha moja kwa moja pini za interface za kikundi cha vifaa (slots, chips kwenye bodi ya mfumo). Mfumo unaweza kuwa na mabasi mengi ya PCI yaliyounganishwa na madaraja ya PCI. Madaraja kwa umeme hutenganisha ishara za kiolesura cha basi moja kutoka kwa nyingine, na kuziunganisha kimantiki; Daraja kuu huunganisha basi kuu na msingi wa mfumo (processor na kumbukumbu). Kila basi ina nambari yake ya basi (PCI basi nambari). Matairi yanahesabiwa kwa mlolongo; basi kuu lina nambari sifuri.

Kutoka kwa mtazamo wa usanidi, kitengo cha chini cha kushughulikiwa cha uongozi huu ni kazi; anwani yake kamili ina sehemu tatu: nambari ya basi, nambari ya kifaa na nambari ya kazi. Njia fupi ya utambulisho wa fomu RSY:1:2 (kwa mfano, katika ujumbe wa Unix OS) inamaanisha chaguo 2 cha kifaa 1 kilichounganishwa kwenye basi kuu (0) la PCI.

Kila shughuli (kubadilishana kwenye basi) inahusisha vifaa viwili - mwanzilishi wa ubadilishanaji, pia unajulikana kama kifaa kikuu, na kifaa kinacholengwa, kinachojulikana pia kama mtumwa. Basi la PCI huchukulia shughuli zote kama pakiti: kila muamala huanza na awamu ya anwani, ambayo inaweza kufuatiwa na awamu moja au zaidi ya data. Muundo na madhumuni ya ishara za kiolesura cha basi zimetolewa hapa chini/

Anuani ya AD/Data - anwani iliyopanuliwa/basi ya data. Mwanzoni mwa shughuli, anwani hupitishwa, katika mizunguko inayofuata - data

C/BE# Amri/Byte Wezesha - amri/ruhusa ya kufikia ka. Amri inayoamua aina ya mzunguko wa basi unaofuata imeainishwa na nambari ya biti nne katika awamu ya anwani "

MFUMO* - Fremu. Kuanzishwa kwa ishara kunaashiria mwanzo wa shughuli (awamu ya anwani), kuondolewa kwa ishara kunaonyesha kuwa mzunguko wa uhamishaji wa data unaofuata ndio wa mwisho katika shughuli.

DEVSEL* Chagua Kifaa - kifaa kimechaguliwa (jibu la CPU kwa shughuli iliyoelekezwa kwake)

IRDY* Kianzisha Tayari - utayari wa kifaa kikuu kwa kubadilishana data

TRDY* Lengo Tayari - utayari wa kituo cha udhibiti kwa ubadilishanaji wa data

SIMAMA* Omba kutoka kwa CPU kwa bwana ili kusimamisha shughuli ya sasa

LOCK* - Ishara ya kufunga basi ili kuhakikisha uendeshaji usiokatizwa. Inatumiwa na daraja ambalo linahitaji shughuli nyingi za PCI ili kukamilisha operesheni moja

REQ# Ombi - ombi kutoka kwa kifaa kikuu kukamata basi

GNT# Grant - kutoa udhibiti wa basi kwa bwana

PAR Parity - bit ya usawa ya kawaida kwa mistari ya AD na C/BE#

PERR* - Hitilafu ya Usawa - ishara ya hitilafu ya usawa (kwa mizunguko yote isipokuwa maalum). Imetolewa na kifaa chochote kinachotambua hitilafu

PME# Tukio la Usimamizi wa Nguvu - ishara kuhusu matukio yanayosababisha mabadiliko ya modi

matumizi ( ishara ya ziada, iliyoletwa katika PCI 2.2)

CLKRUN* Saa inayoendesha - basi hufanya kazi kwa masafa ya kawaida ya saa. Kuondoa mawimbi kunamaanisha kupunguza kasi au kusimamisha ulandanishi ili kupunguza matumizi (kwa maombi ya simu)

PRSNT# Present - viashiria vya uwepo wa bodi vinavyosimba ombi la matumizi ya nishati. Kwenye kadi ya upanuzi, laini moja au mbili za LED zimeunganishwa kwenye basi ya GND, ambayo inaonekana. bodi ya mfumo

RST# Rudisha - weka upya rejista zote kwa hali ya awali

Chagua Kifaa cha Kuanzisha IDSEL - uteuzi wa kifaa katika mizunguko ya usanidi

Soma na andika

SERR# Hitilafu ya Mfumo - hitilafu ya mfumo. Hitilafu maalum ya usawa wa anwani ya data ya kitanzi au hitilafu nyingine mbaya iliyogunduliwa na kifaa. Huwashwa na kifaa chochote cha PCI na hupiga simu kwa NMI

REQ64* Omba 64-bit - ombi la kubadilishana 64-bit. Ishara ni pembejeo 64-bit

mwanzilishi, inalingana kwa wakati na ishara ya FRAME*. Wakati wa kukamilisha kuweka upya (mawimbi ya RST*) ishara kwa kifaa cha 64-bit ambacho kimeunganishwa kwenye basi ya 64-bit. Ikiwa kifaa cha 64-bit hakitambui mawimbi haya, lazima kijipange upya kwa modi ya biti-32 kwa kuzima saketi za baiti za juu.

ACK64* - Uthibitishaji wa ubadilishaji wa 64-bit. Ishara inaingizwa na 64-bit CPU, ambayo imetambua anwani yake, wakati huo huo na DEVSEL*. Kukosa kutoa uthibitisho huu kutalazimisha mwanzilishi kutekeleza ubadilishanaji kwa 32-bit

INTA#, INTB*, Kikatiza A, B, C, D - kukatiza ombi, unyeti wa kiwango, INTC#, INTD* kiwango amilifu - chini, ambayo inaruhusu utengano (kushiriki) wa mistari

CLK Clock - mzunguko wa saa ya basi. Inapaswa kuwa ndani ya anuwai ya 20-33 MHz, katika PCI2.1 - hadi 66 MHz

M66EN 66MHz Wezesha - azimio la mzunguko wa saa hadi 66 MHz

SDONE Snoop Done - ishara kwamba mzunguko wa upekuzi umekamilika kwa shughuli ya sasa. Kiwango cha chini kinaonyesha kuwa mzunguko wa ufuatiliaji wa kumbukumbu na kache haujakamilika. Ishara ya hiari, inayotumiwa tu na vifaa vya basi vilivyo na kumbukumbu iliyohifadhiwa

SBO# Snoop Backoff - hit ya ufikiaji wa kumbukumbu ya sasa ya mteja wa basi

kwa mstari wa kache uliobadilishwa. Ishara ya hiari, inayotumiwa tu na watumiaji wa basi walio na kumbukumbu iliyohifadhiwa wakati wa algorithm andika tena

Saa ya Kujaribu ya TSK - Usawazishaji wa kiolesura cha jaribio la JTAG

Ingizo la Data ya Jaribio la TDI - data ya kuingiza kiolesura cha jaribio la JTAG

Too la Pato la Data la Jaribio - data ya towe ya kiolesura cha JTAG

Teua Hali ya Jaribio la TMS - chagua modi ya kiolesura cha majaribio cha JTAG

Kuweka upya Mantiki ya Jaribio la TRST - weka upya mantiki ya jaribio

Kwa wakati wowote, basi inaweza kudhibitiwa tu na kifaa kimoja kikuu, ambacho kimepokea haki ya kufanya hivyo kutoka kwa msuluhishi. Kila kifaa kikuu kina jozi ya mawimbi - REQ# ya kuomba udhibiti wa basi na GNT* ili kuthibitisha kuwa udhibiti wa basi umekubaliwa. Kifaa kinaweza kuanzisha muamala (weka mawimbi ya FRAME*) tu wakati mawimbi ya GNT* yamewashwa. Kuondoa mawimbi ya GNT* huzuia kifaa kuanza muamala unaofuata, na chini ya hali fulani (tazama hapa chini) hukisababisha kusimamisha shughuli ya sasa. Usuluhishi wa maombi ya kutumia basi unashughulikiwa na node maalum iliyojumuishwa kwenye chipset ya ubao wa mama. Mpango wa kipaumbele (fasta, pande zote-robin, pamoja) imedhamiriwa na programu ya arbiter.

Mistari ya kawaida ya AD iliyozidishwa hutumiwa kwa anwani na data. Mistari minne ya C/BE iliyozidishwa hutoa usimbaji wa amri katika awamu ya anwani na azimio la byte katika awamu ya data. Mwanzoni mwa muamala, kifaa kikuu huwasha mawimbi ya FRAME*, hutuma anwani lengwa kupitia basi la AD, na taarifa kuhusu aina ya shughuli (amri) kupitia njia za C/BE#. Kituo cha udhibiti kinachoshughulikiwa hujibu kwa mawimbi ya DEVSEL*. Kifaa kikuu kinaonyesha utayari wake wa kubadilishana data na mawimbi ya IRDY#; utayari huu unaweza kuwekwa kabla ya kupokea DEVSEL*. Wakati kituo cha udhibiti kiko tayari kubadilishana data, itaweka mawimbi ya TRDY*. Data hutumwa kwenye basi la AD tu wakati mawimbi ya IRDY# na TRDY* yapo kwa wakati mmoja. Kwa msaada wa ishara hizi, kifaa kikuu na kituo cha udhibiti huratibu kasi yao kwa kuanzisha mizunguko ya kusubiri. Takwimu inaonyesha mchoro wa muda wa kubadilishana ambapo kifaa kikuu na kituo cha udhibiti huingia kwenye mizunguko ya kusubiri. Ikiwa wote wawili wangeingiza ishara zilizo tayari mwishoni mwa awamu ya anwani na hawakuziondoa hadi mwisho wa ubadilishanaji, basi biti 32 za data zingepitishwa katika kila mzunguko wa saa baada ya awamu ya anwani, ambayo ingetoa utendaji wa juu zaidi wa ubadilishanaji.

Idadi ya awamu za data kwenye pakiti haijaonyeshwa kwa uwazi, lakini kabla ya awamu ya mwisho ya data, kifaa kikuu, wakati ishara ya IRDY* inapoingizwa, huondoa ishara ya FRAME*. Katika miamala moja, mawimbi ya FRAME* hutumika kwa mzunguko wa saa moja pekee. Ikiwa kifaa hakiauni shughuli za bechi katika hali ya mtumwa, basi lazima kiombe kwamba shughuli ya bechi ikomeshwe wakati wa awamu ya kwanza ya data (kwa kuingiza mawimbi ya STOP* kwa wakati mmoja na TRDY*). Kwa kujibu, bwana atakamilisha muamala uliotolewa na kuendelea kubadilishana muamala unaofuata na thamani mpya ya anwani. Baada ya awamu ya mwisho ya data, kifaa mwenyeji huondoa mawimbi ya IRDY# na basi kwenda katika hali ya kutofanya kitu (PCI Idle) - mawimbi FRAME* na IRDY# yote yako katika hali ya passiv. Mwanzilishi anaweza kuanza muamala unaofuata bila muda wa kupumzika kwa kuingiza FRAME* wakati huo huo na kutoa IRDY#. Shughuli kama hizo za karibu za haraka (Fast Back-to-Back) zinaweza kushughulikiwa kwa kituo kimoja na tofauti cha kati. Aina ya kwanza inaungwa mkono na vifaa vyote vya PCI vinavyofanya kazi kama kitengo cha udhibiti wa kati. Msaada kwa aina ya pili (hiari) inaonyeshwa na bit 7 ya rejista ya hali. Mwanzilishi anaruhusiwa (ikiwa anaweza) kutumia miamala ya haraka inayoambatana na vifaa tofauti (bit 9 ya rejista ya amri) ikiwa tu mawakala wote wa basi wanaruhusu ufikiaji wa haraka.

Mchele. 29. Mzunguko wa mawasiliano kwenye basi ya PCI

Basi inakuwezesha kupunguza nguvu (ya sasa) inayotumiwa na vifaa, kwa gharama ya utendaji uliopunguzwa, kwa kutumia ubadilishaji wa hatua kwa hatua wa mistari ya AD na PAR (anwani / hatua ya data). Kuna chaguzi mbili zinazowezekana hapa.

· Kupiga hatua kwa kuendelea - mwanzo

uundaji wa mawimbi kwa viunzi vya hali ya chini mizunguko kadhaa ya saa kabla ya kuanzishwa kwa ishara halali ya kihitimu taarifa (FRAME# katika awamu ya anwani, IRDY# au TRDY# katika awamu ya data). Wakati wa mizunguko hii michache ya saa, ishara "zitatambaa" kwa thamani inayohitajika kwa sasa ya chini.

· Hatua za kipekee - kawaida

Waundaji wa sura hawaanzishwi kwa wakati mmoja, lakini kwa vikundi (kwa mfano, byte-byte), katika kila mzunguko wa saa kundi moja kwa wakati. Wakati huo huo, sasa inrush imepunguzwa, kwani madereva machache yanabadilishwa kwa wakati mmoja.

Kifaa yenyewe hakiwezi kutumia uwezo huu (tazama kidogo 7 ya rejista ya amri), lakini lazima "ielewe" mizunguko kama hiyo. Kwa kuchelewesha mawimbi ya FRAME*, kifaa kinaweza kupoteza ufikiaji wa basi ikiwa mwamuzi atapokea ombi kutoka kwa kifaa kilichopewa kipaumbele cha juu.

Itifaki ya kushikana mikono inahakikisha kuegemea kwa ubadilishanaji - kifaa kikuu hupokea habari kila wakati juu ya usindikaji wa manunuzi na kituo cha udhibiti wa kati. Njia ya kuongeza kuegemea (uhalali) ni matumizi ya udhibiti wa usawa: mistari AD na C/BE# katika awamu ya anwani na awamu ya data inalindwa na biti ya usawa PAR (idadi ya vipande vya mistari hii, pamoja na PAR. , lazima iwe sawa). Thamani halisi ya PAR inaonekana kwenye basi na kuchelewa kwa mzunguko wa saa moja kuhusiana na mistari ya AD na C/BE#. Hitilafu ya CPU inapogunduliwa, mawimbi ya PERR* huzalishwa (kwa mabadiliko ya saa baada ya biti ya kusawazisha kuwa halali). Wakati wa kuhesabu usawa wakati wa kusambaza data, byte zote huzingatiwa, ikiwa ni pamoja na zisizo sahihi (zinazo alama ya kiwango cha juu cha ishara ya C/BEx#). Hali kidogo, hata katika baiti za data zisizo sahihi, lazima ibaki thabiti wakati wa awamu ya data.

Kila muamala kwenye basi lazima ukamilike kama ilivyopangwa au kusitishwa, na basi lazima liende katika hali ya mapumziko (alama za FRAME* na IRDY# hazifanyiki). Kukamilika kwa manunuzi hufanywa ama kwa mpango wa bwana au kwa mpango wa PU. Bwana anaweza kukamilisha shughuli kwa njia moja zifuatazo.

· Usitishaji wa kawaida (Camletiori) unafanywa kulingana na

mwisho wa kubadilishana data.

Kukomesha kwa muda hutokea wakati

Wakati wa muamala, haki ya kifaa kikuu ya kudhibiti basi huondolewa (kwa kuondoa mawimbi ya GNT#) na muda uliobainishwa kwenye Kipima Muda chake cha Kuchelewa kuisha. Hili linaweza kutokea ikiwa CU iliyoshughulikiwa ni ya polepole bila kutarajiwa au muamala umeratibiwa kuwa mrefu sana. Shughuli fupi za malipo (pamoja na awamu moja au mbili za data), hata kama ishara ya GNT# imeondolewa na kipima muda kuanzishwa, hukamilishwa kama kawaida. Muamala umekataliwa (Master-Abort) wakati bwana haipokei jibu kutoka kwa CPU (DEVSEL*) ndani ya muda maalum.

Shughuli inaweza kusitishwa kwa mpango wa Kituo cha Udhibiti; Ili kufanya hivyo, inaweza kuingiza ishara ya STOP*. Kuna aina tatu za kusitisha iwezekanavyo.

· Jaribu tena - ishara ya STOP* inaingizwa wakati wa hali ya utulivu

ishara TRDY* kabla ya awamu ya kwanza ya data. Hali hii hutokea wakati kituo cha udhibiti, kutokana na shughuli nyingi za ndani, hawana muda wa kutoa data ya kwanza kwa wakati (mzunguko wa saa 16). Kujaribu tena ni dalili kwa bwana kuanza muamala sawa tena.

· Ondoa - ishara ya STOP* imeingizwa

wakati au baada ya awamu ya kwanza ya data. Ikiwa mawimbi ya STOP* yameingizwa wakati mawimbi ya TRDY* ya awamu inayofuata ya data inatumika, basi data hii inatumwa na shughuli imekamilika. Ikiwa ishara ya STOP* imeingizwa na ishara ya TRDY * tulivu, basi shughuli hiyo inakamilika bila kusambaza data ya awamu inayofuata. Kukatwa hutokea wakati kituo cha udhibiti hakiwezi kutoa au kupokea sehemu inayofuata ya data ya pakiti kwa wakati.

· Kukataa (Lengo-Abort) - STOP* ishara imeingizwa

wakati huo huo na kuondolewa kwa ishara ya DEVSEL* (katika matukio ya awali, wakati wa kuonekana kwa ishara ya STOP*, ishara ya DEVSEL* ilikuwa hai). Baada ya hayo, data haisambazwi tena. Kukataliwa kunaanzishwa wakati kituo cha udhibiti kinagundua kosa mbaya au hali zingine ambazo hazitaweza tena kuhudumia ombi fulani.

Matumizi ya aina tatu za kusitisha si lazima kwa CPU zote, lakini bwana yeyote lazima awe tayari kusitisha shughuli kwa sababu zozote hizi. Basi ya PCI inachukua anwani ya kijiografia - nambari ya kifaa imedhamiriwa na eneo la unganisho lake. Nambari ya kifaa (nambari ya kifaa au dev) imebainishwa na laini ya basi ya AD ambayo njia ya mawimbi ya IDSEL ya eneo hili imeunganishwa: kADU -devO(MOCT),AD12-devl,...AD31 -dev20. Sehemu za karibu za PCI kawaida hutumia nambari za kifaa zilizo karibu; hesabu yao imedhamiriwa na msanidi wa ubao wa mama (au ndege ya nyuma tu kwenye kompyuta za viwandani). Slots mara nyingi hutumia nambari za kifaa zinazoshuka, kuanzia na 20. Vikundi vya maeneo ya karibu vinaweza kushikamana na mabasi tofauti; Kwenye kila basi ya PCI, nambari za vifaa ni huru (kunaweza kuwa na vifaa vilivyo na nambari sawa za dev, lakini nambari tofauti za basi). Vifaa vya PCI vilivyounganishwa kwenye ubao wa mama hutumia mfumo sawa wa kushughulikia. Nambari zao "zimeuzwa sana", wakati anwani za kadi za upanuzi zinaweza kubadilishwa kwa kuwahamisha kwenye maeneo tofauti. Kadi moja ya PCI inaweza kuwa na kifaa kimoja tu cha basi ambacho imeunganishwa, kwa kuwa mstari mmoja tu wa IDSEL umepewa kwenye slot. Ikiwa vifaa kadhaa vimewekwa kwenye kadi (kwa mfano, kadi ya Ethernet ya bandari 4), basi a. daraja lazima iwe imewekwa juu yake - pia kifaa cha PCI , ambacho kinapatikana kupitia mstari wa IDSEL uliotengwa kwa kadi hii. Daraja hili linapanga basi ya ziada ya PCI kwenye kadi, ambayo vifaa vingi vinaweza kushikamana.

Kutoka kwa mtazamo wa kufikia kumbukumbu na nafasi za I/O, anwani ya kijiografia (basi na nambari ya kifaa) haijalishi (bila kuzingatia tofauti za utendaji zinazohusiana na kuunganisha vifaa kwenye mabasi tofauti ya PCI). Hata hivyo, nambari ya kifaa huamua nambari ya laini ya ombi la kukatiza ambayo kifaa kinaweza kutumia. Kwa habari zaidi juu ya hili, ona aya ya 6.2.6; hapa tunaona kuwa kwenye basi moja, vifaa vilivyo na nambari tofauti kutoka kwa kila mmoja na 4 vitatumia laini sawa ya kukatiza. Uwezo wa kuwaelekeza kwenye mistari tofauti ya kukatiza unaweza kuonekana tu ikiwa wako kwenye mabasi tofauti (hii inategemea ubao wa mama).

Unaweza kujua tu hesabu za vifaa na mistari ya kukatiza wanayopokea kwenye ubao maalum: sakinisha kadi moja ya PCI kwenye kila slot moja baada ya nyingine (kuzima nguvu) na uangalie ujumbe kuhusu vifaa vya PCI vilivyogunduliwa vinavyoonyeshwa kwenye onyesho. mwisho wa jaribio la POST. Barua pepe hizi pia zitajumuisha vifaa vya PCI vilivyosakinishwa moja kwa moja kwenye ubao-mama (na havijazimwa na vigezo vya Usanidi wa CMOS).

Lakini ili hakuna udanganyifu wa unyenyekevu na uwazi, tunaona kuwa mifumo ya uendeshaji "hasa ​​smart" (Windows) haijaridhika na kazi zilizopokelewa za nambari za kukatiza na kuzibadilisha kwa hiari yao wenyewe (ambayo haiwezi kwa njia yoyote kuathiri utengano. ya mistari).

Mwanzoni mwa muamala, kifaa kinachotumika huwasha laini ya FRAME#. Basi la AD hupitisha anwani, na mistari ya C/BE# husambaza amri. Kifaa tulivu kinachoshughulikiwa hujibu kwa mawimbi ya DEVSEL#.

Kifaa kinachotumika kinaonyesha utayari wa kubadilishana mawimbi ya IRDY#. Data hutumwa tu wakati mawimbi ya IRDY# na TRDY# yanawashwa kwa wakati mmoja, na TRDY# inatolewa wakati kifaa cha passi kiko tayari kubadilishwa.

Sehemu ya anwani inafuatwa na awamu ya usambazaji wa data. Idadi ya maneno yaliyotumwa kwenye pakiti haijabainishwa, lakini kabla ya neno la mwisho la data kifaa huondoa mawimbi ya FRAME#. Katika hali fulani, neno moja hupitishwa.

Kila mtumwa lazima ajibu shughuli hiyo kwa haraka. Kusubiri kunaweza kuwa mizunguko ya saa kadhaa, lakini haiwezi kuzidi mizunguko 8 ya saa.

Ikiwa kifaa hakitashikamana, ishara ya STOP# inatolewa.

8. Amri za basi za PCI.

PCI inasaidia shughuli 16 tofauti za basi; Kati ya hizi, 12 tu zimetekelezwa, na zingine zimehifadhiwa. Aina ya operesheni inategemea amri na hupitishwa kupitia mistari ya C / BE # (idadi ya mistari - 4). Aina ya operesheni hupitishwa wakati wa awamu ya anwani.

Operesheni zifuatazo hutumiwa:

0000 - uthibitisho wa kukatiza;

0001 - mzunguko maalum (katika mzunguko huu kompyuta hupeleka ujumbe mbalimbali kwa vifaa);

0010 - soma bandari ya I / O;

0011 - kuandika kwa bandari ya I / O;

0100 - hifadhi;

0101 - hifadhi;

0110 - soma kumbukumbu;

0111 - kurekodi kwa kumbukumbu;

1000 - hifadhi;

1001 - hifadhi;

1010 - soma usanidi;

1011 - rekodi ya usanidi;32

1100 - usomaji wa kumbukumbu wa mzunguko (nyingi) (hutumiwa wakati wa kufikia mistari ya kumbukumbu ya cache);

1101 - mzunguko na anwani ya 64-bit (mzunguko wa anwani mbili, inaruhusu upatikanaji wa vifaa na kushughulikia 64-bit kupitia basi 32-bit);

1110 - soma mistari ya kumbukumbu (soma hadi mwisho wa mstari wa cache);

1111 - kuingia kwenye kumbukumbu na uhalali (kufuta uhalisi).

Katika awamu ya data, mistari ya C/BE# inaelekeza kwenye baiti za habari.

Katika kesi hii, mistari huchagua byte zifuatazo:

C/BE# 0 -> AD7 – AD0,

C/BE# 1 -> AD15 – AD8,

C/BE# 2 ->AD23 – AD16,

C/BE# 3 -> AD31 - AD24

Idadi ya baiti zinazoweza kushughulikiwa inaweza kuwa 1, 2, 3 au 4.

9 PCI basi kukatiza na kunasa, usanidi wa kifaa.

Ukatizaji hupangwa kwa kutumia mistari ya ishara kiwango cha chini kwa moja ya mistari INTA#,INTB#,INTC#,INTD#. Ishara hii lazima ifanyike mpaka dereva, anayeitwa na usumbufu, kurejesha ombi la usumbufu kwa kuwasiliana na basi kifaa hiki. Dereva huamua anwani ya kifaa kwa kusoma rejista ya usanidi. Hii hutokea wakati amri 0000 imewekwa kwenye basi la C/BE#. Vipaumbele vya kifaa hubainishwa na upangaji programu wa kisuluhishi.

processor ya kompyuta. Uthibitishaji wa kukatiza lazima uondolewe kwenye laini za C/BE. Dereva anayefanya kazi na kifaa cha PCI huamua vector ya kukatiza iliyotolewa kwa kifaa kwa kusoma rejista ya usanidi.

Basi linanaswa kwa kutuma ishara ya ombi la kukamata kwenye laini ya REQ#. Ishara ya majibu ya uthibitishaji wa kukamata hupitishwa na kisuluhishi cha processor kupitia laini ya GNT#. Katika hali ya kunasa, kifaa huwa hai na hudhibiti basi jinsi kinavyoona inafaa. Katika kesi maalum

Hali ya ufikiaji wa kumbukumbu ya moja kwa moja (DMA) inatekelezwa.

Basi la PCI lina uwezo wa kusanidi kielektroniki vifaa vilivyounganishwa nayo. Hii hukuruhusu kusambaza kiotomatiki rasilimali za kompyuta (safu za anwani za kumbukumbu na bandari za I/O, mistari ya kukatiza, n.k.) kati ya vifaa. Teknolojia hii inaitwa Plug&Play.33

Zana za uratibu za kusambaza rasilimali kati ya vifaa huendesha programu maalum za usanidi.

Kuna amri mbili kwenye basi ya PCI ili kusanidi vifaa: usanidi wa kusoma na kuandika. Kwa msaada wao, aina ya vifaa na basi yao imedhamiriwa, mahitaji ya rasilimali yanatambuliwa, na rasilimali hizi hutolewa kwao.

Maelezo ya usanidi hurekodiwa na kuhifadhiwa katika baiti 256. Zinapatikana kwa kuamsha ishara kwenye mstari wa IDSEL, iliyounganishwa kibinafsi kwa kila kifaa (slot ya upanuzi). Ufikiaji wa usanidi hutokea moja baada ya nyingine. Vifaa vyote vya PCI vinapewa anwani ya mtu binafsi, ambayo imedhamiriwa na mzunguko wa mfumo.

Kwa hiyo, ikiwa kadi ya video imeingizwa kwenye slot ya upanuzi, basi nafasi yake ya usanidi inapatikana kwenye anwani ya slot hii. Unapoisakinisha tena kwenye nafasi nyingine, itakuwa na anwani tofauti.

Fomati ya data ya usanidi inajumuisha habari ifuatayo: kitambulisho cha mtengenezaji; kitambulisho cha kifaa; hali; kitambulisho cha toleo; darasa, kanuni; ukubwa wa mstari wa cache; muda wa juu wa kukamata tairi; rejista za anwani za msingi; Anwani ya msingi ya ROM; rejista ya amri;

Ufafanuzi hufafanua taratibu kadhaa za kufikia nafasi ya usanidi, lakini katika mifumo rahisi inafanywa kupitia rejista maalum za daraja. processor ya kati- anwani na rejista za data za usanidi.

Kadi za POST zimetumika kwa miongo kadhaa kutambua makosa ya maunzi kwenye kompyuta na ubao wa mama wa mambo mbalimbali ya fomu. Kwa sasa, nyingi za kadi hizi zimeundwa, kwa karibu hali zote zinazowezekana. Nakala hiyo inazungumza juu ya kadi za POST ni nini na zinatumiwa kwa nini, jinsi zinavyofanya kazi, ni nini na jinsi zinavyotofautiana kutoka kwa kila mmoja.

POST

Baada ya kushinikiza kifungo cha nguvu BIOS ya kompyuta hufanya ukaguzi wa hatua kwa hatua na uanzishaji wa vitu vyote vya vifaa vya kompyuta. Utaratibu huu unaitwa: POST(Kiingereza: Power-On Self-Test - jipime baada ya kuwasha). Sio kompyuta tu, bali pia ya kisasa zaidi vifaa vya elektroniki kuwa na mifumo inayofanana.

Ripoti za BIOS hali(au matokeo) ya kupitisha POST kwa njia kadhaa:

1. Onyesha ujumbe kwenye skrini. Njia ya kirafiki zaidi na ya habari. Kimsingi, inapatikana tu baada ya kukamilika kwa mafanikio au karibu kufaulu kwa jaribio la kibinafsi. Kutokuwepo kwa taarifa yoyote kwenye skrini inaonyesha malfunctions kubwa ya vipengele vya msingi (ubao wa mama, processor, kumbukumbu, adapta ya video, nk). Utambuzi wa makosa inawezekana tu kwa vifaa vya pembeni (anatoa, kibodi, nk).

2. Ishara za sauti. Labda kila mtu amesikia "beep" fupi wakati wa kuwasha kompyuta - katika BIOS nyingi hii inamaanisha kupitisha jaribio bila makosa na kuwa tayari kupakia OS. Chaguzi zingine za ishara zinaweza kuonyesha shida fulani na vifaa. Nambari hizi za Morse hutofautiana kutoka kwa mtengenezaji hadi mtengenezaji na hata matoleo tofauti BIOS. Kwa kawaida unaweza kuzipata kwenye kijitabu cha ubao-mama au vitabu vinavyofaa vya marejeleo mtandaoni.

3. Misimbo ya POST. Wakati wa kila hatua ya mchakato wa kujijaribu, BIOS hutuma msimbo wa sasa kwenye bandari 80h (wakati mwingine 81h au wengine), na ikiwa hitilafu hutokea, ama msimbo wa operesheni ambao umeshindwa au msimbo wa mwisho wa operesheni umesalia hapo. Kwa kusoma kanuni hii, unaweza kuamua katika hatua gani kosa limetokea na ni nini kinachoweza kusababisha. Hii ndiyo pekee ya njia zote zilizoorodheshwa zinazokuwezesha kutambua matatizo kwenye ubao wa mama ambayo haitoi ishara zinazoonekana maisha. Kwa sababu hii, kawaida hutumiwa kutambua na kutengeneza bodi za mama wenyewe.

Ikiwa njia mbili za kwanza za uchunguzi hazihitaji vifaa maalum, isipokuwa labda kufuatilia na msemaji kushikamana na ubao wa mama (wakati mwingine haipo), basi kwa njia ya tatu utahitaji kadi ya POST yenyewe.

Mahali pa kutafuta maadiliPOST misimbo na ishara za sauti?

    Maelezo zaidi kwa matoleo yote ya kawaida ya BIOS kwa Kirusi na kwa nakala zimefafanuliwa kwenye tovuti ya IC Book. Lakini kuna habari nyingi sana kwamba ni rahisi kupotea, rahisi zaidi pakua tayari kutoka hapo PDF hati iliyo na orodha ya nambari (kwa kubonyeza juu yake kanuni inayohitajika utapelekwa kwenye ukurasa wenye maelezo ya kina).

  1. Mimi pia kupendekeza anayezungumza Kiingereza Nyenzo ya PostCodeMaster - nambari nyingi zaidi za POSTA na mawimbi ya sauti hukusanywa hapo BIOS ya tofauti wazalishaji (kuna nadra kabisa, pamoja na chache kwa bodi maalum za mama, pamoja na seva).

POST kadi

Kuu kazi kadi yoyote ya POSTA ni ya kusoma na kuonyesha msimbo wa POSTA wa sasa. Inaweza kusomwa kwa njia kadhaa: kupitia ISA, PCI, mabasi ya LPC au kupitia Bandari ya LPT. Kuna chaguzi zingine, za kigeni zaidi (zaidi juu yao baadaye). Mbali na kuonyesha kweli msimbo, kadi nzuri za POST zina uwezo wa ziada wa uchunguzi (viashiria, njia za kupima, hata kwa adapta ya video iliyojengwa).

Baadhi ya bodi za mama (kawaida sehemu ya Premium) zina iliyojengwa ndani Kiashiria cha msimbo wa POST.


Hapo awali, wafundi wengi walifanya kadi za POST kwa mikono, lakini sasa hakuna maana kabisa katika kufanya hivyo, utalipa zaidi kwa textolite na vipengele kuliko gharama za kadi za kawaida. Kama kweli unataka...

ISA

Kadi za POSTA za kwanza zilikuwa kadi za mabasi ya ISA, ambayo ilikuwepo kutoka 1981 hadi 1999. Inatumika hata sasa (ingawa mara chache sana), haswa katika tasnia ya viwanda na kijeshi - ambapo vifaa vya basi hili vinabaki. Kadi za POST kwa ajili yake pia zinauzwa, katika toleo tofauti (ISA pekee) na ISA + PCI inachanganya.


Ikiwa hufanyi matengenezo 486, basi kuwa na kadi ya POST ISA sio lazima kabisa.

PCI

Basi lililofuata maarufu la kompyuta lilikuwa PCI. Sasa ni basi la kawaida kwa kompyuta za mezani. Kwa kawaida, pia kuna kadi za POST za maumbo, saizi na kazi zote zinazowezekana. Wengi rahisi zaidi, na kiashiria cha sehemu ya kawaida, inaweza kununuliwa kwa bucks 2-3 kwenye Ebay yoyote, Ali na kadhalika.


Kimsingi, kadi kama hiyo inakabiliana na kazi yake ya msingi vizuri - utatambua nambari ya POST. Lakini hii haitoshi kwa kazi ya kitaaluma. Inafaa kuwa nayo viashiria voltages kuu (kawaida: +5, +3.3, +12, -12, +3.3 Standby) na viashiria vya ishara za basi (kutoka kwa msingi zaidi: CLK, RST#, FRAME#, IRDY#). Ni muhimu kuwa na uwezo wa kubadili bandari ambayo kadi "inasikiliza" kwa nambari za POST (sio tu kiwango cha 80h). Kuna "tricks" nyingine, kwa hiyo "kisasa" cha kuonekana kwa kadi za juu.


Kawaida, kadi za POST zimewekwa kwenye ubao wa mama ambao ni wazi (kwa kweli, hii ndio inakusudiwa), na kesi hazijatengwa. kushindwa kadi ya POST yenyewe wakati wa majaribio. Kwa hiyo, ni wazo nzuri kuwa na kadi rahisi, nafuu kwa uchunguzi wa awali.

Mwingine chaguo rahisi - hii ni kiashiria cha mbali. Inakuruhusu kutambua kwa urahisi bodi za mama bila kuziondoa kwenye kitengo cha mfumo. Kwa upande mmoja, ikiwa inakuja kwa kadi ya POST, basi uwezekano mkubwa zaidi ubao wa mama bado utahitajika kuondolewa kwa ajili ya ukarabati, lakini kwa upande mwingine, hii sio wakati wote, na kadi ya POST ni njia rahisi tu. utambuzi wa jumla. Picha inaonyesha Sintech ST8679, kadi ya Kichina yenye onyesho la mbali la laini nyingi la LCD.


LPT

Kuna kadi za POST za bandari ya LPT - kabisa rahisi na njia rahisi ya utambuzi kwa kompyuta yoyote au kompyuta ndogo ambayo ina bandari hii ya LPT. Kwa sababu ya sifa za kiufundi, wao Usipate uwezo uliopo katika kadi kwa PCI, lakini hii inalipwa na unyenyekevu na ufikiaji. Inahitaji nguvu kupitia USB (kwa kusudi hili kuna bandari kwenye ubao).


Hata hivyo, LPT inazidi kupitwa na wakati, na huwezi kuziona tena kwenye kompyuta za kisasa, kwa hivyo kadi hizi pia zinaona siku zao.

PCI-E

PCI, ambayo ilitutumikia kwa uaminifu kwa miaka mingi, hatua kwa hatua huhama kisasa zaidi PCI-Express. Idadi kubwa ya bodi za mama za kisasa hazina slot ya PCI hata kidogo (ingawa zinaweza kuwa na basi yenyewe). Naweza wewe tafadhali- Kadi za POST kwa PCI-E kuwepo. Kwa mfano, Kampuni ya Marekani Ultra-X hutoa hii (bei zao kawaida ni za porini, lakini hakuna bei au hata habari hapa), kwenye mtandao unaweza kupata picha za kadi za uhandisi za PCI-E kutoka Gigabyte (dhahiri, kwa matumizi ya ndani tu).


Kula na toleo la Kichina PCI-EPOST kadi yenye haki KQCPET6-H. Inazalishwa na kampuni ya Kichina Umeme wa QiGuan, maalumu kwa uzalishaji wa aina mbalimbali za kadi za uchunguzi (na za kuvutia kabisa). Tovuti yao rasmi (www.qiguaninc.com), kwa bahati mbaya, haijasasishwa kwa muda mrefu, na hakuna habari kuhusu kadi hii hapo, lakini unaweza kwa urahisi. kununua kwa 20 +/- pesa kwa Ali.


Lakini kwa PCI-E sio rahisi sana. Kwanza, uchunguzi kwa kutumia PCI-E yenyewe kwa sasa ni jambo lisilo na maana, ikiwa tu kutokana na ukosefu wa taarifa za kutosha. Pili, na PCI-E kila kitu kinategemea mtengenezaji maalum - hakuna uhakika kwamba kanuni zitakuwa pato; ikiwa ni pato, hakuna hakikisho kwamba itakuwa kupitia bandari ya kawaida na kwa fomu ya kawaida ...

Unawezaje kupata misimbo ya POSTA kutoka kwa ubao bila PCI ikiwa huna kadi ya PCI-E karibu? Haiwezekani kutoa jibu la uhakika kwa swali hili. Ikiwa ubao wako wa mama una kiashiria kilichojengwa- fikiria mwenyewe bahati sana. Inaweza kutumika LPT, ikiwa kuna moja, bila shaka. Naam, chaguo la mwisho ni kutumia tairi LPC, baadhi ya mbao za mama zina viunganishi vilivyotengenezwa tayari (LPC_DEBUG, nk.). Hata kama hawapo, basi yenyewe huwa iko kila wakati, lakini itabidi "solder on"...


USB

Moja ya wengi kuahidi njia za uchunguzi leo ni USB. NA jambo kuu sababu ni zima kuenea kiolesura hiki. Kama tulivyokwishagundua, kutokuwepo kwa kiunganishi kimoja au kingine kwenye ubao wa mama kunaweza kuwa kikwazo cha utambuzi. Na USB hutatua tatizo hili - kihalisi kompyuta zote na kompyuta ndogo zilizotolewa katika kipindi cha miaka 15 iliyopita zina bandari kadhaa.

Kwa utambuzi kama huo ni muhimu Upatikanaji katika mfumo wa USB TatuaBandari ni aina ya kiendelezi cha USB kinachokuwezesha kuhamisha taarifa za uchunguzi. Katika USB 3.0, utekelezaji wa Bandari ya Debug uligeuka kuwa rahisi zaidi (unaweza kusoma zaidi kuhusu Debug Port kwenye kiungo). Kando na kutuma misimbo ya POST, Mlango wa Tatua hukuruhusu kufanya hivyo kamili utatuzi Nambari ya BIOS na UEFI.

Kulikuwa na hata iliyotolewa makampuni mbalimbali. NET20DC kutoka Ajays(kampuni ilifilisika mara moja, kwani wasambazaji walikataa kuwapa vifaa vya kukusanya kifaa). Insyde H 2 O DDT kutoka Programu ya Ndani(iliyotolewa, inaonekana, mwaka wa 2008, lakini habari kuhusu kifaa hiki imezama hata kwenye tovuti rasmi). Vifaa hivi vyote ni kama vitatuzi, ingawa vina uwezo wa kunasa misimbo ya POST.


Wengi ya juu Na kamili chombo cha uchunguzi ni AMDebug Rx kutoka AMI: hukuruhusu kuonyesha misimbo ya POST iliyo na maelezo, inafanya kazi kikamilifu na UEFI, huhifadhi kumbukumbu ya mchakato wa POST, inaweza kuunganishwa kwenye Kompyuta ili kusanidi na kusoma misimbo, ina vitendaji vya utatuzi. Jambo la kuvutia zaidi ni kwamba muujiza huu bado haujatolewa mwaka 2009 mwaka! Ni wazi kuwa kifaa kimekusudiwa kwa AMIBIOS asili Ikiwa inafanya kazi na BIOS zingine haijulikani kwangu.


Katika miaka 6-7 tangu kuonekana kwa haya Vifaa vya USB, hakuna hata mmoja wao haijapata umaarufu, sasa unaweza kununua tu AMDebug Rx, na kisha tu moja kwa moja kutoka kwa mtengenezaji kwa msingi wa mtu binafsi ombi. Bei ya kifaa haijafichuliwa. Kwa hivyo, mpito ulioenea kwa utambuzi wa USB bado haujatarajiwa.

Utambuzi wa Laptop

Kwa laptops kila kitu ni ngumu zaidi. Viunganishi vya kawaida ambavyo vinaweza kutumika kwa uchunguzi ni PCI ndogo au PCI-E ndogo(kwa za kisasa zaidi).


PCI-E ndogo (kama PCI-E) haihitajiki kutoa misimbo ya POSTA; yote inategemea ikiwa mtengenezaji ametoa uwezo huu au la.

Tena, kuna kesi ya matumizi matairiLPC. Kwenye ubao wa mama kunaweza kusiwe na bandari ya kuunganisha kwenye basi hili, kwa hivyo utalazimika kuuza moja kwa moja kwenye ubao au kidhibiti.


Watengenezaji wengine wana njia zako uchunguzi, hapa ni kweli "nani anajua nini". Kwa bahati mbaya, habari hii kawaida ni mali ya mtengenezaji tu na ndani yake vituo vya huduma, kwa hivyo kuna uwezekano kwamba chaguo zote zilizopo za POST kadi zitapatikana kwa umma. Kina zaidi mchanganyiko "wote katika chupa moja" kwa ajili ya kuchunguza kompyuta za mkononi ni kadi ya POST ya Sintech ST8675, ambayo ni rahisi kupata kutoka kwa wauzaji wa Kichina kwa $ 20-30 wakati wa kujifungua.


Kutoka ufumbuzi wa kuvutia, kampuni ya Kirusi BVG-Group inatoa dongle ya VGA kwa kompyuta za mkononi za Samsung, na kadi kwa namna ya moduli ya kumbukumbu kwa kompyuta za mkononi za ASUS. Labda hizi ndizo chaguo "za kigeni" zaidi za kadi ya POST ninazozijua. Ingawa makofi inapaswa kutolewa kwa watengenezaji wa kompyuta za mkononi ambao walikuja na njia kama hiyo ya utambuzi kwa bidhaa zao.


Ninaweza kuwakatisha tamaa wale ambao walikuwa wakingojea mifano maalum - kadi ya POST ni moja kutoka zana za uchunguzi, ambazo katika hali nyingi husaidia tu kuelewa "wapi kuchimba", na jinsi ya kuchimba na kwa koleo gani inategemea wewe kabisa. Wakati mwingine, kufanya "uchunguzi," moja tu inaweza kuwa ya kutosha, au unaweza kuhitaji msaada wa multimeter na oscilloscope, kamili na uwezo wa kuzitumia. Ikiwa hii inakuletea shida, basi ni bora kupeleka ubao wako wa mama kwa wataalam kabla ya kutoka kwa kutofanya kazi hadi zaidi ya ukarabati.

PS

Kadi za POST zina wakati wa kupendeza na sasa tajiri. Wakati ujao una nini kwao? Ngoja uone. Lakini ukweli ni kwamba katika enzi ya sasa ya matumizi, vifaa mara nyingi hutupwa kabla ya kuwa na wakati wa kuharibika. Na ikiwa huvunja, huishia kwenye warsha za huduma za mtengenezaji, ambapo ni wazi wanapaswa kuwa na vifaa vya uchunguzi vinavyofaa. Yote hii, kwa maoni yangu, ndiyo sababu kuu ya "utupu wa POST" unaosababisha.

6.2. basi ya PCI

PCI (Peripheral Component Interconnect) basi la ndani - basi la kuunganisha sehemu ya pembeni ndio basi kuu la upanuzi. kompyuta za kisasa. Iliundwa kwa kuzingatia Pentium, lakini pia ilifanya kazi vizuri na wasindikaji 486. PCI sasa ni basi ya upanuzi iliyo wazi, yenye ufanisi wa juu na ya kuaminika. Toleo la kwanza la PCI 1.0 lilionekana mwaka wa 1992. PCI 2.0 (1993) ilianzisha vipimo vya viunganisho na kadi za upanuzi. Toleo la 2.1 (1995) lilianzisha mzunguko wa 66 MHz. Hivi sasa, vipimo vya PCI 2.2 vinatumika (Desemba 1998), ambayo inafafanua na kufafanua baadhi ya masharti ya toleo la awali la 2.1. Maelezo haya yanatokana na maandishi ya kiwango cha Uainishaji wa Mabasi ya Ndani ya PCI. Marekebisho ya 2.2" ya tarehe 18 Desemba 1998, iliyochapishwa na PCI SIG (Kikundi Maalum cha Maslahi).

Hapo awali, basi ya PCI ilianzishwa kama kiendelezi (basi ya mezzanine) kwa mifumo iliyo na basi kuu ya ISA, baadaye ikawa basi kuu: imeunganishwa na basi ya mfumo wa processor na daraja la juu la utendaji ("kaskazini") lililojumuishwa ndani. chipset ya ubao wa mama. Mabasi ya upanuzi ya I/O yaliyobaki (ISA/EISA au MCA), pamoja na basi ya ndani ya ISA-kama X-BUS na kiolesura cha LPC, ambapo chips za bodi ya mfumo zimeunganishwa (ROM BIOS, vidhibiti vya kukatiza, kibodi, DMA). , bandari za COM na LPT, NGMD na "vitu vidogo" vingine) vimeunganishwa kwenye basi ya PCI kupitia daraja la "kusini". Katika kisasa bodi za mama ah, pamoja na usanifu wa kitovu, basi ya PCI ilihamishwa kwa pembeni, bila kuathiri nguvu ya njia ya mawasiliano na processor na kumbukumbu, lakini pia bila kupakia vifaa kwenye mabasi mengine yenye trafiki ya usafiri.

Basi ni synchronous - ishara zote zinachukuliwa na makali mazuri (makali) ya ishara ya CLK. Masafa ya saa ya kawaida huchukuliwa kuwa 33 MHz; ikiwa ni lazima, frequency inaweza kupunguzwa (kwenye mashine zilizo na processor 486, masafa ya 20-33 MHz yalitumiwa). Mara nyingi, mzunguko umefanikiwa kupita kiasi hadi 41.5 MHz (nusu ya mzunguko wa kawaida basi ya mfumo 83 MHz). Kuanzia toleo la 2.1, inawezekana kuongeza mzunguko hadi 66 MHz kwa idhini ya vifaa vyote kwenye basi.

Upana wa kawaida wa basi ya data ni bits 32, vipimo pia vinabainisha ugani wa upana wa biti hadi 64 bits. Katika mzunguko wa basi wa 33 MHz, throughput ya kinadharia hufikia 132 MB / s kwa basi 32-bit na 264 MB / s kwa basi 64-bit; kwa mzunguko wa maingiliano ya 66 MHz - 264 na 528, kwa mtiririko huo. Walakini, maadili haya ya kilele hufikiwa tu wakati wa usafirishaji wa pakiti, na kwa sababu ya upitishaji wa itifaki, jumla halisi ya wastani (kwa mabwana wote) upitishaji wa basi ni chini.

Kichakataji kinaweza kuingiliana na vifaa vya PCI kwa amri za kufikia kumbukumbu na bandari za I/O zinazoelekezwa kwa maeneo yaliyotengwa kwa kila kifaa kama hicho wakati wa usanidi. Vifaa vinaweza kuzalisha maombi ya kukatiza ambayo yanaweza kufichwa na yasiyoweza kufichamana. Hakuna dhana ya njia za DMA kwa basi ya PCI, lakini wakala wa basi yenyewe anaweza kufanya kama bwana, akiunga mkono ubadilishanaji wa utendaji wa juu na kumbukumbu (na sio tu), bila kuchukua rasilimali za CPU. Kwa hivyo, kwa mfano, ubadilishanaji unaweza kupatikana Hali ya DMA na vifaa vya AT A vilivyounganishwa kwa kidhibiti cha PCI IDE (angalia kifungu cha 9.2.1). Vipimo vya PCI vinahitaji vifaa viweze kuhamisha rasilimali zote zinazokaliwa ndani ya nafasi inayopatikana ya kushughulikia. Hii inaruhusu ugawaji wa rasilimali bila migogoro kwa vifaa vingi (kazi). Ili kudhibiti vifaa, inashauriwa kutumia seli za kumbukumbu badala ya bandari za I/O kila inapowezekana. Sawa kifaa kinachofanya kazi inaweza kusanidiwa kwa njia tofauti, ikipanga rejista zake kwa nafasi ya kumbukumbu au nafasi ya I/O. Dereva anaweza kuamua mpangilio wa sasa, baada ya kusoma yaliyomo kwenye rejista ya anwani ya msingi ya kifaa, ishara ya nafasi ya I/O itakuwa thamani moja ya biti 0 (angalia sehemu ya 6.2.12). Dereva pia anaweza kuamua nambari ya ombi la kukatiza ambayo inatumiwa na kifaa.

6.2.1. Kushughulikia Kifaa cha PCI

Kwa basi ya PCI, uongozi wa dhana za kushughulikia umepitishwa: basi, kifaa, kazi. Dhana hizi zinaonekana tu wakati wa kufikia rejista za nafasi za usanidi (tazama sehemu ya 6.2.12). Rejesta hizi zinapatikana katika hatua ya usanidi - uhasibu upya wa vifaa vilivyotambuliwa, ugawaji wa rasilimali zisizoingiliana kwao (maeneo ya kumbukumbu na nafasi ya I/O) na kugawa nambari za kukatiza kwa vifaa. Wakati wa operesheni zaidi ya mara kwa mara, vifaa vitajibu maombi kwenye kumbukumbu waliyopewa na anwani za I/O, zinazowasilishwa kwa moduli za programu zinazohusiana. Anwani hizi hupokelewa kutoka kwa basi la AD mwanzoni mwa kila shughuli. Laini tofauti za IDSEL hutumiwa kufikia nafasi ya usanidi.

Kifaa cha PCI ni chipu au kadi ya upanuzi iliyounganishwa kwenye moja ya mabasi ya PCI na kutumia njia ya IDSEL iliyokabidhiwa kwayo inayomilikiwa na basi hili kwa kitambulisho. Kifaa kinaweza kuwa cha kazi nyingi, yaani, kinajumuisha wengi (kutoka 1 hadi 8) kinachojulikana kazi. Kila kipengele cha kukokotoa kimetengewa nafasi ya usanidi wa baiti 256 (tazama sehemu ya 6.2.12). Vifaa vya kufanya kazi nyingi vinapaswa tu kujibu mizunguko ya usanidi na nambari za utendakazi ambazo nafasi yake ya usanidi inapatikana. Katika kesi hii, nambari ya chaguo la kukokotoa 0 lazima iwepo; nambari za kazi zingine hupewa kiholela na msanidi wa kifaa (katika safu 1-7). Vifaa rahisi (vinavyofanya kazi moja), kulingana na utekelezaji, vinaweza kujibu nambari yoyote ya chaguo-msingi au nambari 0 pekee ya tendakazi.

Basi ya PCI ni seti ya mistari ya ishara (angalia sehemu ya 6.2.2) inayounganisha moja kwa moja pini za interface za kikundi cha vifaa (slots, microcircuits kwenye bodi ya mfumo). Mfumo unaweza kuwa na mabasi kadhaa ya PCI yaliyounganishwa na madaraja ya PCI (angalia sehemu ya 6.2.10). Madaraja kwa umeme hutenganisha ishara za kiolesura cha basi moja kutoka kwa nyingine, na kuziunganisha kimantiki; Daraja kuu huunganisha basi kuu na msingi wa mfumo (processor na kumbukumbu). Kila basi ina nambari yake ya basi (PCI basi nambari). Matairi yanahesabiwa kwa mlolongo; basi kuu lina nambari sifuri.

Kutoka kwa mtazamo wa usanidi, kitengo cha chini cha kushughulikiwa cha uongozi huu ni kazi; anwani yake kamili ina sehemu tatu: nambari ya basi, nambari ya kifaa na nambari ya kazi. Utambulisho wa fomu fupi ya fomu PCI0:1:2 (kwa mfano, katika ujumbe wa Unix OS) unamaanisha utendakazi 2 wa kifaa 1 kilichounganishwa kwenye basi kuu (0) la PCI.

Basi ya PCI inachukua anwani ya kijiografia - nambari ya kifaa imedhamiriwa na eneo la unganisho lake. Nambari ya kifaa(nambari ya kifaa au dev) imedhamiriwa na mstari wa basi wa AD ambayo mstari wa ishara ya IDSEL ya slot hii imeunganishwa: kwa AD11 - dev0 (daraja), AD12 - dev1 ... AD31 - dev20. Sehemu za karibu za PCI kawaida hutumia nambari za kifaa zilizo karibu; hesabu yao imedhamiriwa na msanidi wa ubao wa mama (au ndege ya nyuma tu kwenye kompyuta za viwandani). Slots mara nyingi hutumia nambari za kifaa zinazoshuka, kuanzia na 20. Vikundi vya maeneo ya karibu vinaweza kushikamana na mabasi tofauti; Kwenye kila basi ya PCI, nambari za vifaa ni huru (kunaweza kuwa na vifaa vilivyo na nambari sawa za dev, lakini nambari tofauti za basi). Vifaa vya PCI vilivyounganishwa kwenye ubao wa mama hutumia mfumo sawa wa kushughulikia. Nambari zao "zimeuzwa sana", wakati anwani za kadi za upanuzi zinaweza kubadilishwa kwa kuwahamisha kwenye maeneo tofauti.

Kadi moja ya PCI inaweza tu kuwa na kifaa kimoja cha basi ambacho inaunganisha, kwa kuwa imetengewa laini moja tu ya IDSEL kwenye nafasi. Ikiwa vifaa kadhaa vimewekwa kwenye kadi (kwa mfano, kadi ya Ethernet ya bandari 4), basi daraja inapaswa kuwekwa juu yake - pia kifaa cha PCI, ambacho kinapatikana kupitia mstari wa IDSEL uliotengwa kwa kadi hii. Daraja hili linapanga basi ya ziada ya PCI kwenye kadi, ambayo vifaa vingi vinaweza kushikamana.

Kutoka kwa mtazamo wa kufikia kumbukumbu na nafasi za I/O, anwani ya kijiografia (basi na nambari ya kifaa) haijalishi (bila kuzingatia tofauti za utendaji zinazohusiana na kuunganisha vifaa kwenye mabasi tofauti ya PCI). Hata hivyo, nambari ya kifaa huamua nambari ya laini ya ombi la kukatiza ambayo kifaa kinaweza kutumia. Kwa habari zaidi juu ya hili, ona aya ya 6.2.6; hapa tunaona kuwa kwenye basi moja, vifaa vilivyo na nambari tofauti kutoka kwa kila mmoja na 4 vitatumia laini sawa ya kukatiza. Uwezo wa kuwaelekeza kwenye mistari tofauti ya kukatiza unaweza kuonekana tu ikiwa wako kwenye mabasi tofauti (hii inategemea ubao wa mama).

Unaweza kujua tu hesabu za vifaa na mistari ya kukatiza wanayopokea kwenye ubao maalum: sakinisha kadi moja ya PCI kwenye kila slot moja baada ya nyingine (kuzima nguvu) na uangalie ujumbe kuhusu vifaa vya PCI vilivyogunduliwa vinavyoonyeshwa kwenye onyesho. mwisho wa jaribio la POST. Barua pepe hizi pia zitajumuisha vifaa vya PCI vilivyosakinishwa moja kwa moja kwenye ubao-mama (na havijazimwa na vigezo vya Usanidi wa CMOS).

Lakini ili hakuna udanganyifu wa unyenyekevu na uwazi, tunaona kuwa mifumo ya uendeshaji "hasa ​​smart" (Windows) haijaridhika na kazi zilizopokelewa za nambari za kukatiza na kuzibadilisha kwa hiari yao wenyewe (ambayo haiwezi kwa njia yoyote kuathiri utengano. ya mistari).

6.2.2. Itifaki ya basi ya PCI

Kila shughuli (kubadilishana kwenye basi) inahusisha vifaa viwili - mwanzilishi wa ubadilishanaji, pia unajulikana kama kifaa kikuu, na kifaa kinacholengwa, kinachojulikana pia kama mtumwa. Basi la PCI huchukulia shughuli zote kama pakiti: kila muamala huanza na awamu ya anwani, ambayo inaweza kufuatiwa na awamu moja au zaidi ya data. Muundo na madhumuni ya ishara za kiolesura cha basi zimetolewa katika Jedwali. 6.11.

Jedwali 6.11. Ishara za basi za PCI

Mawimbi Kusudi
AD Anwani/Data - anwani iliyopanuliwa/basi ya data. Mwanzoni mwa shughuli, anwani hupitishwa, katika mizunguko inayofuata - data
C/BE# Amri / Byte Wezesha - amri / ruhusa ya kufikia byte. Amri inayoamua aina ya mzunguko wa basi unaofuata inatajwa na msimbo wa nne-bit katika awamu ya anwani
FRAM# Fremu. Kuanzishwa kwa ishara kunaashiria mwanzo wa shughuli (awamu ya anwani), kuondolewa kwa ishara kunaonyesha kuwa mzunguko wa uhamishaji wa data unaofuata ndio wa mwisho katika shughuli.
DEVSEL# Chagua Kifaa - kifaa kimechaguliwa (jibu la CPU kwa shughuli iliyoelekezwa kwake)
IRDY# Mwanzilishi Tayari - utayari wa kifaa kikuu cha kubadilishana data
TRDY# Lengo Tayari - utayari wa kituo cha udhibiti kwa kubadilishana data
SIMAMA# Omba kutoka kwa CPU kwenda kwa bwana ili kusimamisha shughuli ya sasa
LOCK# Ishara ya kukamata basi ili kuhakikisha uendeshaji thabiti. Inatumiwa na daraja ambalo linahitaji shughuli nyingi za PCI ili kukamilisha operesheni moja
REQ# Ombi - ombi kutoka kwa kifaa kikuu cha kukamata basi
GNT# Grant - kutoa udhibiti wa basi kwa bwana
PAR Usawa - biti ya usawa ya kawaida kwa mistari ya AD na C/BE#
PERR# Hitilafu ya Usawa - ishara ya makosa ya usawa (kwa mizunguko yote isipokuwa maalum). Imetolewa na kifaa chochote kinachotambua hitilafu
PME# Tukio la Usimamizi wa Nguvu - ishara kuhusu matukio ambayo husababisha mabadiliko katika hali ya matumizi (ishara ya ziada iliyoletwa katika PCI 2.2)
CLKRUN# Saa inayoendesha - basi inafanya kazi kwa mzunguko wa saa ya majina. Kuondoa mawimbi kunamaanisha kupunguza kasi au kusimamisha ulandanishi ili kupunguza matumizi (kwa programu za simu)
PRSNT# Viashiria vya uwepo wa bodi vilivyopo vinavyosimba ombi la matumizi ya nguvu. Kwenye kadi ya upanuzi, laini moja au mbili za LED zimeunganishwa kwenye basi ya GND, ambayo huhisiwa na ubao wa mama.
RST# Weka upya - weka upya rejista zote kwa hali yao ya awali
IDSEL Uanzishaji wa Chaguo la Kifaa - uteuzi wa kifaa katika mizunguko ya kusoma na kuandika ya usanidi
SERR# Hitilafu ya Mfumo - hitilafu ya mfumo. Hitilafu maalum ya usawa wa anwani ya data ya kitanzi au hitilafu nyingine mbaya iliyogunduliwa na kifaa. Huwashwa na kifaa chochote cha PCI na hupiga simu kwa NMI
REQ64# Omba 64-bit - ombi la kubadilishana 64-bit. Mawimbi huingizwa na kianzisha 64-bit; inalingana kwa wakati na ishara ya FRAME#. Wakati wa kukamilisha kuweka upya (RST# ishara) ishara kwa kifaa 64-bit kwamba imeunganishwa na basi 64-bit. Ikiwa kifaa cha 64-bit hakitambui mawimbi haya, lazima kijipange upya kwa modi ya biti-32 kwa kuzima saketi za baiti za juu.
ACK64# Uthibitishaji wa ubadilishaji wa 64-bit. Ishara inaingizwa na 64-bit CPU, ambayo imetambua anwani yake, wakati huo huo na DEVSEL#. Kukosa kutoa uthibitisho huu kutalazimisha mwanzilishi kutekeleza ubadilishanaji kwa 32-bit
INTA#, INTB#, INTC#, INTD# Katiza A, B, C, D - kukatiza mistari ya ombi, unyeti wa kiwango, kiwango amilifu - chini, ambayo inaruhusu utengano (kushiriki) wa mistari.
CLK Saa - mzunguko wa saa ya basi. Inapaswa kuwa katika anuwai ya 20-33 MHz, katika PCI2.1 - hadi 66 MHz
M66EN 66MHz Wezesha - azimio la mzunguko wa saa hadi 66 MHz
SDONE Snoop Imekamilika - ashiria kwamba mzunguko wa snoop umekamilika kwa shughuli ya sasa. Kiwango cha chini kinaonyesha kuwa mzunguko wa ufuatiliaji wa kumbukumbu na kache haujakamilika. Ishara ya hiari, inayotumiwa tu na vifaa vya basi vilivyo na kumbukumbu iliyohifadhiwa
SBO# Snoop Backoff - ufikiaji wa sasa wa kumbukumbu ya mteja wa basi huishia kwenye laini ya kache iliyorekebishwa. Ishara ya hiari, inayotumiwa na watumiaji wa basi pekee walio na kumbukumbu iliyohifadhiwa wakati wa algoriti ya kuandika
TCK Saa ya Kujaribu - Usawazishaji wa kiolesura cha jaribio la JTAG
TDI Ingizo la Data ya Jaribio - data ya kuingiza kiolesura cha jaribio la JTAG
TDO Jaribio la Pato la Data - data ya towe ya kiolesura cha JTAG
TMS Hali ya Jaribio Chagua - chagua modi ya kiolesura cha jaribio la JTAG
TRST Jaribu Kuweka Upya Mantiki - weka upya mantiki ya jaribio

Kwa wakati wowote, basi inaweza kudhibitiwa tu na kifaa kimoja kikuu, ambacho kimepokea haki ya kufanya hivyo kutoka kwa msuluhishi. Kila kifaa kikuu kina jozi ya mawimbi - REQ# kuomba udhibiti wa basi na GNT# ili kuthibitisha kuwa udhibiti wa basi umekubaliwa. Kifaa kinaweza kuanzisha muamala (weka mawimbi ya FRAME#) tu wakati mawimbi ya GNT# yamewashwa. Kuondoa mawimbi ya GNT# huzuia kifaa kuanza muamala unaofuata, na chini ya hali fulani (tazama hapa chini) husababisha kusitisha muamala wa sasa. Usuluhishi wa maombi ya kutumia basi unashughulikiwa na node maalum iliyojumuishwa kwenye chipset ya ubao wa mama. Mpango wa kipaumbele (fasta, pande zote-robin, pamoja) imedhamiriwa na programu ya arbiter.

Mistari ya kawaida ya AD iliyozidishwa hutumiwa kwa anwani na data. Mistari minne ya C/BE iliyozidishwa hutoa usimbaji wa maagizo katika awamu ya anwani na azimio la byte katika awamu ya data. Mwanzoni mwa muamala, kifaa kikuu huwasha mawimbi ya FRAME#, hutuma anwani lengwa kupitia basi la AD, na taarifa kuhusu aina ya shughuli (amri) kupitia njia za C/BE#. Kituo cha udhibiti kinachoshughulikiwa hujibu kwa mawimbi ya DEVSEL#. Kifaa kikuu kinaonyesha utayari wake wa kubadilishana data na mawimbi ya IRDY#; utayari huu unaweza kuwekwa kabla ya kupokea DEVSEL#. Wakati kituo cha udhibiti kiko tayari kubadilishana data, itaweka mawimbi ya TRDY#. Data hutumwa kwenye basi la AD tu wakati mawimbi ya IRDY# na TRDY# yapo kwa wakati mmoja. Kwa msaada wa ishara hizi, kifaa kikuu na kituo cha udhibiti huratibu kasi yao kwa kuanzisha mizunguko ya kusubiri. Katika Mtini. Mchoro 6.7 unaonyesha mchoro wa muda wa kubadilishana ambapo kifaa kikuu na kituo cha udhibiti huingia kwenye mizunguko ya kusubiri. Ikiwa wote wawili wangeingiza ishara zilizo tayari mwishoni mwa awamu ya anwani na hawakuziondoa hadi mwisho wa ubadilishanaji, basi biti 32 za data zingepitishwa katika kila mzunguko wa saa baada ya awamu ya anwani, ambayo ingetoa utendaji wa juu zaidi wa ubadilishanaji.

Mchele. 6.7. Mzunguko wa mawasiliano kwenye basi ya PCI

Idadi ya awamu za data kwenye pakiti haijaonyeshwa kwa uwazi, lakini kabla ya awamu ya mwisho ya data, kifaa kikuu, wakati ishara ya IRDY# inapoingizwa, huondoa ishara ya FRAME#. Katika miamala moja, mawimbi ya FRAME# hutumika kwa mzunguko wa saa moja pekee. Ikiwa kifaa hakiauni shughuli za bechi katika hali ya mtumwa, basi lazima kiombe kwamba shughuli ya bechi ikomeshwe wakati wa awamu ya kwanza ya data (kwa kuingiza ishara ya STOP# kwa wakati mmoja na TRDY#). Kwa kujibu, bwana atakamilisha muamala uliotolewa na kuendelea kubadilishana muamala unaofuata na thamani mpya ya anwani. Baada ya awamu ya mwisho ya data, seva pangishi huondoa mawimbi ya IRDY#, na basi huenda katika hali ya kutofanya kazi (PCI Idle) - mawimbi FRAME# na IRDY# ziko katika hali tulivu. Mwanzilishi anaweza kuanza muamala unaofuata bila muda wa kupumzika kwa kuweka FRAME# wakati huo huo wa kutoa IRDY# . Shughuli kama hizo za karibu za haraka (Fast Back-to-Back) zinaweza kushughulikiwa kwa kituo kimoja na tofauti cha kati. Aina ya kwanza inaungwa mkono na vifaa vyote vya PCI vinavyofanya kazi kama kitengo cha udhibiti wa kati. Msaada wa aina ya pili (ni ya hiari) inaonyeshwa na bit 7 ya rejista ya hali (tazama sehemu ya 6.2.12). Mwanzilishi anaruhusiwa (ikiwa anaweza) kutumia miamala ya haraka inayoambatana na vifaa tofauti (bit 9 ya rejista ya amri) ikiwa tu mawakala wote wa basi wanaruhusu ufikiaji wa haraka.

Basi inakuwezesha kupunguza nguvu (ya sasa) inayotumiwa na vifaa, kwa gharama ya utendaji uliopunguzwa, kwa kutumia ubadilishaji wa mstari wa hatua kwa hatua AD na PAR (anwani/kupanda data). Kuna chaguzi mbili zinazowezekana hapa.

Hatua laini (kupiga hatua kwa kuendelea) - mwanzo wa uundaji wa ishara na waundaji sahihi hafifu mizunguko kadhaa ya saa kabla ya kuanzishwa kwa ishara halali ya mchujo wa habari (FRAME# katika awamu ya anwani, IRDY# au TRDY# katika awamu ya data). Wakati wa mizunguko hii michache ya saa, ishara "zitatambaa" kwa thamani inayohitajika kwa sasa ya chini.

Kupiga hatua tofauti - waundaji wa kawaida hawachochewi mara moja, lakini kwa vikundi (kwa mfano, byte-byte), katika kila mzunguko wa saa kundi moja kwa wakati. Wakati huo huo, sasa inrush imepunguzwa, kwani madereva machache yanabadilishwa kwa wakati mmoja.

Kifaa yenyewe hakiwezi kutumia uwezo huu (tazama kidogo 7 ya rejista ya amri), lakini lazima "ielewe" mizunguko kama hiyo. Kwa kuchelewesha mawimbi ya FRAME#, kifaa kinaweza kupoteza ufikiaji wa basi ikiwa msuluhishi atapokea ombi kutoka kwa kifaa kilichopewa kipaumbele zaidi.

Itifaki ya kushikana mikono inahakikisha kuegemea kwa ubadilishanaji - kifaa kikuu hupokea habari kila wakati juu ya usindikaji wa manunuzi na kituo cha udhibiti wa kati. Njia ya kuongeza kuegemea (uhalali) ni matumizi ya udhibiti wa usawa: mistari AD na C/BE# katika awamu ya anwani na awamu ya data inalindwa na biti ya usawa PAR (idadi ya biti moja za mistari hii, pamoja na PAR. , lazima iwe sawa). Thamani halisi ya PAR inaonekana kwenye basi na kuchelewa kwa mzunguko wa saa moja kuhusiana na mistari ya AD na C/BE#. Hitilafu ya CPU inapogunduliwa, ishara ya PERR# inatolewa (pamoja na mabadiliko ya saa baada ya uhalali wa biti ya usawa). Wakati wa kuhesabu usawa wakati wa kusambaza data, byte zote huzingatiwa, ikiwa ni pamoja na zisizo sahihi (zinazo alama ya kiwango cha juu cha ishara ya C/BEx#). Hali kidogo, hata katika baiti za data zisizo sahihi, lazima ibaki thabiti wakati wa awamu ya data.

Kila muamala kwenye basi lazima ukamilike kama ilivyopangwa au kusitishwa, na basi lazima liende katika hali ya mapumziko (alama za FRAME# na IRDY# hazifanyiki). Kukamilika kwa manunuzi hufanywa ama kwa mpango wa bwana au kwa mpango wa PU.

Bwana anaweza kukamilisha shughuli kwa njia moja zifuatazo.

Kukamilika kwa kawaida (Kukamilika) kunafanywa baada ya mwisho wa kubadilishana data.

Muda wa kuisha hutokea wakati, wakati wa muamala, udhibiti wa basi wa kifaa kikuu huondolewa (kwa kuondoa mawimbi ya GNT#) na muda uliobainishwa kwenye Kipima Muda wake kuisha. Hili linaweza kutokea ikiwa CU iliyoshughulikiwa ni ya polepole bila kutarajiwa au muamala umeratibiwa kuwa mrefu sana. Shughuli fupi za malipo (pamoja na awamu moja au mbili za data), hata kama mawimbi ya GNT# imeondolewa na kipima muda kimewashwa, kamilisha kawaida.

Muamala umekataliwa (Master-Abort) wakati bwana hajapokea jibu kutoka kwa CPU (DEVSEL#) ndani ya muda maalum.

Shughuli inaweza kusitishwa kwa mpango wa Kituo cha Udhibiti; Ili kufanya hivyo, inaweza kuingiza ishara ya STOP#. Kuna aina tatu za kusitisha iwezekanavyo.

Jaribu tena - mawimbi ya STOP# huwekwa wakati mawimbi ya TRDY# hayapo kabla ya awamu ya kwanza ya data. Hali hii hutokea wakati kituo cha udhibiti, kutokana na shughuli nyingi za ndani, hawana muda wa kutoa data ya kwanza kwa wakati (mzunguko wa saa 16). Kujaribu tena ni dalili kwa bwana kuanza muamala sawa tena.

Tenganisha - Ishara ya STOP# inaingizwa wakati au baada ya awamu ya kwanza ya data. Ikiwa ishara ya STOP# imeingizwa wakati mawimbi ya TRDY# ya awamu inayofuata ya data inatumika, basi data hii inatumwa na shughuli imekamilika. Ikiwa ishara ya STOP# imeingizwa na ishara ya TRDY#, basi shughuli hiyo inakamilika bila kusambaza data ya awamu inayofuata. Kukatwa hutokea wakati kituo cha udhibiti hakiwezi kutoa au kupokea sehemu inayofuata ya data ya pakiti kwa wakati.

Kukataa (Target-Abor t) - ishara ya STOP # imeingia wakati huo huo na kuondolewa kwa ishara ya DEVSEL # (katika matukio ya awali, wakati ishara ya STOP # ilionekana, ishara ya DEVSEL # ilikuwa hai). Baada ya hayo, data haisambazwi tena. Kukataliwa kunaanzishwa wakati kituo cha udhibiti kinagundua kosa mbaya au hali zingine ambazo hazitaweza tena kuhudumia ombi fulani.

Matumizi ya aina tatu za kusitisha si lazima kwa CPU zote, lakini bwana yeyote lazima awe tayari kusitisha shughuli kwa sababu zozote hizi.

6.2.3. Amri za basi, kumbukumbu na I/O kushughulikia

Operesheni ya basi inadhibitiwa na vipima muda kadhaa ambavyo huzuia kupoteza mizunguko ya basi na kupanga ugawaji wa kipimo data.

Kila kituo cha udhibiti lazima kijibu haraka vya kutosha kwa shughuli iliyoelekezwa kwake. Ucheleweshaji wa awamu ya kwanza ya data(lengo la kusubiri la awali), yaani, kucheleweshwa kwa kuonekana kwa ishara ya TRDY# inayohusiana na FRAME#, haipaswi kuzidi mizunguko 16 ya basi. Ikiwa kifaa, kwa asili yake, wakati mwingine kinaweza kushindwa kufikia muda huu, kinapaswa kutoa ishara ya STOP# ili kusitisha muamala. Hii itamlazimisha bwana kujaribu tena muamala, na kuna uwezekano mkubwa kuwa jaribio litafanikiwa. Ikiwa kifaa ni cha polepole na mara nyingi haifai ndani ya mizunguko ya saa 16, basi inapaswa kuchelewesha muamala (Muamala Umechelewa). Aidha, kituo cha udhibiti kina utaratibu wa ziada wa kufuatilia muda wa mizunguko (Incremental Latency Mechanism), ambayo hairuhusu muda kati ya awamu za data zilizo karibu katika pakiti (lengo la latency inayofuata) kuzidi mizunguko 8 ya basi. Ikiwa kituo cha udhibiti hakina muda wa kufanya kazi kwa kasi hii, ni wajibu wa kusimamisha shughuli. Inastahili kuwa kifaa kiripoti "kutofaulu" kwake mapema iwezekanavyo, bila kungoja mizunguko ya saa 16 au 8 - hii inaokoa upelekaji wa data wa basi.

Mwanzilishi pia haipaswi kuchelewesha mtiririko - unaokubalika kuanza kuchelewa FRAME# kabla ya ishara ya IRDY# (muda mkuu wa kusubiri data) na kati ya awamu za data haipaswi kuzidi mizunguko ya saa 8. Ikiwa CPU mara kwa mara inakataa operesheni ya kuandika kumbukumbu na ombi la kujaribu tena (hii, kwa mfano, inaweza kutokea wakati wa kuandika kumbukumbu ya video), basi kuna "kikomo cha uvumilivu" kwa kukamilisha operesheni. Kipima muda muda wa juu wa utekelezaji(kiwango cha juu cha muda kamili) ina kizingiti cha mzunguko wa 10 μs - 334 saa 33 MHz au 668 mzunguko wa saa 66 MHz, zaidi ya ambayo mwanzilishi lazima awe na uwezo wa "kusukuma" angalau awamu moja ya data. Kipima muda huanza kuhesabu kuanzia wakati ombi la kufanya upya kwa ajili ya utendakazi wa kuandika kumbukumbu linapofanywa na huwekwa upya baada ya kukamilika kwa shughuli ya uandishi wa kumbukumbu isipokuwa ombi la kufanya upya. Vifaa ambavyo haviwezi kuhimili kizuizi muda wa juu utekelezaji wa uandishi wa kumbukumbu lazima umpe dereva uwezo wa kuamua hali yao ambayo kumbukumbu ya haraka ya kutosha haiwezekani. Dereva, kwa kawaida, lazima azingatie hali hii na sio "kusumbua" basi na kifaa na majaribio ya kuandika yasiyo na matunda.

Kila kifaa kikuu chenye uwezo wa kutengeneza pakiti iliyo na zaidi ya awamu mbili za data lazima kiwe na Kipima Muda kinachoweza kuratibiwa ili kudhibiti tabia ya kifaa kikuu wakati udhibiti wa basi unapoondolewa. Kipima muda huanza kwenye kila pembejeo ya mawimbi FRAME# na bwana huyu. Tabia ya bwana wakati kizingiti kinafikiwa inategemea aina ya amri na hali ya ishara za FRAME# na GNT# wakati timer inaisha.

Ikiwa bwana ataondoa mawimbi ya FRAME# kabla ya kipima muda kuisha, shughuli hiyo itakamilika kama kawaida.

Ikiwa ishara ya GNT# imefutwa na amri inayotekelezwa si maandishi ya kumbukumbu yasiyosahihishwa, basi mwanzilishi lazima afupishe muamala kwa kufuta ishara ya FRAME#. Wakati huo huo, anaruhusiwa kukamilisha moja ya sasa na kutekeleza awamu nyingine ya data.

Ikiwa ishara ya GNT# imefutwa na uandishi batili wa kumbukumbu unatekelezwa, basi mwanzilishi lazima amalize shughuli hiyo mwishoni mwa sasa (ikiwa neno la mwisho la mstari limehamishwa) au lifuatalo (ikiwa neno mbili ni mwisho) mstari wa kache.

Ucheleweshaji wa Usuluhishi(muda wa usuluhishi) hufafanuliwa kama idadi ya mizunguko ya saa kutoka kwa uwasilishaji na mwanzilishi. REQ# hadi haki ya kudhibiti basi la GNT# ipatikane. Ucheleweshaji huu unategemea shughuli za waanzilishi wengine, kasi ya vifaa (mizunguko machache ya kusubiri wanayoanzisha, bora) na "agility" ya arbiter yenyewe. Kulingana na amri inayotekelezwa na hali ya ishara, bwana lazima afupishe shughuli hiyo au aendelee hadi kukamilika kwake.

Wakati wa usanidi, vifaa vikuu huwasilisha mahitaji yao kwa kubainisha muda wa juu unaoruhusiwa wa kuchelewa kwa kutoa ufikiaji wa basi (Max_Lat) na muda wa chini zaidi ambao wanapaswa kupewa udhibiti wa basi (Min_GNT). Mahitaji haya yanaamuliwa na kiwango cha asili cha uhamishaji data wa kifaa na shirika lake.

Ili kupata manufaa zaidi kutoka kwa basi, ni lazima vifaa viwe na vibafa vya kuhifadhi data kwa ajili ya miamala ya kundi. Inapendekezwa kwa vifaa vilivyo na viwango vya uhamishaji data hadi 5 MB/s kuwa na bafa angalau, katika maneno 4 mara mbili. Kwa kasi ya juu, bafa ya dword 32 inapendekezwa. Kwa kubadilishana na kumbukumbu ya mfumo, shughuli za ufanisi zaidi ni zile zinazofanya kazi na mistari yote ya cache, ambayo pia huzingatiwa wakati wa kuamua ukubwa wa buffer. Hata hivyo, kuongeza ukubwa wa bafa kunaweza kusababisha matatizo katika kushughulikia makosa, na pia kusababisha ucheleweshaji wa uwasilishaji wa data ulioongezeka (mpaka kifaa kijaze kiasi fulani cha bafa, hakitaanza kusambaza data hii kwenye basi, na watumiaji wataisubiri. )

Ufafanuzi hutoa mfano wa kadi ya Fast Ethernet (kasi ya uhamisho - 10 MB / s), ambayo ina buffer ya 64-byte iliyogawanywa katika nusu mbili kwa kila mwelekeo wa maambukizi. Adapta inapojaza nusu ya bafa na fremu inayoingia, hutupa yaliyomo yaliyokusanywa ya nusu nyingine kwenye kumbukumbu, na kisha hubadilishana mahali. Kila nusu hutolewa kwa kumbukumbu katika awamu 8 za data (takriban 0.25 µs kwa 33 MHz), ambayo inalingana na kuweka MIN_GNT = 1. Kwa kiwango cha kuwasili kwa data cha 10 MB / s, kila nusu imejaa 3.2 μs, ambayo inalingana na mpangilio MAX_LAT = 12 (hapa wakati umewekwa katika vipindi vya 0.25 μs).

6.2.4. Vipima muda, ucheleweshaji na vihifadhi

Kila amri ya basi hubainisha anwani ya data iliyotumwa katika awamu ya kwanza ya data ya pakiti. Anwani kwa kila awamu ya data inayofuata ya pakiti inaongezwa kwa 4 (neno mbili inayofuata), lakini katika maelekezo ya upatikanaji wa kumbukumbu utaratibu unaweza kuwa tofauti (tazama hapa chini). Baiti za basi za AD zinazobeba taarifa halisi huchaguliwa na mawimbi ya C/BE# katika awamu za data. Ndani ya pakiti, ishara hizi zinaweza kubadilisha hali kutoka awamu hadi awamu kwa njia ya kiholela. Baiti zinazoruhusiwa zinaweza kutawanyika; Kunaweza kuwa na awamu za data ambazo baiti haziruhusiwi. Tofauti na basi ya ISA, hakuna mabadiliko kidogo ya nguvu kwenye PCI - vifaa vyote lazima viunganishwe kwenye basi kwa njia ya 32-bit. Ikiwa kifaa cha PCI kinatumia michoro ya kazi Ikiwa una uwezo tofauti kidogo (kwa mfano, unahitaji kuunganisha chip 8255 ambayo ina basi ya data ya 8-bit na rejista nne), basi unapaswa kupitisha njia za ubadilishaji wa mzunguko ambazo huweka rejista zote kwa basi ya 32-bit AD. .

Ushughulikiaji wa kumbukumbu, bandari na rejista za usanidi ni tofauti.

Katika mzunguko wa upatikanaji wa kumbukumbu, anwani iliyopangwa kwenye mpaka wa maneno mawili hupitishwa kwenye mistari ya AD; Mistari ya AD inataja mpangilio wa anwani kwenye pakiti:

00 - ongezeko la mstari; anwani ya awamu inayofuata inatofautiana na ya awali kwa idadi ya byte za basi (4 kwa 32-bit na 8 kwa basi 64-bit).

10 - Cache line Wrap mode, anwani folding kuzingatia urefu wa cache line. Katika shughuli, anwani ya awamu inayofuata inaongezwa hadi kufikia mpaka wa mstari wa cache, baada ya hapo inahamia mwanzo wa mstari huu na kuongezeka kwa anwani inayotangulia mwanzo. Ikiwa manunuzi ndefu kuliko mstari cache, basi itaendelea ndani mstari unaofuata kutoka kwa kukabiliana sawa na ilivyoanza. Kwa hivyo, kwa urefu wa mfuatano wa baiti 16 na basi ya biti 32, shughuli iliyoanza kwa anwani xxxxxx08h itakuwa na awamu za data zinazofuata zinazohusiana na anwani xxxxxx0Ch, xxxxxx00h, xxxxxx04h; na zaidi hadi xxxxxx18h, xxxxxx1Ch, xxxxxx10h, xxxxxx14h. Urefu wa mstari wa kache umebainishwa katika nafasi ya usanidi wa kifaa (angalia sehemu ya 6.2.12). Ikiwa kifaa hakina rejista ya Ukubwa wa Cache Line, basi lazima iondoe shughuli baada ya awamu ya kwanza ya data;

01 na 11 - zimehifadhiwa, zinaweza kutumika kama dalili ya kukatwa (Tenganisha) baada ya awamu ya kwanza ya data.

Katika mizunguko ya kufikia bandari za I/O, mistari yote ya AD hutumiwa kushughulikia baiti yoyote. Katika kesi hii, bits za anwani za AD zinaonyesha anwani ya maneno mawili ambayo data iliyopitishwa ni ya, na bits za mpangilio wa chini wa anwani ya AD lazima ziwiane na byte ambazo zinaweza kuwezeshwa na ishara za C/BE#. Kwa AD =00, C/BE# =xxx0 au 1111 inaruhusiwa, na AD =01 - C/BE# =xx01 au 1111, yenye AD =10 - C/BE# =x011 au 1111, yenye AD =11 - C /BE # =0111 (byte 3 pekee ndiyo inatumwa) au 1111 (hakuna baiti zinazoruhusiwa). Mizunguko hii pia inaweza kuunganishwa, ingawa katika mazoezi kipengele hiki hakitumiki sana.

Katika mizunguko ya kuandika / kusoma ya usanidi, kifaa (kadi ya upanuzi) huchaguliwa na ishara ya mtu binafsi ya IDSEL; kazi inashughulikiwa na bits za AD, na madaftari ya usanidi (maneno mawili tu) yanashughulikiwa na bits za AD, na AD=00.

Amri za basi za PCI zimedhamiriwa na maadili ya biti za C/BE# katika awamu ya anwani (Jedwali 6.12).

? Kataza amri ya kukiri iliyoundwa kusoma vekta ya kukatiza. Kulingana na itifaki, inaonekana kama amri ya kusoma, iliyoshughulikiwa kabisa kwa kidhibiti cha kukatiza mfumo. Hapa, katika awamu ya anwani, hakuna taarifa muhimu inayopitishwa kupitia basi ya AD, lakini mwanzilishi wake (daraja kuu) lazima ahakikishe utulivu wa ishara na usawa sahihi. Katika PC, vekta 8-bit hupitishwa kwa byte 0 wakati kidhibiti cha kukatiza kiko tayari (kupitia ishara ya TRDY#). Uthibitishaji wa kukatiza unafanywa katika mzunguko mmoja (mzunguko wa kwanza wa kutofanya kazi, ambao wasindikaji wa x86 hufanya kama ushuru kwa utangamano wa zamani, unakandamizwa na daraja).

? Mzunguko maalum inatofautiana na nyingine zote kwa kuwa inatangazwa. Hata hivyo, hakuna wakala anayeijibu, na daraja kuu au kifaa kingine kinachotambulisha mzunguko huu kila mara humalizia kwa kutumia njia ya Master Abortion (inahitaji mizunguko 6 ya basi). Kitanzi maalum kimeundwa ili kutoa ujumbe wa matangazo - zinaweza kusomwa na mawakala wowote wa basi "wanaovutia". Aina ya ujumbe hutambulishwa na yaliyomo kwenye mistari ya AD; mistari ya AD inaweza kuwa na data iliyobebwa kwenye ujumbe. Hakuna awamu ya anwani katika mzunguko huu kwa vifaa vya kawaida, lakini madaraja hutumia maelezo yake kudhibiti uenezaji wa ujumbe. Nambari za ujumbe 0000h, 0001h na 0002h zinahitajika ili kuonyesha kuzimwa kwa kichakataji, kusitisha kichakataji au akiba mahususi ya kichakataji x86 na vitendaji vinavyohusiana na ufuatiliaji. Misimbo 0003-FFFFh imehifadhiwa. Mzunguko maalum unaweza kuzalishwa na utaratibu wa maunzi na programu sawa na mizunguko ya usanidi (angalia sehemu ya 6.2.11), lakini kwa thamani maalum ya anwani.

? Soma na Andika Amri za I/O kutumika kufikia nafasi ya bandari. Mistari ya AD ina anwani ya byte, na bits za AD0 na AD1 pia zinakabiliwa na kusimbua (licha ya ukweli kwamba kuna ishara za BEx#). Lango za PCI zinaweza kuwa 16-bit au 32-bit. Biti zote za anwani 32 zinapatikana kwa kushughulikia bandari kwenye basi ya PCI, lakini vichakataji vya x86 vinaweza kutumia biti 16 za chini pekee.

? Amri za Ufikiaji wa Kumbukumbu, pamoja na kusoma na kuandika mara kwa mara, ni pamoja na mistari ya cache ya kusoma, kusoma nyingi (mistari mingi), kuandika batili.

? Usanidi wa amri za kusoma na kuandika yanashughulikiwa kwa nafasi ya usanidi wa kifaa (tazama kifungu cha 6.2.12). Anwani hufanywa tu kwa maneno mawili. Muundo una kitambulisho cha kifaa na pato la, hali na amri, habari kuhusu rasilimali zinazochukuliwa na vizuizi vya matumizi ya basi. Ili kuzalisha amri hizi, utaratibu maalum wa vifaa na programu unahitajika (angalia sehemu ya 6.2.11).

? Kusoma mistari ya kumbukumbu hutumika wakati zaidi ya uhamisho mbili wa 32-bit umepangwa katika shughuli (kawaida husomwa hadi mwisho wa mstari wa kache).

? Usomaji wa Kumbukumbu nyingi hutumika kwa shughuli zinazovuka mipaka ya kache.

? Rekodi bila uhalali inatumika kwa mistari yote ya kache na inaruhusu uboreshaji wa mizunguko ya uandishi wa mistari chafu ya kache.

? Mzunguko wa anwani mbili hukuruhusu kufikia vifaa vilivyo na anwani 64-bit kupitia basi ya 32-bit. Katika kesi hii, bits 32 za chini za anwani hupitishwa kwa kitanzi wa aina hii, na hufuatwa na kitanzi cha kawaida ambacho huamua aina ya ubadilishanaji na kubeba biti 32 muhimu zaidi za anwani. Basi la PCI huruhusu ushughulikiaji wa 64-bit wa bandari za I/O (hii haina maana kwa x86, lakini PCI ipo kwenye majukwaa mengine).

Jedwali 6.12. Kusimbua amri za basi za PCI

C/BE Aina ya amri
0000 Kataza Kukiri - kukatiza uthibitisho
0001 Mzunguko maalum - mzunguko maalum
0010 I/O Soma - kusoma bandari ya I/O
0011 I/O Andika - kuandika kwa bandari ya I/O
0100 Imehifadhiwa
0101 Imehifadhiwa
0110 Kumbukumbu Soma - kusoma kumbukumbu
0111 Kumbukumbu Andika - kuandika kwa kumbukumbu
1000 Imehifadhiwa
1001 Imehifadhiwa
1010 Upangiaji Soma - usomaji wa usanidi
1011 Configuration Andika - Configuration kuandika
1100 Usomaji wa Kumbukumbu nyingi - usomaji wa kumbukumbu nyingi
1101 Mzunguko wa Anwani mbili (DAC) - mzunguko wa anwani mbili
1110 Kumbukumbu-Soma Line - kusoma mstari wa kumbukumbu
1111 Kumbukumbu Andika na Batilisha - rekodi bila uhalali

6.2.5. Uwezo wa basi

Basi ya PCI ni basi ya upanuzi wa kasi ya juu zaidi ya Kompyuta za kisasa, lakini matokeo yake halisi, ole, sio juu sana. Hebu fikiria chaguo la kawaida: 32-bit, frequency 33 MHz. Kama ilivyoelezwa hapo juu, kiwango cha juu cha uhamishaji wa data ndani ya mzunguko wa pakiti ni 132 MB/s, ambayo ni, baiti 4 za data huhamishwa kwa kila mzunguko wa saa ya basi (33?4=132). Walakini, mizunguko ya batch haifanyiki kila wakati. Kichakataji huwasiliana na vifaa vya PCI kwa kumbukumbu au maagizo ya I/O kupitia daraja kuu, ambalo hutafsiri shughuli za basi za kichakataji kuwa miamala ya basi ya PCI. Kwa kuwa wasindikaji wa x86 wana rejista kuu za 32-bit, maagizo moja hutoa shughuli na kifaa cha PCI ambacho hakuna zaidi ya ka 4 za data huhamishwa, ambayo inafanana na uhamisho mmoja. Ikiwa anwani ya neno lililopitishwa (mbili) haijaunganishwa kwenye mpaka unaofaa, basi mizunguko miwili moja au pakiti moja yenye awamu mbili za data itatolewa, lakini kwa hali yoyote upatikanaji huu utachukua muda mrefu zaidi kuliko kwa anwani iliyopangwa.

Hata hivyo, wakati wa kuandika safu ya data kwenye kifaa cha PCI (kupanda kwa uhamisho wa anwani), daraja linaweza kujaribu kutekeleza vitanzi vya kupasuka. U wasindikaji wa kisasa(kuanzia na Pentium) basi ya data ni 64-bit na uakibishaji wa uandishi unatumika ili maombi mawili ya uandishi wa biti 32 yataunganishwa kuwa moja ya 64-bit. Ombi hili, ikiwa limeshughulikiwa kwa kifaa cha 32-bit, daraja litajaribu kusambaza katika pakiti na awamu mbili za data. Daraja "la juu" linaweza kujaribu kukusanya maombi ya mfululizo kwenye pakiti, ambayo inaweza kuzalisha pakiti ya urefu muhimu. Mizunguko ya uandishi wa kupasuka inaweza kuzingatiwa, kwa mfano, kwa kuhamisha safu ya data kutoka kwa RAM hadi kifaa cha PCI na maagizo ya kamba ya MOVSD, kwa kutumia kiambishi awali cha kujaribu REP. Mzunguko wa shughuli zinazofuatana LODSW, STOSW (na maagizo mengine ya ufikiaji wa kumbukumbu) itakuwa na athari sawa. Kwa kuwa msingi wa wasindikaji wa kisasa hutekeleza maagizo kwa kasi zaidi kuliko basi inaweza kutoa matokeo yao, processor inaweza kuwa na muda wa kufanya shughuli kadhaa zaidi kati ya maelekezo ambayo hutoa rekodi zilizounganishwa. Walakini, ikiwa uhamishaji wa data umepangwa na maagizo ya kiwango cha juu cha lugha, ambayo, kwa ajili ya ulimwengu wote, inafanya kazi ngumu zaidi kuliko primitives zilizo hapo juu, shughuli zinaweza kuwa moja (buffers za kuandika za processor hazitakuwa na " subira” kushikilia ombi moja la biti-32 hadi lingine litokee, au vihifadhi vya kuandika vya kichakataji au daraja vitalazimika kupakuliwa baada ya ombi la kusoma, angalia sehemu ya 6.2.10).

Kuhusu kusoma kutoka kwa kifaa cha PCI, hali ya bechi ni ngumu zaidi kupanga hapa. Kwa kawaida, processor haina buffering ya kusoma (operesheni ya kusoma inaweza kuzingatiwa kukamilika tu baada ya kupokea data halisi), na hata maagizo ya kamba yatatoa mizunguko moja. Walakini, wasindikaji wa kisasa wana uwezo wa kutoa maombi ya kusoma zaidi ya ka 4. Ili kufanya hivyo, unaweza kutumia maagizo ya kupakia data kwenye rejista za MMX (8 byte) au XMM (16 byte), na kutoka kwao kupakia data kwenye RAM (ambayo inafanya kazi sana. vifaa vya kasi zaidi PCI).

Maagizo ya Mfuatano wa I/O (INSW, OUTSW yenye kiambishi awali cha kurudia REP) kinachotumika kwa pembejeo/pato la kuzuia data (PIO) hutoa mfululizo wa miamala moja kwa sababu data yote kwenye kizuizi imetumwa kwa anwani moja ya PCI.

Ni rahisi kuona jinsi kifaa kinavyofikiwa ikiwa una oscilloscope: katika shughuli moja mawimbi ya FRAME# hutumika kwa mzunguko wa saa 1 pekee, katika shughuli za bechi ni ndefu zaidi. Idadi ya awamu za data katika pakiti inalingana na idadi ya mizunguko ya saa ambapo mawimbi ya IRDY# na TRDY# yanatumika.

Unapaswa kuzingatia tu upakiaji wa miamala ya uandishi ikiwa kifaa cha PCI kinaauni uhamishaji wa pakiti katika modi lengwa. Ikiwa sio hivyo, basi jaribio la pakiti litasababisha upotezaji hata kidogo wa utendaji, kwani shughuli hiyo itakamilika kwa mpango wa kifaa cha mtumwa (na ishara ya STOP #), na sio mwanzilishi wa ubadilishanaji. , ambayo inapoteza mzunguko mmoja wa basi. Kwa hiyo, kwa mfano, unaweza kuchunguza jinsi wakati wa kuandika safu kwa kumbukumbu ya PCI, iliyofanywa na maelekezo ya lugha ya kiwango cha juu, kifaa cha kasi ya kati (kuanzisha mzunguko wa saa 3 tu za kusubiri utayari) hupokea data kila mzunguko wa saa 7, ambayo kwa mzunguko wa 33 MHz na upana wa bits 32 hutoa kasi 33? 4/7 = 18.8 MB / s. Hapa, sehemu inayotumika ya muamala huchukua mizunguko 4 ya saa (kutoka kwa ishara ya FRAME# hadi kuondolewa kwa ishara ya IRDY#) na mizunguko 3 ya kusitisha. Kifaa sawa, kulingana na maagizo ya MOVSD, hupokea data kila mizunguko 8 ya basi (33? 4/8 = 16.5 MB/s). Data hizi ni matokeo ya ufuatiliaji wa utendakazi wa msingi wa PCI kulingana na chipu ya FPGA kutoka Altera, ambayo haitumii miamala ya kundi katika hali ya watumwa. Kifaa sawa wakati wa kusoma Kumbukumbu ya PCI inafanya kazi polepole zaidi - kwa maelekezo ya REP MOVSW iliwezekana kupokea data kutoka kwayo kila mizunguko 19-21 ya basi (kasi 33?4/20=6.6 MB/s). Hii ni kutokana na ucheleweshaji mkubwa wa kifaa (hutoa data tu katika mzunguko wa 8 baada ya ishara ya FRAME # kuonekana), na ukweli kwamba processor huanza uhamisho unaofuata tu baada ya kusubiri data kutoka kwa uliopita. Ujanja wa rejista ya XMM una athari chanya hapa, licha ya mzunguko wa saa uliopotea (shughuli hiyo kusitishwa na kifaa kisicho na kundi), kwani kila ombi la CPU ya 64-bit inatekelezwa na jozi ya miamala ya PCI iliyo karibu ambayo ni michache tu. mzunguko wa saa kando.

Kuamua kikomo cha uwezo wa kinadharia, hebu turudi kwenye Mtini. 6.7 kuamua muda wa chini zaidi (idadi ya mizunguko ya saa) kwa shughuli za kusoma na kuandika. Katika shughuli ya kusoma, baada ya mwanzilishi kutoa amri na anwani (mzunguko 1), "mmiliki" wa sasa wa basi ya AD hubadilika. Hii "mgeuko" au "mgeuko" huchukua saa 2, ambayo husababishwa na kuchelewa kwa mawimbi ya TRDY# na kifaa kinacholengwa. Hii inaweza kufuatiwa na awamu ya data (mzunguko wa 3) ikiwa kifaa lengwa kina kasi ya kutosha. Baada ya awamu ya mwisho ya data, mzunguko mwingine wa saa 1 unahitajika kwa "pirouette" ya reverse ya basi ya AD (kwa upande wetu, hii ni saa 4). Kwa hivyo, kusoma neno moja (4 byte) inachukua angalau mzunguko wa saa 4 wa 30 ns (33 MHz). Ikiwa shughuli hizi zinafuata moja kwa moja baada ya nyingine (ikiwa mwanzilishi ana uwezo wa hili na haki ya kudhibiti basi haijachukuliwa kutoka kwake), basi tunaweza kuzungumza juu ya kasi ya juu ya kusoma ya 33 MB / s kwa shughuli moja. Katika shughuli za kuandika, basi ya AD inadhibitiwa na mwanzilishi wakati wote, kwa hiyo hakuna kupoteza kwa mzunguko wa saa wakati wa pirouette. Ukiwa na kifaa kinacholengwa haraka ambacho hakianzishi mizunguko ya ziada ya kusubiri, kasi ya kuandika inaweza kufikia 66 MB/s.

Kasi inayolingana na kilele cha juu kinaweza kupatikana tu kwa uhamishaji wa pakiti, wakati mizunguko ya ziada ya saa 3 inahitajika kwa kusoma na mzunguko wa saa 1 kwa maandishi. Kwa hivyo, kusoma pakiti na idadi ya awamu ya data 4, mizunguko ya saa 7 inahitajika (V= 16/(7?30) byte/ns = 76 MB/s), na kuandika - 5 (V= 16/( 5?30) baiti/ ns = 106.6 MB/s). Kwa awamu 16 za data, kasi ya kusoma inaweza kufikia 112 MB / s, na kasi ya kuandika inaweza kufikia 125 MB / s.

Mahesabu haya hayakuzingatia upotezaji wa muda unaohusishwa na mabadiliko ya mwanzilishi. Mwanzilishi anaweza kuanza muamala baada ya kupokea ishara ya GNT# baada tu ya kuhakikisha kuwa basi limepumzika (mawimbi ya FRAME# na IRDY# ni tulivu); inachukua mzunguko wa saa moja kurekebisha iliyobaki. Kama unavyoona, inawezekana kunasa kipimo kingi cha basi kwa mwanzilishi mmoja kwa kuongeza urefu wa pakiti. Hata hivyo, hii itaongeza ucheleweshaji wa kupata udhibiti wa basi kwa vifaa vingine, ambayo haikubaliki kila wakati. Pia tunakumbuka kuwa sio vifaa vyote vinavyoweza kujibu shughuli bila mizunguko ya kusubiri, kwa hivyo nambari halisi zitakuwa za kawaida zaidi.

Kwa hivyo, ili kufikia utendaji wa kiwango cha juu cha ubadilishanaji, vifaa vya PCI vyenyewe lazima viwe na vifaa vya basi, na vyenye uwezo wa kutengeneza mizunguko ya pakiti. Sio vifaa vyote vya PCI vinavyounga mkono hali ya pakiti, na wale ambao, kama sheria, wana vikwazo muhimu kwa urefu wa pakiti ya juu. Ongezeko kubwa la upitishaji linaweza kupatikana kwa kubadili mzunguko wa 66 MHz na kina kidogo cha bits 64, ambayo sio nafuu. Ili vifaa muhimu kwa wakati wa uwasilishaji wa data (adapta za mtandao, vifaa vinavyohusika katika kurekodi na kucheza tena data ya sauti-video, n.k.) kufanya kazi kwa kawaida kwenye basi, hupaswi kujaribu kubana kabisa kipimo data kilichotangazwa kutoka kwenye basi. Msongamano wa basi unaweza kusababisha, kwa mfano, kupoteza pakiti kutokana na kuchelewa kuwasilisha data. Kumbuka kwamba adapta ya Fast Ethernet (100 Mbit / s) katika hali ya nusu-duplex inachukua bandwidth ya takriban 13 MB / s (10% ya kipimo kilichotangazwa cha basi ya kawaida), na katika hali ya duplex kamili inachukua 26 MB / s. Adapta ya Gigabit Ethernet, hata katika hali ya nusu-duplex, inafaa kwenye bandwidth ya basi na kunyoosha ("inaishi" tu kwa sababu ya buffers kubwa za ndani); 64 bit/66 MHz inafaa zaidi kwa ajili yake.

6.2.6. Inakatiza

Katika kompyuta zinazoendana na PC, usumbufu kutoka kwa vifaa vya PCI huhudumiwa kwa kutumia jozi ya jadi ya vidhibiti 8259A vilivyo kwenye ubao wa mfumo (angalia sehemu ya 12.4), ambayo hupatikana kwa amri ya "kukubali kukatizwa". Vikwazo vya basi vya PCI havina upuuzi mmoja wa mfumo wa kukatiza wa ISA. Kifaa cha PCI huweka mawimbi ya kukatiza kwa kiwango cha chini (mtozaji wazi au towe la maji) kwenye laini iliyochaguliwa ya INTA#, INTB#, INTC#, au INTD#. Ishara hii lazima ifanyike hadi dereva wa programu, anayeitwa na usumbufu, aweke upya ombi la usumbufu kwa kufikia kifaa kwenye basi. Ikiwa baada ya hii kidhibiti cha kukatiza kitagundua tena kiwango cha chini kwenye laini ya ombi, hii inamaanisha kuwa ombi kwenye laini hiyo hiyo liliingizwa na kushiriki kwa kifaa kingine. mstari huu na ya kwanza, na pia inahitaji matengenezo. Laini za ombi kutoka kwa nafasi za PCI na vifaa vya PCI kwenye ubao-mama hubadilishwa hadi kwenye pembejeo za vidhibiti vya kukatiza kwa kiasi kiholela. Programu ya usanidi inaweza kubainisha na kuonyesha laini za ombi zinazokaliwa na nambari ya ingizo ya kidhibiti kwa kufikia nafasi ya usanidi wa kifaa (angalia sehemu ya 6.2.12). Kiendesha programu, baada ya kusoma madaftari ya usanidi, inaweza pia kuamua vigezo hivi ili kuweka kidhibiti cha usumbufu kwa vector inayotaka na, wakati wa kutumikia, kuweka upya ombi kutoka kwa mstari unaohitajika. Kwa bahati mbaya, katika rejista za usanidi hakukuwa na mahali pa kawaida kwa kuonyesha kidogo kuanzishwa kwa ombi la kukatiza na kifaa fulani - basi usumbufu wa PCI haungekuwa na shida na usaidizi wa kuunganisha kwa usumbufu ulioshirikiwa.

Kila kitendakazi cha kifaa cha PCI kinaweza kutumia laini yake ya ombi la kukatiza, lakini lazima iwe tayari kuishiriki na vifaa vingine. Ikiwa kifaa kinahitaji mstari mmoja tu wa ombi, basi inapaswa kuchukua mstari wa INTA #, ikiwa mbili - INTA # na INTB #, na kadhalika. Kwa kuzingatia mabadiliko ya mzunguko wa mistari ya ombi, sheria hii hukuruhusu kusanikisha vifaa 4 rahisi katika nafasi 4 za karibu, na kila moja itachukua mstari tofauti wa ombi la usumbufu. Ikiwa kadi inahitaji mistari miwili, basi kwa matumizi ya kipekee ya kukatiza unahitaji kuacha slot iliyo karibu bila malipo. Vifaa vya PCI kwenye ubao wa mama pia hutumia usumbufu na muundo sawa (isipokuwa kwa mtawala wa IDE, ambayo, kwa bahati nzuri, inasimama kando).

Mgawo wa kukatiza kwa vifaa (kazi) hufanywa na utaratibu wa POST, na mchakato huu unadhibitiwa tu. Kwa kutumia vigezo vya Kuweka CMOS (Usanidi wa PCI/PNP), mtumiaji huamua nambari za maombi ya kukatiza yanayopatikana kwa basi ya PCI. Kulingana na toleo la BIOS, hii inaweza kuonekana kama tofauti; ama kila laini ya INTA# ... INTD# imepewa nambari yake yenyewe, au nambari kadhaa hutolewa kwa vifaa vya PCI pamoja na vifaa vya ISA PnP (kinyume na vifaa vya Legacy ISA). Kama matokeo, POST huamua mawasiliano ya mistari ya INTA# ... INTD# kwa nambari za ombi la mtawala na kupanga ubadilishaji wa ombi ipasavyo. Kwa mapenzi ya mtumiaji, inaweza kugeuka kuwa sio kila mstari wa ombi la basi la PCI hupata pembejeo tofauti ya kidhibiti cha usumbufu. Kisha kubadili hupanga mchanganyiko wa mistari kadhaa ya ombi la PCI kwa pembejeo moja ya mtawala, yaani, kukatika kwa pamoja. Katika hali mbaya zaidi, vifaa vya PCI havitapokea pembejeo za kidhibiti cha kukatiza. Kumbuka kuwa BIOS haiwezekani kutoa usumbufu 14 na 15 kwa basi ya PCI (zinachukuliwa na mtawala wa IDE ikiwa haijazimwa), pamoja na 3 na 4 (bandari za COM).

Dereva (au programu nyingine) inayofanya kazi na kifaa cha PCI huamua vekta ya kukatiza iliyopewa kifaa (kwa usahihi zaidi, kazi) kwa kusoma rejista ya usanidi wa Mstari wa Kukatiza. Daftari hii inaonyesha nambari ya pembejeo ya mtawala wa kukatiza (255 - hakuna nambari iliyopewa), na vekta imedhamiriwa kutoka kwayo (tazama sehemu ya 12.4). Nambari ya ingizo kwa kila kifaa imeingizwa na jaribio la POST. Ili kufanya hivyo, inasoma rejista ya Pini ya Kukatiza ya kila kazi iliyotambuliwa na, kwa kutumia anwani ya kifaa (!), huamua ni ipi kati ya mistari (PCI_1...PCI_4) inayotumika. Kumbuka kuwa sheria ambazo ubao wa mama huamua mawasiliano kati ya Pini ya Kukatiza na mistari ya pembejeo ya swichi ya ombi kulingana na nambari ya kifaa haijadhibitiwa madhubuti (kugawa nambari ya kifaa na 4 ni pendekezo tu), lakini zinajulikana sana. kwa toleo la BIOS la ada ya mfumo fulani. Katika hatua hii, mtihani wa POST tayari umeamua meza ya mawasiliano kati ya mistari hii na nambari za uingizaji; Kwa kutumia jedwali hili, anaandika thamani inayotakiwa kwenye rejista ya usanidi wa Mstari wa Kukatiza. Unaweza kuamua ikiwa kuna wagombeaji wengine wa nambari sawa ya kukatiza kwa kuangalia rejista za usanidi wa kazi za vifaa vyote vilivyogunduliwa kwenye basi (hii sio ngumu sana kufanya kwa kutumia kazi za PCI BIOS). Faida za kukatizwa kwa pamoja zimejadiliwa katika Sehemu ya 12.4.1.

Njia pekee ya kuepuka matatizo ya "kutengana" ni kupanga upya kadi katika nafasi inayofaa. Hata hivyo, kuna "zawadi kutoka kwa watengenezaji" wa bodi zilizounganishwa ambazo, kati ya slots kadhaa za PCI, moja tu ina mstari wa kupinga ambao haujashirikiwa (au hata hakuna kabisa). Magonjwa kama hayo, kama sheria, hayawezi kutibiwa bila scalpel na chuma cha soldering.

Basi la PCI pia lina utaratibu mwingine wa kuarifu kuhusu matukio yasiyolingana, kulingana na upitishaji wa ujumbe (Vipindi vya Kuingilia Ujumbe kwa PCI). Ili kuashiria ombi la kukatiza, kifaa huomba udhibiti wa basi na, unapopokea, huandika nambari ya kukatiza kwa anwani iliyoamuliwa mapema.

Utaratibu huu unaweza kutumika kwenye vibao vya mama ambavyo vina kidhibiti cha kukatiza "kina" cha APIC. Nambari ya ombi imerekodiwa katika rejista inayolingana ya APIC. Kwa ubao wa mama kwenye chipset iliyo na kitovu cha ICH2 82801, rejista hii iko kwenye anwani ya kumbukumbu FEC00020h, na nambari ya usumbufu inaweza kuwa katika safu ya 0-23h. Hata hivyo, taratibu zote mbili haziwezi kufanya kazi kwa wakati mmoja; ikiwa operesheni ya APIC imewezeshwa, basi mantiki ya watawala 8259 haitumiwi, na kinyume chake.

6.2.7. Ufikiaji wa Kumbukumbu ya Moja kwa moja, Uigaji wa ISA DMA (PC/PCI)

Kama ilivyoonyeshwa hapo juu, basi ya PCI haitoi uwezo wa ufikiaji wa kumbukumbu ya moja kwa moja kwa kutumia kidhibiti cha mtindo wa 8237A (kama vile basi la ISA). Ili kuondoa kichakataji cha kati kutokana na uhamishaji wa data wa kawaida, udhibiti wa basi moja kwa moja kwa vifaa vinavyoitwa mabasi makuu ( Basi la PCI Mwalimu). Kiwango cha akili cha kifaa kikuu kinaweza kutofautiana. Kwa njia rahisi zaidi, kifaa kikuu huhamisha vizuizi vya data kati ya kifaa na kumbukumbu ya mfumo (au kumbukumbu ya vifaa vingine) kama inavyoelekezwa na CPU. Hapa CPU, kwa kutumia amri za kufikia rejista fulani za kifaa kikuu, huweka anwani ya kuanzia, urefu wa kuzuia, mwelekeo wa uhamisho na inaruhusu uhamisho kuanza. Baada ya hayo, uhamisho unafanywa wakati kifaa kiko tayari (au kuanzishwa), bila kuvuruga CPU. Hivi ndivyo ufikiaji wa kumbukumbu ya moja kwa moja (DMA) unafanywa. Kidhibiti changamani zaidi cha DMA kinaweza kupanga muunganisho wa bafa wakati wa kusoma, kuandika kwa kutawanyika, n.k. - uwezo unaojulikana kutoka kwa vidhibiti "vya hali ya juu" vya DMA kwa ISA/EISA. Kifaa kikuu chenye akili zaidi, kawaida kuwa na kidhibiti kidogo, sio mdogo kwa kazi rahisi kama hiyo kwa mwelekeo wa CPU - hufanya ubadilishanaji kulingana na mpango wa mtawala wake.

Ili kufanya vifaa vya PCI viendane na programu za zamani zinazoelekezwa kwa Kompyuta na kurahisisha vifaa vya PCI, Intel imeunda itifaki maalum ya PC/PCI DMA ambayo hubadilisha ugawaji wa jozi za mawimbi REQi# na GNTi# kwa wakala aliyechaguliwa mapema, ambayo ni "kondakta" wa DMA. Wakala huyu ana jozi za ishara za nje (kuhusiana na basi la PCI) DRQx# na DACKx# zenye mantiki sawa na mawimbi ya ISA ya jina moja (ona sehemu ya 6.1), na hutumia mistari ya REQi# na GNTi# kwa njia maalum wakati wa kuomba. udhibiti wa basi. Wakala anapopokea ombi la DRQx (moja au zaidi), hutuma nambari za laini za ombi za DRQx katika msimbo wa serial kupitia laini ya REQi#, iliyosawazishwa kupitia laini ya CLK. Katika mzunguko wa kwanza wa CLK, biti ya kuanza hupitishwa - kiwango cha chini cha REQi #, kwa pili - shughuli ya ombi DRQ0, kisha DRQ1 na kadhalika hadi DRQ7, baada ya hapo kiwango cha chini cha REQ # kinadumishwa. Msuluhishi atajibu ujumbe huu kupitia laini ya GNTi# yenye ujumbe pia unaoanza na biti ya kuanzia, ikifuatiwa na biti tatu za msimbo wa nambari ya kituo ambapo uthibitisho wa DACK# umetolewa kwa ajili ya usambazaji wa data katika shughuli hii. Wakala lazima amjulishe msuluhishi wa mabadiliko yote kwenye mistari ya ombi, ikiwa ni pamoja na kuondolewa kwa ishara za ombi. Utaratibu wa PC/PCI DMA unaweza tu kutekelezwa katika chipset ya ubao mama.

6.2.8. Kiolesura cha umeme, inafaa na kadi za PCI

Kufanya kazi kwenye basi ya PCI, chips za CMOS hutumiwa, na kuna vipimo viwili: na voltages ya usambazaji wa mzunguko wa interface ya 5 na 3.3 V. Vigezo vya ishara za DC vilivyotolewa katika Jedwali 1 vinatumika kwao. 6.13. Hata hivyo, nguvu za vipengele vya interface (transistors kwa milango) huchaguliwa kuwa chini ya kile ambacho kitahitajika kubadili ishara kwa masafa ya juu (33 au 66 MHz). Hapa, athari ya kutafakari kwa ishara zinazozalishwa na microcircuits kwenye waendeshaji wa basi hutumiwa kutoka kwa ncha zisizo sawa za waendeshaji hawa, ambao ni kwa vile. masafa ya juu mistari mirefu. Hakuna wasimamizi kwenye ncha za waendeshaji wa basi, kwa hivyo wimbi la ishara inayoingia linaonyeshwa kutoka kwao kwa ishara sawa na amplitude sawa. Kuongeza kwa ishara ya moja kwa moja, wimbi la reverse hutoa inavyotakiwa na mpokeaji kiwango cha ishara. Kwa hivyo, mtoaji hutoa ishara kwamba, kabla ya kuwasili kwa ile iliyoonyeshwa, iko kati ya viwango vya kubadili.

Jedwali 6.13. Vigezo vya ishara za interface za DC

Kigezo 5 V 3.3 V
Kiwango cha chini cha voltage ya pembejeo, V –0,5 –0,5
Kiwango cha juu cha voltage ya pembejeo, V 2?U IH ?V CC +0.5 V CC /2?U IH ?V CC +0.5
Kiwango cha chini cha pato la voltage, V U IL ?0.55 U OL ?0.1?V CC
Kiwango cha juu cha pato la voltage, V UOH ?0.8 UOH ?0.9?V CC
Ugavi wa voltage V CC, V 4.75?U CC ?5.25 3.3?U CC ?3.6

Laini za mawimbi ya kudhibiti FRAME# , TRDY# , IRDY# , DEVSEL# , STOP# , SERR# , PERR# , LOCK# , INTA# , INTB# , INTC# , INTD# , REQ64# na ACK64# kwenye ubao wa mfumo ziko imevutwa hadi vipingamizi vya ugavi wa basi (kawaida 2.7 kOhm kwa toleo la V 5 na 8.2 kOhm kwa toleo la 3.3 V) ili kusiwe na kengele za uwongo wakati mawakala wote wa basi hawana shughuli.

Vipimo vya umeme vimeundwa kwa vikomo viwili vya mzigo kwenye basi moja: vifaa 2 vya PCI kwenye ubao wa mfumo pamoja na nafasi 4, au vifaa 4 na nafasi 2. Hii inadhania kuwa kifaa kimoja kwa kila mstari wa basi wa PCI hutoa mzigo mmoja tu wa CMOS. Nafasi zinaweza kuchukua kadi ambazo pia hutoa mzigo mmoja tu. Vikwazo vikali vinawekwa kwa urefu wa waendeshaji, pamoja na topolojia ya mpangilio wa vipengele na waendeshaji kwenye kadi za upanuzi. Kwa sababu hii, kutengeneza kadi za PCI za nyumbani kwenye chipsi za mantiki zilizounganishwa kati inakuwa shida.

Nafasi za PCI ni viunganishi vilivyofungwa na pini zilizopigwa kwa inchi 0.05. Nafasi ziko mbali kidogo na paneli ya nyuma kuliko ISA/EISA au MCA. Vipengele vya kadi ya PCI ziko kwenye uso wa kushoto wa kadi. Kwa sababu hii, sehemu ya nje ya PCI kawaida hushiriki slot ya adapta (nafasi kwenye ukuta wa nyuma wa kesi) na slot ya ISA iliyo karibu. Slot kama hiyo inaitwa slot iliyoshirikiwa; ama ISA au kadi ya PCI inaweza kusanikishwa ndani yake.

Kadi za PCI zinaweza kuundwa kwa viwango vya ishara za 5 V na 3.3 V, na pia inaweza kuwa zima. Nafasi za PCI zina viwango vya mawimbi vinavyolingana na usambazaji wa nguvu kwa chip za kifaa cha PCI kwenye ubao mama: ama 5 V au 3.3 V. Ili kuepuka miunganisho yenye makosa, nafasi zina funguo zinazoamua ukadiriaji wa voltage. Funguo ni safu zinazokosekana za pini 12,13 na 50, 51. Kwa slot ya 5V, ufunguo iko kwenye pini 50, 51; kwa 3.3 V - 12, 13. Kwenye viunganisho vya makali ya kadi za PCI kuna nafasi zinazofanana mahali pa mawasiliano 50.51 (5 V) na 12.13 (3.3 V); kadi ya ulimwengu wote ina funguo zote mbili. Vifunguo havikuruhusu kufunga kadi kwenye slot na voltage isiyofaa ya usambazaji. Kadi na nafasi hutofautiana tu katika usambazaji wa nguvu kwa mizunguko ya bafa, ambayo hutoka kwa mistari ya +V I/O:

Katika slot ya "5 V", +5 V hutolewa kwenye mstari wa + V I/O;

Katika nafasi ya "3.3 V", + (3.3–3.6) V hutolewa kwenye mstari wa + V I/O;

Kwenye kadi ya "5 V", chipsi za bafa zimeundwa kwa nguvu ya +5 V pekee;

Kwenye kadi ya "3.3 V", chips za bafa zimeundwa tu kwa usambazaji wa umeme wa + (3.3–3.6) V;

Kwenye kadi ya ulimwengu wote, chips za bafa hukubali chaguo zote mbili za nishati na kwa kawaida zitazalisha na kukubali mawimbi katika vipimo vya 5 au 3.3 V, kulingana na aina ya nafasi ambayo kadi imesakinishwa.

Aina zote mbili za inafaa zina voltages za usambazaji+3.3, +5, +12 na -12V kwenye mistari ya jina moja. PCI 2.2 inafafanua laini ya ziada ya 3.3Vaux - "kusubiri" +3.3 V ugavi wa umeme kwa vifaa vinavyozalisha ishara ya PME# wakati nguvu kuu imezimwa.

Kwenye ubao wa mama, inafaa 5-volt 32-bit mara nyingi hupatikana, kuishia na pini A62/B62; Slots za 64-bit hazipatikani sana, ni ndefu na zinaisha na pini A94/B94. Muundo wa viunganisho na itifaki inakuwezesha kufunga kadi 64-bit katika viunganisho vya 32-bit, na kinyume chake, lakini katika kesi hii, bila shaka, kubadilishana itakuwa katika hali ya 32-bit.

Kasi ya saa ya basi imedhamiriwa na uwezo wa chipset na watumiaji wote wa basi. Mzunguko wa juu wa 66 MHz unaweza tu kuweka na jenereta ya saa wakati mstari wa M66EN ni wa juu. Kwa hivyo, kusakinisha kadi yoyote ambayo haiungi mkono 66 MHz (iliyo na pini B49 iliyowekwa msingi) itapunguza mzunguko wa basi hadi 33 MHz. Vibao vya mama vya seva ambazo zina mabasi mengi ya PCI huruhusu masafa tofauti (66 na 33 MHz) kutumika kwenye mabasi tofauti. Kwa hiyo, kwa mfano, unaweza kutumia mzunguko wa 66 MHz kwenye slots 64-bit, na 33 kwenye slots 32. Overclocking mzunguko wa kawaida wa 33 MHz hadi 40-50 MHz haudhibiti na vifaa, lakini inaweza kusababisha makosa. katika uendeshaji wa kadi za upanuzi.

Katika Mtini. Mchoro 6.8 unaonyesha kadi ya 32-bit ya ukubwa wa juu (Kadi ndefu), urefu wa kadi fupi (Kadi fupi) ni 175 mm, lakini kadi nyingi zina ukubwa mdogo. Kadi ina sura (mabano), kiwango cha muundo wa ISA (hapo awali kulikuwa na kadi zilizo na sura katika mtindo wa MCA wa IBM PS/2). Mgawo wa pini za kiunganishi zima hutolewa kwenye meza. 6.14.

Mchele. 6.8. Kadi ya upanuzi ya PCI

Jedwali 6.14. Viunganishi vya basi vya PCI

Safu B Safu ya A Safu B Safu ya A
-12V 1 TRST# GND/M66EN? 49 AD9
TCK 2 +12V GND/Ufunguo 5V 50 GND/Ufunguo 5V
GND 3 TMS GND/Ufunguo 5V 51 GND/Ufunguo 5V
TDO 4 TDI AD 8 52 C/BE0#
+5 8 5 +5 V AD 7 53 +3.3 V
+5 V 6 INTA# +3,38 54 AD 6
INTB# 7 INTC# AD 5 55 AD 4
INTD# 8 +5 V AD 3 56 GND
PRSNT1# 9 Hifadhi GND 57 AD 2
Hifadhi 10 +V I/O AD 1 58 AD 0
PRSNT2# 11 Hifadhi +V I/O 59 +V I/O
GND/Ufunguo 3.3 SAA 12 GND/Ufunguo 3.3V ACK64# 60 REQ64#
GND/Ufunguo 3.3V 13 GND/Ufunguo 3.3V +5 V 61 +5 V
Hifadhi 14 3.3 Vax? +5 V 62 +5 V
GND 15 RST# Mwisho wa kiunganishi cha 32-bit
CLK 16 +V I/O Hifadhi 63
GND 17 GNT# GND 64 C/BE7#
REQ# 18 GND C/BE6# 65 C/BE5#
+V I/O 19 PME#? C/BE4# 66 +V I/O
AD 31 20 AD 30 GND 67 PAR64
AD 29 21 +3.3 V Mwaka wa 63 BK 68 62 BK
GND 22 AD 28 61 BK 69 GND
AD 27 23 AD 26 +V I/O 70 AD 60
AD 25 24 GND 59 BK 71 AD 58
+3.3 V 25 AD 24 AD 57 72 GND
C/BE3# 26 IDSEL GND 73 AD 56
AD 23 27 +3,3 8 AD 55 74 AD 54
GND 28 AD 22 53 BK 75 +V I/O
AD 21 29 AD 20 GND 76 AD 52
AD 19 30 GND AD 51 77 AD 50
+3.3 V 31 AD 18 AD 49 78 GND
AD 17 32 AD 16 +V I/O 79 AD 48
C/BE2# 33 +3.3 V AD 47 80 AD 46
GND 34 FRAM# AD 45 81 GND
IRDY# 35 GND GND 82 AD 44
+3.3 V 36 TRDY# AD 43 83 AD 42
DEVSEL# 37 GND AD 41 84 +V I/O
GND 38 SIMAMA# GND 85 AD 40
LOCK# 39 +3.3 V AD 39 86 AD 38
PERR# 40 (SDONE#)? AD 37 87 GND
+3.3 V 41 (SBOFF#)? +V I/O 88 AD 36
SERR# 42 GND AD 35 89 AD 34
+3.3 V 43 PAR AD 33 90 GND
C/BE1# 44 AD 15 GND 91 AD 32
AD 14 45 +3.3 V Hifadhi 92 Hifadhi
GND 46 AD 13 Hifadhi 93 GND
AD 12 47 AD 11 GND 94 Hifadhi
AD 10 48 GND Mwisho wa kiunganishi cha 64-bit

Ishara ya M66EN inafafanuliwa katika PCI 2.1 kwa nafasi za 3.3V pekee.

Ishara ilianzishwa kwenye PCI 2.2 (hapo awali kulikuwa na hifadhi).

Ishara zimefutwa katika PCI 2.2 (kwa utangamano kwenye ubao wa mama huvutwa kwa kiwango cha juu na vipinga 5 vya kOhm).

Nafasi za PCI zina anwani za kujaribu adapta kupitia kiolesura cha JTAG (TCK, TDI, TDO, TMS na TRST# ishara). Kwenye ubao wa mama, ishara hizi hazitumiwi kila wakati, lakini zinaweza pia kuandaa mlolongo wa mantiki wa adapta zilizojaribiwa, ambazo vifaa vya mtihani wa nje vinaweza kushikamana. Kwa mwendelezo wa mnyororo, kadi isiyo ya JTAG lazima iwe na kiungo cha TDI hadi TDO.

Baadhi ya vibao mama vya zamani vina kiunganishi cha Basi la Media nyuma ya sehemu moja ya PCI inayobeba mawimbi ya ISA. Imeundwa ili kubeba chipset ya sauti iliyoundwa kwa ajili ya basi ya ISA kwenye adapta ya michoro ya PCI.

6.2.9. Miundo mingine na basi ya PCI

Basi la PCI lina miundo mingine; maelezo yao yanapatikana kwenye tovuti www.pcisig.org (ingawa tu kwa wanachama wa shirika hili au kwa pesa).

PCI ya Chini - toleo la chini la kadi ya PCI yenye kontakt ya kawaida, lakini bracket iliyorekebishwa. Kadi hizi zinaweza kusakinishwa kwa wima (bila adapta ya kadi ya kiinua) hata katika hali za wasifu wa chini (kwa mfano, umbizo la 19" 2U). Kadi hizi hutoa tu voltage ya usambazaji ya 3.3 V kwa saketi za kiolesura (lakini basi la umeme la V 5 kubakia).

PCI ndogo (SPCI) ni vipimo vidogo vya PCI, hapo awali viliitwa SFF PCI (Small Form-Factor). Uainishaji huu, unaokusudiwa hasa kwa kompyuta za mkononi, kimantiki ni sawa na basi ya kawaida ya PCI. Basi ni 32-bit, upanuzi wa 64-bit haujatolewa, na kwa mzunguko wa 33 MHz, njia ya 132 MB / s hutolewa. Kama ilivyo kwa mabasi yote ya PCI, udhibiti wa moja kwa moja (udhibiti wa basi) unatumika hapa. Mbali na seti ya kawaida ya ishara, mpya imeonekana - CLKRUN, ambayo mwenyeji na vifaa vinaweza kudhibiti mzunguko wa saa kwa maslahi ya uhifadhi wa nishati. Kadi ya SPCI ina ukubwa sawa na Kadi ya Kompyuta na Basi ya Kadi, lakini funguo maalum huzuia makosa ya muunganisho. Ili kuunganisha kadi za SPCI, kiunganishi cha pini 108-safu mbili na lami ya 2 mm imewekwa kwenye ubao wa mama. Kadi ya upanuzi inaweza kuunganishwa moja kwa moja nayo, lakini adapta yenye mawasiliano ya ribbon ya pande mbili na lami ya 0.8 mm pia inaweza kutumika. Basi la SPCI ni la ndani (kadi za upanuzi ziko chini ya kifuniko cha chasi na huwekwa na mtengenezaji wakati nguvu imezimwa) na kwa hiyo haijakusudiwa kuchukua nafasi ya BUS ya Kadi (basi ya uunganisho wa nje ya moto-swappable). Kadi za SPCI zinaweza kuwa za aina tatu: 5 V, 3.3 V na zima 5/3.3 V. Shukrani kwa kupunguzwa kwa ukubwa (urefu wa kondakta), mahitaji ya nguvu ya ishara yanapunguzwa. Kadi za SPCI hukuruhusu kuchukua fursa ya suluhisho za msimu (unaweza kupakua bodi ya mfumo), kutoa utendakazi wa hali ya juu wa mawasiliano (ambayo Kadi Bus haitoi).

Uainishaji wa PCI Ndogo - toleo la ukubwa mdogo wa kadi za PCI (2.75"? 1.81"? 0.22"). Kimantiki na kielektroniki inalingana na PCI (biti 32), kwa kuongeza kwa kutumia mawimbi ya CLKRUN kupunguza matumizi ya nguvu na bila mawimbi ya JTAG. Ina ziada ishara kwa ajili ya maombi ya sauti na video.

PCI–X ni vipimo vya basi vilivyo na kipimo data cha juu, kinachofikia GB 1/s: mzunguko wa saa wa 133 MHz na biti 64. Imeundwa kwa kuzingatia utangamano wa basi na vifaa vya zamani na vifaa vipya na basi ya kawaida ya PCI, ambayo, ikiwa mfumo una angalau moja ya vipengele vya "kasi ya chini", mzunguko hupunguzwa hadi 66 ya kawaida. au 33 MHz. Mbali na kuongeza mzunguko wa saa, kuna ubunifu katika itifaki ya basi (kwa mfano, shughuli za mgawanyiko) ambazo huongeza ufanisi wa matumizi yake.

Kwa vifaa vya viwandani, kiwango cha Compact PCI kilipitishwa mapema 1995. Basi la Compact PCI (cPCI) liliundwa kulingana na vipimo vya PCI 2.1. Kiwango hiki kinakubaliwa na shirika la PCIMG (PCI Industrial Computer Manufacturers Group). Basi lina idadi kubwa ya nafasi zinazotumika: 8 dhidi ya 4. Jozi 4 mpya za ishara za ombi na udhibiti wa basi umeonekana.

Basi inasaidia mawasiliano ya 32-bit na 64-bit (pamoja na azimio la baiti ya mtu binafsi). Kwa kasi ya basi ya 33 MHz, upeo wa juu ni 133 MB / s kwa bits 32 na 266 MB / s kwa bits 64 (mzunguko wa katikati ya pakiti). Uendeshaji katika 66 MHz inawezekana. Basi linaauni vipimo vya PnP. Kwa kuongeza, basi inaweza kutumia anwani ya kijiografia, ambayo anwani ya moduli (ambayo hujibu wakati wa upatikanaji wa programu) imedhamiriwa na nafasi yake katika sura. Kwa kusudi hili, kontakt J1 ina anwani GA0 ... GA4, kwa kubadili ambayo ili chini, anwani yake ya binary imewekwa kwa kila slot. Ushughulikiaji wa kijiografia hukuruhusu kupanga tena moduli za aina moja bila kuwa na wasiwasi juu ya kusanidi anwani zao (mbadala nzuri kwa mfumo wa PnP - moduli "itasimama" kila wakati kwenye anwani zile zile, ambazo hazitabadilika tena bila uingiliaji wa mwili). Kimuundo, bodi za Compact PCI ni 3U (100 x 160 mm) kadi za juu za Euro na kiunganishi kimoja (J1) au 6U (233 x 160 mm) na viunganisho viwili (J1 na J2). Viunganishi - viunganisho vya pini vya safu 7 na lami ya mm 2 kati ya mawasiliano, kwenye ndege ya nyuma - kuziba, kwenye moduli - soketi. Mawasiliano ya kontakt ina urefu tofauti: mawasiliano ya muda mrefu ya nyaya za nguvu huunganishwa mapema wakati wa kufunga moduli, na kukatwa baadaye wakati kuondolewa kuliko mawasiliano ya ishara. Suluhisho hili linaruhusu uingizwaji wa "moto" wa moduli. Basi yenyewe hutumia kiunganishi kimoja tu (J1), na katika toleo la 32-bit sio kabisa - baadhi ya mawasiliano yanaweza kutumiwa na mtumiaji. Basi la 64-bit hutumia kiunganishi kizima. Kiti kimoja kwenye ndege ya nyuma kimehifadhiwa kwa mtawala wa basi, ambaye amepewa kazi za usuluhishi na maingiliano. Kiunganishi chake cha basi hutumia idadi kubwa ya waasiliani kuliko wengine. Kwa bodi kubwa, kiunganishi J2 hutolewa kwa mtumiaji, na kiunganishi cha pini 95 J3 kinaweza kusanikishwa kati ya viunganishi J1 na J2. Muundo wa viunganisho huruhusu marekebisho maalum kwa J2 (kwa mfano, na ngao ya kutenganisha na funguo za mitambo). Basi hutoa vifaa vya nguvu vya kujitegemea vya +5 V, +3.3 V na ± 12 V.

Kulingana na basi la Compact PCI, Ala za Kitaifa zilitengeneza vipimo vya PXI (PCI viendelezi vya Ala) katika miundo sawa. Katika basi la PXI, baadhi ya pini zinazofafanuliwa kuwa zisizolipishwa katika Compact PCI zimekusudiwa kwa mabasi ya ziada. Trigger Bus (mistari 8) huunganisha sehemu yake ya kidhibiti (ya kwanza baada ya kidhibiti cha mfumo wa PCI) na nafasi nyingine katika umbo la nyota. Basi inaruhusu maingiliano ya moduli tofauti, ambayo mara nyingi inahitajika katika mifumo ya kipimo. Kwa ulandanishi wa usahihi, kuna mawimbi ya marejeleo ya 10 MHz PXI_CLK, yenye umbo la nyota (pamoja na ucheleweshaji sawa wa uenezi wa mawimbi) inayopitishwa kwenye nafasi. PXI inafafanua mabasi ya ndani ambayo hutumiwa kuwasiliana kati ya jozi za karibu za nafasi. Kila basi ya ndani ina mistari 13, ambayo inaweza kutumika kwa ishara za dijiti na analogi (hadi 48 V). Mabasi ya ndani huchanganya nafasi za karibu kwa jozi (bila kujumuisha kidhibiti cha mfumo), na kutengeneza mnyororo. Mbali na sifa za mitambo na umeme, PXI huamua programu ya modules: OS kuu inachukuliwa kuwa Windows NT/95, na modules lazima zipewe madereva sahihi. Hii huokoa muda unaohitajika kwa ujumuishaji wa mfumo. Module za PXI zinaoana na basi la Compact PCI, na moduli za Compact PCI zinaoana na basi la PXI. Walakini, faida kamili za vipimo hugunduliwa tu wakati moduli za PXI zimewekwa kwenye basi ya PXI.

6.2.10. Madaraja ya PCI

Ili kuunganisha basi ya PCI na mabasi mengine na kwa kila mmoja, vifaa maalum hutumiwa - madaraja ya PCI (PCI Bridge). Daraja kuu (Host Bridge) hutumiwa kuunganisha PCI kwenye basi ya mfumo (kumbukumbu ya mfumo na processor), daraja la rika-kwa-rika(Daraja la Peer-to-Peer) - kuunganisha mabasi mawili ya PCI.

Kuunganisha mabasi mengi ya PCI ni kawaida kwa seva - hivyo kuongeza idadi ya vifaa vilivyounganishwa. Madaraja huunda uongozi wa basi, juu ambayo ni basi kuu yenye nambari sifuri. Daraja kuu la chipset ya bodi ya mama inaweza kuunganisha kituo (processor na kumbukumbu) na mabasi kadhaa ya kiwango sawa cha PCI, ambayo kuu itakuwa nambari ya basi sifuri. Ili kuunganisha mabasi ya PCMCIA, CardBus, MCA, ISA/EISA, X-Bus na LPC, madaraja maalum hutumiwa, ambayo yanajumuishwa kwenye chipsets za ubao wa mama au ni vifaa tofauti vya PCI (chips). Madaraja hubadilisha miingiliano ya mabasi wanayounganisha, kusawazisha na kubadilishana data bafa. Madaraja (pamoja na madaraja ya PCI-PCI) huruhusu tofauti katika masafa ya saa kwenye mabasi wanayounganisha.

Kila daraja linaweza kupangwa - limepewa safu za anwani katika kumbukumbu na nafasi za I/O zilizotengwa kwa vifaa kwenye mabasi yake. Ikiwa anwani ya CPU ya muamala wa sasa kwenye basi moja (upande) wa daraja inarejelea basi la upande mwingine, daraja huelekeza muamala kwa basi linalofaa na kuhakikisha mazungumzo ya itifaki ya basi. Kwa hivyo, mkusanyiko wa madaraja ya PCI hufanya uelekezaji wa maombi kwenye mabasi yanayohusiana. Inaaminika kuwa kifaa kilicho na anwani maalum kinaweza kuwepo tu kwenye moja ya mabasi, na madaraja yaliyopangwa "yanajua" ni ipi. Ishara ya DEVSEL# pia inakusudiwa kutatua tatizo la uelekezaji. Simu zisizohitajika na watumiaji wa PCI zinaweza kuelekezwa kwingine, kwa mfano, kwa basi la ISA/EISA.

Madaraja yanahusishwa na dhana za kusimbua anwani chanya na ndogo. Mawakala wa kawaida wa PCI (vifaa na madaraja) hujibu tu maombi ya anwani zinazomilikiwa na maeneo yaliyofafanuliwa katika nafasi yao ya usanidi (kupitia anwani za msingi na kumbukumbu au safu za I/O). Njia hii ya kusimbua inaitwa chanya. Daraja na usimbuaji chanya(usimbuaji chanya) hupitia simu tu za orodha maalum iliyobainishwa katika rejista zake za usanidi. Daraja na usimbuaji wa kupunguza(usimbuaji wa kupunguza) hupitia simu ambazo hazihusiani na vifaa vingine. Maeneo yake ya uwazi yanaundwa kwa kutoa (kwa hiyo jina) kutoka kwa nafasi ya jumla ya maeneo yaliyoelezwa na orodha. Usimbuaji wa kupunguza unapatikana tu kwenye aina fulani za madaraja na ni pamoja na usimbaji chanya.

Usimbuaji mzuri na wa kupunguza hurejelea tu ufikiaji unaoelekezwa kwa kumbukumbu na nafasi za I/O. Simu za usanidi hupitishwa kwa kutumia nambari ya basi inayopitishwa katika mizunguko ya aina ya 1 (ona sehemu ya 6.2.11): kila daraja "linajua" nambari za mabasi yote yanayolizunguka.

Kila basi la PCI lazima liwe na kifaa cha kati kinachofanya kazi zifuatazo:

Usuluhishi wa kati - kupokea ishara za ombi za REQx# kutoka kwa wakuu wa mabasi na kuwapa haki ya kudhibiti basi kwa mawimbi ya GNTx#;

? "kuvuta" ishara za udhibiti kwa kiwango cha juu;

Usimbuaji wa anwani ya subtractive;

Kizazi cha usanidi na mizunguko maalum kulingana na amri za processor (pamoja na kizazi cha ishara za IDSEL za kibinafsi kwa kifaa cha PCI kinachoweza kushughulikiwa);

Uundaji wa ishara ya REQ64# mwishoni mwa kuweka upya kama ishara ya basi ya 64-bit (ikiwa kuna moja).

Kazi hizi kwa kawaida hutolewa kwa daraja linalounganisha basi hili kwa viwango vya juu vya uongozi wa basi la PCI. Mbali na kufanya kazi hizi ambazo hutumikia basi maalum, madaraja hutatua shida za kuboresha uhamishaji wa data kati ya mifumo ndogo ya kompyuta, na utendaji wa jumla wa mfumo hutegemea sana ubora wa kutatua shida hizi.

Mojawapo ya vipengele vya kutumia basi la PCI lenye viunganishi vyake vya daraja ni uwezo wa kufanya ubadilishanaji data zaidi ya moja kwa wakati mmoja kwenye njia zisizopishana - Uhamisho wa PCI Sambamba au Upatanishi wa PCI. Kwa mfano, wakati wa mwingiliano wa kumbukumbu ya processor, kifaa kikuu cha basi cha PCI kinaweza kuwasiliana na kifaa kingine cha PCI. Mfano huu wa mawasiliano ya wakati mmoja ni wa kinadharia, kwani bwana wa basi ya PCI kawaida huwasiliana na kumbukumbu ya mfumo. Kesi ya kufurahisha zaidi ni ubadilishanaji wa adapta ya picha iliyounganishwa kwenye bandari ya AGP (jamaa ya PCI, angalia sehemu ya 6.3) na kumbukumbu wakati huo huo na ubadilishanaji wa processor na kifaa cha PCI au, kwa upande wake, processor inapakia data kwenye picha. adapta wakati huo huo na ubadilishanaji kati ya kifaa kikuu cha basi cha PCI na kumbukumbu ya mfumo. Sambamba inahitaji mantiki changamano ya usuluhishi wa kati wa maombi kutoka kwa mawakala wote wa mfumo na hila mbalimbali katika kuakibisha data. Sambamba haitekelezwi na chipsets zote (kila mara husisitizwa haswa katika maelezo) na inaweza kupigwa marufuku na mipangilio ya Usanidi wa CMOS.

Ili kuhifadhi kipimo data cha basi (kupunguza idadi ya mizunguko ya saa iliyopotea) wakati wa kufikia vifaa vya basi la polepole (kwa mfano, ISA), daraja linaweza kufanya kazi. shughuli zinazosubiri(muamala umecheleweshwa). Utaratibu huu unafanya kazi kama ifuatavyo. Mwanzilishi, iko kwenye basi "ya haraka" (hii pia inaweza kuwa daraja kuu), hufikia kituo cha udhibiti kwenye basi ya polepole, kuweka anwani na amri, na pia data katika amri za kuandika. Daraja huhifadhi habari hii katika madaftari yake ya ndani na "kwa niaba ya kituo cha udhibiti" huingia ishara ya STOP # (kukomesha aina ya "kurudia"), ambayo inalazimisha mwanzilishi kutolewa haraka basi. Wakati huo huo, daraja hufanya shughuli na CPU halisi na huhifadhi matokeo ya utekelezaji wake (kwa amri za kusoma hii itakuwa data). Mwanzilishi, baada ya kupokea jibu la "jaribu tena", analazimika kuanza tena shughuli hiyo hiyo, na sasa daraja litajibu haraka na matokeo ya kweli yaliyopokelewa kutoka kituo cha udhibiti. Wakati daraja linafanya operesheni ndefu ya mawasiliano na kifaa cha polepole, basi la haraka linabaki huru kuwahudumia waanzilishi wengine. Ikiwa kwa sababu fulani bwana "anasahau" kufanya upya shughuli, daraja lazima liondoe matokeo yaliyopatikana. Kughairi hufanywa kwa kutumia kipima muda (tupa kipima muda), ambacho huhesabu muda tangu mwanzo wa muamala ulioahirishwa hadi urudiwe. Miamala iliyoahirishwa inatumika kwa amri za mlango, amri za nafasi ya usanidi, ukiri wa kukatiza, na ufikiaji wa kumbukumbu wa kawaida.

Ugawaji wa mizunguko maalum ya safu mlalo iliyobatilishwa ya kusomwa, kusomeka kwa wingi na kuandika huruhusu kidhibiti cha kumbukumbu kuchukua hatua mahususi ili kuboresha uhamishaji huu. Hata hivyo, maagizo haya yanatumika tu kwa ajili ya kupata kumbukumbu katika "fomu yake safi" (kuwa na mali Prefetchable). Mwanzilishi anapofikia chanzo cha data kilichotenganishwa na daraja, kusomwa kwa safu mlalo au amri nyingi za kusomwa, daraja linaweza kusoma zaidi kutoka kwa chanzo cha data kuliko mwanzilishi atachukua kutoka kwayo katika shughuli fulani. Hata hivyo, mwisho wa muamala, ni rahisi zaidi kubatilisha data ya ziada katika bafa ya daraja, kwa kuwa inaweza kuwa tayari imebadilishwa kabla ya uwezekano wa matumizi ya baadae katika chanzo chake halisi. Daraja la kisasa zaidi linaweza kufuatilia mabadiliko haya pia, likitupilia mbali data iliyorekebishwa pekee. Amri za kawaida za kusoma kumbukumbu huruhusu daraja kusoma tu kiasi halisi cha data iliyoombwa. Katika kesi hii, kuna uwezekano mdogo wa kuharakisha uhamisho, lakini hakutakuwa na madhara kutoka kwa usomaji usio wa lazima (kusoma rejista za udhibiti wa kumbukumbu zinaweza kubadilisha hali yao).

Madaraja yaliyoanzishwa kwa upande mmoja na kufikia kifaa kinacholengwa kwa upande mwingine yanaweza kufanya kuchelewesha kuhamisha kumbukumbu kwa kumbukumbu(iliyochapishwa kuandika). Katika hali hii, data inapokelewa kwenye vibafa vya daraja, na kwa mwanzilishi shughuli itakamilika kabla ya data kumfikia mpokeaji halisi. Daraja litaanza shughuli ya kuziwasilisha kwa wakati unaofaa kwa upande mwingine. Agizo na idadi ya baiti zinazotumwa na mpokeaji lazima lazima zilandane na data inayolingana ya kianzisha ubadilishanaji. Kwa kuongeza, utaratibu wa kuandika na kusoma shughuli huhifadhiwa. Ombi la usomaji wa daraja husababisha vihifadhi vya uandishi vilivyoahirishwa kulazimishwa kuachiliwa. Kwa hivyo, mwanzilishi ana uwezo wa kulazimisha utoaji wa data iliyochelewa ya kuandika kwa kufanya operesheni ya kusoma kutoka nyuma ya daraja. Ni daraja kuu pekee lililo na haki ya kuahirisha kuandika kwa bandari za I/O, lakini tu kwa shughuli zilizoanzishwa na kichakataji cha kati. Shughuli za kusoma zinafanywa mara moja, kwa kuwa hazina maana bila kupokea data.

Madaraja yanaweza kutafsiri miamala yao ya uandishi kuwa kumbukumbu ili kuboresha utumaji wa basi. Kwa hivyo, shughuli kadhaa za uandishi zinazofuatana zinaweza kuunganishwa katika shughuli moja ya kupasuka, ambayo maandishi yasiyo ya lazima yanaweza kuzuiwa kwa kutumia ishara za kuwezesha. Kwa mfano, mlolongo wa neno mbili moja huandika kwenye anwani 0, 4, Ch inaweza kuandikwa kwa kuchanganya kwenye pakiti moja na anwani ya kuanzia 0, na wakati wa awamu ya tatu ya data (wakati anwani isiyohitajika 8 inachukuliwa) zote C/BE. Ishara # hazifanyiki. Rekodi za baiti za kibinafsi katika hali fulani zinaweza kuunganishwa (kuunganisha kwa baiti) kuwa shughuli moja. Kwa hivyo, kwa mfano, mlolongo wa maingizo ya baiti kwenye anwani 3, 1, 0, na 2 yanaweza kuunganishwa kuwa ingizo moja la maneno mawili kwa sababu baiti hizo ni za neno mbili linaloshughulikiwa sawa. Kuchanganya na kuunganisha kunaweza kufanya kazi kwa kujitegemea (shughuli zilizounganishwa zinaweza kuunganishwa), lakini ubadilishaji huu haubadili utaratibu wa rekodi za kimwili kwenye vifaa. Uwepo wa uwezo huu sio lazima - inategemea "ustadi" wa madaraja. Madhumuni ya mabadiliko hayo ni kupunguza idadi ya miamala ya mtu binafsi (kila moja ikiwa na angalau awamu "ya ziada" ya anwani) na, ikiwezekana, awamu za data. Vifaa vya PCI vinapaswa kushughulikia rekodi za kuchanganya kawaida - ikiwa kifaa hairuhusu kuchanganya, haijaundwa kwa usahihi. Iwapo kifaa hakiruhusu muunganisho wa baiti, basi ni lazima biti Inayoweza Fecha isafishwe katika maelezo yake ya kumbukumbu.

Kuhusishwa na madaraja ya PCI ni dhana ya VGA Palette Snooping - kurekodi kurekodi kwa palettes za VGA, ambayo ni ubaguzi kwa sheria ya uelekezaji usio na utata wa kumbukumbu na ufikiaji wa I/O. Kadi ya michoro kwenye kompyuta iliyo na basi ya PCI kawaida huwekwa kwenye basi hili au kwenye bandari ya AGP, ambayo kimantiki ni sawa na kusakinishwa kwenye basi ya PCI. Kadi ya VGA ina Rejesta za Palette, ambazo kwa kawaida hupewa nafasi ya I/O. Iwapo mfumo wa michoro pia una kadi ya kuchanganya mawimbi ya adapta ya michoro yenye mawimbi ya "video ya moja kwa moja", ikinasa maelezo ya jozi kuhusu rangi ya saizi ya sasa kwenye basi ya VESA Feature Connector (iliyochukuliwa kabla ya rejista ya palette), rangi ya gamut itabainishwa. kwa rejista ya palette iliyo kwenye kadi hii ya ziada. Hali hutokea wakati kazi ya kuandika kwenye rejista ya palette inapaswa kusindika wakati huo huo katika adapta ya graphics (kwenye PCI au AGP basi) na katika kadi ya upanuzi wa video, ambayo inaweza hata kuwa iko kwenye basi nyingine (ikiwa ni pamoja na ISA). Kunaweza kuwa na chaguo la PCI VGA Palette Snoop katika Usanidi wa CMOS. Inapowezeshwa, kuandika kwa bandari za I/O kwenye anwani ya rejista ya palette kutasababisha shughuli sio tu kwenye basi ambayo adapta ya picha imewekwa, lakini pia kwenye mabasi mengine. Kusoma kwenye anwani hizi kutafanywa tu na adapta ya michoro yenyewe. Utekelezaji unaweza kupewa kadi ya picha ya PCI. Ili kufanya hivyo, inachukua data wakati wa kuandika kwa rejista ya palette, lakini haitoi ishara za kupeana mkono za DEVSEL# na TRDY#, kwa sababu hiyo daraja hueneza ombi hili lisilojulikana kwa basi ya ISA. Katika utekelezaji mwingine, daraja limeonyeshwa wazi kwa ubaguzi na kueneza rejista ya palette inaandika kwa mabasi mengine.

6.2.11. Ufikiaji wa programu kwa nafasi ya usanidi na kizazi cha vitanzi maalum

Kwa kuwa nafasi ya usanidi wa PCI ni tofauti, utaratibu maalum unapaswa kuletwa kwenye daraja kuu ili kuipata kwa kutumia amri za processor, ambazo "zinaweza" tu kufikia kumbukumbu au I / O. Utaratibu huo hutumiwa kuzalisha mizunguko maalum. Kwa kompyuta zinazoendana na PC, mifumo miwili hutolewa, ambayo ya kwanza pekee huhifadhiwa katika vipimo 2.2 (Mfumo wa Usanidi #1). Nambari ya utaratibu inayotumiwa na ubao wa mama maalum inaweza kupatikana kwa kupiga PCI BIOS.

Mizunguko ya usanidi inaelekezwa kwa kifaa mahususi (chipu ya PCI) ambayo ishara ya sampuli ya IDSEL (thamani moja) lazima itengenezwe. Nambari ya kazi na anwani ya rejista hutatuliwa na kifaa yenyewe. Kwa kuwa ishara ya IDSEL inatambulika na kifaa katika awamu ya anwani tu, hutumia usimbaji wa nafasi katika mistari ya biti muhimu zaidi za basi la AD (nafasi ya usanidi ya vifaa vyote inachukua sehemu ndogo tu ya nafasi na 32-bit. kuhutubia). Kwenye mistari hii, katika awamu ya anwani ya simu ya usanidi kunaweza kuwa na moja tu, iliyobaki ni sifuri. Kwa hivyo, kifaa kimoja tu kitachaguliwa na ishara ya IDSEL.

Kwa uendeshaji wa utaratibu namba 1 Lango la biti 32 zilizo na anwani 0CF8H na 0CFCh, zilizojumuishwa kwenye daraja kuu, zimehifadhiwa katika nafasi ya I/O. Ili kufikia nafasi ya usanidi, anwani ya 32-bit imeingizwa kwenye bandari ya CONFIG_ADDRESS (RW, anwani CF8h), iliyosifiwa kwa mujibu wa Mtini. 6.9, a. Baada ya kuingia anwani, kwa kufikia bandari ya CONFIG_DATA (RW, CFCh anwani), unaweza kusoma au kuandika yaliyomo kwenye rejista ya usanidi inayohitajika. Katika rejista ya CONFIG_ADDRESS, bit 31 inawezesha uundaji wa usanidi na vitanzi maalum. Kulingana na nambari ya basi iliyoainishwa kwenye rejista hii, daraja kuu hutoa moja ya aina mbili za vitanzi vya usanidi.

Ili kufikia kifaa kilicho kwenye basi ya sifuri (iliyounganishwa na daraja kuu), mzunguko wa aina 0 hutumiwa (bits 1:0=00). Daraja kuu huamua shamba la nambari ya kifaa katika msimbo wa nafasi uliowekwa kwenye mstari wa AD; idadi ya kazi iliyoshughulikiwa, anwani ya rejista na bits 1: 0 = 00 hupitishwa kwa uwazi kwa basi (Mchoro 6.9, b). Kifaa 0 kinalingana na bit AD11, kifaa 1 hadi AD12, kifaa 20 hadi AD31. Kwa kuwa kifaa cha sifuri ni daraja kuu, ambalo hufanya decoding, thamani moja AD11 katika mzunguko wa aina 0 sio pato kwa basi. Vifaa vya PCI vilivyo kwenye chip kuu ya daraja vinaweza kutumia nambari 21-31, ambazo hakuna mistari ya kutosha ya AD. Kwenye ubao wa mfumo, ingizo la IDSEL la kila slot au chip ya kifaa cha PCI imeunganishwa kwenye mstari wake wa anwani. Kama sheria, nafasi zimeunganishwa kuanzia mstari wa AD31 (na "chini"), chips za kifaa cha PCI ziko kwenye ubao wa mama zimeunganishwa kuanzia AD12 (na "juu"), lakini utaratibu unaweza kuwa tofauti. Mzunguko wa aina 0 hupuuzwa na madaraja mengine yote yaliyounganishwa na basi sifuri.

Ili kufikia kifaa kilicho kwenye basi isiyo ya sifuri, kitanzi cha aina ya 1 hutumiwa. Hapa, daraja kuu huhamisha sehemu ya anwani ya rejista ya CONFIG_ADDRESS kwa basi kuu ya PCI, kusafisha bits muhimu zaidi (31:24) na kuweka aina "01" katika bits 1: 0 (Mchoro 6.9, c). Daraja, likiwa limetambua idadi ya basi linalounganisha, hupitisha muamala kwa basi hili, likiweka sehemu ya nambari ya kifaa kuwa msimbo wa nafasi (kama daraja kuu lilivyofanya kwa basi lake) na kusafisha bits za AD.

Mchele. 6.9. Kushughulikia mizunguko ya usanidi: a - muundo wa rejista ya CONFIG_ADDRESS, b - umbizo la anwani kwenye basi katika aina ya mzunguko 0, c - umbizo la anwani kwenye basi katika aina ya mzunguko wa 1.

Ikiwa mzunguko wa usanidi hauonekani na kifaa chochote, madaraja yanaweza kushughulikia hali hii kwa njia mbili: kujiandikisha kutokuwepo kwa kifaa (Mwalimu wa Kuondoa utafanya kazi) au kufanya shughuli za uvivu. Hata hivyo, kwa hali yoyote, kusoma rejista ya usanidi wa kifaa kisichokuwepo (kazi) inapaswa kurudisha thamani FFFFFFFFh (hii itakuwa habari salama, kwa kuwa itatoa thamani ya kitambulisho cha kifaa isiyo sahihi).

Ikiwa daraja kuu linaunganisha mabasi kadhaa ya rika, basi moja yao imeteuliwa kwa masharti kama kuu, ili mantiki hapo juu ihifadhiwe. Ili usiwe na wasiwasi juu ya kusoma topolojia ya basi, ni rahisi kwa programu kutumia simu za PCI BIOS kwa simu za usanidi, ambazo zinapatikana kwa njia zote za processor (hakuna haja ya kuongeza utendaji hapa, kwani simu hizi hazifanyiki sana. mara nyingi).

Mzunguko maalum inayozalishwa wakati wa kuandika kwa CONFIG_DATA, wakati katika rejista ya CONFIG_ADDRESS bits zote ni moja au sifuri, idadi ya basi ambayo mzunguko huzalishwa inatajwa na bits. Katika mzunguko maalum, maelezo ya anwani hayapitishwa (yanatangazwa), lakini kwa kutaja nambari ya basi unaweza kudhibiti usambazaji wake. Ikiwa mwenyeji atatoa mzunguko maalum na anwani ya basi sifuri, basi mzunguko huu utatoka hadi kwa basi kuu kama mzunguko wa aina 0 na hautaenezwa kwa madaraja mengine yote. Ikiwa matangazo kamili yanahitajika, basi mwenyeji lazima aandike anwani ya basi isiyo ya sifuri; basi mzunguko maalum utaingia kwenye basi kuu na aina ya 1, na madaraja mengine yote yatapita kwenye mabasi yao. Kitanzi maalum kinachozalishwa na bwana wa basi hutumika tu kwenye basi la kifaa hicho na hakienezwi kwenye madaraja. Iwapo utangazaji kamili unahitajika, bwana huyu lazima atengeneze kitanzi maalum kwa kuandika kwenye rejista za CONFIG_ADDRESS na CONFIG_DATA, akibainisha nambari ya basi isiyo ya sufuri.

Kwa uendeshaji wa utaratibu namba 2 bandari mbili za 8-bit zilizo na anwani 0CF8H na 0CFAH, zilizojumuishwa kwenye daraja kuu, zimehifadhiwa katika nafasi ya I/O. Utaratibu huu hutumia ramani kutoka kwa nafasi ya usanidi wa kifaa cha PCI hadi eneo la C000-CFFF la nafasi ya I/O. Kwa kuwa eneo hili (bandari za 4K) haitoshi kuonyesha nafasi ya usanidi wa vifaa vyote kwenye mabasi yote ya PCI, utengenezaji wa anwani unafanywa kwa njia tata sana. Katika rejista ya CSE (Kuwezesha Nafasi ya Usanidi) yenye anwani 0CFSh, bits 7:4 ndio kuwezesha ramani: wakati ufunguo ni sifuri, eneo la C000-CFFFh hubakia kuwa sehemu ya kawaida ya nafasi ya I/O, na ikiwa sivyo. -sifuri, imechorwa kwa nafasi ya usanidi. Biti hubeba nambari ya chaguo za kukokotoa ambapo simu zinashughulikiwa. Thamani moja ya biti 1 husababisha uundaji wa mzunguko maalum (Special Cycle Wezesha, SCE). Wakati wa kufikia nafasi ya usanidi wa kifaa cha basi sifuri, kusoma au kuandika neno maradufu kwenye bandari kwenye anwani C000-CFFCh hutengeneza kitanzi cha usanidi ambapo biti kutoka kwa anwani ya bandari hutumwa kwa basi la AD kama fahirisi ya rejista ya nafasi ya usanidi. , na biti zimeamuliwa kuwa msimbo wa uteuzi wa kifaa (mstari wa IDSEL) kwenye mistari ya AD. Nambari ya kazi kwenye mstari wa AD inatoka kwenye rejista ya CSE, mistari ya AD ni sifuri. Ili kufikia vifaa vya basi visivyo na sufuri, tumia elekeza upya rejista(Rejesta ya Mbele) yenye anwani 0CFAH, ambamo nambari ya basi imewekwa (rejista hii imewekwa upya hadi sifuri baada ya kuwekwa upya). Ikiwa nambari ya basi sio sifuri, basi mzunguko wa aina 1 huzalishwa (tazama Mchoro 6.9, c), ambayo nambari ya kazi inatoka kwenye rejista ya CSE, bits 4 za chini za nambari ya kifaa hutoka kwenye bits za anwani ( AD15 = 0), na nambari ya basi inatoka kwa uelekezaji wa rejista (bits AD=01 na AD=0 huzalishwa katika maunzi).

Ili kuzalisha mzunguko maalum kwa kutumia utaratibu huu, ufunguo usio na sifuri, nambari ya kazi 111 na SCE=1 imewekwa kwenye rejista ya CSE, baada ya hapo uandishi unafanywa kwa anwani ya bandari CF00h. Kulingana na yaliyomo kwenye rejista ya kuelekeza upya, kitanzi maalum cha aina 0 au aina ya 1 kitatolewa (tazama hapo juu).

6.2.12. Usanidi wa kifaa

Kiwango kinajumuisha uwezo wa kusanidi kiotomatiki rasilimali za mfumo (kumbukumbu na nafasi za I/O na kukatiza mistari ya ombi). Usanidi wa kifaa otomatiki (uteuzi wa anwani na usumbufu) unasaidiwa na BIOS na unazingatia teknolojia ya PnP. Kiwango cha PCI kinafafanua nafasi ya usanidi kwa kila nafasi ya hadi rejista 256 (8-bits), isiyowekwa kwa nafasi ya kumbukumbu au nafasi ya I/O. Zinafikiwa kupitia mizunguko maalum ya basi Usanidi wa Kusoma na Kuweka Usanidi, unaozalishwa kwa kutumia moja ya njia zilizoelezwa hapo juu. Katika nafasi hii kuna maeneo ambayo yanahitajika kwa vifaa vyote, na maalum. Kifaa fulani hakiwezi kuwa na rejista katika anwani zote, lakini lazima kiwe na ukamilishaji wa kawaida kwa shughuli zinazoelekezwa kwao. Katika kesi hii, kusoma rejista ambazo hazipo zinapaswa kurudisha sufuri, na uandishi unapaswa kufanywa kama operesheni isiyo na maana. Baada ya kuweka upya kwa bidii (au kuwasha), vifaa vya PCI havijibu kumbukumbu na ufikiaji wa nafasi ya I/O na vinapatikana tu kwa usanidi wa kusoma na kuandika. Katika utendakazi huu, vifaa huchaguliwa kulingana na mawimbi mahususi ya IDSEL na kuripoti mahitaji ya rasilimali na chaguo zinazowezekana za usanidi. Baada ya ugawaji wa rasilimali unafanywa na programu ya usanidi (wakati wa mtihani wa POST), vigezo vya usanidi vimeandikwa kwenye rejista za usanidi wa kifaa. Tu baada ya hii inawezekana kufikia vifaa kwa kutumia amri za kufikia kumbukumbu na bandari za I / O. Ili kila wakati uweze kupata usanidi unaoweza kutekelezeka, rasilimali zote zinazochukuliwa na kadi lazima zihamishwe katika nafasi zao. Kwa kadi za kazi nyingi, kila chaguo la kukokotoa lazima liwe na nafasi yake ya usanidi.

Nafasi ya usanidi wa kifaa huanza na kichwa cha kawaida, ambacho kina vitambulisho vya mtengenezaji, kifaa na darasa lake, pamoja na maelezo ya rasilimali za mfumo zinazohitajika na zilizochukuliwa. Baada ya kichwa kunaweza kuwa na rejista maalum za kifaa; wanaweza kuchukua anwani za nafasi ya usanidi ndani ya 40-FFh.

Muundo wa kichwa unaonyeshwa kwenye Mtini. 6.10. Nyuga zinazohitajika kwa vifaa vyote zimeangaziwa kwa rangi ya kijivu.

Mchele. 6.10. Umbizo la Kichwa cha Kichwa cha Kifaa cha PCI

Imeorodheshwa hapa chini nyanja za kitambulisho kusoma tu.

Kitambulisho cha Kifaa - kitambulisho cha kifaa kilichotolewa na mtengenezaji.

Kitambulisho cha Muuzaji ni kitambulisho cha muuzaji chipu cha PCI kilichotolewa na PCI SIG. Kitambulishi FFFFh ni batili; thamani hii lazima irejeshwe wakati wa kusoma nafasi ya usanidi wa kifaa ambacho hakipo.

Kitambulisho cha marekebisho - toleo la bidhaa lililotolewa na mtengenezaji. Inatumika kama kiendelezi kwa sehemu ya Kitambulisho cha Kifaa.

Aina ya Kichwa - aina ya kichwa (bits 6:0), ambayo huamua umbizo la seli katika safu ya 10-3Fh na kubeba sifa ya kifaa chenye kazi nyingi (ikiwa biti 7=1). Takwimu inaonyesha muundo wa kichwa cha aina 0, ambacho ni maalum kwa vifaa vya PCI. Aina ya 01 inahusu madaraja ya PCI-PCI; Aina ya 02 inarejelea madaraja ya CardBus.

Msimbo wa Hatari - msimbo wa darasa unaofafanua kazi kuu ya kifaa, na wakati mwingine interface yake ya programu (angalia sehemu ya 6.2.13). Byte ya juu (anwani 0Bh) inafafanua darasa la msingi, byte ya kati - subclass, byte ya chini - interface ya programu (ikiwa ni sanifu).

Sehemu za kichwa zilizobaki ni rejista za kifaa, kuruhusu kuandika na kusoma.

Amri (RW) - rejista ya amri ambayo inadhibiti tabia ya kifaa kwenye basi ya PCI. Rejesta inaruhusu kuandika na kusoma. Baada ya kuweka upya kwa bidii, bits zote za rejista (isipokuwa kwa ubaguzi maalum) zinafutwa hadi sifuri. Madhumuni ya bits za rejista ya amri:

Bit 0 - Nafasi ya IO - ruhusa ya kujibu maombi kwa nafasi ya I / O;

Bit 1 - Nafasi ya Kumbukumbu - ruhusa ya kujibu upatikanaji wa nafasi ya kumbukumbu;

Bit 2 - Mwalimu wa Basi - ruhusa ya kufanya kazi na mwanzilishi (katika hali ya udhibiti wa basi);

Bit 3 - Mizunguko Maalum - Wezesha majibu kwa mizunguko maalum;

Bit 4 - Kuandika na Kubatilisha kuwezesha - ruhusa ya kutumia amri za "andika bila uhalali" wakati wa kufanya kazi kama kianzisha (ikiwa biti imefutwa, basi uandishi wa kumbukumbu wa kawaida unapaswa kutumika badala ya amri hizi);

Bit 5 - VGA palette snoop - ruhusa ya kufuatilia kuandika kwa rejista ya palette;

Bit 6 - Jibu la Hitilafu ya Usawa - kuruhusu jibu la kawaida (toa ishara ya PERR#) kwa hitilafu ya usawa iliyogunduliwa (ikiwa biti imefutwa, kifaa kinapaswa tu kurekodi hitilafu katika rejista ya hali, wakati kifaa hutoa usawa kila wakati. );

Bit 7 - Udhibiti wa Hatua - uwezo wa kubadili hatua kwa hatua (anwani / hatua ya data) ya mistari (ikiwa kifaa hakifanyi hivi, sehemu ya rejista "huuzwa" hadi "0", ikiwa inafanya kila wakati - kwa " 1", kifaa kilicho na uwezo huu wa kuweka upya seti hii ni "1");

Bit 8 - SERR# Wezesha - wezesha kizazi cha ishara ya hitilafu ya SERR# (hitilafu ya usawa wa anwani inaripotiwa wakati biti hii na kidogo 6=1);

Bit 9 - Kurudi kwa Nyuma kwa Haraka Wezesha (hiari) - inaruhusu kifaa kikuu kutumia simu za karibu za haraka kwa vifaa tofauti (ikiwa biti imefutwa, simu za haraka zinaruhusiwa tu kwa shughuli na wakala mmoja);

Bits 10-15 zimehifadhiwa.

Hali ni rejista ya hali ambayo, pamoja na kusoma, inaweza pia kuandikwa. Hata hivyo, kurekodi kunafanywa hasa - inaweza kutumika tu kufuta bits, lakini si kuziweka. Biti zilizo alama RO ni za kusomwa tu. Wakati wa kuandika, nafasi za bits zinazoweza kuwekwa upya zimewekwa kwa maadili moja. Kusudi la biti za rejista ya hali:

Bits 0-3 - hifadhi;

Bit 4 - Orodha ya Uwezo (RO, hiari) - dalili ya kuwepo kwa kiashiria cha uwezo mpya (kukabiliana na 34h katika kichwa);

Bit 5 - 66 MHz Uwezo (RO, hiari) - inasaidia mzunguko wa 66 MHz;

Bit 6 - hifadhi;

Bit 7 - Uwezo wa Kurudisha nyuma kwa haraka (RO, hiari) - usaidizi wa shughuli za karibu za haraka (haraka-kurudi nyuma) na vifaa tofauti;

Bit 8 - Hitilafu ya Usawa wa Data ya Mwalimu (tu kwa vifaa vilivyo na udhibiti wa moja kwa moja) - huwekwa wakati kifaa kilicho na bit 6 kilichowekwa kwenye rejista ya amri, kuwa mwanzilishi, yenyewe iliingia (wakati wa kusoma) au iligundua (wakati wa kuandika) ishara ya PERR # ;

Bits 10:9 - Muda wa DEVSEL - kasi ya sampuli: 00 - haraka, 01 - kati, 10 - chini (inafafanua jibu la polepole zaidi la DEVSEL# kwa amri zote isipokuwa Usanidi wa Kusoma na Kuandika kwa Usanidi);

Bit 11 - Ishara ya Kuacha Lengwa - Imewekwa na kifaa lengwa wakati inakataa shughuli;

Kidogo cha 12 - Uondoaji wa Lengo Lililopokelewa - umewekwa na mwanzilishi wakati inatambua shughuli iliyokataliwa;

Bit 13 - Kupokea Mimba ya Mwalimu - imewekwa na bwana wakati inakataa shughuli (isipokuwa kwa kitanzi maalum);

Bit 14 - Hitilafu ya Mfumo wa Ishara - iliyowekwa na kifaa kilichotuma ishara ya SERR #;

Bit 15 - Hitilafu Iliyogunduliwa ya Usawa - Imewekwa na kifaa ambacho kiligundua hitilafu ya usawa.

Saizi ya Mstari wa Cache (RW) - saizi ya mstari wa cache (0-128, maadili yanayoruhusiwa ni 2n, mengine yanachukuliwa kama 0). Kwa kutumia kigezo hiki, mwanzilishi huamua ni amri gani ya kusoma ya kutumia (kusoma mara kwa mara, kusoma kwa mstari, au kusoma nyingi). Mtumwa hutumia chaguo hili kusaidia kuvuka mipaka ya mstari kwa ufikiaji wa kumbukumbu iliyopasuka. Baada ya kuweka upya, rejista imewekwa upya hadi sifuri.

Kipima Muda cha Kuchelewa (RW) - thamani ya kipima muda cha kuchelewa (angalia sehemu ya 6.2.4) katika mizunguko ya saa ya basi. Biti zingine haziwezi kuruhusu mabadiliko (kawaida bits tatu muhimu hazijabadilishwa, kwa hivyo kipima saa kimepangwa katika nyongeza za mzunguko-8).

BIST (RW) - rejista ya udhibiti wa kujipima iliyojengwa. Madhumuni ya bits za rejista:

Bit 7 - uwezo wa BIST;

Bit 6 - kuanza kwa mtihani: kuandika moja huanzisha mtihani, baada ya kukamilika kifaa kinaweka upya kidogo (mtihani lazima ukamilike kwa si zaidi ya 2 s);

Bits 5:4 - hifadhi (0);

Bits 3:0 - msimbo wa kukamilisha jaribio: 0 - jaribio lilifanikiwa.

Kielekezi cha CIS cha Kadi (hiari) - kielekezi kwa muundo wa kifafanuzi wa Basi la Kadi kwa kifaa cha pamoja cha PCI+Kadi ya Basi.

Mstari wa Kukatiza (RW) - kukataza nambari ya pembejeo ya mtawala kwa mstari wa ombi uliotumiwa (0-15 - IRQ0-IRQ15, 255 - haijulikani au haijatumiwa).

Pini ya kukatiza (RO) - anwani inayotumiwa kuomba kukatiza: 0 - haijatumika, 1 - INTA#, 2 - INTB#, 3 - INTC#, 4 - INTD#, 5-FFh - hifadhi.

Min_GNT (RO) - muda mdogo ambao kifaa kikuu kinapaswa kutolewa kwa udhibiti wa basi kulingana na mzunguko wa 33 MHz, katika vipindi vya 0.25 μs.

Max_Lat (RO) - ucheleweshaji wa juu unaoruhusiwa katika kutoa kifaa kikuu na upatikanaji wa basi, katika vipindi vya 0.25 μs (0 - hakuna mahitaji maalum).

Kitambulisho cha mfumo mdogo (kilichowekwa na mtengenezaji) na Kitambulisho cha Muuzaji wa Mfumo Ndogo (mtengenezaji hupokea kutoka kwa PCI SIG) - vitambulisho vinavyokuruhusu kutambua kwa usahihi kadi na vifaa (kadi kadhaa zilizo na kifaa vinavyolingana na Kitambulisho cha Kifaa cha mtengenezaji na vitambulisho vya Muuzaji vinaweza kusakinishwa kwenye mfumo. ) Sehemu ya 2Ch ina kitambulisho cha mtengenezaji wa kadi ya PCI (inaweza kuambatana na thamani iliyo katika sehemu 0 ikiwa kampuni itazalisha chips na kadi zote mbili).

Pointer ya Uwezo (CAP_PTR) - pointer kwa orodha ya uwezo (mali) iliyoelezwa katika nafasi ya usanidi (bits 1: 0=00). Kila kipengele cha orodha huanza na byte ya kitambulisho cha aina ya kipengele (CAP_ID, iliyofafanuliwa na PCI SIG), ikifuatiwa na kielekezi kwa kipengele cha orodha kinachofuata (kielekezi kisicho na maana ni kimaliza cha orodha), ikifuatiwa na baiti zinazoelezea sifa zenyewe. Vipengele vyote vimepangiliwa kwenye mpaka wa maneno mawili.

Rejesta za Anwani za Msingi - anwani za msingi za maeneo ya kumbukumbu na bandari za I/O. Kwa maeneo ya kumbukumbu kidogo 0=0. Bits 2: 1 - aina: 00 - ziko katika nafasi ya anwani ya 32-bit, 10 - katika nafasi ya anwani ya 64-bit (katika kesi hii, rejista inapanuliwa na neno lifuatalo la 4-byte), 01 na 11 - - hifadhi (01 katika matoleo ya awali yalikusudiwa kwa kumbukumbu ndani ya megabyte ya kwanza). Bit 3 (Prefetchable) imewekwa ikiwa kumbukumbu ya kusoma haina kusababisha madhara, byte zote zinasomwa bila kujali ishara za BE # na kuandika kwa mtu binafsi kunaweza kuunganishwa (yaani, ni kumbukumbu safi); vinginevyo biti husafishwa. Bits 31:4 - anwani ya kumbukumbu ya msingi. Kwa bandari, kidogo 0=1; kidogo 1=0 (imehifadhiwa); bits 31:2 - anwani ya msingi ya kizuizi cha bandari. Mpango wa usanidi unaweza kuamua ukubwa wa maeneo yanayohitajika. Ili kufanya hivyo, baada ya kuweka upya vifaa, lazima isome na kuhifadhi maadili ya anwani za msingi (hizi zitakuwa anwani chaguo-msingi), andika FFFFFFFh kwa kila rejista na usome thamani yao tena. Katika maneno yaliyopokelewa, unahitaji kufuta bits za aina (bits 3: 0 kwa kumbukumbu na bits 1: 0 kwa I / O), geuza na kuongeza neno la 32-bit - matokeo yatakuwa urefu wa eneo hilo. (puuza bits 31:16 kwa bandari). Njia hiyo inadhania kuwa urefu wa eneo unaonyeshwa kama 2n na eneo limepangwa kawaida.

Upanuzi Anwani ya Msingi ya ROM - anwani ya msingi ya ROM ya usaidizi wa programu ya kadi. Bit 0 - ruhusa ya kutumia ROM; bits 1-10 - hifadhi; bits 11–31 ndio anwani msingi. Ukubwa wa ROM imedhamiriwa kwa njia sawa na katika rejista za anwani za msingi (tazama hapo juu). Upatikanaji wa ROM inawezekana tu wakati matumizi ya kumbukumbu yamewezeshwa (bit 1 katika rejista ya amri).

6.2.13. Madarasa ya Kifaa cha PCI

Sehemu muhimu ya vipimo vya PCI ni uainishaji wa vifaa na dalili ya msimbo wa darasa katika nafasi yake ya usanidi (3 bytes Class Code). Byte ya juu inafafanua darasa la msingi, byte ya kati - subclass, byte ya chini - kiolesura cha programu(ikiwa ni sanifu). Nambari ya darasa inakuwezesha kutambua kuwepo kwa vifaa fulani katika mfumo, hii inaweza kufanyika kwa kutumia PCI BIOS. Kwa vifaa vya kawaida (kwa mfano, 01:01:80 - kidhibiti cha IDE au 07:00:01 - 16450 bandari ya serial), programu ya "inayopendezwa" inaweza kupata kifaa kinachohitajika na kuchagua chaguo sahihi la kiendeshi. Kiainisho kinaamuliwa na shirika la PCI SIG na husasishwa mara kwa mara kwenye tovuti www.pcisig.com. Thamani za uga zisizo na maana huwa kutoa maelezo yasiyoeleweka zaidi. Subclass 80h inarejelea "vifaa vingine."

6.2.14. BIOS ya PCI

Ili kuwezesha mwingiliano na vifaa vya PCI, kuna vitendaji vya ziada vya BIOS vinavyopatikana kutoka kwa njia za kichakataji halisi na zilizolindwa. Vitendaji hivi, vilivyoundwa kufanya kazi na nafasi ya usanidi na kutoa vitanzi maalum vya PCI, vinapaswa kuungwa mkono kwa sababu vitanzi vya ufikiaji wa usanidi, kama kitanzi maalum, hutekelezwa kwa njia maalum (tazama hapo juu). Kazi zilizobaki za kuingiliana na vifaa kupitia kumbukumbu zao na nafasi za I / O, pamoja na ushughulikiaji wa usumbufu, hauhitaji msaada kutoka kwa BIOS, kwa vile zinafanywa moja kwa moja na amri za processor. Kazi ya kuangalia uwepo wa PCI BIOS inakuwezesha kuamua taratibu zinazopatikana za kuzalisha mizunguko hii maalum, na, kwa kujua uendeshaji wao, programu haiwezi kutumia simu za PCI BIOS katika siku zijazo.

Programu zinazotumia vipengele vya PCI BIOS zinaweza kutafuta vifaa vinavyokuvutia kwa vitambulisho au misimbo ya darasa. Ikiwa kazi ni "kusajili upya" vifaa vilivyosakinishwa, basi inaweza kutatuliwa kwa kusoma maelezo ya usanidi wa kazi zote za vifaa vyote kwenye mabasi yote - hii ni haraka kuliko kupitia mchanganyiko wote unaowezekana wa vitambulisho au madarasa ya kanuni. Kwa vifaa vilivyopatikana, mipango inapaswa kuamua mipangilio halisi kwa kusoma rejista katika nafasi ya usanidi, kwa kuzingatia uwezekano wa kusonga rasilimali katika nafasi nzima na hata kati ya kumbukumbu na nafasi za I / O.

Vitendaji vya PCI BIOS kwa kiolesura cha hali halisi ya biti 16, V86, na hali iliyolindwa ya biti 16 huitwa kupitia ukatizaji wa Int 1Ah. Nambari ya chaguo la kukokotoa imebainishwa inapoitwa kwenye rejista ya AX. Pia inawezekana kuiga ukatizaji kiprogramu kwa simu ya umbali mrefu kwenye anwani ya mahali ulipo 000FFE6EH (mahali pa kawaida pa kuingilia kwa kidhibiti cha Int 1Ah) kwa kusukumwa awali kwa rejista ya bendera kwenye rafu. Kwa simu za hali iliyolindwa ya 32-bit, utendakazi wote huu huitwa kupitia mahali pa kuingilia kupatikana kupitia saraka ya huduma ya 32-bit, huku ugawaji wa rejista za ingizo na pato na bendera ya CF huhifadhiwa. Kabla ya kutumia kiolesura cha 32-bit, lazima kwanza upate saraka yake na uhakikishe kuwa huduma za PCI zinapatikana. Simu zinahitaji mrundikano wa kina (hadi baiti 1024).

Vipengele vya PCI BIOS:

AX = B101h - kuangalia uwepo wa PCI BIOS;

AX = B102h - tafuta kifaa kwa kitambulisho;

AX = B103h - tafuta kifaa kwa kanuni ya darasa;

AX = B106h - kizazi cha mzunguko maalum wa PCI;

AX = B108, B109 na B10Ah - soma byte, neno na neno mbili la nafasi ya usanidi wa kifaa cha PCI;

AX = Brahe, B10C, B10Dh - byte ya kurekodi, neno na neno mara mbili la nafasi ya usanidi wa kifaa cha PCI.

6.2.15. Kutengeneza vifaa vyako vya PCI

Wakati wa kuzingatia itifaki ya PCI, inakuwa wazi kuwa kuunda vifaa vyako vya PCI kulingana na mantiki ya ujumuishaji wa kiwango cha chini na cha kati ni kazi isiyo na shukrani. Itifaki ya basi yenyewe sio ngumu sana, lakini kutekeleza mahitaji ya rejista za usanidi ni shida. Vifaa vya serial PCI, kama sheria, ni chip moja - interface na sehemu za kazi za kifaa ziko kwenye chip moja. Maendeleo ya microcircuits vile ni ghali sana na ina maana tu na matarajio ya uzalishaji wa wingi. Ili kuunda sampuli za maendeleo na bidhaa ndogo, makampuni kadhaa huzalisha chips za interface za PCI kwa madhumuni mbalimbali. Kwa upande wa PCI, karibu chipsi hizi zote zinaauni shughuli zinazolengwa moja; miundo ya hali ya juu pia huruhusu mizunguko ya kundi. Microcircuits ngumu zaidi pia hufanya kazi za bwana wa basi, kuandaa njia za DMA za kubadilishana na kumbukumbu ya mfumo. Ubadilishanaji kupitia chaneli hizi unaweza kuanzishwa kiprogramu kutoka kwa upande wa seva pangishi (mwenyeji iliyoanzishwa DMA) na kutoka upande wa pembeni wa chipu (DMA inayolengwa iliyoanzishwa), kulingana na uwezo wa chipsi. Kwenye upande wa pembeni kuna interfaces za kuunganisha microcircuits za pembeni, microcontrollers na familia za kawaida za microprocessors, zima na ishara. Uchaguzi mpana wa microcircuits unawasilishwa kwenye tovuti www.plxtech.com; makampuni mengine pia yanafanyia kazi mada hii.

Suluhisho la kuvutia ni kujenga kiolesura cha PCI kwenye mantiki ya FPGA inayoweza kusanidiwa (Field Programmable Gate Array). Hapa, msingi wa PCI, pamoja na lengo na kazi za kifaa kikuu, huchukua milango elfu 10-15, kulingana na kazi zinazohitajika (tazama www.xilink.com, www.altera.com). Vipande vya FPGA vinapatikana na lango 20, 30 na 40 elfu - sehemu iliyobaki inaweza kutumika kutekeleza sehemu ya kazi ya kifaa, buffers za FIFO, nk.

Unaweza kuhamisha miundo haraka kutoka kwa basi ya ISA hadi PCI kwa kutumia chips daraja za PCI-ISA (tazama, kwa mfano, www.iss-us.com).