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 modificări 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ă
atât instrucţiunile, 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
calculator şi mediul exterior acestuia.
4. Interconexiunile: permit comunicaţia între UCP, memoria internă şi
unitatea 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
memorie.
- 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
datelor din memorie.
- Prelucrarea datelor. Execuţia unei instrucţiuni poate necesita efectuarea
unei 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,
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

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, elemente 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
operaţ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ţinutului unui registru sau locaţie de memorie, operaţii de comparaţie a doi
operanzi. UCP moderne înglobează î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 paritatea acestuia, la cazurile în care a apărut un transport sau un împrumut în
cursul prelucrării. 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ă
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 păstrează
temporar 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 accesibili prin program, fiind
registre de lucru. Un asemenea registru este, de exemplu, registrul de
instrucţiuni, 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
categorii de registre utilizator:
- Registre generale;
- Registre de date;
- Registre de adrese;
Registre generale sunt implicaţi în majoritatea instrucţiunilor aritmetice şi
logice putând fi utilizaţi în diferite scopuri de către programe. De obicei aceşti
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
aritmetice. 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
aceştia trebuie menţionat Registrul de date al memoriei (RD) ultima 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).
Registre de adrese, sunt utilizaţi pentru păstrarea adreselor instrucţiunilor
sau a datelor.

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


unitatea 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
instrucţ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
timpul execuţiei acesteia.
- Registrul de adrese al memoriei (RA) conţine adresa unei locaţii de
memorie 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
registru 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
împrumut la o operaţie aritmetică.
- Egal: este setat dacă rezultă o egalitate în urma unei operaţii de
comparare.
- Depăşire (Overflow): este utilizat pentru a indica o depăşire la o operaţie
aritmetică.
- Validare întreruperi (Interrupt Enable/Disable): este utilizat pentru
validarea 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
accesibile 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ţiunile 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
instrucţ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
intrare ş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
cuvinte de memorie a cărol 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
ridicată, 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,
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 (disc magnetic dur, întâlnit de obicei
sub denumirea de Hard disk, CD-Rom sau DVD-Rom).
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 comunică sistemului informaţiile înregistrate pe suporturi externe de
informaţie cum ar fi suporturile magnetice, optice sau memorii flash, iar
rezultatele 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
echipamentele 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şire
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
importante: 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. Interconexiuni
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
memorie 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
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ă S i şi cifra de transport Ti către rangul
urmă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 Bi Ti −1 (3.1)
Ti = Ai Bi Ti −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
operanzi 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 paralel.

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
posibilitatea de încărcare paralelă, un singur sumator elementar S şi un element
de întârziere de un tact (impuls de ceas), format dintr-un bistabil D. Toate
elementele din schemă sunt controlate de impulsurile unui ceas.
Operanzii de câte n biţi se încarcă în paralel în registrele A şi B. La
începutul operaţiei de adunare bistabilul D este şters, astfel încât iniţial Ti −1 va fi
0.

An-1 An-2 … A1 A0 Ai Si
aaaaszszszzzAffffwqAAAAAA

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
deplasează 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 bistabilul
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
registrul A . După n impulsuri de ceas, bistabilul 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
rezultatul. 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
elementare. Fiecare sumator de rang i primeşte de la rangul i − 1 transportul
Ti −1 şi generează 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
elementare.
După timpul necesar propagării transportului de la sumatorul S0 spre
sumatorul 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