Documente Academic
Documente Profesional
Documente Cultură
Curs 3.14 Calculatorul Numeric UAL I
Curs 3.14 Calculatorul Numeric UAL I
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
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
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
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
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
(3.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
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