Practica Hardware

97
Universitatea “ Alexandru Ioan Cuza “ Facultatea de Informatică Departamentul de Învăţămînt la Distanţă Adrian Buburuzan PRACTICĂ HARDWARE 2005 – 2006 Iaşi

Transcript of Practica Hardware

Page 1: Practica Hardware

Universitatea “ Alexandru Ioan Cuza “

Facultatea de Informatică Departamentul de Învăţămînt la Distanţă

Adrian Buburuzan

PRACTICĂ HARDWARE

2005 – 2006 Iaşi

Page 2: Practica Hardware

ii

Adresa autorului: Universitatea “Al. I. Cuza“ Facultatea de informatică Str. Berhelot 16 700483 – Iaşi, Romania E-mail: [email protected]

Page 3: Practica Hardware

1

Prefaţă

În ziua de azi calculatoarele în general şi în particular calculatoarele personale

(PC) constitue unul din principalele mijloace prin care societatea contemporană a reuşit

să atingă obiective şi performanţe în ştiinţă şi în industrie care nu ar fi fost posibile fără

existenţa lor.

Noţiunile prezentate în materialul de faţă vor să constitue un ajutor în înţelegerea

modului de construcţie a acestor calculatoare şi prin aceasta lansează o invitaţie la o

folosire mai eficace a acestora prin adoptarea unor parametrii mai optimi de setare şi

exploatare în practica cotidiană. Noţiunile 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 următorii ani şi va continua să se dezvolte prin apariţia unor componente mai

performante ( procesoare ,memorii , noi dispozitive de intrare-ieşire etc ) precum şi de

standarde de transmisie a datelor mai rapide . Iaşi, decembrie 2005 ing. Adrian Buburuzan

Page 4: Practica Hardware

2

Cuprins Prefaţă . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Cap.1 Arhitectura sistemelor de calcul . . . . . . . . . . . . . . . . 9

1.1 Arhitectura generalizată von Neumann . . . . . . . . . . . 9 1.2 Evoluţia şi tendinţe în domeniul arhitecturii interne . . . . . . 12

Cap.2 Componentele hard ale unui calculator personal ( PC ) . . . . . . . 17 2.1 Nivele de acces ale hardware-lui . . . . . . . . . . . . . . 17 2.2 Componentele de bază ale unui PC . . . . . . . . . . . . . 20 2.3 Succesorii PC-ului original . . . . . . . . . . . . . . . . 31

Cap.3 Arhitectura internă a procesoarelor din famila Intel pe 16 biţi . . . . 33 3.1 Unitaţile interne ale procesorului Intel 8088 . . . . . . . . . .33 3.2 Regiştrii procesorului Intel 8088 . . . . . . . . . . . . . . 34

Cap.4 Noţiuni despre funcţionarea şi adresarea datelor la procesoarele Intel 8088 . . . . . 45 4.1 Funcţionarea procesorului la nivel de magistrală . . . . . . . . 45 4.2 Moduri de adresare la procesorul Intel 8088 . . . . . . . . . . 47 4.3 Codificarea internă a instrucţiunilor . . . . . . . . . . . . . 51 4.4 Stiva . . . . . . . . . . . . . . . . . . . . . . . . . 52

Cap.5 Întreruperi . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1 Întreruperi hardware şi software . . . . . . . . . . . . . . 55 5.2 Procesoare CISC şi RISC . . . . . . . . . . . . . . . . 62

Cap.6 Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.1 Generalităţi . . . . . . . . . . . . . . . . . . . . . . 65 6.2 Alocarea memoriei la sistemul de operare DOS . . . . . . . . 67 6.3 Memoria video . . . . . . . . . . . . . . . . . . . . 70 6.4 Memoria cache . . . . . . . . . . . . . . . . . . . . 74 Cap.7 Sistemul de I / O . . . . . . . . . . . . . . . . . . . . . . . 79

7.1 Port de intrare . . . . . . . . . . . . . . . . . . . . . 79 7.2 Port de ieşire . . . . . . . . . . . . . . . . . . . . . 81 7.3 Comunicaţii seriale . . . . . . . . . . . . . . . . . . . 84 7.4 Controlul mişcării unui motor pas cu pas . . . . . . . . . . 85

Cap.8 Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . 88 8.1 Elemente de bază ale sunetului în format digital . . . . . . 88

8.2 Prelucrări ale sunetului în format digital. Plăci de sunet. . . . . 91 8.3 Prelucrări video . . . . . . . . . . . . . . . . . . . . 93 8.4 Consideraţii finale . . . . . . . . . . . . . . . . . . 93

Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Page 5: Practica Hardware

3

I N T R O D U C E R E

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

mâna, 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 sârme 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 târziu 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 pâna î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

Page 6: Practica Hardware

4

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 târziu, (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 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 putând sa calculeze tabele matematice si logaritmi!Masina

bineînteles 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.

Page 7: Practica Hardware

5

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 recensamânt mecanizat al populatiei în anul 1890, în 1/4 din timpul cât se realiza

pâna 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 cîtiva 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, sârme 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. Când

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. motivând 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

Page 8: Practica Hardware

6

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 sârmelor.

Constructia sa a fost terminata dupa sfârsitul 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 pâna 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. Pâna atunci calculatoarele erau folosite doar

pentru aplicatii militare sau stiintifice .

Page 9: Practica Hardware

7

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 vânzare.

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 Noyce 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. Având 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 când aplicatia care rula

a descoperit pe una din fotografiile de satelit un zacamânt de petrol în valoare de câteva

zeci de milioane de dolari.

Progrese se fac si în domeniul limbajelor de programare, începând 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.

Page 10: Practica Hardware

8

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 hârtie

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 "gândi".

Page 11: Practica Hardware

9

Cap1. ARHITECTURA SISTEMELOR DE CALCUL

O posibilă clasificare a sistemelor de calcul se poate face după modul în care se

face prelucrarea informaţiei. După acest criteriu putem avea:

a. sisteme cu un singur procesor atunci când se foloseşte o singură unitate

centrală de prelucrare (se foloseşte prescurtarea CPU – Central Processing

Unit).

b. sisteme multiprocesor atunci când în scopul creşterii vitezei de prelucrare se

adaugă încă un procesor, de exemplu coprocesorul matematic sau se cuplează

mai multe procesoare identice care pe lângă creşterea vitezei măresc

fiabilitatea sistemului, sarcinile unui procesor defectat fiind automat preluate

de un alt procesor.

c. reţele de calculatoare care formează sisteme informaţionale distribuite pe

distanţe mari şi au un caracter aparte din punctul de vedere a proiectării şi

funcţionării.

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 participării sale la construcţia î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 unităţi

de prelucrare care sunt conectate între ele prin 3 căi (numite bus-uri) separate de transfer

a informaţiei.

Vom analiza pe scurt scopul acestor elemente.

A. Unitatea centrală de prelucrare (CPU – Central Processing Unit) are rolul de

a extrage instrucţiunile (care sunt de fapt comenzile programului ca adună, scade, verifică

semnul rezultatului, etc.) memorate într-un dispozitiv de stocare numit memorie,

Page 12: Practica Hardware

10

Lumea

Externa

fig 1.1

de a decodifica aceste instrucţiuni şi apoi de a prelucra datele care sunt cerute de

instrucţiuni. Rezultatele acestor prelucrări pot fi depozitate într-un registru intern al C.P.

U., să fie depus într-o locaţie de memorie sau trimis la un dispozitiv de intrare / ieşire

(I/O – input/output).

Se observă că execuţia unei instrucţiuni presupune execuţia următoarei secvenţe

de acţiuni:

a. Depunerea pe busul de adresă a unei informaţii care localizează adresa de

memorie ce conţine câmpul de cod al instrucţiunii (secvenţa de ADRESARE).

b. Citirea codului instrucţiunii şi depunerea acestuia într-un registru intern al

decodificatorului de instrucţiuni. Această informaţie este vehiculată pe busul

de date (secvenţa de LECTURĂ).

Deobicei aceste doua secvenţe sunt reunite in una singura numita secvenţa de

FETCH.

Page 13: Practica Hardware

11

c. Decodificarea codului instrucţiunii în urma căreia CPU va cunoaşte ce

instrucţiune are de executat şi ca urmare pregăteşte modulele ce vor participa

la instrucţiunea respectivă (secvenţa DECODIFICARE)

d. Execuţia efectivă a operaţiei specificate de de instrucţiune (adunare, scădere,

salt, etc.) – secvenţa de EXECUŢIE.

Se continuă cu extragerea instrucţiunii următoare şi trecerea ei prin secvenţele

amintite ş.a.m.d.

Sincronizarea operaţiilor amintite se realizează prin generarea unui set de

informaţii pe magistrala de comenzi.

B. Unitatea de memorie în cadrul arhitecturii von Neumann are rolul de a stoca

instrucţiunile pentru CPU, precum şi datele asupra cărora vor opera instrucţiunile

(operanzii ). Aceste instrucţiuni trebuie să fie memorate anterior începerii desfăşurării

programului de prelucrare. Deasemeni unele date se vor memora anterior pornirii

prelucrării iar rezultatele prelucrării se memorează în timpul execuţiei programului.

Această memorie, realizată în diverse tehnologii de-a lungul evoluţiei calculatoarelor

constituie suportul fizic necesar desfăşurării operaţiilor executate de CPU.

Informaţia în memorie este stocată la aşa-numitele adrese. Pentru accesarea unei

informaţii din memorie se furnizează acesteia adresa acelei informaţii iar circuitele de

control al memoriei vor furniza conţinutul adresei care reprezintă informaţia cerută.

Similar şi la scrierea în memorie.

Tehnologic, dispozitivele de memorie pot reţine informaţia

numai când sunt alimentate electric şi avem de-a face cu aşa-zisa memorie

volatilă

atunci când nu sunt alimentate electric formând memoria nevolatilă şi care

este folosită în mod special la stocarea programelor pentru iniţializarea

calculatorului şi stocării sistemului de operare.

C. Dispozitivele de intrare – ieşire I/O (input/output) permit transferul

informaţiei între CPU, memorie şi lumea externă.

Funcţional, aceste dispozitive de I/O pot fi adresate (apelate) de către CPU similar

ca şi memoria ele dispunând de asemeni de câte un set de adrese. În mod clasic, schimbul

de informaţii cu exteriorul se face sub controlul CPU dar există tehnici care vor fi

Page 14: Practica Hardware

12

amintite mai târziu atunci când accesul la memorie se poate face şi fără intervenţia CPU

(aşa-numitele transferuri DMA – Direct Memory Access).

D. Busul de date este acea cale care leagă cele 3 blocuri funcţionale (o parte a sa

poate să iasă şi în exteriorul sistemului) şi pe care se vehiculează datele propriu-zise

(numere sau caractere) sau instrucţiunile programului.

E. Busul de adrese este calea pe care sunt transmise de CPU adresele către

memorie când se face o operaţie 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 către toate

aceste blocuri şi care permit o sincronizare armonioasă a funcţionării sistemului de

calcul.

Arhitectura de tipul von Neumann a fost o inovaţie în logica maşinilor de calcul

care s-au construit până atunci prin faptul că sistemul trebuia să aibă o cantitate de

memorie, similar cu creierul uman, în care să fie stocate atât datele cât şi instrucţiunile 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 locaţii specifice ale memoriei.

Aceste locaţii erau asemănate cu nişte cutii poştale care aveau aplicate etichete

numerotate de exemplu 1. O astfel de locaţie putea conţine o variabilă sau o instrucţiune.

A devenit posibil ca datele stocate la o anumită adresă să se schimbe în decursul

calculului ca urmare a paşilor anteriori. În acest mod numerele stocate în meorie au

devenit simboluri ale cantităţilor şi nu neapărat valori numerice, în acelaşi fel cum

algebra permite manipularea simbolurilor x şi y fără a le specifica valorile !

Calculatoarele ulterioare şi mai târziu microprocesoarele au implementat această

arhitectură care a devenit un standard.

1.2. Evoluţia şi tendinţe în domeniul arhitecturii interne

Această arhitectură internă a fost dezvoltată în mai multe direcţii rezultând

sisteme de calcul cu posibilităţi noi şi adaptate noilor cerinţe cerute de societate. Pentru a

Page 15: Practica Hardware

13

vedea aceste noi direcţii ne vom folosi de o clasificare a sistemelor după

arhitectura internă propusă de cercetătorul Flynn:

1. SISD (Single Instruction Single Data – o instrucţiune o dată) sunt

sistemele uzuale cu un singur microprocesor. Aici se încadrează microprocesoarele

clasice cu arhitectură von Neumann pe 8, 16, 32, 64 biţi cu funcţionare ciclică – preluare

instrucţiune, execuţie instrucţiune (rezultă prelucrarea datelor) ş.a.m.d.

Tot în această categorie trebuie introdusă şi aşa-numitele procesoare de semnal

DSP (Digital Signal Processors) folosite actual de exemplu în plăcile de sunet, telefonie

mobilă, etc.

2. SIMD (Single Instruction Multiple Data – o instrucţiune cu mai multe

date) sunt sistemele cu microprocesoare matriceale, la care operaţiile aritmetice se

execută în paralel pentru fiecare element al matricei, operaţia necesitând o singură

instrucţiune (se mai numesc şi sisteme de procesare vectorială). În principiu SIMD arată

ca în figura 1.2.

Eficienţa SIMD-urilor se dovedeşte a fi ridicată în cazul unor programe cu

paralelisme de date masive puse în evidenţă de exemplu de anumite bucle de programe.

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.

3. MISD (Multiple Instruction Single Data – mai multe instrucţiuni cu o

dată) .

Sunt sistemele care folosesc microprocesoare pipeline (conductă), metodă

folosită de către procesoarele recente (Pentium sau echivalente). La un astfel de

microprocesor de exemplu în paralel se execută instrucţiunea n, se decodifică

instrucţiunea n+1 şi se aduce în memorie instrucţiunea n+2. Această arhitectură a fost

inspirată de banda de montaj a produselor industriale ( automobile , televizoare , etc )

Page 16: Practica Hardware

14

ALU 1 ALU 2 ALU n

Retea interconectare ( R C )

Mem 2Mem 1 Mem n

Fig. 1.2.

Amintim tot aici şi aşa – numita arhitectură Harward în care zonele de memorie

pentru instrucţiuni au căi de adrese şi date distincte faţă de zonele de memorie destinate

datelor rezultând astfel o creştere a vitezei.

Celebrele supercomputere Cray a anilor 1970 foloseau de asemenea arhitectura

MISD. Procesoarele Pentium MMX .Pentium Pro, Pentium 2 si urmatoarele au

impementate o structura de tip MISD cu 2 benzi de asamblare (Pentium MMX) sau 3

benzi de asamblare (Pentium Pro si urmatoarele din serie) care fac sa poata fii executate

doua sau trei instructiuni in paralel intr-un impuls de ceas.

4. MIMD (Multiple Instruction Multiple Data – mai multe instrucţiuni, mai

multe date) sunt acele sisteme în care se încadrează atât supercalculatoarele cu

procesoare dedicate cât şi sistemele multiprocesoare (vezi fig. 1.3).

Să mai subliniem faptul că aceste reţele de interconectare (RC) pot implementa de la

simpla arhitectură de sistem multiprocesor (SM) pe BUS COMUN (uniBUS – când

Page 17: Practica Hardware

15

Retea interconectare ( R C )

Mem 1 Mem 2 Mem 3

P 1 P 2 P 3

Fig. 1.3

numai un procesor are acces la BUS celelalte aşteptând eliberarea busului) până la

arhitecturi complexe de tip CROSSBAR care permite accesul simultan al tuturor

microprocesoarelor la modulele de memorie globală cu condiţia să nu existe două

microprocesoare care să acceseze simultan acelaşi modul de memorie globală.

Exemplu: - firma DEC a produs un sistem având 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 funcţiile SO sunt ataşate unui microprocesor distinct –

master – iar restul microprocesoarelor – numite slave – accesează aceste

funcţii indirect prin intermediul unui microprocesor master.

Page 18: Practica Hardware

16

b) divizat – nu există un microprocesor evidenţiat, fiecare microprocesor având

funcţiile de sistem separat plasate în memorie.

c) flotant – când funcţiile SO sunt plasate în memoria comună putând fi accesate

de oricare microprocesor al sistemului, astfel ele “plutesc” de la un

microprocesor la altul.

Tot în cadrul acestei ultime categorii trebuie amintite aşa – numitele transputere

care sunt de fapt microcalculatoare integrate într-un singur circuit, cu proprie memorie şi

reţea de conectare punct cu punct cu alte transputere din aceeaşi categorie. Cu acestea se

pot construi maşini SIMD sau MIMD folosindu-se limbaje de programare specifice

proceselor paralele (ex. ORCAM), precum şi algoritmi paraleli.

Întrebări la cap. 1

1. Care sunt unitaţile de prelucrare într-o arhitectură de tip von Neumann ?

2. Care sunt busurile(magistralele) specifice unei arhitecturi de tip von Neumann?

3. Care sunt secvenţele de execuţie ale unei instrucţini ţn CPU din cadrul unei

arhitecturi tip von Neumann ?

4. Cum este accesată informaţia din memorie la o arhitectura de calcul von

Neumann ?

5. Cum sunt accesate dispozivele de intrare/ieşire la o arhitectura von Neumann?

6. Ce informaţie este stocată în memoria sistemelor cu arhitectură von Neumann ?

7.Cum se clasifică sistemele de calcul în funcţie de arhitectura internă după

recomandările cercetătorului 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. Desenaşi o schemă bloc de arhitectură de tip SIMD .

12. Care este principiul dupa care funcţionează o arhitectură de tip MISD ?

13. Unde găsim implementată arhitectura de tip MISD în procesoarele de INTEL?

14. Care sisteme intră în arhitectura de tip MIMD ?

15. Desenaţi o schemă bloc de arhitectură de tip MIMD .

16. Ce fel de sisteme de operare există pentru sistemele de tip MIMD ?

Page 19: Practica Hardware

17

Cap. 2 COMPONENTELE HARD ALE UNUI CALCULATOR

PERSONAL (PERSONAL COMPUTER –PC)

2.1 Nivele de acces a hardware-ului

Calculatoarele personale (PC) fac parte din categoria calculatoarelor construite

conform arhitecturii von Neumann prezentată în capitolul anterior. După cum se cunoaşte

în cadrul acesta al prelucrării datelor intervin două componente:

partea de echipament care efectiv efectuează calculul numită harware (partea “tare”,

solidă care se vede !)

partea de program care furnizează instrucţiunile echipamentului, algoritmul după care

se face prelucrarea numită software (partea “moale”, inteligenţa care conduce

hardware-ul).

fig. 2.1

Page 20: Practica Hardware

18

În principiu deci programul care conţine instrucţiunile de prelucrat (software-ul)

trebuie să aibă acces la echipamentul de calcul (harware-ul) pentru ca să se obţină

rezultatul cerut. După cum se observă din fig. 2.1. în cadrul PC-ului nu este neapărat

nevoie ca acest acces să se facă în mod direct din cadrul programului de aplicaţie.

Astfel programul nu va scrie de exemplu direct în circuitele cartelei video pentru

afişarea unor caractere pe ecran maniera uzuală fiind aceea de a utiliza un intermediar

care oferă servicii specializate. Aceşti intermediari pot fi BIOS (Basic Input Output

System) sau sistemul de operare (DOS-ul – Disk Operation System) care sunt interfeţe de

programe (soft) create pentru a administra partea de echipament (hardware).

Marele avantaj pentru program este că el nu este obligat să “se murdărească pe

mâini” fiindcă el nu intră în contact direct cu electronica. El se mulţumeşte să apeleze un

subprogram din BIOS care are ca sarcină lucrul cerut, de exemplu, dacă o tastă a

tastaturii a fost apăsată să indice despre care este vorba. Apelul unui subprogram

(subrutină) este mult mai uşor de scris decât de a administra direct echipamentul. Mai

există însă un avantaj. Interfeţele BIOS şi DOS permit sa se izoleze programele de

aplicatie de caracteristicile fizice ale echipamentului nefiindu-i necesar, de exemplu,

programului de aplicaţie 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, interfeţe serie şi paralelă precum şi la aşa-zisa memorie CMOS.

Acest program care conţine BIOS-ul se găseşte î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 număr de funcţii care permit accesul la echipamente. Aceste

funcţii au totuşi un caracter diferit decât cele oferite de BIOS căci ele privesc hardware-ul

din punct de vedere logic.si nu fizic. Astfel, dacă BIOS-ul prezintă funcţii pentru discul

dur la nivel de piste şi sectoare, DOS-ul se situează la nivelul fişierelor şi

subdirectoarelor.

Din figura 2.2. putem sesiza încă un avantaj al acestui mod de acces al hardware-

ului când aceeaşi aplicaţie lucrează pe 2 sisteme PC diferite care nu au aceleaşi

Page 21: Practica Hardware

19

Fig. 2.2.

caracteristici fizice. Prin faptul că cele două interfeţe sunt standardizate ele vor

face ca aplicaţia să funcţioneze perfect pe ambele sisteme.

Dacă BIOS-ul asigură o interfaţă standard către DOS pentru echipamente care

diferă în funcţie de calculator, sistemul DOS la rândul său este “învelişul” în care pot fi

executate alte programe incluzând aici şi medii de operare ca Windows-ul.

Se pune întrebarea pentru programator care dintre aceste niveluri trebuie ales în

programarea unei aplicaţii. De exemplu dacă se doreşte să se traseze cercuri şi linii în

mod grafic cercetând funcţiile BIOS sau DOS vom constata că nu există asemenea

funcţii. Trebuie atunci să accesăm printr-un program scris corespunzător placa grafică sau

să recurgem la o bibliotecă specializată în acest domeniu.

Dacă funcţiile BIOS şi DOS îşi dispută favoarea de a fi alese de programator

atunci pentru lucrul cu fişiere, lucrul cu nivelul DOS este inevitabil . Pentru a formata o

dischetă sau a scrie caractere pe ecran se va face apel la BIOS. Experienţa şi cunoaşterea

funcţiilor oferite de BIOS sau DOS pot să ne ajute la luarea unor decizii corecte. În unele

cazuri viteze de execuţie poate fi un incovenient major al funcţiilor DOS şi BIOS

deoarece cu cât se trece prin mai multe niveluri intermediare cu atât se încetineşte

execuţia funcţiei cerute. Dacă viteza este un factor important s-ar putea să fie nevoie să

renunţăm la funcţiile 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

Page 22: Practica Hardware

20

programe de comandă directă a plăcii video (programe numite DRIVER) care fac ca

afişajul să se facă rapid şi eventual dacă se caută să se afişeze un fenomen în mişcare

acesta să apară fără întreruperi sau mişcări sacadate. Trebuie să remarcăm 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 protejării acestora de eventualele comenzi greşite sau programe cu

scopuri distructive (viruşi, ştergerea discului, etc).

Înainte de a vedea cum se pot apela funcţiile 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ă decât 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 biţi, o

componentă depăşită atunci când deja apăruseră microprocesoare pe 16 biţi. S-a pus

problema fabricării rapide a unei maşini noi şi revoluţionare care să folosească aceste

componente noi.

Procesorul Primii reprezentanţi ai noii clase de microprocesoare pe 16 biţi au fost

procesoarele 8086 şi 8088 de la Intel. Amândouă puteau adresa nu numai 64 ko de

memorie (216) ci 1 Mo (220). Echipa care a lucrat în acest proiect avea deja experienţa în

proiectarea unor sisteme cu circuite auxiliare, construite tot de firma Intel aşa că, pe lângă

procesorul 8088 au fost alese o gamă de circuite Intel care să întregească proiectul final.

Procesorul 8088 era un procesor pe 16 biţi intern dar în exterior comunica pe 8 biţi

adaptându-se foarte bine la ceea ce deja era proiectat şi verificat la proiectul anterior

System23.

Acest bus exterior pe 8 biţi de pe placa de bază (placa mamă) lega

microprocesorul (µP) de circuitele auxiliare de memorie şi de plăcile de extensie aflate în

conectoare după cum se vede în figura 2.3.

Page 23: Practica Hardware

21

Fig. 2.3.

Busul Dacă IBM s-a străduit să facă din acest calculator un sistem deschis publicând

toate aspectele tehnice legate de el, documentarea semnalelor care se vehiculează pe bus

a fost neglijată. Mulţi utilizatori au început să-şi doteze calculatoarele cu extensii

fabricate de IBM dar de asemenea şi de alţi furnizori care au pus la punct propriile plăci

de extensii compatibile cu busul proiectat de IBM, uneori la preţuri mult mai mici şi cu

performanţe chiar mai bune decât cele de la IBM contribuind la succesul calculatorului

PC.

Funcţionarea busului PC

Busul în fond nu este altceva decât 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 cunoaşte din schema ataşată 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 aparţin busului de control. La origine

busul de adrese avea 20 de linii cu care era posibil să se adreseze 1 Mo de memorie.

Page 24: Practica Hardware

22

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 decât transmisia numai a unui octet odată, fiind

nevoie de 2 cicli pentru transmisia a 16 biţi cât era lungimea cuvântului.

Toate plăcile de extensie aflate în conectori “ascultă” busul. La emisia unui

semnal de către microprocesor (µP) trebuie să se găsească o cartelă care să fie “vizată”

(adresată). În acest moment toate celelalte extensii se decuplează momentan de la bus şi

se vor branşa (cupla) din nou la următorul ciclu “sperând” că ele vor fi cele vizate.

Cartela adresată apare ca fiind unica în legătură directă cu microprocesorul şi are loc

operaţia cerută de acesta.

Cunoscând aceste amănunte 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 acelaşi domeniu de adresă este revendicat de

două cartele). Problema se rezolvă reconfigurând noua cartelă din microîntrerupătoarele

situate pe ea ca să răspundă la o altă adresă de intrare ieşire sau eventual la o altă

întrerupere. Dacă se folosesc cartele noi care răspund standardului “Plug and Play” şi

apare acest conflict problema se rezolvă reconfigurând cartela cu ajutorul programelor

“driver” livrate odată cu cartela pe disketă, CD sau căutând aceste programe pe Internet

la site-ul producătorului (dacă există acces).

În evoluţia 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 câteva cuvinte despre fiecare.

1. Busul ISA (Industry Standard Architecture) a fost prima magistrală folosită la

construcţia calculatoarelor PC şi chiar astăzi, după aproape 20 de ani de la

apariţia PC, există soclurile de tip ISA pe plăcile calculatoarelor. Există 2

Page 25: Practica Hardware

23

versiuni de magistrală ISA: magistrala mai veche care avea 8 biţi de date şi

mai nouă cu 16 biţi pe busul de date. Ambele funcţionează 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 biţi a fost folosită la

microprocesoare noi (µP) ca Intel 80286 cu 24 de linii de adresă (224 = 16M

octeţi) 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 biţi. Ea a dorit să

înlocuiască magistrala ISA în noul standard pe 32 de biţi dar faptul că firma

IBM a cerut drepturi de autor exagerate firmelor terţe care doreau să

construiască după noul standard au făcut ca să se dezvolte magistrala EISA.

Trebuie remarcat la această magistrală aşa-numita tehnică “bus mastering”,

care permite unei plăci 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 răspunsul

constructorilor de plăci de extensii la apariţia magistralei MCA de la IBM. Ea

a apărut ca o dezvoltare a magistralei ISA, furnizând conectori cu 32 de biţi

pentru sistemele 386DX sau următoarele. Şi aici s-a folosit sistemul bus

mastering de la busul MCA cu avantajele sale în mărirea vitezei de transfer a

datelor.

4. Magistrala locală a apărut atunci când vitezele µP au crescut de exemplu la 66

MHz, iar magistralele continuau să lucreze la 8 MHz, producând 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 sporită a µP.

Acest lucru s-a făcut conform fig. 2.4. alături de memoria imediată (cache),

această dispunere devenind cunoscută ca magistrala locală

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

Page 26: Practica Hardware

24

Fig. 2.4.

valabilă numai la familia 486 pentru µP din familia Pentium impunându-se

standardul PCI.

5. Busul PCI (Peripheral Component Interconnnected Bus) a reproiectat

magistrala tradiţională prin intercalarea unei alte magistrale între CPU şi

magistrala I/O existentă prin intermediul unor circuite bridge (punţi) după

cum se vede în fig. 2.5.

Pe magistrala PCI informaţiile se transferă la 33 MHz şi aceasta s-a mărit la

66 MHz şi chiar 100 MHz la sistemele mai noi.

6. Busul PCMCIA este un standard ce s-a impus pentru calculatoarele portabile

de tip Laptop şi notebook. Sunt folosite plăci de extensii de mărimea cărţilor

de credit (credit card size). Trebuie remarcat aici că deoarece standardul fiind

vag respectat de producător, s-ar putea ca unele extensii de la un producător să

nu funcţioneze în alte calculatoare.

În final trebuie să remarcăm că în prezent la calculatoarele din noua generaţie,

busul (ISA, PCI, etc.) suportă aşa-zisa specificaţie “Plug-and-Play” (PnP) care

permite o configurare automată a dispozitivelor hardware ataşate PC cu condiţia

ca şi aceste plăci de pe extensie să fie compatibile PnP. Un utilizator

Page 27: Practica Hardware

25

Fig. 2.5.

poate ataşa calculatorului un nou echipament (ex: placă de sunet sau placă de

fax) şi să înceapă să lucreze fără ca să mai configureze manual aceste noi

echipamente ataşate. 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”,

comandând o serie de dispozitive în locul controlului direct a acestora de către µP

şi eliberând astfel µP de la o parte de muncă.

Vom descrie pe scurt principalele circuite auxiliare care completează schema

generală a unui PC specificând şi tipul de circuit folosit de IBM la origine, în primul PC.

Page 28: Practica Hardware

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 către memorie. În condiţii de funcţionare clasice, µP

intervine în cadrul fiecărui transfer de octet sau cuvânt înainte ca acesta să fie trimis către

memorie. Această tehnică în ultimul timp se foloseşte mai puţin datorită creşterii vitezei

µP.

Un controler de tip DMA se foloseşte în calculatoare pentru reînprospătarea

memoriei RAM (Random Access Memory). Această memorie este formată din celule

care îşi pierd informaţia în câteva fracţiuni de secundă dacă aceasta nu este reîncărcată.

Tocmai acest rol este preluat de un controler DMA descărcând µP de o sarcină căre ar

ocupa timp.

Controlerul de întrerupere (8259)

Controlerul de întrerupere joacă un rol central în comanda unor periferice precum

claviatura, discul dur sau interfaţa serie. În teorie o tastatură ar trebui tot timpul interogată

de către µP pentru ca o tastă apăsată 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 decât să se constate că nu s-a întâmplat 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 când are de tratat o informaţie. Acest mecanism se numeşte întrerupere

hardware. Ca urmare, procesorul îşi întrerupe programul în curs de execuţie (fig. 2.6.) şi

declanşează un program numit rutină de întrerupere, aflată de obicei în memoria BIOS şi

care are rolul de a rezolva cererea primită.

Când această subrutină îşi îndeplineşte rolul, procesorul îşi reia execuţia

programului din locul unde a fost întrerupt. Se observă că procesorul nu intervine decât

numai când este nevoie de el. Aceste cereri de întrerupere care pot proveni de la diferite

echipamente (exemplul nostru a fost tastatura) nu sunt trimise direct procesorului, mai

mult, aceste cereri pot interveni simultan iar procesorul nu este capabil să trateze decât o

Page 29: Practica Hardware

27

singură întrerupere. Pentru a gestiona cererele de intrerupere şi eventual prioritatea lor

există un circuit special numit controler de întrerupere.

Fig. 2.6

Într-un PC mai nou pot exista până la 15 întreruperi şi modul lor de acţiune 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 bătut la primele PC cu un tact de 14,3 MHz iar viteza lui a

crescut la generaţiile următoare ajungând 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 declanşeze aşa-zisa “întrerupere de ceas” care face să “avanseze” ora .

Controlerul de ecran

Controlerul de ecran nu face parte din circuitele de pe placa de bază ca celelalte circuite

descrise până acum, ci el este o cartelă de extensie care ocupă un conector.

Page 30: Practica Hardware

28

La origine acest controler a fost un circuit de tipul Motorola 6845 care constituie

inima unei plăci grafice monocrom sau color produsă de IBM. Aceste plăci au dispărut,

locul lor fiind luat de plăci 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

găseşte 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 către 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 având denumiri care diferă cu o

unitate de cel al procesorului (8087, etc).

Totuşi coprocesoarele nu au cunoscut niciodată un succes deosebit datorită

preţului practicat pentru achiziţionarea lor. Începând cu procesorul 486DX acesta a fost

integrat pe acelaşi chip cu procesorul însuşi, formând în final un singur circuit, numit

simplu“procesor”. singură întrerupere. Pentru a gestiona cererele de intrerupere şi

eventual prioritatea lor există un circuit special numit controler de întrerupere.

Aceste circuite auxiliare care la primele PC se găseau 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 cu

denumirea de “CHIPSET” şi sunt produse pe lângă Intel şi de alte firme producătoare de

chipuri pentru placa de bază. De obicei în oferta unui calculator când se prezintă

caracteristicile plăcii 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 având unele îmbunătăţiri faţă de precedentele şi putând fi folosite în combinaţie cu un

anumit tip de procesor.

Page 31: Practica Hardware

29

Fig . 2.7

D. Organizarea memoriei

În momentul apariţiei PC era echipat cu 16 Ko de memorie care putea fi extinsă

până la 64K pe placa de bază. IBM a furnizat şi plăci de extensie de memorie care cuplate

în conectori puteau mări memoria disponibilă peste limita de 64K, maxim la 256K

capacitate totală (3 plăci de 64K fiecare plus 64K pe placa de bază), un număr considerat

gigantic la acea epocă.

Dezvoltatorii PC au prevăzut o evoluţie a sa şi au permis o extensie posibilă până

Page 32: Practica Hardware

30

la 640K limita care a fost în realitate foarte repede atinsă. Cum procesorul 8088

(şi 8086) puteau adresa până la 1M spaţiul rămas peste cei 640K a fost atrribuit pentru

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.

Comentând această organizare observăm că primele 10 segmente sunt folosite

pentru memoria RAM adică memoria dinamică cu proprietatea de a fi scrisă şi ştearsă

Bloc Adresă Conţinut

15 F0000-FFFFF BIOS

14 E0000-EFFFF liber pentru memorie ROM

13 D0000-DFF liber pentru ROM

12 C0000-CF.. ROM suplimentar

11 B0000 memorie RAM pentru ecran

10 A RAM ecran suplimentar

9 9 RAM 576K – 640K

8 8 RAM 512K – 576K

7 7 ….

6 6 ….

5 5 ….

4 4 ….

3 3 …..

2 2 ….

1 10000-1FFFF RAM 64K – 128K

0 00000-0FFFF 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 parţial ocupate pentru plăci

Page 33: Practica Hardware

31

monocrom sau color cu rezoluţie scăzută.

Segmentele C, D, E pot conţine memorie ROM (Read Only Memory) pentru

unele echipamente cum ar fi discul dur, placă de reţea, etc. sau deasemeni să rămână

neocupate.

În ultimul segment (F) se găseşte aşa-zisa memorie BIOS (Basic Input Output

System) care este o memorie de tip ROM (Read Only Memory) care la primele PC

conţinea şi un interpreter BASIC !

Hardware PC nu este legat de o organizare specifică a memoriei dar fără să

dorească IBM a fixat regulile şi pentru ceilalţi constructori de PC care trebuie să respecte

această configuraţie de memorie pentru ca softul ce rulează pe PC-ul lor să fie compatibil

cu cel de pe celelalte.

2.3 Succesorii PC –lui original

Calculatorul IBM – PC nu a pus sfârşit dezvoltării microinformaticii dar a fixat

câteva principii care sunt valabile până în zilele noastre: funcţionarea BIOS-ului,

organizarea memoriei şi colaborarea între µP şi circuitele auxiliare.

Dacă primul PC a apărut în 1981, în 1983 la acesta se ataşează un disc dur de

10M, noul calculator numindu-se XT. Restul componentelor nu au fost afectate,

instalându-se numai un BIOS suplimentar în segmentul C de memorie ce conţinea

subrutinele pentru discul dur.

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 rămas pe 16 biţi dar liniile de adresă au crescut de la

20 la 24 putându-se adresa 16M de memorie. Discul dur s-a mărit la 20M discheta de

1,2M, ceasul de timp real cu acumulator sau baterie electrica ,numărul mărit de de

întreruperi hard şi noi funcţii BIOS introduse sunt numai câteva din îmbunătăţirile

introduse care fac să justifice numele de tehnologie avansată.

Unele din noile inovaţii introduse în construcţia sa nu au putut fi încă folosite

(modul de lucru protejat) decât mai târziu la introducerea lui 80386 şi sistemul de operare

Windows.

Page 34: Practica Hardware

32

PS/2. Odată lansat AT, IBM a căutat un nou standard şi introduce un nou bus,

busul MCA (Micro Channel) dar păstrarea secretă a specificaţiilor de bus au făcut ca

interesul pentru această serie de sisteme să fie redus mai ales că plăcile de extensie ISA

nu puteau să funcţioneze pe un astfel de sistem.

În fapt PS/2 anunţă începutul sfârşitului dominaţiei pentru IBM pe piaţa PC.

După AT: mai multe standarde

Tot mai mulţi fabricanţi î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

conţine şi procesorul matematic înglobat în cip şi se construiesc calculatoare PC care

toate bineînţeles sunt compatibile ca cele anterioare. Apariţia procesoarelor din seria

Pentium (586, 686, etc) fac ca performanţele PC să urce la cote care nici nu se

întrezăreau la apariţia primelor PC, urmând să vedem ce surprize ne rezervă viitorul !

Întrebări la cap. 2

1. Care sunt nivelele de acces ale aplicaţiilor (software) la echipament ( hardware)

într-un calculator de tip PC ?

2. Care este deosebirea dintre funcţiile de acces la hardware oferite de BIOS si SO

(sistemul de operare , DOS de exemplu) ?

3. Ce avantaj oferă existenţa 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 ) cunoaşteţi în evoluţia calculatorului PC ?

6. La ce se referă specificaţia „Plug & Play „ din construcţia calculatorului PC ?

7. Ce circuite auxiliare intră în construcţia unui PC ?

8. Care este principiul după care funcţionează tehnica DMA (Direct Memory

Access ) la un calculator PC ?

9. Care este rolul circuitului auxiliar controler de întreruperi ( i 8259 ) ?

10. Ce sunt circuitele „CHIPSET” aflate pe placa de bază a plăcilor din noile

generaţii de PC ?

11.Care au fost succesorii calculatorului PC original ?

Page 35: Practica Hardware

33

Cap. 3 ARHITECTURA INTERNĂ A MICROPROCESOARELOR

DIN FAMILIA INTEL PE 16 BIŢI

3.1 Unitaţile interne ale procesorului Intel 8088

În general când se vorbeşte despre un microprocesor (µP) se înţelege că acesta

reprezintă CPU (Central Procesing Unit) din arhitectura generalizată von Neumann. După

ce s-au construit primele µP pe 8 biţi s-a căutat ca puterea de calcul a acestora să se

mărească prin creşterea numărului de biţi prelucraţi trecându-se la prelucrări pe 16 biţi.

Totodată s-au făcut unele inovaţii în cadrul arhitecturii interne care au dus la o creştere a

vitezei de prelucrare.

Dacă la µP anterioarea unitatea de prelucrare lucra strict după schema ciclică

descrisă la arhitectura von Neumann de extragee a instrucţiunii, decodificare, execuţie

ş.a.m.d. la această serie nouă de µP unitatea de prelucrare este divizată în două unităţi

(vezi fig. 3.1.):

.

Fig. 3.1.

unitatea de execuţie (Execution Unit – EU)

Page 36: Practica Hardware

34

unitatea de interfaţă cu magistrală (Bus Interface Unit – BIU)

După cum se observă cele două unităţi sunt legate între ele cu o conductă

(pipeline) prin care sunt transferate instrucţiunile extrase din memoria program de către

BIU spre EU care are numai rolul de a executa instrucţiunile extrase de BIU, EU neavând

nici o legătură cu magistrala sistemului. În timp ce EU îşi îndeplineşte sarcina , BIU

extrage noi instrucţiuni pe care le organizează într-o coadă de aşteptare (queue). La

terminarea execuţiei unei instrucţiuni EU are la dispoziţie deja o nouă instrucţiune din

coada de aşteptare menţinută de BIU. Cele două unităţi EU şi BIU lucrează deci în

paralel existând momente de sincronizare şi aşteptare între ele atunci când coada de

instructiuni este goală ceea ce se întâmplă însă foarte rar.

Funcţionarea paralelă a celor două unităţi BIU şi EU este transparentă

utilizatorului. Această arhitectură se mai numeşte şi arhitectură cu prelucrare secvenţial –

paralelă “pipeline”.

O schemă bloc a unei structuri de µP elaborat având ca bază aceasta arhitectură

este dată în fig. 3.2. ca fiind caracteristică µP INTEL din seria X86 (8086, 8088, 386).

Unitatea de execuţie EU conţine o unitate logico – aritmetică ALU de 16 biţi,

registrul indicatorilor condiţionali (FR), registru operatorilor şi regiştrii generali. Toate

registrele şi canalele EU sunt pe 16 biţi.

BIU conţine indicatorul de instrucţiuni 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 instrucţiunile extrase

(Instruction Queue).

După cum se cunoaşte informaţia care se vehiculează în calculator se găseşte sub

formă binară ca şiruri de 0 şi 1. Convenim în continuare să notăm această informaţie

binară după schema din fig. 3.3.

3.2 Regiştrii procesorului Intel 8088

Vom detalia în continuare blocurile de regiştri arătând şi rolul unora dintre aceştia

în cursul execuţiei programului. Avem următoarele categorii de regiştri pe 16 biţi:

Page 37: Practica Hardware

35

1. regiştri generali; 4. registrul inicatori stare şi control

2. regiştri de segment;

3. registru pointer de instrucţiune;

Fig. 3.2

Page 38: Practica Hardware

36

Fig. 3.3.

1. Regiştrii generali sunt în număr de 8 şi sunt împărţiţi în două seturi a câte 4 regiştri:

regiştrii de date AX, BX, CX, DX;

regiştrii de pointer şi de index SP, BP, SI, DI (fig. 3.4.)

Fig. 3.4.

Grupul regiştrilor de date poate fi adresat şi pe jumătate de registru (adică pe

octet) având octetul inferior (Acumulator LOW) şi octetul superior (Acumulator HIGH).

La fel şi ceilalţi trei. Deci fiecare registru de date poate fi folosit ca registru general de

Page 39: Practica Hardware

37

date pe 16 biţi sau două registre generale de 8 biţi. Regiştrii de pointer şi index pot fi

folosiţi numai pe 16 biţi şi participă la majoritatea operaţiilor aritmetice şi logice.

Diferite instrucţiuni utilizează regiştrii generali în mod implicit astfel:

AX – înmulţiri şi împărţiri pe cuvânt, operaţii de intrare / ieşire pe cuvânt

AL – înmulţiri, împărţiri pe octet şi operaţii de intrare/ieşire pe octet

AH – înmulţire şi împărţire pe octet

BX – translatări

CX – operaţii cu şiruri şi bucle

CL – deplasări şi rotaţii

DX – înmulţiri, împărţiri, operaţii indirecte de intrare ieşire

SP – operaţii cu stiva (offset)

SI, DI – operaţii cu şiruri

Registrul BP este folosit în mod curent pentru adresarea datelor din segmentul de stivă.

2. Regiştrii de segment permit programatorului posibilitatea localizării unui operand

aflat în spaţiul de memorie de 1M în spaţiul de memorie cu adresele 00000h÷ FFFFFh.

Acest spaţiu de 1 Moctet de memorie ce poate fi adresat de µP 8086 este “văzut” ca un

grup de segmente.

Un segment este o unitate logică de memorie care poate avea cel mult 64 Kocteţi

(locaţii contigue). Fiecărui segment i se atribuie o adresă de bază care este adresa locaţiei

de început a segmentului. Valoarea acestei adrese se află memorată într-un registru de

segment. Există 4 regiştri segment conform figurii 3.5. şi ei se găsesc localizaţi în BIU.

După cum se observă din fig. 3.6. în memorie pot exista, în funcţie de poziţia lor

relativă segmente adiacente, parţial suprapuse sau suprapuse complet si disjuncte.

Deci fiecare aplicaţie (program aflat în memorie) are la dispoziţie un spaţiu de

64K pentru codul instrucţiunilor (segmentul de cod) 64 kocteţi pentru stivă (segment de

stivă) şi 128 Kocteţi pentru date (segmentul de date şi extra segmentul).

Unele aplicaţii pot însă gestiona un spaţiu de memorie mult mai mare făcând

gestionarea segmentelor după propriile necesităţi.

Page 40: Practica Hardware

38

Această împărţire a memoriei în segmente de 64K provine din faptul că µP pe 8

biţi anterioare gestionau un spaţiu de numai 64K. Proiectanţii de la Intel au căutat ca şi

noile µP pe 16 biţi să folosească eventual programe scrise pentru µP anterioare adoptând

această soluţie a segmentului făcând însă mai grea înţelegerea adresării memoriei faţă de

alte µP de aceeaşi clasă ca Motorola 68000 care permit o adresare liniară a memoriei.

Fig. 3.5.

Fig. 3.6

Page 41: Practica Hardware

39

Generarea adresei fizice.

Fiecare locaţie de memorie are două tipuri de adresă:

fizică;

logică.

Adresa fizică este o valoare formată din 20 biţi care identifică unic fiecare locaţie

din spaţiul de adresare. Adresa fizică se găsesşte în domeniul 00000h÷ FFFFFh şi se mai

numeşte adresă absolută.

Pentru a nu depinde de locul unde se află codul în memorie folosesc aşa – zisele

adrese logice şi nu fizice.

Adresa logică constă dintr-o valoare de bază de segment şi o valoare de

deplasament (offset). Pentru orice locaţie de memorie, valoarea de bază a segmentului

este adresa primului octet al segmentului care conţine locaţia. Această adresă este

exprimată în paragrafe (paragraful fiind o unitate de 16 biţi) iar deplasamentul (offset)

este distanţa în octeţi de la începutul segmentului până la locaţia respectivă. Adresa de

bază şi deplasamentul sunt valori pe 16 biţi fără semn.

Mai multe adrese logice pot localiza aceeaşi locaţie 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 (conţinută într-un registru segment) cu 4 poziţii spre stânga (ceea ce

echivalează cu o înmulţire cu 16) şi adunarea valorii deplasamentului.

BIU obţine adresa logică a unei locaţii de memorie diferit în funcţie de modul de

referinţă a memoriei. Înstrucţiunile sunt întotdeauna încărcate din segmentul de cod

curent iar registrul IP conţine deplasamentul instrucţiunii următoare faţă de începutul

segmentului. Operaţiile cu stiva operează, în segmentul de stivă curent iar registrul SP

conţine deplasamentul faţă de vârful stivei. Variabilele se găsesc de obicei în segmentul

de date iar deplasamentul este dat după modul de adresare specificat în instrucţiune.

Rezultatul este aşa – numita adresă efectivă despre care vom mai vorbi la prezentarea

modurilor de adresare.

Page 42: Practica Hardware

40

Operandul sursă al unei instrucţiuni pe şiruri se presupune a fi în segmentul de

date curent iar SI va furniza deplasamentul. Operandul destinaţie la operaţiile pe şiruri se

află întotdeauna în extrasegment, iar deplasamentul este furnizat de DI.

Acestea sunt atributele segmentelor în mod implicit. Unele din aceste atribuţii pot

fi schimbate. Figura 3.9. prezintă grafic cele expuse anterior.

Fig. 3.7.

Fig. 3.8.

Page 43: Practica Hardware

41

.

Fig. 3.9.

Cod relocabil dinamic. Faptul că memoria µP8086 sau 8088 este segmentată

face posibilă scrierea de programe care sunt independente de poziţia lor în memorie adică

sunt relocabile dinamic. Aceste programe trebuie însă să îndeplinească o sumă de

condiţii. Dacă aceste condiţii sunt îndeplinite, programul poate să fie mutat oriunde în

memorie. După cum se observă în fig. 3.10, un astfel de program a fost făcut să ocupe o

zonă contiguă de memorie lăsând spaţiu nefragmentat şi pentru alte aplicaţii. De

asemenea, acest fapt este important atunci când programul este inactiv în memorie

sistemul de operare mută programul pe disc şi când se doreşte să fie adus din nou în

Page 44: Practica Hardware

42

Fig. 3.10.

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 instrucţiuni (IP) este un registru pe 16 biţi actualizat de BIU şi conţine

deplasamentul (offsetul) instrucţiunii următoare faţă de începutul segmentului de cod

curent.

Programele nu au acces direct la el dar există instrucţiuni care îl modifică şi îl

încarcă sau îl descarcă de pe stivă.

4. Registrul de stare şi control (Flags register) conţine 6 indicatori de stare şi 3

indicatori de control fiind notaţi conform fig. 3.11.

Cei 6 indicatori de stare EU îi poziţionează pentru a reflecta anumite stări ale unei

operaţii aritmetice sau logice. Un anumit set de instrucţiuni permit modificarea execuţiei

Page 45: Practica Hardware

43

Fig. 3.11.

unui program în funcţie de starea acestor indicatori – cum ar fi instrucţiunile de

salt condiţionat. Indicatorii de stare reflectă următoarele condiţii:

C (Carry) reflectă transportul în exterior a bitului cel mai semnificativ al rezultatului

operaţiilor aritmetice.

P (paritate) este poziţionat dacă rezultatul are paritate pară (conţine un număr par de

biţi de 1)

A (carry auxiliar) este poziţionat dacă a avut loc un transfer de la semioctetul inferior

la semioctetul superior al rezultatului şi este folosit în aritmetica zecimală.

Z (zero) poziţionat dacă rezultatul operaţiei a fost zero.

S (semn) este poziţionat dacă cel mai semnificativ bit al rezultatului este 1 (1 – număr

negativ)

O (depaşire) poziţionat când dimensiunea rezultatului depăşeşte capacitatea locaţiei

de destinaţie şi a fost pierdut un bit.

Pentru controlarea unor operaţii a procesorului pot fi modificaţi (de program) trei indicatori de control:

D dacă este poziţionat pe 1 operaţiile pe şiruri se vor decrementa;

I poziţionat pe 1 permite CPU să recunoască cererile de întrerupere externe

mascabile;

T (trap) poziţionat pe 1 trece CPU în execuţia de pas cu pas în scopul depanării

programului instrucţiune cu instrucţiune.

Având la dispoziţie aceste informaţii schema generală a CPU 8086 se poate

detalia şi în fig. 3.12. prezentăm schema internă completă a unui µP Intel 8086.

Întrebări la cap. 3

1. Care sunt unităţile de prelucrare ăn care este divizată CPU Intel pe 16 biţi

(micro P Intel 8088 , etc ) ?

Page 46: Practica Hardware

44

Fig. 3.12.

2. Care este avantajul divizării CPU în două unităţi de prelucrare independente la

micro P Intel 8088 ?

3. Care este alcătuirea EU ( unitatea de execuţie ) a micro P Intel 8088 ?

4. Din ce este compusă unitatea BIU ( Bus Interface Unit ) la microP Intel 8088?

5. Care sunt regiştrii generali ai microP Intel 8088 ?

6. Care sunt regiştrii de pointer şi index ai microP Intel 8088 ?

7. Ce este un segment de memorie ?

8. Care sunt regiştrii de segment ai microP Intel 8088 ?

9. Ce este o adresă fizică de memorie ?

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 înţelege prin cod relocabil dinamic ?

14. Numiţi 3 indicatori de stare şi măcar 1 de control din registrul de stare şi

control ai micro P Intel 8088 ?

Page 47: Practica Hardware

45

Cap. 4 NOTIUNI DESPRE FUNCŢIONAREA ŞI ADRESAREA

DATELOR LA µP PE 16 BITI

4.1 Funcţionare µP la nivel de magistrală

După cum s-a văzut 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 serveşte pentru execuţia sincronizată a operaţiilor din

interiorul µP şi efectuarea transferurilor între diferite blocuri la nivelul magistralei

externe.

In timpul funcţionării activitatea µP poate fi descompusă în secvenţe de

microoperaţii care formează aşa numiţii ciclii maşină. Funcţie de natura operaţiei care se

execută putem avea 5 tipuri de ciclii maşină :

1. Lectură(read). atunci când se citesc date din memorie sau de la dispozitivekle de i/o;

2. Scriere (write) când datele se inscriu in locaţii de memorie sau intr-un dispozitiv de

ilo;

3. Recunoaştere întrerupere în cazul generării unei intreruperi pe care µP o identifică;

4. Oprire (halt) atunci când µP este oprit până la primirea unei intreruperi sau;

5. Arbitrare magistrală când sistemul de calcule este prevăzut cu mai multe µP care pot

avea acces la o magistrală comună.

Toate aceste opearţii sunt descrise cu lux de amănunte în foile de catalog ale

firmelor ce produc µP. Vom exemplifica un astfel de ciclu de lecturi într-un mod

simplificat căutând 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 menţine 2 ns şi apoi "cade"

inapoi la "0" logic.

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 funcţionare

sincronizată, reprezentarea lor făcându-se pe verticală. Fig.4.2. reprezintă diagrama unui

ciclu de citire.

Page 48: Practica Hardware

46

Fig.4.1.

Fig.4.2.

În starea T1 se furnizează un semnal AS care face ca informaţia de adresă obţinută

din adresa de segment + adrese offset să fie stabilă pe busul de adrese A0 - A19 astfel că

Page 49: Practica Hardware

47

memoria are timp până în starea T3 să selecteze această adresă. In starea T3 semnalul RD

(dela Read) face ca informaţia 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ă câte o diagramă la fel ca aceasta dar distribuţia in timp a

semnalelor va fi specifică fiecărui tip de ciclu.

4.2 Moduri de adresare la 8088

Programul care se execută se găseşte memorat in segmentul de cod. După cum am

văzut intr-un capitol anterior când se incarcă o instrucţiune din memorie adresa acestuia

este furnizată de CS ca adresă de bază şi IP (pointerul de instrucţiuni) ca: deplasament. In

mod normal conţinutul lui IP este incrementat pe măsură ce instrucţiunile se execută

astfel ca totdeauna să fie deja selectată instrucţiunea care urmează. Instrucţiunile de salt

necondiţionat sau apel proceduri pot însă modifica IP sau IP şi CS, modificându-se astfel

ordinea secvenţială de execuţie a instrucţiunilor.

Adresarea datelor

Datele din memorie care formează operanzii instrucţiunilor pot fi adresate in mai

multe moduri. Aceşti operanzi pot fi conţinuţi în regiştrii, în memorie, în instrucţiuni sau

porturi de I/O. Operaţiile care implică date numai din regiştrii 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

Page 50: Practica Hardware

48

Adresa efectivă este calculată de către unitatea de execuţie (EU) şi furnizată

unităţii de legături cu magistrala (BIU) care va calcula adresa de segment după algoritmul

de mai sus .

Registrii folosiţi şi modul de adresare (memorie sau registru) sunt codificate in

cadrul instrucţiuni.

Vom avea următoarele tipuri de adresare:

1.Adresare imediată

În acest caz operandul apare chiar in instrucţiune:

Ex: mov ax,1

Această instrucţiune va imiţializa reg. AX cu 1.

2.Adresare directă

AE este obţinut prin furnizarea de către instrucţiune a unui deplasament in

interiorul segmentului curent (in interiorul segmentului de date de obicei).

Ex. add bx, [200]

Aceastră instrucţiune adună la reg. BX conţinutul locaţiei 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 bineinţeles DS după schema din fig.4.4.

Page 51: Practica Hardware

49

Ex. mov ax, [bx]

Conţinutul adresei de memorie de la adresa dată de BX este transferat in ax.

Observăm că BX,Si,DI conţin adrese şi nu valori numerice.

Fig. 4.4.

4. Adresare bazată sau indexată

AE se obţine adunând 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]

Page 52: Practica Hardware

50

La conţinutul adresei de bază din bx se adună deplasamentul S şi se obţine

offsetul operandului. Aceste tipuri de adresare se pot folosi când avem structuri de date

care pot fi localizate in diferite locuri din memorie.Reg. de bază va conţine 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.

Fig.4.6.

Ex. mov ax,[bx +si +7]

Aceasta din urmă combină celelalte anterioare fiind cea mai complexă permiţând

adresarea cu 2 indecsi (conţinuturile reg. de baza şi indecşi).

In cele arătate anterior, de obicei registrul segment implicit este cel de date

presupunând că se adresează operanzi de calcul obişnuiţi în afara cazului când se

fooloseşte BP când reg. de segment mplicit este SS. Dacă nu se doreşte folosirea

implicită a reg. de segment atunci în instrucţiune se va preciza explicit despre care reg. de

segment este vorba cum ar fi în instrucţiunea următoare:

mov bx, ds: [bp + 7]

Dacă nu precizam DS implicit se folosea SS fiind vorba de BP care lucrează cu

SS in mod implicit.

Page 53: Practica Hardware

51

4.3 Codificarea internă a instrucţiunilor

Instrucţiunile µP8088 se pot intinde pe 1 până la 6 octeţi. Codificarea conţine

codul instrucţiunii (tipul operaţiei - adunare, scădere, salt, etc) modul de adresare (cu

registru sau cu memoria) deplasamentul operandului sau adresa efectivă cu adresarea

directă), date imediate, pe 8 sau 16 biţi. Formatul unei instrucţiuni de INC - incrementare

registru-pe 1 octet este prezentat în fig. 4.7.

..

Fig. 4.7.

unde OP cade ocupă 5 biţi şi dă codul operaţiei de incrementare iar cei 3 octeţi din

câmpul REG specifică unul din registrii general, pointer sau index

Fig.4.8. arată codificarea efectiv a instrucţiunii INC BP

Mai există o formă a instrucţiunii care poate incrementa şi orice cuvant de

memorie pe lângă registri şi ea se scrie pe 2 octeţi. Nu vom intra în amănunte spunând

numai că cei 16 biţi au câmpuri bine precizate pentru a indica exact modul de adresare şi

regiştrii care intervin în calcul adresei.

Amănunte se găsesc în tabelele ce conţin setul de instrucţiuni ai procesorului

Page 54: Practica Hardware

52

4.4 Stiva (Stack) O zonă specială de memorie este folosită de programe atunci când se execută

subprograme sau se transmit parametrii de la un program cu altul.

Această zonă poartă numele de stivă (stack în engleză). fiindcă funcţionarea ei

este asemănătoare 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.

Page 55: Practica Hardware

53

. Fig.4.9. ilustrează un astfel de caz. Atunci când s-a ajuns cu pointerul de instrucţiuni la

adresa 1000 se execută un apel la procedura PROC care se găseşte în memorie la adresa

3000. Când se termină de executat procedura trebuie să ne întoarcem inapoi la prima

instrucţiune de după instrucţiunea de apel procedură (1001 în cazul nostru). Deci, adresa

1001 trebuie să fie memorata undeva pentru ca la revenirea din procedură să reluăm

programul din acel loc.

Stiva se foloseşte pentru a memora această adresă de revenire. Microprocesorul

este proiectat astfel incât automat la execuţia unui apel de procedură (CALL) salveze in

stivă următoarea adresa de memorie care contine instructiunea urmatoare din secventa (

de fapt continutul registrului IP). Când se intâlneşte in subrutină instrucţiunea de

RETURN (revenire din subprogram) tot automat µP ia din vârful stivei adresa găsită şi o

incarcă in registrul IP (pointerul de instrucţiuni) executând apoi, instrucţiunea găsită la

această adresă (adică instrucţiunea de la adresa 1001).

Putem defini stiva ca un concept abstract de structură de date asupra cărora

operează instrucţiuni special proiectate in acest scop.

O zonă de stivă este caracterizată de o adresă curentă numită adresa vârfului 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 si pentru stiva este alocata implicit o

zona de 64 Kocteti (lungimea standard a unui segment ! ). Operaţiile de bază cu stiva

sunt PUSH (depune un cuvânt in stivă) sau POP (extrage un cuvânt din stivă)..

La µP 8088 cuvintele transferate in stivă sunt de 16 biţi. (2 octeţi adica un cuvint )

deci adresa curentă a vârfului stivei se va incrementa sau decrementa cu 2. Fig.4.10.

prezintă modul de acţiune a unei operaţii de PUSH.

Se observă că stiva "creşte" in jos pe măsură ce se depun date in ea. Mărimea 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 salvări sau refaceri de date, transmiterea parametrilor

către proceduri etc. Implicit se foloseşte in cazul apelurilor de procedură. Deasemenea

programele care permit definirea si folosirea functiilor recursive folosesc stiva pentru

memorarea valorilor inermediare a parametrilor si valorilor funcţiilor.

Page 56: Practica Hardware

54

Fig.4.10.

Întrebări la cap. 4

1. Care sunt ciclii de maşină pentru un micro P Intel 8088 ?

2. Ce moduri de adresare cunoaşteţi la micro P Intel 8088 ?

3. Daţi exemplu de adresare imediată la microP Intel 8088 ?

4. Daţi exemplu de adresare directă la microP Intel 8088 ?

5. Daţi exemplu de adresare indirectă la microP Intel 8088 ?

6. Daţi exempu de adresare bazată sau indexată ?

7. Ce este stiva ?

8. După ce principiu funcţionează stiva implementată la microP Intel 8088 ?

9. La ce serveşte stiva implementată la microP Intel 8088 ?

10. Ce instrucţiuni (operaţii) se pot folosi cu stiva la microP Intel 8088 ?

Page 57: Practica Hardware

55

Cap.5 INTRERUPERI

Unul din marile avantaje ale unui calculator faţă de orice altă maşină creată de om

este aceea că un calculator este capabil să răspundă la un număr mare de sarcini

imprevizibile. Cheia acestor posibilităţi 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 răspuns la intreruperea intervenită (cum ar fi de exemplu apăsarea

unei taste sau primirea unui fax prin modem !). Acest mecanism face ca sistemul de

calcul să fie foarte flexibil permiţând un răspuns imediat la un eveniment extern prin

intreruperea sarcinii curente şi reluarea acestei sarcini după ce s-au rezolvat cerinţele

impuse de acest eveniment extern.Noţiunea de intrerupere presupune intreruperea

programului in curs de execuţie ş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 rămas 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

prezentînd noi aspecte .

5.1 Intreruperi hardware şi software

Clasificarea intreruperilor se poate face după mai multe criterii. Una din aceste

Fig.5.1

Page 58: Practica Hardware

56

clasificari este prezentată în fig.5.1.

Intreruperile software apar in urma execuţiei de către µP a unor instrucţiuni 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 intrările INT şi NMI ale µP.

Intreruperile hardware interne apar ca urmare a unor condiţii speciale ale

procesorului (cum ar fi execuţia pas cu pas in cazul depanării programelor).

Intreruperile externe dezactivabile se aplică pe intrarea INT şi sunt luate in

cosiderare numai dacă bistabilul IF (intrerupt Flag) din registrul indicatorilor de condiţie

= 1.

Intreruperile externe nedezactivabile au loc la aplicarea unui semnal

corespunzător pe intrarea NMI (Non Mascable Interrupt) şi sunt luate in considerare

intotdeauna (ex: căderea tensiunii de alimentare).

Intreruperi 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 făcut 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 primeşte o intrerupere de la un dispozitiv periferic (s-a apăsat 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

Page 59: Practica Hardware

57

Fig. 5.2

intrerupere pe linia INT către µ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 busul de

date un octet care va identifica typul intrerupere (nivelul intreruperii). Controlerul de

intrerupere 8259 având 8 intrări pentru intreruperi de la echipamente va putea să trimită 8

valori diferite, fiecare indentificând unic una din cele 8 intrări. Se mai spune că

controlerul poate furniza 8 vectori de intreruperi identificaţi 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 combinaţii 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.

Page 60: Practica Hardware

58

Adresele acestor rutine sunt trecute intr-o aşa zisă tabelă de intrerupere care se

află memorată in memorie RAM in primii 1024 de octeţi (1 octet). Datorită faptului că

fiecare rutină de intrerupere se poate afla in segmente diferite pentru a identifica adresa

unei rutine trebuie să-i furnizăm adresa de segment (CS) (2 octeţi) şi adresa ofssetului

(IP) (încă 2 octeţi) deci o adresă va ocupa 4 octeţi. Cum sunt 256 de posibile intreruperi

256 x 4 = 1024 octeţi = 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 octeţi) desemnează o adresă de memorie

unde se găseăşte rutina pentru o intrerupere tabela se mai numeşte “tabela vectorilor de

întreruperi”.

Amplasarea se realizează in funcţie de octetul typ care dă nivelul de intrerupere.

Fig.5.3.

Am văzut că acest octet poate lua 256 de valori.

Octetul typ *4 va furniza adresa din memorie unde se găseşte vectorul de

intrerupere (adresa rutinei de intrerupere) pentru nivelul furnizat de octetul typ.

La apariţia unei intreruperi in µP au loc următoarele acţiuni:

• se salvează in stivă registrele FLAGS, CS şi IP in această ordine.

• se sterg bistabilii IF şi TF (adică se blochează execuţia unei alte intreruperi in timpul

Page 61: Practica Hardware

59

execuţiei programului pentru intreruperea in curs iar TF blochează execuţia pas cu pas a

rutinei de intrerupere).

• se furnizează µP un octet (8 biţi 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

corespunzător rutinei de tratare a intreruperii.

Fiecare componentă a calculatoruluii care poate să aibă nevoie de µP la un

moment dat are propriul său nivel de întrerupere. Tastatura, ceasul intern, unităţile de

disc, imprimantele, placa de reţea etc., toate acestea au fiecare un nivel de întrerupere

rezervat. La apăsarea 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 când este terminat un transfer iar

imprimanta când nu are hârtie, placa de reţea când primeşte un pachet de date, adresat ei,

etc. Deci observăm că activitatea µP se desfăşoară intr-o veşnică posibilitate de a fi,

“intreruptă“ de altcineva care are mai mare nevoie de µP decât aplicaţia ce ruleazâ.

Interesant este că intreruperile nu au făcut parte din conceptul primelor

calculatoare. La inceput calculatoarele au fost folosite fără acest mecanism de

intrerupere. Astăzi este greu de imaginat un calculator fără sistem de intreruperi

implementat in cadrul sau hard si soft.

Conceptul de intrerupere s-a dovedit atât de eficient şi util incât a fost adaptat la o

mare varietate de alte necesităţi ale calculatorului. Pe lângă 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 impărţire prin

zero. In acest caz se generează o intrerupere internă de excepţie.

Intreruperi software

Această categorie de intreruperi nu apare pe neaşteptate ca cele hardware descrise

anterior. Ideea care stă la baza intreruperilor s-a dovedit atât de eficientă şi productivă

incât 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

Page 62: Practica Hardware

60

numesc intreruperi soft. După cum am văzut, atunci când se construieste un PC există

un set de programe interne integrate continuate intr-o memorie ROM (Read Only

Memory) şi care formează aşa zisul BIOS. Dacă programele de aplicaţii au nevoie de

funcţii oferite de BIOS modul de apelare a acestora il constituie intreruperile soft.

Serviciile BIOS sunt puse la dispozitia programului de aplicaţie prin execuţia

unei instrucţiuni de intrerupere soft de tipul INT n unde n reprezintă nivelul de

intrerupere solicitat. Intreruperile soft funcţionează la fel ca şi celelalte tipuri de

intrerupere cu o singură diferenţă. Ele nu sunt declanşate de un eveniment neaşteptat sau

aleatoriu ci sunt produse intenţionat de către program cu un anumit scop.

Sistemul de operare DOS care a fost primul SO implementat pentru PC foloseşte

de asemenea intreruperi software pentru apelul unor funcţii necesare derulării

programelor de aplicaţie sub directul său control.

Aceste funcţii BIOS sau DOS apelate prin intermediul intreruperiolor software

sunt tratate de către procesor ca subprograme care după ce se termină redau controlul

programului apelant.

Programul care face apel la o funcţie DOS sau BIOS nu are nevoie să cunoască

adresa de memorie a subrutinei corespunzătoare ci este suficient sa indice numărul

intreruperii alocate acelei funcţii şi eventual parametrii auxiliari, necesari funcţiei. Aceste

intreruperi sunt standardizate. Astfel de exemplu, serviciile şi funcţiile DOS sunt

asigurate toate cu ajutorul intreruperii 21H.

Literatura şi documentaţia descriu aceste funcţii şi modul lor de apel.

Vom mai face câteva observaţii asupra modului de funcţionare a intreruperilor

intr-un PC.

Ultima instrucţiune dintr-o subrutină de intreruperi este instrucţiunea 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 redând controlul programului principal.

Dacă rutină de intreruperi lucrează cu registrii procesorului şi distruge valorile

conţinute in acestea, revine in grija programatorului ca acest conţinut registrilor distruşi

să fie eventual salvaţi explicit in stivă prin instrucţiuni de tip PUSH la inceputul

subrutinei de intrerupere iar la sfârşit, inainte de terminare să fie refăcuţi aceşti regi0tri

Page 63: Practica Hardware

61

prin instrucţiuni POP corespunzătoare. Astfel programul care a fost intrerupt i-şi reia

lucrul cu valorile care erau in acel moment in registrii procesorului.

După cum am văzut imediat ce s-a declanşat 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ă cât mai repede o instrucţiune de tip

STI (set intrerupt) care “armează“ (activează) din nou sistemul de intreruperi - bineinţeles

dacă programul rutinei de intrerupere nu execută o porţiune in care nu are voie să fie

intrerupta.

Tabela vectorilor de intreruperi după cum am văzut 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 aşa zisele programe TSR,(Terminate and

Stay Residente) care se instalează in memorie şi rămân instalate până la o comandă

explicită pentru eliberarea memoriei. Acestea modifică adresa rutinei de tastatură din

tabelă, filtrând toate caracterele care se introduc la tastatură. Atunci când 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 existând pericolul ca eventual sistemul să se blocheze.

Această poartă de intrare in sistemul de operare prin intermediul intreruperilor

este folosită şi de unele programe “răuvoitoare” cum ar fi “viruşii” , ” cal trojan” ,etc.

Aceste programe se zice că “fură“ o intrerupere adică işi 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 declanşarea 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 integrităţii datelor in PC-sau o alta

activitate cu caracter nociv pentru executia normala a progrsamului. Pe cât de puternic

este sistemul de intreruperi in activitatea unui pocesor pe atât de mare poate fi pericolul

folosirii necorespunzătoare a acestuia de către persoane rău intenţionate.

Sistemele de operare mai noi (Windows NT, Windows2000, WindowsXP,Linux,

Page 64: Practica Hardware

62

OS/2) limitează accesul la partea de hard tocmai din această cauză. Programele de

aplicaţie 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

funcţiile 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 .

5.2 Procesoare CISC şi RISC

Procesoarele Intel din seria x86 fac parte din aşa zisele procesoare CISC

(Complex Instruction Set Computer - calculator cu set complex de instrucţiuni).

Acestea sunt procesoare la care setul de instrucţiuni cuprinde un număr mare de

operaţii implementate. Totodată acestea se pot executa cu operanzi a căror adresă poate

cere timp până se calculează şi după aceea se execută instrucţiunea propriu-zisă. S-a

văzut incă incepând chiar de la calculatoarele mari (mainframe) a anilor 1950 că, execuţia

operaţiilor simple cu operanzi in registrii iau mai puţin timp de calcul. In plus odată cu

dezvoltarea softului de aplicaţii şi prin studii statistice efectuate de companii ca IBM s-a

demonstrat că instrucţiunile complexe din procesoarele CISC sunt rareori folosite

preferându-se folosirea a câtorva instrucţiuni simple in locul uneia mai complexă. Astfel

10% din setul de instrucţiuni a unui procesor CISC stă la bază a peste 90% din totalul

codului generat de un compilator ca PASCAL-ul. Cercetările s-au indreptat spre

proiectarea unor procesoare cu instrucţiuni mai puţine, cu mulţi registri şi memorie

imediată in care să fie reţinute datele temporare precum şi cu viteză mai mare. Astfel aşa

zisele procesoare RISC (Reduced Instruction Set Computer - Calculator cu Set Redus de

instrucţiuni).

Acestea s-au dezvoltat imediat ce tehnologia a permis obţinerea de memorie

ieftină.

Simplitatea setului de instrucţini, modul de adresare mai simplu care necesită un

singur acces la memorie principală intr-un sungur impuls de ceas şi execuţia

Page 65: Practica Hardware

63

instrucţiunilor in structuri de tip pipeline au permis proiectarea unor unităţi de execuţia

superscalare care permit execuţia mai multor instrucţiuni simultan. Aceasta au dus la

succesul structurilor de tip RISC, care s-au impus alături de cele mai vechi de tip CISC.

In ultimii 15 ani nu s-au mai proiectat noi structuri CISC.

Simplitatea structurilor RISC, nevoia mai puţină de siliciu şi deci posibilitatea de

integrare pe cip a unor memorii şi unităţi de execuţie multiple au făcut ca acestea să fie

mai performante decât cele de tip CISC.

Procesoarele noi din seria X86 folosesc în structura lor tehnici RISC ele însă

păstrând vechea structură CISC. Acest set de instrucţiuni complex face ca softul mai

vechi să fie completibil şi pe cele actuale. Dacă doriţi un calculator cu procesor RISC s-ar

putea să nu beneficiaţi 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 când Windows ‘98 este disponibil numai pe platformă CISC

adică x86.

Vom aminti aici şi ceva despre procesoarele DSP (Digital Sygnal Processor).

După cum spune şi numele - (Procesor de Semnal Digital)acestea sunt proiectate special

pentru a controla semnalele analogice intâlnite î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 prelucrări video. In

ele sunt integrate tehnologii avansate de prelucrare ,specifice procesoarelor moderne -

arhitecturi SIMD sau MISD - . Viitorul cu toate aplicaţiile sale multimedia vor face ca

acestea să ocupe un loc important în viitoarele arhitecturi de calculatoare si sisteme de

calcul ptr. calculatoarele “ de acasa” !

Întrebări la cap. 5

1. La ce se referă noţiunea de întrerupere la un sistem PC ?

2. Daţi un mod de clasificare a întreruperilor într-un sistem PC .

3. Cînd vorbim de întreruperi software la un sistem de calcul PC ?

4. De cine sunt provocate întreruperile hardware externe la un calculator PC ?

Page 66: Practica Hardware

64

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. Câte nivele de întrerupere pot exista într+un sistem PC şi de ce atâtea ?

10. Unde se găseşte 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 ?

Page 67: Practica Hardware

65

Cap. 6 MEMORIA

6.1. Generalităţi

După cum am văzut î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 rând programul şi datele care se prelucrează. La început, primele

calculatoare dispuneau de puţină 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 obţinută la un

preţ acceptabil, ea s-a diversificat apărând mai multe tipuri de memorie într-un calculator,

fiecare din acestea având 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.

Informaţia care se găseşte stocată în ea la diferite adrese (cod de program sau date) poate

fi citită sau înscrisă cu o nouă informaţie. Se spune că suportă atât operaţii de citire (read)

cât şi operaţii de scriere (write). Informaţia elementară care se memorează este o

informaţie binară de 0 sau 1 iar circuitul fizic elementar care poate memora această

informaţie se numeşte bistabil (are două stări stabile cărora li se asociază valoarea 0 sau

1). Dacă aceşti bistabili sunt alcătuiţi din doi tranzistori se spune că memoria RAM este

de tip static deoarece informaţia odată înscrisă se păstrează nealterată până eventual la

oprirea calculatorului când se pierde.

Pentru o celulă de memorie s-a reuşit să se folosească numai un singur tranzistor

(deci densitatea de informaţie memorată va fi dublă faţă de cea anterioară), acest tip de

memorie numindu-se de tip dinamic. Aceşti tranzistori pot să-şi piardă sarcina electrică

pe care o înmagazinează (deci informaţia memorată în ultima instanţă) şi atunci este

Page 68: Practica Hardware

66

nevoie de o operaţie de reîmprospătare 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

evoluţia tehnologiei aceste cipuri au fost plasate pe plăcuţe 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 publicaţii se poate întâlni ş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.

Fig. 6.1.

B)Memoria ROM

Această memorie nu suportă decât citirea datelor din ea (ROM – Read Only

Memory – memorie numai pentru citire) şi la fel ca şi memoria RAM, capacitatea ei a

Page 69: Practica Hardware

67

crescut odată cu evoluţia tehnologiei de la circuite de 1K la 2K, 4K 8K, 16K, 32K, 64K,

etc.Dacă informaţia care este înscrisă într-un modul se mai poate şterge şi reîncărca, se

spune că avem de-a face cu ROM-uri programabile( până la 50 – 100 de reînscrieri). La

primele tipuri de memorii ROM ştergerea se face cu lumină ultravioletă printr-o fereastră

de cuarţ plasată deasupra chipului avînd memrie de tip EPROM. Dacă ştergerea se face

electric avem EEPROM (Electrical EPROM).Aceasta ştergere şi reînscriere a informaţiei

se făcea in dispoyitive speciale numite programatoare de ROMuri . În momentul de faţă

ştergerea şi reprogramarea se face strict electric , crcuitul rămîne pe placa unde este

montat folosindu+se aşa zisa memotie ROM de tip flash. Acest tip de memorie poate fi

şters şi reprogramat de cîteva mii de ori .

Memoria ROM se foloseşte în PC pentru memorarea programelor BIOS – Basic

Input Output System – despre care s-a mai amintit.

6.2. Alocarea memoriei la 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

aplicaţie sunt disponibili 640K de memorie. În realitate nu toţi aceşti octeţi sunt

disponibili.

Din figura 6.3. se observă că atât sistemul de operare DOS cât şi BIOS-ul

calculatorului foloseşte o parte din memoria RAM disponibilă pentru memorarea unor

date necesare bunei lor funcţionări. Pentru asigurarea portabilităţii programelor (adică

pentru ca programele să poată rula pe orice tip de calculator PC) sub sistemul de operare

DOS proiectanţii DOS-ului recomandă dezvoltarea unor apeluri de funcţii cu structura

din fig. 6.3. Astfel programul utilizator va apela o serie de funcţii ale sistemului de

operare care la rândul său accesează funcţii specifice echipamentului hardware existent

cu ajutorul funcţiilor BIOS specifice.

După cum am văzut, pentru simplificarea apelurilor funcţiile BIOS respectiv DOS,

acestea sunt apelate cu instrucţiuni de tip INT n adică întreruperi software de nivel n. Pe

lângă furnizarea lui n în instrucţiunea propriu-zisă se mai furnizează în plus şi informaţii

Page 70: Practica Hardware

68

suplimentare prin octeţi specifici plasaţi în preambulul apelului într-un registru (AX de

obicei) sau chiar mai mulţi regiştri.

Fig. 6.2.

Fig. 6.3.

Page 71: Practica Hardware

69

Astfel de exemplu funcţia

INT 10H

oferă o varietate de servicii BIOS pentru gestionarea ecranului. Trebuie avut grijă ca

înainte de apelul acestei funcţii î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 poziţia cursorului ş.a.m.d.

Există mai multe funcţii BIOS care pot fi apelate în acelaşi mod ca cel descris

anterior.

Dacă avem nevoie de anumite servicii asigurate de către sistemul de operare

DOS, apelarea acestora se face cu int 21H care este specifică acestui sistem de operare. În

prealabil se va încărca:

registrul AH cu numărul funcţiei;

registrul AL cu numărul subfuncţiei;

dacă este necesar se încarcă şi ceilalţi regiştri cu date;

se apelează INT 21H

De exemplu, dacă se doreşte ca un program să se termine şi să predea controlul

procesului părinte se poate folosi funcţia 4CH cu următoarea secvenţă simplă :

mov ah, 4ch

int 21h

Ea este folosită în mod curent la terminarea programelor scrise în limbaj de

asamblare pentru redarea controlului către sistemul de operare DOS (cunoscută şi sub

numele de funcţia EXIT).

Figura 6.4. schiţează care sunt componentele principale ale BIOS – ului şi

eventual rolul jucat de acestea.

Î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 a face un

test scurt al sistemului pentru aflarea configuraţiei existente (POST – Power On Self Test

– autotestul de pornire), iniţializează anumite echipamente şi trece la încărcarea

SO – DOS de pe disk sau de pe disketă. Pe lângă această funcţie tot în BIOS sunt

memorate programele de întreruperi hard precum şi serviciile BIOS oferite tot prin apelul

unor întreruperi BIOS.

Page 72: Practica Hardware

70

Fig. 6.4.

Se obsevă ca tot în BIOS sunt memorate rutinele de tratare a întreruperilor apelate prin

declanşarea întreruperilor corespunzătoare precum şi serviciile ( serviciile video de

exemplu ,etc) .

6.3 Memoria video

Una din cele mai importante interfeţe dintre utilizator şi PC o constituie monitorul

calculatorului.Dacă la început ecranul calculatoarelor afişa numai caractere

monocrome odată cu dezvoltarea procesoarelor şi sistemul video care asigură afişarea a

trecut prin transformări majore fiind capabil ca pe lângă caractere să apară şi grafice,

eventual în culori iar sistemele Windows fac din această interfaţă grafică modul principal

de dialog şi comandă!Observăm în figura 6.5. că elementele principale ale sistemului de

afişare sunt echipamentul de afişare (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 ieşire

este capabilă să producă o secvenţă serială sincronă de informaţii capabile să comande

un dispozitiv de tip CRT.

Page 73: Practica Hardware

71

Fig. 6.5.

Această memorie într-o primă aproximaţie poate fi văzută ca un registru uriaş de

deplasare ce conţine în el memorată imaginea. Un punct de pe ecran se numeşte 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 afişată este stocată

într-un ecran virtual din memoria video. Controlerul video generează un rastru mişcând

fasciculul de electroni de la stânga la dreapta şi de sus în josul ecranului, similar cu cititul

unei pagini. La sfârşitul unei linii orizontale fascicolul este stins şi mutat la începutul

liniei următoare baleind linia ş.a.m.d. Această baleiere poartă numele şi de rastru.

Prentru fiecare poziţie a unui pixel din rastru datele de afişat sunt citite din

ecranul virtual aflat în emoria video. Aceste date sunt aplicate la intrările unor circuite

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 reîntoarce în stânga sus şi reîncepe un nou cadru, ş.a.m.d.

Un astfel de tip de afişaj se mai numeşte şi afişaj 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 pâlpâire se impune ca numărul de cadre pe

secundă (frecvenţă de reîmprospătare) a ecranului să fie mai mare de 50 Hz.

Page 74: Practica Hardware

72

Fig. 6.6

Toate ecranele actuale sunt echipamente APA dar vom găsi şi calculatoare mai

vechi care funcţionează cu standarde mai vechi cu definiţii şi caracteristici mai slabe.

Au existat mai multe tipuri de controlere video:

MDA (Monochrome Dispozitiv Adaptor) construită de IBM în 1981 odată cu

primul PC. Nu avem posibilităţi grafice putând afişa numai caractere ASCII

standard;

Hercules care a rezolvat problema îmbinării textului cu grafica pe acelaşi

ecran. Placa monocromă HGC (Hercule Graphic Card) putea afişa 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 rezoluţie de 640 x 350 puncte

VGA (Video Graphic Array) cu 640 x 480 puncte şi 256 culori cu un rastru

similar prezentării noastre;

SVGA (Super Video Graphic Array) cu 1024 x 780 puncte afişabile

Toate plăcile dinntr-o serie pot în general lucra cu programe scrise pentru seriile

anterioare. Noi am prezentat modul de funcţionare aşa-zis grafic al acestor plăci dar mai

Page 75: Practica Hardware

73

există un mod de funcţionare numit caracter. În acest mod se consideră că memoria

conţine coduri de caractere ASCII şi nu puncte direct afişabile iar un circuit special

numit generator de caractere livrează pixele din codul ASCII citit.

Vom mai reveni la placa de tip APA insistând puţin şi asupra afişajului de culoare

al punctelor. Un monitor color poate afişa peste 16 milioane de culori, dar adaptorul

video limitează această cifră. Dacă utilizăm pentru fiecare pixel câte un octet pentru a

memora caracteristicile sale de culoare putem avea 256 (2**8) de culori. Dacă extindem

pentru un pixel la 2 octeţi memoria, atunci sunt posibile 65536 de culori, iar dacă pentru

fiecare culoare fundamentală (RGB) se rezervă un octet (deci 3 octeţi pe pixel) depăşim

16 milioane .

În terminologia PC – urilor modul de afisare cu 1 octet rezervat pentru un pixel

se numeşte pseudo – color, cu 2 octeţi HIGH color şi cu 3 octeţi – true color.

Pentru ca din informaţia numerică să se obţină un nivel de tensiune analogic

corespunzător în adaptoarele video se utilizează convertoarele numeric – analogice

(DAC). Acestea sunt de obicei pe 8 biţi şi câte unul pentru fiecare culoare fundamentală.

Deci am fi în stare să afişăm peste 16 milioane de culori dar de obicei informaţia de

culoare pentru aplicaţii grafice nepretenţioase 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

afişare din domeniul de 16 milioane formează aşa – zisa paletă de culori iar conversia de

la 8 biţi la 24 biţi se face în adaptorul video printr-o memorie numită CLUT (Color

Look – Up Table – Tabel de selecţie al culorii). Figura 6.7. prezintă funcţionarea paletei

de culori.

Valoarea pe 8 biţi a octetului este considerată o adresă în tabela CLUT care va

selecţiona cuvântul de 3 octeţi corespunzător ce va genera culoarea. Dacă se doreşte

schimbarea paletei se vor memora alte valori în tabela CLUT pentru acelaiasi adresa.

În final trebuie să amintim că plăcile grafice actuale pot avea o memorie video mai mare

decât cea alocată în harta memoriei. Dar numai o singură pagină se afişează la un

moment dat. Pagina afişată este selectată cu un registru intern. Deasemeni au apărut plăci

cu aşa-numite acceleratoare video (AGP) care sunt folosite şi pentru grafica în 2

dimensiuni (2D) sau 3 dimensiuni ( 3D.). Controlerele video au integrate unităţi cu

Page 76: Practica Hardware

74

instrucţiuni grafice speciale pentru prelucrarea şi sinteza imaginilor procesorului

revenindu-i numai sarcina de a apela aceste funcţii integrate în controler.

Fig. 6.7.

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 funcţiona foarte bine şi dacă aceasta nu există.

Memoria CACHE este mai curând un principiu decât un dispozitiv! Există foarte multe

tipuri de CACHE, unele construite din dispozitive hardware specializate, altele nu sunt

decât programe ! Toate însă au la bază aceeaşi idee: de a aduce mai aproape ceea ce se

foloseşte mai des şi a lăsa 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ă decît memoria RAM şi care este interpusă între memoria RAM lentă şi µP.

Page 77: Practica Hardware

75

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 mărime. Atunci când

µP face un acces la memorie caută mai întâi dacă nu cumva adresa cautata se găseşte în

memoria cache. Dacă găseşte informaţia 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ă informaţia nu exista se face un apel la memorie (am avut un rateu – un

“miss”). Din memorie nu se aduce numai informaţia cerută ci o “felie” mai mare şi cu

informaţiile conţinute adiacent adresei. Astfel că dacă la un nou apel se cere informaţia

următoarei adresei aceasta şi altele se află deja în cache . Cunoscând principiul vom căuta

să dăm unele exemple de cache hard sau soft luate din activitatea curentă a unui utilizator

de PC şi care poate la o primă privire scapă neobservate că ar avea legătură cu tehnica de

cache !

1. Cache – ul de disk. Orice SO de operare( mai putin MS – DOS !)

funcţionează şi cu un cache activ pentru disk, cache care memorează o

porţiune de disk ce conţine programe ale SO şi este localizat în memoria

principală RAM (fig. 6.9)

Page 78: Practica Hardware

76

Fig. 6.9.

Pentru sistemul DOS firma Symantec (producătoarea programelor din seria Norton )

oferă un program cache numit smart – drive care asigură schema de mai sus şi care

măreşte viteza de lucru de cîteva ori ,mai ales cînd se foloseşte intens discul.

2.Cache – ul procesorului. Dacă se analizează viteza ultimelor µP şi cea a memoriei

RAM vom vedea că există diferenţe între acestea de aproape un ordin de mărime. Din

aceste motive se introduce o memorie cache intermediară care măreşte viteza sistemului

cu 100%-400% în funcţie de tipul aplicaţiei. 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

Page 79: Practica Hardware

77

` 3. DNS (Domain Name Server) de pe reţeaua Internet sunt nişte cache software

care reţin adrese şi IP asociate pentru creşterea eficacităţii de căutare a unor site-uri.La o

revenire a utilizatorului pe aceste situri exista deja memorate corespondenţele adresa -IP

care se foloseste fara sa se apeleze din nou serverul DNS initial.

4. Clienţii WWW cum ar fi Netscape sau Internet Explorer memorează într-un

cache soft siturile deja vizitate şi eventual paginile deja citite pentru ca la o

comandă Back să se ia informaţia 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 decât ar încăpea î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, operaţie 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 lângă cele cunoscute deja de

Fig. 6.11

Page 80: Practica Hardware

78

noi (EU si BIU) care gestionează o tabelă de pagini în care se găsesc trecute paginile

active – cele ce sunt efectiv în RAM – timpul de când s-a făcut apel la o pagină etc., date

necesare în operaţia de swapping.

Sistemele de operare începând 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.

Întrebãri la cap. 6

1. Care sunt tipurile principale de memorie din dotarea unui calculator PC ?

2. Care este elementul fizic care permite memorarea informaţiei binare in PC ?

3. Cum este organizată funcţional o memorie Ram într+un PC ?

4. Pentru ce este utilă memoria ROM într-un PC ?

5. Programele de aplicaţie folosesc tot spaţiul 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 afişare într+un PC ?

8. Ce este memoria video şi de cine este ea accesată ?

9. Numiţi 3 tipuri de controlere video din scara de evoluţie a acestora ?

10. În cîte moduri poate funcţiona o placă video ?

11. Câte culori pot fi ataşate unui pixel de pe ecran ?

12. Ce avantaj oferă folosirea unei tabele de culori ( CLUT) în controlerele

grafice ?

13. Cine face conversia octeţilor de culoare în tensiuni electrice de comandă

pentru tubul catodic al ecranului ( CRT ) ?

14. Ce se înţelege pri memorie cache la un calculator PC ?

15. Daţi cîteva exemple de memorie cache hard sau soft întâlnite în practica PC ?

16. Care este principiul memoriei virtuale dintr-un PC , privită prin prisma

principiului de memorie cache ?

Page 81: Practica Hardware

79

Cap.7 SISTEMUL DE I/O

Desemnăm prin sistemul de I/O (input/output – intrare/ieşire) un set de module

funcţionale care permit vehicularea informaţiei între CPU, memorie şi lumea reală după

cum se vede în figura 7.1.

Fig. 7.1.

Sistemul de intrare - ieşire este dotat cu o serie de echipamente care vor permite

informaţiilor să fie fie citite de către sistem -intrarea de date – fie să părăsească sistemul

şi să fie folosite în afara acestuia -ieşirea de date - . Unele dintre acestea se găsesc în mod

standard pe oricare sistem iar altele pot să fie adăugate ulterior folosindu+se de

posibilităţile 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 poziţiei unor microîntrerupătoare (switch – uri) care

se pot găsi pe poziţia OFF (“0” logic) (legătură făcută la “0”) fie pe poziţia ON (lăsată “în

aer” = 1 logic). Este o situaţie foarte des întâlnită când CPU are de citit configurarea unui

echipament periferic acesta furnizându-i octetul prin poziţia unor switch-uri sau

“jumpere” aflate pe placa de baza sau placa de extensie (controlerul propriuzis ).

Page 82: Practica Hardware

80

Fig. 7.2.

Aşa cum pentru a selecta o informaţie din memorie se selectează o adresă de

memorie mai întâi şi apoi se face citirea şi în cazul dispozitivelor de I/O fiecărui set de un

echipamente le este rezervată o adresă unică sau set de adrese care le diferenţiază de

alte dispozitive de I/O. Aceste adrese sunt cunoscute ca adrese de porturi I/O. În

momentul când CPU generează comanda de citire a portului nostru, semnalul de adresă

va fi decodificat de către decodificatorul de adresă porturi şi va activa intrarea SEL a unui

singur circuit de intrare-ieşire -- circuitul vizat - . În acest moment poziţia switch-urilor

va fi memorată în cele 8 circuite bistabile ale circuitului 244 şi totdată va fi disponibilă la

ieşire OUT0, …, OUT7 care sunt legate la busul de date ale µP. Eventual registrul AX

(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 informaţiilor de la un port de intrare se foloseşte o instrucţiune de

intrare date de tipul INP ( INPut ) . Forma cea mai simplă a unei astfel de instrucţiuni este

INP al , adresa port adică octetul aflat la adresa port va fi citit şi transferat

Page 83: Practica Hardware

81

în registrul al ( octetul inferior al registrului general ax ).

Dacă spaţiul de adresare pentru memorie este 1M (2**20) spaţiul 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 selecţionată o locaţie de memorie ci

un port de intrare.

7.2 Port de ieşire

Î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 intrările acestui circuit

sunt cuplate la busul de date a sistemului iar ieşirile vor avea cuplate diode luminoase

(LED) care vor furniza prin indicaţie luminoasă octetul furnizat de sistem. Similar ca în

exemplul anterior la selecţia adresei portului de ieşire 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 regăsi la ieşirile 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.

Fig. 7.3.

În cazul trimiterii unui octet către un port de ieşire( operaţie de ieşire date) se

foloseşte o instrucţiune de tip OUT (OUTput ). Astfel dacă dorim să trimitem un octet din

Page 84: Practica Hardware

82

registrul al de la procesor la portul cu adresa adresa-port forma instrucţiunii va fi

următoarea: OUT adresa-port ,al . Un asemenea port de ieşire se foloseşte în

calculator şi la furnizarea datelor către 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 decât cele de date numite şi linii de stare şi control.

E bine de ştiut că un echipament de intrare-ieşire nu are asociată o singura adresă,

adresa registrului de intrare –ieşire . Există cel putin 3 regiştrii asociaţi unui port:

1.-registrul propriuzis al portului în care se depune octetul sau se citeşte octetul

2.-registrul de comandă în care se trimit octeţi cu rolul de a comanda

echipamentul de intrare –ieşire

3.-registrul de stare a portului care indicş starea unor parametrii ai

echipamentului

Astfel la o imprimantă portul de comandă primeşte comenzi pentru avansul

hîrtiei,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ă hîrtie ,există

cerneală sau toner ,etc. La adresa portului propriuyis se vor trimite codurile ascii ai

octeţilor de tiparit sausecvenşele de biţi pentru tipărire grafică .

Handshaking.

În fig. 7.4. am reprezentat interfaţa dintre calculator şi o imprimantă cuplată la

portul LPT1. Portul LPT mai este cunoscut şi sub numele de port paralel datorită faptului

că transferul informaţiei (octeţilor) se face simultan la nivelul celor 8 ranguri ale unui

octet, existând câte o linie separată pentru fiecare, notate D0,…, D7.

Unele dispozitive de I/O acceptă informaţia mai încet decât poate transmite µP.

Deci această informaţie trebuie să fie temporizată pentru ca imprimanta să poată tipări

caracterul transmis şi abia după aceea să recepţioneze următorul caracter. În acest caz una

din metodele folosite se numeşte handshaking şi foloseşte încă 2 semnale în plus faţă de

cele de date pentru ca să se asigure o sincronizare perfectă între calculator şi imprimantă.

Mai întâi datele D0,…, D7 sunt plasate pe liniile de date corespunzătoare de către

µP şi se transmite către printer semnalul STB (Strobe) care îl înştiinţează că pe liniile

D0,…, D7 este un caracter disponibil. Printerul începe să tipărească caracterul recepţionat

şi simultan plasează pe linia BUSY un semnal egal “1” care atenţionează µP că este

Page 85: Practica Hardware

83

Fig. 7.4.

ocupat încă cu tipărirea caracterului. µP poate determina dacă printerul este în

stare să primească un nou caracter sau nu prin testarea liniei BUSY. Atât timp cât acesta

este “1” µP nu va transmite un nou caracter. Imediat ce semnalul de pe linia BUSY

devine egal cu “0” µP poate încărca liniile D0,…, D7 cu un nou caracter pentru tipărit

ştiind că cel anterior a fost tipărit. 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 funcţionează în modul descris anterior. Acest mod de funcţionare se mai numeşte ş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 bidirecţional al

octeţilor permiţând cuplarea şi a altor echipamente la el (scannere, unităţi de disk sau

CD-romuri externe, etc) şi această nouă normă s-a numit port EPP (Extended Parallel

Port) adică port paralel îmbunătăţit. S-au mai adăugat unele îmbunătăţiri şi la această

normă obţinându-se un port paralel cu capabilităţi extinse (ECP).

Am specificat aceste lucruri deoarece unele imprimante moderne (Laser sau cu jet

de cerneală) nu mai funcţionează 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 lângă cel al caracterelor , specific numai la SPP.

Page 86: Practica Hardware

84

7.3. Comunicaţii seriale

În calculatorul IBM – PC sunt prevăzute de obicei două porturi de comunicaţie 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. Celălalt 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 reţeaua telefonică cu un calculator

ce oferă servicii INTERNET.

Observăm deci că aceste transmisii seriale ocupă un loc important într-un

calculator modern şi vom trata pe scurt modul de funcţionare a unei astfel de transmisii.

Spre deosebire de transmisiile paralele când existau linii separate de transmisie

pentru fiecare rang al octetului transmisia serială cere existenţa numai a două linii. În

acest caz cei 8 biţi care formează un octet sunt transmisii secvenţial în 8 intervale de timp

diferite. Diagrama din fig. 7.6. reprezintă forma unui semnal serial aşa cum ar apare ea

dacă ar fi vizualizată la un osciloscop.Se observă că octetul de transmis este încadrat de

biţi auxiliari necesari pentru sincronizare sau control. Astfel transmiterea unui octet

începe cu un bit de start, se continuă cu cei 8 biţi ai octetului începând 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 biţi transmişi numai 8 reprezintă informaţia utilă. De obicei o

interfaţă serială are atât posibilitatea de a transmite un octet (emisie) cât şi de a recepţiona

Page 87: Practica Hardware

85

(recepţie). Fig. 7.7. reprezintă cel mai simplu mod de a conecta 2 calculatoare cu ajutorul

a 3 fire şi folosind interfeţele seriale COM.

Fig. 7.6.

Semnalul de emisie Tx de la PC1 este primit de al doilea PC pe piciorul Rx de

recepţie iar de la Tx de la PC2 la fel se leagă la recepţia Tx de la PC1. Astfel se pot

transmite date (fişiere, etc) sau se cupleaza intr-o reţea serială cele doua calculatoare PC

cu o investiţie 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 prevăzute cu acest tip nou

de interfaţă asigurându-se totdată şi o eventuală alimentare a unor asemenea echipamente

care nu au sursă proprie de alimentare. Calculatoarele noi au asemenea mufe 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 rămânând totuşi pentru

scopuri secundare si pentru compatibilitate cu sistemele vechi !

7.4. Controlul mişcării unui motor pas cu pas

Motoarele pas cu pas sunt echipamente care s-au impus în tehnica de calcul odată

cu apariţia 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.

Page 88: Practica Hardware

86

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 biţi.

Va fi alimentată cu tensiune faza al cărei bit este 1. Rotorul se va deplasa între

polii fazei alimentate. Deplasarea bitului de 1 pe celelalte poziţii ale registruloui într-un

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 unităţile de disk magnetic (poziţionarea

capetelor de citire/scriere), diskete magnetice, imprimante, CD-rom, scanere, sateliţi

artificiali (pozitionarea antenolor parabolice de receptie si transmisie catre statia de la

sol)etc. pentru 0 poziţionarea precisă şi sub comanda unui procesor.

Observăm că această tehnică numerică de comandă şi control a pătruns în tehnică

în toate domeniile înlocuind metodele analogice mai vechi şi mai puţin precise. Se pare

că viitorul este al acestor sisteme numerice , tehnica analogica rămânând numai acolo

unde precizia nu constituie un deziderat major.

Întrebãri la cap. 7

1. Care este rolul echipamentelor de intrare / ieşire ( input – output) ?

Page 89: Practica Hardware

87

2. Prin ce se identifică diferitele dispozitive de intrare-ieşire într-un PC ?

Fig. 7.8

3. Ce instrucţine se foloseşte pentru a citi date de la un port de intrare ?

4. Care e numarul de adrese de porturi disponibile într-un sistem PC ?

5. Ce instrucţiune se foloseşte pentru a trimite date spre exteriorul PC folosindu-

se un port de ieşire ?

6. Care sunt regiştrii asociaţi unui port de intrare sau ieşire ?

7. Cînd este utilizată o conexiune de tip „ handshaking” la cuplarea a doua

dispozitive ?

8. Care sunt semnalele auxiliare de control la o legătură „handshaking” ?

9. Ce biţi auxiliari apar în informaţia transmisă serial pe lîngă octetul de date ? t

10. Care credeţi că este modul cel mai simplu de a cupla 2 PC pentru a transmite

date ?

11. Cum se obţine mişcarea de rotaţie la un motor pas cu pas cuplat la un sistem

PC ?

Page 90: Practica Hardware

88

Cap.8 MULTIMEDIA

Fenomenul de "multimedia" PC poate să aibă mai multe interpretări. Noi vom

accepta să numim prin acest termen un set de tehnologii care fac posibilă existenţa

aplicaţiilor de tip "multimedia" cum ar fi: grafică PC, imagini şi animaţie 2D şi 3D,

video, redare directă a imaginilor inregistrate şi comprimate, precum şi aplicaţiile legate

de sunet (inregistrarea şi redarea sunetului, precum şi sinteza vorbirii). Alături de aceste

tehnologii trebuie să amintim şi o serie de tehnologii suport pentru multimedia cum ar fi

CD-ROM, reţele locale şi tehnologii de comprimare/decomprimare a datelor. Acest

domeniu s-a dezvoltat odată cu creşterea performanţelor µP de a prelucra in timp real

fluxul de date dintr-o astfel de aplicaţie.

Vom căuta să explicăm aceste noţiuni legate de multimedia făcând apel la câteva

aplicaţii multimedia importante, principiile enunţate putând fi extinse şi la celelalte

netrecute în revistă la noi.

Unele din cele mai folosite aplicaţii M (multimedia) folosite pe calculator sunt

jocurile care solicită animaţie, specifică 3D in timp real, redare video, intrări de date din

partea jucătorilor şi redarea de sunet inregistrat sau sintetizat. Educaţia şi instruirea sunt

alte aplicaţii multimedia care pot solicita aceleaşi mijloace ca şi jocurile. Prezentările

făcute cu PC îşi găsesc utilizarea din ce în ce mai mult în ultimul timp.

Videoconferinţele folosesc metode cuprinse in aces capitol. Simulările, realitatea virtuală

şi comanda calculatorului cu ajutorul vocii completează multitudinea de aplicaţii legate

de această tehnologie cunoscută sub numele de M.

8.1 Elemente de bază ale sunetului în format digital

După cum se ştie sunetul reprezintă o oscilaţie 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 - rezultând o tensiune sau curent variabil şi in final se aplică

unui difuzor care avea rolul de a-l transforma din nou intr-un sunet perceput de ureche.

Page 91: Practica Hardware

89

Transformările pe care le suferea sunetul in lungul acestui lanţ erau cele aplicate acestor

oscilaţii electrice.

Dacă dorim ca acest sunet să fie eventual prelucrat intr-un calculator acesta va

trebui să transforme mai intâi informatia analogică - variaţia unei tensiuni- in informaţie

digitală - şiruri de numere care reprezintă variaţia tensiunii iniţiale-. 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ă informaţie după algoritmul cerut iar rezultatul obţinut va fi semnalul

digital care va fi reconvertit in sunet de un convertor digital - analogie (DAC).

Fig.8.1. redă acest şir de transformări.

Fig. 8.1

Dispozitivul numit de noi ADC va transforma semnalul analogic in digital prin

eşantionarea amplitudinii semnalului cu o anumită frecvenţă. Totul apare ca şi cum s-ar

realiza nişte instantanee digitale ( “fotografii !“) ale semnalului analogic cu o frecvenţă

foarte mare. Cu cât vor fi mai multe eşantioane intr-o secundă şi acestea mai precis

aproximate cu atât semnalul digital rezultat va fi mai fidel celui analogic original. In fig.

8.2. am reprezentat o oscilaţie sonoră sinusoidală care va fi eşantionată la momentele de

timp redate in fig.8.2.b, în fig.8.2.c. rezultând eşantioanele de amplitudine ale sinusoidei

initiale. Deci eşantionarea constituie prima operaţie care are loc asupra unui semnal

analogic .Aceste eşntioane sunt transformate tot in ADC in numere care vor putea fi

prelucrate de către calculator. Digitizarea eşantioanelor este a doua operaţie care are loc

pentru a obţine 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 cât frecvenţă de eşantionare va fi mai mare şi cu cât se vor folosi mai mulţi biţi pentru

reprezentarea numerică a amplitudinii unui eşantion.

Page 92: Practica Hardware

90

Fig. 8.2.

Urechea umană poate sesiza semnale audio in domeniul 20-20000 Hz. O teoremă

din teoria analizei semnalelor arată că frecvenţa de eşantionare trebuie să fie mai mare

decât dublul frecvenţei cele mai mari( deci 40.000 Hz in cazul nostru).

O altă problemă este pe căţi biţi reprezentăm dimensiunea eşantionului. 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 eşantion vom folosi 2 octeţi (216=65,536 valori) acest

număr mare de nivele va aproxima cu fidelitate acceptabilă semnalul original.

Având aceste noţiuni despre semnalul digital putem spune că de exemplu

semnalul telefonic digital are o frecvenţă de eşantionare de 8.000 Hz. şi se foloseşte un

octet (8 biţi) pentru reprezentarea amplitudinii lui urmărindu-se inţelegerea mesajului in

Page 93: Practica Hardware

91

primul rând şi nu chestiuni legate de fidelitatea sa . La inregistrarea digitală a sunetului pe

CD se foloseşte o frecvenţă de 44.100 Hz şi 2 octeţi (16 biţi) pentru fiecare eşantion.

Dacă se inregistrează şi un semnal stereo se vor folosi incă 2 octeţi pentru al doilea canal.

Cunoscând aceste date se poate calcula rata de date pe minut pentru fiecare semnal digital

prezentat. Dacă la cel telefonic se ajunge la aproximaţia 50 kocteţi /minut la cel pentru

CD la peste 10 M/minut.

Putem să ne facem o imagine la ce fel de rate de informaţii lucrează circuitele sau

plăcile de sunet actuale. Dacă funcţiile blocurilor ADC şi DAC sunt combinate intr-

un singur circuit acesta se va numi CODEC (COdare - DEC odare).

Pe lângă funcţia de conversie aceste circuite mai pot şi comprima sau decomprima

date audio digitale.

In concluzie, deci sunetele in calculator sunt reprezentate in final ca fişiere care se

bucură de toate proprietăţile şi posibilităţile de prelucrare specifice acestora.:

comprimare, decomprimare, prelucrare numerică, etc.

Dacă extindem noţiunile la domeniul video unde, informaţia vizuală apare tot ca

un semnal electric oscilant, tot ceea ce s-a spus la sunet rămâne valabil si aici dar cu alte

rate de eşantionare

8.2 Prelucrări ale sunetului digital. Plăci de sunet

Odată ce sunetul a fost convertit in formă digitală el poate fi prelucrat pentru a se

creea tot felul de efecte ca reverberaţii, ecouri, distorsiuni controlate, etc..Calculele

necesare acestora sunt făcute in procesoare specializate numite DSP (Digital Signal

Processing) Tot acestea pot asigura şi sinteza sunetului sau a muzicii precum şi funcţiile

de comprimare şi decomprimare. Cercetările făcute în domeniul sintezei sunetelor au

permis generarea acestora din insumarea mai multor semnale sinusoidale cu frecvenţe

diferite.Un capitol din matematicile speciale se ocupă cu analiza armonică a semnalelor .

Foosindu-se rezultatele acestor analize s-a reusit sinteza sunetului prin modularea de

frecvenţă (FM).

Page 94: Practica Hardware

92

Toate acestea au dus la apariţia aşa ziselor "plăci de sunet" care reprezintă un

element important al posibilităţilor M legate de sunet. Fig.8.3. reprezintă schema unei

astfel de plăci 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 observăm un

bloc MIXER care poate accepta intrări analogice de la ,microfon. linie audio sau difuzor

PC si care pot fi controlate individual. De asemeni blocul MIDI (Musical Instrument

Digital Interface) primeşte comenzi pentru selectarea şi generarea unor sunete de

instrumente muzicale sau efecte audio -tremolo, reverberaţie,cor, etc- .

Din analiza modului în care urechea percepe sunetele şi folosinu-se de unele

“imperfecţiuni “ ale acesteia s-a imaginat o metodă de prelucrare şi comprimare a

fluxului de date digitale aferente sunetului prelucrat care duce la fişiere de pînă la 10 ori

Page 95: Practica Hardware

93

mai mici faţă de cele originale în care nu se face aceasta prelucrare digitala a semnalului

sonor. Astfel odată cu apariţia procesoarelor mai puternice din seria Pentium Pro a apărut

şi tehnologia MP3 disponibilă pe platforma PC .Aceasta a dus la răspîndirea 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!

8.3 Prelucrări digitale video

După cum am amintit deja prelucrarea semnalelor video preluate de camere

digitale sau semnalul TV urmează aceleaşi principii ca cele de sunet numai că la o altă

rată de viteză şi cantitate de informaţii pe secundă !. Semnalul video transformat în

semnal digital poate fi comprimat pentru ca să ocupe un spaţiu mai mic la stocare sau in

procesul de transmitere. La redare se intâmplă procesele inverse. In plus aici apar unele

elemente noi. Astfel s-au imaginat metode specifice de comprimare care ţin cont de faptul

că conţinutul imaginii de la un cadru la altul se schimbă foarte puţin transmiţându-se

eventual numai schimbările survenite şi păstrând ca bază un cadru iniţial. 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 secvenţelor video de la camere video sau TV şi apoi redarea acestui conţinut

video printr-o prelucrare inversă . Pentru imagini statice sunt cunoscute fişierele 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 fişiere de tip jpg. Sateliţii de

comunicaţii destinaţi 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!- existînd deja zone în Europa în care se renunţa la sistemul clasic analogic iar

pînă in anul 2010 practic acest sistem să fie singurul existent în anumite ţări .

8.4 Consideraţii finale

În general tehnologia Multimedia lucrează cu volum mare de date. Ca mediu ideal

Page 96: Practica Hardware

94

de stocare de la inceput in acest domeniu s-a impus CD-ROM cu capacitatea sa de peste

600MB sau 700 MB. În urrma evoluţiei tehnologiilor in domeniul stocării optice a

informaţiilor au apărut standarde noi cum ar fi videodiscurile (DVD) cu capacităţi de 4G

sau 8G dar aici există mai multe standarde .

Deasemeni s-a pus problema transmisiilor digitale pentru utilizatorii obişnuiţi ş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 creşterea vitezei de transfer iar

furnizorul de cablu devine şi furnizor de servicii Internet!

Datorită faptului că reţelele telefonice curente (numite şi reţele comutate)

limitează viteza de transfer a datelor la valori care nu fac posibilă transmisii multimedia

de calitate atenţia s-a indreptat spre echipamente cu fibre optice , sateliţi sau reţele locale

rapide care permit un flux crescut de date. Cei care dispun o legătură directă la

INTERNET se pot bucura de existenţa de posturi de radio digitale care transmit in

reteaua Internet . Se speră că viitorul va apartine asa ziselor autostrăzi multimedia pe care

vor fi vehiculate filmele şi muzica la cerere !

Întrebãri la cap. 8

1. Pentru ca un PC sã poatã prelucra sunete (semnale analogice )cum trebuie sã

se prezinte acestea ?

2. Care sunt operaţiile prin care un semnal analogic este transformat într-o

secvenţă digitală ?

3. Pentru ca semnalul digital să redea cât mai fidel semnalul analogic din care

provine ce măsuri se impun la conversia semnalului analogic ?

4. Care este funcţia unui circuit de tip CODEC într-o placă de sunet pentru PC ?

5. Ce standarde cunoaşteţi pentru obţinerea de fişiere digitale comprimate în

domeniul sunetului sau imaginii ?

Page 97: Practica Hardware

95

Bibliografie [1] Peter Norton- “Secrete PC “ Ed. TEORA 1996 [2] Scott Mueller- “PC-Depanare şi Modernizare “ ed . 1 sau 2 Ed. TEORA 1995 [3] Gh. Muscă - “Programare în limbaj de asamblare “ Ed. TEORA 1996 [4} Octavian Căpaţînă - „Proiectare cu microcalculatoare integrate” Ed. DACIA 1992 [5] Vlad Caprariu s.a. “Sistemul de operare DOS. Funcţii sistem” Ed. Romanian Software Comp. 1991 [6] “ La bible PC . Programmation systeme “ 3-ieme edition Ed. Micro Application 1996 [7] Documentaţie INTEL Cataloag 1988-1995