Documente Academic
Documente Profesional
Documente Cultură
Bazele Programarii Calculatoarelor PDF
Bazele Programarii Calculatoarelor PDF
Volumul 1
Prefa
Introducere 1
Bibliografie 199
Introducere n tiina sistemelor i a calculatoarelor
INTRODUCERE
Date i informaii
Introducerea datelor
Introducerea datelor reprezint procesul de culegere a datelor i scrierea
acestora ntr-o form accesibil echipamentelor de calcul. Ea cuprinde patru
etape:
- culegerea datelor de la diverse surse i apoi reunirea lor ntr-un singur loc,
de unde vor fi transmise pentru a fi prelucrate;
- efectuarea verificrii corectitudinii, consistenei i compatibilitii datelor
culese;
1
Introducere
Reglare
Prelucrarea datelor
Dup introducere, datele sunt memorate i supuse ulterior unor prelucrri
cum sunt:
- clasificarea conform anumitor criterii;
- sortarea cresctoare sau descresctoare;
- calcule aritmetice sau logice;
- rezumarea datelor, adic prezentarea ntr-o form concis a anumitor
rezultate ale prelucrrii.
Extragerea informaiilor
n urma prelucrrii, datele devin informaii care se vor transmite, la locul
unde au fost solicitate, ntr-o form util fundamentrii unor decizii. Extragerea
informaiilor cuprinde trei etape:
- regsirea rezultatelor din memorie;
- conversia (decodificarea) din forma n care au fost prelucrate ntr-o form
accesibil utilizatorului;
- transmiterea informaiilor la locul solicitat de utilizator.
Mecanismul de reglare
Informaiile extrase pot ndeplini cerinele pentru care au fost prelucrate
datele sau pot fi afectate de erori n diferite etape ale prelucrrii. Pentru a
2
Introducere n tiina sistemelor i a calculatoarelor
Sistem decizional
Date Informaii
Sistem
Decizii Sistem informatic
informaional
Date Decizii
automatizate
Sistem operaional
3
Introducere
Hardware
Entropia informaional
n
pi = 1 .
i =1
Experimentul pune n eviden un anumit cmp de probabilitate {X , x, p ( x )} i o
anumit repartiie:
x x2 K xn
X = 1 .
p
1 p 2 K p n
Deoarece nu se cunoate apriori rezultatul experimentului X , nseamn
c acesta conine un anumit grad de nedeterminare. Se poate afirma c:
- n urma realizrii unui experiment se obine informaia, dac i numai
dac rezultatul experimentului X nltur o anumit nedeterminare;
- informaia i nedeterminarea sunt mrimi direct proporionale;
- informaia nlocuiete nedeterminarea.
Aceste considerente au condus la utilizarea aceleiai uniti de msur,
att pentru cantitatea de informaie, ct i pentru nedeterminare. Nedeterminarea
unui experiment depinde de probabilitatea de realizare a evenimentelor. Se
noteaz cu H msura gradului de nedeterminare pentru experimentul X .
Aceast funcie depinde de probabilitile pi ale evenimentelor xi :
H ( X ) = H ( p1 , p2 ,K , pn ) .
Funcia H reprezint de fapt cantitatea de informaie obinut prin producerea
experimentului X .
Bazele teoriei moderne a informaiei au fost puse de Claude Shannon. El
a folosit pentru prima dat, n anul 1948, formula:
n
H ( p1 , p2 ,K, pn ) = pi log 2 pi .
i =1
Msura nedeterminrii, dat de aceast formul, se numete, dup Shannon,
entropia experimentului X sau entropia informaional.
Unitatea de msur a informaiei se definete ca fiind cantitatea de
informaie obinut prin precizarea unei variante din dou egal probabile i se
numete bit (BInary digiT cifr binar).
Multiplii bitului sunt:
H ( p1 , p2 ,K , pn ) 0 .
2. Dac pentru un indice i {1,2,K, n} avem pi = 1 , atunci entropia
informaional este nul:
H ( p1 , p2 ,K , pn ) = 0 .
3. Entropia unui sistem de evenimente este maxim cnd evenimentele au
aceeai probabilitate de apariie:
H ( p1 , p 2 ,K , p n ) H (1 n ,1 n ,K ,1 n ) = log 2 n .
4. Evenimentele imposibile nu modific valoarea entropiei informaionale a
unui sistem:
H ( p1 , p 2 ,K , p n ,0) = H ( p1 , p 2 ,K , p n ) .
5. Entropia produsului mai multor surse independente de informaie este
egal cu suma entropiilor fiecrei surse luate separat:
H ( X1 X 2 K X n ) = H ( X1) + H ( X 2 ) + K + H ( X n ) .
7
Introducere
8
Introducere n tiina sistemelor i a calculatoarelor
Capitolul 1
9
Reprezentarea informaiei n calculatoarele numerice
Cele dou cifre de 1 au ponderi diferite: prima reprezint 100 de uniti iar a
doua o unitate.
In continuare ne vom referi numai la sistemele de numeraie poziionale,
deoarece n sistemele de calcul se folosesc numai aceste tipuri. Numrul de
simboluri utilizat ntr-un SN reprezint baza (rdcina) sistemului de
numeraie. Referitor la baza B a unui SN putem face urtoarele observaii:
- este o valoare ntreag mai mare sau egal cu unu B 1 , B N ;
- ponderea cifrelor utilizate ntr-o reprezentare este dat de baz;
- baza se reprezint n propria baz prin succesiunea de simboluri 10.
Exemple:
a) sistemul zecimal este un sistem de numeraie n baza 10, numrul de cifre
utilizate fiind zece:
B = 10 , simboluri: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
b) sistemul binar este un sistem de numeraie n baza 2 i utilizeaz dou
cifre:
B = 2, simboluri: 0, 1.
c) sistemul octal este un sistem de numeraie n baza 8, coninnd opt cifre:
B = 8, simboluri: 0, 1, 2, 3, 4, 5, 6, 7.
d) sistemul hexazecimal este un sistem de numeraie n baza 16 i conine 16
cifre:
B = 16 , simboluri: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Exemple:
B = 10 , N = 23110 = 2 10 2 + 3 101 + 1 10 0 ;
B = 8, N = 4758 = 4 8 2 + 7 81 + 5 8 0 = 31710 ;
B = 2,
N = 1010012 = 1 2 5 + 0 2 4 + 1 2 3 + 0 2 2 + 0 21 + 1 2 0 = 4110 ;
B = 16 , N = A8 F16 = A 16 2 + 8 161 + F 16 0 = 270310 .
10
Introducere n tiina sistemelor i a calculatoarelor
1.1.1.2 Conversia unui numr ntreg din baza 10 ntr-o baz oarecare
Exemple:
1. Considerm numrul zecimal z . Reprezentarea acestuia n baza B se
obine astfel:
Ct Rest
z:B C0 r0 = b0
C0 : B C1 r1 = b1
M M M
C n 2 : B C n 1 rn 2 = bn 2
C n 1 : B 0 rn 1 = bn 1
Deci reprezentarea numrului zecimal z n baza B este bn 1bn 2 Kb1b0 ( B ) .
11
Reprezentarea informaiei n calculatoarele numerice
1:2=0 r4 = 1
Rezult c reprezentarea n baza 2 este 101112=2310.
n general indicele de baz se scrie doar n cazurile n care pot apare confuzii de
interpretare.
Exemple:
1. Numrul subunitar 0, f n baza 10, unde f este partea fracionar, se
convertete n baza B astfel:
Parte Parte
ntreag fracionar
0, f B b1 f1
0, f1 B b 2 f2
0, f 2 B b 3 f3
12
Introducere n tiina sistemelor i a calculatoarelor
M M M
Deci numrul zecimal 0, f se scrie n baza B sub forma 0, b1b 2b 3 K .
0,88 16 = 14,08 b 7 = E
0,08 16 = 1,28 b 8 = 1
Considerm c m = 8 este o precizie suficient de reprezentare a numrului i
deci 0,1810 se reprezint aproximativ n hexazecimal prin 0,2E147AE116.
Observaii:
- Algoritmul nu are ntotdeauna finalitate. n astfel de cazuri ne oprim
atunci cnd apreciem c precizia obinut este suficient.
13
Reprezentarea informaiei n calculatoarele numerice
Pentru a converti un numr zecimal real, format din parte ntreag i parte
fracionar, se efectueaz separat conversia prii ntregi, respectiv a prii
fracionare, i apoi se concateneaz reprezentrile obinute.
Exemple:
1. S se converteasc 23,25 din zecimal n binar.
2310=101112, 0,2510=0,012 rezult 23,2510=10111,012.
Exemple:
1. S se determine numrul zecimal reprezentat n binar astfel: 1101,101.
1101,1012 = 1 23 + 1 2 2 + 0 21 + 1 2 0 + 1 2 1 + 0 2 2 + 1 2 3 =
1 1
= 8 + 4 +1+ + = 13,62510
2 8
14
Introducere n tiina sistemelor i a calculatoarelor
Tabelul 1.1
Octal Binar Hexa- Binar
zecimal
0 000 0 0000
1 001 1 0001
2 010 2 0010
3 011 3 0011
4 100 4 0100
5 101 5 0101
6 110 6 0110
7 111 7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
15
Reprezentarea informaiei n calculatoarele numerice
( ) (
N = b3k + 2 2 2 + b3k +1 2 + b3k 23k + K + b2 2 2 + b1 2 + b0 + )
+ (b1 2
2
+ b 2 2 + b 3 )2 3
+ K + (b
3l + 2 2
2
+ b 3l +1 2 + b 3l )2 3l
N = bk 8 k + Kb181 + b0 80 + b 1 8 1 + K + b l 8 l ,
unde
0 bi = b3i + 2 2 2 + b3i +1 2 + b3i < 8 .
Pentru a realiza conversia binar-hexazecimal grupm expresia n tetrade.
innd cont de cele artate anterior, pentru conversiile binar-octal-
hexazecimal se stabilesc urmtoarele reguli:
a) Conversia octal-binar sau hexazecimal-binar se realizeaz exprimnd
fiecare cifr octal, respectiv hexazecimal, prin 3, respectiv 4, cifre binare.
Exemple:
1. 245,78 = 010 100 101, 1112
16
Introducere n tiina sistemelor i a calculatoarelor
17
Reprezentarea informaiei n calculatoarele numerice
parte parte
ntreag fracionar
a) b) c)
Fig. 1.1 Tipuri de reprezentri n formatul cu virgul fix
19
Reprezentarea informaiei n calculatoarele numerice
n n 1 n 2 2 1
2 n 1 2 n 2 2n 3 21 20
8 7 6 5 4 3 2 1
1 1 1 1 1 1 1 1
27 26 25 24 23 22 21 20
20
Introducere n tiina sistemelor i a calculatoarelor
n n 1 n 2 2 1
S n2 n 3
2 2 21 20
21
Reprezentarea informaiei n calculatoarele numerice
a) N = +75 = 0 1001011;
b) se inverseaz fiecare bit, inclusiv cel de semn: 1 0110100 ;
c) se adun 1: 1 0110100 + 1 = 1 0110101 , deci N c = 1 0110101 .
Exemple:
1. N = 75 . Se reprezint N cu semn N = +75 = 0 1001011 i aplicnd
regula 3 rezult: N c = 1 0110101 .
2. N = 112 N = +112 = 0 1110000 N c = 1001 0000 .
24
Introducere n tiina sistemelor i a calculatoarelor
n-1 0
S Exponent Mantis
e bii m bii
26
Introducere n tiina sistemelor i a calculatoarelor
Fig.1.6
31 30 23 22 0
S Exponent + 127 Mantis normalizat
Fig. 1.7
10
n total A16 posibiliti de codificare. Din acest numr mare de coduri posibile
exist anumite variante mai uzuale care pot fi divizate n: coduri ponderate i
coduri neponderate.
Coduri ponderate. Un cod ponderat asociaz fiecrei cifre zecimale o
tetrad binar, iar ponderea fiecrui bit din tetrad este egal cu valoarea cifrei
din denumirea codului, tabelul 1.2. Cifra zecimal codificat se obine prin suma
biilor din cuvntul de cod, ponderai cu valoarea corespunztoare din
denumirea codului. Dac atam unei cifre zecimale zi {0,1,K ,9} un cuvnt de
cod ci = b3b2b1b0 , unde bk {0,1} , atunci se poate scrie:
3
zi = bk pk , (1.20)
k =0
unde pk constituie ponderea corespunztoare rangului k . Dintre codurile
ponderate cele mai utilizate amintim: 8421, 2421,4221, 7421.
Codul 8421 are ca ponderi puterile lui 2 (8=23, 4=22, 2=21, 1=20) i
cuvintele de cod sunt chiar numerele succesive n sistemul binar natural. Din
acest motiv codul 8421 se mai numete codul zecimal-binar natural NBCD
(Natural Binary Coded Decimal). n terminologia curent este denumit
(impropriu) doar codul BCD.
La codul 2421 (codul Aiken) codificarea primelor cinci cifre zecimale
este identic cu cea din codul 8421. n continuare codificarea cifrei zecimale 5
se obine din secvena corespunztoare cifrei zecimale 4 prin complementare
(complement fa de 1). Aceeai regul se aplic pentru obinerea cuvntului de
cod al cifrei 6 din cel al cifrei 3, respectiv 7 din 2, 8 din 1 i 9 din 0. Deci dou
cifre zecimale complementare fa de 9 (0 cu 9, 1 cu 8, 2 cu 7, 3 cu 6, 4 cu 5) au
cuvintele de cod obinute prin inversarea cifrelor binare. Codurile care prezint
aceast proprietate sunt denumite coduri cu autocomplementare.
29
Reprezentarea informaiei n calculatoarele numerice
30
Introducere n tiina sistemelor i a calculatoarelor
Codul BCD este cel mai utilizat cod pentru reprezentarea cifrelor
zecimale. Unele microprocesoare accept instruciuni n limbaj de asamblare
pentru efectuarea unor calcule n BCD. Pentru reprezentarea numerelor zecimale
n cod BCD exist dou forme de reprezentare:
BCD despachetat - fiecare cifr se reprezint pe un octet, din care doar cei
4 bii mai puin semnificativi sunt folosii;
BCD mpachetat fiecare cifr se reprezint pe 4 bii deci cte dou cifre
pe octet.
31
Reprezentarea informaiei n calculatoarele numerice
Exemple:
- n octal
a) 1475,367 + b) 34022,56
562,51 1234,25
22630,077 32566,31
- n hexazecimal
a) AE53C + b) F000
D8E2 1
BBE1E EFFF
Exemplu: x = 30 , y = 50 i x + y = 80 .
x = +30 xc = 0 0011110 +
y = +50 yc = 0 0110010
xc + yc = 0 1010000c = + 8010.
Este evident c rezultatul obinut este corect i este tot n cod complementar.
S considerm acum dou numere zecimale a cror sum depete
valoarea maxim reprezentabil.
33
Reprezentarea informaiei n calculatoarele numerice
Cazul x > y
Din definiia complementului fa de 2 rezult: xc = x i yc = 2 n y .
Atunci, putem scrie:
xc + yc = x + 2 n y = 2 n + x y = x y = ( x + y )c ,
unde s-a realizat corecia 2 n = 0 , ceea ce este echivalent cu neglijarea
transportului de la rangul de semn.
35
Reprezentarea informaiei n calculatoarele numerice
xc = 0 0110010 , yc = 11100010 .
Prin sumare rezult:
xc = 0 0110010 +
yc = 1 1100010
1 0 0010100
i neglijnd transportul de la rangul semn xc + yc = 0 0010100 = +2010 .
Cazul x < y
n acest caz se obine:
xc + yc = x + 2 n y = 2 n ( y x ) = ( x + y )c ,
deci nu apare transport la rangul de semn.
xi + yi = ( x + y )i , (1.23)
unde indicele i specific faptul c numrul este reprezentat n cod invers.
La fel ca n cazul codului complementar vom analiza adunarea a dou numere
pozitive, negative i de semne diferite. n exemple dimensiunea reprezentrii va
fi considerat n = 8 , inclusiv bitul de semn. Pentru aceast dimensiune domeniul
de reprezentare este: [ 127, 127 ] .
a) Adunarea a dou numere pozitive x 0 , y 0
Din relaia de definiie (1.12) rezult c xi = x i yi = y . Prin urmare
acest caz este identic cu cazul (a) de la codul complementar.
Exemple:
1. x = 30 , y = 50 . Reprezentrile n cod invers sunt:
xd = 1 0011110 xi = 11100001 ,
y d = 1 0110010 yi = 11001101 .
Efectund suma:
xi = 11100001 +
yi = 11001101
1 1 0101110 +
1
101011111
rezult ( x + y )i = 10101111 sau ( x + y )d = 11010000 = 8010 , rezultat corect. n
acest caz avem transport n rangul semn i transport (carry) din rangul semn.
37
Reprezentarea informaiei n calculatoarele numerice
38
Introducere n tiina sistemelor i a calculatoarelor
xi = 0 0110010 +
yi = 1 1100001
1 0 0010011
1
0 0010100
i deci rezultatul este ( x + y )i = 0 0010100 = +2010 .
Se observ c exist transport i spre rangul semn i din rangul semn.
Cazul x < y
Din definiia codului invers se obine:
xi + yi = x + 2 n + y 1 = 2 n 1 + x + y = ( x + y )i ,
deci nu apare transport de la rangul semn.
40
Introducere n tiina sistemelor i a calculatoarelor
Mai sus transportul aprut din tetrada anterioar este evideniat prin .
41
Reprezentarea informaiei n calculatoarele numerice
Cel mai simplu cod care permite detecia unei erori sau a unui numr
impar de erori este codul cu bit de paritate. La emisia cuvntului de cod se
adaug un bit de paritate calculat astfel nct numrul biilor diferii de zero ai
noului cuvnt de cod s fie par sau impar n funcie de convenia adoptat. La
43
Reprezentarea informaiei n calculatoarele numerice
paritate par numrul total de bii de 1 (mpreun cu bitul de paritate) este par.
La paritate impar numrul total de bii de 1 (mpreun cu bitul de paritate) este
impar. Adugarea bitului de paritate la un cuvnt de cod poart denumirea de
paritate orizontal. La recepie se recalculeaz paritatea cuvntului de cod
recepionat i dac aceasta este diferit de cea stabilit nseamn c a aprut o
eroare sau un numr impar de erori.
Observaie. Codul cu bit de paritate permite detectarea strii de eroare,
adic existena unei erori, i nu determinarea exact a erorii.
De exemplu, se poate obine un cod pentru detectarea erorilor dac se
consider codul 8421 cruia i se adaug, n stnga, un bit de paritate. Utilizm
paritate impar i atunci noile cuvinte de cod pentru cifrele (0-5) sunt:
p 8 4 2 1
1 0 0 0 0
0 0 0 0 1
0 0 0 1 0
1 0 0 1 1
0 0 1 0 0
1 0 1 0 1
Simboluri Control
informaionale linie
a11 a12 K a1n l1
K M
am1 am 2 L amn lm
44
Introducere n tiina sistemelor i a calculatoarelor
Control c1 c2 K cn cn +1
coloan
Exemplu: ntr-o transmisie de date n care este utilizat detectarea erorilor prin
paritate ncruciat (paritate par) este transmis un bloc de date corespunztor
cifrelor zecimale de la 0 la 5, codificate n codul 8421.
O secven este reprezentat prin codificarea unei singure cifre zecimale. Blocul
de informaie recepionat este urmtorul:
0000 0
0011 1
0010 1
0011 0
0100 1
0101 0
0001 1
La verificarea corectitudinii recepiei se constat c:
l 2 l 2calculat i c3 c3calculat .
Deci blocul a fost transmis eronat. Eroarea este n secvena s 2 pe poziia 3.
45
Reprezentarea informaiei n calculatoarele numerice
46
Introducere n tiina sistemelor i a calculatoarelor
T ( x) M ( x) R( x) M ( x) R( x)
= =
G ( x) G ( x) G ( x) G ( x)
i folosind relaia (1.24) se obine:
T ( x) R( x) R( x)
= C ( x) = C ( x) .
G ( x) G ( x) G ( x)
14 4244 3
=0
Polinomul T ( x) este divizibil cu G ( x) . Aceast proprietate este folosit
drept criteriu pentru detecia erorilor.
Fie mesajul recepionat T , cruia i se asociaz polinomul T ( x ) . Se poate
scrie c T ( x) = T ( x) E (x ) , unde E ( x) este polinomul erorilor. Aplicnd
criteriul de detecie a erorilor, obinem:
T ( x) T ( x) E ( x) E ( x)
= = C ( x) .
G ( x) G ( x) G ( x) G ( x)
Se observ c dac E (x) este multiplu al lui G ( x) , mesajul recepionat este
validat, dei conine erori. Dac E (x) nu este multiplu al lui G (x) , atunci
eroarea este sesizat.
Prin aceast metod sunt determinate toate pachetele de erori de lungime
mai mic dect gradul lui G ( x) + 1 . Prin pachet de erori se nelege o succesiune
de simboluri, corecte sau eronate, n care primul i ultimul simbol sunt eronate.
n transmisia datelor se folosesc trei polinoame generatoare, considerate
standarde internaionale:
CRC - 12 = x12 + x11 + x 3 + x 2 + x + 1 ,
CRC - 16 = x16 + x15 + x 2 + 1 ,
CRC - CCITT = x16 + x12 + x 5 + 1 .
Exemple:
1. S se determine mesajul transmis tiind c mesajul de transmis este
M = 1110101 i polinomul de generare este G ( x) = x 3 + x + 1 .
Rezolvare:
M ( x) = x 6 + x 5 + x 4 + x 2 + 1 ;
M ( x) = x 3 M ( x) , deoarece gradul lui G (x) este 3;
M ( x) = x 9 + x 8 + x 7 + x 5 + x 3 ;
se mparte M (x ) la G (x) :
47
Reprezentarea informaiei n calculatoarele numerice
x 9 + x8 + x 7 + x5 + x3 x3 + x + 1
x9 + x7 + x6 x6 + x5 + x3
x8 + x6 + x5 + x3
x8 + x6 + x5
x3
x3 + x + 1
x +1
Observaie. Adunarea i scderea n modulo 2 sunt echivalente.
Rezult c R( x) = x + 1 .
Polinomul transmis este T ( x) = M ( x) R ( x) :
T ( x) = x 9 + x 8 + x 7 + x 5 + x 3 + x + 1 .
Coeficienii acestui polinom reprezint mesajul ce se va transmite:
T = 1110101
1424 3 011
{ .
simboluri simboluri de
informationale control
48
p1B p2
B
a3
B
p4
B
a5
B a6
B a7
B
Introducere n tiina sistemelor i a calculatoarelor
n depistarea poziiei bitului eronat din cod, bitul de paritate p1 are ponderea 1,
bitul p2 are ponderea 2, iar bitul p4 are ponderea 4. Bitul eronat este determinat
prin sumarea ponderilor biilor de paritate pentru care paritatea calculat este
greit (nu este impar).
a) Compresia RLE
RLE (Run-Length Encoding) este un algoritm foarte eficient pentru
compresie cu aplicaii deosebite n grafica bitmap. Valoarea care se repet este
codificat prin numrul de apariii consecutive al valorii urmat de valoare.
Valoarea poate fi chiar un grup de octei).
49
Reprezentarea informaiei n calculatoarele numerice
b) Compresia LZW
Compresia LZW (Lempel-Ziv-Welch) a devenit foarte cunoscut datorit
utilizrii n formatele de fiiere de tip GIF (Graphical Interchange Format) i a
compresiei foarte bune a fiierelor de imagine. Accesul se realizeaz la nivel de
octet. Metoda a fost publicat n 1977 de ctre J. Ziv i A. Lempel i mbuntit
apoi de ctre T. Welch n 1984.
Principiul compresiei LZW este nlocuirea irurilor de intrare care se
repet prin coduri de n bii. Pentru aceasta se utilizeaz o tabel de iruri de
caractere, numit tabel de codificare sau tabel de cutare, care este o
coresponden ntre irurile de caractere i codurile de compresie. Tabela se
iniializeaz cu iruri de cte un caracter, avnd, iniial, un numr de intrri egal
cu numrul de caractere distincte din mesaj. Codul irului reprezint chiar
indexul n tabel. Dimensiunea tabelei se modific pe msur ce se parcurge
mesajul.
Paii algoritmului sunt:
se delimiteaz n mesaj un ir s de lungime maxim, astfel nct s se
potriveasc cu un ir existent n tabel;
se scrie codul irului s n fiierul de ieire (fiierul comprimat);
se genereaz un nou ir din irul s la care se adaug urmtorul caracter
din mesaj. Notm acest nou ir cu s ;
se scrie irul s n tabel, dndu-i-se un nou cod;
se reia de la primul pas, ncepnd din poziia ultimului caracter citit din
mesaj.
50
Introducere n tiina sistemelor i a calculatoarelor
a b b c d a b b d a a b b b c b b b
5
6
7
8
9
10
11
12
13
14
15
51
Reprezentarea informaiei n calculatoarele numerice
c) Codificarea Huffman
A fost introdus de David Huffman i este dependent de frecvena de
apariie a caracterelor ntr-un mesaj. Caracterele nu se mai reprezint pe acelai
numr de bii. Lungimea codului unui caracter este invers proporional cu
frecvena de apariie a caracterului n mesaj.
Codurile caracterelor nu sunt unice, dar respect regula prefixului: codul
oricrui caracter nu este prefix al codului altui caracter. Codificarea Huffman
determin codul optim, folosind un numr minim de bii. Pentru a determina
codurile caracterelor trebuie cunoscute frecvenele de apariie a caracterelor n
mesaj sau ponderile lor. Lungimea medie a unui mesaj se determin cu relaia:
l m = pi ni bii/caracter,
unde pi este ponderea caracterului i , ni este numrul de bii pe care se codific
caracterul i .
Metoda folosete o structur de date de tip arbore binar (exist un nod
rdcin i fiecare nod are cel mult doi fii: fiu stnga i fiu dreapta), n care
caracterele din mesaj sunt frunze.
Metoda de codificare presupune urmtorii pai:
se stabilete frecvena de apariie pi a fiecrui caracter din mesaj;
se nlocuiesc dou caractere, cu ponderea minim, cu un caracter fictiv,
avnd ca pondere suma ponderilor celor dou caractere. Caracterul nou
creat introduce un nod n arbore, avnd ca fii cele dou caractere;
se continu recursiv procesul pn cnd n lista de caractere rmne un
singur caracter.
Dup construirea arborelui, codul unui caracter se determin traversnd
arborele de la rdcin pn la frunza care conine acel caracter. De-a lungul cii
parcurse, pentru fiecare fiu stnga se adaug un bit 0 la codul caracterului, iar
pentru fiecare fiu dreapta se adaug un bit 1. Codul astfel obinut nu este unic,
deoarece convenia de a aduga la codul caracterului un bit 0 sau 1, dup cum se
parcurge fiul stnga, respectiv dreapta al nodului fictiv, poate fi inversat.
Totui, numrul de bii pe care se codific fiecare caracter din mesaj este unic.
Exemplu: Considerm un mesaj format din cinci caractere, notate simbolic cu:
a, b, c, d, e. Ponderile caracterelor din mesaj sunt: 0.12, 0.4, 0.15, 0.08 i 0.25.
Arborele care se construiete este:
d a c e b
0.08 0.12 0.15 0.25 0.4
x
0.2
y
0.35
z
52
Introducere n tiina sistemelor i a calculatoarelor
0.6
w
1
0 1
b 0 1
e 0 1
c 0 1
a d
caracter cod
b 0
e 10
c 110
a 1110
d 1111
d) Compresia JPEG
Standardul JPEG (Joint Photographic Experts Group) este folosit pentru
comprimarea imaginilor statice cu tonuri continue (de exemplu fotografii), cu
aplicaii n sistemele multimedia. n momentul de fa este unul dintre cele mai
ntlnite formate de fiiere grafice. Algoritmul JPEG realizeaz o compresie
foarte bun 20:1, ceea ce l impune n situaiile practice. O caracteristic a
standardului este c permite execuia unor transformri geometrice asupra
imaginii (de exemplu, rotaia), direct asupra matricei transformate, fr
regenerarea imaginii iniiale.
e) Compresia MPEG
Standardele MPEG (Motion Picture Experts Group), sunt algoritmi n
principal folosii pentru conversia video i audio (din 1993). n procesul de
codificare se execut o interclasare a pachetelor de date video i audio. n cadrul
fiierului, vor apare i informaii referitoare la timp, utile decodificatorului.
53
Reprezentarea informaiei n calculatoarele numerice
54
Introducere n tiina sistemelor i a calculatoarelor
Capitolul 2
55
Algebr logic. Circuite logice
x y x+y Simbol
(x U y sau x V y)
0 0 0 Funcia logic
0 1 1 f=x+y
1 0 1
1 1 1
x y xy
(x y sau x y)
Simbol
0 0 0 Funcia logic
0 1 0 f=xy
1 0 0
1 1 1
x x Funcia logic
0 1 f =x
1 0
56
Introducere n tiina sistemelor i a calculatoarelor
6. Teoremele complementrii:
a) principiul contradiciei x x = 0;
b) principiul terului exclus x + x = 1.
7. Teoremele de idempoten:
x + x = x;
xx = x.
8. Teoremele de absorbie:
x + (x y ) = x ;
x (x + y ) = x .
9. Comutativitatea:
x + y = y + x;
xy = yx.
10. Asociativitatea:
x + (y + z ) = (x + y ) + z;
x ( y z ) = (x y ) z .
11. Distributivitatea:
x (y + z ) = x y + x z;
x + y z = (x + y ) (x + z ) .
x + y = x y;
x y = x + y.
57
Algebr logic. Circuite logice
Funciile logice se pot reprezenta n cel puin trei moduri: sub form de
tabele de adevr, prin realizant sau printr-o expresie logic.
1) O funcie logic se definete sub forma unui tabel de adevr, care conine
valorile variabilelor n toate combinaiile posibile i valorile corespunztoare
ale funciei. Pentru n variabile logice, numrul de combinaii de valori
posibile este 2n. De pild, pentru 3 variabile exist 23=8 combinaii ca n
tabelul de mai jos:
x y z f(x,y,z)
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
La rndul su, funcia boolean este de fapt o variabil binar ale crei
valori depind de variabilele x, y, z. Variabilele x, y, z se numesc independente
(pot fi alese arbitrar), iar f(x,y,z) este variabil dependent de variabilele
independente.
58
Introducere n tiina sistemelor i a calculatoarelor
Dou funcii logice sunt egale dac n urma evalurii fiecrei funcii
pentru toate combinaiile posibile, se obin valori identice.
Exemple
Expresii echivalente
2) Definirea unei funcii logice prin realizant. n acest caz se precizeaz pentru
ce combinaii (exprimate n zecimal) ale variabilelor de intrare funcia ia
valoarea 1 sau 0. De exemplu, pentru
f(x,y,z)=R1(0,2,3,7),
59
Algebr logic. Circuite logice
Echivalent x y z f(x,y,z)
zecimal
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 0
7 1 1 1 1
3) Definirea unei funcii logice prin expresii logice (definire analitic). Orice
funcie logic
f:{0,1}x......x{0,1}{0,1},
poate fi exprimat printr-o expresie logic n care sunt utilizate toate variabilele
independente, legate ntre ele prin operatorii de adunare logic, produs logic i
negare. De exemplu, funcia logic definit anterior prin realizant n 1,
f(x,y,z)=R1(0,2,3,7), se poate exprima analitic sub forma:
f ( x , y, z ) = x y z + x y z + x y z + x y z .
x + x =1
.
xx =0
Dac dou funcii sunt egale, atunci i dualele lor sunt egale.
Observaii:
1. Modurile de definiie prin tabel i prin realizant sunt unice. Definirea
analitic nu este unic i se pot gsi expresii logice echivalente, pe baza
proprietilor algebrei booleene.
2. Toate formele de definiie sunt echivalente.
3. Plecnd de la expresia unei funcii logice, aceasta poate fi adus la o
form mai simpl, mai compact, cu mai puine operaii logice sau n care
variabilele logice apar de mai puine ori. Acest procedeu se numete
minimizare i va fi prezentat n cele ce urmeaz.
Echiva- x y z f
lent x y z f 0 0 0 0
zecimal 0 0 1 0
0 0 0 0 0 0 1 0
1 0 0 1 0 0 1 1 1
3 0 1 1 1 1 0 0
5 1 0 1 1 1 0 1 1
6 1 1 0 0 1 1 0 0
1 1 1
f(x,y,z)=R1(3,5)+R(2,4,7),
f(x,y,z)=R0(0,1,6)+R(2,4,7).
Observaii:
1. Produsul logic a doi mintermi mi i mj, cu ij, ai unei funcii logice, este
egal cu 0. Astfel, calculm m 0 m1 = x y z x y z = x y (z z ) = 0 .
123
0
2. Suma logic a doi maxtermi Mi i Mj, cu ij, ai unei funcii logice, este
egal cu 1. Calculm M 0 + M1 = x + y + z + x + y + z = x + y + (z + z ) = 1 .
123
1
3. Pentru orice minterm sau maxterm exist relaiile m i = I M j respectiv
i j
M i = U m j . Pentru a demonstra mai uor aceste proprieti se consider
i j
mintermii i maxtermii doar pentru dou variabile independente, x i y.
62
Introducere n tiina sistemelor i a calculatoarelor
Echivalent
x y mi Mi
zecimal
0 0 0 m0 = x y M0 = x + y
1 0 1 m1 = x y M1 = x + y
2 1 0 m2 = x y M2 = x + y
3 1 1 m3 = x y M3 = x + y
M1 M 2 M 3 = ( x + y) ( x + y) ( x + y) = ( x{
x + xy+ xy+ {
y y) ( x + y ) =
0 0
x y + x x y + x y + x y y = x y = m0 .
123 123
0 0
m1 + m 2 + m 3 = x y + x y + x y = x y + x y + x y + x y =
y (1
x2 x ) + x (y + y ) = x + y = M 0 .
+3
123
1 1
63
Algebr logic. Circuite logice
yj=fj(x1,. . .,xn) .
Att intrrile ct i ieirile sunt mrimi binare ce fac parte din mulimea
binar M={0,1} i se materializeaz prin prezena unor impulsuri de tensiune
sau de curent. Funciile fj poart numele de funcii de rspuns sau de transfer ale
circuitului. Circuitele logice sunt combinaionale sau secveniale i vor fi
descrise n cele ce urmeaz. Deocamdat ne oprim asupra porilor logice, care
reprezint cele mai simple circuite combinaionale i care sunt asociate unor
funcii logice importante.
n cazul circuitelor poart, ieirea la un moment dat nu depinde de starea
anterioar a circuitului ci numai de combinaia existent la un moment dat ntre
variabilele de intrare. Pe lng porile logice fundamentale prezentate deja
(AND, OR, NOT), exist cteva pori importante care materializeaz funcii
logice des ntlnite n analiza i sinteza circuitelor logice.
n cele ce urmeaz sunt prezentate cteva funcii importante i porile
logice corespunztoare.
Vcc
R2 R4
R1
T3
T2
x
D3
T1
y f
T4
D1 D2
R3
Fig. 2.1. Schema electric a unei pori logice NAND, n tehnologie TTL
65
Algebr logic. Circuite logice
Funcia NOR
x y x+y Funcia logic (SHEFFER): f = x + y
0 0 1
0 1 0
1 0 0
1 1 0
x y xy
0 0 1
0 1 0 f = x y = (x + y ) ( x + y ) = x y + x y
1 0 0
1 1 1
Se poate demonstra uor c x y = x y . Funcia COINCIDEN se bucur
de proprietile de asociativitate i comutativitate.
67
Algebr logic. Circuite logice
2 n 1 2 n 1
f ( x 0 , x1 ,...x n 1 ) = mi = mi ,
i=0 i=0
ceea ce sugereaz implementarea cu pori NAND, ca n figura de mai jos:
Definiie: Costul (C) unei funcii logice este egal cu numrul de intrri n
circuitele logice elementare ce realizeaz funcia dat.
68
Introducere n tiina sistemelor i a calculatoarelor
FCD = m1 + m 2 + m 3 = m1 m 2 m 3 = (x 2 x1 x 0 ) (x 2 x1 x 0 ) (x 2 x1 x 0 ) ,
69
Algebr logic. Circuite logice
Numrul de nivele este 2 iar costul este 20. Pentru aceast funcie
implementarea numai cu pori NOR este mai costisitoare dect cea cu pori
NAND, dar nu este o regul i n alte cazuri poate fi invers.
70
Introducere n tiina sistemelor i a calculatoarelor
Fig. 2.9. Implementarea formei FCD1 Fig. 2.10. Implementarea formei FCD2
C1=9, N1=2 C1=8, N1=3
71
Algebr logic. Circuite logice
(x 3 + x 2 ) (x1 x 0 ) + (x 3 + x 2 ) x1 x 0 = (x 3 + x 2 ) (x1 x 0 + x1 x 0 ) =
(1
x 3 + x 2 ) x 1 (x 0 + x 0 ) = x 3 x 2 x 1 .
424 3 1424 3
DeMorgan 1
f ( x 2 , x 1 , x 0 ) = x 2 x 1 x 0 + x 2 x 1 x 0 + x 2 x 1 x 0 + x 2 x1 x 0 =
x 2 x1 x 0 + x 2 x1 x 0 + x 2 x1 x 0 + x 2 x1 x 0 + x 2 x1 x 0 + x 2 x1 x 0 =
x 1 x 0 (x 2 + x 2 ) + x 2 x 0 (x 1 + x 1 ) + x 2 x 1 (x 0 + x 0 ) =
1424 3 1424 3 1424 3
1 1 1
x1 x 0 + x 2 x 0 + x 2 x1.
x n 1x n 2 L x1x 0
[x n 1 L x p ] ,
[x p 1 L x 0 ]
cu p=n/2 pentru n par i p=(n-1)/2 sau p=(n+1)/2 pentru n impar.
Metoda de minimizare const n parcurgerea urmtorilor pai:
1. Se construiete o matrice ce conine un numr de linii i coloane
[
determinat de partiia de variabile fixat: 2 k ,2 p , unde k reprezint ]
numrul de elemente din primul termen al partiiei iar p numrul de
elemente din al doilea termen al partiiei;
2. Pentru ordonarea liniilor i coloanelor se folosete codul Gray care are
proprietatea de adiacen. Adunnd dou conjuncii sau nmulind dou
disjuncii adiacente, dispare termenul care difer;
3. Se completeaz matricea cu valori de 1 (conjuncii) sau de 0 (disjuncii)
ale funciei n celule matricei, corespunztor combinaiilor variabilelor;
4. Se grupeaz celulele vecine n grupe ct mai mari, formate dintr-un numr
de elemente egal cu o putere a lui 2 (1, 2, 4, 8). Celule laterale care sunt
simetrice fa de o ax median imaginar sunt vecine;
72
Introducere n tiina sistemelor i a calculatoarelor
Observaii:
Un element poate face parte din mai multe grupe;
Fiecare grup trebuie s conin cel puin un element nou fa de celelalte
grupe;
Orice element aparine mcar unei grupe, chiar i numai de un element;
Variabilele independente se scriu conform regulilor de la funciile
canonice.
Exemple
IV
f ( x 3 , x 2 , x1 , x 0 ) = x 3 x 2 x1 x 0 + x 3 x1 x 0 + x 3 x1 x 0 + x 3 x 2 x 0 .
144244 3 14243 14243 14243
I II III IV
n acest caz, grupa I conine un singur element iar grupa IV conine dou
elemente simetrice fa de axa vertical median, elemente cu echivalenii
zecimali 8 i 10.
x1x0
00 01 11 10
x3x2
00
01 1 1
11 1 1
10 1 1 1
73
Algebr logic. Circuite logice
x1x0
00 01 11 10
x3x2
00 1 1 1
01 1
11
10
x1x0
00 01 11 10
x3x2
00 0 0
01 0 0
11 0 0
10 0 0
Elementele matricei se grupeaz cte patru, fiind simetrice dou cte dou fa
de axa vertical i cea orizontal. Funcia minimizat are forma
f ( x 3 , x 2 , x 1 , x 0 ) = (x 2 + x 0 ) (x 2 + x 0 ) .
77
Algebr logic. Circuite logice
x0 y0
. Circuit .
. .
. combinaional .
xn-1 ym-1
78
Introducere n tiina sistemelor i a calculatoarelor
x0 . y
. MUX
.
xn-1
. . .
s0 sm-1
Fig. 2.13. Schema bloc a unui multiplexor
s1 s0 y
0 0 x0
0 1 x1
1 0 x2
1 1 x3
. . .
s0 sm-1
Fig. 2.14. Schema bloc a unui demultiplexor
79
Algebr logic. Circuite logice
s1 s0 y0 y1 y2 y3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
A>B
A
COMP
A=B
B
A<B
a)
b)
Fig. 2.15. Schema bloc (a) i cea cu pori logice a unui comparator
x0 y0
. .
. DEC .
. .
xn-1 ym-1
x2 x1 x0 y7 y6 y5 y4 y3 y2 y1 y0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
x0 y0
. .
. COD .
. .
xm-1 yn-1
x2 x1 x0 y1 y0
0 0 0 0 0
1 0 0 0 1
0 1 0 1 0
0 0 1 1 1
81
Algebr logic. Circuite logice
Tin b3 b2 b1 b0 a3 a2 a1 a0
Tout c3 c2 c1 c0
Circuite PLA
PLA (Programable Logic Array) este un circuit combinaional avnd n
intrri de date (x0,x1,...xn-1) i m funcii de ieire (y0, y1,...ym-1). Intern, circuitul
conine un nivel de pori AND i un al doilea de pori OR. Porile AND pot
realiza orice produs ntre variabilele de intrare n form direct sau negat, iar
porile OR pot realiza orice sum logic ntre produsele generate de primul
nivel. Circuitul poate fi programat de ctre utilizator pentru a obine la ieirile
circuitului un set de funcii logice combinaionale.
82
Introducere n tiina sistemelor i a calculatoarelor
x0
.
y0
. .
. CLS .
xn-1
. ym-1
. .
Elemente de
. .
memorare
. .
Bistabilul RS asincron
Acest circuit este format din dou pori NAND, fiecare avnd ca una din
intrri ieirea celeilalte. Intrrile R (Reset) i S (Set) sunt active pe 0 iar
ieirea Q (respectiv Q ) poate lua una din dou valori logice stabile Q=1 ( Q =0)
sau Q=0 ( Q =1). Qt+1 reprezint starea ieirii Q la momentul urmtor, fa de
momentul curent t. Combinaia 00 la intrare nu respect definiia unui bistabil n
care ieirile Q i Q sunt complementare i de aceea este o combinaie interzis.
Combinaia 11 la intrare nu impune o stare anume ci pstreaz starea anterioar,
astfel nct ieirile reprezint o nedeterminare fa de intrare.
84
Introducere n tiina sistemelor i a calculatoarelor
Bistabilul RS sincron
Spre deosebire de bistabilul RS asincron, la bistabilul RS sincron pentru
controlul comutrii strii se utilizeaz un semnal de sincronizare care este
denumit semnal de ceas sau semnal de tact (T). Acesta este un tren de impulsuri
care se succed cu o perioad T i sunt obinute de la un oscilator, care marcheaz
timpul prin impulsuri de tact (fig. 2.23)
front
front palier descresctor
cresctor
85
Algebr logic. Circuite logice
T R S Q t +1 Q t +1
1 0 0 Qt Qt
1 0 1 0 1
1 1 0 1 0
1 1 1 nedeterminare
0 x x Qt Qt
Bistabilul RS master-slave
Un bistabil master-slave este compus din dou bistabile simple conectate
n cascad (fig. 2.25).
Bistabilul D
Bistabilul D (Delay) elimin starea de nedeterminare a bistabilului RS
sincron n care S=R=1. Bistabilul D transfer intrarea D sincron cu impulsul de
tact T
Bistabilul T
Acest bistabil are proprietatea c schimb starea la fiecare impuls de tact,
dac intrarea A este 1 logic. Dac A=0, starea bistabilului rmne neschimbat.
T A Q t + 1 Q t +1
0 x Qt Qt
1 0 Qt Qt
1 1 Qt Qt
Bistabilul JK
Acest bistabil elimin nedeterminarea existent la bistabilul RS, avnd
urmtorul tabel de adevr:
J K Q t +1
0 0 Qt
0 1 0
1 0 1
1 1 Qt
Registre
Registrele reprezint o categorie important de circuite secveniale. Un
registru pstreaz temporar o informaie codificat binar i este construit dintr-
un ansamblu de celule elementare de memorare. Numrul de bii ai informaiei
binare este egal cel al elementelor de memorie i se numete capacitatea
registrului sau lungimea cuvntului registru. Una din soluiile de implementare
const n utilizarea circuitelor bistabile conectate ntre ele ntr-o anumit
topologie. Fiecare bit bi al cuvntului registru este pstrat ntr-un bistabil Ri.
Bitul b0 este cel mai puin semnificativ iar bn-1 este cel mai semnificativ. n afar
de intrrile i ieirile de date, un registru conine anumite terminale pentru
controlul operaiilor ce se efectueaz asupra registrelor. De exemplu, momentul
ncrcrii n paralel a informaiei sau deplasarea acesteia se comand printr-un
semnal de tact, care se regsete la intrrile de ceas ale tuturor bistabilelor.
Asupra registrelor se pot efectua urmtoarele operaii:
88
Introducere n tiina sistemelor i a calculatoarelor
bk
Rn-1 R1 R0
bn-1 b1 b0
Rn-1 R1 R0
a) b)
89
Algebr logic. Circuite logice
a) b)
Fig. 2 32. Rotirea registrelor: a stnga, b - dreapta
Numrtoare
Numrtorul este un circuit logic secvenial care numr (contorizeaz)
impulsurile aplicate la intrare. La fiecare impuls aplicat, fiecare bistabil i
modific starea conform conveniei de numrare. Numrtoarele se clasific
funcie de urmtoarele caracteristici:
Modul de codificare a informaiei: binar, binar-zecimal, exces 3, Gray;
Modul de comutare a bistabilelor: sincron (bistabilele ce compun
numrtorul basculeaz simultan funcie de semnalul de tact i de
informaiile aplicate la intrare), asincron (informaia se propag spre
ieire pas cu pas);
Sensul de numrare: direct, invers, reversibil (numr nainte i
napoi), ciclic.
Numrul de stri distincte ale unui numrtor se numete modul de
numrare i se noteaz cu c. Pentru a determina numrul de bistabile, n,
necesare realizrii unui numrtor se utilizeaz relaia 2 n c .
Funcionarea unui numrtor se poate ilustra prin graful strilor n care:
ntre dou noduri exist un singur arc de cerc;
Starea circuitului este reprezentat prin ieirile elementelor bistabile;
Numrtorul primete un semnal de ceas pe baza cruia are loc tranziia
dintr-o stare n alta.
Un numrtor se realizeaz simplu prin utilizarea unor bistabile de tip JK.
Ieirea unui bistabil se conecteaz la intrarea de tact a urmtorului, astfel c
apare o ntrziere succesiv pentru fiecare impuls numrat.
90
Introducere n tiina sistemelor i a calculatoarelor
Capitolul 3
Memorie
Dispozitive
I/O
91
Arhitectura unui sistem de calcul secvenial
92
Introducere n tiina sistemelor i a calculatoarelor
Cele mai multe sisteme de calcul actuale, din punct de vedere funcional,
conin apte blocuri componente prezentate n figura 3.2.
comenzi de transfer
adrese
instruciuni rezultate
instruciuni i
DPI/ DP/O
date iniiale
Fig. 3.2 Structura funcional a unui sistem de calcul
Modul de funcionare
Datele iniiale ce trebuie prelucrate i programul constituit din instruciuni
se introduc n sistemul de calcul prin intermediul unor dispozitive periferice de
intrare, DPI/. Prin intermediul canalelor de intrare/ieire att datele ct i
instruciunile programului sunt transferate n memoria intern a sistemului de
calcul, sub form binar, n locaii de memorie identificabile prin adresele lor. n
continuare, fiecare instruciune este trimis la UCC, care o interpreteaz i emite
comenzi ctre:
- memorie prin care se va solicit ca anumite date, localizate prin adresele la
care sunt memorate, s fie transferate ctre UAL pentru execuia anumitor
operaii; dup efectuarea operaiei se va specifica adresa din memorie unde se va
depune rezultatul operaiei efectuate de UAL;
- UAL, creia i se solicit execuia operaiei specificate prin instruciune;
- canalele de I/O n vederea prelucrrii altor date i instruciuni de la
dispozitivele periferice de intrare DPI/ sau nceperea transferului rezultatelor din
memorie ctre dispozitivele periferice de ieire.
Dup terminarea execuiei operaiilor solicitate, rezultatele memorate la
anumite adrese din memorie sunt transferate prin intermediul canalelor de I/O
ctre DP/O, n vederea vizualizrii rezultatelor prelucrrii, respectiv ctre
memoria extern, pentru arhivarea datelor i programelor, n scopul reutilizrii
lor.
coninut
adresa
n locaii de meorie
cuvnt memorie
95
Arhitectura unui sistem de calcul secvenial
96
Introducere n tiina sistemelor i a calculatoarelor
Locaiile de memorie pot fi organizate liniar (fig. 3.4a), cnd fiecare linie
conine o locaie, sau matriceal (fig. 3.4b), cnd fiecare element de matrice
conine o locaie.
coloane
adrese locaii 0 1 c-1
0 bm-1 b1 b0 0
1 linii 1
2 2
n-1 l-1
locaie bm-1 b1 b0
a) b)
Fig.3.4 Organizarea locaiilor de memorie: a) liniar, b) matriceal
La organizarea matriceal adresa unei locaii este format din adresa de linie i
adresa de coloan. n general, adresa unei locaii este format prin concatenarea
codurilor binare ale celor dou tipuri de adrese.
O locaie de memorie are o anumit capacitate de stocare dat de numrul
de bii ai locaiei de memorie. Capacitatea total a unui circuit de memorie se
obine nmulind numrul total de locaii de memorie cu capacitatea unei locaii.
Capacitatea unei memorii se poate exprima i n numrul de cuvinte de
memorie: 256 bii (cuvntul este un bit), 16 kilobii sau 16 kb, 32 kilooctei (ko)
sau 32 kB (kiloBytes) (cuvntul este un octet).
Dispozitivele de memorie se folosesc la stocarea sau extragerea de
informaie. Prin urmare, operaiile de baz realizate cu circuitele de memorie
sunt: citirea i scrierea. n plus, exist memorii care pot fi programate i
memorii la care informaia trebuie renscris pentru a nu se pierde, adic trebuie
realizat regenerarea.
Scrierea reprezint operaia prin care, precizndu-se o anumit adres de
locaie, se depune o informaie n memorie. Citirea reprezint operaia prin care
se regsete, pe baza unei adrese, o informaie stocat anterior ntr-o anumit
locaie de memorie. Informaia de adres este binar. Lungimea acestui cuvnt
de adres este funcie de numrul de locaii. Dac notm cu n numrul de locaii
de memorie, atunci lungimea cuvntului de adres (n binar), l , este cel mai mic
numr natural care satisface relaia:
l log 2 n .
De exemplu, dac dispunem de un circuit de memorie cu n = 1024 = 210 locaii
de memorie, atunci lungimea cuvntului de adres este l = log 2 1024 = 10 .
97
Arhitectura unui sistem de calcul secvenial
linii de adres m
Memorie
p linii de date
linii de control
A0
linii de A1 D0
adres D1
A9 Memorie linii de
1kB date
R /W D7
linii de
control
CS
Fig. 3.6 Conexiunile unui circuit de memorie de 1kB
98
Introducere n tiina sistemelor i a calculatoarelor
99
Arhitectura unui sistem de calcul secvenial
100
Introducere n tiina sistemelor i a calculatoarelor
A0 cuvnt 0
A1 cuvnt 1
Dec.
Adr. celul de bit
Al-1
cuvnt 2l 1
CS Logic de
PROG Amplificatoare date
control
OE
Dm-1 Dm-2 D1 D0
Fig. 3.7 Schema bloc a unei memorii de tip ROM
T WL
Vcc
WL T1
T F
DL DL
DL
T2
a) b) c)
Fig. 3.8 Structura de principiu a unei celule de memorie
102
Introducere n tiina sistemelor i a calculatoarelor
A0 0
A1 1
Dec. Matrice de celule bit
Adr.
Al-1 2l 1
Amplificare Amplificare
la scriere la citire
m m
CS Logic de
Circuite de intrare/ieire
control
R /W
Dm-1 Dm-2 D1 D0
Fig. 3.9 Schema bloc intern a unui circuit de memorie RAM static
WL/W
WL/R
T1 T2
T3
C
DL
n principiu, celula de bit este un condensator care are dou stri: ncrcat
cu sarcin electric i descrcat. O stare se codific prin 1 logic, iar cealalt prin
0 logic. De fapt, celula de bit are ca suport fizic starea de funcionare a unui
103
Arhitectura unui sistem de calcul secvenial
0 1 2 2l/2-1
0
1
RAS Registru l/2 Dec. 2
adres adr. M
linie linie
2l/2-1
A0
A1 l/2 Registru l/2 Mux/Dmux R /W
adres 2 -1:1/1: 2l/2-1
l/2
Al/2-1 coloan
CAS OD ID
106
Introducere n tiina sistemelor i a calculatoarelor
CKE Contor
CLK Bloc regenerare
WE\ de
CS\ control
M
CAS\ U Reg.
adr. Blocuri
RAS\ X
+ de
dec. memorie
A.
ie. Date
Poart
Ctrl. intrare/
blo- ieire
Adr. A. A.
curi
adr. int.
Ctrl. R.
reg. col.
col.
107
Arhitectura unui sistem de calcul secvenial
Segmentarea
Segmentarea presupune divizarea logic a memoriei n zone compacte
denumite segmente de memorie. Acestea pot s aib lungime fix sau variabil.
Segmentele pot s ocupe poziii disjuncte n spaiul de adresare sau se pot
suprapune parial sau total. Adresarea unei locaii de memorie se face prin
specificarea adresei segmentului i a adresei relative n cadrul segmentului (fig.
3.13). Aceast modalitate de adresare ofer urmtoarele avantaje:
- accesul unui program sau a unui task (a unei sarcini) este limitat numai la
locaiile de memorie coninute n segmentele care i-au fost alocate;
- se pot separa zonele de memorie n funcie de destinaia acestora: cod (codul
executabil al instruciunilor), date, stiv;
- specificarea adresei relative n cadrul segmentului necesit un numr mai mic
de bii, ceea ce duce implicit la reducerea lungimii instruciunilor;
- segmentele de program pot fi amplasate n diverse locuri ale spaiului de
adresare sau pot fi relocate (se ajusteaz coninutul cmpurilor de adres
dependente de o adres de baz), cu modificri minore n cadrul programului.
108
Introducere n tiina sistemelor i a calculatoarelor
Adresa de segment
Un segment logic poate s aib mai multe atribute, cum ar fi: adresa de
nceput a segmentului, lungimea, drepturile de acces la segment, etc. Cu ajutorul
atributelor asociate unui segment se controleaz accesul la locaiile segmentului.
Se pot verifica tipurile de operaii permise (citire, citire/scriere), nivelul de
prioritate solicitat, depirea limitei maxime a segmentului.
Implementarea efectiv a segmentrii depinde de suportul hardware oferit
de unitatea central de prelucrare (procesor). n capitolul 4 se va prezenta modul
de soluionare al segmentrii la procesoarele familiei Intel x86. Amplasarea
segmentelor n spaiul de adresare disponibil i ncrcarea acestora n memoria
principal este realizat de sistemul de operare.
Paginarea
Scopul principal al paginrii este de a extinde memoria intern a unui
sistem de calcul peste memoria extern. n acest scop att memoria intern ct i
cea extern este divizat logic n blocuri de lungime fix, numite pagini.
Concret, memoria intern este divizat n pagini de memorie de o anumit
lungime. Fiecare program ce urmeaz a fi ncrcat n memoria intern din
memoria extern, este fragmentat ntr-un numr de pagini de program (pagini)
de dimensiunea paginii de memorie intern. n timpul execuiei programului
paginile sunt ncrcate n memoria intern numai dac se solicit informaii
coninute n acestea. Adresa absolut a unei locaii de memorie ntr-o pagin se
calculeaz pe baza adresei absolute a paginii de memorie i a adresei relative n
pagina de memorie. n acest fel spaiul efectiv necesar pentru execuia unui
program este mult mai mic.
Paginarea este realizat de sistemul de operare i mecanismul respectiv
este transparent pentru utilizator. O influen deosebit asupra eficienei
paginrii o are dimensiunea paginii de memorie. ncrcarea paginii n memoria
intern necesit un anumit timp, denumit timp de penalizare. Timpul de
109
Arhitectura unui sistem de calcul secvenial
extragere depunere
Stivele de tip LIFO sunt denumite simplu stive. Relaia de ordine care
determin modul de acces la informaia dintr-o stiv este de tip LIFO, deci
ultima informaie depus n stiv este prima extras (procesat sau servit).
Organizarea sub form de stiv presupune implementarea a dou operaii:
- o operaie de depunere a unei informaii n stiv, denumit PUSH;
- o operaie de extragere a unei informaii din stiv, denumit POP.
Stiva poate fi organizat n memoria fizic astfel nct dimensiunea ei s creasc
de la adrese mari spre adrese mici (fig.3.15) sau invers. De obicei, mecanismul
de acces la stiv este implementat prin hardware, existnd un registru n UCP
care conine adresa ultimei locaii ocupate n stiv.
110
Introducere n tiina sistemelor i a calculatoarelor
Memoria fizic
POP PUSH
adrese mici
vrful stivei
stiva
baza stivei
adrese mari
Memoria virtual
Memoria virtual este un concept arhitectural prin care memoria intern
este extins peste spaiul de adresare al memoriei externe. Memoria virtual se
poate implementa prin segmentare sau paginare. Aceste tehnici pot fi combinate
pentru extinderea virtual a spaiului de adresare. Mecanismul memoriei virtuale
este folosit mai ales n cazul sistemelor de operare multi-tasking i multi-
utilizator (de ex. Windows, Unix, etc.). Reamintim c n cazul ambelor tehnici
(segmentare sau paginare) memoria intern i extern este divizat n blocuri. La
execuia unui program se ncarc n memoria intern numai acele blocuri care
sunt necesare pentru execuie. Astfel spaiul ocupat efectiv de un program n
memoria intern este mult mai mic dect dimensiunile acestuia. n acest fel se
pot utiliza medii de programare a cror dimensiune depete cu mult
dimensiunea fizic a memoriei interne. De asemenea, pot fi ncrcate n
memoria intern mai multe programe sau taskuri.
111
Arhitectura unui sistem de calcul secvenial
Registre
Memoria secundar
Memoria cache
Memoria cache este o memorie RAM rapid de mic capacitate amplasat
ntre procesor i memoria principal (operativ), n scopul mbuntirii
performanelor unui sistem de calcul. Aceast memorie mai este numit i
memorie intermediar. Marea majoritate a operaiilor executate de procesor sunt
cu memoria intern, care este o memorie de capacitate mare dar cu o vitez de
lucru mai mic dect a procesorului. Pentru a nltura o parte din dezavantajele
acestui neajuns se utilizeaz o memorie foarte rapid, dar de capacitate mic, ca
un intermediar ntre procesor i memoria intern (fig. 3.17).
Din punct de vedere fizic, memoria cache poate fi plasat n interiorul sau
exteriorul procesorului. Se urmrete ca marea majoritate a operaiilor s fie
efectuate cu memoria cache. Prin urmare, n memoria cache sunt pstrate
instruciunile i datele care au cea mai mare probabilitate de a fi utilizate n
viitorul apropiat. n acest scop exist un dispozitiv care, pe baza unor algoritmi
de predicie, va extrage informaia din memoria intern i o va depune n
memoria cache. Dac informaia cutat nu este n memoria cache, atunci va fi
cutat n memoria intern.
Algoritmii de predicie pe baza crora informaia din memoria intern este
adus n memoria cache pot fi de dou feluri:
- algoritmi care se bazeaz pe principiul localizrii: se ncarc n memoria
cache informaia care se afl n jurul adresei la care s-a fcut ultimul acces;
112
Introducere n tiina sistemelor i a calculatoarelor
Procesor Memoria
(UCP) principal
Memoria Magistral
cache sistem
fizice sunt separate ntre ele printr-un spaiu numit gap, care are lungime
constant. Densitatea de nregistrare se refer la numrul de cadre pe unitatea de
msur inch (1 inch = 2,54 cm) i este exprimat n octei/inch bpi (bytes per
inch). Valori tipice ale densitii de nregistrare sunt 1600 bpi, 6250 bpi, 12500
bpi.
Unitatea de band magnetic este un dispozitiv periferic cu acces
secvenial. Dac banda este poziionat la nceput, pentru a citi nregistrarea cu
numrul de ordine n , capetele de citire/scriere trebuie s parcurg toate cele
n 1 nregistrri de la nceputul benzii pn n poziia n . Din acest motiv banda
magnetic este un dispozitiv lent, dar cu o mare capacitate de nregistrare i o
bun fiabilitate. Se utilizeaz n special pentru pstrarea unor arhive de date (de
exemplu, salvrile de date, care se fac periodic n sistemele informatice).
115
Arhitectura unui sistem de calcul secvenial
sector
CRC
date
gap
preambul
CRC
cap de
date citire/scriere
sector
sensul de rotaie
direcia de
micare
cilindru
116
Introducere n tiina sistemelor i a calculatoarelor
- sensul transferului.
Timpul n care capetele de citire/scriere ajung la o pist se numete timp
de cutare. Timpii medii de cutare (ntre piste alese aleator) se situeaz n
intervalul 5-15 msec, iar cutrile ntre piste adiacente dureaz sub 1 msec.
Cutarea unui sector pe pista curent se numete ntrzierea de rotaie. Acest
timp poate varia ntre 0 (dac sectorul este chiar n dreptul capului) i timpul
necesar unei rotaii complete (dac sectorul tocmai a trecut prin dreptul capului
de citire/scriere). Majoritatea discurilor se rotesc la 3600, 5400 sau 7200
rotaii/minut. Timpul de acces la disc este dat de timpul de cutare, ntrzierea
de rotaie i timpul de transfer de date.
Pentru mrirea vitezei de citire sau scriere a datelor, discurile magnetice
au o memorie rapid (de exemplu 2Mb). Aceast memorie este similar cu
memoria cache (de altfel se mai numete i memorie cache a hard discului).
Discul flexibil sau discheta este constituit dintr-un singur platan de diferite
dimensiuni. Suportul informaiei este un disc flexibil realizat din mylar i
acoperit cu un material magnetic. Spre deosebire de discul dur, capetele de
citire/scriere sunt n contact permanent cu suprafaa discului, n timpul
operaiilor de citire sau scriere. Scrierea i citirea prin contact direct permite o
densitate mai mare de nregistrare, dar viteze de transfer mici, fiabilitate redus
i un timp de exploatare mai scurt.
Discurile optice reprezint o tehnologie nou fiind tot mai mult utilizate
ca memorie extern n ultimul timp. Aceste memorii folosesc pentru citirea i
scrierea informaiei fenomene electro-optice. Avantajul este acela al unei
capaciti de stocare de 102 pn la 104 ori mai mare dect capacitatea
suporturilor magnetice.
Dintre dispozitivele existente care folosesc aceste principiu amintim:
discurile CD-ROM, discurile CD-R, discurile CD-RW i discurile DVD.
Discurile CD-ROM (Compact Disc Read Only Memory) sunt discuri pe
care informaia este nregistrat n momentul fabricaiei lor, accesul la
informaie fiind doar pentru citire. Principiul de construcie este relativ simplu.
Cu ajutorul unui fascicul laser se fac guri (caviti) mici (pits), al cror
diametru este sub 1 micron, ntr-un disc matri. Zonele nearse dintre caviti se
numesc soluri (lands). Conform matriei se fac apoi copii din plastic. Discurile
din plastic (policarburi) sunt acoperite cu un strat subire din aluminiu
reflectorizant, acoperit cu un lac protector (vezi structura unui CD-R, fig. 3.22).
Citirea se face tot cu ajutorul unui fascicul laser, dar de putere mai mic. Un
detector msoar energia fasciculului laser reflectat, care este diferit dup cum
fasciculul laser este trimis pe o cavitate sau nu.
Cavitile i solurile sunt dispuse ntr-o spiral continu care pornete din
centrul discului (fig. 3.21). Viteza de citire a informaiei trebuie meninut
117
Arhitectura unui sistem de calcul secvenial
constant. Prin urmare, viteza de rotaie a CD-ului trebuie redus continuu odat
cu deplasarea capului de citire dinspre interior spre exterior.
spiral pe care
sunt nregistrate cavitate
datele
sol (zon
nears)
bloc de
date
118
Introducere n tiina sistemelor i a calculatoarelor
etichet
strat de lac protector strat reflectorizant
strat policarbonat
lentile
fotodetector prism
diod cu laser n
infrarou
119
Arhitectura unui sistem de calcul secvenial
UCP
GT GF RI
DI + BCC NP
UCC RS
UAL
RG
A
R1 R2 RN
Magistrala sistem
120
Introducere n tiina sistemelor i a calculatoarelor
R1 R2 R3 R1 R2 R3
R4 R5 R6 R4 R5 R6
a) b)
Fig. 3.24 a) conectare direct ntre registre, b) conectare prin magistral
Primul tip de organizare permite transferul simultan al datelor ntre mai multe
registre, n timp ce al doilea tip permite ca la un moment dat s se poat realiza
un singur transfer, transfer ce duce la ocuparea magistralei interne de date.
n mod uzual, n cadrul registrelor generale exist un registru numit
acumulator (A), specializat n operaii ale unitii aritmetico-logice. Acest
registru are rolul de a stoca unul din operanzii implicai n execuia unei operaii
aritmetico-logice i tot n el este stocat rezultatul operaiei.
La fel ca i locaiile de memorie, registrele generale sunt identificate n
codul instruciunii printr-un cod de adres registru. Spre deosebire de locaiile
din memoria principal, unde la un moment dat se permite accesul la o singur
locaie, registrele generale pot fi accesate simultan.
121
Arhitectura unui sistem de calcul secvenial
n n
R A
n n
n
UAL
122
Introducere n tiina sistemelor i a calculatoarelor
Bn-1 An-1 B1 A1 B0 A0
Tn-1 Tn-2 T1 T0
n 1 1 0
Sn-1 S1 S0
Fig. 3.26 Schema bloc a unui sumator paralel pe n bii
M1 M2 M3
extragere cod citire din scriere n
instruciune memorie memorie
ciclul instruciune
125
Arhitectura unui sistem de calcul secvenial
Unitatea de extragere P1 1 2 3 4 5 6 7 8
P1 P2 1 2 3 4 5 6 7
instruciune
P3 1 2 3 4 5 6
Unitatea de analiz P4 1 2 3 4 5
P2 P5 1 2 3 4
instruciune
b)
Unitatea de calcul a
P3 adresei a1 b1
a2 b2
Unitatea de execuie UAL
P4 instruciune
c1
an bn c2
Unitatea de extragere
P5 date
UAL
cn
a) c)
Fig. 3.29 a) Structura unei maini pipeline cu cinci uniti de
prelucrare. b) Starea fiecrei uniti de execuie n timp.
c) Prelucrarea paralel a vectorilor a i b , rezultatul fiind vectorul c
127
Arhitectura unui sistem de calcul secvenial
a) COP
b) COP Adresa
128
Introducere n tiina sistemelor i a calculatoarelor
130
Introducere n tiina sistemelor i a calculatoarelor
131
Arhitectura unui sistem de calcul secvenial
Magistral de adrese
Magistral de date
Magistral de comenzi
Dispozitiv de
Bloc de selecie a
(decodificator)
comand
datelor
Registre de Registre
comenzi de stare Registru Registru
de ieire de intrare
Adaptor de semnale
Interfa
Echipament periferic
132
Introducere n tiina sistemelor i a calculatoarelor
Capitolul 4
133
Uniti centrale de prelucrare de tip microprocesor
Memorie
ROM
Magistral Magistral
extern de extern de
date adrese
Memorie
RAM
n - bii m - bii
Buffer de Buffer de
intrare/ieire adresare
Magistral intern Magistral intern
de date n-bii de adrese m-bii
Reg. ind. de
condiii
Reg. de Numrtor de
instruciuni adrese PC
COP Adr.
operand
UAL
Decodificator
instruciuni
Reg. Clock
acumulator Blocul circ.
Semnale de comand
de comand
trimise/primite la/de la
elementele de
direcionare
MICROPROCESOR
Registrul de instruciuni
Dup ce un cuvnt instruciune este adus din memorie prin bufer-ul de I/O
pe magistrala intern a microprocesorului, o copie a cestui cuvnt va fi nscris
n registrul de instruciuni. Registrul RI pstreaz codul instruciunii (sau primul
cuvnt din codul instruciunii, cuvnt ce conine codul operaiei COP sau
OPCODE) pe durata execuiei acesteia. Odat copiat instruciunea n RI,
coninutul numrtorului de adrese este automat incrementat cu o unitate,
(PC)+1. n capitolul 5 s-a artat c instruciunea poate fi divizat n dou
cmpuri: cmpul codului operaiei COP i cmpul operandului sau adresei
operandului. Biii din codul operaiei se aplic decodificatorului de instruciuni,
care, prin blocul circuitelor de comand, va genera toate semnalele de comand
necesare execuiei instruciunii reprezentate de codul operaiei. Cmpul adresa
operandului se aplic buffer-ului de adrese pentru formarea adresei din memorie
unde se afl operandul necesar operaiei specificate de COP.
Registrul acumulator A
Este registrul din structura microprocesorului cu cea mai frecvent
utilizare. Acest registru este conectat la magistrala intern de date i la UAL.
Pentru structura de microprocesor cu un acumulator, cnd se proceseaz dou
cuvinte, O1 i O2 , la nceput cuvntul O1 se afl n acumulator, iar dup
procesare rezultatul operaiei dintre O1 i O2 este trecut din UAL tot n
136
Introducere n tiina sistemelor i a calculatoarelor
137
Uniti centrale de prelucrare de tip microprocesor
EU BIU
Mag. adrese 20 bii
AH AL Sumator
BH BL 16 bii
CH CL
DH DL CS
SI DS
DI ES
BP SS
SP IP
ca pini de date. Folosirea acelorai pini pentru adrese i date reduce numrul de
pini ai microprocesorului, dar acest lucru nseamn de fapt o multiplexare n
timp a datelor i adreselor, ceea ce duce la o ncetinire a transferurilor de date.
Arhitectura intern a procesorului I8086 este organizat n jurul unei
magistrale i cuprinde dou uniti de prelucrare (fig. 4.3):
a) - unitatea de execuie EU (Execution Unit) care realizeaz execuia
propriu-zis a instruciunilor;
b) - unitatea de interfa cu magistrala extern BIU (Bus Interface Unit) care
se ocup cu transferul de informaii (date i instruciuni) ntre procesor i
magistrala extern.
a) Unitatea de execuie
Memoria
00000H
(SP)
stiva
baza stivei
FFFFFH
Fig. 4.4 Organizarea stivei la microprocesorul I8086
Registrul de stare
Registrul de stare sau registrul indicatorilor de condiii (flags) are rolul de
a caracteriza un rezultat obinut n urma unei prelucrri logice sau aritmetice. De
asemenea, existena acestui registru permite stabilirea unor condiii de
funcionare a microprocesorului. Din acest motiv acest registru mai este denumit
142
Introducere n tiina sistemelor i a calculatoarelor
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
O D I T S Z A P C
143
Uniti centrale de prelucrare de tip microprocesor
exist transport dinspre MSB sau invers. n cazul scderii este setat dac exist
un mprumut nspre MSB i nu exist mprumut dinspre MSB sau invers.
16 bii
Adresa efectiv 1 2 3 4 H
(offset)
+ 4 bii
Adresa de segment 1 2 0 0 H
16 bii
Adresa fizic 1 3 2 3 4 H
20 bii
Fig. 4.6 Formarea adresei fizice
145
Uniti centrale de prelucrare de tip microprocesor
Memorie
00000h
CS10h
Segment 64 ko
cod
DS10h
Segment
64 ko
date
Segment
64 ko
stiv
SS10h
ES10h
Extrasegment 64 ko
FFFFFh
Fig. 4.7 Zonele de segment n memorie
146
Introducere n tiina sistemelor i a calculatoarelor
Memorie
Program
Segment de cod 1
Prima adres
multiplu de 16
Segment de cod 2
dup sfritul
programului
1) Adresarea imediat
Exemplu:
MOV AX, 2791h ;operandul 2791h va fi ncrcat n registrul AX
MOV BL, 13h ;operandul este octetul cu valoarea 13h, care
;se ncarc n registrul BL.
Mod de adresare
imediat
AX 2791
2) Adresarea direct
Memorie
Mod de adresare
direct Adr. segment+AE Operand
Exemple:
1. MOV AX, [2791] ;depune n registrul AX valoarea care se gsete
;n memorie la adresa DS:2791.
Memorie
8 bii 8 bii 16 bii 00000h
Cod operaie Mod R/M 2791
AX 35A3
FFFFFh
3) Adresarea registru
150
Introducere n tiina sistemelor i a calculatoarelor
Exemplu:
MOV AX, BX ;AX (BX) - valoarea aflat n registrul BX este
;copiat n registrul AX.
4) Adresarea indirect
Memorie
Adr1 Adr2
Mod de adresare
indirect
Adr2 Operand
Reg Operand
151
Uniti centrale de prelucrare de tip microprocesor
Memorie
8 bii 8 bii
Cod operaie Mod R/M
BX
BP AE
Operand
SI
SP
Exemplu:
MOV AX, [BX] ;AX (DS:BX) n reg. AX se ncarc valoarea ce se
;afl n memorie la adresa dat de coninutul reg. DS i
;de valoarea din reg. BX.
BX 1249 Memorie
00000h
Cod operaie Mod R/M
AX 6142 FFFFFh
5) Adresarea indexat
Memorie
AE
Registru index + Operand
153
Uniti centrale de prelucrare de tip microprocesor
Memorie
00000h
8 bii 8 bii 16 bii
Cod operaie Mod R/M constant
Registre SI AE
+ Operand
index DI
FFFFFh
Exemple:
1. MOV AX, 47h [SI] ;coninutul registrului index SI este adunat cu
;47h obinndu-se adresa efectiv, dup care
;coninutul de la aceast adres trece n registrul
;AX (fig. 4.17).
Memorie
00000h
COP ModR/M 47h
AE
Registrul 44C7 (DS) 10h+44C7 678Ah
4480h +
index SI
FFFFFh
AX 678Ah
154
Introducere n tiina sistemelor i a calculatoarelor
6) Adresarea bazat
Memorie
Cod operaie Mod R/M deplasament
AE
Registru baz + Operand
Memorie
00000h
8 bii 8 bii 16 bii
Cod operaie Mod R/M deplasament
Registre BX AE
+ Operand
baz BP
FFFFFh
155
Uniti centrale de prelucrare de tip microprocesor
Exemple:
1. MOV AX, varA1 ;adresa cuvntului ce se ncarc n AX se
;calculeaz la 8086 ca suma dintre
;registrul baz implicit DS nmulit cu
;10h i adresa variabilei varA1.
;Deci (DS)10h + offset varA1.
7) Adresarea combinat
Memorie
8 bii 8 bii 16 bii 00000h
Cod operaie Mod R/M deplasament
Registre BX
baz +
BP
Registre SI AE
+ Operand
index DI
FFFFFh
Fig. 4.20 Adresarea bazat indexat la I8086
156
Introducere n tiina sistemelor i a calculatoarelor
Exemplu:
MOV AX, 76Ah [BX] [SI] ;adresare bazat indexat. Adresa
;operandului care se ncarc n AX este
;(DS)10h + (BX) + (SI) + 76Ah.
157
Uniti centrale de prelucrare de tip microprocesor
unde:
<etichet> este un identificator format din maximum 31 de caractere (litere,
cifre i caractere speciale - ?, $, _,,.) din care primul este o liter
sau un caracter special. Limbajul de asamblare utilizeaz nume
rezervate care nu pot fi utilizate ca etichete (mnemonice,
pseudoinstruciuni, operatori, registre, ?, $). Orice etichet are
asociat o valoare reprezentnd adresa relativ n cadrul
segmentului din care face parte primul octet din instruciunea
etichetat;
<mnemonic> indic tipul instruciunii ntr-un limbaj apropiat celui natural;
<operanzi> este un cmp a crui existen i form depinde de tipul
instruciunii (instruciune cu doi operanzi separai prin virgul, cu
un operand sau fr nici un operand);
<comentariul> este text explicativ precedat de separatorul punct i virgul.
Exemplu:
MOV AX,0B2A2h ;AXB2A2
MOV AL,1Bh ;AL1B (AX conine B21Bh)
MOV BX,AX ;BXAX (AX i BX sunt identice)
Exemple:
1. MOV AX,1234h ;AX1234h
XCHG AL,AH ;AX3412h
2. Instruciunea
XCHG BX,AX
este echivalent cu secvena
MOV CX,AX AX 1
MOV AX,BX CX
2
MOV BX,CX BX 3
r16l[SS:SP]
SPSP+1
r16h[SS:SP]
SPSP+1
160
Introducere n tiina sistemelor i a calculatoarelor
.model small
.stack
.code
MOV AX,11AAh
MOV BX,0BB22h
MOV CX,0CC33h
PUSH AX
PUSH BX
PUSH CX
DEC SP ; SPSP-1
POP AX
POP BX
INC SP ; SPSP+1
POP CX
MOV AL,88h
end
Memorie
DEC SP xx
POP AX
33
PUSH CX
CC
POP BX
22
PUSH BX
BB INC SP
AA
PUSH AX POP CX
11
SS:SP
SS:SP final
iniial
Fig. 4.21
161
Uniti centrale de prelucrare de tip microprocesor
Exemplu: secvena
PUSH AX
PUSH BX
POP AX
POP BX
este echivalent cu instruciunea
XCHG BX,AX
LES (Load Extended Data) este similar cu LDS dar se incarc registrul ES
n loc de DS.
S Z x A x P x C
162
Introducere n tiina sistemelor i a calculatoarelor
ADD - adunare
ADD d,s
cei doi octei mai puin semnificativi, un eventual transport fiind stocat n CF.
Apoi, se adun prile mai semnificative mpreun cu transportul rezultat.
INC d
Incrementeaz (adun 1) la destinaie.
SUB scdere
SUB d,s
Scade sursa din destinaie i depune rezultatul n destinaie: d d-s
DEC d
Decrementeaz (scade 1) din destinaie. Instruciunile INC i DEC sunt mai
rapide dect instruciunile ADD d,1 sau SUB d,1.
165
Uniti centrale de prelucrare de tip microprocesor
Exemple
166
Introducere n tiina sistemelor i a calculatoarelor
Exemplu:
AND AL,0h ;AL0h
AND AL,0FFh ;AL rmne neschimbat
Exemplu:
XOR d,s
Calculeaz SAU EXCLUSIV la nivel de bit a celor doi operanzi,
rezultatul fiind depus n destinaie: d ds. Modific indicatorii CF, OF, PF,
SF i ZF.
Exemplu:
NOT d
Realizeaz complementarea fa de 1 a operandului: dFFh-d (pe 8 bii)
sau dFFFFh-d (pe 16 bii). Nu sunt afectai indicatorii de condiii.
TEST d,s
Realizeaz operaii I logic pe bit ntre cei doi operanzi, fr a modifica
destinaia, dar modific indicatorii CF, OF, PF, SF i ZF.
CMP d,s
Compar aritmetic cei doi operanzi prin scdere (d-s), fr generarea
rezultatului. Poziioneaz doar indicatorii de condiii ca la operaia de scdere.
Modul de interpretare al operanzilor, cu sau fr semn, este foarte important n
cazul comparaiei a dou numere. Dac numerele sunt fr semn:
CF=0 i ZF=0 d>s
CF=0 i ZF=1 d=s
CF=1 i ZF=0 d<s
167
Uniti centrale de prelucrare de tip microprocesor
SF=OF d>s
ZF=1 d=s
SF OF d<s
MOV AX,0AA11H
MOV BX,0AA11H
MOV CX,0AA11H
NEG AX ;AX55EFh
NOT BX ;AX55EEh
XOR CX,0FFH ;CXAAEEh
AL 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0
se pierd
nainte de execuia instruciunii dup execuia instruciunii
CF0 (al treilea bit deplasat la stnga n afara registrului)
AL 1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0
se pierd
dup execuia instruciunii
nainte de execuia instruciunii
CF0 (al treilea bit deplasat la dreapta n afara registrului)
OF0 (11)
AL 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0
CF Registru
AL 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0
170
Introducere n tiina sistemelor i a calculatoarelor
poziia cea mai puin semnificativ (LSB) care este mutat n poziia cea mai
semnificativ (MSB). Operandul destinaie poate fi: r8, r16, m8 sau m16 iar nr are
aceeai semnificaie ca i la instruciunile de deplasare. Valoarea indicatorului
CF nu este parte a rezultatului dar recepioneaz o copie a bitului care a fost
deplasat de la un capt la cellalt. Pentru o singur rotaie (ROR 1), dac CF este
diferit de bitul de semn, atunci OF1. n celelalte cazuri OF este nedefinit.
Registru CF
1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0
CF Registru
Registru CF
171
Uniti centrale de prelucrare de tip microprocesor
Exemple:
1. Diferena dintre instruciunile SHR i SAR
JMP dest
unde dest reprezint eticheta prin care se specific locul primei instruciuni din
noua secven.
n cazul saltului intrasegment relativ, dest specific o valoare n
complement fa de 2, pe 8 bii, care se va aduna la valoarea din registrul IP.
Valoarea poate fi pozitiv sau negativ astfel nct salturile pot avea ca
destinaie o instruciune precedent sau urmtoare. Destinaia nu poate fi n
avans mai mare de 128 octei sau mai departe de 127 octei.
n cazul saltului intrasegment direct, dest este o valoare pe 16 bii care
reprezint offset-ul instruciunii destinaie n cadrul segmentului de cod curent
(IPdest).
n cazul saltului intersegment dest este o valoare pe 32 de bii i va
specifica att segmentul ct i offset-ul instruciunii destinaie (CS:IPdest).
Instruciunile de salt condiionat sunt cu adresare relativ, deci dest
reprezint o valoare pe 8 bii. n cazul n care se dorete efectuarea unui salt
condiionat pe o distan mai mare de 128 octei, trebuie s se utilizeze dou
instruciuni de salt: una de salt condiionat i una de salt necondiionat. n
principiu, o instruciune de salt condiionat are formatul:
Jcondiie dest.
Tabelul 4.1
Mnemonic Condiie
JZ, JE ZF=1
JL, JNGE SFOF (compar valori cu semn)
JLE, JNG ZF=1 sau SFOF (compar valori cu semn)
JB, JNAE, JC CF=1 (compar valori fr semn)
JBE, JNA CF=1 sau ZF=1 (compar valori fr semn)
JP, JPE PF=1
JO OF=1
JNE, JNZ ZF=1
JNL, JGE SF=OF (compar valori cu semn)
173
Uniti centrale de prelucrare de tip microprocesor
Tabelul 4.2
Se execut salt dac Reprezentare fr semn Reprezentare cu semn
d>s JA JG
d=s JE JE
ds JNE JNE
d<s JB JL
d<=s JBE JLE
d>=s JAE JGE
LOOP dest
unde dest specific o valoare n complement fa de 2, pe 8 bii, care se va
aduna la valoarea din registrul IP. Se repet secvena de instruciuni cuprins
ntre LOOP i adresa destinaie, pn cnd CX=0. La fiecare trecere prin bucl
se face decrementarea automat a registrului CX.
LOOPZ dest
Bucla este executat dac CX0 i ZF=1. Oprirea se face cnd fie CX=0
fie ZF=0.
LOOPNZ dest
Bucla este executat dac CX0 i ZF=0. Oprirea se face cnd fie CX=0
fie ZF=1.
174
Introducere n tiina sistemelor i a calculatoarelor
LOOPE dest
Funcioneaz ca i LOOPZ.
LOOPNE dest
Funcioneaz ca i LOOPNZ.
CALL dest,
SPSP-2
stiv IP
IP IP+dest16
SPSP-2
stiv CS
SPSP-2
stiv IP
175
Uniti centrale de prelucrare de tip microprocesor
IP dest16
CSadresa de segment
RET.
PUSHF
.
. sbr
salt
PUSH DX
CALL sbr
POP DX
. RET
. revenire
POPF
176
Introducere n tiina sistemelor i a calculatoarelor
sbr
salt PUSHF
CALL sbr .
PUSH DX
.....................
POP DX
.
revenire .
POPF
RET
IP
1 0000 .model small
2 0000 .stack
3 0000 .code
4 0000 B8 0011 mov ax,0011H
5 0003 BB 0002 mov bx,0002h
6 0006 E8 0002 call sbr ;apelul rutinei sbr, 0009h stiv
7 0009 48 dec ax ;AX050FH
8 000A 43 inc bx ;BX0003H
9
10 000B F7 E3 sbr: mul bx ;AX0022H
11 000D 03 C3 add ax,bx ;AX0024H
12 000F F6 E0 mul al ;AX0510H
13 0011 C3 ret ;0009h IP
14 end
177
Uniti centrale de prelucrare de tip microprocesor
IP
1 0000 .model small
2 0000 .stack
3 0000 .code
4 0000 B8 0A11 mov ax,0a11H
5 0003 BB 0B22 mov bx,0b22H
6 0006 50 push ax
7 0007 E8 0002 call sb ;apelul rutinei sb, adresa instruciunii
8 000A 40 inc ax ;de revenire 000AHstiv
9 000B 43 inc bx
10
11 000C 53 sb: push bx ;rutina, bxstiv
12 000D 44 inc sp ;incrementeaz SP
13 000E 5B pop bx ;BX0A0Bh
14 000F 50 push ax
15 0010 C3 ret
16 end
date1 segment
alfa db 1,2,3,4,5,6
lung equ this byte-alfa ;lungimea primului segment
date1 ends
date2 segment
beta db 1,2,3,5
date2 ends
180
Introducere n tiina sistemelor i a calculatoarelor
181
Uniti centrale de prelucrare de tip microprocesor
printr-o valoare (pe 8 bii) numit vector sau nivel de ntreruperi. Adresele de
nceput ale rutinelor de ntreruperi sunt memorate n aa numita tabel de
ntreruperi. Pentru fiecare ntrerupere sunt rezervai patru octei (dou cuvinte)
prin care se specific adresa de segment i adresa de offset, mai exact coninutul
registrelor CS i IP. Tabela este plasat la nceputul spaiului de memorie, 0h
3FFh (3FFh28*22-1, 28 256 nivele de ntreruperi, 22 4 octei pentru
fiecare rutin).
vector
ntreruperi
0 CS0
IP0
CS1
1 IP1
CS20
IP20
la dispoziia
programatorului
CS FF
IP FF
183
Uniti centrale de prelucrare de tip microprocesor
Magistral
Microprocesor
184
Introducere n tiina sistemelor i a calculatoarelor
185
Uniti centrale de prelucrare de tip microprocesor
Unitatea central controleaz toate cele trei faze prin intermediul unui
program denumit rutin de intrare/ieire. Dezavantajele transferului prin
program sunt: UC este ocupat n totalitate fr a putea efectua alte operaii n
paralel i durata minim a unui transfer este limitat.
Memorie
Microprocesor
Magistral de adrese
Magistral de date
Magistral de comenzi
HOLD DRQ
Controler Interfa de
DMA intrare/ieire
HLDA DACK
n cazul acestui tip de transfer unitatea central este foarte puin utilizat,
n comparaie cu celelalte metode de transfer. Majoritatea activitilor necesare
realizrii transferului sunt executate de ctre o alt unitate tip procesor.
Comunicaia ntre unitatea central i procesorul de intrare/ieire se realizeaz la
nivelul unor comenzi generale i a unor cuvinte de stare. Procesoarele de
intrare/ieire specializate au o structur intern cu memorie i magistral local
proprie, un set de instruciuni adaptate transferului de date, fiind compatibile cu
familia de procesoare pentru care au fost realizate (de exemplu circuitul I8089
pentru familia Intel).
Transferul prin procesor de intrare/ieire ofer o flexibilitate ridicat n
manipularea datelor i se recomand n cazul echipamentelor periferice
complexe, care au o vitez mare de transfer, ca de exemplu discul dur.
Dificultatea implementrii unei interfee cu procesor const n realizarea
protocolului de comunicaie ntre procesorul central i cel de intrare/ieire.
188
Introducere n tiina sistemelor i a calculatoarelor
Magistrala
Unitatea de Unitatea de extern
adresare interfa
Unitatea de Unitatea de
segmentare paginare
Unitatea de Unitatea de
execuie interfa
Unitatea de Unitatea de
decodificare prencrcare
190
Introducere n tiina sistemelor i a calculatoarelor
191
Uniti centrale de prelucrare de tip microprocesor
Rezervor de
instruciuni
De la BIU
L1 Cache Next_IP
Bloc de memorare
adrese de salt
Decodificator de
instruciuni Secveniator de
(trei module microinstr.
indepenedente)
194
Introducere n tiina sistemelor i a calculatoarelor
197
Uniti centrale de prelucrare de tip microprocesor
198
Introducere n tiina sistemelor i a calculatoarelor
BIBLIOGRAFIE
1. Ardelean I., Giuroiu H., Petrescu L.L., Circuite integrate MOS, Manual
de utilizare, Ed. Tehnic, Bucureti, 1986
2. Athanasiu I., Pnoiu A., Microprocesoarele 8086,286,386, Seria
Calculatoare personale, Ed. Teora, 1992
3. Diatcu E., Tertico A., Iacob F., Tache M., Racovi Z., Elemente
fundamentale ale teoriei sistemelor i calculatoarelor, Ed. Hyperion XXI,
Bucureti, 1996
4. Dodescu Gh., R. Mranu, F. Nstase, Calculatoare. Elemente
fundamentale de structur. Iniiere n utilizarea PC-urilor, Ed. ALL
EDUCATIONAL, Bucureti, 2000
5. Gorgan D., Sebestyen G., Structura calculatoarelor, Ed. Albastr, Cluj-
Napoca, 2000
6. Huanu C., Postolache M., Pnescu D., Sisteme cu microprocesoare n
conducerea automat a proceselor, Ed. Academica, Iai. 1998
7. Karam G., Bryant J., Principles of computer systems, Carleton University,
Prentice-Hall, New Jersey, 1992
8. Paraschiv N., Echipamente numerice pentru conducerea proceselor,
Catedra de Automatic i Calculatoare, Univ. Petrol Gaze Ploieti, 1996
9. Somnea D., Teodor V., Programarea n Assembler, Seria Calculatoare
personale, Ed. Tehnic, Bucureti, 1992
10. Sztojanov I, .a., De la poarta TTL la microprocesor. Circuite integrate
digitale, Seria Electronic aplicat, Ed. Tehnic, Bucureti, 1987
11. Toace G., Introducere n microprocesoare, Ed. t. i Enciclopedic,
Bucureti, 1986
12. Tomescu M., Primii pai n lumea calculatoarelor, Ed. Albastr, Cluj-
Napoca, 2001
13. Valachi A., Hoza F., Onofrei V., Silion R., Analiza, sinteza i testarea
dispozitivelor numerice, Ed. Nord-Est, Iai, 1993
14. Valachi A., Brsan M., Tehnici numerice i automate, Ed. Junimea, Iai,
1986
15. *** Colecia revistei CHIP
16. *** Colecia revistei PC World
199