Sunteți pe pagina 1din 9

1.

INTRODUCERE

1.1. Calculatoare numerice


Calculatorul numeric reprezint un sistem digital, format din dispozitive fizice
conectate n vederea prelucrrii informaiilor numerice.
Un calculator numeric (sistem de calcul) cuprinde dou categorii de componente:
Componente fizice (echipamente), ansamblul lor fiind cunoscut sub numele de
hardware;
Componente logice (programe), prin intermediul crora sunt utilizate echipamentele, ansamblul componentelor logice fiind cunoscut sub numele de software.
Sistemul de calcul reprezint deci un ansamblu de componente hardware i
software n interaciune, destinat prelucrrii datelor. Un asemenea sistem se caracterizeaz prin urmtoarele:
Componentele funcionale sunt realizate cu ajutorul circuitelor electronice,
majoritatea fiind circuite integrate, asigurnd o vitez ridicat n efectuarea
operaiilor aritmetice i fiabilitate n funcionare.
Funcioneaz pe baza unui program memorat, format dintr-o succesiune de instruciuni introduse n memoria calculatorului, instruciuni care sunt extrase din
memorie, interpretate i executate.
Informaia memorat i prelucrat este una discret, fiind codificat astfel nct
mrimile asupra creia opereaz pot lua numai dou valori distincte (0 i 1). O
astfel de informaie se numete informaie binar.

1.2. Programarea calculatoarelor numerice


Pentru rezolvarea unei probleme cu ajutorul calculatorului, este necesar
descrierea acesteia printr-o succesiune de operaii, care constituie algoritmul de

Arhitectura calculatoarelor

rezolvare. Descrierea se poate realiza, la nceput, n limbaj natural, transpunndu-se apoi


ntr-un limbaj artificial, numit limbaj de programare.
Limbajul de programare reprezint un set de instruciuni, mpreun cu regulile
de organizare ale acestora ntr-un program. Totalitatea simbolurilor i cuvintelor folosite
n limbajul respectiv constituie vocabularul limbajului. Totalitatea regulilor de scriere
ale instruciunilor reprezint sintaxa limbajului, iar totalitatea regulilor prin care se asociaz o semnificaie instruciunilor reprezint semantica limbajului.
Calculatorul poate executa numai instruciuni exprimate intern sub forma unor
iruri de cifre binare. Programele n care instruciunile sunt scrise sub aceast form se
numesc programe n limbaj main. Limbajul main este caracteristic fiecrui tip de
calculator.
Scrierea i introducerea programelor sub aceast form este dificil. Pentru
simplificarea scrierii programelor, au fost create limbaje n care fiecrui cod de instruciune i s-a ataat un nume mnemonic. Acest mod de reprezentare a instruciunilor main
se numete limbaj simbolic sau limbaj de asamblare. Acest limbaj permite utilizatorului
s realizeze codificri simbolice ale instruciunilor i ale adreselor de memorie.
Pentru a se executa un program n limbaj de asamblare, acesta trebuie translatat
n prealabil n limbaj main, printr-un proces numit asamblare. Programul care se
translateaz se numete program surs, iar cel rezultat n urma translatrii se numete
program obiect. Operaia de translatare a programului surs n program obiect este executat de un program special numit asamblor.
O instruciune n limbaj de asamblare corespunde unei instruciuni n limbaj
main, deosebirea dintre ele constnd numai n modul de reprezentare. Deci, fiecare
instruciune n limbaj de asamblare este translatat ntr-o singur instruciune n limbaj
main.
Un limbaj de asamblare este specific unui calculator, astfel nct trebuie s se
cunoasc instruciunile i organizarea intern a acelui calculator. Din acest motiv, s-au
elaborat limbaje pentru programe care se pot executa pe orice calculator. Acestea sunt
limbaje orientate pe probleme sau limbaje de nivel nalt, spre deosebire de limbajele de
asamblare, care sunt limbaje orientate pe calculator sau limbaje de nivel sczut. Asemenea limbaje de nivel nalt sunt Pascal, C, BASIC, FORTRAN, LISP, COBOL, PROLOG
etc.
Unei instruciuni ntr-un limbaj de nivel nalt i corespunde o succesiune de
instruciuni n limbaj main. Translatarea n limbajul main se poate realiza cu ajutorul
unui compilator, care genereaz din programul surs un program executabil, acesta fiind
executat dup ce ntregul program a fost compilat.
O alt posibilitate este utilizarea unui interpretor, care translateaz fiecare instruciune n limbajul de nivel nalt ntr-o succesiune de instruciuni main, acestea fiind executate imediat. n acest caz nu se genereaz un program executabil. Viteza de
execuie este ns redus, deoarece fiecare instruciune trebuie interpretat chiar dac ea
este executat n mod repetat.
Uneori este mai convenabil s se considere c exist un calculator ipotetic sau
o main virtual, a crui limbaj main este un anumit limbaj de nivel nalt. Un asemenea calculator ar executa direct instruciunile limbajului de nivel nalt, fr a fi necesar
utilizarea unui translator (compilator) sau interpretor. Chiar dac implementarea unei

1. Introducere

maini virtuale care s lucreze direct cu un limbaj de nivel nalt ar fi prea costisitoare, se
pot scrie programe pentru aceast main, deoarece aceste programe pot fi translatate
sau interpretate cu un program care poate fi executat direct de calculatorul existent.

1.3. Modelul unui calculator numeric


Un model posibil al unui calculator numeric modern reprezint o ierarhie de
maini virtuale pe mai multe nivele (Figura 1.1).

Figura 1.1. Ierarhia de nivele a unui calculator modern.

Nivelul 0, numit nivelul logicii digitale, este reprezentat de componentele hardware ale calculatorului (maina fizic). Circuitele acestui nivel execut instruciunile
main ale nivelului 1. Elementele de baz ale acestor circuite sunt porile logice, fiecare poart fiind format la rndul ei dintr-un numr de tranzistoare. O poart logic are
una sau mai multe intrri digitale (semnale reprezentnd 0 logic sau 1 logic), i are ca
ieire o funcie simpl a acestor intrri, de exemplu I logic, SAU logic.
Nivelul 1, numit nivelul de microprogram, interpreteaz instruciunile nivelului
2, pentru fiecare instruciune a acestui nivel existnd cte un microprogram.

Arhitectura calculatoarelor

Fiecare microprogram definete n mod implicit un limbaj de nivel 2 i o main virtual. De obicei exist multe similariti ntre mainile virtuale de nivel 2, chiar i
n cazul calculatoarelor diferiilor productori. Acest nivel se numete nivelul mainii
convenionale. Atunci cnd se descrie setul de instruciuni al unui calculator, se descrie
de fapt maina virtual de nivel 2, i nu maina real de nivel 1. Sunt descrise deci instruciunile interpretate de ctre microprogram, i nu instruciunile executate direct prin
hardware.
De menionat c la anumite calculatoare nivelul de microprogram lipsete. La
aceste calculatoare, instruciunile mainii convenionale sunt executate direct de circuitele electronice ale nivelului 0.
Nivelul 3 este de obicei un nivel hibrid, deoarece multe din instruciunile limbajului su sunt prezente n cadrul instruciunilor nivelului 2. Exist n plus un set de noi
instruciuni, o organizare diferit a memoriei, posibilitatea de execuie a mai multor programe n paralel i alte faciliti. Noile faciliti adugate la nivelul 3 sunt realizate cu
ajutorul unui interpretor, numit sistem de operare, iar instruciunile identice cu cele ale
nivelului 2 sunt executate direct prin microprogram. Nivelul 3 este numit nivelul sistemului de operare. Un sistem de operare reprezint un ansamblu de programe care asigur exploatarea optim a resurselor hardware i software ale unui sistem de calcul.
Sistemele de operare au fost create pentru simplificarea activitii de programare, utilizarea optim a posibilitilor de lucru ale echipamentelor i reducerea interveniei utilizatorilor n cursul execuiei programelor.
Nivelele 0-3 nu sunt destinate utilizrii directe de ctre programatorii obinuii,
ci pentru rularea translatoarelor i interpretoarelor scrise de programatorii de sistem.
Nivelul 4 i nivelele superioare sunt destinate programatorilor de aplicaii.
Nivelul 4 este nivelul limbajului de asamblare. Programele scrise n limbaj de
asamblare sunt translatate n limbajul nivelului 1, 2 sau 3 i apoi interpretate de ctre
maina virtual corespunztoare.
Nivelul 5 const din limbajele destinate programatorilor de aplicaie, fiind numit nivelul limbajelor de nivel nalt. Programele scrise n aceste limbaje sunt translatate
n limbajele nivelului 3 sau 4 cu ajutorul compilatoarelor sau interpretoarelor.
Nivelul 6 reprezint nivelul aplicaiilor. Const din colecii de programe destinate unor domenii specializate, de exemplu pentru administraie, economie, proiectare
asistat de calculator, grafic etc.
Fiecare nivel reprezint o abstractizare distinct, cu diferite obiecte i operaii.
Setul tipurilor de date, a operaiilor i facilitilor fiecrui nivel reprezint arhitectura
nivelului respectiv. Arhitectura trateaz acele aspecte care sunt vizibile utilizatorului
nivelului respectiv, ca de exemplu dimensiunea memoriei disponibile. Aspectele de implementare, ca de exemplu tehnologia utilizat pentru implementarea memoriei, nu fac
parte din arhitectur. Arhitectura calculatorului reprezint studiul proiectrii acelor pri
ale unui sistem de calcul care sunt vizibile pentru programatori.

1. Introducere

1.4. Structura mainii fizice


n 1945, John von Neumann a stabilit structura logic a calculatorului cu program memorat. Majoritatea calculatoarelor actuale respect aceast structur (Figura
1.2).

Figura 1.2. Structura mainii fizice.

Ideea principal a calculatorului cu program memorat este c att instruciunile, ct i datele sunt pstrate n aceeai memorie. Datele sunt cele asupra crora se
efectueaz prelucrri. Instruciunile sunt interpretate ca i coduri pentru generarea semnalelor de control necesare funcionrii calculatorului.
Componentele principale ale mainii fizice sunt urmtoarele:
1. Unitatea central de prelucrare (UCP): Execut prelucrarea datelor i controleaz funcionarea calculatorului. De multe ori se numete procesor.
2. Unitatea de memorie (memoria intern sau principal): Pstreaz datele i instruciunile.
3. Unitatea de intrare/ieire (I/E): Efectueaz transferul datelor ntre calculator i
mediul exterior acestuia.
4. Interconexiunile: Permit comunicaia ntre UCP, memoria intern i unitatea de
I/E.

1.4.1. Unitatea central de prelucrare


Componenta cea mai complex este unitatea central de prelucrare, cu structura
din Figura 1.3.

Arhitectura calculatoarelor

Figura 1.3. Structura unitii centrale de prelucrare (UCP).

Componentele principale ale UCP sunt urmtoarele:


Unitatea aritmetic i logic (UAL): Execut prelucrrile asupra datelor.
Registrele: Reprezint o memorie intern pentru UCP.
Unitatea de comand i control (UCC): Controleaz funcionarea UCP i deci a
calculatorului.
Interconexiunile din cadrul UCP: Asigur comunicaia dintre UAL, registre i
UCC. Sunt realizate sub forma unei magistrale, numit magistral intern a
UCP.

1.4.1.1. Unitatea aritmetic i logic


UAL implementeaz diferite operaii aritmetice i logice asupra operanzilor
obinui din memorie. Conine, n principal, un circuit logic pentru adunare, numit sumator, toate operaiile aritmetice reducndu-se la o succesiune de operaii de adunare.
Operaiile efectuate pot fi: transferuri de date ntre registre i ntre acestea i
memorie; operaii aritmetice; operaii logice (I, SAU, NU); operaii de deplasare a coninutului unui registru sau locaie de memorie; operaii de comparaie a doi operanzi.
UAL genereaz informaii referitoare la rezultatul ultimei instruciuni aritmetice
i logice executate. Acestea se refer la semnul rezultatului, la paritatea acestuia, la cazurile n care a aprut un transport sau un mprumut n cursul prelucrrii. Fiecare din
aceste informaii se pstreaz n cte un bistabil, bistabilele fiind reunite ntr-un registru
de stare. Acest registru conine i alte informaii referitoare la starea programului.

1. Introducere

1.4.1.2. Registrele
Setul de registre din cadrul UCP pstreaz temporar operanzii unei operaii
aritmetice sau logice, rezultatele intermediare i finale, sau adresele acestora. Utilizarea
registrelor crete viteza de prelucrare, eliminnd necesitatea accesului repetat la memorie. Ele reprezint deci o memorie intern foarte rapid.
Unele registre pot avea funcii dedicate, altele se pot utiliza pentru orice operaii, fiind registre generale. Un registru special l reprezint registrul acumulator (sau
acumulator), care pstreaz de obicei unul din operanzii care particip la o operaie, ca
i rezultatul operaiei. O parte din registre nu sunt accesibile prin program, fiind registre
de lucru. Un asemenea registru este, de exemplu, registrul de instruciuni, care pstreaz
instruciunea curent (cea care se execut la un moment dat).

1.4.1.3. Unitatea de comand i control


UCC coordoneaz activitatea calculatorului: extrage instruciunile programului
din memorie, le decodific (le interpreteaz) i genereaz secvena semnalelor de comand necesare execuiei. Separarea n timp a etapelor de execuie se asigur de ctre
un dispozitiv de secveniere.
Pe parcursul execuiei unei instruciuni, unitatea de comand primete de la
unitatea de calcul informaii de stare, n funcie de care selecteaz una din alternativele
de continuare a operaiei.
La terminarea execuiei, se trece la instruciunea urmtoare. Adresa acestei
instruciuni este pstrat ntr-un registru numit contor de program sau numrtor de
instruciuni.
n funcie de modul de implementare a dispozitivului de secveniere, dispozitivele de comand pot fi de dou tipuri:

Realizate n logic cablat, de exemplu cu un numrtor i un decodificator;


Microprogramate, care pstreaz secvenele semnalelor de comand ntr-o
memorie de microprogram.

1.4.2. Unitatea de memorie


Memoria reprezint sursa sau destinaia tuturor informaiilor. n memorie sunt
ncrcate informaiile iniiale (date i instruciuni) prin dispozitivele de intrare, i de la
memorie sunt preluate rezultatele prin intermediul dispozitivelor de ieire.
Memoria este organizat ca o colecie de locaii de memorie. Fiecrei locaii i
se asociaz o adres, prin intermediul creia se poate selecta locaia respectiv. Adresarea se realizeaz cu ajutorul unor linii de adres, numrul acestor linii determinnd capacitatea maxim adresabil a memoriei. De exemplu, cu 16 linii de adres se pot
selecta maxim 216 locaii de memorie.
O locaie de memorie se caracterizeaz prin:

Arhitectura calculatoarelor
Adres: poziia locaiei n cadrul memoriei.
Coninut: valoarea memorat la aceast adres.

Cantitatea de informaie care poate fi memorat ntr-o locaie adresabil individual, exprimat ca numr de cifre binare (bii), se numete lungime a cuvntului de memorie. De obicei, memoria este organizat pe cuvinte de 16, 32 sau 64 de bii, unitatea
adresabil fiind octetul.
Capacitatea memoriei se exprim n Koctei (KB) sau multipli ai acestuia:
1 KB = 210 B = 1024 B
1 MB = 210 KB = 220 B
1 GB = 210 MB = 230 B
Memoria trebuie s aib o capacitate ct mai mare i o vitez ct mai ridicat,
adic un timp de acces ct mai redus. Viteza este direct proporional cu costul. De aceea, majoritatea calculatoarelor au dou tipuri de memorii, care lucreaz pe principii diferite:
O memorie intern rapid, numit memorie principal, care comunic direct cu
unitatea de calcul i cea de comand, cu un cost pe bit relativ ridicat;
O memorie extern mai lent, cu o capacitate mult mai mare, i cu un cost pe
bit mai redus (disc magnetic, band magnetic).
Aceast realizare a memoriei nu afecteaz sensibil viteza de calcul, deoarece
prelucrarea datelor i transferul de informaii se efectueaz la viteza de acces a memoriei
interne.
Operaiile efectuate cu memoria sunt cele de citire i de scriere. Aceste operaii, ca i cea de selecie a unor locaii de memorie pe baza adresei, se realizeaz cu un
ansamblu de circuite care formeaz, mpreun cu memoria, unitatea de memorie.

1.4.3. Unitatea de intrare/ieire


Aceast unitate asigur comunicaia dintre calculator i mediul exterior. Utilizatorii comunic sistemului informaiile nregistrate pe suporturi externe de informaie,
iar rezultatele prelucrrilor sunt furnizate utilizatorilor pe asemenea suporturi. Transmiterea informaiilor de pe suporturile externe n memorie i nregistrarea informaiilor pe
asemenea suporturi sunt efectuate de echipamentele periferice. Acestea sunt conectate la
calculator prin interfee de I/E, existente n cadrul unitilor de I/E, care ndeplinesc
dou funcii importante: de conversie de date i de memorie tampon.
Conversia este necesar deoarece informaia este reprezentat diferit i pe medii diferite, fiind necesar compatibilizarea dispozitivelor respective.
Funcia de memorie tampon este necesar pentru c viteza de lucru a calculatorului (UAL i UCC) este cu cteva ordine de mrime mai mare dect a dispozitivelor
exterioare. Memoria tampon asigur sincronizarea funcionrii calculatorului cu aceste
dispozitive.

1. Introducere

1.4.4. Interconexiuni
Interconectarea unitilor componente ale calculatorului se realizeaz prin una
sau mai multe magistrale. O magistral este format dintr-un grup de linii destinate
transferului paralel al informaiilor de la una sau mai multe surse la una sau mai multe
destinaii. Numrul liniilor magistralei este egal de obicei cu lungimea cuvntului
transferat.
Magistralele pot fi unidirecionale sau bidirecionale. La un moment dat, nu
poate fi selectat dect o surs i una sau mai multe destinaii. n cazul seleciei mai
multor surse simultan, rezultatul poate fi imprevizibil.
Selecia sursei i a destinaiei se realizeaz cu multiplexoare i decodificatoare.
Multiplexorul specific sursa care depune informaia pe magistral, iar decodificatorul
selecteaz destinaiile care vor fi cuplate la magistral.
n funcie de semnalele vehiculate, magistralele pot fi de adrese, de date i de
control.

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