Documente Academic
Documente Profesional
Documente Cultură
Cartea Lui Adrian Atanasiu
Cartea Lui Adrian Atanasiu
Introducere 3
Capitolul 1: Arhitectura unui sistem de calcul 5
1.1. Organizarea de baza 5
1.2. Structura generala a masinilor de calcul 7
1.3. Micro-controllere 12
1.4. Ce nseamna Arhitectura unui calculator 13
Capitolul 2: Reprezentarea numerelor n calculator 15
2.1. Coduri de reprezentare a datelor 15
2.1.1. Coduri ponderate si neponderate 16
2.1.2. Reprezentarea zecimal codicat binar 17
2.1.3. Codul ASCII 18
2.2. Reprezentarea numerelor n sistemele de calcul 20
2.2.1. Reprezentarea numerelor ntregi 20
2.2.2. Operat ii cu numere ntregi 21
2.2.3. Reprezentarea numerelor reale n virgula mobila 23
2.2.4. Operat ii n virgula mobila 26
2.3. Exercit ii 28
Capitolul 3: Algebre si funct ii booleene 29
3.1. Denirea algebrelor booleene 29
3.2. Proprietat i ale algebrelor booleene 30
3.3. Alte operat ii booleene 31
3.4. Funct ii booleene 33
3.5. Forme canonice 36
3.6. Inele booleene 38
3.7. Exercit ii 39
Capitolul 4: Sisteme digitale 41
4.1. Circuite combinat ionale 41
4.1.1. Port i 41
4.1.2. Circuite 45
4.2. Extensii 46
204
4.3. Cicluri 50
4.4. Exercit ii 52
Capitolul 5: Sisteme 0 DS 55
5.1. Decodicatori 55
5.2. Codicatori 59
5.3. Demultiplexori 62
5.4. Multiplexori 64
5.5. Codicatori cu prioritate 69
5.6. Sumatori 75
5.6.1. Circuit digital pentru incrementare 79
5.6.2. Circuit digital pentru scadere 80
5.7. Circuite de comparare 83
5.8. Circuite de deplasare 86
5.9. Multiplicatori 88
5.10. Circuit logic programabil 90
5.11. Unitatea aritmetica si logica 94
5.12. Exercit ii 96
Capitolul 6: Sisteme 1 DS (Memorii) 99
6.1. Caracteristicile sistemelor cu un ciclu 99
6.2. Cicluri stabile si instabile 100
6.3. Zavoare elementare 102
6.3.1. Zavoare elementare cu ceas 104
6.3.2. Zavorul de date 105
6.4. Structura master-slave 106
6.4.1. Flip-op cu ntarziere 107
6.5. Memoria RAM 109
6.6. Registri 110
6.6.1. Registrul serial 110
6.6.2. Registrul paralel si registrul serial - paralel 111
6.7. Exercit ii 112
Capitolul 7: Sisteme 2 DS (Automate) 113
7.1. Denit ii de baza 113
7.2. Flip-Flopuri 117
7.2.1. Automatul T Flip-Flop 117
7.2.2. Automatul JK Flip-Flop 118
7.3. Numaratori (counteri) 120
7.4. Stive 124
205
7.5. Circuite aritmetice 125
7.5.1. Sumator serial 125
7.5.2. Circuit aritmetic serial-paralel 126
7.5.3. Sumatoare prex 127
7.5.4. Multiplicator 129
7.5.5. Circuit pentru produsul scalar (MAC) 133
7.6. Reprezentarea automatelor nite 136
7.6.1. Automat pentru MAC 137
7.6.2. Automat pentru recunoasterea unei secvent e binare 141
7.7. Automate de control 143
7.8. Transformarea automatelor n circuite combinat ionale 147
7.9. Exercit ii 148
Capitolul 8: Sisteme 3 DS (Procesori) 151
8.1. Automate JK-registri 151
8.2. Registri numaratori 156
8.3. Automat aritmetic si logic 158
8.4. Automate stiva 160
8.5. Procesorul elementare 163
Capitolul 9: Sisteme 4 DS 167
9.1. Tipuri de sisteme de ordin 4 167
9.2. Stive organizate ca n DS 170
Capitolul 10: Structura unui computer la nivel de performant a 171
10.1. Structuri standard 172
10.2. Masurarea performant elor unui sistem 174
10.3. Modele bazate pe cozi 175
Solut ii si indicat ii la problemele propuse 179
Bibliograe 203
Cuprins 204
206
Capitolul 1
Arhitectura unui sistem de calcul
Pentru nceput sa trecem n revista organizarea generala a unui sistem actual de calcul.
1.1 Organizarea de baza
Structura si compunerea logica a programelor care pot prelucrate de o masina de calcul
au fost elaborate anterior denirii structurii hard; ele se bazeaza pe teza lui Church
1
,
enunt ata n prima parte a anilor
30. Ulterior ea a fost completata de Turing.
Denit ia 1.1 O metoda (procedura) M asociata rezolvarii unei probleme se numeste
efectiva (sau mecanica) daca:
- M se poate exprima printr-un numar nit de comenzi (instruct iuni), ecare comanda
putand denita pe baza unui alfabet nit de simboluri.
- M poate produce rezultatul dorit ntr-un numar nit de pasi;
- M poate descrisa n mod logic, fara a folosi mijloace externe.
A A MASINILOR DE CALCUL 7
1.2 Structura generala a masinilor de calcul
Structura funct ionala a unei masini de calcul (sau Computer) n forma actuala a fost
denita n 1947 de von Neumann (1903 - 1957), modicarile ulterioare ind nesemnica-
tive.
-
?
-
Periferice
intrare/iesire
Instruct iuni
Date
Unitate
aritmetica-logica
CPU
Aceste componente hard comunica ntre ele printr-un sistem de magistrale. Principalul
soft inclus este sistemul de operare, care asigura majoritatea funct iilor de prelucrare ale
sistemului.
Sunt trei tipuri majore de instruct iuni folosite de un calculator: de transfer de date,
de prelucrare date si de control al programelor.
Denirea setului de instruct iuni si modul lor de prelucrare caracterizeaza n general
puterea unui calculator.
Pe baza acestei structuri au fost construite calculatoarele din prima generat ie (anii
40
50).
8 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
Structura unui astfel de calculator (cum au fost ENIAC, EDVAC, IAS, UNIVAC) este
Memoria
principala
Programe si date
pentru execut ie
Control
-
Instruct iuni
-
Date
CPU
-
Prelucrare
date
Programe,
date,
comenzi
Echipamente
intrare/iesire
(memorie secundara,
tastatura
imprimanta etc)
Impactul cel mai mare asupra dezvoltarii sistemelor de calcul l-au avut nsa calcula-
toarele din generat ia a treia, reprezentantul specic ind IBM/360 (existent si n dotarea
Universitat ii Bucuresti, ncepand cu anul 1967).
Schema generala a structurii unui astfel de calculator este prezentata pe pagina urmatoare.
Notat iile folosite (devenite standard odata cu generat ia a treia de calculatoare):
DPU - Unitatea de prelucrare a datelor
CPU - Unitatea de control a programului
ALU - Unitatea aritmetica si logica
IO - Intrare / iesire
SR - Registru de stari
IR - Registru de instruct iuni
AR - Registru de calcul pentru instruct iuni aritmetice
PC - Registru de control al programului
1.2. STRUCTURA GENERAL
A A MASINILOR DE CALCUL 9
?
6
?
6
?
6
?
6
?
6
-
?
6
6
?
?
6
?
6
6
?
?
6 6
6
-
-
-
. . .
?
6
?
6
DPU
ALU
Fixed - point
ALU
Decimal
ALU
Floating - point
4 registri de 64 bit i
n virgula mobila 16 registri generali
de 32 bit i
IR AR SR PC
PSW (Program status word)
Decoder instruct iuni
(poate micro-programat)
Semnale
control
CPU
Periferic
IO
Periferic
IO
Interfat a
IO
Procesor
IO
Procesor
IO
Unitatea de control a
memoriei principale
Memoria
principala
Caracteristici ale calculatoarelor din generat ia 3 (IBM/360 IBM/390)
Introduc ideea de standardizare a construct iei, pentru a accepta limbaje de progra-
mare universale.
Constituie baza arhitecturii calculatoarelor actuale.
Introduc unitat ile de informat ie: octet (byte), cuvant (word), cuvant dublu, registru.
Introduc ideea de micro - programare.
10 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
Sistemul actual uzual de calcul este computerul, tratat ca unitate independenta (PC
sau stat ie de lucru) dedicata unui singur utilizator.
Structura lui este:
Magistrala sistem
Interfat a
magistrala
Cache
CPU
M
HDD
control
Video
control
Tastatura
control
Ret ea
control
Memorie
HDD
Monitor Tastatura
Ret ea
6
?
6
?
Control interfat a periferice
Magistrala IO (locala)
?
6
?
6
?
6
?
6
?
6
?
6
?
6
6
6
?
?
Microprocesor
6
?
6
?
Principalul element hard este un microprocesor realizat pe un chip, care cont ine o
versiune a arhitecturii denite de von Neumann.
El asigura un CPU si este responsabil cu aducerea, decodicarea si executarea instruc-
t iunilor.
Datele si instruct iunile au un format standard de grupuri formate din 32 bit i (cuvinte);
acestea sunt unitat ile de baza prelucrate de computer.
CPU este caracterizat printr-un set de circa 200 instruct iuni care realizeaza transferul
si prelucrarea datelor precum si operat ii de control al programelor (cu o structura ramasa
n general aceeasi n timp).
CPU poate suplimentata cu alt chip (interior sau exterior) numit co-procesor, care
implementeaza funct ii specializate, cum ar prelucrarea de interfet e grace.
Rolul memoriei principale M este de a stoca programe si date prelucrate de CPU.
Ea este o memorie cu acces aleator (RAM - random access memory), formata din o
secvent a liniara de componente (de obicei grupuri de 8 bit i, numite bytes sau octet i).
Fiecare byte are asociat o adresa unica, care permite CPU sa citeasca sau sa schimbe
(scrie) cont inutul (pe baza unor instruct iuni de ncarcare sau memorare).
1.2. STRUCTURA GENERAL
A A MASINILOR DE CALCUL 11
Memoria principala M este completata de o memorie secundara, mai mare dar mai
lenta (din punct de vedere al accesului), de obicei situata pe hardiscuri (HDD).
Harddiscurile formeaza o componenta a sistemului de intrare/iesire (IO).
De asemenea, o memorie intermediara, numita cache poate inserata ntre CPU si
M.
Deci un calculator cont ine mai multe tipuri de memorie, care pot ierarhizate n
registrele CPU: memoria cache, memoria principala si memoria secundara.
Aceasta structura complexa rezulta din faptul ca cele mai rapide componente de memo-
rie sunt si cele mai scumpe; deci ierarhizarea asigura CPU cu un acces rapid la un numar
mare de date, la un pret relativ scazut.
Scopul unui sistem IO este de a permite utilizatorului sa comunice cu calculatorul.
Componentele IO sunt atasate la calculatorul gazda prin intermediul unor porturi IO,
a caror funct ie este de a controla transferul de date ntre componenta de intrare/iesire si
memoria principala.
O astfel de componenta are asignata un set de adrese tip memorie care permit utilizarea
de instruct iuni de intrare/iesire ce pot implementate aproape identic cu instruct iunile
de ncarcare respectiv stocare.
Dar deoarece operat iile de intrare/iesire sunt foarte lente, CPU are nevoie de un timp
mult mai lung pentru a accesa un cuvant aat n sistemul IO decat unul din memoria M.
Componentele tradit ionale de intrare/iesire sunt tastatura respectiv ecranul de moni-
tor, adaptate n special pentru procesarea informat iei de tip text.
Adaugarea unei componente punctuale, tip mouse permite introducerea ecranului n
lista componentelor de intrare; el asigura comunicarea utilizator - computer via imagini
grace. Interfet e audio pentru generarea si recunoasterea sunetelor extind aria de lucru
a calculatorului n sistemele multimedia.
12 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
1.3 Micro-controllere
Reducerea impresionanta a dimensiunilor si scaderea costurilor componentelor principale
ale unui calculator a permis construirea unor computere specializate pentru anumite pro-
bleme, numite micro-controllere.
Ele au circuite de control specice, sau sunt lipsite total de componenta logica (cum
ar de exemplu circuitul de control al unei masini de spalat automate).
Programele sunt stocate n memoria ROM (read only memory), care formeaza o
parte a memoriei principale folosite de micro-controller.
Acesta este construit direct n obiectul controlat, ntr-o zona adesea invizibila si inac-
cesibila utilizatorului.
Un micro-controller programat sa efectueze operat iile unei aplicat ii poate nlocui cir-
cuitele de control specice acelei aplicat ii, adesea cu o reducere de cost apreciabila.
Majoritatea calculatoarelor actual operabile sunt micro-controllere construite n di-
verse aparate utilizate n cele mai variate medii.
Scaner
cod
produs
Tastatura
Monitor
si
imprimanta
Cititor
card
Port IO Port IO Port IO Port IO
Magistrala sistem
CPU
(microprocesor)
Port IO RAM ROM Port IO
Micro-controler
Calculator
central
Spre
ret eaua
telefonica
?
6
?
6
?
6
?
6
? ?
6
?
6
6
?
6
?
6
?
6
?
6
?
6 6
Schema de mai sus descrie una din primele aplicat ii ale unui micro-controller: un punct
de vanzare terminal care nlocuieste casa ntr-un supermarket.
1.4. CE
INSEAMN
In acest fel, prin complementarea cifrelor binare care formeaza codul cifrei i se obt ine
codul cifrei 9 i.
Pentru codul Gray, caracteristic este faptul ca orice codicare a unui numar difera de
codicarea succesorului sau prin exact o cifra binara.
Cele doua coduri sunt reprezentate n tabelul urmator:
Cifra 0 1 2 3 4 5 6 7 8 9
Exces 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
2.1.2 Reprezentarea zecimal codicat binar
Aproape toate calculatoarele folosesc pentru memorarea cifrelor zecimale reprezentarea
n cod 8421.
Insa, deoarece sistemele de calcul lucreaza cu octet i, desi sunt suciente 4 bit i pentru
o cifra zecimala, se folosesc doua modalitat i de codicare:
Forma condensata (mpachetata), n care, pe cele 8 pozit ii ale unui octet sunt
reprezentate doua cifre zecimale exprimate n binar;
Forma dilatata (despachetata), n care pe ecare octet se ret ine o singura cifra
zecimala pe ultimii patru pozit ii binare.
Primele patru pozit ii ale ecarui octet sunt ocupate de o marca M.
Exemplul 2.1 Numarul 342 este memorat pe doi octet i n forma mpachetata
0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0
2 4 3 0
si pe trei octet i n forma despachetata:
M 0 0 1 1 M 0 1 0 0 M 0 0 1 0
4 3 2
18 CAPITOLUL 2. REPREZENTAREA NUMERELOR
IN CALCULATOR
2.1.3 Codul ASCII
Char Cod Char Cod Char Cod
(20)
16
@ (40)
16
(60)
16
! (21)
16
A (41)
16
a (61)
16
(22)
16
B (42)
16
b (62)
16
# (23)
16
C (43)
16
c (63)
16
$ (24)
16
D (44)
16
d (64)
16
% (25)
16
E (45)
16
e (65)
16
& (26)
16
F (46)
16
f (66)
16
(27)
16
G (47)
16
g (67)
16
( (28)
16
H (48)
16
h (68)
16
) (29)
16
I (49)
16
i (69)
16
(2A)
16
J (4A)
16
j (6A)
16
+ (2B)
16
K (4B)
16
k (6B)
16
(2C)
16
L (4C)
16
l (6C)
16
(2D)
16
M (4D)
16
m (6D)
16
. (2E)
16
N (4E)
16
n (6E)
16
/ (2F)
16
O (4F)
16
o (6F)
16
0 (30)
16
P (50)
16
p (70)
16
1 (31)
16
Q (51)
16
q (71)
16
2 (32)
16
R (52)
16
r (72)
16
3 (33)
16
S (53)
16
s (73)
16
4 (34)
16
T (54)
16
t (74)
16
5 (35)
16
U (55)
16
u (75)
16
6 (36)
16
V (56)
16
v (76)
16
7 (37)
16
W (57)
16
w (77)
16
8 (38)
16
X (58)
16
x (78)
16
9 (39)
16
Y (59)
16
y (79)
16
: (3A)
16
Z (5A)
16
z (7A)
16
; (3B)
16
[ (5B)
16
{ (7B)
16
< (3C)
16
\ (5C)
16
(7C)
16
= (3D)
16
] (5D)
16
} (7D)
16
> (3E)
16
(5E)
16
(7E)
16
? (3F)
16
(5F)
16
DEL (7F)
16
Un cod foarte important folosit n reprezentarea standard a simbolurilor alfabetice si
numerice este codul ASCII (American Standard Code for Information Interchange).
El are 2
8
= 256 simboluri sursa, codicate n secvent e binare de lungime 8; tabelul
de mai sus cuprinde simbolurile printabile avand codurile ASCII n intervalul [32, 127] (n
2.1. CODURI DE REPREZENTARE A DATELOR 19
domeniul [0, 31] nu sunt simboluri printabile, iar n zona [128, 255] se denesc simboluri
auxiliare, care nu sunt pe tastatura).
De exemplu, litera A, va avea codul hexazecimal - binar
(41)
16
= (01000001)
2
caruia n zecimal i corespunde numarul 65.
De remarcat modalitatea diferita de codicare a cifrelor zecimale.
i=1
a
i
2
i1
iar a
n
este bitul de semn.
Atunci reprezentarea lui a n cod complementar este
a =
n1
i=1
(1 a
i
)2
i1
+ 1 =
n1
i=1
2
i1
n1
i=1
a
i
2
i1
+ 1 = 2
n1
1 a + 1 = 2
n1
a
Deci
a = 2
n1
a
si diferent a b a se poate scrie
b a = b +a 2
n1
De remarcat ca numarul 2
n1
nu afecteaza pozit iile binare ale numarului, ci numai
bitul de semn.
Revenind la algoritm, pentru scaderea b a se efectueaza urmatorii pasi:
1. Se trece a n cod complementar;
2. Se face adunarea dintre b si a scris n noua reprezentare;
3. Daca rezultatul este negativ, acesta este reprezentat tot n cod complementar;
4. Daca apare transport la pozit ia alocata semnului, acesta se ignora.
2.2. REPREZENTAREA NUMERELOR
IN SISTEMELE DE CALCUL 23
Exemplul 2.4 Sa se efectueze 32 41 cu reprezentare n cod complementar a scazatoru-
lui, pe 8 cifre binare.
32 = (100000)
2
, 41 = (101001)
2
.
Efectuarea operat iei de scadere este redata prin schema urmatoare:
?
+41 n cod direct
+32 n cod direct
41 n cod complementar
+1
0 0 1 0 1 0 0 1
0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0
1 1 0 1 0 1 1 1
1 1 1 0 1 1 1 1 32 + (41) = 9 n cod complementar
2.2.3 Reprezentarea numerelor reale n virgula mobila
Numerele reale se reprezinta n interiorul unui sistem de calcul sub forma fract ionara,
ntr-o codicare numita virgula mobila (oating point).
Inafara celor trei operat ii folosite pana acum de o algebra booleana (, , ), mai sunt
cunoscute si alte operat ii.
Astfel, putem enumera:
1. Diferent a simetrica: a b = (a b) (a b);
2. Operatorul Sheer: a|b = a b;
3. Echivalent a: a b = (a b) (a b);
4. Implicat ia: a b = b a.
32 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Observat ia 3.1
In arhitectura calculatorului, implementarea operatorului este notata
cu XOR, iar | cu NAND.
Cei patru operatori au o serie de proprietat i specice ale caror demonstrat ii le lasam ca
exercit iu.
Propozit ia 3.1
1. 0 0 = 1 1 = 0, 0 1 = 1 0 = 1;
2. este asociativa si comutativa;
3. a 0 = a, a 1 = a;
4. a a = 0, a a = 1;
5. a b = c = a c = b;
6. a b = c = a b c = 0;
7. a (b c) = (a b) (a c).
Propozit ia 3.2
1. a b = a b;
2. a b = a b;
3. a b = (a b) (b a);
Propozit ia 3.3 Armat iile
1. a b = 0;
2. a b = 1;
3. a = b;
sunt echivalente.
3.4. FUNCT II BOOLEENE 33
3.4 Funct ii booleene
In mod uzual, operatorul se omite (similar cu operatorul de nmult ire din mate-
matica).
Vom nota de asemenea {0, 1}
n
= {0, 1} {0, 1} . . . {0, 1}
n ori
.
Denit ia 3.2 O funct ie booleana f(x
1
, x
2
, . . . , x
n
) este o aplicat ie
f : {0, 1}
n
{0, 1}.
Exemplul 3.3 Pentru n = 2 se pot construi 16 funct ii booleene de doua variabile:
x
1
x
2
f
0
f
1
f
2
f
3
f
4
f
5
f
6
f
7
f
8
f
9
f
10
f
11
f
12
f
13
f
14
f
15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
k=1
i
k
2
nk
i
k
{0, 1}.
Atunci funct ia minterm m
i
(x
1
, x
2
, . . . , x
n
) F
n
este denita prin
m
i
(x
1
, x
2
, . . . , x
n
) =
1 daca x
1
= i
1
, x
2
= i
2
, . . . , x
n
= i
n
0 altfel
Vom nota n continuare i = (i
1
, i
2
, . . . , i
n
)
2
reprezentarea binara a numarului ntreg i
[0, 2
n
1].
Propozit ia 3.5
1. m
i
m
j
= 0 daca i = j.
2. m
i
m
i
= m
i
.
Demonstrat ie: Imediat.
Teorema 3.9 Orice funct ie booleana poate reprezentatan mod unic ca suma de mintermi.
Demonstrat ie: Prin induct ie dupa k = w(f).
k = 0: trivial;
k = 1: orice astfel de funct ie este un minterm.
k k +1: Sa presupunem ca f este o funct ie de pondere k +1. Deci exista un ntreg
i = (i
1
, i
2
, . . . , i
n
)
2
astfel ca f(i
1
, i
2
, . . . , i
n
) = 1.
Atunci conform Teoremei 3.8 f(x
1
, x
2
, . . . , x
n
) = m
i
(x
1
, x
2
, . . . , x
n
)+g(x
1
, x
2
, . . . , x
n
)
unde w(g) k.
Unicitatea este si ea imediata.
Corolarul 3.1 Orice funct ie booleana f F
n
este de forma
f(x
1
, x
2
, . . . , x
n
) =
iI
m
i
(x
1
, x
2
, . . . , x
n
)
unde I {0, 1, . . . , 2
n
1}.
Corolarul 3.2 Daca
f(x
1
, x
2
, . . . , x
n
) =
iI
m
i
(x
1
, x
2
, . . . , x
n
), g(x
1
, x
2
, . . . , x
n
) =
iJ
m
i
(x
1
, x
2
, . . . , x
n
)
atunci
f(x
1
, x
2
, . . . , x
n
) + g(x
1
, x
2
, . . . , x
n
) =
iIJ
m
i
(x
1
, x
2
, . . . , x
n
),
f(x
1
, x
2
, . . . , x
n
)g(x
1
, x
2
, . . . , x
n
) =
iIJ
m
i
(x
1
, x
2
, . . . , x
n
),
f
(x
1
, x
2
, . . . , x
n
) =
iI
m
i
(x
1
, x
2
, . . . , x
n
).
36 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Exemplul 3.6 Fie n = 2 si funct ia booleana:
f(x
1
, x
2
) = m
0
(x
1
, x
2
) + m
2
(x
1
, x
2
) + m
3
(x
1
, x
2
)
Un tabel cu valorile tuturor funct iilor minterm de doua variabile si cu valorile funct iei
f este:
x
1
x
2
m
0
(x
1
, x
2
) m
1
(x
1
, x
2
) m
2
(x
1
, x
2
) m
3
(x
1
, x
2
) f
0 0 1 0 0 0 1
0 1 0 1 0 0 0
1 0 0 0 1 0 1
1 1 0 0 0 1 1
3.5 Forme canonice
Scopul acestui paragraf este de a asocia ecarei funct ii booleene f o expresie booleana
scrisa sub o forma unica. Aceasta se va numi forma canonica a lui f sau forma normal
disjunctiva a lui f.
O consecint a importanta a acestei reprezentari va aceea ca putem verica echivalent a
a doua expresii cercetand daca acestea pot reduse la aceeasi forma canonica (deci nu vom
mai face apel la construct ia tabelelor de valori a funct iei asociate, destul de costisitoare
din punct de vedere al complexitat ii).
Denit ia 3.6 Un literal este o variabila sau complementul ei.
Denit ia 3.7 Fie B
n
= {x
1
, x
2
, . . . , x
n
}. O expresie este un minterm sau un produs
fundamental n algebra Boole B
n
= (B
n
, +, , 0, 1) daca si numai daca este concatenarea
a n literali distinct i.
Exemplul 3.7 Cei opt mintermi din B
3
sunt
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
Mintermii vor notat i n felul urmator: e (i
1
, i
2
, . . . , i
n
) {0, 1}
n
.
Atunci un minterm standard este
x
i
1
1
x
i
2
2
. . . x
i
n
n
unde
x
i
j
j
=
x
j
pentru i
j
= 0
x
j
pentru i
j
= 1
(1 j n).
Exemplul 3.8 x
0
1
x
1
2
x
1
3
= x
1
x
2
x
3
, x
1
1
x
0
2
x
0
3
= x
1
x
2
x
3
etc.
3.5. FORME CANONICE 37
Observat ia 3.2 Fiecare minterm x
i
1
1
x
i
2
2
. . . x
i
n
n
corespunde funct iei booleene
m
i
(x
1
, x
2
, . . . , x
n
) unde i = (i
1
, i
2
, . . . , i
n
)
2
.
Teorema 3.10 Daca f este o funct ie booleana de o variabila (f F
1
) atunci
f(x) = xf(1) + xf(0).
Demonstrat ie: Sa consideram cele doua valori posibile pe care le poate lua variabila
booleana x.
Pentru x = 1 vom avea
f(1) = 1 f(1) + 0 f(0) = f(1).
Similar pentru asignarea x = 0.
Deci egalitatea se verica pentru toate asignarile posibile ale variabilei.
Urmatoarea teorema da forma canonica pentru orice funct ie booleana de n variabile.
Teorema 3.11 Daca f este o funct ie booleana de n variabile (f F
n
) atunci
f(x
1
, x
2
, . . . , x
n
) =
1
i
1
=0
1
i
2
=0
. . .
1
i
n
=0
f(i
1
, i
2
, . . . , i
n
)x
i
1
1
x
i
2
2
. . . x
i
n
n
.
Aceasta este forma normal disjunctiva a funct iei f.
Demonstrat ie: Prin induct ie dupa numarul n de variabile.
Pentru n = 1 avem rezultatul dat de Teorema 3.10.
Sa presupunem Teorema 3.11 adevarata pentru n 1 variabile, adica
f(x
1
, x
2
, . . . , x
n
) =
1
i
2
=0
. . .
1
i
n
=0
f(x
1
, i
2
, . . . , i
n
)x
i
2
2
. . . x
i
n
n
.
Pe de alta parte, f(x
1
, i
2
, . . . , i
n
) = x
0
1
f(0, i
2
, . . . , i
n
) + x
1
1
f(1, i
2
, . . . , i
n
) si, dupa nlo-
cuire
f(x
1
, x
2
, . . . , x
n
) =
1
i
2
=0
. . .
1
i
n
=0
(x
0
1
f(0, i
2
, . . . , i
n
) + x
1
1
f(1, i
2
, . . . , i
n
))x
i
2
2
. . . x
i
n
n
=
1
i
1
=0
. . .
1
i
n
=0
f(i
1
, i
2
, . . . , i
n
)x
i
1
1
x
i
2
2
. . . x
i
n
n
.
Corolarul 3.3 Forma normal disjunctiva a unei funct ii booleene este unica.
Demonstrat ie: Sa presupunem ca exista doua forme normale diferite corespunzatoare lui
f.
Deci exista cel put in un (i
1
, i
2
, . . . , i
n
) {0, 1}
n
pentru care coecient ii din cele doua
expresii sunt diferit i.
Consideram asignarea denita prin x
1
= i
1
, . . . , x
n
= i
n
.
38 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Evalu and prima expresie obt inem f(i
1
, i
2
, . . . , i
n
) = 1(0), iar pentru a doua expresie
f(i
1
, i
2
, . . . , i
n
) = 0(1), ceea ce contrazice faptul ca ambele expresii reprezinta f.
Fiind data o funct ie booleana f, sa vedem cum se poate scrie forma sa normal dis-
junctiva.
Cel mai sugestiv este sa aratam aceasta printr-un exemplu.
Exemplul 3.9 Fie f F
3
denita de urmatorul tabel:
x
1
0 0 0 0 1 1 1 1
x
2
0 0 1 1 0 0 1 1
x
3
0 1 0 1 0 1 0 1
f 0 1 0 1 0 1 0 1
Pe linia lui f, primul element este 0.
Deci termenul corespunzator este f(0, 0, 0)x
0
1
x
0
2
x
0
3
= 0 x
1
x
2
x
3
= 0.
Deoarece a + 0 = a, contribut ia oricarei coloane unde valoarea lui f este 0 poate
ignorata.
Daca valoarea lui f este 1, termenul respectiv va pastrat.
Deci
f(x
1
, x
2
, x
3
) = x
0
1
x
0
2
x
1
3
+x
0
1
x
1
2
x
1
3
+x
1
1
x
0
2
x
1
3
+x
1
1
x
1
2
x
1
3
= x
1
x
2
x
3
+x
1
x
2
x
3
+x
1
x
2
x
3
+x
1
x
2
x
3
.
3.6 Inele booleene
Denit ia 3.8 Un inel boolean este un inel unitar n care orice element este idempotent.
Fie B= (B, , , 0, 1) o algebra Boole, n care denim operat iile (pentru orice x, y B):
x y = (x y) (x y), x y = x y.
Structura (B, , ) formeaza o structura de inel boolean.
Regulile de comutativitate si asociativitate fat a de se deduc din postulatele algebrei
booleene B.
Din relat ia x 1 = 1 x = x rezulta ca 1 este element neutru.
si
1
).
Indiferent daca modul de activare/dezactivare este de tip mecanic, electric, electro-
magnetic, integrat, imprimat, neural, ideea de baza este aceeasi: pentru nt elegere, vom
considera circuitul sub forma unei linii legata la o sursa permanenta de curent, linie
ntrerupt a de o poarta al carei rol este de a nchide sau deschide circuitul:
1
Denumirea completa este Circuit Logic Combinat ional.
41
42 CAPITOLUL 4. SISTEME DIGITALE
> >
. .
--
a a
a = 0 (dezactivat) a = 1 (activat)
Poarta poate deschisa (dezactivata) prin intermediul unui arc, care n pozit ie de repaos
(a = 0) este destins.
Daca a = 1, acest arc este comprimat si nchide poarta, activand astfel circuitul, prin
care trece (de fapt) valoarea lui a.
Vom nota un astfel de circuit prin a .
Sa denim modul de combinare al circuitelor elementare, folosind operat iile booleene
(disjunct ie, conjunct ie, negat ie).
Implementarea acestor operat ii se realizeaza prin circuite numite port i.
Poarta AND:
Fie a, b doua variabile booleene. Pentru ab (sau n funct ie de notat ie a b) se
poate construi circuitul
> >
> >
a
b
(1)
`
a
b
a b
(2) (3)
0 1
0 0 0
1 0 1
(1) este structura funct ionala a circuitului, (2) este notat ia logica, iar (3) - tabela
de operat ie a operatorului AND operatorul dintr-o algebra Boole.
Se observa ca valoarea de iesire este 1 daca si numai daca a = b = 1.
Simbolul port ii AND (Figura (2)) poate generalizat la n intrari a
1
, . . . , a
n
, obt i-
nandu-se o poarta AND
n
.
Poarta OR:
Pentru poarta care realizeaza circuitul a + b (a b n notat ie booleana), structura
funct ionala este reprezentata n Figura (1), simbolul logic de Figura (2), iar tabela
de operat ii - de Figura (3):
4.1. CIRCUITE COMBINAT IONALE 43
`
`
>>
>>
> >
a
b
`
a
b
a +b
(1) (2) (3)
+ 0 1
0 0 1
1 1 1
Evident, si aceasta poarta poate extinsa la n intrari: OR
n
.
Poarta NOT:
O poarta pentru realizarea operat iei de complementare (negat ie) a variabilei booleene
a este Figura (1):
`
`
>>
>>
a
a
a a
(1) (2) (3)
Se observa ca circuitul este nchis prin pozit ia relaxata a arcului (a = 0); la com-
primarea acestuia (a = 1) circuitul se dezactiveaza (deschide).
Simbolul logic este (2), iar uneori chiar (3).
Inafara acestor operat ii, n construct ia circuitelor se mai folosesc trei tipuri supli-
mentare de port i: NAND, NOR si XOR.
Poarta NAND:
Este un circuit care implementeaza expresia booleana a b. Figura (2) reprezinta
o alta implementare, obt inuta n urma relat iei De Morgan: a b = a b.
Simbolul logic al port ii NAND este Figura (3).
> >
> >
> >
a
b
(1)
>>
>>
> >
b
a (2)
`
a
b
a b
(3)
44 CAPITOLUL 4. SISTEME DIGITALE
Tabela de operat ii a operatorului NAND (similar operatorului Sheer din algebra
Boole) este
|| 0 1
0 1 1
1 1 0
Poarta NOR:
Este un operator mai put in folosit n teoria algebrelor Boole (nu corespunde unui
operator logic consacrat).
Reprezinta operat ia a b = a b.
`
a
b
a b
-
-
-
.
.
-
-
-
.
.
a
b
Tabela de operat ii este:
NOR 0 1
0 1 0
1 0 0
De fapt acesti operatori (NAND si NOR) se obt in prin legarea n serie a doua
port i: o poarta AND (respectiv OR) si o poarta NOT.
Teoretic ei se pot generaliza la NAND
n
(respectiv NOR
n
).
Poarta XOR:
Este implementarea operat iei sau logic ab ba (operatorul dintr-o algebra
Boole):
> >
>>
>>
>>
>>
> >
a
b
a
b
(1)
`
a
b
ab ba
(2) (3)
0 1
0 0 1
1 1 0
4.1. CIRCUITE COMBINAT IONALE 45
4.1.2 Circuite
In linii mari, arhitectura unui calculator se bazeaza pe construirea de circuite care formeaza
diverse componente ale unui computer (n special unitatea logico-aritmetica, unitat ile de
memorie, magistralele de sincronizare, structuri de control).
Cele mai simple circuite sunt cele combinat ionale.
Conform Denit iei 4.2, un circuit combinat ional este o structura arborescenta con-
struita folosind un numar nit de port i.
De exemplu, circuitul urmator nu este combinat ional:
a
b
a
b
c
f(a, b, c)
Cum aceasta expresie este nsa egala cu bcab = 0, pentru ea se poate construi un circuit
echivalent redus la un simplu punct.
Evident, acesta este mult mai simplu (nu are nici o poarta, n comparat ie cu circuitul
init ial cu doua port i).
Denit ia 4.4 Complexitatea unui circuit combinat ional este dat de numarul de port i.
Nu vom face o prezentare a not iunilor de complexitate (spat iu sau timp), acestea ind
identice cu cele folosite n algoritmica.
46 CAPITOLUL 4. SISTEME DIGITALE
4.2 Extensii
Putem construi ntreaga arhitectura a unui calculator plecand de la un element teoretic
de baza numit sistem digital.
Denit ia 4.5 Fie V un alfabet nit nevid si m, n doua numere naturale. Se numeste
sistem digital structura S = (X, Y, f) unde X = V
n
, Y = V
m
, f : X Y .
Un exemplu simplu de sistem digital este circuitul combinat ional, exprimabil printr-o
funct ie booleana.
In aceasta carte vom considera numai sistemele digitale binare, unde V = {0, 1}. De
aceea nu va nici o ambiguitate daca vom desemna sistemele digitale binare cu termenul
general de sisteme digitale.
Funct ia f se numeste funct ie de transfer.
De asemenea, cazurile n = 0 sau m = 0 corespund unor sisteme digitale speciale
(de iesire respectiv intrare) care vor studiate separat.
In continuare consideram numai
m n = 0.
Sistemele digitale date prin Denit ia 4.5 se pot reprezenta grac sub forma urmatoare:
S
n
m
Y
X
unde prin convent ie un ux de n date se reprezenta printr-o singura sageata
marcata cu valoarea lui n:
n
A = (a
1
, a
2
, . . . , a
n
)
a
1
a
2
a
n
. . .
4.2. EXTENSII 47
Operat iile de baza care se pot deni pentru sistemele digitale sunt cele de legare n
serie si n paralel, operat ii numite extensii.
Denit ia 4.6 Fie sistemele digitale S
i
= (X
i
, Y
i
, f
i
), i = 1, 2 unde
X
1
= {0, 1}
n
, Y
1
= X
2
= {0, 1}
m
, Y
2
= {0, 1}
p
Se numeste extensie seriala sistemul digital S = (X, Y, f) unde X = X
1
, Y = Y
2
, iar
funct ia de transfer f : X Y este denita prin f = f
2
f
1
.
Grac, are loc urmatoarea operat ie:
S
1
S
2
n
m
p
X
1
Y
2
S
S
1
S
2
n
X
1
X
2
Y
1
Y
2
p
m
=
Denit ia 4.7 Fie S
i
= (X
i
, Y
i
, f
i
), (i = 1, 2) doua sisteme digitale. Extensia paralela
S
1
S
2
este sistemul
S = (X
1
X
2
, Y
1
Y
2
, f
12
)
unde f
12
: X
1
X
2
Y
1
Y
2
este denita f
12
(x, y) = (f
1
(x), f
2
(y)).
Grac, are loc operat ia de combinare:
S
1
S
2
n
1
m
1
n
2
m
2
X
1
Y
1
X
2
Y
2
S
1
S
2
n
1
+n
2
m
1
+m
2
n
1
n
2
m
1
m
2
X
1
X
2
Y
1
Y
2
=
S
De remarcat ca ntr-o extensie paralela cele doua sisteme digitale nu interact ioneaza.
48 CAPITOLUL 4. SISTEME DIGITALE
Exemplul 4.2 Sa consideram sistemele digitale S
1
= ({x
1
1
, x
1
2
}, {y
1
1
}, f
1
) si
S
2
= ({x
2
1
, x
2
2
, x
2
3
}, {y
2
1
, y
2
2
}, f
2
) date de gura
S
1
S
2
x
1
1
x
1
2
x
2
1
x
2
2
x
2
3
y
1
1
y
2
1
y
2
2
Extensia paralela S
1
S
2
este
S
1
S
2
x
1
1
x
1
2
x
2
1
x
2
2 x
2
3
y
1
1
y
2
1
y
2
2
iar extensia seriala a lui S
2
cu S
1
:
S
1
S
2
x
2
1
x
2
2
x
2
3
y
1
1
y
2
1
= x
1
1
y
2
2
= x
1
2
Denit ia 4.8 Fie sistemele digitale S
i
= (X
i
, Y
i
, f
i
), (1 i 4) cu X
i
= {0, 1}
n
i
, Y
i
=
{0, 1}
m
i
si m
1
+m
2
= n
3
+n
4
. O extensie serial-paralela este sistemul
S = (X
1
X
2
, Y
3
Y
4
, f)
unde f : X
1
X
2
Y
3
Y
4
este denita f = f
34
f
12
(f
12
si f
34
sunt funct iile de
transfer ale extensiilor paralele S
1
S
2
respectiv S
3
S
4
).
Grac, o extensie serial - paralela are forma
4.2. EXTENSII 49
S
1
S
2
n
1
+n
2
n
1
n
2
m
1
m
1
+m
2
n
3
m
2
n
4
S
3
S
4
m
3
m
3
+m
4
m
4
X
1
X
2
Y
3
Y
4
S
Exemplul 4.3 Un circuit combinat ional care incrementeaza (s = 0) sau decrementeaza
(s = 1) un numar x
1
x
0
format din doi bit i, poate denit astfel:
INC DEC
MUX MUX
,
>
>
>
>
>
>.
x
1
x
0
s
y
1
y
0
INCR (incrementare), DECR (decrementare), MUX (select ie) sunt circuite combinat io-
nale (care vor denite mai tarziu), iar circuitul nal rezultat prin extensia serial -
paralela este evident tot combinat ional.
50 CAPITOLUL 4. SISTEME DIGITALE
4.3 Cicluri
Pentru cresterea gradului de complexitate al circuitelor digitale se deneste o noua opera-
t ie numita ciclu.
Denit ia 4.9 Fie sistemul digital S
1
= (X X
1
, Y Y
1
, h) unde X
1
= Y
1
. Notam
h = (f, f
1
) unde f : X X
1
Y, f
1
: X X
1
Y
1
.
Prin identicarea (conectarea seriala) a lui Y
1
cu X
1
se obt ine o ciclu si noul sistem
are forma S = (X, Y, g), unde g : X Y este denita g(x) = f(x, f
1
(x, y)); f
1
se
numeste funct ie de tranzit ie si verica denit ia recursiva y = f
1
(x, f
1
(x, y)).
Vom avea deci urmatoarea situat ie:
S
1
m
X X
1
Y Y
1
S
1
p
`
m
X X
1
= Y
1
Y S
S
p
X
Y
Dupa cum se observa n Denit ia 4.5, apare o noua variabila ascunsa care ia valori n
mult imea Q = X
1
= Y
1
; atunci f : X Q Y, f
1
: X Q Q.
Mult imea Q caracterizeaza comportarea interna a sistemului digital; aceasta com-
portare se mai numeste stare interna sau pe scurt stare.
Efectul fundamental al comportarii interne consta n evolut ia sistemului pe spat iul de
valori Q, fara modicari ale intrarii X.
Pentru un a X aplicat constant la intrare, iesirea poate prezenta diverse variat ii. De
aceea, spunem ca autonomia unui sistem creste ca urmare a introducerii acestuia
ntr-o ciclu.
De obicei noile elemente legate de stare sunt introduse n denit ia sistemului; astfel,
el se va scrie S = (X, Y, Q, f
1
, g).
Exemplul 4.4 Sa consideram sistemul S
1
= (XX
1
, Y, f) unde X = {0, 1}, X
1
= Y =
{0, 1}
2
, iar f este denit de tabelul
X X
1
Y X X
1
Y
0 00 01 1 00 01
0 01 00 1 01 10
0 10 00 1 10 11
0 11 10 1 11 00
4.3. CICLURI 51
Prin identicarea (legarea seriala a) lui Y cu X
1
se obt ine un nou sistem S.
Tranzit iile sale sunt ilustrate mai jos (se face abstract ie de timpul real cat este aplicat
un semnal la intrare).
S
1
2
X X
1
Y
S
,
`
_
`
_
`
_
`
_
00 01
10 11
0
0, 1
1 0
1
0
1
Iesirea sistemului S
1
este aceeasi cu cea a sistemului S.
Dupa nchiderea ciclului (X
1
= Y ), sistemul S
1
capata n funct ie de tranzit ie un
comportament al iesirii autonom de intrare.
De exemplu, intrarea (constanta) 11111 . . . n sistemul S va determine iesirea ciclica
01 10 11 00 01 . . .
Denit ia 4.10 Comportarea unui sistem digital S este autonoma daca si numai daca
pentru o intrare constanta, iesirea are un comportament dinamic.
Sa introducem acum not iunea de subciclu.
Denit ia 4.11 Un ciclu A este inclus n alt ciclu B daca A apart ine unui sistem care
face parte dintr-o extensie seriala nchisa prin ciclul B.
Spunem ca A este subciclu al lui B.
De exemplu, n gura urmatoare, (1) este subciclu al lui (2).
S
1
S
2
X
(1)
(2)
Y
Se poate da acum o denit ie a sistemelor digitale de ordin n.
52 CAPITOLUL 4. SISTEME DIGITALE
Denit ia 4.12 Un sistem de ordin n (n 0) n DS se deneste recursiv astfel:
1. Orice circuit combinat ional (fara cicluri) este un 0 DS.
2. Un (n + 1) DS sistem se obt ine dintr-un n DS adaugand un ciclu care include
toate cele n cicluri anterioare.
3. Orice n DS se obt ine prin aplicarea regulilor anterioare.
De-a lungul acestei cart i se va arata urmatoarea corespondent a ierarhica pentru n
DS, care corespunde arhitecturii unui calculator:
0 DS: sunt circuite combinat ionale (fara autonomie);
1 DS: circuite de memorie (cu autonomie pe spat iul starilor);
2 DS: automate nite (cu autonomie pe tipul de comportare);
3 DS: procesoare (cu autonomie pe interpretarea starilor interne);
4 DS: calculatoare
4.4 Exercit ii
1. Construit i circuite care realizeaza port ile AND, OR, NOT, NOR si XOR folosind
numai port i NAND.
2. Construit i circuite care realizeaza port ile AND, OR, NOT, NAND si XOR folosind
numai port i NOR.
3. Se da circuitul:
.
.
.
.
.
.
,
,
,
a
b
c
x
y
a
b
c
f(a, b, c)
Aranjat i raspunsul n forma normal disjunctiva, apoi forma normal conjunctiva.
9. Sa se construiasca un circuit cu doua port i pentru implementarea funct iei booleene
f(a, b) = ab +ab
Capitolul 5
Sisteme 0 DS
Acestea sunt cele mai simple tipuri de sisteme digitale, caracterizate complet prin funct ii
booleene.
Astfel, multe funct ii digitale pot generate plecand de la circuitele elementare care le
realizeaza, la care se adauga o regula recursiva (pentru executarea funct iei independent
de marimea intrarii).
Vom trece n revista cele mai importante sisteme care pot descrise n acest mod.
5.1 Decodicatoare
Un sistem digital are drept mult ime de valori de intrare n-tupluri binare din {0, 1}
n
.
Semnalul care vine printr-un canal zic trebuie transferat ntai ntr-o astfel de valoare,
acceptata de intrarea sistemului.
De aceea, prima problema care trebuie rezolvata este standardizarea si determinarea
exacta a semnalului recept ionat.
Aceasta este una din principalele funct ii ale unui sistem digital.
Inainte de a genera
un raspuns semnalului primit, trebuie sa stim ce semnal s-a primit.
Circuitul care ndeplineste acest deziderat se numeste decodicator.
Cel mai simplu decodicator este decodicatorul elementar (EDCD), care ca scop
determinarea valorii unui bit.
Schema sa de construct ie este data de Figura (a) sau (b), iar reprezentarea simbolica
Figura (c) respectiv (d):
55
56 CAPITOLUL 5. SISTEME 0 DS
.
.
.
,
x
0
y
0
y
1
(a)
x
0
.
.
.
,
.
.
.
y
1
y
0
(b)
EDCD
x
0
y
0
y
1
(c)
EDCD
x
0
y
0
y
1
(d)
Decodicatorul elementar a fost obt inut prin extensia paralela a circuitelor care realizeaza
cele mai simple funct ii f(x
0
) = y
1
= x
0
(funct ia identica) si g(x
0
) = y
0
= x
0
(funct ia
NOT).
Se observa ca permanent una si numai una din liniile de iesire are valoarea
1
(este
activa): daca este activa iesirea y
0
, atunci intrarea a avut valoarea
0
.
Determinarea valorii exacte a bitului de intrare x
0
se face deci aand ce iesire a de-
codicatorului este activa.
Pentru a izola iesirea din canal (sau din alt sistem digital) de intrarea n decodicator
(lucru recomandat n practica), ntre cele doua circuite se mai insereaza o poarta logica;
cum singurul operator unar utilizat este NOT, el se va adauga printr-o extensie seriala,
obt inandu-se un EDCD cu buer (gura (b)).
In acest fel, comportamentul unui EDCD este protejat de eventuale probleme ale
circuitului care asigura intrarea.
Generalizand, obiectivul acestei sect iuni este aceea de a construi un decodicator
(DCD) cu n intrari (DCD
n
) pentru decodicarea semnalelor formate din n bit i.
Ulterior, orice sistem digital va avea intrarea conectata la iesirea unui de-
codicator.
Denit ia 5.1 Un DCD
n
este un circuit combinat ional cu intrarea X = {0, 1}
n
formata
din n bit i (x
n1
, . . . , x
1
, x
0
) si iesirea Y reprezentata prin m = 2
n
bit i y
m1
, . . . , y
0
.
Fiecare iesire este activa numai pentru o anumita congurat ie binara de intrare, si
reciproc ecare congurat ie de intrare activeaza un singur bit de iesire.
Structura unui DCD
n
se deneste recursiv. Astfel:
1. Un DCD
1
este un EDCD reprezentat n gura (b);
2. Un DCD
n
(n 2) se obt ine combinand un DCD
n1
cu un DCD
1
dupa regula din
gura urmatoare:
5.1. DECODIFICATOARE 57
`` `` `
. . . . . .
, ,
, ,
DCD
n1
,
(x
n2
, . . . , x
0
)
n1
x
n1
y
0
y
1
y
2
n1
y
0
y
1
y
2
n1
1
y
2
n1 y
2
n
1
DCD
n
Singura dicultate n aceasta construct ie consta n adancimea (numarul mare de nivele
ale) structurii.
x
0
x
1
x
2
x
0
x
1
x
2
y
(b)
y
(a)
=
Noul DCD va avea numai n 1 nivele.
Procedeul se repeta de nca n 1 ori; n nal se obt ine un DCD
n
cu n intrari, 2n
invertoare, 2
n
iesiri, dar numai 2
n
port i AND, toate situate pe un singur nivel.
58 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.1 Pentru n = 3 vom avea decodicatorul DCD
3
cu schema:
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
000 100 010 110 001 101 011 111
,
,
,
,
,
,
x
0
x
1
x
2
1
0
1
0
1
0
Pentru un mesaj de forma 110, intrarea va x
0
:= 1, x
1
:= 1, x
0
:= 0. Urmarind
circuitul decodicator DCD
3
, se obt ine y
3
= 1 si y
i
= 0 pentru i = 3.
Ca o remarca, iesirea activa dintr-un DCD
n
va y
i
daca si numai daca reprezentarea n
binar a lui i este x
n1
x
n2
. . . x
0
.
5.2. CODIFICATORI 59
5.2 Codicatori
Dupa cum s-a vazut, un decodicator sistematizeaza intrarea ntr-un sistem digital.
`
C
B
A
x
2
x
1
x
0
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
C
+ S
A, B sunt numerele (de un bit) care se aduna, iar C este bitul suplimentar de deplasare
(de la nsumarea altor doi bit i precedent i). Sunt doua iesiri: S - valoarea sumei binare
dintre A si B, si C
+
- valoarea noii deplasari.
Pentru construct ie vom folosi:
- Un decodicator DCD
3
ale carui port i de iesire sunt complementate (n acest exem-
plu);
- Un codicator compus din doua port i NAND, ecare cu cate 4 intrari.
Deci avem de-a face cu un (8, 2) - codicator. Pentru a vedea cum lucreaza, vom t ine
cont de urmatoarea tabela de decodicare:
60 CAPITOLUL 5. SISTEME 0 DS
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
A x
0
0 1 0 1 0 1 0 1
B x
1
0 0 1 1 0 0 1 1
C x
2
0 0 0 0 1 1 1 1
Sa presupunem ca avem A = 1, B = 0, C = 1; aceasta corespunde situat iei y
5
= 1, y
i
=
0 (i = 5). Deci din DCD
3
va iesi y
5
= 0, y
i
= 1. Rezultatele celor doua port i NAND
sunt:
S = y
1
y
2
y
4
y
7
= 1 1 1 1 = 1 = 0
C
+
= y
3
y
5
y
6
y
7
= 0 = 1
In general, operatorul OR corespunde not iunii de codicare iar AND - celei de deco-
dicare (OR distruge identitatea componentelor, pe cand AND pregureaza o anumita
congurat ie binara).
Daca dorim sa reprezentam toate funct iile binare cu 3 intrari si 2 iesiri, vor necesare
doua port i NAND cu cel mult opt intrari ecare.
Cele 2
16
funct ii logice posibile vor implementate folosind circuitul din Exemplul 5.2
n care se pun punctele (conectorii) conform iesirilor din tabela care deneste funct ia
logica respectiva.
Circuitul rezultat poate interpretat si ca o memorie xa.
Intr-adevar, daca se considera intrarile drept adrese, atunci la ecare adresa exista
stocata o anumita valoare binara, conform distribut iei conectorilor.
Astfel, folosind Exemplul 5.2, la adresa 010 este stocat cuvantul 01, la adresa 110
cuvantul stocat este 10, s.a.m.d.
Acest tip de memorie este numit read only memory (ROM).
Exemplul 5.3 Sa consideram funct ia booleana cu 3 intrari si 3 iesiri denita prin
f(x
0
, x
1
, x
2
) = (x
0
x
1
+x
2
, (x
0
+x
1
)x
2
, x
0
x
1
+x
1
x
2
+x
2
x
0
).
Tabelul ei de valori va
5.2. CODIFICATORI 61
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
x
0
0 1 0 1 0 1 0 1
x
1
0 0 1 1 0 0 1 1
x
2
0 0 0 0 1 1 1 1
f
1
(x
0
, x
1
, x
2
) 1 1 1 1 0 0 0 1
f
2
(x
0
, x
1
, x
2
) 0 0 0 0 0 1 1 1
f
3
(x
0
, x
1
, x
2
) 0 1 1 1 1 1 1 0
unde s-a notat
f
1
(x
0
, x
1
, x
2
) = x
0
x
1
+x
2
,
f
2
(x
0
, x
1
, x
2
) = (x
0
+x
1
)x
2
,
f
3
(x
0
, x
1
, x
2
) = x
0
x
1
+x
1
x
2
+x
2
x
0
.
Funct ia f(x
0
, x
1
, x
2
) = (f
1
(x
0
, x
1
, x
2
), f
2
(x
0
, x
1
, x
2
), f
3
(x
0
, x
1
, x
2
)) este implementata
de circuitul codicator:
DCD
3
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
` x
2
x
1
x
0
`
` `
f
1
f
2
f
3
Folosind deci astfel de circuite, orice funct ie booleana f : V
n
V
p
poate implementata
de un (2
n
, p) - codicator.
Prin urmare, codicatorul este un circuit universal, capabil sa implementeze orice
funct ie logica.
Cum orice funct ie logica se poate deni pe baza unei tabele de adevar, rezulta ca un
circuit ROM este universal.
62 CAPITOLUL 5. SISTEME 0 DS
5.3 Demultiplexori
Demultiplexorul elementar (EDMUX) permite transferul unui semnal E spre doua desti-
nat ii distincte (y
0
sau y
1
), conform unei anumite funct ii de select ie x
0
.
Circuitul asociat acestui deziderat este reprezentat n Figura (a).
.
.
.
``
x
0
y
1
= x
0
E y
0
= x
0
E
E
(a)
,
,
-
-
-
-
-
-
``
.
.
.
-
-
-
x
0
y
0
y
1
E
EDCD
(b)
,
,
EDMUX
E
x
0
y
0
y
1
(c)
Denit ia 5.3 Un demultiplexor cu n intrari (DMUX
n
) transfera semnalul de intrare E
la una din cele m = 2
n
iesiri y
m1
, . . . , y
0
, n conformitate cu un codul binar de select ie
x
n1
, . . . , x
0
.
O prima solut ie pentru implementarea unui demultiplexor consta n generalizarea schemei
(b): anume, utilizarea unui decodicator cu n intrari si m = 2
n
port i NAND, conectate
ca n gura:
`` `
n
.
.
.
DCD
n
(x
n1
, . . . , x
0
)
y
0
y
1
. . . y
m1
E
. . .
y
0
y
1
y
m1
5.3. DEMULTIPLEXORI 63
Observat ia 5.2 A nu se face confuzie de notat ie: variabilele y
i
din interiorul DCD
n
sunt variabile interne ale acestui circuit. Ele difera calitativ de variabilele y
i
care formeaza
iesirea din DMUX
n
.
Deoarece pe nivelul de iesire al unui decodicator se aa port i AND, un procedeu simi-
lar cu cel de la decodicatori permite reconstruirea unui DMUX cu m port i NAND
controlate de n EDCD-uri.
De asemenea, plecand de la denit ia recursiva a decodicatorilor, se poate construi o
denit ie recursiva si pentru demultiplexori.
Exemplul 5.4 Sa construim un circuit DMUX
3
.
Pentru simplicare, vom renunt a la complementarile de securitate.
De asemenea, vom combina cele opt port i AND
3
de la iesirea din DCD
3
(varianta pe
un singur nivel) cu port ile AND din DMUX, obt inand opt port i AND
4
, toate situate pe
un singur nivel.
Cu aceste convent ii, structura circuitului este:
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
x
0
x
1
x
2
E
De exemplu, pentru a trimite semnalul E la adresa y
6
se foloseste codul de select ie
x
2
= 1, x
1
= 1, x
0
= 0 (deoarece reprezentarea lui 6 n binar este 110).
emisa de DCD
3
.
64 CAPITOLUL 5. SISTEME 0 DS
5.4 Multiplexori
Funct ia inversa unui DMUX este multiplexarea (MUX): un circuit care aduna ntr-un
singur loc informat ia venita din mai multe zone.
Ea este de asemenea si o funct ie de comunicare, asigurand interconectarea dintre
blocuri distincte ale unui sistem digital.
Un multiplexor elementar (EMUX) este un selector care transmite semnalul i
1
sau i
0
spre y, n funct ie de valoarea codului de select ie x
0
.
Circuitul este prezentat mai jos, unde un EDCD cu intrarea x
0
deschide numai una
din cele doua port i AND, nsumate apoi n y printr-o poarta OR:
`
` `
-
-
-
-
-
-
,
x
0
i
0
i
1
y = x
0
i
1
+x
0
i
0
EMUX
i
1
i
0
x
0
y
(x
n1
, . . . , x
0
)
y
0
n
y
1
y
m1
i
0
i
1
. . .
i
m1
y
5.4. MULTIPLEXORI 65
O implementare posibila foloseste un DCD
n
legat serial cu o structura AND OR, ca
n gura anterioara.
Iesirea din decodicator activeaza numai o poarta AND, care transfera la iesire in-
trarea selectata.
Acestui circuit i se poate aplica proprietatea de asociativitate ntre port ile AND ale
iesirilor din decodicator si port ile AND suplimentare (ca la DCD-uri).
Se poate da si o denit ie recursiva a unui multiplexor, de complexitate mult redusa:
Denit ia 5.5 MUX
n
poate construit printr-o conectare seriala a unui EMUX cu
doua MUX
n1
conectate paralel; n plus, MUX
1
= EMUX.
MUX
n1
MUX
n1
EMUX
,
`
n1
n1
(x
n2
, . . . , x
0
)
i
0
. . .
i
m/21
i
m/2
. . .
i
m1
i
0
. . .
i
m/21 i
0
. . .
i
m/21
y y
x
n1
x
0
i
0
i
1
y
y
Desi un multiplexor este (prin denit ie) un circuit de select ie, el poate utilizat si pentru
realizarea unor funct ii booleene.
Astfel, sa consideram x
n1
. . . , x
0
ca variabile booleene de intrare ale unei funct ii care
ia valorile i
m1
, . . . , i
0
.
Pentru codul de select ie (considerat intrare) 00 . . . 0 se alege valoarea lui i
0
s.a.m.d.,
pana la intrarea 11 . . . 1 care selecteaza valoarea i
m1
.
Deci MUX
n
executa tabela de adevar a unei funct ii booleene f : V
n
V .
Exemplul 5.5 Sa consideram funct ia de transport C
+
a sumatorului construit n Exem-
plul 5.2. Tabela sa de adevar este data de secvent a
y
3
+y
5
+y
6
+y
7
= 00010000 + 00000100 + 00000010 + 0000001 = 00010111
Daca aceasta secvent a este aplicata iesirilor din DCD
3
cu variabilele de intrare (select ie)
A, B, C, se obt ine y = C
+
:
66 CAPITOLUL 5. SISTEME 0 DS
DCD
3
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
x
0
x
1
x
2
`
A
B
C
0
0
0
1
0
1
1
1
y
sau, mai succint,
MUX
3
,
,
,
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
7
C
B
A
x
2
x
1
x
0
y
C
+
De exemplu, daca avem intrarea 101, aceasta corespunde lui y
5
= 1 si y
i
= 0 pentru i = 5.
Cum i
5
= 1, pe a sasea poarta AND se obt ine
1
MUX
2
C
A
B
,
1
i
0
i
1
i
2
i
3
x
1
x
0
y
C
+
``
EMUX
(a)
,
,
A
B
C
i
0
i
1
x
0
y
C
+
(b)
Pentru claricare, vom detalia cazul (a); acesta este o notat ie simplicata a circuitului:
DCD
2
y
3
y
2
y
1
y
0
x
0
x
1
`
A
C
B B
1
C
+
Construct ia tabelei de codicare conduce la un comportament identic cu circuitul dat
init ial, desi acesta are numai 4 port i AND n loc de 8.
Mai mult, deoarece prima si ultima poarta sunt controlate de constante, acestea pot
eliminate si se ajunge la circuitul:
DCD
2
y
0
y
1
y
2
y
3
x
0
x
1
A
C
B
,
C
+
68 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.5 sugereaza ideea ca un multiplexor poate o solut ie pentru implementarea
funct iilor booleene.
Teorema 5.1 Orice funct ie booleeana f : V
n
V (n 0) poate implementata cu
un circuit combinat ional logic (CLC).
Demonstrat ie: Pentru n = 0 armat ia este banala.
Pentru n 1, orice funct ie booleana de n variabile se poate pune sub forma normala
f(x
n1
, . . . , x
0
) = x
n1
g(x
n2
, . . . , x
0
) +x
n1
h(x
n2
, . . . , x
0
)
Pentru g si h se poate aplica inductiv acelasi procedeu.
Din aceste doua circuite, legate serial cu un EMUX, se obt ine circuitul solicitat.
CLC
g
CLC
h
EMUX
,
n1
n1
(x
n2
, . . . , x
0
)
g(x
n2
, . . . , x
0
) h(x
n2
, . . . , x
0
)
x
n1
i
0
i
1
x
0
y = x
0
i
0
+x
0
i
1
Exemplul 5.6 Sa consideram funct ia f(a, b, c) = ab+bc+ca.
In prima etapa o reprezentam
sub forma normal disjunctiva:
f(a, b, c) = ab(c + c) + (a + a)bc + a(b + b)c = abc + abc + abc + abc + abc + abc =
(ab +ab +ab)c + (ab +ab +ab)c.
Fie funct iile
h(a, b) = ab +ab +ab = ab + (a +a)b = ab +b si
g(a, b) = ab +ab +ab = (a +a)b +ab = b +ab.
Pe baza Teoremei 5.1 se poate construi circuitul combinat ional logic al lui f:
EMUX
EMUX EMUX
.
.
.
,
,
b +ab b +ab
a
b
c
1
1
f(a, b, c)
5.5. CODIFICATORI CU PRIORITATE 69
5.5 Codicatori cu prioritate
Este posibil ca unele circuite de codicare sa solicite
Un numar de intrari care sa nu e multiplu de 2;
Mai multe congurat ii active printre aceste intrari.
Din aceste motive apare necesitatea de a extinde ideea de codicator, astfel ca sa se
permita un numar arbitrar de intrari si sa se asigure un proces de select ie care sa aleaga
bitul activ aat pe cea mai semnicativa pozit ie (bitul de prioritate maxima ntre bit ii
activi).
In aceste condit ii, codicatorul cu prioritate foloseste o ordonare a bit ilor de intrare
(ca o condit ie suplimentara, necesara select iei).
Pe baza acesteia, daca sunt activi mai mult i bit i, numai cel mai semnicativ dintre ei
va selectat la codicare.
Denit ia 5.6 Un codicator cu prioritate (PE) este un circuit cu m intrari i
m1
, . . . , i
0
(n ordinea descrescatoare a prioritat ilor) si doua zone de iesire: o zona Z de un bit care
indica daca intrarea cont ine (Z = 0) sau nu (Z = 1) bit i activi, si o zona formata din
n = log
2
m bit i y
n1
, . . . , y
0
care indica pozit ia celui mai semnicativ bit activ din intrare
(daca exista) (altfel genereaza eventual 00 . . . 0).
Interpretarea numerica a funct iei PE este: circuitul calculeaza partea ntreaga a loga-
ritmului (n baza 2) dintr-un numar ntreg, indicand eventual o eroare (funct ia nu este
denita) pe bitul Z.
Cel mai simplu astfel de circuit - codicatorul cu prioritate elementar (EPE) (m = 2)
este denit prin ecuat iile booleene Z = i
1
i
0
, y
0
= i
1
pentru circuitul de baza
-
-
-
-
-
-
-
-
-
i
1
i
0
y
0
Z = i
0
+i
1
EPE
i
1
i
0
Z
y
0
70 CAPITOLUL 5. SISTEME 0 DS
sau Z = i
1
i
0
E, y
0
= i
1
E n cazul versiunii cu acces (EEPE); pentru facilitarea imple-
mentarii, intrarea E si iesirea Z sunt complementate.
` `
.
.
.
.
.
.
.
.
.
-
-
-
,
,
i
1
i
0
Z = i
0
+i
1
+E
y
0
= i
1
E
E
EEPE
E
i
1
i
0
Z
y
0
Rolul lui E este de a activa/dezactiva circuitul EEPE. Cand E = 1, cele doua structuri
sunt echivalente.
Pentru E = 0, EEPE scoate valoarea Z = 1 indiferent de intrare (circuitul este
decuplat).
Interpretarea comportamentului circuitului EPE (respectiv EEPE) este urmatoarea:
Z = 0: nu sunt bit i activi, iar y
0
este ignorat (sau se considera y
0
= 0).
Z = 1: exista bit i activi: cel mai semnicativ se aa pe pozit ia y
0
.
Comportamentul unui EPE (sau EEPE n cazul E = 1) poate sumarizat n tabelul:
i
1
i
0
Z y
0
Comentarii
0 0 0 0 Nu sunt bit i activi
0 1 1 0 i
0
este bit activ
1 0 1 1 i
1
este bit activ
1 1 1 1 i
1
este cel mai semnicativ bit activ
Observat ia 5.3 Daca exista cel put in un bit activ, atunci y
0
= [log
2
n] unde (n)
2
= i
1
i
0
.
Extinzand sunt doua variante recursive de construct ie a codicatorilor cu prioritate cu n
iesiri PE
n
, bazate pe extensii seriale respectiv extensii paralele.
` `
. .
,
E E Z E
Z
Z
i
2
n
1
i
2
n1 i
2
n1
1
i
0
i
0 i
2
n1
1
i
0
i
2
n1
1
y
n2
y
0
y
n2
y
0
y
n1
y
n2
y
0
. . .
. . .
. . .
. . . . . .
. . .
Observat ia 5.4 Daca 2
n1
< m < 2
n
, atunci intrarilor i
m
, i
m+1
, . . . , i
2
n
1
li se asigneaza
valoarea constanta
0
.
Cea mai semnicativa iesire este y
n1
= Z; celelalte iesiri se obt in ca rezultante prin port i
OR ale iesirilor corespunzatoare pentru cele doua PE
n1
.
Intr-adevar, daca tot i bit ii din prima jumatate a intrarii sunt inactivi, atunci cel mai
semnicativ bit de iesire este 0, iesirile din PE
n1
corespunzatoare sunt 0, iar restul bit ilor
sunt dat i de al doilea PE
n1
(cu bit i mai put in semnicativi).
Altfel, y
n1
= Z = 1, iesirea celui de-al doilea PE
n1
este dezafectata (deoarece
E = Z = 0) si tot restul iesirii este dat de primul (cel mai semnicativ) PE
n1
.
Observat ia 5.5 Accesul la un EP
n
se realizeaza totdeauna cu E = 1 (deci E = 0).
Exemplul 5.7 Sa construim un codicator cu prioritate pentru m = 3. Atunci n =
log
2
3 = 2 si conform schemei de mai sus vom avea:
EEPE EEPE
i
1
i
0
i
1
i
0
i
2
i
1
i
0
Z E Z E
y
0
y
0
`
Z
y
1
y
0
.
72 CAPITOLUL 5. SISTEME 0 DS
Sa presupunem ca se solicita acest PE
2
(activat prin E 1) cu intrarile i
2
si i
0
; deci
i
2
i
1
i
0
= 101.
Atunci, din primul EEPE = PE
1
se obt ine (atent ie: i
1
0
, i
0
i
2
)
Z = i
1
i
0
E = 1 0 1 = 0 si y
0
= i
1
E = 0 1 = 0
Cum Z = 1, aceasta valoare merge la iesire n y
1
(y
1
= 1) si constituie intrarea n al
doilea EEPE = PE
1
. Cum E = 1 (deci E = 0), acesta este dezafectat.
Iesirea va deci formata din y
1
y
0
= 10, care reprezinta n binar pozit ia bitului 2:
acesta (i
2
) este bitul activ care este selectat ca prioritar.
Daca intrarea n PE
2
este i
2
i
1
i
0
= 001, primul EEPE scoate y
0
= 0 si Z = 1.
Cum Z = 0, aceasta va simultan valoarea nala a lui y
1
(y
1
= 0) cat si ltrul
care permite accesul la al doilea EEPE (cu E = Z = 1).
Acesta are asignarile i
1
0, i
0
1 si va scoate Z = i
1
i
0
E = 1 0 1 = 0 semnal
ca exista bit i activi.
Se calculeaza y
0
= i
1
E = 0 care prin poarta OR merge n valoarea nala a lui y
0
.
Deci y
1
y
0
= 00, adica primul bit i
0
este cel selectat ca activ.
Implementarea acestui circuit este nsa prea lenta pentru aplicat ii (numarul de nivele
creste exponent ial); de aceea se foloseste o alta construct ie, bazata pe extensia paralela.
Aici PE
n
este construit prin extensia paralela a doua PE
n1
; iesirea Z si cel mai
semnicativ bit y
n1
sunt calculate cu un EPE din cele doua Z ; restul bit ilor de iesire
sunt selectat i cu n 1 multiplexori elementari din iesirile celor doua PE
n1
.
EPE indica unde este cel mai semncativ bit care are valoarea 1 (la intrarea primului
sau celui de-al doilea PE
n1
), iar y
n1
selecteaza restul codului.
PE
n1
PE
n1
EPE
(n 1) EMUX
n1
n1
n1
,
`
i
2
n
1
. . .
i
2
n1 i
2
n1
1
. . .
i
0
i
2
n1
1
. . .
i
0
i
2
n1
1
. . .
i
0
y
n2
. . . y
0
y
n2
. . . y
0
Z
y
n1
y
n2
, . . . , y
0
Z Z
5.5. CODIFICATORI CU PRIORITATE 73
Adancimea acestei variante este comparabila cu n, deci mult mai simpla si rapida.
De ret inut ca n general o extensie paralela genereaza circuite rapide.
Dezavantajul consta n marimea lor, care creste exponent ial.
Exemplul 5.8 Sa consideram m = 5. Atunci n = log
2
5 = 3, deci vom avea un PE
3
.
De remarcat ca din cele opt intrari, primele 3 (cele mai semnicative) sunt setate pe
0
.
Sunt posibile doua situat ii:
1. i
4
= 1. Atunci Z
1
= 1, deci Z = 1 si y
2
= 1, indiferent de valorile bit ilor i
3
, . . . , i
0
.
Din primul PE
2
iese y
1
y
0
= 00, combinat ie selectata de cele doua EMUX-uri
(datorita valorii y
2
= 1 luate de funct ia de select ie).
Deci bitul cel mai activ este pe pozit ia (y
2
y
1
y
0
)
2
= (100)
2
= 4.
EPE EMUX EMUX
PE
2
PE
2
0
0
0
i
4
i
3
i
2
i
1
i
0
i
0
i
1
i
2
i
3
Z
i
0
i
1
i
2
i
3
Z
y
1
y
0
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
Z
y
2
,
y
1
y
0
2. i
4
= 0. Atunci Z
1
= 0 si indiferent de valoarea lui Z
2
din EPE iese y
2
= 0.
Daca i
3
i
2
i
1
i
0
= 0000, se obt ine Z
2
= 0, deci Z = 0 si nu avem bit i activi.
Daca printre acesti patru bit i exista cel put in unul activ, atunci Z
2
= 1.
EPE anunt a existent a unui bit activ (Z = 1) pe pozit ia y
2
= 0.
Cum y
2
joaca rol de selector pentru cele doua EMUX-uri, acestea vor transfera la
iesire valorile y
1
, y
0
obt inute de al doilea PE
2
, deci adresa celui mai semnicativ bit
activ din secvent a i
3
i
2
i
1
i
0
.
Cum primele trei intrari sunt totdeauna 0, primul PE
2
poate eliminat, obt inandu-se
circuitul
74 CAPITOLUL 5. SISTEME 0 DS
EPE EMUX EMUX
PE
2
,
i
3
i
2
i
1
i
0
i
0
i
1
i
2
i
3
Z
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
Z
y
2
y
1
y
0
i
4
0
0
AB
S
(a)
HA
A B
S CR
(b)
`
`
A
B
S CR
(c)
Dupa cum am vazut n Capitolul 2, doua numere ntregi de n bit i (n > 1) se aduna
bit-cu-bit, incepand de pe cea mai put in semnicativa pozit ie.
Fiecare suma de doi bit i este inuent ata prin funct ia de transport de suma binara
anterioar a; de aceea, pentru a t ine cont si de acest transport, se va adauga o intrare
suplimentara C de transport, obt inandu-se un sumator complet FA (full adder), a carui
reprezentare simbolica este data de Figura (d) si cont inut - de Figura (e):
FA
A B
C
+ C
S
(d)
HA
HA
`
`
A B C
A B
S CR
A B
S CR
S
(e)
C
+
76 CAPITOLUL 5. SISTEME 0 DS
Primul HAnsumeaza cei doi bit i (corespunzatori operanzilor A si B), iar al doilea aduna
la suma astfel calculata valoarea deplasarii; transportul de iesire este dat de primul sau
al doilea HA.
Observat ia 5.6 Sumatorul complet poate construit si pe baza unui codicator (acesta
ind un circuit universal); ntr-adevar, funct ia sum : {0, 1}
3
{0, 1}
2
de adunare a
trei cifre binare poate denita prin tabela de valori
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
S 0 0 0 1 0 1 1 1
C
+
0 1 1 0 1 0 0 1
De aici putem genera forma canonica celor doua componente care formeaza funct ia
sum:
S = xyz +xyz +x yz +xy z
C
+
= xyz +xyz +xyz +xyz = xy(z +z) +xz(y +y) +yz(x +x) = xy +yz +xz
Deci, un circuit combinat ional echivalent cu un FA poate construit imediat:
` ` ` ` ` ` `
` `
-
-
-
-
-
-
x
y
z
S
C
+
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Daca denim adancimea unui circuit ca ind numarul maxim de port i situate pe un
drum, circuitul de mai sus este un circuit combinat ional de adancime 3.
Daca toate port ile permit aceeasi viteza de traversare, atunci acesta este mai rapid
decat denit ia unui FA.
Dezavantajul sau major este numarul mare de port i, deci un cost hard mai ridicat.
O problema de baza n arhitectura calculatorului consta n realizarea de circuite care
sa ofere avantaje atat din punctul de vedere al vitezei de lucru, cat si al costului echipa-
mentului hard.
5.6. SUMATORI 77
Un sumator de n bit i ADD
n
n cascada, se poate deni recursiv prin extensia seriala
a unui ADD
n1
cu un FA. Init ial, ADD
1
este un FA.
FA
ADD
n1
a
n1 b
n1
a
n2
a
0 b
n2
b
0
. . . . . .
c
0 C
C
+ C
C
+
c
n
s
n1
s
n2
. . .
s
0
Exemplul 5.9 Un sumator ADD
3
construit n cascada are forma
FA FA FA
a
2 b
2
a
1 b
1
a
0 b
0
c
3
s
2
s
1
s
0
c
0
Din pacate, n aceasta construct ie seriala a circuitului, calculul transportului la ecare
nsumare de doi bit i conduce la un proces de calcul lent.
Pentru a obt ine o viteza de calcul mare, se foloseste alta construct ie a sumatorului
ADD
n
, prin nsumarea separata a transportului ecarei sume binare.
Pentru calculul transportului ecarei sume binare se introduce un circuit suplimentar
de control al transportului CL (carry lookahead). Ecuat iile care descriu CL se bazeaza
pe relat ia
c
i+1
= a
i
b
i
(a
i
b
i
)c
i
= G
i
P
i
c
i
.
(reamintim, este notat ia matematica pentru operat ia XOR).
Iesirile ecarui HA genereaza prin port ile AND si XOR iesirile G
i
respectiv P
i
.
Aplicand aceasta regula de i (0 i n) ori, se obt ine:
c
i+1
= G
i
P
i
G
i1
P
i
P
i1
G
i2
. . . P
i
P
i1
. . . P
0
c
0
78 CAPITOLUL 5. SISTEME 0 DS
HA
CL
`
a
i b
i
A B
S CR
P
i
,
c
i
G
i
s
i
. . . . . .
G
n1
G
0
P
n1
P
0
c
n
c
n1
c
1
. . . . . .
. . .
c
0
Exemplul 5.10 Reluand exemplul unui sumator pe 3 bit i, vom avea circuitul
HA HA HA
a
2 b
2
a
1 b
1
a
0 b
0
` ` `
s
2
s
1
s
0
CL
c
3
, , ,
c
0
c
1
c
2
CR S CR S CR S
G
2
P
2
G
1
P
1
G
0
P
0
Un tabel cu valorile scoase de CL (a carui structura o lasam ca exercit iu) este:
a
i
0 0 0 0 1 1 1 1
b
i
0 0 1 1 0 0 1 1
c
i
0 1 0 1 0 1 0 1
c
i+1
0 0 0 1 0 1 1 1
5.6. SUMATORI 79
5.6.1 Circuit digital pentru incrementare
Un caz particular de sumator este cel de incrementare, cand al doilea operand este egal
cu
1
.
Se poate folosi un circuit de adunare obisnuit, din cele prezentate anterior, unde va-
loarea
1
.
Mai mult, deoarece s = A1 = A, c = A1 = A, acesta poate construit folosind
numai un invertor:
\
\ \
,
a
0
b
0
c
Simbolul pentru circuitul de incrementare al unui numar A reprezntat pe n bit i este:
INC
n
A
A + 1
n
n
Similar sumatoarelor, si aici sunt doua tipuri de construire a lui INC
n
.
O prima varianta n cascada se deneste recursiv astfel:
- INC
1
este circuitul din Observat ia 5.7.
- INC
n
se obt ine prin extensia seriala a unui HA cu INC
n1
sub forma
HA
INC
n1
b
0
b
1
b
n2
b
n1
c
a
n1
c
a
n2
a
1
a
0
. . .
. . .
80 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.11 Un circuit de incrementare pe 4 bit i (INC
4
) este
HA HA HA HA
b
0
b
1
b
2
b
3
c
a
3
a
2
a
1
a
0
1
c c c
Cel mai din dreapta HA poate inlocuit cu invertorul din Observat ia 5.7.
Dezavantajul acestei construct ii este un consum mai mare de timp.
De aceea se poate construi si o extensie paralela, bazata pe urmatoarele observat ii:
Daca n denit ia ecuat iilor de transport din construirea CL se iau c
0
= 1 si b
i
= 0,
atunci G
i
= 0, P
i
= a
i
(0 i n 1) si deci
c
i
= a
i1
a
i2
. . . a
0
, (i > 0)
Pe baza acestei relat ii, INC
n
poate generat astfel:
HA
`
b
i
a
i
a
i1
a
0
. . .
. . . . . .
\
\ /
/
a
0
b
0
unde cele n 1 semi-sumatoare (pentru i = 1, 2, . . . , n 1) lucreaza n paralel.
Circuitul este extrem de rapid; dezavantajul lui sunt port ile AND
i
, a caror complexi-
tate creste odata cu valoarea lui i.
5.6.2 Circuit digital pentru scadere
Dupa cum stim (Capitolul 2), operat ia de scadere a doua numere ntregi poate redusa
la operat ia de adunare.
Daca B este un numar pe n bit i, iar B se obt ine din B prin complementarea tuturor
bit ilor, atunci B +B = 2
n
1 si deci
A B = A +B + 1 2
n
Numarul B + 1 este reprezentarea lui B n cod complementar, iar operarea cu 2
n
inverseaza bitul nal de transport.
5.6. SUMATORI 81
Fie funct ia sub : {0, 1}
3
{0, 1}
2
denita sub(x, y, z) = x y z. Tabela sa de
valori este
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
d 0 1 1 0 1 0 0 1
t 0 1 1 1 0 0 0 1
Deoarece x y z = x + (y + 1 2
1
) + (z + 1 2
1
) = x + y + z + 2
1
2
2
, rezulta
ca diferent a d(x, y, z) este rezultatul adunarii x + y + z, iar t(x, y, z) este valoarea de
transport complementata (datorita adunarii cu 2
1
) a acestei sume.
Deci un circuit digital numit FS (full substract) pentru scadere este:
FA
.
. .
-
--
\
\ \
.
..
-
- -
x
y
z
d
t
Pentru un circuit care sa realizeze scaderea a doua numere de cate n bit i se va face o
extensie seriala (n cascada) formata din n astfel de circuite, similar construct iei de la
ADD
n
sau INC
n
.
La identicarea transportului t de la un FS cu variabila z de la FS-ul anterior se pot
elimina cele doua complementari (care se anuleaza reciproc).
Exemplul 5.12 Sa construim un circuit pentru scaderea a doua numere de 4 bit i (FS
4
).
Schema sa este (pentru simplicare, port ile NOT au fost subnt elese):
FA FA FA FA
t
z
t
z
t
z
t
z
1
d
0
d
1
d
2
d
3
a
3 b
3
a
2 b
2
a
1 b
1
a
0 b
0
Fie de exemplu numerele A = 12, B = 9; deci a
3
a
2
a
1
a
0
= 1100, b
3
b
2
b
1
b
0
= 1001.
Introducand n circuitul FS
4
aceste valori (unde b
3
b
2
b
1
b
0
= 0110) se obt ine imediat
d
3
d
2
d
1
d
0
= 0011, ceea ce verica operat ia 12 9 = 3.
82 CAPITOLUL 5. SISTEME 0 DS
Un circuit mai compact pentru scadere care sa foloseasca elementele deja construite
este
EMUX
i
1
i
0
\
\
\
INC
n
ADD
n
\
\
\
n
n
n
A
B
,
n
n
c
n
n
n
D
unde am reprezentat printr-o singura complementare grupul de n invertori care inverseaza
bit ii scazatorului:
\
\
\
\
\
\
\
\
\
\
\
\
. . .
n
n
Avantajul acestui circuit este acela ca se poate opera si cu rezultate negative.
Semnul diferent ei este dat de c (deci c = 0 semnica un rezultat negativ, iar c = 1
unul pozitiv).
Exemplul 5.13 Sa presupunem ca circuitul de scadere este construit pentru n = 4 si
avem din nou A = 12, B = 9.
Pentru A B, sumatorul ADD
4
va determina A +B = 1100 + 0110 care da suma
0110 si transportul c = 1. Aceasta semnica un rezultat pozitiv, si variabila c
pe post de selector va alege din EMUX valoarea 0010 incrementata, adica 0011.
Deci rezultatul este 12 9 = 3.
Pentru B A, sumatorul va calcula B + A = 1001 + 0011, cu rezultatul 1100 si
c = 0. deci rezultatul este negativ, iar selectorul c = 0 va alege 1100 = 0011; n nal
se obt ine 9 12 = 3.
5.7. CIRCUITE DE COMPARARE 83
5.7 Circuite de comparare
Sa construim un bloc de comparare ntre doua numere pe n bit i.
O reprezentare simbolica este usor de dat:
CA
n
>> >>
X Y
n n
X < Y X = Y X > Y
Dar, ce se ascunde n spatele ei ?
Pentru n = 1, problema este simpla: este sucient sa construim un codicator (de
exemplu) bazat pe funct ia f : {0, 1}
2
{0, 1}
3
denita prin tabela de valori
a 0 0 1 1
b 0 1 0 1
z
1
0 1 0 0
z
2
1 0 0 1
z
3
0 0 1 0
Daca f(a, b) = (z
1
, z
2
, z
3
), atunci z
1
= ab anunt a daca a < b, z
2
= ab + ab = a b ia
valoarea 1 daca si numai daca a = b, iar z
3
= ab semnalizeaza daca a > b.
Un circuit se poate construi imediat:
` `
.
.
`
-
-
-
-
-
-
-
--
.
. .
-
--
.
. .
,
, ,
, ,
,
,
,
a
b
z
1
(a < b) z
2
(a = b) z
3
(a > b)
Problema se complica pentru cazul general (n > 1).
84 CAPITOLUL 5. SISTEME 0 DS
Atunci un comparator CA
n
va avea 2n intrari binare, deci o tabela de adevar ar cont ine
2
2n
linii, lucru extrem de dicil de realizat la nivel de codicator (din cauza numarului
mare de port i necesare).
Pentru construct ia unui comparator ecient pe n bit i, sa observam ca X > Y este
echivalent cu X Y > 0. Cum Y = (2
n
1) Y , relat ia se rescrie
X Y = X +Y > 2
n
1 = 11 . . . 1
unde secvent a binara de 1 are lungime n.
Daca aceasta inegalitate este satisfacuta, atunci bitul de transport al sumei c
out
= 1,
deoarece suma X +Y depaseste n bit i.
Exemplul 5.14 Pentru n = 4, daca X = 1100, Y = 1001, vom avea Y = 0110 si deci
X +Y = 1100 + 0110 = 10010, pentru care bitul de transport este 1.
Concluzia este X > Y .
Testarea comparat iei X > Y poate realizata deci n doi pasi:
1. Se aa Y prin aplicarea unui invertor pe n bit i lui Y ;
2. Se efectueaza X+Y cu un n - sumator si se foloseste ca iesire doar bitul de transport
c
out
. Daca c
out
= 1 atunci X > Y ; altfel, X Y .
Implementarea acestei scheme arata astfel:
ADD
n
ADD
n
`
`
`
` /
/
`
` /
/
,
, ,
,
>>
> > >>
>>
>> >>
>> >>
>>
>>
>>
X Y
n n
n n
n n n n
n
n n
c
in
c
in
z
1
(X < Y ) z
2
(X = Y ) z
3
(X > Y )
ignorat ignorat
Algoritmul de sus este implementat pentru z
3
(X > Y ) pe n bit i.
Daca se permuta X cu Y , se genereaza z
1
(X < Y ).
5.7. CIRCUITE DE COMPARARE 85
Suma rezultata nu este utilizata, deci iesirile corespunzatoare se suspenda.
Mai trebuie determinata iesirea z
2
, necesara pentru cazul X = Y .
Pentru aceasta trebuie facuta compararea tuturor bit ilor x
i
din X cu bit ii y
i
core-
spunzatori din Y .
Dezideratul se atinge cu n port i XOR NOT care produc x
i
y
i
.
Vom avea z
2
= 1 daca x
i
y
i
= 1, (1 i n); adica
z
2
= (x
n1
y
n1
) (x
n2
y
n2
) . . . (x
0
y
0
)
O alta varianta mai simpla pentru CA
n
cu un singur sumator este urmatoarea:
`
`
ADD
n
\
\
,
,
X Y
n
n
n
c
in
n
c
out
z
1
(X > Y ) z
2
(X = Y ) z
3
(X < Y )
86 CAPITOLUL 5. SISTEME 0 DS
5.8 Circuite de deplasare
O alta funct ie aritmetica de baza este nmult irea/mpart irea cu o putere a lui 2.
Circuitul care realizeaza aceasta funct ie se numeste circuit de deplasare (shift).
El consta din mai mult i multiplexori conectat i n paralel la aceeasi intrare si aceeasi
funct ie de select ie.
Principiul este descris de gura urmatoare (pentru cazul deplasarii spre dreapta cu cel
mult trei pozit ii).
MUX
2
MUX
2
MUX
2
MUX
2
`
, , ,
, , ,
`
a
i+4
a
i+5
a
i+6
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
x
1
x
0
x
1
x
0
x
1
x
0
x
1
x
0
y y y y
s
1
s
0 b
i+3
b
i+2
b
i+1
b
i
,
, ,
, , ,
, , ,
, ,
,
a
i+3
a
i+2
a
i+1
a
i
O valoare de select ie (s
1
s
0
)
2
= x implica b
j
= a
j+x
(la deplasarea spre dreapta) sau
b
j
= a
jx
(la deplasarea spre stanga) pentru x = 0, 1, 2, 3 reprezentat n binar.
Daca j x < 0, atunci b
j
= 0 (prin deplasarea spre stanga, bit ii cei mai put in
semnicativi se completeaza cu
0
)
Exemplul 5.15 Daca n gura anterioara valoarea de select ie este (s
1
s
0
)
2
= (10)
2
= 2,
atunci ecare multiplexor conecteaza iesirea la intrarea i
2
.
Rezultatul va
b
i+3
b
i+2
b
i+1
b
i
a
i+5
a
i+4
a
i+3
a
i+2
In acest caz, cei mai semnicativi x bit i din reprezentarea binara a numarului se pierd,
iar cei mai put in semnicativi x bit i primesc valoarea 0.
,
,
,
,
,
,
,
,
,
,
`
,
, ,
, , ,
, , ,
, , ,
, , , , ,
b
0
b
1
b
2
b
3
b
4
b
5
s
0
s
1
a
5
a
4
a
3
a
2
a
1
a
0
).
88 CAPITOLUL 5. SISTEME 0 DS
5.9 Multiplicatori
Alta operat ie aritmetica importanta este nmult irea.
O varianta combinat ionala poate construita pe baza unui circuit elementar, bazat
pe cele doua funct ii simple implicate de nmult irea binara:
nmult irea pe un bit (cu ajutorul unei port i AND);
un FA pentru completarea operat iei;
Circuitul de nmult ire completa a bit ilor A si B este descris de Figura (a); Figura (b)
deneste reprezentarea simbolica a nmult irii bit ilor a
i
cu b
j
.
`
FA
,
,
C S B
A A
C A B
C
+ S
C S B
(a)
a
i
b
j
b
j
S C B
a
i A A
C B S
(b)
Exemplul 5.17 Sa construim un multiplicator pentru a nmult i doua numere de doi bit i:
a
1
a
0
b
1
b
0
. Rezultatul are patru bit i x
3
x
2
x
1
x
0
, care verica relat iile:
x
0
= a
0
b
0
; x
1
= a
1
b
0
+a
0
b
1
+c
x
0
;
x
2
= a
1
b
1
+c
x
1
; x
3
= c
x
2
.
(s-a notat c
x
i
transportul obt inut la suma din care a rezultat x
i
).
Circuitul este:
a
1
b
1
a
1
b
0
a
0
b
1
a
0
b
0
`
`
`
HA
x
3
x
2
x
1
x
0
0
0
b
1
0
0
b
0
a
0
a
1
5.9. MULTIPLICATORI 89
Comentarii:
i) x
0
se obt ine din nmult irea bit ilor a
0
cu b
0
.
ii) Pentru x
1
se aduna a
1
b
0
cu a
0
b
1
si cu transportul de la calculul lui x
0
(transport
formal, deoarece el este totdeauna egal cu 0).
iii) x
2
se obt ine din adunarea lui a
1
b
1
cu transportul de la calculul lui x
2
.
Transportul rezultat din aceasta adunare va x
3
.
Aceasta structura poate generalizata usor la multiplicatori pentru numere de n bit i.
Prezentam pentru claritate schema unui multiplicator complet pentru cuvinte de 4 bit i:
a
0
b
3
a
0
b
2
a
0
b
1
a
0
b
0
a
1
b
3
a
1
b
2
a
1
b
1
a
1
b
0
a
2
b
3
a
2
b
2
a
2
b
1
a
2
b
0
a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0
0
0
b
3
0
0
b
2
0
0
b
1
0
0
b
0
a
0
a
1
a
2
a
3
x
0
x
1
x
2
x
3
HA FA FA
x
7
x
6
x
5
x
4
Dupa cum se vede, complexitatea spat iu creste rapid odata cu numarul de bit i ai unui
numar.
De aceea, practic se folosesc alt i algoritmi de multiplicare, bazat i pe adunari si de-
plasari (nmult iri cu puteri ale lui 2).
Problemele de sincronizare care apar facnsa ca aceste circuite sa nu e de tipul 0DS.
90 CAPITOLUL 5. SISTEME 0 DS
5.10 Circuit logic programabil
Am vazut ca pentru orice funct ie booleana de n variabile se poate construi cel put in un
circuit.
In general circuitele generate erau cladite pe doua tipuri de structuri:
recursiva, bazata pe not iunea de multiplexor MUX
n
;
structura simbolica a unui sir de m = 2
n
bit i, ale carui elemente sunt selectate la
iesirea dintr-un decodicator.
O astfel de solut ie este recomandata numai daca sirul binar selectat la iesirea din
decodicator este aleator (nu are o structura predenita).
Daca sirul binar prezinta anumite forme xe, atunci pot efectuate unele simplicari
la implementarea circuitelor corespunzatoare, ceea ce duce la scaderea complexitat ii lor.
Astfel, pot construite circuite cu port ile xate n prealabil pe o anumita pozit ie
(nchis sau deschis), faza de implementare constand doar n imbinarea lor sub forma unor
tablouri.
O astfel de construct ie se numeste tablou logic programabil.
Exemplul 5.18 Unul din cele mai uzuale circuite combinat ionale este transcoderul care
transforma cifrele zecimale scrise n binar, n reprezentari pe 7 bit i (codul ASCII).
DCD
4
` ` ` `
x
3
x
2
x
1
x
0
a
b
c
d
A B C D E F G
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
y
8
y
9
y
10
y
11
y
12
y
13
y
14
y
15
(a)
DCD
4
` ` ` `
x
3
x
2
x
1
x
0
a
b
c
d
A B C D E F G
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
y
8
y
9
y
10
y
11
y
12
y
13
y
14
y
15
(b)
.
.
.
.
.
.
.
.
.
.
.
.
-
-
-
-
-
-
-
-
-
-
-
-
a
b
c
d
ab a
b
a
b
c
d
Tablou AND
Tablou OR
A = ab
B = a b
C = a b
D = a
E = b
F = c
G = d
92 CAPITOLUL 5. SISTEME 0 DS
Valorile funct iilor A, . . . , G s-au dedus usor din tabelul de valori:
a 0 0 0 0 0 0 0 0 1 1
b 0 0 0 0 1 1 1 1 0 0
c 0 0 1 1 0 0 1 1 0 0
d 0 1 0 1 0 1 0 1 0 1
A 0 0 0 0 0 0 0 0 0 0
B 1 1 1 1 1 1 1 1 1 1
C 1 1 1 1 1 1 1 1 1 1
D 0 0 0 0 0 0 0 0 1 1
E 0 0 0 0 1 1 1 1 0 0
F 0 0 1 1 0 0 1 1 0 0
G 0 1 0 1 0 1 0 1 0 1
Evident, PLA-ul de sus nu este cel mai simplu circuit de implementare. Mult mai
simplu este decodicatorul (cu numai 11 port i)
.
.
.
.
.
.
.
.
.
.
.
.
-
-
-
-
-
-
-
-
-
-
-
-
a
b
c
d
,
,
,
,
```
.
.
,
,
,
,
,
, ,
,
,
,
A B C D E F G
5.10. CIRCUIT LOGIC PROGRAMABIL 93
Denit ia 5.7 Un PLA standard PLA
n,p,m
este un circuit digital format din 4 nivele:
1. Nivelul de intrare, compus din n decodicatori elementari (EDCD);
2. Un decodicator programabil format din p 2
n
port i AND (sau NAND, daca
se folosesc regulile De Morgan); ecare intrare poate conectata sau nu la iesirea
corespunzatoare a primului nivel; deci maxim p clase pot decodicate la intrarea
X = x
n1
. . . x
0
.
3. Un codicator programabil format din m p port i OR (sau NAND, daca se folo-
sesc regulile De Morgan); ecare intrare poate conectata sau nu la iesirea cores-
punzatoare de la al doilea nivel, ecare funct ie y
m1
, . . . , y
0
putand implementata
folosind unul sau mai mult i factori decodicat i la al doilea nivel;
4. Nivelul de iesire, format din m circuite EMUX (sau XOR - uri cu o intrare conec-
tata la 0 sau 1), cu scopul de a da forma funct iei complementata sau nu.
Deci, PLA este un circuit care ncepe si se termina cu cele mai simple circuite funct ionale
(EDCD respectiv EMUX) si cont ine doua tablouri programabile (numite tablou AND
respectiv tablou OR).
Un PLA nu este un circuit optim din punct de vedere al complexitat ii.
Avantajul sau major consta n posibilitatea de a lucra cu tablouri prefabricate, pe
care apoi le poate mbina cu EDCD-uri pentru intrari, EMUX-uri pentru iesiri.
Daca tabloul OR este inclus ntr-un ROM (componenta a unui codicator standard),
atunci PLA-ul se numeste de obicei PROM (Programmed ROM).
94 CAPITOLUL 5. SISTEME 0 DS
5.11 Unitatea aritmetica si logica
Toate circuitele prezentate pana acum aveau asociate cate o singura funct ie (aritmetica,
de select ie sau de comparat ie).
Vom ncheia prezentarea sistemelor 0 DS construind un circuit care poate realiza
mai multe funct ii, selectate pe baza unui cod de select ie.
Numele sub care este cunoscut acest circuit este unitatea aritmetica si logica (ALU).
Vom considera o unitate relativ simpla cu numai 8 funct ii.
In cadrul ei vor exista mai
multe tipuri de conexiuni:
Doua intrari de n bit i ecare, pentru operanzii S (stang) si D (drept), codicat i
S
n1
, . . . , S
0
respectiv D
n1
, . . . , D
0
;
O intrare F de trei bit i (F
2
, F
1
, F
0
) pentru specicarea funct iei printr-un cod;
O iesire R = (R
n1
, . . . , R
0
) pentru rezultat;
O iesire pentru indicatori (ags) - bit i cu diverse semnicat ii: CARRY, OV FL,
ZERO, SGN, ODD.
ALU
S
n1
. . .
S
0
D
n1
. . .
D
0
F
2
F
1
F
0
CARRY
OV FL
ZERO
SGN
R
n1
. . .
R
0 ODD
, ,
Mult imea funct iilor poate de exemplu:
AND: realizeaza funct ia logica AND bit cu bit (R
i
= S
i
D
i
);
OR: funct ia logica OR;
XOR: funct ia XOR;
ADD: face suma aritmetica modulo 2
n
dintre numerele de n bit i reprezentate binar
prin S (operand stang) respectiv D (operand drept);
SUB: face diferent a aritmetica dintre S si D;
INC: mareste (incrementeaza) valoarea lui S cu
1
;
LEFT: transfera la iesire valoarea lui S;
SHL: deplaseaza cu o pozit ie spre stanga valoarea lui S, ultimul bit (cel mai put in
semnicativ) ind pierdut;
5.11. UNITATEA ARITMETIC
A SI LOGIC
A 95
Structura interna a ALU consta n acest caz din n componente (felii), cate una
pentru ecare intrare S
i
, D
i
, un circuit CLC si cateva port i suplimentare.
Forma unei astfel de componente este data de Figura:
`
`
`
`
MUX
2
.
.
.
MUX
3
,
`
,
, ,
, ,
, ,
, , ,
D
i
F
2
F
1
x
1
x
0
0 1 2 3
y
S
i
C
i
S
i1
G
i
P
i
2 7 0 1 4 5 6 3
F
2
F
1
F
0
y
R
i
x
2
x
1
x
0
MUX
2
selecteaza drept al doilea operand valoarea din D
i
, complementul ei la 1
(pentru scadere), sau valoarea
0
(pentru incrementare) (C
0
de la intrarea lui CL
si o poarta pentru generarea diferit ilor ag);
Port ile AND, OR si primul XOR realizeaza funct iile logice si genereaza semnale
pentru funct iile aritmetice (G
i
, P
i
pentru CL si suma dintre S
i
si D
i
);
Al doilea XOR realizeaza suma semnalelor de transport generate de CL, completand
operat iile aritmetice;
MUX
3
selecteaza conform codului F funct ia realizata de ALU;
Intrarea S
i1
este primita de la componenta (felia) din dreapta, pentru realizarea
deplasarii;
96 CAPITOLUL 5. SISTEME 0 DS
Descrierea comportamentului acestui ALU este dat de tabelul:
F
2
F
1
F
0
Intrarea R
i
Operat ia
0 0 0 0 S
i
D
i
AND
0 0 1 1 S
i
D
i
OR
0 1 0 2 S
i1
SHL
0 1 1 3 S
i
D
i
C
i
ADD
1 0 0 4 S
i
D
i
XOR
1 0 1 5 (S
i
D
i
) C
i
SUB
1 1 0 6 S
i
C
i
INC
1 1 1 7 S
i
LEFT
Este evident ca cele mai lente operat ii realizate de ALU sunt operat iile aritmetice,
deoarece semnalele sunt ntarziate suplimentar de trecerea prin CL pentru generarea
semnalelor C
i
.
5.12 Exercit ii
1. Se da funct ia booleana f : {0, 1}
3
{0, 1}
3
denita
f(x, y, z) = (x +yz, y +zx, z +xy)
Construit i un codicator pentru implementarea ei.
2. Construit i un codicator pentru funct ia f : {0, 1}
3
{0, 1} denita prin octetul
10010100.
3. Construit i o memorie ROM pe 3 bit i, n care la adresa x se aa valoarea x+3 (mod 8)
(codul Excess 3 pe trei bit i).
4. Se da la intrare o secvent a de 5 bit i. Sa se construiasca un circuit care scoate bitul
care apare majoritar in acea secvent a.
5. Se da la intrare o secvent a x de 6 bit i. Sa se construiasca un circuit codicator care
scoate valoarea 1 daca si numai daca numarul a carui reprezentare binara este x,
este divizibil cu 4.
6. Construit i un circuit pentru DMUX
2
.
7. Dat i o construct ie directa si una recursiva pentru MUX
3
.
5.12. EXERCIT II 97
8. Sa se construiasca funct ia sum a trei bit i folosind MUX
3
.
9. Folosind numai EMUX construit i un circuit pentru funct ia booleana
f(a, b, c, d) = a(b +c)d +a(b +d)(b +c)(c +d) +b c d.
10. Aceeasi problema, folosind codicatori.
11. Fie funct ia f(x, y, z) = x +y +z. Sa se construiasca un circuit combinat ional logic
folosind:
(a) Codicatori;
(b) Multiplexori elementari.
12. Aceeasi problema pentru f(x, y, z) = (x +yz, xy +x yz, y +xz).
13. Se da structura din gura (formata din doua HA, un FA si o poarta OR):
FA
HA HA
`
.
x
4
x
2
x
1
x
0
c s c s
s c
Construit i tabela de valori.
14. Construit i un codicator cu prioritate pentru m = 7 bit i.
15. Construit i un circuit de deplasare dreapta/stanga cu 0,1 pozit ii pentru un vector de
4 bit i.
16. Detaliat i construirea CL (Carry lookahead) pentru un sumator pe 4 bit i.
17. Sa se construiasca un comparator pe pe 4 bit i si apoi pe baza lui un comparator
pe 16 bit i.
18. Construit i un comparator pe 4 bit i folosind ca baza un singur 4 FA.
98 CAPITOLUL 5. SISTEME 0 DS
19. Se da funct ia booleana f : {0, 1}
3
{0, 1}
3
denita
f(x, y, z) = (x +yz, x +yz, x +yz)
(a) Construit i un PLA pentru implementarea ei.
(b) Construit i un PROM pentru implementarea ei.
Capitolul 6
Sisteme 1 DS (Memorii)
6.1 Caracteristicile sistemelor cu un ciclu
Conform ideilor prezentate n Capitolul 4, trecerea spre circuitele de nivel superior consta
n introducerea unui ciclu care sa nchida din exterior circuitele deja existente.
Apare aici un prim grad de autonomie al circuitului ceea ce am denit prin stare.
Starea unui circuit depinde numai part ial de semnalul de intrare, fapt care va conduce
la o independent a part iala a iesirii fat a de congurat ia de intrare.
Evolut ia iesirilor circuitului ramane binent eles sub controlul intrarilor, dar starile
ofera o autonomie part iala.
Alta caracteristica a sistemelor din 1 DS consta n posibilitatea de a putea pastra
informat ia de intrare o perioada determinata de timp.
Aceasta proprietate este specica memoriilor.
Informat ia memorata este pusa la dispozit ia diverselor circuite n anumite faze de
lucru. Pentru aceasta apare necesitatea unei sincronizari a operat iilor n desfasurare,
pentru ca acestea sa poata conlucra corect si ecient.
Motiv pentru care apare un dispozitiv general de control al circuitelor: ceasul (CK).
Acest circuit bistabil asigura o discretizare a timpului de calcul, facand posibila
denirea unor not iuni temporale cum ar moment actual, tact, istoric, dezvoltare ul-
terioara etc.
Principalele circuite cu un ciclu intern sunt:
zavor elementar: circuit format din doua cicluri cuplate la doua port i de intrare;
ip - op master - slave: extensie seriala formata din doua zavoare elementare;
random access memory (RAM): extensie paralela formata din n zavoare elementare
accesate printr-un DMUX
n
si un MUX
n
;
99
100 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
registrul: extensie serial - paralela formata prin legarea n paralel de ip - opuri
master - slave.
6.2 Cicluri stabile si instabile
Exista doua tipuri de cicluri care nchid un circuit combinat ional logic; numai unul din
ele este util n construct ia circuitelor digitale, anume cel care genereaza o stare stabila;
celalalt circuit genereaza o stare instabila la iesire si poate folosit la construirea ceasului.
Diferent a dintre ele poate reliefata prin urmatorul exemplu:
Exemplul 6.1 Ciclul din Figura (a) este nchis conectand iesirea y
0
a unui EDCD la
intrarea x
0
.
Sa presupunem ca y
0
= 0 = x
0
.
La iesire semnalul devine 1, apoi 0 etc; astfel, cele doua iesiri ale decodicatorului
sunt instabile, comutand de pe 0 pe 1 si invers.
Momentul de schimbare a valorii de iesire (din 0 n 1 si invers) deneste frecvent a
circuitului si se numeste tact.
.
.
.
d
.
.
.
d
.
.
.
d
.
.
.
d s s
` x
0
y
0
y
1
EDCD
f (a)
`
f
x
0
y
0
y
1
EDCD
(b)
Al doilea tip de ciclu se obt ine conectand iesirea y
1
la intrarea x
0
(Figura (b)).
Daca y
1
= 0 = x
0
, atunci y
0
= 1 xand iesirea y
1
la valoarea 0.
Similar daca y
1
= 1 = x
0
.
Deci, acest circuit are doua stari stabile.
Pentru moment nu stim cum sa comutam de la o stare la alta, circuitul neavand nici
o intrare prin care sa putem controla schimbarea.
Principala diferent a de construct ie dintre cele doua structuri este:
Ciclul instabil are un numar impar de complementari (deci semnalul revine la iesire
cu o valoare complementata);
Ciclul stabil cont ine un numar par de complementari;
6.2. CICLURI STABILE SI INSTABILE 101
Exemplul 6.2 Sa consideram un circuit cu 3 nivele de complementare:
&%
d
/
/
/ \
\
\
d
/
/
/ \
\
\
d
`
C
o
o
o
`
C
o
o
o
t
t
t
t
Daca la intrare apare comanda C = 0, atunci ciclul este deschis, adica uxul semnalului
este ntrerupt; daca valoarea lui C devine 1, atunci comportarea circuitului este descrisa
de diagramele din dreapta.
Circuitul va genera un semnal periodic.
Pentru a putea utilizat practic, un circuit trebuie sa treaca printr-un numar par
de complementari pentru toate combinat iile binare aplicate la intrare. Altfel, pot exista
combinat ii pentru care circuitul se destabilizeaza.
Schimbarea starii unui circuit nu este instantanee, ea depinzand de diverse caracteris-
tici zice ale circuitului.
Vom nota cu t
pHL
intervalul de timp n care un circuit comuta de la starea 1 la starea
0, si cu t
pLH
intervalul de timp de trecere de la starea 0 la starea 1.
Ambele valori sunt numere nenegative si considerate constante pentru un circuit.
t
0
t
0
+t
pLH
t
1
t
1
+t
pHL
`
t
0
t
1
+t
pHL
(b) (a)
t t
Situat ia reala este reprezentata n Figura (a).
Modalitatea de reprezentare din Figura (b) este utilizata atunci cand se considera o
situat ie ipotetica de schimbare instantanee a starilor.
102 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.3 Zavoare elementare
Cel mai simplu circuit stabil fara nici o inversiune si cu o singura intrare este cel din
Figurile (a) si (b):
&%
&%
s
`
o
(a) (b)
Primul circuit poate comandat sa comute numai n starea 0, iar al doilea numai n
starea 1.
la intrare.
Timpul minim de trecere n starea 0 este t
pHL
(timpul de propagare al semnalului prin
ciclu).
Dupa acest interval de timp, indiferent de valoarea semnalului de intrare (
sau
0
),
circuitul (a) ramane stabil n starea 0 aceasta ind si valoarea de iesire.
Spunem ca circuitul este activ la frecvent a joasa.
La circuitul (b), semnalul inactiv de intrare este
0
s
`
R
S
Q
(c)
&%&%
d d
S R
Q
Q
(d)
s s
0)0)
d d
`
`
`
`
`
S R
Q
Q
`
`
`
`
`
s s
(e)
6.3. Z
1 0
S = 0
R = 0
S = 1
R = 1
S = 0
R = 0
Fiind un circuit de tipul 1 DS, ecuat ia sa va exprimata sub o forma recursiva:
Q = S +RQ
Aplic and regulile lui De Morgan acestei ecuat ii se vor obt ine circuite cu structuri
simetrice:
- transformarea port ii OR conduce la circuitul (d), construit numai cu port i NAND;
- transformarea port ii AND conduce la circuitul (e), construit numai cu port i NOR.
`
`
`
`
` `'
s s
.
CK
S R
Q
Q
(a)
RSL
S CK R
Q
Q
(b)
.
nivel activ
Cele doua intrari sunt pentru setare (S) si resetare (R), iar ceasul este act ionat
act ionand temporar CK pe 1.
Daca zavorul trebuie setat, atunci S = 1, R = 0, dupa care se face CK = 1 pentru
un interval de timp egal cu t
pLH
.
Spunem n acest caz ca nivelul activ al ceasului este la frecvent a nalta (high level).
Pentru resetare, procedura este analoga.
De remarcat ca pentru nivelul activ al lui CK zavorul este transparent, adica orice
modicare a intrarilor S, R modica starea circuitului.
Intr-adevar, daca CK = 1, atunci la activarea lui S (R) zavorul este setat (respectiv
resetat).
Aceasta separare dintre cele doua semnale conduce la diferent ierea dintre cum se re-
alizeaza schimbarea starii circuitului si cand are loc aceasta schimbare.
Zavorul elementar cu ceas rezolva o parte din problemele ridicate anterior si permite
un control mai strict asupra act iunii de memorare a informat iei.
Totusi o problema importanta este aceea ca un RSL poate comuta de mai multe ori
n perioada cand ceasul este setat pe
1
In general aplicat iile cer schimbarea starii la un anumit moment, pe care l semnaleaza
prin CK. Ori un RSL permite doar un interval de transparent a, nu si o ment inere a starii
pe toata durata acestui interval.
6.3. Z
.
.
.
d
D
S R
Q
Q
(a)
CK
DL
D CK
Q
Q
(b)
Iesirea unui DL urmeaza permanent intrarea D (deci circuitul beneciaza de o au-
tonomie redusa).
Iesirea este sincronizata cu ceasul numai daca pe nivelul activ al lui CK intrarea D
este stabila.
O varianta de construct ie a zavorului de date fara nici un invertor este:
"! "!
d d
s
"! "!
d d
s s
s
D
CK
Q
Q
106 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.4 Structura master - slave
O structura de zavor, care elimina multe probleme ale circuitelor anterioare, este sistemul
numit master - slave.
Acesta se bazeaza pe un circuit cu doua stari numit ip - op, care comuta sincronizat
cu arcul (n sus sau n jos) semnalului dat de ceas.
RSL
RSL
/
/
/ \
\
\
d
s
CK
S R
S CK R
Q
Q
S CK R
Q
Q
Q
Q (a)
RSF F
nivel activ
S CK R
Q
Q
(b)
Ideea consta n conectarea seriala a doua zavoare RSL si punand (prin intermediul
complementarii) n antifaza semnalul de ceas.
Primul zavor este transparent la nivelul superior al ceasului (prima jumatate a unui
tact), iar al doilea zavor este transparent la nivelul inferior (a doua jumtatate a tactului).
Deci nu exista nici un interval de timp n care toata structura sa e transparenta.
In prima faza (nivelul superior al lui CK), primul zavor (master) comuta n confor-
mitate cu semnalele S si R; n faza a doua (nivelul inferior al lui CK), al doilea zavor
(slave) comuta copiind starea masterului.
Iesirea din toata structura este modicata numai dupa ce a cazut tranzit ia intrarii
CK.
Vom spune ca circuitul RS master - slave comuta ip - op conform cu arcul n jos
al lui CK.
Pe o structura master - slave vom putea deci controla totdeauna momentele cand
poate schimbata starea sistemului.
6.4. STRUCTURA MASTER - SLAVE 107
Exista doua intervale de timp care trebuie avute n vedere:
Timpul de setare t
S
- timpul anterior arcului activ al lui CK, n care intrarile
S si R trebuie ment inute stabile pentru a avea sigurant a existent ei unei comutari
conforme cu valorile lor;
Timpul de sust inere t
H
- timpul posterior arcului activ al lui CK, n care R si S
trebuie ment inute stabile.
In afara de restrict ia din construct ie (R = S), acest ip-op mai are un avantaj: iesirea
lui D copiaza intrarea, ntarziata cu un tact.
RSF F
.
.
.
d s
D
S CK R
Q
Q
(a)
DFF
D CK
Q
Q
(b)
`
CK
D
Q
t
t
t
(c)
DFF este unul din cele mai importante circuite construite pana acum, n special
datorita numeroaselor aplicat ii.
108 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
Exemplul 6.3 Sa construim un sumator serial, care aduna doua numere ntregi binare
fara semn X, Y ambele de aceeasi lungime (arbitrara), producand rezultatul Z = X +Y .
Numerele sunt introduse si prelucrate serial (bit cu bit), iar rezultatul este obt inut tot
serial.
La tactul i sumatorul serial primeste doi bit i x
i
, y
i
si calculeaza un bit z
i
.
De asemenea el mai produce si un bit de transport c
i
, care participa la operat ia de
adunare de la urmatorul tact.
Iesirea la tactul i este deci
c
i
z
i
= x
i
+y
i
+c
i1
unde valoarea lui c
i1
va determinata de starea s
i
a sumatorului.
Sunt posibile doar doua stari interne: s
0
cand c
i1
= 0, si s
1
cand c
i1
= 1.
O memorie cu doua stari interne consta dintr-un DFF care stocheaza variabila de
stare s. O construct ie imediata este
DFF
FA
x
y
z s
c
out
c
in
x
y
D
CK
Q
CK
Pentru doua numere X, Y de n bit i ecare, sumatorul serial va lucra n + 1 tact i.
La ultimul tact, intrarile x si y vor primi valoarea
0
, iar c
in
va primi valoarea stocata
n DFF.
Iesirea va ultimul bit pentru suma Z, si valoarea de transport
0
s s
WE
a
n1
, . . . , a
0
DOUT
y
m1
y
1
y
0
i
0
i
1
i
m1
CK D CK D CK D
. . .
Q Q Q
DIN
Se poate da si o denit ie recursiva a memoriei RAM, plecand de la denit iile recursive
ale componentelor sale. Nu vom detalia aceasta varianta.
110 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.6 Registri
O alta componenta de baza a unui calculator o constituie registrul.
El este si principalul suport pentru trecerea la urmatorul ordin de complexitate al
circuitelor nchiderea celui de-al doilea ciclu.
Un registru de n bit i este o secvent a ordonata de ip-opuri capabile sa stocheze un
cuvant de n bit i.
Fiecare bit este stocat ntr-un RSF F sau DFF.
Toate unitat ile de memorie au linii de control (ceas, resetare) comune. Dupa modul
de extensie folosit, vom avea registri seriali, paraleli sau serial-paraleli.
6.6.1 Registrul serial
Figura urmatoare prezinta un SR
n
(structura si simbolul logic):
DFF RSFF RSFF
` ` `
s s
IN
CK
D Q S Q S Q OUT
Q R Q R Q
CK CK CK
. . .
. . .
. . .
(a)
SR
n
CK
IN OUT
(b)
Denit ia 6.2 Un registru serial SR
n
de n bit i se deneste recursiv astfel:
(i) SR
1
este un DFF;
(ii) SR
n
se obt ine prin extensia seriala a unui SR
n1
cu un SRF F.
Este evident ca SR
n
introduce o ntarziere de n tact i ntre intrare si iesire.
Un bit care intra ntr-un SR
n
la tactul i, va iesi din registru la tactul n + i, ecare
tact permit and trecerea acestei informat ii de la un ip-op la urmatorul.
Din acest motiv, registrii seriali sunt folosit i cu precadere n construct ia liniilor con-
trolate de ntarziere.
Rolul ceasului este de a sincroniza componentele registrului.
6.6. REGISTRI 111
6.6.2 Registrul paralel si registrul serial - paralel
Denit ia 6.3 Un registru (paralel) R
n
de n bit i se deneste recursiv astfel:
(i) R
1
este un DFF;
(ii) R
n
se obt ine prin extensia paralela a lui R
n1
cu un DFF.
Principalul avantaj al acestei componente este netransparent a sa, cu except ia unei trans-
parent e nedecidabile n primele t
S
+t
H
momente.
Deci el poate nchis eventual cu un nou ciclu.
Mai mult, netransparent a asigura posibilitatea de a ncarca registrul cu orice valoare,
inclusiv cu o valoare care depinde de propriul sau cont inut.
DFF DFF DFF
s s
x
n1
x
n2
x
0
CK
. . .
D CK D CK D CK
. . .
y
n1
y
n2
y
0
(a)
Q Q Q
R
n
n
X
CK
Y
(b)
Mai mult i registri paraleli pot legat i n serie, obt inandu-se un registru serial - paralel
R
nm
.
Denit ia sa recursiva este:
Denit ia 6.4 Un registru serial - paralel SPR
nm
se obt ine recursiv astfel:
(i) SPR
1m
este registrul R
m
;
(ii) SPR
nm
se obt ine prin extensia seriala a unui SPR
(n1)m
cu un R
m
.
Structura si simbolul logic al unui astfel de registru sunt:
R
m
R
m
R
m
` ` `
s s
IN
. . .
OUT
CK
. . .
(a)
SPR
nm
IN OUT
CK
(b)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
n n
n n n n n
112 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.7 Exercit ii
1. Fiind date doua numere pe n bit i (cu primul bit drept bit de semn) sa se construiasca
un circuit care sa selecteze pe cel mai mare dintre ele.
2. Fie inelul boolean Z= (Z
2
, , ). Fiind xat polinomul
a(X) = a
0
a
1
X a
2
X
2
. . . a
n
X
n
Z
2
[X]
sa se construiasca un circuit de nmult ire cu a(X) n Z.
Detaliind, sa se construiasca un circuit care sa primeasca la intrare coecient ii unui
polinom b(X) Z
2
[X] si sa scoata coecient ii polinomului a(X) b(X).
3. Sa se construiasca un circuit de mpart ire la un polinom dat
a(X) = a
0
a
1
X a
2
X
2
. . . a
n
X
n
Z
2
[X]
Caz particular: a(X) = X 1.
4. Se da un DFF. Sa se construiasca un circuit a carui iesire este 1 daca si numai
daca DFF schimba starea (din 0 n 1 sau din 1 n 0). De exemplul pentru intrarea
00110 iesirea va 00101.
5. Sa se construiasca un circuit care are iesirea 1 daca cel put in doi din ultimii trei
bit i de intrare sunt 1. De exemplu, pentru intrarea 10011010011 iesirea va
00001110001.
Capitolul 7
Sisteme 2 DS (Automate)
Urmatorul pas n construct ia sistemelor digitale consta n adaugarea unui nou ciclu la
sistemele de ordin 1. Acest al doilea ciclu creste autonomia comportarii sistemului inclus.
Acum sistemele au o evolut ie a spat iului starilor part ial independenta de dinamica
intrarii.
Vom lua n considerare numai circuitele sincrone: circuite n care orice ciclu cont ine
cel put in un registru.
7.1 Denit ii de baza
Structura fundamentala a unui sistem 2 DS este automatul
1
.
Denit ia 7.1 Un automat A este un 5 - tuplu A = (Q, X, Y, , ) unde
Q este o mult ime nevida de elemente numite stari;
X este mult imea (nita, nevida) a variabilelor de intrare;
Y este mult imea (nita, nevida) a variabilelor de iesire;
: QX Q este funct ia de tranzit ie a starilor;
este funct ia de iesire, avand forma
: QX Y pentru automatul tip Mealy,
: Q Y pentru automatul tip Moore.
1
In continuare vom folosi numai automate Mealy (se poate demonstra ca abstract ie
facand eventual de primul caracter de iesire cele doua tipuri de automate sunt echiva-
lente).
Automatele pot descrise si sub forma unui graf orientat, n care nodurile sunt marcate
cu starile din Q, iar arcele se marcheaza cu perechi de elemente din XY n felul urmator:
Exista un arc de la q la p marcat cu (a, x) d(q, a) = p, (q, a) = x
`
_
`
_
q p
a/x
7.1. DEFINIT II DE BAZ
A 115
Marimea si complexitatea unui automat sunt direct proport ionale cu dimensiunile mult i-
milor care le compun.
Deci, din acest punct de vedere, cel mai simplu automat are numai doua stari
Q = {0, 1} (reprezentate pe un bit), un bit de intrare T {0, 1} si Y = Q.
Structura asociata este
CLC
DFF
T
CK
D
Q
Q
,
unde exista un bit de intrare T, un registru de un bit (de obicei DFF) pentru stocarea
unei stari de un bit, si un circuit combinat ional logic CLC pentru calculul funct iei .
Exemplul 7.1 Un DFF poate exprimat ca un automat cu doua stari (CLC se reduce
la funct ia identica). Formal Q = X = Y = {0, 1}, iar funct iile , : {0, 1}
2
{0, 1}
sunt denite prin tabelele de valori
0 1
0 0 1
1 0 1
0 1
0 0 0
1 1 1
Graful de funct ionare al unui DFF este
`
_
`
_
0 1 0/0
1/0
0/1
1/1
Observat ia 7.1 Pentru reprezentarea funct ionarii unui DFF, automatul Moore este
mai adecvat, iesirea copiind permanent starea n care se aa circuitul.
Exemplul 7.2 Sa consideram circuitul compus din doua DFF, o poarta AND si o
poarta OR:
116 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
DFF DFF
,
X D
Q
Q
D
Q
Q
Y
` `
,
CK
CK
CK
Circuitul are o singura intrare, patru stari date de combinat iile Q
1
Q
2
{00, 01, 10, 11},
intrarile n DFF-uri D
1
= X, D
2
= X Q
1
si o iesire Y = Q
1
Q
2
.
Deci X = Y = {0, 1}, Q = {00, 01, 10, 11}, (Q
1
Q
2
, x) si (Q
1
Q
2
, x) denite prin
tabelele
0 1
00 01 11
01 01 11
10 00 11
11 00 11
0 1
00 0 0
01 0 0
10 0 0
11 1 1
Graful automatului este
`
_
`
_
`
_
`
_
.
`
`
`
`
`
`
`
`
00 01
10 11 1/1
1/0 0/1
0/0
1/0
0/0
1/0
0/0
In acest automat, starea 10 este inaccesibila din starea de nceput 00, iar starile 00 si
01 sunt echivalente (funct ioneaza identic)). Daca le eliminam
2
obt inem un automat cu
numai doua stari (graful din stanga)
11
00 0/0
0/1 1/0
1/1
DFF
`
X D
CK
Q Y = Q
Q
Daca se renoteaza starea 00 cu 0 si 11 cu 1, se obt ine un DFF (gura din dreapta).
Deci circuitul din acest exemplu poate nlocuit cu un ip-op de date.
2
Algoritmii sunt identici cu cei de la Limbaje formale.
7.2. FLIP - FLOPURI 117
7.2 Flip - Flopuri
Folosind structura bazata pe DFF-uri denita n sect iunea anterioara, se pot construi
alte doua ip-opuri de ecient a sporita: T ip-opuri si JK ip-opuri.
7.2.1 Automatul T Flip Flop
Daca drept circuit logic combinat ional folosim o poarta XOR se obt ine circuitul (a)
numit T ip-op (TFF pe scurt) avand notat ia (b):
`
DFF
`
T
CK
D
Q
Q
+
(a)
,
TFF
CK
T
Q
(b)
Ecuat ia de funct ionare este Q
+
= (Q, T) = T Q iar iesirea Y = (Q, T) = Q.
Ce ar putea semnica mesajul adus de un bit T pentru acest automat cu doua stari ?
T = 0 = starea automatului ramane aceeasi (Q = 0 sau Q = 1).
T = 1 = starea automatului comuta.
Structura de automat este: Q = X = Y = {0, 1},
0 1
0 0 1
1 1 0
0 1
0 0 0
1 1 1
iar graful de funct ionare
`
_
`
_
0 1 0/0
1/0
1/1
0/1
118 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Acest circuit simplu poate folosit cu mai multe interpretari:
Ca numarator modulo 2, deoarece pentru T = 1 timp de mai mult i tact i, iesirea va
01010101 . . .;
Ca divizor de frecvent a. Daca frecvent a ceasului este f
CK
, atunci frecvent a sem-
nalului primit la iesirea din automat este f
CK
/2 (dupa ecare ciclu, circuitul se
ntoarce n aceeasi stare).
TFF
Q
Q
CK
T
CK
. . .
. . .
Observat ia 7.2 Cateva remarci referitoare la semnalele de iesire Q si Q:
- Ele sunt exact inverse unul altuia;
- Frecvent a lor este exact jumatate din frecvent a semnalului de intrare.
7.2.2 Automatul JK Flip Flop
Sa consideram alt automat, cu doua intrari notate J si K, numit JK ip op (JKFF):
DFF
`
``
, ,
J
K
CK
CK
D
Q
Q
Q
+
Q
+
(a)
JKFF
`
J CK K
Q
Q
(b)
Un JKFF are Q = Y = {0, 1}, X = {0, 1}
2
si
00 01 10 11
0 0 0 1 1
1 1 0 1 0
00 01 10 11
0 0 0 0 0
1 1 1 1 1
Graful de funct ionare va deci
`
_
`
_
`
00/1
10/1
10/0 11/0
01/1 11/1
00/0
01/0
0 1
7.2. FLIP - FLOPURI 119
Din structura se deduc ecuat iile de tranzit ie
(Q, JK) = (Q K) (Q J), (Q, JK) = Q
Deci structura de funct ionare poate exprimata mai simplu prin tabelul
J 0 0 1 1
K 0 1 0 1
D Q 0 1 Q
Cele patru mesaje de intrare posibile sunt:
1. no op: J = K = 0 iesirea ramane nemodicata (ca la T ip op cu T = 0);
2. reset: J = 0, K = 1 iesirea ia valoarea 0 (ca la DF F);
3. set: J = 1, K = 0 iesirea ia valoarea 1 (ca la DF F);
4. switch: J = K = 1 iesirea comuta pe starea complementara (similar cu T = 1 la
T ip op).
Ciclul este obligatoriu numai pentru ultima funct ie; aici ip - opul trebuie sa stie
care era starea anterioara a automatului, pentru a o putea schimba.
Prin aceasta comanda ciclul si arata autonomia.
Am obt inut o masina cu doua stari si doua intrari, cu proprietatea ca pentru orice
congurat ie de intrare posibila, circuitul are o comportare previzibila.
JK ip - opul este cel mai bun ip - op construit pana acum; toate celelalte pot
considerate cazuri particulare ale sale (pentru J = K = T se obt ine TFF, iar pentru
K = J = D avem DFF).
Pe baza acestui ip - op se pot construi divizori impari de frecvent a. Astfel, circuitul
urmator (cu o singura intrare si doua JKFF) asigura o diviziune prin 3 a unui tact.
JKFF JKFF
,
, ,
,
CK
CK
J K
Q
A
CK
J K
Q
B
Pentru intrarea constanta J = 1, iesirea va 00 10 11 00 10 . . .. Iesirea A va avea
valoarea 1 la doua momente din trei, iar iesirea B la un moment din trei.
Deci o extensie seriala a unei magistrale de ceas cu acest circuit face posibila seg-
mentarea unui tact n cicluri de 1/3 (33, 333%) si 2/3 (66, 667%).
120 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.3 Numaratori (counteri)
Multe circuite digitale folositen extrem de numeroase aplicat ii, necesita numarari (nainte
si napoi).
De aceea s-au dezvoltat diverse modalitat i de generare a numaratorilor.
Desi exista multe variante, principiile de baza sunt aceleasi.
Astfel, o prima caracteristica comuna a lor este generarea recursiva.
O varianta de construct ie pleaca de la circuitul TFF: stim ca un astfel de circuit poate
numara modulo 2, deci cum am putea sa legam n T ip - opuri T
n1
, . . . , T
0
pentru a
numara modulo 2
n
?
O idee este urmatoarea: circuitele vor asezate astfel ca T
i
(1 i n1) sa comute
doar daca T
i1
, . . . , T
0
sunt simultan n starea 1; n plus, T
0
comuta la ecare pas.
Pentru a detecta aceste condit ii, pentru ecare i = 0, 1, . . . , n1 se va asocia un TFF
T
i
cu o poarta AND
i+1
, conform gurii urmatoare:
T
0
T
1
T
n1
`
`
`
CK INC
0
CK
T
Q
CK
T
Q
CK
T
Q
Q
0
Q
1
Q
n1
INC
n
. . .
, , , ,
, ,
,
,
, ,
,
.
.
.
7.3. NUM
AR
,
, ,
, , ,
CK INC
0
T
CK
CK
T
Q
Q
Q
+
0
Q
+
1
INC
2
Daca notam cu X intrarea n circuit, cu T
0
, T
1
intrarile n cele doua TFF si cu Q
+
0
, Q
+
1
iesirile din cele doua TFF, ecuat iile de funct ionare sunt
T
0
= X, T
1
= Q
+
0
X
iar iesirile
Q
+
0
= Q
0
X, Q
+
1
= Q
1
(Q
+
0
X), INC
2
= X Q
+
0
Q
+
1
Comportamentul circuitului poate sumarizat n tabela
X Q
0
Q
1
T
0
Q
+
0
T
1
Q
+
1
Iesire(Q
+
1
Q
+
0
) INC
2
0 0 0 0 0 0 00 0
1 0 0 1 1 0 0 01 0
1 1 0 1 0 1 1 10 0
1 0 1 1 1 0 1 11 1
1 1 1 1 0 1 0 00 0
1 0 0 1 1 0 0 01 0
. . . . . . . . . . . .
Extinzand aceasta idee, ntr-o denit ie recursiva un numarator sincron COUNT
n
de
n bit i este construit prin extensia seriala dintre COUNT
n1
si un TFF, folosind o poarta
AND
n+2
care determina condit ia de comutare pentru urmatorul TFF; intrarea o consti-
tuie INC
0
si Q
n1
, . . . , Q
0
(gura de jos este part iala) iar iesirea INC
n
.
COUNT
1
este un TFF si un AND
2
, cu intrarea Q
0
, INC
0
si iesirea INC
1
.
122 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
T
n1
COUNT
n1
`
CK
CK
T
Q
CK INC
0
Q
0
. . .
Q
n2
INC
0
INC
n
Q
n1
Q
n2
. . .
Q
0
INC
n1
,
,
, ,
,
Acest circuit este rapid, dar dimensiunile sale cresc mult odata cu n: la ecare pas se
adauga un T ip - op si un sumator al carui numar de intrari depinde de n.
Se pot da si alte solut ii sincrone care sa pastreze o crestere rezonabila a dimensiunilor,
dar viteza de lucru va mai mica.
Daca toate intrarile n port ile AND sunt din Q (n loc de Q) se obt ine un numarator
binar descrescator.
Exemplul 7.4 Sa construim un numarator zecimal.
JKFF
TFF
2
TFF
1
TFF
0
`
`
` `
`
CK
CK
CK
CK
CK
T
Q
T
Q
T
Q
J K
Q
Q
Q
+
3
Q
+
2
Q
+
1
Q
+
0
, , , ,
, ,
,
,
,
,
,
7.3. NUM
AR
, T
1
= Q
+
0
(Q
3
)
+
, T
2
= Q
+
1
Q
+
0
, J = Q
+
0
Q
+
1
Q
+
2
, K = Q
+
0
Q
+
3
Q
+
0
= Q
0
, Q
+
1
= Q
1
T
0
, Q
+
2
= Q
2
T
2
, Q
+
3
= (Q
3
K) (Q
3
J)
Lasam ca exercit iu vericarea ca acesta este un counter pe patru bit i n care, dupa valoarea
1001 (corespunzatoare cifrei 9) urmeaza 0000.
124 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.4 Stive
Inafara memoriilor prezentate pana acum (ROM, RAM, registri), o memorie frecvent
folosita este cea de tip stiva (sau LIFO).
Exista multe solut ii practice pentru implementarea acestui gen de memorie.
Una din cele mai simple idei foloseste un numarator up-down UD COUNT
n
si o
memorie RAM.
UD COUNT
n
RAM
C
1
C
0
,
INC
0
U/D
,
CK
CK
WE Adresa
CK
D
OUT OUT IN D
IN
Un UD COUNT
n
este un numarator COUNT
n
cu o intrare suplimentara U/D care
specica daca numararea se efectueaza crescator (up): C
0
= 1, sau descrescator (down)
C
0
= 0.
Numararea descrescatoare se implementeaza la fel de simplu ca cea crescatoare: sin-
gura diferent a consta la intrarea n port ile AND unde vor ajunge iesirile Q ale ip -
opurilor (la crescator se folosea numai iesirea Q).
Introducerea acestei noi restrict ii se poate realiza folosind un EMUX (pentru se-
lectarea lui Q sau Q
`
`
`
D
IN
CK
D
OUT
DFF
A
B
C
S
C
+
D
Q
CK
D
IN
CK
D
OUT
CK
D
OUT
D
IN
Sumator
CK
Acest sumator serial cont ine 3 registri (doi pentru operanzi si unul pentru rezultat) si
un automat de nsumare.
Acesta este un automat cu doua stari, bazat pe un DFF legat printr-un ciclu cu un
sumator FA.
Starea curenta ret ine transportul sumei ciclului precedent. Intrarile A si B primesc
sincronizat la acelasi tact bit ii de pe aceeasi pozit ie din cei doi registri seriali care
cont in operanzii.
Automatul este init ial n starea 0, ceea ce semnica C
+
= 0.
Iesirea S este stocata bit cu bit timp de n tact i de al treilea registru.
Rezultatul nal este dat de al treilea registru serial si de starea ramasa n DFF.
Formal, Q = {0, 1}, X = {0, 1}
2
, Y = {0, 1} si
00 01 10 11
0 0 0 0 1
1 0 1 1 1
00 01 10 11
0 0 1 1 0
1 1 0 0 1
126 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Graful de funct ionare al automatului concentreaza toata aceasta informat ie n:
0 1
11/1
01/0
10/0
00/0
01/1
10/1
11/0
00/1
7.5.2 Circuit aritmetic serial - paralel
Este posibil ca timpul de execut ie al circuitului anterior sa e considerat prea mare (da-
torita extensiei seriale); atunci se poate face o combinat ie ntre extensia seriala si cea
paralela.
Un astfel de circuit este de exemplu:
ADD
m
DFF
SPR
nm
SPR
nm
D
IN
D
IN
CK
CK CK
D
OUT
D
OUT
A B
C
m
C
0
S
CK
D
D
IN
CK D
OUT
SPR
nm
Q
`
m
m
m m
m m
,
,
,
Aici se folosesc trei registri serial - paraleli SPR
nm
, un sumator de m bit i ADD
m
si
un registru cu doua stari (de exemplu un DFF).
Intrarile si iesirile circuitului sunt secvent e de m bit i.
Circuitul realizeaza suma a doua numere de n m bit i n n tact i.
7.5. CIRCUITE ARITMETICE 127
7.5.3 Sumatoare - prex
Automatele construite pana acum au fost foarte simple, toate avand numai doua stari.
Sa marim puterea acestor automate, conservand simplitatea funct iei de tranzit ie, dar
marind numarul starilor.
Multe aplicat ii solicita circuite cu funct ie si structura de acumulator, adica sisteme
capabile sa adune mai multe numere si sa returneze n nal suma lor sau toate sumele
lor part iale (prexe).
Astfel, sa consideram p numere x
1
, . . . , x
p
. Sumele prex sunt
y
1
= x
1
y
2
= x
1
+x
2
= y
1
+x
2
y
3
= x
1
+x
2
+x
3
= y
2
+x
3
. . .
y
p
= x
1
+x
2
+. . . +x
p
= y
p1
+x
p
(n mod similar se poate deni orice prefix, nlocuind adunarea + cu un operator
arbitrar ).
Vom prezenta aici un exemplu de automat aritmetic care sa genereze la ecare tact
cate un prex (ncepand cu y
1
).
R
m+n
ADD
m+n
IN
a
m+n1
. . . a
0 b
m+n1
. . . b
0
s
m+n1
. . . s
0
OUT
`
CK
CK
CK
m+n
m+n
m n
m+n
,
,
Valoarea init iala din registrul paralel R
m+n
este 0.
Automatul are 2
m+n
stari si calculeaza sumele part iale pentru p 2
m+1
1 numere
de cate n bit i.
La ecare tact se introduce un numar format din n bit i, iar pe cele m pozit ii supli-
mentare din stanga vor intra permanent
0
.
128 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Acesti m bit i suplimentari sunt necesari pentru a obt ine un rezultat corect si n
situat iile cele mai nefavorabile, cand sumele depasesc n bit i.
Automatul este evident foarte simplu. Cele doua componente sunt circuite simple care
pot denite recursiv.
Exemplul 7.5 Sa particularizam sumatorul prex denit anterior, pentru m = 2, n = 1.
El va avea forma
R
3
ADD
3
,
,
,
,
y
2
y
1
y
0
CK
CK
CK
b
2
b
1
b
0
x
0
0
a
2
a
1
a
0
Acest sumator lucreaza pe trei bit i, adunand permanent o valoare binara (
sau
1
);
el poate folosit si ca un counter pe trei bit i COUNT
3
.
Denit ca un automat, vom avea Q = {0, 1}
3
, X = {0, 1}, Y = {0, 1}
3
.
Funct iile de tranzit ie si de iesire rezulta imediat din graful de funct ionare:
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
q
7
q
6
q
5
q
4
q
3
q
2
q
1
q
0
0/000 0/001 0/010 0/011 0/100 0/101 0/110 0/111
1/111 1/110 1/101 1/100 1/011 1/010 1/001
7.5. CIRCUITE ARITMETICE 129
7.5.4 Multiplicator
Sa construim un circuit secvent ial pentru nmult irea a doua numere binare.
Spre deosebire de circuitul combinat ional de nmult ire, acesta foloseste circuitul de
deplasare, bazandu-se pe faptul ca nmult irea este de fapt o adunare repetata.
Pentru usurint a expunerii, vom dezvolta o construct ie pentrunmult irea a doua numere
ntregi cu semn reprezentate pe 8 bit i (generalizarea ind imediata).
Fie numerele binare X = x
0
. . . x
7
si Y = y
0
. . . y
7
, din care formam produsul P = XY .
Numerele au reprezentarea standard: bit ii marcat i cu 0 sunt bit i de semn, iar restul
(notat X
M
respectiv Y
M
) semnica marimea numarului (considerat subunitar).
Valoarea lui este data de numarul
N =
7
i=1
x
i
2
i
Cand x
0
= 1, valoarea lui X este N.
Algoritmul de nmult ire va implementa ntai P
M
:= X
M
Y
M
, unde P
M
= p
1
. . . p
14
este valoarea absoluta a produsului.
Semnul lui P este dat de p
0
:= x
0
y
0
.
Rezultatul nal este numarul de 15 bit i P = p
0
p
1
. . . p
14
.
Valoarea P
M
este calculata iterativ prin sapte adunari/deplasari, denite de relat iile
P
i
:= P
i
+x
7i
Y
M
; P
i+1
:= 2
1
P
i
(1 i 6);
unde P
0
= 0, P
7
= P
M
.
Cand x
7i
= 1, avem P
i
:= P
i
+Y
M
, iar pentru x
7i
= 0 va P
i
:= P
i
+ 0.
Deci, la ecare pas, la produsul part ial P
i
se aduna nmult itorul Y
M
sau 0.
Inmult irea cu 2
1
este o deplasare a lui P
i
spre dreapta cu o pozit ie (dupa adunare);
aceasta este echivalenta cu o mpart ire la 2.
Fiecare astfel de pas (adunare + deplasare) adauga un bit la produsul part ial, care
creste astfel de la 7 la 14 bit i (la care se va adauga n nal si bitul de semn).
Putem specica acum principalele componente necesare n construct ia multiplicatoru-
lui pe 8 bit i.
Doi registri: Q (pentru nmult itor) si M (denmult it) vor cont ine X respectiv Y .
Un registru dublu (de 16 bit i) A.Q va stoca produsele part iale P
i
. De remarcat ca
acesta cont ine n a doua jumatate registrul nmult itor.
130 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Adunarea este realizata cu un sumator combinat ional (paralel) pe 7 bit i (se poate
folosi un sumator serial, dar va de sapte ori mai lent).
Sumatorul va avea iesirea si o intrare conectate la A, iar cealalta intrare va trebui
sa comute ntre M si 0.
Funct ia de deplasare la dreapta cu un bit se poate obt ine folosind pentru A un
registru de deplasare dreapta cu intrare/iesire paralela.
Circuitul are structura urmatoare:
ADD
7
A[1 : 7] Q[1 : 7] M[1 : 7]
`
, ,
,
,
`
/
/
/
/
>> >> >>
`
`
`
`
CL
LD
SH
A
0
c
0
c
2
c
7
c
11
Interfet e de magistrale
OUT
7
8 7 7
c
6
7
7
M
7
M
0
Q
7
SH
CL
LD
SH
c
5
c
9
A[0 : 7]
c
out
7EMUX
EMUX
Conform denit iei, suma este controlata de bitul x
7i
, stocat n registrul Q.
Unitatea de control a nmult irii va trebui sa scaneze la ecare pas cont inuturile lui Q
de la dreapta spre stanga.
Daca Q este un registru de deplasare, atunci x
7i
se va obt ine totdeauna din cel mai la
dreapta ip-op al lui Q (Q[7]) deplasand Q spre dreapta nainte de a extrage urmatorul
x
7i
.
7.5. CIRCUITE ARITMETICE 131
Deci, X
M
este redus treptat de la 7 bit i la 1 bit, n timp ce P
i
este expandat de la 7
la 14 bit i, tot prin deplasare la dreapta.
Aceasta conduce la ideea de a combina A si Q ntr-un singur registru dublu de de-
plasare, n care jumatatea dreapta este Q, iar cea stanga A.
Multiplicatorul este completat prin includerea magistralelor de date externe IN si
OUT si o unitate de control cu un numarator pe 3 bit i COUNT
3
.
Dupa cum se observa, n centrul construct iei se aa sumatorul paralel pe 7 bit i si
registrul dublu A.Q care implementeaza formulele de calcul.
Semnalul c
out
de iesire al transportului din sumator este al 8-lea bit (cel mai semni-
cativ) al sumei si este conectat la intrarea A
0
.
Contorul COUNT
3
(nereprezentat aici) este incrementat si testat dupa ecare pas
adunare/deplasare, pentru a vedea daca prima etapa de calcul s-a terminat.
Cand COUNT
3
a ajuns la
111
(adica 7), P
M
ocupa bit ii 1 : 14 ai registrului A.Q,
adica bit ii A[1 : 7].Q[0 : 6].
Bitul de semn p
0
este apoi calculat din x
0
(stocat n Q
7
) si y
0
(stocat n M
0
), dupa
care este depus n A
0
.
Simultan, un
0
este pus n Q
7
pentru a extinde rezultatul nal de la 15 la 16 bit i.
Unitatea de control a multiplicatorului este formata din toate semnalele si punctele
de control necesare n implementarea operat iilor specicate.
Listam mai jos cateva semnale de control necesare n construirea unui multiplicator.
Semnal Operat ia Semnal Operat ia
control controlata control controlata
c
0
Reseteaza A c
7
Deplasare dreapta A.Q
c
1
Reseteaza COUNT
3
c
8
Incrementare COUNT
c
2
Incarca A
0
c
9
Select ie c
out
sau M
0
Q
7
pentru A
0
c
3
Incarca M din IN c
10
Anuleaza Q
7
c
4
Incarca Q din IN c
11
OUT A
c
5
Incarca suma n A[1 : 7] c
12
OUT Q
c
6
Select ie M sau
0000000
In unele cazuri sunt necesare mai multe semnale de control pentru implementarea unei
operat ii.
De exemplu, adunarea foloseste c
6
pentru a selecta operandul drept al adunarii, c
9
pentru a selecta c
out
care se va ncarca n A
0
, c
2
si c
5
pentru pentru a ncarca suma
curenta de 8 bit i n A[0 : 7].
Numarul semnalelor de control variaza n funct ie de logica utilizata pentru imple-
mentarea unitat ii de control.
132 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Tabelul urmator descrie un proces complet de nmult ire ntre numerele X = 10110011
si Y = 01010101.
Bitul de semn x
0
= 1 al lui X (care arata ca este negativ) este subliniat.
Datele din A.Q aate la stanga lui x
0
reprezinta produsul part ial curent P
i
.
Pas Act iune Acumulator A Registru Q
0 Init ializare registri 00000000 10110011
1 01010101
Add M to A 01010101 10110011
Shift A.Q 00101010 11011001
2 01010101
Add M to A 01111111 11011001
Shift A.Q 00111111 11101100
3 00000000
Add 0 to A 00111111 11101100
Shift A.Q 00011111 11110110
4 00000000
Add 0 to A 00011111 11110110
Shift A.Q 00001111 11111011
5 01010101
Add M to A 01100100 11111011
Shift A.Q 00110010 01111101
6 01010101
Add M to A 10000111 01111101
Shift A.Q 01000011 10111110
7 00000000
Add 0 to A 01000011 10111110
Shift A.Q 00100001 11011111
8 Pune semnul n A
0
10100001 11011110 - Produsul
Q
7
0 nal
7.5. CIRCUITE ARITMETICE 133
7.5.5 Circuit pentru produsul scalar (MAC)
Una din cele mai importante funct ii aritmetice care pot realizate n aceasta etapa
este produsul scalar a
1
b
1
+ a
2
b
2
+ . . . + a
n
b
n
dintre doi vectori A = (a
1
, . . . , a
n
) si B =
(b
1
, . . . , b
n
).
Circuitul numit MAC (Multiple Accumulate Circuit) poate realizat n mai
multe moduri posibile.
Construct ia prezentata aici foloseste o extensie seriala a doua automate, numite au-
tomat acumulator si automat bits eater (mancator de bit i).
Folosim si aici faptul ca multiplicarea este n esent a tot o adunare.
Deci se va construi un automat acumulator pentru a implementa n paralel ambele
operat ii: nmult irea si suma produselor; n acest fel timpul de execut ie ramane acelasi.
Un astfel de circuit MAC este compus din:
Automat bits eater, care indica succesiv pozit iile bit ilor din operandul b, care
au valoarea 1; de asemenea el precizeaza sfarsitul operat iei de nmult ire; circuitul
cont ine:
R
2
n
- registru de stare, cont inand operandul b
i
;
nEMUX - n multiplexori elementari care lucreazan paralel; ei fac init ializarea
cont inutului registrului de stare (pentru LOAD
2
= 1) si nchide ciclul auto-
matului (pentru LOAD
2
= 0).
PE
n
- codicator cu prioritate care indica pozit ia celui mai semnicativ bit
1
` `
`
IN
LOAD
1
LOAD
2
Z
E
S
0
S
0
S
1
Q D Q D
CLR
OUT
bits eater
automat acumulator
SR
2
,
,
,
,
,
m+2n
n
n
2n
2n
m
m+2n
m+2n
m+2n
m+2n
n
n
n
n
n
7.5. CIRCUITE ARITMETICE 135
Circuitul funct ioneaza n felul urmator:
1. Se introduce operandul a n R
1
n
(la comanda din LOAD
1
);
2. Se introduce operandul b n R
2
n
(la comanda din LOAD
2
);
3. PE
n
selecteaza un vector 00 . . . 10 . . . 0 cu
1
din al doilea
operand. Deci timpul mediu de execut ie este egal cu n/2.
Observat ia 7.3 Daca cei doi vectori se reduc la cate un singur numar (n = 1), circuitul
MAC construit lucreaza ca un multiplicator, calculand produsul celor doua numere.
136 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.6 Reprezentarea automatelor nite
Comportarea unui automat nit poate denita n mai multe moduri (grafuri, tabele de
tranzit ie, scheme logice, diagrame etc).
Toate acestea necesita nsa o denire nerecursiva a funct iilor si .
In aceasta sect iune vom construi o reprezentare a automatelor nite bazata pe tablouri
logic programabile (PLA).
Astfel va posibil sa reducem complexitatea funct iilor de transfer si de iesire ale
automatelor, efectuand simplicari ale tablourilor PLA corespunzatoare.
Denit ia 7.4 Un semi-automat este un triplet A
1/2
= (Q, X, ) unde Q, X, au semni-
cat ia data la denit ia automatelor.
Un semi-automat este deci un automat fara funct ia de iesire .
R
n
CICLU PLA
Q
CK
A
1/2
X X
CK
(Q)
(a) (b)
Utilitatea acestui concept (mai apropiat de not iunea formala de automat nit) rezida din
faptul ca multe tehnici de optimizare sunt legate doar de cicluri, nu de iesiri.
Cele patru tipuri de automate pot denite atunci (prin semi-automate) astfel:
automatul Mealy: rezulta prin conectarea unui semi-automat cu un PLA care
determina funct ia din intrarea X si iesirea semi-automatului (Figura (a) de pe
pagina urmatoare);
automatul Moore: se obt ine conectand la iesirea semi-automatului un PLA
(Figura (b));
automate cu ntarzieri): se obt in conectand nca un registru R la construct iile
anterioare ((c) pentru Mealy, (d) pentru Moore).
7.6. REPREZENTAREA AUTOMATELOR FINITE 137
R R
PLA PLA
A
1/2
A
1/2
X X CK
Y
(c) (d)
Y
X X CK
PLA PLA
A
1/2
A
1/2
X X CK X X CK
PLA
Y Y
(a) (b)
, ,
,
,
CK
CK CK
CK
Vom ilustra prin doua exemple utilizarea semi-automatelor PLA de transfer si de
iesire.
7.6.1 Automat pentru MAC
Sa construim un automat pentru funct ionarea circuitului multiplicator MAC (multiple-
accumulate circuit) denit n paragraful anterior
3
.
INTERFACE MAC AF
`
`
`
`
`
A
B
C
E
LOAD
1
LOAD
2
CLR
END
OUT
IN
S
I
W
3
Evident, n loc de MAC se poate folosi un automat pentru realizarea oricarui grup de operat ii
aritmetice.
138 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Aici MAC este conectat la o interfat a sincrona (INTERFACE), ntregul sistem ind
controlat de un automat nit FA.
Acest automat are trei intrari:
1. S: este generat de INTERFACE indicand ca circuitul MAC a fost selectat pentru
transferul de date;
2. I: este generat de INTERFACE, indicand sensul de transfer al datelor: daca I = 1
atunci transferul se face de la INTERFACE spre MAC; altfel, n sens contrar;
3. E: este generat de MAC semnalizand sfarsitul operat iei de nmult ire.
si patru iesiri:
1. LOAD
1
: comanda ncarcarea primului operand primit sincron la intrarea IN de la
INTERFACE;
2. LOAD
2
: comandancarcarean mod similar a celui de-al doilea operand, si porneste
operat ia;
3. CLR: comanda ncarcarea valorii
0
.
.
.-
-
-
-
-
-
-
-
-
0000
`
_
0000
.
.
.-
-
-
0001
_
0100 0000
.
.
.-
-
-
_
1000 0010
.
.
.-
-
-
.
.
. -
-
-
q
0 000
S
q
1 001
S
q
2 011 (010)
E
q
3 010 (011)
S
I
q
4 100
0 1
0 1
0 1
0 1
0 1
Deci Q = {0, 1}
3
(sunt necesari minim trei bit i pentru a codica cinci stari),
X = {0, 1}
3
(o intrare este reprezentata de secvent a EIS), Y = {0, 1}
4
(secvent a de patru
bit i care codica n ordine iesirile LOAD
1
, LOAD
2
, CLR, WAIT).
O stare este reprezentata printr-o secvent a de trei bit i Q
2
Q
1
Q
0
; am codicat
q
0
= 000, q
1
= 001, q
2
= 011, q
3
= 010, q
4
= 100
(este posibila si o inversiune de notat ie ntre q
2
si q
3
).
140 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Funct ia de transfer (Q
2
Q
1
Q
0
, EIS) = Q
+
2
Q
+
1
Q
+
0
este denita
000 001 010 011 100 101 110 111 Q
+
2
Q
+
1
Q
+
0
000 000 001 000 001 000 001 000 001 0 0 S
001 001 011 001 011 001 011 001 011 0 S 1
011 011 011 011 011 010 010 010 010 0 1 E
010 010 100 010 001 010 100 010 001 SI S SI
100 000 000 000 000 000 000 000 000 0 0 0
unde pe ultimele trei coloane s-a descris formal starea rezultata (in funct ie de intrare).
Putem deni acum ecuat iile care descriu semi-automatul PLA de transfer:
Q
+
2
= Q
1
Q
0
SI (Q
2
se poate reduce prin minimizarea funct iei booleene)
Q
+
1
= Q
1
Q
0
S Q
1
Q
0
Q
1
S
Q
+
0
= Q
2
Q
1
S Q
1
Q
0
Q
0
E Q
1
Q
0
SI
Deci
(Q
2
Q
1
Q
0
, EIS) = (Q
1
Q
0
SI, Q
1
Q
0
S Q
1
Q
0
Q
1
S, Q
2
Q
1
S Q
1
Q
0
Q
0
E Q
1
Q
0
SI)
Similar, funct ia de iesire (Q
2
Q
1
Q
0
, EIS) = (LOAD
1
, LOAD
2
, CLR, WAIT)
este denita prin tabelul
000 001 010 011 100 101 110 111
000 0010 1000 0010 1000 0010 1000 0010 1000 S 0 S 0
001 000 0100 0000 0100 0000 0100 000 0100 0 S 0 0
011 0001 0001 0001 0001 0001 0001 0001 0001 0 0 0 1
010 0000 0001 0000 1000 0000 0001 0000 1000 SI 0 0 SI
100 0010 0010 0010 0010 0010 0010 0010 0010 0 0 1 0
Pe baza lui se pot scrie ecuat iile care descriu PLA-ul de iesire:
LOAD
1
= Q
2
Q
1
Q
0
S Q
1
Q
0
SI, LOAD
2
= Q
1
Q
0
S
CLR = Q
2
Q
1
Q
0
S, WAIT = Q
1
Q
0
Q
1
SI
Deci
(Q
2
Q
1
Q
0
, EIS) = (Q
2
Q
1
Q
0
S Q
1
Q
0
SI, Q
1
Q
0
S, Q
2
Q
1
Q
0
S, Q
1
Q
0
Q
1
SI)
Graful funct ional (unde x, y, z {0, 1}) este
`
_
`
_
`
_
`
_
`
_
`
`
q
0
q
1
q
2
q
3
q
4
xyz/0010
xy0/0000 0xy/0001 xy0/0000
xy0/0010
xy1/1000 xy1/0100 1xy/0001 x01/0001
x11/1000
7.6. REPREZENTAREA AUTOMATELOR FINITE 141
Figura de mai jos descrie circuitul rezultat; cele doua PLA-uri de conjunct ie (cores-
punzatoare funct iilor de transfer si de iesire) sunt unite n unul singur (cel superior), deci
termenii comuni sunt utilizat i mpreuna.
DFF
DFF
`
.
.
.
.
.
.
E
.
.
.
.
.
.
I
.
.
.
.
.
.
S
Q
Q
Q
Q
Q
Q
Q
0
Q
1
Q
2
D
CK
D
CK
D
CK
CK
Q
+
0
Q
+
1
Q
+
2
A
B
C
W
DFF
`
`
`
`
`
`
,
,
,
,
,
.
`
`
q
0
q
1
q
3
q
2
0/0
0/0
1/0
0/0
1/0
0/0
1/1
1/0
De exemplu, pentru intrarea 010101101110011 iesirea va 000000100100000.
Automatul avand patru stari, acestea pot codicate folosind doi bit i:
q
0
00, q
1
01, q
2
10, q
3
11
Deci Q = {0, 1}
2
, X = Y = {0, 1}. Funct iile de transfer si de iesire sunt
0 1 Q
+
1
Q
+
0
00 00 01 0 x
01 10 01 x x
10 00 11 x x
11 10 01 x x
0 1 y
00 0 0 0
01 0 0 0
10 0 0 0
11 0 1 x
De aici rezulta imediat forma celor doua PLA (de transfer si de iesire):
(Q
1
Q
0
, x) = (Q
0
x Q
1
Q
0
x, x), (Q
1
Q
0
, x) = Q
1
Q
0
x
Pentru implementare sunt necesare doua DFF (necesare codicarii celor patru stari), un
codicator elementar (pentru variabila de intrare x) si doua PLA (care au componenta
AND comuna).
DFF
DFF
,
.
. .
-
--
-
--
.
. .
CK
y
CK
D
CK
D
Q
Q
Q
0
Q
1
Q
Q
x
7.7. AUTOMATE DE CONTROL 143
7.7 Automate de control
Din exemplele precedente sentrevede aparit ia unei clase importante de automate utilizate
n arhitectura unui calculator: clasa automatelor de control.
Un astfel de automat este inclus ntr-un sistem de calcul n doua pozit ii principale:
In prima pozit ie (X
1
) automatul de control primeste informat ie despre comenzile sau
testele pe care trebuie sa le faca, printr-un cod care selecteaza secvent a de control
ce va executata;
In a doua pozit ie (X
2
), automatul de control primeste informat ii prin mai mult i
bit i, despre efectele (feedbackuri) pe care le-a avut iesirea sa Y asupra subsistemelor
gestionate.
Marimea si complexitatea secvent ei de control necesita nlocuirea PLA cu un ROM, cel
put in n procesul de reprezentare si testare.
R
ROM
RI
X
2
X
1
Q
Q
+
Y
Select ie comanda
Feedback comanda
Comanda
Structura automatului de control foloseste doi registri:
Un registru de intrare (RI) n care se face o select ie a comenzii (sau testului).
Un registru de lucru, unde se formeaza comanda ce va trimisa catre un anumit
subsistem.
Aplicat iile accentueaza doua lucruri importante:
1. Automatul poate stoca n spat iul starilor informat ii despre denirea unei act iuni
(ecare stare curenta se reprezinta printr-o linie care codica o aplicat ie de la spat iul
init ial al starilor, la o singura stare);
2.
In majoritatea starilor, automatul testeaza numai un bit aat pe pozit ia de adresa
X
2
; daca nu sunt acoperite toate situat iile, problema este rezolvata prin adaugarea
unor stari suplimentare, activate automat (stari de eroare, stari nale etc).
Pe baza acestor observat ii, structura automatului de control poate modicata, obt inan-
du-se o forma redusa prezentata n gura urmatoare.
144 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
MUX
p
R
ROM
n EMUX
`
`
X
1
1
0
S
0
MOD
NEXT
TEST
Y
0
. . .
X
2
T
1
n
m
p
Deoarece secvent a de comenzi poate init ializata numai prin intermediul codului X
1
,
acest cod se poate folosi doar pentru adresarea la prima linie de comanda din ROM, cu
ajutorul unei stari prin care componenta MOD = 1.
Aceasta facilitate se realizeaza adaugand n EMUX-uri si o noua iesire spre ROM
pentru a genera semnalul MOD.
De remarcat ca pentru aceste n EMUX-uri, comanda S
0
= 1 nseamna init ializare,
iar S
0
= 0 nseamna urmatoarea linie de comanda.
Aceasta modicare permite simplicarea liniilor din ROM, o parte din informat ie ind
transferata spre preselect ia comandata de multiplexori.
A doua modicare se refera la intrarea X
2
.
Deoarece bit ii asociat i acestei intrari sunt testat i n diverse stari, MUX
p
alege n
ecare stare bitul corespunzator, folosind selectorul TEST.
Deci bit ii asociat i intrarii X
2
sunt separat i de intrarea n ROM, adaugandu-le cateva
condit ii.
Astfel n loc de circa 2
p
bit i, la intrarea n ROM se va conecta unul singur T.
Aceasta structura lucreaza la fel ca cea init iala, dar marimea ROM-ului este foarte
mult simplicata.
Lucrand cu aceasta varianta a automatului de control, se pot realiza si alte modicari.
Astfel, cea mai mare parte a secvent elor generate sunt organizate ca o secvent e liniare.
Deci, comenzile asociate pot stocate n ROM la adrese succesive (ecare adresa din
ROM se poate obt ine prin incrementarea adresei curente aate n registrul R).
Rezulta structura reprezentata n gura urmatoare:
7.7. AUTOMATE DE CONTROL 145
MUX
p TC
INC
ROM R MUX
2
`
Y
X
2
. . .
TEST
T
3
2
1
0
X
1
,
,
2
p
M
0
M
1
S
1
S
0
MOD
SALT
`
Noutatea constan circuitul de incrementare INC conectat la registrul de stare, precum si
un mic circuit combinat ional (TC Circuit de testare) care codica semnalele M
1
, M
0
, T
ntr-un cod de select ie pentru MUX
2
.
Iesirea din ROM poate privita ca o micro - instruct iune denita astfel:
<Micro-instruct iune> ::= <Comanda><Mod><Test><Salt>
<Comanda> ::= <denita de structura controlata>
<Mod> ::= JMP|CJMP|INIT
<Test> ::= <denit de structura controlata>
<Salt> ::= <adresa noua de maxim 6 simboluri>
Circuitul de testare TC construieste funct iile de select ie:
S
1
= M
1
M
0
, S
0
= M
1
(M
0
T)
O tabela a valorilor celor doua funct ii, precum si a comenzilor selectate de MUX
2
pe
baza acestor valori este:
M
1
M
2
T S
1
S
0
Comanda
0 0 0 0 0 Urmatoarea comanda
0 0 1 0 0 Urmatoarea comanda
0 1 0 0 0 Urmatoarea comada
0 1 1 0 1 Salt
1 0 0 1 1 Init ializare
1 0 1 1 1 Init ializare
1 1 0 0 1 Salt
1 1 1 0 1 Salt
Aceasta varianta de circuit va numita CROM (controller cu ROM) si este utilizata n
majoritatea structurilor circuitelor complexe de calculator.
146 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Exemplul 7.6 Sa presupunem ca n memoria ROM asociata unei unitat i logico-aritmetice
(ALU) si gestionata de un automat de control, se aa instruct iuni aritmetice.
Sa presupunem de asemenea ca o instruct iune standard are 16 bit i (un semicuvant) si
este de forma
< operatie >< op
1
>< op
2
>< mod >< test >< adresa >
unde
1. < operatie > este o operat ie aritmetica sau logica (adunare, scadere, comparare,
deplasare etc) codicata pe 3 bit i, a carei execut ie este asigurata de ALU.
2. < op
1
, < op
2
> sunt adresele (pe cate 2 bit i) a doua registre de memorie unde se
aa operanzii. Rezultatul se depune n < op
1
>.
Daca operat ia necesita un singur operand, a doua adresa este 00.
3. < mod > indica (pe un bit) modul de continuare: salt la instruct iunea urmatoare
sau salt condit ionat de valoarea unui anumit bit din < op
1
>.
4. < test > da pe 3 bit i adresa bitului de test (daca < mod >= 1) sau este ignorat
(daca < mod >= 0).
5. < adresa > cont ine (pe 5 bit i) adresa instruct iunii din memoria ROM care va
accesata n continuare.
Atunci memoria ROM care va cont ine setul de instruct iuni este un (5, 16)-codicator.
Astfel, sa consideram ca la adresa 10110 se aa
01101101 00001001
Interpretarea va urmatoarea:
- Se executa adunarea (cod 011 executat de ALU) numerelor aate n registrii R1 (cod
01) si R2 (cod 10).
- Daca bitul aat pe pozit ia 0 (cod 000) din rezultat este 1 (situat ie ntalnita atunci
cand suma depaseste lungimea standard alocata numerelelor), atunci instruct iunea care se
executa n continuare este la adresa 01001; alfel se executa instruct iunea aata la adresa
urmatoare (10111).
7.8. TRANSFORMAREA AUTOMATELOR
IN CIRCUITE COMBINA-T IONALE147
7.8 Transformarea automatelor n circuite combina-
t ionale
Atat circuitele combinat ionale (0 DS) cat si automatele (2 DS) reprezinta modalitat i
de implementare a funct iilor booleene.
Ne putem pune urmatoarele ntrebari:
1. Care este legatura dintre port ile unei ret ele si un automat care executa aceeasi
funct ie?
2.
In ce condit ii putem transforma un circuit combinat ional ntr-un automat si invers?
Raspunsul este simplu de dat si se bazeaza pe tablouri logic programabile.
PLA Transfer
PLA Iesire
PLA Transfer
PLA Iesire
PLA Transfer
PLA Iesire
,
,
,
,
,
,
x(t
0
)
x(t
1
)
x(t
n
)
q(t
0
)
q(t
1
)
q(t
n
)
.
.
.
y(t
0
)
y(t
1
)
y(t
n
)
Fie un automat Mealy cu cele doua PLA-uri ale sale (de transfer si de iesire), starea
init iala q(t
0
) si secvent a de intrare pentru primul ciclu de n tact i: x(t
0
), x(t
1
), . . . , x(t
n
).
Circuitul combinat ional de sus genereaza secvent a de iesire corespunzatoare
y(t
0
), y(t
1
), . . . , y(t
n
)
,
, ,
Q
0
Q
1
CK
D D
s c s
x
Sa se arate ca poate folosit drept un counter crescator pe 2 bit i (COUNT
2
).
Pe baza lui sa se construiasca un counter descrescator pe 2 bit i
2. Sa se construiasca un counter pe trei bit i (UD COUNT
3
).
Se va folosi un bit de select ie s cu semnicat ia: cand s = 0 counterul va crescator,
iar cand s = 1, counterul va descrescator.
3. Sa se construiasca un sumator prex pentru cazul m = 1, n = 2.
4. Se da automatul
TFF
FA
a
b
s
c
CK
Sa se construiasca funct ia de tranzit ie, funct ia de iesire si graful de funct ionare.
7.9. EXERCIT II 149
5. Aceeasi problema pentru automatul
JKFF
FA
CK
K J
s
c
s
Q
a
b
6. Se da automatul nit reprezentat de graful
`
_
`
_
`
_
`
_
`
`
q
0
q
1
q
2
q
3
0 0
0 0
1 1
1
1
Sa se construiasca un circuit care sa implementeze acest automat.
Cum trebuie denita funct ia de iesire pentru ca acest automat sa funct ioneze ca
un counter descrescator pe 2 bit i ?
7. Se da automatul:
TFF
FA
TFF
,
,
,
CK
s
c
x
Sa se listeze comportarea sa (tabela funct iei de tranzit ie, graful de tranzit ie).
8. Sa se implementeze automatul anterior folosind numai DFF.
150 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
9. Sa se implementeze automatul anterior folosind numai JK registri.
10. Sa se verice circuitul din Exemplul 7.4, aratand ca este un counter zecimal pe 4
bit i
11. Sa se construiasca un circuit care primeste o secvent a binara si numara de cate ori
apare subsecvent a 00. Numarul de aparit ii se va da pe 3 bit i.
De exemplu, pentru intrarea 0101110010000110 raspunsul este 100 (apar patru
subsecvent e 00).
12. Sa se implementeze circuitul anterior folosind numai DFF.
13. Sa se implementeze circuitul anterior folosind numai JK registri.
Capitolul 8
Sisteme 3 DS sisteme (procesori)
Trecand la nivelul urmator de complexitate al circuitelor, al treilea ciclu poate nchis n
trei variante, n funct ie de cele trei tipuri de circuite prezentate anterior.
1. Cel mai simplu tip de sistem 3DS se obt ine nchizand al treilea ciclu cu un circuit
combinat ional (de exemplu, peste un automat sau o ret ea de automate, ciclul este
nchis folosind un 0 DS).
2. Al doilea tip nchide al treilea ciclu folosind un tip de memorie (1 DS).
3. A treia varianta utilizata conecteaza printr-un ciclu doua automate.
Acest ultim tip este caracteristic pentru un 3 DS, denind ca principala aplicat ie pro-
cesorul.
8.1 Automate JK - registri
Un automat este specic unui circuit de ordin doi, dar funct ia sa poate implementata
mai ecient folosind facilitat ile oferite de sisteme cu un nivel mai nalt.
A pentru 0 A
A pentru 1 A
De aici rezulta ca ecare tabela de tranzit ie care deneste o noua valoare a starii Q
+
i
poaate translatata n doua diagrame de tranzit ie: una pentru J
i
, a doua pentru K
i
.
Exemplul 8.1 Sa reluam de la diagrama funct iei de tranzit ie care descrie funct ia a
unui MAC (a se vedea sect iunea 7.6.1)).
000 001 010 011 100 101 110 111
000 000 001 000 001 000 001 000 001
001 001 011 001 011 001 011 001 011
011 011 011 011 011 010 010 010 010
010 010 100 010 001 010 100 010 001
100 000 000 000 000 000 000 000 000
Ea era implementata prin trei DFF care descriau comportamentele starilor Q
2
, Q
1
, Q
0
.
Noile diagrame de tranzit ie pentru J
i
si K
i
pot denite pe baza regulii anterioare,
rezultand urmatoarele doua tabele pentru cele 6 intrari ale JK - registrului (J
2
J
1
J
0
res-
pectiv K
2
K
1
K
0
).
J
000 001 010 011 100 101 110 111 J
+
2
J
+
1
J
+
0
000 000 001 000 001 000 001 000 001 0 0 S
001 00 01 00 01 00 01 00 01 0 S
011 0 0 0 0 0 0 0 0 0
010 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 I S I S
100 00 00 00 00 00 00 00 00 0 0
8.1. AUTOMATE JK - REGISTRI 153
K
000 001 010 011 100 101 110 111 K
+
2
K
+
1
K
+
0
000
001 0 0 0 0 0 0 0 0 0
011 00 00 00 00 01 01 01 01 0 E
010 0 1 0 1 0 1 0 1 S
100 1 1 1 1 1 1 1 1 1
Deci tabelele PLA de tranzit ie sunt descrise de aplicat iile
J
(Q
2
Q
1
Q
0
, EIS) = (Q
2
Q
1
Q
0
IS, Q
2
Q
1
Q
0
S, (Q
2
Q
1
Q
0
S)(Q
2
Q
1
Q
0
IS))
K
(Q
2
Q
1
Q
0
, EIS) = (
, Q
2
Q
1
Q
0
S, Q
2
Q
1
Q
0
E)
Deoarece cu trei bit i am codicat numai cinci stari (maximul ind opt): 000, 001, 011,
010, 100, expresiile pot simplicate
2
:
Astfel, din
Q
2
Q
1
Q
0
Q
2
Q
1
Q
0
Q
1
Q
0
Q
0
000 0 0
001 0 0
011 0 0
010 1 1 1
100 0 0
rezult a Q
2
Q
1
Q
0
S I = Q
1
Q
0
S I si Q
2
Q
1
Q
0
S = Q
0
S
Similar,
Q
2
Q
1
Q
0
E = Q
1
E, Q
2
Q
1
Q
0
S I = Q
1
S I,
Q
2
Q
1
Q
0
S = Q
2
Q
1
S, Q
2
Q
1
Q
0
S = Q
1
Q
0
S.
Deci
J
(Q
2
Q
1
Q
0
, EIS) = (Q
1
Q
0
I S, Q
1
Q
0
S, (Q
2
Q
1
S) (Q
1
I S))
K
(Q
2
Q
1
Q
0
, EIS) = (
, Q
0
S, Q
1
E)
Pe baza acestor ecuat ii se poate construi circuitul:
2
Reamintim, pe pozit ia marcata poate apare orice valoare.
154 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
JKFF
JKFF
JKFF
T
'
'
'
'
$
$
$
$
$
$
E
$
$
$
$
$
$
I
$
$
$
$
$
$
S
CK
W
C
A
Q
Q
Q
Q
Q
Q
J
CK
K
J
CK
K
J
CK
K
K
0
K
1
cccccc cccc
E
E
E
E
E
E
E
c E
c E
E
E
c E
E
E
E
E
E
E
,
,
,
,
,
E
E
E
'
'
' E
'
'
B
'
'
'
'
'
'
Q
2
Q
1
Q
0
J
0
J
1
J
2
K
2
J
0 1 J
1
J
0
00 00 01 0 x
01 1 0 x
10 0 1 x
11
K
0 1 K
1
K
0
00
01 1 0 x
10 1 0 x
11 01 10 x x
De aici pot scrise funct iile de transfer (dupa reduceri):
J
(Q
1
Q
0
, x) = (Q
0
x, x),
K
(Q
1
Q
0
, x) = ((Q
0
x) (Q
0
x), x)
Implementarea ntregului automat va
JKFF
JKFF
@
@
@
@
@
@
cccccc
'
'
'
'
E
T
'
' ,
E E E
'
T
T
E
'
T
E
'
T
E
c E
,
x
Q
Q
Q
0
J
J
0
CK
K
K
0
J
J
1
CK
K
K
1
CK
y
Q
Q
1
Deci folosirea automatelor JK registri este ecienta numai pentru tablouri aleatoare de
dimensiune mare.
Posibilitatea de minimizare a PLA-urilor este permisa de autonomia crescuta a JKFF
fat a de DFF. Un DFF are doar o autonomie part iala de a sta ntr-o anumita stare, pe
cand un JKFF poate evolua n spat iul starilor.
Un DFF trebuie sa raporteze permanent la intrare care va urmatoarea stare (0
sau 1), pe cand un JKFF permite comenzi mult mai generale, J = K = 1 care spune
treci n alta stare (sau J = K = 0 pastreaza starea), fara a o indica exact care este
aceasta (de fapt, al doilea ciclu ajuta un JKFF sa-si cunoasca starea curenta).
156 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
8.2 Registri numaratori
Exista diverse moduri de a simplica un PLA, prin personalizarea unui automat.
O solut ie des ntalnita consta n folosirea unui numarator sincron setabil SCOUNT
n
.
Acesta este un circuit care combina doua funct ii: cea de registru (ncarcat la comanda
L) si cea de numarator (crescator, la comanda U).
Din cele doua funct ii, cea de ncarcare are prioritate.
Exemplul 8.3 Sa reluam circuitul MAC denit n 7.5.5. Pentru a adapta asignarea
starilor utilizand un numarator setabil ca registru de stari, va trebui sa utilizam codurile
starilor (detaliate n schema logica din 7.6.1).
Ideea este de a avea n acea schema logica cat mai multe tranzit ii obt inute prin incre-
mentare.
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
SCOUNT
3
MUX
2
E
E
E
E
T T
'
S
E
0
1
2
3
S
0
S
1
U
L
i
2
i
1
i
0
CK
CK
Q
2
Q
1
Q
0 I
A B C W
'
'
'
'
'
'
'
'
c c c c c
c c c c c
'
c
'
c
'
c
'
c
'
c
T
T
T
'
T
E
c
,
,
,
, , , , ,
c
E
E
c
T
E
c
c c
'
T
c c c c
c c c
0
0
AR
ATORI 157
Astfel de exemplu, din starea 000 tranzit ia este data de contor daca S = 1; altfel,
automatul ramane n aceeasi stare.
Deci, multiplexorul selecteaza pentru intrarea U a contorului valoarea lui S.
Funct ia de ncarcare a contorului este selectata cu funct ia L = Q
2
(Q
1
Q
0
S I)
(extrasa direct din schema logica).
Totul se face pentru ca intrarile i
0
, i
1
, i
2
n SCOUNT
3
sa aiba valori corecte numai
daca n starea curenta tranzit ia se poate realiza ncarcand o anumita valoare n circuitul
de control.
Deci, n denit ia funct iilor logice asociate cu aceste intrari putem avea destul de multa
libertate.
Va rezulta i
2
= i
1
= 0, i
0
= Q
2
.
Intrarea 3 a multiplexorului este Q
1
S I (pentru a maximiza termenii folosit i n
comun de PLA).
Structura rezultata n circuitul descris anterior are o componenta aleatoare minima.
Procesul de segregare este mai adanc daca implementam circuite simple, dar denite
recursiv.
158 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
8.3 Automat aritmetic si logic
Cele dou a sect iuni anterioare s-au referit la exemple de circuite n care al treilea ciclu se
nchide ntr-un circuit combinat ional.
Sa tratam acum un automat avand un ciclu nchis printr-o memorie.
Scopul este de a sublinia efectul acestui de-al treilea ciclu n sistemele care cont in
astfel de circuite.
Structura prezentata mai jos este folosita pentru realizarea de funct ii aritmetice si
logice (ALU) cu date stocate n opt registri de cate n bit i ecare; pentru simplicarea
circuitului, nu s-au mai descris ceasurile de sincronizare; de asemenea, toate magistralele
sunt de n bit i.
Vom analiza doua variante de construct ie, fara si cu DFF conectat ntre CR
OUT
-ul si
CR
IN
-ul circuitului ALU.
DFF
n EMUX
ALU
REGISTRI
c
'
c c
E
c
E
c
T
E
E
E
T
'
c
c
'T E
E
&
&a
C
< op. drept > < op. stang >
Dest
< sursa > S
0
y
1 0
D
IN
Al doilea ciclu
< reset > CLR
D
Q
Al treilea ciclu
L R
CR
OUT
CR
IN
D
OUT
,
E
T
'
'
< func >
< transport >
,
T
Circuitul cont ine:
REGISTRI: o grupare de 8 registri de cate n bit i ecare; la ecare tact sunt
selectat i doi din ei pentru a transmite codurile operanzilor drept respectiv stang (la
intrarea n ALU); un al treilea registru este desemnat la ecare tact pentru iesire, cu
codul < op drept > (pentru select ie se pot folosi doua n MUX
3
, iar la destinat ie
ceasul este distribuit printr-un DMUX
3
).
8.3. AUTOMAT ARITMETIC SI LOGIC 159
ALU: are structura si funct iile prezentate n Unitatea aritmetica si logica (5.11).
n EMUX: nchide ciclul prin aducerea rezultatului de la iesirea din ALU la
registri (pentru S
0
= 0) sau permite ncarcarea registrilor cu date primite de la
intrarea D
IN
(pentru S
0
= 1).
D: este un DFF care genereaza la intrarea CR
IN
n ALU valoarea de transport
generata la tactul precedent de iesirea CR
OUT
din ALU; poate resetat activand
bitul reset. Prima varianta pe care o vom prezenta nu va cont ine acest ip - op.
Automatul de control este un CROM (sect iunea 7.7).
Varianta I
Linia de comanda primita de la un automat de control are denit ia:
< comanda > ::= < op stang >< op drept >< func >< transport >< sursa >
::= < reset >
< op. stang > ::= L0 | L1 | . . . | L7
< op drept > ::= R0 | R1 | . . . | R7
< func > ::= AND | OR | XOR | ADD | SUB | INC | SHL
< transport > ::= CR |
< sursa > ::= D
IN
|
Sa presupunem can doua perechi de registri sunt doua numere de cate 2n bit i care trebuie
adunate.
Primul numar este stocat n perechea de registri (L1, L2) (L2 cont ine cei mai semni-
cativi n bit i); al doilea numar este stocat similar n (R1, R2).
Secvent a de comenzi care controleaza aceasta adunare este:
L1 R1 ADD CJMP CR
OUT
UNU
L2 R2 ADD JMP DOI
UNU L2 R2 ADD CR
DOI . . .
Varianta II
Aceasta varianta este un 3 DS n care ciclul se nchide printr-un DFF.
Rolul ultimului ciclu este de a reduce, simplica si a mari viteza rutinei care realizeaza
aceeasi operat ie sau alte proceduri dependente.
Diferent a din linia de comanda consta n eliminarea campului < transport > si
adaugarea la < reset > a denit iei
160 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
< reset >::= RST |
Diferent a funct ionala consta n modul n care cont inutul DFF - ului comanda bitul
de transport din intrarea n sumator (CR
IN
).
Astfel, secvent a de comenzi care realizeaza suma anterioara devine
. . . RST . . .
L1 R1 ADD
L2 R2 ADD
8.4 Automate stiva
Sa consideram acum (n construct ia 3 DS sistemelor) varianta n care al treilea ciclu se
nchide printr-un automat.
Acest ciclu are posibilitatea de a minimiza marimea componentei aleatoare.
Mai mult, aceasta micsorare va afecta ordinul de marime al part ii aleatoare (pana
acum, aceasta reducere se realiza cu o constanta).
Structura propusa cu deosebit de multe aplicat ii este automatul stiva.
FA
c
c c E
T
E
'
X
X
X
Y
{PUSH, POP, }
D
IN
D
OUT
STIV A
. . .
. . .
Denit ia 8.1 Un automat stiva PDA (PushDown Automaton) este construit prin legarea
ntr-un ciclu a unui automat nit cu o stiva (memorie LIFO) (a se vedea Figura).
Formal, el este un 7-tuplu PDA = (Q, X, Y, Z, , , z
0
), unde
Q: mult imea (nita a) starilor automatului;
X: alfabet nit nevid; secvent a de intrare, cea stocata n stiva si cea primita din
stiva sunt elemente din X
.
Y: alfabetul de iesire;
Z : mult imea de comenzi catre stiva: {PUSH, POP, NOP};
8.4. AUTOMATE STIV
A 161
: funct ia de tranzit ie; : QXX QX
r
r
r
r
r
r
r
r
r
r
r
r
`
_
OK
POP
r
r
r
r
r
r
r
r
r
r
r
r
PUSH a
`
_
r
r
r
r
r
r
`
_
q
0
0 1
a=$
q
1
1 0
a=&
q
2
0 1
a=$
1 0
a=TOS
0 1
TOS=Z
0
q
3
q
4
c
c
'
T
E
E
c
c
E
c
c E
T
'
`
_
'
c
c
'
c
'
c
c '
T
E
E
c
'
c
c '
T
E
E
c
E
c
c
c E
T
'
Semnicat ia ecareia din cele 5 stari este:
q
0
: este starea init iala, cand se asteapta primul caracter $.
q
1
: n aceasta stare, simbolurile primite sunt puse n stiva (PUSH); la recept iona-
rea lui & automatul comuta n starea urmatoare.
162 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
q
2
: ecare simbol primit este comparat cu varful stivei (TOS); daca cele doua carac-
tere sunt egale, stiva elimina caracterul comparat (POP); daca simbolul primit este
$ iar TOS cont ine z
0
, automatul trece n starea q
3
; n orice alta situat ie, automatul
trece n starea q
4
.
q
3
: automatul recunoaste secvent a primita ca ind corecta; este o stare nal a de
acceptare.
q
4
: automatul respinge secvent a primita ca ind incorecta; este o stare nala de
eroare.
Formal, automatul stiva este M = (Q, X, Y, Z, , , z
0
) unde:
Q = {q
0
, q
1
, q
2
, q
3
, q
4
},
X = {z
0
, $, %} V unde V este un alfabet arbitrar, denit separat,
Y = {OK, EROARE, },
Z = {PUSH, POP, NOP, BEGIN, END},
funct ia de tranzit ie
(q
0
, a, z
0
) = (q
0
, z
0
, NOP), (q
1
, a, b) = (q
1
, ab, PUSH a), a = &, b V {z
0
}
(q
0
, $, z
0
) = (q
1
, z
0
, BEGIN) (q
1
, &, b) = (q
2
, b, NOP)
(q
2
, a, a) = (q
2
, , POP a), a = $ (q
2
, a, b) = (q
4
, b, NOP), a = b, a = $
(q
2
, $, z
0
) = (q
3
, , END), (q
2
, $, a) = (q
4
, a, NOP), a = z
0
si funct ia de iesire
(q
0
) = (q
1
) = (q
2
) = , (q
3
) = OK, (q
4
) = EROARE.
Secvent a de comenzi catre stiva poate interpetata (si implementata) ca un micro-
program care opereaza cu siruri de caractere.
De remarcat ca rezolvarea acestei probleme folosind un automat nit este posibila nu-
mai pentru un alfabet X mic si siruri de intrare mici.
Marimea si complexitatea automatului va depinde direct de acesti doi parametri. Orice
modicare a lor va schimba complet circuitul.
In cazul utilizarii un automat stiva nsa, marimea sirului de intrare nu are nici o
legatura cu dimensiunea sau forma automatului.
Aici, partea simpla (stiva innita) este separata de cea complexa (automatul nit, cu
5 stari).
Observat ia 8.1 Denit ia automatului stiva este foarte asemanatoare cu denit ia trans-
latorului stiva de la limbaje formale. Diferent ele sunt minore: acolo se lucreaza cu un
automat de tip Mealy, alfabetul stiva este distinct de alfabetul de intrare, se pot folosi
denit ii nedeterministe (care atent ie nu sunt echivalente cu cele deterministe).
8.5. PROCESORUL ELEMENTAR 163
8.5 Procesorul elementar
Cel mai reprezentativ circuit din 3 DS este procesorul; el se remarca prin exibilitate
si posibilitat i funct ionale mult dezvoltate.
Denit ia 8.2 Un procesor P este un circuit care leaga printr-un ciclu un automat arit-
metico - logic cu un automat de control.
Funct ia unui procesor P este specicata prin secvent a de comenzi stocata n ROM.
Fiecare secvent a reprezinta un microprogramsi consta dintr-un sir de micro - instruct iuni.
O micro - instruct iune este compusa din comenzi executate de automatul aritmetico -
logic (ALU), si campuri care permit selectarea urmatoarei micro - instruct iuni.
Pentru a nt elege mecanismul principal folosit de acest al treilea ciclu, ne vom referi
n principal la procesorul elementar.
Un procesor elementar EP este un procesor care executa numai o secvent a de control,
adica automatul de control (CROM) asociat este un automat de init ializare, fara intrarea
de init ializare X
1
(a se vedea circuitul CROM, sect iunea 7.7).
CROM
n MUX
2
ADD
n
R
n
c
E ,
c
,
E
E E
E
T
'
T
'
T
'
c
'
c c
c E
c
c E
T
'
c
E
T
,
E
c
E
c
,
A B
CR S
0 1 2 3
S
1
S
0
MSB
D
IN
W
IN
READ
D
OUT
WRITE
W
OUT
Al doilea ciclu
Al treilea ciclu
&
&
&b
d
d
d
Un sistem simplu de PE este dat n gura de sus, unde s-a detaliat numai automatul
aritmetico - logic.
164 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
Pachetul de n multiplexori n MUX
2
selecteaza simultan iesirea sect iunii aritmetico
- logice si intrarea n registrul R
n
(nu s-au mai precizat marimile magistralelor de date).
Select iile efectuate de el sunt:
IN: intrarea de date D
IN
, accesibila pentru comanda S
1
S
0
= 00;
ADD
n
: suma dintre numarul (de n bit i) oferit de D
IN
si cont inutul registrului R
n
,
pentru comanda S
1
S
0
= 01;
REG: cont inutul registrului paralel R
n
, pentru comanda S
1
S
0
= 10;
RSH0: cont inutul registrului R
n
deplasat spre dreapta cu o pozit ie (avand 0 pe cea
mai semnicativa pozit ie), pentru comanda S
1
S
0
= 11 completata de MSB = 0;
RSH1: cont inutul registrului R
n
deplasat spre dreapta cu o pozit ie (avand 1 pe cea
mai semnicativa pozit ie) pentru comanda S
1
S
0
= 11 completata cu MSB = 1.
Automatul este un CROM specic unei funct ii, care comanda automatul aritmetico -
logic prin intermediul grupului de trei bit i (S
0
, S
1
, MSB); el primeste comanda de la
iesirea CR a sumatorului.
De asemenea, acest CROM controleaza legaturile procesorului. EP este conectat cu
un sistem din care primeste date prin READ si W
IN
(intrare de asteptare) si caruia i
trimite iesirile WRITE si W
OUT
(iesirea de asteptare).
Descrierea funct ionala este completata prin limbajul de microprogramare al acestui
procesor, denit sintactic astfel:
< micro instructiune > ::= < comanda >< mod >< test >< salt >
< comanda > ::= < functie >< iesire >
< mod > ::= JMP | CJMP | INIT |
< test > :: = CR | WIN | WOUT |
< salt > ::= < orice marca de maxim 6 caractere >
< functie > ::= IN | ADD | REG | RSH0 | RSH1
< iesire > ::= READ | WRITE |
Exemplul 8.5 Singurul micro-program executat de procesorul elementar descris mai sus
primeste un sir de numere si genereaza alt sir de numere reprezentand mediile aritmetice
ale ecarei perechi succesive.
Utilizand limbajul de micro-programare astfel denit, rezulta urmatorul microprogram:
8.5. PROCESORUL ELEMENTAR 165
UNU IN READ CJMP WIN UNU
DOI READ CJMP WIN DOI
ADD CJMP CR TREI
RSH0
OUT REG WRITE CJMP WOUT ZERO
JMP UNU
TREI RSH1 JMP OUT
ZERO
. . .
Pe prima linie, controlerul asteapta primirea primului numar, ncarcand n R
n
orice
congurat ie binara; cand W
IN
devine inactiv, ultima ncarcare pune n registru valoarea
corecta.
A doua micro - instruct iune asteapta al doilea numar; la sosirea acestuia, micro-
programul merge la linia urmatoare.
A treia linie aduna cont inutul registrului cu numarul sosit n D
IN
, iar iesirea CR este
testata pentru a alege deplasarea corespunzatoare.
Daca CR este activ, urmatoarea instruct iune este la adresa TREI; altfel se trece la
micro - instruct iunea urmatoare.
A patra si urmatoarele micro - instruct iuni efectueaza deplasarile spre dreapta core-
spunzatoare (adica mpart irea), nalizand calculul mediei dintre numerele primite.
Linia OUT trimite afara rezultatul, iar receiverul conrma primirea.
Saltul (JMP) la UNU reporneste (la nesfarsit) procedura pentru urmatoarea pereche
de numere.
Structura de ansamblu a unui EP nu spune nimic despre funct ia realizata.
Aceasta funct ie este denita numai prin cont inutul ROM-ului din CROM. Structura
simbolica stocata n ROM combina facilitat i funct ionale simple ale automatului efectiv,
adica este un automat aritmetico - logic.
Componenta aleatoare este concentrata n ROM, al carui cont inut formeaza singura
structura complexa a sistemului structura de tip simbolic (micro - programare).
Capitolul 9
Sisteme 4 DS
Ultimul exemplu din sect iunea 8.5 subliniaza destul de clar procesul specic unui 3DS:
funct ia sistemului devine tot mai put in dependenta de structura zica si tot mai strans
legata de o structura simbolica (de exemplu, micro-programe).
Structura zica (bazata pe circuite) ramane simpla, pe cand cea simbolica stocata
n ROM (eventual convertit n PLA) presupune o anumita complexitate funct ionala.
Al patrulea ciclu creaza condit iile pentru dependent a funct ionala totala fat a de struc-
tura simbolica.
9.1 Tipuri de sisteme de ordin 4
Exista patru tipuri principale de astfel de sisteme, n funct ie de ordinul sistemului prin
care este nchis al patrulea ciclu; ele pot reprezentate schematic astfel:
1. 4 DS avand ultimul ciclu nchis printr-un 0 DS; circuitul combinat ional de
nchidere este un ROM sau PLA, cont inand programe interpretate de procesor.
PROCESOR ROM
c '
T
c E
T
c E
T
c '
T
DATE
ADRESE
READ
WAIT
0DS
Programe
167
168 CAPITOLUL 9. SISTEME 4 DS
2. 4 DS cu ultimul ciclu nchis printr-un 1 DS; acesta este computerul, cea
mai reprezentativa structura de acest ordin; a doua componenta este un RAM care
stocheaza date si programe.
PROCESOR RAM
c '
T
c E
T
c E
T
c '
T
DATE
ADRESE
{READ,WRITE, }
WAIT
1DS
Date si programe
3. 4 DS avand ultimul ciclu nchis printr-un 2 DS; automatul de nchidere este
reprezentat printr-o stiva care cont ine datele de lucru (sau secvent e n care distinct ia
dintre date si programe nu are loc cum este de exemplu programarea n limbajul
LISP);
PROCESOR LIFO
c '
T T
DATE
WAIT
2DS
Date
c E
T
{PUSH,POP, }
T
4. 4 DS cu ciclul nal nchis printr-un 3 DS; acesta este co-procesorul (procesor
specializat n executarea performanta a anumitor funct ii critice ale sistemului).
c E
T
COMENZI
T T
9.1. TIPURI DE SISTEME DE ORDIN 4 169
Ultimele doua tipuri de extensii sunt masini n care procesul de segregare este subliniat
de structura zica (stiva sau co-procesor); n ambele cazuri structura segregata este de
asemenea simpla.
Consecint a este aceea ca ntregul sistem este de asemenea simplu.
Pe de alta parte, primele doua sistem sunt foarte complexe, cu o componenta aleatoare
apreciabila.
Aceasta are ca suport structura ROM/PLA, respectiv memoria RAM.
Cont inutul ROM-ului este init ial denit simbolic; ulterior el este convertit n structura
circuitului respectiv (ROM sau PLA).
In schimb cont inutul RAM- ului ramane permanent n forma simbolica, ceea ce i
confera o mai mare exibilitate.
Aceasta este principala rat iune prin care se considera structura (b) (Computer) ca
ind cea mai reprezentativa n 4 OS.
Computerul nu este un circuit.
El este o entitate noua, cu o denit ie funct ionala specica, numita uzual arhitectura
calculatorului.
In arhitectura unul calculator, construct iile componentelor la nivel de registru sau procesor
se preteaza mai put in la o analiza formala (comparativ cu nivelul circuitelor, bazate pe
port i logice).
Motivul rezulta din dicultatea de a descrie precis comportarea sistemului dorit.
A spune ca trebuie construit un calculator care sa execute ecient toate programele
este o armat ie mult prea vaga.
Drumul parcurs a fost preluarea unei structuri standard cu performant e cunoscute si
modicarea ei pentru a o adapta noilor cerint e.
Criteriile de performant a ale unui calculator pot rezumate n urmatoarele cerint e:
Calculatorul sa e capabil sa execute a instruct iuni de tip b pe secunda.
Calculatorul sa e capabil de a accesa c memorie sau dispozitive periferice de tip d.
Calculatorul trebuie sa e compatibil cu calculatoare de tip e.
Costul nal al sistemului sa nu depaseasca f.
171
172CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT
A
10.1 Structuri standard
Sistemele de calcul cele mai cunoscute
1
sunt calculatoarele dedicate aplicat iilor generale,
care difera ntre ele mai ales prin numarul componentelor folosite si prin gradul de au-
tonomie.
Varietatea interconexiunilor sau structurilor de comunicat ie folosite este foarte re-
stransa.
In linii mari, sistemele de calcul utilizate sunt structurate dupa una din schemele
urmatoare:
1. Structura folosita de prima generat ie de computere si de multe sisteme mici de
microprocesoare actuale este:
D
1
D
2
D
k
ICN
CPU M
3
3
3
3
3
3
3
. . .
Periferice IO
Unitate centrala Memorie
Magistrale
2. Ad augarea de procesoare specializate pentru structurile de intrare/iesire (IO) este
un proces tipic pentru calculatoare ncepand cu doua generat ie.
O structura generala care subliniaza gradul de complexitate al unor astfel de sisteme
de calcul este prezentata n pagina urmatoare.
Componenta de circuit notata ICN reprezinta o ret ea de interconexiune care con-
troleaza comunicat iile procesor - memorie.
Aceste doua variante de sisteme prezentate sunt de tip mono-procesor.
1
Reamintim cele mai utilizate sisteme de calcul sunt micro-controllerele (Capitolul 1).
10.1. STRUCTURI STANDARD 173
D
1
D
2
D
3
D
k
IOP
1
IOP
2
ICN
CM M
CPU
. . .
Periferice IO
Procesoare IO
Magistrale sistem
Memorie cache
Memorie principala
Unitate centrala
3. O structura standard pentru un multi-procesor este descrisa mai jos (pentru doua
procesoare). Variantele anterioare sunt cazuri particulare ale acestuia.
D
1
D
2
D
3
D
k
IOP
1
IOP
2
IOP
n
ICN
CM
1
CM
2
M
1
M
2
M
m
CPU
1
CPU
2
. . .
. . .
. . .
Memoria principala
Unitat i centrale
Memorii cache
Ret ea de
comutat ie
Procesoare IO
Periferice IO
4. Structuri mai complexe (de exemplu ret ele de calculatoare) se pot obt ine prin
conectarea mai multor astfel de structuri.
174CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT
A
10.2 Masurarea performant elor unui sistem
Majoritatea performant elor unui calculator rezulta din caracteristicile unitat ii sale cen-
trale de prelucrare (CPU).
Viteza sa de lucru este masurata usor dar grosier prin frecvent a f de ceas, data n
megahert i. Pot dat i nsa si alt i indicatori de performant a, cum ar :
1. Viteza medie de execut ie a instruct iunilor (MIPS).
Este numarul mediu de tact i folosit i de CPU pentru executarea unei instruct iuni.
Ea este legata de timpul mediu T (n microsecunde s) necesari pentru execut ia
a N instruct iuni, conform formulei
T =
N CPI
f
s
Deci timpul mediu t
E
de execut ie al unei instruct iuni este
t
E
=
T
N
=
CPI
f
s
Daca f depinde n principal de tehnologia circuitului integrat, folosita pentru imple-
mentarea CPU, CPI (numarul mediu de cicluri per instruct iune) depinde n primul
rand de arhitectura sistemului.
2. Pentru t
E
se poate da si o alta formula, considerand distribut ia instruct iunilor de
diverse tipuri si viteze n prelucrarea unor programe standard.
Fie I
1
, I
2
, . . . , I
n
un set de tipuri de instruct iuni reprezentative.
Notam cu t
s
timpul mediu de execut ie (n s) al unei instruct iuni de tipul I
s
si p
s
probabilitatea de aparit ie a instruct iunilor de tipul I
s
ntr-un cod obiect standard.
Atunci timpul mediu de executare al unei instruct iuni este dat de formula
t
E
=
n
i=1
p
i
t
i
s
Valori pentru t
i
se pot obt ine usor din specicat iile CPU, dar valori cat mai corecte
pentru p
i
pot obt inute numai pe cale experimentala.
3. Performant e legate de memorie.
Marimea memoriei principale si a memoriei cache pot oferi indicat ii (destul de vagi)
despre capacitatea sistemului.
10.3. MODELE BAZATE PE COZI 175
Un parametru de memorie legat de viteza de calcul este lat imea de banda: rata
maxima n milioane de bit i per secunda (Mb/sec) la care informat ia poate
transferata spre si de la unitatea de memorie.
Lat imea de banda afecteaza performant ele CPU deoarece viteza de procesare este
limitata n ultima instant a de rata la care instruct iunile si datele pot accesate sau
memorate.
4. O masura a performant ei des solicitata este costul executarii de catre sistem a
unui set de programe reprezentative.
Acest cost poate timpul total de execut ie T (incluzand act iunile legate de memorie,
memorie cache, CPU, si alte sisteme componente).
Un set de programe reprezentative pentru un mediu de calcul particular poate
utilizat pentru evaluarea performant ei ntregului sistem.
Adesea setul de programe este un standard construit special pentru evaluare.
10.3 Modele bazate pe cozi
Pentru a sublinia important a modelarii analizei performant elor unui sistem de calcul, vom
detalia o aproximare bazata pe teoria cozilor. Prezentarea este pur informala, deoarece
necesita cunostint e destul de avansate de probabilitat i.
Modelul coada spre deosebire de stiva este un model de tip FIFO
2
.
Reprezentarea sa generala este data de gura:
Coada Server
Resurse
comune
E E E
T
c
Date Date
Sistemul o coada - un server
Este reprezentat un server (de exemplu un CPU sau un computer) cu un set de
programe care trebuie executate.
2
sau M/M/1 (din rat iuni istorice)
176CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT
A
Sarcinile sunt activate sau sosesc la momente arbitrare si sunt stocate n coada, pana
ce sunt prelucrate de CPU.
Parmetrii cheie ai modelului sunt ratan care vin sarcinile si rata de prelucrare; ambele
sunt masurate n sarcini/sec.
Mediile venirii sarcinilor si media prelucarii lor sunt notate cu respectiv .
Sosirea si procesarea variaza aleator si aceste valori medii sunt determinate prin calcule
statistice. Ultima va caracteriza comportamentul sistemului modelat.
Vom nota = /; acesta este utilizarea medie a serverului, adica fract iunea de timp
cat este ocupat (n medie).
De exemplu, daca vin n medie doua probleme pe secunda ( = 2) si serverul le poate
procesa cu o rata medie de 8 probleme pe secunda ( = 8), atunci = 2/8 = 0.25.
Sosirea problemelor n sistem este un proces aleator caracterizat de distribut ia timpului
dintre sosiri
I
(t): probabilitatea ca cel put in o problema sa soseasca ntr-o perioada de
timp de lungime t.
Cazul M/M/1 presupune o sosire de tip Poisson, unde probabilitatea de distribut ie
este
I
(t) = 1 e
t
Fie p
S
(t) probabilitatea ca serviciul solicitat de o problema sa e realizat de CPU
ntr-un timp maxim t dupa eliminarea ei din coada.
Procesul de servire este modelat de o formula Poisson similara
p
S
(t) = 1 e
t
Pentru caracterizarea performant elor unui sistem cu o singura coada pot folosit i diversi
parametri.
De exemplu:
Utilizarea lui , care da fract iunea medie de timp cat serverul este ocupat.
Numarul mediu de probleme aate n coada (atat cele care asteapta prelucrarea cat
si cele care sunt n faza de procesare).
Parametrul este numit lungime medie a cozii si este dat de formula (Robertazzi -
1994)
l
Q
=
1
Timpul mediu n care problemele asteapta prelucrarea precum si timpul de prelu-
crare; este numit timpul mediu de asteptare t
Q
.
10.3. MODELE BAZATE PE COZI 177
Variabilele l
Q
si t
Q
sunt legate direct prin formula l
Q
= t
Q
sau
t
Q
=
l
Q
Aceasta ecuat ie se numeste ecuat ia lui Little si este valabila pentru toate tipurile de
sisteme cu coada, nu numai modelul M/M/1.
Din combinarea ultimelor doua relat ii se obt ine
t
Q
=
1
Valorile L
Q
si t
Q
se refera atat la probleme aate n stadiul de asteptare cat si la
cele care sunt n proces de prelucrare.
Numarul mediu de probleme care asteapta n coada dar nu sunt nca procesate se
noteaza cu l
w
, iar t
w
este timpul mediu de asteptare n coada (exclusiv timpul de
prelucrare).
Utilizarea medie a unui server n sistemul M/M/1 este numarul mediu de probleme
aate n stadiu de prelucrare, adica /.
Deci sazand acest numar din l
Q
se obt ine l
w
:
l
w
= l
Q
=
2
( )
Similar
t
w
= t
Q
=
( )
unde 1/ este timpul mediu luat de prelucrarea unei probleme.
Comparand aceste ultime doua relat ii se obt ine t
w
= l
w
/; deci ecuat ia Little are
loc si pentru indicele w de asteptare.
Exemplul 10.1 O mica societate are un calculator cu un singur terminal folosit de
salariat i.
Cam 10 persoane folosesc terminalul n timpul celor 8 ore de lucru, iar ecaruia i
vine randul circa 30 minute, adesea pentru probleme simple de rutina.
Managerul societat ii considera ca acest calculator este sub-utilizat, deoarece este defect
n medie 3 ore pe zi. Nu vrea sa cumpere mai multe terminale, deoarece este convins ca
salariat ii le vor folosi pentru jocuri sau alte probleme personale.
Acestia la randul lor considera ca terminalul este supra-utilizat deoarece sunt
nevoit i sa astepte cel put in o ora ecare pentru a avea acces la el.
178CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT
A
Ei cer conducerii sa mai cumpere terminale si sa construiasca o ret ea.
Sa studiem aceasta problema folosind teoria cozilor, printr-un model M/M/1.
Pentru ca n medie sunt 10 utilizatori n cele 8 ore de lucru, vom nota = 10/8
utilizatori/ora = 0.0208 utilizatori/minut.
Calculatorul este ocupat n medie 5 din cele 8 ore; deci utilizarea = 5/8 implica
= 1/30 = 0.0333.
= = 0.0333
utilizatori/minut.
Solicitarea performant ei cerute duce la relat ia
t
Q
=
1
=
1
m
< 40
de unde rezulta m > 2.5.
Deci sunt necesare trei posturi de lucru, asa ca se face comanda pentru doua terminale
noi.
De remarcat ca modelul este unul pesimist, n care salariat ii se mpart n trei cozi
distincte, fara legatura ntre ele, deci fara posibilitatea de a trece de la o coada la alta
cand de exemplu unul din periferice a devenit liber.
Un studiu mai complex duce la un rezultat apropiat pentru m; una din valorile m = 2
sau m = 3.
Solut ii si indicat ii la problemele propuse
Capitolul 2:
1.
18926
10
= 100100111101110
2
7772
10
= 1111001011100
2
7863, 15
10
= 1111010110111, 001(0011)
2
0, 7
10
= 0, 1(0110)
2
2. Cele doua numere sunt: 55462 si respectiv
2217 +
1
8
+
1
16
+
1
64
+
1
128
+
1
1024
= 2217 +
219
1024
= 2217, 211914 . . .
3. Vom lucra cu reprezentarea binara pe 16 bit i (primul bit ind bit de semn).
(a) 11
10
= 0000000000001011
2
, 32600 = 0111111101011000
2
.
Suma bit cu bit a celor doua numere da 0111111101100011.
Pentru vericare, acest rezultat este reprezentarea binara a lui 32611 = 11 +
32600.
(b) 599
10
= 0000001001010111
2
.
Numarul 10692 = 0010100111000100
2
trebuie trecut n cod complementar.
Complementand bit ii si adunand apoi valoarea 1 se obt ine 1101011000111100.
Adunam cele doua numere:
0000001001010111 + 1101011000111100 = 1101100010010011
Pentru vericare: rezultatul ind negativ (bitul de semn este 1), valoarea sa
absoluta este complementul la 2; dupa ce scadem 1 si complementam bit ii, se
obt ine 0010011101101101 = 10093
10
.
179
(c) 9862
10
= 0010011010000110
2
, 20043
10
= 0100111001001011,
18552
10
= 1011011110001000 (cod complementar).
0010011010000110+0100111001001011+1011011110001000 = 0010110001011001
(bitul nal de transport s-a ignorat), valoare binara ce corespunde numarului
11353.
4. Pentru x y se efectueaza urmatorii pasi:
(a) Se transforma y n cod invers;
(b) Se aduna x cu aceasta valoare si se ignora bitul nal de transport;
(c) Daca rezultatul este negativ, se trece n cod invers;
(d) Daca rezultatul este pozitiv, se aduna 1.
5. 6489
10
= 1100101011001
2
= 1, 100101011001 2
12
0, 1
10
= 0, 00011(0011)
2
= 1, 1(0011) 2
4
85
256
= 2
2
+ 2
4
+ 2
6
+ 2
8
= 0, 01010101
2
= 1, 010101 2
2
6. Pentru primul numar: C = 12 + 127 = 139
10
= 10001011
2
, f = 100101011001.
Deci reprezentarea lui 6489 ca numar real pe 32 bit i este
0100 0101 1100 1010 1100 1000 0000 0000
Pentru usurint a, aceste reprezentari se scriu n hexazecimal. Sub aceasta forma,
numarul este 45 CA C8 00.
Pentru al doilea numar: C = 4 + 127 = 123
10
= 01111011
2
,
f = 10011001100110011001100. Deci reprezentarea lui 0, 1 ca numar real pe 32
bit i este
1011 1101 1100 1100 1100 1100 1100 1100
sau n hexazecimal: BD CC CC CC.
,
,
, ,
,
a a b a b
a
a
b
a
b
2. Similar cu exercit iul precedent:
`
`
`
``
`
`
,
,
, ,
,
a a b a b
a
a
b
a
b
3.
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
x 0 1 0 1 0 1 1 1
y 1 0 1 0 0 0 1 0
4. Din tabelul de valori se determina imediat forma normal disjunctiva:
f(a, b, c) = a bc +abc +abc +abc +abc
Se poate construi un circuit direct pentru aceasta funct ie.
Alta varianta este de a simplica ntai funct ia, dupa care se construieste un circuit
corespunzator acestei noi reprezentari.
Nu exista un algoritm determinist pentru simplicarea unei funct ii booleene.
In
consecint a, forma gasita prin simplicare nu este unica.
Pentru funct ia din acest exercit iu, o modalitate de reducere este:
f(a, b, c) = ac(b +b) + (a +a)bc + (a +a)bc = ac +bc +bc = ac +b(c +c) = ac +b
Circuitul:
183
b
c
a
f(a, b, c)
5. Un circuit bazat direct pe forma normala a funct iei este:
` ` `
,
,
,
,
,
,
a
b
c
f(a, b, c)
O varianta de simplicare este:
f(a, b, c) = b(ac +ac) +b(a c) = b(a c) +b(a NOR c)
care conduce la circuitul
'
'
' '
'
'
`
`
,
,
,
`
a
c
b
f(a, b, c)
6. Circuitul urmator rezulta direct din forma funct iei:
e
d
c
b
a
f(a, b, c)
184
7. f(a, b, c) = b(ac +a c) = b(a c) = g(a, b, c)
Alta demonstrat ie posibila este prin construirea tabelelor de valori pentru cele doua
funct ii si observat ia ca acestea coincid.
8. f(a, b, c) = (a b)c = a b c
Aceasta este forma normal disjunctiva. Forma normal conjunctiva este
f(a, b, c) = (a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)
9. Funct ia se poate scrie f(a, b) = a b.
a
b
f(a, b)
Capitolul 5:
1. Se aduc cele trei expresii ale funct iei f(x, y, z) = (f
1
(x, y, z), f
2
(x, y, z), f
3
(x, y, z))
la forma normal disjunctiva:
f
1
(x, y, z) = xyz +xyz +xyz +xy z +x yz,
f
2
(x, y, z) = xyz +xyz +xyz +xyz +xy z,
f
3
(x, y, z) = xyz +xyz +xyz +xy z +x yz.
Circuitul codicator este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3
`
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
f
3
f
2
f
1
x
y
z
185
2. Tabelul de valori al funct iei este:
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f(x, y, z) 1 0 0 1 0 1 0 0
De aici rezulta forma normal disjunctiva f(x, y, z) = x y z + xyz + xyz. Circuitul
codicator este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3
`
f(x, y, z)
x
y
z
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
,
,
,
,
,
,
,
,
,
,
,
,
x
y
z
f(x, y, z)
186
3. Funct ia asociata este f : {0, 1}
3
{0, 1}
3
cu tabelul
x
2
0 0 0 0 1 1 1 1
x
1
0 0 1 1 0 0 1 1
x
0
0 1 0 1 0 1 0 1
z
2
0 1 1 1 1 0 0 0
z
1
1 0 0 1 1 0 0 1
z
0
1 0 1 0 1 0 1 0
Codicatorul:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3
`
x
y
z
,
,
,
, ,
,
,
,
,
,
,
,
z
2
z
1
z
0
4. O funct ie booleana de cinci variabile care sa implementeze condit ia trebuie sa aiba
f(1, 1, 1, 1, 1) = f(1, 1, 1, 0, 0) = f(1, 1, 0, 1, 0) = f(1, 1, 0, 0, 1) = f(1, 0, 1, 1, 0) =
f(1, 0, 1, 0, 1) = f(1, 0, 0, 1, 1) = f(0, 1, 1, 1, 0) = f(0, 1, 1, 0, 1) = f(0, 1, 0, 1, 1) =
f(0, 0, 1, 1, 1) = 1 si 0 n rest.
O astfel de funct ie n forma normala se scrie imediat, din care reiese codicatorul
(am trasat numai iesirile utile din DCD
5
, care intra n poarta OR
11
:
y
31
y
28
y
26
y
25
y
22
y
21
y
19
y
14
y
13
y
11
y
7
DCD
5
5
(x
4
, x
3
, x
2
, x
1
, x
0
)
5. Mult imea numerelor din intervalul [0, 2
6
1] divizibile cu 4 este A = {0, 4, 8, 12, 16, 20,
24, 28, 32, 36, 40, 44, 48, 52, 56, 60} (n total 16). Se construieste un DCD
6
n care
iesirile y
i
cu i A sunt conectate la o poarta OR
16
, din care iese rezultatul nal.
187
6. O simpla particularizare:
.
.
.
.
.
.
.
.
.
.
.
.
,
,
`
,
,
,
,
,
,
,
, ,
,
,
x
1
x
0
E
7. O construct ie directa este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3
`
x
2
x
1
x
0
` ` ` ` ` ` ` `
i
7
i
6
i
5
i
4
i
3
i
2
i
1
i
0
iar una recursiva:
EMUX
EMUX EMUX
EMUX EMUX EMUX EMUX
, , ,
,
x
0
x
1
x
2
y
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
7
i
6
i
5
i
4
i
3
i
2
i
1
i
0
188
8. Tabela de valori a funct iei sum este
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
sum 0 1 1 0 1 0 0 1
Circuitul MUX
3
este imediat (eventual se poate detalia):
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
7
MUX
3
, , ,
, , ,
a
b
c
9. -
10. -
11. Tabela de valori a funct iei f este
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f(x, y, z) 1 1 0 1 1 1 1 1
Un circuit codicator pentru implementare este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3
`
x
y
z
,
,
,
,
,
,
,
189
Circuitul bazat pe multiplexori elementari este:
EMUX
EMUX EMUX
EMUX EMUX EMUX EMUX
, , ,
,
z
y
x
f(x, y, z)
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
1
1
1
1
1
0
1
1
f(x, y, z)
y
i
0
i
1
y
i
0
i
1
z
y
x
12. -
13. Tabela de valori obt inuta este (am introdus si rezultatele part iale):
190
x
0
x
1
x
2
x
3
s
1
s
2
c
1
c
2
s c
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 1 0
0 0 1 0 0 1 0 0 1 0
0 0 1 1 0 0 0 1 1 0
0 1 0 0 1 0 0 0 1 0
0 1 0 1 1 1 0 0 0 1
0 1 1 0 1 1 0 0 0 1
0 1 1 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0 1 0
1 0 0 1 1 1 0 0 0 1
1 0 1 0 1 1 0 0 0 1
1 0 1 1 1 0 0 1 0 1
1 1 0 0 0 0 1 0 0 1
1 1 0 1 0 1 1 0 0 1
1 1 1 0 0 1 1 0 0 1
1 1 1 1 0 0 1 1 1 0
14. Un circuit bazat pe codicatori simpli (fara acces):
EPE EMUX EMUX
PE
2
PE
2
, ,
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
Z Z
y
1
y
0
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
y
2
y
1
y
0
Daca folosim construct ia recursiva bazata pe codicatori cu acces, avem:
191
EPE
2
EPE
2
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
y
1
y
0
y
1
y
0
` `
E Z E Z
Z
y
0
y
1
y
2
15. Circuitul de deplasare spre dreapta cu 0 sau 1 pozit ii este:
EMUX EMUX EMUX EMUX
, , ,
, , ,
a
3
a
2
a
1
a
0
y
0
y
1
y
2
y
3
s
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
Similar se construieste si circuitul de deplasare spre stanga cu 0, 1 pozit ii:
EMUX EMUX EMUX EMUX
, , ,
a
3
a
2
a
1
a
0
y
0
y
1
y
2
y
3
s
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
,
,
,
16. Detaliem ecuat ia de transport c
i+1
= G
i
P
i
c
i
pentru i = 0, 1, 2, 3, eliminand si
recursivitatea:
c
1
= G
0
P
0
c
0
c
2
= G
1
P
1
c
1
= G
1
P
1
G
0
P
1
P
0
c
0
c
3
= G
2
P
2
c
0
= G
2
P
2
G
1
P
2
P
1
G
0
P
2
P
1
P
0
c
0
c
4
= G
3
P
3
c
3
= G
3
P
3
G
2
P
3
P
2
G
1
P
3
P
2
P
1
G
0
P
3
P
2
P
1
P
0
c
0
Un circuit posibil se construieste imediat (nu este singura varianta).
192
c
4
c
3
c
2
c
1
c
0
G
3
G
2
G
1
G
0
P
3
P
2
P
1
P
0
,
, , , ,
, , , , ,
, , ,
,
, , ,
, , , ,
,
,
, ,
,
,
,
,
,
,
,
,
,
17. Construct ia unui comparator pe 4 bit i se realizeaza imediat particularizand structura
din sect iunea 5.7. Daca notam
4 CA
4 4
a
b
< = >
un circuit de comparare pe 4 bit i, el poate folosit ca baza pentru construirea unui
circuit pe 16 bit i astfel:
`
` ` ` ` ` ` ` ` `
4 CA 4 CA 4 CA 4 CA
, , , , , ,
4 4 4 4 4 4 4 4
< = >
18. Circuitul:
193
`
4 FA
X
Y
,
,
< = >
4 4
19. Un PLA pentru funct ie:
.
.
.
.
.
.
.
.
.
.
.
.
x
y
z
f
1
f
2
f
3
,
,
,
Pentru circuitul PROM este nevoie de tabela de valori (sau echivalent de forma
normal disjunctiva):
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f
1
1 1 1 1 0 0 0 1
f
2
0 1 0 0 1 1 1 1
f
3
0 0 1 0 1 1 1 1
.
.
.
.
.
.
.
.
.
.
.
.
x
y
z
,
,
,
f
1
f
2
f
3
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
194
Capitolul 6:
1. Se foloseste faptul ca a > b este echivalent cu a +b > 11 . . . 1. Deci se testeaza bitul
de semn al sumei a + b. Acesta va selectorul a n multiplexori elementari, care
triaza ntre bit ii numarului a si cei ai numarului b.
n EMUX ADD
n
\
\ /
/
,
,
max{a, b}
i
1
i
0
c
out
n
n n
n n
b
a
c
0
2. Fara a restrange generalitatea, putem considera a
n
= 1.
Circuitul este format dintr-un registru serial SR
n
(format din n DFF-uri) si cel
mult n 1 port i XOR.
O reprezentare a circuitului este
DFF DFF DFF
` ` `
_
`
`
`
`
`
`
`
`
, , , ,
, ,
CK
b
0
b
1
. . . b
k
a
n1
a
n2 a
1
a
0
. . .
. . .
Un arc marcat cu a
i
este suspendat daca a
i
= 0 (iar poarta XOR in care intra
acesta poate eliminata). Daca a
i
= 1, atunci acesta este un arc normal.
3. -
4. O solut ie posibila este:
DFF
,
x
CK
Y
195
5. O solut ie posibila este:
FA
DFF DFF
,
, ,
CK
c s
(din FA se ret ine numai transportul, valoarea sumei neind necesara).
Capitolul 7:
1. Componentele din denit ie se construiesc usor: Q = {0, 1}
2
, X = {0, 1}, Y = {0, 1}
0 1
00 00 01
01 01 10
10 10 11
11 11 00
0 1
00 00 01
01 01 10
10 10 11
11 11 00
(funct iile de tranzit ie si de iesire coincid). Graful de funct ionare este:
`
00 01
10 11
0/00
0/11
1/00
1/01
0/01
0/10
1/10
1/11
2. Se particularizeaza counterul din curs pentru n = 3, sau eventual se foloseste
exemplul de la sumatorul prex.
3. Particularizand sumatorul prex din 7.5.3, se obt ine
196
R
3
ADD
3
,
,
,
s
0
s
1
s
2
CK
c
0
x
0
x
1
`
`
q
0
q
1
q
2
q
3
0/00 0/11
0/10 0/01
1/00 1/10
1/11
1/01
Notam starile q
i
cu reprezentarea n baza 2 a lui i. Pentru cele patru stari sunt
sucient i doi bit i.
Deci: X = {0, 1}, Q = Y = {0, 1}
2
si (am notat cu x bitul de intrare curent)
0 1 Q
+
1
Q
+
0
00 00 01 0 x
01 01 10 x x
10 10 11 1 x
11 11 00 x x
0 1 Y
1
Y
0
00 00 11 x x
01 11 10 1 x
10 10 01 x x
11 01 00 0 x
De aici rezulta forma funct iilor de tranzit ie si de iesire:
(Q
1
Q
0
, x) = (Q
1
Q
0
x +Q
1
Q
0
x +Q
1
Q
0
, Q
0
x +Q
0
x)
(Q
1
Q
0
, x) = (Q
1
Q
0
x +Q
1
Q
0
x +Q
1
Q
0
, Q
0
x +Q
0
x)
DFF
0
DFF
1
,
x
Q
Q
Q
Q
D
D
CK
Y
1
Y
0
7. Din reprezentarea graca rezulta X = {0, 1}, Q = Y = {0, 1}
2
si
0 1
00 00 10
01 11 00
10 00 11
11 10 00
0 1
00 00 10
01 10 01
10 10 01
11 01 11
198
Graful de tranzit ie este
>
>
>
>
>
>
>
>
>
>
>
>.
`
q
0
q
1
q
2
q
3
1/11
0/00
1/01
0/10
1/10
0/10
1/01
0/01
De aici (sau eventual folosind un algoritm de eliminare a starilor inaccesibile) se
observa ca starea 01 poate eliminata, ea neputand accesibila plecand din starea
init iala 00.
8. Reluam tabelele celor doua funct ii din exercit iul anterior, completand cu coloanele
care dau informat ii despre forma lor analitica:
0 1 Q
+
1
Q
+
0
00 00 10 x 0
01
10 00 11 x x
11 10 00 x 0
0 1 Y
1
Y
0
00 00 10 x 0
01
10 10 01 x x
11 01 11 x 1
Deci putem da o forma mai simpla funct iilor de tranzit ie si de iesire:
(Q
1
Q
0
, x) = (Q
0
x +Q
0
x, Q
1
Q
0
x),
(Q
1
Q
0
, x) = (Q
1
x +Q
1
Q
0
x +Q
1
Q
0
x, Q
1
Q
0
x +Q
0
)
O implementare bazata pe tablouri logic programabile este:
DFF
0
DFF
1
x
Q
Q
Q
Q
D
D
CK
Y
1
Y
0
199
9. Separam tabloul funct iei de tranzit ie pe cele doua tablouri pentru
J
respectiv
K
:
J
0 1 J
+
1
J
+
0
00 00 10 x 0
01
10 0 1 x
11
K
0 1 K
+
1
K
+
0
00
01
10 1 0 x
11 01 11 x 1
O forma pentru cele doua funct ii poate :
J
(Q
1
Q
2
, x) = (x, Q
1
x),
K
(Q
1
Q
0
, x) = (Q
0
x, +Q
0
x,
1
)
Funct ia de iesire ramane neschimbata.
DFF
0
DFF
1
x
Q
Q
Q
Q
Y
1
Y
0
`
,
1
J
K
J
K
CK
10. -
11. Folosind cunostint e de limbaje formale, se poate construi automatul care accepta
secvent e binare marcand orice aparit ie de doua zerouri consecutive:
_
`
`
q
0
1/0
0/0
q
1
0/1
1/0
0/0
q
2
1/0
Iesirea este legata apoi de un counter crescator pe 3 bit i (eventual cel construit la
exercit iul 1).
Din graful de tranzit ie rezulta tabelele de valori ale celor doua funct ii:
200
0 1 Q
+
1
Q
+
0
00 01 00 0 x
01 01 10 x x
10 01 00 0 x
0 1 Y
+
00 0 0 0
01 1 0 x
10 0 0 0
Deci
(Q
1
Q
0
, x) = (Q
0
x, x), (Q
1
Q
0
, x) = Q
0
x
Un circuit care rezolva problema este:
DFF
0
DFF
1
,
`
x
Q
Q
Q
Q
D
D
CK
COUNT
3
`
,
Y
Observat ii:
(a) O analiza a automatului arata ca unul din cele doua DFF nu este utilizat.
Deci el se poate reduce, fapt care revine formal la ideea ca starile q
0
si q
2
sunt
echivalente deci ele se pot identica. Se obt ine automatul
_
`
q
0
1/0
q
1
0/1
1/0
0/0
1/0
a carui implementare utilizeaza un singur DFF.
(b) O solut ie interesanta primita de la mult i student i este:
`
DFF DFF
,
,
x
CK
Y
201
Eroarea consta n faptul ca n faza init iala automatul este resetat si ambele
DFF cont in valoarea 0. Deci atunci cand va ncepe sa funct ioneze, automatul
va scoate 1 ca prima valoare (desi nu a primit nca nici un bit), ceea ce va
afecta valoarea counterului.
12. A se vedea solut ia anterioara, n care se construieste un COUNT
3
folosind numai
DFF-uri.
13. -
202
Bibliograe
1. Hayes J. P. - Computer Architecture and Organisation, McGraw Hill Series in Com-
puter Engineering, Third edition, 2000
2. Hayes. J.P. - Introduction to Digital Logic Design, Reading MA, Addison Wesley,
1993
3. Hwang K - Advanced Computer Architecture, New York, Mc. Graw-Hill, 1993
4. Murdocca M., Heuring V. - Principles of Computer Architecture, Prentice Hall, 2001
5. Stefan Gh. - Circuit Complexity, Recursion, Grammars and Information, Ed. Univ.
Transilvania, Brasov, 1997
6. http://plato.stanford.edu/entries/church-turing/
7. http://www.unicode.org
8. http://computer.howstuworks.com/boolean.htm
9. http://www.play-hookey.com/digital/electronics/
203