Documente Academic
Documente Profesional
Documente Cultură
Cartea Lui Adrian Atanasiu
Cartea Lui Adrian Atanasiu
Introducere
5
5
7
12
13
15
15
16
17
18
20
20
21
23
26
28
29
29
30
31
33
36
38
39
41
41
41
45
46
204
4.3. Cicluri
4.4. Exercitii
50
52
Capitolul 5: Sisteme 0 DS
5.1. Decodificatori
5.2. Codificatori
5.3. Demultiplexori
5.4. Multiplexori
5.5. Codificatori cu prioritate
5.6. Sumatori
5.6.1. Circuit digital pentru incrementare
5.6.2. Circuit digital pentru scadere
5.7. Circuite de comparare
5.8. Circuite de deplasare
5.9. Multiplicatori
5.10. Circuit logic programabil
5.11. Unitatea aritmetica si logica
5.12. Exercitii
55
55
59
62
64
69
75
79
80
83
86
88
90
94
96
99
99
100
102
104
105
106
107
109
110
110
111
112
113
113
117
117
118
120
124
205
125
125
126
127
129
133
136
137
141
143
147
148
151
151
156
158
160
163
Capitolul 9: Sisteme 4 DS
9.1. Tipuri de sisteme de ordin 4
9.2. Stive organizate ca n DS
167
167
170
171
172
174
175
179
Bibliografie
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 baz
a
Procesor
6
?
Cap citire/scriere
...
. . . Banda memorie
A MASINILOR DE CALCUL
1.2. STRUCTURA GENERALA
1.2
Structura general
a a masinilor de calcul
Structura functionala a unei masini de calcul (sau Computer) n forma actuala a fost
definita n 1947 de von Neumann (1903 - 1957), modificarile ulterioare fiind nesemnificative.
In principal ea contine trei componente de baza:
1. O unitate centrala de prelucrare (CP U ) compusa din: o unitate de calcul (aritmetica
si logica) si o unitate de control.
Rolul ei principal este de a localiza si executa comenzi.
2. Una sau mai multe unitati de stocare a datelor (memorii); aici sunt pastrate datele
si programele calculatorului (programe care formeaza componenta de software sau
programe utilizator).
3. Periferice (intrare/iesire): unitati de transfer a informatiei spre si dinspre utilizator.
CPU
Instructiuni
Control
Periferice
Memorie
intrare/iesire
Unitate
aritmetica-logica
Date
Aceste componente hard comunica ntre ele printr-un sistem de magistrale. Principalul
soft inclus este sistemul de operare, care asigura majoritatea functiilor de prelucrare ale
sistemului.
Sunt trei tipuri majore de instructiuni folosite de un calculator: de transfer de date,
de prelucrare date si de control al programelor.
Definirea setului de instructiuni si modul lor de prelucrare caracterizeaza n general
puterea unui calculator.
Pe baza acestei structuri au fost construite calculatoarele din prima generatie (anii
0
40 0 50).
Memoria
principal
a
CPU
Echipamente
intrare/iesire
Instructiuni
Control
Programe si date
pentru executie
Programe,
Date
Prelucrare
date
(memorie secundara,
tastatura
imprimanta etc)
date,
comenzi
Impactul cel mai mare asupra dezvoltarii sistemelor de calcul l-au avut nsa calculatoarele din generatia a treia, reprezentantul specific fiind IBM/360 (existent si n dotarea
Universitatii Bucuresti, ncepand cu anul 1967).
Schema generala a structurii unui astfel de calculator este prezentata pe pagina urmatoare.
Notatiile folosite (devenite standard odata cu generatia a treia de calculatoare):
DP U - Unitatea de prelucrare a datelor
CP U - Unitatea de control a programului
ALU - Unitatea aritmetica si logica
IO - Intrare / iesire
SR - Registru de stari
IR - Registru de instructiuni
AR - Registru de calcul pentru instructiuni aritmetice
P C - Registru de control al programului
A MASINILOR DE CALCUL
1.2. STRUCTURA GENERALA
Periferic
Periferic
IO
IO
-Semnale
Decoder instructiuni
. . . control
(poate fi micro-programat)
CPU
Interfat
a
IO
IR
6
AR
SR
PC
Procesor
Procesor
IO
IO
6
?
Unitatea de control a
?
memoriei principale
6
?
?
4 registri de 64 biti
n virgul
a mobil
a
16 registri generali
6
?
de 32 biti
ALU
Floating - point
Memoria
6
ALU
ALU
Fixed - point
Decimal
DPU
principala
10
Memorie
HDD
Microprocesor
CP U
?
Cache
Video
control
Retea
Tastatura
control
Retea
control
M
6
Tastatura
HDD
control
Monitor
Magistrala IO (locala)
Interfata
magistrala
6
?
Magistrala sistem
A MASINILOR DE CALCUL
1.2. STRUCTURA GENERALA
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 fi inserata ntre CP U si
M.
Deci un calculator contine mai multe tipuri de memorie, care pot fi ierarhizate n
registrele CP U : memoria cache, memoria principal
a si memoria secundar
a.
Aceasta structura complexa rezulta din faptul ca cele mai rapide componente de memorie sunt si cele mai scumpe; deci ierarhizarea asigura CP U 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 functie 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 instructiuni de intrare/iesire ce pot fi implementate aproape identic cu instructiunile
de ncarcare respectiv stocare.
Dar deoarece operatiile de intrare/iesire sunt foarte lente, CP U are nevoie de un timp
mult mai lung pentru a accesa un cuvant aflat n sistemul IO decat unul din memoria M .
Componentele traditionale de intrare/iesire sunt tastatura respectiv ecranul de monitor, adaptate n special pentru procesarea informatiei de tip text.
Adaugarea unei componente punctuale, tip mouse permite introducerea ecranului n
lista componentelor de intrare; el asigura comunicarea utilizator - computer via imagini
grafice. Interfete audio pentru generarea si recunoasterea sunetelor extind aria de lucru
a calculatorului n sistemele multimedia.
12
1.3
Micro-controllere
Calculator
central
Spre
reteaua
telefonica
CP U
(microprocesor)
RAM
6
?
?
Port IO
Micro-controler
Port IO
?
6
ROM
Port IO
6
?
Port IO
Magistrala sistem
Port IO
?
6
Port IO
6
Scaner
cod
produs
Tastatura
Monitor
si
imprimanta
Cititor
card
Schema de mai sus descrie una din primele aplicatii ale unui micro-controller: un punct
de vanzare terminal care nlocuieste casa ntr-un supermarket.
13
1.4
Ce nseamn
a Arhitectura unui Calculator
Termenul de Arhitectura a calculatorului a fost folosit prima oara de firma IBM n 1964.
Necesitatea lui a aparut deoarece n acea perioada tehnologia hardware permitea o
avansare rapida a proceselor de calcul, nlocuind frecvent o structura cu alta; tehnologia software nu avea posibilitatea de a tine pasul, orice noua structura hard necesitand
programe noi.
Pentru a avea posibilitatea de a folosi la noile componente hard coduri program deja
scrise, ceva trebuia mentinut stabil.
Corpul de cercetatori ai firmei IBM (leaderul necontestat n domeniul tehnicii de calcul
din acea perioada) a decis stabilizarea setului de operatii elementare necesare programatorului.
Definitia 1.2 Arhitectura unui calculator este imaginea logic
a si functional
a a unui computer cu care lucreaza un programator.
Odata aceasta arhitectura stabilita, cele doua componente ale unui computer: hardware
(multimea pieselor care formeaza calculatorul) si software (multimea programelor rulate
de calculator) se pot dezvolta independent una de alta.
O buna perioada de timp arhitectura putea fi doar mbunatatita, fiind adaugate noi
facilitati, dar nefiind eliminata nici o functie.
Deci un program scris pentru o prima versiune a arhitecturii va functiona pe orice
versiune ulterioara.
14
Rezumand, architectura calculatorului este o interfata ntre hardul si softul unui computer si presupune:
o masina capabila sa realizeze o multime finita de operatii elementare,
o memorie, continand o descriere a modului cum pot fi folosite functiile elementare
pentru a realiza procese de calcul,
un mecanism de control care permite utilizarea descrierii pentru a pune masina sa
lucreze, n doua variante:
executnd descrierea
interpretnd descrierea.
unde, prin executie se ntelege o actiune de un pas asociata fiecarui element
al descrierii, iar prin interpretare se ntelege o secventa de actiuni asociate fiecarui
element al descrierii.
Evident, n ambele variante, actiunile vor depinde direct de modul de definire al descrierii.
Lucrarea de fata abordeaza elementele fundamentale necesare construirii arhitecturii
unui calculator. Sunt schitate notiunile teoretice si structurile celor mai simple circuite
care formeaza unitatea logico-aritmetica, unitatea centrala de prelucrare precum si componentele de memorie.
Celor care vor sa aprofundeze domeniul le recomand referintele bibliografice precum
si numeroase site-uri de Internet dedicate sistemelor de calcul.
Capitolul 2
Reprezentarea numerelor n
calculator
2.1
15
16
0
1
2
3
0000
0001
0010
0011
4
5
6
7
0100
0101
0110
0111
8
9
A
B
1000
1001
1010
1011
C
D
E
F
1100
1101
1110
1111
2.1.1
17
In acest fel, prin complementarea cifrelor binare care formeaza codul cifrei i se obtine
codul cifrei 9 i.
Pentru codul Gray, caracteristic este faptul ca orice codificare a unui numar difera de
codificarea succesorului sau prin exact o cifra binara.
Cele doua coduri sunt reprezentate n tabelul urmator:
Cif ra
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
3
4
0011 0100
2
0010
3
0011
4
0100
2
0010
18
2.1.3
Codul ASCII
Char
!
#
$
%
&
0
(
)
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
Cod
(20)16
(21)16
(22)16
(23)16
(24)16
(25)16
(26)16
(27)16
(28)16
(29)16
(2A)16
(2B)16
(2C)16
(2D)16
(2E)16
(2F )16
(30)16
(31)16
(32)16
(33)16
(34)16
(35)16
(36)16
(37)16
(38)16
(39)16
(3A)16
(3B)16
(3C)16
(3D)16
(3E)16
(3F )16
Char
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
Cod
(40)16
(41)16
(42)16
(43)16
(44)16
(45)16
(46)16
(47)16
(48)16
(49)16
(4A)16
(4B)16
(4C)16
(4D)16
(4E)16
(4F )16
(50)16
(51)16
(52)16
(53)16
(54)16
(55)16
(56)16
(57)16
(58)16
(59)16
(5A)16
(5B)16
(5C)16
(5D)16
(5E)16
(5F )16
Char
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
DEL
Cod
(60)16
(61)16
(62)16
(63)16
(64)16
(65)16
(66)16
(67)16
(68)16
(69)16
(6A)16
(6B)16
(6C)16
(6D)16
(6E)16
(6F )16
(70)16
(71)16
(72)16
(73)16
(74)16
(75)16
(76)16
(77)16
(78)16
(79)16
(7A)16
(7B)16
(7C)16
(7D)16
(7E)16
(7F )16
19
domeniul [0, 31] nu sunt simboluri printabile, iar n zona [128, 255] se definesc 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 codificare a cifrelor zecimale.
In codul ASCII se codifica caracterele; deci n aceasta codificare, cifrele 0, 1, . . . , 9
sunt considerate caractere si prelucrate ca atare.
De exemplu, nu se pot face operatii aritmetice obisnuite cu ele, ci doar cu codurile
ASCII asociate.
Codul ASCII nu este singurul cod construit pentru caractere.
Cel mai cuprinzator cod folosit care cuprinde caracterele si semnele tuturor alfabetelor utilizate pe tastaturi este Unicode.
Folosind o notare numerica pe 32 sau 16 biti, el ofera un cod unic pentru fiecare
caracter, indiferent de platforma folosita, de program sau limbaj.
Unicode este solicitat drept standard de XML, Java, ECMAScript (JavaScript), LDAP,
CORBA 3.0, WML etc.
Pentru orice detaliu privind versiunile Unicode, se poate folosi site-ul
http://www.unicode.org.
20
2.2
2.2.1
......
S
Prima pozitie din stanga (a n-a pozitie binara) este numita bit de semn; ea este ocupata
de un bit care are valoarea 0 00 daca numarul este nenegativ, 0 10 daca numarul este negativ.
A i-a cifra binara este coeficientul lui 2i1 n reprezentarea numarului n baza 2.
Deci cel mai mare numar ntreg care se poate reprezenta pe n biti este
1 2n2 + 1 2n3 + . . . + 1 21 + 1 20 = 2n1 1
De exemplu, pentru n = 16, acesta este 215 1 = 32.767.
In schimb, cel mai mic numar care poate fi memorat este 2n1 ; el are reprezentarea
n n1 n2
1 0 0
S
......
0 0
2.2.2
21
23
+
15
=
38
22
n1
X
ai 2i1
i=1
n1
X
i=1
i1
(1 ai )2
+1=
n1
X
i1
i=1
n1
X
i=1
Deci
a = 2n1 a
si diferenta b a se poate scrie
b a = b + a 2n1
De remarcat ca numarul 2n1 nu afecteaza pozitiile binare ale numarului, ci numai
bitul de semn.
Revenind la algoritm, pentru scaderea b a se efectueaza urmatorii pasi:
23
2.2.3
Numerele reale se reprezinta n interiorul unui sistem de calcul sub forma fractionara,
ntr-o codificare numita virgula mobil
a (floating point).
In prima faza, orice numar este adus la forma
N = 1, f 2e
unde:
N este numarul care trebuie reprezentat n virgula mobila,
f - partea fractionara a lui N ,
1, f se numeste mantisa si trebuie sa respecte relatia de normalizare
1 |1, f | < 2;
2 este baza sistemului de numeratie (sistemul binar),
e este exponentul bazei sistemului de numeratie.
Exemplul 2.5 Numarul N = 25 se scrie n virgul
a mobil
a sub forma
25 = (11001)2 = 1, 1001 24 .
31
se va scrie sub forma unui num
ar n virgul
a mobil
a astfel:
32
4
3
2
1
0
31
2 +2 +2 +2 +2
=
= 21 +22 +23 +24 +25 = (0, 11111)2 = 1, 111121 .
5
32
2
24
1
1
reprezntarea n virgul
a mobil
a este: = 23 =
8
8
24 23
1
f
C = e + 127
S
Prima pozitie (S) reprezinta semnul numarului N ; el este codificat cu 0 daca N > 0
si 1 daca N < 0. Pentru cazul N = 0, S este nedeterminat.
Urmatoarele opt pozitii binare sunt ocupate de o constanta numita caracteristic
a (C),
construita n asa fel ncat sa codifice exponentul mpreuna cu semnul sau.
Caracteristica este calculata dupa formula
C = e + 127
Daca C 127, atunci e 0, iar pentru C < 127, exponentul va fi negativ.
Valoarea maxima a caracteristicii este 28 1 = 255, ceea ce nseamna ca cel mai mare
exponent admis de reprezentarea n simpla precizie este e = 255 127 = 128.
Ultimele 23 pozitii binare sunt alocate reprezentarii fractiei aliniata la stanga si completata (eventual) cu zerouri (nesemnificative).
Exemplul 2.8 Pentru reprezentarea n virgul
a mobil
a simpl
a precizie a num
arului din
4
Exemplul 2.5, deoarece 25 = 1, 1001 2 , vom avea S = 0, f = 1001 si C = e + 127 =
4 + 127 = 131 = (10000011)2 .
25
Deci
32 31
24 23
1
0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0.........0 0
31
= 1, 1111 21 (Exemplul 2.6) avem S = 0, f = 1111,
32
C = 1 + 127 = 126 = (01111110)2 , deci
32 31
24 23
1
0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0.........0 0
Exemplul 2.9 Pentru
1
Exemplul 2.10 Numarul = 1, 0 23 (Exemplul 2.7) are S = 1, f = 0 si
8
C = 3 + 127 = 124 = (01111100)2 , deci
32 31
24 23
1
1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0.........0 0
53 52
C = e + 1023
1
f
S
In acest caz, caracteristica este reprezentata pe 11 cifre binare, avand posibilitatea de a
nmagazina o valoare maxima 211 1 = 2047, ceea ce corespunde unui exponent
e = 2047 1023 = 1024.
Partea fractionara ocupa 52 pozitii binare.
Exemplul 2.11 Sa reprezentam n virgul
a mobil
a dubl
a precizie num
arul 124, 0625.
6
Vom avea 124, 0625 = (1111100, 0001)2 = 1, 11110000012 , deci S = 1, f = 1111000001,
C = e + 1023 = 6 + 1023 = 1029 = (10000000101)2 .
Reprezentarea este
64 63
53 52
1
1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0.........0
26
2.2.4
Operatii n virgul
a mobil
a
3
+ 7.
4
21 + 20
3
=
= 21 + 22 = (0, 11)2 = 1, 1 21 ,
4
22
y = 7 = (111)2 = 1, 11 22 .
Deoarece y are exponentul mai mare, x se va alinia corespunz
ator:
x=
x = 1, 11 21 = 0, 0011 22
Acum
x + y = (0, 0011 + 1, 11) 22 = 1, 1111 22 .
Nu este necesara normalizarea mantisei.
27
28
2.3
Exercitii
0, 7.
599 10692,
0, 1;
85
.
256
38398/73.
Capitolul 3
Algebre si functii boolene
3.1
Elementul teoretic fundamental necesar pentru analiza si sinteza circuitelor care formeaza
arhitectura unui calculator este cel de Algebr
a Boole1 .
Definitia 3.1 O algebra Boole este un sistem B= (B, , , 0, 1) cu propriet
atile:
1. a, b, c B
2. a, b, c B
3. a, b B
a b = b a; (comutativitatea lui )
4. a, b B
a b = b a; (comutativitatea lui )
7. a, b, c B
8. a, b, c B
9. a B, a B
a a = 0,
a a = 1. (complement)
O prima observatie este ca o algebra booleana are cel putin doua elemente 0 si 1, iar
0 6= 1.
1
George Boole (1815 - 1864): matematician si filosof englez, considerat prin prisma algebrelor care
i poarta numele unul din fondatorii informaticii teoretice.
29
30
3.2
Propriet
ati ale algebrelor booleene
a a = a.
a 1 = 1,
a 0 = 0.
Demonstratie:
a 1 = (a 1) 1 = (a 1) (a a) = a (1 a) = a a = 1,
a 0 = (a 0) 0 = (a 0) (a a) = a (0 a) = a a = 0.
Teorema 3.3
a (a b) = a,
a (a b) = a. (absorbtie)
Demonstratie:
a (a b) = (a 1) (a b) = a (1 b) = a (b 1) = a 1 = a,
a (a b) = (a a) (a b) = a (a b) = a.
31
a = a.
a b = a b,
a b = a b. (regulile De Morgan)
3.3
Inafara celor trei operatii folosite pana acum de o algebra booleana (, , ), mai sunt
cunoscute si alte operatii.
Astfel, putem enumera:
1. Diferenta simetrica: a b = (a b) (a b);
2. Operatorul Sheffer: a|b = a b;
3. Echivalenta: a b = (a b) (a b);
4. Implicatia: a b = b a.
32
0 1 = 1 0 = 1;
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).
Propozitia 3.2
1. a b = a b;
2. a b = a b;
3. a b = (a b) (b a);
Propozitia 3.3 Afirmatiile
1. a b = 0;
2. a b = 1;
3. a = b;
sunt echivalente.
3.4. FUNCT
II BOOLEENE
3.4
33
Functii booleene
|
n
ori
34
f
0
1
0
1
g f + g fg
0
0
0
0
1
0
0
0
0
1
1
1
f
1
0
1
0
g
1
1
1
0
Deci operatiile cu functii sunt definite punct cu punct; reprezentarea lor sub forma tabelara
constituie o modalitate convenabila de calcul deoarece folosesc n mod direct formulele
din tabelele de operatii ale algebrei booleene A.
Teorema 3.7 Fie Fn multimea functiilor booleene de n (n 1) variabile. Sistemul
F n = (Fn , +, , 0, 1) formeaza o algebr
a boolean
a (algebra Boole a functiilor booleene de n
variabile).
Demonstratie: Axiomele algebrei boolene se verifica usor, folosind Definitia 3.3. Functia
0 este definita
0(x1 , x2 , . . . , xn ) = 0, xi {0, 1} (1 i n),
iar functia 1 prin
1(x1 , x2 , . . . , xn ) = 1, xi {0, 1} (1 i n).
Definitia 3.4 Fie F n algebra Boole a functiilor booleene de n variabile. Se numeste
pondere o aplicatie w : Fn N definit
a w(f ) = card(f 1 (1)) (num
arul de elemente
n
din {0, 1} care au imaginea 1 prin f ).
Exemplul 3.3 sunt listate elementele algebrei F 2 . Ponderile acestor
Exemplul 3.5 In
elemente sunt listate n tabelul urm
ator:
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
w 0 1 1 2 1 2 2 3 1 2 2
3
2
3
3
4
Urmatorul rezultat este imediat.
Teorema 3.8
1. w(f ) + w(f ) = 2n ;
2. w(f + g) + w(f g) = w(f ) + w(g).
Vom ncerca n continuare sa definim o reprezentare a functiilor booleene, utila n construirea circuitelor liniare.
Aceasta reprezentare se bazeaza pe notiunea de minterm.
3.4. FUNCT
II BOOLEENE
35
n
X
ik 2nk
ik {0, 1}.
k=1
mi (x1 , x2 , . . . , xn )
iI
g(x1 , x2 , . . . , xn ) =
X
iJ
iI
atunci
X
f (x1 , x2 , . . . , xn ) + g(x1 , x2 , . . . , xn ) =
mi (x1 , x2 , . . . , xn ),
f (x1 , x2 , . . . , xn )g(x1 , x2 , . . . , xn ) =
XiIJ
mi (x1 , x2 , . . . , xn ),
iIJ
f 0 (x1 , x2 , . . . , xn ) =
X
i6I
mi (x1 , x2 , . . . , xn ).
mi (x1 , x2 , . . . , xn )
36
3.5
f
1
0
1
1
Forme canonice
Scopul acestui paragraf este de a asocia fiecarei functii booleene f o expresie booleana
scrisa sub o forma unica. Aceasta se va numi form
a canonic
a a lui f sau forma normal
disjunctiv
a a lui f .
O consecinta importanta a acestei reprezentari va fi aceea ca putem verifica echivalenta
a doua expresii cercetand daca acestea pot fi reduse la aceeasi forma canonica (deci nu vom
mai face apel la constructia tabelelor de valori a functiei asociate, destul de costisitoare
din punct de vedere al complexitatii).
Definitia 3.6 Un literal este o variabil
a sau complementul ei.
Definitia 3.7 Fie Bn = {x1 , x2 , . . . , xn }. O expresie este un minterm sau un produs
fundamental n algebra Boole B n = (Bn , +, , 0, 1) dac
a si numai dac
a este concatenarea
a n literali distincti.
Exemplul 3.7 Cei opt mintermi din B 3 sunt
x1 x2 x3
x1 x2 x3
x1 x2 x3
x1 x2 x3
x1 x2 x3
x1 x2 x3
x1 x2 x3
x1 x2 x3
xj
xj
pentru ij = 0
pentru ij = 1
(1 j n).
37
Observatia 3.2 Fiecare minterm xi11 xi22 . . . xinn corespunde functiei booleene
mi (x1 , x2 , . . . , xn ) unde i = (i1 , i2 , . . . , in )2 .
Teorema 3.10 Daca f este o functie boolean
a de o variabil
a (f F1 ) atunci
f (x) = xf (1) + xf (0).
Demonstratie: 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 verifica pentru toate asignarile posibile ale variabilei.
Urmatoarea teorema da forma canonica pentru orice functie booleana de n variabile.
Teorema 3.11 Daca f este o functie boolean
a de n variabile (f Fn ) atunci
1
1 X
X
f (x1 , x2 , . . . , xn ) =
i1 =0 i2 =0
...
1
X
in =0
f (x1 , x2 , . . . , xn ) =
1
X
...
in =0
i2 =0
Pe de alta parte, f (x1 , i2 , . . . , in ) = x01 f (0, i2 , . . . , in ) + x11 f (1, i2 , . . . , in ) si, dupa nlocuire
f (x1 , x2 , . . . , xn ) =
1
X
i2 =0
1
X
i1 =0
...
1
X
...
1
X
in =0
in =0
38
Evaluand prima expresie obtinem f (i1 , i2 , . . . , in ) = 1(0), iar pentru a doua expresie
f (i1 , i2 , . . . , in ) = 0(1), ceea ce contrazice faptul ca ambele expresii reprezinta f .
Fiind data o functie booleana f , sa vedem cum se poate scrie forma sa normal disjunctiva.
Cel mai sugestiv este sa aratam aceasta printr-un exemplu.
Exemplul 3.9 Fie f F3 definita de urm
atorul tabel:
x1 0 0 0 0 1 1 1 1
x2 0 0 1 1 0 0 1 1
x3 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)x01 x02 x03 = 0 x1 x2 x3 = 0.
Deoarece a + 0 = a, contributia oric
arei coloane unde valoarea lui f este 0 poate fi
ignorat
a.
Dac
a valoarea lui f este 1, termenul respectiv va fi p
astrat.
Deci
f (x1 , x2 , x3 ) = x01 x02 x13 +x01 x12 x13 +x11 x02 x13 +x11 x12 x13 = x1 x2 x3 +x1 x2 x3 +x1 x2 x3 +x1 x2 x3 .
3.6
Inele booleene
Definitia 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 definim operatiile (pentru orice x, y B):
x y = (x y) (x y),
x y = x y.
3.7. EXERCIT
II
39
x x = (x x) (x x) = 0 0 = 0.
Aceasta relatie se poate scrie 2x = 0, ceea ce nseamna ca avem un inel de caracteristica
2 (proprietate care se poate demonstra pentru orice inel boolean).
Distributivitatea se verifica similar:
xy xz = ((xy)x z))(x y (xz)) = (xy (xz))((xy)xz) =
(x y z) (x y z) = x [(y z) (y z)] = x (y z).
Teorema 3.12 Orice inel boolean (B, +, ) se poate structura ca o algebr
a Boole, cu
operatiile
x y = x + y + x y,
x y = x y.
Demonstratie: Se verifica axiomele Definitiei 3.1, unde complementara este definita prin
x = 1 + x. In particular, vom avea:
x x = x + x + x x = x + (1 + x) + x (1 + x) = 1 + 4x = 1,
x x = x x = x (1 + x) = x + x = 0.
Se poate stabili deci o corespondenta biunivoca ntre inelele booleene si algebrele
booleene.
Aceasta conduce la o serie de aplicatii interesante, n special prin inducerea proprietatilor structurilor algebrice n domeniul algebrelor Boole.
3.7
Exercitii
b = a b
b a.
3. a b a b = 0 a b = 1.
4.
a b = 0 b a.
40
10. Construiti un algoritm de generare a formei normal conjunctive asociata unei functii
booleene.
11. Sa se arate echivalenta expresiilor booleene
[b (a c) (a c)] (b c),
(a b c) (a b c) (a b c) (a b c).
b (a b)
Capitolul 4
Sisteme digitale
4.1
Circuite combinationale
4.1.1
Porti
Cele mai simple circuite sunt circuitele constante 0 00 si 0 10 ; de obicei primul este marcat
printr-un punct ., iar al doilea printr-o linie .
O variabila booleana (logica) a poate controla un circuit, activandu-l (daca ia valoarea
0 0
1 ) sau dezactivandu-l (la valoarea 0 00 ).
Indiferent daca modul de activare/dezactivare este de tip mecanic, electric, electromagnetic, integrat, imprimat, neural, ideea de baza este aceeasi: pentru ntelegere, vom
considera circuitul sub forma unei linii legata la o sursa permanenta de curent, linie
ntrerupta de o poarta al carei rol este de a nchide sau deschide circuitul:
1
Denumirea complet
a este Circuit Logic Combinational.
41
42
`
`
X
X
a
a = 0 (dezactivat)
a
a = 1 (activat)
Poarta poate fi deschisa (dezactivata) prin intermediul unui arc, care n pozitie 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 definim modul de combinare al circuitelor elementare, folosind operatiile booleene
(disjunctie, conjunctie, negatie).
Implementarea acestor operatii se realizeaza prin circuite numite porti.
Poarta AN D:
Fie a, b doua variabile booleene. Pentru ab (sau n functie de notatie a b) se
poate construi circuitul
a b
H
H
H
H
H
H
H
H
b
(1)
??
?
ab
(2)
0 1
0 0 0
1 0 1
(3)
(1) este structura functionala a circuitului, (2) este notatia logica, iar (3) - tabela
de operatie a operatorului AN D operatorul dintr-o algebra Boole.
Se observa ca valoarea de iesire este 1 daca si numai daca a = b = 1.
Simbolul portii AN D (Figura (2)) poate fi generalizat la n intrari a1 , . . . , an , obtinandu-se o poarta AN Dn .
Poarta OR:
Pentru poarta care realizeaza circuitul a + b (a b n notatie booleana), structura
functionala este reprezentata n Figura (1), simbolul logic de Figura (2), iar tabela
de operatii - de Figura (3):
43
a
H
H
A
a b
? ?
?
H
H
H
H
a+b
b
(1)
+ 0 1
0 0 1
1 1 1
(3)
(2)
`
a - `` f- a
(2)
(1)
(3)
Se observa ca circuitul este nchis prin pozitia relaxata a arcului (a = 0); la comprimarea acestuia (a = 1) circuitul se dezactiveaza (deschide).
Simbolul logic este (2), iar uneori chiar (3).
Inafara acestor operatii, n constructia circuitelor se mai folosesc trei tipuri suplimentare de porti: N AN D, N OR si XOR.
Poarta N AN D:
Este un circuit care implementeaza expresia booleana a b. Figura (2) reprezinta
o alta implementare, obtinuta n urma relatiei De Morgan: a b = a b.
Simbolul logic al portii N AN D este Figura (3).
b
H
H
a b
H
H
H
H
H
H
H
H
H
H
H
H
(1)
??
d
?
H
H
H
H
(2)
ab
(3)
44
"
"
X
XX
b
b
a b
"
"
X
XX
b
b
? ?
e
?
ab
Tabela de operatii este:
N OR 0 1
0
1 0
1
0 0
De fapt acesti operatori (N AN D si N OR) se obtin prin legarea n serie a doua
porti: o poarta AN D (respectiv OR) si o poarta N OT .
Teoretic ei se pot generaliza la N AN Dn (respectiv N ORn ).
Poarta XOR:
Este implementarea operatiei sau logic ab ba (operatorul dintr-o algebra
Boole):
b
H
H
a b
H
H
-
H
H
H
H
0 1
0 0 1
1 1 0
ab ba
H
H
H
H
? ?
?
b
(1)
(2)
(3)
4.1.2
45
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, unitatile de
memorie, magistralele de sincronizare, structuri de control).
Cele mai simple circuite sunt cele combinationale.
Conform Definitiei 4.2, un circuit combinational este o structura arborescenta construita folosind un numar finit de porti.
De exemplu, circuitul urmator nu este combinational:
b
a -``` d
6
?
6
t
d
?-
- f (a, b, c)
46
4.2
Extensii
a1a2
an
...
??
4.2. EXTENSII
47
Operatiile de baza care se pot defini pentru sistemele digitale sunt cele de legare n
serie si n paralel, operatii numite extensii.
Definitia 4.6 Fie sistemele digitale Si = (Xi , Yi , fi ), i = 1, 2 unde
X1 = {0, 1}n , Y1 = X2 = {0, 1}m , Y2 = {0, 1}p
Se numeste extensie seriala sistemul digital S = (X, Y, f ) unde X = X1 , Y = Y2 , iar
functia de transfer f : X Y este definit
a prin f = f2 f1 .
Grafic, are loc urmatoarea operatie:
X1
X2
H
H
?n
H
H
?m
S1
S2
H
H
?m
H
H
?p
Y1
Y2
X1
H
Hn
?
S1
=
H
Hm
?
S2
H
Hp
?
Y2
Definitia 4.7 Fie Si = (Xi , Yi , fi ), (i = 1, 2) dou
a sisteme digitale. Extensia paralela
S1 S2 este sistemul
S = (X1 X2 , Y1 Y2 , f12 )
unde f12 : X1 X2 Y1 Y2 este definit
a f12 (x, y) = (f1 (x), f2 (y)).
Grafic, are loc operatia de combinare:
X1
X2
n1
H
H
?
n2
H
H
?
S1
S2
H
H m1
?
H
H m2
?
Y1
Y2
H
n1H
?
X1 X2
H
H n1 + n2
? H
H n2
?
S1
m1 H
H
?
S2
H m2
?
- H
H
H m1 + m2
?
Y1 Y2
48
x12
? ?
? ?
S1
S2
y11
y12
? ?2
y2
1
x11 x2
? ?
?
?
?
?
S1
???
S2
?
?
?
1 2 2
?
?
y1 y1 y2
iar extensia seriala a lui S2 cu S1 :
S2
y12 = x11
y22 = x12
??
S1
y11
4.2. EXTENSII
49
X1 X2
n +n
H
H
? 1 -2
n1 H
H
H
H n2
?
S1
S2
m1 H
H
?
n3 H
H
?
H
H m2
?
-
m
+
m
H
H
1
?
- 2
H
H n4
?
S3
S4
m3 H
H
?
H
m
H
-
? 4
H
H m3 + m4
?
Y3 Y4
Exemplul 4.3 Un circuit combinational care incrementeaz
a (s = 0) sau decrementeaza
(s = 1) un numar x1 x0 format din doi biti, poate fi definit astfel:
s
x1
s
x0
?
IN C
DEC
?
?
HH
H
HH
j
H
?
?
?
?
?
MUX
MUX ?
?
y1
y0
IN CR (incrementare), DECR (decrementare), M U X (selectie) sunt circuite combinationale (care vor fi definite mai tarziu), iar circuitul final rezultat prin extensia serial paralel
a este evident tot combinational.
50
4.3
Cicluri
Pentru cresterea gradului de complexitate al circuitelor digitale se defineste o noua operatie numita ciclu.
Definitia 4.9 Fie sistemul digital S1 = (X X1 , Y Y1 , h) unde X1 = Y1 . Notam
h = (f, f1 ) unde f : X X1 Y, f1 : X X1 Y1 .
Prin identificarea (conectarea serial
a) a lui Y1 cu X1 se obtine o ciclu si noul sistem
are forma S = (X, Y, g), unde g : X Y este definit
a g(x) = f (x, f1 (x, y)); f1 se
numeste functie de tranzitie si verific
a definitia recursiv
a y = f1 (x, f1 (x, y)).
Vom avea deci urmatoarea situatie:
X X1
X X1 = Y1
H
H
Hn H
Hm
Hn
6
?
?
?
?
S1
S1
p Hm
H
H
? H
?
Y
Y1
H
Hm
X
H
H n
?
p
H
H
?
? -
p
H
H
?
Dupa cum se observa n Definitia 4.5, apare o noua variabila ascunsa care ia valori n
multimea Q = X1 = Y1 ; atunci f : X Q Y, f1 : X Q Q.
Multimea Q caracterizeaza comportarea interna a sistemului digital; aceasta comportare se mai numeste stare intern
a sau pe scurt stare.
Efectul fundamental al comportarii interne consta n evolutia sistemului pe spatiul de
valori Q, fara modificari ale intrarii X.
Pentru un a X aplicat constant la intrare, iesirea poate prezenta diverse variatii. 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 definitia sistemului; astfel,
el se va scrie S = (X, Y, Q, f1 , g).
Exemplul 4.4 Sa consideram sistemul S1 = (X X1 , Y, f ) unde X = {0, 1}, X1 = Y =
{0, 1}2 , iar f este definit de tabelul
X X1
0 00
0 01
0 10
0 11
Y
01
00
00
10
X X1
1 00
1 01
1 10
1 11
Y
01
10
11
00
4.3. CICLURI
51
6 H
H
S1
HH
H
0 H
1
HH
?
H
1
- 10
0
H
H
s 2
?
11
S1
(2)
?
?
S2
(1)
?? ? -
Y
Se poate da acum o definitie a sistemelor digitale de ordin n.
52
4.4
Exercitii
s
s
P
?
- PP
e
P
? - PP
e
-6
?
x
y
4.4. EXERCIT
II
53
prin tabelul
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
g(a, b, c) = (a c)b
e
-
- f (a, b, c)
Capitolul 5
Sisteme 0 DS
Acestea sunt cele mai simple tipuri de sisteme digitale, caracterizate complet prin functii
booleene.
Astfel, multe functii digitale pot fi generate plecand de la circuitele elementare care le
realizeaza, la care se adauga o regula recursiva (pentru executarea functiei independent
de marimea intrarii).
Vom trece n revista cele mai importante sisteme care pot fi descrise n acest mod.
5.1
Decodificatoare
Un sistem digital are drept multime de valori de intrare n-tupluri binare din {0, 1}n .
Semnalul care vine printr-un canal fizic 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 receptionat.
Aceasta este una din principalele functii 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 decodificator.
Cel mai simplu decodificator este decodificatorul elementar (EDCD), care ca scop
determinarea valorii unui bit.
Schema sa de constructie este data de Figura (a) sau (b), iar reprezentarea simbolica
Figura (c) respectiv (d):
55
CAPITOLUL 5. SISTEME 0 DS
56
P
s - PP
f - y0
?
- y1
x0
x0
P
P
f - y1
- PP
f s- PP
?
- y0
(b)
(a)
x0
- EDCD
(c)
y0
x0
y1
- EDCD
?
y0
(d)
y1
Decodificatorul elementar a fost obtinut prin extensia paralela a circuitelor care realizeaza
cele mai simple functii f (x0 ) = y1 = x0 (functia identica) si g(x0 ) = y0 = x0 (functia
N OT ).
Se observa ca permanent una si numai una din liniile de iesire are valoarea 0 10 (este
activa): daca este activa iesirea y0 , atunci intrarea a avut valoarea 0 00 , iar daca este activa
iesirea y1 , intrarea a avut valoarea 0 10 .
Determinarea valorii exacte a bitului de intrare x0 se face deci afland ce iesire a decodificatorului este activa.
Pentru a izola iesirea din canal (sau din alt sistem digital) de intrarea n decodificator
(lucru recomandat n practica), ntre cele doua circuite se mai insereaza o poarta logica;
cum singurul operator unar utilizat este N OT , el se va adauga printr-o extensie seriala,
obtinandu-se un EDCD cu buffer (figura (b)).
In acest fel, comportamentul unui EDCD este protejat de eventuale probleme ale
circuitului care asigura intrarea.
Generalizand, obiectivul acestei sectiuni este aceea de a construi un decodificator
(DCD) cu n intrari (DCDn ) pentru decodificarea semnalelor formate din n biti.
Ulterior, orice sistem digital va avea intrarea conectat
a la iesirea unui decodificator.
Definitia 5.1 Un DCDn este un circuit combinational cu intrarea X = {0, 1}n formata
din n biti (xn1 , . . . , x1 , x0 ) si iesirea Y reprezentat
a prin m = 2n biti ym1 , . . . , y0 .
Fiecare iesire este activa numai pentru o anumit
a configuratie binar
a de intrare, si
reciproc fiecare configuratie de intrare activeaz
a un singur bit de iesire.
Structura unui DCDn se defineste recursiv. Astfel:
1. Un DCD1 este un EDCD reprezentat n figura (b);
2. Un DCDn (n 2) se obtine combinand un DCDn1 cu un DCD1 dupa regula din
figura urmatoare:
5.1. DECODIFICATOARE
n1
y0
y1
57
-s
(xn2 , . . . , x0 ) H
H-DCDn1
s
y2n1
P
P
P bsP
xn1 -!
!b
!
!
?
s
s
??
??
...
?
?
y0
??
??
...
?
?
y2n1 1
y1
y2n1
??
?
y2n 1
DCDn
Singura dificultate n aceasta constructie consta n adancimea (numarul mare de nivele
ale) structurii.
In plus, sistemul contine pe aceste nivele un total de 2n + 2n1 + . . . + 2 = 2n+1 2
porti AN D (nafara celor 2n porti N OT ).
Deci un DCDn construit pe baza definitiei recursive de mai sus, are o complexitate
exponentiala.
Ea poate fi micsorata substantial, reducand adancimea decodificatorului, de la ordinul
n pana la ordinul 1, pe baza urmatoarei observatii: intrarea n fiecare AN D este de forma
(a); folosind asociativitatea, cele doua componente AN D pot fi nlocuite cu una singura,
avand trei intrari, cum este n (b):
x0 x1
x0 x1 x2
? ? x2
???
=
???
?
?
y
(b)
(a)
Noul DCD va avea numai n 1 nivele.
Procedeul se repeta de nca n 1 ori; n final se obtine un DCDn cu n intrari, 2n
invertoare, 2n iesiri, dar numai 2n porti AN D, toate situate pe un singur nivel.
CAPITOLUL 5. SISTEME 0 DS
58
-PP
d s-PP
e
?
-P
P d s-P
Pe
?
-PP
d s-PP
e
?
s
s
s
s
s
s
s
s
s
s
s
s
??? ??? ??? ??? ??? ??? ???
?
?
?
?
?
?
?
-1
-0
s -1
-0
s- 1
-0
???
?
y0
y1
y2
y3
y4
y5
y6
y7
000 100 010 110 001 101 011 111
Pentru un mesaj de forma 110, intrarea va fi x0 := 1, x1 := 1, x0 := 0. Urm
arind
circuitul decodificator DCD3 , se obtine y3 = 1 si yi = 0 pentru i 6= 3.
Ca o remarca, iesirea activa dintr-un DCDn va fi yi daca si numai daca reprezentarea n
binar a lui i este xn1 xn2 . . . x0 .
5.2. CODIFICATORI
5.2
59
Codificatori
Dupa cum s-a vazut, un decodificator sistematizeaza intrarea ntr-un sistem digital.
In particular, el pune o problema sub o forma standard. Raspunsul la aceasta problema
este generat de un codificator.
Definitia 5.2 Un (2n , p) - codificator este un circuit cu m = 2n intr
ari dintre care la
fiecare moment numai una este activ
a; pentru fiecare intrare el genereaz
a o configuratie
binar
a de lungime p. Circuitul const
a din p porti OR sau din p porti N AN D, fiecare
poart
a av
and maxim m intrari.
Un codificator nu este definit niciodata independent: intrarile lui sunt de fapt n variabile care activeaza un DCDn , iar cele m = 2n iesiri ale acestuia reprezinta intrarile n
codificator. Vom completa ulterior Definitia 5.2.
Exemplul 5.2 Un sumator complet este un circuit combinational cu n = 3 intr
ari:
y0
y1
y2
y3
y4
y5
y6
y7
DCD3
x2
C
B
A
x1
6
-6
x0
6
s
s
s
s
s
s
s
?? ??
? ?? ?
&
c
%
&
c
C+
CAPITOLUL 5. SISTEME 0 DS
60
A
B
C
x0
x1
x2
y0 y1 y2 y3 y4 y5 y6 y7
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
S
a presupunem ca avem A = 1, B = 0, C = 1; aceasta corespunde situatiei y5 = 1, yi =
a porti N AN D
0 (i 6= 5). Deci din DCD3 va iesi y 5 = 0, y i = 1. Rezultatele celor dou
sunt:
S = y1 y2 y4 y7 = 1 1 1 1 = 1 = 0
C+ = y 3 y 5 y 6 y 7 = 0 = 1
Intr-adev
ar, suma 1 + 0 + 1 este 0, iar transportul 1.
exemplul 5.2, dac
Observatia 5.1 In
a iesirile decodificatorului nu ar fi complementate,
atunci codificatorul ar avea porti OR n loc de N AN D; aceasta rezult
a din relatiile De
Morgan:
pq =pq
general, operatorul OR corespunde notiunii de codificare iar AN D - celei de decoIn
dificare (OR distruge identitatea componentelor, pe c
and AN D prefigureaz
a o anumita
configuratie binara).
Daca dorim sa reprezentam toate functiile binare cu 3 intrari si 2 iesiri, vor fi necesare
doua porti N AN D cu cel mult opt intrari fiecare.
Cele 216 functii logice posibile vor fi implementate folosind circuitul din Exemplul 5.2
n care se pun punctele (conectorii) conform iesirilor din tabela care defineste functia
logica respectiva.
Circuitul rezultat poate fi interpretat si ca o memorie fix
a.
Intr-adevar, daca se considera intrarile drept adrese, atunci la fiecare adresa exista
stocata o anumita valoare binara, conform distributiei 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 functia boolean
a cu 3 intr
ari si 3 iesiri definit
a prin
f (x0 , x1 , x2 ) = (x0 x1 + x2 , (x0 + x1 )x2 , x0 x1 + x1 x2 + x2 x0 ).
Tabelul ei de valori va fi
5.2. CODIFICATORI
61
y0 y1 y2 y3 y4 y5 y6 y7
x0
0 1 0 1 0 1 0 1
x1
0 0 1 1 0 0 1 1
x2
0 0 0 0 1 1 1 1
f1 (x0 , x1 , x2 ) 1 1 1 1 0 0 0 1
f2 (x0 , x1 , x2 ) 0 0 0 0 0 1 1 1
f3 (x0 , x1 , x2 ) 0 1 1 1 1 1 1 0
unde s-a notat
f1 (x0 , x1 , x2 ) = x0 x1 + x2 ,
f2 (x0 , x1 , x2 ) = (x0 + x1 )x2 ,
f3 (x0 , x1 , x2 ) = x0 x1 + x1 x2 + x2 x0 .
Functia f (x0 , x1 , x2 ) = (f1 (x0 , x1 , x2 ), f2 (x0 , x1 , x2 ), f3 (x0 , x1 , x2 )) este implementata
de circuitul codificator:
y0
y1
y2
y3
DCD3 y
4
y5
y6
y7
x2
x1
x0
-6 6 6
-
f1
f2
f3
CAPITOLUL 5. SISTEME 0 DS
62
5.3
Demultiplexori
Demultiplexorul elementar (EDM U X) permite transferul unui semnal E spre doua destinatii distincte (y0 sau y1 ), conform unei anumite functii de selectie x0 .
Circuitul asociat acestui deziderat este reprezentat n Figura (a).
In practica, pentru securizarea intrarilor la circuitele driver-ului, schema sa se complica
prin folosirea unui decodificator elementar (EDCD) pentru selectarea celor doua porti si
un buffer invertor pentru demultiplexarea intrarii; de asemenea, portile AN D se nlocuiesc
cu porti N AN D.
Se obtine astfel circuitul (b), a carui reprezentare simbolica este (c):
P
s - PP
d
s
??
?? E
?
?
(a)
EDCD
x0
X
XX
d
- XX
d s - X
x0
s
d
??
? ? XXX E
d
d
y1 = x0 E y 0 = x0 E
- x0
y0
EDM U X
y0
(b)
y1
y1
?
(c)
Definitia 5.3 Un demultiplexor cu n intr
ari (DM U Xn ) transfer
a semnalul de intrare E
la una din cele m = 2n iesiri ym1 , . . . , y0 , n conformitate cu un codul binar de selectie
xn1 , . . . , x0 .
?
n
(xn1 , . . . , x0 ) H
H-
DCDn
y0
...
y1
??
??
...
d
d
?
y0
y1
ym1
d
PP
P
??
d
?
ym1
5.3. DEMULTIPLEXORI
63
-PP
d s-PP
d
?
-PP
d s-PP
d
?
-PP
s-PP
d
d
?
s
s
s
s s
s
s
s
s
s
s
s s
s
s
s
s
s
s
s
s
s
s
-s
????????????????????????????????
?
?
?
?
?
?
?
?
s
y0
y1
y2
y3
y4
y5
y6
y7
CAPITOLUL 5. SISTEME 0 DS
64
5.4
Multiplexori
Functia inversa unui DM U X este multiplexarea (M U X): un circuit care aduna ntr-un
singur loc informatia venita din mai multe zone.
Ea este de asemenea si o functie de comunicare, asigurand interconectarea dintre
blocuri distincte ale unui sistem digital.
Un multiplexor elementar (EM U X) este un selector care transmite semnalul i1 sau i0
spre y, n functie de valoarea codului de selectie x0 .
Circuitul este prezentat mai jos, unde un EDCD cu intrarea x0 deschide numai una
din cele doua porti AN D, nsumate apoi n y printr-o poarta OR:
i0
i1
x0
X
XX
- XX
d
d s - X
i0
- x0
i1
EM U X
??
??
?-
?
? ?
?
y = x 0 i1 + x 0 i0
Definitia generala a acestui circuit este:
Definitia 5.4 Un multiplexor (M U Xn ) este un circuit combinational cu n biti de control
(xn1 , . . . , x0 ), care selecteaza la iesirea y numai o intrare din cele m = 2n posibilitati
im1 , . . . , i1 , i0 .
ym1
DCDn
y1
y0
(xn1 , . . . , x0 )
6
H
H -
i0
im1
i1
??
??
...
?
?
?? ?
?
??
?
5.4. MULTIPLEXORI
65
i0
6
H
n1H
(xn2 , . . . , x0 )
...
im/21
...
im/21
im/2
...
im1
...
im/21
M U Xn1
i0
M U Xn1
y
-
H
H
n1
?
i0
i1
xn1 - x0 EM U X
y
?
y
Desi un multiplexor este (prin definitie) un circuit de selectie, el poate fi utilizat si pentru
realizarea unor functii booleene.
Astfel, sa consideram xn1 . . . , x0 ca variabile booleene de intrare ale unei functii care
ia valorile im1 , . . . , i0 .
Pentru codul de selectie (considerat intrare) 00 . . . 0 se alege valoarea lui i0 s.a.m.d.,
pana la intrarea 11 . . . 1 care selecteaza valoarea im1 .
Deci M U Xn executa tabela de adevar a unei functii booleene f : V n V .
Exemplul 5.5 Sa consideram functia de transport C+ a sumatorului construit n Exemplul 5.2. Tabela sa de adevar este dat
a de secventa
y3 + y5 + y6 + y7 = 00010000 + 00000100 + 00000010 + 0000001 = 00010111
Dac
a aceasta secventa este aplicata iesirilor din DCD3 cu variabilele de intrare (selectie)
A, B, C, se obtine y = C+ :
CAPITOLUL 5. SISTEME 0 DS
66
y7
y6
y5
y4
DCD3 y3
y2
y1
y0
0 0
x0 x1 x2
A -6-6 6
B
C
0 0
0 0
0 0
0 0
0 0
0 0
0 0
?? ?? ?? ?? ?? ?? ?? ??
?
?
?
?
- ?
?
?
?
????????
?
s
s s s
s s s -s
? ?? ?? ?? ?
0 0
C
B
A
0 0
- x 2 i0 i 1 i2 i3 i 4 i 5 i 6 i 7
- x1
M U X3
- x
0
C+
De exemplu, daca avem intrarea 101, aceasta corespunde lui y5 = 1 si yi = 0 pentru i 6= 5.
Cum i5 = 1, pe a sasea poarta AN D se obtine 0 10 care - prin poarta OR - conduce la
iesirea y = 1.
La fel, pentru intrarea 001 avem y4 = 1 si toate iesirile din portile AN D au valoarea
0 0
0 , ceea ce duce n final la y = 0.
Solutia prezentata este nsa prea general
a si risipitoare de resurse.
Ea poate fi minimizata la un M U X2 (Figura (a) de pe pagina urm
atoare) folosind una
din variabile pe pozitie de selector.
Ideea poate fi mbunatatita n continuare, ajung
andu-se n final la un EM U X care
selecteaz
a cu C doua functii de dou
a variabile A si B (Figura (b)):
5.4. MULTIPLEXORI
67
0 0
0 0
s
s
??
? ?
?
?
A
B
B
1
s? ?? ?
C
A
- x 1 i0 i1 i2 i3
- x0 M U X2
- x0
y
(a)
i0
i1
EM U X
y
?
C+
C+
(b)
Pentru clarificare, vom detalia cazul (a); acesta este o notatie simplificat
a a circuitului:
y3
y2
DCD2 y1
y0
0 0
6
A -6
C
x0 x1
0 0
?? ?? ?? ??
?
- ?
?
?
????
?
C+
x0 x1
6
A -6
-
s
?? ??
?
- ?
???
?
C+
CAPITOLUL 5. SISTEME 0 DS
68
(n 0) poate fi implementat
a cu
CLCg
?
-
g(xn2 , . . . , x0 )
CLCh
?
-
? h(xn2 , . . . , x0 )
?
i0
i1
xn1 - x0 EM U X
?
y = x 0 i0 + x 0 i1
prima etap
Exemplul 5.6 Sa consideram functia f (a, b, c) = ab+bc+ca. In
a o reprezentam
sub form
a 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 functiile
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 combinational logic al lui f :
s
a
6
s-
PP
Pd
-
0 0
0 0
??
??
EM U X
b + ab ?
c -
-
??
EM U X
f (a, b, c)
EM U X
b + ab
5.5
69
Codificatori cu prioritate
??
d
?
Z = i0 + i 1
i1
i0
EP E
y0
?
Z -
CAPITOLUL 5. SISTEME 0 DS
70
sau Z = i1 i0 E, y0 = i1 E n cazul versiunii cu acces (EEP E); pentru facilitarea implementarii, intrarea E si iesirea Z sunt complementate.
P
s - PP
d
PP
P
i1 -
d
i0
P
- PP
d
d
XXX E
???
??
d
?
y 0 = i1 E
i1
i0
EEP E
Z -
y0
?
Z = i0 + i1 + E
Rolul lui E este de a activa/dezactiva circuitul EEP E. Cand E = 1, cele doua structuri
sunt echivalente.
Pentru E = 0, EEP E scoate valoarea Z = 1 indiferent de intrare (circuitul este
decuplat).
Interpretarea comportamentului circuitului EP E (respectiv EEP E) este urmatoarea:
Z = 0: nu sunt biti activi, iar y0 este ignorat (sau se considera y0 = 0).
Z = 1: exista biti activi: cel mai semnificativ se afla pe pozitia y0 .
Comportamentul unui EP E (sau EEP E n cazul E = 1) poate fi sumarizat n tabelul:
i1
0
0
1
1
i0
0
1
0
1
Z
0
1
1
1
y0
0
0
1
1
Comentarii
Nu sunt biti activi
i0 este bit activ
i1 este bit activ
i1 este cel mai semnificativ bit activ
Observatia 5.3 Daca exista cel putin un bit activ, atunci y0 = [log2 n] unde (n)2 = i1 i0 .
Extinzand sunt doua variante recursive de constructie a codificatorilor cu prioritate cu n
iesiri P En , bazate pe extensii seriale respectiv extensii paralele.
In prima varianta, se alege P E1 = EEP E; n continuare, un P En (n > 1) cu acces
este definit prin conectarea seriala a doua P En1 cu acces, ca n figura:
71
-
i2n 1
i2n1
i2n1 1 . . .
E
E
yn2
s -
Z
y0
?
?
?
yn1
E
yn2
i0
P En1
...
?
-
?
? ?
...
?
Z
y0
Z
- ?
? ?
?
...
yn2
...
i2n1 1
i0
P En1
...
i0
i2n1 1
y0
i2
i1
i1
i0
EEP E
y0
i1
i0
EEP E
y0
?
i0
?
-
?Z - Z
? ?
?
?
y1
y0
CAPITOLUL 5. SISTEME 0 DS
72
S
a presupunem ca se solicita acest P E2 (activat prin E 1) cu intr
arile i2 si i0 ; deci
i2 i1 i0 = 101.
Atunci, din primul EEP E = P E1 se obtine (atentie: i1 0 00 , i0 i2 )
Z = i1 i0 E = 1 0 1 = 0 si
y 0 = i1 E = 0 1 = 0
i2n1 1 . . .
P En1
yn2 . . . y0
?
?
i2n1 1 . . .
i0
P En1
yn2 . . . y0
Hn1
? H
H
Hn1
?
?
(n 1) EM U X
EP E
6
s H
H n1
?
?
?
yn1
i0
yn2 , . . . , y0
73
Adancimea acestei variante este comparabila cu n, deci mult mai simpla si rapida.
De retinut ca n general o extensie paralela genereaza circuite rapide.
Dezavantajul consta n marimea lor, care creste exponential.
Exemplul 5.8 Sa consideram m = 5. Atunci n = dlog2 5e = 3, deci vom avea un P E3 .
De remarcat ca din cele opt intrari, primele 3 (cele mai semnificative) sunt setate pe 0 00 .
Sunt posibile doua situatii:
1. i4 = 1. Atunci Z 1 = 1, deci Z = 1 si y2 = 1, indiferent de valorile bitilor i3 , . . . , i0 .
Din primul P E2 iese y1 y0 = 00, combinatie selectat
a de cele dou
a EM U X-uri
(datorita valorii y2 = 1 luate de functia de selectie).
Deci bitul cel mai activ este pe pozitia (y2 y1 y0 )2 = (100)2 = 4.
0 0
0 0
i3
0 0
i2
i4
i0
i1
i3
i3
P E2
Z
y1
i2
?
i2
i0
y0
?
i1
i0
Z EP E
i1
y1
i0
P E2
y0
?
?
i1
s
?
y2
?
?
i1
i0
EM U X
i1
i0
EM U X
y1
y0
CAPITOLUL 5. SISTEME 0 DS
74
i3
?
i3
i2
?
i2
i0
i1
i0
P E2
i1
y1
0 0
i4
0 0
y0
i1
i0
Z EP E
t
?
y2
i1
i0
EM U X
i16 i0
EM U X
y1
y0
5.6. SUMATORI
5.6
75
Sumatori
Una din cele mai importante functii digitale este operatia aritmetica de adunare.
Aceasta functie se defineste de obicei plecand de la circuite simple (suma a doua
numere de 1 bit), capabile sa se extinda recursiv pentru a asigura sumatori pe n biti,
pentru n arbitrar de mare.
Dupa cum se stie, interpetarea numerica a functiei XOR (figura (a)) este suma modulo
2. Pentru extensia ei la suma modulo 2n este necesar sa calculam si functia de transport
CR.
Atunci, un semi-sumator HA va fi format dintr-un XOR si un AN D (care ia valoarea
1 numai cand ambii operanzi sunt 1); Figura (b) da reprezentarea simbolica a unui semisumator, iar Figura (c) - structura sa interna.
AB
A
?
?
B
A
B
?
?
?
??
?
HA
S
CR
?
?
?
(a)
(c)
? (b)
CR
Dupa cum am vazut n Capitolul 2, doua numere ntregi de n biti (n > 1) se aduna
bit-cu-bit, incepand de pe cea mai putin semnificativa pozitie.
Fiecare suma de doi biti este influentata prin functia de transport de suma binara
anterioara; de aceea, pentru a tine cont si de acest transport, se va adauga o intrare
suplimentara C de transport, obtinandu-se un sumator complet F A (full adder), a carui
reprezentare simbolica este data de Figura (d) si continut - de Figura (e):
A
B
C
?
B
HA
A
?
C+
CR
?
?
A
FA
B
HA
S
(d)
CR
?-
(e)
? ?
?
C+
CAPITOLUL 5. SISTEME 0 DS
76
Primul HA nsumeaza cei doi biti (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.
Observatia 5.6 Sumatorul complet poate fi construit si pe baza unui codificator (acesta
fiind un circuit universal); ntr-adev
ar, functia sum : {0, 1}3 {0, 1}2 de adunare a
trei cifre binare poate fi definita prin tabela de valori
A
B
C
S
C+
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
x
X
X
(d
(
y
X
X
(d
(
z
X
Xd
s
s
s
s
s
s
s
s
s
s
s
???
???
???
???
? ?
? ?
? ?
?
- ?
?
?
?
-
?
????
???
?
?
C+
S
Dac
a definim ad
ancimea unui circuit ca fiind num
arul maxim de porti situate pe un
drum, circuitul de mai sus este un circuit combinational de ad
ancime 3.
Dac
a toate portile permit aceeasi vitez
a de traversare, atunci acesta este mai rapid
dec
at definitia unui F A.
Dezavantajul sau major este num
arul mare de porti, deci un cost hard mai ridicat.
O problema de baza n arhitectura calculatorului const
a n realizarea de circuite care
s
a ofere avantaje atat din punctul de vedere al vitezei de lucru, c
at si al costului echipamentului hard.
5.6. SUMATORI
77
bn1
an2
a0
bn2
...
cn C+ F A
b0
...
??
C C+
c0
C
ADDn1
...
sn1
sn2
s0
c3
a1
b2
?
FA
?
s2
?
a0
b1
?
FA
b0
?
FA
s1
c0
s0
CAPITOLUL 5. SISTEME 0 DS
78
ai
bi
A
...
Gn1
...
HA
G0 Pn1
...
...
CR
Pi s
ci
P0
??
?
c0
CL
Gi
? ?
?
cn
...
cn1
c1
si
Exemplul 5.10 Reluand exemplul unui sumator pe 3 biti, vom avea circuitul
a2
a1
a0
b2
b1
b0
?
HA
CR
HA
S
CR
s c2
? ? 6
P2 ?
G1
??
CR
s1
??
c3
S
s
c0
? ?
P0 ?
s2
HA
s c1
? ? 6
P1 ?
G0
G2
s0
??
CL
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
5.6. SUMATORI
5.6.1
79
Un caz particular de sumator este cel de incrementare, cand al doilea operand este egal
cu 0 10 .
Se poate folosi un circuit de adunare obisnuit, din cele prezentate anterior, unde valoarea 0 10 se extinde pe un numar de biti egal cu lungimea primului operand; operatia
devine nsa costisitoare (ca timp si spatiu) n conditiile n care incrementarea este folosita
mult mai frecvent decat adunarea obisnuita.
De aceea, tinandu-se cont de valoarea fixa a celui de-al doilea operand, se pot face
reduceri substantiale.
Observatia 5.7
Un F A n care B = 0, se reduce la un HA care face suma dintre A si C.
Un F A n care B = 1, C = 0, se reduce la un HA care face suma dintre A si 0 10 .
Mai mult, deoarece s = A 1 = A, c = A 1 = A, acesta poate fi construit folosind
numai un invertor:
a0
s
c
?
C
Cf
?
b0
A+1
bn1
?
6
c
?
bn2
? ?
IN Cn1
...
? ?
b1 b0
CAPITOLUL 5. SISTEME 0 DS
80
a2
?
?
c
HA
?
b3
a1
?
6
?
c
HA
a0
6
?
c
HA
?
b2
b1
0 0
6
?
?
c
HA
?
b0
Cel mai din dreapta HA poate fi inlocuit cu invertorul din Observatia 5.7.
Dezavantajul acestei constructii este un consum mai mare de timp.
De aceea se poate construi si o extensie paralela, bazata pe urmatoarele observatii:
Daca n definitia ecuatiilor de transport din construirea CL se iau c0 = 1 si bi = 0,
atunci Gi = 0, Pi = ai (0 i n 1) si deci
ci = ai1 ai2 . . . a0 ,
(i > 0)
HA
. . . LL
d
b0
bi
5.6.2
Dupa cum stim (Capitolul 2), operatia de scadere a doua numere ntregi poate fi redusa
la operatia de adunare.
Daca B este un numar pe n biti, iar B se obtine din B prin complementarea tuturor
bitilor, atunci B + B = 2n 1 si deci
A B = A + B + 1 2n
Numarul B + 1 este reprezentarea lui B n cod complementar, iar operarea cu 2n
inverseaza bitul final de transport.
5.6. SUMATORI
81
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
Deoarece x y z = x + (y + 1 21 ) + (z + 1 21 ) = x + y + z + 21 22 , rezulta
ca diferenta d(x, y, z) este rezultatul adunarii x + y + z, iar t(x, y, z) este valoarea de
transport complementata (datorita adunarii cu 21 ) a acestei sume.
Deci un circuit digital numit F S (full substract) pentru scadere este:
y
?
C
Cd
?
X
t d
X
X
FA
d
X
XX
Pentru un circuit care sa realizeze scaderea a doua numere de cate n biti se va face o
extensie seriala (n cascada) formata din n astfel de circuite, similar constructiei de la
ADDn sau IN Cn .
La identificarea transportului t de la un F S cu variabila z de la F S-ul anterior se pot
elimina cele doua complementari (care se anuleaza reciproc).
Exemplul 5.12 Sa construim un circuit pentru sc
aderea a dou
a numere de 4 biti (F S4 ).
Schema sa este (pentru simplificare, portile N OT au fost subntelese):
a3
a2
a1
a0
b3
b2
b1
b0
?
t
FA
?
d3
z t
FA
?
d2
z t
FA
?
d1
z t
FA
z
0 0
d0
CAPITOLUL 5. SISTEME 0 DS
82
Un circuit mai compact pentru scadere care sa foloseasca elementele deja construite
este
B
H
Hn
?
CC
A
Cd
n H
H
n
H
H
?
?
ADDn
nH
H
s
a
a
?n
CC
Cd
a
a
?n
IN Cn
H
nH
?
i
i
1
EM U X 0
a
an
?
D
unde am reprezentat printr-o singura complementare grupul de n invertori care inverseaza
bitii scazatorului:
H
H
?n
C
C
Cd
H
H
?n
?
C
C
Cd
?
?
C
C
Cd
?
...
?
C
C
Cd
?
5.7
83
Circuite de comparare
n
n
CAn
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
z1 (a < b)
s
? ?
?
z2 (a = b)
s ??
?
z3 (a > b)
CAPITOLUL 5. SISTEME 0 DS
84
Atunci un comparator CAn va avea 2n intrari binare, deci o tabela de adevar ar contine
22n linii, lucru extrem de dificil de realizat la nivel de codificator (din cauza numarului
mare de porti necesare).
Pentru constructia unui comparator eficient pe n biti, sa observam ca X > Y este
echivalent cu X Y > 0. Cum Y = (2n 1) Y , relatia se rescrie
X Y = X + Y > 2n 1 = 11 . . . 1
unde secventa binara de 1 are lungime n.
Daca aceasta inegalitate este satisfacuta, atunci bitul de transport al sumei cout = 1,
deoarece suma X + Y depaseste n biti.
Exemplul 5.14 Pentru n = 4, dac
a 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 comparatiei X > Y poate fi realizata deci n doi pasi:
1. Se afla Y prin aplicarea unui invertor pe n biti lui Y ;
2. Se efectueaza X +Y cu un n - sumator si se foloseste ca iesire doar bitul de transport
cout . Daca cout = 1 atunci X > Y ; altfel, X Y .
Implementarea acestei scheme arata astfel:
X
n
s
?
TT
d
n
ADDn
n
s
?
TT
d
n
n
n
Y
n
z1 (X < Y ) ignorat
cin 0 0
0
? ?
d
n
?
n
?
z2 (X = Y )
n
ADDn
n
z3 (X > Y ) ignorat
cin 0 0
0
85
O alta varianta mai simpla pentru CAn cu un singur sumator este urmatoarea:
X
Y
H
H n
?
C
Cd
n
H
H
?
H
Hn
?
cin
ADDn
cout
z1 (X > Y )
H
Hn
?
s
? ?
d
?
?
z2 (X = Y )
z3 (X < Y )
CAPITOLUL 5. SISTEME 0 DS
86
5.8
Circuite de deplasare
ai+2
s
-
M U X2
s1 s0
? ? ? ?
- x1
6
- x0
6
M U X2
- x1
6
- x0
6
M U X2
? ? ? ?
? ? ? ?
i3 i2 i1 i 0
- x1
6
-x0
6
y
s
i3 i2 i1 i0
y
s
i3 i2 i1 i0
y
s
s
s
? ? ? ?
ai
i 3 i2 i1 i0
- x1
6
- x0
6
ai+1
M U X2
y
bi+3
bi+2
bi+1
bi
O valoare de selectie (s1 s0 )2 = x implica bj = aj+x (la deplasarea spre dreapta) sau
bj = ajx (la deplasarea spre stanga) pentru x = 0, 1, 2, 3 reprezentat n binar.
Daca j x < 0, atunci bj = 0 (prin deplasarea spre stanga, bitii cei mai putin
semnificativi se completeaza cu 0 00 )
Exemplul 5.15 Daca n figura anterioar
a valoarea de selectie este (s1 s0 )2 = (10)2 = 2,
atunci fiecare multiplexor conecteaz
a iesirea la intrarea i2 .
Rezultatul va fi
bi+3 bi+2 bi+1 bi ai+5 ai+4 ai+3 ai+2
In general, pentru operatia de deplasare cu 0 pana la m 1 pozitii sunt necesare mai
multe M U Xn unde n = dlog2 me, legate n mod similar cu cele din figura.
Numarul multiplexoarelor este egal cu numarul de biti ai numarului asupra caruia se
aplica operatia de deplasare.
87
s1
s0
6- M U X2
6
s
s
?
b5
a4
s
a3
s
s
???6
?
6- M U X2
6
s
s
?
b4
s
????
6- M U X2
6
s
s
?
b3
a2
s
s
????
6- M U X2
6
s
s
?
b2
a1
a0
s
s s
s
????
s s s
s
????
0 0
6- M U X2 6- M U X2
6
6
s
s
?
b1
b0
CAPITOLUL 5. SISTEME 0 DS
88
5.9
Multiplicatori
s
s
??
?
?
A
FA
C+
bj
A
@
R
@
ai
S
-A
B
A -
ai b j
B
C
S
?
S
@
R
@
(b)
C
S
B
Exemplul 5.17 Sa construim un multiplicator pentru a nmulti dou
a numere de doi biti:
a1 a0 b1 b0 . Rezultatul are patru biti x3 x2 x1 x0 , care verific
a relatiile:
(a)
x 0 = a0 b 0 ;
x2 = a1 b1 + cx1 ;
x 1 = a1 b 0 + a0 b 1 + c x 0 ;
x 3 = c x2 .
0 0
0 b1
@
R
@
-
a0
0 0
a1
0 0
0 b0
@
R
@
-
??
a0 b 1
@
R
@
-
0 0
? ?
a0 b 0
H
??
a1 b 1
HH
j
-
H
? ?
a1 b 0
HH
j
H
Z
Z
~ ?
Z
HA
?
x3
HH
j
x2
x0
x1
5.9. MULTIPLICATORI
89
Comentarii:
i) x0 se obtine din nmultirea bitilor a0 cu b0 .
ii) Pentru x1 se aduna a1 b0 cu a0 b1 si cu transportul de la calculul lui x0 (transport
formal, deoarece el este totdeauna egal cu 0).
iii) x2 se obtine din adunarea lui a1 b1 cu transportul de la calculul lui x2 .
Transportul rezultat din aceasta adunare va fi x3 .
Aceast
a structura poate fi generalizat
a usor la multiplicatori pentru numere de n biti.
Prezent
am pentru claritate schema unui multiplicator complet pentru cuvinte de 4 biti:
0 0
0 0 b
0 0 b
0 0 b
0 0 b
0
0 3 0 00
0 2 0 00
0 1 0 00
0 0
@
R
@
-
a0
a0 b 3
0 0
a1 b 3
a2 b 3
a3
a1 b 2
@
@
R
@
-
? ?
0 0
a2 b 2
@
@
R
@
-
? ?
a3 b 3
@
R
@
-
? ?
@
@
R
@
-
@
R
@
-
? ?
@
@
R
@
-
a2
a0 b 2
@
@
R
@
-
? ?
0 0
@
R
@
-
? ?
@
@
R
@
-
a1
@
R
@
-
? ?
@
@
R
@
? ?
a3 b 2
@
R
@
-
@
@
@
? ? 6R
FA
a0 b 1
@
R
@
-
@
@
R
@
? ?
-
a1 b 1
@
@
R
@
? ?
-
a2 b 1
@
@
? ?
R
@
-
a3 b 1
@
@
@
? ? 6R
FA
? ?
x7 x6
? ?
a0 b0
@
R
@
x0
? ?
a1 b0
@
R
@
x1
? ?
a2 b0
@
R
@
x2
? ?
a3 b0
@
R
@
x3
HA
x5
? ?
?
?
x4
Dupa cum se vede, complexitatea spatiu creste rapid odata cu numarul de biti ai unui
numar.
De aceea, practic se folosesc alti algoritmi de multiplicare, bazati pe adunari si deplasari (nmultiri cu puteri ale lui 2).
Problemele de sincronizare care apar fac nsa ca aceste circuite sa nu fie de tipul 0DS.
CAPITOLUL 5. SISTEME 0 DS
90
5.10
Am vazut ca pentru orice functie booleana de n variabile se poate construi cel putin un
circuit. In general circuitele generate erau cladite pe doua tipuri de structuri:
recursiva, bazata pe notiunea de multiplexor M U Xn ;
structura simbolica a unui sir de m = 2n biti, ale carui elemente sunt selectate la
iesirea dintr-un decodificator.
O astfel de solutie este recomandata numai daca sirul binar selectat la iesirea din
decodificator este aleator (nu are o structura predefinita).
Daca sirul binar prezinta anumite forme fixe, atunci pot fi efectuate unele simplificari
la implementarea circuitelor corespunzatoare, ceea ce duce la scaderea complexitatii lor.
Astfel, pot fi construite circuite cu portile fixate n prealabil pe o anumita pozitie
(nchis sau deschis), faza de implementare constand doar n imbinarea lor sub forma unor
tablouri.
O astfel de constructie se numeste tablou logic programabil.
Exemplul 5.18 Unul din cele mai uzuale circuite combinationale este transcoderul care
transform
a cifrele zecimale scrise n binar, n reprezent
ari pe 7 biti (codul ASCII).
y0
y1
y2
y3
y4
y5
y6
y7
DCD4 y8
y9
y10
y11
y12
y13
y14
y15
x3 x2 x1 x0
d d
d
d d
d d
d
d
d
d d
d d
d d
d d
d
d
d d
d
d d
d d
d
d d
d d
d d
d
d
d
d d
d d
d d d
d d d
d d
AB C D E F G
x3 x2 x1 x0
d
d
d d d d
d
d
d d
d
d d
d
d
d
d d d d
d
AB C D E F G
66 66
66 66
a b c d
y0
y1
y2
y3
y4
y5
y6
y7
DCD4 y8
y9
y10
y11
y12
y13
y14
y15
(a)
a b c d
(b)
91
P
- PP
P
- PP
X X
- X
X
- XX
d t
PP
P
PP
d t
P
XXX
d t
XXX
d t
d d
d
d
d d
d
d
d-
Tablou AN D
d
d
d
d
d
d
Tablou OR
d
d
?
ab
d
?
A = ab
B =ab
C =ab
D=a
E=b
F =c
G=d
CAPITOLUL 5. SISTEME 0 DS
92
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
Evident, P LA-ul de sus nu este cel mai simplu circuit de implementare. Mult mai
simplu este decodificatorul (cu numai 11 porti)
a
b
c
d
P
- PP
P
- PP
X
- XX
X X
- X
d s
d s
d s
d s
PP
P
PP
P
XXX
XXX
s
s
s
s-
s
s
s
d
d
? ? ? ?
? ?
?
?
?
?
93
Definitia 5.7 Un P LA standard P LAn,p,m este un circuit digital format din 4 nivele:
1. Nivelul de intrare, compus din n decodificatori elementari (EDCD);
2. Un decodificator programabil format din p 2n porti AN D (sau N AN D, daca
se folosesc regulile De Morgan); fiecare intrare poate fi conectat
a sau nu la iesirea
corespunzatoare a primului nivel; deci maxim p clase pot fi decodificate la intrarea
X = xn1 . . . x0 .
3. Un codificator programabil format din m p porti OR (sau N AN D, dac
a se folosesc regulile De Morgan); fiecare intrare poate fi conectat
a sau nu la iesirea corespunzatoare de la al doilea nivel, fiecare functie ym1 , . . . , y0 put
and fi implementata
folosind unul sau mai multi factori decodificati la al doilea nivel;
4. Nivelul de iesire, format din m circuite EM U X (sau XOR - uri cu o intrare conectat
a la 0 sau 1), cu scopul de a da forma functiei complementat
a sau nu.
Deci, P LA este un circuit care ncepe si se termina cu cele mai simple circuite functionale
(EDCD respectiv EM U X) si contine doua tablouri programabile (numite tablou AN D
respectiv tablou OR).
Un P LA nu este un circuit optim din punct de vedere al complexitatii.
Avantajul sau major consta n posibilitatea de a lucra cu tablouri prefabricate, pe
care apoi le poate mbina cu EDCD-uri pentru intrari, EM U X-uri pentru iesiri.
Daca tabloul OR este inclus ntr-un ROM (componenta a unui codificator standard),
atunci P LA-ul se numeste de obicei P ROM (Programmed ROM ).
CAPITOLUL 5. SISTEME 0 DS
94
5.11
Unitatea aritmetic
a si logic
a
Toate circuitele prezentate pana acum aveau asociate cate o singura functie (aritmetica,
de selectie sau de comparatie).
Vom ncheia prezentarea sistemelor 0 DS construind un circuit care poate realiza
mai multe functii, selectate pe baza unui cod de selectie.
Numele sub care este cunoscut acest circuit este unitatea aritmetic
a si logic
a (ALU ).
Vom considera o unitate relativ simpla cu numai 8 functii. In cadrul ei vor exista mai
multe tipuri de conexiuni:
Doua intrari de n biti fiecare, pentru operanzii S (stang) si D (drept), codificati
Sn1 , . . . , S0 respectiv Dn1 , . . . , D0 ;
O intrare F de trei biti (F2 , F1 , F0 ) pentru specificarea functiei printr-un cod;
O iesire R = (Rn1 , . . . , R0 ) pentru rezultat;
O iesire pentru indicatori (flags) - biti cu diverse semnificatii: CARRY, OV F L,
ZERO, SGN, ODD.
Sn1
...
S0 Dn1
F2
F1
F0
...
D0
?
-
ALU
?
SGN
s
?
Rn1
...
CARRY
OV F L
ZERO
s ?
?
R0
ODD
SI LOGICA
95
Structura interna a ALU consta n acest caz din n componente (felii), cate una
pentru fiecare intrare Si , Di , un circuit CLC si cateva porti suplimentare.
Forma unei astfel de componente este data de Figura:
Di
Si
F2
F1
``
-`
d- 0 0
6
0
s
s? ?? ?
-x10 1 2 3
-x0 M U X2
Ci
s
s
s
s
?
? ? ? ? ? 6 ? ?
Si1
s- Gi s- Pi
s s s?
?
?
?? ?
? ?
F2
F1
F0
2 7
- x2
- x1
- x0
5 6 3
M U X3
y
?
Ri
M U X2 selecteaza drept al doilea operand valoarea din Di , complementul ei la 1
(pentru scadere), sau valoarea 0 00 (pentru incrementare) (C0 de la intrarea lui CL
si o poarta pentru generarea diferitilor flag);
Portile AN D, OR si primul XOR realizeaza functiile logice si genereaza semnale
pentru functiile aritmetice (Gi , Pi pentru CL si suma dintre Si si Di );
Al doilea XOR realizeaza suma semnalelor de transport generate de CL, completand
operatiile aritmetice;
M U X3 selecteaza conform codului F functia realizata de ALU ;
Intrarea Si1 este primita de la componenta (felia) din dreapta, pentru realizarea
deplasarii;
CAPITOLUL 5. SISTEME 0 DS
96
5.12
Exercitii
5.12. EXERCIT
II
97
x2
HA
x1
x0
- ?
?
?
FA
?
HA
? ?
?
98
CAPITOLUL 5. SISTEME 0 DS
Capitolul 6
Sisteme 1 DS (Memorii)
6.1
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 definit prin stare.
Starea unui circuit depinde numai partial de semnalul de intrare, fapt care va conduce
la o independenta partiala a iesirii fata de configuratia de intrare.
Evolutia iesirilor circuitului ramane binenteles sub controlul intrarilor, dar starile
ofera o autonomie partiala.
Alta caracteristica a sistemelor din 1 DS consta n posibilitatea de a putea pastra
informatia de intrare o perioada determinata de timp.
Aceasta proprietate este specifica memoriilor.
Informatia memorata este pusa la dispozitia diverselor circuite n anumite faze de
lucru. Pentru aceasta apare necesitatea unei sincronizari a operatiilor n desfasurare,
pentru ca acestea sa poata conlucra corect si eficient.
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
definirea unor notiuni temporale cum ar fi moment actual, tact, istoric, dezvoltare ulterioar
a etc.
Principalele circuite cu un ciclu intern sunt:
z
avor elementar: circuit format din doua cicluri cuplate la doua porti de intrare;
flip - flop master - slave: extensie seriala formata din doua zavoare elementare;
random access memory (RAM ): extensie paralela formata din n zavoare elementare
accesate printr-un DM U Xn si un M U Xn ;
99
100
registrul: extensie serial - paralela formata prin legarea n paralel de flip - flopuri
master - slave.
6.2
Exista doua tipuri de cicluri care nchid un circuit combinational logic; numai unul din
ele este util n constructia circuitelor digitale, anume cel care genereaza o stare stabila;
celalalt circuit genereaza o stare instabila la iesire si poate fi folosit la construirea ceasului.
Diferenta dintre ele poate fi reliefata prin urmatorul exemplu:
Exemplul 6.1 Ciclul din Figura (a) este nchis conect
and iesirea y0 a unui EDCD la
intrarea x0 .
S
a presupunem ca y0 = 0 = x0 .
La iesire semnalul devine 1, apoi 0 etc; astfel, cele dou
a iesiri ale decodificatorului
sunt instabile, comutand de pe 0 pe 1 si invers.
Momentul de schimbare a valorii de iesire (din 0 n 1 si invers) defineste frecventa
circuitului si se numeste tact.
6
EDCD
EDCD
P
PP
- PP
d s-P
d6 x0
y0
y1
?
f
(a)
P
PP
? - PP
d s-P
d
y1
x0
y0
?
f
(b)
101
C
?? 6
d
o ?
o 6
C
C
Cd
o 6
o ?
C
C
Cd
? o-
o
6
Dac
a la intrare apare comanda C = 0, atunci ciclul este deschis, adic
a fluxul 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 fi utilizat practic, un circuit trebuie sa treaca printr-un numar par
de complementari pentru toate combinatiile binare aplicate la intrare. Altfel, pot exista
combinatii pentru care circuitul se destabilizeaza.
Schimbarea starii unui circuit nu este instantanee, ea depinzand de diverse caracteristici fizice ale circuitului.
Vom nota cu tpHL intervalul de timp n care un circuit comuta de la starea 1 la starea
0, si cu tpLH intervalul de timp de trecere de la starea 0 la starea 1.
Ambele valori sunt numere nenegative si considerate constante pentru un circuit.
6
6
t0 t0 + tpLH
(a)
t1
@
@
t1 + tpHL
t1 + tpHL
t0
- t
(b)
102
6.3
Z
avoare elementare
Cel mai simplu circuit stabil fara nici o inversiune si cu o singura intrare este cel din
Figurile (a) si (b):
0 0
0 0
(a)
?? 6
s ?
6
? ?
s ?
(b)
Primul circuit poate fi comandat sa comute numai n starea 0, iar al doilea numai n
starea 1.
Intr-adevar, poarta AN D cu valoarea 0 10 la intrare are iesire stabila atat n starea 0
cat si n starea 1.
Starea poate fi schimbata din 1 n 0 aplicand 0 00 la intrare.
Timpul minim de trecere n starea 0 este tpHL (timpul de propagare al semnalului prin
ciclu).
Dupa acest interval de timp, indiferent de valoarea semnalului de intrare (0 10 sau 0 00 ),
circuitul (a) ramane stabil n starea 0 aceasta fiind si valoarea de iesire.
Spunem ca circuitul este activ la frecvent
a joas
a.
La circuitul (b), semnalul inactiv de intrare este 0 00 ; circuitul poate trece din starea 0
n starea 1 prin aplicarea la intrare a valorii 0 10 ntr-un interval de timp cel putin egal cu
tpLH . Dupa aceea, starea ramane 1 indiferent de intrare.
Spunem ca (b) este activ la frecvent
a nalt
a.
Ambele circuite zavorasc n ele semnalul aplicat la intrare: 0 00 pentru circuitul (a), 0 10
pentru circuitul (b).
Cele doua circuite sunt combinate n circuitul (c).
- R
6 ??
S
?
? ?
s
Q
?
(c)
S
]
J
??
??
J
d
d
J
J s
s-
?
?
Q
(d)
R
]
J
J
? ?
? ?
J
d
d
J
s -
J s
?
?
Q
(e)
6.3. ZAVOARE
ELEMENTARE
103
Acest z
avor elementar eterogen are doua intrari: una activa la frecventa joasa (R) pentru
a reseta circuitul n starea 0, si alta activa la frecventa nalta (S) pentru a seta circuitul
n starea 1.
Valoarea 0 00 trebuie sa ramana la intrarea R cel putin 2tpHL pentru a fi asigurata
comutarea; din acelasi motiv, valoarea 0 10 va ramane la intrarea S cel putin 2tpLH unitati
de timp.
Exista urmatoarele posibilitati de functionare (notam cu Qn starea/iesirea la tactul n):
S = 0, R = 0: atunci circuitul ramane n starea n care a fost (Qn+1 = Qn );
S = 1, R = 0: are loc o setare a circuitului Qn+1 = 1 (indiferent cat a fost Qn ).
S = 0, R = 1: circuitul este resetat se revine la starea Qn+1 = 0.
De remarcat ca varianta R = 1, S = 1 nu este acceptata, starea Qn+1 neputand fi
nedeterminata.
O reprezentare a functionarii circuitului este data de graful:
S = 1
- S =0
S=0 0
1
?
?
R=0
R = 1
R = 0
Fiind un circuit de tipul 1 DS, ecuatia sa va fi exprimata sub o forma recursiva:
Q = S + RQ
Aplicand regulile lui De Morgan acestei ecuatii se vor obtine circuite cu structuri
simetrice:
- transformarea portii OR conduce la circuitul (d), construit numai cu porti N AN D;
- transformarea portii AN D conduce la circuitul (e), construit numai cu porti N OR.
In aplicatii se gasesc de obicei numai aceste ultime doua variante.
Punctele slabe ale zavorului elementar sunt legate de necesitatea de a complementa
intrari (la variantele (c) si (d)) sau de inversare a iesirilor (la varianta (e)).
De asemenea, atunci cand se solicita schimbarea starii (fara a se preciza valoarea ei),
nu stim ce intrare sa actionam: setare sau resetare.
104
6.3.1
Z
avoare elementare cu ceas
CK
S
??
d
- R
??
d
)
:
}
Z
Z
> ??
??
Z
Z
d
d
Z
Z s
s-
?
?
(a)
CK R
RSL
Q
Q
?
(b)
Cele doua intrari sunt pentru setare (S) si resetare (R), iar ceasul este actionat
actionand 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 tpLH .
Spunem n acest caz ca nivelul activ al ceasului este la frecventa nalta (high level).
Pentru resetare, procedura este analoga.
De remarcat ca pentru nivelul activ al lui CK zavorul este transparent, adica orice
modificare a intrarilor S, R modifica 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 diferentierea dintre cum se realizeaza schimbarea starii circuitului si c
and are loc aceasta schimbare.
Zavorul elementar cu ceas rezolva o parte din problemele ridicate anterior si permite
un control mai strict asupra actiunii de memorare a informatiei.
Totusi o problema importanta este aceea ca un RSL poate comuta de mai multe ori
n perioada cand ceasul este setat pe 0 10 .
In general aplicatiile cer schimbarea starii la un anumit moment, pe care l semnaleaza
prin CK. Ori un RSL permite doar un interval de transparenta, nu si o mentinere a starii
pe toata durata acestui interval.
6.3. ZAVOARE
ELEMENTARE
6.3.2
105
Z
avorul de date
PP
Pd
?
?
-
CK
?
RSL
Q
?
CK
DL
Q
(a)
Q
(b)
Iesirea unui DL urmeaza permanent intrarea D (deci circuitul beneficiaza de o autonomie redusa).
Iesirea este sincronizata cu ceasul numai daca pe nivelul activ al lui CK intrarea D
este stabila.
O varianta de constructie a zavorului de date fara nici un invertor este:
D
s
CK
??
d
??
6
d
s
?? @
??
I
@
@
d
d
s @ s
?
?
106
6.4
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 flip - flop, care comuta sincronizat
cu arcul (n sus sau n jos) semnalului dat de ceas.
S
CK
s
?
C
C
Cd
?
?
?
CK
nivel activ
?
RSL
?
?
?
CK
(b)
Q
CK
RSF F
RSL
Q
(a)
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 fie transparenta.
In prima faza (nivelul superior al lui CK), primul zavor (master) comuta n conformitate 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 modificata numai dupa ce a cazut tranzitia intrarii
CK.
Vom spune ca circuitul RS master - slave comuta flip - flop conform cu arcul n jos
al lui CK.
Pe o structura master - slave vom putea deci controla totdeauna momentele cand
poate fi schimbata starea sistemului.
107
6.4.1
Flip - flop cu nt
arziere
P
s- PP
d
?
?
CK
CK
RSF F
Q
?
?
-
CK
DF F
Q
?
?
?
D
Q
(a)
Q
(b)
(c)
DF F este unul din cele mai importante circuite construite pana acum, n special
datorita numeroaselor aplicatii.
108
x - x
s - z
y - y FA
- cin
cout 6
DF F
D
CK
?
CK
6.5
109
Memoria RAM
Extensia paralela a unui 1 DS genereaza una din cele mai importante circuite din
sistemele digitale: random access memory (sau pe scurt memoria RAM ).
Fiind unul din cele mai simple circuite, el poate fi construit usor pe dimensiuni mari.
Definitia 6.1 O memorie RAMm de m biti este o colectie liniar
a de m = 2n DL-uri cu
date de intrare comune, fiecare primind un semnal de ceas distribuit de un DM U Xn si
fiind citite de un M U Xn . Codul de selectie an1 , . . . , a0 este comun pentru DM U X si
M U X.
Structura asociata acestei definitii este reprezentata mai jos, unde W E semnifica capabil
de scriere si este un semnal activ inferior care permite operatia de scriere n celula de
memorie selectata de adresa an1 , . . . , a0 .
Am notat de asemenea cu DIN magistrala datelor de intrare, si cu DOU T iesirea din
circuit.
ym1
WE -
DM U Xn
y1
y0
CK
an1 , . . . , a0
-6
CK
DL
DOU T
?
M U Xn
i0
i1
im1
DL
Q
s
?
s DIN
?
CK
...
DL
Q
?
?
?
110
6.6
Registri
6.6.1
Registrul serial
-D
-S
-... - S
- OU T
?
CK
RSF F
DF F
Q
-R
SRn
RSF F
- IN
-... -R
OU T
(b)
CK
CK
CK
6
s
6
s
CK
-...
-6
(a)
Definitia 6.2 Un registru serial SRn de n biti se defineste recursiv astfel:
(i) SR1 este un DF F ;
(ii) SRn se obtine prin extensia serial
a a unui SRn1 cu un SRF F .
Este evident ca SRn introduce o ntarziere de n tacti ntre intrare si iesire.
Un bit care intra ntr-un SRn la tactul i, va iesi din registru la tactul n + i, fiecare
tact permitand trecerea acestei informatii de la un flip-flop la urmatorul.
Din acest motiv, registrii seriali sunt folositi cu precadere n constructia liniilor controlate de ntarziere.
Rolul ceasului este de a sincroniza componentele registrului.
6.6. REGISTRI
6.6.2
111
xn2
x0
X
?
?
s
?
CK
DF F
Q
CK
D
...
DF F
Q
yn1
yn2
s CK
?
...
H
H n
?
CK
CK -
DF F
Rn
H
H n
?
y0
(a)
(b)
Mai multi registri paraleli pot fi legati n serie, obtinandu-se un registru serial - paralel
Rnm .
Definitia sa recursiva este:
Definitia 6.4 Un registru serial - paralel SP Rnm se obtine recursiv astfel:
(i) SP R1m este registrul Rm ;
(ii) SP Rnm se obtine prin extensia serial
a a unui SP R(n1)m cu un Rm .
Structura si simbolul logic al unui astfel de registru sunt:
IN An
CK
Rm
s6
A-
Rm
6
s
A- . . . A-
- ...
(a)
Rm
-6
A- OU T
IN An
CK
SP Rnm
-6
(b)
A- OU T
nA
112
6.7
Exercitii
1. Fiind date doua numere pe n biti (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= (Z2 , , ). Fiind fixat polinomul
a(X) = a0 a1 X a2 X 2 . . . an X n Z2 [X]
sa se construiasca un circuit de nmultire cu a(X) n Z.
Detaliind, sa se construiasca un circuit care sa primeasca la intrare coeficientii unui
polinom b(X) Z2 [X] si sa scoata coeficientii polinomului a(X) b(X).
3. Sa se construiasca un circuit de mpartire la un polinom dat
a(X) = a0 a1 X a2 X 2 . . . an X n Z2 [X]
Caz particular: a(X) = X 1.
4. Se da un DF F . Sa se construiasca un circuit a carui iesire este 1 daca si numai
daca DF F schimba starea (din 0 n 1 sau din 1 n 0). De exemplul pentru intrarea
00110 iesirea va fi 00101.
5. Sa se construiasca un circuit care are iesirea 1 daca cel putin doi din ultimii trei
biti de intrare sunt 1. De exemplu, pentru intrarea 10011010011 iesirea va fi
00001110001.
Capitolul 7
Sisteme 2 DS (Automate)
Urmatorul pas n constructia 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 evolutie a spatiului starilor partial independenta de dinamica
intrarii.
Vom lua n considerare numai circuitele sincrone: circuite n care orice ciclu contine
cel putin un registru.
7.1
Definitii de baz
a
113
114
La fiecare tact, starea automatului comuta si iesirea ia valoarea conform cu noua stare (si
valoarea curenta de intrare n structura Mealy).
Definitia 7.2 Un automat cu ntarziere (Mealy sau Moore) este un automat av
and la
iesire valorile generate de un registru (cu nt
arzieri); deci valoarea curent
a de la iesire
corespunde starii interne anterioare a automatului.
Teorema 7.1 Relatia de timp dintre valorile de intrare si iesire poate cuprinde urm
atoarele forme:
1. Pentru automatul Mealy, yt = (qt , xt );
2. Pentru automatul Mealy cu nt
arziere, yt = (qt1 , xt1 );
3. Pentru automatul Moore, yt = (qt ) = ((qt1 , xt1 ));
4. Pentru automatul Moore cu nt
arziere, yt = (qt1 ) = ((qt2 , xt2 )).
Demonstratia este evidenta si pleaca de la definitie.
Din aceasta teorema rezulta ca avem la dispozitie automate cu diverse faze de reactie
la variatiile intrarii.
Deoarece n toate implementarile cunoscute multimea Q a starilor este finita, vom
folosi urmatoarea varianta de automat:
Definitia 7.3 Un automat finit este un automat n care Q este finit
a iar accepta o
definitie nerecursiva.
Este interesant, dar aceasta definitie conduce la o structura mai complexa pentru automatele finite, decat structura generala a automatelor.
In continuare vom folosi numai automate Mealy (se poate demonstra ca abstractie
facand eventual de primul caracter de iesire cele doua tipuri de automate sunt echivalente).
Automatele pot fi 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 X Y n felul urmator:
a/x
d(q, a) = p, (q, a) = x
- p
7.1. DEFINIT
II DE BAZA
115
Marimea si complexitatea unui automat sunt direct proportionale cu dimensiunile multimilor 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
T
??
CLC
?
CK
DF F
Q
s ?
unde exista un bit de intrare T , un registru de un bit (de obicei DF F ) pentru stocarea
unei stari de un bit, si un circuit combinational logic CLC pentru calculul functiei .
Exemplul 7.1 Un DF F poate fi exprimat ca un automat cu dou
a st
ari (CLC se reduce
la functia identica). Formal Q = X = Y = {0, 1}, iar functiile , : {0, 1}2 {0, 1}
sunt definite prin tabelele de valori
0 1
0 1
0 0 1
0 0 0
1 0 1
1 1 1
Graful de functionare al unui DF F este
1/0
0/0 ?- 0
0/1
1 ?1/1
116
?Q
Q
s -D
DF F
-D
6
CK
DF F
Q
CK
6
s
6
?
-Y
CK
0/0 - 01 -?0/0
00
k
Q
6Q 0/0
Q 1/0
1/0
0/1 Q
QQ
?
Q
+
1/1 ?- 11
10
1/0
-60/0
"!
6
00
1/0
0/1
Q
X
#
?
61/1
"!
11
-Y =Q
DF F
-D
CK
6
-
Dac
a se renoteaza starea 00 cu 0 si 11 cu 1, se obtine un DF F (figura din dreapta).
Deci circuitul din acest exemplu poate fi nlocuit cu un flip-flop de date.
2
7.2
117
Flip - Flopuri
7.2.1
Daca drept circuit logic combinational folosim o poarta XOR se obtine circuitul (a)
numit T flip-flop (T F F pe scurt) avand notatia (b):
T
? ? 6
TFF
CK
CK
DF F
(b)
s ?
Q+
(a)
0 1
0 0 0
1 1 1
1 ?0/1
118
CK
...
...
Q Q -
TFF
-6
CK
7.2.2
Sa consideram alt automat, cu doua intrari notate J si K, numit JK flip flop (JKF F ):
J
K
6
??
??
c
c
?- ?
??
d
?
6
?
CK
s
+?
s ?+
CK
Q
Q
(a)
Un JKF F are Q = Y = {0, 1}, X = {0, 1}2 si
00 01 10 11
0 0 0 1 1
1 1 0 1 0
JKF F
CK
D
DF F
Q
Q
(b)
00 01 10 11
0 0 0 0 0
1 1 1 1 1
10/0 11/0-
- 00/1
00/0
0
1
6
?
01/0
10/1
01/1 11/1
119
(Q, JK) = Q
s
?
-CKJ JKF F K
6
Q
CK s
s ?
6
?
-CKJ JKF F K
6
Q
-
s ?
A
B
Pentru intrarea constanta J = 1, iesirea va fi 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 segmentarea unui tact n cicluri de 1/3 (33, 333%) si 2/3 (66, 667%).
120
7.3
Num
ar
atori (counteri)
Multe circuite digitale folosite n extrem de numeroase aplicatii, necesita numarari (nainte
si napoi).
De aceea s-au dezvoltat diverse modalitati 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 constructie pleaca de la circuitul T F F : stim ca un astfel de circuit poate
numara modulo 2, deci cum am putea sa legam n T flip - flopuri Tn1 , . . . , T0 pentru a
numara modulo 2n ?
O idee este urmatoarea: circuitele vor fi asezate astfel ca Ti (1 i n 1) sa comute
doar daca Ti1 , . . . , T0 sunt simultan n starea 1; n plus, T0 comuta la fiecare pas.
Pentru a detecta aceste conditii, pentru fiecare i = 0, 1, . . . , n 1 se va asocia un T F F
Ti cu o poarta AN Di+1 , conform figurii urmatoare:
IN C0
CK
s
s
?
CK
T0
Q
s
?
?
s
s
6 ? ?
s
CK
T1
Q
..
.
?
?
? ?
CK
Tn1
Q
?
...
s
?
6 ???
s
- Q0
- Q1
?
6 ????
s
- Qn1
? -
IN Cn
ATORI
7.3. NUMAR
(COUNTERI)
121
CK
s
s
?
CK
s
6
??
T0
Q
?
?
? ?
s
?
- Q+
0
6 ???
CK
T1
Q
- Q+
1
? -IN C
2
+
Dac
a not
am cu X intrarea n circuit, cu T0 , T1 intr
arile n cele dou
a T F F si cu Q+
0 , Q1
iesirile din cele doua T F F , ecuatiile de functionare sunt
T0 = X,
T1 = Q+
0 X
iar iesirile
Q+
0 = Q0 X,
+
Q+
1 = Q1 (Q0 X),
+
IN C2 = X Q+
0 Q1
122
?
?
CK
?
CK
IN C0
CK
IN Cn1
Tn1
COU N Tn1
...
Qn2
s
?? ??
?
IN Cn
?
?
Qn1
Q0
IN C0
...
Qn2
Q0
Acest circuit este rapid, dar dimensiunile sale cresc mult odata cu n: la fiecare pas se
adauga un T flip - flop si un sumator al carui numar de intrari depinde de n.
Se pot da si alte solutii sincrone care sa pastreze o crestere rezonabila a dimensiunilor,
dar viteza de lucru va fi mai mica.
Daca toate intrarile n portile AN D sunt din Q (n loc de Q) se obtine un numarator
binar descrescator.
Exemplul 7.4 Sa construim un num
ar
ator zecimal.
0 0
T F F0
CK
T
Q
?
?
s- CK
T F F1
-
?? 6
s
?
T
Q
?
?
s- CK
T F F2
?
s
6 ??
T
Q
s
- Q+
1
6 ??? 6 ? ?
s
?
?
- Q+
0
- Q+
2
s- CK K JKF F J
Q
s
CK
- Q+
3
ATORI
7.3. NUMAR
(COUNTERI)
123
Cum reprezentarea cifrelor 0, 1, . . . , 9 se poate realiza codificat pe patru biti (de la 0000
la 1001), aceasta va necesita doar patru circuite de tip T F F sau JKF F .
Pentru usurinta, n structura reprezentat
a anterior s-au folosit trei circuite T F F si
un JKF F .
Binenteles, este posibila o constructie n care toate cele patru module s
a fie JKF F ;
n acest caz, la primele trei module JKF F se va folosi aceeasi valoare de intrare pentru
J si K).
Ecuatiile counterului zecimal sunt:
T0 = 0 10 ,
+
T1 = Q+
0 (Q3 ) ,
Q+
0 = Q0 ,
Q+
1 = Q1 T0 ,
+
T2 = Q+
1 Q0 ,
Q+
2 = Q2 T2 ,
+
+
J = Q+
0 Q1 Q2 ,
+
K = Q+
0 Q3
Q+
3 = (Q3 K) (Q3 J)
L
as
am ca exercitiu verificarea ca acesta este un counter pe patru biti n care, dup
a valoarea
1001 (corespunzatoare cifrei 9) urmeaz
a 0000.
124
7.4
Stive
Inafara memoriilor prezentate pana acum (ROM, RAM , registri), o memorie frecvent
folosita este cea de tip stiva (sau LIF O).
Exista multe solutii practice pentru implementarea acestui gen de memorie.
Una din cele mai simple idei foloseste un numarator up-down U D COU N Tn si o
memorie RAM .
C1
-IN C0
C0
s U/D
?
CK
s CK
U D COU N Tn
WE
IN - DIN
Adresa
RAM
CK
DOU T
?
- OU T
7.5
7.5.1
125
Circuite aritmetice
Sumator serial
Pentru sumatorii de n biti se poate construi n acest moment o alta versiune, care uneori
poate fi mai avantajoasa din punct de vedere al dimensiunii.
Astfel, folosind un automat, putem stoca cei doi operanzi n registri seriali (si nu n
registri paraleli, cum s-au folosit n constructia din Capitolul 6).
- DIN
SRn
DOU T
CK
6
CK s - DIN
SRn
CK
Q
DOU T
DF F
DOU T
D ?
CK
6
s
?
-6
CK
-A
S -B F A
-C
C+6
Sumator
SRn
DIN
Acest sumator serial contine 3 registri (doi pentru operanzi si unul pentru rezultat) si
un automat de nsumare.
Acesta este un automat cu doua stari, bazat pe un DF F legat printr-un ciclu cu un
sumator F A.
Starea curenta retine transportul sumei ciclului precedent. Intrarile A si B primesc
sincronizat la acelasi tact bitii de pe aceeasi pozitie din cei doi registri seriali care
contin operanzii.
Automatul este initial n starea 0, ceea ce semnifica C+ = 0.
Iesirea S este stocata bit cu bit timp de n tacti de al treilea registru.
Rezultatul final este dat de al treilea registru serial si de starea ramasa n DF F .
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
#
- 10/0
11/0
00/0
01/1 ?- 0
10/1
"!
7.5.2
01/0
?11/1
"!
00/1
Este posibil ca timpul de executie al circuitului anterior sa fie considerat prea mare (datorita extensiei seriale); atunci se poate face o combinatie ntre extensia seriala si cea
paralela.
Un astfel de circuit este de exemplu:
H
Hm
?
H
Hm
?
DIN
CK
DIN
SP Rnm
- CK
DOU T
a
am
SP Rnm
- CK
6
-
?
s -
?
?
CK
B C
0
ADDm
DF F
Q
Cm
DOU T
a
am
H
Hm
?
DIN
SP Rnm
- CK DOU T
H
H
?m
Aici se folosesc trei registri serial - paraleli SP Rnm , un sumator de m biti ADDm si
un registru cu doua stari (de exemplu un DF F ).
Intrarile si iesirile circuitului sunt secvente de m biti.
Circuitul realizeaza suma a doua numere de n m biti n n tacti.
7.5.3
127
Sumatoare - prefix
Automatele construite pana acum au fost foarte simple, toate avand numai doua stari.
Sa marim puterea acestor automate, conservand simplitatea functiei de tranzitie, dar
marind numarul starilor.
Multe aplicatii solicita circuite cu functie si structura de acumulator, adica sisteme
capabile sa adune mai multe numere si sa returneze n final suma lor sau toate sumele
lor partiale (prefixe).
Astfel, sa consideram p numere x1 , . . . , xp . Sumele prefix sunt
y1 = x1
y2 = x1 + x2 = y1 + x2
y3 = x1 + x2 + x3 = y2 + x3
...
yp = x1 + x2 + . . . + xp = yp1 + xp
(n mod similar se poate defini orice pref ix, nlocuind adunarea + cu un operator
arbitrar ).
Vom prezenta aici un exemplu de automat aritmetic care sa genereze la fiecare tact
cate un prefix (ncepand cu y1 ).
-IN
6 ma
aa
an
? ?
am+n1 . . . a0
a
am + n
bm+n1 . . . b0
ADDm+n
sm+n1 . . . s0
H
Hm+n
?
Rm+n
CK
6
CK
CK
a
am+n
s
?
OU T
Valoarea initiala din registrul paralel Rm+n este 0.
Automatul are 2m+n stari si calculeaza sumele partiale pentru p 2m+1 1 numere
de cate n biti.
La fiecare tact se introduce un numar format din n biti, iar pe cele m pozitii suplimentare din stanga vor intra permanent 0 00 .
128
0 0 x
6
6 6 ? ? ?
a2 a1 a0
? ? ?
ADD3
b2 b1 b0
CK
6
? ? ?
R3
CK
CK
s
? ? ?
y2 y1 y0
0/001
0/010
0/011
0/100
0/101
0/110
0/111
6
6
6
6
6
6
6
6
?
?
?
?
?
?
?
?
- q1 1/010
- q2 1/011
- q3 1/100
- q4 1/101
- q5 1/110
- q6 1/111
- q7
q0 1/001
7.5.4
129
Multiplicator
7
X
xi 2i
i=1
Pi+1 := 21 Pi
(1 i 6);
unde P0 = 0, P7 = PM .
Cand x7i = 1, avem Pi := Pi + YM , iar pentru x7i = 0 va fi Pi := Pi + 0.
Deci, la fiecare pas, la produsul partial Pi se aduna nmultitorul YM sau 0.
Inmultirea cu 21 este o deplasare a lui Pi spre dreapta cu o pozitie (dupa adunare);
aceasta este echivalenta cu o mpartire la 2.
Fiecare astfel de pas (adunare + deplasare) adauga un bit la produsul partial, care
creste astfel de la 7 la 14 biti (la care se va adauga n final si bitul de semn).
Putem specifica acum principalele componente necesare n constructia multiplicatorului pe 8 biti.
Doi registri: Q (pentru nmultitor) si M (denmultit) vor contine X respectiv Y .
Un registru dublu (de 16 biti) A.Q va stoca produsele partiale Pi . De remarcat ca
acesta contine n a doua jumatate registrul nmultitor.
130
? ?
6 ?
?
c9
EM U X
c5
Q7
c0
c2
c7
6
ss-
CL
LD
SH
6
s
- CL
?- LD A[1 : 7]
- SH
Q[1 : 7]
A0
6
s
7
7EM U X
cout
A[0 : 7] ?
c11
7
A
A
7
?
M7
s
8
M [1 : 7]
- SH
6
-
M0
?
0 0
ADD7
c6
aa
a Interfete de magistrale
?
OU T
131
Operatia
controlata
Reseteaza A
Reseteaza COU N T3
Incarca A0
Incarca M din IN
Incarca Q din IN
Incarca suma n A[1 : 7]
Selectie M sau 0 00000000
Semnal
control
c7
c8
c9
c10
c11
c12
Operatia
controlata
Deplasare dreapta A.Q
Incrementare COU N T
Selectie cout sau M0 Q7 pentru A0
Anuleaza Q7
OU T A
OU T Q
In unele cazuri sunt necesare mai multe semnale de control pentru implementarea unei
operatii.
De exemplu, adunarea foloseste c6 pentru a selecta operandul drept al adunarii, c9
pentru a selecta cout care se va ncarca n A0 , c2 si c5 pentru pentru a ncarca suma
curenta de 8 biti n A[0 : 7].
Numarul semnalelor de control variaza n functie de logica utilizata pentru implementarea unitatii de control.
132
Acumulator A
00000000
01010101
01010101
00101010
01010101
01111111
00111111
00000000
00111111
00011111
00000000
00011111
00001111
01010101
01100100
00110010
01010101
10000111
01000011
00000000
01000011
00100001
10100001
Registru Q
10110011
10110011
11011001
11011001
11101100
11101100
11110110
11110110
11111011
11111011
01111101
01111101
10111110
10111110
11011111
11011110 - Produsul
final
7.5.5
133
Una din cele mai importante functii aritmetice care pot fi realizate n aceasta etapa
este produsul scalar a1 b1 + a2 b2 + . . . + an bn dintre doi vectori A = (a1 , . . . , an ) si B =
(b1 , . . . , bn ).
Circuitul numit M AC (Multiple Accumulate Circuit) poate fi realizat n mai
multe moduri posibile.
Constructia prezentata aici foloseste o extensie seriala a doua automate, numite automat acumulator si automat bits eater (m
anc
ator de biti).
Folosim si aici faptul ca multiplicarea este n esenta tot o adunare.
Deci se va construi un automat acumulator pentru a implementa n paralel ambele
operatii: nmultirea si suma produselor; n acest fel timpul de executie ramane acelasi.
Un astfel de circuit M AC este compus din:
Automat bits eater, care indica succesiv pozitiile bitilor din operandul b, care
au valoarea 1; de asemenea el precizeaza sfarsitul operatiei de nmultire; circuitul
contine:
Rn2 - registru de stare, continand operandul bi ;
nEM U X - n multiplexori elementari care lucreaza n paralel; ei fac initializarea
continutului registrului de stare (pentru LOAD2 = 1) si nchide ciclul automatului (pentru LOAD2 = 0).
P En - codificator cu prioritate care indica pozitia celui mai semnificativ bit 0 10
din registrul de stare, precum si sfarsitul nmultirii, prin iesirea Z;
DM U Xlog2 n - iesirea activa a automatului; Z = 0 corespunde celui mai semnificativ bit 0 10 din registrul de stare;
n XOR - porti folosite pentru complementarea la comanda demultiplexorului a celui mai semnificativ 0 10 din registrul de stare.
Circuit de deplasare combinational: rolul lui este de a deplasa primul operand
ai , cu un numar de pozitii indicat de automatul anterior; el este format din
Rn1 - registrul care contine operandul ai , ncarcat la comanda LOAD1 ;
SHIF Tnm - circuit combinational de deplasare spre stanga cu maxim n pozitii
(nmultire cu 2i , i = 0, 1, . . . , n) pentru cuvinte de n biti.
R2n - registru de regularizare a trecerii (pipeline register).
134
s?
LOAD1
H
Hn
?
1
Rn
LOAD2
H
H
?n
6
nXOR
H
H
?n
2
Rn
a
an
-
a
an
s
?
6
a
a 2n
?
R2n
a
a
H
H
n
-S0nEM U X
a
an
?
SHIF Tnm
?
P En
2n
DM U Xlog2 n
s?
6H
Hm
??
?
s- E
-6
bits eater
ADDm+2n
H
H m+2n
?
? 6
S
(m+2n)M U X2 0
S1 CLR
H
H m+2n
m+2n
H
H
?
DF F
D Q
DF F
D
SR2
H
m+2nH
Rm+2n
s
a
a
?m+2n
OU T
automat acumulator
135
136
7.6
Comportarea unui automat finit poate fi definita n mai multe moduri (grafuri, tabele de
tranzitie, scheme logice, diagrame etc).
Toate acestea necesita nsa o definire nerecursiva a functiilor si .
In aceasta sectiune vom construi o reprezentare a automatelor finite bazata pe tablouri
logic programabile (P LA).
Astfel va fi posibil sa reducem complexitatea functiilor de transfer si de iesire ale
automatelor, efectuand simplificari ale tablourilor P LA corespunzatoare.
Definitia 7.4 Un semi-automat este un triplet A1/2 = (Q, X, ) unde Q, X, au semnificatia data la definitia automatelor.
Un semi-automat este deci un automat fara functia de iesire .
X
X
(a)
(b)
?
CICLU P LA
A1/2
Q
CK -
Rn
(Q)
CK
?
-
Utilitatea acestui concept (mai apropiat de notiunea formala de automat finit) rezida din
faptul ca multe tehnici de optimizare sunt legate doar de cicluri, nu de iesiri.
Cele patru tipuri de automate pot fi definite atunci (prin semi-automate) astfel:
automatul Mealy: rezulta prin conectarea unui semi-automat cu un P LA care
determina functia din intrarea X si iesirea semi-automatului (Figura (a) de pe
pagina urmatoare);
automatul Moore: se obtine conectand la iesirea semi-automatului un P LA
(Figura (b));
automate cu nt
arzieri): se obtin conectand nca un registru R la constructiile
anterioare ((c) pentru Mealy, (d) pentru Moore).
s X
X -
?
-
(a)
CK
CK
P LA
P LA
(b)
A1/2
A1/2
X -X
s X
X -
137
CK s
CK
CK
CK s
CK
A1/2
X -X
P LA
P LA
?
(c)
CK
(d)
?
7.6.1
Automat pentru M AC
Sa construim un automat pentru functionarea circuitului multiplicator M AC (multipleaccumulate circuit) definit n paragraful anterior3 .
LOAD1
LOAD2
M AC
CLR
IN T ERF ACE
EN D
6
?
?
?
3
OU T
IN
S
I
W
A
B
C
AF
E-
Evident, n loc de M AC se poate folosi un automat pentru realizarea oricarui grup de operatii
aritmetice.
138
Aici M AC este conectat la o interfata sincrona (IN T ERF ACE), ntregul sistem fiind
controlat de un automat finit F A.
Acest automat are trei intrari:
1. S: este generat de IN T ERF ACE indicand ca circuitul M AC a fost selectat pentru
transferul de date;
2. I: este generat de IN T ERF ACE, indicand sensul de transfer al datelor: daca I = 1
atunci transferul se face de la IN T ERF ACE spre M AC; altfel, n sens contrar;
3. E: este generat de M AC semnalizand sfarsitul operatiei de nmultire.
si patru iesiri:
1. LOAD1 : comanda ncarcarea primului operand primit sincron la intrarea IN de la
IN T ERF ACE;
2. LOAD2 : comanda ncarcarea n mod similar a celui de-al doilea operand, si porneste
operatia;
3. CLR: comanda ncarcarea valorii 0 00 n registrul de iesire din M AC (resetare);
4. W AIT : M AC este n curs de a realiza operatia, dar registrul de iesire nu contine
nca rezultatul final.
Iesirea din circuit este organizata ntr-o secventa de 4 biti, n ordinea LOAD1 , LOAD2 ,
CLR, W AIT .
In schema logica de pe pagina urmatoare este descrisa comportarea automatului ilustrata de functiile si .
Automatul F A este de tip Mealy si are 5 stari cu urmatoarele semnificatii:
q0 starea initiala, n care automatul asteapta sa fie pornit, iar pentru S = 1
ncarca primul operand;
q1 automatul a primit primul operand (ntr-un tact n care semnalul S a fost
activat; vezi dreptunghiul precedent, n care LOAD1 = 1) si asteapta al doilea
operand, care se ncarca n primul tact n care S devine activ;
q2 este starea n care se asteapta sfarsitul operatiei de nmultire (se genereaza spre
interfata semnalul de asteptare W AIT = 1);
q3 se asteapta o noua selectie; daca este selectat M AC, testeaza sensul de transfer
solicitat; daca trebuie ncarcata n M AC o noua pereche de operanzi, atunci l
ncarca pe primul si sare la starea q1 ; altfel trece n q4 ;
139
q0
000
?
XXX
0
1X
S
? XX
?
0010
? 6
1000
?
q1 001
?
XX 10
PP S X
P
?
?
0000
0100
? 6
?
q2 011 (010)
?
X
E XX
0 P
1P
P
?
?
0001
0000
?
6
?
q3 010 (011)
?
XX 10
XXXSX
?
?
XX 10
PP I X
0000
P
?
?
?
0001
1000
?
? -
q4 100
?
0010
Deci Q = {0, 1}3 (sunt necesari minim trei biti pentru a codifica cinci stari),
X = {0, 1}3 (o intrare este reprezentata de secventa EIS), Y = {0, 1}4 (secventa de patru
biti care codifica n ordine iesirile LOAD1 , LOAD2 , CLR, W AIT ).
O stare este reprezentata printr-o secventa de trei biti Q2 Q1 Q0 ; am codificat
q0 = 000, q1 = 001, q2 = 011, q3 = 010, q4 = 100
(este posibila si o inversiune de notatie ntre q2 si q3 ).
140
+ +
Functia de transfer (Q2 Q1 Q0 , EIS) = Q+
a
2 Q1 Q0 este definit
000
001
011
010
100
000
000
001
011
010
000
001
001
011
011
100
000
010
000
001
011
010
000
011
001
011
011
001
000
100
000
001
010
010
000
101
001
011
010
100
000
110
000
001
010
010
000
111 Q+
Q+
Q+
2
1
0
001 0
0
S
011 0
S
1
010 0
1
E
001 SI S SI
000 0
0
0
unde pe ultimele trei coloane s-a descris formal starea rezultata (in functie de intrare).
Putem defini acum ecuatiile care descriu semi-automatul P LA de transfer:
Q+
(Q2 se poate reduce prin minimizarea functiei booleene)
2 = Q1 Q0 SI
Q+
=
Q
Q
S
Q
Q
1 0 Q1 S
1
1 0
+
Q0 = Q2 Q1 S Q1 Q0 Q0 E Q1 Q0 SI
Deci
(Q2 Q1 Q0 , EIS) = (Q1 Q0 SI, Q1 Q0 S Q1 Q0 Q1 S, Q2 Q1 S Q1 Q0 Q0 E Q1 Q0 SI)
Similar, functia de iesire (Q2 Q1 Q0 , EIS) = (LOAD1 , LOAD2 , CLR, W AIT )
este definita prin tabelul
000
001
011
010
100
000
0010
000
0001
0000
0010
001
1000
0100
0001
0001
0010
010
0010
0000
0001
0000
0010
011
1000
0100
0001
1000
0010
100
0010
0000
0001
0000
0010
101
1000
0100
0001
0001
0010
110
0010
000
0001
0000
0010
111
1000 S 0
0100 0 S
0001 0 0
1000 SI 0
0010 0 0
S 0
0 0
0 1
0 SI
1 0
LOAD2 = Q1 Q0 S
W AIT = Q1 Q0 Q1 SI
Deci
(Q2 Q1 Q0 , EIS) = (Q2 Q1 Q0 S Q1 Q0 SI, Q1 Q0 S, Q2 Q1 Q0 S, Q1 Q0 Q1 SI)
Graful functional (unde x, y, z {0, 1}) este
xyz/0010
xy0/0000
0xy/0001
?
q0
6
6
6
xy1/1000 - q ? xy1/0100- q ? 1xy/0001- q ? x01/0001- q
1
2
3
4
?
-
xy0/0010
xy0/0000
-
6
x11/1000
?
141
Figura de mai jos descrie circuitul rezultat; cele doua P LA-uri de conjunctie (corespunzatoare functiilor de transfer si de iesire) sunt unite n unul singur (cel superior), deci
termenii comuni sunt utilizati mpreuna.
`c
-``
`c
-``
-``
`c
`c
s-``
?
`c
s-``
?
`c
s-``
?
6
6
6
6
6
6
Q
Q0
dd
d
dd
d
d d
d d
d
d
dd
d
d d
d d d
d d
d
d
d
d d
Q+
0
D
d d d
d d d d
DF F
Q
CK
6
Q1
DF F
Q
CK
Q2
DF F
Q
Q+
1
CK
s
d
d
d d d
d? ? ? ? ? ? ? ? ? ? ? ?
d
CK
7.6.2
d d d
s
+
D Q2
D
A
B
C
W
O problema des ntalnita este aceea de a recunoaste aparitia unei anumite subsecvente n
cadrul unei secvente binare.
Sa construim de exemplu un automat care sa semnaleze aparitia subsecventei 1011.
Dintr-un studiu bazat pe limbaje formale, un graf al acestui automat se poate construi
usor:
142
#
q
0/0
1/0
1
?
?
"!
"!
6
6
0/0
1/1
0/0
#
#
)
1/0
-
1/0
q0
q2
q3
"!
"!
0/0
00
01
10
11
0
00
10
00
10
1 Q+
Q+
1
0
01 0
x
01 x
x
11 x
x
x
01 x
00
01
10
11
0
0
0
0
0
1
0
0
0
1
y
0
0
0
x
(Q1 Q0 , x) = Q1 Q0 x
Pentru implementare sunt necesare doua DF F (necesare codificarii celor patru stari), un
codificator elementar (pentru variabila de intrare x) si doua P LA (care au componenta
AN D comuna).
X
X -XX
X
-X
d s?
d
d d d
d
d
d
d
d
d
6
6
6
Q
Q0 Q
DF F
D
CK
Q1
Q
Q
DF F
D
CK
d d
s
CK
d ? ? ? ?
7.7
143
Automate de control
Din exemplele precedente se ntrevede aparitia 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 pozitii principale:
In prima pozitie (X1 ) automatul de control primeste informatie despre comenzile sau
testele pe care trebuie sa le faca, printr-un cod care selecteaza secventa de control
ce va fi executata;
In a doua pozitie (X2 ), automatul de control primeste informatii prin mai multi
biti, despre efectele (feedbackuri) pe care le-a avut iesirea sa Y asupra subsistemelor
gestionate.
Marimea si complexitatea secventei de control necesita nlocuirea P LA cu un ROM , cel
putin n procesul de reprezentare si testare.
Selectie comand
a
Feedback comanda
X2 -
ROM
RI
X1
6
+
Q
?
R
Y
Comanda
? -
144
@
@
6
ROM
H
H
?m
1
n EM U X
0
S0
X1
6
0 X2
. . .-
pH
H
T EST
?
M U Xp
M OD
?
?
N EXT-
1
Deoarece secventa de comenzi poate fi initializata numai prin intermediul codului X1 ,
acest cod se poate folosi doar pentru adresarea la prima linie de comanda din ROM , cu
ajutorul unei stari prin care componenta M OD = 1.
Aceasta facilitate se realizeaza adaugand n EM U X-uri si o noua iesire spre ROM
pentru a genera semnalul M OD.
De remarcat ca pentru aceste n EM U X-uri, comanda S0 = 1 nseamna initializare,
iar S0 = 0 nseamna urmatoarea linie de comanda.
Aceasta modificare permite simplificarea liniilor din ROM , o parte din informatie fiind
transferata spre preselectia comandata de multiplexori.
A doua modificare se refera la intrarea X2 .
Deoarece bitii asociati acestei intrari sunt testati n diverse stari, M U Xp alege n
fiecare stare bitul corespunzator, folosind selectorul T EST .
Deci bitii asociati intrarii X2 sunt separati de intrarea n ROM , adaugandu-le cateva
conditii.
Astfel n loc de circa 2p biti, la intrarea n ROM se va conecta unul singur T .
Aceasta structura lucreaza la fel ca cea initiala, dar marimea ROM -ului este foarte
mult simplificata.
Lucrand cu aceasta varianta a automatului de control, se pot realiza si alte modificari.
Astfel, cea mai mare parte a secventelor generate sunt organizate ca o secvente liniare.
Deci, comenzile asociate pot fi stocate n ROM la adrese succesive (fiecare adresa din
ROM se poate obtine prin incrementarea adresei curente aflate n registrul R).
Rezulta structura reprezentata n figura urmatoare:
145
s
ROM
Y
R
3
s6
M U X2 21 X1
S1 S0 0 66
H
H2
H
Hp
6 6
? IN C
T EST
SALT
?
M OD
?
M0 M1
X2
- M U Xp
...
T- TC
::=
::=
::=
::=
::=
<Comand
a><Mod><Test><Salt>
<definit
a de structura controlat
a>
JM P |CJM P |IN IT
<definit de structura controlat
a>
<adres
a nou
a de maxim 6 simboluri>
T S1 S 0
0 0 0
1 0 0
0 0 0
1 0 1
0 1 1
1 1 1
0 0 1
1 0 1
Comanda
Urmatoarea comanda
Urmatoarea comanda
Urmatoarea comada
Salt
Initializare
Initializare
Salt
Salt
146
7.8
x(t0 )
s- P LA Transfer
6 q(t1 )
x(t1 )
s
?
s
?
s- P LA Transfer
P LA Iesire
- y(t0 )
P LA Iesire
- y(t1 )
..
.
6 q(tn )
x(tn )
s
?
s- P LA Transfer
P LA Iesire
- y(tn )
Fie un automat Mealy cu cele doua P LA-uri ale sale (de transfer si de iesire), starea
initiala q(t0 ) si secventa de intrare pentru primul ciclu de n tacti: x(t0 ), x(t1 ), . . . , x(tn ).
Circuitul combinational de sus genereaza secventa de iesire corespunzatoare
y(t0 ), y(t1 ), . . . , y(tn )
Intr-adevar, prima pereche de doua P LA-uri (Transfer si Iesire) determina prima
iesire y(t0 ) si starea urmatoare q(t1 ), care va fi utilizata de a doua pereche de P LA-uri
pentru calculul celei de-a doua iesiri si stari etc.
148
7.9
Exercitii
1. Se da automatul
6
?
HA
?
HA
c
CK
DF F
6
s
DF F
6
s
?
Q1
s
?
Q0
6
FA
TFF
s
c ?
CK
7.9. EXERCIT
II
149
FA
s
c -
6
?
J
Q
JKF F
CK
6
0
6 ?
- q1
q3
0?
-
1
1
?-
q2
0
?
?
? 6
TFF
FA
6
s
s
?
TFF
CK
s
c
?
?
150
Capitolul 8
Sisteme 3 DS sisteme (procesori)
Trecand la nivelul urmator de complexitate al circuitelor, al treilea ciclu poate fi nchis n
trei variante, n functie de cele trei tipuri de circuite prezentate anterior.
1. Cel mai simplu tip de sistem 3 DS se obtine nchizand al treilea ciclu cu un circuit
combinational (de exemplu, peste un automat sau o retea 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, definind ca principala aplicatie procesorul.
8.1
Automate JK - registri
Un automat este specific unui circuit de ordin doi, dar functia sa poate fi implementata
mai eficient folosind facilitatile oferite de sisteme cu un nivel mai nalt.
In aceasta sectiune vom nlocui registrul de stari al automatului, cu un mecanism mai
autonom: un registru de tip JK flip - flop1 .
Sa vedem cum se poate nlocui un D flip - flop (DF F ) circuit cu o singura intrare
cu un JK flip - flop (circuit cu doua intrari) si cum aceasta substitutie conduce la o
minimizare a complexitatii circuitului.
1
JK - registrul astfel construit nu este propriu-zis un registru; el este o retea de automate simplificate,
conectate n paralel.
151
152
JK =
A
A
pentru 0 A
pentru 1 A
De aici rezulta ca fiecare tabela de tranzitie care defineste o noua valoare a starii Q+
i
poaate fi translatata n doua diagrame de tranzitie: una pentru Ji , a doua pentru Ki .
Exemplul 8.1 Sa reluam de la diagrama functiei de tranzitie care descrie functia a
unui M AC (a se vedea sectiunea 7.6.1)).
000
001
011
010
100
000
000
001
011
010
000
001
001
011
011
100
000
010
000
001
011
010
000
011
001
011
011
001
000
100
000
001
010
010
000
101
001
011
010
100
000
110
000
001
010
010
000
111
001
011
010
001
000
000
000
00
0
00
00
001
001
01
0
10
00
010
000
00
0
00
00
011
001
01
0
01
00
100
000
00
0
00
00
101
001
01
0
10
00
110
000
00
0
00
00
153
K 000 001 010 011 100 101 110 111 K2+ K1+ K0+
000
001
0
0
0
0
0
0
0
0
0
0
E
011 00 00 00 00 01 01 01 01
010 0
1
0
1
0
1
0
1
S
100 1
1
1
1
1
1
1
1
1
Deci tabelele P LA de tranzitie sunt descrise de aplicatiile
J (Q2 Q1 Q0 , EIS) = (Q2 Q1 Q0 IS, Q2 Q1 Q0 S, (Q2 Q1 Q0 S)(Q2 Q1 Q0 IS))
K (Q2 Q1 Q0 , EIS) = (0 10 , Q2 Q1 Q0 S, Q2 Q1 Q0 E)
Deoarece cu trei biti am codificat numai cinci st
ari (maximul fiind opt): 000, 001, 011,
2
010, 100, expresiile pot fi simplificate :
Astfel, din
Q2 Q1 Q0 Q2 Q1 Q0 Q1 Q0 Q0
000
0
0
001
0
0
011
0
0
010
1
1
1
0
0
100
rezult
a Q2 Q1 Q0 S I = Q1 Q0 S I
si
Q2 Q1 Q0 S = Q0 S
Similar,
Q2 Q1 Q0 E = Q1 E, Q2 Q1 Q0 S I = Q1 S I,
Q2 Q1 Q0 S = Q2 Q1 S, Q2 Q1 Q0 S = Q1 Q0 S.
Deci
J (Q2 Q1 Q0 , EIS) = (Q1 Q0 I S, Q1 Q0 S, (Q2 Q1 S) (Q1 I S))
K (Q2 Q1 Q0 , EIS) = (0 10 , Q0 S, Q1 E)
Pe baza acestor ecuatii se poate construi circuitul:
154
S
I
E
`c
-``
`c
-``
-``
`c
`c
s-``
?
`c
s-``
?
`c
s-``
?
d d
d
J
J 0
Q
Q0
JKF F
Q2
CK
K 6
K 0
J
J 1
JKF F
CK
K K1
J J2
d
d d
d
d
ddd
d dd
d d
d
d d
Q1
d d d
- B
s
JKF F CK
K
Q
K 20 10
CK
??????
- A
d d
- C
d d- W
????
Intr-adev
ar, din functia de transfer
00
01
10
11
155
1 Q+
Q+
1
0
01 0
x
01 x
x
11 x
x
01 x
x
0
00
10
00
10
rezult
a imediat tabelele functiilor J si K :
J 0 1 J1 J0
00 00 01 0 x
01 1 0
x
10 0 1
x
11
K 0 1 K1 K0
00
01
1 0
x
x
10 1 0
11 01 10 x
x
d d
d
d d
d
-
d d d
d
6
6
6
Q
Q
60
Q1
Q
J0
J
JKF F
JKF F
CK
K 6
K0
J
1
CK s
K
K1
d
d
d d
d - y
??????
CK
Deci folosirea automatelor JK registri este eficient
a numai pentru tablouri aleatoare de
dimensiune mare.
Posibilitatea de minimizare a P LA-urilor este permisa de autonomia crescuta a JKF F
fata de DF F . Un DF F are doar o autonomie partiala de a sta ntr-o anumita stare, pe
cand un JKF F poate evolua n spatiul starilor.
Un DF F trebuie sa raporteze permanent la intrare care va fi urmatoarea stare (0
sau 1), pe cand un JKF F 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 JKF F sa-si cunoasca starea curenta).
156
8.2
Registri num
ar
atori
S
E
6
6
s?
6
0
1
2
3
i2
-U
M U X2
S0
6
i1
i0
SCOU N T3
-L
6
S1
Q2
CK
Q1
CK
Q0
6
6
d
d
d
d
d
d
d
d
d
d
d
? ? ? ?
s
?
?
?
?
?
B B B B B
B
B
B
B
B
Bd
Bd
Bd
Bd
Bd
s s s s s
?
?
?
?
?
B B B B B
B
B
B
B
B
Bd
Bd
Bd
Bd
Bd
d
d
d
d
d
d
d
d
d
? ? ? ?
d
d
d
d
d
d
d
d
d
? ? ? ? ? ?
A B CW
Constructia data n figura urmatoare pleac
a de la un SCOU N T3 si un M U X2 .
Multiplexorul selecteaza functia de num
arare n fiecare stare, conform cu descrierea
din schema logica.
ATORI
157
158
8.3
Cele doua sectiuni anterioare s-au referit la exemple de circuite n care al treilea ciclu se
nchide ntr-un circuit combinational.
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 contin
astfel de circuite.
Structura prezentata mai jos este folosita pentru realizarea de functii aritmetice si
logice (ALU ) cu date stocate n opt registri de cate n biti fiecare; pentru simplificarea
circuitului, nu s-au mai descris ceasurile de sincronizare; de asemenea, toate magistralele
sunt de n biti.
Vom analiza doua variante de constructie, fara si cu DF F conectat ntre CROU T -ul si
CRIN -ul circuitului ALU .
< op. drept >
?
s
?
Dest
-
REGIST RI
y
n EM U X
1
0
DIN
-6
6
ALU
Al doilea ciclu
CROU T
CRIN
s6
=
?
D
DF F
< reset > - CLR
Q
?
Al treilea ciclu
+
Circuitul contine:
REGISTRI: o grupare de 8 registri de cate n biti fiecare; la fiecare tact sunt
selectati doi din ei pentru a transmite codurile operanzilor drept respectiv stang (la
intrarea n ALU ); un al treilea registru este desemnat la fiecare tact pentru iesire, cu
codul < op drept > (pentru selectie se pot folosi doua n M U X3 , iar la destinatie
ceasul este distribuit printr-un DM U X3 ).
159
< op stang >< op drept >< f unc >< transport >< sursa >
< reset >
L0 | L1 | . . . | L7
R0 | R1 | . . . | R7
AN D | OR | XOR | ADD | SU B | IN C | SHL
CR |
DIN |
Sa presupunem ca n doua perechi de registri sunt doua numere de cate 2n biti care trebuie
adunate.
Primul numar este stocat n perechea de registri (L1, L2) (L2 contine cei mai semnificativi n biti); al doilea numar este stocat similar n (R1, R2).
Secventa de comenzi care controleaza aceasta adunare este:
L1 R1 ADD CJM P CROU T
L2 R2 ADD JM P
DOI
U N U L2 R2 ADD CR
DOI . . .
UNU
Varianta II
Aceasta varianta este un 3 DS n care ciclul se nchide printr-un DF F .
Rolul ultimului ciclu este de a reduce, simplifica si a mari viteza rutinei care realizeaza
aceeasi operatie sau alte proceduri dependente.
Diferenta din linia de comanda consta n eliminarea campului < transport > si
adaugarea la < reset > a definitiei
160
8.4
Automate stiv
a
X - DIN
X
DOU T
FA
ST IV A
...
Y
Definitia 8.1 Un automat stiva P DA (PushDown Automaton) este construit prin legarea
ntr-un ciclu a unui automat finit cu o stiv
a (memorie LIF O) (a se vedea Figura).
Formal, el este un 7-tuplu P DA = (Q, X, Y, Z, , , z0 ), unde
Q: multimea (finita a) starilor automatului;
X: alfabet finit nevid; secventa de intrare, cea stocat
a n stiv
a si cea primit
a din
stiv
a sunt elemente din X .
Y: alfabetul de iesire;
Z : multimea de comenzi catre stiv
a: {P U SH, P OP, N OP };
8.4. AUTOMATE STIVA
161
q0
?
H
0 a=$ HH 1
HH
H
-
?
?
HH
1
a=& H 0
-
HH
?
H
q2
?
?
HH
0
1
a=$ H
HH
H
?
?
HH
H
1
0
0
H1
-
T OS=ZH
a=T OS H
0
HH
HH
H
H
6
?
q4
P OP
?
EROARE
q1
?
P U SH a
-
6
?
q3
?
OK
? -
162
(q3 ) = OK,
(q4 ) = EROARE.
8.5
163
Procesorul elementar
Cel mai reprezentativ circuit din 3 DS este procesorul; el se remarca prin flexibilitate
si posibilitati functionale mult dezvoltate.
Definitia 8.2 Un procesor P este un circuit care leag
a printr-un ciclu un automat aritmetico - logic cu un automat de control.
Functia unui procesor P este specificata prin secventa de comenzi stocata n ROM .
Fiecare secventa reprezinta un microprogram si consta dintr-un sir de micro - instructiuni.
O micro - instructiune este compusa din comenzi executate de automatul aritmetico logic (ALU ), si campuri care permit selectarea urmatoarei micro - instructiuni.
Pentru a ntelege 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 secventa de control,
adica automatul de control (CROM ) asociat este un automat de initializare, fara intrarea
de initializare X1 (a se vedea circuitul CROM , sectiunea 7.7).
s
?
?
A
Rn
?
>
Al doilea ciclu
Al treilea ciclu
ADDn
@
CR
?
?
0
n M U X2
@
R @
? ?
M SB
3
S1
S0
6
6
DIN
DOU T
W RIT E
WOU T
?
WIN
READ
CROM
Un sistem simplu de P E este dat n figura de sus, unde s-a detaliat numai automatul
aritmetico - logic.
164
::=
::=
::=
::
::=
::=
::=
Exemplul 8.5 Singurul micro-program executat de procesorul elementar descris mai sus
primeste un sir de numere si genereaz
a alt sir de numere reprezent
and mediile aritmetice
ale fiec
arei perechi succesive.
Utiliz
and limbajul de micro-programare astfel definit, rezult
a urm
atorul microprogram:
165
UNU
IN
READ
CJM P
W IN
DOI
READ
CJM P
W IN
DOI
ADD
CJM P
CR
T REI
W RIT E
CJM P
W OU T
UNU
RSH0
OU T
REG
JM P
UNU
T REI
RSH1
JM P
ZERO
...
ZERO
OU T
Capitolul 9
Sisteme 4 DS
Ultimul exemplu din sectiunea 8.5 subliniaza destul de clar procesul specific unui 3 DS:
functia sistemului devine tot mai putin dependenta de structura fizica si tot mai strans
legata de o structura simbolica (de exemplu, micro-programe).
Structura fizica (bazata pe circuite) ramane simpla, pe cand cea simbolica stocata
n ROM (eventual convertit n P LA) presupune o anumita complexitate functionala.
Al patrulea ciclu creaza conditiile pentru dependenta functionala totala fata de structura simbolica.
9.1
Exista patru tipuri principale de astfel de sisteme, n functie 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 combinational de
nchidere este un ROM sau P LA, continand programe interpretate de procesor.
Programe
P ROCESOR
ROM
0DS
6
?
DAT E
ADRESE
READ
W AIT
167
? 6 6
?
CAPITOLUL 9. SISTEME 4 DS
168
RAM
1DS
6
ADRESE
?
?
DAT E
{READ,W RIT E,
? 6 6
}
-
W AIT
LIF O
6 6
2DS
6
?
DAT E
{P U SH,P OP, }
W AIT
P ROCESOR
3DS
6
?
DAT E
COM EN ZI
W AIT
6 6
?
169
Ultimele doua tipuri de extensii sunt masini n care procesul de segregare este subliniat
de structura fizica (stiva sau co-procesor); n ambele cazuri structura segregata este de
asemenea simpla.
Consecinta 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/P LA, respectiv memoria RAM .
Continutul ROM -ului este initial definit simbolic; ulterior el este convertit n structura
circuitului respectiv (ROM sau P LA).
In schimb continutul RAM - ului ramane permanent n forma simbolica, ceea ce i
confera o mai mare flexibilitate.
Aceasta este principala ratiune prin care se considera structura (b) (Computer) ca
fiind cea mai reprezentativa n 4 OS.
Computerul nu este un circuit.
El este o entitate noua, cu o definitie functionala specifica, numita uzual arhitectura
calculatorului.
In principal arhitectura calculatorului este data de limbajul masina interpretat de
procesorul care executa programele, stocat n memoria RAM .
Fiecare arhitectura poate avea mai multe structuri de calculator asociate.
De la nivelul sistemului de ordin 4, comportarea ntregului sistem poate fi controlata
n principal prin structura simbolica a programelor.
CAPITOLUL 9. SISTEME 4 DS
170
9.2
Stive organizate ca n DS
6
IN
DIN
EXTOU T
LIF On1
OU T
DOU T
EXTIN
6
s
- s -0
? -1
? -2
6
smM U X2
S1
Rm
S0
6
s
?
-
{P U SH,P OP, }
Capitolul 10
Structura unui computer la nivel de
performant
a
In arhitectura unul calculator, constructiile componentelor la nivel de registru sau procesor
se preteaza mai putin la o analiza formala (comparativ cu nivelul circuitelor, bazate pe
porti logice).
Motivul rezulta din dificultatea de a descrie precis comportarea sistemului dorit.
A spune ca trebuie construit un calculator care sa execute eficient toate programele
este o afirmatie mult prea vaga.
Drumul parcurs a fost preluarea unei structuri standard cu performante cunoscute si
modificarea ei pentru a o adapta noilor cerinte.
Criteriile de performanta ale unui calculator pot fi rezumate n urmatoarele cerinte:
Calculatorul sa fie capabil sa execute a instructiuni de tip b pe secunda.
Calculatorul sa fie capabil de a accesa c memorie sau dispozitive periferice de tip d.
Calculatorul trebuie sa fie compatibil cu calculatoare de tip e.
Costul final al sistemului sa nu depaseasca f .
171
172CAPITOLUL 10. STRUCTURA UNUI COMPUTER LA NIVEL DE PERFORMANT
A
10.1
Structuri standard
Sistemele de calcul cele mai cunoscute1 sunt calculatoarele dedicate aplicatiilor generale,
care difera ntre ele mai ales prin numarul componentelor folosite si prin gradul de autonomie.
Varietatea interconexiunilor sau structurilor de comunicatie folosite este foarte restransa.
In linii mari, sistemele de calcul utilizate sunt structurate dupa una din schemele
urmatoare:
1. Structura folosita de prima generatie de computere si de multe sisteme mici de
microprocesoare actuale este:
Unitate centrala
CP U
Memorie
Z
Z
Z
Z
Magistrale
ICN
!!
!
!!
!
!
Periferice IO
D1
D2
b
b
b
b
b
b
...
Dk
Reamintim cele mai utilizate sisteme de calcul sunt micro-controllerele (Capitolul 1).
173
Unitate centrala
CP U
Memorie principala
Memorie cache
CM
Magistrale sistem
ICN
Procesoare IO
Periferice IO
D1
IOP1
IOP2
D2
D3
...
Dk
3. O structura standard pentru un multi-procesor este descrisa mai jos (pentru doua
procesoare). Variantele anterioare sunt cazuri particulare ale acestuia.
Unitati centrale
CP U1
CP U2
Memoria principala
Memorii cache
CM1
CM2
Retea de
comutatie
M2
...
Mm
ICN
Procesoare IO
Periferice IO
M1
D1
IOP1
IOP2
...
IOPn
D2
D3
...
Dk
4. Structuri mai complexe (de exemplu retele de calculatoare) se pot obtine prin
conectarea mai multor astfel de structuri.
174CAPITOLUL 10. STRUCTURA UNUI COMPUTER LA NIVEL DE PERFORMANT
A
10.2
M
asurarea performantelor unui sistem
Majoritatea performantelor unui calculator rezulta din caracteristicile unitatii sale centrale de prelucrare (CP U ).
Viteza sa de lucru este masurata usor dar grosier prin frecventa f de ceas, data n
megaherti. Pot fi dati nsa si alti indicatori de performanta, cum ar fi:
1. Viteza medie de executie a instructiunilor (M IP S).
Este numarul mediu de tacti folositi de CP U pentru executarea unei instructiuni.
Ea este legata de timpul mediu T (n microsecunde s) necesari pentru executia
a N instructiuni, conform formulei
T =
N CP I
f
T
CP I
=
N
f
Daca f depinde n principal de tehnologia circuitului integrat, folosita pentru implementarea CP U , CP I (numarul mediu de cicluri per instructiune) depinde n primul
rand de arhitectura sistemului.
2. Pentru tE se poate da si o alta formula, considerand distributia instructiunilor de
diverse tipuri si viteze n prelucrarea unor programe standard.
Fie I1 , I2 , . . . , In un set de tipuri de instructiuni reprezentative.
Notam cu ts timpul mediu de executie (n s) al unei instructiuni de tipul Is si ps
probabilitatea de aparitie a instructiunilor de tipul Is ntr-un cod obiect standard.
Atunci timpul mediu de executare al unei instructiuni este dat de formula
tE =
n
X
pi ti
i=1
Valori pentru ti se pot obtine usor din specificatiile CP U , dar valori cat mai corecte
pentru pi pot fi obtinute numai pe cale experimentala.
3. Performante legate de memorie.
Marimea memoriei principale si a memoriei cache pot oferi indicatii (destul de vagi)
despre capacitatea sistemului.
175
10.3
Pentru a sublinia importanta modelarii analizei performantelor unui sistem de calcul, vom
detalia o aproximare bazata pe teoria cozilor. Prezentarea este pur informala, deoarece
necesita cunostinte destul de avansate de probabilitati.
Modelul coada spre deosebire de stiva este un model de tip FIFO2 .
Reprezentarea sa generala este data de figura:
Resurse
comune
6
?
Date
Coada
Server
Date
176CAPITOLUL 10. STRUCTURA UNUI COMPUTER LA NIVEL DE PERFORMANT
A
Sarcinile sunt activate sau sosesc la momente arbitrare si sunt stocate n coada, pana
ce sunt prelucrate de CP U .
Parmetrii cheie ai modelului sunt rata n 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 fractiunea 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 distributia timpului
dintre sosiri I (t): probabilitatea ca cel putin 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 distributie
este
I (t) = 1 et
Fie pS (t) probabilitatea ca serviciul solicitat de o problema sa fie realizat de CP U
ntr-un timp maxim t dupa eliminarea ei din coada.
Procesul de servire este modelat de o formula Poisson similara
pS (t) = 1 et
Pentru caracterizarea performantelor unui sistem cu o singura coada pot fi folositi diversi
parametri.
De exemplu:
Utilizarea lui , care da fractiunea medie de timp cat serverul este ocupat.
Numarul mediu de probleme aflate 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)
lQ =
1
Timpul mediu n care problemele asteapta prelucrarea precum si timpul de prelucrare; este numit timpul mediu de asteptare tQ .
177
lQ
Aceasta ecuatie se numeste ecuatia lui Little si este valabila pentru toate tipurile de
sisteme cu coada, nu numai modelul M/M/1.
Din combinarea ultimelor doua relatii se obtine
tQ =
2
( )
1
=
( )
178CAPITOLUL 10. STRUCTURA UNUI COMPUTER LA NIVEL DE PERFORMANT
A
Ei cer conducerii sa mai cumpere terminale si s
a construiasc
a o retea.
S
a 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.
Inlocuind
aceste valori n ultima ecuatie, se obtine tw = 50 minute, ceea ce confirma
estimarea salariatilor privind timpul lor mediu de acces la computer.
Directorul societatii este astfel convins c
a societatea are nevoie de terminale noi si
accept
a s
a cumpere destule astfel ca timpul de asteptare tw s
a fie redus de la 50 la 10
minute.
Apare astfel o ntrebare: Cate terminale noi va trebui s
a contin
a reteaua ?
Pentru a studia acest aspect, vom modela fiecare terminal mpreun
a cu utilizatorii sai
printr-un sistem M/M/1 independent.
Fie m numarul minim de posturi de lucru necesare pentru a reduce tw < 10, sau
echivalent tQ < 40.
Putem presupune ca venirea utilizatorilor la terminale poate fi separat
a n m cozi.
1
1
=
< 40
1
1
1
1
219
1
+
+
+
+
= 2217 +
= 2217, 211914 . . .
8 16 64 128 1024
1024
3. Vom lucra cu reprezentarea binara pe 16 biti (primul bit fiind bit de semn).
(a) 1110 = 00000000000010112 , 32600 = 01111111010110002 .
Suma bit cu bit a celor doua numere da 0111111101100011.
Pentru verificare, acest rezultat este reprezentarea binara a lui 32611 = 11 +
32600.
(b) 59910 = 00000010010101112 .
Numarul 10692 = 00101001110001002 trebuie trecut n cod complementar.
Complementand bitii si adunand apoi valoarea 1 se obtine 1101011000111100.
Adunam cele doua numere:
0000001001010111 + 1101011000111100 = 1101100010010011
Pentru verificare: rezultatul fiind negativ (bitul de semn este 1), valoarea sa
absoluta este complementul la 2; dupa ce scadem 1 si complementam bitii, se
obtine 0010011101101101 = 1009310 .
179
180
Capitolul 3:
1. Aplicam pe rand axiomele 7, 9 si 6 din Definitia algebrelor booleene si obtinem
a (a b) = (a a) (a b) = 1 (a b) = a b
A doua relatie se demonstreaza analog.
2. Cele trei axiome ale relatiei de ordine (reflexivitate, antisimetrie, tranzitivitate) se
verifica imediat. Se pot scrie echivalentele
ba
a=ab
a=a=ab=ab
Atunci a b = (a b) b = b deci a b.
3. a b
ab = b
a b = a (a b) = a (a b) = (a a) b = 0
ab=0
ab=1
ab=1
4. a b = 0
ab=0
ba=0
ba
5. Primele patru proprietati din Propozitia 3.1 se verifica prin calcul simplu.
Proprietatea 5: a b = c = a a b = a c = 0 b = a c = b = a c
Proprietatea 6: a b c = (a b) c = c c = 0
Proprietatea 7: (a b) (a c) = [(a b) (a c)] [(a b) (a c)] = [(a b)
(a c)] [(a b) (a c)] = [(a a c) (b a c)] [(a a b) (c a b)] =
(a b c) (a b c) = a [(b c) (b c)] = a (b c)
Propozitia 3.2:
(1) :
a b = (a b) (a b) = (a b) (a b) = (a b) (a b) = a b
(2) :
a b = (a b) (a b) = (a b) (a b) = a b
ab=ab=0=1
181
f0
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
Capitolul 4:
1. Notand cu || operatorul Sheffer (N AN D), principalele operatii booleene se definesc
astfel:
a = a||a,
a b = (a||a)||(a||a),
a b = (a||b)||(a||b)
Circuitele sunt:
182
s
ss
??
??
??
??
s
d
d
d
d
?
-
?
?
-
?
??
??
??
d
d
d
?
?
?
-
ab
ab
s
? ?
? ?
? ?
? ?
d
d
d
d
?
-
?
?
-
?
? ?
? ?
? ?
d
d
d
s-
ab
ab
3.
a
b
c
x
y
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
b
c
a
`
`
`f -
f (a, b, c)
a
b
c
???
???
???
?
?
? ? ?
" !
?
f (a, b, c)
O varianta de simplificare este:
f (a, b, c) = b(ac + ac) + b(a c) = b(a c) + b(a N OR c)
care conduce la circuitul
a
c
b
f-6 6
6
f
DD
? - D
s?
6
s -
? - f (a, b, c)
6
s-
?
??
s
? ?
- f (a, b, c)
6
?
184
-``` f
f (a, b)
Capitolul 5:
1. Se aduc cele trei expresii ale functiei f (x, y, z) = (f1 (x, y, z), f2 (x, y, z), f3 (x, y, z))
la forma normal disjunctiva:
f1 (x, y, z) = xyz + xyz + xyz + xy z + x yz,
f2 (x, y, z) = xyz + xyz + xyz + xyz + xy z,
f3 (x, y, z) = xyz + xyz + xyz + xy z + x yz.
Circuitul codificator este:
DCD3
x
y
z
-6 6 6
-
y0
y1
y2
y3
y4
y5
y6
y7
s
s
s
s
s
s
s
s
s s-
?
?????
????
?????
" !
" !
" !
?
?
?
f1
185
f2
f3
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
DCD3
x
y
z
? ? ?
" !
?
-6 6 6
-
f (x, y, z)
s
s
s
s
s -
s
???
???
???
?
?
? ? ?
?
f (x, y, z)
186
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
Codificatorul:
DCD3
x
y
z
-6 6 6
-
y0
y1
y2
y3
y4
y5
y6
y7
s
s
s
s
s
s
s
s s-
?
? ? ? ?
? ? ?
? ? ? ?
" !
" !
" !
?
?
?
z2
z1
z0
4. O functie booleana de cinci variabile care sa implementeze conditia 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 functie n forma normala se scrie imediat, din care reiese codificatorul
(am trasat numai iesirile utile din DCD5 , care intra n poarta OR11 :
(x4 , x3 , x2 , x1 , x0 )
5@
@
DCD5
y7
y11
y13
y14
y19
y21
y22
y25
y26
y28
y31
-????
-?
6
666
- 6
-
$
%
5. Multimea numerelor din intervalul [0, 26 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 DCD6 n care
iesirile yi cu i A sunt conectate la o poarta OR16 , din care iese rezultatul final.
187
6. O simpla particularizare:
s
PP
P
c s- PP
c
P
x1 -
?
PP
P
c s- PP
x0 - P
c
?
s
s
???
-s
???
s
s
???
s ???
?
?
?
?
DCD3
x2
x1
x0
y0
y1
y2
y3
y4
y5
y6
y7
i0
-6 6 6
-
i1
i2
i3
i4
i5
i6
i7
?? ??
??
??
??
??
??
??
?
?
?
?
?
?
?
?
x0
x1
x2
i1
i2
i3
i4
i5
i6
i7
?
?
?
?
?
?
?
?
- i0 EM U X i1 - i0 EM U X i1 - i0 EM U X i1 - i0 EM U X i1
6
6
6
6
s
s
s
-
?
?
?
?
?
?
- i0 EM U X i1
- i0 EM U X i1
6
6
-
s
?
?
?
?
- i0 EM U X i1
?
188
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0 0
0 0
i 0 i1 i 2 i3 i 4 i5 i 6 i7
M U X3
a b c -
y
9. 10. 11. Tabela de valori a functiei f este
x
y
z
f (x, y, z)
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
DCD3
x
y
z
y0
y1
y2
y3
y4
y5
y6
y7
s
s
?
?
?????
"
!
?
-6 6 6
-
189
0 0
y
x
0 0
0 0
0 0
0 0
0 0
0 0
?
?
?
?
?
?
?
?
- i0 EM U X i1 - i0 EM U X i1 - i0 EM U X i1 - i0 EM U X i1
6
6
6
6
-
s
s
s
?
?
?
?
?
?
- i0 EM U X i1
- i0 EM U X i1
6
6
-
s
?
?
?
?
- i0 EM U X i1
?
f (x, y, z)
El se poate reduce spectaculos la:
0 0
i1
i0
EM U X
0 0
?
- i0
EM U X
i1
f (x, y, z)
12. 13. Tabela de valori obtinuta este (am introdus si rezultatele partiale):
190
x 0 x 1 x 2 x 3 s1 s2 c 1 c 2
0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 0
0 0 1 1 0 0 0 1
0 1 0 0 1 0 0 0
0 1 0 1 1 1 0 0
0 1 1 0 1 1 0 0
0 1 1 1 1 0 0 1
1 0 0 0 1 0 0 0
1 0 0 1 1 1 0 0
1 0 1 0 1 1 0 0
1 0 1 1 1 0 0 1
1 1 0 0 0 0 1 0
1 1 0 1 0 1 1 0
1 1 1 0 0 1 1 0
1 1 1 1 0 0 1 1
s
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
c
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
i6
i5
i4
i3
i2
i1
i0
P E2
y1
?
EP E
?
?
i0
s
?
y2
i2
i1
i0
i3
i2
i1
i0
y0
?
-
i1
i3
Z
y1
P E2
?
?
?
i
i
1
0
- EM U X
6
s
?
y1
y0
?
?
?
i
i
- 1 EM U X 0
6
?
y0
191
0 0
i6
i2
i3
-
y1
i5
EP E2
i4
i3
i1
y0
i0
EP E2
i1
y0
i0
?
-
Z
?
?
?
i0
i2
y1
i1
i3
i2
? ?
? ?
?
?
y2
y1
y0
s
?
i1
s0
6
s
a2
EM U X
s
?
i0
i1
6
s
EM U X
a1
i1
6
s
EM U X
i0
i1
EM U X
i0
y3
s
?
i0
a0
y2
y1
y0
a2
?
i1
s0
6
s
EM U X
y3
i1
6
s
EM U X
a0
0 0
s
?
i0
a1
?
i0
i1
6
s
EM U X
i0
i1
6
EM U X
i0
y2
s
?
y1
y0
P0
P1
P2
P3
G0
G1
G2
G3
c0
s ss
s
s
s
s
ss
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
-s
??
? ? ???
? ? ??? ????
? ? ??? ???? ?????
?-
?
? ? -? ? ? ?
?
?
? ? ? ?
?? ???
? ? ?
&
%
"
!
?
?
?
?
c1
c2
c3
c4
s
4 aa
?
a
a
?4
4 CA
<
>
`
`4
?
4 CA
`
4`
?
`
`4
?
`
4`
?
4 CA
`
`4
?
4 CA
`
4`
?
`
`4
?
4 CA
? ?
?
s
s
s
s
s
s
?
??
??
? ?6 ??
??
?? 6 ??
??
??
?
?
?
?
?
?
?
?
?
? ? ?
? ?
?
?
?
?
<
18. Circuitul:
193
>
H
4H
?
H
4H
?
4 FA
????
&
s
<
%
-? ?
e
?
>
PP
P
d
d s- PP
d
P
?
d
P
P
d
d
- PP
d s- PP
d
?
d
P
P
d d
- PP d s- PP d
d
d
d
? d? ? ? ?
- f1
- f2
-
f3
Pentru circuitul P ROM 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
f1 1 1 1 1 0 0 0 1
f2 0 1 0 0 1 1 1 1
f3 0 0 1 0 1 1 1 1
x
y
z
PP
P
d s- PP
d
P
?
P
P
- PP
s- PP
d
d
?
PP
P
P d s- PP d
?
-
d d d
d
d d
d
d
d
d d d
d
? ? d?
d
d
d
d
?
d d d dd dd d
d
fd
d d
d d d d
d? ?
d d? ?
d
y0 y1 y2 y3 y4 y5 y6 y7
194
- f1
- f2
- f3
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 fi selectorul a n multiplexori elementari, care
triaza ntre bitii numarului a si cei ai numarului b.
s
b
a
H
nH
H
Hn
?
L
Ld
H
nH
?
i1
i0
n EM U X
H
Hn
?
cout ADDn
c0
a
an
?
max{a, b}
2. Fara a restrange generalitatea, putem considera an = 1.
Circuitul este format dintr-un registru serial SRn (format din n DF F -uri) si cel
mult n 1 porti XOR.
O reprezentare a circuitului este
6
an1
b0 b1 . . . bk
s-
DF F
s6 -
6
s
CK
DF F
- ...
6
6
an2
s6 -
...
1
s6 -
s6
DF F
6
0
-6
-6
Un arc marcat cu ai este suspendat daca ai = 0 (iar poarta XOR in care intra
acesta poate fi eliminata). Daca ai = 1, atunci acesta este un arc normal.
3. 4. O solutie posibila este:
x
s
?
DF F
?
? ?
" !
?
Y
195
CK
?
s-
DF F
s
?
DF F
CK
-
? ? ?
FA
Capitolul 7:
1. Componentele din definitie se construiesc usor: Q = {0, 1}2 , X = {0, 1}, Y = {0, 1}
0 1
0 1
00 00 01
00 00 01
01 01 10
01 01 10
10 10 11
10 10 11
11 11 00
11 11 00
(functiile de tranzitie si de iesire coincid). Graful de functionare este:
#
0/00
1/01
00
?"!
6
01
1/00
0/01
?
"!
1/10
#
?
-
0/11 ? - 11
1/11
"!
10 0/10
?
"!
196
0 0
0 x1 x0
6
???
6
???
ADD3
?
R3
s2
00 01
000 000 001
001 001 010
010 010 011
011 011 100
100 100 101
101 101 110
110 110 111
111 111 000
c0
CK
s
?
s?
s1
s0
11
011
100
101
110
111
000
001
010
pentru transfer.
Graful de functionare se construieste imediat.
4. Componentele automatului
00 01
0 0 0
1 1 0
De remarcat ca automatul difera difera de cel anterior numai prin functia de transfer.
Graful de functionare se construieste imediat.
6. Completam marcajele arcelor cu iesirile:
197
0/00
6 ?
1/11
0/11
6 ?
- q1
q0
6
1/00
1/10
?-
1/01
q3
0/01 ?
-
q2
0/10
?
Notam starile qi cu reprezentarea n baza 2 a lui i. Pentru cele patru stari sunt
suficienti doi biti.
Deci: X = {0, 1}, Q = Y = {0, 1}2 si (am notat cu x bitul de intrare curent)
00
01
10
11
0
00
01
10
11
1 Q+
Q+
1
0
01 0
x
10 x
x
11 1
x
00 x
x
00
01
10
11
0
00
11
10
01
1 Y1 Y 0
11 x x
10 1 x
01 x x
00 0 x
s -``` d
?
6
6
DF F1
d
d d
d d
d d
d
d
d
d
d d
d
d
d d d
6
6
Q
D
6
Q
Q
DF F0
D
s
d d
d d d
d d
CK ? ? ? ? ? ? ? ?
= {0, 1}2 si
1
10
01
01
11
- Y1
- Y0
'$
1/01
q1
? H
H1/10
&%
&%
H
Y
H
6 HH HH
0/10
H
HH
H
1/11
HH HH
HH HH
j
H
'$
HH '$
0/10
H
1/01
q3
q2
&%0/01
&%
0/00
q0
0
1 Y1 Y 0
0
1 Q+
Q+
1
0
00 00 10 x 0
00 00 10
x
0
01
01
10 10 01 x x
x
x
10 00 11
x
0
11 01 11 x 1
11 10 00
Deci putem da o forma mai simpla functiilor de tranzitie si de iesire:
(Q1 Q0 , x) = (Q0 x + Q0 x, Q1 Q0 x),
(Q1 Q0 , x) = (Q1 x + Q1 Q0 x + Q1 Q0 x, Q1 Q0 x + Q0 )
O implementare bazata pe tablouri logic programabile este:
-``` d
s -``` d
?
d
d
d d d d
d d
d
6
6
6
Q
DF F1
d
d
d d
d d
D
6
Q
Q
DF F0
D
s
d d d
d
d
CK ? ? ? ? ? ? ?
199
- Y1
- Y
0
9. Separam tabloul
J 0
00 00
01
10 0
11
functiei de
1 J1+
10 x
1
01
x
10 1 0
11 01 11
pentru J respectiv K :
K1+ K0+
x
1
s -``` d
?
d d
6
d
6
6
6
Q
DF F1
J
K
DF F0
J
K 0 10
-6
s
Q
Q
d
d
d d d
d
d
d
d d
d d d
d d
d
d d d
-6
d d
? ? ? ? ? ? ? ? ?
CK
- Y
1
- Y
0
10. 11. Folosind cunostinte de limbaje formale, se poate construi automatul care accepta
secvente binare marcand orice aparitie de doua zerouri consecutive:
1/0'$
6
?
q0
0/0
&%
6
0/1'$
6
?
1/0
- q1
0/0
&%
1/0
'$
-
q2
&%
?
Iesirea este legata apoi de un counter crescator pe 3 biti (eventual cel construit la
exercitiul 1).
Din graful de tranzitie rezulta tabelele de valori ale celor doua functii:
200
0 1 Q+
Q+
1
0
00 01 00 0
x
01 01 10 x
x
x
10 01 00 0
00
01
10
0
0
1
0
1 Y+
0 0
0 x
0 0
Deci
(Q1 Q0 , x) = (Q0 x, x),
(Q1 Q0 , x) = Q0 x
-``` d
d dd
d-
Q
Q
DF F1
D
6
Q
Q
DF F0
D
s
COU N T3
-Y
-6
CK ? ? ?
Observatii:
(a) O analiza a automatului arata ca unul din cele doua DF F nu este utilizat.
Deci el se poate reduce, fapt care revine formal la ideea ca starile q0 si q2 sunt
echivalente deci ele se pot identifica. Se obtine automatul
1/00/1'$
6
?
0/0
'$
6
?
-
&%1/0
&%
q0
q1
1/0
a carui implementare utilizeaza un singur DF F .
(b) O solutie interesanta primita de la multi studenti este:
s
?
?
s-
DF F
DF F
? ?
e
?
201
CK
?
202
Bibliografie
1. Hayes J. P. - Computer Architecture and Organisation, McGraw Hill Series in Computer 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.howstuffworks.com/boolean.htm
9. http://www.play-hookey.com/digital/electronics/
203