Moduri de intrare-ieșire de bază

Pentru a ține cont de particularitățile implementării proceselor de I / O și de specificul diferitelor tipuri de IP, sunt utilizate trei moduri de intrare / ieșire a informațiilor: I / O software, I / O în modul întreruperi și cu acces direct la memorie.







Interfețele trebuie să țină seama de posibilitatea implementării tuturor celor 3 moduri de intrare-ieșire.

Software I / O. Aici, inițializarea și gestionarea procesului I / O sunt efectuate de către procesor. Există trei moduri de a face acest lucru (a se vedea figura).

Moduri de intrare-ieșire de bază

Prima metodă este directă, este utilizată pentru PU sincronă, adică dispozitivele care sunt întotdeauna gata de funcționare și ciclurile de așteptare nu sunt necesare. A doua este una condiționată cu un ciclu, când atunci când PU nu este gata, procesorul așteaptă până când este gata. Al treilea este condițional cu o combinație. Spre deosebire de cel precedent, procesorul nu așteaptă pregătirea PU, ci continuă continuarea programului cu o verificare periodică a pregătirii PU.

Două puncte trebuie notate. În primul rând, UE trebuie să aibă o permisiune preinstalată pentru a lucra în modul de întrerupere. În al doilea rând, coliziunile sunt posibile atunci când mai multe PU expun o cerere de întrerupere către procesor. Această coliziune este rezolvată prin intermediul mecanismului de stabilire a nivelului de prioritate pentru fiecare UE. Este posibilă organizarea întreruperilor imbricate, atunci când UE cu o prioritate mai mare întrerupe funcționarea UE cu o prioritate mai mică. Toate aceste puncte ar trebui să ia în considerare standardul de interfață.

Acces direct la memorie - o modalitate de a conecta rapid un dispozitiv extern, în care accesează memoria RAM, fără a întrerupe procesorul. Acest schimb are loc sub controlul unui dispozitiv separat - un controler pentru acces direct la memorie (CPD).

Structura calculatorului, care include CPDU, este prezentată în Fig.

Moduri de intrare-ieșire de bază

Fig. Schimb de date în modul de acces direct la memorie.

Secvența acțiunilor DCPD atunci când solicită acces direct la memorie de la dispozitivul de intrare-ieșire este după cum urmează:

Acceptați o solicitare pentru un DRP (semnal DRQ) de la UVB.

Formați o solicitare pentru MP să capteze magistrala (semnalul HRQ).

Primiți un semnal de la MP (HLDA), confirmând faptul că microprocesorul și-a transferat autobuzele în starea a treia.

Generați un semnal care informează dispozitivul I / O despre pornirea ciclurilor DAC.

Generați semnale care asigură controlul schimbului (IOR, MW pentru transferul de date de la IEE la RAM și IOW, MR pentru transferul de date de la RAM la IEE).

Reduceți valoarea din contorul de date după lungimea datelor transmise.

Accesul direct la memorie permite executarea paralelă a execuției programului în timp și schimbul de date între dispozitivul periferic și memoria RAM.

În general, comunicarea controlate de program este utilizat într-un calculator pentru operațiunile de intrare-ieșire de bytes individuale (cuvinte) care sunt mai rapide decât cu DMA, din cauza pierderii de timp, sunt excluse de pe controlerul de inițializare DMA, ca metodă de bază pentru efectuarea operațiunilor IO folosind DMA. De exemplu, în configurația standard a unui computer personal, schimbul între unitățile de discuri magnetice și memoria RAM are loc în modul de acces direct.

Controlul schimbului de software conduce la o utilizare ineficientă a puterii microprocesorului, care este forțat să efectueze un număr mare de operațiuni relativ simple, suspendând lucrul la programul principal. Astfel, acțiunile asociate cu trimiterea la memorie și la dispozitivul periferic, în general, necesită ciclul alungit al microprocesor din cauza mai lent în comparație cu operațiunea microprocesor, ceea ce duce la pierderi chiar mai semnificative a performanței computerului lor.

Caracteristici ale instrumentelor software de construcție a sistemului de intrare-ieșire al computerului

Funcționarea oricărui sistem informatic este, de obicei, redusă la efectuarea a două tipuri de activități: procesarea informațiilor și a operațiilor pentru implementarea intrărilor-ieșirilor.

Sistemele moderne de computere pot avea o varietate de arhitecturi, multe anvelope și autostrăzi, poduri pentru a transfera informații de la un autobuz la altul, etc. Pentru noi, numai următoarele sunt importante.







Dispozitivele I / O sunt conectate la sistem prin porturi.

Controlul fizic al dispozitivului de intrare-ieșire, transmiterea de informații prin port și setarea unor semnale pe portbagaj sunt tratate de controlerul dispozitivului.

Este uniformitatea conectării dispozitivelor externe la sistemul de calcul care este una dintre componentele ideologiei care permite adăugarea de noi dispozitive fără a reproiecta întregul sistem.

Structura controlerului de dispozitiv

Dispozitivele controlerele IO sunt foarte diferite, atât în ​​structura sa internă și executarea (pe un singur cip la un sistem informatic dedicat cu propriul său procesor, memorie, și așa mai departe. D.), deoarece acestea trebuie să gestioneze dispozitive foarte diferite. Fără a intra în detaliile acestor diferențe, vom evidenția câteva caracteristici comune ale controlorilor de care au nevoie pentru a interacționa cu sistemul de calcul. În mod obișnuit, fiecare controler are cel puțin patru registre interne numite registre de stare, control, intrare și ieșire. Pentru a accesa conținutul acestor registre, sistemul informatic poate folosi unul sau mai multe porturi, ceea ce nu este important pentru noi. Pentru simplitate, presupunem că fiecare registru are propriul port.

Registrul de stare conține biți a căror valoare este determinată de starea dispozitivului I / O și care sunt citite numai de sistemul informatic. Acești biți indică finalizarea comenzii actuale pe dispozitiv (bit ocupat), prezența următoarelor date de ieșire din registru (bitul de date gata), apariția unei erori la executarea comenzii (bitul de eroare) etc.

Registrul de control primește date scrise de sistemul informatic pentru a inițializa dispozitivul I / O sau pentru a executa următoarea comandă, precum și pentru a schimba modul de funcționare al dispozitivului. Unii dintre biți din acest registru pot fi atribuiți codului comenzii care se execută, unii biți vor codifica modul de funcționare al dispozitivului, bitul de pregătire al comenzii indică faptul că puteți continua execuția acestuia.

registru de date de ieșire servește pentru introducerea datelor citite la acesta printr-un sistem informatic, și înregistrează datele de intrare este destinat pentru introducerea în ea informațiile care urmează să fie scoasă la ieșire la aparat. De obicei aceste registre capacitate nu depășește lățimea liniei de date (și adesea mai puțin decât), cu toate că unele controlere pot folosi ca o coadă FIFO înregistrează pentru tamponarea informații primite.

Desigur, un set de registre și biți lor constitutive sunt aproximative, este menit să ne servească drept model pentru a descrie transferul de informații de la un sistem informatic la un dispozitiv și vice-versa extern, dar într-o formă sau alta este de obicei prezentă în toate controler.

Principiile logice ale organizării input-output

Moduri de intrare-ieșire de bază

Fig. Manager dispozitive. Resurse după tip.

Cu toate acestea, nu am spus încă nimic despre cum ar trebui construit un subsistem de management al intrărilor și ieșirilor în sistemul de operare pentru adăugarea ușoară și nedureroasă a dispozitivelor noi și a funcțiilor care îi sunt atribuite în general.

Structura sistemului de intrare-ieșire

Dacă instruiesc utilizatorul neexperimentat pentru a construi sistemul de intrare-ieșire, care poate lucra cu toată multitudinea de dispozitive externe, atunci cel mai probabil, el va fi într-o situație în care au existat biologi si zoologi înainte functioneaza Linnean.

În domeniul logisticii să aloce câteva principii de bază de interacțiune între dispozitive externe cu un sistem informatic, de ex., E. Pentru a stabili o singură interfață pentru a le conecta, punând toate acțiunile specifice pe controlerele ale dispozitivelor în sine. Astfel, proiectanții de sisteme informatice au mutat toate hassle asociate cu conectarea echipamentelor externe, dezvoltatorii aparatului în sine, făcându-le să adere la un anumit standard.

O abordare similară sa dovedit a fi productivă în domeniul conectării software a dispozitivelor de intrare și ieșire. La fel cum Linnaeus a fost capabil de a pune bazele pentru sistematizarea cunoștințelor despre lumea vegetală și animală, împărțit toate lucrurile vii în natură pe un număr relativ mic de clase și comenzi, putem partaja dispozitivul într-un număr relativ mic de tipuri, care diferă într-un set de operațiuni care pot fi acestea sunt realizate, cu excepția toate celelalte diferențe sunt nesemnificative. Putem specifica apoi interfața dintre nucleul sistemului de operare pentru a pune în aplicare unele politici comune IO, precum și piese de program de control direct dispozitivele pentru fiecare dintre aceste tipuri. Mai mult decât atât, dezvoltatorii de sisteme de operare sunt în măsură să se elibereze de scrierea și testarea unor părți specifice ale software-ului, cunoscut sub numele de șoferi, transferarea acestor producători de activitate dispozitive externe însele. De fapt, am ajuns la utilizarea principiului de construcție niveluri sau stratificat sistem de control de intrare-ieșire pentru sistemul de operare (vezi. Fig.).

Moduri de intrare-ieșire de bază

Cele două niveluri inferioare ale sistemului stratificat de hardware: dispozitivele se efectuează în mod direct funcționarea și controlorii lor care servesc pentru dispozitive de colaborare și restul sistemului informatic. Următoarele dispozitive de nivel în sus de intrare șofer și de ieșire, ascunderea de dezvoltatorii de sisteme de operare, în special funcționarea instrumentelor specifice și să asigure o interfață bine definită între hardware-ul și nivelul superior - nivelul subsistemului de intrare-ieșire de bază, care, la rândul său, prevede un mecanism de interacțiune între driverele și software-ul sistemul informatic în ansamblu.

Funcțiile subsistemului I / O de bază

Subsistemul de bază de ieșire de intrare servește ca intermediar între procesele unui sistem informatic și un set de drivere. Apelurile de sistem pentru efectuarea operațiunilor I / O sunt transformate de acesta în apeluri către funcțiile driverului de dispozitiv necesar. Cu toate acestea, taxele subsistemului de bază nu sunt reduse la punerea în aplicare a acțiunilor de difuzare apel sistem general este emis numai conducătorul auto funcțiilor private. Baza computerului subsistemului sistem furnizează servicii, cum ar fi de centralizare de sprijin, asincron și non-blocare apel de sistem, de tamponare și cache datele de intrare și de ieșire, precum și punerea în aplicare exclusiv spooling'a captura dispozitive externe și eroare de manipulare întrerupe care apar în timpul operațiilor de intrare-ieșire, secvența de programare cererile pentru aceste operațiuni.







Articole similare

Trimiteți-le prietenilor: