CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Duomenø ávedimo ir išvedimo organizavimas
Dirbant bet kuriai MPS, nuolat vyksta duomenø ávedimas ir išvedimas tiek sistemos viduje, tiek ir tarp sistemos bei išorës. Duomenø mainø organizavimas yra viena iš svarbiausiø sistemos darbo grandžiø.
Duomenø ávedim¹ ir išvedim¹ tarp sistemos bei išorës atlieka Iv. – Iš. posistemë (Iv. – Iš. Á.M). Ji atsakinga už ryšá tarp MPS ir išoriniø (periferiniø) árenginiø ir kai kuriais atvejai netgi apsprendžia periferiniø árenginiø organizacij¹. Programuotojo požiûriu, komandiniame lygmenyje, Iv. – Iš. posistemê galima ásivaizduoti, kaip tam tikr¹ IOSEG ir eilê komandø, kuriomis valdomi duomenø mainai su šia sritimi (IOSEG + Komandos). Daugeliu atvejø IOSEG turi baitinê organizacija, taèiau galimi ir didesni dariniai (DW, ar keletas baitø).
Mainø metu tarp sistemos ir periferinio árenginio perduodami dviejø rûšiø duomenys:
tarnybiniai duomenys;
informacijos duomenys;
Tarnybiniai duomenys juda dviem kryptimis:
Iš MPS á periferiná árenginá;
Iš periferinio árenginio á MPS.
Pirmosios krypties tarnybiniai duomenys vadinami valdymo žodžiu CW (angl. Control Word). Jie iššaukia (inicijuoja) veiksmus, susijusius su duomenø mainais.
Antraja kryptimi perduodami tarnybiniai duomenis vadinami bûsenos žodžiu SW (angl. Status Word). Šie duomenys informuoja sistem¹ apie periferinio árenginio bûsen¹.
Informacijos duomenys gali bûti perduodami abiem kryptimis, kaip duomenø žodis DW (angl. Data Word).
Duomenø mainai gali bûti:
Programiniai;
Pertrauktiniai;
Tiesioginiai.
Duomenø mainai, kuriuos iššaukia (inicijuoja) ir betarpiškai pagal program¹ vykdo MP vadinamas programiniais duomenø mainais. Kartais šis bûdas dar vadinamas programiškai valdomais duomenø mainais. Toks duomenø mainø bûdas nëra vienintelis, taèiau jis pakankamai efektyvus (nedidelës techniniø priemoniø s¹naudos), todël plaèiai naudojamas.
Programiniai duomenø mainai gali bûti:
Tiesioginiai (bes¹lyginiai);
S¹lyginiai:
a) cikliniai;
b) cikliniai laikiniai;
c) necikliniai.
Tiesioginiai (bes¹lyginiai) programiniai duomenø mainai yra paprasèiausi. Jie naudojami paprastiems periferiniams árenginiams ir vyksta, nepriklausomai nuo periferinio árenginio bûsenos. (pvz. duomenø (bito) išvedimas ájungti šviesos diod¹ arba duomenø (bito) ávedimas nustatyti mygtuko bûsen¹). Šio duomenø bûdo algoritmas pateiktas 20 pav.
20 pav. Tiesioginiai (bes¹lyginiai) programiniai duomenø mainai
Tiesioginiuose duomenø mainuose naudojami tik informacijos duomenys ir nenaudojami tarnybiniai, nes periferiniai árenginiai visada pasirengê dalyvauti duomenø mainuose.
Paprasèiausiai duomenø baitas ávedamas ir išvedamas, kreipiantys á IOSEG srities baitinius portus. Ávedimo ir išvedimo portø funkcinë schema pateikta 21 pav.
Informacijos
duomenims ávesti (angl. DI – Data Input) naudojamas trijø
bûsenø ávedimo formuotuvas (angl. BFI – Buffer Input), kuriame
duomenis neásimenami. Duomenis išvedami (angl. DO – Data Output) juos
árašant á registr¹ (angl. RG - Register). BFI ir RG adresuoti
naudojamas dešifratorius DC, kurio áëjime veikia AB signalai ir, kai
kada CB signalai, nurodantys duomenø ilgá (baitas, žodis, dvigubas
žodis). DC išëjimo CSD ir IORC, IOWC signalais, panaudojant loginius ARBA
elementus, aktyvuojami ávedimo arba išvedimo portai. Vienu metu veikia
(aktyvus) tik vienas portas, todël abu portai gali turëti vienodus
adresus (vienas CSD signalas, bet skirtingi IORC, IOWC ir RDD bei WRD
signalai). Formuotuvø ir registrø schemos yra pakankamai
greitaeigës, kad galëtø veikti greièiu, kurá nustato MP (SM
sinchroninis darbo režimas). Todël nedidelëse MPS, laikant, kad signalas vis¹ laik¹ aktyvus, jo formavimo loginë schema
nenaudojama (žr. 21 pav.).
21 pav. Ávedimo ir išvedimo portø funkcinë schema
Didinant duomenø mainø patikimum¹, kai naudojamas tiesioginis XACK signalas (loginis 1), jo loginë schema sudaroma pagal ši¹ loginê funkcij¹:
Tais atvejais, kai
sistemoje naudojamas inversinis signalas (loginis 0),
sudarant bendr¹já patvirtinimo signal¹, atskirø
elementø patvirtinimo
signalus patogu sujungti pagal taip vadinam¹ loginê „montažinê ARBA” schem¹. Taip pat tikslinga
atskiras ávedimo (DI) ir išvedimo (DO) linijas sujungti á bendr¹j¹
ávedimo ir išvedimo linij¹ (DIO), nes du kartus sumažëja linijø
skaièius, be to galima skaityti anksèiau išvestus ir saugomus RG, duomenis. Tai gali bûti naudinga testuojant išëjimo port¹ arba
kontroliuojant išvestus duomenis.
Dvikrypèiams duomenø mainams per bendr¹j¹ ávedimo ir išvedimo linij¹ (DIO), plaèiai naudojamas tariamasis (pseudo) dvikryptis portas, kurio funkcinë schema pateikta 22 pav.
22 pav. Pseudo dvikrypèio porto funkcinë schema
22 pav. schemoje RG išëjime prijungtas formuotuvas BFO, turintis atvirojo kolektoriaus išëjimus su rezistoriais RK, kurie gali bûti jungiami BF išorëje arba bûti jo viduje. Išëjimai DO su áëjimais DI sujungti pagal „montažinê ARBA” schem¹. Išvedus á RG aukšto loginio lygio (loginio 1) signalus galima ávesti neiškraipytus informacijos duomenis. Be to, norimos DI linijos gali bûti draudžiamos (maskuojamos, nuolat nustatomas loginis 0), išvedant atitinkamose DO linijose žemo loginio lygio (loginio 0) signalus. Atlikus nedidelius schemos pakeitimus, galima pasiekti, kad dalis DI linijø taps DO linijomis. Pseudo dvikrypèio porto schema yra gana universali, todël plaèiai naudojama vienkristaliuose mikrovaldikliuose.
S¹lyginiai programiniai duomenø mainai yra sudëtingesni, nes jø metu kontroliuojama periferinio árenginio bûsena ir naudojami tarnybiniai duomenys (CW, SW). Dažniausiai tokie duomenø mainai taikomi lëtaeigiams periferiniaims árenginiams, nes MP greitaeigiškumas yra pakankamai didelis. Šiuose duomenø mainuose turi bûti numatytos tam tikros tarnybiniø ir informacijos duomenø perdavimo taisyklës vadinamos mainø protokolu. Šio protokolo detalus aprašymas naudojamas, sudarant duomenø mainø su periferiniai árenginiais programas (paprogrames) vadinamas draiveriais. S¹lyginiuose programiniuose mainuose naudojami šie signalai:
periferinio árenginio pasiruošimo signalas RDY (angl. Ready);
MP patvirtinimo (kvitavimo) signalas ACK (angl. Acknowledgement).
RDY signalus perduoda periferinis árenginys, kai jis yra pasiruošês priimti (RDY INP) arba perduoti (RDY OUT) informacijos duomenis. RDY signalai yra SW sudedamoji dalis.
ACK signalus generuoja MP, informuodamas periferiná árenginá apie informacijos duomenø ávedimo (ACK INP) pabaig¹ arba naujø duomenø išvedimo (ACK OUT) pradži¹. ACK signalai áeina á CW sudëtá. Duomenø mainai, naudojant RDY, ACK signalus vadinami duomenø ávedimu ir išvedimu su kvitavimu.
Tipinës ávedimo ir išvedimo su kvitavimu laikinës diagramos pateiktos 23 pav.
23 pav. Ávedimo, išvedimo ir kvitavimo laikinës diagramos
Duomenø ávedimo procesas prasideda, kai periferinis árenginys nustato, kad MP priëmimas pasibaigês (ACK INP = 0), paruoštus duomenis išveda á DI magistralê, o t1 laiko momentu perduoda RDY OUT = 1. MP atpažysta, kad duomenys paruošti perduoti (RDY OUT = 1) ir juos skaito, vykdydamas skaitymo darbo cikl¹. Pasibaigus ávedimui, MP patvirtina (t2 laiko momentu), kad duomenys ávesti (ACK INP = 1). Periferinis árenginys atpažysta, kad duomenys ávesti, todël t3 laiko momentu baigia duomenø perdavimo proces¹ (RDY OUT = 0). t4 laiko momentu MP atpažysta, kad duomenø perdavimas baigtas ir pabaigia duomenø ávedimo procesa (ACK INP = 0).
Duomenø išvedimo procesas prasideda, kai MP nustato, kad periferinis árenginys pasiruošês priimti duomenis (RDY INP = 1). Vykdomas MP rašymo darbo ciklas, duomenys išvedami á DO magistralê ir t2 laiko momentu MP patvirtina, kad duomenys išvesti (ACK OUT = 1). Periferinis árenginys priima duomenis ir baigês priëmim¹ t3 laiko momentu išveda (RDY INP = 0). MP nustatês, kad periferinis árenginys priëmë duomenis, baigia laiko momentu t4 perdavimo proces¹ (ACK OUT = 0). Tokiu bûdu, naudojant kvitavimo signalus, tikrinant pasiruošim¹ ir patvirtinant duomenø ávedino ir išvedimo pabaig¹ užtikrinami patikimi asinchroniniai duomenø mainai greièiu, kurá nustato periferinys árenginys.
S¹lyginiai cikliniai duomenø mainai vyksta pagal 24 pav. parodyt¹ algoritm¹.
24 pav. S¹lyginiø cikliniø duomenø mainø algoritmas
1 bloke tikrinamas periferinio árenginio pasiruošimas duomenø mainams. Jeigu árenginys nepasiruošês (N), tai pereinama á :M žymës viet¹ ir ciklas kartojamas. Šis ciklas gali têstis begalo ilgai (pvz. periferinis árenginys sugedês). Kai tik árenginys pasiruošês (T), pereinama á 2 blok¹, kuriame vyksta duomenø ávedimas ar išvedimas ir kvitavimas pagal 23 pav. laikines diagramas. Pagrindinis s¹lyginiø cikliniø mainø trûkumas yra galimybë pasireikšti begaliniam ciklui („pakibimui”), kurio metu MP vis¹ darbo laik¹ išnaudoja árenginio pasiruošimui kontroliuoti.
S¹lyginiai cikliniai laikiniai duomenø mainai leidžia išvengti begalinio ciklo. Jø algoritmas pateiktas 25 pav.
25 pav. S¹lyginiø cikliniø laikiniø duomenø mainø algoritmas
Šiame algoritme organizuotas ciklø skaitiklis, kuris skaièiuoja 1 bloke nustatyt¹ Kc ciklø skaièiø. Kai 2 bloke, patikrinus árenginio bûsen¹, jis nepasiruošês, tai 3 bloke Kc mažinamas vienetu, o 4 bloke tikrinamas, ar nepasibaigë nustatytas ciklø skaièius. Jeigu nepasibaigë (N), tai pereinama á žymës :M1 viet¹ ir ciklas kartojamas. Pasibaigus nustatytam ciklø skaièiui (4 bloko išëjimas) arba aptikus, kad árenginys pasiruošês (2 bloko išëjimas) visada ciklas baigiamas (:M2 žymës vieta). Taèiau pirmuoju atveju duomenø mainai neávyksta, o antruoju – vyksta ávedimas arba išvedimas ir kvitavimas (5 blokas).
S¹lyginiai necikliniai duomenø mainai vyksta pagal 26 pav. parodyt¹ algoritm¹.
26 pav. S¹lyginiø necikliniø duomenø mainø algoritmas
Šiame algoritme, skirtingai negu anksèiau išnagrinëtuose, nëra árenginio pasiruošimo tikrinimo ciklo. Pirmasis pasiruošimo tikrinimas 1 bloke baigiasi perëjimu á :M žymës viet¹, kai árenginys nepasiruošês (N) arba, kai pasiruošês (T), vykdomas 2 blokas. Vëliau MP gali grážti ir vël kartoti bandym¹ atlikti s¹lyginá necikliná duomenø ávedim¹ ar išvedim¹ ir kvitavim¹.
Pertrauktiniu duomenø ávedimu ir išvedimu vadinami duomenø mainai, kuriuos iššaukia (inicijuoja) periferinis árenginys, laikinai nutraukiant pagrindinê program¹, vykdant pertraukties aptarnavimo paprogramê (ávedim¹, išvedim¹) ir vël grážtant atgal á pagrindinê program¹ toje vietoje, kur ji buvo nutraukta.
Pertrauktinius duomenø mainus organizuoja pertraukèiø sistema, kuri¹ sudaro:
techninës priemonës;
komandos ir programos valdanèios šias priemones.
Pertrauktiniai duomenø mainai pavaizduoti 27 pav. Prieš pradedant šios rûšies duomenø mainus, pagrindinëje programoje vykdoma pertraukèiø sistemos pradinio nustatymo (inicializacijos), suderinimo procedûra (Pertrauktis leisti). Pabaigus pertrauktis, kartais gali bûti reikalinga speciali procedûra baigianti pertraukèiø sistemos darb¹. Bet kuriuo pagrindinës programos vykdymo momentu, kai periferinis árenginys pasiruošês duomenø mainams, Áv. – Išv.Á. gali inicijuoti pertrauktá (INTR), siøsdamas pertraukties reikalavimo signal¹. Pertrauktis atpažystama (indentifikuojama) ir pradedama tik tam tikru griežtai nustatytu laiko momentu (pabaigus komandos cikl¹, prieš pradedant išrinkimo fazê), nes ji gali prasidëti tik pabaigus vykdyti eilinê komand¹ pagrindinëje programoje.
Pertraukties procesas vyksta taip:
automatiškai ásimenamas (dažniausiai dëklo atmintyje) PC programos skaitiklio turinys (programos nutraukimo vietos arba grážimo adresas, nes priëmus pertraukties reikalavimo signal¹ PC yra po pabaigtos kitos eilinës komandos adresas);
keièiamas PC turinys, árašant pertraukties aptarnavimo paprogramës adres¹;
pereinama á programos viet¹ (pertrauktá aptarnaujanèi¹ paprogramê), nurodyt¹ PC;
darbas pertraukties paprogramëje (ávedimas, išvedimas);
grážimas á pagrindinê program¹, skaitant iš atminties (dažniausiai dëklo) grážimo adres¹ ir já irašant á PC.
27 pav. Pertrauktiniai duomenø mainai
Pradedant darb¹ pertraukties paprogramëje, programiškai valdomø registrø turinys ásimenamas atmintyje, o prieš grážtant iš paprogramës jø turinys vël atstatomas, nes neturi sutrikti pagrindinës programos darbas. Šis procesas vadinamas kontekstiniu perjungimu ir gali bûti atliekamas kaip techninëmis, taip ir pograminëmis priemonëmis.
Pertraukties procesas daug kuo panašus á procesus, kurie vyksta, vykdant paprogramiø iškvietimo ir grážimo iš jø komandas. Taèiau pertraukties atveju paprogramiø iškvietimo komandos formuojamos ir áterpiamos á bendr¹j¹ komandø sek¹, tik pertraukties proceso metu, pertraukèiø sistemos techninëmis priemonëmis, o antruoju atveju šios komandos ištikrøjø vis¹ laik¹ yra programos komandø sekoje. Todël pertrauktis gali bûti laikoma paprogramës iškvietimu techninëmis priemonëmis.
MPS naudojamos šios pertraukèiø sistemos:
radialinë;
išplëstinë radialinë;
vektorinë.
Radialine vadinama pertraukèiø sistema, naudojanti radialines linijas, kuriomis perduodami radialinës pertraukties reikalavimo signalai IRQ (angl. Interrupt Request), vienareikšmiškai nurodantys fiksuotus pertrauktis aptarnaujanèiø paprogramiø adresus. Programiniu požiûriu ši sistema yra fiksuotø atminties lauko adresø (paprogramiø startiniø adresø) visuma, kurios kiekvienas adresas atitinka jam priklausanti IRQ signal¹. Radialinës pertraukties reikalavimo signalams priimti naudojamos šios schemos:
dinaminë;
statinë;
kombinuota.
Dinaminë pertraukties signalø priëmimo schema pateikta 28 pav.
28 pav. Dinaminë pertraukties signalø priëmimo schema
Pertraukèiø leidimo signalas INTE (angl. Interrupt Enable) nustatomas (loginis 1) programiškai, naudojant speciali¹j¹ komand¹ (EI), kuri ájungia INTE trigerá. Pertraukties reikalavimo signalui IRQ keièiantis iš loginio 0 á loginá 1 (dinaminis pokytis pagal priekiná front¹) D trigeris su dinaminiu áëjimu ájungiamas (nes áëjime D veikia loginio 1 signalas) ir jo tiesioginiame išëjime gaunamas IR (angl. Interrupt Request) signalas lygus loginiam 1. Taip sukuriamas pertraukties patvirtinimo signalas INTA (loginis 1), naudojamas pertraukties proceso duomenims skaityti. Šis signalas taip pat automatiškai išjungia IR trigerá. Dinaminës schemos pagrindinis trûkumas yra didelis jautrumas trukdžiams, kurie gali ájungti IR trigerá ir sukelti klaidingas pertrauktis.
Statinë pertraukties signalø priëmimo schema pateikta 29 pav.
29 pav. Statinë pertraukties signalø priëmimo schema
Statinëje schemoje sumažintas jautrumas trukdžiams, naudojant tik potencialiná IRQ (1 loginio lygio) signal¹. INTA signalas gaunamas, kaip INTE ir IRQ signalø loginë sandauga. Taèiau atsiranda IRQ signalo blokavimo problema. Jeigu IRQ išlieka 1 loginio lygio po to, kai suformuojamas INTA signalas, tai gali bûti iššaukta pakartotinë klaidinga pertrauktis. Ši problema sprendžiama, naudojant specialø blokavimo trigerá IS (angl. In Service), kuris ájungiamas (signalas IS lygus loginiam 1), patvirtinus pertrauktá (INTA loginis 1) ir draudžiant pakartotin¹ pertrauktá, kol signalas IS lygus loginiam 1. Trigeris išjungiamas (leidžiama pertrauktis) programiškai vykdant operacij¹ EOI (angl. End Of Interrupt), kai tik signalas IRQ tampa lygus loginiam 0.
Kombinuota pertraukties signalø priëmimo schema pateikta 30 pav.
30 pav. Kombinuota pertraukties signalø priëmimo schema
Kombinuotoje schemoje priimtas ir fiksuotas dinaminis pertraukties reikalavimo signalas turi bûti patvirtintas potencialiniu lygiu. Dinaminis signalas fiksuojamas IR trigerije, o patvirtinamas, sukuriant INTA signal¹ loginës sandaugos elemente.
Praktiškai visose pertraukèiø sistemose numatytas papildomas programiškai valdomas pertraukèiø blokavimo mechanizmas, kuris realizuojamas, naudojant leidimo ar draudimo požymius. Šie požymiai yra atskiri programos bûsenos ar specialiøjø registrø, vadinamø kaukës registrais, bitai vadinami maskavimo bitais.
Maskavimo bitai neveikia dinaminiø pertraukties signalø fiksavimo, taèiau draudžia jø tolimesni veikim¹. Statiniø pertraukties signalø veikimas maskuojamas, naudojant IS trigerá.
Pertraukèiø sistemos pagal vienu metu patvirtintø ir veikianèiø pertraukèiø skaièiø gali bûti:
vieno lygio;
daugelio lygiø.
Vieno lygio sistemose bet kuriuo laiko momentu apdorojama tik viena pertrauktis, o kitos patvirtintos pertrauktys laukia savo eilës ir pradës veikti tik pabaigus eilinê pertrauktá. Pertrauktys blokuojamos vienu IS trigeriu, kuris fiksuoja pertraukties aptarnavimo fakt¹. Kai vienu metu pertraukèiø reikalavimo signalai patenka iš keleto šaltiniø, tai pertrauktys aptarnaujamos pagal jø svarb¹, sudaryt¹ prioritetinê eilê. Prioritetinë eilë sudaroma atsižvelgiant á:
pertraukties reikalavimø pasikartojimo dažná;
pertraukties aptarnavimo trukmê;
pertraukties aptarnavimo uždelsimo pasekmes ir t.t.
Dažniausiai naudojama fiksuota tiesinë prioritetinë eilë. Taèiau gali bûti ir kitokios prioritetinës eilës (programuojamos fiksuotos, dinaminës kintanèios pagal nustatyt¹ algoritm¹). Pavyzdžiui, naudojant dinaminê cikliškai kintanèi¹ prioritetinê eilê, pabaigus eilinê pertrauktá vyksta cikliškas pertraukèiø prioritetø poslinkis, suteikiant k¹ tik pabaigtai pertraukèiai žemiausi¹ prioritet¹.
Daugelio lygiø sistemose leidžiamos kelios vienu metu veikianèios skirtingø lygiø pertrauktys. Sudaroma lygiø prioritetø eilë vadinama pirmine ir kiekviename lygyje griežtai fiksuota – antrinë prioritetø eilë. Pertraukties aptarnavimo procedûr¹ gali nutraukti tik bet kuri aukštesnio lygio pertrauktis.
Išplëstinëje radialinëje pertraukèiø sistemoje prie IRQ radialinës linijos paverstos magistrale prijungiami keliø pertraukèiø reikalavimo šaltiniø signalai, sujungti pagal taip vadinam¹ loginê „montažinê ARBA” schem¹. Tokioje schemoje, priëmus bendr¹já radialinës linijos pertraukties reikalavimo signal¹, bûtina nustatyti prie tos linijos prijungt¹ pertraukties šaltiná, kuris perdavë signal¹. Šaltinio indentifikavimas atliekamas nuosekliai programiškai apklausiant visø árenginiø susijusiø su radialine linija bûsenas. Šis procesas vadinamas polingu, o paprogramë, kurá tai vykdo polingo procedûra. Paprogramës, kuri tikrina pasirengim¹ duomenø mainams pavidalas priklauso nuo konkretaus periferinio átaiso tipo. Dažniausiai tokios paprogramës veikimo rezultatas yra pasirengimo požymio RDY (angl. Ready) skaitymas. Šis požymis kartu yra átaiso potencialinis pertraukties reikalavimo signalas. Pabaigus pertraukties aptarnavimo paprogramê, RDY požymis keièiamas priešingu, tikrinama kitø šaltiniø bûsena ir gali bûti pradëtas kitas pertraukties procesas. Grážimas á pagrindinê program¹ leidžiamas tik pabaigus visø átaisø, kurie reikalavo, pertrauktis. Esant statinëms pertraukèiø reikalavimo signalø priëmimo schemoms fiksuojamos visos pertrauktys, taèiau, kai naudojamos dinaminës dalis pertaukèiø reikalavimø, kurie atëjo pertraukties metu gali bûti prarasti. Todël, pabaigus pertraukties aptarnavimo paprogramê, bûtina kartoti polingo procedûr¹.
Pagrindinis išplëstinës radialinës pertraukèiø sistemos trûkumas yra didelë apklausos procedûros trukmë
Vektorinëje pertraukèiø sistemoje ášorinis árenginys, reikalaujantis pertraukties, generuoja duomenis vienareikšmiškai susietus su atminties lauko adresu vadinamus pertraukties vektoriumi. Pertraukties vektoriumi gali bûti perëjimo á paprogramê komand¹ (CALL, RST) ir jos operandai (MP I8080, I8085), visas adresas, viso adreso atskiras laukas ir t.t. Pertraukties vektoriaus skaitymas (ávedimas) strobuojamas specialiu pertraukties patvirtinimo INTA signalu. Laikinës pertraukties vektoriaus ávedimo diagramos lygiai tokios pat, kaip ir tipinio skaitymo darbo ciklo, kuriame vietoje MRDC, IORC skaitymo strobavimo signalø naudojamas INTA signalas.
Tobulesnëse vektorinës pertraukties sistemose (MP I8086, I8088) naudojamos pertraukèiø lentelës IDT (angl. Interrupt Descriptor Table), išdëstytos fiksuotuose sisteminës atminties adresuose, pradedant nuliniu adresu. IDT árašyti pertraukèiø aptarnavimo paprogramiø startiniai adesai ir kiti duomenys (PSW, požymiai, laukeliai, valdantys pertraukèiø sistem¹). Pertraukties vektorius yra lentelës indeksas, kurá atitinka pertraukties paprogramës startinis adresas. Pabaigus pertrauktá, keièiami duomenys, valdantys pertraukèiø sistem¹ ir sistema parengiama naujo lygio pertrauktims apdoroti.
Dar tobulesnëse sistemose (MP I80286) ávestas specialus pertraukèiø lentelës bazinis registras IDTR (angl. Interrupt Descriptor Table Register), kuris leidžia IDT patalpinti bet kurioje adresø lauko vietoje.
Ávairûs MP naudoja vektorines ir radialines pertrauktis, kuriø signalams tiesiogiai priimti turi atitinkamus ávadus. Pvz. MP I8080 turi tik vien¹ INT vektorinës pertraukties ávad¹, o MP I8085 vien¹ INTR vektorinës pertraukties ávad¹ ir keturis radialiniø pertraukèiø ávadus: TRAP, RST 7.5, RST 6.5, RST 5.5 su fiksuotais vektoriais (adresais).
Pertraukèiø sistema gali bûti pleèiama, projektuojant išorines programiškai valdomas technines priemones, kurios surenka išorinius (antrinius, periferinius) IRQ0 IRQn radialinës pertraukties reikalavimo signalus (1 loginio lygio) ir iš jø kuria sistemos vidiná vektorinës pertraukties signal¹ INTR (1 loginio lygio), patenkantá á MP. Taip pleèiama sistem¹ dviem pagrindiniais bûdais:
technines priemones perkeliant (decentralizuojant) á periferinius árenginius (Q - bus magistralës sistemose);
naudojant specialøjá árenginá – pertrauktèiø valdiklá (Microbus magistralës sistemose), sujungiam¹ su SM, kuris yra Áv. – Išv. Á sudëtinë dalis.
Antrasis bûdas labiausiai paplitês. Pertrauktèiø valdiklio sujungimo su SM funkcinë schema pateikta 31 pav.
31 pav. Pertrauktèiø valdiklio sujungimo su SM funkcinë schema: CP – centrinis procesorius;
PV – pertraukèiø valdiklis
Pertrauktèiø valdiklis yra didelis integrinis grandynas (I8259, 8 radialinës pertraukties linijos, galimybë plësti iki 64, vektorinë, radialinë, išplëstinë radialinë pertrauktys, prioritetinës eilës valdymas, pertraukèiø maskavimas), kuris gali bûti laikomas MP plëtiniu, todël dar vadinama pertrauktèiø valdymo koprocesoriumi. Pradedant PV naudoti, jis turi bûti programuojamas. PV programuoja MP, nurodydamas šiuos pagrindinius duomenis:
pertrauktèiø vektorius (komandos CALL ADR adresus, vienareikšmiškai susijusius su IRQ numeriu);
pertraukèiø reikalavimo signalø prioritetinê eilê (gali bûti keièiama darbo metu);
atskirø pertraukèiø draudim¹ (maskavim¹).
MP programoje turi bûti sudaryta PV programavimo procedûra (paprogramë), kuri atlieka PV pradiná nustatym¹ (inicializacij¹). Darbo metu PV valdomas, siunèiant valdymo komandas.
Tiesioginiais duomenø mainais vadinamas duomenø ávedimas ir išvedimas, kuris vyksta tarp sistemos AÁ ir Iv. – Iš. Á., nedalyvaujant MP. MP atskiriamas nuo SM ir j¹ užima periferinis árenginys. Todël sistemos perëjimas á tiesioginiø duomenø režim¹ dažnai vadinamas SM užëmimu. Visas valdymo funkcijas atlieka Iv. – Iš. Á.
Tiesioginius duomenø mainus organizuoja tiesioginiø duomenø mainø sistema, kuri¹ sudaro:
techninës priemonës;
komandos ir programos, valdanèios šias priemones.
Bet kuriuo pagrindinës programos vykdymo momentu, kai periferinis árenginys pasiruošês tiesioginiams duomenø mainams, Áv. – Išv.Á. gali inicijuoti šá darbo režim¹, siøsdamas tiesioginiø mainø reikalavimo signal¹. Signalas atpažystamas (indentifikuojamas) ir tiesioginiai mainai pradedami tik tam tikru griežtai nustatytu laiko momentu (pabaigus komandos cikl¹, prieš pradedant išrinkimo fazê), nes kitaip gali sutrikti MP darbas.
Sistemos magistralës užëmimo procesas vyksta taip:
MP priima tiesioginiø mainø reikalavimo signal¹ HOLD;
perduoda tiesioginiø mainø reikalavimo patvirtinimo signal¹ HLDA;
MP išvadai (linijos) atjungiami (Z bûsena) nuo SM.
MP pradeda tiesioginiø mainø darbo cikl¹, kurio metu nevykdo programos komandø, taèiau nuolat tikrina (testuoja) áëjimo signal¹ HOLD. Šis ciklas têsiasi tol, kol veikia HOLD signalas. Pasikeitus HOLD signalo loginiam lygiui, MP baigia tiesioginiø mainø darbo cikl¹ ir têsia darb¹ pagal program¹.
Sudëtingoje sistemoje, turinèioje ne vien¹, bet kelis periferinius árenginius, kurie dirba tiesioginiø duomenø mainø režime, naudojamos specialios techninës priemonës. Dažniausiai tiesioginiø duomenø mainø valdiklis (TDMV) – didelis integrinis grandynas (I8257, 4 tiesioginiø duomenø kanalai, 16K duomenø masyvas, pradinis adresas 64K atminties lauke, inkrementuojamas po kiekvieno ciklo), organizuojantis kelis duomenø mainø kanalus. TDMV yra sudëtinë Áv. – Išv.Á. dalis.
Tiesioginiø duomenø mainø valdiklio sujungimo su SM funkcinë schema pateikta 32 pav.
Prieš pradedant naudoti TDMV, jis yra programuojamas, nurodant šiuos pagrindinius duomenis:
pradiná mainø adres¹, nuo kurio prasidës duomenø ávedimas ar išvedimas;
mainø ciklø skaièiø (kreipimosi á AÁ kieká);
kanalø prioritetinê eilê (fiksuot¹ arba cikliškai kintanèi¹);
duomenø perdavimo kryptá: skaitymas (iš AÁ á PÁ), rašymas (iš PÁ á AÁ).
Siekiant išvengti klaidø, prieš programuojant ar skaitant valdiklio bûsen¹, bûtina drausti visas sistemos pertrauktis.
Valdiklio áëjime veikia kiekvieno kanalo (periferinio árenginio) nuosavi tiesioginiø mainø reikalavimo signalai DRQ0 DRQn (angl. Direct Request), kuriuos perduoda atskiri periferiniai árenginiai. Reguodamas á šiuos signalus, TDMV siunèia á kiekvien¹ kanal¹ tiesioginiø duomenø mainø patvirtinimo (kvitavimo) signalus DACK0 DACKn (angl. Direct Acknowledge). MP tiesiogiai su TDMV sieja HOLD ir HLDA signalai. Vienu metu duomenø mainai gali vykti tik vienu kanalu (su vienu periferiniu árenginiu).
Tiesioginis duomenø mainø procesas prasideda, priëmus tiesioginiø mainø reikalavimo signal¹ DRQ iš PÁ. Valdiklis sukuria signal¹ HOLD (1 loginio lygio), kuris perduodamas á MP. MP, reaguodamas á HOLD signal¹, siunèia HLDA (1 loginio lygio) signal¹ ir išjungia savo išvadus, perduodamas SM tiesioginiø duomenø mainø valdikliui, kuris pradeda valdym¹:
patvirtina PÁ tiesioginiø mainø reikalavim¹ (esant keliems reikalavimams aukšèiausio prioriteto PÁ reikalavim¹), siøsdamas DACK (0 loginio lygio) signal¹;
išveda adres¹ á adresø magistralê (pirmajame cikle pradiná adres¹, o kiekviename naujame 1 didesná, vykdant adreso inkrementavim¹);
generuoja strobavimo signalø poras, MRDC ir IOWC (skaitant) arba MWTC ir IORC (rašant) duomenø bait¹ (DB) ir atlieka duomenø mainus.
32 pav. Tiesioginiø duomenø mainø valdiklio sujungimo su SM funkcinë schema:
CP – centrinis procesorius; TDMV – tiesioginiø duomenø mainø valdiklis; PÁ0 PÁn – periferiniai árenginiai.
Duomenø mainø procesas têsiasi tol, kol pasiekiamas nustatytas ciklø skaièius (duomenø masyvo ilgis). Pabaigus ávesti ar išvesti nustatyto ilgio duomenø masyv¹, valdiklis siunèia ciklø skaièiavimo pabaigos signal¹ TC (angl. Terminal Count) á PÁ, informuodamas apie duomenø mainø pabaig¹. Valdiklis keièia HOLD signalo lygá priešingu (0 loginis lygis) ir CP grážta á darbo bûsen¹, têsdamas program¹. Kai CP bûna susijungês su SM, tai TDMV ir PÁ0 PÁn turi bûti atjungti nuo jos.
Tiesioginiai duomenø mainai gali vykti sinchroniškai greièiu, kurá nustato TDMV arba asinchroniškai, kai naudojamas pasiruošimo (XACK) signalas.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1269
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved