Documente Academic
Documente Profesional
Documente Cultură
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
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
calculatorul neumannian
John von Neumann, 1946
tranzistorul
Shockley, Brittain, Bardeen, 1947
circuitele integrate
9
Arhitectura calculatoarelor i sisteme de operare - partea I
10
Arhitectura calculatoarelor i sisteme de operare - partea I
Legi empirice
Localizare temporal
15
Arhitectura calculatoarelor i sisteme de operare - partea I
Localizare spaial
II. Circuite
combinaionale
i funcii booleene
18
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
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
28
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
31
Arhitectura calculatoarelor i sisteme de operare - partea I
33
Arhitectura calculatoarelor i sisteme de operare - partea I
Simbolurile porilor
34
Arhitectura calculatoarelor i sisteme de operare - partea I
Tem
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
-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
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
Tem
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
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
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
55
Arhitectura calculatoarelor i sisteme de operare - partea I
Evitarea redundanelor
simplificare neminimal simplificare minimal
56
Arhitectura calculatoarelor i sisteme de operare - partea I
59
Arhitectura calculatoarelor i sisteme de operare - partea I
60
Arhitectura calculatoarelor i sisteme de operare - partea I
II.5. Circuite
combinaionale
64
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
68
Arhitectura calculatoarelor i sisteme de operare - partea I
Exemple
majoritate din 3 imparitate
70
Arhitectura calculatoarelor i sisteme de operare - partea I
71
Arhitectura calculatoarelor i sisteme de operare - partea I
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
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
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
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
86
Arhitectura calculatoarelor i sisteme de operare - partea I
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
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
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
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
109
Arhitectura calculatoarelor i sisteme de operare - partea I
Tem
110
Arhitectura calculatoarelor i sisteme de operare - partea I
Flip-flop
111
Arhitectura calculatoarelor i sisteme de operare - partea I
Flip-flop master-slave D
112
Arhitectura calculatoarelor i sisteme de operare - partea I
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
117
Arhitectura calculatoarelor i sisteme de operare - partea I
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
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)
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
Implementare
130
Arhitectura calculatoarelor i sisteme de operare - partea I
131
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
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
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
147
Arhitectura calculatoarelor i sisteme de operare - partea I
148
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
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
153
Arhitectura calculatoarelor i sisteme de operare - partea I
154
Arhitectura calculatoarelor i sisteme de operare - partea I
Sumator BCD
155
Arhitectura calculatoarelor i sisteme de operare - partea I
Reprezentarea n exces
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
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
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
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
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
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)
181
Arhitectura calculatoarelor i sisteme de operare - partea I
Complementare (2)
exemplu
q = 77 are reprezentarea 10110011 n C8,0
2
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
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
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
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
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
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
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
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
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
197
Arhitectura calculatoarelor i sisteme de operare - partea I
i m i m
198
Arhitectura calculatoarelor i sisteme de operare - partea I
Consecine
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
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
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
210
Arhitectura calculatoarelor i sisteme de operare - partea I
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
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
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
y my 2
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 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
224