Sunteți pe pagina 1din 48

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 01001101 n C8,0
2

-q = -77 are reprezentarea 10110010 + 00000001


= 10110011
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 la adunare 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