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 pro-
grame cablate, pentru care schimbarea programului executat presupunea
efectuarea unor modificări ale structurii hard a calculatorului. Majoritatea cal-
culatoarelor actuale respectă această structură (figura 2.1).
Ideea principală a calculatorului cu program memorat constă în faptul că
atât instrucţiunile programului, cât şi datele sunt păstrate în aceeaşi memorie.
Instrucţiunile sunt interpretate ca şi coduri pentru generarea semnalelor de
control necesare prelucrării datelor.
Componentele principale ale unui calculator sunt următoarele:
1. Unitatea centrala de prelucrare sau UCP (Central Processing Unit –
CPU). UCP realizează prelucrarea datelor şi controlează funcţionarea
calculatorului. Această unitate este întâlnită de multe ori sub denumirea
de procesor. Dacă procesorul este realizat pe o singură pastilă de siliciu
atunci se numeşte microprocesor ( µP )
2. Unitatea de memorie (memoria principală şi secundară): această unitate
are rolul de a păstra datele şi instrucţiunile.
3. Unitatea de intrare/ieşire (I/E): efectuează transferul datelor între calcula-
tor şi mediul exterior acestuia.
4. Interconexiunile: permit comunicaţia între UCP, memoria internă şi unita-
tea de l/E şi poartă denumirea de magistrale.

Dispozitive
de intrare

Memorie Sistem - tastatura


- mouse
de I/E - scanner
UCP - DVD rom
(Procesor) Dispozi- - hard disk
Data Bus
tive
periferice
Address Bus Dispozitive
de ieşire
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 următoarele funcţii principale:


- Extragerea instrucţiunilor. UCP trebuie să extragă instrucţiunile din me-
morie.
- Interpretarea instrucţiunilor. Fiecare instrucţiune trebuie decodificată pentru
a determina operaţia care trebuie executată.
- Citirea datelor. Pentru execuţia unor instrucţiuni este necesară citirea da-
telor din memorie.
- Prelucrarea datelor. Execuţia unei instrucţiuni poate necesita efectuarea
unor operaţii aritmetice sau logice asupra datelor.
- Scrierea datelor. Rezultatele obţinute după execuţia instrucţiunii trebuie
scrise în memorie.
Componentele principale ale UCP sunt următoarele:
- Unitatea aritmetică şi logică sau UAL (Arithmetic and Logic Unit – ALU)
execută prelucrările asupra datelor.
- Registrele reprezintă o memorie internă pentru UCP.
- Unitatea de comandă şi control (UCC) controlează funcţionarea UCP şi a
celorlalte unităţi ale calculatorului.
- Interconexiunile interne din cadrul UCP asigură comunicaţia dintre UAL, re-
gistre şi UCC. Aceste interconexiuni sunt realizate sub forma unei magistrale, nu-
mită 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

Magistrala internă UCP


Registre
Circuit de deplasare

Circ. complementare

Logica
aritmetică
şi booleană

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 operaţii aritmetice şi logice asupra operanzilor
obţinuţi din memorie. Conţine, în principal, un circuit aritmetic pentru adunare,
numit sumator, toate operaţiile aritmetice reducându-se la o succesiune de ope-
raţii de adunare, şi un circuit logic care efectuează operaţii ca AND, OR, NOT
şi altele. Pe lângă operaţiile enumerate anterior UAL mai efectuează transferuri
de date între registre şi între aceştia şi memorie, operaţii de deplasare a conţinu-
tului unui registru, operaţii de comparaţie a doi operanzi. UCP moderne înglo-
bează în structura lor şi un unitate de procesare grafică. De asemenea UAL
generează informaţii referitoare la rezultatul ultimei instrucţiuni aritmetice şi logice
executate. Acestea se referă la semnul rezultatului, la cazurile în care a apărut un
transport sau un împrumut în cursul prelucrării şi la multe alte informaţii. Fiecare
din aceste informaţii se păstrează în câte un bistabil, numit indicator de condiţie.
Aceste bistabile sunt reunite într-un registru numit registru de stare care conţine şi
alte informaţii referitoare la starea programului.

2.2.2. Registrele
Pentru a putea executa funcţiile enumerate mai sus UCP necesită memora-
rea 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 păstrează tempo-
rar operanzii unei operaţii aritmetice sau logice, rezultatele intermediare şi finale
sau adresele acestora. Utilizarea registrelor creşte viteza de prelucrare, eliminând
necesitatea accesului repetat la memorie. Ele reprezintă deci o memorie internă
foarte rapidă.
Unele registre pot avea funcţii dedicate, altele se pot utiliza pentru orice
operaţii, fiind registre generale. Un registru special îl reprezintă registrul acumulator
care păstrează de obicei unul dintre operanzii care participă la o operaţie şi apoi
rezultatul operaţiei. O parte dintre registre nu sunt accesibile prin program, fiind re-
gistre de lucru. Un asemenea registru este, de exemplu, registrul de instrucţi-
uni, care păstrează instrucţiunea 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 numărului de accese la memoria


principală şi deci creşterea vitezei de execuţie a programelor. Aceste registre sunt
accesibile prin instrucţiunile limbajului maşină. Se deosebesc următoarele cate-
gorii de registre utilizator:
- Registre generale;
- Registre de date;
- Registre de adrese;
Registrele generale sunt implicate în majoritatea instrucţiunilor aritmetice
şi logice putând fi utilizate în diferite scopuri de către programe. De obicei aces-
te registre pot conţine operandul oricărei instrucţiuni. In multe cazuri există însă
restricţii, de exemplu, pot exista registre dedicate pentru anumite operaţii aritme-
tice. Uneori, registrele generale se pot utiliza pentru adresarea operanzilor, prin
diverse moduri de adresare.
Registrele de date se pot utiliza numai pentru păstrarea datelor. Dintre
acestea trebuie menţionat Registrul de date al memoriei (RD) care păstrează ul-
tima dată adusă din memorie. In acest context prin dată se înţelege o instrucţiuni
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 păstrarea adreselor instrucţiuni-
lor sau a datelor.

2. Registrele de control şi de stare. Aceste registre sunt utilizate de unita-


tea de control pentru controlul funcţionării UCP şi de programele sistemului de
operare pentru controlul execuţiei programelor. In general, aceste registre nu
sunt vizibile programatorilor. Deşi fiecare tip de calculator are organizări proprii
ale registrelor de control şi de stare, totuşi se pot deosebi următoarele registre
care sunt esenţiale pentru execuţia instrucţiunilor:
- Contorul de program (PC). Acest registru conţine adresa următoarei in-
strucţiuni care va fi extrasă din memorie. O instrucţiune de salt va modifica con-
ţinutul contorului de program introducând în acesta adresa instrucţiunii la care
trebuie executat saltul.
- Registrul de instrucţiuni (Rl) conţine instrucţiunea adusă din registrul de
date (RD). In acest registru instrucţiunea este decodificată şi păstrată pe tot tim-
pul execuţiei acesteia.
- Registrul de adrese al memoriei (RA) conţine adresa unei locaţii de me-
morie din care urmează să fie adusă o dată sau o instrucţiune.
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 cuvântului de stare (PSW-Program Status Word). Acest regis-
tru păstrează indicatori de condiţii şi alte informaţii de stare. Câmpurile principale
ale acestui registru sunt:
- Semn: conţine bitul de semn al rezultatului ultimei operaţii aritmetice.
- Zero: este setat atunci când rezultatul este 0.
- Transport (Carry): este setat dacă a rezultat un transport sau un împru-
mut la o operaţie aritmetică.
- Egal: este setat dacă rezultă o egalitate în urma unei operaţii de compara-
re.
- Depăşire (Overflow): este utilizat pentru a indica o depăşire la o operaţie
aritmetică.
- Validare întreruperi (Interrupt Enable/Disable): este utilizat pentru valida-
rea sau invalidarea întreruperilor. Întreruperile sun operaţii pe care le execută
frecvent UCP.
- Supervizor (Supervisor): acest indicator arată dacă UCP execută un
program în mod supervizor sau în mod utilizator. Anumite instrucţiuni privilegiate
pot fi executate numai în mod supervizor şi anumite zone de memorie sunt ac-
cesibile numai în acest mod.
Pot exista şi alte registre din această categorie, de exemplu pentru controlul
operaţiilor de l/E.

2.2.3. Unitatea de comandă şi control


UCC coordonează activitatea calculatorului în sensul că extrage instrucţiuni-
le programului din memorie, le decodifică şi generează secvenţa semnalelor de
comandă necesare execuţiei.
Pe parcursul execuţiei unei instrucţiuni, unitatea de comandă primeşte de la
unitatea aritmetică şi logică informaţii de stare, în funcţie de care selectează una
din alternativele de continuare a operaţiei. La terminarea execuţiei, se trece la in-
strucţiunea următoare. Adresa acestei instrucţiuni este păstrată în registrul PC
(contor de program).

2.2.4. Unitatea de memorie


Memoria reprezintă sursa sau destinaţia tuturor informaţiilor. In memorie
sunt încărcate informaţiile iniţiale (date şi instrucţiuni) prin dispozitivele de in-
trare şi de la memorie sunt preluate rezultatele prin intermediul dispozitivelor
de ieşire.
Memoria este organizată ca o colecţie de locaţii de memorie. Fiecărei
locaţii i se asociază o adresă prin intermediul căreia se poate selecta locaţia
respectivă. La calculatoarele actuale o locaţie de memorie este egală cu 8 biţi
şi se numeşte octet. Octetul este cea mai mică unitate de memorie adresabilă.
Adresarea se realizează cu ajutorul unor linii de adresă, numărul acestor
linii determinând capacitatea maximă adresabilă a memoriei. De exemplu, cu
16 linii de adresă se pot selecta maxim 216 octeţi. Octeţii sunt grupaţi în cuvin-
te de memorie a căror lungime este stabilită prin program.
O locaţie de memorie (octet) se caracterizează prin:
- Adresă - poziţia locaţiei în cadrul memoriei.
- Conţinut - valoarea memorată la această adresă.
Memoria trebuie să aibă o capacitate cât mai mare şi o viteză cât mai ri-
dicată, adică un timp de acces cât mai redus. Viteza este direct proporţională
cu costul. De aceea, majoritatea calculatoarelor au două tipuri de memorii, ca-
re 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, întâlnit de obicei sub denumirea de Hard Disk.
Operaţiile de citire şi de scriere în locaţiile 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/ieşire


Această unitate asigură comunicaţia dintre calculator şi mediul exterior.
Utilizatorii transmit sistemului informaţiile înregistrate pe suporturi externe de
informaţie cum ar fi suporturile magnetice, optice sau memorii flash, iar rezul-
tatele prelucrărilor sunt furnizate utilizatorilor pe suporturi magnetice, optice,
sau pe hârtie. Transmiterea informaţiilor de pe suporturile externe în memorie
şi înregistrarea informaţiilor pe asemenea suporturi sunt efectuate de echipa-
mentele periferice.
Echipamentele periferice de intrare cele mai des întâlnite sunt tastatura,
mouse-ul, scanner-ul, Hard Disk-ul, CD-Rom-ul, DVD-Rom-ul, iar cele de ieşi-
re sunt display-ul, imprimanta, Hard Disk-ul, CD-Rom-ul, sau DVD- Rom-ul.
Acestea echipamente periferice sunt conectate la calculator prin interfeţe
de I/E, existente în cadrul unităţilor de l/E, care îndeplinesc două funcţii impor-
tante: de conversie de date şi de memorie tampon.
Conversia este necesară deoarece informaţia este reprezentată diferit şi
pe diverse medii de memorare, fiind necesară compatibilizarea dispozitivelor
respective.
Funcţia de memorie tampon este necesară pentru că viteza de lucru a
calculatorului (UAL şi UCC) este cu câteva ordine de mărime mai mare decât
a dispozitivelor externe. Memoria tampon asigură sincronizarea funcţionării
calculatorului cu aceste dispozitive.
2.2.6. Interconexiunile
Interconectarea unităţilor componente ale calculatorului se realizează
prin una sau mai multe magistrale. O magistrală este formată dintr-un grup de
linii destinate transferului paralel al informaţiilor de la una sursă la destinaţie.
Numărul liniilor magistralei este egal de obicei cu lungimea cuvântului de me-
morie transferat.
Magistralele pot fi unidirecţionale sau bidirecţionale. La un moment dat,
nu poate fi selectată decât o sursă şi una sau mai multe destinaţii. In funcţie
de semnalele vehiculate, magistralele pot fi de adrese, de date şi de control.
In continuare vom trata în mod detaliat unele dintre aceste unităţi.

Cap.3. UNITATEA ARITMETICĂ Şl LOGICĂ

Unitatea aritmetică şi logică (UAL) este acea parte a calculatorului care


efectuează asupra datelor operaţiile aritmetice şi logice specificate de instrucţiuni.
Operaţiile aritmetice executate de UAL sunt adunarea, scăderea, înmulţirea şi
împărţirea. Există o mare varietate de tehnici pentru realizarea acestor operaţii,
dintre care unele vor fi prezentate în acest capitol.
Operaţiile logice efectuate de UAL sunt compararea unui număr cu zero,
determinarea semnului unui număr, sau compararea a două numere între ele.
UAL execută, de asemenea, funcţii logice de bază cum ar fi AND, OR, NOT,
XOR (sau exclusiv).

3.1. Circuite pentru adunarea a două cifre binare


Considerăm două numere, A şi B, de câte n biţi 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 aduna-
re, 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 către rangul ur-
mător.
Un astfel de circuit are trei intrări, Ai , Bi , Ti −1 şi două ieşiri, Si şi Ti şi se
numeşte sumator elementar. Reprezentarea simbolică a circuitului este dată
în figura 3.1.
Si + Ai
Sumator + Bi
Ti Ti-1
+

Fig.3.1

Tabelul de adevăr al circuitului este prezentat în tabelul 3.1


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

Ecuaţiile logice care rezultă sunt următoarele:


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 (3.2)
Prin gruparea termenilor celor două expresii obţinem
Si = ( Ai Bi + Ai Bi )Ti −1 + ( Ai Bi + Ai Bi )Ti −1
= ( 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 (3.4)
Schema corespunzătoare este prezentată în figura 3.2.
XOR
Ti-1

AND OR

Fig. 3.2

Dacă nu se ţine cont de transportul Ti −1 , circuitul se numeşte


semisumator elementar. Acest circuit are două intrări, Ai şi Bi şi două ieşiri,
Si şi Ti . Reprezentarea simbolică este prezentată în figura 3.3.
Si + Ai
S
Ti + Bi

Fig. 3.3

Pe acelaşi principiu se pot realiza scăzătoare elementare. Un scăzător elementar


primeşte la intrare cei doi biţi care trebuie scăzuţi şi bitul de împrumut de la poziţia mai
puţin semnificativă şi generează la ieşire bitul diferenţă şi împrumutul către bitul din pozi-
ţia mai semnificativă.

3.2. Operaţii cu numere în virgulă fixă

3.2.1. Adunarea
Operaţia de adunare se poate efectua în serie, când biţii celor doi ope-
ranzi sunt prelucraţi succesiv, sau în paralel, când biţii sunt prelucraţi simultan.
Dispozitivele de adunare corespunzătoare sunt sumatorul serie, şi sumatorul pa-
ralel.

3.2.1.1. Sumatorul serie


Schema unui sumator serie de n biţi este prezentată în figura 3.4. Sumatorul
se compune din două registre de deplasare A şi B, de câte n biţi fiecare, cu posi-
bilitatea de încărcare paralelă, un singur sumator elementar S şi un element de
întârziere de un tact (impuls de ceas) D. Toate elementele din schemă sunt con-
trolate de impulsurile unui ceas.
Operanzii de câte n biţi se încarcă în paralel în registrele A şi B. La începu-
tul operaţiei de adunare circuitul D este şters, astfel încât iniţial Ti −1 va fi 0.

An-1 An-2 … A1 A0 Ai Si

Bi
Bn-1 Bn-2 … B1 B0
Ti-1 Ti
B

Q D
D
C
Ceas

Fig. 3.4

Biţii operanzilor se aplică la intrările sumatorului în mod secvenţial, iniţial


aplicându-se biţii 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 depla-
sează la dreapta cu o poziţie, aplicând la intrările sumatorului următorii biţi, iar
suma Si se introduce în registrul A , pe poziţia care s-a eliberat (în acest scop se
utilizează intrarea serie). In acelaşi timp, transportul Ti se introduce în circuitul D
care realizează întârzierea semnalului cu un ciclu de ceas. In următorul ciclu de
ceas, când Ti devine cifra Ti −1 a rangului următor, acest semnal este aplicat la
intrarea sumatorului elementar.
Întregul proces are loc în n impulsuri de ceas, obţinându-se rezultatul în re-
gistrul A . După n impulsuri de ceas, circuitul D conţine transportul de la rangul
cel mai semnificativ. Dacă acest transport este 1, suma are n + 1 biţi, deci are loc
o depăşire a capacităţii registrului sumă A .
Registrul A memorează la început unul din operanzi, iar la sfârşit rezulta-
tul. Acest registru lucrează deci ca un acumulator, motiv pentru care această
structură se numeşte 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 biţi
este prezentată în figura 3.5.
Sumatorul este format din două registre paralele A şi B, pentru cei doi
operanzii de n biţi, un registru R care păstrează suma şi n sumatoare elementa-
re. Fiecare sumator de rang i primeşte de la rangul i − 1 transportul Ti −1 şi gene-
rează transportul Ti pentru rangul următor.

Rn-1 Rn-2 … R1 R0

Sn-1 Sn-2 S1 S0

OV Tn-1 Tn-2 Tn-2 Tn-3 T1 T0 T0 T-1 T-1

An-1 Bn-1 An-2 Bn-2 A1 B1 A0 B0

Bn-1 Bn-2 … B1 B0

An-1 An-2 … A1 A0

A
Ceas

Fig. 3.5
Primul sumator, cel corespunzător 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 depăşirea de capacitate a registrului
sumă. Acest transport se păstrează în bistabilul OV (Overflow). Intrarea T−1 şi
ieşirea Tn −1 se pot utiliza pentru extinderea sumatorului la un număr mai mare de
biţi.
La primul impuls de ceas se înscriu operanzii în registrele A şi B. Semnalele
de la ieşirile registrelor A şi B sunt aplicate la intrările celor n sumatoare elemen-
tare.
După timpul necesar propagării transportului de la sumatorul S0 spre suma-
torul Sn-1, la ieşirile sumatoarelor elementare apare suma celor două numere. La
următorul impuls de ceas, rezultatul este înscris în registrul R.
Sumator paralel prezentat, obţinut prin interconectarea unor sumatoare
elementare, se numeşte sumator cu transport succesiv.
Sumatorul paralel efectuează adunarea într-un ciclu de ceas, iar cel serie în
n cicluri de ceas. Totuşi, sumatorul paralel nu este de n ori mai rapid decât cel
serie, deoarece transportul se propagă în serie prin cele n sumatoare. Trebuie
deci prevăzut un timp suficient pentru ca cifra de transport să se propage în cazul
cel mai defavorabil (când acesta se propagă prin toate nivelurile). Frecvenţa
ceasului trebuie aleasă funcţie de acest timp de propagare.

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