Sunteți pe pagina 1din 84

Universitatea Alexandru Ioan Cuza Facultatea de Informatic Departamentul de nvmnt la Distan

Adrian Buburuzan

PRACTIC HARDWARE

2007 2008 Iai

Adresa autorului:

Universitatea Al. I. Cuza Facultatea de informatic Str. Berhelot 16 700483 Iai, Romania E-mail: bubu@info.uaic.ro

Prefa

n ziua de azi calculatoarele n general i n particular calculatoarele personale (PC) constitue unul din principalele mijloace prin care societatea contemporan a reuit s ating obiective i performane n tiin i n industrie care nu ar fi fost posibile fr existena lor. Noiunile prezentate n materialul de fa vor s constitue un ajutor n nelegerea modului de construcie a acestor calculatoare i prin aceasta lanseaz o invitaie la o folosire mai eficace a acestora prin adoptarea unor parametrii mai optimi de setare i exploatare n practica cotidian. Noiunile generale de la disciplina de Arhitectura calculatoarelor sunt particularizate la aceast arhitectur de calculatoare personale cunoscute i sub numele de calculatoare compatibile IBM ( dup firma care a implementat prima dat acest tip de arhitectur ) . Fiecare capitol caut s competeze tabloul general al unui calculator cu concepte particulare specifice acestor calculatoare PC . Aceast arhitectur va continua s existe i n urmtorii ani i va continua s se dezvoltate prin apariia de componente mai performante ( procesoare ,memorii , noi dispozitive de intrare-ieire etc ) precum i de standarde de transmisie a datelor mai rapide astfel c avnd la baza conceptele de baz prezentate n cadrul acestui material ,viitorul informatician se va putea adapta mult mai uor la viitoarele standarde din acest domeniu.

Iai, decembrie 2007 ing. Adrian Buburuzan

Not :

n cadrul capitolului 4 se va studia ca material obligatoriu numai paragraful referitor la implementarea stivei la procesoarele i8088 celelalte noiuni referitoare la funcionarea procesorului la nivel de bus sau moduri de adresare n cadrul arhitecturii i8088 vor fi citite ca material informativ !

Cuprins
Prefa Cuprins Introducere

. . . . . . . . . . . . . . . . . . . . . . . . 7

Cap.1 Arhitectura sistemelor de calcul . . . . . . . . . . . . . . . . 11 1.1 Arhitectura generalizat von Neumann . . . . . . . . . . . 11 1.2 Evoluia i tendine n domeniul arhitecturii interne . . . . . . 13 Cap.2 Componentele hard ale unui calculator personal ( PC ) . . . . . . . 2.1 Nivele de acces ale hardware-lui . . . . . . . . . . . . . 2.2 Componentele de baz ale unui PC . . . . . . . . . . . . 2.3 Succesorii PC-ului original . . . . . . . . . . . . . . . 20 20 22 30

Cap.3 Arhitectura intern a procesoarelor din famila Intel pe 16 bii . . . . . 32 3.1 Unitaile interne ale procesorului Intel 8088 . . . . . . . . . 32 3.2 Regitrii procesorului Intel 8088 . . . . . . . . . . . . . 34 Cap.4 Noiuni despre funcionarea i adresarea datelor la procesoarele Intel 8088 . . . . 4.1 Funcionarea procesorului la nivel de magistral . . . . . . . 4.2 Moduri de adresare la procesorul Intel 8088 . . . . . . . . . 4.3 Codificarea intern a instruciunilor . . . . . . . . . . . . 4.4 Stiva . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 47 48

Cap.5 ntreruperi . . . . . . . . . . . . . . . . . . . . . . . . 51 5.1 ntreruperi hardware i software . . . . . . . . . . . . . . 51 5.2 Procesoare CISC i RISC . . . . . . . . . . . . . . . . 56 Cap.6 Memoria . . . . . . . . . . . . . . . . . . . 6.1 Generaliti . . . . . . . . . . . . . . . 6.2 Alocarea memoriei la sistemul de operare DOS . 6.3 Memoria video . . . . . . . . . . . . . 6.4 Memoria cache . . . . . . . . . . . . . Cap.7 Sistemul de I / O . . . . . . . . . . . . . 7.1 Port de intrare . . . . . . . . . . . 7.2 Port de ieire . . . . . . . . . . . 7.3 Comunicaii seriale . . . . . . . . . 7.4 Controlul micrii unui motor pas cu pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 58 59 62 65 69 69 70 72 74

Cap.8 Multimedia . . . . . . . . . . . . . . . . . . . . . . . 76 8.1 Elemente de baz ale sunetului n format digital . . . . . . 76 8.2 Prelucrri ale sunetului n format digital. Plci de sunet. . . . . 78 5

8.3 8.4

Prelucrri video . . . . . . . . . . . . . . . . . . . Consideraii finale . . . . . . . . . . . . . . . . .

80 80 83

Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . .

INTRODUCERE O scurta istorie a calculatoarelor


O data cu dezvoltarea societatii umane s-a ivit nevoia sa se pastreze o urma a numerelor care erau implicate n comertul care a inceput sa se dezvolte. Degetele de la mna, nodurile pe o sfoara, betisoarele, pietricelele si alte asemenea elemente au fost folosite n scopul memorarii acestor numere. Abacul a fost primul echipament rudimentar de calcul si se pare ca este originar din China dar a fost gasit si in alte culturi antice. Acest simplu "echipament" care foloseste bile si srme pentru a reprezenta numerele si a face calcule este folosit si astazi.

Oameni si contributia lor


Despre un prim echipament de calcul s-au gasit surse care nominalizeaza pe un profesor de astronomie, Wilhem Schickard din Turbingen, Germania, care a desenat o ingenioasa masina de adunat, scazut, si chiar, pentru numere mai, mici, de nmultit si mpartit. nainte ca proiectul sa fi fost terminat, atelierul a ars mpreuna cu masina n constructie iar autorul a murit nainte sa construiasca un model nou. Un mester mecanic a recreat mai trziu dupa schitele dintr-o scrisoare acest instrument, nsa ntr-o varianta simplificata. Poate daca inventia initiala s-ar fi pastrat, alta ar fi fost istoria calculatoarelor! Un pas nainte s-a facut prin descoperirea de catre scotianul John Napier n jurul anului 1600 a logaritmilor care permiteau ca operatiile de nmultire si mpartire sa fie transformate n adunari si scaderi. Folosind aceasta proprietate, Robert Bissaker inventeaza rigla de calcul care a fost folosita pna n anii 1970 n calculele ingineresti unde nu se cerea o precizie de multe zecimale. Blaise Pascal matematician si filozof francez a inventat primul calculator numeric care putea sa adune si sa scada numere.Totusi, acest echipament se pare ca nu era la fel de evoluat cum a fost masina construita de Schickard. "Pascalina" cum a fost denumita, reusea sa aduca o economie de timp fata de calculele manuale. Principiul ei se pastreaza si astazi la instrumentele mecanice de contorizat cum ar fi contorul electric, kilometrajul la automobile etc.. Un limbaj de programare Pascal, a fost menit sa poarte numele lui, drept recunoastere a contributiei avute n evolutia calculatoarelor. Mai trziu, (1673), n Germania matematicianul Leibnitz- care mpreuna cu Newton au creat calculul diferential- creaza o masina mecanica care efectua toate cele patru operatii aritmetice, dar aceasta nu a fost folosita pe scara larga datorita complicatiilor ce interveneau n constructia sa. Francezul Jacquard, n 1808 construieste o masina automata cu cartele perforate ce era folosita la razboaiele de tesut. Inventia lui Jacquard a aratat ca datele 7

trebuie sa fie codate pe cartele; cartelele trebuie sa fie unite ntr-un lant pentru a crea o serie de instructiuni si aceste instructiuni pot automatiza tesutul razboiului. Instructiunile programabile s-au dovedit a fi un concept de mare importanta n calculatoarele moderne. Anul 1822 aduce o noua masina de calcul prin englezul Charles Babbage. Calculatorul avea o memorie mecanica pentru a memora rezultatele. Datorita alocatiilor asigurate de catre guvern Babbage continua cercetarile si propune o noua masina "analitica" de calcul, la care intrarea datelor s-ar fi facut prin cartele perforate iar masina ar fi putut sa-si schimbe procedurile de operare. Ar fi fost necesare 6 masini de abur pentru punerea n miscare si ar fi ocupat un spatiu de marimea unui teren de fortbal putnd sa calculeze tabele matematice si logaritmi!Masina binenteles ca nu a fost construita niciodata dar conceptul ei l mecanic a fost un predecesor predecesor al calculatoarelor electronice moderne. Babbage a avut un partener, Augusta Ada, contesa de Lovelace si fiica poetului Lord Byron care i-a nteles ideile si a recunoscut valoarea acestora. In 1840 aceasta scrie, o serie de articole stiintifice care prezinta aceste idei noi comunitatii stiintifice. Ea sugereaza chiar folosirea sistemului binar pentru memorare n locul sistemului zecimal. Totodata ea este considerata si "primul programator" din cauza ca a inclus si repetarea automata a unor serii de calcule n functionarea masinii analitice folosirea buclelor de program fiind si astazi un lucru curent folosit de catre programatori. In 1850, George Boole, matematician englez realizeaza ca probleme matematice complexe pot fi rezolvate prin reducere la o serie de raspunsuri pozitive si negative. Sistemul binar care foloseste 1 pentru afirmatie si 0 pentru negatie poate fi folosit; n acest caz aceasta teorie de logica Boole devenind fundamentala pentru proiectarea circuitelor dintr-un calculator. In anii 1880, dr. Herman Hollerich construieste primul perforator electromecanic de cartele folosind cartela cu 80 de coloane. Folosind acest sistem de cartele s-a realizat primul recensamnt mecanizat al populatiei n anul 1890, n 1/4 din timpul ct se realiza pna atunci. Cartelele perforate folosite n calculatoarele numerice din anii 1970 se numeau cartele Hollerich si erau identice cu cele din secolul trecut. Urmeaza o perioada de ctiva zeci de ani in care nu se remarca nimic spectacular n domeniul calculatoarelor. Abia n 1927 la Massachusetts Institte of Technology (MIT), Bush si echipa sa construiesc o masina electromecanica care rezolva ecuatii diferentiale simple. George Stibitz, cercetator matematician la Bell Telephone Laboratory intuieste ca logica Boole furnizeaza un limbaj natural pentru circuitele electromecanice. Masina creata de el folosind baterii, becuri, srme controla fluxul de electricitate prin DA sau NU (ON sau OFF). Numita calculator complex numeric masina aduna numere binare. Tot el mpreuna cu un coleg, Samuel Williams demonstreaza cum folosind acest echipament si un teletype poate transmite rezultatele calculelelor la distanta de 250 mile. John Atanasoff si Clifford Berry construiesc n 1931 un calculator de uz general numit ABC (Atanasoff, Berry Computer) pentru rezolvarea ecuatiilor algebrice. Cnd Atanasoff contacteaza firma IBM care se ocupa de productia de masini de scris n scopul eventual al producerii de calculatoare de acest gen, compania IBM spune ca nu va fi niciodata interesata de masini de calcul electronice!! Konrad Zuse in 1941 construieste n Germania un prim calculator electronic care foloseste logica binara cu toate ca nu auzise de G. Boolle. Pentru cresterea vitezei

propune folosirea tuburilor electronice n locul releelor electromecanice. Hitler i refuza o subventie de la stat n scopul terminarii proiectului. motivnd ca razboiul va fi terminat inaintea finalizarii masinii. Englezii construiesc in 1943 o masina care era capabila sa prelucreze peste 25.000 caractere pe secunda. Cercetarile sunt facute sub conducerea matematicianului de geniu Turing si n constructia ei sunt folosite tuburi electronice asa cum propusese germanul Zuse. Scopul acesteia era descifrarea mesajelor criptate cu masinile Enigma folosite de germani n al II-lea razboi mondial. In 1950 Alan Turing construieste "Automatic Computing Engine ACE) care este considerat unul din primele calculatoare programabile. In SUA matematicianul Howard Aiken construieste un calculator programabil similar cu cel mecanic propus de Babbige numit MARK I. In constructia sa sunt folosite relee electromecanice.Calculele cu numere de 23 de cifre necesitau 3 secunde si calcule manuale de 6 luni puteau fi facute ntr-o zi. Calculatorul a fost folosit pentru calculul tabelelor balistice de catre militari. Alti doi americani, John Mauchly si Prosper Eckert construiesc un calculator numit ENIAC care printre cele 100.000 componente electronice folosea 17.484 de tuburi electronice. ENIAC opera n sistemul zecimal, folosea cartele perforate dar era extrem de dificil de schimbat programul ,acesta fiind cablat manual cu ajutorul srmelor. Constructia sa a fost terminata dupa sfrsitul razboiului si a fost folosita n calculelele pentru prognoza vremii., tunelele aerodinamice, tabele balistice si studiul razelor cosmice. Chiar inainte de terminarea constructiei sale cei doi constructori si-au dat seama ca ENIAC nu este perfect si au nceput proiectarea succesorului numit EDVAC care a fost terminat in 1949. Acesta folosea instructiunile memorate (programul n memorie) si folosea sistemul binar. Dezvoltarea calculatoarelor care foloseau conceptul de program memorat a fost revendicat de mai multi inventatori dar pna la urma paternitatea ideii a fost atribuita lui John von Neumann, matematician de geniu care prin articolele si lucrarile sale legate de proiectul calculatorului. EDVAC a fundamentat aceasta idee. In anii 1949 la Universitatea Harward se pun bazele dezvoltarii memoriilor pe miezuri de ferita de catre Wang. Se pune astfel la dispozitia calculatoarelor un raport de memorie mai ieftin si de dimensiuni mai mari pentru programe mai complexe. Manchly si Eckert n 1951 si nfiinteaza propria companie care va produce primul calculator comercial numit UNIVAC. Pna atunci calculatoarele erau folosite doar pentru aplicatii militare sau stiintifice . In anul 1954 compania General Electric folosea un calculator pentru facturarea consumului de energie electrica al abonatilor. Alte companii existente ca Honeywell sau IBM realizeaza potentialul comercial al calculatoarelor si trec la realizarea propriilor calculatoare pe care sa le ofere la vnzare. Marina Statelor Unite realizeaza n anii 1950-1952 primul simulator de zbor folosind un calculator ce efectua 50.000 de operatii pe secunda. Deasemeni tot un astfel de calculator era folosit la supravegherea spatiului aerian. Alte inovatii apar n anii "50. Astfel Jack Kilby si Robert Hoyce descopera posibilitatea obtinerii circuitelor integrate pe un "chip" de siliciu. Aceste descoperiri vor fi introduse n 1962 n productie iar n 1964 n calculatoare. IBM"System 360 este primul calculator care foloseste circuite integrate. Miniaturizarea componentelor dezvoltata de diferiti inovatori va duce la succesul comercial al calculatoarelor. Apare si primul minicomputer produs de compania DEK si cunoscut sub numele de PDP-1. Avnd dimensiuni mai modeste

putea fi cumparat si folosit de companii mai mici care nu-si puteau permite achizitionarea unuia din categoria numita "mainframe". Aceste calculatoare ncep sa devina din ce n ce mai mari si puternice. Astfel amintim calculatorul ILLIAC IV care intra n categoria supercomputerelor precum si seria de calculatoare CRAY dezvoltate n 1976 de catre Seymour Cray, despre care se spune ca un exemplar si-a platit costul n prima ora de functionare cnd aplicatia care rula a descoperit pe una din fotografiile de satelit un zacamnt de petrol n valoare de cteva zeci de milioane de dolari. Progrese se fac si n domeniul limbajelor de programare, ncepnd din anul 1950. Un grup de ingineri de la IBM dezvolta primul limbaj de programare orientat pe probleme algebrice numit FORTRAN (Formula Translator). In anul 1959 apare limbajul COBOL destinat afacerilor. Apar si alte limbaje precum BASIC, PASCAL,C, C++ etc.. n 1970 firma Intel creaza un chip de memorie care putea memora 1 kilobit de informatie. Un cercetator tot de la Intel, Ted Hof reuseste sa proiecteze si integreaza pe un singur circuit primul microprocesor pe 4 biti numit Intel 4004, ceea ce va duce la constructia primelor calculatoare numite "home computers" cum ar fi Commodore sau Apple.

Evolutia tehnologica a calculatoarelor


Calculatoarele s-au schimbat de-a lungul timpului; si-au crescut viteza, puterea si eficienta. Aceste schimbari au dus la ncluderea calculatoarelor n generatii functie de specificul lor. Generatia I (1951-1959) - folosea sute de tuburi electronice, benzi magnetice pentru memorie externa si cartele perforate pentru intrarea datelor iar operatorii umani aveau rolul de a aseza o serie de comutatoare pe pozitiile 0 sau 1 conform schemelor cerute de program. Se folosea limbajul masina si de asamblare n programarea lor. Ca exemplu, din aceasta categorie este calculatorul UNIVAC I. Generatia II. (1959-1965) - este caracteristica prin folosirea tranzistoarelor si elementelor semiconductoare pentru realizarea logicii calculatorului, memorie interna pe miezuri magnetice, banda magnetica dar si diskul magnetic care este introdus ca memorie externa. Cartelele magnetice ca suport pentru datele de intrare, cartele perforate si hrtie cu suport pentru datele de iesire, ncep sa fie folosite limbaje de nivel nalt n programele lor _FORTRAN, COBOL, BASIC - operatorii manevrau cartelele perforate. Ca exemplu, poate fi folosit calculatorul Honeywell 200. Generatia III. (1965-1971) - foloseste circuitele integrate ca elemente logice, se impune folosirea discului magnetic ca memorie externa, monitoare si tastaturi pentru intrarea si iesirea datelor, primele sisteme de operare complete care reduc la minimum interventia operatorilor umani , se introduce conceptul de "familie de calculatoare" ce permite adaptarea mai usoara a unui calculator la necesitatile beneficiarului prin extinderea si actualizarea echipamentului si softului. Exemplu tipic este IBM System 360. Generatia a IV-a (1971 - prezent) - introduc circuitele cu grad mare de integrare care pot contine sute de mii si milioane de tranzistoare, se introduc microcalculatoarele si microprocesoarele ca Intel 386, 486, Pentium iar gama de aplicatii cuprinde aproape tot spectrul afacerilor si cercetarii stiintifice . Pentru viitor se prevede dezvoltarea calculatoarelor pe baza inteligentei artificiale, sistemele expert fiind deja n uz si se spera sa se ajunga la adevaratele calculatoare care pot "gndi".

10

Cap1.

ARHITECTURA SISTEMELOR DE CALCUL

O posibil clasificare a sistemelor de calcul se poate face dup modul n care se face prelucrarea informaiei. Dup acest criteriu putem avea: a. sisteme cu un singur procesor atunci cnd se folosete o singur unitate central de prelucrare (se folosete prescurtarea CPU Central Processing Unit). b. sisteme multiprocesor atunci cnd n scopul creterii vitezei de prelucrare se adaug nc un procesor, de exemplu coprocesorul matematic sau se cupleaz mai multe procesoare identice care pe lng creterea vitezei mresc fiabilitatea sistemului, sarcinile unui procesor defectat fiind automat preluate de un alt procesor. c. reele de calculatoare care formeaz sisteme informaionale distribuite pe distane mari i au un caracter aparte din punctul de vedere a proiectrii i funcionrii. Un model de arhitectur pentru un sistem de calcul care este folosita n analiza i proiectarea sistemelor de calcul a fost introdus de savantul american John von Neumann ca rezultat al participrii sale la construcia n anii 1944 1945 a calculatorului ENIAC n S.U.A. Aceasta este cunoscut n literatura de specialitate ca arhitectura von Neumann. 1.1. Arhitectura generalizat von Neumann Dup cum se observ n figura 1.1., un sistem de calcul este format din 3 uniti de prelucrare care sunt conectate ntre ele prin 3 ci (numite bus-uri) separate de transfer a informaiei.Vom analiza pe scurt scopul acestor elemente. A. Unitatea central de prelucrare (CPU Central Processing Unit) are rolul de a extrage instruciunile (care sunt de fapt comenzile programului ca adun, scade, verific semnul rezultatului, etc.) memorate ntr-un dispozitiv de stocare numit memorie, de a decodifica aceste instruciuni i apoi de a prelucra datele care sunt cerute de instruciuni. Rezultatele acestor prelucrri pot fi depozitate ntr-un registru intern al C.P. U., s fie depus ntr-o locaie de memorie sau trimis la un dispozitiv de intrare / ieire (I/O input/output). Se observ c execuia unei instruciuni presupune execuia urmtoarei secvene de aciuni: a. Depunerea pe busul de adres a unei informaii care localizeaz adresa de memorie ce conine cmpul de cod al instruciunii (secvena de ADRESARE). b. Citirea codului instruciunii i depunerea acestuia ntr-un registru intern al decodificatorului de instruciuni. Aceast informaie este vehiculat pe busul de date (secvena de LECTUR). Deobicei aceste doua secvene sunt reunite in una singura numita secvena de FETCH. c. Decodificarea codului instruciunii n urma creia CPU va cunoate ce instruciune are de executat i ca urmare pregtete modulele ce vor participa la instruciunea respectiv (secvena DECODIFICARE)

11

d. Execuia efectiv a operaiei specificate de de instruciune (adunare, scdere, salt, etc.) secvena de EXECUIE.

Lumea

Externa

fig 1.1 Deobicei aceste doua secvene sunt reunite in una singura numita secvena de FETCH. e. Decodificarea codului instruciunii n urma creia CPU va cunoate ce instruciune are de executat i ca urmare pregtete modulele ce vor participa la instruciunea respectiv (secvena DECODIFICARE) f. Execuia efectiv a operaiei specificate de de instruciune (adunare, scdere, salt, etc.) secvena de EXECUIE. Se continu cu extragerea instruciunii urmtoare i trecerea ei prin secvenele amintite .a.m.d. Sincronizarea operaiilor amintite se realizeaz prin generarea unui set de informaii pe magistrala de comenzi. B. Unitatea de memorie n cadrul arhitecturii von Neumann are rolul de a stoca instruciunile pentru CPU, precum i datele asupra crora vor opera instruciunile (operanzii ). Aceste instruciuni trebuie s fie memorate anterior nceperii desfurrii programului de prelucrare. Deasemeni unele date se vor memora anterior pornirii prelucrrii iar rezultatele prelucrrii se memoreaz n timpul execuiei programului. Aceast memorie, realizat n diverse tehnologii de-a lungul evoluiei calculatoarelor constituie suportul fizic necesar desfurrii operaiilor executate de CPU.

12

Informaia n memorie este stocat la aa-numitele adrese. Pentru accesarea unei informaii din memorie se furnizeaz acesteia adresa acelei informaii iar circuitele de control al memoriei vor furniza coninutul adresei care reprezint informaia cerut. Similar i la scrierea n memorie. Tehnologic, dispozitivele de memorie pot reine informaia numai cnd sunt alimentate electric i avem de-a face cu aa-zisa memorie volatil atunci cnd nu sunt alimentate electric formnd memoria nevolatil i care este folosit n mod special la stocarea programelor pentru iniializarea calculatorului i stocrii sistemului de operare. C. Dispozitivele de intrare ieire I/O (input/output) permit transferul informaiei ntre CPU, memorie i lumea extern. Funcional, aceste dispozitive de I/O pot fi adresate (apelate) de ctre CPU similar ca i memoria ele dispunnd de asemeni de cte un set de adrese. n mod clasic, schimbul de informaii cu exteriorul se face sub controlul CPU dar exist tehnici care vor fi amintite mai trziu atunci cnd accesul la memorie se poate face i fr intervenia CPU (aa-numitele transferuri DMA Direct Memory Access). D. Busul de date este acea cale care leag cele 3 blocuri funcionale (o parte a sa poate s ias i n exteriorul sistemului) i pe care se vehiculeaz datele propriuzise (numere sau caractere) sau instruciunile programului. E. Busul de adrese este calea pe care sunt transmise de CPU adresele ctre memorie cnd se face o operaie de citire sau scriere cu memoria sau se vehiculeaz adresele dispozitivului de I/O n cazul unui transfer cu un periferic. F. Busul de comenzi vehiculeaz semnalele de comand i control ctre toate aceste blocuri i care permit o sincronizare armonioas a funcionrii sistemului de calcul. Arhitectura de tipul von Neumann a fost o inovaie n logica mainilor de calcul care s-au construit pn atunci prin faptul c sistemul trebuia s aib o cantitate de memorie, similar cu creierul uman, n care s fie stocate att datele ct i instruciunile de prelucrare (programul). Acest principiu al memoriei a reprezentat unul din fundamentele arhitecturale ale calculatoarelor. Era vorba chiar de pogramele stocate n memorie i nu numai a datelor. Not: A nceput s apar din ce n ce mai clar care este aplicabilitatea memoriei. Datele numerice puteau fi tratate ca i valori atribuite unor locaii specifice ale memoriei. Aceste locaii erau asemnate cu nite cutii potale care aveau aplicate etichete numerotate de exemplu 1. O astfel d locaie putea conine o variabil sau o instruciune. A devenit posibil ca datele stocate la o anumit adres s se schimbe n decursul calculului ca urmare a pailor anteriori. n acest mod numerele stocate n meorie au devenit simboluri ale cantitilor i nu neaprat valori numerice, n acelai fel cum algebra permite manipularea simbolurilor x i y fr a le specifica valorile ! Calculatoarele ulterioare i mai trziu microprocesoarele au implementat aceast arhitectur care a devenit un standard. 1.2. Evoluia i tendinele n domeniul arhitecturii interne Aceast arhitectur intern a fost dezvoltat n mai multe direcii rezultnd sisteme de calcul cu posibiliti noi i adaptate noilor cerine cerute de societate. Pentru a vedea aceste noi direcii ne vom folosi de o clasificare a sistemelor dup arhitectura intern propus de Flynn (1972) ;

13

1. SISD (Single Instruction Single Data o instruciune o dat) sunt sistemele uzuale cu un singur microprocesor. Aici se ncadreaz microprocesoarele clasice cu arhitectur von Neumann pe 8, 16, 32, 64 bii cu funcionare ciclic preluare instruciune, execuie instruciune (rezult prelucrarea datelor) .a.m.d. Tot n aceast categorie trebuie introdus i aa-numitele procesoare de semnal DSP (Digital Signal Processors) folosite actual de exemplu n plcile de sunet, telefonie mobil, etc. 2. SIMD (Single Instruction Multiple Data o instruciune cu mai multe date) sunt sistemele cu microprocesoare matriceale, la care operaiile aritmetice se execut n paralel pentru fiecare element al matricei, operaia necesitnd o singur instruciune (se mai numesc i sisteme de procesare vectorial). n principiu SIMD arat ca n figura 1.2. Exemplu de folosire a acestui tip de arhitectura este familia procesoarelor Intel Pentium MMX (Multi-Media eXtension) care are la baza o arhitectura SIMD. Aceasta familie de procesoare cuprinde un set de 57 de instructiuni noi ,4 noi tipuri de date si un set nou de registrii destinat accelerarii executiei aplicatiilor multimedia. (grafica 2D si 3D,video ,procesare de imagini si sunete stereo ) .Aplicatiile multimedia impun manipularea unor date de dimensiuni mici (8 sau 16 biti) in parallel pentru cele 3 canale de culoare sau cele 2 canale de sunet stereo cu aceiasi instructiune dar date diferite pe aceste canale multimedia Eficiena SIMD-urilor se dovedete a fi ridicat n cazul unor programe cu paralelisme de date masive puse n eviden de exemplu de anumite bucle de programe. Exemplu: arhitectura de tablou sistolic construit n 1984 de General Electric, un tablou elemente rezultnd 1 bilion de operaii pe secund. .

ALU 1 Mem 1

ALU 2 Mem 2

ALU n Mem n

Retea interconectare ( R C )
Fig. 1.2.

14

3. MISD (Multiple Instruction Single Data mai multe instruciuni cu o dat) . Pentru a crete performanele sistemelor de calcul avnd frecvena ceasului dat o soluie este execuia n paralel a mai multe instruciuni.Extragerea instruciunilor din memorie este un punct critic n viteza de execuie a acestora. Pentru a rezolva aceast problem nca din perioada calculatoarelor mari ( mainframe ) instruciunile aveau posibilitatea s fie extrase n avans i s fie disponibile atunci cnd erau cerute de program. Pentru aceasta exista un set de registre numit tamponul pentru extragere n avans (prefetch buffer ). De fapt extragerea n avans mparte execuia instruciunii n dou pari: extragerea i execuia propriu-zis .La sistemele de tip MISD aceast strategie este extins i acest concept este cunoscut sub numele benzii de asamblare ( pipeline conduct ).

S1

S3

S4

S5

a) S1 : : S3 : S4 : S5 : 1 2 3 4 Timp b)
Fig. 1.3 n loc s se mpart instruciunea n dou pri aceasta este imprit n mai multe pri, de fiecare parte ocupndu-se o component hardware dedicat acesteia, toate parile hardware lucrnd in paralel. 15

2 1

3 2 1

4 3 2 1

5 4 3 2 1 5

6 5 4 3 2 6

7 6 5 4 3 7

8 7 6 5 4 8

9 8 7 6 5 9

. Figura 1.3 a ilustreaz o band de asamblare cu 5 uniti , denumite i segmente ( stages ). Segmentul 1 extrage instruciunea din memorie i o plaseaz ntr-un registru tampon unde instruciunea i va astepta rindul. Segmentul 2 decodific instruciunea determinndu-i tipul i operanzii necesari. Segmentul 3 localizeaz i extrage operanzii din regitrii sau memorie. Segmentul 4 execut proprizis instruciunea . n final segmentul 5 scrie rezultatul n registrul corespunztor. n fig 1.3b se observ cum opereaz n timp banda de asamblare. Pe perioada ciclului 1 de ceas , segmentul S1 lucreaz cu instruciunea 1, extrgnd-o din memorie. Pe perioada ciclului 2 , segmentul S2 decodific instruciunea 1 n timp ce segmentul S1 extrage instruciunea 2. Pe perioada ciclului de ceas 3 , segmentul S3 extrage operanzii pentru instruciunea 1 , segmentul S2 decodific instruciunea 2 iar segmentul S1 extrage a treia instruciune. La fel se petrec lucrurile i ptr. urmtoarele cicluri de ceas dup cum se poate urmri pe figur, n final rezultind instruciuni executate la fiecare perioada de ceas. Dac am presupune c ciclul main este de 2 ns atunci pentru ca o instruciune s treac prin toate cele 5 segmente ale benziide asamblare vor fi necesare 10 ns. Datorit ns existenei benzii de asamblare la fiecare ciclu de ceas de 2 ns este terminat o instruciune! Astfel viteza crete de 5 ori ! Arhitecturi superscalare Dac o band de asamblare este buna atunci dou benzi vor fi i mai bune! n fig 1.4 am prezentat o variant posibil a unui UCP cu dou benzi de asamblare.

S1

S3

S4

S5

Fig. 1.4 Exist o singur unitate de extragere a instruciunilor care extrage perechi de instruciuni care sunt plasate pe cele dou benzi de asamblare. Trebuie ndeplinite unele condiii pentru ca acest asamblu s functioneze corect ( cele doua benzi s nu-i dispute resursele-regitrii de exemplu- sau s nu depind de rezultatele celeilalte ,etc) condiii care trebuie garantate fie de compilator care analizeaz instruciunile , fie este implementat un hardware suplimentar care asigur o execuie corect. ncepnd cu procesorul I486 Intel a introdus benzi de asamblare n arhitectura procesoarelor sale. Astfel un I486 are o singur bad de asamblare pe cnd un procesor Pentium are implementate 2 benzi de asamblare . Acestea sunt notate cu U si V. Banda de asamblare U ( U pipeline ) poate executa orice tip de instruciune

16

Pentium. Banda de asamblare V (V pipeline ) poate executa numai instruciuni simple pentru ntregi. Am putea proiecta procesoare cu patru benzi de asamblare dar acest lucru presupune o duplicare excesiv a structurii hardware. n locul acestei posibiliti s-a preferat o implementare puin diferit. Exist o singur band de asamblare dar mai multe uniti funcionale ca in fig 1.5.

S4

UAL UAL LOAD STORE Virgula mobila


Fig. 1.5 Procesorul Pentium II are o structur similar. Pentru aceasta s-a introdus termenul de arhitectur superscalar (superscalar architecture). Ideea unui procesor superscalar implica ca segmentul S3 s poat lansa instruciuni mult mai rapid dect poate executa segmentul S4 pe acestea! n realitate majoritatea unitilor funcionale din S4 au nevoie de mai mult de un ciclu de ceas pentru a termina treaba..Astfel S4 poate conine mai multe unitti aritmetico-logice (UAL) sau de alt tip. Amintim tot aici i aa numita arhitectur Harward n care zonele de memorie pentru instruciuni au ci de adrese i date distincte fa de zonele de memorie destinate datelor rezultnd astfel o cretere a vitezei. La tipurile noi de microcontrolere folosite n industrie sau n bunurile de larg consum se gsesc implementate aceste concepte de arhitectur fcndu-le foarte performante iar pretul de fabricaie este de ordinul dolarilor!

S1

S3

S5

17

Celebrele supercomputere Cray a anilor 1970 foloseau de asemenea o arhitectura de tip MISD avnd i alte nouti n privina arhitecturii interne pentru acea dat. 4. MIMD (Multiple Instruction Multiple Data mai multe instruciuni, mai multe date) sunt acele sisteme n care se ncadreaz att supercalculatoarele cu procesoare dedicate ct i sistemele multiprocesoare (vezi fig. 1.6). Putem sa consideram ca ultimele procesoare pentru PC-uri de la Intel din categoria dual core sau viitoarele cu mai multe nuclee se pot situa in aceasta categorie de arhitectura acestea inlocuind sistemele PC multiprocesor .

Mem 1

Mem 2

Mem 3

Retea interconectare ( R C ) P1 P2 P3

Fig. 1.3 S mai subliniem faptul c aceste reele de interconectare (RC) pot implementa de la simpla arhitectur de sistem multiprocesor (SM) pe BUS COMUN (uniBUS cnd numai un procesor are acces la BUS celelalte ateptnd eliberarea busului) pn la arhitecturi complexe de tip CROSSBAR care permite accesul simultan al tuturor microprocesoarelor la modulele de memorie global cu condiia s nu existe dou microprocesoare care s acceseze simultan acelai modul de memorie global. Exemplu: - firma DEC a produs un sistem avnd 16 procesoare PDP11/40 interconectate crossbar. Pentru astfel de arhitecturi paralele cum se numesc acestea (MIMD) exist i sisteme de operare care asigur rularea n paralel a diferitelor procese. Astfel avem sisteme de operare (SO) a) master slave la care funciile SO sunt ataate unui microprocesor distinct master iar restul microprocesoarelor numite slave acceseaz aceste funcii indirect prin intermediul unui microprocesor master. b) divizat nu exist un microprocesor evideniat, fiecare microprocesor avnd funciile de sistem separat plasate n memorie.

18

c) flotant cnd funciile SO sunt plasate n memoria comun putnd fi accesate de oricare microprocesor al sistemului, astfel ele plutesc de la un microprocesor la altul. Tot n cadrul acestei ultime categorii trebuie amintite aa numitele TRANSPUTERE care sunt de fapt microcalculatoare integrate ntr-un singur circuit, cu proprie memorie i reea de conectare punct cu punct cu alte transputere din aceeai categorie. Cu acestea se pot construi maini SIMD sau MIMD folosindu-se limbaje de programare specifice proceselor paralele (ex. ORCAM), precum i algoritmi paraleli. ntrebri la cap. 1 1. Care sunt unitaile de prelucrare ntr-o arhitectur de tip von Neumann ? 2. Care sunt busurile(magistralele) specifice unei arhitecturi de tipvon Neumann ? 3. Care sunt secvenele de execuie ale unei instrucini n CPU din cadrul unei arhitecturi tip von Neumann ? 4. Cum este accesat informaia din memorie la o arhitectura de calcul von Neumann ? 5. Cum sunt accesate dispozivele de intrare/ieire la o arhitectura de calcul von Neumann? 6. Ce informaie este stocat n memoria sistemelor cu arhitectur tip von Neumann ? 7.Cum se clasific sistemele de calcul n funcie de arhitectura intern dup recomandrile cercettorului Flynn ? 8. La ce sisteme de calcul se refer arhitectura de tip SISD ? 9. La ce sisteme de calcul se refer arhitectura de tip SIMD ? 10. Unde este aplicat tipul de arhitectur SIMD la procesoarele de tip INTEL ? 11. Desenai o schem bloc de arhitectur de tip SIMD . 12. Care este principiul dupa care funcioneaz o arhitectur de tip MISD ? 13. Numiti care ar putea fi operatiile executate in fiecare segment pentru o arhitectura MISD cu 5 segmente? 14. La ce se refera termenul de arhitectura superscalara pentru sistemele MISD? 15. Unde gsim implementat arhitectura de tip MISD n procesoarele de tip INTEL ? 16. Care sisteme intr n arhitectura de tip MIMD ? 17. Desenai o schem bloc de arhitectur de tip MIMD . 18. Ce fel de sisteme de operare exist pentru sistemele de tip MIMD ?

19

Cap. 2 COMPONENTELE HARD ALE UNUI CALCULATOR PERSONAL (PERSONAL COMPUTER PC)
2.1. Nivele de acces a hardwar-ului Calculatoarele personale (PC) fac parte din categoria calculatoarelor construite conform arhitecturii von Neumann prezentat n capitolul anterior. Dup cum se cunoate n cadrul acesta al prelucrrii datelor intervin dou componente: partea de echipament care efectiv efectueaz calculul numit harware (partea tare, solid care se vede !) partea de program care furnizeaz instruciunile echipamentului, algoritmul dup care se face prelucrarea numit software (partea moale, inteligena care conduce hardware-ul).

fig. 2.1 n principiu deci programul care conine instruciunile de prelucrat (softwareul) trebuie s aib acces la echipamentul de calcul (harware-ul) pentru ca s se obin

20

rezultatul cerut. Dup cum se observ din fig. 2.1. n cadrul PC-ului nu este neaprat nevoie ca acest acces s se fac n mod direct din cadrul programului de aplicaie. Astfel programul nu va scrie de exemplu direct n circuitele cartelei video pentru afiarea unor caractere pe ecran maniera uzual fiind aceea de a utiliza un intermediar care ofer servicii specializate. Aceti intermediari pot fi BIOS (Basic Input Output System) sau sistemul de operare (DOS-ul Disk Operation System) care sunt interfee de programe (soft) create pentru a administra partea de echipament (hardware). Marele avantaj pentru program este c el nu este obligat s se murdreasc pe mini fiindc el nu intr n contact direct cu electronica. El se mulumete s apeleze un subprogram din BIOS care are ca sarcin lucrul cerut, de exemplu, dac o tast a tastaturii a fost apsat s indice despre care este vorba. Apelul unui subprogram (subrutin) este mult mai uor de scris dect de a administra direct echipamentul. Mai exist ns un avantaj. Interfeele BIOS i DOS permit sa se izoleze programele de aplicatie de caracteristicile fizice ale echipamentului nefiindu-i necesar, de exemplu, programului de aplicaie s tie ce interfa grafic are sistemul. Dup cum se vede n figura 2.1. BIOS-ul poate fi considerat un strat situat deasupra echipamentului. El permite s se aib acces la cartela video, memorie, discuri, discheta, claviatura, interfee serie i paralel precum i la aa-zisa memorie CMOS. Acest program care conine BIOS-ul se gsete nscris ntr-o memorie de tip ROM (Read Only Memory) i este disponibil n orice moment. La fel ca i BIOS-ul, DOS-ul care este sistemul de operare al sistemului ne propune deasemenea un numr de funcii care permit accesul la echipamente. Aceste funcii au totui un caracter diferit dect cele oferite de BIOS cci ele privesc hardware-ul din punct de vedere logic.si nu fizic. Astfel, dac BIOS-ul prezint funcii pentru discul dur la nivel de piste i sectoare, DOS-ul se situeaz la nivelul fiierelor i subdirectoarelor.

Fig. 2.2. Din figura 2.2. putem sesiza nc un avantaj al acestui mod de acces al hardware-ului cnd aceeai aplicaie lucreaz pe 2 sisteme PC diferite care nu au aceleai caracteristici fizice. Prin faptul c cele dou interfee sunt standardizate ele vor face ca aplicaia s funcioneze perfect pe ambele sisteme.

21

Dac BIOS-ul asigur o interfa standard ctre DOS pentru echipamente care difer n funcie de calculator, sistemul DOS la rndul su este nveliul n care pot fi executate alte programe incluznd aici i medii de operare ca Windows-ul. Se pune ntrebarea pentru programator care dintre aceste niveluri trebuie ales n programarea unei aplicaii. De exemplu dac se dorete s se traseze cercuri i linii n mod grafic cercetnd funciile BIOS sau DOS vom constata c nu exist asemenea funcii. Trebuie atunci s accesm printr-un program scris corespunztor placa grafic sau s recurgem la o bibliotec specializat n acest domeniu. Dac funciile BIOS i DOS i disput favoarea de a fi alese de programator atunci pentru lucrul cu fiiere, lucrul cu nivelul DOS este inevitabil . Pentru a formata o dischet sau a scrie caractere pe ecran se va face apel la BIOS. Experiena i cunoaterea funciilor oferite de BIOS sau DOS pot s ne ajute la luarea unor decizii corecte. n unele cazuri viteze de execuie poate fi un incovenient major al funciilor DOS i BIOS deoarece cu ct se trece prin mai multe niveluri intermediare cu att se ncetinete execuia funciei cerute. Dac viteza este un factor important s-ar putea s fie nevoie s renunm la funciile DOS sau BIOS i s se scrie programe ce comand direct echipamentul. Un exemplu n acest sens sunt unele programe de grafic sub DOS care au programe de comand direct a plcii video (programe numite DRIVER) care fac ca afiajul s se fac rapid i eventual dac se caut s se afieze un fenomen n micare acesta s apar fr ntreruperi sau micri sacadate. Trebuie s remarcm tot aici c noile sisteme de operare (Windows NT, Windows 98) nu permit o programare direct a echipamentelor, numai sistemul de operare fiind cel care are un control direct asupra acestora n scopul protejrii acestora de eventualele comenzi greite sau programe cu scopuri distructive (virui, tergerea discului, etc). nainte de a vedea cum se pot apela funciile DOS sau BIOS, sau eventual cum comand direct hardware-ul, vom arunca o privire asupra componentelor unui PC. 2.2. Componentele de baz ale unui PC Ideea de a oferi un calculator disponibil pe birou nu a fost nou i nu a putut fi realizabil dect de firme de anvergur ca IBM. IBM a avut n plan un calculator numit System 23/Data Master dar acesta era echipat cu un procesor Intel 8085 pe 8 bii, o component depit atunci cnd deja apruser microprocesoare pe 16 bii. S-a pus problema fabricrii rapide a unei maini noi i revoluionare care s foloseasc aceste componente noi.

Procesorul
Primii reprezentani ai noii clase de microprocesoare pe 16 bii au fost procesoarele 8086 i 8088 de la Intel. Amndou puteau adresa nu numai 64 ko de memorie (216) ci 1 Mo (220). Echipa care a lucrat n acest proiect avea deja experiena n proiectarea unor sisteme cu circuite auxiliare, construite tot de firma Intel aa c, pe lng procesorul 8088 au fost alese o gam de circuite Intel care s ntregeasc proiectul final. Procesorul 8088 era un procesor pe 16 bii intern dar n exterior comunica pe 8 bii adaptndu-se foarte bine la ceea ce deja era proiectat i verificat la proiectul anterior System23. Acest bus exterior pe 8 bii de pe placa de baz (placa mam) lega microprocesorul (P) de circuitele auxiliare de memorie i de plcile de extensie aflate n conectoare dup cum se vede n figura 2.3.

22

Fig. 2.3.

Busul
Dac IBM s-a strduit s fac din acest calculator un sistem deschis publicnd toate aspectele tehnice legate de el, documentarea semnalelor care se vehiculeaz pe bus a fost neglijat. Muli utilizatori au nceput s-i doteze calculatoarele cu extensii fabricate de IBM dar de asemenea i de ali furnizori care au pus la punct propriile plci de extensii compatibile cu busul proiectat de IBM, uneori la preuri mult mai mici i cu performane chiar mai bune dect cele de la IBM contribuind la succesul calculatorului PC.

Funcionarea busului PC
Busul n fond nu este altceva dect un cablu cu 62 de linii care permit s treac datele de la procesor la memorie i invers. Este de fapt o autostrad care traverseaz PC, cu regulile impuse de procesor. Dup cum se cunoate din schema ataat arhitecturii von Neumann avem ntre aceste 62 de linii, linii care formeaz busul de adrese, busul de date precum i semnale de sincronizare i comand care aparin busului de control. La origine busul de adrese avea 20 de linii cu care era posibil s se adreseze 1 Mo de memorie. Datele propriu-zise nu sunt emise pe busul de adrese ci pe cel de date, care la nceput avea 8 linii (8088) ceea ce nu autoriza dect transmisia numai a unui octet odat, fiind nevoie de 2 cicli pentru transmisia a 16 bii ct era lungimea cuvntului. Toate plcile de extensie aflate n conectori ascult busul. La emisia unui semnal de ctre microprocesor (P) trebuie s se gseasc o cartel care s fie vizat (adresat). n acest moment toate celelalte extensii se decupleaz momentan de la bus i se vor brana (cupla) din nou la urmtorul ciclu spernd c ele vor fi cele vizate. Cartela adresat apare ca fiind unica n legtur direct cu microprocesorul i are loc operaia cerut de acesta.

23

Cunoscnd aceste amnunte ne putem explica de ce uneori la cuplarea unei noi cartele pe extensie apar probleme de conflict ntre cartela nou cuplat i cele existente deja n calculator ( din cauz c probabil acelai domeniu de adres este revendicat de dou cartele). Problema se rezolv reconfigurnd noua cartel din microntreruptoarele situate pe ea ca s rspund la o alt adres de intrare ieire sau eventual la o alt ntrerupere. Dac se folosesc cartele noi care rspund standardului Plug and Play i apare acest conflict problema se rezolv reconfigurnd cartela cu ajutorul programelor driver livrate odat cu cartela pe disket, CD sau cutnd aceste programe pe Internet la site-ul productorului (dac exist acces). n evoluia PC au existat mai multe standarde pentru aceast magistral, numit bus: 1. ISA 2. MCA 3. EISA 4. Magistral locala 5. PCI 6. PC MCIA Vom spune cteva cuvinte despre fiecare. 1. Busul ISA (Industry Standard Architecture) a fost prima magistral folosit la construcia calculatoarelor PC i chiar astzi, dup aproape 20 de ani de la apariia PC, exist soclurile de tip ISA pe plcile calculatoarelor. Exist 2 versiuni de magistral ISA: magistrala mai veche care avea 8 bii de date i mai nou cu 16 bii pe busul de date. Ambele funcioneaz la 8 MHz. Prima a fost folosit la primele PC cu 8088 i avea 20 de linii de adresare (220 = 1 Mo) i 1 Mo de memorie adresabil magistrale pe 16 bii a fost folosit la microprocesoare noi (P) ca Intel 80286 cu 24 de linii de adres (224 = 16M octei) cu 16 Mo de memorie adresabil. 2. Busul MCA sau MicroChannel Architecture s-a folosit de firma IBM la calculatoarele PC dotate cu procesoare 386 pe 32 de bii. Ea a dorit s nlocuiasc magistrala ISA n noul standard pe 32 de bii dar faptul c firma IBM a cerut drepturi de autor exagerate firmelor tere care doreau s construiasc dup noul standard au fcut ca s se dezvolte magistrala EISA. Trebuie remarcat la aceast magistral aa-numita tehnic bus mastering, care permite unei plci s preia controlul magistralei iar acest control este arbitrat ntr-un punct central care asigur accesul tuturor dispozitivelor dup o prioritate stabilit anterior. 3. Busul EISA (Extended Industry Standard Architecture) a fost rspunsul constructorilor de plci de extensii la apariia magistralei MCA de la IBM. Ea a aprut ca o dezvoltare a magistralei ISA, furniznd conectori cu 32 de bii pentru sistemele 386DX sau urmtoarele. i aici s-a folosit sistemul bus mastering de la busul MCA cu avantajele sale n mrirea vitezei de transfer a datelor. 4. Magistrala local a aprut atunci cnd vitezele P au crescut de exemplu la 66 MHz, iar magistralele continuau s lucreze la 8 MHz, producnd o trangulare a transferului de date ntre procesorul rapid i dispozitivele periferice legate de o magistral lent. Ideea a fost de a muta unele dispozitive de I/O care cereau vitez mare (plac grafic, disc dur) ntr-un loc unde s poat beneficia de viteza

24

sporit a P. Acest lucru s-a fcut conform fig. 2.4. alturi de memoria imediat (cache), aceast dispunere devenind cunoscut ca magistrala local.

Fig. 2.4. Cel mai cunoscut standard pentru bus local a fost cel numit VESA Local Bus sau VL-Bus care a oferit accesul direct la magistrala procesorului. Ea a fost valabil numai la familia 486 pentru P din familia Pentium impunndu-se standardul PCI. 5. Busul PCI (Peripheral Component Interconnnected Bus) a reproiectat magistrala tradiional prin intercalarea unei alte magistrale ntre CPU i magistrala I/O existent prin intermediul unor circuite bridge (puni) dup cum se vede n fig. 2.5. Aceast magistral este folosita i astzi n majoritatea sistemelor PC motiv pentru care vom insista puin mai mult asupra caracteristicilor i posibilitilor de transfer a acesteia . Firma Intel a proiectat n 1990 aceast magistral i dup ce a obinut patentul, pentru a ncuraja folosirea ei a pus patentul n domeniul public astfel ca proiectanii i companiile de calculatoare s construiasc periferice pentru ea, fr s plteasc drepturi de autor. Magistrala PCI original transfera 32 de bii pe ciclu (4 octei) , ciclul funciona la 33 Mhz, deci cu o viteza de 133 Mo/sec. n 1993 a fost introdus magistrala PCI 2.0 iar in 1995 magistrala PCI 2.1. Magistrala PCI 2.2 se refer la calculatoare mobile. . Magistrala PCI funcioneaz n variantele noi la 66 Mhz i poate transfera 64 de bii deci o band de trecere de 528 Mo/sec! Pentru a utiliza magistrala un periferic trebuie mai intii s o ctige. Exist un circuit special care arbitreaz accesul la magistrala . Acesta deobicei este implementat n unul din circuitele de tip punte ( bridge ) care apar in figura 2.5. . n momentul de fa a aparut i tipul de magistral PCI-expres care se folosete mai ales pentru conectarea adaptoarelor video de ultim generaie. Caracteristicile acesteia sunt mai inalte fa de versiunea 2.1 i va fi unul din standardele de bazpentru viitoarele plci de baz.

25

6. Busul PCMCIA este un standard ce s-a impus pentru calculatoarele portabile de tip Laptop i notebook. Sunt folosite plci de extensii de mrimea crilor de credit (credit card size). Trebuie remarcat aici c deoarece standardul fiind vag respectat de productor, s-ar putea ca unele extensii de la un productor s nu funcioneze n alte calculatoare.

Fig. 2.5. n final trebuie s remarcm c n prezent la calculatoarele din noua generaie, busul (ISA, PCI, etc.) suport aa-zisa specificaie Plug-andPlay (PnP) care permite o configurare automat a dispozitivelor hardware ataate PC cu condiia ca i aceste plci de pe extensie s fie compatibile PnP. Un utilizator poate ataa calculatorului un nou echipament (ex: plac de sunet sau plac de fax) i s nceap s lucreze fr ca s mai configureze manual aceste noi echipamente ataate. Aceast tehnologie PnP este implementat n harware precum i n sistemul de operare (Windows95, Windows98) i suport software ca drivere sau BIOS. C. Circuite auxiliare Procesorul este nconjurat de mici circuite complementare numite i controlere, comandnd o serie de dispozitive n locul controlului direct a acestora de ctre P i elibernd astfel P de la o parte de munc. Vom descrie pe scurt principalele circuite auxiliare care completeaz schema general a unui PC specificnd i tipul de circuit folosit de IBM la origine, n primul PC.

26

Controlerul DMA (8237) Prescurtarea DMA provine de la Direct Memory Access, un acronim care descrie o tehnic special de transfer de date. Folosind aceast tehnic, datele furnizate de un periferic (de exemplu un disc dur sau o dischet) sunt canalizate direct ctre memorie. n condiii de funcionare clasice, P intervine n cadrul fiecrui transfer de octet sau cuvnt nainte ca acesta s fie trimis ctre memorie. Aceast tehnic n ultimul timp se folosete mai puin datorit creterii vitezei P. Un controler de tip DMA se folosete n calculatoare pentru renprosptarea memoriei RAM (Random Access Memory). Aceast memorie este format din celule care i pierd informaia n cteva fraciuni de secund dac aceasta nu este rencrcat. Tocmai acest rol este preluat de un controler DMA descrcnd P de o sarcin cre ar ocupa timp. Controlerul de ntrerupere (8259) Controlerul de ntrerupere joac un rol central n comanda unor periferice precum claviatura, discul dur sau interfaa serie. n teorie o tastatur ar trebui tot timpul interogat de ctre P pentru ca o tast apsat s fie luat n considerare imediat. Dar aceast supraveghere permanent (polling) consum resurse importante fiindc n cea mai mare parte a timpului nu ar servi dect s se constate c nu s-a ntmplat nimic. Pentru rezolvarea acestei probleme s-a ales o alt cale. Procesorul nu mai interogheaz perifericul ci tocmai perifericul este cel care semnalizeaz procesorului atunci cnd are de tratat o informaie. Acest mecanism se numete ntrerupere hardware. Ca urmare, procesorul i ntrerupe programul n curs de execuie (fig. 2.6.) i declaneaz un program numit rutin de ntrerupere, aflat de obicei n memoria BIOS i care are rolul de a rezolva cererea primit.

Fig. 2.6 Cnd aceast subrutin i ndeplinete rolul, procesorul i reia execuia programului din locul unde a fost ntrerupt. Se observ c procesorul nu intervine dect numai cnd este nevoie de el. Aceste cereri de ntrerupere care pot proveni de la diferite echipamente (exemplul nostru a fost tastatura) nu sunt trimise direct

27

procesorului, mai mult, aceste cereri pot interveni simultan iar procesorul nu este capabil s trateze dect o singur ntrerupere. Pentru a gestiona cererele de intrerupere i eventual prioritatea lor exist un circuit special numit controler de ntrerupere. ntr-un PC mai nou pot exista pn la 15 ntreruperi i modul lor de aciune va fi studiat ntr-un capitol viitor.

Circuitul de ceas Dac se compar P cu un creier, ceasul poate fi considerat inima sistemului informatic. Aceast inim a btut la primele PC cu un tact de 14,3 MHz iar viteza lui a crescut la generaiile urmtoare ajungnd la valori de 500 MHz ! Aceast frecven este divizat i folosi de circuitele periferice la o scar la care acestea lucreaz. Circuitul temporizator (8253) Acest circuit numit i timer posed mai multe canale care pot fi legate la periferice diferite i perioada impulsurilor generate de acesta se poate programa. Un canal de exemplu este legat la difuzor iar altul la controlerul de ntrerupere. Acesta din urm face s se declaneze aa-zisa ntrerupere de ceas care face s avanseze ora livrat de PC. Controlerul de ecran Controlerul de ecran nu face parte din circuitele de pe placa de baz ca celelalte circuite descrise pn acum, ci el este o cartel de extensie care ocup un conector. La origine acest controler a fost un circuit de tipul Motorola 6845 care constituie inima unei plci grafice monocrom sau color produs de IBM. Aceste plci au disprut, locul lor fiind luat de plci de tipul EGA, VGA, SVGA care posed controlere puternice i mult mai evoluate. Controlerul de dischet (765) Circuitul a fost produs de compania NEC i este cunoscut sub numele de NEC 765 care la fel ca i cel de ecran se afla pe o plac de extensie. Similar ca i cel de ecran, P nu se adreseaz direct acestuia ci prin intermediul nivelului BIOS. Actualmente se gsete integrat pe placa de baz. Coprocesorul aritmetic (8087, 80287, 80387) La nceput calculatoarele PC mai avem n apropierea soclului pentru P nc un soclu care putea fi ocupat de ctre un procesor special numit i coprocesor aritmetic i care avea rolul de a efectua calculele n virgul mobil. Acest coprocesor a fost adaptat diferitelor P care au fost dezvoltate de firma Intel avnd denumiri care difer cu o unitate de cel al procesorului (8087, etc). Totui coprocesoarele nu au cunoscut niciodat un succes deosebit datorit preului practicat pentru achiziionarea lor. ncepnd cu procesorul 486DX acesta a fost integrat pe acelai chip cu procesorul nsui, formnd n final un singur circuit, numit simplu procesor. Aceste circuite auxiliare care la primele PC se gseau pe placa de baz i se prezentau cu circuite independente odat cu dezvoltarea tehnologiei de integrare s-au grupat n dou sau chiar ntr-un singur circuit integrat. Aceste circuite sunt cunoscute

28

cu denumirea de CHIPSET i sunt produse pe lng Intel i de alte firme productoare de chipuri pentru placa de baz. De obicei n oferta unui calculator cnd se prezint caracteristicile plcii de baz se specifica i tipul de chipset folosit. Aceast denumire la firma Intel cuprinde litera X i sunt cunoscute chipseturile LX, TX, BX, etc fiecare din ele avnd unele mbuntiri fa de precedentele i putnd fi folosite n combinaie cu un anumit tip de procesor. D. Organizarea memoriei n momentul apariiei PC era echipat cu 16 Ko de memorie care putea fi extins pn la 64K pe placa de baz. IBM a furnizat i plci de extensie de memorie care cuplate n conectori puteau mri memoria disponibil peste limita de 64K, maxim la 256K capacitate total (3 plci de 64K fiecare plus 64K pe placa de baz), un numr considerat gigantic la acea epoc.

Fig . 2.7 Dezvoltatorii PC au prevzut o evoluie a sa i au permis o extensie posibil pn la 640K limita care a fost n realitate foarte repede atins. Cum procesorul 8088 (i 8086) puteau adresa pn la 1M spaiul rmas peste cei 640K a fost atrribuit pentru

29

memoria ecran, o memorie special numit BIOS i eventual pentru unele extensii viitoare. n tabelul de mai jos se d structura memoriei unui PC original, aceast memorie de 1Moctet fiind decupat n 16 segmente de 64K fiecare. Comentnd aceast organizare observm c primele 10 segmente sunt folosite pentru memoria RAM adic memoria dinamic cu proprietatea de a fi scris i tears Bloc 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Adres F0000-FFFFF E0000-EFFFF D0000-DFF C0000-CF.. B0000 A 9 8 7 6 5 4 3 2 10000-1FFFF 00000-0FFFF Coninut BIOS liber pentru memorie ROM liber pentru ROM ROM suplimentar memorie RAM pentru ecran RAM ecran suplimentar RAM 576K 640K RAM 512K 576K . . . . .. . RAM 64K 128K RAM 0K 64K

(read/write) n care se memoreaz programele ce se execut. Segmentul 0 are un rol mai special n el fiind memorate i unele rutine cruciale ale sistemului de operare. Segmentele A i B sunt rezervate pentru memoria video (monocrom sau color) i pot fi ocupate n ntregime cu adrese efective sau s fie numai parial ocupate pentru plci monocrom sau color cu rezoluie sczut. Segmentele C, D, E pot conine memorie ROM (Read Only Memory) pentru unele echipamente cum ar fi discul dur, plac de reea, etc. sau deasemeni s rmn neocupate. n ultimul segment (F) se gsete aa-zisa memorie BIOS (Basic Input Output System) care este o memorie de tip ROM (Read Only Memory) care la primele PC coninea i un interpreter BASIC ! Hardware PC nu este legat de o organizare specific a memoriei dar fr s doreasc IBM a fixat regulile i pentru ceilali constructori de PC care trebuie s respecte aceast configuraie de memorie pentru ca softul ce ruleaz pe PC-ul lor s fie compatibil cu cel de pe celelalte. 2.3. Succesorii PC original Calculatorul IBM PC nu a pus sfrit dezvoltrii microinformaticii dar a fixat cteva principii care sunt valabile pn n zilele noastre: funcionarea BIOS-ului, organizarea memoriei i colaborarea ntre P i circuitele auxiliare. Dac primul PC a aprut n 1981, n 1983 la acesta se ataeaz un disc dur de 10M, noul calculator numindu-se XT. Restul componentelor nu au fost afectate, instalndu-se numai un BIOS suplimentar n segmentul C de memorie ce coninea subrutinele pentru discul dur. 30

Calculatorul AT este introdus n 1984 numele provenind de la Advanced Technology. Vechiul procesor 8088 de la Intel a fost abandonat n favoarea ultimului produs la acea or, P 80286. Busul de date a rmas pe 16 bii dar liniile de adres au crescut de la 20 la 24 putndu-se adresa 16M de memorie. Discul dur s-a mrit la 20M discheta de 1,2M, ceasul de timp real cu acumulator sau baterie electrica ,numrul mrit de de ntreruperi hard i noi funcii BIOS introduse sunt numai cteva din mbuntirile introduse care fac s justifice numele de tehnologie avansat. Unele din noile inovaii introduse n construcia sa nu au putut fi nc folosite (modul de lucru protejat) dect mai trziu la introducerea lui 80386 i sistemul de operare Windows. PS/2. Odat lansat AT, IBM a cutat un nou standard i introduce un nou bus, busul MCA (Micro Channel) dar pstrarea secret a specificaiilor de bus au fcut ca interesul pentru aceast serie de sisteme s fie redus mai ales c plcile de extensie ISA nu puteau s funcioneze pe un astfel de sistem. n fapt PS/2 anun nceputul sfritului pentru IBM pe piaa PC. Dup AT: mai multe standarde Tot mai muli fabricani ncep s ofere microcalculatoare mai ieftine i mai performante. Astfel o societate precum Compaq produce primul AT bazat pe procesorul 80386 produs de Intel dup 80286. n continuare apar procesoare noi ca 80486DX care conine i procesorul matematic nglobat n cip i se construiesc calculatoare PC care toate bineneles sunt compatibile ca cele anterioare. Apariia procesoarelor din seria Pentium (586, 686, etc) fac ca performanele PC s urce la cote care nici nu se ntrezreau la apariia primelor PC, urmnd s vedem ce surprize ne rezerv viitorul ! ntrebri la cap. 2 1. Care sunt nivelele de acces ale aplicaiilor (software) la echipament ( hardware) ntr-un calculator de tip PC ? 2. Care este deosebirea dintre funciile de acces la hardware oferite de BIOS si SO (sistemul de operare , DOS de exemplu) ? 3. Ce avantaj ofer existena nivelelor intermediare de acces la hardware de tip BIOS sau sistem de operare (DOS) ? 4. Care sunt elementele principale aflate pe placa de baz a unui calculator PC ? 5 . Ce standarde de magistral (bus) cunoatei n evoluia calculatorului PC ? 5. Numii cteva caracteristici de baz ale busului PCI . 6. La ce se refer specificaia Plug & Play din construcia calculatorului PC ? 7. Ce circuite auxiliare intr n construcia unui PC ? 8. Care este principiul dup care funcioneaz tehnica DMA (Direct Memory Access ) la un calculator PC ? 9. Care este rolul circuitului auxiliar controler de ntreruperi ( i 8259 ) n arhitectura unui PC ? 10. Ce sunt circuitele CHIPSET aflate pe placa de baz a plcilor din noile generaii de PC ? 11. Care au fost succesorii calculatorului PC original ?

31

Cap. 3 ARHITECTURA INTERN A MICROPROCESOARELOR DIN FAMILIA INTEL PE 16 BII


n general cnd se vorbete despre un microprocesor (P) se nelege c acesta reprezint CPU (Central Procesing Unit) din arhitectura generalizat von Neumann. Dup ce s-au construit primele P pe 8 bii s-a cutat ca puterea de calcul a acestora s se mreasc prin creterea numrului de bii prelucrai trecndu-se la prelucrri pe 16 bii. Totodat s-au fcut unele inovaii n cadrul arhitecturii interne care au dus la o cretere a vitezei de prelucrare. Dac la P anterioarea unitatea de prelucrare lucra strict dup schema ciclic descris la arhitectura von Neumann de extragee a instruciunii, decodificare, execuie .a.m.d. la aceast serie nou de P unitatea de prelucrare este divizat n dou uniti (vezi fig. 3.1.):

. Fig. 3.1. unitatea de execuie (Execution Unit EU) unitatea de interfa cu magistral (Bus Interface Unit BIU) Dup cum se observ cele dou uniti sunt legate ntre ele cu o conduct (pipeline) prin care sunt transferate instruciunile extrase din memoria program de ctre BIU spre EU care are numai rolul de a executa instruciunile extrase de BIU, EU neavnd nici o legtur cu magistrala sistemului. n timp ce EU i ndeplinete sarcina , BIU extrage noi instruciuni pe care le organizeaz ntr-o coad de ateptare (queue). La terminarea execuiei unei instruciuni EU are la dispoziie deja o nou instruciune din coada de ateptare meninut de BIU. Cele dou uniti EU i BIU lucreaz deci n paralel existnd momente de sincronizare i ateptare ntre ele atunci cnd coada de instructiuni este goal ceea ce se ntmpl ns foarte rar. Funcionarea paralel a celor dou uniti BIU i EU este transparent utilizatorului. Aceast arhitectur se mai numete i arhitectur cu prelucrare secvenial paralel pipeline.

32

O schem bloc a unei structuri de P elaborat avnd ca baz aceasta arhitectur este dat n fig. 3.2. ca fiind caracteristic P INTEL din seria X86 (8086, 8088, 386). Unitatea de execuie EU conine o unitate logico aritmetic ALU de 16 bii, registrul indicatorilor condiionali (FR), registru operatorilor i regitrii generali. Toate registrele i canalele EU sunt pe 16 bii. BIU conine indicatorul de instruciuni IP (Instruction Pointer), registrele de segmente, un bloc de control al magistralei i de generare de adrese i o memorie . organizat sub forma unei cozi n care sunt depuse instruciunile extrase (Instruction Queue). Dup cum se cunoate informaia care se vehiculeaz n calculator se gsete sub form binar ca iruri de 0 i 1. Convenim n continuare s notm aceast informaie binar dup schema din fig. 3.3.

Fig. 3.2

33

Fig. 3.3. Vom detalia n continuare blocurile de regitri artnd i rolul unora dintre acetia n cursul execuiei programului. Avem urmtoarele categorii de regitri pe 16 bii: 1. regitri generali; 2. regitri de segment; 3. registru pointer de instruciune; 4. registrul indicatorilor de stare i control 1. Regitrii generali sunt n numr de 8 i sunt mprii n dou seturi a cte 4 regitri: regitrii de date AX, BX, CX, DX; regitrii de pointer i de index SP, BP, SI, DI (fig. 3.4.) Grupul regitrilor de date poate fi adresat i pe jumtate de registru (adic pe octet) avnd octetul inferior (Acumulator LOW) i octetul superior (Acumulator HIGH). La fel i ceilali trei. Deci fiecare registru de date poate fi folosit ca registru general de date pe 16 bii sau dou registre generale de 8 bii. Regitrii de pointer i index pot fi folosii numai pe 16 bii i particip la majoritatea operaiilor aritmetice i logice. Diferite instruciuni utilizeaz regitrii generali n mod implicit astfel: AX nmuliri i mpriri pe cuvnt, operaii de intrare / ieire pe cuvnt AL nmuliri, mpriri pe octet i operaii de intrare/ieire pe octet AH nmulire i mprire pe octet BX translatri CX operaii cu iruri i bucle CL deplasri i rotaii DX nmuliri, mpriri, operaii indirecte de intrare ieire SP operaii cu stiva (offset) SI, DI operaii cu iruri Registrul BP este folosit n mod curent pentru adresarea datelor din segmentul de stiv. 2. Regitrii de segment permit programatorului posibilitatea localizrii unui operand aflat n spaiul de memorie de 1M n spaiul de memorie cu adresele 00000h FFFFFh. Acest spaiu de 1 Moctet de memorie ce poate fi adresat de P 8086 este vzut ca un grup de segmente.

34

Un segment este o unitate logic de memorie care poate avea cel mult 64 Koctei (locaii contigue). Fiecrui segment i se atribuie o adres de baz care este adresa locaiei de nceput a segmentului. Valoarea acestei adrese se afl memorat ntr-un registru de segment. Exist 4 regitri segment conform figurii 3.5. i ei se gsesc localizai n BIU.

Fig. 3.4.

Dup cum se observ din fig. 3.6. n memorie pot exista, n funcie de poziia lor relativ segmente adiacente, parial suprapuse sau suprapuse complet si disjuncte. Deci fiecare aplicaie (program aflat n memorie) are la dispoziie un spaiu de 64K pentru codul instruciunilor (segmentul de cod) 64 koctei pentru stiv (segment de stiv) i 128 Koctei pentru date (segmentul de date i extra segmentul).

35

Fig. 3.5.

Fig. 3.6 . Unele aplicaii pot ns gestiona un spaiu de memorie mult mai mare fcnd gestionarea segmentelor dup propriile necesiti. Aceast mprire a memoriei n segmente de 64K provine din faptul c P pe 8 bii anterioare gestionau un spaiu de numai 64K. Proiectanii de la Intel au cutat ca i noile P pe 16 bii s foloseasc eventual programe scrise pentru P anterioare adoptnd aceast soluie a segmentului fcnd ns mai grea nelegerea adresriii memoriei fa de alte P de aceeai clas ca Motorola 68000 care permit o adresare liniar a memoriei. Generarea adresei fizice. Fiecare locaie de memorie are dou tipuri de adres: fizic;

36

logic. Adresa fizic este o valoare format din 20 bii care identific unic fiecare locaie din spaiul de adresare. Adresa fizic se gseste n domeniul 00000h FFFFFh i se mai numete adres absolut. Pentru a nu depinde de locul unde se afl codul n memorie folosesc aa zisele adrese logice i nu fizice. Adresa logic const dintr-o valoare de baz de segment i o valoare de deplasament (offset). Pentru orice locaie de memorie, valoarea de baz a segmentului este adresa primului octet al segmentului care conine locaia. Aceast adres este exprimat n paragrafe (paragraful fiind o unitate de 16 bii) iar deplasamentul (offset) este distana n octei de la nceputul segmentului pn la locaia respectiv. Adresa de baz i deplasamentul sunt valori pe 16 bii fr semn. Mai multe adrese logice pot localiza aceeai locaie fizic dac se afl n segmente diferite dup cum se observ din figura 3.7. BIU genereaz totdeauna o adres fizic dintr-o adres logic dup mecanismul prezentat n fig. 3.8. Se observ c n principiu, calculul adresei fizice se face prin deplasarea bazei segmentului (coninut ntr-un registru segment) cu 4 poziii spre stnga (ceea ce echivaleaz cu o nmulire cu 16) i adunarea valorii deplasamentului.

Fig. 3.7.

37

Fig. 3.8. . BIU obine adresa logic a unei locaii de memorie diferit n funcie de modul de referin a memoriei. nstruciunile sunt ntotdeauna ncrcate din segmentul de cod curent iar registrul IP conine deplasamentul instruciunii urmtoare fa de nceputul segmentului. Operaiile cu stiva opereaz, n segmentul de stiv curent iar registrul SP conine deplasamentul fa de vrful stivei. Variabilele se gsesc de obicei n segmentul de date iar deplasamentul este dat dup modul de adresare specificat n instruciune. Rezultatul este aa numita adres efectiv despre care vom mai vorbi la prezentarea modurilor de adresare. Operandul surs a unei instruciuni pe iruri se presupune a fi n segmentul de date curent iar SI va furniza deplasamentul. Operandul destinaie la operaiile pe iruri se afl ntotdeauna n extrasegment, iar deplasamentul este furnizat de DI. Acestea sunt atributele segmentelor n mod implicit. Unele din aceste atribuii pot fi schimbate. Figura 3.9. prezint grafic cele expuse anterior. .

38

Fig. 3.9. Cod relocabil dinamic. Faptul c memoria P8086 sau 8088 este segmentat face posibil scrierea de programe care sunt independente de poziia lor n memorie adic sunt relocabile dinamic. Aceste programe trebuie ns s ndeplineasc o sum de condiii. Dac aceste condiii sunt ndeplinite, programul poate s fie mutat oriunde n memorie. Dup cum se observ n fig. 3.10, un astfel de program a fost fcut s ocupe o zon contigu de memorie lsnd spaiu nefragmentat i pentru alte aplicaii. De asemenea, acest fapt este important atunci cnd programul este inactiv n memorie sistemul de operare mut programul pe disc i cnd se dorete s fie adus din nou n memorie zona n care a fost prima dat e ocupat de un alt program.Se schimb valorile registrelor de segment i programul poate rula din alt zon de memorie. 3. Pointerul de instruciuni (IP) este un registru pe 16 bii actualizat de BIU i conine deplasamentul (offsetul) instruciunii urmtoare fa de nceputul segmentului de cod curent. Programele nu au acces direct la el dar exist instruciuni care l modific i l ncarc sau l descarc de pe stiv. 4. Registrul de stare i control (Flags register) conine 6 indicatori de stare i 3 indicatori de control fiind notai conform fig. 3.11.

39

Fig. 3.10.

Fig. 3.11. Cei 6 indicatori de stare EU i poziioneaz pentru a reflecta anumite stri ale unei operaii aritmetice sau logice. Un anumit set de instruciuni permit modificarea execuiei unui program n funcie de starea acestor indicatori cum ar fi instruciunile de salt condiionat. Indicatorii de stare reflect urmtoarele condiii: C (Carry) reflect transportul n exterior a bitului cel mai semnificativ al rezultatului operaiilor aritmetice. P (paritate) este poziionat dac rezultatul are paritate par (conine un numr par de bii de 1) A (carry auxiliar) este poziionat dac a avut loc un transfer de la semioctetul inferior la semioctetul superior al rezultatului i este folosit n aritmetica zecimal. Z (zero) poziionat dac rezultatul operaiei a fost zero. S (semn) este poziionat dac cel mai semnificativ bit al rezultatului este 1 (1 numr negativ) O (depaire) poziionat cnd dimensiunea rezultatului depete capacitatea locaiei de destinaie i a fost pierdut un bit.

40

Pentru controlarea unor operaii a procesorului pot fi modificai (de program) trei indicatori de control: D dac este poziionat pe 1 operaiile pe iruri se vor decrementa; I poziionat pe 1 permite CPU s recunoasc cererile de ntrerupere externe mascabile; T (trap) poziionat pe 1 trece CPU n execuia de pas cu pas n scopul depanrii programului instruciune cu instruciune. Avnd la dispoziie aceste informaii schema general a CPU 8086 se poate detalia i n fig. 3.12. prezentm schema intern complet a unui P Intel 8086.

Fig. 3.12. ntrebri la cap. 3 1. Care sunt unitile de prelucrare n care este divizat CPU Intel pe 16 bii (micro P Intel 8088 , etc ) ? 2. Care este avantajul divizrii CPU n dou uniti de prelucrare independente la micro P Intel 8088 ? 3. Care este alctuirea EU ( unitatea de execuie ) a micro P Intel 8088 ? 4. Din ce este compus unitatea BIU (Bus Interface Unit) la micro P Intel 8088 ? 5. Care sunt regitrii generali ai microP Intel 8088 ? 6. Care sunt regitrii de pointer i index ai microP Intel 8088 ? 7. Ce este un segment de memorie ? 8. Care sunt regitrii de segment ai microP Intel 8088 ? 9. Ce este o adres fizic de memorie ?

41

10. Din ce este format o adres logic de memorie ? 11. Cum se calculeaz adresa fizic de memorie din adresa logic de memorie ? 12. Care sunt segmentele de memorie aferente unui program aflat n memorie ? 13. Ce se nelege prin cod relocabil dinamic ? 14. Numii 3 indicatori de stare i mcar 1 de control din registrul de stare i control ai micro P Intel 8088 ?

42

Cap. 4 NOIUNI DESPRE FUNCIONAREA I ADRESAREA DATELOR LA P PE 16 BII 4.1.Funcionare P la nivel de magistral
Dup cum s-a vzut pe placa de baz a calculatorului PC exist un circuit de ceas (clock) care genereaz un semnal de o anumit frecven - 14,3 Mhz PC original i peste 100 Mhz la cele actuale- care servete pentru execuia sincronizat a operaiilor din interiorul P i efectuarea transferurilor ntre diferite blocuri la nivelul magistralei externe. In timpul funcionrii activitatea P poate fi descompus n secvene de microoperaii care formeaz aa numiii ciclii main. Funcie de natura operaiei care se execut putem avea 5 tipuri de ciclii main : 1. Lectur(read). atunci cnd se citesc date din memorie sau de la dispozitivekle de i/o; 2. Scriere (write) cnd datele se inscriu in locaii de memorie sau intr-un dispozitiv de ilo; 3. Recunoatere ntrerupere n cazul generrii unei intreruperi pe care P o identific; 4. Oprire (halt) atunci cnd P este oprit pn la primirea unei intreruperi sau; 5. Arbitrare magistral cnd sistemul de calcule este prevzut cu mai multe P care pot avea acces la o magistral comun. Toate aceste opearii sunt descrise cu lux de amnunte n foile de catalog ale firmelor ce produc P. Vom exemplifica un astfel de ciclu de lecturi ntr-un mod simplificat cutnd s vedem ce semnale se vehiculeaz. Dup cum se observ n fig.4.1. semnalul reprezentat la t=0 este "0" logic, la t=2 incepe s creasc spre 1 logic, la t=3 deja este "1" logic se menine 2 ns i apoi "cade" inapoi la "0" logic.

Fig.4.1.

43

Aceasta este o diagram de semnal. In cazul acesta este diagrama de ceasului (clock-ului). n timpul unui ciclu de citire apar mai multe semnale care au o funcionare sincronizat, reprezentarea lor fcndu-se pe vertical. Fig.4.2. reprezint diagrama unui ciclu de citire.

Fig.4.2. n starea T1 se furnizeaz un semnal AS care face ca informaia de adres obinut din adresa de segment + adrese offset s fie stabil pe busul de adrese A0 A19 astfel c memoria are timp pn n starea T3 s selecteze aceast adres. In starea T3 semnalul RD (dela Read) face ca informaia furnizat de memorie sau de la dresa selectat s fie deja prezent pe busul e date D0 - D15 de unde este memorat de procesor ntr-un registru (AX cel mai adesea.). In realitate apar mult mai multe semnale care duc la citirea memoriei. Pentru celelalte cazuri exist cte o diagram la fel ca aceasta dar distribuia in timp a semnalelor va fi specific fiecrui tip de ciclu.

4.2. Moduri de adresare la 8088


Programul care se execut se gsete memorat in segmentul de cod. Dup cum am vzut intr-un capitol anterior cnd se incarc o instruciune din memorie adresa acestuia este furnizat de CS ca adres de baz i IP (pointerul de instruciuni) ca: deplasament. In mod normal coninutul lui IP este incrementat pe msur ce instruciunile se execut astfel ca totdeauna s fie deja selectat instruciunea care urmeaz. Instruciunile de salt necondiionat sau apel proceduri pot ns modifica IP sau IP i CS, modificndu-se astfel ordinea secvenial de execuie a instruciunilor.

44

Adresarea datelor Datele din memorie care formeaz operanzii instruciunilor pot fi adresate in mai multe moduri. Aceti operanzi pot fi coninui n regitrii, n memorie, n instruciuni sau porturi de I/O. Operaiile care implic date numai din regitrii sunt rapide nefiind nevoie de acces la magistral pentru acces la memorie. Pentru aflarea adresei operandului se folosesc denumirea de adres segment (AS) pentru adrese de inceput a segmentului in care se afl operandul i adres efectiv (AE) pentru deplasaamentul operandului in cadrul segmentului . AF (adres fizic) se calculeaza conform mecanismului

AS *10h + AE = AF
Adresa efectiv este calculat de ctre unitatea de execuie (EU) i furnizat unitii de legturi cu magistrala (BIU) care va calcula adresa de segment dup algoritmul de mai sus . (Fig. 3.8 din capitolul anterior red acest mecanism, atunci cnd am vorbit despre calculul adreselor fizice la procesorul I8088 ). Registrii folosii i modul de adresare (memorie sau registru) sunt codificate in cadrul instruciuni. Vom avea urmtoarele tipuri de adresare: 1.Adresare imediat n acest caz operandul apare chiar in instruciune: Ex: mov ax,1 Aceast instruciune va iniializa reg. AX cu 1. 2.Adresare direct AE este obinut prin furnizarea de ctre instruciune a unui deplasament in interiorul segmentului curent (in interiorul segmentului de date de obicei). Ex. add bx, [200] Aceastr instruciune adun la reg. BX coninutul locaiei de la adresa efectiv 200.din segmentul de date. Schema dup care se execut este dat in fig. 4.3.

Fig. 4.3. 3. Adresare indirect (rin registrii) Ae este furnizat de registrii BX, SI sau DI iar registrul segment implicit este bineineles DS dup schema din fig.4.4.

45

Fig. 4.4. Ex. mov ax, [bx] Coninutul adresei de memorie de la adresa dat de BX ( BX conine de fapt offsetul dup cum am vzut !) este transferat in AX. Observm c BX,SI,DI conin adrese i nu valori numerice. 4.Adresare bazat sau indexat AE se obine adunnd la unul din registrii de baz (BX sau BP) sau index (SI sau DI) un deplasament constant dup scheme din fig.4.5.

Fig.4.5. Ex. mov ax, 5 [bx] La coninutul adresei de baz din bx se adun deplasamentul S i se obine offsetul operandului. Aceste tipuri de adresare se pot folosi cnd avem structuri de date care pot fi localizate in diferite locuri din memorie.Reg. de baz va conine adresa de inceput a structurii iar deplasamentul va furniza adresa elementelor din structur. 5.Adresare bazat i indexat Este cea mai complex i se face dup schema din fig.4.6.

46

Fig.4.6. Ex. mov ax,[bx +si +7] Aceasta din urm combin celelalte anterioare fiind cea mai complex permind adresarea cu 2 indecsi (coninuturile reg. de baza i indeci). In cele artate anterior, de obicei registrul segment implicit este cel de date presupunnd c se adreseaz operanzi de calcul obinuii n afara cazului cnd se foolosete BP cnd reg. de segment mplicit este SS. Dac nu se dorete folosirea implicit a reg. de segment atunci n instruciune se va preciza explicit despre care reg. de segment este vorba cum ar fi n instruciunea urmtoare: mov bx, ds: [bp + 7] Dac nu precizam DS implicit se folosea SS fiind vorba de BP care lucreaz cu SS in mod implicit. Instruciunile P8088 se pot intinde pe 1 pn la 6 octei. Codificarea conine codul instruciunii (tipul operaiei - adunare, scdere, salt, etc) modul de adresare (cu registru sau cu memoria) deplasamentul operandului sau adresa efectiv cu adresarea direct), date imediate, pe 8 sau 16 bii. Formatul unei instruciuni de INC incrementare registru-pe 1 octet este prezentat n fig. 4.7.

4.3. Codificarea intern a instruciunilor

.. Fig. 4.7. unde OP cade ocup 5 bii i d codul operaiei de incrementare iar cei 3 octei din cmpul REG specific unul din registrii general, pointer sau index

47

Fig.4.8. arat codificarea efectiv a instruciunii INC BP Mai exist o form a instruciunii care poate incrementa i orice cuvant de memorie pe lng registri i ea se scrie pe 2 octei. Nu vom intra n amnunte spunnd numai c cei 16 bii au cmpuri bine precizate pentru a indica exact modul de adresare i regitrii care intervin n calcul adresei. Amnunte se gsesc n tabelele ce conin setul de instruciuni ai procesorului

4.4. Stiva (Stack)


O zon special de memorie este folosit de programe atunci cnd se execut subprograme sau se transmit parametrii de la un program cu altul. Aceast zon poart numele de stiv (stack n englez). fiindc funcionarea ei este asemntoare cu cea a unei stive fizice de obiecte. Vonm trata aici succint stiva numit LIFO (Last Input First Output). In acest tip de stiv datele au voie s fie depuse numai prin partea superioar astfel c ceea ce am depus ultima dat (Last input) va fi disponibil fiind deasupra stivei i va putea fi scos eventual (First Output). Stiva este folosit implicit n mecanismul de apel al procedurilor . Fig.4.9. ilustreaz un astfel de caz. Atunci cnd s-a ajuns cu pointerul de instruciuni la adresa 1000 se execut un apel la procedura PROC care se gsete n memorie la adresa 3000. Cnd se termin de executat procedura trebuie s ne ntoarcem inapoi la prima instruciune de dup instruciunea de apel procedur (1001 n cazul nostru). Deci, adresa 1001 trebuie s fie memorata undeva pentru ca la revenirea din procedur s relum programul din acel loc. Stiva se folosete pentru a memora aceast adres de revenire. Microprocesorul este proiectat astfel inct automat la execuia unui apel de procedur (CALL) salveze in stiv urmtoarea adresa de memorie care contine instructiunea urmatoare din secventa ( de fapt continutul registrului IP). Cnd se intlnete in subrutin instruciunea de RETURN (revenire din subprogram) tot automat P ia din vrful stivei adresa gsit i o incarc in registrul IP (pointerul de instruciuni) executnd apoi, instruciunea gsit la aceast adres (adic instruciunea de la adresa 1001). Putem defini stiva ca un concept abstract de structur de date asupra crora opereaz instruciuni special proiectate in acest scop. O zon de stiv este caracterizat de o adres curent numit adresa vrfului stivei (top stack) i care la P 8088 este adresat prin registrul SP (stack pointer indicator de stiv). Registrul de segment SS (Stack Segment) va indica adresa de inceput a segmentului de stiva in memoria sistemului. Deci i pentru stiv este alocat implicit o zon de 64 Koctei (lungimea standard a unui segment ! ). Operaiile de baz cu stiva sunt PUSH (depune un cuvnt in stiv) sau POP (extrage un cuvnt din stiv)..

48

Fig. 4.9. La P 8088 cuvintele transferate in stiv sunt de 16 bii. (2 octei adica un cuvint ) deci adresa curent a vrfului stivei se va incrementa sau decrementa cu 2. Fig.4.10. prezint modul de aciune a unei operaii de PUSH. Se observ c stiva "crete" in jos pe msur ce se depun date in ea. Mrimea maxim a ei este de 64k. Pot exista mai multe stive definite la un moment dat dar numai una este activ. Stiva este folosit explicit la salvri sau refaceri de date, transmiterea parametrilor ctre proceduri etc. Implicit se folosete in cazul apelurilor de procedur. Deasemeni programele care permit definirea si folosirea functiilor recursive folosesc stiva pentru memorarea valorilor inermediare a parametrilor si valorilor functiilor.

49

Fig.4.10.

ntrebri la cap. 4
1. Care sunt ciclii de main pentru un micro P Intel 8088 ? 2. Ce moduri de adresare cunoatei la micro P Intel 8088 ? 3. Dai exemplu de adresare imediat la microP Intel 8088 ? 4. Dai exemplu de adresare direct la microP Intel 8088 ? 5. Dai exemplu de adresare indirect la microP Intel 8088 ? 6. Dai exempu de adresare bazat sau indexat ? 7. Ce este stiva ? 8. Dup ce principiu funcioneaz stiva implementat la microP Intel 8088 ? 9. La ce servete stiva implementat la microP Intel 8088 ? 10. Ce instruciuni (operaii) se pot folosi cu stiva la microP Intel 8088 ?

50

Cap.5 NTRERUPERI
Unul din marile avantaje ale unui calculator fa de orice alt main creat de om este aceea c un calculator este capabil s rspund la un numr mare de sarcini imprevizibile. Cheia acestor posibiliti o constitie ceea ce numim intreruperi. Cu ajutorul lor calculatorul poate intrerupe o sarcin pe care o execut i s o comute pe o alta ca rspuns la intreruperea intervenit (cum ar fi de exemplu apsarea unei taste sau primirea unui fax prin modem !). Acest mecanism face ca sistemul de calcul s fie foarte flexibil permind un rspuns imediat la un eveniment extern prin intreruperea sarcinii curente i reluarea acestei sarcini dup ce s-au rezolvat cerinele impuse de acest eveniment extern.Noiunea de ntrerupere presupune ntreruperea programului in curs de execuie i transferul controlului la o anumit rutin de tratare a intreruperii, rutin numit rutin de gestiune a intreruperii.Mecanismul dup care se face acest transfer este in esen de tip apel de procedur, ceea ce inseamn c se revine in programul intrerupt din locul unde acesta a rmas dup ce s-a terminat rutina de intrerupere. Acest mecanism a fost explicat succint in cap.2. in cadrul paragrafului controlerul de intrerupere. n continuare vom dezvolta acest subiect prezentnd noi aspecte .

5.1. ntreruperi hardware i software


Clasificarea intreruperilor se poate face dup mai multe criterii. Una din aceste clasificari este prezentat n fig.5.1.

Fig.5.1 Intreruperile software apar in urma execuiei de ctre P a unor instruciuni cum ar fi INT, INT , DIV, IDIV, softul fiind deci cauza lor. Intreruperile hardware externe sunt provocate de semnale electrice care in ultima instan sunt aplicate pe intrrile INT i NMI ale P. Intreruperile hardware interne apar ca urmare a unor condiii speciale ale procesorului (cum ar fi execuia pas cu pas in cazul depanrii programelor). Intreruperile externe dezactivabile se aplic pe intrarea INT i sunt luate in cosiderare numai dac bistabilul IF (intrerupt Flag) din registrul indicatorilor de condiie = 1.

51

Intreruperile externe nedezactivabile au loc la aplicarea unui semnal corespunztor pe intrarea NMI (Non Mascable Interrupt) i sunt luate in considerare intotdeauna (ex: cderea tensiunii de alimentare).

ntreruperi hardware dezactivabile


Aceste intreruperi sunt controlate de unul (la PC original) sau mai multe circuite specializate (la AT i celelalte calculatoare) numite controler de intreruperi de tipul Intel 8259. Acest circuit are menirea de a culege cereri de intrerupere de la mai multe dispozitive, s stabileasc eventual o prioritate dac exist mai multe cereri de intrerupere simultane i n final s transmit un semnal de intrerupere pe pinul INT al P i un semnal de identificare a dispozitivului periferic care a fcut cererea. Fig.5.2. ilustreaz a schemei de intreruperi a P 8088 folosit n calcutoarele PC. La calculatoarele care au urmat PC (AT, 386, etc) se folosesc asemenea controlere de intrerupere legate in cascad dup cum se observ din figura 5.2. Dac la una din liniile IRQ0 - IRQ7 (IRQ = intrerupt Request) i liniile IRQ8 IRQ15 pentru AT se primete o intrerupere de la un dispozitiv periferic (s-a apsat o tast, pe interfa serial legat la modem a sosit un fax, trebuie s se fac un ciclu de refresh la memorie, etc.) acest semnal este analizat de controlerul 8259 i in final acesta va genera o

Fig. 5.2 intrerupere pe linia INT ctre P. Dac in P bistabilul IF = 1 (adic intreruperile hardware externe, sunt activate), P va trimite inapoi controlerului un semnal INTA (interrupt Acknowlege-recunoastere intrerupere) prin care il anun c intreruperea este recunoscut i acceptat. In continuare, controlerul de intrerupere va depune pe 52

busul de date un octet care va identifica typul intrerupere (nivelul intreruperii). Controlerul de intrerupere 8259 avnd 8 intrri pentru intreruperi de la echipamente va putea s trimit 8 valori diferite, fiecare indentificnd unic una din cele 8 intrri. Se mai spune c controlerul poate furniza 8 vectori de intreruperi identificai prin octetul typ iar sistemul de intrerupere la P 8088 este un sistem de intrerupere vectorizat. Cum cu un octet (8 biti) se pot efectua 256 de combinaii diferite vor putea exista 256 de valori diferite ale octetului typ de intrerupere. Deci intr-un sistem cu P 8088 pot exista maxim 256 de nivele de intrerupere diferite. Pentru fiecare nivel (valoare a octetului typ) se poate asocia o procedur (rutin sau subprogram) de deservire a intreruperii respective. Deci maxim 256 de proceduri. Adresele acestor rutine sunt trecute intr-o aa zis tabel de intreruperi care se afl memorat in memorie RAM in primii 1024 de octei (1 octet). Datorit faptului c fiecare rutin de intrerupere se poate afla in segmente diferite pentru a identifica adresa unei rutine trebuie s-i furnizm adresa de segment (CS) (2 octei) i adresa ofssetului (IP) (nc 2 octei) deci o adres va ocupa 4 octei. Cum sunt 256 de posibile intreruperi 256 x 4 = 1024 octei = 1K. Se observ deci c apelul este de tip FAR adic salt intersegment. In fig. 5.3. se d o reprezentare a modului in care este ocupat memoria sistemului cu tabela aceasta de adrese. Deoarece fiecare grup de 2 cuvinte (4 octei) desemneaz o adres de memorie unde se gsete rutina pentru o intrerupere tabela se mai numete tabela vectorilor de ntreruperi. Amplasarea adresei subrutinei de ntrerupere n tabel se realizeaz in funcie de octetul typ care d nivelul de intrerupere.

Fig.5.3. Am vzut c acest octet poate lua 256 de valori. Formula <Octetul typ *4 > (adica se inmulteste de doua ori cu baza 2 ceea ce se traduce prin adaugarea a doi de zero octetului typ )va furniza adresa din memorie unde se gsete vectorul de intrerupere (adresa rutinei de intrerupere) pentru nivelul furnizat de octetul typ. La apariia unei intreruperi in P au loc urmtoarele aciuni: 53

se salveaz in stiv registrele FLAGS, CS i IP in aceast ordine. se sterg bistabilii IF i TF (adic se blocheaz execuia unei alte intreruperi in timpul execuiei programului pentru intreruperea in curs iar TF blocheaz execuia pas cu pas a rutinei de intrerupere). se furnizeaz P un octet (8 bii in gama 0 - 255) numit i octet typ care identific nivelul asociat ntreruperii. se execut salt indirect intersegment la adresa de nceput a rutinei detratare a intreruperii folosind tabela de ntreruperi de unde se incepe executia programul corespunztor rutinei de tratare a intreruperii. Fiecare component a calculatoruluii care poate s aib nevoie de P la un moment dat are propriul su nivel de ntrerupere. Tastatura, ceasul intern, unitile de disc, imprimantele, placa de reea etc., toate acestea au fiecare un nivel de ntrerupere rezervat. La apsarea unei taste se genereaz intreruperea de tastaur, de 18 ori pe secund CPU este oprit derularea programului i se deruleaz o rutin de ceas care actualizeaz ceasul intern, discul trimite o intrerupere cnd este terminat un transfer iar imprimanta cnd nu are hrtie, placa de reea cnd primete un pachet de date, adresat ei, etc. Deci observm c activitatea P se desfoar intr-o venic posibilitate de a fi, intrerupt de altcineva care are mai mare nevoie de P dect aplicaia ce ruleaz. Interesant este c intreruperile nu au fcut parte din conceptul primelor calculatoare. La inceput calculatoarele au fost folosite fr acest mecanism de intrerupere. Astzi este greu de imaginat un calculator fr sistem de intreruperi implementat in cadrul sau hard si soft. Conceptul de intrerupere s-a dovedit att de eficient i util inct a fost adaptat la o mare varietate de alte necesiti ale calculatorului. Pe lng intreruperile hardware despre care tocmai am vorbit exist i intreruperi care sunt generate in interiorul CPU ca urmare a faptului c s-a intamplat ceva ce nu are sens- de exemplu s-a incercat o imprire prin zero. In acest caz se genereaz o intrerupere intern de excepie. ntreruperi software Aceast categorie de intreruperi nu apare pe neateptate ca cele hardware descrise anterior. Ideea care st la baza intreruperilor s-a dovedit att de eficient i productiv inct acestea, (intreruperile) au inceput s fie utilizate in cadru programator pentru a solicita servicii executate de alte programe din calculator. Acest tip de intreruperi se numesc intreruperi soft. Dup cum am vzut, atunci cnd se construieste un PC exist un set de programe interne integrate continuate intr-o memorie ROM (Read Only Memory) i care formeaz aa zisul BIOS. Dac programele de aplicaii au nevoie de funcii oferite de BIOS modul de apelare a acestora il constituie intreruperile soft. Serviciile BIOS sunt puse la dispozitia programului de aplicaie prin execuia unei instruciuni de intrerupere soft de tipul INT n unde n reprezint nivelul de intrerupere solicitat. Intreruperile soft funcioneaz la fel ca i celelalte tipuri de intrerupere cu o singur diferen. Ele nu sunt declanate de un eveniment neateptat sau aleatoriu ci sunt produse intenionat de ctre program cu un anumit scop. Sistemul de operare DOS care a fost primul SO implementat pentru PC folosete de asemenea intreruperi software pentru apelul unor funcii necesare derulrii programelor de aplicaie sub directul su control.

54

Aceste funcii BIOS sau DOS apelate prin intermediul intreruperiolor software sunt tratate de ctre procesor ca subprograme care dup ce se termin redau controlul programului apelant. Programul care face apel la o funcie DOS sau BIOS nu are nevoie s cunoasc adresa de memorie a subrutinei corespunztoare ci este suficient sa indice numrul intreruperii alocate acelei funcii i eventual parametrii auxiliari, necesari funciei. Aceste intreruperi sunt standardizate. Astfel de exemplu, serviciile i funciile DOS sunt asigurate toate cu ajutorul intreruperii 21H. Literatura i documentaia descriu aceste funcii i modul lor de apel. Vom mai face cteva observaii asupra modului de funcionare a intreruperilor intr-un PC. Ultima instruciune dintr-o subrutin de intreruperi este instruciunea IRET (interrupt Return) care are rolul de a restaura in ordine invers ceea ce a fost salvat in stiv adic IP, CS i registrul Flags rednd controlul programului principal. Dac rutin de intreruperi lucreaz cu registrii procesorului i distruge valorile coninute in acestea, revine in grija programatorului ca acest coninut registrilor distrui s fie eventual salvai explicit in stiv prin instruciuni de tip PUSH la inceputul subrutinei de intrerupere iar la sfrit, inainte de terminare s fie refcui aceti regitri prin instruciuni POP corespunztoare. Astfel programul care a fost intrerupt i-i reia lucrul cu valorile care erau in acel moment in registrii procesorului. Dup cum am vzut imediat ce s-a declanat o intrerupere indicatorul IF este trecut pe 0 ceea ce inseamn c intreruperile hard care pot surveni in acel moment sunt dezactivate. De aceea este bine ca s se foloseasc ct mai repede o instruciune de tip STI (set intrerupt) care armeaz (activeaz) din nou sistemul de intreruperi bineineles dac programul rutinei de intrerupere nu execut o poriune in care nu are voie s fie intrerupta. Tabela vectorilor de intreruperi dup cum am vzut este plasat in memoria RAM (deci cea in care se poate sterge i inscrie alt valoare !). Aceasta face ca eventual adresele rezervate in ea pentru desemnarea subrutinelor de intreruperi s fie schimbate chiar de unele programe i eventual utilizatorii s-i scrie propriile programe pentru tratarea unei intreruperi sau mai multe. Este exact ceea ce fac aa zisele programe TSR,(Terminate and Stay Residente) care se instaleaz in memorie i rmn instalate pn la o comand explicit pentru eliberarea memoriei. Acestea modific adresa rutinei de tastatur din tabel, filtrnd toate caracterele care se introduc la tastatur. Atunci cnd combinatia de taste pentru activare este identificat in irul de caractere introduse la tastatur programul din memorie, care dormita este activat i i execut sarcina pentru care a fost scris. La scrierea unor asemenea programe trebuie cunoscut bine arhitectura i sistemul de operare existnd pericolul ca eventual sistemul s se blocheze. Aceast poart de intrare in sistemul de operare prin intermediul intreruperilor este folosit i de unele programe ruvoitoare cum ar fi viruii , cal trojan ,etc. Aceste programe se zice c fur o intrerupere adic ii introduc in tabela de intrerupere in locul adresei normale -pentru apelul intreruperii de disc dur sau pentru un alt echipament- propria lor adres de apel!. La declanarea normal a intreruperii de disc se lanseaza acest program pirat care poate eventual poate cauza o formatare a discului dur -ceea ce poate avea un efect catastrofal asupra integritii datelor in PC-sau o alta activitate cu caracter nociv pentru executia normala a progrsamului. Pe ct de puternic este sistemul de intreruperi in activitatea unui pocesor pe att de mare poate fi pericolul folosirii necorespunztoare a acestuia de ctre persoane ru intenionate.

55

Sistemele de operare mai noi (Windows NT, Windows2000, WindowsXP,Linux, OS/2) limiteaz accesul la partea de hard tocmai din aceast cauz. Programele de aplicaie lucreaz pe procesoarele noi intr-un mod utilizator in care nu pot accesa direct hardul .Accesul la hardware se face numai prin intremediul sist. de operare si eventual trebuie sa ai drepturi de administrator sau sau root procesorul in acest caz este trecut din modul utilizator in modul system cu acces la toate functiile pentru ca s de poat accesa funciile speciale ale echipamentelor. n felul acesta orice incercare care ar putea sa produca daune in sistem si ar veni din partea unui utilizator obisnuit sau rau intentionat este blocata i sistemul devine mai sigur in exploatare .

Procesoare CISC i RISC


Procesoarele Intel din seria x86 fac parte din aa zisele procesoare CISC (Complex Instruction Set Computer - calculator cu set complex de instruciuni). Acestea sunt procesoare la care setul de instruciuni cuprinde un numr mare de operaii implementate. Totodat acestea se pot executa cu operanzi a cror adres poate cere timp pn se calculeaz i dup aceea se execut instruciunea propriu-zis. S-a vzut inc incepnd chiar de la calculatoarele mari (mainframe) a anilor 1950 c, execuia operaiilor simple cu operanzi in registrii iau mai puin timp de calcul. In plus odat cu dezvoltarea softului de aplicaii i prin studii statistice efectuate de companii ca IBM s-a demonstrat c instruciunile complexe din procesoarele CISC sunt rareori folosite preferndu-se folosirea a ctorva instruciuni simple in locul uneia mai complex. Astfel 10% din setul de instruciuni a unui procesor CISC st la baz a peste 90% din totalul codului generat de un compilator ca PASCAL-ul. Cercetrile s-au indreptat spre proiectarea unor procesoare cu instruciuni mai puine, cu muli registri i memorie imediat in care s fie reinute datele temporare precum i cu vitez mai mare. Astfel aa zisele procesoare RISC (Reduced Instruction Set Computer - Calculator cu Set Redus de instruciuni). Acestea s-au dezvoltat imediat ce tehnologia a permis obinerea de memorie ieftin. Simplitatea setului de instrucini, modul de adresare mai simplu care necesit un singur acces la memorie principal intr-un sungur impuls de ceas i execuia instruciunilor in structuri de tip pipeline au permis proiectarea unor uniti de execuia superscalare care permit execuia mai multor instruciuni simultan. Aceasta au dus la succesul structurilor de tip RISC, care s-au impus alturi de cele mai vechi de tip CISC. In ultimii 15 ani nu s-au mai proiectat noi structuri CISC. Simplitatea structurilor RISC, nevoia mai puin de siliciu i deci posibilitatea de integrare pe cip a unor memorii i uniti de execuie multiple au fcut ca acestea s fie mai performante dect cele de tip CISC. Procesoarele noi din seria X86 folosesc n structura lor tehnici RISC ele ns pstrnd vechea structur CISC. Acest set de instruciuni complex face ca softul mai vechi s fie completibil i pe cele actuale. Dac dorii un calculator cu procesor RISC s-ar putea s nu beneficiai de tot softul care s-a scris. pentru procesoarele CISC de pe PC. Procesoare reprezentative de tip RISC sunt SPARC MIP i ALPHA RISC. Sistemul de operare mai nou Windows NT poate lucra multiplatform adic pe procesoare CISC i RISC pe cnd Windows 98 este disponibil numai pe platform CISC adic x86.

56

Procesoarele DSP (Digital Sygnal Processor) Dup cum spune i numele - (Procesor de Semnal Digital) este proiectat special pentru a controla semnalele analogice intlnite n lumea real i care au fost convertite n semnale numerice (digitale). Se folosesc pentru sinteza sunetelor , modemuri, comprimari de semnale video i audio, acceleratoare grafice 2D i 3D precum i prelucrri video. In ele sunt integrate tehnologii avansate de prelucrare ,specifice procesoarelor moderne -arhitecturi SIMD sau MISD - . Viitorul cu toate aplicaiile sale multimedia vor face ca acestea s ocupe un loc important n viitoarele arhitecturi de calculatoare si sisteme de calcul ptr. calculatoarele de acasa ! ntrebri la cap. 5 La ce se refer noiunea de ntrerupere la un sistem PC ? Dai un mod de clasificare a ntreruperilor ntr-un sistem PC . Cnd vorbim de ntreruperi software la un sistem de calcul PC ? De cine sunt provocate ntreruperile hardware externe la un calculator PC ? 5. Cine provoaca ntreruperile hardware interne la un PC ? 6. Care este rolul unui controler de ntreruperi de tipul i 8259 ? 7. Cine permite s fie acceptate ntreruperile hardware externe 8s fie active ) ? 8. Care este scopul octetului typ trimis de controlerul de ntreruperi la acceptarea unei ntreruperi externe ? 9. Cte nivele de ntrerupere pot exista ntr+un sistem PC i de ce attea ? 10. Unde se gsete plasat tabela vectorilor de ntrerupere la un PC ? 11. Cum se determin adresa n tabel a vectorului de ntrerupere ptr un nivel dat de ntrerupere ? ( de exemplu ntreruperea 21h) . 12. Cine provoac ntreruperile software ntr-un PC ? 13. La ce sunt folosite ntreruperile software ? 14. n noile sisteme de operare (bazate pe tehnologia NT ) este permis utilizatorului accesul la gestiunea ntreruperilor ? 15. Ce sunt procesoarele de tip CISC ? 16. .Ce sunt procesoarele de tip RISC ? 17. Ce sunt procesoarele DSP ? 1. 2. 3. 4.

57

Cap. 6 MEMORIA
6.1. Generaliti Dup cum am vzut n cadrul arhitecturii von Neumann emoria constituie unul din elementele de baz ale structurii unui sistem de calcul, rolul ei fiins acela de a memora n primul rnd programul i datele care se prelucreaz. La nceput, primele calculatoare dispuneau de puin memorie i era nevoie de mult inventivitate din parteaprogramatorilor ca aceasta s ajung pentru programele care tindeau s devin tot mai lungi. Odat ce tehnologia a oferit posibilitatea ca aceasta s poat fi obinut la un pre acceptabil, ea s-a diversificat aprnd mai multe tipuri de memorie ntr-un calculator, fiecare din acestea avnd locul i rolul ei bine stabilit. Memoria unui calculator PC cuprinde n principal dou tipuri: A) Memorie RAM B) Memorie ROM A) Memoria RAM Numele acesteia provine de la denumirea ei n englez: Random Access Memory. Informaia care se gsete stocat n ea la diferite adrese (cod de program sau date) poate fi citit sau nscris cu o nou informaie. Se spune c suport att operaii de citire (read) ct i operaii de scriere (write). Informaia elementar care se memoreaz este o informaie binar de 0 sau 1 iar circuitul fizic elementar care poate memora aceast informaie se numete bistabil (are dou stri stabile crora li se asociaz valoarea 0 sau 1). Dac aceti bistabili sunt alctuii din doi tranzistori se spune c memoria RAM este de tip static deoarece informaia odat nscris se pstreaz nealterat pn eventual la oprirea calculatorului cnd se pierde. Pentru o celul de memorie s-a reuit s se foloseasc numai un singur tranzistor (deci densitatea de informaie memorat va fi dubl fa de cea anterioar), acest tip de memorie numindu-se de tip dinamic. Aceti tranzistori pot s-i piard sarcina electric pe care o nmagazineaz (deci informaia memorat n ultima instan) i atunci este nevoie de o operaie de remprosptare permanent (refresh) care se face cu ajutorul unor circuite concepute n acest scop (un refresh la minimum 2 ms). Aceste blocuri de memorie RAM au n general o organizare matriceal dup cum se vede n fig. 6.1. Dac la nceput aveau forma unor circuite integrate distincte, odat cu evoluia tehnologiei aceste cipuri au fost plasate pe plcue de memorie cu 30, 72, 162, etc picioare i capacitatea lor a crescut de la 256K, 1M, 2M, 4M, 8M, 16M, 32M , 64M, 128M, 256M sau in viitor mai mult. n unele publicaii se poate ntlni i termenul de DRAM (Dynamic Random Access Memory memorie dinamic cu acces aleator) care precizeaz c este de tip dinamic i cu unele denumiri ca SIMM (Small Inline Memory Modules ), DIMM,DDRAM etc.

58

Fig. 6.1. B) Memoria ROM Aceast memorie nu suport dect citirea datelor din ea (ROM Read Only Memory memorie numai pentru citire) i la fel ca i memoria RAM, capacitatea ei a crescut odat cu evoluia tehnologiei de la circuite de 1K la 2K, 4K 8K, 16K, 32K, 64K, etc.Dac informaia care este nscris ntr-un modul se mai poate terge i rencrca, se spune c avem de-a face cu ROM-uri programabile( pn la 50 100 de renscrieri). La primele tipuri de memorii ROM tergerea se face cu lumin ultraviolet printr-o fereastr de cuar plasat deasupra chipului avnd memrie de tip EPROM. Dac tergerea se face electric avem EEPROM (Electrical EPROM).Aceasta tergere i renscriere a informaiei se fcea in dispoyitive speciale numite programatoare de ROMuri . n momentul de fa tergerea i reprogramarea se face strict electric , crcuitul rmne pe placa unde este montat folosindu+se aa zisa memotie ROM de tip flash. Acest tip de memorie poate fi ters i reprogramat de cteva mii de ori . Memoria ROM se folosete n PC pentru memorarea programelor BIOS Basic Input Output System despre care s-a mai amintit. 6.2. Alocarea memoriei pentru pentru sistemul de operare DOS n figura 6.2. se preyint o hart a memoriei n care se recunosc unele segmente care au fost prezentate ntr-un capitol anterior. Se observ c pentru programele de aplicaie sunt disponibili 640K de memorie. n realitate nu toi aceti octei sunt disponibili.

59

Din figura 6.3. se observ c att sistemul de operare DOS ct i BIOS-ul calculatorului folosete o parte din memoria RAM disponibil pentru memorarea unor date necesare bunei lor funcionri. Pentru asigurarea portabilitii programelor (adic pentru ca programele s poat rula pe orice tip de calculator PC) sub sistemul de operare DOS proiectanii DOS-ului recomand dezvoltarea unor apeluri de funcii cu structura din fig. 6.3. Astfel programul utilizator va apela o serie de funcii ale sistemului de operare care la rndul su acceseaz funcii specifice echipamentului hardware existent cu ajutorul funciilor BIOS specifice.

Fig. 6.2.

Fig. 6.3.

60

Dup cum am vzut, pentru simplificarea apelurilor funciile BIOS respectiv DOS, acestea sunt apelate cu instruciuni de tip INT n adic ntreruperi software de nivel n. Pe lng furnizarea lui n n instruciunea propriu-zis se mai furnizeaz n plus i informaii suplimentare prin octei specifici plasai n preambulul apelului ntr-un registru (AX de obicei) sau chiar mai muli regitri. Astfel de exemplu funcia INT 10H ofer o varietate de servicii BIOS pentru gestionarea ecranului. Trebuie avut grij ca nainte de apelul acestei funcii n registrul AH s se ncarce un octet care s specifice servicul video apelat.DE exemplu , 00H va selecta modul video, 01H va stabili dimensiunea i forma cursorului, 02H va stabili poziia cursorului .a.m.d. Exist mai multe funcii BIOS care pot fi apelate n acelai mod ca cel descris anterior. Dac avem nevoie de anumite servicii asigurate de ctre sistemul de operare DOS, apelarea acestora se face cu int 21H care este specific acestui sistem de operare. n prealabil se va ncrca: registrul AH cu numrul funciei; registrul AL cu numrul subfunciei; dac este necesar se ncarc i ceilali regitri cu date; se apeleaz INT 21H De exemplu, dac se dorete ca un program s se termine i s se predea controlul procesului printe se poate folosi funcia 4CH cu urmtoarea secven simpl de instruciuni: mov ah, 4ch int 21h Ea este folosit n mod curent la terminarea programelor scrise n limbaj de asamblare pentru redarea controlului ctre sistemul de operare DOS (cunoscut i sub numele de funcia EXIT). Figura 6.4. schieaz care sunt componentele principale ale BIOS ului i eventual rolul jucat de acestea.

Fig. 6.4. n momentul pornirii singurul program care poate fi apelat este cel din memoria ROM i anume modulul BIOS de pornire (boot la rece !). Acesta are rolul de 61

a face un test scurt al sistemului pentru aflarea configuraiei existente (POST Power autotestul de pornire), iniializeaz anumite echipamente i trece la ncrcarea SO DOS de pe disk sau de pe disket. Pe lng aceast funcie tot n BIOS sunt memorate programele de ntreruperi hard precum i serviciile BIOS oferite tot prin apelul unor ntreruperi BIOS. 6.3. Memoria video Una din cele mai importante interfee dintre utilizator i PC o constituie monitorul calculatorului. Dac la nceputul calculatoarelor ecranul afia numai caractere monocrome, odat cu dezvoltarea procesoarelor i sistemul video care asigur afiarea a trecut prin transformri majore fiind capabil ca pe lng caractere s apar i grafice, eventual n culori iar sistemele Windows fac din aceast interfa grafic modul principal de dialog i comand! Observm n figura 6.5. c elementele principale ale sistemului de afiare sunt echipamentul de afiare (CRT Cathodic Ray Tube monitorul propriu-zis) adaptorul video (sau controler) i memoria video. Putem s definim ca memorie video zona de memorie accesat simultan de procesor i de controlerul video care la ieire este capabil s produc o secven serial sincron de informaii capabile s comande un dispozitiv de tip CRT.

Fig. 6.5. Aceast memorie ntr-o prim aproximaie poate fi vzut ca un registru uria de deplasare ce conine n el memorat imaginea. Un punct de pe ecran se numete pixel. Acest punct poate avea anumite caracteristici (atribute) cum ar fi culoarea sa, clipitor,video invers , etc. Dup cum se observ din figura 6.6. imaginea care trebuie afiat este stocat ntr-un ecran virtual din memoria video. Controlerul video genereaz un rastru micnd fasciculul de electroni de la stnga la dreapta i de sus n josul ecranului, similar cu cititul unei pagini. La sfritul unei linii orizontale fascicolul este stins i mutat la nceputul liniei urmtoare baleind linia .a.m.d. Aceast baleiere poart numele i de rastru. Prentru fiecare poziie a unui pixel din rastru datele de afiat sunt citite din ecranul virtual aflat n emoria video. Aceste date sunt aplicate la intrrile unor circuite

62

DAC (Digital Analog Convertor) care le convertesc n nivele de tensiune pentru cele trei culori primare RGB (Red, Green, Blue) folosite n televiziunea color. Dup terminarea unui cadru fascicolul se rentoarce n stnga sus i rencepe un nou cadru, .a.m.d. Un astfel de tip de afiaj se mai numete i afiaj APA (All Points Addressable). Noi am reprezentat un rastru cu 640 de puncte pe linie i 480 de colane (640 x 480). Pentru ca imaginea s nu aib efect de plpire se impune ca numrul de cadre pe secund (frecven de remprosptare) a ecranului s fie mai mare de 50 Hz. Toate ecranele actuale sunt echipamente APA dar vom gsi i calculatoare mai vechi care funcioneaz cu standarde mai vechi cu definiii i caracteristici mai slabe. Au existat mai multe tipuri de controlere video:

Fig. 6.6 MDA (Monochrome Dispozitiv Adaptor) construit de IBM n 1981 odat cu primul PC. Nu avem posibiliti grafice putnd afia numai caractere ASCII standard; Hercules care a rezolvat problema mbinrii textului cu grafica pe acelai ecran. Placa monocrom HGC (Hercule Graphic Card) putea afia 720 x 348 puncte monocolor pe ecran. CGA (Color Graphic Adaptor) produs de IBM ce putea ajunge la 640 x 200 puncte cu 16 culori simultan; EGA (Enhanced Graphic Adaptor) cu rezoluie de 640 x 350 puncte VGA (Video Graphic Array) cu 640 x 480 puncte i 256 culori cu un rastru similar prezentrii noastre; SVGA (Super Video Graphic Array) cu 1024 x 780 puncte afiabile Toate plcile dinntr-o serie pot n general lucra cu programe scrise pentru seriile anterioare. Noi am prezentat modul de funcionare aa-zis grafic al acestor plci dar mai exist un mod de funcionare numit caracter. n acest mod se consider

63

c memoria conine coduri de caractere ASCII i nu puncte direct afiabile iar un circuit special numit generator de caractere livreaz pixele din codul ASCII citit. Vom mai reveni la placa de tip APA insistnd puin i asupra afiajului de culoare al punctelor. Un monitor color poate afia peste 16 milioane de culori, dar adaptorul video limiteaz aceast cifr. Dac utilizm pentru fiecare pixel cte un octet pentru a memora caracteristicile sale de culoare putem avea 256 (2**8) de culori. Dac extindem pentru un pixel la 2 octei memoria, atunci sunt posibile 65536 de culori, iar dac pentru fiecare culoare fundamental (RGB) se rezerv un octet (deci 3 octei pe pixel) depim 16 milioane . n terminologia PC urilor modul de afisare cu 1 octet rezervat pentru un pixel se numete pseudo color, cu 2 octei HIGH color i cu 3 octei true color. Pentru ca din informaia numeric s se obin un nivel de tensiune analogic corespunztor n adaptoarele video se utilizeaz convertoarele numeric analogice (DAC). Acestea sunt de obicei pe 8 bii i cte unul pentru fiecare culoare fundamental. Deci am fi n stare s afim peste 16 milioane de culori dar de obicei informaia de culoare pentru aplicaii grafice nepretenioase este cuprins pe un octet deci numai 256 de culori la un moment dat din cele 16 milioane posibile. Cele 256 de culori alese pentru afiare din domeniul de 16 milioane formeaz aa zisa palet de culori iar conversia de la 8 bii la 24 bii se face n adaptorul video printr-o memorie numit CLUT (Color Look Up Table Tabel de selecie al culorii). Figura 6.7. prezint funcionarea paletei de culori. Valoarea pe 8 bii a octetului este considerat o adres n tabela CLUT care va seleciona cuvntul de 3 octei corespunztor ce va genera culoarea. Dac se dorete schimbarea paletei se vor memora alte valori n tabela CLUT pentru acelaiasi adresa.

Fig. 6.7.

64

n final trebuie s amintim c plcile grafice actuale pot avea o memorie video mai mare dect cea alocat n harta memoriei. Dar numai o singur pagin se afieaz la un moment dat. Pagina afiat este selectat cu un registru intern. Deasemeni au aprut plci cu aa-numite acceleratoare video (AGP) care sunt folosite i pentru grafica n 2 dimensiuni (2D) sau 3 dimensiuni ( 3D.). Controlerele video au integrate uniti cu instruciuni grafice speciale pentru prelucrarea i sinteza imaginilor procesorului revenindu-i numai sarcina de a apela aceste funcii integrate n controler. 6.4. Memoria CACHE Dac vom privi harta de alocare a memoriei vom observa c acest tip de memorie nu apare i n realitate P i PC poate funciona foarte bine i dac aceasta nu exist. Memoria CACHE este mai curnd un principiu dect un dispozitiv! Exist foarte multe tipuri de CACHE, unele construite din dispozitive hardware specializate, altele nu sunt dect programe ! Toate ns au la baz aceeai idee: de a aduce mai aproape ceea ce se folosete mai des i a lsa mai departe lucrurile folosite mai rar ! Astfel se poate folosi rapid ceea ce este deja aproape . Fiind vorba de memorie ,cache ul este o memorie mai rapid dect memoria RAM i care este interpus ntre memoria RAM lent i P.

Fig. 6.8 Dup cum se observ din figura 6.8 ntre memoria RAM a P i P s-a interpus o memorie mai mic dar cu un timp de acces mult mai mic n ordin de mrime. Atunci cnd P face un acces la memorie caut mai nti dac nu cumva adresa cautata se gsete n memoria cache. Dac gsete informaia nu se mai face apel la meoria RAM i se trece mai departe. Se spune c s-a realizat un hit (s-a nimerit)!. Dac informaia nu exista se face un apel la memorie (am avut un rateu un miss). Din memorie nu se aduce numai informaia cerut ci o felie mai mare i cu informaiile coninute adiacent adresei. Astfel c dac la un nou apel se cere informaia urmtoarei adresei aceasta i altele se afl deja n cache . Cunoscnd principiul vom cuta s dm unele exemple de cache hard sau soft luate din activitatea

65

curent a unui utilizator de PC i care poate la o prim privire scap neobservate c ar avea legtur cu tehnica de cache ! 1. Cache ul de disk. Orice SO de operare( mai putin MS DOS !) funcioneaz i cu un cache activ pentru disk, cache care memoreaz o poriune de disk ce conine programe ale SO i este localizat n memoria principal RAM (fig. 6.9)

Fig. 6.9. Pentru sistemul DOS firma Symantec (productoarea programelor din seria Norton ) ofer un program cache numit smart drive care asigur schema de mai sus i care mrete viteza de lucru de cteva ori ,mai ales cnd se folosete intens discul. 2.Cache ul procesorului. Dac se analizeaz viteza ultimelor P i cea a memoriei RAM vom vedea c exist diferene ntre acestea de aproape un ordin de mrime. Din aceste motive se introduce o memorie cache intermediar care mrete viteza sistemului cu 100%-400% n funcie de tipul aplicaiei. Chiar mai mult, la ultimele tipuri de P (de la Pentium n sus) pe pastila de siliciu a procesorului este integrat un cache intern cu timp de acces egal cu cel al procesorului numit cache level 1 spre deosebire de cel intern numit cache level 2.

Fig. 6.10 ` 3. DNS (Domain Name Server) de pe reeaua Internet sunt nite cache software care rein adrese i IP asociate pentru creterea eficacitii de cutare a unor site-uri.La o revenire a utilizatorului pe aceste situri exista deja memorate corespondenele adresa -IP care se foloseste fara sa se apeleze din nou serverul DNS initial. 66

4. Clienii WWW cum ar fi Netscape sau Internet Explorer memoreaz ntrun cache soft siturile deja vizitate i eventual paginile deja citite pentru ca la o comand Back s se ia informaia citit din cache i nu se face un apel de a descarca din nou o pagina deja citita! . 5. Memoria virtual. Memoria virtual este un mecanism prezent n orice SO modern. Cu ajutorul acestui mecanism se pot executa programe mai mari dect ar ncpea n memoria RAM. Ideea este de a ine programele pe disk sub forma unor blocuri de 1 8K (4K la Pentium) numite pagini i de a aduce n RAM numai acelor pagini care se execut ! Astfel are loc tot timpul o alocare de noi blocuri n memorie i transferarea unor blocuri vechi napoi pe disk, operaie numit swap ing. Identificarea paginilor n RAM sau disk este asigurat de MMU (Memory Management Unit), o unitate nou introdus la procesoarele 386 si cele care au urmat ,pe lng cele cunoscute deja de

Fig. 6.11 noi (EU si BIU) care gestioneaz o tabel de pagini n care se gsesc trecute paginile active cele ce sunt efectiv n RAM timpul de cnd s-a fcut apel la o pagin etc., date necesare n operaia de swapping. Sistemele de operare ncepnd cu Windows 3.1. au implementat aceste mecanisme de memorie virtual care asigur programelor rulate sub acestea o memorie RAM limitat doar de capacitatea alocata pe disc pentru spatial de swap. ntrebri la cap. 6 1. Care sunt tipurile principale de memorie din dotarea unui calculator PC ? 2. Care este elementul fizic care permite memorarea informaiei binare in PC ? 3. Cum este organizat funcional o memorie Ram ntr+un PC ? 4. Pentru ce este util memoria ROM ntr-un PC ?

67

5. Programele de aplicaie folosesc tot spaiul de 1 M memorie disponibil sub sistemul de operare DOS ? 6. Care sunt componentele principale ale BIOS-ului unui PC ? 7. Care sunt elementele principale ale sistemului de afiare ntr+un PC ? 8. Ce este memoria video i de cine este ea accesat ? 9. Numii 3 tipuri de controlere video din scara de evoluie a acestora ? 10. n cte moduri poate funciona o plac video ? 11. Cte culori pot fi ataate unui pixel de pe ecran ? 12. Ce avantaj ofer folosirea unei tabele de culori ( CLUT) n controlerele grafice ? 13. Cine face conversia octeilor de culoare n tensiuni electrice de comand pentru tubul catodic al ecranului ( CRT ) ? 14. Ce se nelege pri memorie cache la un calculator PC ? 15. Dai cteva exemple de memorie cache hard sau soft ntlnite n practica PC ? 16. Care este principiul memoriei virtuale dintr-un PC , privit prin prisma principiului de memorie cache ?

68

Cap.7 SISTEMUL DE I/O


Desemnm prin sistemul de I/O (input/output intrare/ieire) un set de module funcionale care permit vehicularea informaiei ntre CPU, memorie i lumea real dup cum se vede n figura 7.1.

Fig. 7.1. Sistemul de intrare - ieire este dotat cu o serie de echipamente care vor permite informaiilor s fie fie citite de ctre sistem -intrarea de date fie s prseasc sistemul i s fie folosite n afara acestuia -ieirea de date - . Unele dintre acestea se gsesc n mod standard pe oricare sistem iar altele pot s fie adugate ulterior folosindu+se de posibilitile de conectare din exterior sau folosind extensiile libere existente pe placa de baz a sistemului. 7.1. Port de intrare Vom furniza n fig. 7.2. o schem de intrare a unui octet n sistemul de calcul Acest octet va fi furnizat sub forma poziiei unor microntreruptoare (switch uri) care se pot gsi pe poziia OFF (0 logic) (legtur fcut la 0) fie pe poziia ON (lsat n aer = 1 logic). Este o situaie foarte des ntlnit cnd CPU are de citit configurarea unui echipament periferic acesta furnizndu-i octetul prin poziia unor switch-uri sau jumpere aflate pe placa de baza sau placa de extensie (controlerul propriuzis ). Aa cum pentru a selecta o informaie din memorie se selecteaz o adres de memorie mai nti i apoi se face citirea i n cazul dispozitivelor de I/O fiecrui set de un echipamente le este rezervat o adres unic sau set de adrese care le difereniaz de alte dispozitive de I/O. Aceste adrese sunt cunoscute ca adrese de porturi I/O. n momentul cnd CPU genereaz comanda de citire a portului nostru, semnalul de adres va fi decodificat de ctre decodificatorul de adres porturi i va activa intrarea SEL a unui singur circuit de intrare-ieire -- circuitul vizat - . n acest moment poziia switch-urilor va fi memorat n cele 8 circuite bistabile ale circuitului 244 i totdat va fi disponibil la ieire OUT0, , OUT7 care sunt legate la busul de date ale P. Eventual registrul AX

69

Fig. 7.2. (mai precis AL din acesta) va putea astfel memora octetul care a fost programat la switch-uri i apoi s-l prelucreze conform programului. Se zice c a fost citit un octet la un port de intrare. Pentru citirea informaiilor de la un port de intrare se folosete o instruciune de intrare date de tipul INP ( INPut ) . Forma cea mai simpl a unei astfel de instruciuni este INP al , adresa port adic octetul aflat la adresa port va fi citit i transferat n registrul al ( octetul inferior al registrului general ax ). Dac spaiul de adresare pentru memorie este 1M (2**20) spaiul de adrese pentru porturi de I/O cuprinde 64K (2**16).Procesorul va executa un ciclu de citire similar cu cel de la memorie numai c de data aceasta nu va fi selecionat o locaie de memorie ci un port de intrare.. 7.2. Port de ieire n fig. 7.3. am reprezentat un circuit integrat cu indicativul 374 care are 8 circuite bistabile similar cu circuitul 244 folosit anterior. De data aceasta intrrile acestui circuit sunt cuplate la busul de date a sistemului iar ieirile vor avea cuplate diode luminoase (LED) care vor furniza prin indicaie luminoas octetul furnizat de sistem. Similar ca n exemplul anterior la selecia adresei portului de ieire dorit, semnalul SEL va face ca starea liniilor de pe busul de date s fie memorat n cei 8 bistabili ai circuitului. Totodat starea acestora se va regsi la ieirile Q0, , Q7 ce va face ca unele LED-uri s se aprind sau nu dup cum n bistabili este memorat 0 sau 1 i deci octetul va putea fi vizualizat prin starea aprinsa sau stinsa a LED-urilor.

70

Fig. 7.3. n cazul trimiterii unui octet ctre un port de ieire( operaie de ieire date) se folosete o instruciune de tip OUT (OUTput ). Astfel dac dorim s trimitem un octet din registrul al de la procesor la portul cu adresa adresa-port forma instruciunii va fi urmtoarea: OUT adresa-port ,al . Un asemenea port de ieire se folosete n calculator i la furnizarea datelor ctre imprimant. Este vorba de portul de imprimant cunoscut i sub numele de LPT1 sau LPT2 (de la Line PrinTer). Acesta mai posed n plus i alte linii dect cele de date numite i linii de stare i control. E bine de tiut c un echipament de intrare-ieire nu are asociat o singura adres, adresa registrului de intrare ieire . Exist cel putin 3 regitrii asociai unui port cu adresele de I/O corespunzatoare: 1.-registrul propriuzis al portului n care se depune octetul sau se citete octetul 2.-registrul de comand n care se trimit octei cu rolul de a comanda echipamentul de intrare ieire 3.-registrul de stare a portului care indic starea unor parametrii ai echipamentului Astfel la o imprimant portul de comand primete comenzi pentru avansul hrtiei,salt la pagin nou, trecerea n mod grafic ,resetare etc. Prin citirea octetului din portul de stare calculatorul poate afla dac imprimanta este on-line, exist hrtie ,exist cerneal sau toner ,etc. La adresa portului propriuzis se vor trimite codurile ascii ai octeilor de tiparit sau secvenele de bii pentru tiprire grafic . Handshaking. n fig. 7.4. am reprezentat interfaa dintre calculator i o imprimant cuplat la portul LPT1. Portul LPT mai este cunoscut i sub numele de port paralel datorit faptului c transferul informaiei (octeilor) se face simultan la nivelul celor 8 ranguri ale unui octet, existnd cte o linie separat pentru fiecare, notate D0,, D7. Unele dispozitive de I/O accept informaia mai ncet dect poate transmite P. Deci aceast informaie trebuie s fie temporizat pentru ca imprimanta s poat tipri caracterul transmis i abia dup aceea s recepioneze urmtorul caracter. n acest caz una din metodele folosite se numete handshaking i folosete nc 2 semnale n plus fa de cele de date pentru ca s se asigure o sincronizare perfect ntre calculator i imprimant. 71

Mai nti datele D0,, D7 sunt plasate pe liniile de date corespunztoare de ctre P i se transmite ctre printer semnalul STB (Strobe) care l ntiineaz c pe liniile D0,, D7 este un caracter disponibil. Printerul ncepe s tipreasc caracterul recepionat i simultan plaseaz pe linia BUSY un semnal egal 1 care atenioneaz P c este

Fig. 7.4. ocupat nc cu tiprirea caracterului. P poate determina dac printerul este n stare s primeasc un nou caracter sau nu prin testarea liniei BUSY. Att timp ct acesta este 1 P nu va transmite un nou caracter. Imediat ce semnalul de pe linia BUSY devine egal cu 0 P poate ncrca liniile D0,, D7 cu un nou caracter pentru tiprit tiind c cel anterior a fost tiprit. Acest proces de interogare poart denumirea de handshaking i este o tehnic curent folosit n transmiterea de date ntre echipamente cu viteze i caracteristici diferite i care trebuie s comunice. Dup cum am amintit n cadrul calculatoarelor IBM PC exist un asemenea port care funcioneaz n modul descris anterior. Acest mod de funcionare se mai numete i mod SPP (Standard Parallel Port), i rata maxim de transfer a acestuia era de 150 Kb/sec. Ulterior IBM a dezvoltat o interfa care permitea un transfer bidirecional al octeilor permind cuplarea i a altor echipamente la el (scannere, uniti de disk sau CD-romuri externe, etc) i aceast nou norm s-a numit port EPP (Extended Parallel Port) adic port paralel mbuntit. S-au mai adugat unele mbuntiri i la aceast norm obinndu-se un port paralel cu capabiliti extinse (ECP). Am specificat aceste lucruri deoarece unele imprimante moderne (Laser sau cu jet de cerneal) nu mai funcioneaz cu portul paralel n modul SPP ci acesta trebuie configurat pe mod EPP sau ECP protocolul de transfer mai cuprinzand i transferul unor comenzi pe lng cel al caracterelor , specific numai la SPP. 7.3. Comunicaii seriale n calculatorul IBM PC sunt prevzute de obicei dou porturi de comunicaie serial (COM) care folosesc protocoale de transmisie asincron de tip start/stop cunoscute sub numele de COM1 i COM2. In general pe unul din acestea se conecteaz echipamentul numit mouse folosit ca echipament standard n SO Windows. Cellalt poate fi folosit la cuplarea cu un alt calculator n scopul transferului de date sau la el se poate conecta un modem extern folosit pentru conexiune la distan prin reeaua telefonic cu un calculator ce ofer servicii INTERNET. 72

Observm deci c aceste transmisii seriale ocup un loc important ntr-un calculator modern i vom trata pe scurt modul de funcionare a unei astfel de transmisii. Spre deosebire de transmisiile paralele cnd existau linii separate de transmisie pentru fiecare rang al octetului transmisia serial cere existena numai a dou linii. n acest caz cei 8 bii care formeaz un octet sunt transmisii secvenial n 8 intervale de timp diferite. Diagrama din fig. 7.6. reprezint forma unui semnal serial aa cum ar apare ea dac ar fi vizualizat la un osciloscop.Se observ c octetul de transmis este ncadrat de bii auxiliari necesari pentru sincronizare sau control. Astfel transmiterea unui octet ncepe cu un bit de start, se continu cu cei 8 bii ai octetului ncepnd cu rangul cel mai mic, urmeaz un bit de control (paritate) i se termin cu un bit de STOP.

Fig. 7.5. . Din cei 11 bii transmii numai 8 reprezint informaia util. De obicei o interfa serial are att posibilitatea de a transmite un octet (emisie) ct i de a recepiona (recepie). Fig. 7.7. reprezint cel mai simplu mod de a conecta 2 calculatoare cu ajutorul a 3 fire i folosind interfeele seriale COM.

Fig. 7.6. Semnalul de emisie Tx de la PC1 este primit de al doilea PC pe piciorul Rx de recepie iar de la Tx de la PC2 la fel se leag la recepia Tx de la PC1. Astfel se pot transmite date (fiiere, etc) sau se cupleaza intr-o reea serial cele doua calculatoare PC cu o investiie minim ! n prezent s-a pus la punct un nou tip de bus serial numit USB (Universal Serial Bus) care permite conectarea n lan a mai multor echipamente prevzute cu acest tip nou de interfa asigurndu-se totdat i o eventual alimentare a unor asemenea echipamente care nu au surs proprie de alimentare. Calculatoarele noi au

73

asemenea interfete iar programele din BIOS cuprind subrutinele necesare controlului unui astfel de bus. Se pare c n viitor acesta va fi standardul dominant cel prezentat anterior rmnnd totui pentru scopuri secundare si pentru compatibilitate cu sistemele vechi ! 7.4. Controlul micrii unui motor pas cu pas Motoarele pas cu pas sunt echipamente care s-au impus n tehnica de calcul odat cu apariia tehnicilor de comand numeric. Dup cum se observ din fig. 7.7. cel mai simplu motor pas cu pas const din mai multe bobine dispuse pe un suport magnetic cilindric care formeaz polii motorului i un magnet permanent ca rotor.

Fig. 7.7 Fig. 7.8 arat modul de comand a unui astfel de motor, cele 3 faze ale motorului sunt comandate de un registru cu 3 bii. Va fi alimentat cu tensiune faza al crei bit este 1. Rotorul se va deplasa ntre polii fazei alimentate. Deplasarea bitului de 1 pe celelalte poziii ale registruloui ntrun sens sau altul cu un anumit tact va duce i la deplasarea rotorului, pas cu pas n sens orar sau antiorar.Astfel de motoare se folosesc n unitile de disk magnetic (poziionarea capetelor de citire/scriere), diskete magnetice, imprimante, CD-rom, scanere, satelii artificiali (pozitionarea antenolor parabolice de receptie si transmisie catre statia de la sol)etc. pentru 0 poziionarea precis i sub comanda unui procesor. Observm c aceast tehnic numeric de comand i control a ptruns n tehnic n toate domeniile nlocuind metodele analogice mai vechi i mai puin precise. Se pare c viitorul este al acestor sisteme numerice , tehnica analogica rmnnd numai acolo unde precizia nu constituie un deziderat major.

74

Fig. 7.8 ntrebri la cap. 7 Care este rolul echipamentelor de intrare / ieire ( input output) ? Prin ce se identific diferitele dispozitive de intrare-ieire ntr-un PC ? Ce instrucine se folosete pentru a citi date de la un port de intrare ? Care e numarul de adrese de porturi disponibile ntr-un sistem PC ? Ce instruciune se folosete pentru a trimite date spre exteriorul PC folosindu-se un port de ieire ? 6. Care sunt regitrii asociai unui port de intrare sau ieire ? 7. Cnd este utilizat o conexiune de tip handshaking la cuplarea a doua dispozitive ? 8. Care sunt semnalele auxiliare de control la o legtur handshaking ? 9. Ce bii auxiliari apar n informaia transmis serial pe lng octetul de date ? t 10. Care credei c este modul cel mai simplu de a cupla 2 PC pentru a transmite date ? 11. Cum se obine micarea de rotaie la un motor pas cu pas cuplat la un sistem PC ? 1. 2. 3. 4. 5.

75

Cap.8 MULTIMEDIA
Fenomenul de "multimedia" PC poate s aib mai multe interpretri. Noi vom accepta s numim prin acest termen un set de tehnologii care fac posibil existena aplicaiilor de tip "multimedia" cum ar fi: grafic PC, imagini i animaie 2D i 3D, video, redare direct a imaginilor inregistrate i comprimate, precum i aplicaiile legate de sunet (inregistrarea i redarea sunetului, precum i sinteza vorbirii). Alturi de aceste tehnologii trebuie s amintim i o serie de tehnologii suport pentru multimedia cum ar fi CD-ROM, reele locale i tehnologii de comprimare/decomprimare a datelor. Acest domeniu s-a dezvoltat odat cu creterea performanelor P de a prelucra in timp real fluxul de date dintr-o astfel de aplicaie. Vom cuta s explicm aceste noiuni legate de multimedia fcnd apel la cteva aplicaii multimedia importante, principiile enunate putnd fi extinse i la celelalte netrecute n revist la noi. Unele din cele mai folosite aplicaii M (multimedia) folosite pe calculator sunt jocurile care solicit animaie, specific 3D in timp real, redare video, intrri de date din partea juctorilor i redarea de sunet inregistrat sau sintetizat. Educaia i instruirea sunt alte aplicaii multimedia care pot solicita aceleai mijloace ca i jocurile. Prezentrile fcute cu PC i gsesc utilizarea din ce n ce mai mult n ultimul timp. Videoconferinele folosesc metode cuprinse in aces capitol. Simulrile, realitatea virtual i comanda calculatorului cu ajutorul vocii completeaz multitudinea de aplicaii legate de aceast tehnologie cunoscut sub numele de M.

Tehnologia multimedia audio


A.Elemente de baz ale sunetului digital Dup cum se tie sunetul reprezint o oscilaie care variaz continuu n amplitudine - ceea ce determin nivelul sonor - sau n frecven - ceea ce va determina tonul sunetului. In sistemele analogice, acest sunet era ampliifcat n sisteme electronice - cu tuburi sau tranzistoare - rezultnd o tensiune sau curent variabil i in final se aplic unui difuzor care avea rolul de a-l transforma din nou intrun sunet perceput de ureche. Transformrile pe care le suferea sunetul in lungul acestui lan erau cele aplicate acestor oscilaii electrice. Dac dorim ca acest sunet s fie eventual prelucrat intr-un calculator acesta va trebui s transforme mai inti informatia analogic - variaia unei tensiuni- in informaie digital - iruri de numere care reprezint variaia tensiunii iniiale-. Aceast transformare se face cu ajutorul uni dispozitiv numit convertor analogic digital (ADC). Dup ce acest sunet se va prezenta ca o secven digital calculatorul va putea s prelucreze aceast informaie dup algoritmul cerut iar rezultatul obinut va fi semnalul digital care va fi reconvertit in sunet de un convertor digital - analogie (DAC). Fig.8.1. red acest ir de transformri.

76

Fig. 8.1 Dispozitivul numit de noi ADC va transforma semnalul analogic in digital prin eantionarea amplitudinii semnalului cu o anumit frecven. Totul apare ca i cum sar realiza nite instantanee digitale ( fotografii !) ale semnalului analogic cu o frecven foarte mare. Cu ct vor fi mai multe eantioane intr-o secund i acestea mai precis aproximate cu att semnalul digital rezultat va fi mai fidel celui analogic original. In fig. 8.2. am reprezentat o oscilaie sonor sinusoidal care va fi eantionat la momentele de timp redate in fig.8.2.b, n fig.8.2.c. rezultnd eantioanele de amplitudine ale sinusoidei initiale. Deci eantionarea constituie prima operaie care are loc asupra unui semnal analogic .Aceste entioane sunt transformate tot in ADC in numere care vor putea fi prelucrate de ctre calculator. Digitizarea eantioanelor este a doua operaie care are loc pentru a obine semnalul sub forma numeric i s poat fii prelucrat de catre calculator. Apare evident c semnalul reconstituit de fig.8.2.c. va fi mai fidel cu cel din 8.2.a. cu ct frecven de eantionare va fi mai mare i cu ct se vor folosi mai muli bii pentru reprezentarea numeric a amplitudinii unui eantion. Urechea uman poate sesiza semnale audio in domeniul 20-20000 Hz. O teorem din teoria analizei semnalelor arat c frecvena de eantionare trebuie s fie mai mare dect dublul frecvenei cele mai mari( deci 40.000 Hz in cazul nostru). O alt problem este pe ci bii reprezentm dimensiunea eantionului. Dac folosim un octet adic 256 de valori (28=256 - cum am folosit la placa grafic pentru a reprezenta maximum de 256 culori pe ecran) vom avea maximum 256 nivele de amplitudine. La redare ele vor reda in mod grosier sunetul original. Dac pentru reprezentarea amplitudinii unui eantion vom folosi 2 octei (216=65,536 valori) acest numr mare de nivele va aproxima cu fidelitate acceptabil semnalul original. Avnd aceste noiuni despre semnalul digital putem spune c de exemplu semnalul telefonic digital are o frecven de eantionare de 8.000 Hz. i se folosete un octet (8 bii) pentru reprezentarea amplitudinii lui urmrindu-se inelegerea mesajului in primul rnd i nu chestiuni legate de fidelitatea sa . La inregistrarea digital a sunetului pe CD se folosete o frecven de 44.100 Hz i 2 octei (16 bii) pentru fiecare eantion. Dac se inregistreaz i un semnal stereo se vor folosi inc 2 octei pentru al doilea canal. Cunoscnd aceste date se poate calcula rata de date pe minut pentru fiecare semnal digital prezentat. Dac la cel telefonic se ajunge la aproximaia 50 koctei /minut la cel pentru CD la peste 10 M/minut.

77

Fig. 8.2. Putem s ne facem o imagine la ce fel de rate de informaii lucreaz circuitele sau plcile de sunet actuale. Dac funciile blocurilor ADC i DAC sunt combinate intr-un singur circuit acesta se va numi CODEC (COdare - DEC odare). Pe lng funcia de conversie aceste circuite mai pot i comprima sau decomprima date audio digitale. In concluzie, deci sunetele in calculator sunt reprezentate in final ca fiiere care se bucur de toate proprietile i posibilitile de prelucrare specifice acestora.: comprimare, decomprimare, prelucrare numeric, etc. Dac extindem noiunile la domeniul video unde, informaia vizual apare tot ca un semnal electric oscilant, tot ceea ce s-a spus la sunet rmne valabil si aici dar cu alte rate de eantionare B.Prelucrri ale sunetului digital. Plci de sunet Odat ce sunetul a fost convertit in form digital el poate fi prelucrat pentru a se creea tot felul de efecte ca reverberaii, ecouri, distorsiuni controlate, etc..Calculele necesare acestora sunt fcute in procesoare specializate numite DSP (Digital Signal Processing) Tot acestea pot asigura i sinteza sunetului sau a muzicii precum i funciile de comprimare i decomprimare. Cercetrile fcute n domeniul sintezei sunetelor au permis generarea acestora din insumarea mai multor semnale sinusoidale cu frecvene diferite.Un capitol din matematicile speciale se ocup cu analiza armonic a semnalelor . Foosindu-se 78

rezultatele acestor analize s-a reusit sinteza sunetului prin modularea de frecven (FM). Toate acestea au dus la apariia aa ziselor "plci de sunet" care reprezint un element important al posibilitilor M legate de sunet. Fig.8.3. reprezint schema unei astfel de plci de sunet, prezen curent n calculatoarele actuale.

fig. 8.3. Ea a fost creat prima data de firma "CREATIVE LABS" si mai este cunoscut si cu numele de "Sound Blaster".Aceste placi se cupleaz normal pe un conector de extensie al magistralei ISA sau PCI i cuprind unele blocuri deja amintite. In plus observm un bloc MIXER care poate accepta intrri analogice de la ,microfon. linie audio sau difuzor PC si care pot fi controlate individual. De asemeni blocul MIDI (Musical Instrument Digital Interface) primete comenzi pentru selectarea i generarea unor sunete de instrumente muzicale sau efecte audio -tremolo, reverberaie,cor, etc- . Din analiza modului n care urechea percepe sunetele i folosinu-se de unele imperfeciuni ale acesteia s-a imaginat o metod de prelucrare i comprimare a fluxului de date digitale aferente sunetului prelucrat care duce la fiiere de pn la 10 ori mai mici fa de cele originale n care nu se face aceasta prelucrare digitala a semnalului sonor. Astfel odat cu apariia procesoarelor mai puternice din seria Pentium Pro a aprut i tehnologia MP3 disponibil pe platforma PC .Aceasta a dus la rspndirea unor accesorii independente playere de mp3-uri!- care se pot conecta la pc , se descarca melodiile n acest format i apoi se poate reproduce sunetul independent de PC!

79

C.Prelucrri digitale video Dup cum am amintit deja prelucrarea semnalelor video preluate de camere digitale sau semnalul TV urmeaz aceleai principii ca cele de sunet numai c la o alt rat de vitez i cantitate de informaii pe secund !. Semnalul video transformat n semnal digital poate fi comprimat pentru ca s ocupe un spaiu mai mic la stocare sau in procesul de transmitere. La redare se intmpl procesele inverse. In plus aici apar unele elemente noi. Astfel s-au imaginat metode specifice de comprimare care in cont de faptul c coninutul imaginii de la un cadru la altul se schimb foarte puin transmindu-se eventual numai schimbrile survenite i pstrnd ca baz un cadru iniial. Este ceea ce fac metode cunoscute sub numele de MPEG care a cunoscut o dezvoltare n stadarde de tipul mpeg2, mpeg4 sau mai recent mpeg6.Aceste metode se folosesc pentru nregistrarea digitala a secvenelor video de la camere video sau TV i apoi redarea acestui coninut video printr-o prelucrare invers . Pentru imagini statice sunt cunoscute fiierele cu extensia * . JPG ce provin din folosirea metodei JPEG de comprimare a imaginilor . Noile camere foto digitale se conecteaz la PC pe o interfa de tip USB sau direct la o imprimant i pot transfera aceste imagini sub forma de fiiere de tip jpg. Sateliii de comunicaii destinai transmisiilor TV digitale folosesc de asmenea aceste tehnici de conversie i comprimare digital - standardul DVB ( Digital Video Broadcasting)-. i televiziunea terestr trece la televiziunea de tip digital standardul DVB-T adica DVB terestru!- existnd deja zone n Europa n care se renuna la sistemul clasic analogic iar pn in anul 2010 practic acest sistem s fie singurul existent! D. Consideraii finale In general tehnologia Multimedia lucreaz cu volum mare de date. Ca mediu ideal de stocare de la inceput in acest domeniu s-a impus CD-ROM cu capacitatea sa de peste 600MB sau 700 M. In urrma evoluiei tehnologiilor in domeniul stocrii optice a informaiilor au aprut standarde noi cum ar fi videodiscurile (DVD) cu capaciti de 4G sau 8G dar aici exist mai multe standarde . Deasemeni s-a pus problema transmisiilor digitale pentru utilizatorii obinuii i acestea se fac in mod curent cu echipamente numite MODEM-uri (Modulation DEModulation) care folosesc din plin tehnica digital pentru transmiterea datelor. Conectarea acum acestora la cablul de TV a dus la creterea vitezei de transfer iar furnizorul de cablu devine i furnizor de servicii Internet! Datorit faptului c reelele telefonice curente (numite i reele comutate) limiteaz viteza de transfer a datelor la valori care nu fac posibil transmisii multimedia de calitate atenia s-a indreptat spre echipamente cu fibre optice , satelii sau reele locale rapide care permit un flux crescut de date. Cei care dispun o legtur direct la INTERNET se pot bucura de existena de posturi de radio digitale care transmit in reteaua Internet . Se sper c viitorul va apartine asa ziselor autostrzi multimedia pe care vor fi vehiculate filmele i muzica la cerere ! ntrebri la cap. 8 1. Pentru ca un PC s poat prelucra sunete (semnale analogice )cum trebuie s se prezinte acestea ? 2. Care sunt operaiile prin care un semnal analogic este transformat ntr-o secven digital ?

80

3. Pentru ca semnalul digital s redea ct mai fidel semnalul analogic din care provine ce msuri se impun la conversia semnalului analogic ? 4. Care este funcia unui circuit de tip CODEC ntr-o plac de sunet pentru PC ? 5. Ce standarde cunoatei pentru obinerea de fiiere digitale comprimate n domeniul sunetului sau imaginii ?

81

82

Bibliografie

[1] Peter Norton[2] Scott Mueller-

Secrete PC Ed. TEORA 1996

PC-Depanare i Modernizare ed . 1 sau 2 Ed. TEORA 1995 [3] Andrew S. Tanenbaum- Organizarea structurata a calculatoarelor ` editia a IV-a Ed. Byblos 2004 [4] Gh. Musc Programare n limbaj de asamblare Ed. TEORA 1996 Proiectare cu microcalculatoare integrate Ed. DACIA 1992

[5] Octavian Cpan -

[6] Vlad Caprariu s.a. Sistemul de operare DOS. Funcii sistem Ed. Romanian Software Comp. 1991 [7] La bible PC . Programmation systeme 3-ieme edition Ed. Micro Application 1996 Cataloag 1988-1995

[8] Documentaie INTEL

83

84

S-ar putea să vă placă și