Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

įstatymaiįvairiųApskaitosArchitektūraBiografijaBiologijaBotanikaChemija
EkologijaEkonomikaElektraFinansaiFizinisGeografijaIstorijaKarjeros
KompiuteriaiKultūraLiteratūraMatematikaMedicinaPolitikaPrekybaPsichologija
ReceptusSociologijaTechnikaTeisėTurizmasValdymasšvietimas

Duomenų įvedimo ir išvedimo organizavimas

kompiuteriai



+ Font mai mare | - Font mai mic



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Į0n – 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Į0n 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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1227
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved