Sunteți pe pagina 1din 224

Arhitectura calculatoarelor i sisteme de operare - partea I

Arhitectura calculatoarelor
i sisteme de operare
Prof. dr. Henri Luchian
Lect. dr. Vlad Rdulescu

1
Arhitectura calculatoarelor i sisteme de operare - partea I

Evaluare
examinare
dou teste scrise din materia de curs
cte unul pentru fiecare jumtate de semestru
un test practic la laborator
limbaj de asamblare
condiia pentru susinerea testelor scrise
prezena la laborator
cel mult 2 absene permise n fiecare jumtate de
semestru
2
Arhitectura calculatoarelor i sisteme de operare - partea I

Cuprins - prima jumtate

I. Introducere
II. Circuite combinaionale i funcii
booleene
III. Circuite secveniale i automate
IV. Reprezentri interne
V. Arhitectura i organizarea calculatorului

3
Arhitectura calculatoarelor i sisteme de operare - partea I

I. Introducere

4
Arhitectura calculatoarelor i sisteme de operare - partea I

I.1. Evoluie

5
Arhitectura calculatoarelor i sisteme de operare - partea I

Cum definim noiunea de calcul?


ce operaii se pot realiza?
evoluie n timp
abacul: adunri
roi dinate (Leibniz, Pascal): adunri, nmuliri
Babbage: instruciuni ncrcate din exterior,
calcul ramificat
von Neumann: program memorat; execuie n
secven de instruciuni; ierarhii de memorii
calcul paralel, cuantic etc.
6
Arhitectura calculatoarelor i sisteme de operare - partea I

Maini de calcul universale


o main de calcul universal se poate
comporta ca oricare main de calcul
particular
deci poate rezolva orice problem pe care o
poate rezolva o main de calcul particular
exemplu - calculatorul
n funcie de programul executat, rezolv
probleme de: calcul matricial, grafic,
tehnoredactare etc.
7
Arhitectura calculatoarelor i sisteme de operare - partea I

Scurt istorie (1)


scrierea poziional
indieni, arabi
algebra boolean
George Boole, 1854
teorema de incompletitudine
Kurt Gdel, 1935
legtura ntre algebra boolean i circuite
Claude Shannon, 1938
8
Arhitectura calculatoarelor i sisteme de operare - partea I

Scurt istorie (2)

calculatorul neumannian
John von Neumann, 1946
tranzistorul
Shockley, Brittain, Bardeen, 1947
circuitele integrate

9
Arhitectura calculatoarelor i sisteme de operare - partea I

I.2. Legi empirice

10
Arhitectura calculatoarelor i sisteme de operare - partea I

Legi empirice

n orice domeniu al tiinei, legile sunt


determinate ntr-un fel sau altul de
experiment sau de observaii n lumea
concret
repetabilitatea duce la ideea de legi
empirice: adevruri valabile de cele mai
multe ori, conform observaiilor
11
Arhitectura calculatoarelor i sisteme de operare - partea I

Legi empirice n informatic


legea "90:10" (Donald Knuth)
90% din timpul de execuie al unui program
este utilizat pentru 10% din instruciuni
legea lui Amdahl
eficiena maxim n mbuntirea unui sistem
(concret sau abstract) se atinge dac se
optimizeaz subsistemul cel mai folosit
legile localizrii - spaial, temporal
12
Arhitectura calculatoarelor i sisteme de operare - partea I

Legea lui Amdahl (1)

considerm un sistem (hardware, software)


i o anumit component a sa
componenta respectiv lucreaz un
procentaj fa din timpul de lucru al sistemului
i este mbuntit, astfel nct lucreaz de
a ori mai rapid dect nainte
de cte ori mai rapid devine sistemul?
13
Arhitectura calculatoarelor i sisteme de operare - partea I

Legea lui Amdahl (2)


1
A(a, f a )
fa
(1 f a )
a
cretere de vitez general ct mai mare
mbuntirea pronunat a componentei (a)
mbuntirea componentelor cu o pondere (fa)
ct mai mare
deci mai des folosite
14
Arhitectura calculatoarelor i sisteme de operare - partea I

Localizare temporal

dac o locaie de memorie este accesat la


un moment dat, este foarte probabil s fie
accesat din nou n viitorul apropiat
exemple
variabilele sunt folosite n mod repetat
bucle de program - instruciunile se repet

15
Arhitectura calculatoarelor i sisteme de operare - partea I

Localizare spaial

dac o locaie de memorie este accesat la


un moment dat, este foarte probabil ca i
locaiile vecine s fie accesate n viitorul
apropiat
exemple
parcurgerea tablourilor
execuia secvenelor de instruciuni - aflate la
adrese consecutive
16
Arhitectura calculatoarelor i sisteme de operare - partea I

Ordine fizic i ordine logic


instruciunile de executat se afl n memorie
n ordinea fizic
sunt citite din memorie i executate
regula: n ordinea n care sunt memorate (fizic)
excepia: srind peste un numr de instruciuni
astfel rezult ordinea logic a instruciunilor
poate diferi de la o rulare la alta
o instruciune se poate executa de 0, 1, 2, ori
17
Arhitectura calculatoarelor i sisteme de operare - partea I

II. Circuite
combinaionale
i funcii booleene

18
Arhitectura calculatoarelor i sisteme de operare - partea I

Semnal analogic i semnal digital


semnal analogic - continuu
dac poate lua valorile a i b, atunci poate lua
orice valoare din intervalul [a,b]
semnal digital - discret
are cteva niveluri (valori) distincte pe care le
poate lua
calculator - semnal digital cu 2 niveluri (0 i 1)
exist i alte sisteme de calcul n afar de PC
19
Arhitectura calculatoarelor i sisteme de operare - partea I

Tipuri de circuite
circuite combinaionale
valorile ieirilor depind exclusiv de valorile
intrrilor
aceleai valori pe intrare produc ntotdeauna
aceleai valori la ieire
circuite secveniale
n afar de intrri, valorile ieirilor depind i de
starea n care se afl circuitul
evolueaz n timp
20
Arhitectura calculatoarelor i sisteme de operare - partea I

Tabele de adevr
cum putem descrie funcionarea unui circuit
combinaional?
se aplic fiecare combinaie posibil de
valori ale intrrilor
i se observ valorile ieirilor pentru fiecare
astfel de combinaie
ansamblul acestor corespondene formeaz
un tabel de adevr
21
Arhitectura calculatoarelor i sisteme de operare - partea I

Circuite i funcii booleene


fiecrui tabel de adevr i corespunde o
funcie boolean
deci fiecrui circuit combinaional i
corespunde o funcie boolean
intrri ieiri
I1 ... In O1 ... Om
0 0...0 0 ? ?...? ?
0 0...0 1 ? ?...? ?
... ... ... ... ... ...
1 1...1 1 ? ?...? ?
22
Arhitectura calculatoarelor i sisteme de operare - partea I

II.1. Funcii booleene

23
Arhitectura calculatoarelor i sisteme de operare - partea I

Structura algebric
mulimea nevid B, care conine cel puin
dou elemente: a, b, a b
mulimea de operaii binare { + , }
o operaie unar { }
nchidere: a+bB
abB
B
24
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcii booleene
B = {0,1}
f : Bn Bm
funcie: n variabile, m valori
circuit: n intrri, m ieiri
n
exist m
(2 ) 2 astfel de funcii
n = 1, m = 1: 4 funcii unare cu o valoare
n = 2, m = 1: 16 funcii booleene de 2 variabile
i cu o valoare
25
Arhitectura calculatoarelor i sisteme de operare - partea I

Tabele de adevr
a f0(a) f1(a) f2(a) f3(a)
0 0 0 1 1
1 0 1 0 1
=0 =a = =1

a b F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15


0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
26
Arhitectura calculatoarelor i sisteme de operare - partea I

Axiome i teoreme n algebra


boolean (1)
identitate X+0=X X1=X
constante X+1=1 X0=0
idempoten X+X=X XX=X
involuie XX
complementaritate X X 1 XX 0
comutativitate X+Y=Y+X XY=YX
asociativitate (X + Y) + Z = X + (Y + Z) (X Y) Z = X (Y Z)
distributivitate X(Y+Z) = (XY) + (XZ) X+(YZ)=(X+Y)(X+Z)
27
Arhitectura calculatoarelor i sisteme de operare - partea I

Axiome i teoreme n algebra


boolean (2)
unificare XY XY X X Y (X Y) X
absorbie X+XY=X X (X + Y) = X
X Y Y X Y X Y Y X Y
De Morgan X Y X Y X Y X Y
generalizare (dualitate) f X1 ,, X n ,0,1, , f X1 ,, X n ,1,0,,

28
Arhitectura calculatoarelor i sisteme de operare - partea I

Calculatorul - operaii elementare


n calculatoarele actuale, operaiile
elementare sunt operaiile logicii booleene
care simuleaz (ntre altele) i operaiile
aritmetice elementare n baza 2
un circuit combinaional implementeaz de
fapt o funcie boolean
cum obinem expresia funciei booleene
pornind de la tabelul de adevr?
29
Arhitectura calculatoarelor i sisteme de operare - partea I

Forme normale
forma normal disjunctiv (FND)
pentru fiecare linie care produce valoarea 1 la
ieire - termen conjuncie ()
conine fiecare variabil a funciei: negat dac
variabila este 0 pe acea linie, nenegat dac este 1
aceti termeni sunt legai prin disjuncie (+)
forma normal conjunctiv (FNC): dual
exemplu: F9 x, y x y x y x y x y
30
Arhitectura calculatoarelor i sisteme de operare - partea I

II.2. Diagrame logice

31
Arhitectura calculatoarelor i sisteme de operare - partea I

Alfabetul diagramelor logice (1)

porile logice reprezint implementrile


unor funcii booleene
deci funcionarea fiecrei pori poate fi
descris printr-un tabel de adevr
corespunztor funciei booleene asociat porii
pori elementare: AND, OR, NOT
alte pori utile: NAND, NOR, XOR, NXOR
32
Arhitectura calculatoarelor i sisteme de operare - partea I

Alfabetul diagramelor logice (2)


A NOT
0 1
1 0

A B AND OR NAND NOR XOR NXOR


0 0 0 0 1 1 0 1
0 1 0 1 1 0 1 0
1 0 0 1 1 0 1 0
1 1 1 1 0 0 0 1

33
Arhitectura calculatoarelor i sisteme de operare - partea I

Simbolurile porilor

operaiile binare asociative pot fi extinse la


operaii cu orice numr finit de operanzi

34
Arhitectura calculatoarelor i sisteme de operare - partea I

Set minimal de generatori


set de generatori - mulime de tipuri de pori
prin care se poate implementa orice funcie
boolean
set minimal de generatori - set de generatori cu
numrul minim de tipuri de pori
se poate cu 3 (NOT, AND, OR)
formele normale (disjunctiv, conjunctiv)
se poate i cu 2 (NOT i AND, NOT i OR)
minimal - 1 (NAND, NOR)
35
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem

artai c urmtoarele mulimi de tipuri de


pori sunt seturi de generatori:
NOT, AND
NOT, OR
NAND
NOR

36
Arhitectura calculatoarelor i sisteme de operare - partea I

II.3. Implementarea
circuitelor prin funcii
booleene

37
Arhitectura calculatoarelor i sisteme de operare - partea I

Definirea funciilor booleene


moduri de definire
tabel de adevr
expresii coninnd variabile i operaii logice
n form grafic
sigma-notaie ()
n final, ne intereseaz s avem o expresie
boolean
care permite implementarea prin pori
38
Arhitectura calculatoarelor i sisteme de operare - partea I

-notaia (1)
exemplu - "majoritatea dintre k intrri"
valoarea funciei: 1 dac majoritatea
variabilelor au valoarea 1, 0 n caz contrar
pentru 3 variabile: f(x1,x2,x3) = (3,5,6,7)
-notaia corespunde formei normale
disjunctive
fiecare numr din parantez reprezint un
termen conjuncie
denot disjuncia termenilor
39
Arhitectura calculatoarelor i sisteme de operare - partea I

-notaia (2)
-notaie dat - cte variabile sunt necesare?
cea mai mic putere a lui 2 care cuprinde cel
mai mare numr dintre paranteze
pentru exemplul nostru: 22 < 7 < 23 n = 3
termenul corespunznd unui numr conine
toate variabilele, legate prin conjuncie
fiecare variabil este: negat dac i corespunde
un 0; nenegat pentru 1
exemplu: 3(10) = 011(2) x1 x 2 x 3
40
Arhitectura calculatoarelor i sisteme de operare - partea I

Minimizare (1)
forma normal disjunctiv a funciei
majoritate din 3
f A, B, C A B C A B C A B C A B C
numr mare de aplicri ale funciilor elementare
o expresie echivalent (aceeai funcie
boolean) mai simpl ar face circuitul
mai rapid
mai ieftin
mai fiabil
41
Arhitectura calculatoarelor i sisteme de operare - partea I

Minimizare (2)
cum putem simplifica expresia dat de
forma normal disjunctiv?
rescriere echivalent
utilizarea legilor i axiomelor algebrei booleene
inducie perfect
metoda Veitch-Karnaugh
metoda Quine-McCluskey
hibridizare (combinarea metodelor de mai sus)
42
Arhitectura calculatoarelor i sisteme de operare - partea I

Minimizare - rescriere algebric

acelai exemplu
f A B C A B C A BC A BC
(idempoten)
A BC A BC A BC A BC A BC A BC
(unificare)
B C A C A B

dificil pentru expresii complexe


43
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem

determinai forma normal disjunctiv i


studiai minimizarea prin rescriere algebric
pentru funcia "imparitate"
valoarea funciei este: 1 dac numrul de intrri
cu valoarea 1 este impar; 0 n caz contrar

44
Arhitectura calculatoarelor i sisteme de operare - partea I

II.4. Minimizarea
funciilor booleene prin
metoda diagramelor
Karnaugh

45
Arhitectura calculatoarelor i sisteme de operare - partea I

Metoda Veitch-Karnaugh
ofer posibilitatea de a grupa vizual
termenii conjuncie din FND pentru care se
poate aplica unificarea
pentru unificarea a doi termeni, acetia
trebuie s difere pe o singur variabil
la un termen apare negat, la cellalt nenegat
asemenea termeni devin vecini ntr-o
diagram Karnaugh
46
Arhitectura calculatoarelor i sisteme de operare - partea I

Structura diagramei Karnaugh


tabel bidimensional
numele variabilelor
pe linii, respectiv coloane
zona etichetelor
etichet - ir de n bii
fiecare bit corespunde unei variabile (intrri)
apar toate combinaiile posibile de valori
zona valorilor funciei (ieiri)
47
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple de diagrame
2 variabile 3 variabile
B BC
A 0 1 A 00 01 11 10
0 1 1 0 1 1
1 1 1 1

4 variabile
CD
AB 00 01 11 10
00 1 1
01
11 1 1
10 1 1

48
Arhitectura calculatoarelor i sisteme de operare - partea I

Codul Grey
etichetele nu se scriu n ordinea natural, ci
n ordinea Grey
oricare dou etichete consecutive, inclusiv
prima i ultima, difer printr-un singur bit
2 bii: 00, 01, 11, 10
3 bii: 000, 001, 011, 010, 110, 111, 101, 100
4 bii: 0000, 0001, 0011, 0010, 0110, 0111,
0101, 0100, 1100, 1101, 1111, 1110, 1010,
1011, 1001, 1000
49
Arhitectura calculatoarelor i sisteme de operare - partea I

Adiacene n diagrame (1)


dou poziii sunt adiacente dac etichetele
corespunztoare difer pe un singur bit
codul Grey transleaz adiacena n vecintate
pentru o funcie de n variabile, o locaie are
n locaii adiacente
n < 5: locaiile adiacente locaiei date se
determin vizual (sus, jos, stnga, dreapta)
n 5: i alte adiacene dect cele vizibile direct
50
Arhitectura calculatoarelor i sisteme de operare - partea I

Adiacene n diagrame (2)


pot fi mai mult de 2 locaii adiacente
extinderea unificrii la mai mult de 2 variabile
n diagramele Karnaugh, acesta corespund
unor blocuri de 2k locaii
putere a lui 2 att pe linii, ct i pe coloane
inclusiv puterea 0
form dreptunghiular
pentru fiecare locaie, blocul trebuie s conin
exact k locaii adiacente cu ea
51
Arhitectura calculatoarelor i sisteme de operare - partea I

Minimizare Karnaugh
se caut blocuri coninnd numai valori 1
corespunztoare unor adiacene (v. anterior)
blocuri ct mai mari i mai puine
pentru fiecare bloc cu 2k locaii 1
avem un termen conjuncie cu n-k variabile
conine variabilele cu valori constante pentru
toate locaiile din bloc
constant 0: variabil negat; constant 1: nenegat
toi aceti termeni sunt legai prin disjuncie
52
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple
majoritate din 3 imparitate

53
Arhitectura calculatoarelor i sisteme de operare - partea I

Adiacena liniilor/coloanelor
extreme
f = (0,2,3,4,5,6)

54
Arhitectura calculatoarelor i sisteme de operare - partea I

Expresia depinde de grupare

55
Arhitectura calculatoarelor i sisteme de operare - partea I

Evitarea redundanelor
simplificare neminimal simplificare minimal

56
Arhitectura calculatoarelor i sisteme de operare - partea I

Combinaii imposibile de valori


anumite combinaii de valori nu vor aprea
niciodat la intrri
din definiia comportamentului dorit
dar diagrama trebuie completat pentru toate
combinaiile de valori ale variabilelor
n locaiile corespunztoare acestor
combinaii se poate trece 0 sau 1
astfel nct s obinem o expresie ct mai simpl
57
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu - afiaj zecimal


afiaj cu 7 segmente
selectarea segmentelor
pentru fiecare cifr
0 - stins
1 - aprins
comanda pe intrare - 4
variabile
o cifr zecimal se poate
scrie pe 4 bii
58
Arhitectura calculatoarelor i sisteme de operare - partea I

Segmentul d - tabel de adevr


Nr A B C D d Nr A B C D d
0 0 0 0 0 1 8 1 0 0 0 1
1 0 0 0 1 0 9 1 0 0 1 1
2 0 0 1 0 1 10 1 0 1 0 *
3 0 0 1 1 1 11 1 0 1 1 *
4 0 1 0 0 0 12 1 1 0 0 *
5 0 1 0 1 1 13 1 1 0 1 *
6 0 1 1 0 1 14 1 1 1 0 *
7 0 1 1 1 0 15 1 1 1 1 *

59
Arhitectura calculatoarelor i sisteme de operare - partea I

Expresii mai simple


"funcionare de siguran" combinaii imposibile

60
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem: comparator pe 2 bii


4 variabile: A, B, C, D A
0
B
0
C
0
D
0
LT
0
EQ
1
GT
0
formeaz 2 numere 0
0
0
0
0
1
1
0
1
1
0
0
0
0
N1 = AB 0
0
0
1
1
0
1
0
1
0
0
0
0
1
N2 = CD 0 1 0 1 0 1 0
0 1 1 0 1 0 0
3 ieiri - corespund 0
1
1
0
1
0
1
0
1
0
0
0
0
1
valorilor de adevr 1 0 0 1 0 0 1
1 0 1 0 0 1 0
LT = (N1 < N2) 1 0 1 1 1 0 0
1 1 0 0 0 0 1
EQ = (N1 = N2) 1 1 0 1 0 0 1
GT = (N1 > N2) 1
1
1
1
1
1
0
1
0
0
0
1
1
0
61
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem: multiplicator pe 2 bii


A B C D P8 P4 P2 P1
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
4 variabile: A, B, C, D 0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
formeaz 2 numere 0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
N1 = AB 0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
N2 = CD 1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
4 ieiri - formeaz 1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
produsul N1 N2 1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1
62
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem: incrementare cu 1 BCD


I8 I4 I2 I1 O8 O4 O2 O1
0 0 0 0 0 0 0 1
4 variabile 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
formeaz un numr 0 0 1 1 0 1 0 0
BCD 0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
ntre 0 i 9 0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
4 ieiri - numrul de la 1 0 0 0 1 0 0 1
1 0 0 1 0 0 0 0
intrare incrementat 1 0 1 0 * * * *
1 0 1 1 * * * *
rezultatul este tot un 1 1 0 0 * * * *
numr BCD 1 1 0 1 * * * *
1 1 1 0 * * * *
1 1 1 1 * * * *
63
Arhitectura calculatoarelor i sisteme de operare - partea I

II.5. Circuite
combinaionale

64
Arhitectura calculatoarelor i sisteme de operare - partea I

valorile de la ieire depind doar de valorile


de la intrare din momentul respectiv
65
Arhitectura calculatoarelor i sisteme de operare - partea I

Multiplexorul
2n intrri (de date)
n intrri de selecie (variabile de control)
bii de control (de adres)
o singur ieire
fiecare intrare corespunde unui termen FND
cu variabile de control
una dintre intrri (bit) este selectat - devine
valoare de ieire
66
Arhitectura calculatoarelor i sisteme de operare - partea I

Multiplexor 41 (n=2)
S1 S0 O
0 0 I0
0 1 I1
1 0 I2
1 1 I3

67
Arhitectura calculatoarelor i sisteme de operare - partea I

Diagrama logic (41)

68
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare funcii booleene


intrrile de selecie formeaz un numr
care reprezint indicele intrrii de date care
este selectat ca valoare de ieire
putem astfel implementa funcii booleene cu
ajutorul multiplexorului
intrri de date - ieirile corespunztoare liniilor
din tabelul de adevr
intrri de selecie - intrrile funciei booleene
69
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple
majoritate din 3 imparitate

70
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare eficient - folding


majoritate din 3
A B C A B
0 0 0 0
0 0 0
0 0 1 0
0 1 0 0
0 1 C
0 1 1 1
1 0 0 0
1 0 C
1 0 1 1
1 1 0 1
1 1 1
1 1 1 1

71
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare eficient - folding


imparitate
A B C A B
0 0 0 0
0 0 C
0 0 1 1
0 1 0 1
0 1 C
0 1 1 0
1 0 0 1
1 0 C
1 0 1 0
1 1 0 0
1 1 C
1 1 1 1

72
Arhitectura calculatoarelor i sisteme de operare - partea I

Decodorul
n intrri
2n ieiri
n fiecare moment, exact una din ieiri este
activat
cea al crei indice este egal cu numrul format
de intrri
fiecare ieire corespunde unui termen FND
scris cu variabilele de intrare
73
Arhitectura calculatoarelor i sisteme de operare - partea I

Decodor n=2
I1 I0 O3 O2 O1 O0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

74
Arhitectura calculatoarelor i sisteme de operare - partea I

Diagrama logic (n=2)

75
Arhitectura calculatoarelor i sisteme de operare - partea I

Adunare - implementare cu
decodor
A B Cin Sum Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

76
Arhitectura calculatoarelor i sisteme de operare - partea I

Comparatorul
operatorii de comparare: = , > , < , ,
exemplu de implementare: egalitate pe 4 bii
tem: comparator complet (<, =, >)

77
Arhitectura calculatoarelor i sisteme de operare - partea I

Sumatorul
semi-sumatorul (half-adder)
adun cei doi bii de intrare
ieire: un bit sum i un bit transport
nu poate fi extins pentru mai multe cifre
sumatorul complet (full adder)
adun cei trei bii de intrare (inclusiv transport)
aceeai ieire: un bit sum i un bit transport
poate fi extins pentru mai multe cifre
78
Arhitectura calculatoarelor i sisteme de operare - partea I

Diagrame logice
A B Sum Cout
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

A B Cin Sum Cout


0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
79
Arhitectura calculatoarelor i sisteme de operare - partea I

Sumator serial (16 bii)

80
Arhitectura calculatoarelor i sisteme de operare - partea I

Sumatoare seriale
aceast variant este sumatorul cu
propagarea transportului
avantaj: acelai circuit (simplu), repetat
dezavantaj: viteza
la fiecare rang, trebuie ateptat rezultatul de pe
rangul anterior
deci ntrzierea este proporional cu numrul
de bii
81
Arhitectura calculatoarelor i sisteme de operare - partea I

Accelerarea adunrii (1)


sumator cu anticiparea transportului
carry lookahead adder
transportul de intrare - generat independent
pentru fiecare rang
C0 = A0 B0
C1 = A0 B0 A1 + A0 B0 B1 + A1 B1
...
Ci = Gi + Pi Ci-1 = Ai Bi + (Ai + Bi) Ci-1
...
82
Arhitectura calculatoarelor i sisteme de operare - partea I

Accelerarea adunrii (2)


sumatorul cu anticiparea transportului
avantaj - viteza
elimin ntrzierea datorat propagrii transportului
dezavantaj - circuite suplimentare, complexe
de obicei - combinaie anticipare-propagare
sumator cu selecia transportului
la fiecare rang se calculeaz suma pentru Cin=0
i Cin=1, apoi se selecteaz cea corect
83
Arhitectura calculatoarelor i sisteme de operare - partea I

Unitate aritmetic i logic


elementar (1 bit)
F1 F0 F
0 0 A and B
0 1 A or B
1 0 A+B
1 1 A-B
F1,F0 - semnale
de control

84
Arhitectura calculatoarelor i sisteme de operare - partea I

Variant mbuntit
F1 F0 F
0 0 A and B
0 1 A or B
1 0 A+B
1 1 A-B
F1,F0 - semnale
de control

85
Arhitectura calculatoarelor i sisteme de operare - partea I

Unitate aritmetic i logic pe 16


bii

86
Arhitectura calculatoarelor i sisteme de operare - partea I

III. Circuite secveniale

87
Arhitectura calculatoarelor i sisteme de operare - partea I

Circuit secvenial
ieirea la orice moment depinde de
intrare
starea intern
deci pentru aceeai intrare se pot obine
valori diferite la ieire, la momente diferite
starea intern
este memorat de ctre circuit
evolueaz n timp
88
Arhitectura calculatoarelor i sisteme de operare - partea I

Diagrama bloc

89
Arhitectura calculatoarelor i sisteme de operare - partea I

Evoluia strii
starea se modific la anumite momente
sincron: la intervale regulate de timp
date de un semnal special (ceas)
asincron: la momentul apariiei unui eveniment
evenimentele sunt definite n funcie de activitatea
circuitului
de ce nu se modific permanent?
transmiterea semnalului prin pori i prin liniile de
comunicare se face cu ntrzieri
semnalele - luate n considerare dup stabilizare
90
Arhitectura calculatoarelor i sisteme de operare - partea I

Ceasul
semnal periodic
ciclu activ - procentajul din perioad n care
semnalul este activ
depinde de ce nseamn semnal activ
pe nivel (0 sau 1)
pe front (trecerea de la 0 la 1 sau invers)
durata perioadei
suficient de mare pentru a avea intrri stabile
91
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare
cea mai simpl variant
esenial este conexiunea invers

n general se folosesc scheme mai complexe


92
Arhitectura calculatoarelor i sisteme de operare - partea I

Tipuri de circuite secveniale

la nivel de bit - circuite bistabile


dup cum este detectat semnalul activ
latch - activ pe nivel
flip-flop - activ pe front
circuite pe mai muli bii
regitri, numrtoare (contoare)
formate din mai multe circuite bistabile
93
Arhitectura calculatoarelor i sisteme de operare - partea I

III.1. Circuite bistabile

94
Arhitectura calculatoarelor i sisteme de operare - partea I

Bistabil
cum trebuie s arate un circuit care
implementeaz bitul?
specificaii
s se poat scrie n el un 0 sau un 1
s memoreze acea valoare pn la scrierea
alteia
s se poat citi ultima valoare scris
nu poate fi circuit combinaional
(memorare)
95
Arhitectura calculatoarelor i sisteme de operare - partea I

Bistabil RS fr ceas
dou intrri (R,S), dou ieiri (Q,P), dou
conexiuni inverse
circuitul implementeaz un singur bit: P Q

96
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcionarea bistabilului RS (1)


la prima vedere avem simultan
q = Q i p = P
QpR
P q S
de fapt, ieirile nu se modific instantaneu
la modificarea intrrilor
datorit timpilor de propagare prin pori
deci putem studia evoluia prin tabele de adevr
97
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcionarea bistabilului RS (2)


considerm (q,p)
Diagrama Karnaugh
valorile curente ale
ieirile: QP
ieirilor qp\RS 00 01 11 10
iar (Q,P) valorile 00 11 10 00 01
viitoare 01 01 00 00 01
n funcie de (q,p) i de 11 00 00 00 00
intrrile (R,S) 10 10 10 00 00

care vor deveni


efective dup timpii de QpR
propagare P q S
98
Arhitectura calculatoarelor i sisteme de operare - partea I

Stri stabile
n principiu, (Q,P) se
modific permanent
dar atunci cnd qp\RS 00 01 11 10
(Q,P)=(q,p), avem o 00 11 10 00 01
stare stabil 01 01 00 00 01
dorim identificarea 11 00 00 00 00
acestor stri 10 10 10 00 00
circuitul poate fi
controlat dac trece
doar prin strile stabile
99
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcionare (1)
stare iniial (q,p) evoluie (q,p) concluzie
R=0, S=1
00 00 10 stabil
01 01 00 10 stabil circuitul evolueaz
ntotdeauna spre starea
10 10 stabil stabil (Q,P)=(1,0)
11 11 00 10 stabil
R=1, S=0
00 00 01 stabil
01 01 stabil circuitul evolueaz
ntotdeauna spre starea
10 10 00 01 stabil stabil (Q,P)=(0,1)
11 11 00 01 stabil
100
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcionare (2)
stare iniial (q,p) evoluie (q,p) concluzie
R=0, S=0
00 00 11 00 ...
pentru q=p, circuitul
01 01 stabil oscileaz la infinit
10 10 stabil pentru qp, circuitul i
pstreaz starea (stabil)
11 11 00 11 ...
R=1, S=1
00 00 stabil
01 01 00 stabil circuitul evolueaz
ntotdeauna spre starea
10 10 00 stabil stabil (Q,P)=(0,0)
11 11 00 stabil
101
Arhitectura calculatoarelor i sisteme de operare - partea I

Funcionare (3)

reamintim condiia P Q
(R,S)=(0,0): pstrare stare existent
(memorare)
(R,S)=(0,1): stabilizare la Q=1 (set)
(R,S)=(1,0): stabilizare la Q=0 (reset)
(R,S)=(1,1): combinaie interzis
deoarece P=Q - nu implementeaz un bit
102
Arhitectura calculatoarelor i sisteme de operare - partea I

Circuite secveniale sincrone

se adaug bistabilului RS un semnal de


sincronizare (ceas)
pornind de la acesta se pot realiza alte
circuite bistabile
D, JK, T
toate sunt de tip latch (active pe front)

103
Arhitectura calculatoarelor i sisteme de operare - partea I

Latch RS cu ceas
q(=Qt) R S Qt+1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 *
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 *

104
Arhitectura calculatoarelor i sisteme de operare - partea I

Latch D
modeleaz doar situaiile RS
elimin combinaiile interzise
aici ieirea nu depinde de fapt de starea anterioar

q(=Qt) D Qt+1
0 0 0
0 1 1
1 0 0
1 1 1

105
Arhitectura calculatoarelor i sisteme de operare - partea I

Latch JK
elimin combinaia imposibil de la bistabilul RS

q(=Qt) J K Qt+1
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
106
Arhitectura calculatoarelor i sisteme de operare - partea I

Latch T
derivat din bistabilul JK
modeleaz doar situaiile J=K

q(=Qt) T Qt+1
0 0 0
0 1 1
1 0 1
1 1 0

107
Arhitectura calculatoarelor i sisteme de operare - partea I

Evoluia strilor
R S Qt+1 J K Qt+1
0 0 Qt neschimbat 0 0 Qt neschimbat
0 1 1 scriere 1 0 1 0 scriere 0
1 0 0 scriere 0 1 0 1 scriere 1
1 1 * interzis 1 1 Qt inversare

D Qt+1 T Qt+1
0 0 scriere 0 0 Qt neschimbat
1 1 scriere 1 1 Qt inversare

108
Arhitectura calculatoarelor i sisteme de operare - partea I

Diagrame bloc pentru bistabili

109
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem

implementai i analizai comportamentul


bistabilului RS (fr ceas) utiliznd pori
NAND n locul porilor NOR
similar pentru bistabilii latch RS, D, JK, T

110
Arhitectura calculatoarelor i sisteme de operare - partea I

Flip-flop

intrrile sunt luate n considerare doar pe


frontul cresctor (sau descresctor) al
semnalului de ceas
cum se poate obine un flip-flop
electronic - derivarea semnalului de ceas
utiliznd circuite latch circuite master-slave

111
Arhitectura calculatoarelor i sisteme de operare - partea I

Flip-flop master-slave D

112
Arhitectura calculatoarelor i sisteme de operare - partea I

Latch vs. flip-flop


fiecare categorie are utilitatea sa
circuitele flip-flop - utilizate pentru
comanda sistemelor digitale
frontul semnalului de ceas este foarte scurt
comparativ cu perioada ceasului
exact un pas n evoluia sistemului ntr-o
perioad de ceas
circuitele latch - sisteme asincrone
113
Arhitectura calculatoarelor i sisteme de operare - partea I

III.2. Circuite secveniale


complexe

114
Arhitectura calculatoarelor i sisteme de operare - partea I

Regitri
un circuit bistabil controleaz un singur bit
nu foarte util n practic
putem utiliza mai muli bistabili simultan
toi primind acceai comand
un asemenea circuit se numete registru
tipuri de regitri
paraleli
cu deplasare (seriali)
115
Arhitectura calculatoarelor i sisteme de operare - partea I

Registru paralel
implementare cu
bistabili D
pot fi latch sau flip-
flop, dup necesiti
aceeai comand
(ceas)
toi bistabilii se
modific la aceleai
momente
extinderea bistabilului
116
Arhitectura calculatoarelor i sisteme de operare - partea I

Registru cu deplasare (clasic)


memoreaz ultimele n valori de la intrare
poate fi implementat doar cu flip-flop
tem: de ce?

117
Arhitectura calculatoarelor i sisteme de operare - partea I

Ali regitri cu deplasare

118
Arhitectura calculatoarelor i sisteme de operare - partea I

Registru universal
intrri i ieiri seriale sau paralele
deplasare spre stnga sau spre dreapta
pot fi folosite cele care sunt necesare la un moment dat

s0 s1 funcie
0 0 nemodificat
0 1 deplasare dreapta
1 0 deplasare stnga
1 1 ncrcare paralel

119
Arhitectura calculatoarelor i sisteme de operare - partea I

Proiectarea unui circuit secvenial


main cu numr finit de stri (automat)
1. stabilirea strilor prin care trece circuitul
2. stabilirea tranziiilor ntre stri
starea urmtoare i ieirile n funcie de intrri
i de starea curent
3. codificarea strilor
pe numrul de bii necesar
4. scrierea tabelului de adevr pentru tranziii
120
Arhitectura calculatoarelor i sisteme de operare - partea I

Proiectarea unui circuit secvenial


5. minimizare
6. implementare
starea este memorat prin circuite bistabile
partea combinaional - conform minimizrii
intrrile prii combinaionale (starea curent) se
preiau de la ieirile circuitelor bistabile i de la
variabilele de intrare
ieirile prii combinaionale (starea urmtoare) se
aplic la intrrile circuitelor bistabile
121
Arhitectura calculatoarelor i sisteme de operare - partea I

Numrtorul (contorul) binar

reine la fiecare moment un numr pe n bii


la fiecare "btaie" a ceasului - incrementare
poate fi i decrementare
dup valoarea maxim urmeaz din nou 0
nu are intrri, doar variabile de stare
care rein de fapt numrul curent
ieirile sunt identice cu variabilele de stare

122
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu: n=4
starea curent starea urmtoare starea curent starea urmtoare
q3 q2 q1 q0 d3 d2 d1 d0 q3 q2 q1 q0 d3 d2 d1 d0
0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1
0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0
0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1
0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0
0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1
0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0
0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1
0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0

123
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu: n=4
prin minimizare se obin ecuaiile
d0 q0 q0 1
d1 q1 q 0 q1 q 0 q1 q 0
d 2 q 2 q1 q 0 q 2 q1 q 2 q 0 q 2 q1 q 0
d 3 q 3 q 2 q1 q 0 q 3 q 2 q 3 q1 q 3 q 0
q 3 q 2 q1 q 0
implementarea strii - cu flip-flop-uri D
124
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare

125
Arhitectura calculatoarelor i sisteme de operare - partea I

Microprogramare (1)

form alternativ de implementare


starea este memorat tot de circuite bistabile
partea combinaional - cu ajutorul unei
memorii ROM
intrrile funciilor booleene se aplic la intrrile
de adres ale circuitului
iar ieirile funciilor booleene se colecteaz de
la ieirile de date
126
Arhitectura calculatoarelor i sisteme de operare - partea I

Microprogramare (2)
implementarea prii combinaionale
se pornete tot de la tabelul de adevr
n fiecare locaie se scriu valorile dorite pentru
ieire
avantaj - flexibilitate
orice modificare a automatului implic doar
rescrierea coninutului memoriei ROM
dezavantaj - vitez redus
memoria ROM este mai lent dect porile
127
Arhitectura calculatoarelor i sisteme de operare - partea I

Acelai exemplu
avem 16 (= 24) stri
codificate pe 4 bii de stare
deci circuitul ROM va avea
24 adrese 4 bii de adres
16 locaii
4 bii de date locaii de 4 bii
n acest exemplu nu avem variabile de intrare i
ieiri ale sistemului care s se adauge la biii de
stare
128
Arhitectura calculatoarelor i sisteme de operare - partea I

Coninutul memoriei ROM


adres valoare adres valoare
0 0001 8 1001
1 0010 9 1010
2 0011 10 1011
3 0100 11 1100
4 0101 12 1101
5 0110 13 1110
6 0111 14 1111
7 1000 15 0000
129
Arhitectura calculatoarelor i sisteme de operare - partea I

Implementare

130
Arhitectura calculatoarelor i sisteme de operare - partea I

IV. Reprezentri interne

131
Arhitectura calculatoarelor i sisteme de operare - partea I

reprezentri interne elementare


fac parte din arhitectura calculatorului
deci sunt implementate n hardware
accesibile direct programatorilor
structuri de date mai complexe
pe baza reprezentrilor elementare
definite i accesibile programatorilor prin
software
132
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentri elementare
date numerice
numere ntregi, raionale
doar anumite submulimi ale acestora
date alfa-numerice
caractere etc.
instruciuni
singurele specifice fiecrui sistem
deci nestandardizate i neportabile
133
Arhitectura calculatoarelor i sisteme de operare - partea I

Studiul reprezentrilor

reprezentri numerice
repr(n1) op repr(n2) = repr(n1 op n2) ???
exemplu - dac adunm dou variabile
ntregi, rezultatul va fi scris corect?
erori de reprezentare
aproximri
depiri
134
Arhitectura calculatoarelor i sisteme de operare - partea I

Transmiterea informaiilor
ntre diverse medii
ntre calculatoare/sisteme
ntre componente ale aceluiai calculator/sistem
pot aprea erori de transmisie
datorit perturbrilor/funcionrii incorecte
semnal digital - unii bii sunt inversai
se dorete detectarea apariiei acestor erori
i chiar corectarea lor, unde e posibil
135
Arhitectura calculatoarelor i sisteme de operare - partea I

Moduri de detectare/corectare
adugarea de bii suplimentari redundani
paritate - 1 bit suplimentar
permite detecia apariiei unei erori (pe 1 bit)
paritate (im)par: numr total (im)par de bii 1
cod Hamming
4 bii de informaie, 3 bii suplimentari
permite detectarea/corecia mai multor erori
simultan
136
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu paritate impar


emitor
are de trimis valoarea (110)2
2 bii (par) pe 1, deci bitul suplimentar va fi 1
se va trimite (1101)2
receptor
primete irul de bii
dac numrul de bii pe 1 este par - eroare
altfel - elimin bitul de paritate i obine (110)2
137
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.1. Codificri
alfanumerice

138
Arhitectura calculatoarelor i sisteme de operare - partea I

Codificri alfanumerice
calculatorul nu poate reprezenta direct
caractere
sau alte informaii nenumerice: imagini etc.
fiecrui caracter i este asociat n mod unic
un numr
este de fapt o codificare
codificarea poate fi la nivel hardware
(reprezentare elementar) sau software
139
Arhitectura calculatoarelor i sisteme de operare - partea I

Standarde
ASCII
fiecare caracter - 7 bii plus unul de paritate
EBCDIC
fost concurent al ASCII
ISO 8859-1
extinde codul ASCII: diacritice etc.
Unicode, UCS
caractere non-latine
140
Arhitectura calculatoarelor i sisteme de operare - partea I

Codul ASCII
literele mici au coduri consecutive
n ordinea dat de alfabetul englez
'a' - 97; 'b' - 98; ...; 'z' - 122
similar - literele mari (65, 66, ..., 90)
similar - caracterele care afieaz cifrele
zecimale
atenie: codul pentru caracterul '0' este 48 (nu 0)
comparaii lexicografice - comparator binar
141
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.2. Reprezentri
interne numerice

142
Arhitectura calculatoarelor i sisteme de operare - partea I

Scrierea poziional
este tot o reprezentare
397 nu este un numr, ci reprezentarea unui
numr
introdus de indieni/arabi
factor implicit ataat fiecrei poziii din
reprezentare
esenial pentru arhitectura calculatoarelor
permite algoritmi eficieni de calcul (adunare...)
143
Arhitectura calculatoarelor i sisteme de operare - partea I

Baze de numeraie
orice numr natural d>1
mulimea cifrelor n baza d: {0,1,,d-1}
calculatorul lucreaz n baza d=2
tehnic: cel mai uor de implementat fizic 2 cifre
teoretic: baza 2 se "potrivete" cu logica
boolean
ca simboli i ca operaii
operaiile se pot implementa prin funcii booleene
144
Arhitectura calculatoarelor i sisteme de operare - partea I

Limitele reprezentrilor

n practic, numrul de cifre este finit


exemplu - numere ntregi fr semn
pe 1 octet: 0 28-1 (= 255)
pe 2 octei: 0 216-1 (= 65535)
pe 4 octei: 0 232-1 (= 4294967295)
orice numr mai mare (sau mai mic) dect
limitele nu va putea fi reprezentat corect
145
Arhitectura calculatoarelor i sisteme de operare - partea I

Scrierea poziional
fie baza d N*-{1}
i reprezentarea dat de irul de cifre
an-1an-2...a1a0a-1...a-m
numrul corespunztor reprezentrii este
a d
n -1
i
i
i -m 10
di este factorul implicit asociat poziiei i
inclusiv pentru puteri negative
146
Arhitectura calculatoarelor i sisteme de operare - partea I

Treceri dintr-o baz d n baza 10

conform formulei anterioare


virgula rmne n acelai loc
exemplu
5E4,D(16) = 5162 + 14 161 + 4 160 +13
16-1 = 20480 + 3584 + 64 + 0,8125 =
24128,8125(10)

147
Arhitectura calculatoarelor i sisteme de operare - partea I

Trecerea din baza 10 n baza d


Exemplu: 87,35(10) = 1010111,01(0110)(2)
partea ntreag partea fracionar
87 / 2 = 43 rest 1 0,35 2 = 0,7 + 0
43 / 2 = 21 rest 1 0,7 2 = 0,4 + 1
21 / 2 = 10 rest 1 0,4 2 = 0,8 + 0
10 / 2 = 5 rest 0 0,8 2 = 0,6 + 1
5 /2= 2 rest 1 0,6 2 = 0,2 + 1
2 /2= 1 rest 0 0,2 2 = 0,4 + 0
1 /2= 0 rest 1 0,4 2 = 0,8 + 0
87(10) = 1010111(2) (perioad)
(cifrele se scriu de jos n sus) 0,35(10) = 0,01(0110)(2)

148
Arhitectura calculatoarelor i sisteme de operare - partea I

Conversii ntre baze


o baz este o putere a celeilalte baze
d1 = d2k fiecrei cifre n baza d1 i corespund
exact k cifre n baza d2
ambele baze sunt puteri ale numrului n
conversia se poate face prin intermediul bazei n
703,102(8) = 111 000 011,001 000 010(2) =
= 0001 1100 0011,0010 0001 0000(2) =
= 1C3,21(16)
149
Arhitectura calculatoarelor i sisteme de operare - partea I

Aproximare i depire
o reprezentare are n cifre la partea ntreag
i m cifre la partea fracionar
n i m sunt finite
dac numrul necesit mai mult de n cifre la
partea ntreag, se produce depire
dac numrul necesit mai mult de m cifre
la partea fracionar, apare o aproximare
de cel mult 2-m
150
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.3. Reprezentrile BCD


i n exces

151
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentarea BCD
numerele sunt reprezentate ca iruri de cifre
n baza 10
fiecare cifr este reprezentat pe 4 bii
utilitate
aplicaii de tip business (financiar etc.)
afiaje n baza 10 (temperatur etc.)
calculele sunt dificil de efectuat
adunare - nu se poate utiliza direct un sumator
152
Arhitectura calculatoarelor i sisteme de operare - partea I

Adunarea BCD (1)


5 = 0101 + 5 = 0101 +
3 = 0011 8 = 1000
8(10) = 1000 = 8BCD 13(10) = 1101
13BCD =
= 0001 0011

problemele apar atunci cnd suma


cifrelor depete 9

153
Arhitectura calculatoarelor i sisteme de operare - partea I

Adunarea BCD (2)


soluie
se adun 6 (0110) atunci cnd suma depete 9
tem: de ce?
5 = 0101 + 9 = 1001 +
8 = 1000 7 = 0111
1101 + 16(10) = 1 0000 16BCD
6 = 0110 6 = 0110
1 0011 = 13BCD 1 0110 = 16BCD

154
Arhitectura calculatoarelor i sisteme de operare - partea I

Sumator BCD

155
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentarea n exces

pornete de la scrierea poziional


numere pozitive
pe n bii, intervalul reprezentabil este 0 2n-1
reprezentarea Excess-k
pentru fiecare ir de bii, din valoarea care i
corespunde n scrierea poziional se scade k
intervalul reprezentabil devine -k 2n-k-1

156
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu: Excess-5
Binar Zecimal Excess-5 Binar Zecimal Excess-5
0000 0 -5 1000 8 3
0001 1 -4 1001 9 4
0010 2 -3 1010 10 5
0011 3 -2 1011 11 6
0100 4 -1 1100 12 7
0101 5 0 1101 13 8
0110 6 1 1110 14 9
0111 7 2 1111 15 10
157
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.4. Reprezentri n
virgul fix

158
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentri numerice: probleme


reprezentarea semnului
nu exist simbol special, doar cele pentru cifre
virgula
trebuie cunoscut n orice moment poziia sa
operaii aritmetice
implementare ct mai eficient
nu este posibil pentru toate operaiile simultan
trebuie decis pe care le optimizm
159
Arhitectura calculatoarelor i sisteme de operare - partea I

Codificri n virgul fix


semnul - este folosit unul dintre bii
virgula
are ntotdeauna aceeai poziie n irul de cifre
deci poziia nu mai trebuie memorat
operaii implementate eficient
adunare, scdere
codificrile - pe n+m bii (n1, m0)
m=0 - numere ntregi
n=1 - numere subunitare
160
Arhitectura calculatoarelor i sisteme de operare - partea I

Codificri redundante
codificare redundant
exist cel puin un numr cu dou reprezentri
diferite
probleme la operaiile aritmetice
codificrile folosite n practic
reprezentarea numerelor pozitive - la fel ca la
numere fr semn; diferene - numere negative
unele prezint dou reprezentri pentru 0
161
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentarea prin modul i semn

notaie: A+S
valn,A mS a n -1a n -2 a1a 0a -1 a -m
a n -2 2 a -m 2
n 2
dac a n -1 0
m

a n -2 2 a -m 2 dac a n -1 1
n 2 m

similar cu scrierea n baza 2


bitul cel mai din stnga reprezint semnul
virgula este implicit
162
Arhitectura calculatoarelor i sisteme de operare - partea I

Modul i semn - limite


pe n+m bii sunt 2n+m reprezentri diferite
dar numai 2n+m -1 numere diferite
redundant: valnAmS 000 valnAmS 100 0
valorile extreme reprezentabile
max n,A mS valn,A mS (011) 2n -1 - 2-m
min n,A mS valn,A mS (111) - 2n -1 - 2-m
deci numerele reprezentabile sunt n intervalul
[-(2n-1-2-m); +(2n-1-2-m)]
163
Arhitectura calculatoarelor i sisteme de operare - partea I

Modul i semn - precizie


numerele reprezentabile exact ncep cu
min=-(2n-1-2-m)
i continu cu pasul 2-m
celelalte numere din interval - aproximare
eroarea - cel mult 2-m
deci precizia reprezentrii este 2-m
pentru n+m fixat
numere mai mari = precizie mai slab i invers
164
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (1)

val8,0
A S 00110011 25
2 4
21
20
51

val6,2
A S 00110011 2 3
2 2
2 1
2 2
12,75
sau
val6,2
A S 00110011 val8,0
A S 00110011 : 2 2
51 : 4 12,75

val4,4
A S 00110011 21
2 0
2 3
2 4
3,1875
sau
val4,4
A S 00110011 val8,0
A S 00110011 : 2 4
51 : 16 3,1875
165
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (2)
val8,0
A S 10110011 25
2 4
21
20
51
val4,4
A S 10110011 21
2 0
2 3
2 4
3,1875
sau
val4,4
A S 10110011 val8,0
A S 10110011 : 2 4
51 : 16 3,1875
min 8,0 A S 11111111 127
8,0
A S val
min 4,4 A S 11111111 7,9375
4,4
A S val
sau
min 4,4
A S min 8,0
A S : 2 4
127 : 16 7,9375
166
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (3)
max 8,0 A S 01111111 127
8,0
A S val
max 4,4 A S 01111111 7,9375
4,4
A S val
sau
min 4,4
A S min 8,0
A S : 2 4
127 : 16 7,9375
intervale reprezentabile
A+S8,0: [-127; 127] 255 numere, din 1 n 1
A+S4,4: [-7,9375; 7,9375] 255 numere, din
0,0625 n 0,0625 (=1:16)
167
Arhitectura calculatoarelor i sisteme de operare - partea I

Operaii n A+S
adunare/scdere
stabilirea semnului rezultatului (comparaie)
aplicarea algoritmilor cunoscui
nmulire/mprire
similar algoritmilor cunoscui
n general mai complex dect ne-am dori
nu putem utiliza pur i simplu un sumator
"clasic" pentru adunare
168
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentarea n complement fa
de 1
notaie: C1
val Cn, m a n -1a n -2 a1a 0a -1 a -m
1

a n -2 2n 2 a -m 2m a n -1 0


n -2
a 2 n 2
a -m 2 m
2 n -1
- 2 -m
a n-1 1
tem: demonstrai c valoarea este negativ
pentru an-1 = 1
deci an-1 reprezint semnul
169
Arhitectura calculatoarelor i sisteme de operare - partea I

Complement fa de 1 - limite
pe n+m bii sunt 2n+m reprezentri diferite
dar numai 2n+m -1 numere diferite
redundant: valnAmS 000 valnAmS 111 0
valorile extreme reprezentabile
max n,A mS valn,A mS (011) 2n -1 - 2-m
min n,A mS valn,A mS (10 0) - 2n -1 - 2-m
deci numerele reprezentabile sunt n intervalul
[-(2n-1-2-m); +(2n-1-2-m)]
170
Arhitectura calculatoarelor i sisteme de operare - partea I

Complement fa de 1 - precizie
numerele reprezentabile exact ncep cu
min=-(2n-1-2-m)
i continu cu pasul 2-m
celelalte numere din interval - aproximare
eroarea - cel mult 2-m
deci precizia reprezentrii este 2-m
pentru n+m fixat
numere mai mari = precizie mai slab i invers
171
Arhitectura calculatoarelor i sisteme de operare - partea I

Complementare
reprezentrile pentru numerele pozitive -
uor de determinat
pentru numere negative - mai greu
exist o relaie ntre reprezentarea
numrului q i cea a numrului -q?
da: reprezentarea lui -q se obine negnd toi
biii din reprezentarea lui q
operaie comutativ - valabil i pentru q < 0
172
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (1)

val8,0
C 1
00110011 25
2 4
21
2 0
51

val6,2
C 1
00110011 2 3
2 2
2 1
2 2
12,75
sau
val6,2
C 1
00110011 val8,0
A S 00110011 : 2 2
51 : 4 12,75

valC4,4 00110011 21 20 23 24 3,1875


1

sau
valC4,4 00110011 val8,0
1 A S 00110011 : 2 4
51 : 16 3,1875
173
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (2)
val8,0
C 1
11001100 26
23
2 2
27
20
76 127 51
valC4,4 11001100 22 21 22 23 24 3,1875
1

sau
valC4,4 11001100 val8,0
1 C 11001100
1
: 2 4
51 : 16 3,1875
min 8,0
C val
1
8,0
C
1
10000000 0 2 7
2 0
127
min C4,4 valC4,4 10000000 0 23 2-4 7,9375
1 1

sau
min C4,4 min 8,0
1 C : 2
1
4
127 : 16 7,9375
174
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (3)
max 8,0 C 01111111 127
8,0
C 1
val 1

max C4,4 valC4,4 01111111 7,9375


1 1

sau
min C4,4 min 8,0
1 C :
1
2 4
127 : 16 7,9375
intervale reprezentabile
C18,0: [-127; 127] 255 numere, din 1 n 1
C14,4: [-7,9375; 7,9375] 255 numere, din
0,0625 n 0,0625 (=1:16)
175
Arhitectura calculatoarelor i sisteme de operare - partea I

Operaii n C1
putem aduna dou numere n C1 cu ajutorul
unui sumator "clasic"?
da, dar n doi pai
n al doilea pas, la rezultat se adun transportul
obinut la primul pas
deci trebuie dou sumatoare pentru o adunare
scdere: adunm desczutul cu simetricul
scztorului
176
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentarea n complement fa
de 2
cerine
reprezentare neredundant
o singur reprezentare pentru 0
adunarea a dou numere se poate realiza cu un
singur sumator
la fel ca la numere fr semn
beneficiu - o singur operaie de adunare
implementat n procesor pentru tipuri de date cu
semn i fr semn
177
Arhitectura calculatoarelor i sisteme de operare - partea I

Complement fa de 2

notaie: C2
valCn,m a n -1a n -2 a1a 0a -1 a -m
2

a n -2 2n 2 a -m 2m dac a n -1 0


n -2
a 2 n 2
a -m 2 m
2 n -1
dac a n -1 1
tem: demonstrai c valoarea este negativ
pentru an-1 = 1
deci an-1 reprezint semnul
178
Arhitectura calculatoarelor i sisteme de operare - partea I

Complement fa de 2 - limite
pe n+m bii sunt 2n+m reprezentri diferite
i 2n+m numere diferite
00...0 - singura reprezentare pentru 0
valorile extreme reprezentabile
max n,A mS valn,A mS (011) 2n -1 - 2-m
min n,A mS valn,A mS (10 0) - 2n -1
deci numerele reprezentabile sunt n intervalul
[-2n-1; +(2n-1-2-m)] - asimetric
179
Arhitectura calculatoarelor i sisteme de operare - partea I

Complement fa de 2 - precizie
numerele reprezentabile exact ncep cu
min=-2n-1
i continu cu pasul 2-m
celelalte numere din interval - aproximare
eroarea - cel mult 2-m
deci precizia reprezentrii este 2-m
pentru n+m fixat
numere mai mari = precizie mai slab i invers
180
Arhitectura calculatoarelor i sisteme de operare - partea I

Complementare (1)

exist o relaie ntre reprezentarea


numrului q i cea a numrului -q?
da: reprezentarea lui -q este complementul
fa de 2 al reprezentrii lui q
se neag toi biii i se adun 0...01
la fel ca la C1, operaia este comutativ - se
poate aplica indiferent de semnul q

181
Arhitectura calculatoarelor i sisteme de operare - partea I

Complementare (2)
exemplu
q = 77 are reprezentarea 10110011 n C8,0
2

-q = -77 are reprezentarea 01001100 + 00000001


= 01001101
tem
reprezentarea n C2 pe N bii a numrului ntreg
negativ q este de fapt reprezentarea pe N bii a
numrului q + 2N = 2N - |q|
182
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (1)

val8,0
C 2
00110011 25
2 4
21
2 0
51

val6,2
C 2
00110011 2 3
2 2
2 1
2 2
12,75
sau
val6,2
C 2
00110011 val8,0
C 00110011
2
: 2 2
51 : 4 12,75

valC4,4 00110011 21 20 23 24 3,1875


2

sau
valC4,4 00110011 val8,0
2 C 00110011
2
: 2 4
51 : 16 3,1875
183
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (2)
val8,0
C 2
11001101 26
23
2 2
20
27
77 128 51

valC4,4 11001101 22 21 22 24 23 3,1875


2

sau
valC4,4 11001101 val8,0
2 C 11001101
2
: 2 4
51 : 16 3,1875
min 8,0
C val
2
8,0
C
2
10000000 0 27
128
min C4,4 valC4,4 10000000 0 23 8
2 2

sau
min C4,4 min 8,0
2 C : 22
4
128 : 16 8
184
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (3)
max 8,0 C 01111111 127
8,0
C 2
val 2

max C4,4 valC4,4 01111111 7,9375


2 2

sau
min C4,4 min 8,0
2 C :
2
2 4
127 : 16 7,9375
intervale reprezentabile
C28,0: [-128; 127] 256 numere, din 1 n 1
C24,4: [-8; 7,9375] 256 numere, din 0,0625 n
0,0625 (=1:16)
185
Arhitectura calculatoarelor i sisteme de operare - partea I

Concluzii
C2 este reprezentarea utilizat cel mai des
neredundant
adunarea/scderea - implementate la fel ca la
numere fr semn
n practic - tipuri de date ntregi din
limbajele de programare
caz particular (m=0)
pentru numere reale se utilizeaz reprezentrile
n virgul mobil
186
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.5. Depiri pentru


operaii cu reprezentri
n virgul fix

187
Arhitectura calculatoarelor i sisteme de operare - partea I

Depiri
nu sunt suficieni bii la partea ntreag
pentru numrul de reprezentat
numrul este n afara intervalului reprezentabil
problem
avnd dou numere reprezentabile, rezultatul
unei operaii efectuate asupra lor poate s nu fie
reprezentabil - depire
cnd se ntmpl i cum detectm aa ceva?
188
Arhitectura calculatoarelor i sisteme de operare - partea I

Trecerea la reprezentri mai lungi


avnd un numr reprezentat pe n bii, cum
obinem reprezentarea sa pe n+k bii?
adugare de cifre nesemnificative la partea
ntreag; partea fracionar nu e afectat
A+S: se adaug k zerouri imediat la dreapta
cifrei semn
C1, C2: se repet cifra semn de k ori imediat
la dreapta cifrei semn
189
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple
numr
codificare 51 -51
A+S8,0 00110011 10110011
A+S16,0 0000000000110011 1000000000110011
C18,0 00110011 11001100
C116,0 0000000000110011 1111111111001100
C28,0 00110011 11001101
C216,0 0000000000110011 1111111111001101

190
Arhitectura calculatoarelor i sisteme de operare - partea I

Trecerea la reprezentri mai scurte

folosim aceste rezultate pentru a rspunde la


problema invers
avnd un numr reprezentat pe n bii, poate
fi reprezentat pe n-k bii?
da, dac i numai dac cei k bii de la dreapta
celui de semn au valorile ca mai nainte
n acest caz, ei pot fi eliminai din reprezentare

191
Arhitectura calculatoarelor i sisteme de operare - partea I

Operaii n C2
n continuare vom discuta doar cazul C2
reprezentarea cel mai des folosit
restricii impuse de calculator asupra
operaiilor cu reprezentri
termenii sumei i rezultatul se reprezint pe
acelai numr de bii
termenii nmulirii se reprezint pe acelai
numr de bii, iar rezultatul pe numr dublu de
bii
192
Arhitectura calculatoarelor i sisteme de operare - partea I

Definiia depirii
fie o reprezentare dat i op o operaie cu
numere
pe n+m bii, numerele reprezentabile sunt n
intervalul [min; max]
fie dou numere a, b [min; max]
operaia op aplicat numerelor a i b
produce depire dac
a op b [min; max]
193
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (1)
n continuare vom folosi reprezentarea C2
cu n=4, m=0
1111 + 1111 = 11110 1110
bitul "suplimentar" este ignorat (doar 4 bii)
de fapt este bitul de transport
val 1111 1
4,0
C2

valC4,0 1110 2
2

rezultatul este corect - nu avem depire


194
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemple (2)
0111 + 0111 = 1110 1110
nu avem bit "suplimentar" (transportul este 0)
valC4,0 0111 7
2

val 1110 2
4,0
C2
rezultat incorect - se produce depire
concluzie - bitul de transport nu ofer
informaii privind depirea
trebuie cutat alt form de detecie
195
Arhitectura calculatoarelor i sisteme de operare - partea I

Condiia de depire
nu putem folosi direct definiia depirii
numerele nu sunt disponibile
constatare
depire se poate produce doar cnd ambii
operanzi au acelai semn
iar reprezentarea rezultatului indic semn opus
tem: nu se poate produce depire la
adunarea a dou numere de semn opus
196
Arhitectura calculatoarelor i sisteme de operare - partea I

Suma algebric n C2 (1)

Teorema 1
dac numerele a i b sunt reprezentabile n
C2n,m, atunci a b sunt reprezentabile n
C2n+1,m
Lem
dac a valCn 1,m n n-1 10-1 -m i n n -1
2

atunci a valC n-1 10-1 -m


n,m
2

197
Arhitectura calculatoarelor i sisteme de operare - partea I

Suma algebric n C2 (2)


fie reprezentrile
= n-1n-2...10-1...-m
= n-1n-2...10-1...-m
definim suma lor formal = + ca
= nn-1n-2...10-1...-m
adic
i 2 i i 2

n n 1
i i

i m i m
198
Arhitectura calculatoarelor i sisteme de operare - partea I

Suma algebric n C2 (3)


Teorema 2
dac suma algebric a numerelor
reprezentate de i nu produce depire,
atunci reprezentarea rezultatului este
n-1n-2...10-1...-m
Teorema 3
suma algebric a numerelor reprezentate de
i nu produce depire dac cifrele
transport Cn-1 i Cn ale rezultatului coincid
199
Arhitectura calculatoarelor i sisteme de operare - partea I

Consecine

adunarea a dou numere n C2 se poate


realiza utiliznd un sumator "clasic"
biii de semn se adun la fel ca toi ceilali bii
testarea depirii n C2 se poate realiza
adugnd la sumator o poart NXOR
n care intr biii transport Cn-1 i Cn
nu este deci necesar s fie cunoscute numerele

200
Arhitectura calculatoarelor i sisteme de operare - partea I

IV.4. Reprezentri n
virgul mobil

201
Arhitectura calculatoarelor i sisteme de operare - partea I

Probleme cu reprezentrile n
virgul fix
lungimea total n+m este fixat prin
hardware
dar, n virgul fix, att n ct i m sunt la
rndul lor fixate
deci magnitudinea i precizia sunt prestabilite i
nu pot fi modificate
dac dorim o precizie mai bun i suntem
dispui s reducem magnitudinea (sau invers)?
202
Arhitectura calculatoarelor i sisteme de operare - partea I

Notaia tiinific
util pentru numere cu multe cifre
745194.2623 10-32 n loc de
0.000000000000000000000000007451942623
acelai numr - mai multe forme de scriere
571.42 102 = 5.7142 104 = 571420 10-1 = ...
scriere normalizat - unic
exact o cifr semnificativ nainte de virgul
5.7142 104
203
Arhitectura calculatoarelor i sisteme de operare - partea I

Notaia tiinific n binar


cifra semnificativ dinaintea virgulei poate
fi doar 1
deci n practic nu este necesar memorarea sa
excepie - reprezentarea numrului 0
doar cifre de 0
scriere normalizat (numr nenul)
1.xx...x 2y
baza 2 este implicit - nu trebuie memorat
204
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentri n virgul mobil


componente
semnul (S): 0 sau 1 (+ sau -)
mantisa (M): 1.xx...x
de obicei se folosete partea fracionar (f)
M = 1 + f; f = 0.xx...x
caracteristica
reprezentarea exponentului n exces
N = (-1)S 1.f 2C - exces
205
Arhitectura calculatoarelor i sisteme de operare - partea I

Limite
numrul de bii al caracteristicii este fixat
deci exist o valoare minim i una maxim
pentru exponent
depire superioar - exponent prea mare
numrul este considerat
depire inferioar - exponent prea mic
numrul este considerat 0
tipul depirii nu depinde de semn
206
Arhitectura calculatoarelor i sisteme de operare - partea I

Standardizare
esenial pentru portabilitate
standardul IEEE 754/1985
elaborat ntre 1977 i 1985
prima implementare comercial: Intel 8087
2 variante principale
simpl precizie (32 bii)
dubl precizie (64 bii)
au fost proiectate i unele extensii
207
Arhitectura calculatoarelor i sisteme de operare - partea I

Simpl precizie
31 30 23 22 0
S C = exponent + 127 f = partea fracionar a mantisei

corespunde tipului float din C/C++


limite n baza 10
minim: 1.2 10-38
orice numr mai mic n modul va fi considerat 0
maxim: 3.4 1038
orice numr mai mare n modul va fi considerat
208
Arhitectura calculatoarelor i sisteme de operare - partea I

Dubl precizie
63 62 52 51 0
S C = exponent + 1023 f = partea fracionar a mantisei
corespunde tipului double din C/C++
limite n baza 10
minim: 1.7 10-308
maxim: 1.7 10308
magnitudine mai mare
precizie superioar
209
Arhitectura calculatoarelor i sisteme de operare - partea I

Structur

de fapt, reprezentarea n virgul mobil este


format din dou reprezentri n virgul fix
semnul i mantisa - reprezentare modul-semn
caracteristica - reprezentare n exces
de ce cmpurile sunt n ordinea S,C,f?
pentru a compara dou reprezentri, cmpurile
trebuie luate n considerare n aceast ordine

210
Arhitectura calculatoarelor i sisteme de operare - partea I

Caracteristici IEEE 754/1985


Simpl precizie Dubl precizie
Bii semn+mantis 24 53
Exponent maxim 128 1024
numere finite 127 1023
Exponent minim -127 -1023
numere normalizate -126 -1022
Exces caracteristic 127 1023

211
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu 1
fie numrul -23.25
cum se reprezint n simpl precizie?
semnul: 1 (negativ)
scriere n baza 2: -23.25(10) = -10111.01(2)
normalizare: 10111.01 = 1.011101 24
caracteristica: 4 + 127 = 131 = 10000011(2)
reprezentarea
1 10000011 0111010...0(2) = C1BA0000(16)
212
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu 2
ce numr corespunde reprezentrii
42D80000(16) (simpl precizie)?
42D80000(16) = 0 10000101 10110000...0(2)
S = 0 numr pozitiv
C = 10000101(2) = 133(10) e = 133 - 127 = 6
M = 1 + 0.1011 = 1.1011
numrul: +1.1011 26 = 1101100(2) = 108(10)
213
Arhitectura calculatoarelor i sisteme de operare - partea I

Aritmetica extins
n plus fa de aritmetica numerelor reale
reprezentarea numrului i definirea regulilor
elementare de calcul cu acesta
x / , x ,
reprezentare pentru rezultatul operaiilor
nedefinite (NaN - Not a Number) i definirea
regulilor de propagare a acestuia
NaN op x = NaN, op
utilizare - bibliotecile de funcii matematice
214
Arhitectura calculatoarelor i sisteme de operare - partea I

Exemplu
calculul funciei arccos cu formula
arccosx 2 arctan 1 - x 1 x
care este valoarea arccos(-1)?
x 1 1 x 1 x 2 0
arctan 1 x 1 x 2
rspuns: arccos (-1) =
nu ar fi fost posibil de obinut fr aritmetica
extins
215
Arhitectura calculatoarelor i sisteme de operare - partea I

Tipuri de valori n virgul mobil


tip valoare exponent (e) f valoare
normalizat emin <e <emax orice valoare (-1)S 1.f 2e
denormalizat e = emin f0 (-1)S 0.f 2e
zero e = emin f=0 S 0 ( = 0)
infinit e = emax f=0 S ()
NaN e = emax f0 NaN

216
Arhitectura calculatoarelor i sisteme de operare - partea I

Depiri

depire inferioar
n forma normalizat, exponentul negativ nu
poate fi reprezentat n cmpul caracteristicii
numrul va fi considerat 0
depire superioar
n forma normalizat, exponentul pozitiv nu
poate fi reprezentat n cmpul caracteristicii
numrul va fi considerat , dup caz
217
Arhitectura calculatoarelor i sisteme de operare - partea I

Reprezentri denormalizate

numr mai mic n modul dect cea mai mic


reprezentare normalizat nenul
se renun la normalizare
exponentul are valoarea minim
simpl precizie: -127
dubl precizie: -1023
n acest caz, mantisa va fi 0.f, n loc de 1.f

218
Arhitectura calculatoarelor i sisteme de operare - partea I

Aproximri (1)
depirea inferioar este de fapt aproximare
un numr nenul foarte mic este considerat 0
care este precizia reprezentrii n virgul
mobil?
depinde de exponent
simpl precizie: 2e-23
dubl precizie: 2e-52
exponent foarte mare - precizie foarte slab
219
Arhitectura calculatoarelor i sisteme de operare - partea I

Aproximri (2)
exemplu: e = 123
diferena ntre dou numere consecutive
reprezentabile exact este 2123-23 = 2100 1030
ce putem reprezenta exact?
numere raionale (nu reale) - doar o parte

220
Arhitectura calculatoarelor i sisteme de operare - partea I

Aritmetica n virgul mobil


fie dou numere
x m x 2e x

y my 2
ey

operaiile aritmetice elementare



x y mx 2
e x e y

m y 2 , dac e x e y
ey

x y m m 2
e x e y
2 , dac e x e y
ey
x y

x y m x m y 2
ex e y

x : y m x : m y 2
e x e y

221
Arhitectura calculatoarelor i sisteme de operare - partea I

Adunarea n virgul mobil


compararea exponenilor
se egalizeaz prin deplasarea unei mantise
adunarea mantiselor
n complement fa de 2
normalizarea sumei
dac apare depire - oprire
rotunjirea mantisei rezultat la numrul
permis de bii
222
Arhitectura calculatoarelor i sisteme de operare - partea I

nmulirea n virgul mobil

adunarea exponenilor
nmulirea mantiselor
normalizarea produsului
dac apare depire - oprire
rotunjirea mantisei rezultat la numrul
permis de bii
determinarea semnului rezultatului
223
Arhitectura calculatoarelor i sisteme de operare - partea I

Tem

urmrii paii adunrii i respectiv nmulirii


n virgul mobil pentru reprezentrile
numerelor scrise n baza zece ca -0.75 i
0.375
se va considera reprezentarea n simpl
precizie

224

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