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 ivedimo organizavimas
Dirbant bet kuriai MPS, nuolat vyksta duomenų įvedimas ir ivedimas tiek sistemos viduje, tiek ir tarp sistemos bei iorės. Duomenų mainų organizavimas yra viena i svarbiausių sistemos darbo grandių.
Duomenų įvedim¹ ir ivedim¹ tarp sistemos bei iorės atlieka Iv. I. posistemė (Iv. I. Į.M). Ji atsakinga u ryį tarp MPS ir iorinių (periferinių) įrenginių ir kai kuriais atvejai netgi apsprendia periferinių įrenginių organizacij¹. Programuotojo poiū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 odiu CW (angl. Control Word). Jie iaukia (inicijuoja) veiksmus, susijusius su duomenų mainais.
Antraja kryptimi perduodami tarnybiniai duomenis vadinami būsenos odiu 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 iaukia (inicijuoja) ir betarpikai pagal program¹ vykdo MP vadinamas programiniais duomenų mainais. Kartais is būdas dar vadinamas programikai 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) ivedimas į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 ivedamas, kreipiantys į IOSEG srities baitinius portus. Įvedimo ir ivedimo 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 ivedami (angl. DO Data Output) juos įraant į registr¹ (angl. RG - Register). BFI ir RG adresuoti naudojamas deifratorius 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 ivedimo 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 reimas). Todėl nedidelėse MPS, laikant, kad signalas vis¹ laik¹ aktyvus, jo formavimo loginė schema nenaudojama (r. 21 pav.).
21 pav. Įvedimo ir ivedimo 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ź montainź ARBA schem¹. Taip pat tikslinga atskiras įvedimo (DI) ir ivedimo (DO) linijas sujungti į bendr¹j¹ įvedimo ir ivedimo linij¹ (DIO), nes du kartus sumaėja linijų skaičius, be to galima skaityti anksčiau ivestus ir saugomus RG, duomenis. Tai gali būti naudinga testuojant iėjimo port¹ arba kontroliuojant ivestus duomenis.
Dvikrypčiams duomenų mainams per bendr¹j¹ įvedimo ir ivedimo 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 iorėje arba būti jo viduje. Iėjimai DO su įėjimais DI sujungti pagal montainź ARBA schem¹. Ivedus į RG aukto loginio lygio (loginio 1) signalus galima įvesti neikraipytus informacijos duomenis. Be to, norimos DI linijos gali būti draudiamos (maskuojamos, nuolat nustatomas loginis 0), ivedant 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). Daniausiai tokie duomenų mainai taikomi lėtaeigiams periferiniaims įrenginiams, nes MP greitaeigikumas 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 apraymas naudojamas, sudarant duomenų mainų su periferiniai įrenginiais programas (paprogrames) vadinamas draiveriais. S¹lyginiuose programiniuose mainuose naudojami ie signalai:
periferinio įrenginio pasiruoimo 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ų ivedimo (ACK OUT) pradi¹. ACK signalai įeina į CW sudėtį. Duomenų mainai, naudojant RDY, ACK signalus vadinami duomenų įvedimu ir ivedimu su kvitavimu.
Tipinės įvedimo ir ivedimo su kvitavimu laikinės diagramos pateiktos 23 pav.
23 pav. Įvedimo, ivedimo ir kvitavimo laikinės diagramos
Duomenų įvedimo procesas prasideda, kai periferinis įrenginys nustato, kad MP priėmimas pasibaigźs (ACK INP = 0), paruotus duomenis iveda į DI magistralź, o t1 laiko momentu perduoda RDY OUT = 1. MP atpaysta, kad duomenys paruoti 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 atpaysta, kad duomenys įvesti, todėl t3 laiko momentu baigia duomenų perdavimo proces¹ (RDY OUT = 0). t4 laiko momentu MP atpaysta, kad duomenų perdavimas baigtas ir pabaigia duomenų įvedimo procesa (ACK INP = 0).
Duomenų ivedimo procesas prasideda, kai MP nustato, kad periferinis įrenginys pasiruoźs priimti duomenis (RDY INP = 1). Vykdomas MP raymo darbo ciklas, duomenys ivedami į DO magistralź ir t2 laiko momentu MP patvirtina, kad duomenys ivesti (ACK OUT = 1). Periferinis įrenginys priima duomenis ir baigźs priėmim¹ t3 laiko momentu iveda (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 pasiruoim¹ ir patvirtinant duomenų įvedino ir ivedimo pabaig¹ utikrinami 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 pasiruoimas 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 ivedimas ir kvitavimas pagal 23 pav. laikines diagramas. Pagrindinis s¹lyginių ciklinių mainų trūkumas yra galimybė pasireikti begaliniam ciklui (pakibimui), kurio metu MP vis¹ darbo laik¹ inaudoja įrenginio pasiruoimui kontroliuoti.
S¹lyginiai cikliniai laikiniai duomenų mainai leidia ivengti 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 mainamas 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 ivedimas 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 inagrinėtuose, nėra įrenginio pasiruoimo tikrinimo ciklo. Pirmasis pasiruoimo 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 ivedim¹ ir kvitavim¹.
Pertrauktiniu duomenų įvedimu ir ivedimu vadinami duomenų mainai, kuriuos iaukia (inicijuoja) periferinis įrenginys, laikinai nutraukiant pagrindinź program¹, vykdant pertraukties aptarnavimo paprogramź (įvedim¹, ivedim¹) 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. Iv.Į. gali inicijuoti pertrauktį (INTR), siųsdamas pertraukties reikalavimo signal¹. Pertrauktis atpaystama (indentifikuojama) ir pradedama tik tam tikru grietai nustatytu laiko momentu (pabaigus komandos cikl¹, prie pradedant irinkimo fazź), nes ji gali prasidėti tik pabaigus vykdyti eilinź komand¹ pagrindinėje programoje.
Pertraukties procesas vyksta taip:
automatikai įsimenamas (daniausiai 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, įraant pertraukties aptarnavimo paprogramės adres¹;
pereinama į programos viet¹ (pertrauktį aptarnaujanči¹ paprogramź), nurodyt¹ PC;
darbas pertraukties paprogramėje (įvedimas, ivedimas);
grįimas į pagrindinź program¹, skaitant i atminties (daniausiai dėklo) grįimo adres¹ ir jį iraant į PC.
27 pav. Pertrauktiniai duomenų mainai
Pradedant darb¹ pertraukties paprogramėje, programikai 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 panaus į procesus, kurie vyksta, vykdant paprogramių ikvietimo ir grįimo i jų komandas. Tačiau pertraukties atveju paprogramių ikvietimo komandos formuojamos ir įterpiamos į bendr¹j¹ komandų sek¹, tik pertraukties proceso metu, pertraukčių sistemos techninėmis priemonėmis, o antruoju atveju ios komandos itikrųjų vis¹ laik¹ yra programos komandų sekoje. Todėl pertrauktis gali būti laikoma paprogramės ikvietimu techninėmis priemonėmis.
MPS naudojamos ios pertraukčių sistemos:
radialinė;
iplėstinė radialinė;
vektorinė.
Radialine vadinama pertraukčių sistema, naudojanti radialines linijas, kuriomis perduodami radialinės pertraukties reikalavimo signalai IRQ (angl. Interrupt Request), vienareikmikai nurodantys fiksuotus pertrauktis aptarnaujančių paprogramių adresus. Programiniu poiū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) programikai, 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 automatikai ijungia IR trigerį. Dinaminės schemos pagrindinis trūkumas yra didelis jautrumas trukdiams, 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 sumaintas jautrumas trukdiams, 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 ilieka 1 loginio lygio po to, kai suformuojamas INTA signalas, tai gali būti iaukta pakartotinė klaidinga pertrauktis. i problema sprendiama, naudojant specialų blokavimo trigerį IS (angl. In Service), kuris įjungiamas (signalas IS lygus loginiam 1), patvirtinus pertrauktį (INTA loginis 1) ir draudiant pakartotin¹ pertrauktį, kol signalas IS lygus loginiam 1. Trigeris ijungiamas (leidiama pertrauktis) programikai 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.
Praktikai visose pertraukčių sistemose numatytas papildomas programikai valdomas pertraukčių blokavimo mechanizmas, kuris realizuojamas, naudojant leidimo ar draudimo poymius. ie poymiai 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 draudia 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 atsivelgiant į:
pertraukties reikalavimų pasikartojimo danį;
pertraukties aptarnavimo trukmź;
pertraukties aptarnavimo udelsimo pasekmes ir t.t.
Daniausiai 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¹). Pavyzdiui, naudojant dinaminź ciklikai kintanči¹ prioritetinź eilź, pabaigus eilinź pertrauktį vyksta ciklikas pertraukčių prioritetų poslinkis, suteikiant k¹ tik pabaigtai pertraukčiai emiausi¹ prioritet¹.
Daugelio lygių sistemose leidiamos kelios vienu metu veikiančios skirtingų lygių pertrauktys. Sudaroma lygių prioritetų eilė vadinama pirmine ir kiekviename lygyje grietai fiksuota antrinė prioritetų eilė. Pertraukties aptarnavimo procedūr¹ gali nutraukti tik bet kuri auktesnio lygio pertrauktis.
Iplė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ź montainź 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 programikai 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. Daniausiai tokios paprogramės veikimo rezultatas yra pasirengimo poymio RDY (angl. Ready) skaitymas. is poymis kartu yra įtaiso potencialinis pertraukties reikalavimo signalas. Pabaigus pertraukties aptarnavimo paprogramź, RDY poymis keičiamas prieingu, tikrinama kitų altinių būsena ir gali būti pradėtas kitas pertraukties procesas. Grįimas į pagrindinź program¹ leidiamas 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 iplė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 vienareikmikai 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), idėstytos fiksuotuose sisteminės atminties adresuose, pradedant nuliniu adresu. IDT įrayti pertraukčių aptarnavimo paprogramių startiniai adesai ir kiti duomenys (PSW, poymiai, 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 leidia 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 iorines programikai valdomas technines priemones, kurios surenka iorinius (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. Iv. Į 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ė, iplė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, vienareikmikai 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 ivedimas, kuris vyksta tarp sistemos AĮ ir Iv. I. Į., nedalyvaujant MP. MP atskiriamas nuo SM ir j¹ uima periferinis įrenginys. Todėl sistemos perėjimas į tiesioginių duomenų reim¹ danai 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. Iv.Į. gali inicijuoti į darbo reim¹, siųsdamas tiesioginių mainų reikalavimo signal¹. Signalas atpaystamas (indentifikuojamas) ir tiesioginiai mainai pradedami tik tam tikru grietai nustatytu laiko momentu (pabaigus komandos cikl¹, prie pradedant irinkimo 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 ivadai (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ų reime, naudojamos specialios techninės priemonės. Daniausiai 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. Iv.Į. 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 ivedimas;
mainų ciklų skaičių (kreipimosi į AĮ kiekį);
kanalų prioritetinź eilź (fiksuot¹ arba ciklikai kintanči¹);
duomenų perdavimo kryptį: skaitymas (i AĮ į PĮ), raymas (i PĮ į AĮ).
Siekiant ivengti 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 ijungia savo ivadus, 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¹;
iveda 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 (raant) 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 ivesti 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į prieingu (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 sinchronikai greičiu, kurį nustato TDMV arba asinchronikai, kai naudojamas pasiruoimo (XACK) signalas.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1227
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved