Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
» Arhitectura sistemelor de calcul


Arhitectura sistemelor de calcul


ARHITECTURA SISTEMELOR DE CALCUL

1.1. Prelucrarea datelor.

In societatea actuala, numita societate avansat informatizata, sau informa- tionala, productia de baza este cea intelectuala iar resursa cea mai importanta a devenit informtia. Prin informatie se intelege acea entitate care inlatura total sau partial starea de nedeterminare, pe baza unui mesaj adresat unui receptor.



Privind informatia ca si o crestere a cunostintelor ce pot fi extrase din date, rezulta ca datele reprezinta materia prima din care se obtin informatiile.

Astfel informatia este considerata ca semnificatia semantica a datelor, adica date astfel prelucrate incat sa fie utile unui receptor.

Datele sunt fapte, evenimente, notiuni sau instructiuni reprezentate sub o forma codificata, adecvata culegerii, transmiterii, comunicarii, interpretarii sau prelucrarii. Prelucrarea datelor consta in executarea sistematica de operatii asupra lor (de exemplu: culegere, codificare, selectionare, stocare, manipulare, transmitere).

Transmiterea datelor (a informatiilor) se realizeaza cu ajutoru1 semnalelor.

Se numeste semnal o valoare dependenta de timp si spatiu, atribuita unui fenomen fizic care transporta date. Echipamentele numerice de prelucrare a datelor utilizeaza semnale discrete.

Stocarea informatiilor se face pe suporturi de date, adica pe obiecte materiale, in care sau pe care o marime fizica variabila poate reprezenta date.

Datele sunt depuse pe suporturi sub forma de simboluri sau caractere.

Reprezentarea datelor sub forma discreta se face cu ajutorul codurilor.

Un cod este un ansamblu de reguli care specifica modul in care se pot reprezenta datele intr-o forma discreta. A codifica inseamna a reprezenta date sau un program sub o forma simbolica, acceptata de masina de prelucrat date.

Orice proces de prelucrare a datelor cuprinde:

metoda de prelucrare;

mijloacele tehnice utilizate.

Caracteristica unui sistem informatic consta in faptul ca are ca element de culegere, stocare, prelucrare si transmitere a datelor un calculator electronic.

Structura generala a unui sistem de calcul

Un sistem de calcul este format din 3 unitati de baza, care sunt conectate intre ele prin 3 cai separate de comunicatie, numite magistrale sau bus (Fig. 1.1. .

In sistemul de calcul sunt vehiculate trei categorii de informatii:

  • date care trebuie prelucrate;
  • instructiuni care indica prelucrarile ce trebuie efectuate asupra datelor (adunare, scadere, comparare etc.)
  • adrese care permit localizarea diferitelor date si instructiuni

Sarcina unui sistem de calcul este de a executa instructiuni (grupate in secvente coerente, care urmaresc un obiectiv bine stabilit, numite programe) asupra datelor; adresele joaca un rol auxiliar, dar nu mai putin important.

Fig. 1.1.

Unitatea de memorie are rolul de a stoca atat instructiunile, cat si datele asupra carora vor opera instructiunile. Instructiunile unui program trebuie aduse in memorie anterior inceperii executiei programului respectiv. De asemenea, unele date se vor afla in memorie inaintea pornirii prelucrarii, iar rezultatele prelucrarii se vor memora in timpul executiei programului. Aceasta memorie, realizata in diverse tehnologii de-a lungul evolutiei calculatoarelor, constituie suportul fizic necesar desfasurarii operatiilor executate de CPU.

Structural, memoria este formata dintr-un numar mare de celule independente (numite si locatii), fiecare celula putand memora o valoare.

Pentru organizarea si regasirea informatiilor in memorie se folosesc asa-numitele adrese. O adresa este de fapt un numar care identifica in mod unic o locatie de memorie. Pentru accesarea unei informatii din memorie se furnizeaza adresa acelei informatii, iar circuitele de control ale memoriei vor furniza continutul locatiei, care reprezinta informatia ceruta. Similar se petrec lucrurile si la scrierea in memorie.

Tehnologic, unele dispozitive de memorie pot retine informatia numai cand sunt alimentate electric ( memorie volatila), in timp ce altele pastreaza informatia si atunci cand nu sunt alimentate electric, formand memoria nevolatila. Aceasta din urma este folosita in mod special la stocarea programelor pentru initializarea calculatorului si a sistemului de operare.

Unitatea centrala de prelucrare (CPU) are rolul de a executa instructiunile.

Din acest motiv, CPU reprezinta componenta cea mai importanta a sistemului de calcul si poate controla activitatea celorlalte componente. Deoarece atat instructiunile, cat si datele prelucrate de instructiuni se gasesc in memorie, executia unei instructiuni presupune efectuarea de catre CPU a urmatoarei secvente de actiuni:

  • Depunerea pe busul de adrese a unei informatii care localizeaza adresa de memorie ce contine campul de cod al instructiunii (faza de adresare);
  • Citirea codului instructiunii si depunerea acestuia intr-un registru intern al decodificatorului de instructiuni. Aceasta informatie este vehiculata pe busul de date (faza de citire);
  • Decodificarea codului instructiunii, in urma careia CPU va cunoaste ce instructiune are de executat si ca urmare pregateste modulele ce vor participa la instructiunea respectiva (faza de decodificare);
  • Executarea efectiva a operatiei specificate de instructiune - faza de executie propriu-zisa.

Dupa terminarea executiei unei instructiuni, se continua cu extragerea instructiunii urmatoare si trecerea ei prin secventele amintite s.a.m.d.

Dispozitivele de intrare/iesire (I/E), numite si dispozitive periferice, permit introducerea in calculator a informatiilor de pe suporturi externe si extragerea informatiilor din calculator si depunerea lor pe suporturi externe.

Functional, aceste dispozitive de I/E pot fi apelate de catre CPU similar cu memoria, ele dispunand de asemenea de cate un set de adrese.

In mod clasic, schimbul de informatii cu exteriorul se face sub controlul CPU, dar exista tehnici, care vor fi amintite mai tarziu, prin care accesul la memorie se poate face si cu o interventie minima a CPU (asa-numitele transferuri DMA - Direct Memory Access).

Exista diferite tipuri de dispozitive periferice in functie de suporturile pe care le prelucreaza. Suporturile de inregistrare sunt medii materiale capabile sa pastreze, permanent sau temporar, informatii. Suporturile pot fi reutilizabile (cele magnetice) sau nereutilizabile (de exemplu, hartia).

Suporturile magnetice, inregistrand informatie, contribuie la cresterea capacitatii de memorare a unui sistem de calcul si alcatuiesc memoria externa a unui sistem de calcul.

Spre deosebire de memoria interna, continutul celei externe nu se pierde o data cu intreruperea curentului electric. In plus, memoria interna este cea cu care lucreaza direct unitatea centrala, deci, daca este necesar sa fie prelucrate informatii din memoria externa (discheta, disc magnetic), acestea se vor transfera intai in memoria interna a calculatorului.

Discul magnetic (hard-disk-ul) nu trebuie confundat cu memoria interna chiar daca se gaseste in interiorul calculatorului.

Dispozitivele de intrare asigura citirea informatiilor de intrare (date si programe) de pe medii externe si introducerea lor in memoria calculatorului in reprezentari interne adecvate fiecarui tip de data.

Dintre dispozitivele de intrare folosite astazi amintim: tastatura, mouse-ul, creionul optic, scanner-ul (dispozitiv specializat in introducerea de imagini), cititorul de disc compact (CD-ROM), unitatea de discheta (asigura citirea sau scrierea informatiei pe discheta, deci este un dispozitiv de intrare-iesire), dispozitivul de citire-scriere pe hard-disk (disc magnetic) etc. Dintre

Dispozitivele de iesire folosite astazi sunt: monitorul, a carui interfata fizica cu calculatorul foloseste o placa video, imprimanta, plotter-ul (pentru reprezentari grafice), unitati de discheta, hard-disk, inscriptor de CD (care permite si citirea CD-urilor).

Pentru conectarea unui dispozitiv periferic la un sistem de calcul, trebuie sa existe o interfata fizica (de exemplu, placa video pentru monitor, placa de sunet pentru difuzoare etc.) si una logica. Interfata logica este un program care asigura utilizarea perifericului prin intermediul sistemului de operare (partea de programe a sistemului de calcul) si se numeste driver.

Busul de date este acea cale care leaga cele 3 blocuri functionale (o parte a sa poate sa iasa si in exteriorul sistemului) si pe care se vehiculeaza datele propriu-zise (numere sau caractere) sau instructiunile programului.

Busul de adrese este calea pe care sunt transmise de CPU adresele catre memorie, cand se face o operatie cu memoria (citire sau scriere), sau se vehiculeaza adresele dispozitivului de I/O in cazul unui transfer cu un periferic.

Busul de comenzi vehiculeaza semnalele de comanda si control intre toate aceste blocuri si astfel permite o sincronizare armonioasa a functionarii componentelor sistemului de calcul.

In marea majoritate a cazurilor, semnalele de comanda sunt emise de catre CPU si servesc la controlul functionarii celorlalte componente.

Transferul de date in sistemele de calcul

Functiile de baza ale unui sistem de calcul sunt:

  • transferul datelor;
  • stocarea datelor;
  • prelucrarea datelor;

Sistemele de calcul sunt formate dintr-o retea de subsisteme care pot avea urmatoarele functii:

a.       Preluarea datelor si a instructiunilor de la utilizator si transformarea acestora in informatii prelucrabile de catre un dispozitiv numeric, functie care este realizata de echipamentele periferice de intrare.

b.      Memorarea informatiilor referitoare la datele de intrare, a instructiunilor si a rezultatelor partiale sau finale de prelucrare, functie indeplinita in principal de memoria centrala interna cu viteza foarte mare, dar cu capacitate limitata de stocare. Memorarea unui volum mare de date, cu viteze mai mici de exploatare se realizeaza cu ajutorul unor echipamente periferice numite memorii externe (banda magnetica, disc magnetic) sau echipamentele periferice de intare/iesire.

c.       Realizarea de calcule aritmetice si logice asupra operanzilor din memoria centrala si depunerea rezultatelor in memoria centrala se face cu ajutorul unitatii aritmetice si logice (UAL).

d.      Decodificarea instructiunilor si interpretarea lor, precum si luarea unor decizii asupra operatiilor si transferurilor care urmeaza sa fie executate este realizata de sistemul de comanda (SCd).

e.       Transformarea rezultatelor din memorie in informatii exploatabile de utilizator si furnizarea acestora catre utilizator este realizata de echipamentele periferice de iesire.

f.       Controlul transferului de date, intre diferitele elemente ale sistemului de calcul prin sincronizarea transmisiei informatiei, detectarea si semnalarea erorilor, coordonarea activitatilor etc. (canale de I/E, unitati de comanda, procesoare de I/E).

Echipamentele periferice reprezinta elementele componente de baza ale sistemului de intrare/iesire si implicit ale sitemului de calcul in ansamblu.

Proiectarea si asamblarea unui sistem de intrare/iesire corespunzator, implica rezolvarea unor probleme dificile de conectare a unitatilor de mare viteza, cu dispozitive, ce au viteze mici si care trebuie sa realizeze operatii mecanice.

In fig. 1.2 este prezentata structura de baza a unui SI/E standard care cuprinde: canale de transfer, procesoare de I/E, unitatile de legatura(UL) ale echipamentelor periferice (EP), precum si interfetele dintre aceste componente.

Fig. 1.2

Legaturile de date sunt reprezentate cu linie dubla, iar legaturile de comanda sau de raspuns sunt figurate cu linie simpla. Fiecare element contine unitati de comanda care asigura vehicularea corespunzatoare a datelor, a semnalelor de comanda, a adreselor si a semnalelor de raspuns.

Unitatea de I/E

Pe langa unitatea centrala si 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 efectueaza transferul informatiilor intre memoria principala a sistemului de calcul si mediul exterior al acestuia: suporturile externe de informatie si alte sisteme de calcul cu care se interconecteaza.

In figura 1.3 este prezentata structura unui sistem de calcul si a unei unitati tipice de I/E.

Fig 1.3

Componentele principale ale unei unitati de I E sunt urmatoarele:

  • Modulele de I E;
  • Echipamentele periferice;
  • Interconexiunile dintre memorie si echipamentele periferice (magistralele);
  • Interfetele dintre aceste componente.

Motivele pentru care perifericele nu se conecteaza direct la magistrala sistemului si se utilizeaza module de I E sunt urmatoarele:

  • Exista o mare varietate de periferice cu diferite metode de functionare;
  • Rata de transfer a perifericelor este adesea mult mai mica decat cea a memoriei si a UCP;
  • Perifericele utilizeaza de multe ori formate diferite ale datelor si cuvinte de lungimi diferite, fata de calculatorul la care sunt conectate.

Exista trei categorii de echipamente periferice, dupa utilizarea acestora:

  • Pentru transportul datelor intre procesor si utilizator: echipamente de achizitie si prezentare a datelor;
  • Pentru transferul datelor intre mai multe procesoare: echipamente de retea;
  • Pentru memorarea informatiilor, ca parte a ierarhiei de memorii a procesorului: echipamente de memorare.

Anumite periferice au functii multiple.

Canalul de intrare-iesire

Viteza de lucru a perifericelor difera in functie de performantele lor tehnologice (foarte mica la dispozitivele exclusiv mecanice) dar este mult mai mica decat a unitatii centrale, care functioneaza pe principii exclusiv electronice.

Dupa ce unitatea de comanda cere perifericelor executia unei operatii de intrare-iesire, ea asteapta un timp indelungat (fata de timpii ei de lucru) pentru terminarea operatiei. Astfel, apare un gol in activitatea unitatii de comanda.

Problema a fost rezolvata prin introducerea unui bloc auxiliar de comanda care sa preia controlul asupra operatiilor de intrare-iesire efectuate cu ajutorul perifericelor, dupa initierea lor de catre unitatea de comanda.

Prin intermediul procesorului auxiliar care controleaza operatiile cu perifericele se permite cuplarea, indirecta, la unitatea centrala, a mai multor dispozitive periferice. Aceasta unitate functionala a calculatoarelor poarta numele de canal de intrare-iesire.

Rolul sau a fost preluat la sistemele de calcul medii si mari de unitatea de schimburi multiple (USM), la minicalculatoare - de dispozitivul de control al magistralei de comunicatii, iar la microcalculatoare - de o extensie a magistralei.

In timp ce procesorul specializat in operatii de intrare-iesire controleaza schimbul de date intre memorie si periferice, blocul de comanda poate superviza executia altor operatii, dintr-un alt program.

Dupa terminarea unei operatii de intrare-iesire, unitatea de comanda este anuntata, printr-un semnal numit intrerupere, ca citirea sau scrierea s-a incheiat, astfel incat poate continua executia programului respectiv.

In fig. 1.4 este data schema de conectare a unui canal de intrare iesire in schema generala a unui calculator.

Fig. 1.4

Functiile modulelor de I/E

Un modul de I/E are rolul de a efectua controlul echipamentelor externe si transferul datelor intre aceste echipamente si memoria principala si/sau registrele UCP.

Deci, un modul de I/E trebuie sa dispuna de o interfata interna in cadrul calculatorului cu UCP si memoria principala) si o interfata externa (cu echipamentul extern).

Functiile si cerintele principale ale unui modul de I/E sunt:

  • Control si sincronizare;
  • Comunicatia cu UCP;
  • Comunicatia cu echipamentele externe;
  • Bufferarea datelor;
  • Detectia erorilor.

In orice moment de timp, UCP poate comunica cu unul sau mai multe echipamente externe. Resursele interne, ca memoria interna si magistrala de sistem, trebuie partajate intre mai multe activitati, inclusiv operatiile de I/E ale datelor. Functia de I/E necesita deci o operatie de control si sincronizare, pentru coordonarea fluxului de date intre resursele interne si echipamentele externe.

Controlul transferului de date de la un echipament extern la UCP poate cuprinde urmatoarele etape:

  • UCP interogheaza modulul de I/E pentru a testa starea echipamentului conectat;
  • Modulul de I/E returneaza starea echipamentului
  • Daca echipamentul este operational si este pregatit pentru transmisia datelor, UCP solicita transferul datelor, printr o comanda adresata modulului de I E;
  • Modulul de I E preia un octet sau cuvant de date de la echipamentul de I E;
  • Datele sunt transferate de la modulul de I/E la UCP.

Daca sistemul utilizeaza o magistrala, fiecare interactiune dintre UCP si modulul de I/E implica una sau mai multe operatii de arbitrare a magistralei. Rezulta ca modulul de I/E trebuie sa permita comunicatia cu UCP si cu echipamentul extern. Comunicatia cu UCP cuprinde:

  • Decodificarea comenzilor: Modulul de I/E accepta comenzi de la UCP. Aceste comenzi sunt transmise de obicei ca semnale pe magistrala de control.
  • Transmiterea datelor Datele sunt transmise intre UCP si modulul de I E pe magistrala de date.
  • Raportarea starii Deoarece perifericele sunt mai lente, este importanta cunoasterea starii modulului de I E.
  • Recunoasterea adreselor: Un modul de I/E trebuie sa recunoasca o adresa unica pentru fiecare periferic pe care il controleaza.

Comunicatia cu echipamentele externe se realizeaza prin semnale de control, de stare si de date.

Bufferarea datelor este o functie esentiala a unui modul de I/E.

In timp ce rata de transfer la sau de la memorie sau UCP este ridicata, pentru cele mai multe periferice aceasta rata este cu cateva ordine de marime mai mica.

Datele transferate de la memoria principala sunt bufferate de modulul de I E si apoi sunt transmise la periferic cu rata acestuia.

Modulul de I/E trebuie deci sa opereze atat la viteza UCP, cat si la cea a memoriei

In final, un modul de I/E trebuie sa efectueze detectia erorilor si raportarea acestora catre UCP. O clasa a erorilor cuprinde disfunctionalitati mecanice si electrice raportate de echipament.

O alta clasa consta in modificarea accidentala a datelor

transmise de periferic la modulul de I/E.

Se utilizeaza anumite coduri detectoare de erori pentru detectarea erorilor de transmisie, de exemplu bitul de paritate.

Structura unui modul de I/E

Modulele de I E difera considerabil ca si complexitate si numar de echipamente externe pe care le controleaza. O schema bloc generala a unui modul de I/E este prezentata in figura 1.5.

Fig 1.5.

Modulul se conecteaza cu restul sistemului de calcul printr un set de linii (de exemplu, magistrala sistem). Datele transferate la si de la modul sunt bufferate intr-unul sau mai multe registre de date. Pot exista de asemenea unul sau mai multe registre de stare. Un registru de stare poate functiona si ca registru de control, pentru a primi informatii de control detaliate de la UCP. Logica din cadrul modulului interactioneaza 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 sa recunoasca si sa genereze adresele asociate cu echipamentele pe care le controleaza. Fiecare modul de I/E are o adresa unica, sau daca acesta controleaza mai multe echipamente externe, un set unic de adrese.

In sfarsit, fiecare modul de I E contine o logica specifica interfetei cu fiecare echipament pe care il controleaza.

Modulele de I E pot avea complexitati diferite. Unele module pot ascunde detalii ca sincronizarea datelor, formatul acestora si detaliile electromecanice ale unui echipament extern, astfel incat UCP poate executa numai comenzi simple de citire si scriere, eventual de deschidere si inchidere pentru fisiere. In cazul altor module, cele mai multe operatii de control ale perifericelor sunt vizibile de catre UCP.

Un modul de I/E care are o interfata de nivel inalt cu UCP, eliberand UCP de sarcina controlului perifericelor, este numit canal de I E sau procesor de I E.

Un modul de I/E care este simplu si necesita un control detaliat al UCP este numit de obicei controler de I E sau controler de dispozitiv.

Controlerele de I/E se utilizeaza de obicei la microcalculatoare, in timp ce canalele de I/E sunt utilizate la calculatoarele mari (mainframe).

Modulele de I/E complexe (canalele de I/E) sunt partitionate sub forma unor canale de I/E care controleaza unul sau mai multe controlere de I E

1.8. Structura ierarhizata a sistemului de I/E

Sistemele de I/E au o structura ierarhizata (fig.1.6.) caracterizata prin niveluri de ierarhizare, intre care sunt vehiculate 4 tipuri de vectori: de date, de adresa, de comanda si de raspuns.

Daca vehicularea semnalelor de comanda are loc de "sus in jos" prin toate nivelele, semnalele de raspuns se pot vehicula in sens invers pentru realizarea dialogului la toate nivelele, dar exista si posibilitatea generarii acestor semnale de catre un anumit nivel si apoi vehicularea acestora spre nivelul superior, vehiculare care este specifica semnalelor de eroare sau in general semnalelor de stare.

Transferul de date implica urmatorii pasi:

  • verificarea starii perifericului ( daca este disponibil);
  • activarea, conectarea perifericului;
  • transferul datelor;
  • dezactivarea (deconectarea) perifericului;

Fig. 1.6.

Transferul de date se poate face programat in cazul echipamentelor periferice care realizeaza prelucrarea datelor secvential sau autonom, deci prelucrarea datelor si vehicularea lor se poate face in paralel.

In cazul transferului programat procesorul central realizeaza controlul fiecarui transfer, prin executia uneia sau mai multor instructiuni. Pentru echipamentele care nu necesita pasul de activare (de ex. echipamentele de vizualizare) are loc executarea instructiunii de I/E, de citire si, respectiv, de scriere, in timp ce procesorul se afla in starea corespunzatoare buclei de asteptare.

Pentru echipamentele care necesita activare, vehicularea datelor se face de regula in blocuri de informatii de diferite lungimi, durata de activare reducand foarte mult viteza globala de transfer care devine asincron. In acest caz este utilizat controlul prin intreruperi al transferului fiecarui bloc de informatie.

Intre 2 blocuri are loc o noua faza de activare. Ultimul eveniment al fazei de activare il constituie pregatirea conditiilor de intrerupere.

Cand primeste semnalul de intrerupere, procesorul intra in secventa de intrerupere care are rolul de a incarca instructiunile de transfer, de a actualiza numarul de caractere care urmeaza sa fie citite precum si adresa din memorie unde va fi depus urmatorul caracter, dupa care se revine la programul principal intrerupt, procedura care va fi reluata pana cand se termina transferul numarului de cuvinte/caractere/blocuri predeterminat, dupa care are loc dezactivarea echipamentului. Transferul programat poate fi eficientizat prin utilizarea unei zone tampon de memorie.

In acest caz programul principal apeleaza un periferic si totodata incearca transferul din zona tampon. Daca zona tampon nu a primit nici un caracter, situatie detectata de logica de comanda a transferului cu zona tampon, procesorul asteapta pana cand echipamentul periferic este gata sa transfere un caracter, cand are loc o cerere de intrerupere si programul de intrerupere determina transferul dintre E.P. si zona tampon din memorie, redemareaza E.P., dupa care revine la programul principal.

Intreruperea poate aparea in orice punct al programului principal, pentru ca sa nu apara interferente nedorite intre programul principal si secventa de transfer, intre echipamentul periferic si zona de tampon. Transferul cu zona tampon este mult mai rapid fata de transferul cu bucla de asteptare.

O solutie mult mai eficienta si complexa este transferul autonom, sau acces direct la memorie (ADM) (direct memory acces - DMA).

In acest caz sunt necesare circuite suplimentare cu functii de comanda, vehiculare a datelor, stocare a unor informatii necesare transferului (cum ar fi numarul de octeti sau adresa de memorie unde va fi realizat urmatorul transfer, precum si facilitati de calcul asupra informatiilor stocate.

In cazul simultaneitatii cererilor de acces la memorie sunt utilizate scheme de prioritate ("primul venit, primul servit", prioritate pentru vitezele de transfer mai mici etc).

Functiile canalelor sau ale procesoarelor de I/E

Un canal de I/E sau procesorul de I/E are urmatoare functiuni de baza:

  • preia din memoria centrala informatiile necesare initializarii variabilelor procesului (numarul de octeti, adresele operanzilor, sensul de vehiculare, diferite conditii de urmarire a transferului;
  • executa un set simplu de instructiuni (instructiuni de I/E si instructiuni de salt) care caracterizeaza programul de canal sau programul unitatii de schimbare multipla;
  • opereaza asupra variabilelor procesului (a vectorilor de date si de adresa) pe masura ce are loc transferul de date;
  • detecteaza erorile si poate lua decizii in legatura cu evenimente ce trebuie sa aiba loc, ca urmare a aparitiei unei erori (de ex. reluarea transferului);
  • sincronizeaza transferul datelor cu functionarea memoriei centrale si a procesorului central, in sensul optimizarii fluxului de date.

Sincronizarea transferului de date se poate realiza continuu, in cazul canalelor selectoare sau prin multiplexare pe octeti, grupe de octeti sau pe inregistrari fizice. Canalul multiplexor sau unitatea de schimburi multiple poate lucra in ambele moduri:

  • adreseaza si initializeaza unitatile de legatura;
  • interpreteaza si trateaza cererile de intrerupere;
  • testeaza starea unitatilor de legatura si transmite informatii procesorului central in legatura cu starea acestora (adresa necunoscuta, functie de transfer imposibila);
  • asigura prioritati intre diferite unitati de legatura in cazul canalelor multiplexoare sau a unitatilor de schimburi multiple.

1.9. Functiunile unitatilor de legatura

Unitatile de legatura au functiunile impuse de caracterisitcile transferului de date dintre echipamentele periferice si canal si anume:

  • asincronismul;
  • diferente de ordine de marime intre vitezele de transmitere a datelor;
  • caracterul si forma diferita a datelor.

Fig. 1.7

In fig. 1.7. este prezentata schema functionala bloc a unitatilor de legatura.

Unitatea de legatura sau unitatea de comanda este specifica unui tip de echipament periferic si asigura gestionarea in timp, adaptarea, sincronizarea si controlul transferului de date dintre echipamentul periferic si canalul sau procesorul cu care este conectat si are urmatoarele functii mai importante:

  • asambleaza/dezasambleaza informatiile catre si de la interfata cu echipamentul periferic, realizand transformarea datelor de la interfata echipamentului periferic (caracterizate prin lungimea unui pas de transfer, numarul de cifre binare transferate in paralel, codificarea datelor etc.) in date cu o structura corespunzatoare formatului necesar memorarii de care procesorul central, respectiv memoria centrala;
  • comanda functiile auxiliare prin transmiterea ordinelor la echipamentul periferic si urmarirea executarii lor;
  • comanda, daca este cazul, si controleaza fazele de activare premergatoare transferului de date (demararea motoarelor de antrenare, primirea semnalelor de la traductorii de pozitie etc.);
  • realizeaza sincronizarea transferului de date de la si spre echipamentul periferic.

In cazul transmisiei seriale sincronizarea se face pe baza fluxului de informatii care contine, inchise in metoda de codificare, si cifre binare de sincronizare.

La echipamentele periferice lente se realizeaza sincronizarea pe baza unui semnal de sincronizare generat de E.P. care poate fi preluat de pe suportul de informatie sau care poate fi realizat logic prin controlul, cu ajutorul traductoarelor, a miscarii suportului.

A treia solutie de sincronizare implica un ceas intern sau al unitatii de legatura, care poate avea o frecventa fixa sau variabila. Frecventa variabila este data de un oscilator comandat de catre semnale provenite de la traductorii ansamblului electromecanic sau de la lantul de citire - scriere, sau de la un oscilator de frecventa variabila pilotat de informatie.

  • decodifica informatiile pentru a cunoaste semnificatia lor si pentru a departaja datele transmise de informatiile cu caracter functional, care determina activitati ale unitatii de legatura;
  • initiaza transferurile de date cu canalul ori de cate ori sunt indeplinite conditiile de transfer. Pentru marirea vitezei de transfer si evitarea conflictelor se acorda prioritate ridicata perifericelor lente, iar echipamentele rapide sunt prevazute cu memorie tampon, care poate avea si rol functional;
  • prelucreaza informatiile necesare transferului de date;
  • realizeaza multiplexarea in cazul unitatilor de legatura multiple;
  • asigura transferul de date dintre E.P. si canal;
  • preia vectorul de stare de la E.P., il prelucreaza si determina un alt vector de stare pe care il comunica canalului;
  • asigura diferite facilitati necesare procesorului de service;
  • realizeaza detectia sau, daca este cazul, corectia de erori a datelor de citire.

Caracteristicile generale ale echipamentelor periferice

Caracteristicile principale ale echipamentelor periferice pot fi grupate in:

  • caracteristici functionale si constructive, care definesc modul de realizare si structura interna a dispozitivului periferic;
  • caracteristici externe care definesc relatia dintre E.P. si celelalte componente ale sistemului I/E;
  • caracteristici de interfata dintre E.P. si utilizator;
  • caracteristici de suprafata;

Functia de baza a E.P. este transferul de date care este caracterizat de sensul fluxului de date. O alta caracteristica a E.P. este si capacitatea de stocare si vehiculare a suportului propriu-zis.

Datele sunt caracterizate printr-o structura fizica si una logica.

Structura fizica a datelor pe suport este caracterizata in primul rand prin forma de aparitie a datelor (caractere alfanumerice, forme grafice, starea de magnetizare a stratului magnetic, etc.)

Structura logica a datelor (formatul datelor) se refera la organizarea informatiei, codificarea, adresele logice ale datelor inregistrate sau care urmeaza a fi inregistrate. Capacitatea de stocare a informatiei este definita de numarul de cifre binare, caractere sau octeti.

Transferul propriu-zis al datelor intre suport si interfata este caracterizat prin viteza de transfer, masurata in caractere pe secunda sau biti pe secunda (baud) si poate fi realizat dupa ce echipamentul periferic a fost pregatit.

Realizarea transferului de date se face in 2 faze distincte:

  • faza de activare caracterizata de timpul de acces;
  • faza de transfer propriu-zisa;

Caracteristici de interfata

Interfata reprezinta din punct de vedere fizic o frontiera prin care se executa schimburi reciproce de semnale cu anumite semnificatii si caracterisitici.

Aceste semnale pot fi grupate in 4 categorii de vectori functionali:

vectori de date;

vectori de adresa;

vectori de comanda;

vectori de raspuns.

Vectorul de date se caracterizeaza prin:

  • sensul de vehiculare care defineste tipul E.P. (I/E) ;
  • cantitatea de cifre binare care se transfera la un moment dat;
  • lungimea maxima a blocului de informatii ce poate fi transferata la un pas de activare, masurata in numar de octeti sau cifre binare si care depinde de tipul transferului (paralel sau serie);
  • viteza maxima de transfer, care se masoara in caractere sau octeti pe secunda;

Vectorul de adresa este necesar pentru identificarea unei informatii sau a locatiei unei informatii si are caracteristici in functie de formatul si organizarea datelor pe suportul de informatie.

Acest vector este caracteristic perioadei de activare care implica 2 sau 3 etape.

In prima etapa ("statica") rolul vectorului este de selectie a elementelor primare de transfer.

In a doua etapa vectorul de adresa determina sensul si amplitudinea miscarii ansamblului electromecanic care sustine elementul primar.

In a treia etapa se realizeaza identificarea semnalului de sincronizare caracteristic locatiei unde este sau va fi inchisa informatia.

Vectorul de comanda defineste functia de executat, momentele de timp pentru fiecare eveniment precum si semnificatia informatiilor vehiculate pe liniile de date sau de adresa si are 3 componente distincte:

semnalele imperative sau ordine;

semnale de timp care au ca rol principal sincronizarea transmisiei informatiei (semnale de sincronizare sau de ceas, semnale de esantionare a datelor sau adreselor);

semnale definitorii care determina, in primul rand, semnificatia informatiilor transmise pe liniile de adresa sau pe liniile de date.

Vectorul de raspuns are rolul de a defini modul in care se executa un ordin sau cum se ia in considerare un semnal de comanda de catre E.P., starea lui la un moment dat, precum si corectitudinea transferului de date sau a functionarii si are urmatoarele componente:

semnale de stare (ocupat, operational, gata de transfer etc.);

semnale de eroare;

semnale de raspuns definitorii care definesc natura datelor transmise de catre E.P.;

semnale de timp care reprezinta semnale de sincronizare, de validare si de esantionare a informatiilor transmise catre unitatile de legatura si pot fi produse de un ceas intern al E.P. sau un semnal de pozitie a suportului sau a elementului primar.

Interconexiuni de intrare/iesire

Transferul de date este realizat cu ajutorul unor echipamente si unitati functionale interconectate prin frontiere fizice care reprezinta interfete de I/E.

Modul in care aceste semnale sunt vehiculate, secventa lor de timp si semnificatia fiecaruia definesc interfata logica. Interfata fizica reprezinta mediul de transmitere (conductor metalic, radio, lumina), forma sub care sunt vehiculate semnalele (nivelul de tensiune, durata impulsurilor etc.) precum si conectarea de la fiecare capat.

Magistrala de date (busul) reprezinta structura logica si fizica a interfetelor si realizeaza 3 functii:

  • comunicarea datelor si a semnalelor de comanda intre 2 componente ale sistemului de calcul;
  • sincronizarea - ce permite conectarea echipamentelor electronice de mare viteza cu echipamentele electromecanice lente, permitand transferurile aleatoare asincrone;
  • comutarea - ce permite utilizarea unui bus de catre mai multe unitati ce se interconecteaza cu alte unitati.

Aceste functii sunt realizate prin alegerea mediului fizic de transmitere, prin adoptarea unui protocol logic de transmisie care stabileste secventa de timp a transmiterii si prin alegerea, la un moment dat, a unitatii emitatoare si a unitatii receptoare dintr-un numar de unitati conectate la bus.

Caracteristicile principale ale unui bus sunt lungimea si latimea, care reprezinta numarul de linii in paralel. Cu cat lungimea busului este mai mare, cu atat numarul de cai de transmitere este mai mic.

Conectarea unitatilor functionale poate fi realizata:

radial (fig. 1.8);

serie - cu intreruperea cablului sau fara intreruperea continuitatii fizice.

Din punct de vedere logic, in cazul comutarii radiale unitatea multiplexoare adreseaza un anume echipament la nivel inferior de comanda prin plasarea semnalelor pe setul de linii corespunzator echipamentului apelat. Pentru conectarea serie (fig. 1.9), liniile de interconectare trebuie sa contina un vector de adresa, fiecarui dispozitiv fiindu-i asigurata o adresa sau un code de selectare.

   

Fig. 1.8 Fig. 1.9

Fiecare echipament selectat are in structura sa un circuit de decodificare a adresei, cu ajutorul caruia isi recunoaste propria adresa si permite validarea transferului de informatii.

Echipamentul care cere o conexiune cu o unitate de rang superior transmite si mijlocul de identificare. Secventele in timp ale activitatilor pot fi sincrone, atunci cand actiunile se interconditioneaza (fiecarui pas i se cere semnal de comanda urmat imediat de un semnal de raspuns de confirmare).

Protocolul logic permite utilizarea busului prin specificarea ordinii activitatilor pentru efectuarea transferului de informatii si prin determinarea urmatoarei cereri de servici, dintr-o multitudine de cereri in asteptare.

Un protocol este o descriere a zonelor de biti semnificativi dintr-o transmisie (mesaj informational), o explicare a modului de interpretare a acestui mesaj si o specificatie a secventelor de actiuni pentru a duce la indeplinire o functie dorita.

Protocolul este prestabilit prin structura logicii de comanda a unitatii care conduce activitatea busului. Functiunile pe care le realizeaza protocolul in cazul unei interconectari sunt:

  • identifica participantii la diferite activitati (stabileste sursa si receptorul la un moment dat);
  • defineste, prin succesiunea si semnificatia semnalelor de comanda, ce se vehiculeaza, tipul actiunilor: vehicularea datelor, rezolvarea cererilor, tratarea conditiilor de eroare etc.
  • determina ce actiuni trebuie intreprinse in cazul aparitiei unei erori sau a unor conditii anormale.

Interfata externa

Interfata dintre un modul de I E si un periferic trebuie sa fie adaptata tipului de periferic si modului de functionare al acestuia.

Exista doua tipuri principale de interfete:

Interfetele paralele dispun de linii multiple care conecteaza modulul de I/E cu perifericul, fiind transferati simultan mai multi biti (un octet sau cuvant);

Interfete seriale care au o singura linie utilizata pentru transmiterea datelor, bitii fiind transmisi succesiv.

Interfetele paralele se utilizeaza in mod obisnuit pentru periferice mai rapide, ca discurile magnetice. Interfetele seriale sunt utilizate mai ales pentru terminale si unele tipuri de imprimante.

In ambele cazuri, modulul de I/E trebuie sa execute un dialog cu perifericul. De exemplu, dialogul pentru o operatie de scriere are urmatoarea forma generala:

  • Modulul de I/E activeaza un semnal de control, cerand permisiunea de a transmite datele;
  • Perifericul confirma cererea;
  • Modulul de I/E transfera datele (un octet, un cuvant sau un bloc);
  • Perifericul confirma receptia datelor.

O operatie de citire are loc in mod similar.

1.13. Metode de transfer a datelor

Exista urmatoarele metode principale de realizare a transferurilor de date:

  • Transferul programat;
  • Transferul prin intreruperi;
  • Transferul prin acces direct la memorie (DMA - Direct Memory Access);
  • Transferul prin canale de I/E.

Transferul programat.

In cazul transferului programat, datele sunt transferate intre UCP si modulul de I/E. UCP executa un program prin care controleaza direct operatia de I/E: detectarea starii perifericului, transmiterea unei comenzi de citire sau scriere, si transferul datelor. Dupa transmiterea unei comenzi modulului de I/E, UCP trebuie sa astepte pana la terminarea operatiei de I/E. Testarea starii perifericului se realizeaza de obicei prin citirea starii, executand o bucla de instructiuni.

La executia unei instructiuni de I/E, UCP transmite o comanda modulului de I/E corespunzator. Modulul de I/E executa actiunea respectiva si seteaza bitii corespunzatori in registrul de stare. UCP trebuie sa testeze periodic starea modulului de I/E pentru a detecta terminarea operatiei.

Fig. 1.10

Figura 9.3 prezinta un exemplu de utilizare a transferului programat pentru citirea unui bloc de date de la un periferic. Pentru fiecare cuvant citit, UCP trebuie sa ramana intr-un ciclu de testare a starii pentru a determina daca respectivul cuvant este disponibil in registrul de date al modulului de I/E.

Comenzi de I/E

Pentru executia unei instructiuni de I E, UCP transmite o adresa care specifica modulul de I E si dispozitivul extern, si o comanda de I/E.

Exista patru tipuri de comenzi de I/E pe care le poate receptiona un modul de I/E atunci cand este adresat de UCP. Acestea sunt clasificate ca fiind de control, de test, de citire si de scriere.

O comanda de control este utilizata pentru activarea unui periferic si pentru specificarea operatiei de executat.

O comanda de test este utilizata pentru testarea diferitelor conditii de stare asociate cu un modul de I/E si perifericele acestuia.

UCP trebuie sa determine daca:

  • Perifericul este operational si este disponibil;
  • Ultima operatie lansata este terminata;
  • Au aparut sau nu erori la executia operatiei.

O comanda de citire determina obtinerea unui octet sau cuvant de date de la periferic si depunerea acestuia intr un buffer intern (registrul de date al modulului de I/E). UCP poate obtine datele prin plasarea lor pe magistrala de date de catre modulul de I/E.

O comanda de scriere determina preluarea de catre modulul de I E a unui octet sau cuvant de pe magistrala de date si transmiterea acestuia perifericului.

Instructiuni de I E

In general, exista mai multe dispozitive conectate la sistem prin module de I/E. Fiecarui dispozitiv i se atribuie o adresa unica. Comanda de I/E transmisa de UCP contine adresa dispozitivului. Deci fiecare modul de I/E trebuie sa interpreteze liniile de adrese pentru a determina daca respectiva comanda ii este destinata.

Atunci cand UCP, memoria principala si sistemul de I/E partajeaza aceeasi magistrala sunt posibile doua moduri de adresare: adresare cu mapare in memorie si adresare izolata.

In cazul adresarii cu maparea in memorie, exista un singur spatiu de adrese pentru locatiile de memorie si dispozitivele de I/E.

UCP trateaza registrele de stare si de date ale modulelor de I E ca locatii de memorie si utilizeaza aceleasi instructiuni atat pentru accesul la memorie cat si la dispozitivele de I/E. De exemplu, cu 10 linii de adresa pot exista in total 1024 locatii de memorie si adrese de I/E, in orice combinatie. In acest caz este necesar un singur semnal de citire si unul de scriere in memorie.

In cazul adresarii izolate, spatiul adreselor de I/E este izolat de cel al memoriei. Magistrala trebuie sa aiba linii de citire si scriere pentru memorie si linii de comanda pentru intrare si iesire. Liniile de comanda specifica daca o adresa se refera la o locatie de memorie sau un dispozitiv de I/E. Pentru ambele este disponibila toata gama adreselor. Pentru 10 linii de adresa, pot exista 1024 locatii de memorie si 1024 adrese de I E.

Pentru cele mai multe UCP, exista un numar relativ mare de instructiuni diferite pentru referirea la memorie. Daca se utilizeaza I/E izolate, exista un numar mic de instructiuni de I/E. Deci, un avantaj al I/E mapate in memorie este ca se poate utiliza un set extins de instructiuni, permitand o programare mai eficienta.

Un dezavantaj este ca se utilizeaza o parte din spatiul de adrese al memoriei.

Dezavantajul transferului programat, in varianta realizata prin citirea starii, este ca UCP trebuie sa astepte pana cand perifericul devine disponibil, sau pana la terminarea operatiei. Performantele sistemului vor fi mult reduse. Pentru eliminarea acestui dezavantaj se poate utiliza transferul programat prin intreruperi.

1.16. Transferul prin intreruperi

Intreruperea reprezinta suspendarea executiei unui program de catre un semnal extern UCP, indicand producerea unui eveniment extern, sau de catre un eveniment intern, indicand aparitia unei situatii de exceptie in functionarea UCP.

Intreruperea se produce la terminarea executiei instructiunii curente, deoarece executia unei instructiuni nu este intreruptibila.

Daca sistemul de intreruperi este validat (activat), se apeleaza o rutina de tratare a intreruperii, asociata evenimentului care a generat intreruperea.

Dupa servirea intreruperii, se reia programul intrerupt, din starea existenta in momentul aparitiei intreruperii. In acest scop trebuie sa se salveze contextul de lucru al UCP, si anume:

  • Adresa de revenire, care reprezinta continutul contorului de program din momentul aparitiei intreruperii;
  • Indicatorii de conditii si de stare ai UCP;
  • Registrele interne utilizate de rutina de tratare;
  • Registrele de comanda de I/E care sunt modificate de rutina de tratare.

Sursele de intreruperi pot fi:

  • Echipamentele periferice care solicita servicii (de exemplu, cereri de transfer);
  • Elemente hardware de supraveghere a functionarii normale a sistemului: circuite de detectare a erorii de paritate a memoriei, de sesizare a caderii tensiunii de alimentare etc.
  • Evenimente interne depasiri la operatiile aritmetice, instructiuni inexistente etc.

Exista doua metode pentru alegerea adresei rutinei de tratare. Ele se numesc intreruperi nevectorizate, respectiv vectorizate.

In cazul intreruperilor nevectorizate, rutina de tratare se afla la o adresa fixa in memorie. La intreruperile vectorizate, adresa este furnizata procesorului de catre sursa de intrerupere, sub forma unui vector de intrerupere. La unele sisteme, vectorul de intrerupere indica adresa de inceput a rutinei de tratare. La alte sisteme, vectorul de intrerupere reprezinta o referinta la o locatie de memorie unde este memorata adresa de inceput a rutinei de tratare.

In cazul transferului prin intreruperi, UCP transmite o comanda modulului de I/E, dupa care executa alte operatii. Modulul de I/E va intrerupe UCP atunci cand este pregatit pentru transferul datelor, UCP va executa transferul, dupa care va continua operatiile anterioare.

Pentru intrare, modulul de I E primeste o comanda de citire de la UCP.

Modulul de I/E va incepe citirea datelor de la un periferic asociat.

Dupa depunerea datelor in registrul de date al modulului, acesta genereaza o cerere de intrerupere, si apoi asteapta pana cand datele sunt solicitate de UCP.

In acest moment, modulul plaseaza datele pe magistrala de date, fiind pregatit pentru o alta operatie de I/E.

Din punctul de vedere al UCP, operatiile efectuate pentru intrare sunt urmatoarele:

  • UCP transmite o comanda de citire, iar apoi executa alte operatii (alte programe in cazul multiprelucrarii);
  • La sfarsitul fiecarei instructiuni, UCP testeaza daca exista cereri de intrerupere;
  • La aparitia unei cereri de la un modul de I E, UCP salveaza contextul programului si executa rutina de tratare a intreruperii;
  • In aceasta rutina UCP citeste un cuvant de date de la modulul de I E si il depune in memorie. Apoi reface contextul programului intrerupt si continua executia acestuia;
  • Aceasta procedura continua pana cand se termina de transferat numarul de cuvinte necesare.

Figura 1.11 prezinta utilizarea transferului prin intreruperi pentru citirea unui bloc de date.

Fig. 1.11

1.17. Transferul prin acces direct la memorie

Transferul programat, chiar daca se efectueaza prin intreruperi, necesita interventia UCP pentru transferul datelor intre memorie si un modul de I/E, pentru fiecare octet sau cuvant. Acest mod de transfer are deci doua dezavantaje:

  • Rata de transfer este limitata de viteza cu care UCP poate testa si deservi un dispozitiv
  • UCP este ocupata cu gestionarea transferului, fiind necesara executia unui anumit numar de instructiuni pentru fiecare transfer.

Transferul prin DMA elimina aceste dezavantaje, prin executarea transferului direct intre memoria interna si sistemul de I/E, participarea UCP fiind foarte redusa. Este necesar un modul suplimentar, numit modul DMA sau controler DMA, care poate prelua controlul asupra magistralelor sistemului, generand semnalele de comanda necesare.

Structura generala a unui modul DMA este prezentata in figura 1.12.

Fig. 1.12

Modulul DMA trebuie sa contina urmatoarele elemente principale:

  • Logica pentru asigurarea legaturii cu memoria (semnale de citire si scriere);
  • O linie de cerere DMA catre memorie si o linie de acceptare DMA de la UCP;
  • O logica de arbitraj a prioritatilor in cazul existentei mai multor canale;
  • Un registru de comenzi pentru validarea modulului DMA, selectarea prioritatii canalelor, selectarea modului de lucru etc.

Pentru fiecare canal, trebuie sa existe urmatoarele registre:

Registru de adrese, pentru pastrarea adresei de inceput a transferului si a adresei curente;

Registru numarator, pentru pastrarea numarului de cuvinte ramase de transferat;

Registru de stare, care indica starea activata sau neactivata a canalului si conditia de terminare a transferului.

Controlerul DMA trebuie sa preia controlul asupra magistralei pentru a efectua transferul datelor cu memoria. De aceea, controlerul DMA trebuie sa utilizeze magistrala numai cand aceasta nu este utilizata de UCP, sau sa determine ca UCP sa suspende temporar operatiile.

Rezulta doua metode de efectuare a transferului DMA:

  • Prin utilizarea intervalelor de timp in care UCP nu face acces la memorie; metoda se numeste transfer prin furt de ciclu ("cycle stealing ), deoarece modulul DMA fura" un ciclu de memorie de la UCP. Activitatea UCP nu este influentata de operatiile DMA, cu exceptia cazului cand se ajunge la un punct in care este necesara memoria
  • Prin suspendarea operatiilor efectuate de UCP in timpul transferului si trecerea magistralei in starea de inalta impedanta. Ciclul de instructiuni se va relua apoi din punctul in care a fost suspendat. Metoda se numeste transfer in rafala ( data break ).

Figura indica punctele din ciclul de instructiune in care activitatea UCP poate fi suspendata. In fiecare caz, activitatea UCP este suspendata inaintea momentului in care necesita utilizarea magistralei.

Controlerul DMA transfera un cuvant si returneaza controlul UCP.

De notat ca aceasta nu este o intrerupere; nu se salveaza contextul programului si nu se executa alte operatii, ci UCP isi suspenda activitatea pentru un ciclu de magistrala.

Fig. 1.13

Pentru citirea sau scrierea unui bloc de date, UCP transmite controlerului DMA o secventa de initializare, care trebuie sa contina urmatoarele informatii:

  • Sensul transferului (citire sau scriere);
  • Adresa echipamentului de I E implicat;
  • Adresa de inceput a zonei de memorie cu care se efectueaza transferul;
  • Numarul de octeti sau de cuvinte care trebuie transferate.

Pentru transmiterea acestor informatii se utilizeaza transferul programat.

UCP va executa alte operatii, iar controlerul DMA va solicita controlul asupra magistralei, generand adresele si semnalele de comanda pentru efectuarea transferului. Se incrementeaza registrul adresei curente si se decrementeaza numaratorul de cuvinte. Dupa acest ciclu DMA, in care s a transferat un cuvant, se continua cu alte cicluri sau se da controlul UCP.

La terminarea transferului, controlerul genereaza un semnal de intrerupere catre UCP. Astfel, interactiunea dintre UCP si sistemul de I/E este la nivel de bloc, UCP intervenind numai la inceputul si sfarsitul transferului.

Eficienta este mult mai ridicata decat in cazul transferului prin intreruperi.

Exista mai multe configuratii ale unui sistem de I/E care utilizeaza transferul prin DMA (Fig. 1.14).

In primul exemplu (Fig 1.14(a)), toate modulele partajeaza aceeasi magistrala sistem. Modulul DMA utilizeaza I/E programate pentru transferul datelor intre memorie si un modul de I/E. Aceasta configuratie, desi poate fi ieftina, este ineficienta. Fiecare transfer a unui cuvant necesita doua cicluri de magistrala, ca si in cazul transferului programat prin intermediul UCP.

Numarul ciclurilor de magistrala poate fi redus prin integrarea functiilor DMA si a celor de I/E. In acest caz exista o cale intre modulul DMA si unul sau mai multe module de I/E, cale care nu include magistrala sistem (Fig. 1.14(b)).

Logica DMA poate fi o parte a unui modul de I E, sau poate fi un modul separat care controleaza unul sau mai multe module de I E.

In ultimul exemplu (Fig. 1.14(c)) modulele de I E se conecteaza la modulul DMA printr o magistrala de I E. Astfel se reduce numarul interfetelor din modulul DMA la una singura si se permite extinderea sistemului.

Fig. 1.14

In ultimele doua cazuri, magistrala sistem pe care modulul DMA o partajeaza cu UCP si memoria este utilizata de modulul DMA numai pentru transferul datelor cu memoria. Transferul datelor intre modulul DMA si modulele de I/E nu utilizeaza magistrala sistem

1.18. Transferul prin canale de I E

Desi accesul direct la memorie elibereaza UCP de numeroase operatii de I/E, in cazul perifericelor rapide vor fi necesare numeroase cicluri de magistrala pentru referintele la memorie. In timpul acestor cicluri, UCP trece in starea de asteptare.

Furturile de ciclu vor satura magistrala, si chiar daca se va genera o singura intrerupere la fiecare bloc transferat, se consuma un anumit timp pentru tratarea intreruperilor.

Pentru a se elimina aceste dezavantaje, modulele de I/E au fost imbunatatite, devenind procesoare care dispun de un set de instructiuni specializat pentru I/E.

UCP transmite o comanda procesorului de I E pentru a executa un program de I E din memorie. Acesta executa instructiunile programului fara interventia UCP.

Astfel este posibila specificarea de catre UCP a unei secvente de operatii de I/E si intreruperea UCP numai la terminarea intregii secvente.

Unele module de I/E au o memorie locala proprie, fiind de fapt calculatoare specializate care pot controla un set larg de dispozitive de I/E, cu o interventie minima a UCP. Modulele de I/E care pot executa programe sunt numite in unele cazuri canale de I/E, iar in alte cazuri procesoare de I E (mai ales cele care dispun de o memorie locala proprie).

Structura unui calculator cu un canal de I/E este prezentata in figura 1.15. Comunicatia cu memoria se poate realiza prin DMA.

Canalul de I E asigura o cale pentru transferul datelor intre diferitele periferice si memorie. UCP initiaza transferul de I/E, dupa care canalul de I/E functioneaza independent de UCP si continua transferul datelor intre periferice si memorie.

Fig. 1.15

Canalul poate restructura datele de la diferite periferice. De exemplu, poate fi necesara citirea mai multor caractere de la un dispozitiv de intrare si impachetarea lor intr un cuvant inaintea transferului in memorie.

Datele sunt preluate de canal la viteza dispozitivului, in timp ce UCP executa un program. Dupa asamblarea datelor de intrare intr un cuvant de memorie, acesta se transfera de la canalul de I/E direct in memorie printr-un furt de ciclu.

Similar, un cuvant transferat din memorie la canalul de I/E va fi transmis la un dispozitiv de iesire la viteza si numarul de biti ai acestuia.

De obicei, UCP are sarcina initierii operatiilor de I/E, prin instructiuni de start al unui transfer si de test al starii operatiilor

Canalul solicita o interventie a UCP printr o cerere de intrerupere, si raspunde la cererile UCP prin plasarea unui cuvant de stare intr o locatie de memorie, cuvant care poate fi examinat de UCP. Pentru executia unei operatii de I/E, UCP transfera o instructiune canalului, indicand perifericul care trebuie utilizat si adresa de inceput a instructiunilor suplimentare.

Instructiunile citite de canal din memorie se numesc comenzi, pentru a le deosebi de instructiunile transmise de UCP canalului. Instructiunile si comenzile au functii similare. Cuvintele de comanda sunt pregatite si sunt depuse de UCP in memorie. Acestea reprezinta un program de canal.

UCP informeaza canalul asupra locatiilor in care va gasi cuvintele de comanda.

Exista doua tipuri de canale de I/E mai utilizate: canale selectoare si canale multiplexoare. Un canal selector controleaza mai multe periferice rapide, la un moment dat fiind dedicat pentru transferul datelor cu un singur periferic.

Canalul de I E selecteaza un periferic si efectueaza 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 in locul UCP.

Un canal multiplexor poate gestiona transferuri simultane cu mai multe periferice, prin multiplexare in timp. Pentru periferice lente, un multiplexor la nivel de octet accepta sau transmite caractere la dispozitive multiple.

Pentru periferice rapide, un multiplexor la nivel de bloc transfera blocuri de date intre diferite dispozitive.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate