Sunteți pe pagina 1din 11

Cap 2.

Calculatorul numeric
2.1. Structura unui calculator
In 1945, John von Neumann a stabilit structura logica a calculatorului cu
program memorat. Calculatoarele construite anterior dispuneau doar de programe cablate, pentru care schimbarea programului executat presupunea
efectuarea unor modificri ale structurii hard a calculatorului. Majoritatea calculatoarelor actuale respect aceast structur (figura 2.1).
Ideea principal a calculatorului cu program memorat const n faptul c
att instruciunile programului, ct i datele sunt pstrate n aceeai memorie.
Instruciunile sunt interpretate ca i coduri pentru generarea semnalelor de
control necesare prelucrrii datelor.
Componentele principale ale unui calculator sunt urmtoarele:
1. Unitatea centrala de prelucrare sau UCP (Central Processing Unit
CPU). UCP realizeaz prelucrarea datelor i controleaz funcionarea
calculatorului. Aceast unitate este ntlnit de multe ori sub denumirea
de procesor. Dac procesorul este realizat pe o singur pastil de siliciu
atunci se numete microprocesor ( P )
2. Unitatea de memorie (memoria principal i secundar): aceast unitate
are rolul de a pstra 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 l/E i poart denumirea de magistrale.
Dispozitive
de intrare
Sistem
de I/E

Memorie
UCP
(Procesor)

Data Bus

Address Bus

Dispozitive
periferice

- tastatura
- mouse
- scanner
- DVD rom
- hard disk

Dispozitive
de ieire

Control Bus
- display
- imprimant
- DVD rom
- hard disk

Fig. 2.1

2.2. Unitatea central de prelucrare (UCP)


Componenta cea mai complex este unitatea central de prelucrare, cu
structura din figura 2.2.
MA

MD

MC

UCP
Registre

UAL

UCC

Magistrale sistem

Fig. 2.2
Unitatea central de prelucrare (UCP) are urmtoarele funcii principale:
- Extragerea instruciunilor. UCP trebuie s extrag instruciunile din memorie.
- Interpretarea instruciunilor. Fiecare instruciune trebuie decodificat pentru
a determina operaia care trebuie executat.
- Citirea datelor. Pentru execuia unor instruciuni este necesar citirea datelor din memorie.
- Prelucrarea datelor. Execuia unei instruciuni poate necesita efectuarea
unor operaii aritmetice sau logice asupra datelor.
- Scrierea datelor. Rezultatele obinute dup execuia instruciunii trebuie
scrise n memorie.
Componentele principale ale UCP sunt urmtoarele:
- Unitatea aritmetic i logic sau UAL (Arithmetic and Logic Unit ALU)
execut prelucrrile asupra datelor.
- Registrele reprezint o memorie intern pentru UCP.
- Unitatea de comand i control (UCC) controleaz funcionarea UCP i a
celorlalte uniti ale calculatorului.
- Interconexiunile interne din cadrul UCP asigur comunicaia dintre UAL, registre i UCC. Aceste interconexiuni sunt realizate sub forma unei magistrale, numit magistral intern a UCP.
Figura 2.3 prezint o imagine mai detaliat a UCP. Se pune n eviden
magistrala intern a UCP, care este necesar pentru transferul datelor ntre
diferite registre ale UAL, deoarece UAL prelucreaz doar datele

UAL
Registru de stare

Circ. complementare

Logica
aritmetic
i boolean

Magistrala intern UCP

Circuit de deplasare

Registre

UCC

UCP

Fig. 2.3
din memoria intern a UCP. In aceast figur sunt indicate, de asemenea,
componente tipice ale UAL.
2.2.1. Unitatea aritmetic i logic
UAL implementeaz diferite operaii aritmetice i logice asupra operanzilor
obinui din memorie. Conine, n principal, un circuit aritmetic pentru adunare,
numit sumator, toate operaiile aritmetice reducndu-se la o succesiune de operaii de adunare, i un circuit logic care efectueaz operaii ca AND, OR, NOT
i altele. Pe lng operaiile enumerate anterior UAL mai efectueaz transferuri
de date ntre registre i ntre acetia i memorie, operaii de deplasare a coninutului unui registru, operaii de comparaie a doi operanzi. UCP moderne nglobeaz n structura lor i un unitate de procesare grafic. De asemenea UAL
genereaz informaii referitoare la rezultatul ultimei instruciuni aritmetice i logice
executate. Acestea se refer la semnul rezultatului, la cazurile n care a aprut un
transport sau un mprumut n cursul prelucrrii i la multe alte informaii. Fiecare
din aceste informaii se pstreaz n cte un bistabil, numit indicator de condiie.
Aceste bistabile sunt reunite ntr-un registru numit registru de stare care conine i
alte informaii referitoare la starea programului.
2.2.2. Registrele
Pentru a putea executa funciile enumerate mai sus UCP necesit memorarea temporar a unor date ntr-o memorie intern proprie.
Aceast memorie este format dintr-un set de registre care asigur o vitez
foarte mare de citire i scriere. 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
care pstreaz de obicei unul dintre operanzii care particip la o operaie i apoi
rezultatul operaiei. O parte dintre 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).
Registrele din cadrul UCP sunt de dou tipuri:
- 1. Registre utilizator i
-2. Registre de control i de stare.
1. Registrele utilizator permit reducerea numrului de accese la memoria
principal i deci creterea vitezei de execuie a programelor. Aceste registre sunt
accesibile prin instruciunile limbajului main. Se deosebesc urmtoarele categorii de registre utilizator:
- Registre generale;
- Registre de date;
- Registre de adrese;
Registrele generale sunt implicate n majoritatea instruciunilor aritmetice
i logice putnd fi utilizate n diferite scopuri de ctre programe. De obicei aceste registre pot conine operandul oricrei instruciuni. In multe cazuri exist ns
restricii, de exemplu, pot exista registre dedicate pentru anumite operaii aritmetice. Uneori, registrele generale se pot utiliza pentru adresarea operanzilor, prin
diverse moduri de adresare.
Registrele de date se pot utiliza numai pentru pstrarea datelor. Dintre
acestea trebuie menionat Registrul de date al memoriei (RD) care pstreaz ultima dat adus din memorie. In acest context prin dat se nelege o instruciuni
sau valoarea unui operand. Un alt registru de date este registrul acumulator. In
acesta se transfer valorile operanzilor aduse n registrul de date (RD).
Registrele de adrese, sunt utilizate pentru pstrarea adreselor instruciunilor sau a datelor.
2. Registrele de control i de stare. Aceste registre sunt utilizate de unitatea de control pentru controlul funcionrii UCP i de programele sistemului de
operare pentru controlul execuiei programelor. In general, aceste registre nu
sunt vizibile programatorilor. Dei fiecare tip de calculator are organizri proprii
ale registrelor de control i de stare, totui se pot deosebi urmtoarele registre
care sunt eseniale pentru execuia instruciunilor:
- Contorul de program (PC). Acest registru conine adresa urmtoarei instruciuni care va fi extras din memorie. O instruciune de salt va modifica coninutul contorului de program introducnd n acesta adresa instruciunii la care
trebuie executat saltul.
- Registrul de instruciuni (Rl) conine instruciunea adus din registrul de

date (RD). In acest registru instruciunea este decodificat i pstrat pe tot timpul execuiei acesteia.
- Registrul de adrese al memoriei (RA) conine adresa unei locaii de memorie din care urmeaz s fie adus o dat sau o instruciune.
Transferul datelor ntre UCP i memorie are loc prin intermediul registrelor
de adrese i de date (RA, respectiv RD). Registrul RA este conectat la magistrala
de adrese, iar RD la magistrala de date.
- Registrul cuvntului de stare (PSW-Program Status Word). Acest registru pstreaz indicatori de condiii i alte informaii de stare. Cmpurile principale
ale acestui registru sunt:
- Semn: conine bitul de semn al rezultatului ultimei operaii aritmetice.
- Zero: este setat atunci cnd rezultatul este 0.
- Transport (Carry): este setat dac a rezultat un transport sau un mprumut la o operaie aritmetic.
- Egal: este setat dac rezult o egalitate n urma unei operaii de comparare.
- Depire (Overflow): este utilizat pentru a indica o depire la o operaie
aritmetic.
- Validare ntreruperi (Interrupt Enable/Disable): este utilizat pentru validarea sau invalidarea ntreruperilor. ntreruperile sun operaii pe care le execut
frecvent UCP.
- Supervizor (Supervisor): acest indicator arat dac UCP execut un
program n mod supervizor sau n mod utilizator. Anumite instruciuni privilegiate
pot fi executate numai n mod supervizor i anumite zone de memorie sunt accesibile numai n acest mod.
Pot exista i alte registre din aceast categorie, de exemplu pentru controlul
operaiilor de l/E.
2.2.3. Unitatea de comand i control
UCC coordoneaz activitatea calculatorului n sensul c extrage instruciunile programului din memorie, le decodific i genereaz secvena semnalelor de
comand necesare execuiei.
Pe parcursul execuiei unei instruciuni, unitatea de comand primete de la
unitatea aritmetic i logic 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 n registrul PC
(contor de program).
2.2.4. Unitatea de memorie
Memoria reprezint sursa sau destinaia tuturor informaiilor. In 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. La calculatoarele actuale o locaie de memorie este egal cu 8 bii


i se numete octet. Octetul este cea mai mic unitate de memorie adresabil.
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 octei. Octeii sunt grupai n cuvinte de memorie a cror lungime este stabilit prin program.
O locaie de memorie (octet) se caracterizeaz prin:
- Adres - poziia locaiei n cadrul memoriei.
- Coninut - valoarea memorat la aceast adres.
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 rapid, numit memorie principal, care comunic direct cu
unitatea de calcul i cea de comand, cu un cost pe bit relativ ridicat;
- O memorie mai lent, numit memorie secundar cu o capacitate mult
mai mare i cu un cost pe bit mai redus. Dintre acestea cel mai utilizat este
discul magnetic dur, ntlnit de obicei sub denumirea de Hard Disk.
Operaiile de citire i de scriere n locaiile de memorie selectate pe baza
adreselor acestora se realizeaz cu ajutorul unui ansamblu de circuite care
formeaz, mpreun cu memoria, unitatea de memorie.
2.2.5. Unitatea de intrare/ieire
Aceast unitate asigur comunicaia dintre calculator i mediul exterior.
Utilizatorii transmit sistemului informaiile nregistrate pe suporturi externe de
informaie cum ar fi suporturile magnetice, optice sau memorii flash, iar rezultatele prelucrrilor sunt furnizate utilizatorilor pe suporturi magnetice, optice,
sau pe hrtie. Transmiterea informaiilor de pe suporturile externe n memorie
i nregistrarea informaiilor pe asemenea suporturi sunt efectuate de echipamentele periferice.
Echipamentele periferice de intrare cele mai des ntlnite sunt tastatura,
mouse-ul, scanner-ul, Hard Disk-ul, CD-Rom-ul, DVD-Rom-ul, iar cele de ieire sunt display-ul, imprimanta, Hard Disk-ul, CD-Rom-ul, sau DVD- Rom-ul.
Acestea echipamente periferice sunt conectate la calculator prin interfee
de I/E, existente n cadrul unitilor de l/E, care ndeplinesc dou funcii importante: de conversie de date i de memorie tampon.
Conversia este necesar deoarece informaia este reprezentat diferit i
pe diverse medii de memorare, 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 externe. Memoria tampon asigur sincronizarea funcionrii
calculatorului cu aceste dispozitive.

2.2.6. Interconexiunile
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 surs la destinaie.
Numrul liniilor magistralei este egal de obicei cu lungimea cuvntului de memorie transferat.
Magistralele pot fi unidirecionale sau bidirecionale. La un moment dat,
nu poate fi selectat dect o surs i una sau mai multe destinaii. In funcie
de semnalele vehiculate, magistralele pot fi de adrese, de date i de control.
In continuare vom trata n mod detaliat unele dintre aceste uniti.
Cap.3. UNITATEA ARITMETIC l LOGIC
Unitatea aritmetic i logic (UAL) este acea parte a calculatorului care
efectueaz asupra datelor operaiile aritmetice i logice specificate de instruciuni.
Operaiile aritmetice executate de UAL sunt adunarea, scderea, nmulirea i
mprirea. Exist o mare varietate de tehnici pentru realizarea acestor operaii,
dintre care unele vor fi prezentate n acest capitol.
Operaiile logice efectuate de UAL sunt compararea unui numr cu zero,
determinarea semnului unui numr, sau compararea a dou numere ntre ele.
UAL execut, de asemenea, funcii logice de baz cum ar fi AND, OR, NOT,
XOR (sau exclusiv).
3.1. Circuite pentru adunarea a dou cifre binare
Considerm dou numere, A i B, de cte n bii fiecare:
A : An 1...Ai Ai 1...A1A0
B : Bn 1...Bi Bi 1...B1B0
Pentru adunarea bit cu bit a numerelor, este nevoie de un circuit de adunare, care s adune dou cifre binare de un anumit rang i , fie acestea Ai i Bi i
care s in cont de cifra de transport de la rangul anterior i 1, fie aceasta Ti 1 .
Circuitul trebuie s genereze sum Si i cifra de transport Ti ctre rangul urmtor.
Un astfel de circuit are trei intrri, Ai , Bi , Ti 1 i dou ieiri, Si i Ti i se
numete sumator elementar. Reprezentarea simbolic a circuitului este dat
n figura 3.1.
Si
Ti

Sumator

+
+
+

Ai
Bi
Ti-1

Fig.3.1
Tabelul de adevr al circuitului este prezentat n tabelul 3.1

Tabelul 3.1.
AiBiTi-1
000
001
010
011
100
101
110
111

Si
0
1
1
0
1
0
0
1

Ti
0
0
0
1
0
1
1
1

Ecuaiile logice care rezult sunt urmtoarele:


Si = Ai BiTi 1 + Ai Bi Ti 1 + Ai Bi Ti 1 + Ai BiTi 1

(3.1)

Ti = Ai BiTi 1 + Ai BiTi 1 + Ai Bi Ti 1 + Ai BiTi 1


Prin gruparea termenilor celor dou expresii obinem
Si = ( Ai Bi + Ai Bi )Ti 1 + ( Ai Bi + Ai Bi )Ti 1

(3.2)

= ( Ai Bi )Ti 1 + ( Ai Bi )Ti 1
= ( Ai Bi ) Ti 1 = Ai Bi Ti 1

(3.3)

Ti = ( Ai Bi + Ai Bi )Ti 1 + Ai Bi = ( Ai Bi )Ti 1 + Ai Bi
Schema corespunztoare este prezentat n figura 3.2.

(3.4)

XOR
Ti-1

AND

OR

Fig. 3.2
Dac nu se ine cont de transportul Ti 1 , circuitul se numete
semisumator elementar. Acest circuit are dou intrri, Ai i Bi i dou ieiri,
Si i Ti . Reprezentarea simbolic este prezentat n figura 3.3.
Si

Ai

Bi

S
Ti

Fig. 3.3
Pe acelai principiu se pot realiza scztoare elementare. Un scztor elementar
primete la intrare cei doi bii care trebuie sczui i bitul de mprumut de la poziia mai

puin semnificativ i genereaz la ieire bitul diferen i mprumutul ctre bitul din poziia mai semnificativ.
3.2. Operaii cu numere n virgul fix
3.2.1. Adunarea
Operaia de adunare se poate efectua n serie, cnd biii celor doi operanzi sunt prelucrai succesiv, sau n paralel, cnd biii sunt prelucrai simultan.
Dispozitivele de adunare corespunztoare sunt sumatorul serie, i sumatorul paralel.
3.2.1.1. Sumatorul serie
Schema unui sumator serie de n bii este prezentat n figura 3.4. Sumatorul
se compune din dou registre de deplasare A i B, de cte n bii fiecare, cu posibilitatea de ncrcare paralel, un singur sumator elementar S i un element de
ntrziere de un tact (impuls de ceas) D. Toate elementele din schem sunt controlate de impulsurile unui ceas.
Operanzii de cte n bii se ncarc n paralel n registrele A i B. La nceputul operaiei de adunare circuitul D este ters, astfel nct iniial Ti 1 va fi 0.
A

An-1 An-2

A1 A0

Bn-1 Bn-2

B1 B0

Ai

Si

Bi
Ti-1

Ti

Q D
D

Ceas

Fig. 3.4
Biii operanzilor se aplic la intrrile sumatorului n mod secvenial, iniial
aplicndu-se biii c.m.p.s. ( A0 , B0 ). In fiecare moment i , sumatorul genereaz
suma Si i cifra de transport Ti . La fiecare impuls de ceas, registrele se deplaseaz la dreapta cu o poziie, aplicnd la intrrile sumatorului urmtorii bii, iar
suma Si se introduce n registrul A , pe poziia care s-a eliberat (n acest scop se

utilizeaz intrarea serie). In acelai timp, transportul Ti se introduce n circuitul D


care realizeaz ntrzierea semnalului cu un ciclu de ceas. In urmtorul ciclu de
ceas, cnd Ti devine cifra Ti 1 a rangului urmtor, acest semnal este aplicat la
intrarea sumatorului elementar.
ntregul proces are loc n n impulsuri de ceas, obinndu-se rezultatul n registrul A . Dup n impulsuri de ceas, circuitul D conine transportul de la rangul
cel mai semnificativ. Dac acest transport este 1, suma are n + 1 bii, deci are loc
o depire a capacitii registrului sum A .
Registrul A memoreaz la nceput unul din operanzi, iar la sfrit rezultatul. Acest registru lucreaz deci ca un acumulator, motiv pentru care aceast
structur se numete structur cu acumulator.
3.2.1.2. Sumatorul paralel
Pentru a reduce timpul necesar pentru calcularea sumei adunarea celor
doi operanzi se poate efectua n paralel. Schema unui sumator paralel de n bii
este prezentat n figura 3.5.
Sumatorul este format din dou registre paralele A i B, pentru cei doi
operanzii de n bii, un registru R care pstreaz suma i n sumatoare elementare. Fiecare sumator de rang i primete de la rangul i 1 transportul Ti 1 i genereaz transportul Ti pentru rangul urmtor.

Rn-1

Rn-2

R1

R0

S1

S0

OV

Sn-1

Sn-2

Tn-1 Tn-2

Tn-2 Tn-3

T1

T0

T0

An-1 Bn-1

An-2 Bn-2

A1

B1

A0 B0

Bn-1

Bn-2

An-1

An-2

T-1

B1

B0

A1

A0

Ceas

Fig. 3.5

T-1

Primul sumator, cel corespunztor cifrei c.m.p.s., poate fi nlocuit cu un


semisumator, dac nu exist transport de la rangul precedent. Transportul de la
rangul c.m.s. este folosit pentru a indica depirea de capacitate a registrului
sum. Acest transport se pstreaz n bistabilul OV (Overflow). Intrarea T1 i
ieirea Tn 1 se pot utiliza pentru extinderea sumatorului la un numr mai mare de
bii.
La primul impuls de ceas se nscriu operanzii n registrele A i B. Semnalele
de la ieirile registrelor A i B sunt aplicate la intrrile celor n sumatoare elementare.
Dup timpul necesar propagrii transportului de la sumatorul S0 spre sumatorul Sn-1, la ieirile sumatoarelor elementare apare suma celor dou numere. La
urmtorul impuls de ceas, rezultatul este nscris n registrul R.
Sumator paralel prezentat, obinut prin interconectarea unor sumatoare
elementare, se numete sumator cu transport succesiv.
Sumatorul paralel efectueaz adunarea ntr-un ciclu de ceas, iar cel serie n
n cicluri de ceas. Totui, sumatorul paralel nu este de n ori mai rapid dect cel
serie, deoarece transportul se propag n serie prin cele n sumatoare. Trebuie
deci prevzut un timp suficient pentru ca cifra de transport s se propage n cazul
cel mai defavorabil (cnd acesta se propag prin toate nivelurile). Frecvena
ceasului trebuie aleas funcie de acest timp de propagare.

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