Sunteți pe pagina 1din 28

Subiectul 1.

Modelul de procesare secvential si taxonomia lui Flynn


Taxonomia lui Flynn este o clasificare a arhitecturilor sistemelor de calcul, propus de
Michael J. Flynn n 1966. Cele patru clasificri definite de Flynn au la baz numrul de fluxuri
de instruciuni i de date concurente disponibile n arhitectur.
1.SISD: Flux de instruciuni singular, flux de date singular (SISD) - un computer
secvenial care nu folosete paralelismul nici n fluxul de date, nici n fluxul de instruciuni. Aici
se ncadreaz microprocesoarele clasice cu arhitectur von Neumann pe 8, 16, 32 i 64 de bii cu
funcionare ciclic - preluare instruciune, execuie instruciune (rezult prelucrarea datelor)
.a.m.d. Ex. IBM 370, DEC VAX, SUN, IBM PC, MacIntosh.
2. MISD: Multiple Instruction (Stream), Single Data (Stream): Fluxuri de instruciuni
multiple, flux de date singular (MISD)- neobinuit datorit faptului c fluxurile de instruciuni
multiple au nevoie, de obicei, de fluxuri multiple de date pentru a fi eficient. Acestea sunt
sistemele care folosesc microprocesoare pipeline (conduct), metod folosit de ctre
procesoarele recente. La un astfel de microprocesor, de exemplu, n paralel se execut
instruciunea n, se decodific instruciunea n+1 i se aduce n memorie instruciunea n+2.
3. SIMD: Single Instruction (Stream), Multiple Data (Stream): Flux de instruciuni
singular, fluxuri de date multiple (SIMD)- un sistem de calcul care folosete fluxuri de date
multiple mpreun cu un singur flux de instruciuni pentru a face operaii care pot fi paralelizate.
Acestea sunt sisteme cu microprocesoare matriceale, la care operaiile aritmetice se execut n
paralel pentru fiecare element al matricei, operaia necesitnd o sngur instruciune (se mai
numesc i sisteme de procesare vectorial). Ex. CRAY-1, DAP CM-1, WARP, CM-2, ILLIAC
IV.
4. MIMD: Multiple Instruction (Stream), Multiple Data (Stream): Fluxuri multiple de
instruciuni, fluxuri multiple de date (MIMD)- multiple procesoare autonome care execut
diferite instruciuni asupra unor date diferite. Sistemele de calcul distribuite folosesc, de obicei,
arhitecturi MIMD exploatnd fie un spaiu de memorie partajat, fie un spaiu de memorie
distribuit. Ex. Transputere, Supernode, DADO, N-cube, Ultracomputer, Butterfly, Alliant,
Sequent Balance, CRAY X-MP.
Subiectul 2: Entropia. Formula lui Shannon. Exemplu de codificare.
Informaia este un mesaj ce aduce o precizare ntr-o problem ce comport un anumit
grad de incertitudine. Dei exist o mare diversitate de informaie, att din punctul de vedere a
formei de prezentare, a coninutului, a sursei care o genereaz ct i a modului de recepionare,
oamenii de tiin i-au pus problema msurrii ei cantitative. S-a constatat c informaia i
nedeterminarea sunt mrimi direct proporionale.
Se consider un experiment X n cadrul cruia se pot realiza un numr finit de n
evenimente elementare: x1, x2, x3, ..,xn. Probabilitile de apariie ale acestor evenimente le
vom nota cu p1, p2, p3, .., pn (pi = numrul cazurilor favorabile evenimentului x
i
/numrul
cazurilor egal posibile ale experimentului). Se presupune c sistemul de evenimente este un
sistem complet:
pi 0, i = 1,n
p
i
= 1
Experimentul pune n eviden un anumit cmp de probabilitate {X, x, p(x)} i o anumit
repartiie:
X = x
1
x
2
. . . x
n
p
1
p
2
. . . p
n
Deoarece nu se cunoate apriori rezultatul experimentului X, nseamn c acesta conine
un anumit grad de nedeterminare. Putem afirma c:
- n urma realizrii unui experiment se obine informaie dac i numai dac rezultatul
experimentului nltur o anumit nedeterminare;
- informaia i nedeterminarea sunt mrimi direct proporionale;
- informaia nlocuiete nedeterminare.
Aceste particulariti au condus la utilizarea aceleiai uniti de msur att pentru
cantitatea de informaie ct i pentru nedeterminare. Nedeterminarea unui experiment depinde de
probabilitile de realizare a evenimentelor. Dac se noteaz cu H msura gradului de
nedeterminare, pentru experimentul X, aceasta va fi o funcie de probabilitile evenimentelor:
H(X) = H(p
1
, p
2
, ., p
n
).
n anul 1948, Claude E. Shannon a folosit pentru prima dat formula:
H(p
1
, p
2
, ., p
n
) = -p
i
*log
2
p
i
Msura nedeterminrii, dat de aceast formul, se numete, conform lui Claude
Shannon, entropia experimentului X sau entropia informaional. n acest sens, unitatea de
msur a informaiei definit ca fiind cantitatea de informaie obinut prin precizarea unei
variante din dou egal probabile se numete bit (binary digit).
Subiectul 3. Proprietile entropiei informaionale
Principalele proprieti ale entropiei informaionale sunt:
P1. Entropia informaional, fiind msura informaiei, este o entitate nenegativ: H(p1,
p2, .,pn)0.
P2. Dac pentru un indice i{1, 2, .., n} avem p
i
=1, atunci entropia informaional este
nul: H(p
1
,p
2
, .,p
n
) = 0.
P3. Entropia unui sistem de evenimente este maxim cnd evenimentele au aceeai
probabilitate de apariie: H(p
1
,p
2
, .,p
n
) H(1/n,1/n,,1/n).
P4. Evenimentele imposibile nu modific valoarea entropiei informaionale a unui
sistem: H(p
1
,p
2
, .,p
n
,0) = H(p
1
,p
2
, .,p
n
).
P5. Entropia produsului mai multor surse independente de informaie este egal cu suma
entropiilor fiecrei surse luate separat: H(X
1
*X
2
*X
n
) = H(X
1
)+H(X
2
)+...+H(X
n
). Produsul
mai multor surse de informaie reprezint un experiment compus care const din realizarea
simultan a cte unui eveniment corespunztor fiecrei surse.
P6. Entropia produsului a dou surse oarecare X i Y de informaie este: H(X*Y) = H(X)
+H(Y/X). H(Y/X) reprezint cantitatea medie de informaie ce se obine n urma realizrii
experimentului Y, condiionat de experimentul X: H(Y/X) = p(x
k
)*H(Y/x
k
), unde p(x
k
) =
probabilitatea realizrii evenimentului x
k
X; H(Y/x
k
) = entropia experimentului Y,
condiionat de evenimentul x
k
X.
H(Y/x
k
) = -p(y
i
/x
k
)*log
2
p(y
i
/x
k
)
iar p(y
i
/x
k
) este probabilitatea realizrii evenimentului elementar yi Y ( i = 1,m) cnd s-a
realizat evenimentul xk X (k = 1,n).
Dac X i Y sunt experimente oarecare sunt respectate proprietile:
P7. H(Y/X)H(Y)
P8. H(X*Y)H(X)+H(Y)
P9. H(X/Y)=H(Y/X)+H(X)-H(Y).
Subiectul 4. Sisteme de numeraie. Reprezentarea numerelor ntregi i
fracionare ntr-o baz oarecare.
Un numr reprezint informaia a crei semnificaie este universal stabilit i ale crei
prelucrri au la baz aritmetica. Numerele sunt incluse ntr-o clas de codificare particular, n
care proprietile abstracte ale aritmeticii sunt translatate n mecanismele concrete de calcul
asupra codurilor.
Sistemul de numeraie este format din totalitatea regulilor de reprezentare a numerelor cu
ajutorul unor simboluri numite cifre. Numrul de simboluri permise pentru reprezentarea cifrei
este numit baza sau rdcina sistemului de numeraie.
Sistemele de numeraie pot fi:
- poziionale (sistemele: zecimal, binar, octal);
- nepoziional (sistemul roman).
Simbolurile folosite n cadrul sistemului de numeraie roman i valorile zecimale
corespunztoare acestor simboluri:
I X C M V L D
1 10 100 1000 5 50 500
n studiul arhitecturii calculatoarelor ne intereseaz n mod deosebit
- reprezentarea binar (baza=2);
- reprezentarea octal (baza=8);
- reprezentarea zecimal (baza=10);
- reprezentarea hexazecimal (b=16).
Sistem de numeraie Baza (b) Cifrele
Binar 2 (0,1)
Octal 8 (0,1,2,3,4,5,6,7)
Zecimal 10 (0,1,2,3,4,5,6,7,8,9)
Hexazecimal 16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
Fiind dat un numr ntreg N, se numete reprezentare n baza b, orice succesiune de cifre
a
n
,a
n-1
,...,a
0
care satisface urmtoarele proprieti:
- cifrele lui sunt numere naturale cu proprietatea : 0 a
i
b-1 (i=0n)
- exist egalitatea: N = a
n
b
n
+ a
n-1
b
n-1
+ .+ a
0
b
0
Cnd succesiunea de cifre are proprietile enumerate, prin definiie, se poate scrie:
N = a
n
a
n-1
.a
0
sau (N)
b
= a
n
a
n-1
.a
0
Un numr ntreg admite o reprezentare unic n baza b. Fiind dat un numr real R, se
numete reprezentare n baza b, orice succesiune de cifre a
n
,a
n-1
,...,a
0
,a
-1
, a
-2
,...,a
-m
ce ndeplinete
proprietile:
- cifrele a
i
sunt numere naturale cu proprietatea : 0 ai b-1 (i = m,n)
- nu exist un rang k astfel nct s avem: a
k
= a
k-1
= a
k-2
= = b-1
- exist egalitatea: R = a
n
b
n
+ a
n-1
b
n-1
+ .+ a
0
b
0
+ a
-1
b
-1
+.+ a
-m
b
-m
n situaia n care succesiunea de cifre are proprietile enumerate prin definiie se scrie:
R = a
n
a
n-1
...a
0
a
-1
a
-2
...a
-m
, an este cifra cea mai semnificativ (CCMS) a numrului R, iar a-m este
cifra cea mai puin semnificativ (CCMPS).
Subiectul 5. Conversia bazei de numeraie
Fiind dat un numr reprezentat n sistemul de numeraie cu baza b, calculul cifrelor
reprezentrii n baza q, q>1 se numete conversia din baza b n baza q. Conversia numerelor dintr-
un sistem de numeraie b n alt sistem de numeraie cu baza q se efectueaz examinnd separat
partea ntreag i partea fracionar.
Fie (N)
b
=(N
I
)
b
+ (N
F
)
b
, unde (N
I
)
b
- reprezint partea ntreag a numrului (N)
b
iar (N
F
)
b
reprezint partea fracionar.
Conversia numerelor ntregi
n noua baz de numeraie q, partea ntreag [(N
I
)
b
] se va scrie: (N
I
)
b
= a
n
q
n
+ a
n-1
q
n-1
++
a
0
q
0
, unde a
i
(i=0,n) sunt cifre ce aparin sistemului de numeraie n baza q. Conversia prii ntregi
(N
I
)
b
n baza q se va reduce la determinarea coeficienilor a
i
(i=0,n), ce se obin prin mprirea
succesiv a lui (N
I
)
b
cu q, astfel:
(N
I
)
b
/q=(a
n
q
n-1
+a
n-1
q
n-2
+...+a
1
) + a
0
/q a
0

(N
I1
)
b
-partea ntreag a ctului rest
..
(N
Ik
)
b
/q= a
n
q
n-k-1
+a
n-1
q
n-k-2
++a
k+1
+a
k
/q a
k

(N
I(k+1)
)
b
.
(N
In
)
b
/q= 0+a
n
/q a
n
Algoritmul se ncheie cnd partea ntreag a ctului devine nul. Cifra a
n
reprezint cifra cea
mai semnificativ iar a0 este cifra cea mai puin semnificativ.
Conversia rapid
n cazurile n care ntre cele dou baze de numeraie (implicate n conversie) exist o relaie
de genul: b1=b2
p
(b1 i b2 sunt cele dou baze, p este numr natural mai mare sau egal cu 2) atunci
conversia se poate realiza mai rapid.
Pentru a face conversia din baza b2 (baza mai mic) n baza b1, se mparte numrul
reprezentat n b1 n grupe de cte p cifre, de la dreapta la stnga pentru partea ntreag i de la
stnga la dreapta pentru partea fracionar. Dac ultimul grup de cifre nu are exact p cifre, se
completeaz cu zerouri pentru a se obine un grup de p cifre. Pentru a face conversia din baza b1
(baza mai mare) n baza b2, pentru fiecare cifr a numrului din baza b1 se asociaz un grup de p
cifre n baza b2, obinndu-se astfel numrul n noua baz b2.
Conversia numerelor fracionare
Partea fracionar se poate scrie: (N
F
)
b
=a
-1
q
-1
+ a
-2
q
-2
+ a
-3
q
-3
+ ... , unde: a
-j
reprezint cifre
aparinnd sistemului de numeraie q. Conversia prii fracionare se va reduce la determinarea
coeficienilor a
-k
(k=1,2,...) prin nmuliri succesive:
(N
F
)
b
*q=a
-1
+a
-2
q
-1
+a
-3
q
-2
+ ... a
-1

(N
F1
)b
(N
F1
)
b
*q=a
-2
+a
-3
q
-1
+a
-4
q
-2
+... a
-2

(N
F2
)
b
unde: a
-1
reprezint cifra cea mai semnificativ a prii fracionare. Teoretic, algoritmul ar trebui s
se ncheie cnd partea fracionar devine egal cu zero, ceea ce se ntmpl ntr-un numr limitat de
cazuri. n practic, procedeul are un numr finit de pai, n funcie de precizia aleas. De exemplu,
pentru a obine o precizie bun, pentru fiecare cifr zecimal trebuie calculate 4 cifre binare (n
cazul conversiei din zecimal n binar).
Subiectul 6. Reprezentarea numerelor n virgula fix
1. Reprezentarea prin mrime i semn (Cod direct - CD): Un numr reprezentat prin
mrime i semn se poate scrie conform relaiei: N = a
n
*2
n
+ a
i
*2
i
(i=-m,n-1)
a
n
= 0, daca N0
1, daca N<0
a
n
este bit de semn, iar a
i
{0,1} pentru i =m,n 1 i au fost obinute n urma
conversiei numrului (N) n sistemul de numeraie binar. Macheta de reprezentare a numrului N
este:
Observaie. S-a considerat c partea ntreag se reprezint prin n cifre binare, iar partea
fracionar prin m cifre binare:
- dac n = 0 se obine reprezentarea numerelor subunitare;
- dac m = 0 se obine reprezentarea numerelor ntregi.
2. Reprezentarea prin complement fa de 1 ( cod invers - CI): Un numr reprezentat
n cod invers se poate scrie:
N = 0*2
n
+ a
i
*2
i
(i=-m,n-1), daca N0
1*2
n
+ (1-a a
i i) )
*2
i
(i=-m,n-1), daca N<0
unde a
i
reprezint cifrele binare ale numrului |N|.
Observaie: Reprezentarea prin complement fa de 1 se obine astfel:
1. Fie calculnd: N = 2
n+1
-| N |
CD
- 2
-m
2. Fie prin inversarea cifrelor binare (inclusiv cifra de semn) din reprezentarea n cod
direct a numrului n valoare absolut.
3. Reprezentarea prin complement fa de 2 (cod complementar - CC): Forma de
scriere n cod complementar este:
N = 0*2
n
+
a
aa
i
ii
*2
i
, pentru N0
1*2
n
+
a
aa
i
ii
*2
i
, pentru N<0, (i=-m,n-1), unde:
a
aa
i
ii
*2
i
= (1-a
i
)*2
i
+2
-m
, iar a
i
reprezint
cifrele binare ale numrulu |N|. Codul complementar al unui numr se poate obine astfel:
1. Fie calculnd: N = 2
n+1
-|N|
CD
2. Fie adunnd un 1 la CCMPS a reprezentrii numrului n CI
3. Dac se consider reprezentarea n CD a numrului n valoare absolut, pentru
obinerea codului complementar, ncepnd de la CCMPS - se las neschimbate toate cifrele de
zero, inclusiv prima cifr binar a crei valoare este 1; apoi toate celelalte cifre binare se vor
inversa, inclusiv cifra de semn.
Subiectul 7: Operatii aritmetice n virgula fixa
1. Adunarea n cod direct (CD)
Se adun mrimile numerelor, fr cifra de semn i se d rezultatului semnul comun celor
dou numere. Fie:
N
1
= a
n
*2
n
+ a
i
*2
i
, a
i
{0,1}
N
2
= b
n
*2
n
+ b
i
*2
i
, b
i
{0,1}
N
1
+N
2
= a
n
*2
n
+ (a
i
+b
i
+t
i
)*2
i
, (i=-m,n-1)
nsumarea se face ncepnd de la bitul cel mai puin semnificativ al reprezentrii numerelor,
inndu-se cont de transportul de la rangul anterior (ti). Se consider t-m=0, iar dac va apare tn
(transport de la bitul CMS al mrimii) avem de-a face cu depire binar. Rezultatul operaiei poate
fi corect cnd nu apare transport de la cifra cea mai semnificativ a mrimii rezultatului i poate fi
incorect cnd apare transport.
2. Adunarea/scderea n cod invers (CI)
a). Adunarea/scderea numerelor cu acelai semn:
- Dac ambele numere sunt pozitive, reprezentarea lor n cod invers este identic
reprezentrii n cod direct.
- Daca numerele sunt negative, fie N
1
<0 i N
2
<0 se noteaza prin |N
1
|
CD
, |N
2
|
CD
reprezentarea
n cod direct a valorilor absolute ale numerelor N
1
i N
2
.
N
1
= 2
8
-|N
1
|
CD
-2
0
N
2
= 2
8
- |N
2
|
CD
-2
0
N
1
+N
2
= 2
8
+2
8
-|N
1
|
CD
-|N
2
|
CD
-2
0
-2
0
Avand n vedere c rezultatul trebuie s fie de forma:
N
1
+N
2
= 2
8
-(|N
1
|
CD
+|N
2
|
CD
)-2
0
apare necesar ca transportul de la cifra de semn s fie adunat la cifra cea mai puin semnificativ:
N
1
+N
2
= 2
8
-(|N
1
|
CD
+|N
2
|
CD
)-2
0
+2
8
-2
0
Bitul CMPS

rezultat transport de la cifra la semn
b). Adunarea/scderea numerelor cu semne diferite:
Fie N1>0 i N2<0. Reprezentarea lui N1 este aceeai n cod direct i cod invers, iar N
2
= 2
8
-
|N2|CD-2
0
. n urma operaiei de adunare obinem: N
1
+N
2
= 2
8
-(|N
1
|
CD
+|N
2
|
CD
)-2
0
. Rezultatul este
pozitiv sau negativ, dup valorile absolute ale numerelor N
1
i N
2
.
Observaie. Adunarea n cod invers, ca i n cod complementar, opereaz asupra tuturor
cifrelor binare, inclusiv asupra cifrei de semn.
3. Adunarea/scderea n cod complementar (CC)
a). Adunarea /scderea numerelor cu acelai semn
- Dac ambele numere sunt pozitive, reprezentarea lor n cod complementar este identic
reprezentrii n CD.
- Daca numerele sunt negative: fie N1<0 i N2<0:
N
1
= 2
8
- |N
1
|
CD
N
2
=2
8
- |N
2
|
CD
N
1
+N
2
= 2
8
(|N
1
|
CD
+|N
2
|
CD
)+2
8

forma de reprez. a rez. transp. de la bitul de semn
innd seama de forma de reprezentare a rezultatului, apare necesar ca transportul de la cifra
de semn s se neglijeze. Observaie. Dac n urma nsumrii a dou numere cu acelai semn,
rezultatul are semn contrar acesta este eronat (valoarea rezultatului nu se poate ncadra pe
numrul de bii utilizat).
b). Adunarea/scderea numerelor cu semn diferite: Fie N1>0 i N2<0, N
2
=2
8
- |N
2
|
CD
. Prin
adunare avem: N
1
+N
2
= 2
8
(|N
2
|
CD-
|N
1
|
CD
). Dac |N1| > |N2| rezultatul va fi pozitiv, iar pentru |N1|<
|N2| rezultatul va fi negativ.
Subiectul 8. Reprezentarea numerelor n format BCD
Pentru reprezentarea numerele folosind codificarea BCD (Binary Coded Decimal) se
utilizeaz dou formate: formatul mpachetat (packed BCD) i formatul despachetat (unpacked
BCD). Reprezentarea n BCD format mpachetat conine dou cifre zecimale pe un octet (cifra
zecimal mai puin semnificativ pe biii 0 3 i cifra zecimal mai semnificativ pe biii 4 7).
Datele reprezentate n BCD format despachetat conin o cifr zecimal pe octet - memorat n
biii 0 3, iar biii 4 7 conin informaia (F)
H
[(1111)
2
].
Microprocesorul accept datele n format BCD mpachetat sau despachetat, avnd
urmtoarea machet de reprezentare pe un octet:
Pentru reprezentarea numerelor nu s-a impus o anumit lungime a secvenelor i nu s-a
inut cont de semnul numrului. Pentru calculatoarele compatibile IBM-PC coprocesorul
matematic memoreaz numerele ntregi zecimale pe zece octei - n format mpachetat. n acest
caz macheta de reprezentare este:
S - bit de semn ( 0 pentru numere pozitive, 1 pentru numere negative);
Di - cifr zecimal (dou cifre per octet);
X - bii nefolosii.
Numerele negative se deosebesc de cele pozitive prin bitul de semn.
Subiectul 9. Adunarea si scaderea n format BCD
1. Adunarea n 8421
Adunarea numerelor n zecimal codificat binar (8421) se face binar, rang cu rang pe
fiecare grup de patru cifre binare, cu adugarea, eventual, a unor corecii.
Fie a i b dou cifre zecimale codificate binar (n 8421) care se adun; rezultatul c = a + b
poate fi:
- corect, i nu este necesar s se aplice nici o corecie dac: 0000< c< 1001;
- incorect i se impune corecia, adunnd 0110 n situaiile: a). 1010<c<1111 - aceast
reprezentare nu corespunde unei cifre n zecimal. Adunnd 0110 va determina n transport la
rangul urmtor; b). 0000<c<1001, dar a rezultat a cincea cifr binar, aceasta fiind 1 i reprezint
transportul pentru tetrada binar superioar.
c
corectat
= c + 0110
2. Scderea n 8421
Fie a i b dou cifre zecimale codificate binar, n codul 8421 ce se scad astfel:
- dac c = a-b este un numr pozitiv, acest rezultat este corect;
- dac rezultatul este negativ, se realizeaz un mprumut de la tetrada binar superioar
(-0001)
2
, care va reprezenta pentru tetrada unde este necesar mprumutul valoarea (10000)
2
=16.
Aceast configuraie de cifre [(10000)
2
] se adun la tetrada a i din aceasta se scade tetrada b,
obinndu-se un numr pozitiv. Noului rezultat i se aplic o corecie prin scderea cifrei 6, adic
(0110)
2
. Scderea este necesar deoarece n zecimal valoarea mprumutului este 10, iar prin
reprezentarea ntr-un cod cu 4 cifre binare mprumutul este 16.
Subiectul 10. Reprezentarea numerelor n virgula mobila
n cazul reprezentrii numerelor n virgul mobil, se pleac de la faptul c un numr N se
poate scrie sub forma: N=(f)
b
*b
E
, unde: b reprezint baza sistemului de numeraie utilizat (mai
frecvent se utilizeaz baza 2 sau 16); E exponentul real si f partea fracionar a numrului.
Reprezentarea n calculator, implic existena a trei cmpuri, acestea fiind:
- bitul de semn: S = 0, daca N0 sau 1, daca N<0
- Exponentul (cunoscut i sub denumirea de caracteristic), are o valoare determinat prin
relaia: EXP = exponent real + constant n exces.
Constanta n exces se stabilete n funcie de format i de calculator i are ca scop
eliminarea unei zone n care s fie specificat semnul corespunztor exponentului real. Se pot
reprezenta n acest mod i numere negative folosind acelai tip de reprezentare.
- Fracia (sau mantisa). Numrul de cifre binare corespunztoare acestei zone variaz, de
asemenea, n funcie de calculator i formatul utilizat. De regul, fracia trebuie s fie normalizat,
respectnd relaia: 1/b (f)
b
<1.
Pentru reprezentarea n virgul mobil a unui numr real N, ntr-un calculator din familia
IBM-PC se consider: N=2
E
(f)
2
. 1(f)2<2 iar (f)
2
=I
0
f
1
f
2
...f
n
(I
0
= 1, iar valoarea lui n depinde de
formatul ales). De regul se utilizeaz urmtoarele formate:
1) Formatul real binar:
- simpl precizie, avnd macheta: - dubl precizie:
f
i
- cifrele binare ale fraciei normalizate;
E
i
- cifrele binare ale zonei de exponent;
EXP=E + (81)
H
.
Dac zona exponent este egal cu zero, numrul zecimal este egal cu zero. Dac zona
exponent este diferit de zero, atunci numrul zecimal va fi determinat astfel:
<N> = <S>*( 0.1<fractie>)
2
*2
<EXP>-(80)
h
2) Formatul real sau formatul IEEE (Institute of Electrical and Electronics Engineers) 754,
aprut n anul 1985:
- simpl precizie (format scurt), avnd macheta: - dubl precizie (format lung), cu macheta:
unde: f
i
- cifrele binare ale zonei exponent (EXCES=127 sau 1023);
EXP = E+127[(7F)H] - pentru format scurt;
EXP = E + 1023 [(3FF)H] - pentru format lung.
-format temporar (sau real extins), cu macheta:
unde: I
0
- bitul prii ntregii, ce se memoreaz n formatul temporar;
f
i
- cifrele binare ale fraciei;
E
i
- cifrele binare ale zonei exponent,
EXP = E + 16383 [(3FFF)H]
Dac exponentul este egal cu zero, atunci numrul este egal cu zero. Dac exponentul nu
este egal cu zero, numrul zecimal se va calcula dup relaia:
<N>=<S>*(1.<fracie>)
2
*2
<EXP>-EXCES
Subiectul 11. Coduri numerice si alfanumerice
Codurile n care sunt reprezentate numai numere se numesc coduri numerice, iar cele
care cuprind numerele, literele i semnele speciale se numesc coduri alfanumerice. Dintre
codurile alfanumerice amintim:
- Codul BCD (Binary Coded Decimal), reprezint unul din primele coduri utilizate n
tehnica de calcul. O secven de cod are lungimea de ase bii/caracter.
- Codul EBCDIC (Extended Binary Coded Decimal Information Interchange Code),
secvenele de cod au o lungime de opt bii/caracter.
- Standardul ASCII (American Standard Code for Information Interchange) secvenele de
cod au o lungime de opt bii/caracter.
- Standardul Unicode utilizeaz secvene de cod cu lungimea de 16 bii/caracter. Acest
cod a fost conceput s nlocuiasc standardul ASCII, prin intermediul cruia se pot reprezenta
maximum 256 (28) caractere. Codul ASCII este un subset al standardului Unicode. Caracterele
de baz din toate limbile scrise existente pot fi reprezentate prin standardul Unicode.
Codurile normalizate au fost realizate n aa fel nct s uureze modul de prelucrare a
informaiei. Astfel, partea stng a codului permite identificarea imediat a naturii informaiei
codificate (litere, cifre, funcii), urmtoarele poziii ale codului sunt organizate ntr-un mod care
s uureze conversia n vederea calculelor (n cazul cifrelor) sau ordonarea alfabetic (n cazul
literelor).
Codurile numerice au fost introduse pentru a se opera mai uor cu informaia numeric.
Codurile numerice pot fi: ponderate sau neponderate.
Un cod numeric este ponderat dac unei cifre zecimale i corespunde o succesiune de
cifre binare, n care fiecare cifr de rang j are asociat o anumit pondere Pj. Fie N un numr
zecimal:
N = z
k
z
k-1
z
k-2
...z
0
, z
i
{0, 1, ....9}, i=0,k
Oricare ar fi cifra zecimal zi, aceasta se va reprezenta printr-o secven binar ce
satisface relaia: z
i
= a
j
*P
j
, j{0,1}, P
j
{0, 1, 2, ....9} constituie ponderea corespunztoare
rangului j, iar n numrul de simboluri din secvena binar asociat cifrei zecimale. Dintre
codurile ponderate amintim:
- Codul 8421, codul binar-zecimal natural, avnd ca ponderi puterile lui 2 (2
3
,2
2
,2
1
,2
0
).
- Codul 2421 (Aiken), la care codificarea primelor cinci cifre zecimale (04) este identic
secvenelor din codul 8421. Codificarea cifrei zecimale 5 se obine din secvena corespunztoare
cifrei zecimale 4 prin schimbarea simbolurilor binare 0 n 1 i 1 n 0. Astfel, fiecare complement
fa de 9 al unei cifre zecimale se reprezint printr-o secven ce rezult complementnd fa de
1 simbolurile binare din secvena cifrei zecimale respective. Codurile ce au aceast proprietate se
numesc autocomplementare, prezentnd avantaje n efectuarea operaiilor aritmetice.
- Pentru codul 8421 ponderile sunt puteri ale lui 2, ns dou sunt negative. Este un cod
auto-complementar.
- Codul bichinar (50 43210) conine secvene de cte apte simboluri binare mprite n
dou grupe. Acest cod a fost folosit la primele calculatoare electronice. Alte coduri numerice
ponderate sunt: 4221, 5421, 7421, 6421.
Din categoria codurilor neponderate, amintim:
- Codul EXCES 3 a fost realizat de G. Stibitz i se remarc prin aceea c: este un cod
autocomplementar si cifrei zecimale zero i corespunde o secven binar ce conine cifre binare
de 1.
- Codul Gray se caracterizeaz prin aceea c dou secvene de cod consecutive difer
printr-o singur poziie binar. Dac notm cu: a
8
, a
4
, a
2
, a
1
cifrele binare ale secvenelor codului
8421, n ordinea ponderilor i cu b
4
, b
3
, b
2
i b
1
cifrele binare ale secvenelor Gray, n ordinea de
la stnga la dreapta, acestea din urm pot fi calculate folosind relaiile: b
8
= a
8
; b
3
= a
8
a
4
; b
2
=
a
4
a
2
; b
1
= a
2
a
1
.
- Codul 2 din 5 este un cod pseudo-ponderat. Secvenele de cod pentru cifrele zecimale
1 9 au asociate ponderile 74210, numai codificarea cifrei zecimale 0 face excepie de la aceast
regul. Caracteristica secvenelor de cod este aceea c din cele cinci cifre binare dou sunt
semnificative (au valoarea 1).
Subiectul 12. Coduri de bare
Codul de bare reprezint un sistem de codificare prin care se permite identificarea
automat sau semiautomat a diverselor entiti (legitimaii, cri, bilete de avion, produse din
cele mai variate etc.). Codul de bare are avantajul de a fi relativ simplu de produs i recunoscut.
El poate fi aplicat direct pe orice produs (pe ambalajul acestuia) sau ulterior, ca etichet.
Majoritatea codurilor de bare au la baz principiul binar, reprezentarea fcndu-se printr-un
numr de linii sau linii i spaii cu o anumit lime. Secvena de linii sau linii i spaii reprezint
un caracter numeric sau alfanumeric.
Pentru exemplificare vom considera codul 2/5 (2 din 5), cod numeric (sunt reprezentate
cifrele de la 0 la 9). Codificarea se face prin trasarea a dou linii late i trei nguste. Raportul de
imprimare linie ngust/linie lat este de 1/2 sau 1/3. Spaiile nu conin informaie.
Caracter Linia1 Linia2 Linia3 Linia4 Linia5
1 1 0 0 0 1
2 0 1 0 0 1
3 1 1 0 0 0
4 0 0 1 0 1
5 1 0 1 0 0
6 0 1 1 0 0
7 0 1 0 1 1
8 1 0 0 1 0
9 0 1 0 1 0
0 0 0 1 1 0
start 1 1 0
stop 1 0 1
1: linie lat; 0: linie ngust
Dac n cazul codului 2 din 5 spaiile nu conin informaie, exist i un cod asemntor n
care densitatea informaiei reprezentate este mai mare; acest cod se numete codul 2 din 5
intercalat iar n acest caz spaiile conin informaii n acelai mod ca i liniile. Codificarea
informaiei permite rezolvarea unor probleme ce pot apare n transmisia, stocarea sau prelucrarea
acesteia, cum ar fi:
- detectarea i corectarea erorilor pentru a se asigura integritatea informaiei;
- compresia pentru minimizarea cantitii de informaie;
- criptarea pentru a se garanta securitatea informaiei.
Subiectul 13. Coduri detectoare si corectoare de erori
Codificarea se efectueaz avnd ca scop principal protejarea informaiei de perturbaiile
ce pot s apar ntr-un sistem de transmisie. De aceea, nainte de a emite simbolurile de
informaie pe canalul de comunicaie, ce poate fi supus perturbaiilor, se adaug o anumit
informaie redundant, de obicei prin introducerea unor simboluri suplimentare, numite
simboluri de control. Rolul acestor simboluri de control este acela de a indica utilizatorului
prezena erorilor i chiar s-i dea posibilitatea de a le corecta. Codurile obinute astfel, prin
mrirea redundanei, se numesc coduri detectoare i corectoare de erori. n acest caz, schema
unui sistem de transmiterea informaiei arata astfel:
Se poate face o clasificare a codurilor detectoare i corectoare de erori dup modul de
prelucrare al simbolurilor. Dac prelucrrile necesare obinerii proprietilor de detecie sau de
corecie se fac n blocuri de n simboluri, avem coduri bloc. Dac prelucrarea simbolurilor
generate de surs se realizeaz n mod continuu, avem de-a face cu coduri convoluionale
(recurente). Din categoria codurilor bloc se disting:
- codurile grup, secvenele de cod sunt considerate ca fiind elemente dintr-un spaiu
vectorial;
- codurile ciclice, secvenele de cod sunt considerate ca fiind elemente ntr-o algebr.
Subiectul 14. Teoremele fundamentale ale algebrei booleene
1. Teoremele reuniunii i interseciei:
- Exist un element 0 numit prim element cu proprietile: x0=0 i x0=x
- Exist un element 1 numit ultim element cu proprietile: x1=x i x1=1
2. Teoremele de unicitate:
- Elementul 1 este unic
- Elementul 0 este unic
3. Teoremele complementrii:
- Principiul contradiciei: x x = 0
- Principiul terului exclus: x x = 1
4. Teorema dublei negaii:
5. Teoremele absorbiei:
x (x y)=x
x (x y)=x
6. Teoremele lui DeMorgan:
7. Teoremele de idempoten:
xxx = x
xxx = x
8. Teoremele de comutativitate, asociativitate i distributivitate pentru cele 2 legi de
compoziie:
xy = y x
x (y z)=(x y) z
x (y z)=(x y) (x z)
x y=y x
x (y z)=(x y) z
x (y z)=(x y) (x z)
x x
y x y x
y x y x
Subiectul 15. Existenta si unicitatea functiilor logice
Forma canonic disjunctiv, respectiv conjunctiv a unei funcii logice este unic. Forma
canonic disjunctiv (respectiv conjunctiv) a unei funcii logice se numete i forma normal
disjunctiv (respectiv conjunctiv) perfect.
Forma normal disjunctiv a unei expresii logice este o sum de produse elementare
egal cu expresia dat. Forma normal conjunctiv a unei expresii logice este un produs de sume
elementare egal cu expresia dat. Forma normal disjunctiv (respectiv conjunctiv) a unei
funcii nu este unic.
Vom considera n continuare cele dou forme canonice att pentru funcia de o singur
variabil ct i pentru funcia de dou variabile.
Funcia boolean de o singur variabil: fie f : B
2
B
2
o funcie boolean de o singur
variabil iar a i b dou constante booleene. Forma canonic disjunctiv este: f (x) = axbx. Am
obinut a = f(1) i b = f(0), valori unic determinate. nlocuim x=1, x=0 n relatia lui f(x):
f(1) = a 1 b 1 = a 1 b 0 = a 0 = a
f(0) = a 0 b 0 = a 0 b 1 = 0 b = b
FCD: f(x) = f(1) x f(x) x
Pentru demonstrarea existentiei (in forma canonica disjunctive), vom inlocui pe x pe rand
cu valorile 0 si 1 in relatia anterioara:
f(1) = f(1) 1 f(0) 1 = f(1) 1 f(0) 0 = f(1)
f(0) = f(1) 0 f(0) 0 = f(1) 0 f(0) 1 = f(0)
Pentru forma canonica conjunctiva avem: f (x) = (a x)(b x). nlocuim x = 1, x = 0 n
relatia lui f(x):
f (1) = (a 1) (b 1) = (a 1) (b 0) = 1 b = b
f(0) = (a 0) (b 0) = (a 0) (b 1) = a 1 = a
FCC: f(x) = (f(0) x) (f(1) x)
Am obinut n acest caz: a = f(0) i b = f(1), valori unic determinate. Pentru demonstrarea
existenei (n forma canonic conjunctiv), vom nlocui x pe rnd cu valorile 0 i 1 n relaia
anterioar:
f(1) = (f(0) 1) (f(1) 1) = (f(0) 1)(f(1) 0)= 1 f(1) = f(1)
f(0) = (f(0) 0) (f(1) 0) = (f(0) 0)(f(1) 1)= f(0) 1 = f(0)
f(x,y) = axy bxy cxy dxy - forma canonic disjunctiv
Considerm forma FCD i nlocuim x =1, x = 0, y =1, y = 0 n relaia lui f(x,y). Vom
avea : a = f(1,1), b = f(1,0), c = f(0,1), d = f(0,0).
FCD: f(x,y) = f(1,1)xy f(1,0)xy f(0,1)xy f(0,0)xy
Funcia boolean de dou variabile: Fie f : B
2
B
2
B
2
o funcie boolean de dou
variabile iar a, b, c i d patru constante booleene. n cazul formei canonice conjunctive avem:
f(x,y) =(axy)(bxy)(cxy)(dxy)
Inlocuim n aceast relaie x=0, x=1, y=0, y=1 i obinem: a=f(0,0), b=f(0,1), c=f(1,0),
d=f(1,1).
FCC : f (x,y) = (f(0,0)xy)(f(0,1)xy)(f(1,0)xy)( f (1,1)xy)
Demonstrarea existenei n cazul formei canonice disjunctive: f(x,y) =f(1,1)xy
f(1,0)xy f(0,1)xy f(0,0)xy - forma canonic disjunctiv. Considerm aceasta expresie i
nlocuim x =1, x = 0, y =1, y = 0 i obinem:
x=y=1 f(1,1) = f(1,1) 1 1 f(1,0) 1 1 f(0,1) 1 1 f(0,0) 1 1 = f(1,1)
x=1, y=0 f(1,0) = f(1,1) 1 0 f(1,0) 1 0 f(0,1) 1 0 f(0,0) 1 0 = f(1,0)
x=0, y=1 f(0,1) = f(1,1) 0 1 f(1,0) 0 1 f(0,1) 0 1 f(0,0) 0 1 = f(0,1)
x=y=0 f(0,0) = f(1,1) 0 0 f(1,0) 0 0 f(0,1) 0 0 f(0,0) 0 0 = f(0,0)
Demonstrarea existenei n cazul formei canonice conjunctive: FCC: f(x,y) = (f(0,0)
xy)(f(0,1) xy)(f(1,0) xy)(f(1,1) xy)
Considerm aceasta expresie i nlocuim x =1, x = 0, y =1, y = 0 i obinem:
x=y=1 f(1,1)=(f(0,0) 1 1)(f(0,1) 1 1)(f(1,0) 1 1 )(f(1,1) 1 1) = f(1,1)
x=1, y=0 f(1,0)=(f(0,0) 1 0)(f(0,1) 1 0)(f(1,0) 1 0)(f(1,1) 1 0) = f(1,0)
x=0, y=1 f(0,1)=(f(0,0) 0 1)(f(0,1) 0 1)(f(1,0) 0 1 )(f(1,1) 0 1) = f(0,1)
x=y=0 f(0,0)=(f(0,0) 0 0)(f(0,1) 0 0)(f(1,0) 0 0 )(f(1,1) 0 0) = f(0,0)
Subiectul 16. Forme de reprezentare ale functiilor booleene
Funciile booleene se pot reprezenta fie sub forma unor tabele de adevr, fie sub forma
expresiilor booleene. Cele dou forme de reprezentare sunt echivalente. Oricrei funcii logice i
se poate asocia un tabel de adevr sau expresia logic corespunztoare. Consideram cateva
exemple:
Reprezentarea sub form de tabel de adevr a funciilor : NU, SAU, I, SAU-NU, I-NU.
x y NU SAU SI SAU-NU SI-NU
f
1
(x)=x
f
2
(x,y)=xy f
3
(x,y)=xy f
4
(x,y)=xy f
5
(x,y)=xy
0 0 1 0 0 1 1
0 1 1 1 0 0 1
1 0 0 1 0 0 1
1 1 0 1 1 0 0
Fie funcia logic urmtoare: f (x, y) = xyxy. Tabelul de adevr asociat este:
x y x y x y f(x,y) f(x,y)
0 0 1 0 1 0
0 1 0 0 0 1
1 0 0 0 0 1
1 1 0 1 1 0
Reciproc, dac avem tabelul de adevr al funciei, putem determina expresia funciei.
Considerm valorile lui x i y pentru care funcia f este zero:
x=0, y=1 sau x=0, y=0
x=1,y=0 x=0, y=0
f
2
(x,y) = (xy)(xy)
Verificm faptul c cele dou funcii sunt egale:
f
2
(x,y) = (x y)(x y) = x x x x y x y y = x y x y = f
1
(x,y)
x=y=0 sau x=1, y=1
x=y=1 x=y=1
f
1
(x,y)=xy xy
Subiectul 17. Forma normala/canonica disjunctiva/conjunctiva
Se numete produs elementar un produs de variabile booleene sau complemente ale
acestora, in care aceeasi variabila apare o singura data.
Un mintermen n raport cu variabilele logice x
1
, x
2
,...,x
n
este produsul elementar n care
apar, fie simple, fie complementare, toate variabilele x
1
,x
2
, ,x
n
. Un mintermen se va scrie n
aa fel nct pentru un set de valori ale variabilelor booleene s ia valoarea logic 1.
Se numeste produs elementar/sum elementar un produs/sum de variabile i/sau
negaiile lor.
Se numeste forma normal disjunctiv (FND) a unei relaii logice funcionale, o relaie
echivalent (are aceeai valoare de adevr) care este o sum de produse elementare construite cu
aceleai variabile ca i relaia dat iniial, fiecare produs coninnd toate variabilele posibile (ele
sau complementarele lor).
x b ax x f ) ( - FND
Se numeste form normal conjunctiv (FNC) a unei relaii logice funcionale, o relaie
echivalent (are aceeai valoare de adevr) care este un produs de sume elementare construite cu
aceleai variabile ca i relaia dat iniial, fiecare sum coninnd toate variabilele posibile (ele
sau complementarele lor).
) )( ( ) ( x b x a x f - FNC
Forma canonic disjunctiv (FCD) pentru o functie de n variabile booleene se poate
scrie astfel:
f(x
1
,x
2
,,x
n
) = f(i
1k
,i
2k
,,i
nk
) x
1
i1k
x
2
i2k
x
n
ink
, k=1,2
n
avand x
j
ijk
= x
j
, daca i
jk
= 1
xj
,
daca i
jk
= 0
n concluzie, forma canonic disjunctiv a unei funcii logice este o sum a min trmenilor
pentru care funcia are valoarea logic 1.
Se numete sum elementar o sum de variabile booleene sau complemente ale acestora,
faca ca aceeasi variabila sa apara de mai multe ori.
Un maxtermen n raport cu variabilele logice x
1
, x
2
,..,x
n
este o sum elementar, n care
apar, fie simple, fie complementare, toate variabilele x
1
, x
2
, ...,x
n
. Un maxtermen se va scrie n
aa fel nct pentru un set de valori ale variabilelor logice s ia valoarea logic 0.
Forma canonic conjunctiv (FCC) pentru o funcie de n variabile se poate scrie:
f(x
1
,x
2
,,x
n
) = [f(i
1k
,i
2k
,,i
nk
) x
1
i1k
x
2
i2k
x
n
ink
], k=1,2
n
avand x
j
ijk
= x
j
, daca i
jk
= 0
xj
,
daca i
jk
= 1
Aadar, forma canonic conjunctiv reprezint produsul maxtermenilor pentru care
functia booleana are valoarea logica 0.
Subiectul 18. Proprietatile mintermenilor/maxtermenilor
P1. Produsul logic ntre doi mintermeni mi i mj (i # j) ai unei funcii booleene de n
variabile este egal cu 0: m
i
*m
j
=0, ij
P2. Suma logic dintre doi termeni Mi i Mj (i # j) ai unei funcii booleene de n variabile
este egal cu 1: m
i
U m
j
=0, ij
P3. O funcie boolean de n variabile poate fi reprezentat printr-o sum logic de
mintermeni m
i
(respectiv un produs logic de maxtermeni M
i
) sub forma:
f(x
1
,...,x
n
) = U (
1
*m
i
)
f(x
1
,...,x
n
) = (
i
*m
i
),
i
{0,1} numere caracteristice, i=0,2
n
-1
P4. Complementul unei funcii booleene de n variabile scrise n FCC poate fi exprimat n
mod unic prin relaia:
f(x
1
,...,x
n
) = U (
1
*m
i
)
iar complementul unei funcii booleene de n variabile scrise n FCD poate fi exprimat unic astfel:
f(x
1
,...,x
n
) = (
i
*m
i
),
i
{0,1}, i=0,2
n
-1
P5. Dac o funcie boolean de n variabile este scris n FCD i conine 2
n
termeni
distinci de n variabile atunci ea este egal cu 1. n aceleai condiii, dac funcia este scris n
FCC, atunci ea este egal cu 0.
f(x
1
,...,x
n
) = U m
i
= 1 (FCD)
f(x
1
,...,x
n
) = M
i
= 0 (FCC), i=0,2
n
-1
P6. Orice mintermen m
i
al unei funcii booleene de n variabile scrise n FCD este egal cu
produsul logic a 2n-1 termeni M
j
, respectiv orice maxtermen M
i
al unei funcii booleene de n
variabile scris n FCC este egal cu suma logic a 2
n
-1 termeni m
j
:
m
i
= M
j
,
M
i
= U m
j
, j=0,2
n
-1 si ji
Subiectul 19. Functiile booleene de doua variabile
1) Funcia NU:
f
10
(x
1
, x
2
,..., x
n
)=x
i
, i=1,n
2) Funcia IDENTITATE :
f
3
(x
1
, x
2
,..., x
n
) = x
i
, i =1,n
3) Funcia I: f
1
(x
1
, x
2
,..., x
n
) = x
1
x
2
... x
n
, aceast funcie are valoarea logica 1 daca
toate variabilele au valoarea logica 1.
4) Funcia SAU: f
7
(x
1
, x
2
, ...,x
n
) = x
1
+ x
2
+...+ x
n
, ce are valoarea logic 1 daca cel putin
o variabila are valorea logica 1.
5) Funcia I-NU, are valoarea logic 1 dac cel puin o variabil are valoarea logic 0:
f
14
(x
1
, x
2
, .. , x
n
) = x
1
x
2
... x
n
= x
1
+ x
2
+ .. + x
n
6) Funcia SAU-NU, are valoarea logic 0 dac cel puin o variabil are valoarea logic
1: f
8
(x
1
, x
2
, ..,x
n
) = x
1
+ x
2
+ .. + x
n
= x
1
x
2
... x
n
7) Funcia INHIBARE:
f
4
(x
1
, x
2
, ..., x
n
) = x
1
x
2
... x
k-1
x
k
x
k+1
... x
n
, k {1, 2, ..., n}.
8) Funcia IMPLICARE:
f
11
(x
1
, x
2
, .. , x
n
) = x
1
+ x
2
+ x
k-1
+ x
k
+ x
k+1
+ .. + x
n,
k {1, 2, ..., n}.
Subiectul 20. Diagrame Karnaugh minimizare
Diagramele Karnaugh sunt reprezentri grafice ale funciilor booleene. O celul din
diagram corespunde unei linii din tabela de adevr. De asemenea, o celul din diagram
corespunde unui mintermen sau maxtermen al expresiei booleene. Zone ce conin mai multe
celule adiacente corespund termenilor standard.
Algoritmul de minimizare, utiliznd diagramele Karnaugh este urmtorul:
- Scrierea valorilor funciei n diagram, scrierea dup 1 (sau dup 0) dac se folosete
FCD (sau FCC) a funciei.
- Gruparea a 2k (k = 0,1,2,...) suprafee elementare adiacente, care au valoarea logic 1
(sau 0 dac s-a folosit FCC), astfel nct s formeze o suprafa dreptunghiular. n suprafeele
extinse se ncearc includerea tuturor suprafeelor elementare care au valoarea logic 1 (sau 0 n
FCC).
- Corespunztor unei suprafee extinse se obine un produs elementar al variabilelor ce
nu-i schimb valoarea pe aceast suprafa, dac s-a folosit FCD, sau o sum elementar a
variabilelor ce nu-i schimb valoarea n FCC. Dac nu este posibil ca o suprafa elementar s
se alipeasc altei suprafee elementare, pentru aceasta se va scrie expresia ce corespunde
mintermenului / maxtermenului.
n unele cazuri, n practic, anumite combinaii ale valorilor variabilelor de intrare nu
apar niciodat n timp, funcia numindu-se incomplet definit. Se poate considera c aceste
combinaii sunt nesemnificative pentru determinarea funciei logice de la ieire. Se pot folosi
aceste situaii atribuind suprafeelor elementare respective valoarea logic 1 sau 0 (R), n funcie
de modul n care se poate obine o form mai simpl pentru funcia logic.
Subiectul 21. Asambloare, compilatoare, interpretoare
Compilatoarele translateaz instruciunile HLL n binar cod main pentru a fi direct
executate de ctre computer. Ele au devenit componente de baz ntr-un sistem de calcul,
reflectnd, de regul, eficiena cu care resursele hardware sunt exploatate de ctre programatori.
nainte de apariia limbajelor de nivel nalt i a compilatoarelor, programatorii foloseau limbajul
de asamblare (ASM) i asambloarele. Acest lucru avea, de asemenea, avantajul de a nu scrie
programe direct n binar. Limbajul de asamblare posed instruciuni cod-main ce poart
denumirea de Calculatorul i sistemul de operare.
Noiuni introductive mnemonice (provin de la cuvintele n englez ce specific aciunea
lor) precum ADD, MOV, SUB sau JMP. Programul apare sub forma unei liste de astfel de
mnemonice ce pot fi convertite uor n limbajul de cod binar. Programele ce fac aceast
translatare se numesc asambloare. Exemple de limbaje de asamblare sunt: MASM (Microsoft
Assembler) i TASM (Turbo Assembler dezvoltat de firma Borland).
Translatarea unui program HLL se poate face fie prin intermediul unui compilator, fie
prin intermediul unui interpretor. Limbajele BASIC i Java au pornit la nceput folosind
interpretoare, dar acum exist i compilatoare pentru ele. Pentru a fi executat de ctre
microprocesor, un program trebuie s parcurg urmtoarele etape:
- Editare (EDIT)
- Compilare (COMPILE)
- Editare de legturi (LINK)
- ncrcare n memorie (LOAD)
Interpretoarele ofer o alternativ pentru a rula programe scrise ntr-un limbaj nalt de
programare. n loc de a translata instruciunile de nivel nalt n cod main i de a crea un
program executabil, interpretorul citete instruciunile de nivel nalt una cte una i le execut
folosind o bibliotec proprie de rutine. n acest mod, codul executabil nu este generat din codul
surs ci este coninut n cadrul interpretorului.
Interpretorul "vede" codul surs HLL ca date de intrare care trebuie analizate i apoi
trebuie procesate conform semnificaiei lor. Avantajele folosirii unui interpretor sunt: pornirea
rapid i aparenta lips a complexitii legate de compilare i editare de legturi. Dezavantajul
este c opereaz foarte lent; programele compilate au fost ntotdeauna superioare programelor
interpretate.
Este ceva obinuit ca interpretoarele s converteasc instruciunile de intrare ntr-o form
intermediar alctuit din anumite simboluri, nainte de a se lua o decizie asupra aciunilor ce vor
fi executate. Simbolurile generate sunt apoi trecute unui decodificator care va selecta rutina
corespunztoare ce va fi executat. Uneori interpretorul este vzut ca o "main virtual"
deoarece se comport ntr-un fel ca o component hardware: citete instruciuni pe rnd i se
supune lor. Interpretoarele apropie nivelul execuiei instruciunilor de nivelul programului
conceput n limbajul de nivel nalt.
Subiectul 22. Microprocesorul. Ciclul fetch-decode-execute
Microprocesorul reprezint unitatea central de procesare (UCP) a unui calculator,
component ultracompact i de o importan major; alegerea acesteia determin limitele
performanei i preul sistemului de calcul.
n zilele noastre, majoritatea microprocesoarelor care ruleaz software pentru
calculatoare personale sunt variante mbuntite ale vechiului procesor 8086 i au la baz
arhitectura x86.
Ciclul fetch-execute reprezint procesul prin care microprocesorul preia din memoria n
care este stocat programul urmtoarea instruciune ce va fi executat, o decodific i execut
operaia pe care aceast instruciune o reprezint.
I. Etapa fetch este aproximativ identic pentru toate tipurile de instruciuni. Paii urmai
de microprocesor n aceast etap sunt:
a) adresa din registrul pointer de instruciune (IP) este copiat pe magistrala de adrese de
memorie de unde este transmis n registrul RAM (Registrul de Acces la Memorie);
b) pointerul de instruciune este incrementat (IP++), indicnd adresa de memorie a
urmtoarei instruciuni ce va fi executat;
c) se selecteaz locaia de memorie i se copiaz coninutul acesteia n magistrala de date;
d) procesorul copiaz codul instruciunii din magistrala de date n registrul de
instruciune;
e) ncepe procesul de decodificare a instruciunii.
II. Etapa execute: Pasii urmati de microprocesor sunt:
a) coninutul registrului pointer de instruciune (IP) este copiat pe magistrala de adrese de
memorie de unde este transmis n registrul RAM(Registrul de Acces la Memorie);
b) pointerul de instruciune este incrementat (IP++);
c) valoarea selectat din memorie (1234H) este copiat pe magistrala de date;
d) procesorul copiaz valoarea de pe magistrala de date n registrul AX.
Subiectul 23. Adrese efective. Adrese segmentate.
Proprietile regitrilor de segment (figura 3.6) sunt n strns legtur cu noiunea de
segmentare a memoriei. Premisa de la care se pleac este urmtoarea: 8086 este capabil s
adreseze 1MB de memorie, astfel c sunt necesare adrese pe 20 de bii pentru a cuprinde toate
locaiile din spaiul de 1 MB de memorie. Totui, registrele utilizate sunt registre pe 16 bii, deci
a trebuit s se gseasc o soluie pentru aceast problem. Soluia gsit se numete segmentarea
memoriei; n acest caz memoria de 1MB este mprit n 16 segmente de cte 64 KB (16*64 KB
= 1024 KB =1 MB).
Noiunea de segmentare a memoriei presupune utilizarea unor adrese de memorie
formate din dou pri. Prima parte reprezint adresa segmentului iar cea de-a doua poriune
reprezint adresa de deplasament sau offset-ul.
Fiecare pointer de memorie pe 16 bii este combinat cu coninutul unui registru de
segment pe 16 bii pentru a forma o adres complet pe 20 de bii. Adresa de segment mpreun
cu adresa de deplasament sunt combinate n felul urmtor: valoarea de segment este deplasat la
stnga cu 4 bii (nmulit cu 16 = 2
4
) i apoi adunat cu valoarea adresei de deplasament.Adresa
astfel construit se numete adres efectiv; fiind o adres pe 20 de bii poate accesa 220 octei
de memorie, adic 1 MB de memorie. Construirea adresei efective este prezentat mai jos.
Subiectul 24. Registrii microprocesorului
Regitrii (sau registrele) microprocesorului reprezint locaii de memorie speciale aflate
direct pe cip; din aceast cauz reprezint cel mai rapid tip de memorie. Alt lucru deosebit legat
de regitri este faptul c fiecare dintre acetia au un scop bine precizat, oferind anumite
funcionaliti speciale, unice. Exist patru mari categorii de regitri: regitrii de uz general,
registrul indicatorilor de stare (flags), regitrii de segment i registrul pointer de instruciune.
Regitrii de uz general sunt regitrii pe 16 bii pentru microprocesorul 8086, iar de la
procesorul 80386 ncoace au devenit regitrii pe 32 de bii, denumii, respectiv: EAX, EBX, ECX,
EDX, ESP, EBP, EDI, ESI (litera E provine de la Extended extins n englez). Cei mai puin
semnificativi 8 bii formeaz respectiv regitrii AL, BL, CL, DL, iar cei mai semnificativi 8 bii ai
acelorai regitrii formeaz regitrii AH, BH, CH, DH.
- registrul AX: registrul accumulator, implicat in inmultiri/impartiri, utilizat pentru
input/output, accesibil partial (AH/AL).
- registrul BX: Stocheaza adrese pentru accesul la structuri de date.
- registrul CX: contor, rol special la LOOP.
- registrul DX: utilizat in operatii de intrare/iesire, utilizat pentru inmultiri/impartiri.
- registrul SI: utilizat ca BX pentru referirea unor adrese de memorie, utilizat pentru
instructiuni automate pe siruri de bytes (LODSB) ca index al sursei, segmentul va fi DS.
- registrul DI: utilizat ca BX pentru referirea unor adrese de memorie, utilizat pentru
instructiuni automate pe siruri de bytes (LODSB) ca index al destinatiei, segmentul va fi ES.
- registrul BP: stiva este o structura de memorie LIFO, BP un pointer de memorie in
interiorul SS(stack segment), util pentru utilizarea de subprograme.
- registul SP: contine adresa primului element disponibil din segmentul de stiva.
Registrul pointer de instructiuni: IP - Stocheaza adresa urmatoarei instructiuni care
trebuie executata, poate fi manipulat pentru a obtine flow control, si, in mod normal, instructiunea
este la adresa imediat urmatoare.
Registrul indicatorilor de stare (FLAGS):
- C (Carry) indic apariia unei cifre binare de transport n cazul unei adunri sau
mprumut n cazul unei scderi;
- O (Overflow) apare n urma unei operaii aritmetice. Dac este setat, nseamn c
rezultatul nu ncape n operandul destinaie;
- Z (Zero) indic faptul c rezultatul unei operaii aritmetice sau logice este zero;
- S (Sign) indic semnul rezultatului unei operaii aritmetice;
- D (Direction) cnd este zero, procesarea elementelor irului se face de la adresa mai
mic la cea mai mare, n caz contrar este invers;
- I (Interrupt) controleaz posibilitatea microprocesorului de a rspunde la evenimente
externe (apeluri de ntrerupere);
- T (Trap) este folosit de programele de depanare (de tip debugger), activnd sau nu
posibilitatea execuiei programului pas cu pas. Dac este setat, UCP ntrerupe fiecare instruciune,
lsnd programul depanator s execute programul respectiv pas cu pas;
- A (Auxiliary carry) suport operaii n codul BCD. Majoritatea programelor nu ofer
suport pentru reprezentarea numerelor n acest format, de aceea se utilizeaz foarte rar;
- P (Parity) este setat n conformitate cu paritatea biilor cei mai puin semnificativi ai unei
operaii cu date. Astfel, dac rezultatul unei operaii conine un numr par de bii 1, acest indicator
este setat.
Registrii de segment: CS segmentul de cod, DS segmentul de date, ES un segment
oarecare, SS segmentul de stiva, GS, FS.
Subiectul 25. Reprezentarea datelor n memorie. Formatele Little Endian
si Big Endian
Modalitatea de aranjare a datelor (reprezentate pe mai muli octei) n memoria
calculatorului nu este aceeai pentru toate tipurile de microprocesoare.
Iniial, Intel a stabilit o convenie de reprezentare a datelor de dimensiune de 16 bii (2 octei)
prin mprirea n doi octei i stocarea n memorie nti a octetului cel mai puin semnificativ i
apoi a octetului CMSO. Aceast convenie a luat numele de Little-Endian.
Mai trziu, Motorola a dorit s schimbe aceast modalitate de stocare a datelor pe 16 bii,
raionnd n mod invers: se stocheaz mai nti octetul cel mai semnificativ i dup aceea octetul
mai puin semnificativ. Aceast nou convenie a fost denumit Big-Endian. Aceast convenie
are avantajul c reprezentarea datelor n memorie este identic, de fapt, cu aceea a scrierii
obinuite a numerelor, numit i ordinea de tiprire (print order).
Citirea unui fiier stocat prin folosirea conveniei Little-Endian pe un calculator ce
utilizeaz Big-Endian va fi ns imposibil. De asemenea, atunci cnd se transfer fiiere ce
conin date numerice de pe un PC pe un calculator UNIX poate aparea problema interschimbarii
octetilor; in acest sens pe UNIX exista un program intitulat dd care face conversia intre cele 2
formate.
O alt diferen apare, de regul, la transferul unui fiier text de pe un calculator UNIX
pe un PC sau invers. Acest lucru se ntmpl datorit caracterului utilizat pentru marcarea
sfritului de linie. Aplicaiile de pe calculatoarele PC folosesc caracterul ^M (CR Carriage
Return Retur de car) n timp ce aplicaiile de pe UNIX utilizeaz caracterul ^J (LF Line Feed
Linie nou).
Reprezentarea in memorie la Motorola:
B1 B2 B3 B4 B5 B6 B7 B8
Reprezentarea in memorie la Intel:
B8 B7 B6 B5 B4 B3 B2 B1
Subiectul 26. Memoria secundara
Datorit faptului c memoria RAM este foarte scump i este o memorie volatil, pentru
stocarea pentru mai mult timp (nu numai pe parcursul funcionrii calculatorului) a datelor s-a
cutat utilizarea unui alt tip de memorie. Acest tip de memorie este memoria extern (sau
memoria secundar), care este o memorie relativ rapid, fiabil, ieftin, de mare capacitate i, pe
deasupra, ne-volatil.
Un calculator nu poate executa un program dect dac acesta este ncrcat n memoria
principal, din acest punct de vedere, memoria principal reprezint memoria utilizat pentru
stocarea programului ce se execut i a datelor ce sunt prelucrate iar memoria secundar
reprezint memoria folosit pentru stocarea pe termen lung a datelor.
Capacitatea maxima de stocare a unui HD se poate calcula astfel:
C = Npl * Np * Ns * Ds, unde:
Npl = numrul de platane ale hard/discului;
Np = numrul de piste de pe un platan;
Ns = numrul de sectoare de pe o pist;
Ds = dimensiunea unui sector.
Compact Disk, Read Only Memory
Reprezinta un tip foarte popular de mediu de stocare movibil ce a fost conceput iniial pentru
nmagazinare de date audio dar care s-a extins rapid n lumea calculatoarelor personale ca suport
pentru stocarea datelor.
Succesul CD-ROM-ului poate fi atribuit capacitii de stocare, duritii i, nu n ultimul rnd,
preului redus. Datorit rspndirii acestui format de stocare, unitile de CD-ROM reprezint
echipamente standard prezente pe majoritatea calculatoarelor personale.
O unitate CD-ROM este alctuit dintr-un motor, ansamblu laser, mecanism de rotaie i circuite
electronice.
Motorul unitii nvrte motorul CD-ROM-ului la viteza necesar astfel nct ansamblul laser s
poat citi informaia.
Ansamblul laser const dintr-un laser i lentile optice; acest ansamblu citete CD-ROM-ul n timp
ce acesta se rotete.
Mecanismul de rotaie este un motor ce deplaseaz lentilele n poziia corect pentru a accesa o
zon anume a CD-ROM-ului.
Circuitele electronice asigur transferul informaiei citite de pe CD-ROM ctre calculator prin
intermediul unei magistrale.