Anda di halaman 1dari 19

9.

UNITATEA DE I/E

Pe lng unitatea central i un set de module de memorie, un alt element important al unui sistem de calcul este sistemul de I/E. O unitate de I/E (UIE) este componenta sistemului de calcul care efectueaz transferul informaiilor ntre memoria principal a sistemului de calcul i mediul exterior al acestuia: suporturile externe de informaie i alte sisteme de calcul cu care se interconecteaz.

9.1. Structura unitii de I/E


n Figura 9.1 se prezint structura unui sistem de calcul mpreun cu unitatea de I/E.

Figura 9.1. Structura unui sistem de calcul i a unei uniti tipice de I/E.

Componentele principale ale unei uniti de I/E sunt urmtoarele: Modulele de I/E; Echipamentele periferice; Interconexiunile dintre memorie i echipamentele periferice (magistralele); Interfeele dintre aceste componente.

9. Unitatea de I/E

257

Motivele pentru care perifericele nu se conecteaz direct la magistrala sistemului i se utilizeaz module de I/E sunt urmtoarele: Exist o mare varietate de periferice cu diferite metode de funcionare. Nu ar fi practic ncorporarea logicii necesare n cadrul UCP pentru controlul diferitelor echipamente. Rata de transfer a perifericelor este adesea mult mai mic dect cea a memoriei i a UCP. Deci, nu este eficient utilizarea magistralei sistem cu vitez ridicat pentru comunicarea direct cu un periferic. Perifericele utilizeaz de multe ori formate diferite ale datelor i cuvinte de lungimi diferite fa de calculatorul la care sunt conectate.

9.2. Tipuri de echipamente periferice


Exist trei categorii de echipamente periferice, dup utilizarea acestora: 1. Pentru transportul datelor ntre procesor i utilizator: echipamente de achiziie i prezentare a datelor. 2. Pentru transferul datelor ntre mai multe procesoare: echipamente de reea. 3. Pentru memorarea informaiilor, ca parte a ierarhiei de memorii a procesorului: echipamente de memorare. Anumite periferice au funcii multiple. n Tabelul 9.1 i Tabelul 9.2 se prezint cerinele privind ratele de transfer pentru unele echipamente tradiionale de prezentare a datelor, respectiv de memorare.
Tabelul 9.1. Ratele de transfer ale unor echipamente tradiionale de prezentare a datelor.
Echipament Senzori Tastatur Linie de comunicaie Display Imprimant Rata de transfer 1 B/s - 1 KB/s 10 B/s 56 Kbit/s (linie analogic) 2 KB/s 1 - 5 KB/s

Tabelul 9.2. Parametrii unor echipamente tradiionale de memorare.


Echipament Disc Band Timp de acces 8 ms O (sec) Rata de transfer 80 MB/s 3 - 6 MB/s Capacitate 50 GB 25 GB (pe caset)

258

Arhitectura calculatoarelor

n timp ce echipamentele tradiionale de prezentare a datelor sunt relativ lente comparativ cu cele de memorare, situaia este diferit n cazul celor utilizate pentru multimedia. Documentele multimedia constau din: Grafic; Video; Audio (sinteza i recunoaterea vocii). n Tabelul 9.3 se prezint cerinele principale pentru aceste medii.
Tabelul 9.3. Parametrii unor echipamente multimedia.
Rata de transfer Grafic Video Audio 1 MB/s 400 MB/s 8 KB/s ntrziere maxim 1-5s 20 - 33 ms 50 - 300 ms

Fiecare mediu necesit o putere considerabil de calcul. Pentru prelucrarea imaginilor grafice, au fost create procesoare specializate (transformarea spaiului culorilor, modelare 3D, animaie). n cazul imaginilor video, cerinele cresc substanial, deoarece o nou imagine este creat la fiecare 1/30 s (33 ms). Se pot utiliza tehnici de compresie i interpolare a datelor n scopul reducerii ratei de transfer necesare pentru procesarea video n timp real. Prelucrarea semnalelor audio cu o rat de 2-8 KB/s necesit o putere considerabil de calcul, pentru crearea sau recunoaterea diferitelor foneme n timp real.

9.3. Module de I/E


9.3.1. Funciile modulelor de I/E
Un modul de I/E are rolul de a efectua controlul echipamentelor externe i transferul datelor ntre aceste echipamente i memoria principal i/sau registrele UCP. Deci, un modul de I/E trebuie s dispun de o interfa intern n cadrul calculatorului (cu UCP i memoria principal) i o interfa extern (cu echipamentul extern). Funciile i cerinele principale ale unui modul de I/E se ncadreaz n urmtoarele categorii: Control i sincronizare; Comunicaia cu UCP; Comunicaia cu echipamentele externe; Bufferarea datelor; Detecia erorilor.

n orice moment de timp, UCP poate comunica cu unul sau mai multe echipamente externe. Resursele interne, ca memoria intern i magistrala sistem, trebuie par-

9. Unitatea de I/E

259

tajate ntre mai multe activiti, inclusiv operaiile de I/E ale datelor. Funcia de I/E necesit deci o operaie de control i sincronizare, pentru coordonarea fluxului de date ntre resursele interne i echipamentele externe. De exemplu, controlul transferului de date de la un echipament extern la UCP poate cuprinde urmtoarele etape: 1. UCP interogheaz modulul de I/E pentru a testa starea echipamentului conectat. 2. Modulul de I/E returneaz starea echipamentului. 3. Dac echipamentul este operaional i este pregtit pentru transmisia datelor, UCP solicit transferul datelor, printr-o comand adresat modulului de I/E. 4. Modulul de I/E preia un octet sau cuvnt de date de la echipamentul de I/E. 5. Datele sunt transferate de la modulul de I/E la UCP. Dac sistemul utilizeaz o magistral, fiecare interaciune dintre UCP i modulul de I/E implic una sau mai multe operaii de arbitrare a magistralei. Din exemplul precedent rezult c modulul de I/E trebuie s permit comunicaia cu UCP i cu echipamentul extern. Comunicaia cu UCP cuprinde: Decodificarea comenzilor: Modulul de I/E accept comenzi de la UCP. Aceste comenzi sunt transmise de obicei ca semnale pe magistrala de control. De exemplu, un modul de I/E pentru o unitate de disc poate accepta urmtoarele comenzi: CITIRE SECTOR, SCRIERE SECTOR, CUTARE PIST. Unele comenzi au un parametru care este transmis pe magistrala de date. Transmiterea datelor: Datele sunt transmise ntre UCP i modulul de I/E pe magistrala de date. Raportarea strii: Deoarece perifericele sunt mai lente, este important cunoaterea strii modulului de I/E. De exemplu, un modul poate fi ocupat cu execuia comenzii precedente de I/E, ceea ce poate fi raportat printr-un semnal de stare. Semnalele obinuite de stare sunt BUSY i READY. Exist de asemenea semnale pentru raportarea diferitelor condiii de eroare. Recunoaterea adreselor: Un modul de I/E trebuie s recunoasc o adres unic pentru fiecare periferic pe care l controleaz. Comunicaia cu echipamentele externe se realizeaz prin semnale de control, de stare i de date. Bufferarea datelor este o funcie esenial a unui modul de I/E. n timp ce rata de transfer la sau de la memorie sau UCP este ridicat, pentru cele mai multe periferice aceast rat este cu cteva ordine de mrime mai mic. Datele transferate de la memoria principal sunt bufferate de modulul de I/E i apoi sunt transmise la periferic cu rata acestuia. Modulul de I/E trebuie deci s opereze att la viteza UCP, ct i la cea a memoriei. n final, un modul de I/E trebuie s efectueze detecia erorilor i raportarea acestora ctre UCP. O clas a erorilor cuprinde disfuncionaliti mecanice i electrice raportate de echipament. O alt clas const n modificarea accidental a datelor

260

Arhitectura calculatoarelor

transmise de periferic la modulul de I/E. Se utilizeaz anumite coduri detectoare de erori pentru detectarea erorilor de transmisie, de exemplu bitul de paritate.

9.3.2. Structura unui modul de I/E


Modulele de I/E difer considerabil ca i complexitate i numr de echipamente externe pe care le controleaz. O schem bloc general a unui modul de I/E este prezentat n Figura 9.2.

Figura 9.2. Structura unui modul de I/E.

Modulul se conecteaz cu restul sistemului de calcul printr-un set de linii (de exemplu, magistrala sistem). Datele transferate la i de la modul sunt bufferate ntr-unul sau mai multe registre de date. Pot exista de asemenea unul sau mai multe registre de stare. Un registru de stare poate funciona i ca registru de control, pentru a primi informaii de control detaliate de la UCP. Logica din cadrul modulului interacioneaz cu UCP printr-un set de linii de control. Acestea sunt utilizate de UCP pentru a transmite comenzi la modulul de I/E. Anumite linii de control pot fi utilizate de modulul de I/E, de exemplu ca semnale de arbitraj sau de stare. Modulul trebuie de asemenea s recunoasc i s genereze adresele asociate cu echipamentele pe care le controleaz. Fiecare modul de I/E are o adres unic, sau dac acesta controleaz mai multe echipamente externe, un set unic de adrese. n sfrit, fiecare modul de I/E conine o logic specific interfeei cu fiecare echipament pe care l controleaz. Modulele de I/E pot avea complexiti diferite. Unele module pot ascunde detalii ca sincronizarea datelor, formatul acestora i detaliile electromecanice ale unui echipament extern, astfel nct UCP poate executa numai comenzi simple de citire i scriere, eventual de deschidere i nchidere pentru fiiere. n cazul altor module, cele mai multe operaii de control ale perifericelor sunt vizibile de ctre UCP.

9. Unitatea de I/E

261

Un modul de I/E care are o interfa de nivel nalt cu UCP, elibernd UCP de sarcina controlului perifericelor, este numit canal de I/E sau procesor de I/E. Un modul de I/E care este simplu i necesit un control detaliat al UCP este numit de obicei controler de I/E sau controler de dispozitiv. Controlerele de I/E se utilizeaz de obicei la microcalculatoare, n timp ce canalele de I/E sunt utilizate la calculatoarele mari (mainframe). Modulele de I/E complexe (canalele de I/E) sunt partiionate sub forma unor canale de I/E care controleaz unul sau mai multe controlere de I/E.

9.4. Interfaa extern


Interfaa dintre un modul de I/E i un periferic trebuie s fie adaptat tipului de periferic i modului de funcionare al acestuia. Exist dou tipuri principale de interfee. Interfeele paralele dispun de linii multiple care conecteaz modulul de I/E cu perifericul, fiind transferai simultan mai muli bii (un octet sau cuvnt). n cazul interfeelor seriale, exist o singur linie utilizat pentru transmiterea datelor, biii fiind transmii succesiv. Interfeele paralele se utilizeaz n mod obinuit pentru periferice mai rapide, ca discurile magnetice. Interfeele seriale sunt utilizate mai ales pentru terminale i unele tipuri de imprimante. n ambele cazuri, modulul de I/E trebuie s execute un dialog cu perifericul. De exemplu, dialogul pentru o operaie de scriere are urmtoarea form general: 1. Modulul de I/E activeaz un semnal de control, cernd permisiunea de a transmite datele. 2. Perifericul confirm cererea. 3. Modulul de I/E transfer datele (un octet, un cuvnt sau un bloc). 4. Perifericul confirm recepia datelor. O operaie de citire are loc n mod similar.

9.5. Metode de transfer a datelor


Exist urmtoarele metode principale de realizare a transferurilor de date: Transferul programat; Transferul prin ntreruperi; Transferul prin acces direct la memorie (DMA Direct Memory Access); Transferul prin canale de I/E.

262

Arhitectura calculatoarelor

9.5.1. Transferul programat


9.5.1.1. Principiul transferului programat
n cazul transferului programat, datele sunt transferate ntre UCP i modulul de I/E. UCP execut un program prin care controleaz direct operaia de I/E: detectarea strii perifericului, transmiterea unei comenzi de citire sau scriere, i transferul datelor. Dup transmiterea unei comenzi modulului de I/E, UCP trebuie s atepte pn la terminarea operaiei de I/E. Testarea strii perifericului se realizeaz de obicei prin citirea strii, executnd o bucl de instruciuni. La execuia unei instruciuni de I/E, UCP transmite o comand modulului de I/E corespunztor. Modulul de I/E execut aciunea respectiv i seteaz biii corespunztori n registrul de stare. UCP trebuie s testeze periodic starea modulului de I/E pentru a detecta terminarea operaiei.

Figura 9.3. Utilizarea transferului programat pentru citirea unui bloc de date.

9. Unitatea de I/E

263

Figura 9.3 prezint un exemplu de utilizare a transferului programat pentru citirea unui bloc de date de la un periferic (de exemplu, o nregistrare de pe o band) n memorie. Pentru fiecare cuvnt citit, UCP trebuie s rmn ntr-un ciclu de testare a strii pentru a determina dac respectivul cuvnt este disponibil n registrul de date al modulului de I/E.

9.5.1.2. Comenzi de I/E


Pentru execuia unei instruciuni de I/E, UCP transmite o adres, specificnd modulul de I/E i dispozitivul extern, i o comand de I/E. Exist patru tipuri de comenzi de I/E pe care le poate recepiona un modul de I/E atunci cnd este adresat de UCP. Acestea sunt clasificate ca fiind de control, de test, de citire i de scriere. O comand de control este utilizat pentru activarea unui periferic i pentru specificarea operaiei de executat. De exemplu, pentru o unitate de band magnetic, se poate specifica o operaie de rebobinare sau poziionare pe urmtoarea nregistrare. Aceste comenzi sunt specifice diferitelor tipuri de periferice. O comand de test este utilizat pentru testarea diferitelor condiii de stare asociate cu un modul de I/E i perifericele acestuia. UCP trebuie s determine dac: Perifericul este operaional i este disponibil; Ultima operaie lansat este terminat; Au aprut sau nu erori la execuia operaiei. O comand de citire determin obinerea unui octet sau cuvnt de date de la periferic i depunerea acestuia ntr-un buffer intern (registrul de date al modulului de I/E). UCP poate obine datele prin plasarea lor pe magistrala de date de ctre modulul de I/E. O comand de scriere determin preluarea de ctre modulul de I/E a unui octet sau cuvnt de pe magistrala de date i transmiterea acestuia perifericului.

9.5.1.3. Instruciuni de I/E


n general, exist mai multe dispozitive conectate la sistem prin module de I/E. Fiecrui dispozitiv i se atribuie o adres unic. Comanda de I/E transmis de UCP conine adresa dispozitivului. Deci fiecare modul de I/E trebuie s interpreteze liniile de adrese pentru a determina dac respectiva comand i este destinat. Atunci cnd UCP, memoria principal i sistemul de I/E partajeaz aceeai magistral, sunt posibile dou moduri de adresare: adresare cu mapare n memorie i adresare izolat. n cazul adresrii cu maparea n memorie, exist un singur spaiu de adrese pentru locaiile de memorie i dispozitivele de I/E. UCP trateaz registrele de stare i de date ale modulelor de I/E ca locaii de memorie i utilizeaz aceleai instruciuni att pentru accesul la memorie ct i la dispozitivele de I/E. De exemplu, cu 10 linii de adres pot exista n total 1024 locaii de memorie i adrese de I/E, n orice combinaie. n acest caz este necesar un singur semnal de citire i unul de scriere n memorie.

264

Arhitectura calculatoarelor

n cazul adresrii izolate, spaiul adreselor de I/E este izolat de cel al memoriei. Magistrala trebuie s aib linii de citire i scriere pentru memorie i linii de comand pentru intrare i ieire. Liniile de comand specific dac o adres se refer la o locaie de memorie sau un dispozitiv de I/E. Pentru ambele este disponibil toat gama adreselor. Pentru 10 linii de adres, pot exista 1024 locaii de memorie i 1024 adrese de I/E. Se exemplific cele dou tehnici de I/E programate. Figura 9.4 prezint interfaa pentru tastatura unui terminal, din punctul de vedere al programatorului.

Figura 9.4. Interfaa pentru tastatura unui terminal.

Pentru I/E mapate n memorie, se presupune c exist 10 bii de adres, spaiul de adrese fiind format din 512 locaii de memorie (locaiile 0-1FFh) i pn la 512 adrese de I/E (locaiile 200h-3FFh). Interfaa cu tastatura utilizeaz dou adrese. Adresa 300h este utilizat pentru registrul de date, iar adresa 301h pentru registrul de stare, care este utilizat i ca registru de control pentru recepionarea comenzilor UCP. Programul prezentat va citi un octet de la tastatur ntr-un registru acumulator al UCP. De notat c UCP execut o bucl de program pn cnd octetul este disponibil.
Adres 100h 101h 102h 103h 104h Instruciune Load AC Store AC 301h Load AC Jump if Sign = 0 Load AC Operand 1 301h 102h 300h ; Start citire tastatur ; Citire octet de stare ; Buclare ; Citire octet de date Comentariu

Pentru I/E izolate, presupunem c porturile de I/E sunt accesibile numai prin comenzi de I/E speciale, care activeaz liniile de comand de I/E de pe magistral.
Adres 100h 101h 102h 103h Instruciune Start I/E Test I/E Jump Not Ready In Operand 5 5 101h 5 Comentariu ; Start citire tastatur ; Test sfrit operaie ; Buclare ; Citire octet de date

Pentru cele mai multe UCP, exist un numr relativ mare de instruciuni diferite pentru referirea la memorie. Dac se utilizeaz I/E izolate, exist un numr mic de instruciuni de I/E. Deci, un avantaj al I/E mapate n memorie este c se poate utiliza un set extins de instruciuni, permind o programare mai eficient. Un dezavantaj este c se utilizeaz o parte din spaiul de adrese al memoriei.

9. Unitatea de I/E

265

Dezavantajul transferului programat, n varianta realizat prin citirea strii, este c UCP trebuie s atepte pn cnd perifericul devine disponibil, sau pn la terminarea operaiei. Performanele sistemului vor fi mult reduse. Pentru eliminarea acestui dezavantaj se poate utiliza transferul programat prin ntreruperi.

9.5.2. Transferul prin ntreruperi


ntreruperea reprezint suspendarea execuiei unui program de ctre un semnal extern UCP, indicnd producerea unui eveniment extern, sau de ctre un eveniment intern, indicnd apariia unei situaii de excepie n funcionarea UCP. ntreruperea se produce la terminarea execuiei instruciunii curente, deoarece execuia unei instruciuni nu este ntreruptibil. Dac sistemul de ntreruperi este validat (activat), se apeleaz o rutin de tratare a ntreruperii, asociat evenimentului care a generat ntreruperea. Dup servirea ntreruperii, se reia programul ntrerupt, din starea existent n momentul apariiei ntreruperii. n acest scop trebuie s se salveze contextul de lucru al UCP, i anume: Adresa de revenire, care reprezint coninutul contorului de program din momentul apariiei ntreruperii; Indicatorii de condiii i de stare ai UCP; Registrele interne utilizate de rutina de tratare; Registrele de comand de I/E care sunt modificate de rutina de tratare. Sursele de ntreruperi pot fi: Echipamentele periferice care solicit servicii (de exemplu, cereri de transfer). Elemente hardware de supraveghere a funcionrii normale a sistemului: circuite de detectare a erorii de paritate a memoriei, de sesizare a cderii tensiunii de alimentare etc. Evenimente interne: depiri la operaiile aritmetice, instruciuni inexistente etc. Exist dou metode pentru alegerea adresei rutinei de tratare. Ele se numesc ntreruperi nevectorizate, respectiv vectorizate. n cazul ntreruperilor nevectorizate, rutina de tratare se afl la o adres fix n memorie. La ntreruperile vectorizate, adresa este furnizat procesorului de ctre sursa de ntrerupere, sub forma unui vector de ntrerupere. La unele sisteme, vectorul de ntrerupere indic adresa de nceput a rutinei de tratare. La alte sisteme, vectorul de ntrerupere reprezint o referin la o locaie de memorie unde este memorat adresa de nceput a rutinei de tratare. n cazul transferului prin ntreruperi, UCP transmite o comand modulului de I/E, dup care execut alte operaii. Modulul de I/E va ntrerupe UCP atunci cnd este pregtit pentru transferul datelor, UCP va executa transferul, dup care va continua operaiile anterioare. Pentru intrare, modulul de I/E primete o comand de citire de la UCP. Modulul de I/E va ncepe citirea datelor de la un periferic asociat. Dup depunerea datelor n registrul de date al modulului, acesta genereaz o cerere de ntrerupere, i apoi ateapt

266

Arhitectura calculatoarelor

pn cnd datele sunt solicitate de UCP. n acest moment, modulul plaseaz datele pe magistrala de date, fiind pregtit pentru o alt operaie de I/E. Din punctul de vedere al UCP, operaiile efectuate pentru intrare sunt urmtoarele. UCP transmite o comand de citire, iar apoi execut alte operaii (alte programe n cazul multiprelucrrii). La sfritul fiecrei instruciuni, UCP testeaz dac exist cereri de ntrerupere. La apariia unei cereri de la un modul de I/E, UCP salveaz contextul programului i execut rutina de tratare a ntreruperii. n aceast rutin UCP citete un cuvnt de date de la modulul de I/E i l depune n memorie. Apoi reface contextul programului ntrerupt i continu execuia acestuia. Aceast procedur continu pn cnd se termin de transferat numrul de cuvinte necesare. Figura 9.5 prezint utilizarea transferului prin ntreruperi pentru citirea unui bloc de date.

Figura 9.5. Utilizarea transferului prin ntreruperi pentru citirea unui bloc de date.

9. Unitatea de I/E

267

9.5.3. Transferul prin acces direct la memorie


Transferul programat, chiar dac se efectueaz prin ntreruperi, necesit intervenia UCP pentru transferul datelor ntre memorie i un modul de I/E, pentru fiecare octet sau cuvnt. Acest mod de transfer are deci dou dezavantaje: 1. Rata de transfer este limitat de viteza cu care UCP poate testa i deservi un dispozitiv. 2. UCP este ocupat cu gestionarea transferului, fiind necesar execuia unui anumit numr de instruciuni pentru fiecare transfer. Transferul prin DMA elimin aceste dezavantaje, prin executarea transferului direct ntre memoria intern i sistemul de I/E, participarea UCP fiind foarte redus. Este necesar un modul suplimentar, numit modul DMA sau controler DMA, care poate prelua controlul asupra magistralelor sistemului, genernd semnalele de comand necesare. Structura general a unui modul DMA este prezentat n Figura 9.6.

Figura 9.6. Structura general a unui modul DMA.

Modulul DMA trebuie s conin urmtoarele elemente principale: O logic pentru asigurarea legturii cu memoria (semnale de citire i scriere); O linie de cerere DMA ctre memorie i o linie de acceptare DMA de la UCP; O logic de arbitraj a prioritilor n cazul existenei mai multor canale; Un registru de comenzi pentru validarea modulului DMA, selectarea prioritii canalelor, selectarea modului de lucru etc. Pentru fiecare canal, trebuie s existe urmtoarele registre: Registru de adrese, pentru pstrarea adresei de nceput a transferului i a adresei curente;

268

Arhitectura calculatoarelor Registru numrtor, pentru pstrarea numrului de cuvinte rmase de transferat; Registru de stare, care indic starea activat sau neactivat a canalului i condiia de terminare a transferului.

Controlerul DMA trebuie s preia controlul asupra magistralei pentru a efectua transferul datelor cu memoria. De aceea, controlerul DMA trebuie s utilizeze magistrala numai cnd aceasta nu este utilizat de UCP, sau s determine ca UCP s suspende temporar operaiile. Rezult dou metode de efectuare a transferului DMA: 1. Prin utilizarea intervalelor de timp n care UCP nu face acces la memorie; metoda se numete transfer prin furt de ciclu (cycle stealing), deoarece modulul DMA fur un ciclu de memorie de la UCP. Activitatea UCP nu este influenat de operaiile DMA, cu excepia cazului cnd se ajunge la un punct n care este necesar memoria. 2. Prin suspendarea operaiilor efectuate de UCP n timpul transferului i trecerea magistralei n starea de nalt impedan. Ciclul de instruciuni se va relua apoi din punctul n care a fost suspendat. Metoda se numete transfer n rafal (data break). Figura 9.7 indic punctele din ciclul de instruciune n care activitatea UCP poate fi suspendat. n fiecare caz, activitatea UCP este suspendat naintea momentului n care necesit utilizarea magistralei. Controlerul DMA transfer un cuvnt i returneaz controlul UCP. De notat c aceasta nu este o ntrerupere; nu se salveaz contextul programului i nu se execut alte operaii, ci UCP i suspend activitatea pentru un ciclu de magistral.

Figura 9.7. Puncte de suspendare a activitii UCP pentru DMA i ntreruperi.

Pentru citirea sau scrierea unui bloc de date, UCP transmite controlerului DMA o secven de iniializare, care trebuie s conin urmtoarele informaii: Sensul transferului (citire sau scriere); Adresa echipamentului de I/E implicat;

9. Unitatea de I/E Adresa de nceput a zonei de memorie cu care se efectueaz transferul; Numrul de octei sau de cuvinte care trebuie transferate. Pentru transmiterea acestor informaii se utilizeaz transferul programat.

269

UCP va executa alte operaii, iar controlerul DMA va solicita controlul asupra

magistralei, genernd adresele i semnalele de comand pentru efectuarea transferului. Se incrementeaz registrul adresei curente i se decrementeaz numrtorul de cuvinte. Dup acest ciclu DMA, n care s-a transferat un cuvnt, se continu cu alte cicluri sau se d controlul UCP. La terminarea transferului, controlerul genereaz un semnal de ntrerupere ctre UCP. Astfel, interaciunea dintre UCP i sistemul de I/E este la nivel de bloc, UCP intervenind numai la nceputul i sfritul transferului (Figura 9.8). Eficiena este mult mai ridicat dect n cazul transferului prin ntreruperi.

Figura 9.8. Utilizarea transferului prin DMA pentru citirea unui bloc de date.

Exist mai multe configuraii ale unui sistem de I/E care utilizeaz transferul prin DMA (Figura 9.9). n primul exemplu (Figura 9.9(a)), toate modulele partajeaz aceeai magistral sistem. Modulul DMA utilizeaz I/E programate pentru transferul datelor ntre memorie i un modul de I/E. Aceast configuraie, dei poate fi ieftin, este ineficient. Fiecare transfer a unui cuvnt necesit dou cicluri de magistral, ca i n cazul transferului programat prin intermediul UCP. Numrul ciclurilor de magistral poate fi redus prin integrarea funciilor DMA i a celor de I/E. n acest caz exist o cale ntre modulul DMA i unul sau mai multe module de I/E, cale care nu include magistrala sistem (Figura 9.9(b)). Logica DMA poate fi o parte a unui modul de I/E, sau poate fi un modul separat care controleaz unul sau mai multe module de I/E. n ultimul exemplu (Figura 9.9(c)) modulele de I/E se conecteaz la modulul DMA printr-o magistral de I/E. Astfel se reduce numrul interfeelor din modulul DMA la una singur i se permite extinderea sistemului. n ultimele dou cazuri, magistrala sistem pe care modulul DMA o partajeaz cu UCP i memoria este utilizat de modulul

270

Arhitectura calculatoarelor

DMA numai pentru transferul datelor cu memoria. Transferul datelor ntre modulul DMA

i modulele de I/E nu utilizeaz magistrala sistem.

Figura 9.9. Diferite configuraii ale unui sistem de I/E care utilizeaz transferul prin DMA.

9.5.4. Transferul prin canale de I/E


9.5.4.1. Principiul transferului prin canale de I/E
Dei accesul direct la memorie elibereaz UCP de numeroase operaii de I/E, n cazul perifericelor rapide vor fi necesare numeroase cicluri de magistral pentru referinele la memorie. n timpul acestor cicluri, UCP trece n starea de ateptare. Furturile de ciclu vor satura magistrala, i chiar dac se va genera o singur ntrerupere la fiecare bloc transferat, se consum un anumit timp pentru tratarea ntreruperilor. Pentru a se elimina aceste dezavantaje, modulele de I/E au fost mbuntite, devenind procesoare care dispun de un set de instruciuni specializat pentru I/E. UCP

9. Unitatea de I/E

271

transmite o comand procesorului de I/E pentru a executa un program de I/E din memorie. Acesta execut instruciunile programului fr intervenia UCP. Astfel este posibil specificarea de ctre UCP a unei secvene de operaii de I/E i ntreruperea UCP numai la terminarea ntregii secvene. Unele module de I/E au o memorie local proprie, fiind de fapt calculatoare specializate care pot controla un set larg de dispozitive de I/E, cu o intervenie minim a UCP. Modulele de I/E care pot executa programe sunt numite n unele cazuri canale de I/E, iar n alte cazuri procesoare de I/E (mai ales cele care dispun de o memorie local proprie). Structura unui calculator cu un canal de I/E este prezentat n Figura 9.10. Comunicaia cu memoria se poate realiza prin DMA. Canalul de I/E asigur o cale pentru transferul datelor ntre diferitele periferice i memorie. UCP iniiaz transferul de I/E, dup care canalul de I/E funcioneaz independent de UCP i continu transferul datelor ntre periferice i memorie.

Figura 9.10. Structura unui calculator cu un canal de I/E.

Canalul poate restructura datele de la diferite periferice. De exemplu, poate fi necesar citirea mai multor caractere de la un dispozitiv de intrare i mpachetarea lor ntr-un cuvnt naintea transferului n memorie. Datele sunt preluate de canal la viteza dispozitivului n timp ce UCP execut un program. Dup asamblarea datelor de intrare ntr-un cuvnt de memorie, acesta se transfer de la canalul de I/E direct n memorie printr-un furt de ciclu. Similar, un cuvnt transferat din memorie la canalul de I/E va fi transmis la un dispozitiv de ieire la viteza i numrul de bii ai acestuia. De obicei, UCP are sarcina iniierii operaiilor de I/E, prin instruciuni de start al unui transfer i de test al strii operaiilor. Canalul solicit o intervenie a UCP printr-o cerere de ntrerupere, i rspunde la cererile UCP prin plasarea unui cuvnt de stare ntr-o locaie de memorie, cuvnt care poate fi examinat de UCP. Pentru execuia unei operaii de I/E, UCP transfer o instruciune canalului, indicnd perifericul care trebuie utilizat i adresa de nceput a instruciunilor suplimentare. Instruciunile citite de canal din memorie se numesc comenzi, pentru a le deosebi de instruciunile transmise de UCP canalului. Instruciunile i comenzile au funcii similare. Cuvintele de comand sunt pregtite i sunt depuse de UCP n memorie.

272

Arhitectura calculatoarelor

Acestea reprezint un program de canal. UCP informeaz canalul asupra locaiilor n care va gsi cuvintele de comand. Exist dou tipuri de canale de I/E mai utilizate: canale selectoare i canale multiplexoare. Un canal selector controleaz mai multe periferice rapide, la un moment dat fiind dedicat pentru transferul datelor cu un singur periferic. Canalul de I/E selecteaz un periferic i efectueaz transferul datelor. Fiecare periferic, sau un set redus de periferice, este gestionat de un controler (modul de I/E). Astfel, canalul de I/E are rolul de a gestiona aceste controlere de I/E n locul UCP. Un canal multiplexor poate gestiona transferuri simultane cu mai multe periferice, prin multiplexare n timp. Pentru periferice lente, un multiplexor la nivel de octet accept sau transmite caractere la dispozitive multiple. Pentru periferice rapide, un multiplexor la nivel de bloc transfer blocuri de date ntre diferite dispozitive.

9.5.4.2. Comunicaia dintre UCP i canalul de I/E


n cele mai multe cazuri, aceast comunicaie se realizeaz prin mesaje depuse n memorie. Se va prezenta printr-un exemplu simplificat modul n care poate avea loc comunicaia dintre UCP i canal. UCP iniiaz o operaie de I/E printr-o instruciune de I/E adresat canalului. Un format posibil al acestei instruciuni este prezentat n Figura 9.11.

Figura 9.11. Formatul unei instruciuni tipice pentru iniierea unei operaii de I/E.

Codul instruciunii are urmtoarele cmpuri: 1. Un cod de operaie care specific operaia de executat; 2. O adres de dispozitiv care specific adresa unui anumit dispozitiv de I/E conectat la canal; 3. O adres de memorie care va fi utilizat de canal atunci cnd acesta rspunde la instruciunea UCP. Secvena de operaii care se execut este ilustrat n Figura 9.12. UCP transmite o instruciune de test I/E ctre canal. Canalul rspunde prin depunerea unui cuvnt de stare n memorie, la adresa specificat de cmpul de adres al instruciunii, care indic starea canalului i a dispozitivului de I/E.

9. Unitatea de I/E

273

UCP testeaz cuvntul de stare din memorie i decide operaia urmtoare. UCP transmite apoi instruciunea de lansare a transferului de I/E. Aceast instruciune specific adresa primului cuvnt de comand pentru operaia de I/E.

Figura 9.12. Operaiile executate pentru transferul prin canale de I/E. UCP poate continua apoi execuia unui alt program n timp ce canalul este ocupat cu transferul. La terminarea transferului, canalul transmite o cerere de ntrerupere ctre UCP. UCP rspunde la aceast cerere prin transmiterea instruciunii de citire a strii canalului. Canalul va plasa un cuvnt de stare n locaia de memorie specificat de instruciune, care indic terminarea normal a transferului sau apariia unor erori.

274

Arhitectura calculatoarelor

Cuvintele de comand specific programul care este executat de canal. Adresa cuvintelor de comand este transmis de UCP printr-o instruciune de start I/E. Formatul tipic al unui cuvnt de comand este indicat n Figura 9.13.

Figura 9.13. Formatul tipic al unui cuvnt de comand pentru un canal de I/E.

Cmpurile cuvntului de comand sunt urmtoarele: 1. Adresa bufferului utilizat pentru transfer; 2. Contorul de cuvinte indic lungimea bufferului, deci numrul de cuvinte pe care le conine; 3. Cmpul de operaie specific operaia care trebuie executat: o intrare, o ieire sau alte operaii; 4. Cmpul special indic o funcie specific unui anumit echipament de I/E, cteva din acestea fiind indicate n figur. Canalul de I/E asigur transferul datelor ntre mai multe periferice i memorie. Canalul i UCP utilizeaz aceeai memorie, astfel c numrul de periferice este limitat de timpul de acces al memoriei. Unele uniti rapide, ca discurile magnetice, pot utiliza un numr mare de cicluri de memorie. n acest caz, viteza UCP va fi micorat, deoarece va trebui s atepte terminarea unui acces la memorie de ctre canal naintea utilizrii memoriei.