CAPITOLUL I INTRODUCERE

Unitatea centrală de procesare a calculatorului (UCP) împreună cu modulele de memorie reprezintă creierul sistemului de calcul. La fel ca şi omul, sistemul de calcul nu poate funcţiona corect doar cu creierul, ci are nevoie şi de extensii care să culeagă informaţiile necesare din mediul extern, precum şi extensii de afişare a informaţiilor existente şi a operaţiilor executate. Acestea compun sistemul de intrare/ieşire (I/E) a calculatorului şi efectuează transferul de date între memoria principală a UCP şi mediul exterior. Performanţele unui sistem de calcul depind de relaţia existentă între procesor şi memorie, de o parte, şi echipamentele de I/E, de partea cealaltă. Cele două caracteristici care influenţează performanţele unui sistem de calcul sunt timpul de acces şi rata de transfer a dispozitivelor de I/E, datorită faptului că un procesor poate prelucra instrucţiunile doar la rata la care acestea îi sunt furnizate. Astfel, un procesor cu viteză infinită va prelucra informaţiile pe care la primeşte de la echipamentele de intrare la rata cu care acestea îi sunt furnizate, şi va afişa rezultatul prelucrării la rata de transfer al echipamentelor de ieşire. În cazul echipamentelor periferice mai puţin performante, cu rate mici de transfer şi cu timpi ridicaţi de acces, se va creea impresia unui sistem de calcul încetinit, cu performanţe reduse, mult sub aşteptările utilizatorului, ceea ce va duce la nemulţumirea acestuia referitoare la performanţele acestuia. De accea este de notat faptul că o memorie rapidă nu poate furniza procesorului decât datele care au fost furnizate din exterior şi doar pe o magistrală liberă în acel moment. Mult timp echipamentele de I/E au fost neglijate de proiectanţii arhitecturilor de calculatoare, ocupând un loc secundar în preocupările acestora, atitutidine revizuită în ultimii ani, când creşterea performanţelor echipamentelor de I/E a cunoscut un reviriment prin punerea la punct a noi interfeţe şi protocoale de transmitere de date între UCP şi dispoziitivele de I/E care să se apropie ca performanţe de noile procesoare şi module de memorie. De-a lungul a peste trei decenii au existat păreri conform cărora viteza sitemului de I/E nu contează deoarece există întotdeauna un alt proces în execuţie în timp ce un alt proces pentru un periferic este în aşteptare. Argumentul suprem împotriva acestei teorii este acela că în cazul utilizatorului unic pe UCP există mai puţine procese decât în cazul prelucrării cu diviziunea timpului, ceea ce face ca unicul “proces” în aşteptare să fie utilizatorul însuşi.

1.1. Structura unui sistem de I/E
Principalele componente ale unui sistem de I/E sunt următoarele: • modulele de I/E; • dispozitivele periferice; • magistralele - interconexiunile dintre memorie şi echipamentele periferice; • interfeţele. În figura 1 este prezentată structura unui sistem de calcul împreună cu sistemul de I/E:

1

SISTEME DE INTRARE – IEŞIRE

Figura 1. Structura unui sistem de calcul cu sitem tipic de I/E După cum se observă din figura de mai sus echipamentele periferice nu se conectează direct la magistrala sitemului ci se utilizezază module de I/E. Motivele pentru care s-a apelat la această structură sunt următoarele: • incorporarea în UCP a protocoalelor de comunicare pentru controlul dispotivelor de I/E ar fi mult prea costisitoare şi nu ar fi fiabilă; • rata scăzută de transfer a echipamentelor periferice; • formatele datelor şi lungimile cuvintelor, deseori diferite făţă de cele ale procesorului, utilizate de echipamentele periferice.

1.2. Funcţii ale modulelor de I/E
Modulul de I/E are rolul de a efectua controlul dispozitivelor externe şi a transferului datelor între acestea şi memoria principală sau registrele UCP. De aceea un modul de I/E trebuie să aibă două interfeţe: • una internă - cu UCP şi memoria principală; • una externă – cu dispozitivul extern. Funcţiile principale sunt: • control şi sincronizare; • comunicaţia cu UCP; • comunicarea cu dispozitivele externe; • bufferarea datelor; • detecţia erorilor. a) control şi sincronizare Este necesar pentru coordonarea fluxului de date între resursele interne şi dispozitele externe şi poate cuprinde următoarele etape: • UCP interoghează modulul de I/E referitor la starea dispozitivului periferic; • Modulul returnează starea dispozitivului; • Dacă dispozitivul este operaţional UCP solicită transmiterea datelor către dispozitiv printr-o comandă adresată modulului; • Modulul preia un octet sau cuvânt de date de la dizpozitivul periferic;
2

Capitolul1 - Introducere

Datele sunt transferate de la modul la UCP.

b) comunicaţia cu UCP Fiecare interacţiune dintre UCP şi modulul de I/E implică una sau mai multe acţiuni arbitrare ale magistralei centrale a sistemului. Comunicaţia cu UCP cuprinde: • decodificarea comenzilor - de obicei comenzile de la UCP la modulul de I/E sunt trnasmise pe magistrala de control, dar unele comenzi au parametrii care sunt transmişi pe magistrala de date; • transmiterea datelor – se efectuaează pe magistrala de date; • raportarea stărilor – cunoaşterea stării modulului de I/E este importantă; modulul poate fi ocupat cu transmiterea unei comenzi precedente (busy) sau poate fi pregătit să preia instrucţiunea (ready); de asemenea se raportează şi diferitele stări de eroare; • recunoaşterea adreselor – fiecărui echipament periferic îi corespunde o adresă de memorie pe care modulul de I/E trebuie să o recunoască pentru a şti cărui dispotiv îi transmite datele şi instrucţiunile. c) comunicaţia cu dispozitivele externe Se realizează prin semnale de control, de stare şi de date. d) bufferarea datelor Rata de tranfer pentru cele mai multe periferice este mai redusă decât cea de tranfer la sau de la memorie. Modulul de I/E bufferează datele transmise de la memoria principală şi le transmite către periferic cu rata acestuia de transfer, deci modulu trebuie să opereze atât la viteza UCP cât şi la cea a perifericului. e) detecţia erorilor Modulul de I/E trebuie să detecteze erorile şi să le raporteze UCP. Clase de erori: • disfuncţionalităţi mecanice şi electrice ale dispozitivului; • modificarea datelor transmise de periferic la modul. Pentru prevenirea şi detectarea acestora se utilizează coduri detectoare de erori, cum ar fi bitul de paritate.

1.3. Structura modulului de I/E
Modulele de I/E diferă ca şi complexitate şi ca număr de dispozitivele externe pe care le controlează. În figura 2 este prezentată configurarea schemtică a unui modul de I/E. Datele transferate de la şi la modul sunt bufferate în unul sau mai multe registre de date. De asemenea există unul sau mai multe registre de stare, care pot funcţiona şi ca registre de control. Logica din cadrul modulului interacţionează cu UCP printr-un set de linii de control. De asemenea modulul recunoaşte şi generează adresele dispozitivelor pe care le gestionează. Unele module pot ascunde detaliile referitoare la sincronizarea datelor, formatul acestora sau detalii electro-mecanice referitoare la periferic astfel încât UCP poate realiza doar instrucţiuni simple de citire şi scriere sau eventual de deschidere sau închidere a unui fişier.

3

SISTEME DE INTRARE – IEŞIRE

Figura 2. Schema bloc a unui modul de I/E

1.4. Interfaţa externă a modulului de I/E
Aceasta trebuie să fie adaptată tipului de periferic şi modului său de funcţionare. Există două tipuri principale de interfeţe externe: • interfeţe paralele – care dispun de linii multiple de conectare a modulului de I/E cu perifericul, existând posibilitatea transmiterii simultan a mai multor biţi (octet sau cuvânt) şi se utilizează pentru transferul către periferice rapide (cum ar fi discurile magnetice) pe distanţe mici; • interfeţe seriale – care dispun de o singură linie pentru transmiterea datelor, biţii fiind transmişi succesiv; se utilizează pentru terminale, în special, pentru unele dispozitive dedicate şi pentru transmisia de date la distanţă.

1 .5. Tipuri de dispozitive periferice
Există trei categorii de dispozitive periferice, după utilizarea acestora: 1. Pentru transportul datelor între procesor şi utilizator: dispozitive de achiziţie şi prezentare a datelor. 2. Pentru transferul datelor între mai multe procesoare: dispozitive de reţea. 3. Pentru memorarea informaţiilor, ca parte a ierarhiei de memorii a procesorului: dispozitive de memorare. Anumite periferice au funcţii multiple. În Tabelul 1 şi Tabelul 2 se prezintă cerinţele privind ratele de transfer pentru unele dispozitive tradiţionale de prezentare a datelor, respectiv de memorare.

4

Capitolul1 - Introducere

Tabelul 1. Ratele de transfer ale unor dispozitive tradiţionale de prezentare a datelor Dispozitiv Senzori Tastatură Linie de Display Imprimantă Rata de transfer 1 B/s - 1 KB/s 10 B/s 56 Kbit/s (linie 2 KB/s 1 - 5 KB/s

Tabelul 2. Parametrii unor dispozitive tradiţionale de memorare Dispoziti Timp de acces Rata de transfer Capacitate Disc 8 ms 80 MB/s 50 GB Bandă O (sec) 3 - 6 MB/s 25 GB (pe casetă) În timp ce dispozitivele tradiţionale de prezentare a datelor sunt relativ lente comparativ cu cele de memorare, situaţia este diferită în cazul celor utilizate pentru multimedia. Documentele multimedia constau din: • grafică; • video; • audio (sinteza şi recunoaşterea vocii). În Tabelul 3 se prezintă cerinţele principale pentru aceste medii. Tabelul 3. Parametrii unor dispozitive multimedia Rata de transfer Întârziere maximă Grafică 1 MB/s 1 -5s Video 400 MB/s 20-33 ms Audio 8 KB/s 50 - 300 ms Fiecare mediu necesită o putere considerabilă de calcul. Pentru prelucrarea imaginilor grafice, au fost create procesoare specializate (transformarea spaţiului culorilor, modelare 3-D, animaţie). în cazul imaginilor video, cerinţele cresc substanţial, 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 recunoaşterea diferitelor foneme în timp real.

1.6. Module de I/E
Un modul de I/E are rolul de a efectua controlul dispozitivelor externe şi transferul datelor între aceste dispozitive şi memoria principală şi/sau registrele UCP. Deci, un modul de I/E trebuie să aibă o interfaţă internă în cadrul calculatorului (cu UCP şi memoria principală) şi o interfaţă externă (cu dispozitivul extern). Funcţiile şi cerinţele principale ale unui modul de I/E se încadrează în următoarele categorii : • control şi sincronizare; • comunicaţia cu UCP; • comunicaţia cu dispozitivele externe; • bufferarea datelor; • detecţia erorilor.

1.6.1. Funcţiile modulelor de I/E

5

SISTEME DE INTRARE – IEŞIRE

În orice moment de timp, UCP poate comunica cu unul sau mai multe dispozitive externe. Resursele interne, ca memoria internă şi magistrala sistem, trebuie partajate între mai multe activităţi, inclusiv operaţiile de l/E ale datelor. Funcţia de I/E necesită deci o operaţie de control şi sincronizare, pentru coordonarea fluxului de date între resursele interne şi dispozitivele externe. De exemplu, controlul transferului de date de la un dispozitiv extern la UCP poate cuprinde următoarele etape: 1. UCP interoghează modulul de I/E pentru a testa starea dispozitivului conectat. 2. Modulul de I/E returnează starea dispozitivului. 3. Dacă dispozitivul este operaţional şi este pregătit pentru transmisia datelor, UCP solicită transferul datelor, printr-o comandă adresată modulului de I/E. 4. Modulul de I/E preia un octet sau cuvânt de date de la dispozitivul de I/E. 5. Datele sunt transferate de la modulul de I/E la UCP. Dacă sistemul utilizează o magistrală, fiecare interacţiune dintre UCP şi modulul de I/E implică una sau mai multe operaţii de arbitrare a magistralei. Din exemplul precedent rezultă că modulul de I/E trebuie să permită comunicaţia cu UCP şi cu dispozitivul extern. Comunicaţia 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 următoarele comenzi: CITIRE SECTOR, SCRIERE SECTOR, CĂUTARE 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 stării Deoarece perifericele sunt mai lente, este importantă cunoaşterea stării modulului de I/E. De exemplu, un modul poate fi ocupat cu execuţia comenzii precedente de I/E, ceea ce poate fi raportat printr-un semnal de stare. Semnalele obişnuite de stare sunt BUSY şi READY. Există de asemenea semnale pentru raportarea diferitelor condiţii de eroare. • Recunoaşterea adreselor Un modul de I/E trebuie să recunoască o adresă unică pentru fiecare periferic pe care îl controlează. Comunicaţia cu dispozitivele externe se realizează prin semnale de control, de stare şi de date. Bufferrarea datelor este o funcţie esenţială 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 câteva ordine de mărime 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 atât la viteza UCP, cât şi la cea a memoriei. În final, un modul de I/E trebuie să efectueze detecţia erorilor şi raportarea acestora către UCP. O clasă a erorilor cuprinde disfuncţionalităţi mecanice şi electrice raportate de dispozitiv. O altă clasă constă în modificarea accidentală a datelor 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. Modulele de I/E diferă considerabil ca şi complexitate şi număr de dispozitive externe pe care le controlează. O schemă bloc generală a unui modul de I/E este prezentată în Figura 1.2. 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 funcţiona şi ca registru de control, pentru a primi informaţii de control detaliate de la UCP. Logica
6

1.6.2. Structura unui modul de I/E

Capitolul1 - Introducere

din cadrul modulului interacţionează 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 dispozitivele pe care le controlează. Fiecare modul de I/E are o adresă unică, sau dacă acesta controlează mai multe dispozitive externe, un set unic de adrese. în sfârşit, fiecare modul de I/E conţine o logică specifică interfeţei cu fiecare dispozitiv pe care îl controlează.

Figura 2. Structura unui modul de I/E Modulele de I/E pot avea complexităţi diferite. Unele module pot ascunde detalii ca sincronizarea datelor, formatul acestora şi detaliile electromecanice ale unui dispozitiv extern, astfel încât UCP poate executa numai comenzi simple de citire şi scriere, eventual de deschidere şi închidere pentru fişiere, în cazul altor module, cele mai multe operaţii de control ale perifericelor sunt vizibile de către UCP. Un modul de I/E care are o interfaţă de nivel înalt cu UCP, eliberând 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 j utilizate la calculatoarele mari (mainframe). Modulele de I/E complexe (canalele de I/E) sunt partiţionate sub forma unor canale de I/E care controlează unul sau mai multe controlere de I/E.

1.7. Interfaţa externă

Interfaţa dintre un modul de I/E şi un periferic trebuie să fie adaptată tipului de periferic şi modului de funcţionare al acestuia. Există două tipuri principale de interfeţe. Interfeţele paralele dispun de linii multiple care conectează modulul de I/E cu perifericul, fiind transferaţi simultan mai mulţi biţi (un octet sau cuvânt). În cazul interfeţelor seriale, există o singură linie utilizată pentru transmiterea datelor, biţii fiind transmişi succesiv. Interfeţele paralele se utilizează în mod obişnuit pentru periferice mai rapide, ca discurile magnetice. Interfeţele 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 operaţie de scriere are următoarea formă generală: 1. Modului de I/E activează un semnal de control, cerând permisiunea de a transmite datele. 2. Perifericul confirmă cererea. 3. Modulul de I/E transferă datele (un octet, un cuvânt sau un bloc). 4. Perifericul confirmă recepţia datelor. O operaţie de citire are loc în mod similar.

1.8. Metode de transfer al datelor

Există următoarele metode principale de realizare a transferurilor de date:
7

SISTEME DE INTRARE – IEŞIRE

• • • •

transferul programat; transferul prin întreruperi; transferul prin acces direct la memorie (DMA); transferul prin canale de I/E.

1.8.1. Transferul programat

În acest caz, datele sunt transferate între UCP şi modulul de I/E. UCP execută un program prin care controlează direct operaţia de I/E: detectarea stării perifericului, transmiterea unei comenzi de citire sau scriere, şi transferul datelor. După transmiterea unei comenzi modulului de I/E, UCP trebuie să aştepte până la terminarea operaţiei de I/E. Testarea stării perifericului se realizează de obicei prin citirea stării, executând o buclă de instrucţiuni. La execuţia unei instrucţiuni de I/E, UCP transmite o comandă modulului de I/E corespunzător. Modulul de I/E execută acţiunea respectivă şi setează biţii corespunzători în registrul de stare. UCP trebuie să testeze periodic starea modulului de I/E pentru a detecta terminarea operaţiei. Pentru execuţia unei instrucţiuni de I/E, UCP transmite o adresă, specificând 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 recepţiona un modul de I/E atunci când 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 operaţiei de executat. De exemplu, pentru o unitate de bandă magnetică, se poate specifica o operaţie de rebobinare sau poziţionare pe următoarea înregistrare. Aceste comenzi sunt specifice diferitelor tipuri de periferice. O comandă de test este utilizată pentru testarea diferitelor condiţii de stare asociate cu un modul de I/E şi perifericele acestuia. UCP trebuie să determine dacă: • perifericul este operaţional şi este disponibil; • ultima operaţie lansată este terminată; • au apărut sau nu erori la execuţia operaţiei. O comandă de citire determină obţinerea unui octet sau cuvânt de date de la periferic şi depunerea acestuia într-un buffer intern (registrul de date al modulului de I/E). UCP poate obţine datele prin plasarea lor pe magistrala de date de către modulul de I/E. O comandă de scriere determină preluarea de către modulul de I/E a unui octet sau cuvânt de pe magistrala de date şi transmiterea acestuia perifericului. Figura 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 cuvânt citit, UCP trebuie să rămână într-un ciclu de testare a stării pentru a determina dacă respectivul cuvânt este disponibil în registrul de date al modulului de I/E. În general, există mai multe dispozitive conectate la sistem prin module de l/E. Fiecărui dispozitiv i se atribuie o adresă unică. Comanda de I/E transmisă de UCP conţine adresa dispozitivului. Deci fiecare modul de I/E trebuie să interpreteze liniile de adrese pentru a determina dacă respectiva comandă îi este destinată. Figura 3. Utilizarea Atunci când UCP, memoria principală şi sistemul de I/E transferului programat pentru citirea unui partajează aceeaşi magistrală, sunt posibile două moduri de adresare: bloc de date adresare cu mapare în memorie şi adresare izolată. În cazul adresării cu maparea în memorie, există un singur spaţiu de adrese pentru locaţiile de memorie şi dispozitivele de I/E. UCP tratează registrele de stare şi de date ale modulelor de I/E ca locaţii de memorie şi utilizează aceleaşi instrucţiuni atât pentru accesul la memorie cât şi la dispozitivele de I/E. De exemplu, cu 10 linii de adresă pot exista în total 1024 locaţii de memorie şi adrese de I/E, în orice combinaţie. în acest caz este necesar un singur semnal de citire şi unul de scriere în memorie.
8

1.8.1.1. Comenzi de I/E

1.8.1.2. Instrucţiuni de I/E

Capitolul1 - Introducere

În cazul adresării izolate, spaţiul 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 ieşire. Liniile de comandă specifică dacă o adresă se referă la o locaţie de memorie sau un dispozitiv de I/E. Pentru ambele este disponibilă toată gama adreselor. Pentru 10 linii de adresă, pot exista 1024 locaţii de memorie şi 1024 adrese de I/E. Se exemplifică cele două tehnici de I/E programate. Figura 2.2 prezintă interfaţa pentru tastatura unui terminal, din punctul de vedere al programatorului.

Figura 2.2. Interfaţa pentru tastatura unui terminal Pentru I/E mapate în memorie, se presupune că există 10 biţi de adresă, spaţiul de adrese fiind format din 512 locaţii de memorie (locaţiile 0-1 FFh) şi până la 512 adrese de I/E (locaţiile 200h3FFh). Interfaţa cu tastatura utilizează două adrese. Adresa 300h este utilizată pentru registrul de date, iar adresa 301 h pentru registrul de stare, care este utilizat şi ca registru de control pentru recepţionarea 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 până când octetul este disponibil. Adresa 100h 101h 102h 103h 104h Instrucţiune Operand Load AC 1 Store AC 301 h Load AC 301 h Jump if Sign = 0 102h Load AC 300h Comentariu Start citire tastatură Citire octet de stare Buclare Citire octet de date

Pentru I/E izolate, presupunem că porturile de I/E sunt accesibile numai prin comenzi de l/E speciale, care activează liniile de comandă de I/E de pe magistrală. Adresă Instrucţiune Operand Comentariu 1OOh Start i/E 5 ; Start citire tastatură 101 h Test l/E 5 ; Test sfârşit operaţie 102h Jump Not Ready 101h ; Buclare 103h In 5 ; Citire octet de date Pentru cele mai multe UCP, există un număr relativ mare de instrucţiuni diferite pentru referirea la memorie. Dacă se utilizează I/E izolate, există un număr mic de instrucţiuni de I/E. Deci, un avantaj al I/E mapate în memorie este că se poate utiliza un set extins de instrucţiuni, permiţând o programare mai eficientă. Un dezavantaj este că se utilizează o parte din spaţiul de adrese al memoriei. Dezavantajul transferului programat, în varianta realizată prin citirea stării, este că UCP trebuie să aştepte până când perifericul devine disponibil, sau până la terminarea operaţiei. Performanţele sistemului vor fi mult reduse. Pentru eliminarea acestui dezavantaj se poate utiliza transferul programat prin întreruperi.

1.8.2. Transferul prin întreruperi
Întreruperea reprezintă suspendarea execuţiei unui program de către un semnal extern UCP, indicând producerea unui eveniment extern, sau de către un eveniment intern, indicând apariţia unei situaţii de excepţie în funcţionarea UCP. întreruperea se produce la terminarea execuţiei instrucţiunii curente, deoarece execuţia unei instrucţiuni nu este întreruptibilă.
9

18.2.1. Principiul transferului prin întreruperi

SISTEME DE INTRARE – IEŞIRE

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 apariţiei întreruperii. În acest scop trebuie să se salveze contextul de lucru al UCP: • adresa de revenire, care reprezintă conţinutul contorului de program din momentul apariţiei întreruperii; • indicatorii de condiţii ş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: • dispozitivele periferice care solicită servicii (de exemplu, cereri de transfer); • elemente hardware de supraveghere a funcţionării normale a sistemului: circuite de detectare a erorii de paritate a memoriei, de sesizare a căderii tensiunii de alimentare etc; • evenimente interne: depăşiri la operaţiile aritmetice, instrucţiuni 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 către 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 locaţie 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 operaţii. Modulul de I/E va întrerupe UCP atunci când este pregătit pentru transferul datelor, UCP va executa transferul, după care va continua operaţiile anterioare. Pentru intrare, modulul de I/E primeşte 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 aşteaptă până când datele sunt solicitate de UCP. în acest moment, modulul plasează datele pe magistrala de date, fiind pregătit pentru o altă operaţie de I/E. Din punctul de vedere al UCP, operaţiile efectuate pentru intrare sunt următoarele. UCP transmite o comandă de citire, iar apoi execută alte operaţii (alte programe în cazul multiprelucrării). La sfârşitul fiecărei instrucţiuni, UCP testează dacă există cereri de întrerupere. La apariţia unei cereri de la un modul de I/E, UCP salvează contextul programului şi execută rutina de tratare a întreruperii, în această rutină UCP citeşte un cuvânt de date de la Figura 5. Utilizarea transferului prin întreruperi modulul de I/E şi îl depune în memorie. Apoi reface contextul pentru citirea unui bloc de programului întrerupt şi continuă execuţia acestuia. Această procedură continuă până când se termină de transferat numărul de cuvinte necesare. Figura 5 prezintă utilizarea transferului prin întreruperi pentru citirea unui bloc de date. La majoritatea sistemelor, există mai multe surse de întrerupere. Pentru înregistrarea cererilor de întrerupere există bistabili indicatori prevăzuţi în acest scop, care pot fi organizaţi sub forma unui registru al cererilor de întrerupere. Pentru a se realiza un control individual asupra surselor de întrerupere, pot exista bistabili mască, organizaţi într-un registru al măştilor de întrerupere, având acelaşi număr de poziţii ca şi
10

1.8.2.2. Sisteme de întreruperi multiple

Capitolul1 - Introducere

registrul cererilor de întrerupere. Bistabilii din registrul mască pot fi setaţi şi resetaţi prin program. Dacă un bistabil este setat, întreruperea corespunzătoare este validată, în caz contrar ea este invalidată. Într-un sistem cu întreruperi multiple, apar două probleme principale: • identificarea sursei de întrerupere; • alegerea întreruperii care va fi deservită în cazul apariţiei mai multor cereri simultane. Pentru identificarea sursei de întrerupere se utilizează următoarele tehnici: • linii multiple de întrerupere; • polling software; • conectarea dispozitivelor în lanţ (polling hardware); • arbitrajul de magistrală. Cea mai simplă soluţie este de a se prevedea linii multiple de întrerupere între UCP şi modulele de l/E. Totuşi, nu este practic să se dedice un număr prea mare de linii ale magistralei sau de pini ai procesorului pentru liniile de întrerupere. Ca urmare, chiar dacă se utilizează linii multiple de întrerupere, este probabil că la fiecare linie vor fi legate mai multe module de I/E. Deci, pentru fiecare linie trebuie să se utilizeze una din celelalte tehnici. O altă alternativă de identificare este prin polling software. La detectarea unei întreruperi, UCP execută o rutină de tratare a întreruperii a cărei sarcină este de a interoga fiecare modul de I/E pentru a determina modulul care a generat întreruperea. Pentru interogare se poate utiliza o linie de comandă separată (de exemplu, TEST I/E). în acest caz, UCP activează această linie şi depune adresa unui anumit modul de I/E pe liniile de adresă. Modulul de I/E răspunde dacă a generat întreruperea. O altă posibilitate este ca fiecare modul de I/E să conţină un registru de stare adresabil. UCP citeşte registrul de stare al fiecărui modul de I/E pentru a identifica modulul care a generat întreruperea. Dezavantajul metodei de polling software este că se consumă un anumit timp al UCP. O tehnică mai eficientă este utilizarea unui lanţ de dispozitive (daisy chain), care permite de fapt un polling hardware. Toate modulele de I/E partajează o linie comună de cerere de întrerupere. Linia de achitare a întreruperii este înlănţuită prin toate modulele. La detectarea unei cereri de întrerupere, UCP activează un semnal de achitare a întreruperii. Acest semnal se propagă printr-o serie de module de I/E până când ajunge la modulul solicitant, care răspunde de obicei prin plasarea unui vector de întrerupere pe magistrala de date, reprezentând adresa modulului de I/E sau un alt identificator unic. UCP utilizează vectorul ca un pointer la rutina de tratare corespunzătoare modulului respectiv. Astfel se elimină necesitatea execuţiei prealabile a unei rutine generale de tratare a întreruperii. Arbitrajul de magistrală utilizează de asemenea întreruperile vectorizate. Cu această tehnică, un modul de I/E trebuie să preia mai întâi controlul asupra magistralei pentru a putea activa linia de cerere a întreruperii. Deci, un singur modul poate activa linia la un moment dat. La detectarea întreruperii, UCP activează linia de achitare, iar modulul care a efectuat cererea îşi plasează vectorul pe liniile de date. În cazul cererilor simultane, este necesară stabilirea unor priorităţi, şi determinarea condiţiilor în care UCP poate fi întrerupt în timpul servirii unei întreruperi. Perifericele care permit transferuri rapide primesc o prioritate înaltă, iar perifericelor lente li se atribuie o prioritate mai redusă. Stabilirea priorităţii întreruperilor simultane se poate realiza prin software sau prin hardware. În cazul metodei software, identificarea sursei de prioritate maximă se realizează prin polling. Pentru toate întreruperile, există o rutină comună de servire, care interoghează sursele de întrerupere. Ordinea în care sunt interogate sursele determină prioritatea lor. Dacă cererea de întrerupere a unei surse este activată, se execută saltul la rutina de tratare corespunzătoare. Dezavantajul metodei software este că în cazul unui număr mare de surse de întrerupere, timpul necesar interogării lor creşte.

1.8.2.3. Sisteme de întreruperi cu priorităţi

11

SISTEME DE INTRARE – IEŞIRE

În cazul metodei hardware, se utilizează circuite care acceptă cereri de întrerupere de la mai multe surse, determină cererea cu prioritatea maximă, pe baza căreia generează o cerere de întrerupere către procesor. Pentru creşterea vitezei, fiecare sursă de întrerupere are un vector propriu de întrerupere pentru accesul direct la propria rutină de tratare. Pentru această metodă, liniile de întrerupere pot fi conectate fie în paralel, fie în serie, sub forma unui lanţ de dispozitive. 1.8.2.3.1. Conectarea în paralel a liniilor de întrerupere Această metodă utilizează un registru de întrerupere (RINT) ai cărui biţi sunt setaţi separat de cererile de întrerupere ale fiecărui dispozitiv. Prioritatea este stabilită în funcţie de poziţia biţilor din registru. în plus poate exista un registru al măştilor de întrerupere (RM) prin care se poate controla starea fiecărei cereri de întrerupere. Prin utilizarea registrului mască se pot dezactiva întreruperile mai puţin prioritare în timpul servirii unui dispozitiv mai prioritar. De asemenea, un dispozitiv mai prioritar va putea întrerupe UCP în timpul servirii unui dispozitiv mai puţin prioritar. Logica de prioritate pentru un sistem cu patru surse de întrerupere este prezentată în Figura 6. Ea constă dintr-un registru de întrerupere ai cărui biţi sunt setaţi de sursele de întrerupere şi pot fi resetaţi prin program. Dispozitivul D0 este cel mai prioritar. Registrul mască are acelaşi număr de poziţii ca şi registrul de întrerupere. Este posibilă setarea sau resetarea prin program a oricărui bit din registrul mască. Fiecare bit din RINT şi bitul corespunzător din RM sunt conectaţi la o poartă Şl pentru a genera intrările pentru codificatorul prioritar. Astfel, o întrerupere este recunoscută numai dacă bitul corespunzător din registrul mască este setat la 1 prin program. Codificatorul prioritar generează doi biţi ai vectorului de întrerupere VINT, care este transferat la UCP prin buffere cu trei stări. Validarea bufferelor se realizează prin semnalul de recunoaştere a întreruperii (INTACK) de la UCP şi prin două bistabile IST şi IEN. Bistabilul de stare a întreruperilor IST este setat dacă a apărut o întrerupere care nu este mascată. Bistabilul de validare a întreruperilor IEN poate fi setat sau resetat prin program pentru a se permite un control global al sistemului de întreruperi. Codificatorul prioritar implementează funcţia de prioritate. Dacă două sau mai multe intrări sunt activate simultan, va fi luată în considerare intrarea cea mai prioritară. Tabelul de adevăr al unui codificator prioritar cu patru intrări este prezentat în Tabelul 4. Intrarea I0 este cea mai prioritară, deci dacă această intrare este 1, se va genera la ieşire xy = 00, indiferent de valorile celorlalte intrări. Intrarea I1 are următorul nivel de prioritate. Ieşirea este xy = 01 dacă I1 = 1, cu condiţia ca I0 = 0, indiferent de valorile celorlalte două intrări mai puţin prioritare. Bistabilul IST este setat numai dacă una sau mai multe intrări au valoarea 1. Dacă toate intrările sunt 0, IST este şters şi celelalte ieşiri ale codificatorului nu sunt utilizate. Aceasta deoarece vectorul de întrerupere nu este transferat la UCP atunci când IST = 0. Ieşirea codificatorului prioritar se utilizează pentru a forma o parte a vectorului de întrerupere pentru fiecare sursă. Celorlalţi biţi ai vectorului li se poate asigna orice valoare. De exemplu, vectorul de întrerupere se poate forma prin adăugarea unor zerouri la ieşirile x şi y ale codificatorului. In acest caz, vectorii de întrerupere ai dispozitivelor de I/E din figură vor avea asignate valorile 0, 1,2 şi 3.

12

Capitolul1 - Introducere

Figura 6. Conectarea în paralel a liniilor de întrerupere Tabelul 4. Tabelul de adevăr al codificatorului prioritar I0 1 0 0 0 0 Intrări I1 I2 X X 1 X 0 1 0 0 0 0 I3 X X X 1 0 x 0 0 1 1 X Ieşiri y IST 0 1 1 1 0 1 1 1 X 0

Figura 2.5. Conectarea în serie a surselor de întrerupere

1.8.2.3.2. Conectarea în serie a liniilor de întrerupere Această metodă de selecţie a priorităţii constă în conectarea în serie a tuturor dispozitivelor care pot genera o cerere de întrerupere. Dispozitivul cu prioritatea maximă este plasat în prima

13

SISTEME DE INTRARE – IEŞIRE

poziţie, ultimul din lanţ fiind dispozitivul cu prioritatea minimă. Această metodă de conectare a trei dispozitive este prezentată în Fisura 2.5. Linia de cerere a întreruperii este comună pentru toate dispozitivele, formând o conexiune SAU cablat. Dacă nu există nici o cerere de întrerupere, linia de întrerupere rămâne în starea 1 logic. Dacă cel puţin un dispozitiv solicită o întrerupere, linia de cerere trece în starea 0 logic, şi validează intrarea de în-trerupere a UCP. UCP răspunde la o cerere de întrerupere prin activarea semnalului de achitare INTACK. Acest semnal este recepţionat de dispozitivul Do la intrarea sa PI (Priority In). Semnalul de achitare este transmis mai departe la următorul dispozitiv prin conexiunea PO {Priority O ut) numai dacă Do nu solicită o întrerupere. Dacă acest dispozitiv are o cerere de întrerupere activată, blochează transmiterea semnalului de achitare la următorul dispozitiv prin plasarea valorii 0 logic la ieşirea sa PO. Apoi Do va depune vectorul de întrerupere (VINT) pe magistrala de date pentru a fi utilizat de UCP în timpul ciclului de întrerupere. Un dispozitiv căruia i se aplică un semnal 0 la intrarea sa PI generează un semna! 0 la ieşirea sa PO pentru a informa următorul dispozitiv asupra faptului că semnalul de achitare a fost blocat. Un dispozitiv cu un semnal 1 la intrarea sa PI care solicită o întrerupere, va intercepta semnalul de achitare prin plasarea unui semnal 0 la ieşirea sa PO. Dacă dispozitivul nu solicită o întrerupere, va transmite semnalul de achitare la următorul dispozitiv prin generarea unui semnal 1 la ieşirea PO. Astfel, dispozitivul cu PI - 1 şi PO = 0 este cel care are prioritatea maximă dintre cele care solicită o întrerupere, şi acest dispozitiv va plasa vectorul său de întrerupere pe magistrala de date. Figura 8 indică logica internă care trebuie conţinută de fiecare dispozitiv conectat într-un sistem de priorităţi daisy chain. Dispozitivul setează bistabi-lul său IREQ atunci când solicită o întrerupere de la UCP. Ieşirea acestui bistabil trece printr-un inversor cu colector deschis pentru a asigura conexiunea SAU cablat necesară pentru linia comună de întrerupere. Dacă PI= 0, atât PO cât şi semnalul de validare a vectorului VINT sunt 0, indiferent de starea bistabilului IREQ. Dacă PI = 1 şi IREQ = 0, rezultă că PO = 1 şi vectorul este invalidat. Astfel se transmite semnalul de achitare la următorul dispozitiv prin ieşirea PO. Dispozitivul este activ atunci când PI = 1 şi IREQ = 1. Această condiţie plasează un semnal 0 la ieşirea PO şi validează vectorul de întrerupere. Se presupune că fiecare dispozitiv are propriul său vector de întrerupere. Bistabilul IREQ este resetat după o întârziere suficientă pentru a asigura recepţia vectorului de către UCP.

Figura 8. Logica internă a unui etaj al sistemului de priorităţi daisy chain

1.8.2.4. Rutine de tratare a întreruperilor La sfârşitul fiecărui ciclu de execuţie a instrucţiunilor, UCP verifică dacă întreruperile sunt validate (bistabilul IEN este setat) şi testează dacă există o cerere de întrerupere. Dacă IEN = 1 şi există o cerere activă, UCP va executa un ciclu de întrerupere. în timpul acestui ciclu, se execută următoarele operaţii: 1. Se salvează contorul de program (PC) în stivă. 2. Se activează semnalul de achitare a întreruperii INTACK. 3. Se transferă adresa rutinei de tratare în PC, pe baza vectorului de întrerupere.
14

Capitolul1 - Introducere

4. Se dezactivează sistemul de întreruperi, prin resetarea bistabilului IEN. 5. Se trece la ciclul de extragere a primei instrucţiuni din rutina de tratare. în cadrul fiecărei rutine de tratare a întreruperii trebuie să se execute un set de operaţii pentru controlul registrelor sistemului de întreruperi. Pentru a se valida cererile de prioritate mai mare decât cea a întreruperii în curs, bistabilul IEN trebuie setat din nou, după ce întreruperile mai puţin prioritare vor fi dezactivate. Principalele operaţii care trebuie executate la începutul unei rutine de tratare sunt următoarele: 6. Ştergerea biţilor din registrul mască corespunzători nivelelor mai puţin prioritare. 7. Ştergerea bistabilului IST care indică starea întreruperilor. 8. Salvarea registrelor UCP. 9. Validarea întreruperilor prin setarea bistabilului IEN. La sfârşitul fiecărei rutine de tratare a unei întreruperi trebuie să se prevadă instrucţiuni pentru a executa următoarele operaţii: 10. Dezactivarea întreruperilor, prin resetarea bistabilului IEN. 11. Refacerea conţinutului registrelor UCP. 12. Ştergerea bitului din registrul cererilor de întrerupere corespunzător sursei de întrerupere deservite. 13. Setarea biţilor din registrul mască corespunzători nivelelor mai puţin prioritare. 14. Refacerea adresei de revenire în registrul PC şi activarea sistemului de întreruperi. Bitul din registrul cererilor de întrerupere corespunzător sursei de întrerupere trebuie resetat pentru a fi disponibil din nou pentru solicitarea unei întreruperi. Secvenţa de operaţii 2-5 trebuie executată cu sistemul de întreruperi dezactivat. Dacă o întrerupere este recunoscută în timpul execuţiei acestor operaţii, adresa de revenire poate fi pierdută, iar informaţiile din registrul mască şi din registrele UCP pot fi ambigue. Operaţiile de la începutul şi de la sfârşitul unei rutine de tratare pot fi executate prin program. O parte a acestor operaţii pot fi executate prin hardware, caz în care se reduce timpul necesar deservirii întreruperilor. 1.8.2.5. Exemple de sisteme de întreruperi Calculatoarele IBM PC/AT La calculatoarele IBM PC/XT existau 8 nivele de întrerupere, fiind utilizat un controler 8259A. La calculatoarele IBM PC/AT există 16 nivele de întrerupere, fiind utilizate două controlere 8259A conectate în cascadă. Ieşirea celui de-al doilea controler este conectată la intrarea de nivel 2 a primului controler. Prioritatea nivelelor de întrerupere ale controlerului al doilea este mai mare decât cea a nivelelor 3-7 ale primului controler. Cele două controlere gestionează întreruperile cu numerele cuprinse între 08h şi OFh, respectiv între 70h şi 77h. Adresele porturilor controlerelor sunt 20h şi 21h, respectiv A0h şi A1h. Deoarece nivelul 2 al primului controler nu se poate utiliza din cauza legării în cascadă, se utilizează linia de nivel 1 a controlerului al doilea (căreia îi corespunde întreruperea cu numărul 71 h). Vectorul acestei întreruperi este redirecţionat la rutina de deservire a întreruperii de nivel 2. Similar s-a procedat şi cu întreruperea corespunzătoare coprocesorului aritmetic, la calculatoarele XT această întrerupere fiind deservită de rutina corespunzătoare întreruperii nemascabile NMI. Pentru a păstra analogia, rutina de tratare a erorilor coprocesorului aritmetic este redirecţionată la rutina corespunzătoare întreruperii NMI. Microprocesoarele Motorola 680x0 La microprocesoarele Motorola din seria 680x0, întreruperile sunt numite excepţii, acestea cuprinzând derutări generate prin program, întreruperi datorită erorilor hardware, ca şi întreruperi externe de I/E. Fiecărei excepţii i se asociază un vector N de 8 biţi, acesta reprezentând un pointer la o locaţie de memorie cu adresa AN care păstrează adresa rutinei de tratare a excepţiei respective.
15

SISTEME DE INTRARE – IEŞIRE

Locaţiile de memorie cu adresele între 0 şi 3FFh formează o tabelă a vectorilor de întrerupere care păstrează 256 de adrese utilizate pentru tratarea întreruperilor. Adresele cuprinse între 100h şi 3FFh ale tabelei sunt rezervate pentru 192 de vectori de întrerupere ale utilizatorilor; celelalte locaţii sunt asignate de Motorola unor tipuri de întreruperi specifice. De exemplu, la întâlnirea unei instrucţiuni de împărţire la zero, procesorul execută o secvenţă care transferă controlul la programul a cărei adresă de început se află în locaţiile de adresă 14h-17h, corespunzătoare vectorului de excepţie N= 5. Există două tipuri (moduri) de întreruperi vectorizate: un mod general, în care dispozitivul care generează întreruperea furnizează un număr al vectorului indicând intrarea în tabela vectorilor, şi un mod "autovector" mai simplu, care permite dispozitivului de I/E să solicite unul din cei şapte vectori de excepţie ale căror adrese sunt generate intern de UCP. Procesoarele 680x0 dispun de 3 pini dedicaţi nivelului de prioritate, IPL0 - IPL2 (Interrupt Priority Level). Nivelele 0-6 sunt mascabile, iar nivelul 7 este nemascabil. Procesorul are un câmp de prioritate de 3 biţi în cuvântul de stare. Atunci când un periferic trebuie să genereze o cerere de întrerupere, depune prioritatea pe cei 3 pini şi activează un semnal de comandă. Depinzând de prioritatea sa curentă, procesorul poate accepta întreruperea, prin activarea unui semnal IPEND (Interrupt PENDing). La calculatoarele bazate pe procesoarele 680x0 prelucrarea întreruperilor are loc în felul următor. La sfârşitul fiecărui ciclu de instrucţiune, UCP verifică dacă există o cerere de întrerupere şi îşi testează prioritatea în modul descris mai jos. Dacă UCP acceptă cererea, îşi suspendă procesarea normală a instrucţiunilor şi execută o secvenţă de răspuns la întrerupere. UCP salvează mai întâi vechiul conţinut al registrului de stare SR într-un registru temporar şi apoi setează starea sistemului în modul supervizor. Apoi, în funcţie de semnalele de control generate de sursa de întrerupere, UCP fie citeşte un vector N furnizat de sursa de întrerupere (modul general), fie generează vectorul N în mod intern (modul "autovector"). UCP continuă cu salvarea conţinutului contorului de program PC, a vechiului conţinut al registrului de stare SR şi a unor informaţii interne în stiva supervizor, una din stivele păstrate de UCP în memoria principală. Utilizând AN ca adresă, UCP execută apoi o citire a memoriei pentru încărcarea vectorului de excepţie în PC, după care execută rutina de tratare a excepţiei. Figura 9 prezintă o interfaţă reprezentativă pentru întreruperile de I/E ale procesoarelor 680x0. Cele trei linii IPL se utilizează atât pentru generarea cererilor de întrerupere, cât şi pentru indicarea priorităţii lor. Dacă IPL = 0, nu există cereri de întrerupere, iar dacă IPL = i (i = 1, ..., 7) există o cerere cu nivelul de prioritate i. Atunci când există o cerere de întrerupere (IPL ≠ 0), UCP compară nivelul de prioritate al cererii cu valoarea reprezentată de trei biţi ai măştii de întrerupere I, care sunt păstraţi în registrul de stare SR. Dacă IPL > I, UCP răspunde la cererea de întrerupere la sfârşitul ciclului de instrucţiune în curs; dacă IPL < I, cererea de întrerupere este ignorată. Deoarece registrul SR poate fi modificat de anumite instrucţiuni privilegiate, se poate controla prin software dacă UCP va răspunde sau nu la cererile de întrerupere. Setarea măştii de întrerupere I la 0 validează toate cererile de întrerupere. Dacă I este setat la 7, toate întreruperile sunt ignorate cu excepţia celor de prioritate maximă (IPL = 7), care sunt nemascabile. Sursele de întrerupere pot utiliza astfel până la 192 de vectori, şi fiecare din acestea poate fi asignat la unul din 7 nivele de prioritate. UCP confirmă o cerere de întrerupere prin setarea fiecărei linii de ieşire FC (Function Code) la 1 pentru a forma un semnal de 3 biţi indicând recunoaşterea întreruperii. De asemenea, nivelul de prioritate al întreruperii recunoscute este plasat pe liniile de adresă A1:3. În modul general de întrerupere, controlerul de întrerupere răspunde prin plasarea unui număr al vectorului de întrerupere N pe liniile de date D0:7. În circuitul din Figura 9, semnalele FC sunt utilizate direct pentru strobarea vectorului de întrerupere N pe magistrala de date. Pentru indicarea modului "autovector", controlerul de întreruperi răspunde la FC = 1 prin activarea unei linii speciale de control AVEC (Automatic VECtor), determinând ca UCP să genereze intern valoarea N după formula N =24 + IPL.

16

Capitolul1 - Introducere

Figura 9. Interfaţa întreruperilor la procesorul Motorola 68000

Figura 10. Deservirea întreruperilor la calculatorul PDP-11 Calculatoarele PDP-11 Aceste calculatoare au o magistrală unică (Unibus). Comunicaţia între două dispozitive conectate pe magistrală este realizată în modul maşter-slave. La un moment dat există un singur dispozitiv care deţine controlul asupra magistralei; acest dispozitiv este denumit master. Pentru a putea genera o întrerupere, un dispozitiv trebuie mai întâi să devină maşter. Există 4 linii de cerere de control asupra magistralei pentru întrerupere, BR7 – BR4 (Bus Request), BR7 având prioritatea cea mai mare. Mai există o cerere de transfer prin DMA sau pentru transferuri directe între dispozitive (de exemplu între disc şi terminal), numită NPR (Non Processor Request), cu prioritatea mai mare decât cererile BR.
17

SISTEME DE INTRARE – IEŞIRE

Se utilizează un sistem de întreruperi vectorizate cu priorităţi multiple. Toate modulele de I/E partajează o singură linie de cerere de întrerupere pe magistrala Unibus. După ce un modul de I/E obţine controlul asupra magistralei, se execută următoarele operaţii (Figura 10): 1. Modulul activează semnalul BBSY (Bus Busy). 2. Modulul activează semnalul INTR (Interrupt Requesi) şi plasează vectorul pe liniile de date. 3. La sfârşitul execuţiei instrucţiunii curente, UCP testează semnalul INTR, citeşte vectorul de întrerupere şi activează semnalul SSYN (Slave Sync) pentru a indica acceptarea întreruperii. 4. Modulul de I/E răspunde prin dezactivarea semnalelor BBSY, INTR şi invalidarea datelor. 5. UCP răspunde prin dezactivarea semnalului SSYN şi preluarea controlului asupra magistralei, după care poate procesa întreruperea. Prioritatea este cablată pentru fiecare dispozitiv, cu excepţia UCP, a cărei prioritate este programabilă, fiind păstrată în 3 biţi ai cuvântului de stare. Un program care rulează cu nivelul de prioritate 7 nu poate fi întrerupt de un dispozitiv extern. Pentru ca întreruperea să aibă loc, programul în curs trebuie să ruleze cu un nivel de prioritate mai mic decât cererea dispozitivului extern. Dacă la aceeaşi linie de cerere (BR) sunt conectate mai multe dispozitive, un dispozitiv mai apropiat de UCP are prioritatea mai mare. Astfel, prioritatea sistemului este bidimensională, Deşi nivelul de prioritate al dispozitivului este fixat, prioritatea lui. se schimbă după cum variază prioritatea UCP. După ce dispozitivul devine maşter, transmite unităţii centrale o comandă de întrerupere şi o adresă de la începutul memoriei (vectorul de întrerupere), adresă la care se află: • un cuvânt (de 16 biţi) cu adresa rutinei de serviciu; • noul cuvânt de stare al programului. UCP memorează cuvântul de stare şi contorul de program (PSW, PC) în registrele temporare ale UCP, preia adresa rutinei de serviciu şi noul PC, şi apoi salvează vechiul PSW şi PC în stiva curentă indicată de noul PSW. După execu,tarea rutinei de serviciu, se revine la procesul întrerupt. Există o serie de erori şi condiţii de programare care produc întreruperea UCP şi saltul la un set de adrese fixe (întreruperi speciale): • erori de adresare impară; • erori de dialog pe magistrală (time-out), când este generat un semnal de sincronizare de la dispozitivul maşter şi nu apare nici un semnal de răspuns într-un anumit timp (adresarea unei locaţii inexistente sau a unui periferic inexistent); • erori de paritate a memoriei; • instrucţiuni ilegale; • instrucţiuni rezervate (cu cod neatribuit); • depăşire în virgulă mobilă; • depăşirea stivei; • căderea tensiunii de alimentare; rutina are la dispoziţie 2 ms pentru a salva conţinutul registrelor şi pregătirea perifericelor pentru căderea tensiunii de alimentare.

1.8.3. Transferul prin acces direct la memorie (DMA)
Transferul programat, chiar dacă se efectuează prin întreruperi, necesită intervenţia UCP pentru transferul datelor între memorie şi un modul de I/E, pentru fiecare octet sau cuvânt. Acest mod de transfer are deci două dezavantaje:
18

1.8.3.1. Principiile transferului prin DMA

Capitolul1 - Introducere

Figura 11. Structura generală a unui modul DMA 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ă execuţia unui anumit număr de instrucţiuni 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, generând semnalele de comandă necesare. Structura generală a unui modul DMA este prezentată în Figura 11. Modulul DMA trebuie să conţină următoarele elemente principale: • o logică pentru asigurarea legăturii cu memoria (semnale de citire şi scriere); • o linie de cerere DMA către memorie şi o linie de acceptare DMA de la UCP; • o logică de arbitraj a priorităţilor în cazul existenţei mai multor canale; • un registru de comenzi pentru validarea modulului DMA, selectarea priorităţii canalelor, selectarea modului de lucru etc. Pentru fiecare canal, trebuie să existe următoarele registre: • registru de adrese, pentru păstrarea adresei de început a transferului şi a adresei curente; • registru numărător, pentru păstrarea numărului de cuvinte rămase de transferat; • registru de stare, care indică starea activată sau neactivată a canalului şi condiţia 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 când aceasta nu este utilizată de UCP, sau să determine ca UCP să suspende temporar operaţiile. Rezultă două metode de efectuare a transferului DMA: 1. Prin utilizarea intervalelor de timp în care UCP nu face acces la memorie; metoda se numeşte transfer prin furt de ciclu (cycle stealing),deoarece modulul DMA "fură" un ciclu de memorie de la UCP. Activitatea UCP nu este influenţată de operaţiile DMA, cu excepţia cazului când se ajunge la un punct în care este necesară memoria. 2. Prin suspendarea operaţiilor efectuate de UCP în timpul transferului şi trecerea magistralei în starea de înaltă impedanţă. Ciclul de instrucţiuni se va relua apoi din punctul în care a fost suspendat. Metoda se numeşte transfer în rafală (data break). Figura 12 indică punctele din ciclul de instrucţiune în care activitatea UCP poate ii suspendată. în fiecare caz, UCP este suspendată înaintea momentului în care necesită utilizarea magistralei. Controlerul DMA transferă un cuvânt şi returnează controlul UCP. De notat că aceasta nu este o

19

SISTEME DE INTRARE – IEŞIRE

întrerupere; nu se salvează contextul programului şi nu se execută alte operaţii, ci UCP îşi suspendă activitatea pentru un ciclu de magistrală.

Figura 12. Puncte de suspendare ale activităţii UCP pentru DMA şi întreruperi Pentru citirea sau scrierea unui bloc de date, UCP transmite controlerului DMA o secvenţă de iniţializare, care trebuie să conţină următoarele informaţii: • sensul transferului (citire sau scriere); • adresa dispozitivului de I/E implicat; • adresa de început a zonei de memorie cu care se efectuează transferul; • numărul de octeţi sau de cuvinte care trebuie transferate. Pentru transmiterea acestor informaţii se utilizează transferul programat.

Figura 13. Utilizarea transferului prin DMA pentru citirea unui bloc de date UCP va executa alte operaţii, iar controlerul DMA va solicita controlul asupra magistralei, generând adresele şi semnalele de comandă pentru efectuarea transferului. Se incrementează registrul adresei curente şi se decrementează numărătorul de cuvinte. După acest ciclu DMA, în care s-a transferat un cuvânt, se continuă cu alte cicluri sau se dă controlul UCP. La terminarea transferului, controlerul generează un semnal de întrerupere către UCP. Astfel, interacţiunea dintre UCP şi sistemul de I/E este la nivel de bloc, UCP intervenind numai la începutul şi sfârşitul transferului (Figura 13). Eficienţa este mult mai ridicată decât în cazul transferului prin întreruperi.

20

Capitolul1 - Introducere

Există mai multe configuraţii ale unui sistem de I/E care utilizează transferul prin DMA (Figura 14).

a) Magistrală unică, DMA separat

b) Magistrală unică, DMA-I/E integrat În primul exemplu (Figura 14 a), toate modulele partajează aceeaşi magistrală sistem. Modulul

b) Magistrală de I/E Figura 14. Diferite configuraţii ale unui sistem de I/E care utilizează transferul prin DMA DMA utilizează I/E programate pentru transferul datelor între memorie şi un modul de I/E. Această configuraţie, deşi poate fi ieftină, este ineficientă. Fiecare transfer a unui cuvânt necesită două cicluri de magistrală, ca şi în cazul transferului programat prin intermediul UCP. Numărul ciclurilor de magistrală poate fi redus prin integrarea funcţiilor 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 14 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 14 c) modulele de I/E se conectează la modulul DMA printr-o magistrală de I/E. Astfel se reduce numărul interfeţelor 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 DMA numai pentru transferul datelor cu memoria. Transferul datelor între modulul DMA şi modulele de I/E nu utilizează magistrala sistem.

1.8.3.2. Exemple de sisteme DMA
Calculatoarele IBM PC/AT La aceste calculatoare se utilizează două controlere DMA 8237A, care permit gestionarea a 7 canale DMA. Se pot conecta controlere suplimentare pe plăcile adaptoare. Controlerele sunt conectate în cascadă, ieşirea HRQ (Hold ReQuest) a primului controler fiind conectată la intrarea DREQ (DMA REQuest) a celui de-al doilea. Pentru ambele controlere, cererea de preluare a magistralelor este iniţiată de ieşirea HRQ a celui de-al doilea controler, care se transmite procesorului. Achitarea cererii de către procesor se realizează prin semnalul HOLDA (HOLD
21

SISTEME DE INTRARE – IEŞIRE

Acknowledge) conectat la intrarea HLDA a aceluiaşi controler, iar achitarea pentru primul controler se realizează prin semnalul DACK (DMA Acknowledge). Primul controler gestionează canalele 0-3. Pe aceste canale se pot efectua transferuri de 8 biţi între dispozitive de I/E de 8 biţi şi memorii de 8 sau 16 biţi. Toate canalele se pot utiliza în spaţiul de adrese pentru transferul blocurilor de maxim 64 KB. Adresarea întregului spaţiu este asigurată de un registru de pagină DMA (DMA Page Register). Acesta este realizat cu un circuit de mapare a memoriei 74LS612, care conţine 16 registre de câte 12 biţi, cu adresare dublă pentru citire şi scriere. Din cele 16 registre (numite şi registre de segment DMA) se utilizează 8. Adresele registrelor de segment DMA pentru canalele 0, 1, 2 şi 3 sunt: 87h, 83h, 81h, respectiv 82h. Controlerul al doilea gestionează canalele 4-7. Canalul 4 se utilizează pentru legarea în cascadă. Canalele 5-7 permit transferuri de 16 biţi a unor blocuri de maxim 128 KB din spaţiul de adrese al memoriei, dar cuvintele de 16 biţi trebuie să se afle la adrese pare. Adresele registrelor de segment DMA pentru canalele 5, 6 şi 7 sunt: 8Bh, 89h, respectiv 8Ah. Calculatoarele PDP-11 Pentru perifericele care sunt controlate prin DMA, logica DMA este integrată cu modulul de I/E şi cu interfeţele pentru magistrala Unibus (asemănător configuraţiei din Figura 14 b). Diagrama simplificată pentru un transfer DMA este prezentată în Figura 15.

Figura 15. Diagrama de timp a unui transfer DMA pe magistrala Unibus (PDP-11) Modulul DMA solicită controlul asupra magistralei prin activarea semnalului NPR (NonProcessor Request). Acest semnal are o prioritate mai ridicată decât alte semnale de cerere de întrerupere. Semnalul SACK (Select ACKnowledge) este activat de modulul DMA după ce a fost informat de UCP că a fost selectat pentru a prelua controlul asupra magistralei. Acest semnal rămâne activ până la preluarea controlului asupra magistralei de către dispozitivul solicitant, şi în acest timp nu mai sunt acceptate alte cereri de magistrală. După ce modulul DMA devine master, poate transfera datele în memorie. Acest modul poate fi programat pentru a transfera un bloc de cuvinte în timp ce păstrează controlul asupra magistralei. Pentru aceasta, modulul păstrează semnalul BBSY (Bus Busy) activat, prevenind preluarea controlului asupra magistralei de către alte dispozitive şi UCP. Semnalul MSYN (Master Synchronization) indică prezenţa datelor valide pe magistrală. La terminarea operaţiei, se dezactivează semnalul BBSY, şi se permite astfel reluarea operaţiilor de către UCP. Pentru iniţierea unui transfer DMA, UCP înscrie informaţiile necesare de control în locaţiile de memorie corespunzătoare modulului DMA, deoarece la calculatoarele PDP-11 adresele de I/E sunt mapate în memorie. Datele vor fi transferate într-unul sau mai multe blocuri. Un exemplu de modul DMA care se poate utiliza pentru interfaţarea echipamentelor cu magistrala Unibus este DR-11B. Conţine patru registre, cărora li se asignează adrese de memorie: bufferul de date (Data Buffer), registrul de stare şi comandă (Status and Command), registrul de adresă (Bus Address) şi contorul de cuvinte (Word Count). Bufferul de date nu este accesat în mod normal de UCP. Registrul de adresă specifică adresa de început a memoriei pentru citire şi scriere. Contorul de cuvinte este iniţializat de UCP cu dimensiunea blocului care va fi transferat. Registrul de stare şi comandă poate fi înscris cu biţi de comandă ca citire, scriere, start operaţie etc. Acelaşi registru poate fi citit de UCP pentru monitorizarea diferitelor condiţii de stare.
22

Capitolul1 - Introducere

1.8.4. Transferul prin canale de l/E
Deşi accesul direct la memorie eliberează UCP de numeroase operaţii de I/E, în cazul perifericelor rapide vor fi necesare numeroase cicluri de magistrală pentru referinţele la memorie. În timpul acestor cicluri, UCP trece în starea de aşteptare. 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 îmbunătăţite, devenind procesoare care dispun de un set de instrucţiuni specializat pentru I/E. UCP transmite o comandă procesorului de I/E pentru a executa un program de I/E din memorie. Acesta execută instrucţiunile programului fără intervenţia UCP. Astfel este posibilă specificarea de către UCP a unei secvenţe de operaţii de I/E şi întreruperea UCP numai la terminarea întregii secvenţe. 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 intervenţie 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 16. Comunicaţia cu memoria se poate realiza prin DMA. Canalul de I/E asigură o cale pentru transferul datelor între diferitele periferice şi memorie. UCP iniţiază transferul de I/E, după care canalul de I/E funcţionează independent de UCP şi continuă transferul datelor între periferice şi memorie.

1.8.4.1. Principiul transferului prin canale de I/E

Figura 16. 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 cuvânt î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 cuvânt de memorie, acesta se transferă de la canalul de I/E direct în memorie printr-un furt de ciclu. Similar, un cuvânt transferat din memorie la canalul de I/E va fi transmis la un dispozitiv de ieşire la viteza şi numărul de biţi ai acestuia.

23

SISTEME DE INTRARE – IEŞIRE ISTEME IE

Figura 17. Tipuri de canale de I/E De obicei, UCP are sarcina iniţierii operaţiilor de I/E, prin instrucţiuni de start al unui transfer şi de test al stării operaţiilor. Canalul solicită o intervenţie a UCP printr-o cerere de întrerupere, şi răspunde la cererile UCP prin plasarea unui cuvânt de stare într-o locaţie de memorie, cuvânt care poate fi examinat de UCP. Pentru execuţia unei operaţii de I/E, UCP transferă o instrucţiune canalului, indicând perifericul care trebuie utilizat şi adresa de început a instrucţiunilor suplimentare. Instrucţiunile citite de canal din memorie se numesc comenzi, pentru a le deosebi de instrucţiunile transmise de UCP canalului. Instrucţiunile şi comenzile au funcţii similare. Cuvintele de comandă sunt pregătite şi sunt depuse de UCP în memorie. Acestea reprezintă un program de canal. UCP informează canalul asupra locaţiilor în care va găsi cuvintele de comandă. Există două tipuri de canale de I/E mai utilizate: canale selectoare şi canale multiplexoare (Figura 17). 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.

1.8.4.2. Comunicaţia dintre UCP şi canalul de l/E

24

Capitolul1 - Introducere

În cele mai multe cazuri, această comunicaţie se realizează prin mesaje depuse în memorie. Se va prezenta printr-un exemplu simplificat modul în care poate avea loc comunicaţia dintre UCP şi canal. UCP iniţiază o operaţie de I/E printr-o instrucţiune de I/E adresată canalului. Un format posibil al acestei instrucţiuni este prezentat în Figura 18.

Figura 18. Formatul unei instrucţiuni tipice pentru iniţierea unei operaţii de I/E Codul instrucţiunii are următoarele câmpuri: 1. Un cod de operaţie care specifică operaţia de executat 2. O adresă de dispozitiv care specifică adresa unui anumit dispozitiv de I/E conectat la canal O adresă de memorie care va fi utilizată de canal atunci când acesta răspunde la instrucţiunea UCP Secvenţa de operaţii care se execută este ilustrată în Figura 19. UCP transmite o instrucţiune de test I/E către canal. Canalul răspunde prin depunerea unui cuvânt de stare în memorie, la adresa specificată de câmpul de adresă al instrucţiunii, care indică starea canalului şi a dispozitivului de I/E. UCP testează cuvântul de stare din memorie şi decide operaţia următoare. UCP transmite apoi instrucţiunea de lansare a transferului de I/E. Această instrucţiune specifică adresa primului cuvânt de comandă pentru operaţia de I/E. UCP poate continua apoi execuţia unui alt program în timp ce canalul este ocupat cu transferul. La terminarea transferului, canalul transmite o cerere de întrerupere către UCP. UCP răspunde la această cerere prin transmiterea instrucţiunii de citire a stării canalului. Canalul va plasa un cuvânt de stare în locaţia de memorie specificată de instrucţiune, care indică terminarea normală a transferului sau apariţia unor erori. Cuvintele de comandă specifică programul care este executat de canal. Adresa cuvintelor de comandă este transmisă de UCP printr-o instrucţiune de start I/E. Formatul tipic al unui cuvânt de comandă este indicat în Figura 20.

25

SISTEME DE INTRARE – IEŞIRE

Figura 19. Operaţiile executate pentru transferul prin canale de I/E

Figura 20. Formatul tipic al unui cuvânt de comandă pentru un canal de I/E Câmpurile cuvântului de comandă sunt: 1. adresa buffer-ului utilizat pentru transfer; 2. contorul de cuvinte indică lungimea bufferului, deci numărul de cuvinte pe care le conţine; 3. câmpul de operaţie specifică operaţia care trebuie executată: o intrare, o ieşire sau alte operaţii; 4. câmpul special indică o funcţie specifică unui anumit dispozitiv de I/E, câteva din acestea fiind indicate în figură. Canalul de I/E asigură transferul datelor între mai multe periferice şi memorie. Canalul şi UCP utilizează aceeaşi memorie, astfel că numărul de periferice este limitat de timpul de acces al memoriei. Unele unităţi rapide, ca discurile magnetice, pot utiliza un număr mare de cicluri de memorie. în acest caz, viteza UCP va fi micşorată, deoarece va trebui să aştepte terminarea unui acces la memorie de către canal înaintea utilizării memoriei.

1.8.4.3. Exemple de canale de i/E
26

Capitolul1 - Introducere

Canalul de I/E al calculatoarelor IBM System/370 În mod obişnuit, utilizarea canalelor de I/E a fost asociată cu calculatoarele mari (mainframe), din următoarele motive: • calculatoarele mari au în general memorii externe de mare capacitate; • cele mai multe calculatoare mari permit conectarea simultană a unui număr mare de utilizatori, de ordinul sutelor. Utilizarea canalelor de I/E s-a extins la minicalculatoare şi chiar la microcalculatoare. Cu toate acestea, cel mai cunoscut canal de I/E este cel utilizat la calculatoarele de tip mainframe ale IBM, cele mai multe dintre acestea fiind bazate pe arhitectura IBM System 370. Figura 22 prezintă structura subsistemului de I/E pentru familia de calculatoare IBM 370. UCP controlează unul sau mai multe canale. Un canal poate fi un multiplexor la nivel de octet sau de bloc. Fiecare canal gestionează unul sau mai multe controlere de I/E, numite unităţi de control. La o Figura 21. Execuţia unei operaţii la canalul de I/E IBM 370 unitate de control se conectează un set de periferice similare sau identice. De exemplu, la un controler de disc se conectează mai multe unităţi de disc. După cum se poate observa în figură, o unitate de control poate fi conectată la mai multe canale, iar un periferic poate fi conectat la mai multe unităţi de control. Astfel se asigură mai multe căi fizice între UCP şi un periferic, iar în cazul în care o cale este ocupată sau este invalidată, se poate utiliza o altă cale. Există trei tipuri de directive de I/E: • instrucţiuni de I/E ale UCP; • comenzi de canal; • ordine pentru unităţile de control. Fiecare tip se utilizează pentru controlul operaţiilor de I/E la nivele hardware diferite şi asigură nivele diferite de detaliere în ceea ce priveşte operaţiile de I/E. În Figura 21 se prezintă etapele de execuţie a unei operaţii de I/E. Etapele de execuţie sunt următoarele: 1. UCP iniţiază operaţia de I/E printr-o instrucţiune de I/E adresată unui canal de I/E. 2. Canalul citeşte din memorie unul sau mai multe cuvinte de comandă ale canalului (Channel Command Word - CCW), şi execută comenzile sau instrucţiunile acestor cuvinte. 3. Pe baza comenzilor din CCW, canalul transmite ordine pentru una din unităţile sale de control. în timpul operaţiei de I/E, se transferă informaţii de control între canal şi unitatea de control. 4. Pe baza ordinelor recepţionate de la canal, unitatea de control transmite semnale de control unuia din dispozitivele sale. în timpul transferului de date, se pot transmite semnale între unitatea de control şi dispozitiv. 5. Pentru o operaţie de citire, datele sunt transferate de la dispozitiv la canal, iar apoi de la canal direct în memoria principală. Pentru o operaţie de scriere, secvenţa este inversă. 6. După terminarea unei operaţii de I/E (cu succes sau cu o eroare), canalul generează o întrerupere către UCP.
27

SISTEME DE INTRARE – IEŞIRE

Figura 22. Structura sistemului de I/E a calculatoarelor IBM 370

Figura 23. Structura cuvintelor utilizate la canalul IBM 370 UCP comunică direct cu canalele de I/E prin semnale dedicate de control, şi indirect prin zone rezervate de memorie. Formatele cuvintelor asociate cu operaţiile canalelor sunt prezentate în Figura 23. Instrucţiunile de l/E cuprind trei câmpuri: • codul operaţiei; • adresa canalului; • adresa dispozitivului. Codul operaţiei specifică una din cele opt instrucţiuni de I/E. Acestea sunt următoarele: • Start I/E (Start I/O-SIO); • Start I/E cu eliberare rapidă (Start I/O Fast Release - SIOF); • Test canal (Test Channel); • Test I/E (Test I/O); • Oprire I/E (Halt I/O); • Reluare I/E (Resume I/O); • Oprire dispozitiv (Halt Device); • Memorare identificare canal (Store Channel Identification). Instrucţiunea SIO se utilizează pentru iniţierea unei operaţii de I/E care implică determinarea stării unui dispozitiv, controlul dispozitivului şi efectuarea transferului de date între dispozitiv şi
28

Capitolul1 - Introducere

memoria principală. Instrucţiunea SIOF este similară cu SIO, dar în acest caz UCP este eliberată imediat, înaintea determinării stării dispozitivului selectat. Canalul adresat răspunde la fiecare instrucţiune de I/E pe care o execută. De asemenea, canalul setează codurile de condiţie din cuvântul de stare al programului (PSW). Aceste coduri indică dacă dispozitivul sau canalul este ocupat sau disponibil, dacă este operaţional, dacă operaţia: de I/E a fost lansată cu succes, şi dacă a fost depus în memorie un cuvânt de stare de către canal. Formatul cuvântului de stare este prezentat în Figura 23(b). Acest cuvânt este memorat întotdeauna la adresa 64 din memorie. Primul câmp conţine o cheie de acces de 4 biţi asociată cu fiecare bloc de 2 KB sau 4 KB de memorie, asigurând un mecanism de protecţie împotriva accesului neautorizat în zona de memorie a altui program. Câmpul de adresă conţine adresa următoare ultimului cuvânt de comandă care a fost executat de canal. Câmpul de stare conţine starea dispozitivului şi a canalului şi eventualele erori care au apărut în timpul transferului. Contorul conţine numărul de cuvinte care nu au fost transferate încă (dacă transferul s-a terminat cu succes, acest câmp conţine zero). Canalul răspunde la o instrucţiune SIO sau SIOF prin citirea adresei primului cuvânt de comandă al canalului (Channel Command Word - CCW). Această adresă se află în locaţia 72 din memorie. Formatul CCW este indicat în Figura 23(c). Codul comenzii specifică operaţia de executat, de exemplu: citire, scriere, citirea stării dispozitivului, execuţia unei funcţii de control specifice dispozitivului (care nu implică transferul datelor, ca poziţionarea mecanismului de acces la disc), sau înlănţuirea între mai multe cuvinte CCW care nu se află în locaţii contigue. Adresa datelor indică adresa de început a zonei de memorie utilizată pentru transfer. Contorul indică numărul de octeţi care trebuie transferaţi. Biţii indicatori specifică informaţii suplimentare despre operaţia de executat, de exemplu: • înlănţuirea datelor, utilizată pentru transferul datelor din sau în zone necontigue de memorie; • înlănţuirea comenzilor, utilizată pentru execuţia mai multor cuvinte CCW printr-o singură instrucţiune SIO sau SIOF; • salt, care indică o operaţie de citire fără transferul datelor. Un program de canal constă dintr-unul sau mai multe cuvinte CCW. Cuvintele multiple sunt executate prin înlănţuire şi ramificaţie. în cazul înlănţuirii, la terminarea unei comenzi canalul va încărca următorul cuvânt CCW. Comanda Transfer In Channel permite modificarea ordinii de execuţie a cuvintelor CCW. La terminarea unei operaţii, canalul memorează starea operaţiei în cuvântul de stare al canalului şi generează un semnal de întrerupere pentru UCP. Procesorul de I/E Intel 8089 Conţine două canale independente de I/E, fiecare din ele combinând caracteristicile unei UCP cu cele ale unui controler DMA: pot executa programe, ca şi UCP, având în jur de 50 de tipuri de instrucţiuni, şi pot efectua transferuri DMA. Este direct compatibil cu procesorul 8086 configurat în modul maxim. Principii de funcţionare Comunicarea UCP cu procesorul de I/E (PIE) are loc în două moduri: • modul de iniţializare; • modul de comandă. Iniţializarea unei operaţii de I/E de către UCP se realizează prin depunerea unor blocuri de mesaje în memorie, care descriu operaţia care trebuie executată, şi activarea unor semnale. PIE citeşte aceste blocuri, execută operaţia şi informează UCP la terminarea acesteia. Structura blocurilor de mesaje se prezintă în Figura 24. La iniţializare, UCP transmite PIE adresa unui bloc de control al canalelor CB (Control Block), aflat în spaţiul de memorie al UCP. Blocul este împărţit în două jumătăţi, câte una pentru fiecare canal. Acestea conţin: • un octet de stare BUSY, actualizat de canal
29

SISTEME DE INTRARE – IEŞIRE

Indică starea ocupată sau disponibilă a canalului. • un octet de comandă CCW (Channel Command Word), setat de UCP Acest octet nu are aceeaşi semnificaţie ca şi cuvântul de comandă al canalelor IBM. CCW are rolul unei instrucţiuni de I/E, specificând o operaţie care trebuie executată de PIE, ca de exemplu: start operaţie, suspendare sau reluare operaţie şi oprire program de canal. • un pointer la un bloc de parametri PB (Parameter Block) Acest bloc conţine variabilele pe care le va utiliza programul de canal şi spaţiu pentru rezultatele pe care canalul le va returnaUCP. Dimensiunea şi formatul unui bloc de parametri sunt dependente de aplicaţie, cu excepţia primelor două cuvinte, care conţin un pointer la un bloc al taskului TB (Task Block). Acest bloc este un program de canal, format dintr-o secvenţă de instrucţiuni 8089. Înaintea lansării unui program de canal, UCP efectuează legăturile între blocul taskului TB şi blocul de parametri PB, respectiv blocul de parametri şi blocul de control CB. Se utilizează pointeri de tip cuvinte duble (offset şi segment). Un sistem poate avea mai multe blocuri de parametri şi de taskuri, dar numai unul din fiecare este legat la un canal. După efectuarea legăturilor, UCP completează informaţiile în blocul de parametri, înscrie octetul de comandă CCW şi activează semnalele CA (Channel Attention) şi SEL (Channel Select). Starea semnalului SEL la frontul descrescător al semnalului CA selectează canalul 1 sau 2. UCP continuă apoi cu execuţia unui alt program. La recunoaşterea semnalului CA, canalul examinează comanda din octetul de comandă CCW. Dacă trebuie să lanseze un program, canalul încarcă adresa blocului de parametri PB şi cea a blocului taskului TB în registre interne, setează indicatorul său BUSY şi începe execuţia programului. La terminarea programului canalul şterge indicatorul BUSY, înscrie starea operaţiei în blocul de parametri şi poate genera o cerere de întrerupere către UCP. Comunicaţia dintre UCP şi PIE are loc deci mai ales prin "mesaje" aflate în memoria UCP, singurele legături directe dintre UCP şi PIE fiind semnalul CA, semnalul SEL şi cererea de întrerupere (Figura 25) Dacă se utilizează adresarea izolată a dispozitivelor de I/E, PIE este accesibil prin două porturi cu adrese consecutive, câte unul pentru fiecare canal. O instrucţiune OUT la unul din porturi va activa canalul respectiv (instrucţiunea are rolul semnalului CA). Dacă se utilizează adresarea cu maparea în memorie, PIE este accesibil prin două locaţii cu adrese consecutive de memorie, şi orice instrucţiune de referire la aceste locaţii va activa canalul corespunzător. Fiecare din cele două canale funcţionează independent, având propriul set de registre, semnale CA, cereri de întrerupere şi semnale de control pentru DMA. Canalele pot fi active şi concurent, alternând operaţiile lor (de exemplu, canalul 1 poate executa instrucţiuni în perioadele dintre ciclurile succesive de transfer DMA executate de canalul 2). Există un sistem de priorităţi între canale, care poate fi modificat de către UCP. Programele de canal sunt scrise în limbajul de asamblare ASM-89. PIE dispune de instrucţiuni care operează asupra variabilelor de tip bit, octet, cuvânt sau cuvânt dublu. Există şi o variabilă de tip adresă fizică de 20 biţi. Modurile de adresare permit accesul la variabilele de memorie şi la dispozitivele de I/E din spaţiul de I/E de 64 KB al PIE, sau mapate în spaţiul de memorie al UCP.

30

Capitolul1 - Introducere

Figura 24. Blocurile de comunicaţie la PIE 8089

Figura 25. Comunicaţia dintre UCP şi PIE Există instrucţiuni generale, similare cu cele ale UCP, şi instrucţiuni specifice pentru operaţiile de I/E: transferuri, operaţii aritmetice, logice şi cu adrese, operaţii la nivel de bit (setarea/resetarea individuală a unui bit), apeluri de proceduri, salturi necondiţionate şi condiţionate (testarea unui bit şi salt dacă bitul este setat/resetat, testarea unei valori şi salt dacă aceasta este zero/diferită de zero). Alte instrucţiuni iniţiază transferurile DMA, execută o cerere de întrerupere către UCP, sau execută o operaţie de testare şi setare a unui semafor. Transferuri DMA Instrucţiunea XFER pregăteşte canalul pentru un transfer DMA. Acesta suspendă execuţia programului şi intră în modul de transfer DMA, în care utilizează registrele de canal setate prin program înaintea execuţiei instrucţiunii XFER. Datele sunt transferate de la sursă la destinaţie. Sursa şi destinaţia se poate afla în spaţiul de memorie al UCP sau în spaţiul de I/E al PIE. PIE nu face distincţie între memorie şi dispozitivele de I/E, astfel încât transferurile pot avea loc: • din memorie la un dispozitiv de I/E; • de la un dispozitiv de I/E în memorie; • din memorie în memorie; • de la un dispozitiv de I/E la un alt dispozitiv de I/E. Ciclurile de transfer pot fi: • sincronizate printr-un semnal de cerere DMA de la sursă sau destinaţie; canalul aşteaptă semnalul de sincronizare înaintea începerii următorului ciclu de transfer; • nesincronizate; canalul începe următorul ciclu imediat după terminarea ciclului precedent. Un ciclu de transfer este executat în două etape: citirea octetului sau cuvântului de la sursă şi memorarea la destinaţie. PIE optimizează automat transferul pentru a utiliza în mod eficient magistrala disponibilă. De exemplu, dacă data este transferată de la un dispozitiv de 8 biţi în memorie printr-o magistrală de 16 biţi, PIE va executa două cicluri de citire şi apoi va memora întregul cuvânt într-un singur ciclu. între ciclurile de citire şi de scriere se pot efectua operaţii asupra datelor: translatarea într-un alt cod (de exemplu din EBCDIC în ASCII), compararea cu o anumită valoare, sau ambele. Un transfer poate fi terminat datorită mai multor condiţii: • la transferul unui număr specificat de octeţi (maxim 64 KB); • printr-un semnal de la un dispozitiv extern, aplicat pe pinul corespunzător canalului (EXTl sau EXT2 - Externai Terminate); • la transferul unui octet (eventual translatat) care are o anumită valoare, egală sau neegală cu o valoare de căutare;
31

SISTEME DE INTRARE – IEŞIRE

• după transferul unui octet sau cuvânt (transfer cu un singur ciclu). La terminarea transferului, canalul reia automat execuţia programului. Programul de canal poate determina cauza terminării, dacă sunt posibile mai multe cauze (de exemplu, la întâlnirea caracterului CR sau la transferul a 80 octeţi). Pentru a determina dacă transferul s-a efectuat corect, programul de canal poate citi un registru de rezultat de la controlerul dispozitivului de I/E. Dacă, de exemplu, s-a detectat o eroare CRC de către controler, programul de canal poate relua operaţia fără intervenţia UCP. De obicei, programul de canal plasează rezultatul operaţiei în blocul de parametri, eventual generează o întrerupere către UCP, şi opreşte canalul. La oprirea canalului, indicatorul BUSY din blocul de control este şters pentru a indica disponibilitatea sa pentru alte operaţii. Ca o alternativă la întreruperea de către canal, UCP poate testa prin polling indicatorul BUSY pentru a determina dacă operaţia s-a terminat. Configuraţii de magistrale PIE poate accesa memoria sau porturile de I/E din spaţiul sistem de 1 MB şi memoria sau porturile de I/E din spaţiul de I/E de 64 KB. Deşi PIE are numai o magistrală fizică de date, este util să se considere că PIE face acces la spaţiul sistem printr-o magistrală sistem şi la spaţiul de I/E printr-o magistrală de I/E (ambele de date). Distincţia dintre cele două magistrale logice este realizată pe baza semnalelor care indică tipul ciclului de magistrală generate de controlerul de magistrală 8288. Componentele din spaţiul sistem răspund la semnalele MEMR şi MEMW, fie că reprezintă memorii sau dispozitive de I/E. Componentele din spaţiul de I/E răspund la semnalele IOR şi IOW (chiar dacă sunt memorii). Cele două configuraţii diferă prin gradul în care PIE partajează aceste magistrale cu UCP. Ambele necesită utilizarea procesorului în modul maxim. 1. Configuraţia locală Procesorul sau procesoarele de I/E partajează ambele magistrale cu UCP. Spaţiul sistem al PIE corespunde cu spaţiul de memorie al UCP, iar spaţiul de I/E al PIE corespunde cu spaţiul de I/E al UCP. Programele de canal se află în spaţiul sistem; dispozitivele de I/E se pot afla în oricare spaţiu (Figura 26).

Figura 26. PIE 8089 în configuraţie locală
32

Capitolul1 - Introducere

PIE utilizează magistrala pentru citirea instrucţiunilor programului de canal, ca şi pentru transferuri DMA sau programate. PIE şi UCP nu pot utiliza magistrala simultan. Avantajul configuraţiei locale este că unui sistem i se poate adăuga un DMA inteligent, fără componente suplimentare în afara PIE. Funcţionarea paralelă a UCP şi a PIE este limitată la cazurile în care UCP are instrucţiuni în coada de instrucţiuni care pot fi executate fără utilizarea magistralei. 2. Configuraţia Ia distanţă

Figura 27. PIE 8089 în configuraţie la distanţă PIE partajează o magistrală sistem comună cu UCP, accesul la această magistrală fiind controlat de către arbitri de magistrală 8289. Magistrala locală de I/E a PIE este separată fizic de UCP. Magistrala locală poate fi partajată de două PIE. În sistem poate exista orice număr de procesoare de I/E, în grupe de maxim două. Magistrala locală de I/E nu trebuie să aibă aceeaşi lăţime cu magistrala sistem partajată, permiţând de exemplu interfaţarea perifericelor de 8 biţi cu procesorul 8086 (Figura 27). În configuraţia la distanţă conflictele la magistrala sistem vor fi mai reduse, deoarece perifericele locale şi memoria locală pot fi accesate fără utilizarea magistralei sistem. Aceste conflicte pot fi reduse şi mai mult prin plasarea programelor de canal în spaţiul local de I/E, astfel încât PIE va putea citi instrucţiunile fără utilizarea magistralei sistem. Blocurile de memorie care asigură comunicaţia dintre UCP şi PIE (CB, PB) trebuie să se afle însă în memoria sistem, pentru a putea fi accesate de ambele procesoare. Această configuraţie creşte gradul în care UCP şi PIE pot opera în paralel, dar cu preţul adăugării unor circuite suplimentare pentru arbitrajul magistralei partajate şi separarea magistralei partajate de cele locale. Este posibil să se configureze un PIE la distanţă faţă de o UCP şi local faţă de altă UCP. UCP locală poate fi utilizată pentru execuţia rutinelor care necesită calcule mai complexe.

33

Capitolul 2 Porturi de comunicaţie cu echipamentele periferice

2.1. Portul paralel
În prezent portul paralel este utilizat cel mai frecvent pentru imprimante şi scanere. În particular, pentru calculatoarele industriale, portul paralel este utilizat pentru device-urile dedicate. Datorită primelor tipuri de conexiuni, portul paralel a fost denumit şi Centronics. De-a lungul timpului tehnologia acestui port a cunoscut puţine schimbări. Cea mai importantă constă în trecerea de la conectorul cu 36 de pini la conectorul cu 25 de pini. Diferenţa majoră dintre cei doi conectori constă în eliminarea unor conexiuni redundante de masă. Denumirea de port paralel vine de la tipul transferului de date utilizat. Transferul se realizează prin intermediul a opt fire paralele de date, toţi cei opt biţi fiind transferaţi simultan ( în paralel). 1 – Strobe 2 ÷ 9 Data 10 -Ack 11 busy 12 Paper out 13 +Select 14 -AutoFDXT 15 -Error 16 -Init 17 -SLCTIN 18 ÷ 25 Masă -Strobe – utilizat pentru a comunica perifericului că datele sunt pregătite; semnul (-) indică faptul că pulsul pe linie este negativ; în momentul în care octetul este transmis tensiunea de pe linie este trecută în nivelul de jos, fiind interpretat de periferic ca un semnal activ; Data – transferă cei opt biţi ai octetului de informaţie; datele sunt transmise în mod binar, tensiunea ridicată fiind interpretată ca un bit “1”, iar cea joasă sau lipsă ca un bit “0”; -Ack – linia de confirmare; (-) este interpretat ca un semnal “gata de primire”; atâta timp cât semnalul pe linie este pozitiv UCP nu mai transmite date; în momentul în care valoare devine negativă UCP ştie că poate iniţia transferul de date; busy – semnalizează UCP că perifericul este ocupat; UCP aşteaptă ca buffer-ul perifericului să se golească de date şi abia apoi transmite din nou; Paper out – linia este folosită pentru comunicarea cu imprimanta şi transmite UCP să nu mai transmită date; +Select – indică faptul că perifericul este on-line; -AutoFDXT – controlează doar trecerea la o linie nouă; -Error – semnalează erorile la periferic; -INIT – transmite semnalul de restabilire a parametrilor iniţiali ai perifericului; -SLCTIN – semnalează faptul că perifericul este pregătit să accepte date. Datorită celor opt linii date transferul între UCP şi periferic estre destul de rapid. Teoretic portul paralel este pregătit să transmită ½ milioane de caractere pe secundă. Viteza de transfer

1

SISTEME DE INTRARE – IEŞIRE

depinde însă de capacitatea perifericului şi viteza de comunicare a acestuia. Deşi este rrapid transferul paralel de date nu este eficient decât pe distanţe reduse de până la 3,5 metri. 2.1.1. Transferul de date pe portul paralel Din punct de vedere logic interfaţa paralelă standard este formată din două registre şi un buffer de intrare ocupând trei adrese din spaţiul de adreselor de porturi de intrare – ieşire al procesorului: • Un registru de date pe 8 biţi (unidirecţional sau bidirecţional); • Un registru de control bidirectional pe 6 biţi; • Un buffer de intrare pe 8 biţi. Portul paralel permite citirea a până la 9 biţi pentru transferul unidirecţional şi 17 biţi pentru cel bidirecţional. De asemenea, permite scrierea a 12 biţi pentru orice tip de transfer. 2.1.1.1. Registrul de date Se află la adresa de bază (IOBaseAddress) şi poate fi accesat în citire şi scriere (prin intermediul instrucţiunilor de I/E). 2.1.1.2. Registrul de stare Se află la adresa de bază (IOBaseAddress)+1 şi poate fi accesat doar în citire. 7 6 5 4 3 2 0 1 0 0 0

nError (15) = 0 eroare Select (13) = 1 device select PaperOut (12) = 1 nu este hârtie nAck (10) = 0 Primeşte următorul caracter nBusy (11) = 0 device ocupat sau deconectat

2.1.1.3. Registrul de control Se află la adresa de bază (IOBaseAddress)+2 şi poate fi accesat atât în citire cât şi în scriere. 7 0 6 0 5 0 4 3 2 1 0

nStrobe(1) = 1 Trimite octet nAutoFDXT(14) = 1 trecere la rând nou nINIT(16) = 0 iniţializare device nSLCTIN(17) = 1 selectare device IRQ Enable = 1 validare întrerupere

2.1.1.4. Adresele portului paralel 3BCh – 3BFh – pentru intrări paralele în plăci video
2

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

378h – 37Fh – LPT1 278h – 27Fh – LPT2 2.1.1.5. Adrese de start în bios 0000:0408 - LPT1 0000:040A - LPT2 0000:040C - LPT2 0000:040E – LPT4 (pentru calculatoare mai noi) 2.1.1.6. Moduri de transfer Standardul IEEE1284, care stabileşte principiile transferului paralel, defineşte 5 moduri de transfer: • Standard (compatibilitate); • Nibble(transferul pe 4 biţi); • Byte (pe octet); • EPP(Enhanced Parallel Port); • ECP(Extended Compatibility Port). Modul Standard Defineşte protocolul utilizat de SPP. Datele sunt depuse pe liniile de date, se testează starea perifericului şi se generează programat un pachet de date. Acest mod asigură doar un canal în sens direct şi trebuie completat cu un mod care asigură un canal în sens invers pentru a se realiza comunicaţia bidirecţională. Acest lucru s-a realizat prin implementarea buffere-lor FIFO rezultând modul “Fast Centronics”. Modul Nibble Permite obţinerea unui canal în sens invers de la periferic către UCP fiind combinat cu cu modul Standard pentru crearea canalului de comunicaţie bidirecţional. Transferul se realizează prin utilizarea celor 5 linii de stare, prin transmiterea unui octet în două cicluri de câte 4 biţi. Acest mod necesită implementarea protocolului în program şi prezintă o rată limitată de transfer. Modul Byte O parte dintre producătorii şi dezvoltatorii de echipamente şi componente hardware au adăugat posibilitatea dezactivării driver-elor pentru liniile de date ale portului paralel permiţând astfel perifericului să transmită un octet întreg prin transformarea portului de date în port de intrare. Acesta poartă denumirea de port bidirecţional “îmbunătăţit”. Modul EPP Protocolul EPP a fost dezvoltat de firmele Intel, Xircom şi Zenith Data Systems şi a fost adoptat ca metodă opţională de transfer de către producătorii de echipamente periferice. Protocolul se bazează pe patru cicluri de transfer: • Scriere date • Citire date • Scriere adrese • Citire adrese
3

SISTEME DE INTRARE – IEŞIRE

Primele două cicluri sunt utilizate pentru transferul de date între calculator şi periferic, ultimele două fiind destinate transferului adreselor şi informaţiilor de control şi comandă. Modul ECP Acest protocol a fost propus şi dezvoltat de firmele IBM Şi Microsoft. Modul ECP asigură o comunicaţie bidirecţională între UCP şi periferic. Protocolul pune la dispoziţie cicluri de date şi cicluri de comenzi în ambele sensuri în vederea realizării transferului de date.

2.2. Portul serial
Portul serial este un port standard pentru PC-uri. Tendinţele actuale ale industriei producătoare de sisteme de calcul prevede minimizarea rolului acestuia oferind un singur port serial în configuraţia de bază cu posibilitatea de ataşare de interfeţe seriale sau switch-uri de port serial. Portul serial diferă de cel paralel prin modul de realizare a transmisiei de date în secvenţă serială şi nu în secvenţă paralelă, adică un sigur bit la un moment dat. Distanţa maximă de realizare a transferului de date serial este de 150 de metri în condiţii normale şi poate ajunge până la 150 de metri în condiţii de ecranare şi protejare la perturbaţiile externe. Primele standarde recomandau (ca şi în cazul transmisiei paralele) utilizarea a 25 de linii. Practic, pentru realizarea transferului de date prin conexiune serială sunt necesare mult mai puţine. Standardul RS-232 D elaborat de Asociaţia Industriei Electronice (EIA) recomandă utilizarea a 9 linii de comunicaţie pentru compatibilitate cu toate tipurile de periferice, dar în cele mai multe cazuri 3 sunt suficiente. Semnificaţia pinilor DCD – Detectoare Purtătoare de Date – este utilizată de către echipamentele periferice pentru a indica o conversaţie la un alt nivel; este utilzat în special pentru a se semnaliza conexiunea şi transferul de date între două echipamente; Rx – Recepţie Date – rolul este evident; este utilizat pentru recepţia datelor transmise de un alt echipament; Tx – Transmisie Date – este linia utilizată pentru transmiterea de date; DTR – Terminal de Date Pregătit – este pinul utilizat pentru a se transmite de către echipamentul care transmite date către echipamentul receptor de date prin care se semnalizează corectitudinea conectării; GND – Masa – este linia de masă utilizată de semnalele de transmisie recepţie.; la majoritatea conexiunilor nu reprezintă un potenţial nul;

4

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

DSR – Echipament receptor pregătit – este semnalul similar lui DTR, dar semnalul se transmite în sens invers şi indică faptul că receptorul este corect conectat; DB9 DB25 Semnificaţie CTS – Gata de Emisie – este linia de 1 8 DCD – Data Carrier Detect comunicaţie prin intermediul căreia 2 3 Rx – Received Data echipamentul receptor indică emiţătorului faptul 3 2 Tx – Transmitted Data că a fost realizată conexiunea şi este pregătit să 4 20 DTR – Data Terminal Ready recepţioneze date; 5 7 GND – Ground 6 6 DSR – Data Send Ready RTS – Pregătit pentru Transmisie – este 7 4 RTS – Ready To Send linia prin intermediul căreia un echipament 8 5 CTS – Clear To Send emiţător comunică echipamentului receptor un 9 22 RI – Ring Indicator semnal pozitiv care indică faptul că este pregătit să transmită datele; în general, pentru a se realiza transmisie de date între două echipamente cu conexiune serială este necesar ca semnalele RTS / CTS să fie ambele pozitive, altfel este posibil ca transmisia să nu se realizeze sau să apară erori de comunicaţie. 2.2.1. Transmisia de date prin conexiune serială

Literatura tehnică de specialitate aduce denumiri specifice pentru echipamentele periferice care transmit datele (DTE – Data Terminal Equipment) şi pentru echipamentele care recepţioneză datele (DCE – Data Communication Equipment). În mod uzual DTE reprezintă calculatorul, iar DCE reprezintă echipamentul periferic cu care se realizează conexiunea serială. 2.2.1.1. Metode de transmisie serială Sunt utilizate două metode de transmitere serială a datelor: • comunicaţie sincronă şi • comunicaţia asincronă. Comunicarea sincronă, transmiterea şi primirea sfârşitului comunicării este sincronizată prin utilizarea unui ceas care precizează perioadele de timp care separă fiecare bit. Prin metoda ceasului la terminarea transmisiei se poate determina dacă lipseşte un bit sau un bit suplimentar a fost inclus în şir. Un aspect important al acestei metode îl reprezintă faptul că în cazul în care se pierde semnalul de ceas comunicaţia este întreruptă. Comunicarea asincronă, este metoda alternativă utilizată la PC-uri. Acesta constă în introducerea de marcatori pentru fiecare bit din sir. Prin introducerea unui bit de start care indică începutul unui şir scurt de date, poziţia fiecărui bit poate fi determinată prin trimiterea fiecăruia la intervale regulate de timp. Prin transmiterea unui bit de start la începutul fiecărui pachet de 8 biţi cele două sisteme nu trebuie să se sincronizeze cu un semnal de ceas. Cel mai importan lucru este acela ca ambele sisteme să fie setate la aceeaşi viteză a portului serial. În momentul în care se
5

SISTEME DE INTRARE – IEŞIRE

primeşte un semnal de terminare a comunicaţiei urmat de un bit de start sistemul porneşte timer-ul pentru şiruri scurte de date. Prin ţinerea şirurilor de date în „scurt ” nu există destul timp pentru a se pierde sincronizarea. Acesta este principiul de bază al comunicării asincrone. Transmiterea şi recepţionarea semnalului de terminare a comunicaţiei nu este precis sincronizat de un semnal de ceas. Fiecare pachet de date este spart în pachete mai mici de 5 până la 8 biţi. Uzual, în mediul unui PC se găsesc pachete de 7 sau 8 biţi. Primul este pentru acomodarea cu caracterele mari sau mici ale textului în cod ASCII, iar următoarele corespund exact unui byte. Când comunică, echipamentul care transmite datele encodează fiecare cuvânt prin adăugarea unui bit de start şi a unuia sau doi biţi de stop la final. Uneori adaugă un bit de paritate între ultimul bit al cuvântului şi primul bit de stop. Această metodă este utilizată pentru a se putea verifica integritatea datelor.Se pot utiliza cinci tipuri diferite de biţi de paritate: • bit de paritate reper (mark parity bit) este setat întotdeauna la 1 logic; • bit de paritate spaţiu (space parity bit) este setat întotdeauna la 0 logic; • bit de paritate dublă (even parity bit) este setat pe 1 logic prin contorizarea numărului de biţi din cuvânt în cazul în care acesta este par; • bit de paritate simplă (odd parity bit) este setat pe logic 1 în cazul în care numărul de biţi din cuvânt este impar; • bit non-paritate pentru cadru (non parity bit frame) obţinut prin eliminarea unui bit din fiecare cadru de date.

Fig 1. Cadru de date serial asincron (8E1) În exemplul de mai sus se poate vedea cum este compus cadrul de date în sicronizare cu un semnal de ceas. Acest exemplu utilizează un cuvânt format din 8 biţi cu paritate dublă şi un bit de stop (cunoscut şi ca 8E1). Registrele portului serial Nume COM 1 COM 2 COM 3 Adresă 3F8 2F8 3E8 IRQ 4 3 4

COM 4 2E8 3 Tabel 1 – Adresele şi întreruperile portului serial Adresă de Start 0000:0400 0000:0402 0000:0404 COM1 COM2 COM3 Funcţie

0000:0406 COM4 Tabel 2 - COM Port Adrese în BIOS
6

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

Adresă de bază DLAB R-W Abr. =0 W +0 =0 =1 +1 +2 +3 +4 +5 +6 +7 =0 =1 R R/W R/W R W FCR

Nume Registru Transmitter Holding Buffer Receiver Buffer Divisor Latch Low Byte Interrupt Enable Register Divisor Latch High Byte FIFO Control Register Line Control Register Modem Control Register Line Status Register Modem Status Register

R/W IER

IIR Interrupt Identification Register

R/W LCR R/W MCR R R LSR MSR

R/W Scratch Register Tabel 3 : Tabela de regiştrii

2.3. PORTUL PS/2
Interfaţa PS/2, utilizată de tastaturile şi mouse-ii moderni a fost dezvoltată de către firma IBM. Din punct de vedere fizic, portul PS/2 are unul dintre următoarele două tipuri de conectori: • 5 pini DIN sau • 6 pini mini-DIN. Ambii conectori sunt similari din punct de vedere electric. Singura diferenţă practică dintre aceştia constă în aranjarea pinilor. Standardul DIN a fost creat de Organizaţia Germană de Standardizare (Deutsches Institut fuer Norm). Tastaturile unui PC utilizează unul dintre cei doi conectori 5 pini DIN sau 6 pini mini-DIN. Tastaturile cu 6 pini mini-DIN sunt cunoscute ca tastaturi PS/2, în timp ce tastaturile cu 5 pini DIN sunt denumite AT sau XT. Mouse-ii sunt de forme şi mărimi diverse. Probabil, cel mai cunoscut este mouse-ul PS/2. Dar, să nu uităm de device-urile USB care capătă din ce în ce mai multă popularitate. Doar cu câţiva ani în urmă mouse-ii seriali erau populari dar industria calculatoarelor a abandonat aceste modele în favoarea modelelor PS/2 şi USB. Standard, cablul PS/2 are o lu n ime de 1 , 8metri şi are 4 sau şase fire g îmbrăcate în plastic. În cazul în care este nevoie de un cablu mai lung se pot adăuga cabluri de extensie PS/2. Ca o paranteză, există încă un tip de conector întâlnit la unele tastaturi. În vreme ce majoritatea cablurilor sunt ataşate permanent la tastaturi, există cabluri care nu sunt ataşate şi vin ca şi componente ataşate. Acestea au un conector DIN ataşat la un capăt şi un conector SDL (Shielded Data Link) la celălalt capăt, înspre tastură. SDL a fost creat de către o companie numită AMP. Acest conector
7

SISTEME DE INTRARE – IEŞIRE

5-pin DIN (AT/XT): 1 - Clock 2 - Data 3 - Not implemented 4 - Ground 5 - Vcc (+5V) 6-pin Mini-DIN (PS/2): 1 - Data 2 - Not Implemented 3 - Ground 4 - Vcc (+5V) 5 - Clock 6 - Not Implemented 6-pin SDL: A - Not Implemented B - Data C - Ground D - Clock E - Vcc (+5V) F - Not Implemented

arată aproape ca un conector de telefon. Vcc/Ground furnizează energie device-ului. Mouse-ul sau tastura nu ar trebui să folosească mai mult de 100 mA de la PC şi trebuie să aibă protecţie contra creşterilor bruşte de tensiune. Vechile plăci de bază aveau montate siguranţe de protecţie pentru portul de tastatură şi de mouse. Când acestea se ardeau plăcile de bază deveneau inutile şi nu mai puteau fi reparate. Majoritatea bplăcilor de bază noi folosesc siguranţe resetabile “Poly” care remediază problema. Liniile de date şi de semnal de ceas sunt amândouă de tip colector deschis cu o rezistivitate ridicată de +5V. O interfaţă de tip colector deschis are două stări posibile: jos (low) sau sus (high). În starea low un trazistor pulsează trimite linia către cel mai scăzut nivel. În starea high interfaţa funcţionează ca un circuit deschis şi nu trimite linia jos sau sus.

2.3.1. Comunicarea pe portul PS/2 Tastaturile şi mouse-ii PS/2 implementează un protocol sincron bidirecţional de transfer de date. Portul este pregătit când ambele linii sunt high. Acesta este unicul mod în care tastatura sau mouse-ul poate începe să transfere date. UCP-ul are controlul asupra portului şi poate stopa comunicarea în orice moment setând linia de semnal de ceas low. După aceea setează linia de date low şi eliberează ceasul. Acesta este modul de ”request-to-send” cerere de transmisie şi semnalează device-ului să genereze semnale de ceas. Starea portului: Data = high, Clock = high: Idle state. Data = high, Clock = low: Communication Inhibited. Data = low, Clock = high: Host Request-to-Send Toate date sunt transmise, ca şi în cazul transmisiei seriale un bit la un moment date. Fiecare bit este transmis într-un cadru de date care conţine 11 sau 12 biţi. Aceştia sunt: • 1 bit de start (acesta este întotdeauna 0) • 8 biţi de date • 1 bit de paritate (paritate simplă) • 1 bit de stop (acesta este întotdeauna 1) • 1 bit de recunoaştere (doar în cazul comunicaţiei UCP - device) Bitul de paritate este setat (1) doar în cazul în care există un număr par de biţi 1 şi resetat (0) în cazul în care numărul acestora este impar şi este utilizat pentru detectarea erorilor. Mouse-ul sau tastatura trebuie să verifice acest bit, iar în cazul în care acesta este incorect trebuie să raspundă ca şi cum ar fi primit o comandă invalidă. Frecvenţa ceasului trebuie să fie în intervalul 10 – 16.7 kHz. Aceasta înseamnă că semnalul de ceas trebuie să fie sus pentru 30-50 microsecunde şi jos pentru 30-50 microsecunde. Reamintesc faptul că mouse-ul sau tastatura generează semnal de ceas, dar UCP-ul are întotdeauna ultimul control asupra comunicării, iar temporizarea este crucială în comunicare.
8

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

Comunicarea : echipament către UCP Liniile de date şi de semnal de ceas sunt colector deschis. Un resistor de +5V este conectat între fiecare dintre linii, deci portul este pregătit. De fiecare dată când tastatura sau mouse-ul vor să transmită informaţii întâi verifică starea liniei de semnal de ceas, pentru a se asigura că este pe nivel logic high. În caz contrar UCP inhibă comunicaţia, iar echipamentul trebuie să buffereze orice dată doreşte să transmită până când UCP eliberează linia de semnal de ceas. Semnalul pe aceasta trebuie să fie ridicat încontinuu pentru cel puţin 50 de milisecunde înainte ca echipamentul să poată transmite datele. Un echipament scrie un bit pe linia de date când semnalul de ceas este sus, iar UCP îl citeşte când semnalul este jos. Figura următoare ne arată cum:

Fig. 5. Comunicarea dinspre echipament către UCP Frecvenţa ceasului este cuprinsă, aşa cum am mai spus, în intervalul 10-16.7 kHz. Timpul de la panta ascedenta a semnalului de ceas spre o tranziţie de date trebuie să fie de cel puţin 5 microsecunde. Timpul de la o tranziţie de date la panta descendentă a semnalului de ceas trebuie să fie de cel puţin 5 microsecunde, dar nu mai mare de 25 de microsecunde. UCP poate stopa oricând transmisia pentru cel puţin 100 de microsecunde. În cazul în care transmisia este inhibată înainte de al 11-lea puls al semnalului de ceas echipamentul trebuie să abandoneze transmisia curentă şi să pregătească retransmiterea bucata curentă din cadrul de date. Dacă pachete noi de date sunt create pe parcursul întreruperii transmisiei de date şi care trebuie retransmise acestea vor fi depuse în memorie buffer a device-ului. Tastatura dispune de un buffer de 16 bytes, mouse-ul reţine cea mai cea mai nouă informaţie despre mişcarea solicitată. Comunicarea UCP către echipament În cazul comunicaţiei dinspre UCP către echipament pachetul de date este transmis puţin După cum se ştie echipamentul PS/2 generează întotdeauna semnal de ceas. Dacă UCP doreşte să transmită date întâi trebuie să pună liniile de semnal de ceas şi de date în starea ”Requestto-send”. Aceasta se realizează în modul următor: • UCP inhibă comunicaţia setând low ceasul pentru cel puţin 100 de microsecunde; • aplică cererea de transmisie ”Request-to-send ” setând linia de date low şi eliberând semnalul de ceas. Echipamentul trebuie să verifice starea portului la un interval nu mai mare de 10 milisecunde. Când detectează starea generează semnale de ceas şi ceas în format de 8 biţi şi un bit de stop. UCP schimbă linia de date doar când linia de ceas este jos, iar date sunt citite de echipament doar când linia de ceas este sus. Aceasta este opusul comunicaţiei echipament către UCP. După ce bitul de stop a fost primit, echipamentul recunoaşte bitul primit coborând linia de date şi generând un ultim puls de ceas. În cazul în care UCP nu eliberează linia de date după al 11lea puls de ceas, echipamentul va genera în continuare pulsuri de ceas linia de date este eliberată de către UCP (atunci va genera o eroare). UCP trebuie să întrerupă transmisia înainte de al 11-lea puls de ceas (bitul de recunoaştere) ţinând linia de ceas jos pentru cel puţin 100 microsecunde. Pentru a
9

diferit.

SISTEME DE INTRARE – IEŞIRE

înţelege mai bine acest mecanism, voi reda paşii pe care UCP trebuie să îi urmeze pentru a transmite date la un echipament PS/2: 1. Aduce linia de ceas jos pentru cel puţin 100 de microsecunde; 2. Aduce linia de date jos; 3. Eliberează linia de ceas; 4. Aşteaptă ca echipamentul să aducă linia de ceas jos; 5. Setează /resetează linia de date pentru a transmite primul bit de date; 6. Aşteptă echipamentul să aducă linia de ceas sus; 7. Aşteptă echipamentul să aducă linia de ceas jos; 8. Repetă paşii 5-7 pentru alţi şapte biţi de date şi un bit de paritate; 9. eliberează linia de date; 10. Aşteptă echipamentul să aducă linia de date jos; 11. Aşteptă echipamentul să aducă linia de ceas jos; 12. Aşteptă echipamentul să elibereze liniile de date şi de ceas. Figurile următoare reprezintă aceasta grafic.

Fig. 6. Comunicaţia UCP către echipament

Fig.7. Reprezentarea detaliată a comunicării dinspre UCP către echipament Ultima figură indică, în interval de timp, ce semnale sunt generate de UCP şi care de echipamentul PS/2. După cum se observă avem două cantităţi de timp pe care UCP le caută. (a) – reprezintă timpul necesar echipamentului pentru a începe să genereze pulsaţii de ceas după ce UCP a pus linia de ceas jos şi care trebuie să fie mai mare de 15 milisecunde; (b) – reprezintă timpul necesar pentru ca pachetul de date să fie transmis, perioadă de timp care nu trebuie să fie mai mare de 2 milisecunde; în caz contrar UCP va genera o eroare. Imediat după ce semnalul de recunoaştere a fost primit UCP poate pune linia de date low pentru a inhiba comunicaţia până la procesarea datelor. Dacă comanda trimisă de UCP cere un răspuns acesta trebuie primit, nu mai târziu de 20 de milisecunde după ce a eliberat linia de ceas. În caz contrar va genera o eroare.

10

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

2.4. Portul USB (Universal Serial Bus)
Tehnologia USB a fost adoptată pentru a fi o extensie standard a arhitecturii PC-urilor cu focalizare pe echipamentele periferice şi creşterea eficienţei şi vitezei acestora. Următoarele criterii au stat la baza elaborării specificaţiilor portului USB: • uşor de utilizat pentru extinderea perifericelor; • soluţie ieftină pentru transferuri cu viteze de până la 480 Mbps; • suport integral pentru transferul în timp real de date audio / video şi voce; • flexibilitatea protocolului pentru transfer de date în mod mixt sincron şi asincron; • integrarea în mod comod a tehnologiei diverselor echipamente periferice; • adaptarea pentru diferitele tipuri de arhitecturi de PC de la diverşii producători; • compatibilitatea noilor versiuni cu vechile versiuni astfel încât echipamentele construite în baza vechilor specificaţii să funcţioneze normal. Portul USB este considerat un port integral plug-and-play şi este definit de trei arii: • aria de interconectare • echipamentele USB deservite • gazda (host-ul) După cum se observă din imaginea de mai jos la o singură gazdă se pot interconecta mai multe echipamente (până la 127) pe mai multe nivele (7). Pe nivelele intermediare pot exista atât echipamente finale (care nu redistribuie semnalul, denumite funcţii) cât şi echipamente multiplexoare (care acţionează ca şi concentratoare – distribuitoare de semnal, denumite hub-uri).

Fig.8. Topologia Portului USB

11

SISTEME DE INTRARE – IEŞIRE

Deci, după cum se observă topologia sistemului USB este o topologie stea pe mai multe nivele. De reţinut este faptul că într-un sistem USB nu poate exista decât o singură gazdă, restul componentelor fiind hub-uri sau funcţii. Din punct de vedere al gazdei interfaţa USB din sistem este cunoscută ca şi Controller Gazdă (Host Controller). Aceasta poate fi implementată hardware, firmware (înglobată în UCP de către constructor), software sau într-o combinaţie a celor trei posibilităţi. De asemenea, sistemul gazdă are incorporat un hub pentru a exista mai multe puncte de ataşare. Host-ul USB interacţionează cu echipamentele USB prin intermediul controller-ului gazdă. El este responsabil pentru următoarele acţiuni: • detectarea ataşării/detaşării unui echipament; • controlul transferului între gazdă şi echipament; • colectarea statisticilor referitoare la starea portului şi activitate; • furnizarea de energie echipamentelor ataşate la port. Din punct de vederea software portul USB controlează interacţiunea dintre device-ul USB şi software-ul gazdei echipantului. Există cinci astfel de zone de interacţiune: • configuraţia şi enumeraţia echipamentului; • transferul sincron de date; • transferul asincron de date; • controlul energiei; • controlul informţiilor despre port şi echipament.

Fig. 9. Cablul USB
Cablul USB are patru fire: masa (GND), firul de trasport energie (VBUS) şi două fire de transport de date (D+, D-), iar lungimea maximă standard între două punct de interconectare este de 7m.

Pin
1 2 3 4 Shell

Semnal
VBUS DD+ GND Shield

Culoare
Roşu Alb Verde Negru

Plasă

2.4.1. Transferul de date portul USB Portul USB suportă trei rate de transfer: low-speed, cu viteze de pânp la 1,5 Mbps; full-speed, cu viteze de până la 12 Mbps; high-speed cu viteze de până la 480 Mbps. Toate transferurile sunt iniţiate de controller-ul gazdă. Cele mai multe trasferuri implică trabsferul a cel puţin trei pachete de date. Fiecare trranzacţie este iniţiată de controller, în baza unui automatism funcţie de timp, prin trimiterea unui pachet care descrie direcţia şi tipul tranzacţiei, precum şi adresa echipamentului. Acest pachet este denumit „token packet“. Device-ul USB căruia îi este adresat decodează câmpul de adrese. Direcţia în care se efectuează transferul de date, dinspre host spre
12

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

periferic sau invers, este specificată în token packet. Destinatarul răspunde în general cu un pachet „handshake“ care indică efectuarea transferului. În unele cazuri, transferul între gazdă şi hub-uri implică patru pachete. Acest tip de tranzacţii este utilizat pentru controlul transferului de date între controller şi low-full-speed device. Modelul de transfer USB dintre o sursă şi o destinaţie este cunoscut sub denumirea de „ţeavă“ (pipe). Există două tipuri de ţeavă: şir (stream) şi mesaj (message) . Şrul de date nu are o structură USB definită, în timp ce mesajele au o structură definită. Adiţional „ţevile“ au asociată o lăţime de bandă, un tip de transfer, şi caracterictici ale perifericulşui cum ar fi direcţia de transfer şi mărimea memoriei buffer. Cele mai multe „ţevi“ devin operaţionale în momentul în care echipamentul USB este configurat. La conectarea unui periferic apare întotdeauna un „mesaj “ . Acesta oferă informaţii controller-ului despre configuraţia, statutul şi controlul perifericului. Controlul programat al transferului este recomandat pentru şirurile de date. La nivel hardware aceasta previne supraîncărcarea buffer-ului prin utilizarea pahetelor „NAK handshake“ (negative acknowledgement – recunoaştere negativă) pentru a reduce rata de transfer. La o primă vedere, din partea utilizatorului final, ataşarea sau detaşarea unui echipament USB la o gazdă pare simplă. În realitate tranzacţiile care au loc implică mai multe nivele de implementare. După cum se observă din figura de mai jos există câteva concepte şi caracteristici care trebuiesc luate în seamă pentru a oferi utilizatorului final posibilitatea operării cu în sensul beneficierii de toate avantajele. Astfel au fost definite patru arii de implementare: • echipamentul USB fizic (USB Physical Device) : o piesă hardware care oferă funcţii utile; • software-ul client: un program care este executat de gazdă şi corespunde perifericului USB (de obicei este inclus în sistemul de operare); • software-ul sistemului USB: un program care oferă suport USB în sisteme de operare cu particularităţi; • controller-ul USB al gazdei: hardware-ul sau software-ul care permite ataşarea unui periferic USB. După cum se observă drepturi şi responsabilităţi atribuite între componentele sistemului USB, iar simpla conexiune dintre o gazdă şi un periferic necesită interacţiune între diferetele nivele şi entităţi. Tipuri de transmisie de date suportate pe portul USB Portul USB suportă schimburi de date între gazdă şi periferic atât în mod unidirecţional cât şi în mod bidirecţional. În general, transferul de date de-a lungul unei „ţevi “ este independent de transferul care se efectuează pe un alt traseu. Dar, un echipament USB poate avea mai multe trasee de transport de date. Astfel, un periferic USB poate acvea o terminaţie pentru transferul de date de la gazdă şi o altă terminaţie pentru transferul de date cu un alt echipament. Arhitectura de bază a portului USB cuprinde patru tipuri de transfer de date: a) Transferul de control (control transfers )– utilizat pentru configurarea perifericului la ataşarea acestuia şi poate fi utilizată şi pentru alte procese specifice de control în alte echipamente USB; b) Transferul „vrac“ (bukl data transfer) – datele vrac (bulk) sunt considerate cantităţile mari de date şi sunt secvenţiale. Schimbul de date este asigurat la nivel hardware utilizându-se detecţia erorilor şi limitarea numărului maxim de încercări de retransmitere;

13

SISTEME DE INTRARE – IEŞIRE

Trasnferul întrerupt (Interrupt data transfer) – este utilizat pentru perioade scurte de timp pentru a se transfera rapid cantităţi reduse de date cum ar fi caractere sau coordonate. Această metodă de transfer este utilizată de obicei pentru notificări de evenimente, caractere introduse de la tastură sau coordonate ale unui echipament de tip mouse, trackball sau tabelă grafică; d) Transferul sincron (Isochronous transfer) – este utilizat pentru trasferul prenegociat al datelor. Prenegocierea transferului constă în negocierea dintre host şi devoce a lăţimii de bandă utilizată şi a vitezei de transfer şi este cunoscută şi denumirea de şir de date transmis în timp real. Această prenegociere permite punerea de acord a gazdei şi a device-ului asupra detaliilor de transfer pentru a împiedica supra-umplerea buffer-ului şi blocarea sistemului. O „ţeavă “ suportă doar o singură metodă de transfer la un moment dat. Lăţimea de bandă pentru transferul de date este alocată pentru fiecare traseu în momentul stabilirii conexiunii.

c)

Fig. 10. Aria de implementare a USB

2.5. Potul FireWire (Portul Serial de Mare Viteză)
Portul FireWire sau portul serial de mare viteză se aseamănă din multe puncte de vedere cu portul USB. Specificaţiile tehnice ale acestui port sunt cuprinse în Standardul IEEE 1394, 1394a şi 1394b de unde vine şi o altă denumire a portului IEEE 1394. Standardul defineşte două tipuri de porturi: backplane şi cable. Portul „backplane“ a fost proiectat pentru a suplimenta structura portului paralel oferind o alternativă de comunicare serială între echipamente şi UCP.
14

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

Portul cablat (cable bus) este conceput ca o „reţea neciclică cu un număr finit de legături“, constând în punţi de comunicare şi noduri. „Neciclică“ înseamnă că nu se pot conecta echipamente împreună pentru a se crea bucle. Adresele pe 16 biţi oferă până la 64K noduri în sistem, între noduri fiind posibile 16 trecericeea ce defineşte numărul finit de legături. O punte de port serveşte la conectarea a două echipamente similare sau diferite la o punte putând fi conectate până la 63 de noduri. Acesta înseamnă că într-un PC cu un port FireWire standard pot fi conectate până la 63 de periferice. În mod uzual fiecare nod dispune de 3 conectori, dar standardul prevede posibilitatea utilizării a până la 27 de conectori pentru nivelul fizic al unui echipament (PHY). Lungimea standard a cablului între două noduri este de 4,5m şi nu poate depăşi la trecerea prin numărul maxim de noduri 72m.

Fig. 11. Topologia unui sistem PC cu port IEEE 1394 pentru aplicaţii digitale. Interconectarea porturilor standard este asigurată de un cablu cu şase fire : două perechi pentru transmisia de date şi două fire pentru trnasportul energiei protejate. Cele două perchi sunt inversate în fiecare ansamblu pentru a crea o conexiune trnasmitere – primire. Conductorii de energie oferă energie nivelului fizic în perifericele izolate (de la 8 la 40v la 1,5A). Designul conectorilorprovine din modelul conectorilor GameBoy.

Fig. 12. Cabluri şi conectori

15

SISTEME DE INTRARE – IEŞIRE

2.5.1. Transferul de date pe portul FireWire Standardul 1394 pentru cabluri defineşte trei rate de transfer: • S100, până la 100 Mbps; • S200, până la 200 Mbps; • S400, până la 400 Mbps. Adaptoarele standard suportă o rată maximă de transfer de 200 Mbps. Rat de transfer pentru întreg portul este guvernată de obicei de către nodul activ, dar, în cazul în care controller-ul implementează o hartă topologică sau una de viteză pentru anumite noduri, atunci poate suporta rate diferite de transfer. Protocolul 1394 este implementat de o stivă cu trei nivele, după cum se arată în figura 6. Cele trei nivele oferă următoarele funcţii: - nivelul tranzacţie : implementează protocolul de cerere-răspuns cerut de către standardul ISO/IEC 13213:1394 – standard de control şi statut al registrelor (CSR) pentru porturile PC (în regim de citire, scriere şi blocare); - nivelul legătură (link) : care oferă o datagramă de recunostere nivelului tranzacţie (o datagramă reprezintă un trasfer de date unidirecţional cu cerere de confirmare); acest nivel este responsabil cu manipulare pachetelor transmise şi recepţionate şi cu controlul ciclurilor pentru canalele sincrone; - nivelul fizic : se ocupă cu iniţializarea şi arbitrarea serviciilor necesare pentru a se asigura că un singur nod transmite date la un moment dat şi pentru a transforma în şiruri seriale de date toate semnalele cerute de către nivelul legătură.

Fig. 13. Stiva protocolului 1394 şi dirijarea serială a controller-ului de port.
16

Capitolul 2 - Porturi de comunicaţie cu echipamentele periferice

Standardul 1394 oferă un sistem flexibil de management al portului FireWire şi implică următoarele tre servicii: - un ciclu master care transmite către toate echipamentele un pachet de stzart; - un ciclu de contorizare a resurselor sincrone, în cazul în care există noduri care suportă transferul sincron; - un port master opţional (de obicei un adaptor PC).

17

CAPITOLUL 3
Magistrale de comunicaţie cu echipamentele periferice

3.1 Introducere

Definiţie: Reprezintă căi electrice de transmitere a semnalelor între diferite elemente ale unui sitem de calcul. De obicei, într-un sistem de calcul există mai multe magistrale diferite. Pentru a se conecta plăcile de extensie de la diferiţi producători trebuie să exise reguli binedefinite referitoare la funcţionarea magistralelor, care constituie protocolul magistralei, precum şi specificaţii mecanice şi electrice. Dispozitivele conectate la o magistrală pot fi pot fi active (master) sau pasive (slave). Cele active pot iniţia un transfer, iar cele pasive aşteaptă cererile de transfer. Ca un exemplu UCP va fi întotdeauna activ, iar memoria pasiv. Pentru amplificarea de semnal dispozitivele active se conectează la magistrale prin intermediul driverelor de magistrală, cele pasive prin receptoare de magistrală, iar cele ce por juca dublul rol se conectează prin intermediul circuitelor emiţătoare/receptoare de magistrală. Circuitele de interfaţă cu magistrala sunt de tip tri-state (trei stări) sau colector deschis. În cazul conectării multiple la o linie de tip colector deschis, funcţia care gestionează dispozitivele este SAU logic, iar conexiunea se numeşte SAU cablat. 3.1.1 Consideraţii electrice Magistralele trebuie să opereze la frecvenţe din ce în ce mai mari, datorită creşterii frectenţei de funcţionare a calculatoarelor. Apariţia unor fenomene electrice poate determina scăderea fiabilităţii sistemelor. Cele mai importante sunt reflexiile de semnal. Acestea pot apărea datorită unor discontinuităţi de semnal cauzate de impedanţa susrsei semnalului.

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

3.1.1.1 Linii de transmisie

Fig 1 Moduri echivalente de prezentare a unei linii de transmisie Liniile de transmisie sunt reprezentate printr+o reţea diferenţială de tip T cu impedanţe în serie şi admitanţe în paralel. Acestea reprezintă energia pierdută şi memorată pe unitatea de lungime a liniei. Energia memorată şi câmpurile magnetice sunt reprezentate prin l şi c. Pierderile de energie pe unitatea de lungime sunt modelate prin r şi g. Astfel, la o frecvenţă unghiulară avem:

z = r + j ωl y = g + j ωc
În aceste condiţii constanta de propagare k:

k = − zy
2

şi viteza de propagare:

v =ω/ k
p

Din relaţiile anterioare reiese că viteza de propagare de frecvenţă şi de parametrii liniei prin constanta k.

u z r + j ωl =± =± = ±Z i y g + j ωc

0

Z0 reprezintă impedanţa caracteristică a liniei. În czul particular în care r=g=0 :

Z =
0

l c

şi

k = ω lc

Cele două valori depind numai de parametrii liniei şi de frecvenţă.
2

SISTEME DE INTRARE – IEŞIRE

Ex: - pentru liniile de alimentare Z0 este aproximativ 300¸; - pentru cablurile coaxiale Z0 are valori cuprinse între 50 şi 75¸. 3.1.1.2 Reflexii de semnal

Fig 2 Linie de transmisie cu impedanţa Z0 şi timpul de propagare Tip Considerăm o linie de semnal cu următoarele caracteristici: - Ui –sursă de tensiune ideală; - Zs – impedanţa sursei în punctul A; - L – distanţa de la punctul A la punctul de terminare a liniei B; - Zt – impedanţa de încărcare. Astfel: - la momentul iniţial, Zs = 0, iar Zt este o simplă încărcare rezistivă; - la momentul t = 0, liniei i se aplică o tensiune Ui, iar curentul Ii se propagă pe linie; - la momentul t = TipL = Tprop curentul ajunge în punctul B. În acest moment, pentru satisfacerea legii lui Ohm privind impandanţa liniei şi cea de încărcare se aplică o corecţie instantanee curentului şi tensiunii, care va lua forma unei unde magnetice reflectate cu componentele Ur şi Ir. Deci, semnalul incident va fi format dintr-un semnal transmis şi unul reflectat. Aplicând legea lui Ohm în punctul B obţinem:

3

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Acest raport reprezintă coeficientul de reflexie pentru curent. Se utilizează de obicei coeficientul de reflexie pentru tensiune:

Coeficientul de reflexie indică diviziunea semnalului incident, fiind pozitiv pentru tensiunea reflectată şi negativ pentru curentul reflectat. Are valori între -1 şi 1 pentru o impedanţa de încărcare între zero şi infinit. 3.1.1.3 Terminatori Fără utilizarea terminatorilor de magistrală, apar reflexii de semnal care determină oscilaţii. Terminatorii cei mai utilizaţi sunt cei rezistivi, care se pot conecta în serie sau în paralel.

Fig. 3 Teminator serie

4

SISTEME DE INTRARE – IEŞIRE

Fig. 4 Terminator paralel În cazul terminatorului serie, se plasează o rezistenţă în serie cu ieşirea sursei. În cazul ideal, suma dintre valoarea rezistenţei şi impedanţa sursei este egală cu impedanţa caracteristică a liniei, sau:

R =Z −Z
s o

s

În general, sursele nu au impedanţe de ieşire simetrice. Impedanţa de ieşire în starea low, Zol de 5-25 ¸, este mai mică decât impedanţa de ieşire în starea high, Zoh, de 45-90 ¸. Rezultate satisfăcătoare se pot obţine cu rezistenţe având valori intermediare. În cazul terminatorului paralel, se plasează rezistenţe la capătul receptor al liniei. Implementarea se realizează de obicei printr-un divizor. Rezistenta echivalentă trebuie să fie egală cu impedanţa caracteristică Z0. Rezistenţa echivalentă se poate determina prin relaţia:

R =
e

R ⋅R R +R
1 2 1

2

Tensiunea Ue se poate determina prin deconectarea divizorului de la linie şi calculând tensiunea circuitului deschis.

U =V
e

cc

R R +R
2 1

2

Terminatorul paralel se poate utiliza pentru magistralele bidirecţionale. O altă posibilitate pentru realizarea terminatorilor este utilizarea diodelor de limitare. Dispozitivele TTL şi CMOS au de obicei diode de protecţie la intrare. Pe lângă protecţia împotriva descărcărilor electrostatice, acestea permit şi reducerea reflexiilor. O schemă posibilă este cea din Figura 5.

5

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Fig. 5 Terminator cu diodă de limitare Tensiunea de intrare va fi menţinută între -0,5 .. -1,5 V şi 0,5 .. 1,5 V peste Vcc. În cazul circuitelor TTL bipolare, lipseşte de obicei dioda conectată la Vcc. Pentru îmbunătăţirea performantelor, se poate adăuga o diodă Schottky rapidă, conectată la masă (şi la Vcc dacă este necesar). Se poate utiliza o schemă îmbunătăţită ca în Figura 6.

Fig. 6. Terminator îmbunătăţit cu diodă de limitare 3.2. Magistrale sincrone şi asincrone După modul de control al transferului de informaţii, magistralele pot fi sincrone sau asincrone. Toate operaţiile magistralelor sincrone sunt sincronizate de un semnal de ceas şi necesită un număr întreg de perioade de ceas, numite cicluri de magistrală. Magistralele asincrone nu utilizează un semnal de ceas. Ciclurile de magistrală pot avea în acest caz orice durată, şi aceasta nu trebuie să fie aceeaşi între toate perechile de dispozitive. 3.2.1. Magistrale sincrone Considerăm o magistrală sincronă cu perioada ceasului T. Presupunem că citirea unui octet sau cuvânt din memorie necesită 3 cicluri de magistrală, T1, T2 şi T3, cu durata totală 3T (Figura 7). În ciclul T1 UCP depune adresa cuvântului pe liniile de adrese. După stabilizarea adresei la noua valoare, se activează semnalele MREQ (care indică accesul la
6

SISTEME DE INTRARE – IEŞIRE

memorie şi nu la un dispozitiv de I/E) şi RD . Memoria decodifică adresa în ciclul T2 şi depune data pe magistrală în ciclul T3. Pe frontul descrescător al ceasului din ciclul T3, UCP strobează (citeşte) liniile de date, memorând valoarea într-un registru intern. După citire, UCP dezactivează semnalele MREQ şi RD , după care, de la frontul crescător al ceasului, poate începe un nou ciclu.

Fig. 7. Ciclu de citire la o magistrală sincronă Pentru o funcţionare corectă, există specificaţii de temporizare care trebuie respectate. Unele întârzieri sunt limitate la o valoare minimă, iar altele la o valoare maximă. TAD este intervalul de timp de la începutul ciclului T1 până la depunerea adresei. Trebuie să fie mai mic decât o valoare maximă:
T AD ≤ T ADmax

Aceasta garantează că în timpul fiecărui ciclu de citire, UCP va depune adresa într-un timp mai mic decât cel maxim. TDS (Data Setup) este intervalul de la depunerea datei până la frontul descrescător al ceasului din ciclul T3. Trebuie ca:
TDS ≥ TDSmin

pentru ca data să fie stabilizată înaintea citirii acesteia de către UCP. Datorită restricţiilor asupra intervalelor TAD şi TDS, în cazul cel mai defavorabil memoria trebuie să depună data într-un timp de cel mult:
2T + T − T AD − TDS 2

de la depunerea adresei. Dacă memoria nu poate răspunde în acest interval de timp, trebuie să activeze semnalul WAIT înainte de mijlocul ciclului T2, când se

7

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

testează semnalul WAIT. Se vor insera stări de aşteptare (cicluri suplimentare de magistrală) până când memoria dezactivează semnalul WAIT . TM este intervalul de la depunerea adresei până la activarea semnalului MREQ . Trebuie ca:
TM ≥ TM min

pentru ca adresa să fie stabilă până la activarea semnalului MREQ. Acest timp este important dacă MREQ se utilizează la selecţia circuitului de memorie, deoarece anumite memorii necesită un timp de stabilizare a adresei până la selecţie. TML, TRL sunt intervalele de la frontul descrescător al ceasului din ciclul T1 până la activarea semnalului MREQ , respectiv RD . Trebuie ca:
TML ≥ TMLmin TRL ≥ TRLmin

pentru ca aceste semnale să fie activate într-un anumit timp de la mijlocul ciclului T1. Memoria va avea un timp de cel mult:
2T − max(TML ,TRL ) − TDS

de la activarea MREQ şi RD până la depunerea datei. TMH, TRH indică timpul după care trebuie dezactivate semnalele MREQ şi RD după citirea datei:
TMH ≤ TMH max TRH ≤ TRH max

TDH indică timpul cât trebuie menţinută data pe magistrală după dezactivarea semnalului RD :
TDH ≤ TRH max

Acest timp poate fi egal cu 0 în unele cazuri, astfel că memoria poate retrage datele imediat după dezactivarea RD . Pe lângă ciclurile de citire şi scriere, unele magistrale permit şi transferuri pe blocuri. Dacă se lansează o citire a unui bloc, dispozitivul master indică celui slave numărul de octeţi care urmează a fi transferaţi, de exemplu, în timpul ciclului T1. Dispozitivul slave transmite un octet în timpul fiecărui ciclu, până când contorul ajunge la zero. În acest exemplu, o citire a unui bloc de n octeţi ar necesita n + 2 cicluri în loc de 3n. O altă metodă de creştere a vitezei este reducerea duratei ciclului. De exemplu, pentru o frecvenţă de 33 MHz, durata unui ciclu este de 30 ns, permiţând un transfer la fiecare 3 • 30 ns = 90 ns, rata de transfer fiind de 1/90 • 109 B/s = 1000/90 MB/s =11,1 MB/s.
8

SISTEME DE INTRARE – IEŞIRE

Reducerea duratei ciclului poate crea probleme, deoarece semnalele de pe diferitele linii au timpi de propagare diferiţi. Apare deci o nesimetrie (bus skew). Trebuie ca durata ciclului să fie mare comparativ cu această nesimetrie (de ordinul a câtorva zeci de ns). 3.2.2. Magistrale asincrone La magistralele sincrone, dacă un transfer se termină înaintea unui număr întreg de cicluri, trebuie să se aştepte până la sfârşitul ciclului, ceea ce duce la întârzieri inutile. Dacă la o magistrală sunt conectate dispozitive cu viteze diferite (unele lente, altele rapide), viteza trebuie aleasă după dispozitivul cel mai lent, cele rapide fiind întârziate. De asemenea, după alegerea unui ciclu de magistrală, este dificil să se utilizeze avantajele îmbunătăţirilor tehnologice viitoare. De exemplu, dacă după un timp vor fi disponibile memorii mai rapide, deşi ele pot fi utilizate, vor funcţiona la aceeaşi viteză ca şi cele vechi, deoarece protocolul magistralei cere ca memoria să depună datele imediat înaintea frontului descrescător al ceasului din ciclul T3. O magistrală asincronă elimină aceste dezavantaje, în locul semnalului de ceas se utilizează un protocol logic între emiţător şi receptor (handshake) (Figura 8). Pentru o operaţie de citire, după depunerea adresei, activarea semnalelor MREQ şi RD, dispozitivul master activează semnalul MSYN (Master Synchronization). După detectarea acestui semnal, dispozitivul slave depune data, şi apoi activează semnalul SSYN (Slave Synchronization). Dispozitivul master detectează activarea semnalului SSYN , ceea ce indică faptul că data este disponibilă, memorează data, iar apoi dezactivează liniile de adrese, împreună cu semnalele MREQ , RD şi MSYN . Dispozitivul slave detectează dezactivarea semnalului MSYN, indicând terminarea ciclului, dezactivează semnalul SSYN şi invalidează datele, ajungându-se în starea iniţială, cu toate semnalele dezactivate, aşteptându-se un nou ciclu.

9

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Fig. 8. Operaţie de citire la o magistrală asincronă Se utilizează deci un protocol cu intercondiţionare totală (full handshake). Fiecare acţiune este condiţionată de o acţiune anterioară, şi nu de un impuls de ceas. Aceste acţiuni sunt următoarele: 1.Este activat MSYN. 2.Este activat SSYN ca răspuns la activarea MSYN . 3.MSYN este dezactivat ca răspuns la activarea SSYN . 4.SSYN este dezactivat ca răspuns la dezactivarea MSYN. Deşi magistralele asincrone au avantajele amintite, cele mai multe magistrale sunt sincrone. Motivul îl constituie faptul că o magistrală sincronă necesită mai puţine linii şi realizarea acesteia este mai simplă. UCP activează semnalele de comandă corespunzătoare, iar memoria sau perifericul va răspunde. Trebuie însă respectate restricţiile de temporizare. Costul magistralelor asincrone este mai ridicat, ceea ce influenţează alegerea lor. Apple a renunţat la utilizarea magistralei VME (asincronă) pentru calculatoarele Macintosh, chiar clacă această magistrală a fost special proiectată pentru a fi compatibilă cu familia de procesoare Motorola 68000. 3.3. Arbitrajul de magistrală La majoritatea sistemelor, există mai multe module care pot prelua controlul asupra magistralei (care pot deveni module master). Trebuie să existe deci un mecanism de arbitrare prin care să se determine modulul care va deveni maşter, dacă apar mai multe cereri simultane de magistrală. Modulul master va putea apoi iniţia un transfer cu un alt modul, care va avea rolul de modul slave pentru acest transfer.
10

SISTEME DE INTRARE – IEŞIRE

Metodele de arbitrare pot fi clasificate ca fiind centralizate sau descentralizate (distribuite). În cazul arbitrării centralizate, alocarea magistralei este realizată de un dispozitiv hardware numit arbitru de magistrală. Acest dispozitiv poate fi un modul separat sau poate face parte din UCP. În cazul arbitrării descentralizate, nu există un arbitru de magistrală. Fiecare modul conţine o logică pentru controlul accesului la magistrală. 3.3.1. Arbitrarea centralizată În Figura 9 se prezintă un exemplu simplu de arbitrare centralizată. Există o singură linie de cerere a magistralei, de tip SAU cablat, care poate fi activată de unul sau mai multe dispozitive în orice moment. Arbitrul nu poate distinge dacă există mai multe cereri simultane sau o singură cerere, ci numai dacă există sau nu cereri la un moment dat.

Fig. 9. Exemplu de arbitrare centralizată Dacă linia de cerere este activată, arbitrul activează linia de acordare a magistralei, la care sunt conectate în serie toate dispozitivele. Dispozitivul cel mai apropiat fizic de arbitru detectează semnalul de pe această linie, şi în cazul în care a efectuat o cerere preia controlul asupra magistralei, fară să propage semnalul de activare pe linie. Dacă nu a efectuat o cerere, transmite semnalul următorului dispozitiv, care procedează la fel, până când un dispozitiv preia controlul asupra magistralei. În această schemă de tip daisy chain, prioritatea dispozitivelor este dată de distanţa la care se află faţă de arbitru. Dispozitivul cel mai apropiat de arbitru are prioritatea maximă. Pentru a modifica aceste priorităţi implicite, magistralele pot avea mai multe nivele de prioritate. Pentru fiecare prioritate există o linie de cerere şi una de acordare a magistralei. Fiecare dispozitiv se conectează la una din liniile de cerere, după prioritatea dispozitivului. Unele circuite de arbitrare au o linie suplimentară de achitare, care este activată de un dispozitiv atunci când a preluat controlul asupra magistralei în urma unui semnal de acordare a magistralei. Imediat după activarea acestei linii, semnalele de
11

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

cerere şi de acordare pot fi dezactivate, în consecinţă, în timpul utilizării magistralei, alte dispozitive pot solicita magistrala. La terminarea transferului curent va fi deja selectat următorul dispozitiv master, care poate începe transferul imediat după dezactivarea semnalului de achitare. Calculatoarele PDP-11 şi microprocesoarele Motorola 680x0 utilizează un asemenea sistem. Un exemplu de arbitrare centralizată care va fi prezentată în continuare este cel al magistralei Multibus. Această magistrală a fost elaborată de firma Intel pentru diferite configuraţii de sisteme bazate pe microprocesoare, atât uniprocesor, cât şi mulţi procesor. Magistrala Multibus a fost standardizată de IEEE (standardul IEEE 796). Magistrala permite existenţa a până la 16 module master, şi permite două tipuri de arbitrare, centralizată şi descentralizată. În Figura 10 se prezintă arbitrarea centralizată.

Fig.10. Schema arbitrării centralizate a magistralei Multibus Fiecare modul master are o linie de cerere a magistralei (BREQ) şi una de acordare a magistralei (BPRN), conectate la un modul central cu o logică de priorităţi. Un modul solicită magistrala printr-o cerere transmisă logicii de arbitraj. Această logică selectează următorul modul mater căruia i se acordă magistrala şi activează semnalul BPRN corespunzător. 3.3.2. Arbitrarea descentralizată În cazul arbitrării descentralizate nu există arbitru de magistrală. Un exemplu de magistrală care utilizează această metodă de arbitrare este magistrala SBI (Synchronous Backplane Interconnect), dezvoltată de firma DEC pentru calculatoarele VAX-11/780. Modulele de I/E nu se conectează direct la magistrala SBI, care este optimizată pentru operaţiile de citire/scriere a memoriei. Modulele de I/E sunt conectate la o magistrală Unibus sau MASSBUS, care sunt conectate la magistrala SBI prin adaptoare. Magistrala Unibus este utilizată în principal pentru dispozitive de viteză mică şi medie, ca terminale, imprimante şi linii de comunicaţie. Magistrala MASSBUS este destinată pentru memorii externe, ca discuri şi benzi magnetice.
12

SISTEME DE INTRARE – IEŞIRE

Fiecare modul conectat la magistrala SBI (UCP, memorie, adaptor Unibus) are o prioritate unică şi o linie unică de cerere de transfer (TR - Transfer Request). Exista 16 asemenea linii (TR0, ..., TR15), deci la magistrală pot fi conectate maxim 16 dispozitive. Dacă un dispozitiv solicită magistrala, activează linia sa de cerere TR. La sfârşitul ciclului de magistrală toate dispozitivele cu cereri active testează liniile TR. Dispozitivul cu prioritatea maximă va putea utiliza magistrala în următorul ciclu. Celelalte dispozitive vor menţine active cererile lor pentru a obţine un ciclu următor de magistrală. Anumite transferuri necesită mai multe cicluri consecutive. Un dispozitiv care necesită cicluri suplimentare activează semnalul de pe linia TR0 la începutul primului ciclu de transfer. Acest semnal, cu prioritatea maximă dintre semnalele TR, nu este asignat niciunui dispozitiv, ci poate fi utilizat pentru păstrarea controlului asupra magistralei. Dispozitivul cu prioritatea minimă (16) poate efectua transferuri în oricare ciclu care nu este rezervat de celelalte dispozitive. La începutul fiecărui ciclu, dacă niciuna din liniile TR nu este activă, poate efectua transferuri numai dispozitivul cu prioritatea 16. Astfel, timpul de aşteptare mediu este minim pentru acest dispozitiv. Din acest motiv, UCP are de obicei prioritatea minimă în cazul unei magistrale SBI. Figura 11 ilustrează metoda de arbitarare SBI sub formă simplificată. Fiecare dispozitiv are ca intrări un semnal de ceas pentru sincronizare şi toate liniile TR de prioritate mai mare (inclusiv TR0). Fiecare dispozitiv poate activa propria sa linie TR şi linia TR0.

Fig. 11. Schema arbitrării descentralizate a magistralei SBI 3.4. Parcarea magistralelor Anumite dispozitive master ale unui sistem de I/E, ca unităţile centrale, sunt active în marea majoritate a timpului, în timp ce altele sunt active în mod sporadic. Un dispozitiv din prima categorie poate păstra controlul asupra magistralei chiar după terminarea transferului curent, deoarece este probabil că va utiliza magistrala şi în continuare. Procedura prin care magistrala nu este eliberată automat după terminarea

13

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

transferului curent, ci numai în cazul în care există o cerere de magistrală, se numeşte parcarea magistralei. Prin utilizarea acestei metode, nu este necesară executarea operaţiilor de eliberare a magistralei şi de arbitrare pentru fiecare transfer. De exemplu, la începutul execuţiei unui nou proces, UCP va încărca noi date în memoria cache. Executarea arbitrajului de magistrală pentru fiecare ciclu de transfer este dezavantajoasă. Parcarea poate fi un mod operaţional al magistralei, sau poate fi un mod opţional. Atunci când parcarea este un mod operaţional, un ciclu de arbitrare începe printr-o cerere adresată dispozitivului master de a elibera magistrala.

3.5. Exemple de magistrale
Tabelul 1. Caracteristicile principale ale unor magistrale
Magistrala Firma/Org Unibus SBI 2 Fastbus VMEbus6 Nubus Multibus II Micro Channel EISA7 S-bus Futurebus+ SCSI-1 9 SCSI-2 VLBus11 PCI13 P6 Fire Wire14 USB14,15 DEC 1 DEC MIM , ESONE4 Motorola
3

Standard IEEE5 960

Linii de 18 22 32 16,32 32 16,32 16,24,32 16,24 32 32,64 32 32 32,64 32,64 64 -

Linii de date 16 32 32 16,32 32 16,32 8,16,32 8,16,32 16,32 32,64, 128,256 8,16,32 8,16,32 32,64 32,64 64 -

Sinc/ a s a a s s a s s a a, s a,s s s s a a

Rata max. n.a. 4.7 165 40 37.5 40 20,40 33 57 400 (32 b) 3200 (256 b) 5, 10,20 10,20,40 276 528 500 100,200, 400 Mbit/s 480Mbit/s

IEEE P1014 IEEEP11 Texas Instr. 96 IEEEP12 Intel 96 IBM Compaq, Intel Sun Microsys. MSC8 ANSI 10 ANSI VESA 12 Intel Intel Apple Compaq, IBM IEEE P896.1 ANSIX3.13 1-86 ANSIX3.13 1-94 IEEE 1394 -

14

SISTEME DE INTRARE – IEŞIRE

În Tabelul 1 se prezintă caracteristicile principale ale unor magistrale mai cunoscute. Observaţii:
1. Digital Equipment Corporation 2. Synchronous Backplane Interconnect 3. National Instrumentation Methods, din US Department of Energy 4. European Standards Organization for Nuclear Energy 5. Institute of Electrical and Electronics Engineers 6. Versa Module Eurocard 7. Extended Industry Standard Architecture 8. Microprocessor Standards Committee al IEEE Computer Society 9. Small Computer Systems Interface 10. American National Standards Institute 11. VESA Local Bus 12. Video Electronics Standards Association 13. Peripheral Component Interconnect 14. Fire Wire şi USB sunt magistrale seriale 15. Universal Serial Bus

3.5.1. Magistrala ISA A devenit o magistrală standard la calculatoarele bazate pe procesoarele din familia 80x86, fiind utilizată la primele tipuri de calculatoare IBM PC. IBM a denumit iniţial această magistrală "I/O Channel", ulterior utilizând denumirea ISA (Industry-Standard Architecture). Magistrala ISA are 70 de linii, semnalele fiind prezentate în Tabelul 2.
Semnal OSC CLK RESET AO-A19 DO-D15 ALE MEMR MEMW IOR IOW AEN IOCHCHK IO CH RDY Nr. linii 1 1 1 20 16 1 1 1 1 1 1 1 1 x x x x 1 E x x x x x x x x x x Oscillator ClocK Reset Adrese Date Address Latch Enable Memory Read Memory Write I/O Read I/O Write Address Enable I/O Channel Check I/O Channel Ready 15 Descriere

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice IRQ2-IRQ7 DRQ1-DRQ3 DACKODACK3 T/C Power GND Rezervat 6 3 4 1 5 3 1 x x x x Interrupt Request DMA Request DMA Acknowledge Terminal / Count ±5 V, ±12 V Ground Neutilizat la PC, selecţie placă la XT

În continuare se descriu pe scurt semnalele magistralei ISA. OSC CLK Este semnalul generat de un oscilator cu cuart. Este generat de circuitul 8284A, prin divizarea semnalului OSC cu 3. Spre deosebire de semnalul OSC care este simetric, CLK este nesimetric, fiind l pe durata de 1/3 din perioadă şi 0 pe durata a 2/3 din perioadă. Este semnalul de resetare generat de circuitul 8284A. Este activat atunci când adresele de pe magistrală sunt valide. Se utilizează pentru validarea circuitelor latch de adrese. Este semnal de intrare pentru procesor, fiind generat de către dispozitivele care solicită magistrala. Controlerul de magistrală 8288 generează semnaluj care deconectează driverele de date (liniile vor trece în starea de înaltă impedanţă).

RESET ALE

AEN

IOCHCHK Este activat dacă se detectează o eroare de paritate pe magistrală, când se generează o întrerupere nemascabilă. IOCHRDY Se utilizează de memoriile sau dispozitivele mai lente pentru inserarea stărilor de aşteptare. IRQ2-IRQ7 Cereri de întrerupere; reprezintă intrări pentru controlerul de întrerupere. DRQ1-DRQ3 Cereri DMA; reprezintă intrări pentru controlerul DMA. DRQ0 se utilizează pentru reîmprospătarea memoriei. DACK0- DACK3 Semnale de confirmare a cererilor DMA. T/C transfer. Semnal activat de controlerul DMA la terminarea unui

3.5.2. Magistrala IBM PC/AT La apariţia procesorului 80286, în locul realizării unei magistrale noi pentru calculatoarele AT, s-a ales soluţia extinderii magistralei IBM PC (ISA).
16

SISTEME DE INTRARE – IEŞIRE

S-a adăugat un nou conector pentru linii suplimentare de adrese, întreruperi, cereri DMA, şi pentru diferenţierea transferurilor de 8 şi 16 biţi. La introducerea seriei de calculatoare PS/2, IBM a decis să introducă o nouă magistrală, în parte pentru că magistralele utilizate până atunci erau învechite, dar şi pentru a opri copierea noilor sisteme. Modelele mai evoluate ale acestei serii au fost echipate cu magistrala MicroChannel, complet nouă, care a fost protejată cu numeroase patente. Cheltuielile de licenţă pentru această magistrală au ajuns la 5% din preţul de vânzare. Celelalte firme producătoare de calculatoare personale au adoptat un standard propriu de magistrală, numita EISA (Extended Industry Standard Architecture), care este o extensie a magistralei ISA la 32 de biţi, având avantajul că păstrează compatibilitatea cu calculatoarele şi plăcile de extensie existente, şi se bazează pe o magistrală a cărei licenţă a fost oferită liber numeroaselor firme producătoare de plăci de extensie pentru calculatoarele IBM PC. 3.5.3. Magistrala VME 3.5.3.1. Principii Magistrala VME (Versa Module Eurocard) provine din magistrala Versabus a firmei Motorola, care a fost utilizată la primele sisteme bazate pe procesorul 68000. Ulterior, magistrala Versabus a fost adaptată pentru formatul plăcilor dublu Eurocard (160 x 200 mm), format devenit standard pentru calculatoarele industriale. Noua magistrală, proiectată în colaborare cu firmele Mostek, Signetics/Philips şi Thompson CSF, a fost denumită VME, fiind anunţată în anul 1981. Este o magistrală de 32 biţi cu performanţe ridicate, utilizată pe scară largă, mai ales pentru aplicaţii industriale. Există mii de plăci de extensie bazate pe această magistrală, produse de sute de firme. Are specificaţii bine definite, care descriu funcţionarea magistralei şi regulile care trebuie respectate de plăcile VME. Performanţele ridicate sunt asigurate prin asincronismul magistralei, ceea ce permite diferitelor componente să funcţioneze la viteza corespunzătoare tehnologiei utilizate. În practică, limita superioară este de ordinul a 100 ns pentru un ciclu de magistrală, deoarece peste această limită apar nesimetrii (bus skew) şi alte probleme similare. Cu un transfer de 4 octeţi la fiecare 100 ns, rezultă o rată de transfer de 40 MB/s. Fiabilitatea magistralei este asigurată prin proiectarea mecanică şi protocolul logic. Spre deosebire de conectorii calculatoarelor IBM PC, se utilizează conectori formaţi din pini metalici. Deşi soluţia este mai scumpă, se elimină astfel conexiunile necorespunzătoare, care reprezintă una din

17

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

principalele surse de probleme la sistemele de calcul. Există linii ale magistralei care se pot utiliza pentru autotest şi raportarea stării. Magistrala VME face parte dintr-o familie de trei magistrale proiectate pentru o gamă largă de sisteme de calcul, de la mici sisteme de dezvoltare la sisteme multiprocesor. De exemplu, Figura 1(a) prezintă un sistem minimal, format din trei plăci VME, câte una pentru UCP, memorie şi un controler de I/E. Figura 1(b) prezintă un sistem multiprocesor. Fiecare procesor are o memorie locală la care se conectează printr-o magistrală VSB. Dacă se păstrează programul şi datele locale în memoriile locale, magistrala VME va fi utilizată numai de instrucţiunile care fac acces la memoria globală partajată. Astfel, rata de transfer globală poate depăşi limita de 40 MB/s impusă de tehnologia VME. De exemplu, un sistem multiprocesor cu 16 UCP, fiecare UCP solicitând un cuvânt de 4 octeţi la fiecare 200 ns, necesită o rată de transfer de: (4 • 1/200 • IO9) • 16 B/s = 320 MB/s Dacă 90% din aceste accesuri se fac la memoria locală (pentru încărcarea instrucţiunilor, citirea/scrierea datelor locale), cu o magistrală VME şi 16 magistrale VSB se poate asigura această rată.

Fig. 1. Sisteme cu magistrală VME a) minimal b) multiprocesor Magistrala serială VMS, care funcţionează independent de celelalte două magistrale, poate fi utilizată pentru comunicare şi sincronizare între procesoare, în paralel cu transferurile de date pe magistrala principală. 3.5.3.2. Structura funcţională Această structură constă din logica de interfaţă, patru grupuri de linii numite magistrale, şi o colecţie de module funcţionale asociate cu acestea.
18

SISTEME DE INTRARE – IEŞIRE

Magistrala pentru transferul de date Constă din 32 linii de date, 32 linii de adrese, 6 linii de modificare a adresei, care definesc tipul ciclului de magistrală, şi 5 linii de control. Modulele funcţionale ale acestei magistrale cuprind modulele master şi slave, un modul monitor şi un modul de tip ceas. Modulul master iniţiază cicluri de transfer pentru a transfera datele cu modulul slave. Modulul slave detectează ciclurile de transfer iniţiate de un master, şi dacă acele cicluri specifică participarea sa, transferă datele la sau de Ia modulul master. Monitorul urmăreşte transferurile de date, în scopul detectării accesurilor la locaţiile care i-au fost asignate pentru a fi urmărite. În cazul în care apare un acces la o asemenea locaţie, monitorul poate genera o întrerupere. Dacă, de exemplu, procesorul plăcii A scrie într-o locaţie a memoriei globale care este urmărită de monitorul plăcii B, procesorul plăcii B va fi întrerupt. Ceasul măsoară durata fiecărui transfer, şi termină transferul dacă acesta durează un timp prea mare. Este util în cazul în care se adresează o locaţie inexistentă sau un modul slave inexistent. Se evită astfel blocajul. Magistrala pentru transferul de date dispune de linii nemultiplexate pentru adrese şi date. Aceasta asigură creşterea performanţelor la executarea ciclurilor de transfer singular, când se transmite o adresă, după care se citeşte sau se scrie data. Magistrala pentru întreruperi Constă din 7 linii de cerere de întrerupere, IRQ1.. IRQ7, o linie de achitare a întreruperilor, IACK , şi o conexiune de tip daisy chain pentru achitarea întreruperilor. Deoarece pot exista mai multe UCP, liniile de cerere pot fi partiţionate între mai multe controlere de întreruperi, fiecare controler gestionând anumite linii şi generând semnalele de întrerupere pentru anumite UCP. Sursa de întrerupere generează o cerere de întrerupere pe una din liniile de cerere. Atunci când cererea este achitată de un modul de gestiune a întreruperii, sursa de întrerupere furnizează 1, 2 sau 4 octeţi de stare sau identificare în cadrul unui ciclu special de magistrală, octeţi care permit servirea întreruperii. Conexiunea de tip daisy chain pentru achitarea întreruperilor va fi activată atunci când un modul de gestiune a întreruperii achită o cerere de întrerupere. Această conexiune asigură ca un singur modul să răspundă cu octeţii de stare sau identificare atunci când au fost generate mai multe cereri. Magistrala de arbitraj În cadrul procesului de arbitraj este selectat modulul master sau modulul de gestiune a întreruperilor care va putea utiliza magistrala pentru
19

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

transferul de date. Magistrala de arbitraj constă din 4 linii de cerere a magistralei, BRO..BR3,4 linii de acordare, BG 0IN .. BG 3IN , şi alte două linii numite Bus Busy ( BBSY) şi Bus Clear ( BCLR ). Există un modul de cerere a magistralei, aflat pe aceeaşi placă cu un modul master sau modul de gestiune a întreruperii. După efectuarea cererii, se aşteaptă achitarea acesteia de către arbitru, după care modulul de cerere preia controlul asupra magistralei prin activarea liniei Bus Busy, dezactivează cererea şi indică modulului master faptul că magistrala este disponibilă. Arbitrul poate avea o facilitate de time-out, care permite retragerea utilizării magistralei dacă modulul solicitant nu începe utilizarea magistralei în timpul prestabilit. Aceasta asigură că magistrala nu va fi blocată ca rezultat al unui semnal tranzitoriu pe linia de cerere. Arbitrul poate activa linia Bus Clear dacă detectează o cerere de prioritate mai ridicată faţă de cea a modulului care utilizează magistrala în acel moment, acordând magistrala modulului mai prioritar. Magistrala utilitară Conţine două linii pentru semnale de ceas, o linie de resetare a sistemului, o linie de date pentru magistrala serială, o linie de detectare a căderii tensiunii de alimentare şi o linie pentru indicarea a unei erori de sistem. Modulul de ceas al sistemului furnizează un semnal de ceas SYSCLK de 16 MHz, util pentru diferite funcţii care necesită o referinţă de timp. Acest semnal nu se utilizează pentru delimitarea ciclurilor de magistrală. Pentru magistrala serială VMS există un semnal de ceas SERCLK care asigură sincronizarea operaţiilor pe această magistrală. Viteza de transfer pe magistrala serială este de 32 Mbiţi/s, dar se poate utiliza şi o viteză de 16 sau 8 Mbiţi/s. Protocolul acestei magistrale este complet independent de magistrala VME. Starea sursei de alimentare este urmărită de un modul monitor, iar atunci când se detectează o tensiune în afara limitelor admise, monitorul utilizează linia prevăzută în acest scop (ACFAIL) pentru a avertiza toate plăcile conectate la magistrală în vederea pregătirii căderii tensiunii (''graceful shutdown''). La detectarea unei erori de către o placă conectată la magistrala VME, aceasta poate utiliza o linie specială (SYSFAIL) pentru a indica celorlalte module apariţia acestei erori. 3.5.3.3. Cicluri de magistrală Specificaţiile VME definesc cinci tipuri de cicluri de transfer şi două cicluri suplimentare. Ciclurile de transfer se pot utiliza pentru transferul datelor de 8, 16 sau 32 de biţi. Ciclurile de citire şi scriere încep prin transmiterea unei adrese şi a unui cod de modificare a adresei, care indică tipul ciclului de magistrală. Sunt
20

SISTEME DE INTRARE – IEŞIRE

permise şi transferuri nealiniate, de exemplu 4 octeţi începând de la o adresă impară. Ciclurile de transfer pe blocuri Se utilizează pentru citirea sau scrierea unui bloc de maxim 256 octeţi. Acestea permit unui modul master să adreseze o singură locaţie şi apoi să acceseze acea locaţie şi locaţiile următoare, fără a transmite informaţii suplimentare de adresare. La iniţierea unui asemenea ciclu de către un master, modulul slave memorează adresa într-un numărător de adrese, ea fiind incrementată ulterior şi utilizată la transferurile ulterioare. Lungimea blocurilor transferate este limitată la 256 de octeţi. Motivul este simplificarea proiectării plăcilor de memorie şi reducerea timpului de acces la modulele de memorie. Dacă nu ar exista această limitare, toate modulele de memorie ar trebui să memoreze adresa de început a blocului, şi apoi să incrementeze această adresă în fiecare ciclu. Adresa incrementată ar trebui apoi decodificată de fiecare modul, pentru a testa dacă adresa a ajuns în propria zonă de adrese. Această decodificare ar creşte timpul de acces. Prin limitarea introdusă, dacă un modul de memorie are o dimensiune de cel puţin 256 octeţi, iar prima adresă se află în propria zonă de memorie, următoarele se vor afla de asemenea în această zonă. Deoarece numai cei 7 biţi c.m.p.s. ai adresei se vor modifica în timpul unui transfer, liniile superioare de adresă pot fi decodificate o singură dată, la începutul ciclului. Ciclurile de citire-modificare-scriere Asigură o operaţie indivizibilă de citire şi scriere a unei locaţii, fără a permite unui alt master accesul la acea locaţie înainte de terminarea operaţiei. Aceste cicluri sunt utile în sistemele multiprocesor, unde trebuie partajate anumite resurse, unele locaţii de memorie fiind utilizate pentru funcţii semafor. Trebuie să se asigure ca o resursă utilizată de un anumit proces să nu fie utilizată de un alt proces în acelaşi timp. Un asemenea ciclu este similar cu un ciclu de citire urmat de unul de scriere, dar nu se permite acordarea magistralei de date unui alt modul între cele două cicluri. Ciclurile fără transferuri de date Constau doar din transmiterea unei adrese. Rolul acestui ciclu este de a permite unui modul master să anunţe că va solicita în scurt timp conţinutul memoriei de la o anumită adresă. La o cerere ulterioară, memoria va putea răspunde fără întârziere, evitându-se stările de aşteptare. Se poate suprapune astfel un ciclu cu cel următor. Ciclurile de achitare a unei întreruperi Sunt iniţiate de modulele de gestiune a întreruperilor în scopul citirii informaţiilor de stare sau identificare de la un modul care a solicitat o întrerupere. În Figura 2 se prezintă un ciclu de citire de 32 de biţi .

21

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Fig. 2. Ciclu de citire la magistrala VME La începutul unui transfer, dispozitivul master depune adresa pe liniile de adrese A0-A31 şi activează semnalele de modificare a adreselor AM0AM5, care definesc tipul ciclului de magistrală. Dacă se efectuează un transfer complet de 32 de biţi, se activează de asemenea semnalul LWORD . Acest semnal defineşte, împreună cu tipul ciclului, dimensiunea datelor transferate. După stabilizarea semnalelor A0-A31, AM0-AM5 şi LWORD , dispozitivul master activează semnalul AS (Address Strobe) pentru a indica dispozitivului slave faptul că adresa este validă şi poate fi memorată. Semnalul WRITE va fi dezactivat dacă se efectuează o citire, şi va fi activat dacă se efectuează o scriere, în final, dispozitivul master activează semnalele DSQ-DSl (Data Strobe) pentru a indica dispozitivului slave că aşteaptă datele. Pe baza semnalelor DS 0, DS 1, LWORD şi A1 se determină octetul sau octeţii necesari din cadrul cuvântului selectat. Dispozitivul slave sesizează activarea semnalelor DS 0 - DS 1 şi depune datele pe liniile D0D31. Apoi activează semnalul DTACK (Data Acknowledge) pentru a semnala depunerea datelor.
22

SISTEME DE INTRARE – IEŞIRE

Dispozitivul slave sesizează activarea semnalului DTACK , preia datele şi dezactivează semnalele care au fost activate la începutul ciclului. Dezactivarea semnalelor DS 0 - DS 1 determină ca dispozitivul slave să dezactiveze semnalul DTACK , terminându-se ciclul. 3.5.3.4. Arbitrajul de magistrală Se utilizează o combinaţie între arbitrarea centralizată şi cea distribuită. Există un arbitru de magistrală amplasat pe prima placă, cu rolul de a acorda magistrala pentru o cerere de un anumit nivel de prioritate, în cadrul nivelului respectiv, un modul va fi selectat prin utilizarea unei conexiuni în lanţ între module. Dintre algoritmii de arbitraj posibili, specificaţiile VME descriu trei: • • • arbitraj pe bază de priorităţi, arbitraj "round robin", arbitraj cu un singur nivel.

Arbitrajul pe bază de priorităţi Atribuie magistrala pe baza unei scheme de priorităţi fixe, fiecărei linii de cerere fiindu-i asignată o prioritate. Arbitrajul "round robin" Atribuie magistrala pe baza unor priorităţi rotitoare. Fiecare din cele 4 linii are aceeaşi prioritate. Dacă magistrala este atribuită modulului care a activat cererea de nivel n, prioritatea cea mai mare va fi asignată liniei de cerere n-1, şi cea mai mică liniei n. Arbitrajul cu un singur nivel În cazul arbitrajului cu un singur nivel, sunt acceptate numai cereri pe linia de nivel 3. Conexiunea de tip daisy chain a acestui nivel va asigura ca un singur modul să utilizeze magistrala. Deşi nu sunt descrişi de specificaţiile VME, se pot utiliza şi alţi algoritmi. De exemplu, un algoritm poate asigna prioritatea maximă cererii de nivel 3, pentru celelalte cereri atribuirea realizându-se în modul "round robin". Eliberarea magistralei se poate realiza în două moduri: • eliberare la terminare (RWD - Release When Done)', • eliberarea la cerere (ROR - Release On Request). În primul caz, modulul care a solicitat magistrala semnalează arbitrului terminarea utilizării magistralei imediat după ce modulul său master a indicat că nu mai necesită magistrala. În cazul eliberării la cerere, după terminarea utilizării magistralei arbitrul va fi anunţat numai dacă un alt modul a efectuat o cerere de magistrală. Pentru aceasta, modulul trebuie să monitorizeze toate liniile de cerere. Această metodă permite implementarea procedurii de parcare a magistralei.

23

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

3.5.4. Magistrala Micro Channel În anul 1987, firma IBM a lansat pe piaţă calculatoarele din familia PS/2. Acestea dispuneau de unele îmbunătăţiri, ca: un controler pentru adaptorul video VGA integrat pe placa de bază, adaptorul de disc flexibil integrat pe placa de bază, noi porturi pentru tastatură şi mouse, un adaptor şi o interfaţă mai performante pentru discul fix. Caracteristica cea mai importantă a acestor sisteme a fost utilizarea unei noi magistrale de extensie, magistrala Micro Channel (MCA Micro Channel Architecture). Modelele 50Z, 55SX şi 60 ale calculatoarelor PS/2 utilizează o versiune de 16 biţi a acestei magistrale, iar modelele 70, 80 utilizează o versiune de 32 de biţi pentru adrese şi date. Deşi a fost proiectată în primul rând pentru familia de microcalculatoare PS/2, magistrala Micro Channel a fost proiectată astfel încât să poată fi utilizată şi la calculatoarele mainframe ale IBM. Se descriu în continuare caracteristicile principale ale acestei magistrale. 3.5.4.1. Sistem de întreruperi îmbunătăţit Toate semnalele de întrerupere (IRQ) sunt active pe nivel. Aceasta necesită o logică mai simplă pentru implementare, iar semnalele sunt mai puţin vulnerabile la zgomote. Astfel se reduc costurile de implementare, se îmbunătăţeşte fiabilitatea sistemului şi cresc performanţele. Sistemul de control al întreruperilor permite partajarea unui “nivel de întreruperi" spre deosebire de magistrala ISA, care permite utilizarea unui nivel de întrerupere de un singur adaptor. 3.5.4.2. Transferuri cu performanţe ridicate Frecvenţa de lucru a magistralei este de 10 MHz pentru conectorii de 16 biţi şi de 16 MHz pentru conectorii de 32 de biţi. Specificaţiile definesc un ciclu implicit de 200 ns pentru transferul a 4 octeţi, ceea ce corespunde unei rate de transfer de 20 MB/s. Specificaţiile permit ca datele să fie transferate în cicluri cu durata mai mică decât cea implicită. Rata reală de transfer a unui sistem este determinată de rata maximă de transfer a dispozitivului master care controlează transferurile, şi de restricţiile de transfer ale dispozitivelor conectate la magistrală (din punctul de vedere al ratei de transfer şi a dimensiunii datelor). Viteza de transfer cu perifericele ajunge la 4 MB/s. Discurile pot transfera date într-un mod numit mod exploziv, cu rate de până la 9 MB/s. 3.5.4.3. Magistrale de adrese şi de date de 32 biţi Magistrala de adrese de 32 biţi permite un spaţiu de adresare de 4 GB de memorie sau dispozitive de I/E mapate în memorie. Specificaţiile permit şi implementarea unui subset de 24 de biţi al acestei magistrale. Magistrala de adrese poate fi utilizată şi ca o magistrală de l/E de 16 biţi.
24

SISTEME DE INTRARE – IEŞIRE

Magistrala de date de 32 biţi se poate utiliza şi ca o magistrală de 24 biţi, 16 biţi, sau 8 biţi. Specificaţiile permit implementarea unui subset de 16 biţi al magistralei de date atunci când este implementată o magistrală de adrese de 24 biţi. Magistrala de 16 biţi se poate utiliza pentru transferul datelor de 16 sau 8 biţi. 3.5.4.4. Recuperarea condiţiilor de excepţie O condiţie de excepţie este definită ca orice condiţie de eroare sau stare care nu poate fi eliminată prin metode tipice de recuperare. Această facilitate permite implementarea unui hardware sau software care poate corecta condiţia sau poate dezactiva dispozitivul care a creat condiţia. Astfel cresc posibilităţile sistemului de a putea continua să funcţioneze. Prin raportarea condiţiilor de excepţie se minimizează timpul necesar detecţiei erorilor de sistem. Testarea integrităţii ciclurilor de transfer se realizează prin hardware, eliminând necesitatea testării prin programele de sistem sau de aplicaţie. Condiţiile de excepţie sunt raportate numai atunci când ele sunt detectate prin hardware, iar rutina de detecţie şi corecţie a erorilor este executată numai atunci când este necesar. 3.5.4.5. Selecţia programabilă a opţiunii Această facilitate, numită Programmable Option Select (POS), elimină necesitatea comutatoarelor de pe placa de bază sau de pe plăcile de extensie. Permite identificarea dispozitivelor, elimină conflictele legate de asignarea resurselor şi asigură configurarea dinamică a sistemului, dacă există un sistem de operare adecvat şi drivere software corespunzătoare. Informaţiile de configuraţie a dispozitivelor sunt păstrate în opt registre de câte 1 octet. Fiecare dispozitiv conectat la magistrală poate fi validat sau invalidat printr-un bit din registrele sale POS. Aceste registre mai conţin identificatorul dispozitivului, un indicator al condiţiei de excepţie şi informaţii opţionale de stare. Cu aceste informaţii, sistemul de operare şi driverele de dispozitiv pot corecta condiţia de eroare sau pot dezactiva dispozitivul. 3.5.4.6. Sistemul de arbitraj Sistemul de arbitraj al magistralei asigură atât regimul de multitasking, cât şi prelucrarea paralelă. Magistrala de date poate fi partajată de către un total de 16 dispozitive master şi slave. Se pot adăuga coprocesoare, sisteme grafice şi de comunicaţie. Există 4 linii de prioritate, care stabilesc 16 nivele de prioritate şi se utilizează la arbitrarea magistralei. Fiecărui dispozitiv master i se atribuie un nivel de prioritate între 0 şi F, nivelul F fiind cel mai puţin prioritar. Dispozitivul cu nivelul de prioritate F este numit master implicit. Acestuia i se acordă magistrala atunci când nu există nici un alt master şi la apariţia unei condiţii de excepţie.

25

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Un dispozitiv conectat la magistrala Micro Channel care doreşte să utilizeze magistrala trimite numărul de prioritate care i-a fost acordat pe cele 4 linii de prioritate. Fiecare dispozitiv sau placă de extensie controlează aceste semnale şi renunţă la magistrală, dacă detectează existenţa unei cereri de prioritate mai mare. 3.5.4.7. Îmbunătăţiri ale magistralei Micro Channel În anul 1990, IBM a introdus câteva îmbunătăţiri magistralei Micro Channel pentru a creşte viteza de transfer. În modul de transfer "streaming" pe 32 sau 64 de biţi, transferurile de adrese şi date intervin la intervale de 200 ns, urmând ca datele ulterioare să se transmită la intervale de 100 ns, eliminând necesitatea de a transmite adrese înaintea fiecărui bloc de date. Cu acest mod, pe 32 de biţi se ajunge la o rată de transfer de 40 MB/s, pentru un ceas de 10 MHz. Prin implementarea unui mod "streaming'" pe 64 de biţi, se pot transmit date şi pe magistrala de adrese în timpul în care aceasta nu este ocupată, rata de transfer ajungând la 80 MB/s. Arhitectura Micro Channel nu s-a impus în măsura aşteptată din mai multe motive: • incompatibilitatea cu plăcile existente AT sau ISA; • performanţele nu au crescut în mod semnificativ faţă de sistemele cu magistrală ISA; • creşterea preţurilor, din cauza dimensiunilor mai reduse ale plăcilor, a tehnologiei de realizare şi a cheltuielilor de licenţă. Totuşi, arhitectura Micro Channel a introdus mai multe concepte noi care sunt utilizate în prezent pentru implementarea magistralelor VL Bus şi PCI. 3.5.5. Magistrala EISA Magistrala EISA (Extended Industry Standard Architecture) a fost elaborată în anul 1988, de un consorţiu de firme condus de Compaq şi Intel. Scopul era extinderea magistralei ISA, astfel încât să permită arhitecturi de 32 de biţi şi viteze de transfer superioare, păstrând însă compatibilitatea cu plăcile de extensie existente şi cu perifericele. Se urmărea însă şi concurarea magistralei Micro Channel. S-a adăugat un nou conector de extensie cu semnale suplimentare, iar complexitatea arhitecturii magistralei a crescut. Multe caracteristici sunt similare cu cele ale magistralei Micro Channel: • transferuri pe 32 de biţi; • posibilitatea multiprelucrării; • configurarea automată a sistemului şi a plăcilor de extensie, fără
26

SISTEME DE INTRARE – IEŞIRE

utilizarea comutatoarelor. Întreruperile sunt declanşate pe front sau pe nivel, selecţia fiind realizată prin program. Magistrala EISA asigură o independenţă faţă de arhitectura procesorului utilizat. Întregul spaţiu de adresare de 32 biţi este complet accesibil, nu numai de către procesor, dar şi de dispozitivele DMA şi controlerele de magistrală. Chiar controlerele DMA existente de 16 biţi pot avea acces la întregul spaţiu de adresare. Toate transferurile executate pe magistrala EISA sunt sincronizate de un semnal de ceas de 8,33 MHz. Există un mod de transfer în avalanşă (burst mode), în care un transfer este executat într-un ciclu de ceas al magistralei. Aceasta echivalează cu 8,33 milioane transferuri pe secundă. Se pot transfera maxim patru octeţi într-un ciclu, ceea ce corespunde unei rate maxime teoretice de transfer de 33 MB/s. Diferenţa principală faţă de magistrala Micro Channel este că magistrala EISA este compatibilă cu magistrala ISA (AT), deci calculatoarele cu o magistrală EISA pot utiliza noile plăci de extensie EISA, ca şi vechile plăci de extensie AT. Calculatoarele cu o magistrală Micro Channel pot utiliza numai plăci de extensie Micro Channel. Circuitele utilizate pentru arhitecturile EISA au un preţ mai ridicat. Datorită acestui dezavantaj, sistemele EISA nu au devenit arhitecturi de largă utilizare, fiind folosite mai ales pentru aplicaţii pretenţioase, ca servere de reţea sau grafică de performanţă. 3.5.6. Magistrale locale 3.5.6.1. Cerinţe pentru ratele de transfer In cazul sistemelor actuale, este necesar transferul rapid al unor blocuri mari de date. Această necesitate apare mai ales la următoarele subsisteme: Adaptoare grafice Interfeţele grafice ale sistemelor de operare Windows, OS/2 şi Unix X-Windows necesită actualizarea rapidă a imaginii grafice pentru deplasarea, redimensionarea şi actualizarea ferestrelor multiple. Acelaşi lucru este valabil pentru imaginile video în mişcare. Procesorul trebuie să actualizeze şi să transfere blocuri mari de date în cadrul memoriei video Adaptoare pentru interfaţa SCSI Interfaţa SCSI este utilizată mai ales pentru memorii de masă, ca unităţi de disc fix, unitaţi CD-ROM şi unităţi de bandă încasetată. Creşterea vitezei de transfer cu aceste dispozitive influenţează semnificativ performanţele globale ale sistemului. Adaptoare de reţea FDDI (Fiber Distributed Digital Interface) Dacă adaptorul de reţea este utilizat pentru transferul unor fişiere la sau de la un
27

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

server, rata cu care pot fi transferate datele între memorie şi adaptor influenţează performanţele sistemului. Majoritatea subsistemelor sunt conectate la magistrala de extensie a calculatorului PC. Aceasta poate fi o magistrală ISA, EISA sau Micro Channel. Aceste magistrale nu asigură o rată de transfer suficientă pentru imagini grafice de înaltă rezoluţie şi un număr mare de culori, şi nici pentru imagini video cu un număr de 30 cadre/s. În multe cazuri, anumite subsisteme sunt integrate pe placa sistem. Aceasta nu înseamnă că ele nu utilizează magistrala de extensie. Cele mai multe subsisteme integrate sunt conectate la o extensie a magistralei de extensie, numită magistrala X sau magistrala utilitară. Figura 3 ilustrează relaţia dintre magistrala X, magistrala de extensie şi procesorul sistemului. La o operaţie de citire a memoriei, procesorul poate comunica cu memoria sa cache internă (de nivel 1) la viteza maximă, dacă informaţia cerută se află în memoria cache. Dacă această memorie cache este de tip write-back, operaţiile de scriere în locaţiile aflate în memoria cache se pot executa de asemenea la viteza maximă. Dacă la o citire cuvântul nu se află în memoria cache, sau conţinutul memoriei cache trebuie scris în memoria principală, procesorul trebuie să utilizeze magistrala sa locală pentru a comunica cu memoria cache externă (de nivel 2). Dacă cuvântul nu se află nici în această memorie cache, se execută un acces la memoria DRAM. La execuţia unei operaţii de I/E, se va executa un ciclu de citire sau scriere utilizând magistrala de extensie. Viteza de execuţie a acestui ciclu este dată de viteza maximă a magistralei de extensie şi de timpul de acces al dispozitivului adresat.

28

SISTEME DE INTRARE – IEŞIRE

Fig. 3. Magistrala X 3.5.6.2. Conceptul magistralei locale Pentru a creşte rata de transfer la operaţiile de actualizare a memoriei video, adaptorul video se poate conecta la magistrala locală a procesorului în locul magistralei de extensie. Adaptorul video este reproiectat pentru conectarea directă la magistrală şi minimalizarea sau eliminarea stărilor de aşteptare. Există trei metode majore de conectare a dispozitivului la magistrala locală a procesorului: Conectarea directă Dispozitivul este conectat direct la magistrala locală a procesorului. Acesta poate fi un procesor de orice tip, de exemplu 80486 sau Pentium. Această metodă impune unele restricţii importante de proiectare: • Deoarece dispozitivul este conectat direct la magistrala locală a procesorului, va trebui reproiectat pentru a fi utilizat cu procesoarele din generaţiile viitoare (dacă structura magistralei sau protocolul vor fi modificate). • Datorită încărcării suplimentare a magistralei locale, nu se poate conecta mai mult de un dispozitiv. • Deoarece frecvenţa magistralei locale este ridicată, proiectarea interfeţei la magistrală a dispozitivului este dificilă. • In cazul modernizării ulterioare a sistemului prin instalarea unui procesor de tip "overdrive", sistemul poate funcţiona incorect datorită încărcării suplimentare a magistralei locale. • Procesorul nu poate efectua transferuri cu un dispozitiv în timp ce dispozitivul de pe magistrala locală execută un transfer cu un alt dispozitiv. Conectarea printr-un buffer Bufferul prin care este conectat dispozitivul la magistrala locală amplifică semnalele magistralei, fiind posibilă conectarea mai multor dispozitive. Deoarece magistrala locală bufferată este izolată din punct de vedere electric faţă de magistrala locală a procesorului, reprezintă o singură încărcare pentru aceasta. La magistrala bufferată se pot conecta de obicei trei dispozitive, acesta fiind singurul avantaj al acestei metode. Un dezavantaj al conectării printr-un buffer este că orice tranzacţie iniţiată de procesor apare pe magistrala locală, ca şi pe cea bufferată. De asemenea, orice tranzacţie iniţiată de un dispozitiv master de pe magistrala bufferată apare şi pe magistrala locală a procesorului. De aceea, procesorul şi dispozitivul master nu pot utiliza magistrala simultan. Conectarea de tip staţie de lucru În cazul acestei soluţii, utilizată la numeroase staţii de lucru, controlerul memoriei cache de nivel 2 este combinat cu un circuit de interfaţă numit punte (bridge), care asigură interfaţa dintre procesor, memoria principală şi o
29

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

magistrală de I/E de viteză ridicată (de exemplu, PCI). Dispozitivele conectate la magistrala de I/E pot fi şi adaptoare inteligente cu rol de master. Prin utilizarea punţii de legătură, memoria principală poate fi accesată fie de procesor (prin memoria sa cache de nivel 2), fie de un dispozitiv master de pe magistrala de I/E sau magistrala de extensie. Procesorul poate continua încărcarea datelor din memoria cache de nivel l sau 2, în timp ce controlerul memoriei cache asigură accesul la memoria principală a unui dispozitiv master de pe magistrala de I/E. Dispozitivele master pot de asemenea comunica direct cu dispozitive slave de pe magistrala de I/E în timp ce procesorul accesează una din memoriile cache sau controlerul memoriei cache de nivel 2 accesează memoria principală. Un alt avantaj important al acestei metode este că interfaţa dispozitivelor conectate la magistrala de I/E va fi independentă de magistrala procesorului. Modernizarea procesorului poate fi efectuată simplu, fără a afecta magistrala de I/E şi dispozitivele conectate la aceasta. Va trebui reproiectată numai puntea de legătură.

3.5.7. Magistrala VL Bus Asociaţia de standardizare pentru electronica video, VESA (Video Electronics Standards Association), o asociaţie de firme care sunt implicate în proiectarea şi producţia adaptoarelor grafice, a format un comitet pentru dezvoltarea şi standardizarea unei magistrale locale şi a conectorilor magistralei. Această magistrală, denumită VL Bus (VESA Local Bus), a apărut în anul 1992 şi în acelaşi an a fost standardizată prima versiune (1.0) a acesteia. Această versiune defineşte două metode de interfaţare la magistrala locală a procesorului: metoda directă şi cea bufferată, care au fost descrise anterior. Magistrala care utilizează prima metodă este numită de tip A, iar cea care utilizează metoda a doua este numită de tip B. În ambele cazuri, magistrala se bazează pe magistrala locală a procesorului 80486. Diferenţa principală dintre cele două tipuri este că magistrala de tip B permite utilizarea a până la trei conectori de extensie, în funcţie de încărcarea capacitivă, în timp ce magistrala de tip A nu permite conectori de extensie, fiind posibilă conectarea unui singur dispozitiv. în cazul tipului B, apar întârzieri datorită bufferului, care determină de obicei inserarea unor stări de aşteptare în timpul transferurilor. Versiunea 2.0 a magistralei prevede îmbunătăţiri prin extinderea liniilor de date la 64 şi posibilitatea conectării microprocesoarelor Pentium, păstrând compatibilitatea cu versiunea 1.0. Magistrala VL Bus este scalabilă şi extensibilă, fiind compatibilă cu mairjstralele existente ISA, EISA, Micro Channel. Specificaţiile acesteia sunt disponibile pentru toate firmele, nefiind protejate prin brevet. Frecvenţa maximă a magistralei este de 50 MHz. în cazul unei asemenea frecvenţe, devine importantă
30

SISTEME DE INTRARE – IEŞIRE

valoarea capacităţii electrice a liniilor magistralei. La creşterea numărului de echipamente conectate la magistrală, creşte şi valoarea capacităţii electrice, şi deci încărcarea magistralei. Valorile mari ale capacităţii tind să micşoreze viteza semnalelor şi performanţele magistralei. Conectorii de extensie pentru magistrala VL Bus sunt adăugaţi pe aceeaşi linie cu conectorii magistralei ISA, ceea ce permite combinarea adaptoarelor ISA şi a celor VL Bus pe aceeaşi placă. Sistemele cu magistrală VL Bus cele mai utilizate sunt cele care permit atât extensii VL Bus, cât şi ISA. Standardul VL Bus specifică faptul că dispozitivele conectate la magistrală trebuie să permită configurarea automată a sistemului. Nu se defineşte însă modul în care trebuie realizată configurarea automată, deci registrele de configuraţie pentru fiecare dispozitiv. Specificaţiile indică de asemenea că dispozitivele conectate la magistrala VL Bus trebuie să fie transparente la driverele de dispozitiv, deci trebuie să răspundă la acelaşi set de comenzi şi să furnizeze aceeaşi stare ca şi cele conectate la o altă magistrală. Pe lângă adaptoarele video, există şi alte echipamente care sunt conectate la magistrala locală, cum sunt: adaptoare de disc IDE, adaptoare SCSI sau adaptoare de reţea.
Frecvenţa de ceas a magistralei VL Bus 25MHz 33MHz 40MHz 50MHz Rata de transfer maximă (32 80 MB /s 107 MB /s 128 MB/s 160 MB /s Rata de transfer maximă (64 133 MB /s 178 MB /s 213MB/S 276 MB /s

Avantajele magistralei VL Bus constau în simplitatea arhitecturii şi costul redus. Dezavantajul principal este că la apariţia unor procesoare mai performante, logica de interfaţă trebuie reproiectată pentru acestea. De asemenea, faptul că nu se defineşte formatul registrelor de configuraţie şi adresele acestora nu permite realizarea unor interfeţe software unitare pentru dispozitivele conectate la magistrală.

3.5.8. Magistrala PCI 3.5.8.1. Prezentare generală În anul 1992, firma Intel a anunţat prima versiune (1.0) a unei specificaţii pentru o magistrală locală, denumită PCI (Peripheral Component Interconnect). Intenţia iniţială era realizarea unui standard care să permită interconectarea circuitelor rapide pe placa de bază, deoarece cu fiecare generaţie de microprocesoare, Intel trebuia să modifice arhitectura magistralei locale pentru a
31

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

mări performanţele sistemului, ceea ce implica şi modificarea circuitelor de interfaţă pentru periferice. Magistrala PCI urma să se conecteze la magistrala locală a procesorului prin intermediul unui circuit, special destinat acestui scop. Astfel, la fiecare schimbare a procesorului şi a magistralei locale, trebuia schimbat doar circuitul de legătură, circuitele de interfaţă cu perifericele nefiind afectate. Specificaţia PCI iniţială nu prevedea conectori de extensie. Intel a actualizat specificaţiile PCI pentru ca aceasta să admită şi conectori de extensie. Astfel, magistrala PCI a fost definită detaliat din punct de vedere electric şi funcţional, ajungând cea mai utilizată arhitectură de magistrală. Versiunea 2.0 a apărut în 1993, iar versiunea 2.1 în 1995. Sunt posibile transferuri de 32 sau de 64 biţi. În versiunea 2.1, frecvenţa maximă a ceasului este de 66 MHz, ceea ce permite obţinerea unei rate maxime de transfer de 528 MB/s. Standardul de extensie a plăcii PCI defineşte o familie de conectori pentru adaptoare de 5 V sau 3,3 V, cu variante de 32 şi 64 de biţi. Este de aşteptat ca în viitor majoritatea conectorilor de extensie să utilizeze surse de alimentare de 3,3 V în loc de 5 V. Specificaţiile PCI permit utilizarea a două din cele trei metode de conectare la magistrala locală a procesorului: conectarea printr-un buffer şi conectarea de tip staţie de lucru. Datorită avantajelor legate de performanţe şi de flexibilitate, conectarea de tip staţie de lucru este preferată. Se prezintă în Figura 1 schema bloc a unui sistem cu magistrală PCI, utilizând acest tip de conectare. Magistrala PCI este conectată la magistrala sistem a procesorului prin intermediul unei punţi UCP/PCI, având acces direct la memoria principală, în acest fel, transferurile între UCP şi memoria cache, respectiv între dispozitivele de I/E şi memoria principală pot avea loc simultan. Dispozitivele de I/E de viteză ridicată, ca adaptoarele grafice şi adaptoarele de reţea, care solicită în măsură redusă procesorul, sunt conectate direct la magistrala PCI. Dispozitivele care trebuie să se conformeze altor standarde de magistrală, ca ISA sau SCSI, se interfaţează cu magistrala PCI printr-o punte PCI/ISA, respectiv un adaptor SCSI. Un sistem poate fi realizat şi fără utilizarea punţilor de legătură, în acest caz, toate componentele, inclusiv procesorul şi memoria principală, se interfaţează direct cu magistrala PCI. 3.5.8.2. Semnalele magistralei PCI Fiecare dispozitiv conectat la magistrala PCI poate funcţiona fie ca slave, fie ca master/slave. Un dispozitiv master se mai numeşte iniţiator, iar unul slave se mai numeşte ţintă (target). Un dispozitiv ţintă nu poate iniţia transferuri pe magistrală. Pentru a reduce numărul pinilor şi dimensiunea conectorilor necesari pentru unităţile compatibile PCI, adresele şi datele sunt multiplexate, setul de linii pentru linii şi date fiind notat cu AD. O tranzacţie tipică pe magistrală implică două faze.
32

SISTEME DE INTRARE – IEŞIRE

În prima fază se transmite o adresă pe liniile AD, iar în faza a doua se transmit una sau mai multe cuvinte de date pe aceleaşi linii. Toate operaţiile magistralei sunt sincronizate cu ajutorul unui semnal de ceas, astfel că magistrala este sincronă. Sunt prevăzute însă semnale care permit inserarea stărilor de aşteptare de către dispozitivele mai lente.

Fig.1. Schema magistralei PCI În Figura 2 se prezintă principalele semnale ale unui dispozitiv master/slave. In partea stângă se află semnalele obligatorii, necesare pentru transferurile de bază utilizând cuvinte de maxim 32 de biţi. în partea dreaptă se află semnalele opţionale, care permit transferuri de date utilizând cuvinte de 64 de biţi, semnale care permit controlul întreruperilor şi executarea altor funcţii mai puţin uzuale.

33

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Fig. 2. Semnalele magistralei PCI Se descriu în continuare principalele semnale • AD[31 :0] (Address/Data) Reprezintă magistrala multiplexată de adrese şi de date. În timpul fazei de adrese, pe această magistrală se transmite adresa de start a tranzacţiei, în timpul fazei de date, pe liniile AD[31:0] se transmit date provenite de la iniţiator (la o scriere) sau de la ţinta adresată (la o citire). • CIBE [3:0] (Command or Byte Enable) În timpul fazei de adrese aceste linii definesc o comandă pe care iniţiatorul o utilizează pentru a indica tipul tranzacţiei necesare. Dintre comenzile posibile se amintesc citirea din memorie, scrierea în memorie, citirea de la un dispozitiv de I/E, scrierea la un dispozitiv de I/E, achitarea unei întreruperi etc. În timpul fazei de date aceste linii sunt utilizate de iniţiator pentru a indica octeţii care trebuie transferaţi din cadrul cuvântului dublu adresat şi grupele de linii ale magistralei AD care trebuie utilizate pentru transferul datelor. • PAR (Parity) Reprezintă semnalul de paritate pară pentru liniile AD[31:0] şi CIBE [3:0]. Paritatea este generată de iniţiator după terminarea fazei de adrese şi după terminarea fiecărei faze de date la o tranzacţie de scriere. Paritatea este generată de ţinta adresată după terminarea fiecărei faze de date la o tranzacţie de citire. • FRAME (Cycle Frame)
34

SISTEME DE INTRARE – IEŞIRE

Este activat de iniţiator şi indică începutul şi durata unei tranzacţii pe magistrală. O tranzacţie poate consta din una sau mai multe transferuri de date între iniţiatorul curent şi ţinta adresată. Semnalul FRAME este dezactivat atunci când iniţiatorul este pregătit să încheie faza finală de date. • TRDY (Target Ready) Este activat de dispozitivul ţintă adresat atunci când acest dispozitiv este pregătit pentru un transfer de date (poate executa faza curentă de date). Faza de date este terminată atunci când ţinta activează TRDY şi iniţiatorul activează IRDY la frontul crescător al semnalului de ceas. În timpul unei operaţii de citire, semnalul TRDY activat indică faptul că ţinta a depus date valide pe magistrala de date. În timpul unei operaţii de scriere, semnalul TRDY activat indică faptul că ţinta este pregătită să accepte datele de la iniţiator. Sunt inserate stări de aşteptare în faza curentă de date până când ambele semnale TRDY şi IRDY sunt activate. • IRDY (Initiato rReady) Este activat de iniţiatorul tranzacţiei şi semnalează momentul în care iniţiatorul este pregătit pentru un transfer de date. În timpul unei operaţii de scriere, semnalul IRDY activat indică faptul că iniţiatorul a depus date valide pe magistrala de date. În timpul unei operaţii de citire, semnalul IRDY activat indică faptul că iniţiatorul este pregătit să accepte datele de la ţinta adresată. • STOP Prin activarea acestui semnal dispozitivul ţintă solicită iniţiatorului oprirea tranzacţiei în curs în timpul fazei curente de date. • DEVSEL (Device Select) Este activat de dispozitivul ţintă atunci când acesta şi-a decodificat adresa. Dacă un dispozitiv master a iniţiat un transfer şi nu detectează semnalul DEVSEL activ în cursul a şase perioade de ceas, va presupune că ţinta nu poate răspunde sau că adresa respectivă nu este utilizată. Va rezulta un abandon din partea dispozitivului master. • IDSEL (Initialization Device Select) Este o intrare pentru un dispozitiv PCI şi este utilizat pentru selecţia circuitului în timpul accesului la unul din registrele de configurare ale dispozitivului. • PERR (Parity Error) Indică o eroare de paritate. Generarea informaţiei de paritate este obligatorie pentru toate dispozitivele PCI care transmit adrese şi date pe magistrala AD. Detectarea şi raportarea erorilor de paritate de către dispozitivele PCI este necesară în general (în anumite cazuri, erorile de paritate pot fi ignorate). Dacă se detectează o eroare de paritate de către un dispozitiv ţintă în timpul unei faze de date la o operaţie de scriere, ţinta trebuie să activeze semnalul PERR . Ţinta poate continua tranzacţia sau poate activa semnalul STOP pentru terminarea prematură a tranzacţiei. Dacă se detectează o eroare de paritate de către un dispozitiv iniţiator în
35

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

timpul unei faze de date la o operaţie de citire, iniţiatorul trebuie să activeze semnalul PERR . Iniţiatorul unei tranzacţii are responsabilitatea de a raporta detectarea unei erori de paritate, în acest scop, iniţiatorul trebuie să monitorizeze semnalul PERR în timpul fazelor de date la operaţiile de scriere pentru a determina dacă ţinta a detectat o eroare de paritate a datelor. • SERR (System Error) Acest semnal poate fi activat de orice dispozitiv PCI pentru a raporta erori de paritate a adreselor, erori de paritate a datelor în timpul unui ciclu special, sau erori critice diferite de cele de paritate. Acest semnal este considerat ca ultima modalitate de raportare a erorilor serioase. Erorile care nu sunt catastrofale şi cele corectabile trebuie semnalate în alte moduri. La calculatoarele PC, SERR determină în general o întrerupere NMI către procesorul sistemului. • REQ (Request) Este activat de iniţiator pentru a indica o cerere de magistrală. Această linie este conectată la arbitrul de magistrală. Metoda de arbitrare a magistralei nu este descrisă în specificaţiile PCI; se pot implementa diferite metode. Este specificat doar faptul că arbitrul de magistrală trebuie să utilizeze un algoritm prin care să se evite blocajele; fiecărui dispozitiv master potenţial trebuie să i se permită accesul la magistrală. • GNT (Grant) Este activat de arbitrul de magistrală pentru a indica acordarea magistralei pentru iniţiator. Atunci când detectează acest semnal, iniţiatorul trebuie să aştepte terminarea tranzacţiei în curs de către iniţiatorul curent. • CLK (Clock) Reprezintă semnalul de ceas utilizat pentru sincronizarea tuturor tranzacţiilor, inclusiv a arbitrajului de magistrală. Toţi parametrii de sincronizare ai magistralei sunt specificaţi relativ la frontul crescător al semnalului de ceas. Frecvenţa semnalului de ceas se poate modifica în orice moment, cu condiţia să nu existe cereri de magistrală şi semnalul LOCK să nu fie activ. De asemenea, ceasul poate fi oprit în starea low (pentru reducerea puterii consumate). • RST(Reset) Reprezintă semnalul de resetare. Atunci când este activat, acest semnal forţează trecerea tuturor registrelor de configurare PCI, a dispozitivelor iniţiator şi ţintă într-o stare de iniţializare, în general, semnalele de ieşire ale dispozitivelor PCI vor fi trecute în starea de înaltă impedanţă. Semnalul RST poate fi activat sau dezactivat asincron relativ la frontul semnalului CLK. • AD[63:32] Reprezintă extensia la 64 de biţi a magistralei de date AD[31:0]. Aceste linii nu sunt utilizate în timpul fazei de adresare a unui transfer (cu excepţia cazului în care se utilizează adresarea pe 64 de biţi).
36

SISTEME DE INTRARE – IEŞIRE

• CIBE [7:4] Reprezintă extensia semnalelor CIBE[3:0]. Se utilizează numai în timpul fazei de date a unui transfer (cu excepţia cazului în care se utilizează adresarea pe 64 de biţi). • PAR64 (Parity for the Upper Doubleword) Este bitul de paritate pară asociat cu AD[63:32] şi CIBE [7:4]. • REQ64 (Request 64-bit Transfer) Semnal generat de iniţiatorul curent pentru a indica faptul că doreşte executarea transferurilor utilizând extensia la 64 de biţi a liniilor de date. Semnalul REQ64 are aceeaşi sincronizare ca şi semnalul FRAME. • ACK 64 (Acknowledge 64-bit Transfer) Semnal generat de ţinta curent adresată (dacă aceasta permite transferuri pe 64 de biţi) ca răspuns la activarea semnalului REQ64 de către iniţiator. Semnalul ACK 64 are aceeaşi sincronizare ca şi semnalul DEVSEL • LOCK Acest semnal este utilizat de către un iniţiator PCI care solicită accesul exclusiv la un dispozitiv ţintă de memorie în timpul a două sau mai multe tranzacţii separate. Acest semnal este prevăzut cu scopul de a permite operaţii de citire/modificare/scriere la operaţiile cu semafoare. Dacă un dispozitiv PCI conţine o memorie executabilă sau o memorie care conţine date de sistem (gestionate de sistemul de operare), trebuie să implementeze această funcţie de blocare a resurselor. • CLKRUN (Clock Run) Acest semnal este opţional şi este definit pentru sistemele portabile. Un sistem portabil cuprinde o resursă centrală, care include logica de generare a ceasului pentru magistrala PCI. Atunci când ceasul funcţionează normal, această logică menţine semnalul CLKRUN activat. În perioadele în care ceasul este oprit sau frecvenţa acestuia este micşorată, logica de generare a ceasului monitorizează semnalul CLKRUN pentru a recunoaşte cereri de la dispozitivele PCI care urmăresc modificarea stării semnalului de ceas. Ceasul nu poate fi oprit dacă magistrala nu este liberă, înaintea opririi (sau micşorării frecvenţei) ceasului, logica de generare a ceasului dezactivează semnalul CLKRUN pentru o perioadă de ceas pentru a informa dispozitivele PCI că ceasul urmează să fie oprit (sau frecvenţa acestuia urmează să fie micşorată). După aceasta, logica trece driverul de ieşire al semnalului CLKRUN în starea de înaltă impedanţă. Rezistenţa conectată la linia CLKRUN va menţine acest semnal în starea dezactivată în timpul în care ceasul este oprit. Ulterior, un dispozitiv master poate solicita repornirea ceasului în scopul utilizării magistralei prin activarea semnalului CLKRUN .
37

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

• INTA , INTB , INTC , INTD Reprezintă semnalele pentru cererile de întrerupere. • SBO (Snoop Back Off) Acest semnal este o ieşire de la puntea UCP/PCI şi o intrare pentru subsistemele de memorie conectate la magistrala PCI care pot utiliza o memorie cache. Semnalul SBO estre activat de puntea UCP/PCI pentru a indica faptul că prin accesul curent la memorie urmează să se citească sau să se actualizeze informaţii perimate din memorie. Semnalul SBO are semnificaţie numai atunci când semnalul SDONE este de asemenea activat de către puntea UCP/PCI. Atunci când ambele semnale sunt activate, subsistemul de memorie PCI curent adresat trebuie să răspundă prin semnalarea unei retransmisii la iniţiatorul curent. • SDONE (Snoop Done) Acest semnal este o ieşire de la puntea UCP/PCI şi o intrare pentru subsistemele de memorie conectate la magistrala PCI care pot utiliza o memorie cache. Semnalul SDONE este dezactivat de puntea UCP/PCI în timp ce memoria cache a procesorului intervine într-o cerere de acces la memorie executată de iniţiatorul curent. Puntea activează semnalul SDONE atunci când intervenţia s-a terminat. Rezultatele intervenţiei sunt indicate de către semnalul SBO. Semnalul SBO dezactivat indică faptul că iniţiatorul PCI accesează date valide din memorie şi că memoria poate accepta sau furniza datele respective. Semnalul SBO activat indică faptul că iniţiatorul PCI accesează date perimate din memorie şi nu trebuie să termine accesul curent. Memoria va trebui să termine accesul prin semnalarea faptului că operaţia trebuie repetată. • TCK (Test Clock) Utilizat ca semnal de ceas pentru transferul informaţiilor de stare şi a datelor în timpul testării ''boundary scan". • TDI (Test Data Input) Utilizat împreună cu semnalul TCK pentru transferul datelor şi a instrucţiunilor către dispozitivul PCI prin portul TAP (Test Access Port) sub forma unui şir de biţi, în mod serial. • TDO (Test Data Out) Utilizat împreună cu semnalul TCK pentru transferul datelor de la dispozitivul PCI prin portul TAP sub forma unui şir de biţi, în mod serial. • TMS (Test Mode Select) Utilizat pentru controlul stării controlerului portului TAP. • TRST (Test Reset) Utilizat pentru a forţa controlerul portului ŢAP în starea iniţială. 3.5.8.3. Caracteristici ale magistralei PCI
38

SISTEME DE INTRARE – IEŞIRE

Dispozitiv iniţiator şi ţintă La fiecare transfer participă două dispozitive: iniţiatorul şi ţinta. Iniţiatorul, sau dispozitivul master, este cel care iniţiază un transfer. Ţinta, sau dispozitivul slave, este adresat de iniţiator în scopul executării transferului. Dispozitivele iniţiator şi ţintă sunt numite agenţi PCI. Transferuri în mod exploziv Un asemenea transfer constă dintr-o singură fază de adrese urmată de mai multe faze de date. Arbitrajul de magistrală trebuie executat o singură dată. In timpul fazei de adrese se transmite adresa de început şi tipul tranzacţiei care urmează. Dispozitivul ţintă memorează adresa de început într-un contor de adrese, şi va incrementa adresa în fiecare fază de date. La magistralele EISA şi Micro Channel, posibilitatea de a utiliza modul exploziv este stabilită printr-o negociere între dispozitivul master şi cel slave. Dacă unul sau niciunul din acestea nu permite transferuri în mod exploziv, blocul de date se va transmite utilizând o serie de tranzacţii separate. Este necesar arbitrajul de magistrală pentru fiecare tranzacţie individuală. Un alt dispozitiv master poate obţine magistrala între două tranzacţii. Aceasta poate limita în mod sever rata de transfer. În cazul magistralei PCI, cele mai multe transferuri se execută în mod exploziv, cele mai multe dispozitive fiind proiectate astfel încât să permită asemenea transferuri. Dacă un dispozitiv ţintă poate efectua numai tranzacţii singulare, la încercarea dispozitivului master de a executa o tranzacţie în mod exploziv, ţinta termină tranzacţia după prima fază de date. Astfel dispozitivul master va fi obligat să solicite din nou magistrala printr-un proces de arbitraj. În acest mod performanţele vor fi mai reduse, dar tranzacţiile singulare se pot utiliza pentru dispozitivele care nu necesită rate ridicate de transfer. Presupunând că nici iniţiatorul şi nici dispozitivul ţintă nu inserează stări de aşteptare, poate fi transferat câte un cuvânt la fiecare front crescător al semnalului de ceas. La o frecvenţă de 33 MHz, se poate obţine o rată de transfer de 132 MB/s în cazul implementării pe 32 de biţi, sau 264 MB/s pentru 64 de biţi. Cu o frecvenţă a ceasului de 66 MHz, se pot obţine rate de transfer de 264 MB/s, respectiv 528 MB/s. Dispozitive multifuncţionale Un dispozitiv fi/ic PCI poate fi o componentă integrată pe placa sistem sau o placă de extensie PCI. Fiecare dispozitiv poate încorpora până la opt funcţii separate, un asemenea dispozitiv fiind numit multifuncţional. Ceasul magistralei PCI Frecvenţa semnalului de ceas poate fi în intervalul de la 0 la 33 MHz. Specificaţiile versiunii 1.0 indică faptul că toate dispozitivele trebuie să funcţioneze între 16 şi 33 MHz, recomandând funcţionarea la 0 MHz. Specificaţiile versiunilor 2.x indică faptul că toate dispozitivele trebuie să funcţioneze în intervalul de la 0 la 33 MHz. Funcţionarea la 0 MHz asigură un consum redus de putere şi posibilitatea
39

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

depanării statice. Frecvenţa ceasului se poate modifica în orice moment şi ceasul poate fi oprit (în starea low). Versiunea 2.1 defineşte de asemenea funcţionarea la frecvenţe de până la 66 MHz. 3.5.8.4. Tranzacţii Faza de adrese Toate tranzacţiile pe magistrala PCI constau dintr-o fază de adrese urmată de una sau mai multe faze de date. Excepţia o reprezintă tranzacţiile în care se utilizează adresarea pe 64 de biţi, unde adresa este furnizată în două faze de adrese. O fază de adrese are durata unei perioade de ceas. În această fază, iniţiatorul identifică dispozitivul ţintă şi tipul tranzacţiei. Ţinta este identificată prin transmiterea unei adrese de start pe magistrala de adrese/date în cadrul domeniului de adrese asignat dispozitivului. Tipul tranzacţiei este identificat prin depunerea tipului comenzii pe liniile CIBE. Iniţiatorul activează semnalul FRAME pentru a indica prezenţa unei adrese de start şi tip de tranzacţie valide. Deoarece adresa de start este prezentă numai pe durata unei perioade de ceas, fiecare dispozitiv ţintă trebuie să memoreze adresa pentru a putea fi decodificată ulterior. Atunci când un dispozitiv ţintă determină faptul că este adresat, trebuie să activeze semnalul DEVSEL , pentru a revendica tranzacţia. Dacă acest semnal nu va fi activat într-un timp predeterminat, iniţiatorul va abandona tranzacţia. După terminarea fazei de adrese, magistrala de adrese/date este utilizată pentru transferul datelor în cadrul unei sau mai multor faze de date. Faza de date Pe durata fazei sau fazelor de date are loc transferul datelor între iniţiator şi ţintă. Atât iniţiatorul cât şi ţinta trebuie să indice faptul că sunt pregătite pentru terminarea unei faze de date prin activarea semnalelor IRDY , respectiv TRDY . În cazul în care nu sunt activate ambele semnale la începutul unei perioade de ceas, se va insera o stare de aşteptare cu durata unei perioade. Terminarea tranzacţiei Iniţiatorul identifică durata totală a unui transfer cu ajutorul semnalului FRAME. Acest semnal este activat la începutul fazei de adrese şi rămâne activat până când iniţiatorul este pregătit pentru a termina faza finală de date (activează IRDY). Executarea ultimei faze de date este indicată de iniţiator prin dezactivarea semnalului FRAME şi activarea semnalului IRDY. După terminarea ultimului transfer, iniţiatorul readuce magistrala în starea inactivă prin dezactivarea semnalului IRDY. Arbitrajul de magistrală are loc în timp ce un dispozitiv master utilizează magistrala. Dacă arbitrul de magistrală a acordat în prealabil magistrala unui alt dispozitiv master, acest dispozitiv poate detecta starea inactivă a magistralei prin faptul că semnalele FRAME şi IRDY sunt ambele dezactivate.
40

SISTEME DE INTRARE – IEŞIRE

3.5.8.5. Întreruperi Magistrala PCI are patru linii pentru cererile de întrerupere, INTA , ..., INTD ; acestea fac parte din liniile opţionale ale magistralei. Un dispozitiv de I/E cu o singură funcţie trebuie să utilizeze INTA ca linie pentru cererea de întrerupere; dispozitivele de I/E multifuncţionale pot utiliza toate cele patru lini. O configuraţie particulară pe liniile de comandă CIBE [3:0] indică achitarea întreruperii. Liniile cererilor de întrerupere INTx şi comanda de achitare a întreruperii pot implementa împreună semnalele necesare în timpul unei tranzacţii de întrerupere pe magistrala PCI. Fiecare dispozitiv compatibil PCI trebuie să dispună de un set standard de registre de configuraţie adresabile CR care identifică dispozitivul. La iniţializare, sistemul de operare citeşte registrele CR pentru a determina, printre altele, conexiunile de întrerupere ale dispozitivului de I/E. Registrul "pinului de întrerupere" de 8 biţi din CR indică linia cererii de întrerupere INTx care este utilizată de dispozitiv. Un alt registru de 8 biţi din CR, numit registrul "liniei de întrerupere", specifică linia de intrare a controlerului de sistem care este conectată la linia INTx, astfel încât rutarea liniilor pentru cererile de întrerupere este programabilă. Controlerul de sistem poate utiliza această informaţie pentru a determina prioritatea cererii de întrerupere a dispozitivului de I/E şi pentru accesarea vectorilor săi de întrerupere. Registrele CR formează un mic spaţiu de adresă care este separat de spaţiul de adresă al memoriei şi cel de I/E. 3.5.8.6. Registre de configuraţie Fiecare dispozitiv funcţional PCI dispune de un bloc de 64 cuvinte duble rezervate pentru implementarea registrelor de configuraţie. Formatul primelor 16 cuvinte duble este predefmit de specificaţiile PCI. Această zonă reprezintă antetul de configuraţie al dispozitivului. Specificaţiile definesc două formate ale antetului, numite tipul 0 şi 1. Tipul 1 este definit pentru punţile de legătură între două magistrale PCI, la sistemele cu mai multe magistrale PCI. Tipul 0 este utilizat de alte dispozitive, fiind descris în continuare. Formatul antetului de configuraţie al unui dispozitiv funcţional PCI (diferit de o punte PCI-PCI) este prezentat în Figura 3. Registrele din acest antet sunt utilizate pentru identificarea dispozitivului, controlul funcţiilor sale şi detectarea stării acestuia. Utilizarea celorlalte 48 de cuvinte duble a spaţiului de configuraţie este specifică dispozitivului.

41

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

Fig. 3. Antetul de configuraţie al unui dispozitiv funcţional PCI Registrul de identificare a producătorului Acest registru de 16 biţi, de tip R/O, identifică producătorul dispozitivului printr-un cod atribuit de o autoritate care controlează atribuirea acestor coduri. Valoarea FFFFh a codului este rezervată şi trebuie returnată de puntea dintre UCP şi magistrala PCI atunci când se încearcă citirea registrului de identificare al producătorului dintr-un dispozitiv inexistent. Registrul de identificare a dispozitivului Valoarea de 16 biţi din acest registru este asignată de producător şi identifică tipul dispozitivului. Registrul de comandă Este un registru de 16 biţi, fiind definiţi numai biţii 9-0, ceilalţi biţi fiind rezervaţi pentru utilizări viitoare. Se descriu funcţiile principale care pot fi specificate de biţii acestui registru. • Validarea dispozitivului. • Validarea accesului la implementează o memorie. memoria dispozitivului, dacă acesta

• Validarea funcţiei de master a dispozitivului, dacă acesta are
42

SISTEME DE INTRARE – IEŞIRE

posibilitatea de a deveni master. • Validarea monitorizării ciclurilor speciale PCI. Aceste cicluri se utilizează pentru a transmite diferite mesaje dispozitivelor ţintă, care pot monitoriza ciclurile pentru a determina dacă mesajele sunt destinate acestora. • Actualizarea registrelor de paletă a culorilor ale unei interfeţe VGA fără confirmarea acceptării datelor (VGA Color Palette Snooping). Această opţiune este utilă în cazul sistemelor cu două controlere grafice: o interfaţă compatibilă VGA şi un alt controler grafic. Fiecare din acestea implementează un set de registre de paletă, care se află la aceleaşi adrese de I/E. Atunci când procesorul execută o scriere pentru actualizarea registrelor de paletă, ambele controlere vor recunoaşte adresa şi vor răspunde prin activarea semnalelor DEVSEL şi TRDY, rezultând o coliziune pe aceste linii. Programul de configurare trebuie să programeze unul din controlere ca fiind o destinaţie activă, care răspunde la comenzile de scriere în registrele de paletă, iar celălalt ca destinaţie pasivă. Controlerul VGA va răspunde întotdeauna la comenzile de citire a registrelor de paletă. • Validarea parităţii. Dacă acest bit este setat, dispozitivul va raporta erorile de paritate. In caz contrar, erorile de paritate vor fi ignorate. • Validarea semnalării erorilor de sistem. Dacă acest bit este setat, dispozitivul poate activa semnalul SERR pentru a indica o eroare de sistem. Toate dispozitivele care utilizează semnalul SERR trebuie să implementeze acest bit. Pentru raportarea erorilor de paritate, trebuie ca acest bit şi bitul de validare a erorilor de paritate să fie setaţi. După resetare, toţi biţii registrului de comandă sunt setaţi la 0, cu excepţia unui dispozitiv care trebuie să fie validat în timpul pornirii sistemului, deoarece este utilizat în procesul de încărcare a sistemului. Prin aceasta dispozitivul este dezactivat, dar va fi accesibil pentru configurare, urmând să fie validat de programul de configurare. Dispozitivele care trebuie să fie accesibile la pornire prin adrese fixe trebuie să implementeze bitul de validare pentru a controla recunoaşterea adreselor sale fixe. Aceasta permite programului de configurare să invalideze recunoaşterea adreselor fixe după pornirea sistemului, şi să reconfigureze gama de adrese la care răspunde dispozitivul. Registrul de stare Păstrează starea evenimentelor legate de magistrala PCI. Acest registru poate fi citit, scrierile fiind tratate diferit de modul obişnuit. La scriere, un bit poate fi şters, dar nu poate fi poziţionat. Un bit este şters prin scrierea valorii 1. Această metodă a fost aleasă pentru a simplifica programele. După citirea stării şi determinarea biţilor de eroare care sunt setaţi, programatorul şterge biţii prin înscrierea valorii citite anterior din registru. Principalele informaţii conţinute în registrul de stare sunt următoarele:
43

Capitolul 3 - Magistrale de comunicaţie cu echipemantele periferice

• Frecvenţa de funcţionare Indică posibilitatea funcţionării la 66 MHz, sau la 33 MHz. • Posibilitatea definirii unor caracteristici de către utilizator Deşi programul de configurare poate detecta prezenţa unui dispozitiv şi poate aloca resursele necesare acestuia (spaţiul de memorie, spaţiul de I/E, nivelul de întrerupere, nivelul de prioritate pentru arbitraj etc.), unele caracteristici ale anumitor subsisteme nu pot fi configurate automat atunci când subsistemul este detectat pentru prima dată. În acest caz se poate indica o listă de opţiuni care pot fi selectate. Un exemplu îl constituie un adaptor de reţea căruia trebuie să i se asigneze un anumit identificator de nod al reţelei. La prima instalare, opţiunile vor fi salvate în memoria nevolatilă şi vor fi utilizate în continuare. • Raportarea parităţii Acest bit este implementat numai de dispozitivele master şi este setat în următoarele condiţii: dispozitivul master a avut rol de iniţiator şi a setat el însuşi semnalul PERR , sau a detectat setarea acestui semnal de către ţintă (la o scriere). De asemenea bitul de validare a parităţii din registrul de comandă trebuie să fie setat. • Abandon de către ţintă Este un bit setat de către dispozitivul ţintă atunci când aceasta termină o tranzacţie cu un abandon. • Recepţionarea abandonului de către ţintă Acest bit este setat de un dispozitiv master atunci când tranzacţia iniţiată de acest dispozitiv este terminată printr-un abandon al ţintei curent selectate. Toate dispozitivele master trebuie să implementeze acest bit. • Semnalarea unei erori de sistem Acest bit trebuie setat ori de câte ori un dispozitiv activează semnalul de eroare SERR. • Detectarea unei erori de paritate Acest bit trebuie setat de un dispozitiv atunci când detectează o eroare de paritate (chiar dacă raportarea erorii de paritate este invalidată). Registrul de identificare al reviziei Conţine o valoare de 8 biţi setată de producător, care reprezintă numărul de revizie al dispozitivului. Registrul codului de clasă Este un registru de 24 de biţi, divizat în trei câmpuri, care conţin: clasa de bază, subclasa şi interfaţa de programare. Acest registru identifică funcţia de bază a dispozitivului (de exemplu, un controler pentru o memorie de masă), o subclasă mai
44

SISTEME DE INTRARE – IEŞIRE

precisă a dispozitivului (de exemplu, un controler IDE), şi în anumite cazuri, o interfaţă de programare (ca setul de registre a unui controler VGA). Registrul tipului de antet Este un registru de 8 biţi care defineşte prin 7 biţi formatul antetului de configuraţie. Pe lângă antetul de tip 0, indicat în figură, este definit un singur format, cel pentru punţile între două magistrale PCI. Alte formate vor fi definite în specificaţiile viitoare. Bitul 7 al acestui registru indică dacă dispozitivul are o singură funcţie sau este multifuncţional.

45

CAPITOLUL 4
Echipamnete de intrare / ieşire 4.1. MOUSE-ul
Mouse-ul a fost introdus pentru uzul public în 1984 de către firma Apple Macintosh. Conceput în anii ’60, a durat aproape 2 decenii pentru a deveni o parte componentă standard a unui PC. La început nu a fost necesar pentru că erau utilizate intefeţe text, iar mai târziu aceste interfeţe erau doar emulate înlocuind hârtia. În momentul în care mouse-ul a fost lansat de de Macintosh, a avut un succes imediat. Preţul relativ scăzut, spaţiul restrâns ocupat şi uşurinţa în manevrare au fost avantajele care l-au lansat ca lider în competiţia pointing – device – urilor. Cu toate acestea nu a fost prea repede adaptat datorită lipsei de suport în sistemele de operare. În momentul introducerii Interfeţelor Grafice cu Utilizatorul (GUI) ca standard mouse-ul s-a dovedit a fi o necesitate. Rolul mouse-ului este acela de transforma mişcarea mâinii în semnale pe care computerul le poate utiliza. Mouse-ul standard realizează acestă translaţie utilizând cinci componente:

1.Bila Mouse-ului 2. Role 3. Ansamblul ax-disc-LEDsenzori 4. Butoane 5. Procesor on-board

Bila din interiorul mouse-ului atinge suprafaţa biroului şi se roteşte de fiecare dată când mouse-ul se mişcă. 2. Două role din interiorul mouse-ului sunt în contact cu bila. Una dintre role este orientată astfel încât să detecteze mişcarea pe axa X, iar celalltă pe axa Y. La fiecare mişcare a bilei, una dintre aceste role se roteşte. 3. Fiecare rolă este conectată la un ax pe care este prins un disc cu găuri. La rotirea rolelor axul cu disc se roteşte. 4. De fiecare parte a discului este un LED infraroşu şi un senzor infraroşu. Găurile din disc întrerup semnalul dintre LED şi senzor, astfel încât senzorul captează pulsuri luminoase. Rata de pulsare este corelarea directă dintre viteza mouse-ului şi distanţa de lucru. 5. Un procesor on-board care citeşte pulsurile de la senzorii de infraroşu şi le transformă în date binare pe care computerul le poate interpreta. Cipul transmite datele către computer prin intermediul cordonului mouse-ului. De notat este faptul că fiecare disc are două perechi LED/senzor una de fiecare parte a discului. Acest aranjament este utilizat pentru a se detecta direcţia de rotaţie a discului. 1.

1

Capitolul 4 - Echipamente de intrare - ieşire În faţa fiecărui sensor este fixată o mică bucată de plastic prevăzută cu o fereastră prin care semnalul de la LED este interceptat. Diferenţierea, pentru detectarea sensului de rotire constă în amplasarea mai înălţată a uneia dintre cele două “ferestre” astfel încât senzorii captează defazat în timp semnalul de la LED. Astfel există timpi în care unul dintre senzori primeşte pulsuri, iar celălalt nu. Ca un caz particular vom analiza mouse-ul optic. Acesta, pare să ia încet locul mouse-ului standard (cu bilă). Tehnologia mouse-ului optic a fost dezvoltată de către firma Agilent Technologies şi prezentată publicului la sfârşitul anului 1999. În prezent mouse-ul optic este capabil utilizează o cameră microscopică capabilă să realizeze până la 1500 de imagini/secundă. Capabil să lucreze pe aproape orice suprafaţă, mouse-ul este prevăzut cu un mic LED de culoare roşie care trnasmite semnale luminoase pe suprafaţa unui senzor de tip CMOS (Complimantary Metal – Oxide Semiconductor). Acesta transmite fiecare imagine unui procesor de semnal digital (DSP) pentru analiză. Capabil să relizeze 18 m9ilioane de instrucţiuni pe secundă detectează modelul suprafeţei şi cum s-au deplasat detaliile acestuia de la imaginea anterioară. În baza determinărilor schimbărilor de poziţii în cadrul secvenţelor succesive DSP determină distanţa şi direcţia de mişcare şi le transmite noile coordonate computerului. Mouse-ul poate comunica cu computerul pe portul PS/2, serial sau USB. Modul de realizare al trasferului de date pe aceste porturi a fost tratat în capitolul II al acestui curs.

4.1.1. Mouse-ul optic

4.2. Tastatura
Tastura este echipamentul periferic cel mai utilizat. Deşi nu pare, tastatura este de fapt era însăşi un mic computer. În esenţă, tastatura este compusă dintr-o serie de comutatoare conectate la un microprocesor care monitorizează starea fiecărui comutator şi iniţiază răspunsuri specifice la schimbarea de stare. Tastaturile au suferit schimbări minore din momentul introducerii şi până în prezent. De fapt, cele mai multe schimbări se referă la introducerea de taste suplimentare care oferă funcţii adiţionale. Clasificarea tastaturilor în funcţie de numărul tatelor: • 101/102 taste – Tastatură standard; • 104 taste – Tastatură Windows; • 82 taste – Tastatură Apple standard; • 108 taste - Tastatură Apple extinsă. Calculatoarele portabile au tastaturi diferite şi cu aranjarea diferită a tastelor faţă de tastaturile standard. O tastatură standard are patru tipuri de taste de bază: • taste pentru dactilografiere – secţiunea tastaturii care conţine taste cu simboluri litere ( tastatura QWERTY); • taste numerice – secţiunea tastaturii care conţine 17 suplimentare pentru cifre şi operanzi de bază; • taste funcţionale – tastele aranjate în linie deaspra tatslor prntru dactilografiere; • taste de control – tastele speciale care oferă funcţii de gestionare a componentelor sistemului de operare (Insert, Home, End etc). Ca o paranteză, criticii sitemului de aranjare a tastelor în configuraţia QWERTY au adoptat un nou sistem de tastatură, denumită Dvorak, care oferă cel mai convenabil aranjament al tastelor pentru utilizator.
2

4.2.1. Tipuri de tastaturi

SISTEME DE INTRARE - IESIRE

4.2.2. Funcţionarea tastaturii

Procesorul tastaturii trebuie să prelucreze informaţii importante: • poziţia tastei în matrice; • intensitatea apăsării tastei şi modul de filtrare; • viteza de transmitere a informaţiei.

a)

b)
Figura 2. Matricea şi procesorul tastaturii : a) contacte metalice; b) contacte de cauciuc. Matricea tastaturii este o grilă de circuite situate sub taste. Fiecare circuit este întrerupt sub tasta specifică. Prin apăsarea tastei se realizează închiderea circuitului. Procesorul monitorizează matricea tastelor pentru semnale continui. În momentul închiderii unui circuit procesorul compară locaţia respectivului circuit cu harta caracterelor din memoria sa ROM. Harta caracterelor este la bază o comparaţie de hărţi care comunică procesorului coordonatele x,y ale tastei în reprezentarea matricială. În cazul apăsării simultane a mai multor taste, procesorul caută combinaţia asignată în harta caracterelor. Harta caracterelor de pe tastatură poate fi înlocuită cu o hartă a caracterelor impusă de computer. De obicei aceasta este oferită în cazul diferitelor limbi care utilizează caractere care nu au echivalent în limba engleză. În cazul schimbului între diferitele tipuri de tastaturi se alocă o tastă sau o combinaţie de taste cu rol de comutator între diferitele hărţi asignate. Prin apăsarea tastelor comutator se realizează o schimbare a curentului din circuitele tastaturii, realizându-se o uşoară vibraţie între suprafeţe. Procesorul recunoaşte foarte rapid acest semnal şi realizează comutarea între hărţile de caractere. Rata de transfer a informaţiei poate fi setată software şi, în cele mai multe cazuri, aceasta este de 30 de caractere pe secundă. În cazul apaăsării prelungite a un ei taste procesorul interpretează că se doreşte o transmitere repetată a acelei taste. Tastaturile utilizează o gamă largă de realizare a comutatoarelor: • cupolă îmbrăcată în cauciuc; • capactive; • cu contact metalic; • cu membrană; • cu elemente de spumă mecanică.
3

Capitolul 4 - Echipamente de intrare - ieşire Cea mai răspândită tehnologie este cea a comutatorelor cu cupolă de cauciuc, în acestă configuraţie, fiecare tastă fiind aşezată pe o mică cupolă de cauciuc cu un centru de carbon dur. În momentul apăsării unei taste, o mică tijă de sub tastă apasă cupola de cauciuc. Acesta apasă centrul carbonic al cupolei până atinge suprafaţa matricei tastaturii. O altă tehnologie des utilizată este cea a comutatoarelor cu membrană. Este apropiată de tehnologia comutatoarelor cu cupolă de cauciuc, cu diferenţa că are un singur covoraş de cauciu cu cupole pentru fiecare tastă. Comutatoarele capacitive sunt considerate ca o tehnologie non-mecanică. Acestea nu realizează doar simpla închidere a unui circuit. În circuitele matricii circulă un curent de intensitate constantă. Fiecare tastă are la baza tijei o mică suprafaţă metalică. În momentul apăsării unei taste acestă suprafaţă se apropiede o suprafaţă similară de sub ea. Când cele două suprafeţe sunt apropiate, se modifică intensitatea curentului din circuitele matricii. Procesorul interpretează acest fapt ca atingerea unei taste din locaţia respectivă. Transmiterea datelor de la tastatură catre UCP se poate realiză pe conexiune PS/2, DIN sau USB, conexiuni tratate în capitolul II al cursului.

4.3. Hard discul
Fiecare server sau staţie de lucru utilizează unul sau mai multe hard discuri. Camerele video digitale moderne şi alte echipamente audio-video digitale utilizează unităţi hard disc. Inventat în anii ’50, hard discul (HDD) are rolul bine determinat de a stoca în format electronic informaţii şi de a le furniza utilizatorului la solicitarea acestuia şi influenţează deecisiv performaţele unui sistem de calcul. Primele hard discuri aveau un diametru de 20 inci şi puteau stoca inormaţii ce însumau doar câţiva MegaBytes (MB). Iniţial au fost denumite discuri fixe sau Winchester, abia mai târziu fiind denumite HDD. HDD-urile au platane (discuri) rigide din aluminiu sau sticlă placate pe ambele feţe cu un strat de material magnetic. De obicei acesta este oxid de fier în combinaţie cu alte elemente. În cele mai multe cazuri acestea nu pot fi îndepărtate datorită tehnologiei de mare fineţe de asmablare. Discurile sunt montate pe acelşi ax şi sunt rotite cu o viteză unghiulară constantă măsurată în rotaţii pe minut. Datele sunt înregistrate pe piste concentrice, împărţite în sectoare. De obicei, un sector conţine 512 octeţi de date. Pistele, cu o dispoyiţie simetrică pe ambele feţe ale discului formează un cilindru. Citirea şi înregistrarea datelor se realizează cu ajutorul unor capete de citire şi scriere. Există de obicei câte un cap de citire/scriere pentru fiecare faţă a discurilor, iar acestea se pot deplasa radial deasupra lor. Capetele de citire/scriere sunt montate pe un suport comun, deci nu se pot deplasa independent, ci numai în bloc. Poziţia capetelor este controlată de un mecanism de acţionare. Există circuite care controlează celelalte componente şi realizează comunicaţia cu calculatorul. Partea principală a unităţii de discuri este etanşată faţă de exterior pentru a se preveni pătrunderea prafului şi a altor impurităţi. În timpul funcţionării normale, atunci când platanele se rotesc cu viteza nominală, capetele de citire/scriere nu se află în contact cu suprafaţa discurilor. Capetele sunt menţinute la o distanţă extrem de mică de suprafaţa discurilor cu ajutorul unei perne de aer. Dacă în unitatea de discuri ajung particule de praf sau unitatea este supusă la şocuri mecanice, capetele de citire/scriere pot veni în contact cu discurile, ceea ce poate conduce la deteriorarea capetelor de citire/scriere sau la pierderea unor date. Atunci când rotirea discurilor este oprită, capetele de citire/scriere se sprijină pe suprafaţa discurilor, într-o zonă care nu este utilizată pentru memorarea datelor.

4

SISTEME DE INTRARE - IESIRE

4.3.1. Înregistrarea magnetică a informaţiilor

Unităţile de discuri magnetice funcţionează pe baza principiului electromagnetismului. Conform acestui principiu, în jurul unui conductor prin care trece un curent electric se generează un câmp magnetic. Câmpul magnetic astfel creat polarizează materialele magnetice aflate sub influenţa sa. Dacă se schimbă sensul curentului electric, se inversează şi polaritatea câmpului magnetic. Un alt efect al electromagnetismului este acela că într-un conductor aflat într-un câmp magnetic variabil se induce un curent electric. Sensul curentului indus se schimbă odată cu schimbarea polarităţii câmpului magnetic. Aceste efecte ale electromagnetismului fac posibilă înregistrarea informaţiilor pe un disc şi citirea lor ulterioară. Capetele de citire/scriere din unităţile de disc au formă de U, şi au înfaşurate spire prin care poate trece un curent electric. Atunci când circuitele unităţii de disc comandă trecerea unui curent electric prin spire, în capul de citire/scriere se induce un câmp magnetic. Dacă polaritatea curentului electric se schimbă, se schimbă şi polaritatea câmpului magnetic indus. Aceste capete sunt deci electromagneţi a căror polaritate poate fi schimbată foarte rapid. La capătul în formă de U al capului de citire/scriere există un întrefier. Liniile de forţă ale câmpului magnetic din întrefier se curbează spre exterior, trecând prin stratul magnetic al discului aflat sub capul de citire/scriere, deoarece acest strat are o rezistenţă magnetică mai mică decât cea a aerului din întrefier. Câmpul magnetic care trece prin stratul magnetic aflat sub întrefier orientează particulele magnetice în acelaşi sens cu el. Polaritatea câmpului magnetic, şi deci cea a stratului magnetic de pe disc, depind de sensul curentului electric din înfăşurările capului. Pe un disc neînregistrat, polarităţile câmpurilor magnetice ale particulelor materialului magnetic sunt orientate aleator, fiecare din aceste mici câmpuri fiind anulat de unul de polaritate opusă, astfel încât suprafaţa discului este nepolarizată. Particulele aflate imediat sub întrefierul capului de scriere sunt orientate de câmpul magnetic al acestuia în acelaşi sens cu câmpul. După ce se produce orientarea câmpurilor individuale, acestea nu se mai anulează reciproc, şi în regiunea respectivă de pe suprafaţa discului apare un câmp magnetic. Acest câmp este generat de mai multe particule, ele producând un câmp magnetic cumulativ care poate fi detectat. Câmpul magnetic cu o anumită direcţie se numeşte flux magnetic.
5

Capitolul 4 - Echipamente de intrare - ieşire Pe măsură ce discul se roteşte sub capul de scriere, acesta poate induce în stratul magnetic de pe disc un flux magnetic. La inversarea sensului curentului electric din înfăşurarea capului, se inversează polaritatea câmpului din întrefier şi polaritatea fluxului magnetic indus pe suprafaţa discului. Schimbările sensului orientării particulelor magnetice de pe suprafaţa discului se numesc inversări de flux sau tranziţii de flux. Un cap de scriere induce pe disc tranziţii de flux, pentru a înregistra informaţii. Pentru fiecare bit (sau grup de biţi) de informaţie care este scris pe disc, în stratul magnetic sunt induse secvenţe de tranziţii de flux, pe suprafeţe bine determinate, numite celule de tranziţii sau celule de bit. Aceste celule sunt zone de pe suprafaţa discului, determinate de viteza de rotaţie şi de timpul în care capul de scriere induce tranziţiile de flux. Secvenţa specifică de tranziţii de flux dintr-o celulă de tranziţii, utilizată pentru memorarea unui anumit bit sau a mai multor biţi de informaţie, se numeşte metodă de codificare Controlerul de disc preia informaţiile care trebuiesc înregistrate şi le codifică într-o serie de tranziţii de flux de durată bine deterrminată, conform metodei de înregistrare care se utilizează. în timpul procesului de scriere, capului de scriere i se aplică o tensiune, inversarea polarităţii acestei tensiuni ducând şi la inversarea polarităţii câmpului magnetic care se înregistrează. Tranziţiile de flux sunt înscrise în punctele în care se inversează polaritatea înregistrării. La citire, capul de citire nu generează aceeaşi formă de undă care a fost utilizată pentru scrierea pe disc, ci generează câte un impuls de tensiune la fiecare trecere peste o tranziţie de flux. Dacă tranziţia este de la pozitiv la negativ impulsul indus în cap are o tensiune negativă. Dacă tranziţia este de la negativ la pozitiv, impulsul va fi unul de tensiune pozitivă. Deci, în timpul citirii informaţiei de pe disc, capul devine un detector de tranziţii de flux, generând impulsuri de tensiune la fiecare trecere peste o tranziţie de flux.

Figura 3. Procesele de scriere şi citire magnetică Secvenţa de scriere este o formă de undă dreptunghiulară, cu valori p zitive sau negative ale tensiunii, care polarizează continuu stratul magnetic a discului într-un sens sau în celălalt. La trecerea formei de undă de la tensiunea pozitivă la cea negativă sau invers, se schimbă şi polaritatea fluxului magnetic.

6

SISTEME DE INTRARE - IESIRE

4.4. CD-ROM-ul
In 1979, corporaţiile Philips si Sony si-au unit forţele pentru a realiza standardul CD-DA (Compact Disc – Digital Audio). Philips dezvoltase deja playere comerciale de discuri laser, iar Sony avea la active zece ani de cercetare in domeniul înregistrării digitale. Philips a contribuit la cea mai mare parte a proiectului fizic, care a fost similar cu formatul de disc laser creat anterior, cu deosebirea ca utiliza pe disc adâncituri (pits) si zone plate (lands) care sunt citite de un laser. Sony a contribuit la circuitele digital-analogice si in special la schemele de codare digitala si de corectare a erorilor. CD-ROM-ul (compact disc read only memory), este un mediu de stocare optic numai pentru citire bazat pe formatul original CD-DA. In present exista si alte formate, cum ar fi CD-R(CDrecordable) si CD-RW(CD- rewritable) care extind posibilităţile de lucru ale compact discului prin adăugarea funcţiei de scriere. Unităţile de CD-ROM din PC-uri care citesc discuri de date au un aspect foarte asemănător cu un player de CD-uri audio (primele versiuni), principalele modificări fiind la nivelul circuitelor pentru asigurarea funcţiilor de detectare si corectare a erorilor. O unitate CD-ROM standard actuala are dimensiunile aproximative: 42 mm înălţime, 148 mm lăţime si 193 mm lungime. Un CD este realizat dintr-o foaie de policarbonat, de 120 mm in diametru si de 1.2 mm grosime, cu un orificiu de 15 cm in centru. Aceasta “placa de baza” este stanţata sau modelata cu o singura pista fizica in spirala, care începe din interiorul discului si se derulează către exterior. Pista are un pas, sau o separare de spirala, de 1.6 microni. Laserul utilizat pentru a citi discul poate trece chiar prin plasticul transparent, astfel ca suprafaţa stanţata este acoperita cu un strat reflector de metal (de obicei aluminiu) pentru a o face reflectoare. Stratul de aluminiu este apoi acoperit cu un strat protector subţire de lac acrylic, iar in final este adăugata o eticheta. Laserul de citire dintr-o unitate CD este un laser cu lungimea de unda de 780 nanometri si cu o putere de aproximativ 1 miliwatt. Plasticul policarbonat utilizat in disc are un indice de refracţie de 1.55, astfel ca lumina circula prin plastic de 1.55 ori mai lent decât prin aerul înconjurător. Deoarece frecventa luminii care traversează plasticul rămâne aceeaşi, aceasta are ca efect reducerea lungimii de unda in interiorul plasticului cu acelaşi factor. Din acest motiv undele luminoase de 780 nm sunt acum comprimate 780/1.55=500 nm. A patra parte din 500 nm este valoarea de 125 nm, care este egala cu 0.125 microni – înălţimea specificata a adânciturii (pit).

4.4.1. Modul mecanic de operare al unităţii
O unitate CD-ROM funcţionează prin utilizare unui laser pentru a reflect alumina de pe partea inferioara a discului. Lumina reflectata este apoi citita de un fotodetector. Unităţile de CD-ROM funcţionează in felul următor: Dioda laser emite o raza in infraroşu, de putere mica, spre o oglinda reflectorizanta. Servomotorul, la comanda microprocesorului, poziţionează raza pe pista corecta de pe CD-ROM, deplasând oglinda reflectorizanta. Când raza atinge discul, lumina refractata este adunata si focalizata de primele lentile de sub platan, reflectata de oglinda si trimisa spre separatorul de fascicul. Separatorul de fascicul îndreaptă lumina laser întoarsa către alte lentile focalizatoare. Lentilele laser îndreaptă raza laser întoarsa către un fotodetector care converteşte lumina in impulsuri electrice.
7

1. 2. 3. 4. 5.

Capitolul 4 - Echipamente de intrare - ieşire 6. Impulsurile sunt decodificate de către microprocessor si trimise către calculatorul gazda ca date. După ce toate cele 98 cadre sunt compuse pentru un sector (indiferent daca este vorba de semnal audio sau date), informaţiile parcurg un ultim proces de codificare numit EFM (eight to fourteen modulation). Aceasta schema preia fiecare octet si îl converteşte intr-o valoare pe 14 biţi pentru stocare. Codurile de conversie de 14 biţi sunt proiectate astfel încât sa nu conţină niciodată mai puţin de 2 sau mai mult de 10 biţi “0” adiacenţi. Este o forma de codificare RLL (Run Length Limited) denumita RLL 2,10 (RLL x,y unde x = limita minima si y = limita maxima de apariţii consecutive ale valorii 0). Acest cod este destinat sa prevină apariţia şirurilor lungi de “0”, care ar putea fi cu uşurinţa citite eronat, dar si sa limiteze frecventa minima si maxima de tranziţii plasate pe mediul de înregistrare. Având cel puţin 2 sau cel mult 10 biţi “0” care separa biţii “1” in înregistrare, distanta minima dintre bitii “1” este de trei intervale de timp de bit (denumita uzual 3T) iar spatial maxim dintre bitii “1” este de 11 intervale de timp (11T). Deoarece o parte dintre codurile EFM incep si se termina cu un “1” sau cu mai mult de 5 biti de ”0”, intre toate valorile EFM de 14 biti scrise pe disc sunt adaugati trei biti suplimentari numiti biti de fuziune (merge bits). Bitii de fuziune au de obicei valoarea ”0”, dar ar putea sa contine si un “1” daca este necesar sa intrerupa un sir lung de valori “0” adiacente format de valori EFM vecine de cate 14 biti. Pe langa cei 17 biti create pana acum pentru fiecare octet (codul EFM plus bitii de fuziune), la inceputul fiecarui cadru este adaugat un cuvant de sincronizare de 24 biti (plus inca trei biti de fuziune). De aici rezulta un total de 588 biti (73,5 octeti) care sunt inregistrati in realitate pe disc pentru fiecare cadru. Inmultind aceasta valoare cu 98 cadre pe sector se obtin 7203 octeti stocati efectiv pe disc pentru reprezentarea fiecarui sector. Ca urmare, un disc de 74 minute este inregistrat in realitate cu aproximativ 2,4 Gb de ate effective, care, dup ace sunt decodificate complet si separate de codurile de corectare a erorilor si de alte informatii, sunt reduse la aproximativ 682 Mb (650Mib) de date effective pentru utilizator. Datele inregistrate pe cd-uri sunt transferate prin cele 16 fire de date ale magistralei IDE.

4.4.2. Codificarea datelor pe disc

4.4.3. Viteza unităţii CD-ROM
Atunci cand o unitate cauta pe disc un anumit sector de date sau o anumita pista muzicala cauta adresa datelor intr-un cuprins inregistrat in zona de introducere si se pozitioneaza la inceputul acestei zone de date, deasupra spiralei, asteptand ca sirul corect de biti sa treaca prin raza laser. Deoarece CDurile au fost proiectate initial pentru a inregistra date audio, viteza de citire a datelor trebuia sa fie constanta. Pentru a mentine aceasta viteza constanta, datele pe CD-ROM sunt inscrise folosind o tehnica numita viteza liniara constanta (Constant Linear Velocity - CLV). Aceasta inseamna ca pista (deci si datele) se deplaseaza pe deasupra razei laser cu aceeasi viteza, care a fost definite initial ca fiind 1,3 metri pe secunda. Deoarece pista este o spirala care este infasurata mai strans in apropierea centrului discului, discul trebuie sa fie rotit cu viteze diferite pentru a mentine aceeasi viteza liniara a pistei. Cu alte cuvinte, pentru a mentine o viteza liniara constanta, discul trebuie sa se roteasca mai repede la citirea din zona interioara a pistei si mai lent la citirea din zona exterioara a pistei. Viteza de rotaie dintr-o unitate 1x (valoarea de 1,3 metri pe secunda

8

SISTEME DE INTRARE - IESIRE este considerate 1x) variaza de la 540 rpm la citirea zonei de inceput a pistei si pana la 212 rpm la citirea zonei de final a pistei. In cautarea unor performante mai mari, producatorii de unitati au inceput sa mareasca vitezele unitatilor, proiectandu-le astfel incat sa se roteasca mai repede. O unitate care se roteste de doua ori mai rapid a fost denumita 2x, etc. Metoda a functionat fara probleme pana cand s-a ajuns la valoarea 12x, cand unitatile roteau discurile cu viteze de la 2568 rpm la 5959 rpm pentru a mentine o rata constanta de citire a datelor. La viteze mai mari decat aceasta, a devenit dificila construirea unor motoare care sa poata schimba vitezele dintr-un sens in altul atat de repede cat era necesar pentru citirea datelor din zone diferite ale discului. Datorita acestui fapt, cea mai mare parte a unitatilor care au viteze nominale mai mari de 12x rotesc discul cu o viteza fixa sin u cu o viteza liniara. Aceasta este numita viteza unghiulara constanta (constant angular velocity sau CAV), deoarece viteza unghiulara ramane constanta. Unitatile CAV sunt in general mai silntioase decat unitatile CLV, deoarece motoarele nu trebuie sa incerce sa accelereze sau sa incetineasca la fel de repede. Dar o unitate CLV 12x citeste datele la viteza de 1,84 Mb/sec indifferent unde se gasesc datele pe disc. Pe de alta parte, o unitate CAV 16x citeste datele cu viteze de pana la 16x (2,46Mb/sec) din partea exterioara a discului, dar cu viteze mai mici, de pana la 6,9x (1,06 Mb/sec) atunci cand citeste partea interioara a discului. In medie, aceasta ar insemna doar 11,5x sau aproximativ 1,76 Mb/sec. De fapt, media este in realitate prea optimista, deoarece discurile sunt citite din interior (partea mai lenta) catre exterior, iar o medie ar putea fi realizata numai pentru citirea unor discuri complete. Media reala ar putea fi mult mai mica. Concluzia este ca, tinand cont de viteza medie, o unitate CLV 12x ar fi mult mai rapida decat o unitate 16x si chiar 20x. De retinut ca toate vitezele specificate pentru unitatile CAV reprezinta doar vitezele maxime de transfer care pot fi obtinute de unitate, iar aceste viteze pot fi atinse numai cand este citita partea situate in exteriourl discului (partea de sfarsit).

4.5. Monitorul
Monitorul este dispozitivul de afisare asezat deasupra sau langa calculatorul dumneavoastra. Daca va puteti dispensa de imprimanta ,cd-rom sau hard-disc, la monitor nu puteti renunta .Fara el nu ati putea vedea informatiile sau greselile de tastare. Primele microcalculatoare erau cutii lipsite de dispozitivele de afisare video.Se putea observa decat continutul registrelor sistemului prin intermediul unor grupuri de leduri, iar rezultatele finale erau tiparite. Interactiunea cu calculatorul se realiza prin intermediul unui terminal de tip masina de scris. Prin introducerea monitorului calculatorul a devenit atragator pentru un public tot mai larg. Subsistemul video al calculatorului consta din doua componente principale: • Monitorul • Adaptorul video sau placa video Ca orice dispozitiv aferent calculatoarelor, monitorul necesită o sursă de alimentare. Semnalele care ajung la monitor provin de la partea video a circuitelor electronice din interiorul calculatorului. Unele sisteme, cum ar fi cele de dip Low Profile(LPX) contin aceste circuite pe placa de baza. Totusi, majoritatea calculatoarelor folosesc o placa video separata.

4.5.1. Monitorul CRT
Exista cateva tehnologii de fabricare a monitoarelor.cea mai raspandita este cea bazata pe tubul catodic CRT (cathode ray tube), adica aceeasi cu cea folosita la televizoare.

9

Capitolul 4 - Echipamente de intrare - ieşire

Tubul catodic consta dintr-un tub vidat, din sticla. La unul din capete se afla un tun de electroni, iar la celalalt, un ecran acoperit cu un strat de fosfor. Ecranele cu fosfor se livreaza in doua variante:curbe si plate. Ecranul traditional este curbat atat pe verticala cat si pe orizontala. Unele modele folosesc tubul Trinitron, care este curb numai pe orisontala, iar pe verticala este plat. Prin incalzire tunul emite un fascicul de electroni care sunt atrasi de capatul opus al tubului. Pe parcurs o bobina de deflexie si de control al focalizarii conduce fasciculul catre un anumit punct de pe stratul de fosfor. Lovit de raza de electroni, fosforul devine luminos, iar aceasta lumina este ceea ce vedeti cand priviti televizorul sau ecranul calculatorului.

Fosforul are o proprietate, numita remanenta, care permite ca lumina emisa sa ramana vizibila pe ecran o anumita perioada. Frecventa de baleiere trebuie sa fie adecvata remanentei, deoarece altfel imaginea palpaie (daca remanenta este prea mica) sau sa apara imagini „fantoma” (daca remanenta este prea mare). Raza de electroni se misca foarte rapid si baleiaza ecranul de la stanga spre dreapta,pe linii, de sus pana jos, dupa un model numit rastru. Rata de baleiere pe orizontala se refera se refera la viteza cu care fasciculul de electroni se misca de-a latul ecranului.

10

SISTEME DE INTRARE - IESIRE In timpul baleierii,raza loveste stratul de fosfor in punctele in care trebuie sa apara o imagine pe ecran.Intensitatea ei variaza pentru a produce diferite grade de luminuozitate. Pentru a mentine o imagine, fasciculul de electroni trebuie sa baleieze ecranul continu,intrucat efectul de luminuozitate se diminueaza aproape imediat. Aceasta tehnica se numeste reimprospatarea (redesenarea) ecranului Cele mai multe monitoare au o rata de reimprospatare (numita frecventa de baleiere pe verticala) in jur de 70 de Hz, ceea ce inseamna ca imaginea de pe ecran este reimprospatata de 70 de ori pe secunda. Ratele de reimprospatere scazute provoaca palpairea imaginii si obosirea ochiilor. Cu cat rata de reimprospatare este mai mare, cu atat este mai bine pentru ochi. Este important ca frecventele de baleiere pentru care a fost proiectat monitorul dumneavoastra sa se potriveasca cu cele furnizate de placa video. În cazul în care acestea nu se potrivesc, nu veti avea imagine. Unele monitoare au o frecventa de baleiere fixa. Altele pot accepta o gama de frecvente, numite monitoare cu frecvente multiple :multisync, multifrecventa, multiscan, autosincrone, autotracking. In primii ani dupa aparitia calculatoarelor, posesorii nu aveau la dispozitie decat doua tipuri de sisteme video:adaptorul video CGA(color) şi adaptorul MDA (monocrom). Monitoarele monocrome produc imagini de o singura culoare, portocalie (cea mai raspandita) urmata de alb si verde .Culoarea afisata de monitor este determinata de culoarea fosforului de pe ecranul tubului catodic. Unele monitoare cu fosforul alb pot furniza mai multe nuante de gri. Monitoarele color folosesc o tehnologie mai sofisticata decat cele monocrome. In timp ce un tub monocrom foloseste un singur tun electronic, unul color contine trei tunuri, dispuse in forma de triunghi, intr-o configuratie delta. In locul fosforului portocaliu, ecranul contine triade de luminofori, constand in pete de fosfor rosu, verde si albastru, care pot fi activate de tunurile electronice corespunzatoare. Aceste trei culori primare pot fi amestecate pentru a obtine toate celelalte culori. Transferul de date Rezolutia monitorului reprezinta cantitatea de detalii pe care o poate reda un monitor. Aceasta cantitate se exprima prin numarul de elemente de imagine orizontale si verticale,numite pixeli, care apar pe un ecran. Cu cat numarul de pixeli este mai mare, cu atat imaginiele au mai multe detalii. Rezolutia necesara depinde de aplicatie. Programele de prelucrare a textelor cer o rezolutie mica, in timp ce alpicatiile grafice (programele Windows) au nevoie de o rezolutie mai mare. Exista mai multe rezolutii standard pentru adaptoarele grafice: REZOLUTIA STANDARD • • • • 640X480 800X600 1.024X768 1.280X1.024 VGA SVGA XGA UVGA
11

Capitolul 4 - Echipamente de intrare - ieşire • VGA= Video Gaphics Array • SVGA=Super VGA • XGA=eXtended GA • UVGA=Ultra VGA Elementul de imagine pentru un monitor monocrom este suprafata de fosfor de pe ecran lovita de fasciculul de electroni,in timp ce in cazul unui monitor color elementul de imagine este o triada de luminofori, adica trei suprafete de fosfor. Diferenta impune un nou parametru, distanta dintre puncte (dot pitch), care se aplica numai monitoarelor color. Distanta dintre puncte este distanta masurata in milimetrii intre triadele de luminofori. Ecranele cu distanta dintre puncte mai mica au triadele plasate la distante mai mici, imaginea este mai precisa. Valorile mici ale distantei dintre puncte permit monitorului realizarea unor imagini mai precis conturate. Monitoarele in prezent au distanta intre puncte 0.25mm. Exploatarea ecranelor poate fi facuta in doua moduri: intretesut sau neintretesut. In modul neintretesut (noninterlaced), fasciculul de electroni baleiaza ecranul tot de sus pana jos,parcurcand intregul ecran dintr-o singura trecere. In modul intretesut (interlaced), fasciculul baleiaza ecranul de sus pana jos in doua treceri, parcurgand mai intai liniile impare si apoi cele impare. Aceasta tehnica reimprospateaza eranul mai repede si produce imagini mai stabile. Cele mai multe placi video se conformeaza unuia din standardele: MDA, CGA, VGA, SVGA, XGA. Cel mai simplu tip de afisaj este adaptorul monocrom MDA. Poate afisa numai text la o rezolutie de 720X350 de pixeli. Adaptorul nu are posibilitati grafice intrinseci. Adaptorul poate afisa un numar de 4 culori care se refera la atribute de afisare: normal, supraluminat, video invers, subliniat. Transferul se realizeaza printr-un conector de afisaj monocrom cu 9 pini: • pin1-masa • pin2-masa • pin3-neutilizat • pin4-neutilizat • pin5-neutilizat • pin6-intensitate+ • pin7-video+ • pin8-orizontala+ • pin9-verticalaAdaptorul SVGA furnizeaza posibilitati sporite fata de celelalte adaptoare, rezolutii 800X600 1.024X768. Din punct de vedere fizic transferul se realizeaza prin conectori cu 15 pini: • pin1-rosu • pin2-verde • pin3-albastru • pin4-monitor id2(ground) • pin5-masa digitala • pin6-masa analogica rosu • pin7-masa analogica verde • pin8-masa analogica albastru • pin9-cheie (no pin) • pin10-masa sincronizare • pin11-monitor id0 (rezervat) • pin12-monitor id1 (rezervat) • pin13-sincronizare orizontala • pin14-sincronizare verticala • pin15-monitor id3 (rezervat)
12

SISTEME DE INTRARE - IESIRE

4.5.2. Monitorul LCD (liquid crystal display)
Cristalele lichide au fost descoperite in 1888 de catre botanistul austriac Friedrich Reinitzer. 80 de ani au trecut pana cand RCA a realizat primul display LCD experimental in 1968. De atunci, firmele implicate in constructia de display-uri LCD au imbunatatit constant produsul, ducandu-l spre o complexitate tehnica uimitoare. Monitoarele LCD au în general o rezoluţie mai slabă decât cele CRT, dar nu emit radiaţii si consumă mult mai puţin (aproximativ 5 watt faţă de 100 watt la cele cu tub) ceea ce le face mai scumpe. Acestea au o tehnologie diferită de funcţionare: un fascicul de lumină trece prin filtre speciale care o transforma în culorile roşu, verde sau albastru, iar electricitatea le direcţionează la fiecare celulă. Aceste celule conţin câte 3 pixeli care au valorile culorilor roşu, verde şi albastru (RGB). În general monitoarele cu ecran plat sunt folosite la laptopuri pentru că ocupă mult mai puţin spaţiu, dar producătorii de monitoare au preluat tehnologia şi au realizat monitoare LCD şi pentru desktop-uri. Diagonala ecranului la monitoarele LCD poate ajunge până la 42 inch în timp ce la monitoarele CRT ajunge până la 21 inch. În general rezoluţia la ambele monitoare poate ajunge până la 1280x1024 de pixeli, dar sunt şi monitoare performante care pot ajunge până la rezoluţia de 1600x1280 de pixeli. Tehnologiile de realizare a ecranelor LCD au la bază două tehnologii majore: DSTN si TFT. Tehnologia DSTN (Dual-Scan Twisted Nematic) constă în utilizarea mai multor straturi. Primul este o fâşie de sticlă învelită cu un strat de oxid de metal. Materialele folosite sunt foarte transparente pentru a nu diminua calitatea imaginii. Sub acest strat este unul de electrozi care alimentează elementele necesare pentru funcţionarea monitorului. Apoi este un strat de şanţuri mici care aliniază cristalele lichide în poziţia corectă. Culorile văzute pe ecran sunt rezultatul filtrării fasciculului de lumină prin filtrul de culoare. Totuşi acest proces este lent şi de aceea la o mişcare mai rapidă a cursorului pe ecran sau la vizionarea unui film monitorul nu poate ţine pasul şi apar dâre. Multe companii au adoptat tehnologia TFT (Thin Film Transistor) care se bazeaza pe o matrice activa si are stralucire si contrast foarte bune, comparatbile cu cea a ecranelor CRT. Această tehnologie face dârele să dispară prin folosirea unui tranzistor pentru fiecare culoare a fiecărui pixel. Viteza de răspundere la comenzi este de aproximativ 25ms. Monitoarele TFT pot fi mult mai subţiri decât cele DSTN ceea ce le face şi mai uşoare. Rata de reafişare a lor se apropie foarte mult de cea a monitoarelor CRT, ea fiind de aproximativ 10 ori mai mare decât cea a monitoarelor DSTN. Pentru o rezoluţie de 1024x768 sunt folosiţi 2,359,296 tranzistori. Aceştia trebuie aranjaţi pe o matrice din silicon scumpă într-o singură bucată. Prezenţa oricărei impurităţi poate afecta tot sistemul de tranzistoare şi deci asta duce la mari pierderi. Acest lucru afectează preţul care devine destul de ridicat. Toate ecranele LCD fabricate in prezent dispun de asa numita functie "auto-adjust" care intra in actiune automat la schimbarea rezolutiei si regleaza imaginea pentru o afisare optima. Ecranele LCD nu mai au acele functii de ajustare a geometriei imaginii (la monitoarele CRT, cu cat sunt mai multe cu atat modelul respectiv e mai valoros) dat fiind ca nu mai este nevoie de ele. In practica rezultatele sunt aproape perfecte, singurele dezavantaje fiind urmatoarele: • în momentul schimbarii rezolutiei, imaginea incepe sa joace pentru cateva secunde, timp in care functia de auto-adjust calculeaza parametrii optimi de afisare • în cazul in care imaginea afisata pe ecran in momentul imediat urmator schimbarii rezolutiei contine suprafete mari de culoare neagra, functia auto-adjust poate calcula gresit parametrii, dat fiind ca aceasta se bazeaza tocmai pe pixelii aprinsi, in diverse culori, ai imaginii afisate. In practica insa, momentele in care auto-adjust-ul nu are rezultatele cele mai bune sunt destul de rare, existand oricum posibilitatea realizarii manuale a acestei functii. Unul din avantajele ecranelor LCD constituie in acelasi timp si un dezavantaj, oricat de ciudat ar putea suna acest lucru. Toate ecranele LCD dispun de o rezolutie implicita, la care calitatea imaginii este optima, trecerea in oricare alta rezolutie (mai mica, deoarece mai mare nu se poate) ducand la
13

Capitolul 4 - Echipamente de intrare - ieşire degradarea calitatii imaginii, gradul acestei degradari variind de la producator la producator. Explicatia este destul de simpla si tine tocmai de tehnologia folosita de ecranele LCD: practic, fiecarui pixel afisat pe ecran îi corespunde un element fizic (cristal lichid) al ecranului respectiv. Spre comparatie, in cazul monitoarelor CRT, pixelii sunt creati in urma bombardarii unui strat de fosfor cu raze de electroni. Diferentele din abordarea afisarii imaginii duc la o calitate superioara a imaginilor in cazul ecranelor LCD, cu pixeli clari, cu o focalizare perfecta. Acesta este si motivul pentru care, indeosebi la rezolutiile inalte, textul se poate citi mult mai usor pe un ecran LCD decat pe unul CRT. Revenind acum la fateta negativa a acestui aspect, faptul ca exista un numar fix de cristale lichide in cazul unui ecran LCD, face dificila afisarea unor rezolutii mai mici decat cea standard. Practic, in cazul unui ecran LCD de 17" rezolutia standard este de 1280x1024, ceea ce inseamna ca un astfel de ecran are 1280 cristale lichide pe orizontala si 1024 pe verticala. Pentru afisarea unei rezolutii de 1024x768 se recurge la interpolare, adica aproximarea culorii pentru anumiti pixeli pentru a simula faptul ca exista doar 1024 cristale lichide pe orizontala si 768 pe verticala. Calitatea imaginii in astfel de rezolutii depinde exclusiv de tehnologia de interpolare folosita de producator si variaza de la foarte buna la foarte slaba. Una din marile probleme ale ecranelor LCD in anii trecuti a fost latenta imaginii, mai exact timpul in care un cristal lichid isi schimba starea. Majoritatea producatorilor includ in specificatiile lor timpul in care un cristal lichid trece din starea aprins in cea de stins si dupa aceea inapoi la aprins. Acest timp se situeaza in prezent intre 16ms si 40ms si corespunde unei rate de afisare a imaginilor intre 62fps si 25fps. Aici este insa loc de multe discutii, dat fiind ca acesta este aproape cazul ideal (cazul ideal ar fi acela al trecerii doar din aprins in stins sau invers). In practica insa, trecerea unui cristal lichid de la o anumita nuanta a unei culori la alta nuanta a unei culori dureaza mult mai mult (cateodata chiar de 5 ori mai mult) ceea ce duce la asa numitul efect de "ghosting", adica de umbra a unui obiect care se misca pe ecran cu viteza. Cel mai usor acest efect de ghosting se observa in cazul lucrarii pe un fundal deschis la culoare (alb) pe care se misca un obiect inchis la culoare (cursorul mouse-ului sau un text care defileaza). Din acest motiv s-a spus despre ecranele LCD ca nu se preteaza la jocuri, acestea fiind situatii in care imaginile se succed cu rapiditate, existand cel putin teoretic premizele aparitiei efectului de ghosting. In practica insa, in jocuri nu sunt diferente bruste de culoare ceea ce reduce din efectul de ghosting. Este astfel posibil ca in multe jocuri sa nu se remarce diferenta dintre un LCD si un CRT chiar si in cazul unei latente de 25ms. Unghiul de vedere mai mic decat in cazul CRT-urilor este un alt dezavantaj al LCD-urilor, insa in ultima vreme acesta a crescut foarte mult, existand chiar ecrane LCD care se lauda cu un unghi de vedere de 180 de grade. Chiar si la aceste ecrane insa, imaginea isi pierde din calitatile sale de luminozitate, contrast si culoare in momentul in care este privita la un unghi mai mare de 0 grade, depinzand de fiecare producator gradul de modificare a acestor caracteristici. Este mult mai complicat de construit un display LCD decat o “foaie” de cristale lichide. Urmatoarele argumente vin sa sustina aceasta teorema: • lumina poate fi polarizata; • cristalele lichide pot transmite si schimba lumina polarizata; • structura cristalelor lichide poate fi schimbata de curentul electric; • exista substante transparente care pot conduce curentul electric; Un display LCD este un echipament periferic care foloseste aceste patru lucruri intr-o modalitate surpinzatoare.Pentru a crea un LCD,se iau doua bucati de sticla polarizata. Un polimer special care creeaza particule microscopice la suprafata este frecat de partea sticelei care nu are pelicula polarizata pe ea. Particulele trebuie sa fie in aceeasi directie ca pelicula polarizata. Se adauga un strat de cristale lichide pe unu dintre filtre. Particulele vor obliga moleculele sa se alinieze in aceeasi directie cu orientarea filtrului. Urmatorul pas este adaugarea celei de-a doua bucati de sticla cu pelicula polarizata la unghiul potrivit cu prima piesa. Cand lumina loveste primul filtru, aceasta este polarizata. Moleculele din fiecare strat ghideaza lumina pe care o primesc spre urmatorul strat. In timp ce lumina avanseaza prin straturile de cristale lichide, moleculele schimba planul de vibratie al lumii pentru a se potrivi cu unghiul lor. Cand lumina atinge partea indepartata a substantei de
14

SISTEME DE INTRARE - IESIRE cristale lichide ,ea vibreaza la acelasi unghi cu ultimul strat de molecule. Daca ultimul strat se potriveste cu al doilea filtru polarizat de sticla, atunci lumina trece prin el. Daca aplicam o incarcatura electrica moleculelor de cristale lichid, ele se rearanjeaza. Dupa reorganizare, ele schimba unghiul de trecere a luminii prin ele astfel incat sa nu corespunda cu unghiul filtrului polarizat.. In consecinta,lumina nu poate patrunde prin aceasta portiunea a LCDului, ceea ce face aceasta regiune mai intunecata decat celelalte zone. De exemplu, constructia celui mai simplu posibil display LCD cu un singur electrod rectangular. Este format dintr-o oglinda la spate, de unde proprietatea de reflexie. Apoi este adaugata o suprafata de sticla cu pelicula polarizata in partea de jos, urmata de un plan de electozi facut din indium-tin la cap. Un plan obijnuit de elctozi imbraca intreaga arie a display-ului. Deasupra acestora este stratul de substanta de cristale lichide. Ulterior se adauga urmatoarea piese de sticla cu un electrod in forma rectangulara in partea de jos, iar sus, o alta pelicula polarizata. Toate acestea la unghiul corect fata de prima parte. Electrodul este conectat la o susra de curent, o baterie de exemplu. Cand nu este curent, lumina care intra prin partea din fata a LCD-ului loveste oglinda si se intoarce. In cazul in care bateria ofera curent electrodului, cristalele lichide dintre planul de electrozi si electrodul in forma rectangulara se rearanjeaza si blocheaza lumina in acea regiune sa avanseze. Asta face ca LCD-ul sa arate forma rectangulara ca o zona neagra. De notat ca LCD-ul nostru simplu are nevoie de o sursa externa de lumina. Materialele din cristale lichide nu emit lumina singure! Un exemplu ar fi un ceas cu display LCD, numerele apar unde electrozi mici incarca cristalel lichide si fac straturile sa se reorganizeze astfel ca lumina nu este transmisă prin pelicula polarizata. Comparatie a avantajelor si dezavantajelor LCD-urilor fata de CRT-uri
Avantaje CRT Pret scazut Un ecran de 17" are o Egalitate intre specificatii si diagonala vizibila de doar realitate in ceea ce priveste 15,8" in cele mai multe diagonala ecranului cazuri Geometrie perfecta a Probleme de geometrie, imaginii, pe toata suprafata convergenta, mai ales in ecranului colturi In rezolutia implicita, calitatea imaginii este excelenta, mai ales in cazul afisarii unui text Avantaje LCD Dezavantaje CRT Dezavantaje LCD Pret ridicat, chiar daca ritmul de scadere al acestuia este mai mare decat la CRT

Gama larga de rezolutii accesibile fara pierderea calitatii imaginii In cazul existentei unei probleme cu monitorul, garantia o acopera de obicei

Exista o singura rezolutie implicita, in cazul celorlalte (mai mici) realizandu-se interpolarea pixelilor Exista riscul existentei pixelilor morti, risc neacoperit in totalitate de garantie

Dimensiuni si greutate extrem de reduse Imaginea este practic afisata instantaneu Ergonomie deosebita care are ca rezultat o imagine foarte odihnitoare Puritate foarte buna a culorilor, insotite de o un negru corect Alb curat si stralucitor, care chiar daca poate fi deranjant la inceput, devine ceva extrem de util si obisnuit dupa o vreme

Dimensiuni si greutate din ce in ce mai mari, odata cu cresterea diagonalei ecranului Latenta imaginii Ratele mici de reimprospatare ca si radiatiile electromagnetice sunt obositoare pentru ochi Numarul de culori afisabile este de obicei mai mic decat la CRT-uri

15

Capitolul 4 - Echipamente de intrare - ieşire
Consum redus de curent (25- Consum mare de curent (6045W in stare normala de 160W in stare normala de functionare) functionare) Caracteristicile imaginii sunt neschimbate, indiferent de unghiul din care este privit ecranul Luminozitate foarte buna (intre 200 si 600 cd / m2 Contrast bun (intre 350:1 si 700:1) Se poate intampla ca luminozitatea ecranului sa fie mai mare in centru Nu este afectat de campurile Este afectat de campurile electromagnetice electromagnetice Luminozitate relativ scazuta (intre 80 si 120 cd / m2 Contrast mediu (de obicei intre 200:1 si 450:1, chiar daca exista si modele care ajung la 600:1) Se poate intampla ca luminozitatea ecranului sa fie mai mare pe laturi decat in centru Cu cat unghiul in care este privit ecranul creste, cu atat calitatea imaginii (contrast, luminozitate) are de suferit

4.6. Imprimanta laser
Termenul de imprimantă cu cerneală este foarte descriptiv asupra principiului după care funcţionează: aceste imprimante afişează pe hârtie o imagine prin folosirea unor jeturi subţiri de cerneală. Termenul de imprimantă laser pe de altă parte, este un pic mai misterios –cum poate o rază laser, o undă de lumină, să scrie litere şi să deseneze imagini pe hârtie? În anii 1980, imprimantele matriciale şi cele laser erau predominante, tehnologia imprimantelor cu jet nu se dezvoltase suficient decât după anii 1990. Imprimanta laser a fost introdusă de Hewlett-Packard în 1984, bazat pe tehnologia dezvoltată de Canon. Funcţiona într-un mod similar cu un fotocopiator, diferenţa majoră era sursa de lumină. Un fotocopiator scanează pagina cu o lumină strălucitoare, pe când la imprimanta laser sursa de lumină este bineînţeles laserul. Procesul ulterior este în mare măsură acelaşi, lumina crează o imagine electrostatică pe un fotoreceptor, care atrage tonerul după forma electrostatică încărcată. Imprimantele laser au devenit repede populare datorită înaltei calităţi şi preţurilor destul de reduse. Prin dezvoltarea pieţei producătoare de lasere, competiţia dintre firme a devenit acerbă, iar preţurile au scăzut. Calitatea a crescut, rezoluţia de 600 dpi devenind standard, iar mărimea imprimantelor s-a redus, fiind folosite şi pentru interes personal, acasă. Principiul primar de funcţionare îl constituie electrizarea statică, acelaşi energie care face ca hainele să se electrizeze. Electrizarea statică face ca obiectele care au atomii electrizaţi în mod opus să se atragă. O imprimantă laser foloseşte acest fenoment ca un fel de „lipire temporară”. Elementul principal al sistemului îl constituie fotoreceptorul. Un tambur care se roteşte şi este construit din material fotoconductibil este descărcat electric de fotonii de lumină. Iniţial, tamburului îi este dat o sasrcină pozitivă, prin încărcarea de către fir electric. În timp ce tamburul se învârte, o rază laser este aplicată pe suprafaţă lui pentru a descărca anumite puncte. În acest mod, laserul „scrie” literele şi imaginile care vor fi printate şi crează o imagine electrostatică. Sistemul poate funcţiona şi cu sarcinile electrice încărcate invers, adică o imagine electrostatică pozitivă pe o suprafaţă negativă. După ce modelul a fost imprimat, imprimanta aplică tamburului un toner încărcat pozitiv, o fină şi neagră pudră. Fiind încărcat pozitiv, tonerul se lipeşte de zonele negative de pe tambur, zona
16

4.6.1. Procesul de bază

SISTEME DE INTRARE - IESIRE pozitivă fiind considerată “fundalul”. Cu praful imprimat pe model, tamburul este rotit pe o foaie de hârtie, foaie ce este puternic electrizată negativ de către firul electric. Este încărcat negativ mai puternic decât imaginea electrostatică, astfel ca hârtia să poată să atragă praful de toner. Foaia se mişcă cu aceeaşi viteză cu tamburul, imaginea este preluată cu exactitate. Pentru a împiedica hartia să se agaţe de tambur, este descărcată imediat ce a preluat tonerul.

În final, imprimanta trece hârtia printr-o pereche de role încălzite numit fuser. Când hârtia trece printre aceste role, praful se topeşte, fuzionând cu fibrele hârtiei. Fuser-ul roteşte hârtia spre tava de ieşire, şi utilizatorul obţine pagina printată. Foaia este încălzită şi ea însăşi, de aceea paginile ies calde din imprimanta laser sau din xerox. Ce împiedică pagina să fie arsă? În primul rând viteza – hârtia trece printre rolele incandescente îndeajuns de repede pentru a nu se încinge prea tare. După depozitarea tonerului pe pagină, tamburul este descărcat de către imaginea electrostatică de către o sursă de lumină numită lampă de descărcare. În mare, aceştia sunt paşii pentru obţinerea unei foi printate de o imprimantă laser. Desigur combinarea tuturor paşilor implică un proces complex. Controlerul imprimantei este cel care realizează legătura dintre calculator şi imprimantă. Comunică cu computerul gazdă printr-un port de comunicare: port paralel sau USB. La declanşarea comenzii de printare, imprimanta negociază cu calculatorul gazdă cum vor fi transmise datele. Controllerul ar putea să pornească şi să oprească computerul periodic pentru a procesa informaţiile pe care le primeşte.

4.6.2. Controllerul

17

Capitolul 4 - Echipamente de intrare - ieşire

O imprimanta laser obisnuita are mai multe porturi de comununicare diferite

Într-un birou, o imprimantă laser este de obicei conectată la mai multe calculatoare, astfel ca utilizatori diferiţi să poată printa documente de pe unităţile lor. Controller-ul se ocupă de fiecare separat, dar poate “conversa” simultan cu mai multe cereri. Această abilitate de a se ocupa de mai multe cereri în acelaşi timp au crescut popularitatea imprimantelor laser. Pentru ca controller-ul imprimantei şi calculatorul gazdă să poată comunica, trebuie să aibă acelaşi PDL (page description language). La primele imprimante, calculatorul trimitea un text special cu un cod simplu ce dădea imprimantei informaţiile primare, fiind puţini fonţi, procesul era direct. Dar acum sunt sute de fonţi diferiţi şi grafice complexe. Pentru a putea procesa aceste informaţii, imprimanta trebuie să cunoască un limbaj de comunicare mai avansat. Limbajul primar cel mai cunoscut acum este al lui Hewlett Packard numit Limbajul de Comandă al Imprimantei sau PCL (Printer Command Language) şi cel dezvoltat de Adobe numit Postscript. Aceste 2 limbaje descriu imaginea folosind un vector –valori matematice pentru figuri geometrice în locul folosirii punctelor (imagine bitmap). Imprimanta preia acest vector de imagine şi îl transformă într-o pagină bitmap. Prin acest sistem, imprimanta poate primi imagini elaborate cât mai complex, primind orice fel de font sau de imagine. Fiindcă imprimanta este cea care crează imaginea bitmap, poate folosi rezoluţia maximă a imprimantei. În 1985 firma Adobe anunţa apariţia limbajului de descriere a paginii numit PostScript. PostScript Level 1 descrie pagina printr-un vector care este trimis la imprimantă care converteşte în puncte la calitatea cea mai buna a echipamentului. Un monitor ar putea avea 75dpi, un laser 300 dpi şi un echipament de setarea a imaginii lucrând la 2400 dpi. Ele lucrează independent, de unde si acrinimul WYSIWYG (What You See Is What You Get.) Ulterior a apărut Post Script Level 2 ce făcea compresia datelor mai rapidă, şi conţinea algoritmi de îmbunătăţire pentru memorare şi utilizare a resurselor. Ultima variantă de la Adobe este Post Script Extreme. PCL -ul (Printer Command Language) apărut în anii 1970 nu au căutat să deţină licenţa ca PostScriptul licenţiat de la Adobe. De aceea multe imptrimante au fost dotate cu acest limbaj. Iniţial a fost creat pentru imprimante matriciale, iar varianta PCL 3 permitea doar cerinţe de printare simple. PCL 5, dezvoltat pentru LaserJet III oferea opţiuni similare cu PostScript cu dimentsiuni pentru fonţi prin sistemul Intellifont şi un vector de descriere, îndeplinându-se principiul WYSIWYG. Prin folosirea unor metode de compresie, s-a mărit viteza de printare faţă de PostScript Level 1, iar PCL 5e a implementat şi comunicarea bi-direcţională. În 1996 HP a anunţat PCL 6. Este flexibil, un limbaj de control orientat pe obiecte, adaptat pentru procesare grafică rapidă şi oferind facilităţi pentru WYSIWY. Unele imprimante folosesc o interfaţă grafică avansată numită GDI (graphical device interface) în locul PCL-ului. Prin acest sistem, calculatorul gazdă este cel care crează matriţea cu puncte, pentru ca controller-ul să nu proceseze totul. Dar în majoritatea imprimantelor, controller-ul este cel care trebuie să organizeze toate datele pe care le primeşte de la calculator. Aceasta include toate comenzile cum ar fi: ce hârtie să folosească, cum să formateze pagina, ce font să folosească, etc. Pentru ca controller-ul să lucreze cu aceste date, trebuie ca să le structureze într-o anumită ordine. Setează marginile textului, aranjează cuvintele, şi ocuparea imaginilor în pagină. Odată pagina aranjată, procesorul tipar de imagine RIP (raster image processor) preia datele şi le transformă întro matrice de puncte minuscule. Imprimanta are nevoie de pagină în această formă pentru ca laserul să poată scrie pe tamburul fotoreceptor. La majoritatea imprimantelor laser, controller-ul salvează datele de cerere de printare în memoria lui. Aceasta permite controller-ului să pună cererile de printare într-o stivă ca apoi să le rezolve pe
18

SISTEME DE INTRARE - IESIRE rând. În acest fel salvează şi timp atunci când printează copii multiple ale aceluiaşi document deoarece calculatorul trimite o singură dată informaţiile. Sistemul de scanare cu laser este cel care desenează pagina, de aceea trebuie să fie extrem de precis. Folosind laserul, raza se mişcă pe tambur, şi emite un puls de lumină pentru fiecare punct care trebuie printat, şi nu emite puls pentru fiecare punct care este un spaţiu gol. Este folosită o oglindă mobilă care reflectă unda de lumină. Pe măsură ce oglinda se mişcă, reflectă lumina printr-o serie de lentile. Acest sistem compensează pentru distorsiunea imaginii cauzată de distanţa variabilă dintre oglindă şi punctele de pe tambur. Asamblul laserului se mişcă într-un singur plan, orizontal. După fiecare scanare orizontală, imprimanta mişcă tamburul fotoreceptor mai sus cu un grad, pentru a trece la următoarea linie orizontală. Un mic motoraş sincronizează toate acestea perfect, chiar la viteze ameţitoare. Cu cât este mai mică rotirea, cu atât este mai mare rezoluţia. Pasul de rotire la imprimantele moderne este în mod curent 1/600 dintr-un inch, deci 600 dpi rezoluţia pe verticală. Pentru o rezoluţie mai mare laserul deci trebuie oprit si pornit mai repede, Unele imprimante folosesc LED-uri (light emitting diodes) diode emiţătoare de lumină în locul unui singur laser. Fiecare punct are dedicată o lumină, ceea ce înseamnă că imprimanta are o singură rezoluţie pentru printare. O imprimanta cu rezoluţia de 600dpi va avea 600 leduri pe inch. Pentru printarea color, există 4 rânduri de led-uri: albastru,roşu,galben şi negru. Sistemul cu led-uri este mai ieftin, fiind mai uşor de proiectat, dar produc rezultate inferioare.

4.6.3. Laserul

4.6.4. Avantajele imprimantei laser

Imprimantele laser au numeroase avantaje faţă de tehnologia rivală prin jet de cerneală. Produc o calitate mult mai bună şi sunt concepute pentru un termen mai lung –adică scot mai multe pagini pe lună la un cost mai redus pe pagină faţă de cele pe cerneală. Deci pentru un birou de afaceri ar putea fi cea mai bună opţiune. Un alt avantaj, fie pentru acasă sau pentru serviciu, este lucrul cu plicul, carduri şi alte materiale speciale. Având în vedere cum se construieşte o imprimantă laser, este uimitor preţul mic din oferte. În multe moduri, componentele din imprimanta laser sunt mai sofisticate decât cele dintr-un calculator. RIP (raster image procesor) e comparabil cu un procesor avansat, ingineria pentru oglinzi este foarte avansată, şi folosirea de toner-uri şi chimicale care nu afectează mediul este fascinantă. Pentru obţinerea imaginii de pe screenul calculatorului pe foaia necesită o combinaţie interesantă de electronică, optică, mecanică şi chimie. Principale avantaje sunt deci: viteza, precizia şi economia. Un laser se poate mişca foarte rapid, deci poate “scrie” cu viteză superioară faţă de cea pe cerneală. Pentru că raza laser are un diametru fix, invariant, poate desena mai precis, fără exces de cerneală. Chiar dacă sunt mai scumpe decât imprimantele cu cartuş, întreţinerea lor este mai ieftină –tonerul este mai ieftin şi durează mai mult, faţă de cartuşele pe cerneală. De aceea pentru birouri este mult mai indicat acest gen de imprimantă. Deja preţurile sunt doar puţin mai ridicate faţă de imprimantele pe cerneală. Odată cu avansarea tehnologiei, preţurile la imprimantele laser vor continua să scadă, în timp ce performanţele vor continua să crească. Imprimantele laser au fost concepute iniţial pentru a printa scrisori (în special corespondenţă de afaceri). În anii ´90 s-a încercat îmbunătăţirea vitezei pentru imprimantele laser şi mai puţin folosirea lor pentru obţinerea fotografiilor de calitate superioară. Doar din 1998 imprimantele color laser au putut concura în mod serios cu imprimantele cu jet în calitate pentru fotografii. Această dezvoltare lentă în tehnologie s-a datorat faptului că imprimantele laser au fost concepute pentru birouri de afaceri, unde imaginile color erau necesare pentru grafice şi tabele, nu pentru fotografii. Costul pentru printarea color este destul de ridicat, dar calitatea imaginii este foarte bună. Trebuie ca foaia de printat să nu fie foarte groasă, imprimantele cu laser nu pot printa pe foi cu grosime mare. Pe lângă viteza superioară faţă de imprimantele cu jet, un alt avantaj îl reprezintă menţinerea culorilor şi calităţii unei fotogrofii obţinută cu o imprimantă laser. Prin faptul că tonerul
19

4.6.5. Imprimanta laser color

Capitolul 4 - Echipamente de intrare - ieşire este imprimat datorită căldurii, şi nu prin absobţie ca la imprimantele cu jet, pot fi obţinute imagini color de înaltă calitate. Noile imprimante laser produc şi fotografii lucioase, faţă de cele mai vechi care obţineau doar imagini mate prin variaţia forţei de presiune aplicată şi a căldurii. În esenţă, imprimantele color funcţionează în acelaşi mod ca cele monocromatice, doar că trec prin procesul de printare de 4 ori: o dată pentru albastru, o dată pentru roşu (magenta), o dată pentru galben respectiv negru. Combinând aceste 4 culori în diferite proporţii, se poate genera întreg spectrul de culori. Sunt mai multe metode: fie 4 tonere care sunt ataşate pe o roată ce se învârte, fie cele mai scumpe care au un asamblu de laser, tambur şi toner pentru fiecare culoare. Exemple de firme care produc imprimante laser: Hewlett-Packard, Xerox Tektronix, Minolta, Tally, Panasonic, Lexmark, Epson sunt doar câteva din marile firme producătoare.

4.7. Scannerele
Daca se doreste introducerea, in memoria computerului, a unei fotografii sau a oricarei imagini tiparite pe hartie, cel mai adecvat echipament periferic pentru aceasta operatie este scanner-ul. Acesta scaneaza fotografia si transforma informatia grafica din ea in informatie digitala, care apoi poate fi afisata pe ecran si poate fi salvata pe disc intr-un fisier de tip grafic. Cel mai adesea, scanner-ul se conecteaza la portul de comunicatie paralel al computerului, si poate avea pe el un alt port de acelasi tip la care se poate conecta, in serie cu el, si o imprimanta. Exista si scannere care functioneaza pe standarde de tip SCSI, o tehnologie deosebita de cele folosite frecvent. Majoritatea programelor profesionale de prelucrari grafice dispun si de comenzi specifice pentru achizitia de imagini de pe hartie cu ajutorul unui scanner si salvarea lor in format electronic. Cele mai performante sunt scanner-ele de birou, in care se pune imaginea de scanat si aceasta este "fotografiata" de un dispozitiv care se deplaseaza automat, paralel cu suprafata ei.[vezi figura]. Mai accesibile pot fi scanner-ele de mana, dar acestea trebuie deplasate manual pe suprafata unei imagini tiparite ca sa o scaneze. Puteţi crede că un scanner este bun doar la adăugarea unor poze în scrisori, articole sau proiecte şcolare. Dar scannerul poate mai mult. Iată câteva exemple: la transmiterea faxurilor, pentru fotocopiere ocazională sau pentru a depozita copii ale unor documente vechi. Puteţi să testaţi, totodată, minunea tehnicii care este recunoaşterea caracterelor optice (OCR) - un sistem ce învaţă computerul să vă citească toate documentele. Deşi există scannere de toate formele şi dimensiunile, totuşi ele se împart în trei mari categorii: scannere de mână, scannere pentru documente şi scannere plane. Sunt cele mai ieftine, sunt mici, se ţin în mână şi se deplasează deasupra pozei de scanat. Acestea pot realiza o calitate bună a imaginii, dar au şi câteva neajunsuri. Pentru o scanare perfectă trebuie să deplasaţi aparatul deasupra hârtiei în linie dreaptă şi cu viteză constantă, cea ce nu este simplu şi pot fi necesare mai multe încercări până la obţinerea rezultatului optim. În plus aceste aparate nu pot scana decât fâşii de imagine late de circa 10 cm.
20

4.7.1. Scannere de mână

SISTEME DE INTRARE - IESIRE Pentru pozele mici nu este o problemă, dar dacă doriţi să scanaţi o foaie de hârtie de format mai mare, atunci for fi necesare cel puţin două fâşii. Software-ul scannerului va alipi cele două fâşii, dar alăturarea ar putea să nu fie perfectă.

4.7.2. Scannere de documente
Scannerele pentru documente sunt foarte compacte, ocupă foarte puţin spaţiu pe birou şi pot scana atât foi întregi de hârtie cât şi poze mai mici. Ele lucrează ca un scanner de mână mai lat, având încorporat un alimentator motorizat de hârtie. Foaia de scanat este introdusă printr-o fantă în scanner, iar motorul o deplasează cu viteză mică pe sub capul scannerului, abţinându-se astfel o imagine scanată perfect. Acestea sunt scannere care arată ca un fotocopiator mai îngust. În acest caz, dumneavoastră trebuie să ridicaţi capacul şi să aşezaţi hârtia pe o suprafaţă de sticlă. În loc să deplasaţi poza, scannerul mişcă trenul de scanare pe sub foaie. Majoritatea scannerelor plane pot scana hârtie de dimensiuni până la A4. Calitatea scanării este mai bună decât în cazul primelor două tipuri.

4.7.3. Scannere plane

4.7.4. Modul de functionare
Toate scannerele au acelasi principiu de functionare; deferentierea lor apare la tipul de deplasare al capului (manual sau automat), rezolutia de scanare, fidelitatea, tipul capului de citire folosit si a modului de transfer spre PC. Cele mai tari scannere [si totodata accesibile "poporului"] sunt la ora actuala cele pe USB, cu deplasare automata a capului, care suporta scanare direct de pe film fotografic, cu fidelitate foarte mare masurata in DPI [Dot-per-Inch], si rezolutie de peste 2048x1536. In principiu, la un scanner cu deplasare automata a capului, un controller de comenzi interpreteaza cerinta PC-ului si elaboreaza comanda pentru citire, pozitionarea capului, transferul datelor din buffer-ul capului spre memoria-tampon din care, in momentul umplerii, va fi preluata de PC. O fâşie subţire de imagine este culeasă de un detector sensibil la lumină care transformă zonele se lumini şi umbre ale pozei în semnal electrice expediate apoi PC-ului. Fâşiile sunt rânduri foarte înguste, oarecum asemănătoare cu cele ale unei imagini TV. O pagină completă este formată din 1.000 până la 5. 000 de rânduri separate. Cu cât sunt mai multe rânduri, cu atât calitatea pozei va fi mai bună.

21

Capitolul 4 - Echipamente de intrare - ieşire Scanarea color foloseşte trei seturi de detectori de lumină: roşii, verzi şi albaştri. Informaţiile extrase cu ajutorul acestor trei seturi pot reproduce orice culoare a curcubeului. Calitatea pozelor scanate depinde de numărul punctelor folosite pentru a compune poza scanată şi de gama de griuri sau culori pe care le poate recunoaşte şi transfera PC-ul. Cu cât sunt folosite mai multe puncte la o poză, cu atât aceasta va fi mai clară. Această proprietate se numeşte rezoluţie şi se măsoară în puncte per inci, sau dpi. Controllerul comanda "citirea": de pe tubul cu neon pleaca razele de lumina care vor "lovi" o linie foarte subtire de pe foaie. Imaginea se reflecta intr-un sistem de oglinzi [vezi figura] care focalizeaza imaginea spre capul de citire, iar de acolo se face conversia in semnal digital spre buffer. Semnalul digital este elaborat astfel: in functie de rezolutia aleasa de programul de prelucrat imagini, este impartit intr-un anumit numar de biti, la care bitul "1" reprezinta un punct negru, iar "0" un punct alb [pentru scanare alb-negru], sau pentru fiecare punct se alege o intensitate pentru fiecare din cele 3 culori de baza [rosu, verde, albastru]. In momentul in care bufferul este "plin" cu linia, acesta semnalizeaza "ready" se face transferul spre memoria tampon, apoi procesorul elaboreaza comanda "next-step" [stepperul sare un pas si se trece la urmatoarea "linie" de scanat]. Scannerele folosesc algoritmi de compresie a informatiilor, pentru a asigura in transfer rapid intre periferic si PC. In momentul scanarii unei imagini complicate, datorita acelor 3 intensitati corespunzatoare lui rosu, verde si albastru, pentru fiecare pixel in parte, la o rezolutie considerabila, prin scanner ajung sa se vehiculeze date de capacitati de peste 500 MB, ceea ce pentru portul paralel reprezinta o adevarata sinucidere. Scannerele foarte rapide folosesc algoritmi de compresie rapizi, dar nu compreseaza la maxim, asa ca ele sunt conectate prin porturi SCSI, ceea ce le confera o viteza de functionare mare, fara a afecta stabilitatea sistemului de operare. Scannerul foloseste un sistem de iluminat special proiectat; format dintr-un convertor de tensiune de la 12V la aproximativ 110V, pentru un tun cu neon foarte subtire si sensibil, ce asigura o iluminare puternica a foii. Cum stie computerul ca in portul paralel exista un scanner: Scanner-ul are incorporat o memorie EPROM [NV-ram - nonvolatile ram]. Acolo sunt scrise informatii despre tipul scannerului, memoria interna a lui, algoritmul de compresie al datelor si registrul de comenzi care vor fi incarcate de micro-controller la fiecare pornire. Orice scanner este plug - and play. Windows nu tine inotdeauna cont de acest lucru, dar cand "simte" o schimbare la un port paralel (incercare de negociere de transfer), va face o cerere de identificare, si i se va raspude cu informatiile corespunzatoare din memoria EPROM. Protocolul de transfer intre memoria tampon si PC difera functie de portul pentru care a fost destinat scannerul sa fie conectat. Pentru portul paralel se folosesc standardele EPP [viteza maxima de transfer din mem tampon spre PC - 800k/s -> stabilita experimental] si mai nou, ECP [viteza maxima stabilita tot experimental, 1.5 MB/s]. Sistemul pe care am efectuat experimentul a fost un scanner UMAX pe interfata paralela, rezolutie 1280x1024 cu 500dpi max si 1024k memorie interna, un computer celeron/450
22

SISTEME DE INTRARE - IESIRE MHz, cu 324 MB ram, sistem UNIX openBSD 3.3 si un program profesional de prelucrare de imagini GIMP 1.2.5. Windows 98, impreuna cu Adobe Photoshop 7, pur si simplu au refuzat sa functioneze, prezentand celebra eroare sub forma unei ferestre albastre, cand am incercat sa scot din scanner mai mult de 15 MBytes. Documentele de scanat au fost, pe rand: un bilet RATP, o bancnota de 100.000 de lei, o scutire medicala si o foaie cu antetul facultatii, portul paralel a fost setat pe rand, pentru fiecare "document", in standardele EPP si ECP, folosind mai intai BIOS-ul (pentru windows) si driverele incluse in kernelul openBSD/3.3-release (pentru UNIX). Scannerele au deseori pe cd-ul cu driverele şi un program de recunoaştere optică a caracterelor (OCR). Deşi poate că nu îl folosiţi în fiecare zi, el este capabil să economisească timp pentru dumneavoastră. Citate lungi, articole din ziare şi reviste sau alte tipuri de texte trebuie, în mod normal, să fie copiate pe computer prin dactilografiere. OCR poate sări această fază de culegere prin citirea automată a textelor scanate în PC şi transformarea cuvintelor într-un text din procesorul de texte ca şi cum ar fi importate dintr-o altă aplicaţie.

4.8. Camera WEB
O Cameră WEB este, in cea mai largă definiţie posibilă, orice cameră video (care foloseşte tehnologie analogică sau digitală), conectată intr-un fel la INTERNET. Cel mai frecvent, când se foloseşte acest termen, este vorba despre o cameră ce foloseşte tehnologie digitală, iar legătura cu Internetul este asigurată printr-un PC şi un software. Introducerea si dezvoltarea Camerelor Web este evident legata de inceputurile dezvoltarii Internetului si de tehnologia de achizitie de imagini. In 1969, George Smith and Willard Boyle, cercetatori la Bell Laboratoryes, au pus bazele teoretice ale CCDului, pe care l-au realizat practic in 1970, iar in 1975 era suficient de "bun" pentru a putea transmite imagini cu rezolutie TV. Cu toate acestea, el nu a patruns pe piata si in domenii cat mai variate decat dupa 1983. Primul echipament de tip Camera Web, desi artizanal a fost creat in 1991, cand cativa studenti de la Universitatea Cambridge care lucrau la un proiect intr-o cladire cu laboratoare, in care nu exista decat un singur filtru de cafea. Evident, cafeaua se epuiza foarte repede, iar cei aflati mai departe de mult-doritul dispozitiv trebuiau sa urce si cateva etaje pentru a constata ca filtrul era gol atunci cand ajungeau la el. Sistemul de achizitie si transmitere a imaginii pus la punct de studenti s-a numit XCofee si consta intr-o camera analogica indreptata catre filtrul de cafea, conectata la un PC printro placa de achizitie video. Sistemul folosea un software constand din doua aplicatii: un server ce primea datele de la placa de achizitie, la care se conecta o apliacatie client, ce putea fi utilizata de orice calculator folosea aplicatia respectiva. Ulterior, dupa ce 600 de utilizatori au downloadat aplicatia client, s-a trecut in 1993 la folosirea browser-ului pentru receptionarea imaginilor, creinduse plactic prima transmisiune video WEB in direct. Desi imaginea transmisa era grayscale, si cu un refresh de 3cadre/min, a fost primul pas in dezvoltarea sistemelor de camere web de mai tarziu. Prima camera web dedicata utilizatorilor individuali a fost produsul QuickCam al firmei Connectix, introdusa in 1994, , in prima sa varianta numai pentru sisteme Macintosh. Camera este de dimensiunea unei mingi de golf, si poate fi montata pe monitor, forma folosita si astazi de multi producatori la modelele destinate utilizatorilor individuali. Pentru transmisia datelor si alimentare camera foloseste portul serial. Poate furniza imagini de 320X240 pixeli, in 16 nuante de gri (4-bit gray), la 15 cadre/sec. Lentilele sunt cu distanta focala fixa, echivalentul a 38mm pe o camera analogica de 35mm. Focalizarea este de asemenea fixa - de la 45cm la infinit, cu o diafragma maxima de 1.9.

23

Capitolul 4 - Echipamente de intrare - ieşire Dezvoltarile teoretice, perfectionarea tehnologica si reducerea costurilor de productie a captorilor de imagine au permis intrarea agresiva pe piata bunurilor de consum a Camerelor Web in modele cat mai variate, destinate cator mai multe utilizari. Deasemenea majoritatea Camerelor Foto digitale actuale includ posibilitatea de a fi folosite ca si Camere Web. Pentru a capta imaginea, o camera web foloseste, ca orice alt dispozitiv de imagistica digitala (camere video digitale, aparate foto digitale, etc) o parte optica, formata dintr-un sistem de lentile (de obicei 4) si una electronica, a carei componenta cheie este captorul digital. Functional, diferenta intre o camera foto digitala si o camera WEB este ca aceasta din urma nu este mobila, nedispunand de facilitatea de a stoca imaginile captate pe un suport magnetic sau optic. Tehnologia folosita de Camera WEB achizitia de imagini este similara cu cea folosita la camerele foto sau video digitale. De departe cea mai importanta si mai des disputata parte a unui sistem de achizitie video este captatorul digital de imagine.

4.8.1. Principii de functionare
Captatorul digital de imagine este un circuit complex, format dintr-un numar de randuri si coloane de fotodiode ca o matrice; la intersectia fiecarei coloane cu un rand se afla un element receptor (fotosit). Fiecare fotosit va determina caracteristicile unui punct din imagine (picture element sau pixel). Considerente de ordin electric si mecanic determina ca intre doua fotosituri vecine sa existe un spatiu care nu este fotosensibil. Raportul dintre suprafata fotosensibila si suprafata totala poarta numele de factor de umplere si este, evident, subunitar. Cu cat suprafata unui fotosit este mai mica, cu arat sensibilitatea la lumina a captatorului este mai redusa, adica este nevoie de mai multa lumina pentru a obtine o imagine convenabila. Cu cat factorul de umplere este mai mare, cu atat "randamentul" este mai bun. Pentru a spori randamentul optic al captatorilor, unii producatori aseaza deasupra fiecarui fotosit cate o microlentila care concentreaza lumina pe elementul fotosensibil. Fiecare receptor capteaza lumina incidenta si o transforma intr-un semnal electric. Semnalul furnizat de fiecare fotosit este apoi descarcat, prelucrat si cuantificat (digitizat) pe 256 sau mai multe nivele, in functie de modelul (pretentiile) aparatului; in acest fel, fiecare element al matricei va fi caracterizat de un anumit nivel de semnal. 4.8.1.1. Dimensiunile Fotositului si influenta asupra calitatii imaginii Pixelii de mici dimensiuni ofera semnale electrice slabe (suprafata mica = energie captata mica), ceea ce duce la un raport semnal/zgomot mic. Pentru a "ascunde" acest fapt, producatorii utilizeaza diverse mecanisme de reducere a zgomotului, unele mergind pana la insumarea semnalelor a 4 fotosituri vecine pentru a calcula/realiza un pixel in imaginea finala! De asemenea, un raport semnal/zgomot redus determina o diminuare a intervalului de expunere (mai putini indici de expunere) ca si o reducere a sensibilitatii (ISO de valori mai mici). Aceste efecte devin foarte suparatoare la fotosituri de sub 4 x 4 microni. Pe de alta parte, pixelii de dimensiuni mari sufera de aliasing (defecte ale imaginii care constau din aparitia unor linii alternativ luminoase si intunecoase, ca un efect Moire si care apar - aparent paradoxal - daca obiectivul este de buna calitate) Aliasingul apare daca obiectivul are o rezolutie superioara frecventei Nyquist proprii captorului (care se calculeaza dupa formula N = 1/{2 * distanta dintre doi pixeli vecini}). Pentru combaterea aliasingului se folosesc filtre anti-aliasing care "blureaza" imaginea si reduc rezolutia. Captatorii de dimensiuni mai mari costa mai mult! Captatorii se obtin pe waffer-e, un waffer oferind spatiu pentru mai multi captatori, cu atat mai multi cu cat sunt mai mici. Deoarece procesul de fabricatie este insotit de erori, unele captatoare sunt respinse de controlul de calitate si una este sa arunci 1 la o suta, cu totul altceva 1 din10! In aceasta etapa tehnologica, dimensiunea optima a unui fotosit este intre 5 si 9 microni. Aceste valori sunt utilizate si la camerele avansate, de tip Canon D60 sau Nikon D100. Pastrind dimensiunile fotositului, o camera cu un captator de 24 x 36 mm (full frame) ar avea circa 16 Megapixeli.

24

SISTEME DE INTRARE - IESIRE 4.8.1.2. Adâncimea de Culoare In functie de numarul de nuante reprodus pentru fiecare pixel, o imagine se poate caracteriza printr-parametru numit "adancime de culoare". Intrucat ochiul uman poate distinge cca. 15 milioane nuante culori, reproducerea culorilor pe monitoarele calculatoarelor si in fotografia digitala trebuie sa tina seama acest parametru. Monitoale de tip VGA sunt capabile sa reproduca 256 nuante de culori, in schimb, monitoarele moderne si placile video sau aparatele digitale de fotografiat) reproduc peste 16 milioane nuante (reproducere Color).
ADANCIMEA DE CULOARE Tip Biti pe pixel Formula Numar de nuante

Alb-negru VGA Hi-color True color

1 8 16 24

21 2 28 216 224

256 65000 16 milioane

4.8.1.3. Sensibilitatea ISO a Captatorilor Sensibilitatea captatorilor digitali este similara cu a filmelor argentice si este stabilita de Organizatia Internationala pentru Standardizare (ISO = International Organization for Standardization). Captatoarele digitale au o sensiblitate la lumina, in general echivalenta cu filmele argentice cotate intre 60 si 100 ISO. Pentru a obtine fotografii in conditii de iluminare mai redusa, utilizatorul poate "spori" sensibilitatea care, de fapt, se produce prin interventia unor circuite de amplificare a semnalului transmis de captatorul digital. Din pacate, o data cu semnalul util este amplificat si zgomotul, desi majoritatea producatorilor pretind ca folosesc algoritmi complecsi si performanti si care produc rezultate foarte bune. Indiferent de model insa, cu cat sensibilitatea captatorului este mai mare, cu atat intervalul dinamic al pozei este mai redus. 4.8.1.4. Modele Comerciale de Captatori Digitali In prezent, pe piata exista trei tipuri de senzori: CCD, CMOS si Foveon3x.
CCD

CCD vine de la Charge Coupled Device si reprezinta modul in care se face citirea pixelilor dupa expunerea la lumina: pe primul rand de pe latura lunga a circuitului se afla un rand de elemente care nu sunt expuse la lumina - sa le spunem "de deservire" -, un registru de citire; datele din primul rand de celule expuse este transferat in registru si apoi datele sunt transmise pentru interpretare; randul citit este sters si este apoi transferata informatia din randul urmator, care este si ea golita in registru, s.a.m.d. Am putea spune prin urmare, ca informatia este citita prin "cuplarea" pe randuri, iar fiecare rand este "cuplat" cu cel de deasupra. Descarcarea se face progresiv, de la un rand la altul (primul rand, apoi al doilea, apoi al treilea...) sau intretesut (intai randurile impare si apoi randurile impare). Modul progresiv este utilizat de majoritatea camerelor digitale, in timp ce modul intretesut (interlaced) este folosit mai ales in televiziune. Acest tip de semiconductor are o buna sensibilitate atat in lumini cat si in umbre dar este mai scump de produs deoarece este utilizat doar in domeniul imaginii digitale.
CMOS

CMOS este acronimul de la Complementary Metal Oxide Semiconductor si este un tip de circuit electronic utilizat larg in industria computerelor (procesoare si memorii) si, din aceasta cauza, productia este mult mai ieftina. Primele captatoare introduse pe piata erau grevate de un zgomot mare de fond (cu consecinta: detalii reduse in umbre) dar progrese recente au facut ca si acest tip de circuit sa-si amplifice performantele (Canon D60 utilizeaza un captator tip CMOS).
25

Capitolul 4 - Echipamente de intrare - ieşire

4.8.2. Captarea Culorii
Pentru a putea capta si informatiile despre culoare, cele doua tipuri de captatoare aratate mai sus sacrifica un pic din calitatea finala a imaginii prin interpunerea intre obiectiv si captator a unor filtre colorate in rosu (Red R), verde (Green = G) si albastru (Blue = B), sau, pe scurt: RGB, dispuse in forma de mozaic. Exista si alte tipuri de filtre dar cu o utilizare mult mai restransa decat RGB. 4.8.2.1 FILTRU BAYER Deoarece ochiul uman este mult mai sensibil la culoarea verde, Bayer a propus urmatorul raport de frecventa : 2 verzi, 1 rosu si 1 albastru (2:1:1), raport adoptat de aproape toti producatorii. Dupa descarcare, fiecare pixel contine informatii despre luminanta ca si despre intensitatea culorii rosu, verde sau albastru, in functie de filtrul acoperitor. Pentru a obtine si restul de informatie de crominanta, urmeaza o etapa de interpolare a informatiilor de crominanta cu pixelii din vecinatate (de-mozaicare), deoarece captatorul ofera doar 50% din informatia pe culoarea verde, 25% din cea albastra si 25% din cea rosie.

4.8.2.2. SUPER CCD Fuji lanseaza in 1999 un nou tip de captor, in esenta tot CCD dar, prin modificarea dispunerii fotositurilor obtine un factor de umplere mai bun, si il boteaza "Super CCD". Fotositurile sunt de forma octogonala iar dispunerea lor se face mai compact, asemanator celelor fagurilor de albine. Producatorul pretinde ca obtine o crestere a sensibilitatii, prin cresterea factorului de umplere, un raport semnal/zgomot mai bun, un interval dinamic superior si o redare mai buna a culorilor. Cresterea gradului de impachetare permite pixeli mai mari sau/si o rezolutie mai mare. Fuji sustine ca pe un circuit cu diagonala de 1/2 inchi, intra aprox. 2 milioane de fotosituri, care sunt cu 60 % mai mari decat cele de la un CCD obisnuit si ca imaginea obtinuta pe acest captator va fi echivalenta cu una de pe un CCD conventional de 3 MPixeli. O perfectionare a celei de-a treia generatii a Super CCD este "botezata" de Fuji: "High Resolution" si pe carearata ca obtine o calitate ridicata de pe senzori de foarte mici dimensiuni, prin perfectionarea proiectarii si fabricarii senzorilor. Producatorul anunta doua modele: unul de 1/2,7 inchi, cu 3,1 milioane fotosituri si cu un fisier rezultat de 6 MP, si un al doilea, de 1/1,7 inchi cu 6 milioane fotosituri si cu un fisier rezultat de 12 MP. Recent Fuji a anuntat un Super CCD de a patra generatie, botezat SR, si care este bazat pe modelul octogonal al Super CCD-ului deja prezentat; pentru fiecare fotosit "mare" si deci sensibil, adauga un al doilea, mai mic si, prin urmare, mai putin sensibil.

26

SISTEME DE INTRARE - IESIRE

COMPARATIE INTRE SUPER-CCD SI SUPER-CCD-SR

Fotodioda de mari dimensiuni reproduce luminile de intensitate medie si mica (semitonuri si umbre), in timp ce fotodioda de mici dimensiuni, de aproximativ patru ori mai putin sensibila la lumina, reproduce detaliile din lumini, care altfel se perdeau in zone Ť arse ť ale imaginii. In acest fel, - sustine Fuji - se reproduce mai fidel o gama dinamica mai larga, mai ales partea cu lumini. Primele captatoare au fost lansate probabil in primavara lui 2004 si au 3,1 milioane fotosituri, cu 3,1 milioane fotodiode mari + 3,1 milioane fotodiode mici. 4.8.2.3. FOVEON x3 In 1999 se pantenteaza un nou tip de captor pentru imaginea digitala: Foveon x3, de catre un mic producator independent. Speculind faptul ca un captator uzual foloseste filtre de trecere de tip Bayer si ca in acest fel nu se utilizeaza decat o treime din lumina incidenta, Foveon propune un dispozitiv foarte seducator, la care fiecare fotosit este format dintr-un substrat pe care sunt asezate trei straturi suprapuse de semiconductori, fiecare dopat special pentru a deveni sensibil la o anumita lungime de unda: primul strat (cel superficial) absoarbe si raspunde la lumina albastra, al doilea la lumina verde iar al treilea la lumina rosie, sau cu alte cuvinte, fotositul arata cat de adanc patrund fotonii. In acest fel, este exploatata in intregime lumina incidenta, adica 100% din informatia pe culoarea verde, 100% pe culoarea rosie si 100% pe culoarea albastra, si nu 50 % din culoarea verde, 25% din culoarea rosie si 25% din culoarea albastra, ca in senzorii bazati pe matrice Bayer. Producatorul pretinde ca Foveon x3 are o rezolutie de doua ori mai buna decat un captator CCD cu acelasi numar de fotosituri. Daca am desparti informatia transmisa de lumina incidenta in patru parti (nu neaparat egale): lumianta, crominanta rosu, crominanta verde si crominanta albastru, un fotosit CCD, cu filtru de tip Bayer exploateaza doar doua din cele patru parti, pe cand Foveon x3 le capteaza pe toate patru. Putind capta simultan cele trei culori de baza pe fiecare fotosit, Foveon x3 ofera o mai buna reproducere a culorilor, nu are nevoie circuitele de interpolare - obligatorii la captatoarele clasice -, si ofera performanta mai buna in reproducerea detaliilor colorate cu frecventa ridicata. Firma National Semiconductor a achizitionat drepturile de folosire a sensorului Foveon X3, in scopul de a il introduce in telefoanele mobile si PDA-uri.

4.8.3. Transferul de date
In procesul de transfer al imaginilor de la un PC la altul cu ajutorul internetului se disting doua etape principale :
• • Transferul Camera Web - PC Transferul PC - WEB - PC

27

Capitolul 4 - Echipamente de intrare - ieşire 4.8.3.1 Transferul Camera Web - PC Dintre modurile de conectare la PC a unei camere existente in prezent mentionam in urmatoarea clasificare cateva tipuri: Camere care folosesc portul serial - care folosesc portul serial pentru conectarea la PC. Datorita vitezei scazute deobicei nu ofera posibilitatea de transmitere Live, ci doar Frame by Frame, cu rata de refresh scazuta, dar calitate a imaginilor si rezolutie riducate. Sunt folosite in cazul in care nu este nevoie de imagini la intervale scurte de timp, si nici de transmisii audio simultan (de exmplu in meteorologie). Camere care folosesc portul paralel - folosesc portul paralel pentru conectarea la PC. La inceputul introducerii camerelor web, au fost foarte raspandite. Pot transmite flux de date Live, la un framerate acceptabil, dar de o calitate mai scazuta decat cea a camerelor seriale. Sunt considerate cea mai ieftina si simpla solutie pentru transmisii live de video si sunet de scazut. Camere care folosesc Placi de Achizitie Video - sunt camere video analogice si placile folosesc diferite standarde specifice acestora - NTSC pentru SUA, PAL pentru Europa, etc. Camere care folosesc USB - se conecteaza prin portul USB la PC, si sunt cele mai raspandite in prezent. Permit atingerea unui framerate si a unei calitati a imaginii mai bune decat in cazul folosirii portului paralel. Camere care folosesc FireWire - se conecteaza prin portul FireWire la PC, si reprezinta solutia in cazul cand atat framerate-ul si calitatea ridicata sunt necesare . Permit atingerea unui framerate si a unei calitati a imaginii mai bune decat in cazul folosirii portului USB. Camere de Retea, care folosesc cabluri UTP - sunt camere speciale, folosite pentru transmiterea de imagini de la camere aflate foarte departe de PC, sau in locuri greu accesibile. Aceste camere sunt folosite cel mai adesea in supravegherea video si includ practic un calculator, ce are rolul de web server pentru stocarea achizitia si stocarea informatiilor si o placa de retea. Pentru conectarea la acest tip de camere se foloseste cablul UTP, care se conecteaza direct la camera, iar in procesul de configurare cadrul, in cadrul retelei, dispozitivului i-se aloca un ip.

4.8.3.2 Transferul PC - WEB - PC Odata transferata imaginea de la Camera Web la PC, exista doua modalitati de transmitere a datelor catre o pagina WEB: Sistemul „FTP upload” si sistemul ”Streaming Cam”.
FTP Upload

Vom prezenta schematic functionarea acestei metode:

28

SISTEME DE INTRARE - IESIRE

1. Camera filmeaza continuu si transmite printr-o interfata la PC 2., 3. Softul preia cate o imagine la fiecare x secunde (de obicei 10, 20, 30) si o uploadeaza prin protocolul FTP (File Transfer Protocol) catre serverul WEB (deobicei si ISP-ul PC-ului unde este conectata camera) 4. Browserul preia la fiecare x secunde imaginea de pe server si o afiseaza. Exista doua modalitati uzuale pentru a realiza acest refresh in browser: • Prin „Meta Refresh”, cea mai simpla solutie, dar refresh-ul se face pentru toata pagina • Prin folosirea unui Applet Java, unde refresh-ul se face numai pentru imaginea deschisa de applet Streaming Cam

Vom prezenta schematic functionarea acestei metode:

29

Capitolul 4 - Echipamente de intrare - ieşire Cand pagina Web este accesata, imaginea este transmisa catre IP-ul celui care a accesat pagina respective, printr-un port, direct de pe PC-ul la care este conectata Camera Web. Aceasta metoda permite transmiterea in timp real de imagini, dar sunt necesare conexiuni destul de rapide, pentru ca transmisia sa fie intr-adevar “live”. 4.8.3.3 Standarde de transmisie a datelor Dintre standardele video de transmisie cele mai utilizate in prezent pentru camerele web mentionam Streaming Video si Motion JPEG. Streaming Video - combina audio si video intr-un flux continuu de 10 sau 30 cadre/s si este folosit in transmisii de date pe latimi mari de banda. Motion JPEG - transmite numai imagini, folosind o succesiune rapida de cadre (imagini in format JPEG). In LAN-uri de mare viteza poate atinge maxim 30cadre/s, iar in internet intre 5 - 10 cadre/s.

30