Sunteți pe pagina 1din 200

Cuprins

Introducere 3
Capitolul 1: Arhitectura unui sistem de calcul 5
1.1. Organizarea de baza 5
1.2. Structura generala a masinilor de calcul 7
1.3. Micro-controllere 12
1.4. Ce nseamna Arhitectura unui calculator 13
Capitolul 2: Reprezentarea numerelor n calculator 15
2.1. Coduri de reprezentare a datelor 15
2.1.1. Coduri ponderate si neponderate 16
2.1.2. Reprezentarea zecimal codicat binar 17
2.1.3. Codul ASCII 18
2.2. Reprezentarea numerelor n sistemele de calcul 20
2.2.1. Reprezentarea numerelor ntregi 20
2.2.2. Operat ii cu numere ntregi 21
2.2.3. Reprezentarea numerelor reale n virgula mobila 23
2.2.4. Operat ii n virgula mobila 26
2.3. Exercit ii 28
Capitolul 3: Algebre si funct ii booleene 29
3.1. Denirea algebrelor booleene 29
3.2. Proprietat i ale algebrelor booleene 30
3.3. Alte operat ii booleene 31
3.4. Funct ii booleene 33
3.5. Forme canonice 36
3.6. Inele booleene 38
3.7. Exercit ii 39
Capitolul 4: Sisteme digitale 41
4.1. Circuite combinat ionale 41
4.1.1. Port i 41
4.1.2. Circuite 45
4.2. Extensii 46
204
4.3. Cicluri 50
4.4. Exercit ii 52
Capitolul 5: Sisteme 0 DS 55
5.1. Decodicatori 55
5.2. Codicatori 59
5.3. Demultiplexori 62
5.4. Multiplexori 64
5.5. Codicatori cu prioritate 69
5.6. Sumatori 75
5.6.1. Circuit digital pentru incrementare 79
5.6.2. Circuit digital pentru scadere 80
5.7. Circuite de comparare 83
5.8. Circuite de deplasare 86
5.9. Multiplicatori 88
5.10. Circuit logic programabil 90
5.11. Unitatea aritmetica si logica 94
5.12. Exercit ii 96
Capitolul 6: Sisteme 1 DS (Memorii) 99
6.1. Caracteristicile sistemelor cu un ciclu 99
6.2. Cicluri stabile si instabile 100
6.3. Zavoare elementare 102
6.3.1. Zavoare elementare cu ceas 104
6.3.2. Zavorul de date 105
6.4. Structura master-slave 106
6.4.1. Flip-op cu ntarziere 107
6.5. Memoria RAM 109
6.6. Registri 110
6.6.1. Registrul serial 110
6.6.2. Registrul paralel si registrul serial - paralel 111
6.7. Exercit ii 112
Capitolul 7: Sisteme 2 DS (Automate) 113
7.1. Denit ii de baza 113
7.2. Flip-Flopuri 117
7.2.1. Automatul T Flip-Flop 117
7.2.2. Automatul JK Flip-Flop 118
7.3. Numaratori (counteri) 120
7.4. Stive 124
205
7.5. Circuite aritmetice 125
7.5.1. Sumator serial 125
7.5.2. Circuit aritmetic serial-paralel 126
7.5.3. Sumatoare prex 127
7.5.4. Multiplicator 129
7.5.5. Circuit pentru produsul scalar (MAC) 133
7.6. Reprezentarea automatelor nite 136
7.6.1. Automat pentru MAC 137
7.6.2. Automat pentru recunoasterea unei secvent e binare 141
7.7. Automate de control 143
7.8. Transformarea automatelor n circuite combinat ionale 147
7.9. Exercit ii 148
Capitolul 8: Sisteme 3 DS (Procesori) 151
8.1. Automate JK-registri 151
8.2. Registri numaratori 156
8.3. Automat aritmetic si logic 158
8.4. Automate stiva 160
8.5. Procesorul elementare 163
Capitolul 9: Sisteme 4 DS 167
9.1. Tipuri de sisteme de ordin 4 167
9.2. Stive organizate ca n DS 170
Capitolul 10: Structura unui computer la nivel de performant a 171
10.1. Structuri standard 172
10.2. Masurarea performant elor unui sistem 174
10.3. Modele bazate pe cozi 175
Solut ii si indicat ii la problemele propuse 179
Bibliograe 203
Cuprins 204
206
Capitolul 1
Arhitectura unui sistem de calcul
Pentru nceput sa trecem n revista organizarea generala a unui sistem actual de calcul.
1.1 Organizarea de baza
Structura si compunerea logica a programelor care pot prelucrate de o masina de calcul
au fost elaborate anterior denirii structurii hard; ele se bazeaza pe teza lui Church
1
,
enunt ata n prima parte a anilor

30. Ulterior ea a fost completata de Turing.
Denit ia 1.1 O metoda (procedura) M asociata rezolvarii unei probleme se numeste
efectiva (sau mecanica) daca:
- M se poate exprima printr-un numar nit de comenzi (instruct iuni), ecare comanda
putand denita pe baza unui alfabet nit de simboluri.
- M poate produce rezultatul dorit ntr-un numar nit de pasi;
- M poate descrisa n mod logic, fara a folosi mijloace externe.

In 1933 Barwise stabileste criteriile pe care trebuie sa le satisfaca un computer:


Nu va stoca raspunsurile la toate problemele posibile.
Va rezolva numai probleme pentru care i s-a dat o procedura de rezolvare.
Timpul necesar rezolvarii unei probleme este nit.
Turing, la randul lui, aduce n anii

40 o serie de precizari de ordin formal asupra posi-
bilitat ilor de calcul pe care le poate avea un computer.
Masina denita de el (Masina Turing) este modelul matematic al calculatoarelor de
mai tarziu.
1
Pe scurt enunt ul acesteia este: O funct ie f : NN este efectiv calculabila daca si numai daca este
recursiva.
5
6 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
?
6
-
. . . . . .
Banda memorie
Cap citire/scriere
Procesor
O masina se compune dintr-un procesor (generator de instruct iuni), o banda de memorie
care se poate misca n ambele sensuri, si un cap de citire/scriere x.
La ecare tact, banda se misca cu o pozit ie spre stanga sau dreapta, permit and exe-
cutarea unei comenzi.
O astfel de comanda (sau instruct iune) este reprezentata n procesor sub forma unui
quadruplu (S
h
, T
i
, O
j
, S
k
), cu urmatoarea semnicat ie:
Daca starea procesorului este S
h
si simbolul citit pe banda este T
i
, atunci
masina efectueaza operat ia O
j
si trece procesorul n starea S
k
.
sau - ca o varianta formalizata:
if stare = S
h
and input = T
i
then output := O
j
and stare := S
k
Operat iile permise pe o masina Turing sunt:
1. O
j
= T
j
: simbolul T
j
este scris pe banda n locul lui T
i
;
2. O
j
= R: banda se deplaseaza spre dreapta cu o locat ie;
3. O
j
= L: banda se deplaseaza spre stanga cu o locat ie;
4. O
j
= H: calculul se opreste.
Se demonstreaza ca orice calculator este echivalent din punct de vedere al posibilitat ilor
de calcul cu o masina Turing, iar aceasta conform Tezei lui Church poate aborda orice
problema ce admite o rezolvare algoritmica.
Nu vom prezenta detalii ale acestor asert iuni, ele constituind subiectul altor domenii
de cercetare, mult mai generale si fara multa legatura cu ceea ce vrem sa prezentam n
aceasta carte.
1.2. STRUCTURA GENERAL

A A MASINILOR DE CALCUL 7
1.2 Structura generala a masinilor de calcul
Structura funct ionala a unei masini de calcul (sau Computer) n forma actuala a fost
denita n 1947 de von Neumann (1903 - 1957), modicarile ulterioare ind nesemnica-
tive.

In principal ea cont ine trei componente de baza:


1. O unitate centrala de prelucrare (CPU) 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 unitat i 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): unitat i de transfer a informat iei spre si dinspre utilizator.
Memorie
Control

-
?

-
Periferice
intrare/iesire
Instruct iuni
Date
Unitate
aritmetica-logica
CPU
Aceste componente hard comunica ntre ele printr-un sistem de magistrale. Principalul
soft inclus este sistemul de operare, care asigura majoritatea funct iilor de prelucrare ale
sistemului.
Sunt trei tipuri majore de instruct iuni folosite de un calculator: de transfer de date,
de prelucrare date si de control al programelor.
Denirea setului de instruct iuni si modul lor de prelucrare caracterizeaza n general
puterea unui calculator.
Pe baza acestei structuri au fost construite calculatoarele din prima generat ie (anii

40

50).
8 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
Structura unui astfel de calculator (cum au fost ENIAC, EDVAC, IAS, UNIVAC) este
Memoria
principala
Programe si date
pentru execut ie
Control
-
Instruct iuni

-
Date
CPU
-

Prelucrare
date
Programe,
date,
comenzi
Echipamente
intrare/iesire
(memorie secundara,
tastatura
imprimanta etc)
Impactul cel mai mare asupra dezvoltarii sistemelor de calcul l-au avut nsa calcula-
toarele din generat ia a treia, reprezentantul specic ind IBM/360 (existent si n dotarea
Universitat ii Bucuresti, ncepand cu anul 1967).
Schema generala a structurii unui astfel de calculator este prezentata pe pagina urmatoare.
Notat iile folosite (devenite standard odata cu generat ia a treia de calculatoare):
DPU - Unitatea de prelucrare a datelor
CPU - Unitatea de control a programului
ALU - Unitatea aritmetica si logica
IO - Intrare / iesire
SR - Registru de stari
IR - Registru de instruct iuni
AR - Registru de calcul pentru instruct iuni aritmetice
PC - Registru de control al programului
1.2. STRUCTURA GENERAL

A A MASINILOR DE CALCUL 9
?
6
?
6
?
6
?
6
?
6

-
?
6
6
?
?
6
?
6
6
?
?
6 6
6
-
-
-
. . .
?
6
?
6
DPU
ALU
Fixed - point
ALU
Decimal
ALU
Floating - point
4 registri de 64 bit i
n virgula mobila 16 registri generali
de 32 bit i
IR AR SR PC
PSW (Program status word)
Decoder instruct iuni
(poate micro-programat)
Semnale
control
CPU
Periferic
IO
Periferic
IO
Interfat a
IO
Procesor
IO
Procesor
IO
Unitatea de control a
memoriei principale
Memoria
principala
Caracteristici ale calculatoarelor din generat ia 3 (IBM/360 IBM/390)
Introduc ideea de standardizare a construct iei, pentru a accepta limbaje de progra-
mare universale.
Constituie baza arhitecturii calculatoarelor actuale.
Introduc unitat ile de informat ie: octet (byte), cuvant (word), cuvant dublu, registru.
Introduc ideea de micro - programare.
10 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
Sistemul actual uzual de calcul este computerul, tratat ca unitate independenta (PC
sau stat ie de lucru) dedicata unui singur utilizator.
Structura lui este:
Magistrala sistem
Interfat a
magistrala
Cache
CPU
M
HDD
control
Video
control
Tastatura
control
Ret ea
control
Memorie
HDD
Monitor Tastatura
Ret ea
6
?
6
?
Control interfat a periferice
Magistrala IO (locala)
?
6
?
6
?
6
?
6
?
6
?
6
?
6
6
6
?
?
Microprocesor
6
?
6
?
Principalul element hard este un microprocesor realizat pe un chip, care cont ine o
versiune a arhitecturii denite de von Neumann.
El asigura un CPU si este responsabil cu aducerea, decodicarea si executarea instruc-
t iunilor.
Datele si instruct iunile au un format standard de grupuri formate din 32 bit i (cuvinte);
acestea sunt unitat ile de baza prelucrate de computer.
CPU este caracterizat printr-un set de circa 200 instruct iuni care realizeaza transferul
si prelucrarea datelor precum si operat ii de control al programelor (cu o structura ramasa
n general aceeasi n timp).
CPU poate suplimentata cu alt chip (interior sau exterior) numit co-procesor, care
implementeaza funct ii specializate, cum ar prelucrarea de interfet e grace.
Rolul memoriei principale M este de a stoca programe si date prelucrate de CPU.
Ea este o memorie cu acces aleator (RAM - random access memory), formata din o
secvent a liniara de componente (de obicei grupuri de 8 bit i, numite bytes sau octet i).
Fiecare byte are asociat o adresa unica, care permite CPU sa citeasca sau sa schimbe
(scrie) cont inutul (pe baza unor instruct iuni de ncarcare sau memorare).
1.2. STRUCTURA GENERAL

A A MASINILOR DE CALCUL 11
Memoria principala M este completata de o memorie secundara, mai mare dar mai
lenta (din punct de vedere al accesului), de obicei situata pe hardiscuri (HDD).
Harddiscurile formeaza o componenta a sistemului de intrare/iesire (IO).
De asemenea, o memorie intermediara, numita cache poate inserata ntre CPU si
M.
Deci un calculator cont ine mai multe tipuri de memorie, care pot ierarhizate n
registrele CPU: memoria cache, memoria principala si memoria secundara.
Aceasta structura complexa rezulta din faptul ca cele mai rapide componente de memo-
rie sunt si cele mai scumpe; deci ierarhizarea asigura CPU cu un acces rapid la un numar
mare de date, la un pret relativ scazut.
Scopul unui sistem IO este de a permite utilizatorului sa comunice cu calculatorul.
Componentele IO sunt atasate la calculatorul gazda prin intermediul unor porturi IO,
a caror funct ie este de a controla transferul de date ntre componenta de intrare/iesire si
memoria principala.
O astfel de componenta are asignata un set de adrese tip memorie care permit utilizarea
de instruct iuni de intrare/iesire ce pot implementate aproape identic cu instruct iunile
de ncarcare respectiv stocare.
Dar deoarece operat iile de intrare/iesire sunt foarte lente, CPU are nevoie de un timp
mult mai lung pentru a accesa un cuvant aat n sistemul IO decat unul din memoria M.
Componentele tradit ionale de intrare/iesire sunt tastatura respectiv ecranul de moni-
tor, adaptate n special pentru procesarea informat iei de tip text.
Adaugarea unei componente punctuale, tip mouse permite introducerea ecranului n
lista componentelor de intrare; el asigura comunicarea utilizator - computer via imagini
grace. Interfet e audio pentru generarea si recunoasterea sunetelor extind aria de lucru
a calculatorului n sistemele multimedia.
12 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
1.3 Micro-controllere
Reducerea impresionanta a dimensiunilor si scaderea costurilor componentelor principale
ale unui calculator a permis construirea unor computere specializate pentru anumite pro-
bleme, numite micro-controllere.
Ele au circuite de control specice, sau sunt lipsite total de componenta logica (cum
ar de exemplu circuitul de control al unei masini de spalat automate).
Programele sunt stocate n memoria ROM (read only memory), care formeaza o
parte a memoriei principale folosite de micro-controller.
Acesta este construit direct n obiectul controlat, ntr-o zona adesea invizibila si inac-
cesibila utilizatorului.
Un micro-controller programat sa efectueze operat iile unei aplicat ii poate nlocui cir-
cuitele de control specice acelei aplicat ii, adesea cu o reducere de cost apreciabila.
Majoritatea calculatoarelor actual operabile sunt micro-controllere construite n di-
verse aparate utilizate n cele mai variate medii.
Scaner
cod
produs
Tastatura
Monitor
si
imprimanta
Cititor
card
Port IO Port IO Port IO Port IO
Magistrala sistem
CPU
(microprocesor)
Port IO RAM ROM Port IO
Micro-controler
Calculator
central
Spre
ret eaua
telefonica
?
6
?
6
?
6
?
6
? ?
6
?
6
6
?
6
?
6
?
6
?
6
?
6 6
Schema de mai sus descrie una din primele aplicat ii ale unui micro-controller: un punct
de vanzare terminal care nlocuieste casa ntr-un supermarket.
1.4. CE

INSEAMN

A ARHITECTURA UNUI CALCULATOR 13


Micro-controllerul folosit are structura unui computer convent ional.
El este construit n jurul unei magistrale de sistem de care sunt atasate un micropro-
cesor (cu rol de CPU), cel put in un chip ROM pentru stocarea programului si cel put in
un chip RAM pentru lucru si stocarea datelor.
Toate perifericele IO sunt conectate la sistem folosind porturi IO cu interfet e standard.
Perifericele tipice unei astfel de aplicat ii sunt: tastatura, o imprimanta pentru eli-
berarea chitant elor, un monitor, un scaner pentru codurile de bare ale produselor si un
cititor de card (credit sau debit).
Acest ultim periferic necesita o conectare la o ret ea telefonica pentru autorizarea car-
dului.
Ultima componenta este o legatura la un calculator central, folosit pentru informat ii
de pret , controlul stocului de produse etc.
1.4 Ce nseamna Arhitectura unui Calculator
Termenul de Arhitectura a calculatorului a fost folosit prima oara de rma IBMn 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; tehnolo-
gia software nu avea posibilitatea de a t ine 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 ment inut stabil.
Corpul de cercetatori ai rmei IBM (leaderul necontestat n domeniul tehnicii de calcul
din acea perioada) a decis stabilizarea setului de operat ii elementare necesare programa-
torului.
Denit ia 1.2 Arhitectura unui calculator este imaginea logica si funct ionala a unui com-
puter cu care lucreaza un programator.
Odata aceasta arhitectura stabilita, cele doua componente ale unui computer: hardware
(mult imea pieselor care formeaza calculatorul) si software (mult imea programelor rulate
de calculator) se pot dezvolta independent una de alta.
O buna perioada de timp arhitectura putea doar mbunatat ita, ind adaugate noi
facilitat i, dar neind eliminata nici o funct ie.
Deci un program scris pentru o prima versiune a arhitecturii va funct iona pe orice
versiune ulterioara.
14 CAPITOLUL 1. ARHITECTURA UNUI SISTEM DE CALCUL
Rezumand, architectura calculatorului este o interfat a ntre hardul si softul unui com-
puter si presupune:
o masina capabila sa realizeze o mult ime nita de operat ii elementare,
o memorie, cont inand o descriere a modului cum pot folosite funct iile 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 execut ie se nt elege o act iune de un pas asociata ecarui element
al descrierii, iar prin interpretare se nt elege o secvent a de act iuni asociate ecarui
element al descrierii.
Evident, n ambele variante, act iunile vor depinde direct de modul de denire al des-
crierii.
Lucrarea de fat a abordeaza elementele fundamentale necesare construirii arhitecturii
unui calculator. Sunt schit ate not iunile teoretice si structurile celor mai simple circuite
care formeaza unitatea logico-aritmetica, unitatea centrala de prelucrare precum si com-
ponentele de memorie.
Celor care vor sa aprofundeze domeniul le recomand referint ele bibliograce precum
si numeroase site-uri de Internet dedicate sistemelor de calcul.
Capitolul 2
Reprezentarea numerelor n
calculator
2.1 Coduri de reprezentare a datelor
Utilizarea codurilor a aparut pentru a asigura o comunicare ntre un utilizator si un sistem
de calcul (specic unui calculator); principalul obstacol care este depasit printr-un cod de
reprezentare a datelor consta n corelarea dintre modul n care sunt prelucrate datele de
catre o persoana zica (care gandeste n sistemul zecimal) si un computer (unde sistemul
de baza este cel binar).
Denit ia 2.1 Fiind date doua mult imi nite si nevide A (alfabet sursa) si B (alfabet
cod), o codicare este o aplicat ie injectiva
1
: A B
+
.
Observat ia 2.1 S-a notat cu B
+
mult imea secvent elor nevide de caractere formate cu
elemente din B. De exemplu, daca B = {0, 1} atunci B
+
= {0, 1, 00, 01, 10, 11, 000, . . .}.
Mult imea C = (A) se numeste cod, iar elementele sale sunt cuvinte - cod.
Daca B are numai doua simboluri, codicarea se numeste binara, iar (A) este un cod
binar.
Desi simple, codurile binare sunt de obicei lungi si deci greu de manipulat.
Adesea este mai convenabil sa grupam simbolurile binare formand alfabete mai com-
plexe.
Astfel, formand grupuri de cate patru simboluri binare, se obt ine codul hexazecimal:
1
O aplicat ie f este injectiva daca din egalitatea f(x) = f(y) rezulta x = y si nimic altceva.
15
16 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
0 0000 4 0100 8 1000 C 1100
1 0001 5 0101 9 1001 D 1101
2 0010 6 0110 A 1010 E 1110
3 0011 7 0111 B 1011 F 1111
Reprezentarea n aceasta baza (care foloseste simbolurile auxiliare A, B, C, D, E, F
pentru numerele 10, 11, 12, 13, 14 si respectiv 15) se indica adesea prin indicele 16 asezat
la sfarsit. De exemplu,
(61)
16
= (0110 0001)
2
Daca nu exista nici o confuzie, atunci indicii care semnaleaza baza se ignora.
Utilizarea acestui cod este aproape universal acceptata.
Astfel, memoria calculatorului lucreaza cu bit i grupat i n bytes (sau octet i).
Un octet se reprezinta de obicei nu ca o secvent a de 8 cifre binare, ci ca o pereche de
cifre hexazecimale.
Astfel, de exemplu (00101101)
2
se scrie (2D)
16
, (01100000)
2
se reprezinta prin (60)
16
etc.
2.1.1 Coduri ponderate si neponderate
Codurile binare sau hexazecimale nu sunt singurele modalitat i de codicare a numerelor
n calculator.
Practic, plecand de la reprezentarea binara, se poate construi o paleta larga de coduri.
Ele sunt clasicate n
coduri ponderate;
coduri neponderate.
Codurile ponderate asociaza unei cifre zecimale un grup de patru cifre binare, ecarei cifre
binare indu-i asociata o pondere corespunzatoare puterii lui 2 din cadrul codului.
Codul hexazecimal - binar prezentat mai sus este un exemplu de cod ponderat. El
mai este numit adesea si codul 8421.
Codurile neponderate asociaza unei cifre zecimale un grup de patru cifre binare, fara
a avea semnicat ia unei ponderi.
Cele mai cunoscute astfel de coduri sunt codurile Exces 3 si Gray.
Codul Exces 3 este rezultat din codul hexazecimal prin adunarea numarului 3 (scris
n binar) la ecare cifra.
2.1. CODURI DE REPREZENTARE A DATELOR 17

In acest fel, prin complementarea cifrelor binare care formeaza codul cifrei i se obt ine
codul cifrei 9 i.
Pentru codul Gray, caracteristic este faptul ca orice codicare a unui numar difera de
codicarea succesorului sau prin exact o cifra binara.
Cele doua coduri sunt reprezentate n tabelul urmator:
Cifra 0 1 2 3 4 5 6 7 8 9
Exces 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100
Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
2.1.2 Reprezentarea zecimal codicat binar
Aproape toate calculatoarele folosesc pentru memorarea cifrelor zecimale reprezentarea
n cod 8421.

Insa, deoarece sistemele de calcul lucreaza cu octet i, desi sunt suciente 4 bit i pentru
o cifra zecimala, se folosesc doua modalitat i de codicare:
Forma condensata (mpachetata), n care, pe cele 8 pozit ii ale unui octet sunt
reprezentate doua cifre zecimale exprimate n binar;
Forma dilatata (despachetata), n care pe ecare octet se ret ine o singura cifra
zecimala pe ultimii patru pozit ii binare.
Primele patru pozit ii ale ecarui octet sunt ocupate de o marca M.
Exemplul 2.1 Numarul 342 este memorat pe doi octet i n forma mpachetata
0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0
2 4 3 0
si pe trei octet i n forma despachetata:
M 0 0 1 1 M 0 1 0 0 M 0 0 1 0
4 3 2
18 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
2.1.3 Codul ASCII
Char Cod Char Cod Char Cod
(20)
16
@ (40)
16
(60)
16
! (21)
16
A (41)
16
a (61)
16
(22)
16
B (42)
16
b (62)
16
# (23)
16
C (43)
16
c (63)
16
$ (24)
16
D (44)
16
d (64)
16
% (25)
16
E (45)
16
e (65)
16
& (26)
16
F (46)
16
f (66)
16

(27)
16
G (47)
16
g (67)
16
( (28)
16
H (48)
16
h (68)
16
) (29)
16
I (49)
16
i (69)
16
(2A)
16
J (4A)
16
j (6A)
16
+ (2B)
16
K (4B)
16
k (6B)
16
(2C)
16
L (4C)
16
l (6C)
16
(2D)
16
M (4D)
16
m (6D)
16
. (2E)
16
N (4E)
16
n (6E)
16
/ (2F)
16
O (4F)
16
o (6F)
16
0 (30)
16
P (50)
16
p (70)
16
1 (31)
16
Q (51)
16
q (71)
16
2 (32)
16
R (52)
16
r (72)
16
3 (33)
16
S (53)
16
s (73)
16
4 (34)
16
T (54)
16
t (74)
16
5 (35)
16
U (55)
16
u (75)
16
6 (36)
16
V (56)
16
v (76)
16
7 (37)
16
W (57)
16
w (77)
16
8 (38)
16
X (58)
16
x (78)
16
9 (39)
16
Y (59)
16
y (79)
16
: (3A)
16
Z (5A)
16
z (7A)
16
; (3B)
16
[ (5B)
16
{ (7B)
16
< (3C)
16
\ (5C)
16
(7C)
16
= (3D)
16
] (5D)
16
} (7D)
16
> (3E)
16
(5E)
16
(7E)
16
? (3F)
16
(5F)
16
DEL (7F)
16
Un cod foarte important folosit n reprezentarea standard a simbolurilor alfabetice si
numerice este codul ASCII (American Standard Code for Information Interchange).
El are 2
8
= 256 simboluri sursa, codicate n secvent e binare de lungime 8; tabelul
de mai sus cuprinde simbolurile printabile avand codurile ASCII n intervalul [32, 127] (n
2.1. CODURI DE REPREZENTARE A DATELOR 19
domeniul [0, 31] nu sunt simboluri printabile, iar n zona [128, 255] se denesc simboluri
auxiliare, care nu sunt pe tastatura).
De exemplu, litera A, va avea codul hexazecimal - binar
(41)
16
= (01000001)
2
caruia n zecimal i corespunde numarul 65.
De remarcat modalitatea diferita de codicare a cifrelor zecimale.

In codul ASCII se codica caracterele; deci n aceasta codicare, cifrele 0, 1, . . . , 9


sunt considerate caractere si prelucrate ca atare.
De exemplu, nu se pot face operat ii 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 alfa-
betelor utilizate pe tastaturi este Unicode.
Folosind o notare numerica pe 32 sau 16 bit i, el ofera un cod unic pentru ecare
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 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
2.2 Reprezentarea numerelor n sistemele de calcul

In calculatoare, sistemul de numerat ie utilizat este cel binar.


Reprezentarea numerelor n acest sistem se face n mai multe forme, n funct ie de tipul
lor; pentru ecare tip, operat iile aritmetice elementare sunt efectuate de catre dispozitive
speciale nglobate n arhitectura calculatorului (ceea ce asigura o viteza sporita de calcul).
2.2.1 Reprezentarea numerelor ntregi
Reprezentarea n memoria calculatorului a numerelor ntregi (numita si reprezentare al-
gebrica) se realizeaza pe un numar x de n pozit ii binare (de regula n = 8, 16, 32, 64 sau
128).
Aceasta reprezentare poate schematizata n modul urmator:
n n1 n2 2 1
S
. . . . . .
Prima pozit ie din stanga (a n-a pozit ie binara) este numita bit de semn; ea este ocupata
de un bit care are valoarea

0

daca numarul este nenegativ,



1

daca numarul este negativ.


A i-a cifra binara este coecientul lui 2
i1
n reprezentarea numarului n baza 2.
Deci cel mai mare numar ntreg care se poate reprezenta pe n bit i este
1 2
n2
+ 1 2
n3
+. . . + 1 2
1
+ 1 2
0
= 2
n1
1
De exemplu, pentru n = 16, acesta este 2
15
1 = 32.767.

In schimb, cel mai mic numar care poate memorat este 2


n1
; el are reprezentarea
n n1n2 2 1
1 0 0 0 0
. . . . . .
S

In cazul n = 16, acesta este 2


15
= 32.768.
Deci pe 16 pozit ii binare pot reprezentate toate numerele ntregi din intervalul
[32.768, 32.767].
2.2. REPREZENTAREA NUMERELOR

IN SISTEMELE DE CALCUL 21
2.2.2 Operat ii cu numere ntregi
Adunarea a doua numere ntregi se efectueaza n binar, pozit ie cu pozit ie, de la dreapta
spre stanga; dispozitivul aritmetic al sistemelor de calcul care efectueaza adunarea se
numeste sumator.
Exemplul 2.2 Sa efectuam adunarea 23+15 folosind reprezentarea pe 8 cifre binare (un
octet). Efectuarea acestei operat ii este redata de gura urmatoare:
0 0 0 1 0 1 1 1
1 1 1 1 0 0 0 0
0 0 1 0 0 1 1 0
23
+
15
=
38
Pentru scadere se foloseste acelasi dispozitiv aritmetic care realizeaza adunarea.
Motivat ia consta n faptul ca orice scadere se poate scrie sub forma unei adunari
x y = x + (y).
Pentru aceasta este necesara o reprezentare a numerelor negative astfel ncat sa per-
mita aplicarea relat iei de mai sus.
Sunt cunoscute trei astfel de reprezentari:
1. Cod direct, care coincide cu reprezentarea algebrica (folosind bitul de semn);
2. Cod invers (sau cod complementar la 1): se obt ine prinnlocuirea ecarei cifre binare
a cu 1 a;
3. Cod complementar (la 2): se obt ine din codul invers, la care n faza a doua se
aduna numarul 1.
Exemplul 2.3 Sa reprezentam n ecare din cele trei forme, pe 16 bit i (doi octet i),
numarul 320.
(1) Deoarece 320 = (101000000)
2
, reprezentarea lui 320 n cod direct este:
1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0
(2) Codul invers se obt ine din reprezentarea numarului 320, prin complementarea tuturor
cifrelor binare:
1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1
22 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
(3) Pentru codul complementar, se aduna 1 la codul invers:
1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0
Scaderea se transforma n adunare prin reprezentarea scazatorului n cod invers sau cod
complementar.
Deoarece marea majoritate a implementarilor folosesc codul complementar, ne referim
la aceast a maniera de operare.
Motivarea matematica este foarte simpla.
Sa presupunem ca avem un numar ntreg, reprezentat n binar (pe n bit i) sub forma
a
n
a
n1
. . . a
2
a
1
, unde
a =
n1

i=1
a
i
2
i1
iar a
n
este bitul de semn.
Atunci reprezentarea lui a n cod complementar este
a =
n1

i=1
(1 a
i
)2
i1
+ 1 =
n1

i=1
2
i1

n1

i=1
a
i
2
i1
+ 1 = 2
n1
1 a + 1 = 2
n1
a
Deci
a = 2
n1
a
si diferent a b a se poate scrie
b a = b +a 2
n1
De remarcat ca numarul 2
n1
nu afecteaza pozit iile binare ale numarului, ci numai
bitul de semn.
Revenind la algoritm, pentru scaderea b a se efectueaza urmatorii pasi:
1. Se trece a n cod complementar;
2. Se face adunarea dintre b si a scris n noua reprezentare;
3. Daca rezultatul este negativ, acesta este reprezentat tot n cod complementar;
4. Daca apare transport la pozit ia alocata semnului, acesta se ignora.
2.2. REPREZENTAREA NUMERELOR

IN SISTEMELE DE CALCUL 23
Exemplul 2.4 Sa se efectueze 32 41 cu reprezentare n cod complementar a scazatoru-
lui, pe 8 cifre binare.
32 = (100000)
2
, 41 = (101001)
2
.
Efectuarea operat iei de scadere este redata prin schema urmatoare:
?
+41 n cod direct
+32 n cod direct
41 n cod complementar
+1
0 0 1 0 1 0 0 1
0 1 1 0 1 0 1 1 0 0 0 0 0 1 0 0
1 1 0 1 0 1 1 1
1 1 1 0 1 1 1 1 32 + (41) = 9 n cod complementar
2.2.3 Reprezentarea numerelor reale n virgula mobila
Numerele reale se reprezinta n interiorul unui sistem de calcul sub forma fract ionara,
ntr-o codicare numita virgula mobila (oating point).

In prima faza, orice numar este adus la forma


N = 1, f 2
e
unde:
N este numarul care trebuie reprezentat n virgula mobila,
f - partea fract ionara a lui N,
1, f se numeste mantisa si trebuie sa respecte relat ia de normalizare
1 |1, f| < 2;
2 este baza sistemului de numerat ie (sistemul binar),
e este exponentul bazei sistemului de numerat ie.
Exemplul 2.5 Numarul N = 25 se scrie n virgula mobila sub forma
25 = (11001)
2
= 1, 1001 2
4
.
Exemplul 2.6 Numarul
31
32
se va scrie sub forma unui numar n virgula mobila astfel:
31
32
=
2
4
+ 2
3
+ 2
2
+ 2
1
+ 2
0
2
5
= 2
1
+2
2
+2
3
+2
4
+2
5
= (0, 11111)
2
= 1, 11112
1
.
24 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
Exemplul 2.7 Pentru N =
1
8
reprezntarea n virgula mobila este:
1
8
= 2
3
=
(0, 001)
2
= 1, 0 2
3
.
De observat ca practic inegalitatea de normalizare coincide cu pozit ionarea virgulei n
cadrul numarului binar dupa prima cifra 1, concomitent cu modicarea corespunzatoare
a exponentului bazei.
Reprezentarea numerelor n virgula mobila are doua forme standard:
1. reprezentarea n virgula mobila simpla precizie;
2. reprezentarea n virgula mobila dubla precizie.
Reprezentarea n simpla precizie se face pe un cuvant (32 pozit ii binare) sub forma:
S
32 31 24 23 1
f C = e + 127
Prima pozit ie (S) reprezinta semnul numarului N; el este codicat cu 0 daca N > 0
si 1 daca N < 0. Pentru cazul N = 0, S este nedeterminat.
Urmatoarele opt pozit ii binare sunt ocupate de o constanta numita caracteristica (C),
construita n asa fel ncat sa codice 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 negativ.
Valoarea maxima a caracteristicii este 2
8
1 = 255, ceea ce nseamna ca cel mai mare
exponent admis de reprezentarea n simpla precizie este e = 255 127 = 128.
Ultimele 23 pozit ii binare sunt alocate reprezentarii fract iei aliniata la stanga si com-
pletata (eventual) cu zerouri (nesemnicative).
Exemplul 2.8 Pentru reprezentarea n virgula mobila simpla precizie a numarului din
Exemplul 2.5, deoarece 25 = 1, 1001 2
4
, vom avea S = 0, f = 1001 si C = e + 127 =
4 + 127 = 131 = (10000011)
2
.
2.2. REPREZENTAREA NUMERELOR

IN SISTEMELE DE CALCUL 25
Deci
0
32 31 24 23 1
1 0 0 1 0 0 0 0 . . . . . . . . . 0 0 1 0 0 0 0 0 1 1
Exemplul 2.9 Pentru
31
32
= 1, 1111 2
1
(Exemplul 2.6) avem S = 0, f = 1111,
C = 1 + 127 = 126 = (01111110)
2
, deci
0
32 31 24 23 1
1 1 1 1 0 0 0 0 . . . . . . . . . 0 0 0 1 1 1 1 1 1 0
Exemplul 2.10 Numarul
1
8
= 1, 0 2
3
(Exemplul 2.7) are S = 1, f = 0 si
C = 3 + 127 = 124 = (01111100)
2
, deci
1
32 31 24 23 1
0 0 0 0 0 0 0 0 . . . . . . . . . 0 0 0 1 1 1 1 1 0 0
Reprezentarea n virgula mobila dubla precizie se realizeaza pe 64 pozit ii binare
(cuvant dublu), a carui structura este
S
64 63 53 52 1
f C = e + 1023

In acest caz, caracteristica este reprezentata pe 11 cifre binare, avand posibilitatea de a


nmagazina o valoare maxima 2
11
1 = 2047, ceea ce corespunde unui exponent
e = 2047 1023 = 1024.
Partea fract ionara ocupa 52 pozit ii binare.
Exemplul 2.11 Sa reprezentam n virgula mobila dubla precizie numarul 124, 0625.
Vom avea 124, 0625 = (1111100, 0001)
2
= 1, 11110000012
6
, deci S = 1, f = 1111000001,
C = e + 1023 = 6 + 1023 = 1029 = (10000000101)
2
.
Reprezentarea este
1
64 63 53 52 1
1 1 1 1 0 0 0 0 0 1 0 0 . . . . . . . . . 0 1 0 0 0 0 0 0 0 1 0 1
26 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
La ambele forme de reprezentare n virgula mobila, cifra 1 dinaintea virgulei nu se
reprezinta; observat ia este utila atunci cand se doreste obt inerea numarului real din una
din formele de reprezentare n virgula mobila.
Exemplul 2.12 Un numar n virgula mobila are forma:
11000010 11001111 00001111 00100001
Urmarind forma de reprezentare, se constata ca:
- Prima cifra S = 1 indica un numar negativ;
- Urm atoarele 8 cifre binare specica valoarea caracteristicii
C = 10000101 = 133, deci e = 133 127 = 6;
- Partea fract ionara ocupa ultimele 23 cifre binare f = 10011110000111100100001.
Deci numarul este
N = 1, 10011110000111100100001 2
6
= 1100111, 10000111100100001 = 103, 5296.
2.2.4 Operat ii n virgula mobila
Adunarea si scaderea a doua numere n virgula mobila se efectueaza astfel:
1. Se compara cei doi exponent i pentru a-l determina pe cel mai mare;
2. Se aliniaza mantisa numarului cu exponent mai mic, prin deplasarea virgulei
corespunzatoare exponentului mai mare;
3. Se aduna (scad) mantisele aliniate, pastrand exponentul comun;
4. Eventual se normalizeaza mantisa, concomitent cu modicarea rezultatului.
Exemplul 2.13 Sa se efectueze adunarea n virgula mobila
3
4
+ 7.
x =
3
4
=
2
1
+ 2
0
2
2
= 2
1
+ 2
2
= (0, 11)
2
= 1, 1 2
1
,
y = 7 = (111)
2
= 1, 11 2
2
.
Deoarece y are exponentul mai mare, x se va alinia corespunzator:
x = 1, 11 2
1
= 0, 0011 2
2
Acum
x +y = (0, 0011 + 1, 11) 2
2
= 1, 1111 2
2
.
Nu este necesara normalizarea mantisei.
2.2. REPREZENTAREA NUMERELOR

IN SISTEMELE DE CALCUL 27
Exemplul 2.14 Sa calculam n virgula mobila 34 9:
x = 34 = (100010)
2
= 1, 001 2
5
,
y = 9 = (1001)
2
= 1, 001 2
3
= 0, 01001 2
5
.
Deci x y = (1, 00010 0, 01001) 2
5
= 0, 11001 2
5
.
Normalizand, se obt ine
x y = 1, 1001 2
4
= (11001)
2
= 25
Operat iile de nmult ire si mpart ire presupun:
1. Adunarea (scaderea) exponent ilor;
2.

Inmult irea (mpart irea) mantiselor;
3. Eventuala normalizare a mantisei.
Exemplul 2.15 Sa se efectueze n virgula mobila 5 9:
x = 5 = (101)
2
= 1, 01 2
2
, y = 9 = (1001)
2
= 1, 001 2
3
.
x y = (1, 01 1, 001) 2
2+3
= 1, 01101 2
5
= (101101)
2
= 45.
Exemplul 2.16 Sa se efectueze n virgula mobila 5 : 10.
x = 5 = (101)
2
= 1, 01 2
2
, 10 = (1010)
2
= 1, 01 2
3
.
x; y = (1, 01 : 1, 01) 2
23
= 1, 0 2
1
= (0, 1)
2
= 0, 5.
28 CAPITOLUL 2. REPREZENTAREA NUMERELOR

IN CALCULATOR
2.3 Exercit ii
1. Sa se treaca din baza 10 n baza 2 numerele
18926; 7772; 7863, 15; 0, 7.
2. Sa se treaca din baza 2 n baza 10 numerele
1101100010100110; 100010101001, 0011011001.
3. Sa se efectueze calculele
11 + 32600, 599 10692, 9862 + 20043 18552.
4. Sa se deneasca scaderea a doua numerentregi folosind ca reprezentare codul invers.
5. Sa se scrie n virgula mobila numerele
6489; 0, 1;
85
256
.
6. Sa se reprezinte numerele scrise n virgula mobila n exercit iul anterior, pe
(1) 32 pozit ii binare (simpla precizie);
(2) 64 pozit ii binare (dubla precizie).
7. Ce numar real are reprezentarea n simpla precizie
000010010011010110100011010101011.
8. Aceeasi problema pentru numarul a carui reprezentare n dubla precizie este:
10001001001001000011101101010100001001010110100100001010000110101.
9. Sa se efectueze n virgula mobila calculele
8 +
7
32
;
25
36
799; 361 12, 495; 38398/73.
10. Sa se detalieze operat iile de adunare si scadere cu numere reprezentate n forma
condensata.
Capitolul 3
Algebre si funct ii boolene
3.1 Denirea algebrelor booleene
Elementul teoretic fundamental necesar pentru analiza si sinteza circuitelor care formeaza
arhitectura unui calculator este cel de Algebra Boole
1
.
Denit ia 3.1 O algebra Boole este un sistem B= (B, , , 0, 1) cu proprietat ile:
1. a, b, c B (a b) c = a (b c); (asociativitatea lui )
2. a, b, c B (a b) c = a (b c); (asociativitatea lui )
3. a, b B a b = b a; (comutativitatea lui )
4. a, b B a b = b a; (comutativitatea lui )
5. 0 B unic astfel ncat a B a 0 = 0 a = a; (element unitate pentru )
6. 1 B unic astfel ncat a B a 1 = 1 a = a; (element unitate pentru )
7. a, b, c B a (b c) = (a b) (a c); (distributivitatea lui fat a de )
8. a, b, c B a (b c) = (a b) (a c); (distributivitatea lui fat a de )
9. a B, a B a a = 0, a a = 1. (complement)
O prima observat ie este ca o algebra booleana are cel put in doua elemente 0 si 1, iar
0 = 1.
1
George Boole (1815 - 1864): matematician si losof englez, considerat prin prisma algebrelor care
i poarta numele unul din fondatorii informaticii teoretice.
29
30 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Exemplul 3.1 Fie Q o mult ime. Mult imea Q= {P|P Q} = 2
Q
formeaza o algebra
Boole cu operat iile de reuniune si intersect ie.
Elementul 0 este mult imea vida , iar elementul 1 este mult imea Q.
Axiomele din Denit ia 3.1 se verica imediat.
Exemplul 3.2 Mult imea B = {0, 1} cu operat iile
0 1
0 0 1
1 1 1
0 1
0 0 0
1 0 1
formeaza de asemenea o algebra booleana B= (B, , , 0, 1).
3.2 Proprietat i ale algebrelor booleene

In acest paragraf vom face o trecere n revista a principalelor proprietat i ndeplinite de o


algebra Boole.
Teorema 3.1

Intr-o algebra booleana sunt vericate legile de idempotent a:
a a = a, a a = a.
Demonstrat ie: Vom avea
a a = (a a) 1 = (a a) (a a) = a (a a) = a 0 = a.
Pentru a doua relat ie vom proceda similar (prin dualitate):
a a = (a a) 0 = (a a) (a a) = a (a a) = a 1 = a.
Teorema 3.2 a 1 = 1, a 0 = 0.
Demonstrat ie:
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. (absorbt ie)
Demonstrat ie:
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.
3.3. ALTE OPERAT II BOOLEENE 31
Teorema 3.4 Pentru orice a B, a este unic.
Demonstrat ie: Presupunem prin absurd ca exista doua complemente a, a
1
ale lui a.
Conform Denit iei 3.1, avem
a a = a a
1
= 1, a a = a a
1
= 0.
Atunci
a
1
= 1a
1
= (aa)a
1
= a
1
(aa) = (a
1
a)(a
1
a) = 0(a
1
a) = (aa)(a
1
a) =
(a a
1
) a = 1 a = a.
Teorema 3.5 a = a.
Demonstrat ie: a este complementul lui a. Dar si a este complementul lui a.
Deoarece complementul este unic (Teorema 3.4), rezulta a = a.
Deci, putem considera complementara ca o aplicat ie bijectiva
: B B.
Teorema 3.6 a b = a b, a b = a b. (regulile De Morgan)
Demonstrat ie: Vom demonstra ca (a b) (a b) = 1 si (a b) (a b) = 0; deci a b
si a b sunt complementare.
Din Teorema 3.4 rezulta atunci a b = a b.
Vom avea
(ab)(ab) = [(ab)a] [(ab)b] = [(ba)a] [a(bb)] = [b(aa)] (a1) =
(b 1) 1 = 1 si
(ab) (ab) = [a(ab)] [b(ab)] = [(aa) b] [b(ba)] = 0[(bb) a] = 0.
Pentru a doua relat ie se procedeaza similar.
3.3 Alte operat ii booleene

Inafara celor trei operat ii folosite pana acum de o algebra booleana (, , ), mai sunt
cunoscute si alte operat ii.
Astfel, putem enumera:
1. Diferent a simetrica: a b = (a b) (a b);
2. Operatorul Sheer: a|b = a b;
3. Echivalent a: a b = (a b) (a b);
4. Implicat ia: a b = b a.
32 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Observat ia 3.1

In arhitectura calculatorului, implementarea operatorului este notata
cu XOR, iar | cu NAND.
Cei patru operatori au o serie de proprietat i specice ale caror demonstrat ii le lasam ca
exercit iu.
Propozit ia 3.1
1. 0 0 = 1 1 = 0, 0 1 = 1 0 = 1;
2. este asociativa si comutativa;
3. a 0 = a, a 1 = a;
4. a a = 0, a a = 1;
5. a b = c = a c = b;
6. a b = c = a b c = 0;
7. a (b c) = (a b) (a c).
Propozit ia 3.2
1. a b = a b;
2. a b = a b;
3. a b = (a b) (b a);
Propozit ia 3.3 Armat iile
1. a b = 0;
2. a b = 1;
3. a = b;
sunt echivalente.
3.4. FUNCT II BOOLEENE 33
3.4 Funct ii booleene

In continuare vom considera o algebra booleana particulara (vezi si Exemplul 3.2)


A= ({0, 1}, +, , 0, 1) unde
+ 0 1
0 0 1
1 1 1
0 1
0 0 0
1 0 1
Mai avem 0 = 1, 1 = 0. Axiomele unei algebre booleene se verica imediat.

In mod uzual, operatorul se omite (similar cu operatorul de nmult ire din mate-
matica).
Vom nota de asemenea {0, 1}
n
= {0, 1} {0, 1} . . . {0, 1}

n ori
.
Denit ia 3.2 O funct ie booleana f(x
1
, x
2
, . . . , x
n
) este o aplicat ie
f : {0, 1}
n
{0, 1}.
Exemplul 3.3 Pentru n = 2 se pot construi 16 funct ii booleene de doua variabile:
x
1
x
2
f
0
f
1
f
2
f
3
f
4
f
5
f
6
f
7
f
8
f
9
f
10
f
11
f
12
f
13
f
14
f
15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

In general pentru n oarecare vom avea:


Propozit ia 3.4 Pentru orice n 1 se pot deni 2
2
n
funct ii booleene de n variabile.
Demonstrat ie: Este imediata, deoarece {0, 1}
n
are 2
n
elemente, iar {0, 1} numai doua.
Denit ia 3.3 Fie f, g : {0, 1}
n
{0, 1}. Denim
f + g = h prin h(x
1
, x
2
, . . . , x
n
) = f(x
1
, x
2
, . . . , x
n
) + g(x
1
, x
2
, . . . , x
n
);
fg = h prin h(x
1
, x
2
, . . . , x
n
) = f(x
1
, x
2
, . . . , x
n
) g(x
1
, x
2
, . . . , x
n
);
f = g prin g(x
1
, x
2
, . . . , x
n
) = f(x
1
, x
2
, . . . , x
n
).
Exemplul 3.4 Sa consideram n = 2 si funct iile booleene (f
5
si f
1
din Exemplul 3.3):
f 0 1
0 0 1
1 0 1
g 0 1
0 0 0
1 0 1
Atunci funct iile f + g, fg, f si g sunt denite conform urmatorului tablou:
34 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
x
1
x
2
f g f + g fg f g
0 0 0 0 0 0 1 1
0 1 1 0 1 0 0 1
1 0 0 0 0 0 1 1
1 1 1 1 1 1 0 0
Deci operat iile cu funct ii sunt denite punct cu punct; reprezentarea lor sub forma tabelara
constituie o modalitate convenabila de calcul deoarece folosesc n mod direct formulele
din tabelele de operat ii ale algebrei booleene A.
Teorema 3.7 Fie F
n
mult imea funct iilor booleene de n (n 1) variabile. Sistemul
F
n
= (F
n
, +, , 0, 1) formeaza o algebra booleana (algebra Boole a funct iilor booleene de n
variabile).
Demonstrat ie: Axiomele algebrei boolene se verica usor, folosind Denit ia 3.3. Funct ia
0 este denita
0(x
1
, x
2
, . . . , x
n
) = 0, x
i
{0, 1} (1 i n),
iar funct ia 1 prin
1(x
1
, x
2
, . . . , x
n
) = 1, x
i
{0, 1} (1 i n).
Denit ia 3.4 Fie F
n
algebra Boole a funct iilor booleene de n variabile. Se numeste
pondere o aplicat ie w : F
n
N denita w(f) = card(f
1
(1)) (numarul de elemente
din {0, 1}
n
care au imaginea 1 prin f).
Exemplul 3.5

In Exemplul 3.3 sunt listate elementele algebrei F
2
. Ponderile acestor
elemente sunt listate n tabelul urmator:
f
0
f
1
f
2
f
3
f
4
f
5
f
6
f
7
f
8
f
9
f
10
f
11
f
12
f
13
f
14
f
15
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) = 2
n
;
2. w(f + g) + w(fg) = w(f) + w(g).
Vom ncerca n continuare sa denim o reprezentare a funct iilor booleene, utila n con-
struirea circuitelor liniare.
Aceasta reprezentare se bazeaza pe not iunea de minterm.
3.4. FUNCT II BOOLEENE 35
Denit ia 3.5 Fie n (n 1) un numar ntreg si i [0, 2
n
1]. Consideram (i
1
, i
2
, . . . , i
n
)
2
reprezentarea binara a lui i:
i =
n

k=1
i
k
2
nk
i
k
{0, 1}.
Atunci funct ia minterm m
i
(x
1
, x
2
, . . . , x
n
) F
n
este denita prin
m
i
(x
1
, x
2
, . . . , x
n
) =

1 daca x
1
= i
1
, x
2
= i
2
, . . . , x
n
= i
n
0 altfel
Vom nota n continuare i = (i
1
, i
2
, . . . , i
n
)
2
reprezentarea binara a numarului ntreg i
[0, 2
n
1].
Propozit ia 3.5
1. m
i
m
j
= 0 daca i = j.
2. m
i
m
i
= m
i
.
Demonstrat ie: Imediat.
Teorema 3.9 Orice funct ie booleana poate reprezentatan mod unic ca suma de mintermi.
Demonstrat ie: Prin induct ie dupa k = w(f).
k = 0: trivial;
k = 1: orice astfel de funct ie este un minterm.
k k +1: Sa presupunem ca f este o funct ie de pondere k +1. Deci exista un ntreg
i = (i
1
, i
2
, . . . , i
n
)
2
astfel ca f(i
1
, i
2
, . . . , i
n
) = 1.
Atunci conform Teoremei 3.8 f(x
1
, x
2
, . . . , x
n
) = m
i
(x
1
, x
2
, . . . , x
n
)+g(x
1
, x
2
, . . . , x
n
)
unde w(g) k.
Unicitatea este si ea imediata.
Corolarul 3.1 Orice funct ie booleana f F
n
este de forma
f(x
1
, x
2
, . . . , x
n
) =

iI
m
i
(x
1
, x
2
, . . . , x
n
)
unde I {0, 1, . . . , 2
n
1}.
Corolarul 3.2 Daca
f(x
1
, x
2
, . . . , x
n
) =

iI
m
i
(x
1
, x
2
, . . . , x
n
), g(x
1
, x
2
, . . . , x
n
) =

iJ
m
i
(x
1
, x
2
, . . . , x
n
)
atunci
f(x
1
, x
2
, . . . , x
n
) + g(x
1
, x
2
, . . . , x
n
) =

iIJ
m
i
(x
1
, x
2
, . . . , x
n
),
f(x
1
, x
2
, . . . , x
n
)g(x
1
, x
2
, . . . , x
n
) =

iIJ
m
i
(x
1
, x
2
, . . . , x
n
),
f

(x
1
, x
2
, . . . , x
n
) =

iI
m
i
(x
1
, x
2
, . . . , x
n
).
36 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Exemplul 3.6 Fie n = 2 si funct ia booleana:
f(x
1
, x
2
) = m
0
(x
1
, x
2
) + m
2
(x
1
, x
2
) + m
3
(x
1
, x
2
)
Un tabel cu valorile tuturor funct iilor minterm de doua variabile si cu valorile funct iei
f este:
x
1
x
2
m
0
(x
1
, x
2
) m
1
(x
1
, x
2
) m
2
(x
1
, x
2
) m
3
(x
1
, x
2
) f
0 0 1 0 0 0 1
0 1 0 1 0 0 0
1 0 0 0 1 0 1
1 1 0 0 0 1 1
3.5 Forme canonice
Scopul acestui paragraf este de a asocia ecarei funct ii booleene f o expresie booleana
scrisa sub o forma unica. Aceasta se va numi forma canonica a lui f sau forma normal
disjunctiva a lui f.
O consecint a importanta a acestei reprezentari va aceea ca putem verica echivalent a
a doua expresii cercetand daca acestea pot reduse la aceeasi forma canonica (deci nu vom
mai face apel la construct ia tabelelor de valori a funct iei asociate, destul de costisitoare
din punct de vedere al complexitat ii).
Denit ia 3.6 Un literal este o variabila sau complementul ei.
Denit ia 3.7 Fie B
n
= {x
1
, x
2
, . . . , x
n
}. O expresie este un minterm sau un produs
fundamental n algebra Boole B
n
= (B
n
, +, , 0, 1) daca si numai daca este concatenarea
a n literali distinct i.
Exemplul 3.7 Cei opt mintermi din B
3
sunt
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
x
1
x
2
x
3
Mintermii vor notat i n felul urmator: e (i
1
, i
2
, . . . , i
n
) {0, 1}
n
.
Atunci un minterm standard este
x
i
1
1
x
i
2
2
. . . x
i
n
n
unde
x
i
j
j
=

x
j
pentru i
j
= 0
x
j
pentru i
j
= 1
(1 j n).
Exemplul 3.8 x
0
1
x
1
2
x
1
3
= x
1
x
2
x
3
, x
1
1
x
0
2
x
0
3
= x
1
x
2
x
3
etc.
3.5. FORME CANONICE 37
Observat ia 3.2 Fiecare minterm x
i
1
1
x
i
2
2
. . . x
i
n
n
corespunde funct iei booleene
m
i
(x
1
, x
2
, . . . , x
n
) unde i = (i
1
, i
2
, . . . , i
n
)
2
.
Teorema 3.10 Daca f este o funct ie booleana de o variabila (f F
1
) atunci
f(x) = xf(1) + xf(0).
Demonstrat ie: Sa consideram cele doua valori posibile pe care le poate lua variabila
booleana x.
Pentru x = 1 vom avea
f(1) = 1 f(1) + 0 f(0) = f(1).
Similar pentru asignarea x = 0.
Deci egalitatea se verica pentru toate asignarile posibile ale variabilei.
Urmatoarea teorema da forma canonica pentru orice funct ie booleana de n variabile.
Teorema 3.11 Daca f este o funct ie booleana de n variabile (f F
n
) atunci
f(x
1
, x
2
, . . . , x
n
) =
1

i
1
=0
1

i
2
=0
. . .
1

i
n
=0
f(i
1
, i
2
, . . . , i
n
)x
i
1
1
x
i
2
2
. . . x
i
n
n
.
Aceasta este forma normal disjunctiva a funct iei f.
Demonstrat ie: Prin induct ie dupa numarul n de variabile.
Pentru n = 1 avem rezultatul dat de Teorema 3.10.
Sa presupunem Teorema 3.11 adevarata pentru n 1 variabile, adica
f(x
1
, x
2
, . . . , x
n
) =
1

i
2
=0
. . .
1

i
n
=0
f(x
1
, i
2
, . . . , i
n
)x
i
2
2
. . . x
i
n
n
.
Pe de alta parte, f(x
1
, i
2
, . . . , i
n
) = x
0
1
f(0, i
2
, . . . , i
n
) + x
1
1
f(1, i
2
, . . . , i
n
) si, dupa nlo-
cuire
f(x
1
, x
2
, . . . , x
n
) =
1

i
2
=0
. . .
1

i
n
=0
(x
0
1
f(0, i
2
, . . . , i
n
) + x
1
1
f(1, i
2
, . . . , i
n
))x
i
2
2
. . . x
i
n
n
=
1

i
1
=0
. . .
1

i
n
=0
f(i
1
, i
2
, . . . , i
n
)x
i
1
1
x
i
2
2
. . . x
i
n
n
.
Corolarul 3.3 Forma normal disjunctiva a unei funct ii booleene este unica.
Demonstrat ie: Sa presupunem ca exista doua forme normale diferite corespunzatoare lui
f.
Deci exista cel put in un (i
1
, i
2
, . . . , i
n
) {0, 1}
n
pentru care coecient ii din cele doua
expresii sunt diferit i.
Consideram asignarea denita prin x
1
= i
1
, . . . , x
n
= i
n
.
38 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
Evalu and prima expresie obt inem f(i
1
, i
2
, . . . , i
n
) = 1(0), iar pentru a doua expresie
f(i
1
, i
2
, . . . , i
n
) = 0(1), ceea ce contrazice faptul ca ambele expresii reprezinta f.
Fiind data o funct ie booleana f, sa vedem cum se poate scrie forma sa normal dis-
junctiva.
Cel mai sugestiv este sa aratam aceasta printr-un exemplu.
Exemplul 3.9 Fie f F
3
denita de urmatorul tabel:
x
1
0 0 0 0 1 1 1 1
x
2
0 0 1 1 0 0 1 1
x
3
0 1 0 1 0 1 0 1
f 0 1 0 1 0 1 0 1
Pe linia lui f, primul element este 0.
Deci termenul corespunzator este f(0, 0, 0)x
0
1
x
0
2
x
0
3
= 0 x
1
x
2
x
3
= 0.
Deoarece a + 0 = a, contribut ia oricarei coloane unde valoarea lui f este 0 poate
ignorata.
Daca valoarea lui f este 1, termenul respectiv va pastrat.
Deci
f(x
1
, x
2
, x
3
) = x
0
1
x
0
2
x
1
3
+x
0
1
x
1
2
x
1
3
+x
1
1
x
0
2
x
1
3
+x
1
1
x
1
2
x
1
3
= x
1
x
2
x
3
+x
1
x
2
x
3
+x
1
x
2
x
3
+x
1
x
2
x
3
.
3.6 Inele booleene
Denit ia 3.8 Un inel boolean este un inel unitar n care orice element este idempotent.
Fie B= (B, , , 0, 1) o algebra Boole, n care denim operat iile (pentru orice x, y B):
x y = (x y) (x y), x y = x y.
Structura (B, , ) formeaza o structura de inel boolean.
Regulile de comutativitate si asociativitate fat a de se deduc din postulatele algebrei
booleene B.
Din relat ia x 1 = 1 x = x rezulta ca 1 este element neutru.

In plus, orice element este idempotent, pentru ca x x = x.


Pentru : comutativitatea rezulta n mod banal.
Pentru asociativitate:
(xy)z = ((xy)z)(x yz) = [((xy)(xy))z] [(x y) (x y)z] =
[(xyz)(xyz)][(xy)(xy)z] = (xyz)(xyz)(xyz)(xyz),
relat ie simetrica n x, y, z. Deci (x y) z = x (y z).
Elementul nul este 0 pentru ca x 0 = (x 0) (x 0) = (x 1) 0 = x.
Fiecare element este propriul sau invers, deoarece
3.7. EXERCIT II 39
x x = (x x) (x x) = 0 0 = 0.
Aceasta relat ie se poate scrie 2x = 0, ceea censeamna ca avem un inel de caracteristica
2 (proprietate care se poate demonstra pentru orice inel boolean).
Distributivitatea se verica similar:
xyxz = ((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 algebra Boole, cu
operat iile
x y = x + y + x y, x y = x y.
Demonstrat ie: Se verica axiomele Denit iei 3.1, unde complementara este denita 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 corespondent a biunivoca ntre inelele booleene si algebrele
booleene.
Aceasta conduce la o serie de aplicat ii interesante, n special prin inducerea pro-
prietat ilor structurilor algebrice n domeniul algebrelor Boole.
3.7 Exercit ii
1. Sa se arate ca ntr-o algebra booleana au loc relat iile:
a (a b) = a b, a (a b) = a b.
2.

Intr-o algebra Boole se deneste o relat ie de ordine prin
a b b = a b
Sa se arate ca a b b a.
3. a b a b = 0 a b = 1.
4. a b = 0 b a.
5. Demonstrat i armat iile din Propozit iile 3.1, 3.2 si 3.3.
6. Sa se arate ca pe F
n
se poate deni o distant a prin relat ia
(f, g) = w(f + g) w(fg).
Sa se construiasca un tabel cu distant ele elementelor lui F
2
.
40 CAPITOLUL 3. ALGEBRE SI FUNCT II BOOLENE
7. Demonstrat i Teorema 3.8, Propozit ia 3.5 si Corolarul 3.2.
8. Fie A o mult ime nita nevida. Structurat i 2
A
sub forma de inel boolean.
9. Dac a f F
n
, atunci
f(x
1
, . . . , x
n
) = f(x
1
, . . . , x
n1
, 0) + [f(x
1
, . . . , x
n1
, 0) + f(x
1
, . . . , x
n1
, 1)]x
n
.
10. Construit i un algoritm de generare a formei normal conjunctive asociata unei funct ii
booleene.
11. Sa se arate echivalent a expresiilor booleene
[b (a c) (a c)] (b c), (a b c) (a b c) (a b c) (a b c).
12. Sa se arate ca expresiile booleene
a (a b) (b c), b (a b)
sunt echivalente. Sa se scrie forma normal disjunctiva si normal conjunctiva a
funct iei asociate.
Capitolul 4
Sisteme digitale
4.1 Circuite combinat ionale
Odata cu acest capitol vom ncepe un studiu sistematic al elementelor fundamentale de
construct ie a circuitelor.
Denit ia 4.1 Un circuit este un graf orientat cu cel put in o intrare si cel put in o iesire,
care are doua tipuri de noduri: conectori si port i.
Intrarile unui circuit primesc semnale, sub forma unor seturi de valori din mult imea
{0, 1}
n
(n ind numarul de intrari ale circuitului).
Denit ia 4.2 Un circuit combinat ional (CLC
1
) este o ret ea arborescenta n care iesirea
la momentul (tactul) t depinde numai de intrarile la momentul (tactul) t.
Un circuit este activ daca iesirea sa este

1

; n caz contrar, circuitul este inactiv.


4.1.1 Port i
Cele mai simple circuite sunt circuitele constante

0

si

1

; 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

) sau dezactivandu-l (la valoarea



0

).
Indiferent daca modul de activare/dezactivare este de tip mecanic, electric, electro-
magnetic, integrat, imprimat, neural, ideea de baza este aceeasi: pentru nt elegere, vom
considera circuitul sub forma unei linii legata la o sursa permanenta de curent, linie
ntrerupt a de o poarta al carei rol este de a nchide sau deschide circuitul:
1
Denumirea completa este Circuit Logic Combinat ional.
41
42 CAPITOLUL 4. SISTEME DIGITALE

> >

. .
--
a a
a = 0 (dezactivat) a = 1 (activat)
Poarta poate deschisa (dezactivata) prin intermediul unui arc, care n pozit ie de repaos
(a = 0) este destins.
Daca a = 1, acest arc este comprimat si nchide poarta, activand astfel circuitul, prin
care trece (de fapt) valoarea lui a.
Vom nota un astfel de circuit prin a .
Sa denim modul de combinare al circuitelor elementare, folosind operat iile booleene
(disjunct ie, conjunct ie, negat ie).
Implementarea acestor operat ii se realizeaza prin circuite numite port i.
Poarta AND:
Fie a, b doua variabile booleene. Pentru ab (sau n funct ie de notat ie a b) se
poate construi circuitul

> >

> >

a
b
(1)
`

a
b
a b
(2) (3)
0 1
0 0 0
1 0 1
(1) este structura funct ionala a circuitului, (2) este notat ia logica, iar (3) - tabela
de operat ie a operatorului AND operatorul dintr-o algebra Boole.
Se observa ca valoarea de iesire este 1 daca si numai daca a = b = 1.
Simbolul port ii AND (Figura (2)) poate generalizat la n intrari a
1
, . . . , a
n
, obt i-
nandu-se o poarta AND
n
.
Poarta OR:
Pentru poarta care realizeaza circuitul a + b (a b n notat ie booleana), structura
funct ionala este reprezentata n Figura (1), simbolul logic de Figura (2), iar tabela
de operat ii - de Figura (3):
4.1. CIRCUITE COMBINAT IONALE 43
`
`
>>

>>

> >


a
b
`

a
b
a +b
(1) (2) (3)
+ 0 1
0 0 1
1 1 1
Evident, si aceasta poarta poate extinsa la n intrari: OR
n
.
Poarta NOT:
O poarta pentru realizarea operat iei de complementare (negat ie) a variabilei booleene
a este Figura (1):
`
`
>>

>>


a
a
a a
(1) (2) (3)
Se observa ca circuitul este nchis prin pozit ia relaxata a arcului (a = 0); la com-
primarea acestuia (a = 1) circuitul se dezactiveaza (deschide).
Simbolul logic este (2), iar uneori chiar (3).

Inafara acestor operat ii, n construct ia circuitelor se mai folosesc trei tipuri supli-
mentare de port i: NAND, NOR si XOR.
Poarta NAND:
Este un circuit care implementeaza expresia booleana a b. Figura (2) reprezinta
o alta implementare, obt inuta n urma relat iei De Morgan: a b = a b.
Simbolul logic al port ii NAND este Figura (3).


> >

> >

> >

a
b
(1)

>>

>>

> >

b
a (2)
`

a
b
a b
(3)
44 CAPITOLUL 4. SISTEME DIGITALE
Tabela de operat ii a operatorului NAND (similar operatorului Sheer din algebra
Boole) este
|| 0 1
0 1 1
1 1 0
Poarta NOR:
Este un operator mai put in folosit n teoria algebrelor Boole (nu corespunde unui
operator logic consacrat).
Reprezinta operat ia a b = a b.
`

a
b
a b

-
-
-
.
.

-
-
-
.
.
a
b
Tabela de operat ii este:
NOR 0 1
0 1 0
1 0 0
De fapt acesti operatori (NAND si NOR) se obt in prin legarea n serie a doua
port i: o poarta AND (respectiv OR) si o poarta NOT.
Teoretic ei se pot generaliza la NAND
n
(respectiv NOR
n
).
Poarta XOR:
Este implementarea operat iei sau logic ab ba (operatorul dintr-o algebra
Boole):

> >

>>

>>
>>

>>

> >

a
b
a
b
(1)
`

a
b
ab ba
(2) (3)
0 1
0 0 1
1 1 0
4.1. CIRCUITE COMBINAT IONALE 45
4.1.2 Circuite

In linii mari, arhitectura unui calculator se bazeaza pe construirea de circuite care formeaza
diverse componente ale unui computer (n special unitatea logico-aritmetica, unitat ile de
memorie, magistralele de sincronizare, structuri de control).
Cele mai simple circuite sunt cele combinat ionale.
Conform Denit iei 4.2, un circuit combinat ional este o structura arborescenta con-
struita folosind un numar nit de port i.
De exemplu, circuitul urmator nu este combinat ional:

a
b

In general vom considera circuitele combinat ionale cu un numar de intrari (noduri de


intrare) egal cu numarul de variabile si avand o singura iesire (nod nal).
Denit ia 4.3 Fie X un circuit combinat ional de intrari a
1
, . . . , a
n
. Se numeste funct ie
de transmisie a lui X funct ia booleana f
X
(a
1
, . . . , a
n
) cu proprietatea ca f
X
= 1 daca si
numai daca exista un drum activ de la nodurile de intrare la nodul nal.
Teorema 4.1 Doua circuite combinat ionale X, Y sunt echivalente daca f
X
= f
Y
.
Exemplul 4.1 Sa consideram funct ia booleana f(a, b, c) = bc(a b). Un circuit combi-
nat ional care o implementeaza este


a
b
c
f(a, b, c)
Cum aceasta expresie este nsa egala cu bcab = 0, pentru ea se poate construi un circuit
echivalent redus la un simplu punct.
Evident, acesta este mult mai simplu (nu are nici o poarta, n comparat ie cu circuitul
init ial cu doua port i).
Denit ia 4.4 Complexitatea unui circuit combinat ional este dat de numarul de port i.
Nu vom face o prezentare a not iunilor de complexitate (spat iu sau timp), acestea ind
identice cu cele folosite n algoritmica.
46 CAPITOLUL 4. SISTEME DIGITALE
4.2 Extensii
Putem construi ntreaga arhitectura a unui calculator plecand de la un element teoretic
de baza numit sistem digital.
Denit ia 4.5 Fie V un alfabet nit nevid si m, n doua numere naturale. Se numeste
sistem digital structura S = (X, Y, f) unde X = V
n
, Y = V
m
, f : X Y .
Un exemplu simplu de sistem digital este circuitul combinat ional, exprimabil printr-o
funct ie booleana.

In aceasta carte vom considera numai sistemele digitale binare, unde V = {0, 1}. De
aceea nu va nici o ambiguitate daca vom desemna sistemele digitale binare cu termenul
general de sisteme digitale.
Funct ia f se numeste funct ie de transfer.
De asemenea, cazurile n = 0 sau m = 0 corespund unor sisteme digitale speciale
(de iesire respectiv intrare) care vor studiate separat.

In continuare consideram numai
m n = 0.
Sistemele digitale date prin Denit ia 4.5 se pot reprezenta grac sub forma urmatoare:
S

n
m
Y
X
unde prin convent ie un ux de n date se reprezenta printr-o singura sageata
marcata cu valoarea lui n:

n
A = (a
1
, a
2
, . . . , a
n
)

a
1
a
2
a
n
. . .

4.2. EXTENSII 47
Operat iile de baza care se pot deni pentru sistemele digitale sunt cele de legare n
serie si n paralel, operat ii numite extensii.
Denit ia 4.6 Fie sistemele digitale S
i
= (X
i
, Y
i
, f
i
), i = 1, 2 unde
X
1
= {0, 1}
n
, Y
1
= X
2
= {0, 1}
m
, Y
2
= {0, 1}
p
Se numeste extensie seriala sistemul digital S = (X, Y, f) unde X = X
1
, Y = Y
2
, iar
funct ia de transfer f : X Y este denita prin f = f
2
f
1
.
Grac, are loc urmatoarea operat ie:
S
1
S
2

n
m
p
X
1
Y
2
S
S
1
S
2

n
X
1
X
2
Y
1
Y
2
p

m
=
Denit ia 4.7 Fie S
i
= (X
i
, Y
i
, f
i
), (i = 1, 2) doua sisteme digitale. Extensia paralela
S
1
S
2
este sistemul
S = (X
1
X
2
, Y
1
Y
2
, f
12
)
unde f
12
: X
1
X
2
Y
1
Y
2
este denita f
12
(x, y) = (f
1
(x), f
2
(y)).
Grac, are loc operat ia de combinare:
S
1
S
2

n
1

m
1

n
2

m
2
X
1
Y
1
X
2
Y
2
S
1
S
2


n
1
+n
2

m
1
+m
2

n
1

n
2

m
1
m
2


X
1
X
2
Y
1
Y
2
=
S
De remarcat ca ntr-o extensie paralela cele doua sisteme digitale nu interact ioneaza.
48 CAPITOLUL 4. SISTEME DIGITALE
Exemplul 4.2 Sa consideram sistemele digitale S
1
= ({x
1
1
, x
1
2
}, {y
1
1
}, f
1
) si
S
2
= ({x
2
1
, x
2
2
, x
2
3
}, {y
2
1
, y
2
2
}, f
2
) date de gura
S
1
S
2

x
1
1
x
1
2
x
2
1
x
2
2
x
2
3
y
1
1
y
2
1
y
2
2
Extensia paralela S
1
S
2
este
S
1
S
2

x
1
1
x
1
2
x
2
1
x
2
2 x
2
3
y
1
1
y
2
1
y
2
2
iar extensia seriala a lui S
2
cu S
1
:
S
1
S
2

x
2
1
x
2
2
x
2
3
y
1
1
y
2
1
= x
1
1
y
2
2
= x
1
2
Denit ia 4.8 Fie sistemele digitale S
i
= (X
i
, Y
i
, f
i
), (1 i 4) cu X
i
= {0, 1}
n
i
, Y
i
=
{0, 1}
m
i
si m
1
+m
2
= n
3
+n
4
. O extensie serial-paralela este sistemul
S = (X
1
X
2
, Y
3
Y
4
, f)
unde f : X
1
X
2
Y
3
Y
4
este denita f = f
34
f
12
(f
12
si f
34
sunt funct iile de
transfer ale extensiilor paralele S
1
S
2
respectiv S
3
S
4
).
Grac, o extensie serial - paralela are forma
4.2. EXTENSII 49
S
1
S
2

n
1
+n
2

n
1

n
2

m
1

m
1
+m
2

n
3


m
2

n
4
S
3
S
4

m
3

m
3
+m
4

m
4

X
1
X
2
Y
3
Y
4
S
Exemplul 4.3 Un circuit combinat ional care incrementeaza (s = 0) sau decrementeaza
(s = 1) un numar x
1
x
0
format din doi bit i, poate denit astfel:
INC DEC
MUX MUX
,

>
>
>
>
>
>.


x
1
x
0
s
y
1
y
0

INCR (incrementare), DECR (decrementare), MUX (select ie) sunt circuite combinat io-
nale (care vor denite mai tarziu), iar circuitul nal rezultat prin extensia serial -
paralela este evident tot combinat ional.
50 CAPITOLUL 4. SISTEME DIGITALE
4.3 Cicluri
Pentru cresterea gradului de complexitate al circuitelor digitale se deneste o noua opera-
t ie numita ciclu.
Denit ia 4.9 Fie sistemul digital S
1
= (X X
1
, Y Y
1
, h) unde X
1
= Y
1
. Notam
h = (f, f
1
) unde f : X X
1
Y, f
1
: X X
1
Y
1
.
Prin identicarea (conectarea seriala) a lui Y
1
cu X
1
se obt ine o ciclu si noul sistem
are forma S = (X, Y, g), unde g : X Y este denita g(x) = f(x, f
1
(x, y)); f
1
se
numeste funct ie de tranzit ie si verica denit ia recursiva y = f
1
(x, f
1
(x, y)).
Vom avea deci urmatoarea situat ie:
S
1

m
X X
1
Y Y
1
S
1

p

`
m

X X
1
= Y
1
Y S
S

p
X
Y
Dupa cum se observa n Denit ia 4.5, apare o noua variabila ascunsa care ia valori n
mult imea Q = X
1
= Y
1
; atunci f : X Q Y, f
1
: X Q Q.
Mult imea Q caracterizeaza comportarea interna a sistemului digital; aceasta com-
portare se mai numeste stare interna sau pe scurt stare.
Efectul fundamental al comportarii interne consta n evolut ia sistemului pe spat iul de
valori Q, fara modicari ale intrarii X.
Pentru un a X aplicat constant la intrare, iesirea poate prezenta diverse variat ii. De
aceea, spunem ca autonomia unui sistem creste ca urmare a introducerii acestuia
ntr-o ciclu.
De obicei noile elemente legate de stare sunt introduse n denit ia sistemului; astfel,
el se va scrie S = (X, Y, Q, f
1
, g).
Exemplul 4.4 Sa consideram sistemul S
1
= (XX
1
, Y, f) unde X = {0, 1}, X
1
= Y =
{0, 1}
2
, iar f este denit de tabelul
X X
1
Y X X
1
Y
0 00 01 1 00 01
0 01 00 1 01 10
0 10 00 1 10 11
0 11 10 1 11 00
4.3. CICLURI 51
Prin identicarea (legarea seriala a) lui Y cu X
1
se obt ine un nou sistem S.
Tranzit iile sale sunt ilustrate mai jos (se face abstract ie de timpul real cat este aplicat
un semnal la intrare).
S
1


2
X X
1
Y
S
,
`
_
`
_
`
_
`
_
00 01
10 11

0
0, 1
1 0
1
0
1
Iesirea sistemului S
1
este aceeasi cu cea a sistemului S.
Dupa nchiderea ciclului (X
1
= Y ), sistemul S
1
capata n funct ie de tranzit ie un
comportament al iesirii autonom de intrare.
De exemplu, intrarea (constanta) 11111 . . . n sistemul S va determine iesirea ciclica
01 10 11 00 01 . . .
Denit ia 4.10 Comportarea unui sistem digital S este autonoma daca si numai daca
pentru o intrare constanta, iesirea are un comportament dinamic.
Sa introducem acum not iunea de subciclu.
Denit ia 4.11 Un ciclu A este inclus n alt ciclu B daca A apart ine unui sistem care
face parte dintr-o extensie seriala nchisa prin ciclul B.
Spunem ca A este subciclu al lui B.
De exemplu, n gura urmatoare, (1) este subciclu al lui (2).
S
1
S
2

X
(1)
(2)
Y
Se poate da acum o denit ie a sistemelor digitale de ordin n.
52 CAPITOLUL 4. SISTEME DIGITALE
Denit ia 4.12 Un sistem de ordin n (n 0) n DS se deneste recursiv astfel:
1. Orice circuit combinat ional (fara cicluri) este un 0 DS.
2. Un (n + 1) DS sistem se obt ine dintr-un n DS adaugand un ciclu care include
toate cele n cicluri anterioare.
3. Orice n DS se obt ine prin aplicarea regulilor anterioare.
De-a lungul acestei cart i se va arata urmatoarea corespondent a ierarhica pentru n
DS, care corespunde arhitecturii unui calculator:
0 DS: sunt circuite combinat ionale (fara autonomie);
1 DS: circuite de memorie (cu autonomie pe spat iul starilor);
2 DS: automate nite (cu autonomie pe tipul de comportare);
3 DS: procesoare (cu autonomie pe interpretarea starilor interne);
4 DS: calculatoare
4.4 Exercit ii
1. Construit i circuite care realizeaza port ile AND, OR, NOT, NOR si XOR folosind
numai port i NAND.
2. Construit i circuite care realizeaza port ile AND, OR, NOT, NAND si XOR folosind
numai port i NOR.
3. Se da circuitul:

.
.
.

.
.
.


,
,
,
a
b
c

x
y

Construit i tabela sa de adevar.


4.4. EXERCIT II 53
4. Se da funct ia booleana denita prin tabelul
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
f(a, b, c) 0 1 1 1 0 0 1 1
Sa se construiasca un circuit care implementeaza aceasta funct ie.
5. Construit i un circuit care implementeaza funct ia booleana
f(a, b, c) = abc +abc +abc
6. Aceeasi problema pentru funct ia booleana
g(a, b, c, d, e) = a(bc bc) +b(cd e)
7. Sunt echivalente urmatoarele doua funct ii booleene ?
f(a, b, c) = abc +abc g(a, b, c) = (a c)b
8. Scriet i o funct ie booleana descrisa de circuitul urmator:

a
b
c
f(a, b, c)
Aranjat i raspunsul n forma normal disjunctiva, apoi forma normal conjunctiva.
9. Sa se construiasca un circuit cu doua port i pentru implementarea funct iei booleene
f(a, b) = ab +ab
Capitolul 5
Sisteme 0 DS
Acestea sunt cele mai simple tipuri de sisteme digitale, caracterizate complet prin funct ii
booleene.
Astfel, multe funct ii digitale pot generate plecand de la circuitele elementare care le
realizeaza, la care se adauga o regula recursiva (pentru executarea funct iei independent
de marimea intrarii).
Vom trece n revista cele mai importante sisteme care pot descrise n acest mod.
5.1 Decodicatoare
Un sistem digital are drept mult ime de valori de intrare n-tupluri binare din {0, 1}
n
.
Semnalul care vine printr-un canal zic trebuie transferat ntai ntr-o astfel de valoare,
acceptata de intrarea sistemului.
De aceea, prima problema care trebuie rezolvata este standardizarea si determinarea
exacta a semnalului recept ionat.
Aceasta este una din principalele funct ii ale unui sistem digital.

Inainte de a genera
un raspuns semnalului primit, trebuie sa stim ce semnal s-a primit.
Circuitul care ndeplineste acest deziderat se numeste decodicator.
Cel mai simplu decodicator este decodicatorul elementar (EDCD), care ca scop
determinarea valorii unui bit.
Schema sa de construct ie este data de Figura (a) sau (b), iar reprezentarea simbolica
Figura (c) respectiv (d):
55
56 CAPITOLUL 5. SISTEME 0 DS
.
.
.



,
x
0
y
0
y
1
(a)
x
0

.
.
.

,
.
.
.



y
1
y
0
(b)
EDCD


x
0
y
0
y
1
(c)
EDCD


x
0
y
0
y
1
(d)
Decodicatorul elementar a fost obt inut prin extensia paralela a circuitelor care realizeaza
cele mai simple funct ii f(x
0
) = y
1
= x
0
(funct ia identica) si g(x
0
) = y
0
= x
0
(funct ia
NOT).
Se observa ca permanent una si numai una din liniile de iesire are valoarea

1

(este
activa): daca este activa iesirea y
0
, atunci intrarea a avut valoarea

0

, iar daca este activa


iesirea y
1
, intrarea a avut valoarea

1

.
Determinarea valorii exacte a bitului de intrare x
0
se face deci aand ce iesire a de-
codicatorului este activa.
Pentru a izola iesirea din canal (sau din alt sistem digital) de intrarea n decodicator
(lucru recomandat n practica), ntre cele doua circuite se mai insereaza o poarta logica;
cum singurul operator unar utilizat este NOT, el se va adauga printr-o extensie seriala,
obt inandu-se un EDCD cu buer (gura (b)).

In acest fel, comportamentul unui EDCD este protejat de eventuale probleme ale
circuitului care asigura intrarea.
Generalizand, obiectivul acestei sect iuni este aceea de a construi un decodicator
(DCD) cu n intrari (DCD
n
) pentru decodicarea semnalelor formate din n bit i.
Ulterior, orice sistem digital va avea intrarea conectata la iesirea unui de-
codicator.
Denit ia 5.1 Un DCD
n
este un circuit combinat ional cu intrarea X = {0, 1}
n
formata
din n bit i (x
n1
, . . . , x
1
, x
0
) si iesirea Y reprezentata prin m = 2
n
bit i y
m1
, . . . , y
0
.
Fiecare iesire este activa numai pentru o anumita congurat ie binara de intrare, si
reciproc ecare congurat ie de intrare activeaza un singur bit de iesire.
Structura unui DCD
n
se deneste recursiv. Astfel:
1. Un DCD
1
este un EDCD reprezentat n gura (b);
2. Un DCD
n
(n 2) se obt ine combinand un DCD
n1
cu un DCD
1
dupa regula din
gura urmatoare:
5.1. DECODIFICATOARE 57
`` `` `
. . . . . .

, ,

, ,


DCD
n1


,
(x
n2
, . . . , x
0
)
n1
x
n1
y
0
y
1
y
2
n1
y
0
y
1
y
2
n1
1
y
2
n1 y
2
n
1
DCD
n
Singura dicultate n aceasta construct ie consta n adancimea (numarul mare de nivele
ale) structurii.

In plus, sistemul cont ine pe aceste nivele un total de 2


n
+ 2
n1
+ . . . + 2 = 2
n+1
2
port i AND (nafara celor 2n port i NOT).
Deci un DCD
n
construit pe baza denit iei recursive de mai sus, are o complexitate
exponent iala.
Ea poate micsorata substant ial, reducand adancimea decodicatorului, de la ordinul
n pana la ordinul 1, pe baza urmatoarei observat ii: intrarea n ecare AND este de forma
(a); folosind asociativitatea, cele doua componente AND pot nlocuite cu una singura,
avand trei intrari, cum este n (b):
`
`
`

x
0
x
1
x
2
x
0
x
1
x
2
y
(b)
y
(a)
=
Noul DCD va avea numai n 1 nivele.
Procedeul se repeta de nca n 1 ori; n nal se obt ine un DCD
n
cu n intrari, 2n
invertoare, 2
n
iesiri, dar numai 2
n
port i AND, toate situate pe un singur nivel.
58 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.1 Pentru n = 3 vom avea decodicatorul DCD
3
cu schema:


y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
000 100 010 110 001 101 011 111

,

,

,

,

,

,
x
0
x
1
x
2
1
0
1
0
1
0
Pentru un mesaj de forma 110, intrarea va x
0
:= 1, x
1
:= 1, x
0
:= 0. Urmarind
circuitul decodicator DCD
3
, se obt ine y
3
= 1 si y
i
= 0 pentru i = 3.
Ca o remarca, iesirea activa dintr-un DCD
n
va y
i
daca si numai daca reprezentarea n
binar a lui i este x
n1
x
n2
. . . x
0
.
5.2. CODIFICATORI 59
5.2 Codicatori
Dupa cum s-a vazut, un decodicator sistematizeaza intrarea ntr-un sistem digital.

In particular, el pune o problema sub o forma standard. Raspunsul la aceasta problema


este generat de un codicator.
Denit ia 5.2 Un (2
n
, p) - codicator este un circuit cu m = 2
n
intrari dintre care la
ecare moment numai una este activa; pentru ecare intrare el genereaza o congurat ie
binara de lungime p. Circuitul consta din p port i OR sau din p port i NAND, ecare
poarta avand maxim m intrari.
Un codicator nu este denit niciodata independent: intrarile lui sunt de fapt n vari-
abile care activeaza un DCD
n
, iar cele m = 2
n
iesiri ale acestuia reprezinta intrarile n
codicator. Vom completa ulterior Denit ia 5.2.
Exemplul 5.2 Un sumator complet este un circuit combinat ional cu n = 3 intrari:
DCD
3



,
,
,
,
,
,
,
,

`
C
B
A
x
2
x
1
x
0
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
C
+ S
A, B sunt numerele (de un bit) care se aduna, iar C este bitul suplimentar de deplasare
(de la nsumarea altor doi bit i precedent i). Sunt doua iesiri: S - valoarea sumei binare
dintre A si B, si C
+
- valoarea noii deplasari.
Pentru construct ie vom folosi:
- Un decodicator DCD
3
ale carui port i de iesire sunt complementate (n acest exem-
plu);
- Un codicator compus din doua port i NAND, ecare cu cate 4 intrari.
Deci avem de-a face cu un (8, 2) - codicator. Pentru a vedea cum lucreaza, vom t ine
cont de urmatoarea tabela de decodicare:
60 CAPITOLUL 5. SISTEME 0 DS
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
A x
0
0 1 0 1 0 1 0 1
B x
1
0 0 1 1 0 0 1 1
C x
2
0 0 0 0 1 1 1 1
Sa presupunem ca avem A = 1, B = 0, C = 1; aceasta corespunde situat iei y
5
= 1, y
i
=
0 (i = 5). Deci din DCD
3
va iesi y
5
= 0, y
i
= 1. Rezultatele celor doua port i NAND
sunt:
S = y
1
y
2
y
4
y
7
= 1 1 1 1 = 1 = 0
C
+
= y
3
y
5
y
6
y
7
= 0 = 1

Intr-adev ar, suma 1 + 0 + 1 este 0, iar transportul 1.


Observat ia 5.1

In exemplul 5.2, daca iesirile decodicatorului nu ar complementate,
atunci codicatorul ar avea port i OR n loc de NAND; aceasta rezulta din relat iile De
Morgan:
p q = p q

In general, operatorul OR corespunde not iunii de codicare iar AND - celei de deco-
dicare (OR distruge identitatea componentelor, pe cand AND pregureaza o anumita
congurat ie binara).
Daca dorim sa reprezentam toate funct iile binare cu 3 intrari si 2 iesiri, vor necesare
doua port i NAND cu cel mult opt intrari ecare.
Cele 2
16
funct ii logice posibile vor implementate folosind circuitul din Exemplul 5.2
n care se pun punctele (conectorii) conform iesirilor din tabela care deneste funct ia
logica respectiva.
Circuitul rezultat poate interpretat si ca o memorie xa.

Intr-adevar, daca se considera intrarile drept adrese, atunci la ecare adresa exista
stocata o anumita valoare binara, conform distribut iei conectorilor.
Astfel, folosind Exemplul 5.2, la adresa 010 este stocat cuvantul 01, la adresa 110
cuvantul stocat este 10, s.a.m.d.
Acest tip de memorie este numit read only memory (ROM).
Exemplul 5.3 Sa consideram funct ia booleana cu 3 intrari si 3 iesiri denita prin
f(x
0
, x
1
, x
2
) = (x
0
x
1
+x
2
, (x
0
+x
1
)x
2
, x
0
x
1
+x
1
x
2
+x
2
x
0
).
Tabelul ei de valori va
5.2. CODIFICATORI 61
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
x
0
0 1 0 1 0 1 0 1
x
1
0 0 1 1 0 0 1 1
x
2
0 0 0 0 1 1 1 1
f
1
(x
0
, x
1
, x
2
) 1 1 1 1 0 0 0 1
f
2
(x
0
, x
1
, x
2
) 0 0 0 0 0 1 1 1
f
3
(x
0
, x
1
, x
2
) 0 1 1 1 1 1 1 0
unde s-a notat
f
1
(x
0
, x
1
, x
2
) = x
0
x
1
+x
2
,
f
2
(x
0
, x
1
, x
2
) = (x
0
+x
1
)x
2
,
f
3
(x
0
, x
1
, x
2
) = x
0
x
1
+x
1
x
2
+x
2
x
0
.
Funct ia f(x
0
, x
1
, x
2
) = (f
1
(x
0
, x
1
, x
2
), f
2
(x
0
, x
1
, x
2
), f
3
(x
0
, x
1
, x
2
)) este implementata
de circuitul codicator:
DCD
3
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7

` x
2
x
1
x
0
`

` `


f
1
f
2
f
3
Folosind deci astfel de circuite, orice funct ie booleana f : V
n
V
p
poate implementata
de un (2
n
, p) - codicator.
Prin urmare, codicatorul este un circuit universal, capabil sa implementeze orice
funct ie logica.
Cum orice funct ie logica se poate deni pe baza unei tabele de adevar, rezulta ca un
circuit ROM este universal.
62 CAPITOLUL 5. SISTEME 0 DS
5.3 Demultiplexori
Demultiplexorul elementar (EDMUX) permite transferul unui semnal E spre doua desti-
nat ii distincte (y
0
sau y
1
), conform unei anumite funct ii de select ie x
0
.
Circuitul asociat acestui deziderat este reprezentat n Figura (a).

In practica, pentru securizarea intrarilor la circuitele driver-ului, schema sa se complica


prin folosirea unui decodicator elementar (EDCD) pentru selectarea celor doua port i si
un buer invertor pentru demultiplexarea intrarii; de asemenea, port ile AND se nlocuiesc
cu port i NAND.
Se obt ine astfel circuitul (b), a carui reprezentare simbolica este (c):

.
.
.

``



x
0
y
1
= x
0
E y
0
= x
0
E
E
(a)
,
,
-
-
-

-
-
-

``
.
.
.
-
-
-


x
0
y
0
y
1
E
EDCD
(b)
,
,
EDMUX


E
x
0
y
0
y
1
(c)
Denit ia 5.3 Un demultiplexor cu n intrari (DMUX
n
) transfera semnalul de intrare E
la una din cele m = 2
n
iesiri y
m1
, . . . , y
0
, n conformitate cu un codul binar de select ie
x
n1
, . . . , x
0
.
O prima solut ie pentru implementarea unui demultiplexor consta n generalizarea schemei
(b): anume, utilizarea unui decodicator cu n intrari si m = 2
n
port i NAND, conectate
ca n gura:
`` `

n

.
.
.

DCD
n
(x
n1
, . . . , x
0
)


y
0
y
1
. . . y
m1
E
. . .
y
0
y
1
y
m1
5.3. DEMULTIPLEXORI 63
Observat ia 5.2 A nu se face confuzie de notat ie: variabilele y
i
din interiorul DCD
n
sunt variabile interne ale acestui circuit. Ele difera calitativ de variabilele y
i
care formeaza
iesirea din DMUX
n
.
Deoarece pe nivelul de iesire al unui decodicator se aa port i AND, un procedeu simi-
lar cu cel de la decodicatori permite reconstruirea unui DMUX cu m port i NAND
controlate de n EDCD-uri.
De asemenea, plecand de la denit ia recursiva a decodicatorilor, se poate construi o
denit ie recursiva si pentru demultiplexori.
Exemplul 5.4 Sa construim un circuit DMUX
3
.
Pentru simplicare, vom renunt a la complementarile de securitate.
De asemenea, vom combina cele opt port i AND
3
de la iesirea din DCD
3
(varianta pe
un singur nivel) cu port ile AND din DMUX, obt inand opt port i AND
4
, toate situate pe
un singur nivel.
Cu aceste convent ii, structura circuitului este:


y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7

,

,

,

,

,

,

,

,

,

,

,

,

,

,

,
x
0
x
1
x
2

E
De exemplu, pentru a trimite semnalul E la adresa y
6
se foloseste codul de select ie
x
2
= 1, x
1
= 1, x
0
= 0 (deoarece reprezentarea lui 6 n binar este 110).

In acest fel, iesirea y


6
devine activa si preia semnalul E, iar celelalte iesiri sunt blocate
de valoarea

0

emisa de DCD
3
.
64 CAPITOLUL 5. SISTEME 0 DS
5.4 Multiplexori
Funct ia inversa unui DMUX este multiplexarea (MUX): un circuit care aduna ntr-un
singur loc informat ia venita din mai multe zone.
Ea este de asemenea si o funct ie de comunicare, asigurand interconectarea dintre
blocuri distincte ale unui sistem digital.
Un multiplexor elementar (EMUX) este un selector care transmite semnalul i
1
sau i
0
spre y, n funct ie de valoarea codului de select ie x
0
.
Circuitul este prezentat mai jos, unde un EDCD cu intrarea x
0
deschide numai una
din cele doua port i AND, nsumate apoi n y printr-o poarta OR:
`

` `

-
-
-

-
-
-
,

x
0
i
0
i
1
y = x
0
i
1
+x
0
i
0
EMUX
i
1
i
0
x
0
y

Denit ia generala a acestui circuit este:


Denit ia 5.4 Un multiplexor (MUX
n
) este un circuit combinat ional cu n bit i de control
(x
n1
, . . . , x
0
), care selecteaza la iesirea y numai o intrare din cele m = 2
n
posibilitat i
i
m1
, . . . , i
1
, i
0
.
DCD
n
`` `
`

(x
n1
, . . . , x
0
)
y
0

n
y
1
y
m1
i
0
i
1
. . .
i
m1
y
5.4. MULTIPLEXORI 65
O implementare posibila foloseste un DCD
n
legat serial cu o structura AND OR, ca
n gura anterioara.
Iesirea din decodicator activeaza numai o poarta AND, care transfera la iesire in-
trarea selectata.
Acestui circuit i se poate aplica proprietatea de asociativitate ntre port ile AND ale
iesirilor din decodicator si port ile AND suplimentare (ca la DCD-uri).
Se poate da si o denit ie recursiva a unui multiplexor, de complexitate mult redusa:
Denit ia 5.5 MUX
n
poate construit printr-o conectare seriala a unui EMUX cu
doua MUX
n1
conectate paralel; n plus, MUX
1
= EMUX.
MUX
n1
MUX
n1
EMUX
,
`


n1

n1

(x
n2
, . . . , x
0
)
i
0
. . .
i
m/21
i
m/2
. . .
i
m1
i
0
. . .
i
m/21 i
0
. . .
i
m/21
y y
x
n1
x
0
i
0
i
1
y
y
Desi un multiplexor este (prin denit ie) un circuit de select ie, el poate utilizat si pentru
realizarea unor funct ii booleene.
Astfel, sa consideram x
n1
. . . , x
0
ca variabile booleene de intrare ale unei funct ii care
ia valorile i
m1
, . . . , i
0
.
Pentru codul de select ie (considerat intrare) 00 . . . 0 se alege valoarea lui i
0
s.a.m.d.,
pana la intrarea 11 . . . 1 care selecteaza valoarea i
m1
.
Deci MUX
n
executa tabela de adevar a unei funct ii booleene f : V
n
V .
Exemplul 5.5 Sa consideram funct ia de transport C
+
a sumatorului construit n Exem-
plul 5.2. Tabela sa de adevar este data de secvent a
y
3
+y
5
+y
6
+y
7
= 00010000 + 00000100 + 00000010 + 0000001 = 00010111
Daca aceasta secvent a este aplicata iesirilor din DCD
3
cu variabilele de intrare (select ie)
A, B, C, se obt ine y = C
+
:
66 CAPITOLUL 5. SISTEME 0 DS
DCD
3
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
x
0
x
1
x
2

`
A
B
C

0

0

0

1

0

1

1

1

y
sau, mai succint,
MUX
3

,

,

,

i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
7
C
B
A
x
2
x
1
x
0
y
C
+
De exemplu, daca avem intrarea 101, aceasta corespunde lui y
5
= 1 si y
i
= 0 pentru i = 5.
Cum i
5
= 1, pe a sasea poarta AND se obt ine

1

care - prin poarta OR - conduce la


iesirea y = 1.
La fel, pentru intrarea 001 avem y
4
= 1 si toate iesirile din port ile AND au valoarea

, ceea ce duce n nal la y = 0.


Solut ia prezentata este nsa prea generala si risipitoare de resurse.
Ea poate minimizata la un MUX
2
(Figura (a) de pe pagina urmatoare) folosind una
din variabile pe pozit ie de selector.
Ideea poate mbunatat ita n continuare, ajungandu-se n nal la un EMUX care
selecteaza cu C doua funct ii de doua variabile A si B (Figura (b)):
5.4. MULTIPLEXORI 67


MUX
2

C
A

B
,

1

i
0
i
1
i
2
i
3
x
1
x
0
y
C
+
``

EMUX

(a)
,
,
A
B
C
i
0
i
1
x
0
y
C
+
(b)
Pentru claricare, vom detalia cazul (a); acesta este o notat ie simplicata a circuitului:
DCD
2
y
3
y
2
y
1
y
0
x
0
x
1

`

A
C

B B

1

C
+
Construct ia tabelei de codicare conduce la un comportament identic cu circuitul dat
init ial, desi acesta are numai 4 port i AND n loc de 8.
Mai mult, deoarece prima si ultima poarta sunt controlate de constante, acestea pot
eliminate si se ajunge la circuitul:
DCD
2
y
0
y
1
y
2
y
3
x
0
x
1

A
C

B
,

C
+
68 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.5 sugereaza ideea ca un multiplexor poate o solut ie pentru implementarea
funct iilor booleene.
Teorema 5.1 Orice funct ie booleeana f : V
n
V (n 0) poate implementata cu
un circuit combinat ional logic (CLC).
Demonstrat ie: Pentru n = 0 armat ia este banala.
Pentru n 1, orice funct ie booleana de n variabile se poate pune sub forma normala
f(x
n1
, . . . , x
0
) = x
n1
g(x
n2
, . . . , x
0
) +x
n1
h(x
n2
, . . . , x
0
)
Pentru g si h se poate aplica inductiv acelasi procedeu.
Din aceste doua circuite, legate serial cu un EMUX, se obt ine circuitul solicitat.
CLC
g
CLC
h
EMUX

,

n1

n1

(x
n2
, . . . , x
0
)
g(x
n2
, . . . , x
0
) h(x
n2
, . . . , x
0
)
x
n1
i
0
i
1
x
0
y = x
0
i
0
+x
0
i
1
Exemplul 5.6 Sa consideram funct ia f(a, b, c) = ab+bc+ca.

In prima etapa o reprezentam
sub forma normal disjunctiva:
f(a, b, c) = ab(c + c) + (a + a)bc + a(b + b)c = abc + abc + abc + abc + abc + abc =
(ab +ab +ab)c + (ab +ab +ab)c.
Fie funct iile
h(a, b) = ab +ab +ab = ab + (a +a)b = ab +b si
g(a, b) = ab +ab +ab = (a +a)b +ab = b +ab.
Pe baza Teoremei 5.1 se poate construi circuitul combinat ional logic al lui f:
EMUX
EMUX EMUX

.
.
.


,
,
b +ab b +ab
a
b
c

1

1

f(a, b, c)
5.5. CODIFICATORI CU PRIORITATE 69
5.5 Codicatori cu prioritate
Este posibil ca unele circuite de codicare sa solicite
Un numar de intrari care sa nu e multiplu de 2;
Mai multe congurat ii active printre aceste intrari.
Din aceste motive apare necesitatea de a extinde ideea de codicator, astfel ca sa se
permita un numar arbitrar de intrari si sa se asigure un proces de select ie care sa aleaga
bitul activ aat pe cea mai semnicativa pozit ie (bitul de prioritate maxima ntre bit ii
activi).

In aceste condit ii, codicatorul cu prioritate foloseste o ordonare a bit ilor de intrare
(ca o condit ie suplimentara, necesara select iei).
Pe baza acesteia, daca sunt activi mai mult i bit i, numai cel mai semnicativ dintre ei
va selectat la codicare.
Denit ia 5.6 Un codicator cu prioritate (PE) este un circuit cu m intrari i
m1
, . . . , i
0
(n ordinea descrescatoare a prioritat ilor) si doua zone de iesire: o zona Z de un bit care
indica daca intrarea cont ine (Z = 0) sau nu (Z = 1) bit i activi, si o zona formata din
n = log
2
m bit i y
n1
, . . . , y
0
care indica pozit ia celui mai semnicativ bit activ din intrare
(daca exista) (altfel genereaza eventual 00 . . . 0).
Interpretarea numerica a funct iei PE este: circuitul calculeaza partea ntreaga a loga-
ritmului (n baza 2) dintr-un numar ntreg, indicand eventual o eroare (funct ia nu este
denita) pe bitul Z.
Cel mai simplu astfel de circuit - codicatorul cu prioritate elementar (EPE) (m = 2)
este denit prin ecuat iile booleene Z = i
1
i
0
, y
0
= i
1
pentru circuitul de baza
-
-
-


-
-
-

-
-
-

i
1
i
0
y
0
Z = i
0
+i
1
EPE
i
1
i
0
Z
y
0

70 CAPITOLUL 5. SISTEME 0 DS
sau Z = i
1
i
0
E, y
0
= i
1
E n cazul versiunii cu acces (EEPE); pentru facilitarea imple-
mentarii, intrarea E si iesirea Z sunt complementate.
` `

.
.
.

.
.
.

.
.
.

-
-
-


,
,
i
1
i
0
Z = i
0
+i
1
+E
y
0
= i
1
E
E
EEPE
E
i
1
i
0
Z
y
0

Rolul lui E este de a activa/dezactiva circuitul EEPE. Cand E = 1, cele doua structuri
sunt echivalente.
Pentru E = 0, EEPE scoate valoarea Z = 1 indiferent de intrare (circuitul este
decuplat).
Interpretarea comportamentului circuitului EPE (respectiv EEPE) este urmatoarea:
Z = 0: nu sunt bit i activi, iar y
0
este ignorat (sau se considera y
0
= 0).
Z = 1: exista bit i activi: cel mai semnicativ se aa pe pozit ia y
0
.
Comportamentul unui EPE (sau EEPE n cazul E = 1) poate sumarizat n tabelul:
i
1
i
0
Z y
0
Comentarii
0 0 0 0 Nu sunt bit i activi
0 1 1 0 i
0
este bit activ
1 0 1 1 i
1
este bit activ
1 1 1 1 i
1
este cel mai semnicativ bit activ
Observat ia 5.3 Daca exista cel put in un bit activ, atunci y
0
= [log
2
n] unde (n)
2
= i
1
i
0
.
Extinzand sunt doua variante recursive de construct ie a codicatorilor cu prioritate cu n
iesiri PE
n
, bazate pe extensii seriale respectiv extensii paralele.

In prima varianta, se alege PE


1
= EEPE; n continuare, un PE
n
(n > 1) cu acces
este denit prin conectarea seriala a doua PE
n1
cu acces, ca n gura:
5.5. CODIFICATORI CU PRIORITATE 71
PE
n1
PE
n1

` `
. .


,
E E Z E
Z
Z
i
2
n
1
i
2
n1 i
2
n1
1
i
0
i
0 i
2
n1
1
i
0
i
2
n1
1
y
n2
y
0
y
n2
y
0
y
n1
y
n2
y
0
. . .
. . .
. . .
. . . . . .
. . .
Observat ia 5.4 Daca 2
n1
< m < 2
n
, atunci intrarilor i
m
, i
m+1
, . . . , i
2
n
1
li se asigneaza
valoarea constanta

0

.
Cea mai semnicativa iesire este y
n1
= Z; celelalte iesiri se obt in ca rezultante prin port i
OR ale iesirilor corespunzatoare pentru cele doua PE
n1
.

Intr-adevar, daca tot i bit ii din prima jumatate a intrarii sunt inactivi, atunci cel mai
semnicativ bit de iesire este 0, iesirile din PE
n1
corespunzatoare sunt 0, iar restul bit ilor
sunt dat i de al doilea PE
n1
(cu bit i mai put in semnicativi).
Altfel, y
n1
= Z = 1, iesirea celui de-al doilea PE
n1
este dezafectata (deoarece
E = Z = 0) si tot restul iesirii este dat de primul (cel mai semnicativ) PE
n1
.
Observat ia 5.5 Accesul la un EP
n
se realizeaza totdeauna cu E = 1 (deci E = 0).
Exemplul 5.7 Sa construim un codicator cu prioritate pentru m = 3. Atunci n =
log
2
3 = 2 si conform schemei de mai sus vom avea:
EEPE EEPE
i
1
i
0
i
1
i
0

i
2
i
1
i
0
Z E Z E
y
0
y
0
`




Z

y
1
y
0

Deoarece m = 3, se asigneaza la intrarea de prioritate maxima (corespunzatoare lui i


m
)
valoarea

0

.
72 CAPITOLUL 5. SISTEME 0 DS
Sa presupunem ca se solicita acest PE
2
(activat prin E 1) cu intrarile i
2
si i
0
; deci
i
2
i
1
i
0
= 101.
Atunci, din primul EEPE = PE
1
se obt ine (atent ie: i
1


0

, i
0
i
2
)
Z = i
1
i
0
E = 1 0 1 = 0 si y
0
= i
1
E = 0 1 = 0
Cum Z = 1, aceasta valoare merge la iesire n y
1
(y
1
= 1) si constituie intrarea n al
doilea EEPE = PE
1
. Cum E = 1 (deci E = 0), acesta este dezafectat.
Iesirea va deci formata din y
1
y
0
= 10, care reprezinta n binar pozit ia bitului 2:
acesta (i
2
) este bitul activ care este selectat ca prioritar.
Daca intrarea n PE
2
este i
2
i
1
i
0
= 001, primul EEPE scoate y
0
= 0 si Z = 1.
Cum Z = 0, aceasta va simultan valoarea nala a lui y
1
(y
1
= 0) cat si ltrul
care permite accesul la al doilea EEPE (cu E = Z = 1).
Acesta are asignarile i
1
0, i
0
1 si va scoate Z = i
1
i
0
E = 1 0 1 = 0 semnal
ca exista bit i activi.
Se calculeaza y
0
= i
1
E = 0 care prin poarta OR merge n valoarea nala a lui y
0
.
Deci y
1
y
0
= 00, adica primul bit i
0
este cel selectat ca activ.
Implementarea acestui circuit este nsa prea lenta pentru aplicat ii (numarul de nivele
creste exponent ial); de aceea se foloseste o alta construct ie, bazata pe extensia paralela.
Aici PE
n
este construit prin extensia paralela a doua PE
n1
; iesirea Z si cel mai
semnicativ bit y
n1
sunt calculate cu un EPE din cele doua Z ; restul bit ilor de iesire
sunt selectat i cu n 1 multiplexori elementari din iesirile celor doua PE
n1
.
EPE indica unde este cel mai semncativ bit care are valoarea 1 (la intrarea primului
sau celui de-al doilea PE
n1
), iar y
n1
selecteaza restul codului.
PE
n1
PE
n1
EPE
(n 1) EMUX




n1

n1

n1
,
`

i
2
n
1
. . .
i
2
n1 i
2
n1
1
. . .
i
0
i
2
n1
1
. . .
i
0
i
2
n1
1
. . .
i
0
y
n2
. . . y
0
y
n2
. . . y
0
Z
y
n1
y
n2
, . . . , y
0


Z Z
5.5. CODIFICATORI CU PRIORITATE 73
Adancimea acestei variante este comparabila cu n, deci mult mai simpla si rapida.
De ret inut ca n general o extensie paralela genereaza circuite rapide.
Dezavantajul consta n marimea lor, care creste exponent ial.
Exemplul 5.8 Sa consideram m = 5. Atunci n = log
2
5 = 3, deci vom avea un PE
3
.
De remarcat ca din cele opt intrari, primele 3 (cele mai semnicative) sunt setate pe

0

.
Sunt posibile doua situat ii:
1. i
4
= 1. Atunci Z
1
= 1, deci Z = 1 si y
2
= 1, indiferent de valorile bit ilor i
3
, . . . , i
0
.
Din primul PE
2
iese y
1
y
0
= 00, combinat ie selectata de cele doua EMUX-uri
(datorita valorii y
2
= 1 luate de funct ia de select ie).
Deci bitul cel mai activ este pe pozit ia (y
2
y
1
y
0
)
2
= (100)
2
= 4.
EPE EMUX EMUX
PE
2
PE
2

0

0

0

i
4
i
3
i
2
i
1
i
0
i
0
i
1
i
2
i
3
Z
i
0
i
1
i
2
i
3
Z
y
1
y
0
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
Z
y
2
,
y
1
y
0
2. i
4
= 0. Atunci Z
1
= 0 si indiferent de valoarea lui Z
2
din EPE iese y
2
= 0.
Daca i
3
i
2
i
1
i
0
= 0000, se obt ine Z
2
= 0, deci Z = 0 si nu avem bit i activi.
Daca printre acesti patru bit i exista cel put in unul activ, atunci Z
2
= 1.
EPE anunt a existent a unui bit activ (Z = 1) pe pozit ia y
2
= 0.
Cum y
2
joaca rol de selector pentru cele doua EMUX-uri, acestea vor transfera la
iesire valorile y
1
, y
0
obt inute de al doilea PE
2
, deci adresa celui mai semnicativ bit
activ din secvent a i
3
i
2
i
1
i
0
.
Cum primele trei intrari sunt totdeauna 0, primul PE
2
poate eliminat, obt inandu-se
circuitul
74 CAPITOLUL 5. SISTEME 0 DS
EPE EMUX EMUX
PE
2

,


i
3
i
2
i
1
i
0
i
0
i
1
i
2
i
3
Z
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
Z
y
2

y
1
y
0

i
4

0

0

De fapt ntotdeauna va posibil sa eliminam intrarile i


m
, . . . , i
2
n
1
, simplicand cores-
punzator codicatorii cu prioritate.
5.6. SUMATORI 75
5.6 Sumatori
Una din cele mai importante funct ii digitale este operat ia aritmetica de adunare.
Aceasta funct ie se deneste 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 bit i,
pentru n arbitrar de mare.
Dupa cum se stie, interpetarea numerica a funct iei XOR (gura (a)) este suma modulo
2. Pentru extensia ei la suma modulo 2
n
este necesar sa calculam si funct ia de transport
CR.
Atunci, un semi-sumator HA va format dintr-un XOR si un AND (care ia valoarea
1 numai cand ambii operanzi sunt 1); Figura (b) da reprezentarea simbolica a unui semi-
sumator, iar Figura (c) - structura sa interna.

`

AB
S
(a)
HA


A B
S CR
(b)
`


`



A
B
S CR
(c)
Dupa cum am vazut n Capitolul 2, doua numere ntregi de n bit i (n > 1) se aduna
bit-cu-bit, incepand de pe cea mai put in semnicativa pozit ie.
Fiecare suma de doi bit i este inuent ata prin funct ia de transport de suma binara
anterioar a; de aceea, pentru a t ine cont si de acest transport, se va adauga o intrare
suplimentara C de transport, obt inandu-se un sumator complet FA (full adder), a carui
reprezentare simbolica este data de Figura (d) si cont inut - de Figura (e):
FA

A B
C
+ C
S
(d)
HA
HA
`

`

A B C
A B
S CR
A B
S CR
S
(e)
C
+
76 CAPITOLUL 5. SISTEME 0 DS
Primul HAnsumeaza cei doi bit i (corespunzatori operanzilor A si B), iar al doilea aduna
la suma astfel calculata valoarea deplasarii; transportul de iesire este dat de primul sau
al doilea HA.
Observat ia 5.6 Sumatorul complet poate construit si pe baza unui codicator (acesta
ind un circuit universal); ntr-adevar, funct ia sum : {0, 1}
3
{0, 1}
2
de adunare a
trei cifre binare poate denita prin tabela de valori
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
S 0 0 0 1 0 1 1 1
C
+
0 1 1 0 1 0 0 1
De aici putem genera forma canonica celor doua componente care formeaza funct ia
sum:
S = xyz +xyz +x yz +xy z
C
+
= xyz +xyz +xyz +xyz = xy(z +z) +xz(y +y) +yz(x +x) = xy +yz +xz
Deci, un circuit combinat ional echivalent cu un FA poate construit imediat:
` ` ` ` ` ` `
` `


-
-

-
-

-
-


x
y
z
S
C
+
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Daca denim adancimea unui circuit ca ind numarul maxim de port i situate pe un
drum, circuitul de mai sus este un circuit combinat ional de adancime 3.
Daca toate port ile permit aceeasi viteza de traversare, atunci acesta este mai rapid
decat denit ia unui FA.
Dezavantajul sau major este numarul mare de port i, deci un cost hard mai ridicat.
O problema de baza n arhitectura calculatorului consta n realizarea de circuite care
sa ofere avantaje atat din punctul de vedere al vitezei de lucru, cat si al costului echipa-
mentului hard.
5.6. SUMATORI 77
Un sumator de n bit i ADD
n
n cascada, se poate deni recursiv prin extensia seriala
a unui ADD
n1
cu un FA. Init ial, ADD
1
este un FA.
FA
ADD
n1


a
n1 b
n1
a
n2
a
0 b
n2
b
0
. . . . . .
c
0 C
C
+ C
C
+
c
n
s
n1
s
n2
. . .
s
0
Exemplul 5.9 Un sumator ADD
3
construit n cascada are forma
FA FA FA



a
2 b
2
a
1 b
1
a
0 b
0
c
3
s
2
s
1
s
0

c
0
Din pacate, n aceasta construct ie seriala a circuitului, calculul transportului la ecare
nsumare de doi bit i conduce la un proces de calcul lent.
Pentru a obt ine o viteza de calcul mare, se foloseste alta construct ie a sumatorului
ADD
n
, prin nsumarea separata a transportului ecarei sume binare.
Pentru calculul transportului ecarei sume binare se introduce un circuit suplimentar
de control al transportului CL (carry lookahead). Ecuat iile care descriu CL se bazeaza
pe relat ia
c
i+1
= a
i
b
i
(a
i
b
i
)c
i
= G
i
P
i
c
i
.
(reamintim, este notat ia matematica pentru operat ia XOR).
Iesirile ecarui HA genereaza prin port ile AND si XOR iesirile G
i
respectiv P
i
.
Aplicand aceasta regula de i (0 i n) ori, se obt ine:
c
i+1
= G
i
P
i
G
i1
P
i
P
i1
G
i2
. . . P
i
P
i1
. . . P
0
c
0
78 CAPITOLUL 5. SISTEME 0 DS
HA
CL


`



a
i b
i
A B
S CR
P
i
,
c
i
G
i
s
i
. . . . . .
G
n1
G
0
P
n1
P
0
c
n
c
n1
c
1
. . . . . .
. . .

c
0
Exemplul 5.10 Reluand exemplul unui sumator pe 3 bit i, vom avea circuitul
HA HA HA

a
2 b
2
a
1 b
1
a
0 b
0
` ` `



s
2
s
1
s
0
CL

c
3

, , ,

c
0
c
1
c
2
CR S CR S CR S
G
2
P
2
G
1
P
1
G
0
P
0
Un tabel cu valorile scoase de CL (a carui structura o lasam ca exercit iu) este:
a
i
0 0 0 0 1 1 1 1
b
i
0 0 1 1 0 0 1 1
c
i
0 1 0 1 0 1 0 1
c
i+1
0 0 0 1 0 1 1 1
5.6. SUMATORI 79
5.6.1 Circuit digital pentru incrementare
Un caz particular de sumator este cel de incrementare, cand al doilea operand este egal
cu

1

.
Se poate folosi un circuit de adunare obisnuit, din cele prezentate anterior, unde va-
loarea

1

se extinde pe un numar de bit i egal cu lungimea primului operand; operat ia


devine nsa costisitoare (ca timp si spat iu) n condit iile n care incrementarea este folosita
mult mai frecvent decat adunarea obisnuita.
De aceea, t inandu-se cont de valoarea xa a celui de-al doilea operand, se pot face
reduceri substant iale.
Observat ia 5.7
Un FA n care B = 0, se reduce la un HA care face suma dintre A si C.
Un FA n care B = 1, C = 0, se reduce la un HA care face suma dintre A si

1

.
Mai mult, deoarece s = A1 = A, c = A1 = A, acesta poate construit folosind
numai un invertor:
\
\ \

,
a
0
b
0
c
Simbolul pentru circuitul de incrementare al unui numar A reprezntat pe n bit i este:
INC
n

A
A + 1
n
n
Similar sumatoarelor, si aici sunt doua tipuri de construire a lui INC
n
.
O prima varianta n cascada se deneste recursiv astfel:
- INC
1
este circuitul din Observat ia 5.7.
- INC
n
se obt ine prin extensia seriala a unui HA cu INC
n1
sub forma
HA
INC
n1


b
0
b
1
b
n2
b
n1
c
a
n1
c
a
n2
a
1
a
0
. . .
. . .
80 CAPITOLUL 5. SISTEME 0 DS
Exemplul 5.11 Un circuit de incrementare pe 4 bit i (INC
4
) este
HA HA HA HA


b
0
b
1
b
2
b
3
c
a
3
a
2
a
1
a
0

1

c c c
Cel mai din dreapta HA poate inlocuit cu invertorul din Observat ia 5.7.
Dezavantajul acestei construct ii este un consum mai mare de timp.
De aceea se poate construi si o extensie paralela, bazata pe urmatoarele observat ii:
Daca n denit ia ecuat iilor de transport din construirea CL se iau c
0
= 1 si b
i
= 0,
atunci G
i
= 0, P
i
= a
i
(0 i n 1) si deci
c
i
= a
i1
a
i2
. . . a
0
, (i > 0)
Pe baza acestei relat ii, INC
n
poate generat astfel:
HA
`

b
i
a
i
a
i1
a
0
. . .
. . . . . .
\
\ /
/

a
0
b
0
unde cele n 1 semi-sumatoare (pentru i = 1, 2, . . . , n 1) lucreaza n paralel.
Circuitul este extrem de rapid; dezavantajul lui sunt port ile AND
i
, a caror complexi-
tate creste odata cu valoarea lui i.
5.6.2 Circuit digital pentru scadere
Dupa cum stim (Capitolul 2), operat ia de scadere a doua numere ntregi poate redusa
la operat ia de adunare.
Daca B este un numar pe n bit i, iar B se obt ine din B prin complementarea tuturor
bit ilor, atunci B +B = 2
n
1 si deci
A B = A +B + 1 2
n
Numarul B + 1 este reprezentarea lui B n cod complementar, iar operarea cu 2
n
inverseaza bitul nal de transport.
5.6. SUMATORI 81
Fie funct ia sub : {0, 1}
3
{0, 1}
2
denita sub(x, y, z) = x y z. Tabela sa de
valori este
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
d 0 1 1 0 1 0 0 1
t 0 1 1 1 0 0 0 1
Deoarece x y z = x + (y + 1 2
1
) + (z + 1 2
1
) = x + y + z + 2
1
2
2
, rezulta
ca diferent a d(x, y, z) este rezultatul adunarii x + y + z, iar t(x, y, z) este valoarea de
transport complementata (datorita adunarii cu 2
1
) a acestei sume.
Deci un circuit digital numit FS (full substract) pentru scadere este:
FA
.
. .
-
--
\
\ \

.
..
-
- -

x
y
z
d
t
Pentru un circuit care sa realizeze scaderea a doua numere de cate n bit i se va face o
extensie seriala (n cascada) formata din n astfel de circuite, similar construct iei de la
ADD
n
sau INC
n
.
La identicarea transportului t de la un FS cu variabila z de la FS-ul anterior se pot
elimina cele doua complementari (care se anuleaza reciproc).
Exemplul 5.12 Sa construim un circuit pentru scaderea a doua numere de 4 bit i (FS
4
).
Schema sa este (pentru simplicare, port ile NOT au fost subnt elese):
FA FA FA FA



t
z
t
z
t
z
t
z

1

d
0
d
1
d
2
d
3
a
3 b
3
a
2 b
2
a
1 b
1
a
0 b
0
Fie de exemplu numerele A = 12, B = 9; deci a
3
a
2
a
1
a
0
= 1100, b
3
b
2
b
1
b
0
= 1001.
Introducand n circuitul FS
4
aceste valori (unde b
3
b
2
b
1
b
0
= 0110) se obt ine imediat
d
3
d
2
d
1
d
0
= 0011, ceea ce verica operat ia 12 9 = 3.
82 CAPITOLUL 5. SISTEME 0 DS
Un circuit mai compact pentru scadere care sa foloseasca elementele deja construite
este
EMUX
i
1
i
0
\
\
\

INC
n
ADD
n


\
\
\
n

n
n

A
B
,
n
n
c
n
n
n
D
unde am reprezentat printr-o singura complementare grupul de n invertori care inverseaza
bit ii scazatorului:
\
\
\

\
\
\

\
\
\

\
\
\

. . .

n
n
Avantajul acestui circuit este acela ca se poate opera si cu rezultate negative.
Semnul diferent ei este dat de c (deci c = 0 semnica un rezultat negativ, iar c = 1
unul pozitiv).
Exemplul 5.13 Sa presupunem ca circuitul de scadere este construit pentru n = 4 si
avem din nou A = 12, B = 9.
Pentru A B, sumatorul ADD
4
va determina A +B = 1100 + 0110 care da suma
0110 si transportul c = 1. Aceasta semnica un rezultat pozitiv, si variabila c
pe post de selector va alege din EMUX valoarea 0010 incrementata, adica 0011.
Deci rezultatul este 12 9 = 3.
Pentru B A, sumatorul va calcula B + A = 1001 + 0011, cu rezultatul 1100 si
c = 0. deci rezultatul este negativ, iar selectorul c = 0 va alege 1100 = 0011; n nal
se obt ine 9 12 = 3.
5.7. CIRCUITE DE COMPARARE 83
5.7 Circuite de comparare
Sa construim un bloc de comparare ntre doua numere pe n bit i.
O reprezentare simbolica este usor de dat:
CA
n

>> >>
X Y
n n

X < Y X = Y X > Y
Dar, ce se ascunde n spatele ei ?
Pentru n = 1, problema este simpla: este sucient sa construim un codicator (de
exemplu) bazat pe funct ia f : {0, 1}
2
{0, 1}
3
denita prin tabela de valori
a 0 0 1 1
b 0 1 0 1
z
1
0 1 0 0
z
2
1 0 0 1
z
3
0 0 1 0
Daca f(a, b) = (z
1
, z
2
, z
3
), atunci z
1
= ab anunt a daca a < b, z
2
= ab + ab = a b ia
valoarea 1 daca si numai daca a = b, iar z
3
= ab semnalizeaza daca a > b.
Un circuit se poate construi imediat:
` `
.
.
`

-
-
-

-
-
-

-
--
.
. .
-
--
.
. .







,
, ,
, ,
,
,
,
a
b
z
1
(a < b) z
2
(a = b) z
3
(a > b)
Problema se complica pentru cazul general (n > 1).
84 CAPITOLUL 5. SISTEME 0 DS
Atunci un comparator CA
n
va avea 2n intrari binare, deci o tabela de adevar ar cont ine
2
2n
linii, lucru extrem de dicil de realizat la nivel de codicator (din cauza numarului
mare de port i necesare).
Pentru construct ia unui comparator ecient pe n bit i, sa observam ca X > Y este
echivalent cu X Y > 0. Cum Y = (2
n
1) Y , relat ia se rescrie
X Y = X +Y > 2
n
1 = 11 . . . 1
unde secvent a binara de 1 are lungime n.
Daca aceasta inegalitate este satisfacuta, atunci bitul de transport al sumei c
out
= 1,
deoarece suma X +Y depaseste n bit i.
Exemplul 5.14 Pentru n = 4, daca X = 1100, Y = 1001, vom avea Y = 0110 si deci
X +Y = 1100 + 0110 = 10010, pentru care bitul de transport este 1.
Concluzia este X > Y .
Testarea comparat iei X > Y poate realizata deci n doi pasi:
1. Se aa Y prin aplicarea unui invertor pe n bit i lui Y ;
2. Se efectueaza X+Y cu un n - sumator si se foloseste ca iesire doar bitul de transport
c
out
. Daca c
out
= 1 atunci X > Y ; altfel, X Y .
Implementarea acestei scheme arata astfel:
ADD
n
ADD
n
`

`
`
` /
/

`
` /
/


,
, ,
,

>>
> > >>
>>
>> >>
>> >>
>>
>>
>>
X Y
n n
n n
n n n n
n
n n

c
in

c
in
z
1
(X < Y ) z
2
(X = Y ) z
3
(X > Y )
ignorat ignorat
Algoritmul de sus este implementat pentru z
3
(X > Y ) pe n bit i.
Daca se permuta X cu Y , se genereaza z
1
(X < Y ).
5.7. CIRCUITE DE COMPARARE 85
Suma rezultata nu este utilizata, deci iesirile corespunzatoare se suspenda.
Mai trebuie determinata iesirea z
2
, necesara pentru cazul X = Y .
Pentru aceasta trebuie facuta compararea tuturor bit ilor x
i
din X cu bit ii y
i
core-
spunzatori din Y .
Dezideratul se atinge cu n port i XOR NOT care produc x
i
y
i
.
Vom avea z
2
= 1 daca x
i
y
i
= 1, (1 i n); adica
z
2
= (x
n1
y
n1
) (x
n2
y
n2
) . . . (x
0
y
0
)
O alta varianta mai simpla pentru CA
n
cu un singur sumator este urmatoarea:
`

`
ADD
n
\
\

,
,

X Y
n
n
n
c
in
n
c
out
z
1
(X > Y ) z
2
(X = Y ) z
3
(X < Y )
86 CAPITOLUL 5. SISTEME 0 DS
5.8 Circuite de deplasare
O alta funct ie aritmetica de baza este nmult irea/mpart irea cu o putere a lui 2.
Circuitul care realizeaza aceasta funct ie se numeste circuit de deplasare (shift).
El consta din mai mult i multiplexori conectat i n paralel la aceeasi intrare si aceeasi
funct ie de select ie.
Principiul este descris de gura urmatoare (pentru cazul deplasarii spre dreapta cu cel
mult trei pozit ii).
MUX
2
MUX
2
MUX
2
MUX
2
`

, , ,
, , ,
`


a
i+4
a
i+5
a
i+6
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
x
1
x
0
x
1
x
0
x
1
x
0
x
1
x
0
y y y y
s
1
s
0 b
i+3
b
i+2
b
i+1
b
i


,


, ,


, , ,


, , ,

, ,
,
a
i+3
a
i+2
a
i+1
a
i
O valoare de select ie (s
1
s
0
)
2
= x implica b
j
= a
j+x
(la deplasarea spre dreapta) sau
b
j
= a
jx
(la deplasarea spre stanga) pentru x = 0, 1, 2, 3 reprezentat n binar.
Daca j x < 0, atunci b
j
= 0 (prin deplasarea spre stanga, bit ii cei mai put in
semnicativi se completeaza cu

0

)
Exemplul 5.15 Daca n gura anterioara valoarea de select ie este (s
1
s
0
)
2
= (10)
2
= 2,
atunci ecare multiplexor conecteaza iesirea la intrarea i
2
.
Rezultatul va
b
i+3
b
i+2
b
i+1
b
i
a
i+5
a
i+4
a
i+3
a
i+2

In general, pentru operat ia de deplasare cu 0 pana la m 1 pozit ii sunt necesare mai


multe MUX
n
unde n = log
2
m, legate n mod similar cu cele din gura.
Numarul multiplexoarelor este egal cu numarul de bit i ai numarului asupra caruia se
aplica operat ia de deplasare.
5.8. CIRCUITE DE DEPLASARE 87
Observat ia 5.8 Deplasarea spre stanga cu x bit i corespunde nmult irii unui numar cu
2
x
.

In acest caz, cei mai semnicativi x bit i din reprezentarea binara a numarului se pierd,
iar cei mai put in semnicativi x bit i primesc valoarea 0.

In mod similar, deplasarea spre dreapta cu x bit i corespunde mpart irii cu 2


x
. Aici se
pierd cei mai put in semnicativi x bit i.
Exemplul 5.16 Sa construim un circuit de deplasare spre stanga cu cel mult 3 pozit ii,
pentru numere formate din 6 bit i. Se va obt ine:
MUX
2
MUX
2
MUX
2
MUX
2
MUX
2
MUX
2

,
,
,
,
,
,
,
,
,
,

`
,


, ,


, , ,


, , ,


, , ,


, , , , ,
b
0
b
1
b
2
b
3
b
4
b
5
s
0
s
1
a
5
a
4
a
3
a
2
a
1
a
0

De exemplu, pentru numarul 9, cu reprezentarea 001001 pe sase bit i, vom avea:


Codul s
1
s
0
= 00 conduce la iesirea 001001 (adica tot numarul 9);
Codul s
1
s
0
= 01 conduce la iesirea 010010 (adica numarul 18 = 9 2);
Codul s
1
s
0
= 10 conduce la iesirea 100100 (adica numarul 26 = 9 2
2
);
Codul s
1
s
0
= 11 conduce la iesirea 001000 (depasire, datorata pierderii unui bit sem-
nicativ de valoare

1

).
88 CAPITOLUL 5. SISTEME 0 DS
5.9 Multiplicatori
Alta operat ie aritmetica importanta este nmult irea.
O varianta combinat ionala poate construita pe baza unui circuit elementar, bazat
pe cele doua funct ii simple implicate de nmult irea binara:
nmult irea pe un bit (cu ajutorul unei port i AND);
un FA pentru completarea operat iei;
Circuitul de nmult ire completa a bit ilor A si B este descris de Figura (a); Figura (b)
deneste reprezentarea simbolica a nmult irii bit ilor a
i
cu b
j
.
`
FA


,
,
C S B
A A
C A B
C
+ S
C S B
(a)
a
i
b
j

b
j
S C B
a
i A A
C B S
(b)
Exemplul 5.17 Sa construim un multiplicator pentru a nmult i doua numere de doi bit i:
a
1
a
0
b
1
b
0
. Rezultatul are patru bit i x
3
x
2
x
1
x
0
, care verica relat iile:
x
0
= a
0
b
0
; x
1
= a
1
b
0
+a
0
b
1
+c
x
0
;
x
2
= a
1
b
1
+c
x
1
; x
3
= c
x
2
.
(s-a notat c
x
i
transportul obt inut la suma din care a rezultat x
i
).
Circuitul este:
a
1
b
1
a
1
b
0
a
0
b
1
a
0
b
0

`
`
`
HA

x
3
x
2
x
1
x
0

0

0

b
1

0

0

b
0
a
0
a
1

5.9. MULTIPLICATORI 89
Comentarii:
i) x
0
se obt ine din nmult irea bit ilor a
0
cu b
0
.
ii) Pentru x
1
se aduna a
1
b
0
cu a
0
b
1
si cu transportul de la calculul lui x
0
(transport
formal, deoarece el este totdeauna egal cu 0).
iii) x
2
se obt ine din adunarea lui a
1
b
1
cu transportul de la calculul lui x
2
.
Transportul rezultat din aceasta adunare va x
3
.
Aceasta structura poate generalizata usor la multiplicatori pentru numere de n bit i.
Prezentam pentru claritate schema unui multiplicator complet pentru cuvinte de 4 bit i:
a
0
b
3
a
0
b
2
a
0
b
1
a
0
b
0
a
1
b
3
a
1
b
2
a
1
b
1
a
1
b
0
a
2
b
3
a
2
b
2
a
2
b
1
a
2
b
0
a
3
b
3
a
3
b
2
a
3
b
1
a
3
b
0

0

0

b
3

0

0

b
2

0

0

b
1

0

0

b
0
a
0

a
1

a
2

a
3
x
0
x
1
x
2
x
3
HA FA FA


x
7
x
6
x
5
x
4
Dupa cum se vede, complexitatea spat iu creste rapid odata cu numarul de bit i ai unui
numar.
De aceea, practic se folosesc alt i algoritmi de multiplicare, bazat i pe adunari si de-
plasari (nmult iri cu puteri ale lui 2).
Problemele de sincronizare care apar facnsa ca aceste circuite sa nu e de tipul 0DS.
90 CAPITOLUL 5. SISTEME 0 DS
5.10 Circuit logic programabil
Am vazut ca pentru orice funct ie booleana de n variabile se poate construi cel put in un
circuit.

In general circuitele generate erau cladite pe doua tipuri de structuri:
recursiva, bazata pe not iunea de multiplexor MUX
n
;
structura simbolica a unui sir de m = 2
n
bit i, ale carui elemente sunt selectate la
iesirea dintr-un decodicator.
O astfel de solut ie este recomandata numai daca sirul binar selectat la iesirea din
decodicator este aleator (nu are o structura predenita).
Daca sirul binar prezinta anumite forme xe, atunci pot efectuate unele simplicari
la implementarea circuitelor corespunzatoare, ceea ce duce la scaderea complexitat ii lor.
Astfel, pot construite circuite cu port ile xate n prealabil pe o anumita pozit ie
(nchis sau deschis), faza de implementare constand doar n imbinarea lor sub forma unor
tablouri.
O astfel de construct ie se numeste tablou logic programabil.
Exemplul 5.18 Unul din cele mai uzuale circuite combinat ionale este transcoderul care
transforma cifrele zecimale scrise n binar, n reprezentari pe 7 bit i (codul ASCII).
DCD
4
` ` ` `
x
3
x
2
x
1
x
0
a
b
c
d
A B C D E F G
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
y
8
y
9
y
10
y
11
y
12
y
13
y
14
y
15










(a)
DCD
4
` ` ` `
x
3
x
2
x
1
x
0
a
b
c
d
A B C D E F G
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
y
8
y
9
y
10
y
11
y
12
y
13
y
14
y
15
(b)

5.10. CIRCUIT LOGIC PROGRAMABIL 91


Fie a, b, c, d cei patru bit i care codica cifrele zecimale (de la 0000 pentru 0 pana la
1001 pentru 9) si A, B, C, D, E, F, G bit ii din reprezentarea nala (de la 0110000 = 0(60)
8
- codul ASCII pentru 0, pana la 0111001 = 0(71)
8
- codul ASCII pentru 9).
Trebuie construite deci 7 funct ii de 4 variabile.
Cea mai buna solut ie pare sa e un DCD
4
de tipul celui din paragraful 5.1; va rezulta
Figura (a) (numita si ROM) folosita la implementarea circuitelor combinat ionale.
Pentru simplicarea desenului, port ile OR au fost reprezentate prin linii verticale, iar
intrarile, prin .
Deoarece circuitul DC
4
cont ine 2
4
+ 2
3
+ 2
2
+ 8 = 36 port i, iar ret eaua are 49 puncte,
rezulta ca marimea acestei solut ii este 85.
O posibilitate de a obt ine un circuit mai simplu poate prin complementarea funct iilor;
ea conduce (Figura (b)) la n acest caz la un circuit avand 36 + 21 = 57 port i.
Circuitul este foarte mare mai ales din cauza iesirilor nefolosite y
10
y
15
.
Decodicatorul trateaza toate congurat iile binare de 4 bit i, desi numai o parte din ele
sunt folosite de cele sapte funtii.
Tinand cont de aceasta observat ie, se poate construi alt circuit, cunoscut sub numele
de tablou logic programabil PLA (programmable logic array); solut ia aceasta are numai
25 port i (si eventual mai poate optimizata).

.
.
.

.
.
.

.
.
.

.
.
.
-
-
-

-
-
-

-
-
-

-
-
-

a
b
c
d
ab a
b
a
b
c
d

Tablou AND
Tablou OR

A = ab
B = a b
C = a b
D = a
E = b
F = c
G = d
92 CAPITOLUL 5. SISTEME 0 DS
Valorile funct iilor A, . . . , G s-au dedus usor din tabelul de valori:
a 0 0 0 0 0 0 0 0 1 1
b 0 0 0 0 1 1 1 1 0 0
c 0 0 1 1 0 0 1 1 0 0
d 0 1 0 1 0 1 0 1 0 1
A 0 0 0 0 0 0 0 0 0 0
B 1 1 1 1 1 1 1 1 1 1
C 1 1 1 1 1 1 1 1 1 1
D 0 0 0 0 0 0 0 0 1 1
E 0 0 0 0 1 1 1 1 0 0
F 0 0 1 1 0 0 1 1 0 0
G 0 1 0 1 0 1 0 1 0 1
Evident, PLA-ul de sus nu este cel mai simplu circuit de implementare. Mult mai
simplu este decodicatorul (cu numai 11 port i)

.
.
.

.
.
.

.
.
.

.
.
.
-
-
-

-
-
-

-
-
-

-
-
-

a
b
c
d
,
,
,
,

```
.
.



,
,
,
,
,
, ,
,
,
,
A B C D E F G
5.10. CIRCUIT LOGIC PROGRAMABIL 93
Denit ia 5.7 Un PLA standard PLA
n,p,m
este un circuit digital format din 4 nivele:
1. Nivelul de intrare, compus din n decodicatori elementari (EDCD);
2. Un decodicator programabil format din p 2
n
port i AND (sau NAND, daca
se folosesc regulile De Morgan); ecare intrare poate conectata sau nu la iesirea
corespunzatoare a primului nivel; deci maxim p clase pot decodicate la intrarea
X = x
n1
. . . x
0
.
3. Un codicator programabil format din m p port i OR (sau NAND, daca se folo-
sesc regulile De Morgan); ecare intrare poate conectata sau nu la iesirea cores-
punzatoare de la al doilea nivel, ecare funct ie y
m1
, . . . , y
0
putand implementata
folosind unul sau mai mult i factori decodicat i la al doilea nivel;
4. Nivelul de iesire, format din m circuite EMUX (sau XOR - uri cu o intrare conec-
tata la 0 sau 1), cu scopul de a da forma funct iei complementata sau nu.
Deci, PLA este un circuit care ncepe si se termina cu cele mai simple circuite funct ionale
(EDCD respectiv EMUX) si cont ine doua tablouri programabile (numite tablou AND
respectiv tablou OR).
Un PLA nu este un circuit optim din punct de vedere al complexitat ii.
Avantajul sau major consta n posibilitatea de a lucra cu tablouri prefabricate, pe
care apoi le poate mbina cu EDCD-uri pentru intrari, EMUX-uri pentru iesiri.
Daca tabloul OR este inclus ntr-un ROM (componenta a unui codicator standard),
atunci PLA-ul se numeste de obicei PROM (Programmed ROM).
94 CAPITOLUL 5. SISTEME 0 DS
5.11 Unitatea aritmetica si logica
Toate circuitele prezentate pana acum aveau asociate cate o singura funct ie (aritmetica,
de select ie sau de comparat ie).
Vom ncheia prezentarea sistemelor 0 DS construind un circuit care poate realiza
mai multe funct ii, selectate pe baza unui cod de select ie.
Numele sub care este cunoscut acest circuit este unitatea aritmetica si logica (ALU).
Vom considera o unitate relativ simpla cu numai 8 funct ii.

In cadrul ei vor exista mai
multe tipuri de conexiuni:
Doua intrari de n bit i ecare, pentru operanzii S (stang) si D (drept), codicat i
S
n1
, . . . , S
0
respectiv D
n1
, . . . , D
0
;
O intrare F de trei bit i (F
2
, F
1
, F
0
) pentru specicarea funct iei printr-un cod;
O iesire R = (R
n1
, . . . , R
0
) pentru rezultat;
O iesire pentru indicatori (ags) - bit i cu diverse semnicat ii: CARRY, OV FL,
ZERO, SGN, ODD.
ALU

S
n1
. . .
S
0
D
n1
. . .
D
0
F
2
F
1
F
0
CARRY
OV FL
ZERO
SGN
R
n1
. . .
R
0 ODD
, ,
Mult imea funct iilor poate de exemplu:
AND: realizeaza funct ia logica AND bit cu bit (R
i
= S
i
D
i
);
OR: funct ia logica OR;
XOR: funct ia XOR;
ADD: face suma aritmetica modulo 2
n
dintre numerele de n bit i reprezentate binar
prin S (operand stang) respectiv D (operand drept);
SUB: face diferent a aritmetica dintre S si D;
INC: mareste (incrementeaza) valoarea lui S cu

1

;
LEFT: transfera la iesire valoarea lui S;
SHL: deplaseaza cu o pozit ie spre stanga valoarea lui S, ultimul bit (cel mai put in
semnicativ) ind pierdut;
5.11. UNITATEA ARITMETIC

A SI LOGIC

A 95
Structura interna a ALU consta n acest caz din n componente (felii), cate una
pentru ecare intrare S
i
, D
i
, un circuit CLC si cateva port i suplimentare.
Forma unei astfel de componente este data de Figura:
`

`


`


`
MUX
2

.
.
.

MUX
3

,

`
,

, ,

, ,

, ,
, , ,

D
i

F
2
F
1
x
1
x
0
0 1 2 3
y
S
i
C
i
S
i1
G
i
P
i
2 7 0 1 4 5 6 3
F
2
F
1
F
0
y
R
i
x
2
x
1
x
0
MUX
2
selecteaza drept al doilea operand valoarea din D
i
, complementul ei la 1
(pentru scadere), sau valoarea

0

(pentru incrementare) (C
0
de la intrarea lui CL
si o poarta pentru generarea diferit ilor ag);
Port ile AND, OR si primul XOR realizeaza funct iile logice si genereaza semnale
pentru funct iile aritmetice (G
i
, P
i
pentru CL si suma dintre S
i
si D
i
);
Al doilea XOR realizeaza suma semnalelor de transport generate de CL, completand
operat iile aritmetice;
MUX
3
selecteaza conform codului F funct ia realizata de ALU;
Intrarea S
i1
este primita de la componenta (felia) din dreapta, pentru realizarea
deplasarii;
96 CAPITOLUL 5. SISTEME 0 DS
Descrierea comportamentului acestui ALU este dat de tabelul:
F
2
F
1
F
0
Intrarea R
i
Operat ia
0 0 0 0 S
i
D
i
AND
0 0 1 1 S
i
D
i
OR
0 1 0 2 S
i1
SHL
0 1 1 3 S
i
D
i
C
i
ADD
1 0 0 4 S
i
D
i
XOR
1 0 1 5 (S
i
D
i
) C
i
SUB
1 1 0 6 S
i
C
i
INC
1 1 1 7 S
i
LEFT
Este evident ca cele mai lente operat ii realizate de ALU sunt operat iile aritmetice,
deoarece semnalele sunt ntarziate suplimentar de trecerea prin CL pentru generarea
semnalelor C
i
.
5.12 Exercit ii
1. Se da funct ia booleana f : {0, 1}
3
{0, 1}
3
denita
f(x, y, z) = (x +yz, y +zx, z +xy)
Construit i un codicator pentru implementarea ei.
2. Construit i un codicator pentru funct ia f : {0, 1}
3
{0, 1} denita prin octetul
10010100.
3. Construit i o memorie ROM pe 3 bit i, n care la adresa x se aa valoarea x+3 (mod 8)
(codul Excess 3 pe trei bit i).
4. Se da la intrare o secvent a de 5 bit i. Sa se construiasca un circuit care scoate bitul
care apare majoritar in acea secvent a.
5. Se da la intrare o secvent a x de 6 bit i. Sa se construiasca un circuit codicator care
scoate valoarea 1 daca si numai daca numarul a carui reprezentare binara este x,
este divizibil cu 4.
6. Construit i un circuit pentru DMUX
2
.
7. Dat i o construct ie directa si una recursiva pentru MUX
3
.
5.12. EXERCIT II 97
8. Sa se construiasca funct ia sum a trei bit i folosind MUX
3
.
9. Folosind numai EMUX construit i un circuit pentru funct ia booleana
f(a, b, c, d) = a(b +c)d +a(b +d)(b +c)(c +d) +b c d.
10. Aceeasi problema, folosind codicatori.
11. Fie funct ia f(x, y, z) = x +y +z. Sa se construiasca un circuit combinat ional logic
folosind:
(a) Codicatori;
(b) Multiplexori elementari.
12. Aceeasi problema pentru f(x, y, z) = (x +yz, xy +x yz, y +xz).
13. Se da structura din gura (formata din doua HA, un FA si o poarta OR):
FA
HA HA
`
.



x
4
x
2
x
1
x
0
c s c s
s c
Construit i tabela de valori.
14. Construit i un codicator cu prioritate pentru m = 7 bit i.
15. Construit i un circuit de deplasare dreapta/stanga cu 0,1 pozit ii pentru un vector de
4 bit i.
16. Detaliat i construirea CL (Carry lookahead) pentru un sumator pe 4 bit i.
17. Sa se construiasca un comparator pe pe 4 bit i si apoi pe baza lui un comparator
pe 16 bit i.
18. Construit i un comparator pe 4 bit i folosind ca baza un singur 4 FA.
98 CAPITOLUL 5. SISTEME 0 DS
19. Se da funct ia booleana f : {0, 1}
3
{0, 1}
3
denita
f(x, y, z) = (x +yz, x +yz, x +yz)
(a) Construit i un PLA pentru implementarea ei.
(b) Construit i un PROM pentru implementarea ei.
Capitolul 6
Sisteme 1 DS (Memorii)
6.1 Caracteristicile sistemelor cu un ciclu
Conform ideilor prezentate n Capitolul 4, trecerea spre circuitele de nivel superior consta
n introducerea unui ciclu care sa nchida din exterior circuitele deja existente.
Apare aici un prim grad de autonomie al circuitului ceea ce am denit prin stare.
Starea unui circuit depinde numai part ial de semnalul de intrare, fapt care va conduce
la o independent a part iala a iesirii fat a de congurat ia de intrare.
Evolut ia iesirilor circuitului ramane binent eles sub controlul intrarilor, dar starile
ofera o autonomie part iala.
Alta caracteristica a sistemelor din 1 DS consta n posibilitatea de a putea pastra
informat ia de intrare o perioada determinata de timp.
Aceasta proprietate este specica memoriilor.
Informat ia memorata este pusa la dispozit ia diverselor circuite n anumite faze de
lucru. Pentru aceasta apare necesitatea unei sincronizari a operat iilor n desfasurare,
pentru ca acestea sa poata conlucra corect si ecient.
Motiv pentru care apare un dispozitiv general de control al circuitelor: ceasul (CK).
Acest circuit bistabil asigura o discretizare a timpului de calcul, facand posibila
denirea unor not iuni temporale cum ar moment actual, tact, istoric, dezvoltare ul-
terioara etc.
Principalele circuite cu un ciclu intern sunt:
zavor elementar: circuit format din doua cicluri cuplate la doua port i de intrare;
ip - op master - slave: extensie seriala formata din doua zavoare elementare;
random access memory (RAM): extensie paralela formata din n zavoare elementare
accesate printr-un DMUX
n
si un MUX
n
;
99
100 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
registrul: extensie serial - paralela formata prin legarea n paralel de ip - opuri
master - slave.
6.2 Cicluri stabile si instabile
Exista doua tipuri de cicluri care nchid un circuit combinat ional logic; numai unul din
ele este util n construct ia circuitelor digitale, anume cel care genereaza o stare stabila;
celalalt circuit genereaza o stare instabila la iesire si poate folosit la construirea ceasului.
Diferent a dintre ele poate reliefata prin urmatorul exemplu:
Exemplul 6.1 Ciclul din Figura (a) este nchis conectand iesirea y
0
a unui EDCD la
intrarea x
0
.
Sa presupunem ca y
0
= 0 = x
0
.
La iesire semnalul devine 1, apoi 0 etc; astfel, cele doua iesiri ale decodicatorului
sunt instabile, comutand de pe 0 pe 1 si invers.
Momentul de schimbare a valorii de iesire (din 0 n 1 si invers) deneste frecvent a
circuitului si se numeste tact.

.
.
.
d

.
.
.
d

.
.
.
d

.
.
.
d s s

` x
0
y
0
y
1
EDCD
f (a)

`

f
x
0
y
0
y
1
EDCD
(b)
Al doilea tip de ciclu se obt ine conectand iesirea y
1
la intrarea x
0
(Figura (b)).
Daca y
1
= 0 = x
0
, atunci y
0
= 1 xand iesirea y
1
la valoarea 0.
Similar daca y
1
= 1 = x
0
.
Deci, acest circuit are doua stari stabile.
Pentru moment nu stim cum sa comutam de la o stare la alta, circuitul neavand nici
o intrare prin care sa putem controla schimbarea.
Principala diferent a de construct ie dintre cele doua structuri este:
Ciclul instabil are un numar impar de complementari (deci semnalul revine la iesire
cu o valoare complementata);
Ciclul stabil cont ine un numar par de complementari;
6.2. CICLURI STABILE SI INSTABILE 101
Exemplul 6.2 Sa consideram un circuit cu 3 nivele de complementare:
&%
d
/
/
/ \
\
\
d
/
/
/ \
\
\
d

`

C
o
o

o
`

C
o
o

o
t
t
t
t
Daca la intrare apare comanda C = 0, atunci ciclul este deschis, adica uxul semnalului
este ntrerupt; daca valoarea lui C devine 1, atunci comportarea circuitului este descrisa
de diagramele din dreapta.
Circuitul va genera un semnal periodic.
Pentru a putea utilizat practic, un circuit trebuie sa treaca printr-un numar par
de complementari pentru toate combinat iile binare aplicate la intrare. Altfel, pot exista
combinat ii pentru care circuitul se destabilizeaza.
Schimbarea starii unui circuit nu este instantanee, ea depinzand de diverse caracteris-
tici zice ale circuitului.
Vom nota cu t
pHL
intervalul de timp n care un circuit comuta de la starea 1 la starea
0, si cu t
pLH
intervalul de timp de trecere de la starea 0 la starea 1.
Ambele valori sunt numere nenegative si considerate constante pentru un circuit.

t
0
t
0
+t
pLH
t
1
t
1
+t
pHL

`
t
0
t
1
+t
pHL
(b) (a)
t t
Situat ia reala este reprezentata n Figura (a).
Modalitatea de reprezentare din Figura (b) este utilizata atunci cand se considera o
situat ie ipotetica de schimbare instantanee a starilor.
102 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.3 Zavoare elementare
Cel mai simplu circuit stabil fara nici o inversiune si cu o singura intrare este cel din
Figurile (a) si (b):
&%

&%

s
`

o
(a) (b)
Primul circuit poate comandat sa comute numai n starea 0, iar al doilea numai n
starea 1.

Intr-adevar, poarta AND cu valoarea



1

la intrare are iesire stabila atat n starea 0


cat si n starea 1.
Starea poate schimbata din 1 n 0 aplicand

0

la intrare.
Timpul minim de trecere n starea 0 este t
pHL
(timpul de propagare al semnalului prin
ciclu).
Dupa acest interval de timp, indiferent de valoarea semnalului de intrare (

sau

0

),
circuitul (a) ramane stabil n starea 0 aceasta ind si valoarea de iesire.
Spunem ca circuitul este activ la frecvent a joasa.
La circuitul (b), semnalul inactiv de intrare este

0

; circuitul poate trece din starea 0


n starea 1 prin aplicarea la intrare a valorii

1

ntr-un interval de timp cel put in egal cu


t
pLH
. Dupa aceea, starea ramane 1 indiferent de intrare.
Spunem ca (b) este activ la frecvent a nalta.
Ambele circuite zavorasc n ele semnalul aplicat la intrare:

0

pentru circuitul (a),



1

pentru circuitul (b).


Cele doua circuite sunt combinate n circuitul (c).
&%

0)

s
`

R
S
Q
(c)
&%&%
d d

S R
Q
Q
(d)
s s

0)0)
d d

`
`
`
`
`

S R
Q
Q

`
`
`
`
`

s s

(e)
6.3. Z

AVOARE ELEMENTARE 103


Acest zavor elementar eterogen are doua intrari: una activa la frecvent a joasa (R) pentru
a reseta circuitul n starea 0, si alta activa la frecvent a nalta (S) pentru a seta circuitul
n starea 1.
Valoarea

0

trebuie sa ramana la intrarea R cel put in 2t


pHL
pentru a asigurata
comutarea; din acelasi motiv, valoarea

1

va ramane la intrarea S cel put in 2t


pLH
unitat i
de timp.
Exista urmatoarele posibilitat i de funct ionare (notam cu Q
n
starea/iesirea la tactul n):
S = 0, R = 0: atunci circuitul ramane n starea n care a fost (Q
n+1
= Q
n
);
S = 1, R = 0: are loc o setare a circuitului Q
n+1
= 1 (indiferent cat a fost Q
n
).
S = 0, R = 1: circuitul este resetat se revine la starea Q
n+1
= 0.
De remarcat ca varianta R = 1, S = 1 nu este acceptata, starea Q
n+1
neputand
nedeterminata.
O reprezentare a funct ionarii circuitului este data de graful:
"!
#
"!
#


1 0
S = 0
R = 0
S = 1
R = 1
S = 0
R = 0
Fiind un circuit de tipul 1 DS, ecuat ia sa va exprimata sub o forma recursiva:
Q = S +RQ
Aplic and regulile lui De Morgan acestei ecuat ii se vor obt ine circuite cu structuri
simetrice:
- transformarea port ii OR conduce la circuitul (d), construit numai cu port i NAND;
- transformarea port ii AND conduce la circuitul (e), construit numai cu port i NOR.

In aplicat ii 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 act ionam: setare sau resetare.
104 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.3.1 Zavoare elementare cu ceas
O rezolvare part iala a punctelor slabe ment ionate anterior consta n extensia seriala a
doua zavoare (pentru a elimina complementarea variabilelor de intrare din varianta (d))
si introducerea unui ceas pentru sincronizare.
Se obt ine un circuit numit zavor elementar cu ceas (notat RSL).
Structura acestuia este prezentata de Figura (a), iar simbolul logic de Figura (b).
"! "!
d d
&% &%
d d

`
`
`
`
` `'
s s
.

CK
S R
Q
Q
(a)
RSL


S CK R
Q
Q
(b)

.
nivel activ
Cele doua intrari sunt pentru setare (S) si resetare (R), iar ceasul este act ionat
act ionand temporar CK pe 1.
Daca zavorul trebuie setat, atunci S = 1, R = 0, dupa care se face CK = 1 pentru
un interval de timp egal cu t
pLH
.
Spunem n acest caz ca nivelul activ al ceasului este la frecvent a nalta (high level).
Pentru resetare, procedura este analoga.
De remarcat ca pentru nivelul activ al lui CK zavorul este transparent, adica orice
modicare a intrarilor S, R modica starea circuitului.

Intr-adevar, daca CK = 1, atunci la activarea lui S (R) zavorul este setat (respectiv
resetat).
Aceasta separare dintre cele doua semnale conduce la diferent ierea dintre cum se re-
alizeaza schimbarea starii circuitului si cand are loc aceasta schimbare.
Zavorul elementar cu ceas rezolva o parte din problemele ridicate anterior si permite
un control mai strict asupra act iunii de memorare a informat iei.
Totusi o problema importanta este aceea ca un RSL poate comuta de mai multe ori
n perioada cand ceasul este setat pe

1

In general aplicat iile cer schimbarea starii la un anumit moment, pe care l semnaleaza
prin CK. Ori un RSL permite doar un interval de transparent a, nu si o ment inere a starii
pe toata durata acestui interval.
6.3. Z

AVOARE ELEMENTARE 105


6.3.2 Zavorul de date

In circuitul precedent apare o situat ie speciala daca R = S = 1; atunci CK comuta


zavorul ntr-o stare care nu poate prevazuta apriori.
Aceasta varianta poate evitata introducand o complementare ntre intrarile unui
RSL. Vom nota cu D (date) aceasta unica intrare.
RSL

.
.
.
d


D
S R
Q
Q
(a)
CK
DL


D CK
Q
Q
(b)
Iesirea unui DL urmeaza permanent intrarea D (deci circuitul beneciaza de o au-
tonomie redusa).
Iesirea este sincronizata cu ceasul numai daca pe nivelul activ al lui CK intrarea D
este stabila.
O varianta de construct ie a zavorului de date fara nici un invertor este:
"! "!
d d

s
"! "!
d d

s s

s
D
CK
Q
Q
106 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.4 Structura master - slave
O structura de zavor, care elimina multe probleme ale circuitelor anterioare, este sistemul
numit master - slave.
Acesta se bazeaza pe un circuit cu doua stari numit ip - op, care comuta sincronizat
cu arcul (n sus sau n jos) semnalului dat de ceas.
RSL
RSL
/
/
/ \
\
\
d
s




CK
S R
S CK R
Q
Q
S CK R
Q
Q
Q
Q (a)
RSF F

nivel activ
S CK R
Q
Q
(b)
Ideea consta n conectarea seriala a doua zavoare RSL si punand (prin intermediul
complementarii) n antifaza semnalul de ceas.
Primul zavor este transparent la nivelul superior al ceasului (prima jumatate a unui
tact), iar al doilea zavor este transparent la nivelul inferior (a doua jumtatate a tactului).
Deci nu exista nici un interval de timp n care toata structura sa e transparenta.

In prima faza (nivelul superior al lui CK), primul zavor (master) comuta n confor-
mitate cu semnalele S si R; n faza a doua (nivelul inferior al lui CK), al doilea zavor
(slave) comuta copiind starea masterului.
Iesirea din toata structura este modicata numai dupa ce a cazut tranzit ia intrarii
CK.
Vom spune ca circuitul RS master - slave comuta ip - op conform cu arcul n jos
al lui CK.
Pe o structura master - slave vom putea deci controla totdeauna momentele cand
poate schimbata starea sistemului.
6.4. STRUCTURA MASTER - SLAVE 107
Exista doua intervale de timp care trebuie avute n vedere:
Timpul de setare t
S
- timpul anterior arcului activ al lui CK, n care intrarile
S si R trebuie ment inute stabile pentru a avea sigurant a existent ei unei comutari
conforme cu valorile lor;
Timpul de sust inere t
H
- timpul posterior arcului activ al lui CK, n care R si S
trebuie ment inute stabile.

In timpul comutarii adica aproximativ intervalul t


S
+t
H
intrarile trebuie sa e evident
stabile, deoarece altfel ip - opul nu stie starea n care trebuie sa comute.
6.4.1 Flip - op cu ntarziere
O alta modalitate de eliminare a situat iei de nedeterminare R = S = 1, deci de a avea
R = S o constituie urmatorul circuit, numit ip-op cu ntarziere (DFF).
De remarcat ca intrarea este numita tot D (ca la date), dar acum ea are semnicat ia
de delay.

In afara de restrict ia din construct ie (R = S), acest ip-op mai are un avantaj: iesirea
lui D copiaza intrarea, ntarziata cu un tact.
RSF F

.
.
.
d s

D
S CK R
Q
Q
(a)
DFF

D CK
Q
Q
(b)
`


CK
D
Q
t
t
t
(c)
DFF este unul din cele mai importante circuite construite pana acum, n special
datorita numeroaselor aplicat ii.
108 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
Exemplul 6.3 Sa construim un sumator serial, care aduna doua numere ntregi binare
fara semn X, Y ambele de aceeasi lungime (arbitrara), producand rezultatul Z = X +Y .
Numerele sunt introduse si prelucrate serial (bit cu bit), iar rezultatul este obt inut tot
serial.
La tactul i sumatorul serial primeste doi bit i x
i
, y
i
si calculeaza un bit z
i
.
De asemenea el mai produce si un bit de transport c
i
, care participa la operat ia de
adunare de la urmatorul tact.
Iesirea la tactul i este deci
c
i
z
i
= x
i
+y
i
+c
i1
unde valoarea lui c
i1
va determinata de starea s
i
a sumatorului.
Sunt posibile doar doua stari interne: s
0
cand c
i1
= 0, si s
1
cand c
i1
= 1.
O memorie cu doua stari interne consta dintr-un DFF care stocheaza variabila de
stare s. O construct ie imediata este
DFF
FA

x
y
z s
c
out
c
in
x
y
D
CK
Q
CK
Pentru doua numere X, Y de n bit i ecare, sumatorul serial va lucra n + 1 tact i.
La ultimul tact, intrarile x si y vor primi valoarea

0

, iar c
in
va primi valoarea stocata
n DFF.
Iesirea va ultimul bit pentru suma Z, si valoarea de transport

0

care reseteaza DFF.


6.5. MEMORIA RAM 109
6.5 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 construit usor pe dimensiuni mari.
Denit ia 6.1 O memorie RAM
m
de m bit i este o colect ie liniara de m = 2
n
DL-uri cu
date de intrare comune, ecare primind un semnal de ceas distribuit de un DMUX
n
si
ind citite de un MUX
n
. Codul de select ie a
n1
, . . . , a
0
este comun pentru DMUX si
MUX.
Structura asociata acestei denit ii este reprezentata mai jos, unde WE semnica capabil
de scriere si este un semnal activ inferior care permite operat ia de scriere n celula de
memorie selectata de adresa a
n1
, . . . , a
0
.
Am notat de asemenea cu DIN magistrala datelor de intrare, si cu DOUT iesirea din
circuit.
DMUX
n
MUX
n
DL DL DL




s s
WE
a
n1
, . . . , a
0
DOUT
y
m1
y
1
y
0
i
0
i
1
i
m1
CK D CK D CK D
. . .
Q Q Q
DIN
Se poate da si o denit ie recursiva a memoriei RAM, plecand de la denit iile recursive
ale componentelor sale. Nu vom detalia aceasta varianta.
110 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.6 Registri
O alta componenta de baza a unui calculator o constituie registrul.
El este si principalul suport pentru trecerea la urmatorul ordin de complexitate al
circuitelor nchiderea celui de-al doilea ciclu.
Un registru de n bit i este o secvent a ordonata de ip-opuri capabile sa stocheze un
cuvant de n bit i.
Fiecare bit este stocat ntr-un RSF F sau DFF.
Toate unitat ile de memorie au linii de control (ceas, resetare) comune. Dupa modul
de extensie folosit, vom avea registri seriali, paraleli sau serial-paraleli.
6.6.1 Registrul serial
Figura urmatoare prezinta un SR
n
(structura si simbolul logic):
DFF RSFF RSFF



` ` `
s s
IN
CK
D Q S Q S Q OUT
Q R Q R Q
CK CK CK
. . .
. . .
. . .
(a)
SR
n

CK
IN OUT
(b)
Denit ia 6.2 Un registru serial SR
n
de n bit i se deneste recursiv astfel:
(i) SR
1
este un DFF;
(ii) SR
n
se obt ine prin extensia seriala a unui SR
n1
cu un SRF F.
Este evident ca SR
n
introduce o ntarziere de n tact i ntre intrare si iesire.
Un bit care intra ntr-un SR
n
la tactul i, va iesi din registru la tactul n + i, ecare
tact permit and trecerea acestei informat ii de la un ip-op la urmatorul.
Din acest motiv, registrii seriali sunt folosit i cu precadere n construct ia liniilor con-
trolate de ntarziere.
Rolul ceasului este de a sincroniza componentele registrului.
6.6. REGISTRI 111
6.6.2 Registrul paralel si registrul serial - paralel
Denit ia 6.3 Un registru (paralel) R
n
de n bit i se deneste recursiv astfel:
(i) R
1
este un DFF;
(ii) R
n
se obt ine prin extensia paralela a lui R
n1
cu un DFF.
Principalul avantaj al acestei componente este netransparent a sa, cu except ia unei trans-
parent e nedecidabile n primele t
S
+t
H
momente.
Deci el poate nchis eventual cu un nou ciclu.
Mai mult, netransparent a asigura posibilitatea de a ncarca registrul cu orice valoare,
inclusiv cu o valoare care depinde de propriul sau cont inut.
DFF DFF DFF



s s

x
n1
x
n2
x
0
CK
. . .
D CK D CK D CK

. . .
y
n1
y
n2
y
0
(a)
Q Q Q
R
n


n
X
CK
Y
(b)
Mai mult i registri paraleli pot legat i n serie, obt inandu-se un registru serial - paralel
R
nm
.
Denit ia sa recursiva este:
Denit ia 6.4 Un registru serial - paralel SPR
nm
se obt ine recursiv astfel:
(i) SPR
1m
este registrul R
m
;
(ii) SPR
nm
se obt ine prin extensia seriala a unui SPR
(n1)m
cu un R
m
.
Structura si simbolul logic al unui astfel de registru sunt:
R
m
R
m
R
m


` ` `
s s
IN
. . .
OUT
CK
. . .
(a)
SPR
nm

IN OUT
CK
(b)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
n n
n n n n n
112 CAPITOLUL 6. SISTEME 1 DS (MEMORII)
6.7 Exercit ii
1. Fiind date doua numere pe n bit i (cu primul bit drept bit de semn) sa se construiasca
un circuit care sa selecteze pe cel mai mare dintre ele.
2. Fie inelul boolean Z= (Z
2
, , ). Fiind xat polinomul
a(X) = a
0
a
1
X a
2
X
2
. . . a
n
X
n
Z
2
[X]
sa se construiasca un circuit de nmult ire cu a(X) n Z.
Detaliind, sa se construiasca un circuit care sa primeasca la intrare coecient ii unui
polinom b(X) Z
2
[X] si sa scoata coecient ii polinomului a(X) b(X).
3. Sa se construiasca un circuit de mpart ire la un polinom dat
a(X) = a
0
a
1
X a
2
X
2
. . . a
n
X
n
Z
2
[X]
Caz particular: a(X) = X 1.
4. Se da un DFF. Sa se construiasca un circuit a carui iesire este 1 daca si numai
daca DFF schimba starea (din 0 n 1 sau din 1 n 0). De exemplul pentru intrarea
00110 iesirea va 00101.
5. Sa se construiasca un circuit care are iesirea 1 daca cel put in doi din ultimii trei
bit i de intrare sunt 1. De exemplu, pentru intrarea 10011010011 iesirea va
00001110001.
Capitolul 7
Sisteme 2 DS (Automate)
Urmatorul pas n construct ia sistemelor digitale consta n adaugarea unui nou ciclu la
sistemele de ordin 1. Acest al doilea ciclu creste autonomia comportarii sistemului inclus.
Acum sistemele au o evolut ie a spat iului starilor part ial independenta de dinamica
intrarii.
Vom lua n considerare numai circuitele sincrone: circuite n care orice ciclu cont ine
cel put in un registru.
7.1 Denit ii de baza
Structura fundamentala a unui sistem 2 DS este automatul
1
.
Denit ia 7.1 Un automat A este un 5 - tuplu A = (Q, X, Y, , ) unde
Q este o mult ime nevida de elemente numite stari;
X este mult imea (nita, nevida) a variabilelor de intrare;
Y este mult imea (nita, nevida) a variabilelor de iesire;
: QX Q este funct ia de tranzit ie a starilor;
este funct ia de iesire, avand forma
: QX Y pentru automatul tip Mealy,
: Q Y pentru automatul tip Moore.
1

In teoria limbajelor formale, termenul corespunde celui de translator nit


113
114 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
La ecare tact, starea automatului comuta si iesirea ia valoarea conform cu noua stare (si
valoarea curenta de intrare n structura Mealy).
Denit ia 7.2 Un automat cu ntarziere (Mealy sau Moore) este un automat avand la
iesire valorile generate de un registru (cu ntarzieri); deci valoarea curenta de la iesire
corespunde starii interne anterioare a automatului.
Teorema 7.1 Relat ia de timp dintre valorile de intrare si iesire poate cuprinde urmatoa-
rele forme:
1. Pentru automatul Mealy, y
t
= (q
t
, x
t
);
2. Pentru automatul Mealy cu ntarziere, y
t
= (q
t1
, x
t1
);
3. Pentru automatul Moore, y
t
= (q
t
) = ((q
t1
, x
t1
));
4. Pentru automatul Moore cu ntarziere, y
t
= (q
t1
) = ((q
t2
, x
t2
)).
Demonstrat ia este evidenta si pleaca de la denit ie.
Din aceasta teorema rezulta ca avem la dispozit ie automate cu diverse faze de react ie
la variat iile intrarii.
Deoarece n toate implementarile cunoscute mult imea Q a starilor este nita, vom
folosi urmatoarea varianta de automat:
Denit ia 7.3 Un automat nit este un automat n care Q este nita iar accepta o
denit ie nerecursiva.
Este interesant, dar aceasta denit ie conduce la o structura mai complexa pentru auto-
matele nite, decat structura generala a automatelor.

In continuare vom folosi numai automate Mealy (se poate demonstra ca abstract ie
facand eventual de primul caracter de iesire cele doua tipuri de automate sunt echiva-
lente).
Automatele pot descrise si sub forma unui graf orientat, n care nodurile sunt marcate
cu starile din Q, iar arcele se marcheaza cu perechi de elemente din XY n felul urmator:
Exista un arc de la q la p marcat cu (a, x) d(q, a) = p, (q, a) = x
`
_
`
_

q p
a/x
7.1. DEFINIT II DE BAZ

A 115
Marimea si complexitatea unui automat sunt direct proport ionale cu dimensiunile mult i-
milor care le compun.
Deci, din acest punct de vedere, cel mai simplu automat are numai doua stari
Q = {0, 1} (reprezentate pe un bit), un bit de intrare T {0, 1} si Y = Q.
Structura asociata este
CLC
DFF

T
CK
D
Q
Q
,
unde exista un bit de intrare T, un registru de un bit (de obicei DFF) pentru stocarea
unei stari de un bit, si un circuit combinat ional logic CLC pentru calculul funct iei .
Exemplul 7.1 Un DFF poate exprimat ca un automat cu doua stari (CLC se reduce
la funct ia identica). Formal Q = X = Y = {0, 1}, iar funct iile , : {0, 1}
2
{0, 1}
sunt denite prin tabelele de valori
0 1
0 0 1
1 0 1
0 1
0 0 0
1 1 1
Graful de funct ionare al unui DFF este
`
_
`
_


0 1 0/0
1/0
0/1
1/1
Observat ia 7.1 Pentru reprezentarea funct ionarii unui DFF, automatul Moore este
mai adecvat, iesirea copiind permanent starea n care se aa circuitul.
Exemplul 7.2 Sa consideram circuitul compus din doua DFF, o poarta AND si o
poarta OR:
116 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
DFF DFF

,
X D
Q
Q
D
Q
Q
Y

` `
,
CK
CK
CK
Circuitul are o singura intrare, patru stari date de combinat iile Q
1
Q
2
{00, 01, 10, 11},
intrarile n DFF-uri D
1
= X, D
2
= X Q
1
si o iesire Y = Q
1
Q
2
.
Deci X = Y = {0, 1}, Q = {00, 01, 10, 11}, (Q
1
Q
2
, x) si (Q
1
Q
2
, x) denite prin
tabelele
0 1
00 01 11
01 01 11
10 00 11
11 00 11
0 1
00 0 0
01 0 0
10 0 0
11 1 1
Graful automatului este
`
_
`
_
`
_
`
_

.
`
`
`
`
`
`
`

`
00 01
10 11 1/1
1/0 0/1
0/0
1/0
0/0
1/0
0/0

In acest automat, starea 10 este inaccesibila din starea de nceput 00, iar starile 00 si
01 sunt echivalente (funct ioneaza identic)). Daca le eliminam
2
obt inem un automat cu
numai doua stari (graful din stanga)

11
00 0/0
0/1 1/0
1/1
DFF

`
X D
CK
Q Y = Q
Q
Daca se renoteaza starea 00 cu 0 si 11 cu 1, se obt ine un DFF (gura din dreapta).
Deci circuitul din acest exemplu poate nlocuit cu un ip-op de date.
2
Algoritmii sunt identici cu cei de la Limbaje formale.
7.2. FLIP - FLOPURI 117
7.2 Flip - Flopuri
Folosind structura bazata pe DFF-uri denita n sect iunea anterioara, se pot construi
alte doua ip-opuri de ecient a sporita: T ip-opuri si JK ip-opuri.
7.2.1 Automatul T Flip Flop
Daca drept circuit logic combinat ional folosim o poarta XOR se obt ine circuitul (a)
numit T ip-op (TFF pe scurt) avand notat ia (b):


`
DFF

`
T
CK
D
Q
Q
+
(a)
,
TFF

CK
T
Q
(b)
Ecuat ia de funct ionare este Q
+
= (Q, T) = T Q iar iesirea Y = (Q, T) = Q.
Ce ar putea semnica mesajul adus de un bit T pentru acest automat cu doua stari ?
T = 0 = starea automatului ramane aceeasi (Q = 0 sau Q = 1).
T = 1 = starea automatului comuta.
Structura de automat este: Q = X = Y = {0, 1},
0 1
0 0 1
1 1 0
0 1
0 0 0
1 1 1
iar graful de funct ionare
`
_
`
_


0 1 0/0
1/0
1/1
0/1
118 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Acest circuit simplu poate folosit cu mai multe interpretari:
Ca numarator modulo 2, deoarece pentru T = 1 timp de mai mult i tact i, iesirea va
01010101 . . .;
Ca divizor de frecvent a. Daca frecvent a ceasului este f
CK
, atunci frecvent a sem-
nalului primit la iesirea din automat este f
CK
/2 (dupa ecare ciclu, circuitul se
ntoarce n aceeasi stare).
TFF

Q
Q
CK
T
CK
. . .
. . .
Observat ia 7.2 Cateva remarci referitoare la semnalele de iesire Q si Q:
- Ele sunt exact inverse unul altuia;
- Frecvent a lor este exact jumatate din frecvent a semnalului de intrare.
7.2.2 Automatul JK Flip Flop
Sa consideram alt automat, cu doua intrari notate J si K, numit JK ip op (JKFF):
DFF
`

``


, ,
J
K
CK
CK
D
Q
Q
Q
+
Q
+
(a)
JKFF


`
J CK K
Q
Q
(b)
Un JKFF are Q = Y = {0, 1}, X = {0, 1}
2
si
00 01 10 11
0 0 0 1 1
1 1 0 1 0
00 01 10 11
0 0 0 0 0
1 1 1 1 1
Graful de funct ionare va deci
`
_
`
_


`


00/1
10/1
10/0 11/0
01/1 11/1
00/0
01/0
0 1
7.2. FLIP - FLOPURI 119
Din structura se deduc ecuat iile de tranzit ie
(Q, JK) = (Q K) (Q J), (Q, JK) = Q
Deci structura de funct ionare poate exprimata mai simplu prin tabelul
J 0 0 1 1
K 0 1 0 1
D Q 0 1 Q
Cele patru mesaje de intrare posibile sunt:
1. no op: J = K = 0 iesirea ramane nemodicata (ca la T ip op cu T = 0);
2. reset: J = 0, K = 1 iesirea ia valoarea 0 (ca la DF F);
3. set: J = 1, K = 0 iesirea ia valoarea 1 (ca la DF F);
4. switch: J = K = 1 iesirea comuta pe starea complementara (similar cu T = 1 la
T ip op).
Ciclul este obligatoriu numai pentru ultima funct ie; aici ip - opul trebuie sa stie
care era starea anterioara a automatului, pentru a o putea schimba.
Prin aceasta comanda ciclul si arata autonomia.
Am obt inut o masina cu doua stari si doua intrari, cu proprietatea ca pentru orice
congurat ie de intrare posibila, circuitul are o comportare previzibila.
JK ip - opul este cel mai bun ip - op construit pana acum; toate celelalte pot
considerate cazuri particulare ale sale (pentru J = K = T se obt ine TFF, iar pentru
K = J = D avem DFF).
Pe baza acestui ip - op se pot construi divizori impari de frecvent a. Astfel, circuitul
urmator (cu o singura intrare si doua JKFF) asigura o diviziune prin 3 a unui tact.
JKFF JKFF

,
, ,
,

CK
CK
J K
Q
A
CK
J K
Q
B
Pentru intrarea constanta J = 1, iesirea va 00 10 11 00 10 . . .. Iesirea A va avea
valoarea 1 la doua momente din trei, iar iesirea B la un moment din trei.
Deci o extensie seriala a unei magistrale de ceas cu acest circuit face posibila seg-
mentarea unui tact n cicluri de 1/3 (33, 333%) si 2/3 (66, 667%).
120 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.3 Numaratori (counteri)
Multe circuite digitale folositen extrem de numeroase aplicat ii, necesita numarari (nainte
si napoi).
De aceea s-au dezvoltat diverse modalitat i de generare a numaratorilor.
Desi exista multe variante, principiile de baza sunt aceleasi.
Astfel, o prima caracteristica comuna a lor este generarea recursiva.
O varianta de construct ie pleaca de la circuitul TFF: stim ca un astfel de circuit poate
numara modulo 2, deci cum am putea sa legam n T ip - opuri T
n1
, . . . , T
0
pentru a
numara modulo 2
n
?
O idee este urmatoarea: circuitele vor asezate astfel ca T
i
(1 i n1) sa comute
doar daca T
i1
, . . . , T
0
sunt simultan n starea 1; n plus, T
0
comuta la ecare pas.
Pentru a detecta aceste condit ii, pentru ecare i = 0, 1, . . . , n1 se va asocia un TFF
T
i
cu o poarta AND
i+1
, conform gurii urmatoare:
T
0
T
1
T
n1
`
`
`


CK INC
0
CK
T
Q
CK
T
Q
CK
T
Q
Q
0
Q
1
Q
n1
INC
n
. . .

, , , ,
, ,
,
,
, ,
,

.
.
.
7.3. NUM

AR

ATORI (COUNTERI) 121


Exemplul 7.3 Un counter pentru n = 2 are forma
T
1
T
0
`
`


,
, ,
, , ,
CK INC
0
T
CK
CK
T
Q
Q
Q
+
0
Q
+
1
INC
2
Daca notam cu X intrarea n circuit, cu T
0
, T
1
intrarile n cele doua TFF si cu Q
+
0
, Q
+
1
iesirile din cele doua TFF, ecuat iile de funct ionare sunt
T
0
= X, T
1
= Q
+
0
X
iar iesirile
Q
+
0
= Q
0
X, Q
+
1
= Q
1
(Q
+
0
X), INC
2
= X Q
+
0
Q
+
1
Comportamentul circuitului poate sumarizat n tabela
X Q
0
Q
1
T
0
Q
+
0
T
1
Q
+
1
Iesire(Q
+
1
Q
+
0
) INC
2
0 0 0 0 0 0 00 0
1 0 0 1 1 0 0 01 0
1 1 0 1 0 1 1 10 0
1 0 1 1 1 0 1 11 1
1 1 1 1 0 1 0 00 0
1 0 0 1 1 0 0 01 0
. . . . . . . . . . . .
Extinzand aceasta idee, ntr-o denit ie recursiva un numarator sincron COUNT
n
de
n bit i este construit prin extensia seriala dintre COUNT
n1
si un TFF, folosind o poarta
AND
n+2
care determina condit ia de comutare pentru urmatorul TFF; intrarea o consti-
tuie INC
0
si Q
n1
, . . . , Q
0
(gura de jos este part iala) iar iesirea INC
n
.
COUNT
1
este un TFF si un AND
2
, cu intrarea Q
0
, INC
0
si iesirea INC
1
.
122 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
T
n1
COUNT
n1
`

CK
CK
T
Q
CK INC
0
Q
0
. . .
Q
n2
INC
0
INC
n
Q
n1
Q
n2
. . .
Q
0
INC
n1
,
,
, ,
,
Acest circuit este rapid, dar dimensiunile sale cresc mult odata cu n: la ecare pas se
adauga un T ip - op si un sumator al carui numar de intrari depinde de n.
Se pot da si alte solut ii sincrone care sa pastreze o crestere rezonabila a dimensiunilor,
dar viteza de lucru va mai mica.
Daca toate intrarile n port ile AND sunt din Q (n loc de Q) se obt ine un numarator
binar descrescator.
Exemplul 7.4 Sa construim un numarator zecimal.
JKFF
TFF
2
TFF
1
TFF
0
`
`
` `




`

CK
CK
CK
CK
CK

T
Q
T
Q
T
Q
J K
Q
Q
Q
+
3
Q
+
2
Q
+
1
Q
+
0
, , , ,
, ,
,
,
,
,
,
7.3. NUM

AR

ATORI (COUNTERI) 123


Cum reprezentarea cifrelor 0, 1, . . . , 9 se poate realiza codicat pe patru bit i (de la 0000
la 1001), aceasta va necesita doar patru circuite de tip TFF sau JKFF.
Pentru usurint a, n structura reprezentata anterior s-au folosit trei circuite TFF si
un JKFF.
Binent eles, este posibila o construct ie n care toate cele patru module sa e JKFF;
n acest caz, la primele trei module JKFF se va folosi aceeasi valoare de intrare pentru
J si K).
Ecuat iile counterului zecimal sunt:
T
0
=

1

, T
1
= Q
+
0
(Q
3
)
+
, T
2
= Q
+
1
Q
+
0
, J = Q
+
0
Q
+
1
Q
+
2
, K = Q
+
0
Q
+
3
Q
+
0
= Q
0
, Q
+
1
= Q
1
T
0
, Q
+
2
= Q
2
T
2
, Q
+
3
= (Q
3
K) (Q
3
J)
Lasam ca exercit iu vericarea ca acesta este un counter pe patru bit i n care, dupa valoarea
1001 (corespunzatoare cifrei 9) urmeaza 0000.
124 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.4 Stive

Inafara memoriilor prezentate pana acum (ROM, RAM, registri), o memorie frecvent
folosita este cea de tip stiva (sau LIFO).
Exista multe solut ii practice pentru implementarea acestui gen de memorie.
Una din cele mai simple idei foloseste un numarator up-down UD COUNT
n
si o
memorie RAM.
UD COUNT
n
RAM

C
1
C
0
,
INC
0
U/D
,
CK
CK
WE Adresa
CK
D
OUT OUT IN D
IN
Un UD COUNT
n
este un numarator COUNT
n
cu o intrare suplimentara U/D care
specica daca numararea se efectueaza crescator (up): C
0
= 1, sau descrescator (down)
C
0
= 0.
Numararea descrescatoare se implementeaza la fel de simplu ca cea crescatoare: sin-
gura diferent a consta la intrarea n port ile AND unde vor ajunge iesirile Q ale ip -
opurilor (la crescator se folosea numai iesirea Q).
Introducerea acestei noi restrict ii se poate realiza folosind un EMUX (pentru se-
lectarea lui Q sau Q

) sau un XOR (pentru complementarea lui Q la comanda semnalului


U/D).
CK asigura sincronizarea celor doua circuite.
Structura din gura poate simula trei operat ii (funct ii):
1. no op: C
0
= 0, C
1
= 0 nici o operat ie;
2. push: C
0
= 1, C
1
= 1 UD COUNT
n
este incrementat si data aata la in-
trare (IN) este stocata (WE = 0) n RAM la adresa indicata de noul cont inut al
numaratorului.
3. pop: C
0
= 0, C
1
= 1 congurat ia binara stocata la adresa indicata de cont inutul
lui UDCOUNT
n
este citita la iesirea OUT si UDCOUNT
n
este decrementat
la noul punct de varf al stivei.
7.5. CIRCUITE ARITMETICE 125
7.5 Circuite aritmetice
7.5.1 Sumator serial
Pentru sumatorii de n bit i se poate construi n acest moment o alta versiune, care uneori
poate 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 construct ia din Capitolul 6).
SR
n
SR
n
SR
n
FA
,
,

`

`
`


D
IN
CK
D
OUT
DFF

A
B
C
S
C
+
D
Q
CK
D
IN
CK
D
OUT
CK
D
OUT
D
IN
Sumator
CK
Acest sumator serial cont ine 3 registri (doi pentru operanzi si unul pentru rezultat) si
un automat de nsumare.
Acesta este un automat cu doua stari, bazat pe un DFF legat printr-un ciclu cu un
sumator FA.
Starea curenta ret ine transportul sumei ciclului precedent. Intrarile A si B primesc
sincronizat la acelasi tact bit ii de pe aceeasi pozit ie din cei doi registri seriali care
cont in operanzii.
Automatul este init ial n starea 0, ceea ce semnica C
+
= 0.
Iesirea S este stocata bit cu bit timp de n tact i de al treilea registru.
Rezultatul nal este dat de al treilea registru serial si de starea ramasa n DFF.
Formal, Q = {0, 1}, X = {0, 1}
2
, Y = {0, 1} si
00 01 10 11
0 0 0 0 1
1 0 1 1 1
00 01 10 11
0 0 1 1 0
1 1 0 0 1
126 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Graful de funct ionare al automatului concentreaza toata aceasta informat ie n:

0 1
11/1
01/0
10/0
00/0
01/1
10/1
11/0
00/1
7.5.2 Circuit aritmetic serial - paralel
Este posibil ca timpul de execut ie al circuitului anterior sa e considerat prea mare (da-
torita extensiei seriale); atunci se poate face o combinat ie ntre extensia seriala si cea
paralela.
Un astfel de circuit este de exemplu:
ADD
m
DFF
SPR
nm
SPR
nm

D
IN
D
IN
CK
CK CK
D
OUT
D
OUT
A B
C
m
C
0
S
CK
D
D
IN
CK D
OUT
SPR
nm

Q

`

m
m
m m
m m
,
,
,
Aici se folosesc trei registri serial - paraleli SPR
nm
, un sumator de m bit i ADD
m
si
un registru cu doua stari (de exemplu un DFF).
Intrarile si iesirile circuitului sunt secvent e de m bit i.
Circuitul realizeaza suma a doua numere de n m bit i n n tact i.
7.5. CIRCUITE ARITMETICE 127
7.5.3 Sumatoare - prex
Automatele construite pana acum au fost foarte simple, toate avand numai doua stari.
Sa marim puterea acestor automate, conservand simplitatea funct iei de tranzit ie, dar
marind numarul starilor.
Multe aplicat ii solicita circuite cu funct ie si structura de acumulator, adica sisteme
capabile sa adune mai multe numere si sa returneze n nal suma lor sau toate sumele
lor part iale (prexe).
Astfel, sa consideram p numere x
1
, . . . , x
p
. Sumele prex sunt
y
1
= x
1
y
2
= x
1
+x
2
= y
1
+x
2
y
3
= x
1
+x
2
+x
3
= y
2
+x
3
. . .
y
p
= x
1
+x
2
+. . . +x
p
= y
p1
+x
p
(n mod similar se poate deni orice prefix, nlocuind adunarea + cu un operator
arbitrar ).
Vom prezenta aici un exemplu de automat aritmetic care sa genereze la ecare tact
cate un prex (ncepand cu y
1
).
R
m+n
ADD
m+n


IN
a
m+n1
. . . a
0 b
m+n1
. . . b
0
s
m+n1
. . . s
0
OUT

`
CK
CK
CK

m+n
m+n
m n
m+n
,
,
Valoarea init iala din registrul paralel R
m+n
este 0.
Automatul are 2
m+n
stari si calculeaza sumele part iale pentru p 2
m+1
1 numere
de cate n bit i.
La ecare tact se introduce un numar format din n bit i, iar pe cele m pozit ii supli-
mentare din stanga vor intra permanent

0

.
128 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Acesti m bit i suplimentari sunt necesari pentru a obt ine un rezultat corect si n
situat iile cele mai nefavorabile, cand sumele depasesc n bit i.
Automatul este evident foarte simplu. Cele doua componente sunt circuite simple care
pot denite recursiv.
Exemplul 7.5 Sa particularizam sumatorul prex denit anterior, pentru m = 2, n = 1.
El va avea forma
R
3
ADD
3

,
,
,
,
y
2
y
1
y
0
CK
CK
CK
b
2
b
1
b
0
x

0

0

a
2
a
1
a
0
Acest sumator lucreaza pe trei bit i, adunand permanent o valoare binara (

sau

1

);
el poate folosit si ca un counter pe trei bit i COUNT
3
.
Denit ca un automat, vom avea Q = {0, 1}
3
, X = {0, 1}, Y = {0, 1}
3
.
Funct iile de tranzit ie si de iesire rezulta imediat din graful de funct ionare:
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`
_
`


q
7
q
6
q
5
q
4
q
3
q
2
q
1
q
0
0/000 0/001 0/010 0/011 0/100 0/101 0/110 0/111
1/111 1/110 1/101 1/100 1/011 1/010 1/001
7.5. CIRCUITE ARITMETICE 129
7.5.4 Multiplicator
Sa construim un circuit secvent ial pentru nmult irea a doua numere binare.
Spre deosebire de circuitul combinat ional de nmult ire, acesta foloseste circuitul de
deplasare, bazandu-se pe faptul ca nmult irea este de fapt o adunare repetata.
Pentru usurint a expunerii, vom dezvolta o construct ie pentrunmult irea a doua numere
ntregi cu semn reprezentate pe 8 bit i (generalizarea ind imediata).
Fie numerele binare X = x
0
. . . x
7
si Y = y
0
. . . y
7
, din care formam produsul P = XY .
Numerele au reprezentarea standard: bit ii marcat i cu 0 sunt bit i de semn, iar restul
(notat X
M
respectiv Y
M
) semnica marimea numarului (considerat subunitar).
Valoarea lui este data de numarul
N =
7

i=1
x
i
2
i
Cand x
0
= 1, valoarea lui X este N.
Algoritmul de nmult ire va implementa ntai P
M
:= X
M
Y
M
, unde P
M
= p
1
. . . p
14
este valoarea absoluta a produsului.
Semnul lui P este dat de p
0
:= x
0
y
0
.
Rezultatul nal este numarul de 15 bit i P = p
0
p
1
. . . p
14
.
Valoarea P
M
este calculata iterativ prin sapte adunari/deplasari, denite de relat iile
P
i
:= P
i
+x
7i
Y
M
; P
i+1
:= 2
1
P
i
(1 i 6);
unde P
0
= 0, P
7
= P
M
.
Cand x
7i
= 1, avem P
i
:= P
i
+Y
M
, iar pentru x
7i
= 0 va P
i
:= P
i
+ 0.
Deci, la ecare pas, la produsul part ial P
i
se aduna nmult itorul Y
M
sau 0.

Inmult irea cu 2
1
este o deplasare a lui P
i
spre dreapta cu o pozit ie (dupa adunare);
aceasta este echivalenta cu o mpart ire la 2.
Fiecare astfel de pas (adunare + deplasare) adauga un bit la produsul part ial, care
creste astfel de la 7 la 14 bit i (la care se va adauga n nal si bitul de semn).
Putem specica acum principalele componente necesare n construct ia multiplicatoru-
lui pe 8 bit i.
Doi registri: Q (pentru nmult itor) si M (denmult it) vor cont ine X respectiv Y .
Un registru dublu (de 16 bit i) A.Q va stoca produsele part iale P
i
. De remarcat ca
acesta cont ine n a doua jumatate registrul nmult itor.
130 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Adunarea este realizata cu un sumator combinat ional (paralel) pe 7 bit i (se poate
folosi un sumator serial, dar va de sapte ori mai lent).
Sumatorul va avea iesirea si o intrare conectate la A, iar cealalta intrare va trebui
sa comute ntre M si 0.
Funct ia de deplasare la dreapta cu un bit se poate obt ine folosind pentru A un
registru de deplasare dreapta cu intrare/iesire paralela.
Circuitul are structura urmatoare:
ADD
7
A[1 : 7] Q[1 : 7] M[1 : 7]
`

, ,

,
,

`
/
/
/
/
>> >> >>

`
`
`
`
CL
LD
SH
A
0
c
0
c
2
c
7
c
11

Interfet e de magistrale
OUT
7
8 7 7
c
6
7
7
M
7
M
0
Q
7
SH
CL
LD
SH
c
5

c
9
A[0 : 7]
c
out
7EMUX
EMUX
Conform denit iei, suma este controlata de bitul x
7i
, stocat n registrul Q.
Unitatea de control a nmult irii va trebui sa scaneze la ecare pas cont inuturile lui Q
de la dreapta spre stanga.
Daca Q este un registru de deplasare, atunci x
7i
se va obt ine totdeauna din cel mai la
dreapta ip-op al lui Q (Q[7]) deplasand Q spre dreapta nainte de a extrage urmatorul
x
7i
.
7.5. CIRCUITE ARITMETICE 131
Deci, X
M
este redus treptat de la 7 bit i la 1 bit, n timp ce P
i
este expandat de la 7
la 14 bit i, tot prin deplasare la dreapta.
Aceasta conduce la ideea de a combina A si Q ntr-un singur registru dublu de de-
plasare, n care jumatatea dreapta este Q, iar cea stanga A.
Multiplicatorul este completat prin includerea magistralelor de date externe IN si
OUT si o unitate de control cu un numarator pe 3 bit i COUNT
3
.
Dupa cum se observa, n centrul construct iei se aa sumatorul paralel pe 7 bit i si
registrul dublu A.Q care implementeaza formulele de calcul.
Semnalul c
out
de iesire al transportului din sumator este al 8-lea bit (cel mai semni-
cativ) al sumei si este conectat la intrarea A
0
.
Contorul COUNT
3
(nereprezentat aici) este incrementat si testat dupa ecare pas
adunare/deplasare, pentru a vedea daca prima etapa de calcul s-a terminat.
Cand COUNT
3
a ajuns la

111

(adica 7), P
M
ocupa bit ii 1 : 14 ai registrului A.Q,
adica bit ii A[1 : 7].Q[0 : 6].
Bitul de semn p
0
este apoi calculat din x
0
(stocat n Q
7
) si y
0
(stocat n M
0
), dupa
care este depus n A
0
.
Simultan, un

0

este pus n Q
7
pentru a extinde rezultatul nal de la 15 la 16 bit i.
Unitatea de control a multiplicatorului este formata din toate semnalele si punctele
de control necesare n implementarea operat iilor specicate.
Listam mai jos cateva semnale de control necesare n construirea unui multiplicator.
Semnal Operat ia Semnal Operat ia
control controlata control controlata
c
0
Reseteaza A c
7
Deplasare dreapta A.Q
c
1
Reseteaza COUNT
3
c
8
Incrementare COUNT
c
2

Incarca A
0
c
9
Select ie c
out
sau M
0
Q
7
pentru A
0
c
3

Incarca M din IN c
10
Anuleaza Q
7
c
4

Incarca Q din IN c
11
OUT A
c
5

Incarca suma n A[1 : 7] c
12
OUT Q
c
6
Select ie M sau

0000000

In unele cazuri sunt necesare mai multe semnale de control pentru implementarea unei
operat ii.
De exemplu, adunarea foloseste c
6
pentru a selecta operandul drept al adunarii, c
9
pentru a selecta c
out
care se va ncarca n A
0
, c
2
si c
5
pentru pentru a ncarca suma
curenta de 8 bit i n A[0 : 7].
Numarul semnalelor de control variaza n funct ie de logica utilizata pentru imple-
mentarea unitat ii de control.
132 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Tabelul urmator descrie un proces complet de nmult ire ntre numerele X = 10110011
si Y = 01010101.
Bitul de semn x
0
= 1 al lui X (care arata ca este negativ) este subliniat.
Datele din A.Q aate la stanga lui x
0
reprezinta produsul part ial curent P
i
.
Pas Act iune Acumulator A Registru Q
0 Init ializare registri 00000000 10110011
1 01010101
Add M to A 01010101 10110011
Shift A.Q 00101010 11011001
2 01010101
Add M to A 01111111 11011001
Shift A.Q 00111111 11101100
3 00000000
Add 0 to A 00111111 11101100
Shift A.Q 00011111 11110110
4 00000000
Add 0 to A 00011111 11110110
Shift A.Q 00001111 11111011
5 01010101
Add M to A 01100100 11111011
Shift A.Q 00110010 01111101
6 01010101
Add M to A 10000111 01111101
Shift A.Q 01000011 10111110
7 00000000
Add 0 to A 01000011 10111110
Shift A.Q 00100001 11011111
8 Pune semnul n A
0
10100001 11011110 - Produsul
Q
7
0 nal
7.5. CIRCUITE ARITMETICE 133
7.5.5 Circuit pentru produsul scalar (MAC)
Una din cele mai importante funct ii aritmetice care pot realizate n aceasta etapa
este produsul scalar a
1
b
1
+ a
2
b
2
+ . . . + a
n
b
n
dintre doi vectori A = (a
1
, . . . , a
n
) si B =
(b
1
, . . . , b
n
).
Circuitul numit MAC (Multiple Accumulate Circuit) poate realizat n mai
multe moduri posibile.
Construct ia prezentata aici foloseste o extensie seriala a doua automate, numite au-
tomat acumulator si automat bits eater (mancator de bit i).
Folosim si aici faptul ca multiplicarea este n esent a tot o adunare.
Deci se va construi un automat acumulator pentru a implementa n paralel ambele
operat ii: nmult irea si suma produselor; n acest fel timpul de execut ie ramane acelasi.
Un astfel de circuit MAC este compus din:
Automat bits eater, care indica succesiv pozit iile bit ilor din operandul b, care
au valoarea 1; de asemenea el precizeaza sfarsitul operat iei de nmult ire; circuitul
cont ine:
R
2
n
- registru de stare, cont inand operandul b
i
;
nEMUX - n multiplexori elementari care lucreazan paralel; ei fac init ializarea
cont inutului registrului de stare (pentru LOAD
2
= 1) si nchide ciclul auto-
matului (pentru LOAD
2
= 0).
PE
n
- codicator cu prioritate care indica pozit ia celui mai semnicativ bit

1

din registrul de stare, precum si sfarsitul nmult irii, prin iesirea Z;


DMUX
log
2
n
- iesirea activa a automatului; Z = 0 corespunde celui mai sem-
nicativ bit

1

din registrul de stare;


n XOR - port i folosite pentru complementarea la comanda demultiple-
xorului a celui mai semnicativ

1

din registrul de stare.


Circuit de deplasare combinat ional: rolul lui este de a deplasa primul operand
a
i
, cu un numar de pozit ii indicat de automatul anterior; el este format din
R
1
n
- registrul care cont ine operandul a
i
, ncarcat la comanda LOAD
1
;
SHIFT
nm
- circuit combinat ional de deplasare spre stanga cu maxim n pozit ii
(nmult ire cu 2
i
, i = 0, 1, . . . , n) pentru cuvinte de n bit i.
R
2n
- registru de regularizare a trecerii (pipeline register).
134 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Automat acumulator: care realizeaza sumele part iale cu produsele obt inute la
ecare pas; structura lui este:
ADD
m+2n
- aduna la cont inutul registrului de iesire valoarea primita de la
circuitul de deplasare prin registrul de regularizare R
2n
;
(m+2n)MUX
2
- ansamblu de m+2n multiplexori, folosit pentru init ializarea
la zero a registrului de iesire (S
1
= 1), pentru nchiderea ciclului prin sumator
(S
1
S
0
= 00) si pentru pastrarea valorii nale cand calculul se ncheie S
1
S
0
=
01);
R
m+2n
- este registrul de stare al automatului si totodata registrul de iesire
al sistemului; poate memora m + 2n bit i, permit and 2
m
adunari posibile de
numere rezultate din nmult irea a doua numere de n bit i ecare.
SR
2
: este o linie de ntarziere pentru sincronizarea semnalului Z.
Grac, structura se reprezinta astfel pentru simplicare, nu s-au mai trecut si circuitele
de sincronizare prin ceas):
R
m+2n
(m+2n)MUX
2
ADD
m+2n
DFF DFF
R
2n
SHIFT
nm
R
1
n
PE
n
DMUX
log
2
n
R
2
n
nEMUX nXOR

` `

`



IN
LOAD
1
LOAD
2
Z
E
S
0
S
0
S
1
Q D Q D
CLR
OUT
bits eater
automat acumulator

SR
2
,
,
,
,
,

m+2n


n
n
2n
2n
m
m+2n
m+2n
m+2n
m+2n
n
n
n
n
n
7.5. CIRCUITE ARITMETICE 135
Circuitul funct ioneaza n felul urmator:
1. Se introduce operandul a n R
1
n
(la comanda din LOAD
1
);
2. Se introduce operandul b n R
2
n
(la comanda din LOAD
2
);
3. PE
n
selecteaza un vector 00 . . . 10 . . . 0 cu

1

pe cea mai semnicativa pozit ie a lui


b. Acesta:
(a) Comanda o deplasare (SHIFT) a lui a cu un numar de pozit ii egal cu valoarea
data;
(b) Face (pe circuitul XOR EMUX

0

pe aceasta pozit ie a lui b;


(c) Cand tot i termenii sunt

0

, anunt a ncheierea nmult irii si ncepe adunarea n


automatul acumulator.
Operat ia este realizata ntr-un numar de tact i egal cu numarul de valori

1

din al doilea
operand. Deci timpul mediu de execut ie este egal cu n/2.
Observat ia 7.3 Daca cei doi vectori se reduc la cate un singur numar (n = 1), circuitul
MAC construit lucreaza ca un multiplicator, calculand produsul celor doua numere.
136 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.6 Reprezentarea automatelor nite
Comportarea unui automat nit poate denita n mai multe moduri (grafuri, tabele de
tranzit ie, scheme logice, diagrame etc).
Toate acestea necesita nsa o denire nerecursiva a funct iilor si .

In aceasta sect iune vom construi o reprezentare a automatelor nite bazata pe tablouri
logic programabile (PLA).
Astfel va posibil sa reducem complexitatea funct iilor de transfer si de iesire ale
automatelor, efectuand simplicari ale tablourilor PLA corespunzatoare.
Denit ia 7.4 Un semi-automat este un triplet A
1/2
= (Q, X, ) unde Q, X, au semni-
cat ia data la denit ia automatelor.
Un semi-automat este deci un automat fara funct ia de iesire .
R
n
CICLU PLA

Q
CK
A
1/2

X X
CK
(Q)
(a) (b)
Utilitatea acestui concept (mai apropiat de not iunea formala de automat nit) rezida din
faptul ca multe tehnici de optimizare sunt legate doar de cicluri, nu de iesiri.
Cele patru tipuri de automate pot denite atunci (prin semi-automate) astfel:
automatul Mealy: rezulta prin conectarea unui semi-automat cu un PLA care
determina funct ia din intrarea X si iesirea semi-automatului (Figura (a) de pe
pagina urmatoare);
automatul Moore: se obt ine conectand la iesirea semi-automatului un PLA
(Figura (b));
automate cu ntarzieri): se obt in conectand nca un registru R la construct iile
anterioare ((c) pentru Mealy, (d) pentru Moore).
7.6. REPREZENTAREA AUTOMATELOR FINITE 137
R R
PLA PLA
A
1/2
A
1/2


X X CK
Y
(c) (d)
Y
X X CK
PLA PLA
A
1/2
A
1/2



X X CK X X CK

PLA

Y Y
(a) (b)
, ,
,
,
CK
CK CK
CK
Vom ilustra prin doua exemple utilizarea semi-automatelor PLA de transfer si de
iesire.
7.6.1 Automat pentru MAC
Sa construim un automat pentru funct ionarea circuitului multiplicator MAC (multiple-
accumulate circuit) denit n paragraful anterior
3
.
INTERFACE MAC AF


`

`

`

`

`
A
B
C
E
LOAD
1
LOAD
2
CLR
END
OUT
IN
S
I
W
3
Evident, n loc de MAC se poate folosi un automat pentru realizarea oricarui grup de operat ii
aritmetice.
138 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Aici MAC este conectat la o interfat a sincrona (INTERFACE), ntregul sistem ind
controlat de un automat nit FA.
Acest automat are trei intrari:
1. S: este generat de INTERFACE indicand ca circuitul MAC a fost selectat pentru
transferul de date;
2. I: este generat de INTERFACE, indicand sensul de transfer al datelor: daca I = 1
atunci transferul se face de la INTERFACE spre MAC; altfel, n sens contrar;
3. E: este generat de MAC semnalizand sfarsitul operat iei de nmult ire.
si patru iesiri:
1. LOAD
1
: comanda ncarcarea primului operand primit sincron la intrarea IN de la
INTERFACE;
2. LOAD
2
: comandancarcarean mod similar a celui de-al doilea operand, si porneste
operat ia;
3. CLR: comanda ncarcarea valorii

0

n registrul de iesire din MAC (resetare);


4. WAIT: MAC este n curs de a realiza operat ia, dar registrul de iesire nu cont ine
nc a rezultatul nal.
Iesirea din circuit este organizata ntr-o secvent a de 4 bit i, n ordinea LOAD
1
, LOAD
2
,
CLR, WAIT.

In schema logica de pe pagina urmatoare este descrisa comportarea automatului ilus-


trata de funct iile si .
Automatul FA este de tip Mealy si are 5 stari cu urmatoarele semnicat ii:
q
0
starea init iala, n care automatul asteapta sa e pornit, iar pentru S = 1
ncarca primul operand;
q
1
automatul a primit primul operand (ntr-un tact n care semnalul S a fost
activat; vezi dreptunghiul precedent, n care LOAD
1
= 1) si asteapta al doilea
operand, care se ncarca n primul tact n care S devine activ;
q
2
este starea n care se asteapta sfarsitul operat iei de nmult ire (se genereaza spre
interfat a semnalul de asteptare WAIT = 1);
q
3
se asteapta o noua select ie; daca este selectat MAC, testeaza sensul de transfer
solicitat; daca trebuie ncarcata n MAC o noua pereche de operanzi, atunci l
ncarca pe primul si sare la starea q
1
; altfel trece n q
4
;
7.6. REPREZENTAREA AUTOMATELOR FINITE 139
q
4
procesul de nmult ire este terminat, rezultatul este transferat la interfat a si
registrul de iesire este curat at.
0010
`
_
0001 1000

.
.
.-
-
-

-
-
-

-
-
-

0000
`
_
0000

.
.
.-
-
-
0001

_
0100 0000
.
.
.-
-
-

_
1000 0010
.
.
.-
-
-
.
.
. -
-
-


q
0 000
S
q
1 001
S
q
2 011 (010)
E
q
3 010 (011)
S
I
q
4 100
0 1
0 1
0 1
0 1
0 1
Deci Q = {0, 1}
3
(sunt necesari minim trei bit i pentru a codica cinci stari),
X = {0, 1}
3
(o intrare este reprezentata de secvent a EIS), Y = {0, 1}
4
(secvent a de patru
bit i care codica n ordine iesirile LOAD
1
, LOAD
2
, CLR, WAIT).
O stare este reprezentata printr-o secvent a de trei bit i Q
2
Q
1
Q
0
; am codicat
q
0
= 000, q
1
= 001, q
2
= 011, q
3
= 010, q
4
= 100
(este posibila si o inversiune de notat ie ntre q
2
si q
3
).
140 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Funct ia de transfer (Q
2
Q
1
Q
0
, EIS) = Q
+
2
Q
+
1
Q
+
0
este denita
000 001 010 011 100 101 110 111 Q
+
2
Q
+
1
Q
+
0
000 000 001 000 001 000 001 000 001 0 0 S
001 001 011 001 011 001 011 001 011 0 S 1
011 011 011 011 011 010 010 010 010 0 1 E
010 010 100 010 001 010 100 010 001 SI S SI
100 000 000 000 000 000 000 000 000 0 0 0
unde pe ultimele trei coloane s-a descris formal starea rezultata (in funct ie de intrare).
Putem deni acum ecuat iile care descriu semi-automatul PLA de transfer:
Q
+
2
= Q
1
Q
0
SI (Q
2
se poate reduce prin minimizarea funct iei booleene)
Q
+
1
= Q
1
Q
0
S Q
1
Q
0
Q
1
S
Q
+
0
= Q
2
Q
1
S Q
1
Q
0
Q
0
E Q
1
Q
0
SI
Deci
(Q
2
Q
1
Q
0
, EIS) = (Q
1
Q
0
SI, Q
1
Q
0
S Q
1
Q
0
Q
1
S, Q
2
Q
1
S Q
1
Q
0
Q
0
E Q
1
Q
0
SI)
Similar, funct ia de iesire (Q
2
Q
1
Q
0
, EIS) = (LOAD
1
, LOAD
2
, CLR, WAIT)
este denita prin tabelul
000 001 010 011 100 101 110 111
000 0010 1000 0010 1000 0010 1000 0010 1000 S 0 S 0
001 000 0100 0000 0100 0000 0100 000 0100 0 S 0 0
011 0001 0001 0001 0001 0001 0001 0001 0001 0 0 0 1
010 0000 0001 0000 1000 0000 0001 0000 1000 SI 0 0 SI
100 0010 0010 0010 0010 0010 0010 0010 0010 0 0 1 0
Pe baza lui se pot scrie ecuat iile care descriu PLA-ul de iesire:
LOAD
1
= Q
2
Q
1
Q
0
S Q
1
Q
0
SI, LOAD
2
= Q
1
Q
0
S
CLR = Q
2
Q
1
Q
0
S, WAIT = Q
1
Q
0
Q
1
SI
Deci
(Q
2
Q
1
Q
0
, EIS) = (Q
2
Q
1
Q
0
S Q
1
Q
0
SI, Q
1
Q
0
S, Q
2
Q
1
Q
0
S, Q
1
Q
0
Q
1
SI)
Graful funct ional (unde x, y, z {0, 1}) este
`
_
`
_
`
_
`
_
`
_

`

`

q
0
q
1
q
2
q
3
q
4
xyz/0010
xy0/0000 0xy/0001 xy0/0000
xy0/0010
xy1/1000 xy1/0100 1xy/0001 x01/0001
x11/1000
7.6. REPREZENTAREA AUTOMATELOR FINITE 141
Figura de mai jos descrie circuitul rezultat; cele doua PLA-uri de conjunct ie (cores-
punzatoare funct iilor de transfer si de iesire) sunt unite n unul singur (cel superior), deci
termenii comuni sunt utilizat i mpreuna.
DFF
DFF
`

.
.
.

.
.
.
E

.
.
.

.
.
.
I

.
.
.

.
.
.
S



Q
Q
Q
Q
Q
Q
Q
0
Q
1
Q
2
D
CK
D
CK
D
CK
CK
Q
+
0
Q
+
1
Q
+
2
A
B
C
W

DFF

`
`
`
`
`
`
,
,
,
,
,

7.6.2 Automat pentru recunoasterea unei secvent e binare


O problema des ntalnita este aceea de a recunoaste aparit ia unei anumite subsecvent e n
cadrul unei secvent e binare.
Sa construim de exemplu un automat care sa semnaleze aparit ia subsecvent ei 1011.
Dintr-un studiu bazat pe limbaje formale, un graf al acestui automat se poate construi
usor:
142 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)

.
`

`
q
0
q
1
q
3
q
2
0/0
0/0
1/0
0/0
1/0
0/0
1/1
1/0
De exemplu, pentru intrarea 010101101110011 iesirea va 000000100100000.
Automatul avand patru stari, acestea pot codicate folosind doi bit i:
q
0
00, q
1
01, q
2
10, q
3
11
Deci Q = {0, 1}
2
, X = Y = {0, 1}. Funct iile de transfer si de iesire sunt
0 1 Q
+
1
Q
+
0
00 00 01 0 x
01 10 01 x x
10 00 11 x x
11 10 01 x x
0 1 y
00 0 0 0
01 0 0 0
10 0 0 0
11 0 1 x
De aici rezulta imediat forma celor doua PLA (de transfer si de iesire):
(Q
1
Q
0
, x) = (Q
0
x Q
1
Q
0
x, x), (Q
1
Q
0
, x) = Q
1
Q
0
x
Pentru implementare sunt necesare doua DFF (necesare codicarii celor patru stari), un
codicator elementar (pentru variabila de intrare x) si doua PLA (care au componenta
AND comuna).
DFF
DFF

,
.
. .
-
--
-
--
.
. .



CK
y
CK
D
CK
D
Q
Q
Q
0
Q
1
Q
Q
x
7.7. AUTOMATE DE CONTROL 143
7.7 Automate de control
Din exemplele precedente sentrevede aparit ia unei clase importante de automate utilizate
n arhitectura unui calculator: clasa automatelor de control.
Un astfel de automat este inclus ntr-un sistem de calcul n doua pozit ii principale:


In prima pozit ie (X
1
) automatul de control primeste informat ie despre comenzile sau
testele pe care trebuie sa le faca, printr-un cod care selecteaza secvent a de control
ce va executata;


In a doua pozit ie (X
2
), automatul de control primeste informat ii prin mai mult i
bit i, despre efectele (feedbackuri) pe care le-a avut iesirea sa Y asupra subsistemelor
gestionate.
Marimea si complexitatea secvent ei de control necesita nlocuirea PLA cu un ROM, cel
put in n procesul de reprezentare si testare.
R
ROM

RI


X
2
X
1
Q
Q
+

Y
Select ie comanda
Feedback comanda
Comanda
Structura automatului de control foloseste doi registri:
Un registru de intrare (RI) n care se face o select ie a comenzii (sau testului).
Un registru de lucru, unde se formeaza comanda ce va trimisa catre un anumit
subsistem.
Aplicat iile accentueaza doua lucruri importante:
1. Automatul poate stoca n spat iul starilor informat ii despre denirea unei act iuni
(ecare stare curenta se reprezinta printr-o linie care codica o aplicat ie de la spat iul
init ial al starilor, la o singura stare);
2.

In majoritatea starilor, automatul testeaza numai un bit aat pe pozit ia de adresa
X
2
; daca nu sunt acoperite toate situat iile, problema este rezolvata prin adaugarea
unor stari suplimentare, activate automat (stari de eroare, stari nale etc).
Pe baza acestor observat ii, structura automatului de control poate modicata, obt inan-
du-se o forma redusa prezentata n gura urmatoare.
144 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
MUX
p
R
ROM
n EMUX


`

`

X
1
1
0
S
0
MOD
NEXT
TEST
Y
0
. . .
X
2
T
1

n
m
p
Deoarece secvent a de comenzi poate init ializata numai prin intermediul codului X
1
,
acest cod se poate folosi doar pentru adresarea la prima linie de comanda din ROM, cu
ajutorul unei stari prin care componenta MOD = 1.
Aceasta facilitate se realizeaza adaugand n EMUX-uri si o noua iesire spre ROM
pentru a genera semnalul MOD.
De remarcat ca pentru aceste n EMUX-uri, comanda S
0
= 1 nseamna init ializare,
iar S
0
= 0 nseamna urmatoarea linie de comanda.
Aceasta modicare permite simplicarea liniilor din ROM, o parte din informat ie ind
transferata spre preselect ia comandata de multiplexori.
A doua modicare se refera la intrarea X
2
.
Deoarece bit ii asociat i acestei intrari sunt testat i n diverse stari, MUX
p
alege n
ecare stare bitul corespunzator, folosind selectorul TEST.
Deci bit ii asociat i intrarii X
2
sunt separat i de intrarea n ROM, adaugandu-le cateva
condit ii.
Astfel n loc de circa 2
p
bit i, la intrarea n ROM se va conecta unul singur T.
Aceasta structura lucreaza la fel ca cea init iala, dar marimea ROM-ului este foarte
mult simplicata.
Lucrand cu aceasta varianta a automatului de control, se pot realiza si alte modicari.
Astfel, cea mai mare parte a secvent elor generate sunt organizate ca o secvent e liniare.
Deci, comenzile asociate pot stocate n ROM la adrese succesive (ecare adresa din
ROM se poate obt ine prin incrementarea adresei curente aate n registrul R).
Rezulta structura reprezentata n gura urmatoare:
7.7. AUTOMATE DE CONTROL 145
MUX
p TC
INC
ROM R MUX
2

`
Y
X
2
. . .
TEST
T
3
2
1
0
X
1

,
,

2
p
M
0
M
1
S
1
S
0
MOD
SALT

`
Noutatea constan circuitul de incrementare INC conectat la registrul de stare, precum si
un mic circuit combinat ional (TC Circuit de testare) care codica semnalele M
1
, M
0
, T
ntr-un cod de select ie pentru MUX
2
.
Iesirea din ROM poate privita ca o micro - instruct iune denita astfel:
<Micro-instruct iune> ::= <Comanda><Mod><Test><Salt>
<Comanda> ::= <denita de structura controlata>
<Mod> ::= JMP|CJMP|INIT
<Test> ::= <denit de structura controlata>
<Salt> ::= <adresa noua de maxim 6 simboluri>
Circuitul de testare TC construieste funct iile de select ie:
S
1
= M
1
M
0
, S
0
= M
1
(M
0
T)
O tabela a valorilor celor doua funct ii, precum si a comenzilor selectate de MUX
2
pe
baza acestor valori este:
M
1
M
2
T S
1
S
0
Comanda
0 0 0 0 0 Urmatoarea comanda
0 0 1 0 0 Urmatoarea comanda
0 1 0 0 0 Urmatoarea comada
0 1 1 0 1 Salt
1 0 0 1 1 Init ializare
1 0 1 1 1 Init ializare
1 1 0 0 1 Salt
1 1 1 0 1 Salt
Aceasta varianta de circuit va numita CROM (controller cu ROM) si este utilizata n
majoritatea structurilor circuitelor complexe de calculator.
146 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
Exemplul 7.6 Sa presupunem ca n memoria ROM asociata unei unitat i logico-aritmetice
(ALU) si gestionata de un automat de control, se aa instruct iuni aritmetice.
Sa presupunem de asemenea ca o instruct iune standard are 16 bit i (un semicuvant) si
este de forma
< operatie >< op
1
>< op
2
>< mod >< test >< adresa >
unde
1. < operatie > este o operat ie aritmetica sau logica (adunare, scadere, comparare,
deplasare etc) codicata pe 3 bit i, a carei execut ie este asigurata de ALU.
2. < op
1
, < op
2
> sunt adresele (pe cate 2 bit i) a doua registre de memorie unde se
aa operanzii. Rezultatul se depune n < op
1
>.
Daca operat ia necesita un singur operand, a doua adresa este 00.
3. < mod > indica (pe un bit) modul de continuare: salt la instruct iunea urmatoare
sau salt condit ionat de valoarea unui anumit bit din < op
1
>.
4. < test > da pe 3 bit i adresa bitului de test (daca < mod >= 1) sau este ignorat
(daca < mod >= 0).
5. < adresa > cont ine (pe 5 bit i) adresa instruct iunii din memoria ROM care va
accesata n continuare.
Atunci memoria ROM care va cont ine setul de instruct iuni este un (5, 16)-codicator.
Astfel, sa consideram ca la adresa 10110 se aa
01101101 00001001
Interpretarea va urmatoarea:
- Se executa adunarea (cod 011 executat de ALU) numerelor aate n registrii R1 (cod
01) si R2 (cod 10).
- Daca bitul aat pe pozit ia 0 (cod 000) din rezultat este 1 (situat ie ntalnita atunci
cand suma depaseste lungimea standard alocata numerelelor), atunci instruct iunea care se
executa n continuare este la adresa 01001; alfel se executa instruct iunea aata la adresa
urmatoare (10111).
7.8. TRANSFORMAREA AUTOMATELOR

IN CIRCUITE COMBINA-T IONALE147
7.8 Transformarea automatelor n circuite combina-
t ionale
Atat circuitele combinat ionale (0 DS) cat si automatele (2 DS) reprezinta modalitat i
de implementare a funct iilor booleene.
Ne putem pune urmatoarele ntrebari:
1. Care este legatura dintre port ile unei ret ele si un automat care executa aceeasi
funct ie?
2.

In ce condit ii putem transforma un circuit combinat ional ntr-un automat si invers?
Raspunsul este simplu de dat si se bazeaza pe tablouri logic programabile.
PLA Transfer
PLA Iesire
PLA Transfer
PLA Iesire
PLA Transfer
PLA Iesire

,
,
,

,
,
,
x(t
0
)
x(t
1
)
x(t
n
)
q(t
0
)
q(t
1
)
q(t
n
)
.
.
.
y(t
0
)
y(t
1
)
y(t
n
)
Fie un automat Mealy cu cele doua PLA-uri ale sale (de transfer si de iesire), starea
init iala q(t
0
) si secvent a de intrare pentru primul ciclu de n tact i: x(t
0
), x(t
1
), . . . , x(t
n
).
Circuitul combinat ional de sus genereaza secvent a de iesire corespunzatoare
y(t
0
), y(t
1
), . . . , y(t
n
)

Intr-adevar, prima pereche de doua PLA-uri (Transfer si Iesire) determina prima


iesire y(t
0
) si starea urmatoare q(t
1
), care va utilizata de a doua pereche de PLA-uri
pentru calculul celei de-a doua iesiri si stari etc.
148 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
7.9 Exercit ii
1. Se da automatul
DFF DFF
HA HA

,
, ,
Q
0
Q
1
CK
D D
s c s
x
Sa se arate ca poate folosit drept un counter crescator pe 2 bit i (COUNT
2
).
Pe baza lui sa se construiasca un counter descrescator pe 2 bit i
2. Sa se construiasca un counter pe trei bit i (UD COUNT
3
).
Se va folosi un bit de select ie s cu semnicat ia: cand s = 0 counterul va crescator,
iar cand s = 1, counterul va descrescator.
3. Sa se construiasca un sumator prex pentru cazul m = 1, n = 2.
4. Se da automatul
TFF
FA

a
b
s
c
CK
Sa se construiasca funct ia de tranzit ie, funct ia de iesire si graful de funct ionare.
7.9. EXERCIT II 149
5. Aceeasi problema pentru automatul
JKFF
FA

CK
K J
s
c
s
Q
a
b
6. Se da automatul nit reprezentat de graful
`
_
`
_
`
_
`
_

`
`

q
0
q
1
q
2
q
3
0 0
0 0
1 1
1
1
Sa se construiasca un circuit care sa implementeze acest automat.
Cum trebuie denita funct ia de iesire pentru ca acest automat sa funct ioneze ca
un counter descrescator pe 2 bit i ?
7. Se da automatul:
TFF
FA
TFF


,
,

,
CK
s
c
x
Sa se listeze comportarea sa (tabela funct iei de tranzit ie, graful de tranzit ie).
8. Sa se implementeze automatul anterior folosind numai DFF.
150 CAPITOLUL 7. SISTEME 2 DS (AUTOMATE)
9. Sa se implementeze automatul anterior folosind numai JK registri.
10. Sa se verice circuitul din Exemplul 7.4, aratand ca este un counter zecimal pe 4
bit i
11. Sa se construiasca un circuit care primeste o secvent a binara si numara de cate ori
apare subsecvent a 00. Numarul de aparit ii se va da pe 3 bit i.
De exemplu, pentru intrarea 0101110010000110 raspunsul este 100 (apar patru
subsecvent e 00).
12. Sa se implementeze circuitul anterior folosind numai DFF.
13. Sa se implementeze circuitul anterior folosind numai JK registri.
Capitolul 8
Sisteme 3 DS sisteme (procesori)
Trecand la nivelul urmator de complexitate al circuitelor, al treilea ciclu poate nchis n
trei variante, n funct ie de cele trei tipuri de circuite prezentate anterior.
1. Cel mai simplu tip de sistem 3DS se obt ine nchizand al treilea ciclu cu un circuit
combinat ional (de exemplu, peste un automat sau o ret ea de automate, ciclul este
nchis folosind un 0 DS).
2. Al doilea tip nchide al treilea ciclu folosind un tip de memorie (1 DS).
3. A treia varianta utilizata conecteaza printr-un ciclu doua automate.
Acest ultim tip este caracteristic pentru un 3 DS, denind ca principala aplicat ie pro-
cesorul.
8.1 Automate JK - registri
Un automat este specic unui circuit de ordin doi, dar funct ia sa poate implementata
mai ecient folosind facilitat ile oferite de sisteme cu un nivel mai nalt.

In aceasta sect iune vomnlocui registrul de stari al automatului, cu un mecanism mai


autonom: un registru de tip JK ip - op
1
.
Sa vedem cum se poate nlocui un D ip - op (DFF) circuit cu o singura intrare
cu un JK ip - op (circuit cu doua intrari) si cum aceasta substitut ie conduce la o
minimizare a complexitat ii circuitului.
1
JK - registrul astfel construit nu este propriu-zis un registru; el este o ret ea de automate simplicate,
conectate n paralel.
151
152 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
Deoarece un JKFF are o autonomie crescuta fat a de DFF, la trecerea dintr-o stare
n alta semnalele de intrare pot cont ine un grad mai mare de ambiguitate.
Funct ia de tranzit ie a unui JK ip - op poate comandata astfel:
pentru tranzit ia 0 0, JK poate 00 sau 01; vom scrie JK = 0
( semnica orice valoare);
pentru 0 1, JK poate 11 sau 10; deci JK = 1 ;
pentru 1 0, JK poate 11 sau 01; deci JK = 1;
pentru 1 1, JK poate 00 sau 10; deci JK = 0.
Putem restrange aceste reguli sub o forma unitara:
JK =

A pentru 0 A
A pentru 1 A
De aici rezulta ca ecare tabela de tranzit ie care deneste o noua valoare a starii Q
+
i
poaate translatata n doua diagrame de tranzit ie: una pentru J
i
, a doua pentru K
i
.
Exemplul 8.1 Sa reluam de la diagrama funct iei de tranzit ie care descrie funct ia a
unui MAC (a se vedea sect iunea 7.6.1)).
000 001 010 011 100 101 110 111
000 000 001 000 001 000 001 000 001
001 001 011 001 011 001 011 001 011
011 011 011 011 011 010 010 010 010
010 010 100 010 001 010 100 010 001
100 000 000 000 000 000 000 000 000
Ea era implementata prin trei DFF care descriau comportamentele starilor Q
2
, Q
1
, Q
0
.
Noile diagrame de tranzit ie pentru J
i
si K
i
pot denite pe baza regulii anterioare,
rezultand urmatoarele doua tabele pentru cele 6 intrari ale JK - registrului (J
2
J
1
J
0
res-
pectiv K
2
K
1
K
0
).

J
000 001 010 011 100 101 110 111 J
+
2
J
+
1
J
+
0
000 000 001 000 001 000 001 000 001 0 0 S
001 00 01 00 01 00 01 00 01 0 S
011 0 0 0 0 0 0 0 0 0
010 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 I S I S
100 00 00 00 00 00 00 00 00 0 0
8.1. AUTOMATE JK - REGISTRI 153

K
000 001 010 011 100 101 110 111 K
+
2
K
+
1
K
+
0
000
001 0 0 0 0 0 0 0 0 0
011 00 00 00 00 01 01 01 01 0 E
010 0 1 0 1 0 1 0 1 S
100 1 1 1 1 1 1 1 1 1
Deci tabelele PLA de tranzit ie sunt descrise de aplicat iile

J
(Q
2
Q
1
Q
0
, EIS) = (Q
2
Q
1
Q
0
IS, Q
2
Q
1
Q
0
S, (Q
2
Q
1
Q
0
S)(Q
2
Q
1
Q
0
IS))

K
(Q
2
Q
1
Q
0
, EIS) = (

, Q
2
Q
1
Q
0
S, Q
2
Q
1
Q
0
E)
Deoarece cu trei bit i am codicat numai cinci stari (maximul ind opt): 000, 001, 011,
010, 100, expresiile pot simplicate
2
:
Astfel, din
Q
2
Q
1
Q
0
Q
2
Q
1
Q
0
Q
1
Q
0
Q
0
000 0 0
001 0 0
011 0 0
010 1 1 1
100 0 0
rezult a Q
2
Q
1
Q
0
S I = Q
1
Q
0
S I si Q
2
Q
1
Q
0
S = Q
0
S
Similar,
Q
2
Q
1
Q
0
E = Q
1
E, Q
2
Q
1
Q
0
S I = Q
1
S I,
Q
2
Q
1
Q
0
S = Q
2
Q
1
S, Q
2
Q
1
Q
0
S = Q
1
Q
0
S.
Deci

J
(Q
2
Q
1
Q
0
, EIS) = (Q
1
Q
0
I S, Q
1
Q
0
S, (Q
2
Q
1
S) (Q
1
I S))

K
(Q
2
Q
1
Q
0
, EIS) = (

, Q
0
S, Q
1
E)
Pe baza acestor ecuat ii se poate construi circuitul:
2
Reamintim, pe pozit ia marcata poate apare orice valoare.
154 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
JKFF
JKFF
JKFF
T
'
'
'
'

$
$
$

$
$
$
E

$
$
$

$
$
$
I

$
$
$

$
$
$
S
CK
W
C
A
Q
Q
Q
Q
Q
Q
J
CK
K
J
CK
K
J
CK
K
K
0
K
1
cccccc cccc
E
E
E
E
E
E
E
c E
c E
E
E
c E
E
E
E
E
E
E
,
,
,
,
,
E
E
E
'
'
' E
'
'
B




'
'
'
'
'
'
Q
2
Q
1
Q
0
J
0
J
1
J
2
K
2

Funct ia de iesire descrisa este cea denita n sect iunea 7.6.1.


Este evident ca distribut ia punctelor n cele doua PLA-uri este mai mica decat cea
din solut ia data anterior (38 puncte fat a de 48 n construct ia precedenta).
Prin aceasta nlocuire a ecarui DFF cu un JKFF, o parte din PLA-ul de transfer a
fost segregat n structura JK - registrului.
Aceasta metoda act ioneaza ca un mecanism care subliniaza regularitat ile unui proces
si permite construct ia de circuite mai mici si mai simple pentru aceeasi funct ie.
Ecient a acestei metode este direct proport ionala cu complexitatea sistemului.
Exemplul 8.2 Pentru automatul construit n Capitolul 7, sect iunea 7.6.2 nlocuirea celor
doua DFF cu JKFF va creste marimea tablourilor logic programabile.

Intr-adevar, din funct ia de transfer


8.1. AUTOMATE JK - REGISTRI 155
0 1 Q
+
1
Q
+
0
00 00 01 0 x
01 10 01 x x
10 00 11 x x
11 10 01 x x
rezulta imediat tabelele funct iilor
J
si
K
:

J
0 1 J
1
J
0
00 00 01 0 x
01 1 0 x
10 0 1 x
11

K
0 1 K
1
K
0
00
01 1 0 x
10 1 0 x
11 01 10 x x
De aici pot scrise funct iile de transfer (dupa reduceri):

J
(Q
1
Q
0
, x) = (Q
0
x, x),
K
(Q
1
Q
0
, x) = ((Q
0
x) (Q
0
x), x)
Implementarea ntregului automat va
JKFF
JKFF

@
@
@

@
@
@

cccccc
'
'
'
'
E
T
'
' ,
E E E
'
T
T
E
'
T
E
'
T
E
c E
,
x
Q
Q
Q
0
J
J
0
CK
K
K
0
J
J
1
CK
K
K
1
CK
y
Q
Q
1




Deci folosirea automatelor JK registri este ecienta numai pentru tablouri aleatoare de
dimensiune mare.
Posibilitatea de minimizare a PLA-urilor este permisa de autonomia crescuta a JKFF
fat a de DFF. Un DFF are doar o autonomie part iala de a sta ntr-o anumita stare, pe
cand un JKFF poate evolua n spat iul starilor.
Un DFF trebuie sa raporteze permanent la intrare care va urmatoarea stare (0
sau 1), pe cand un JKFF permite comenzi mult mai generale, J = K = 1 care spune
treci n alta stare (sau J = K = 0 pastreaza starea), fara a o indica exact care este
aceasta (de fapt, al doilea ciclu ajuta un JKFF sa-si cunoasca starea curenta).
156 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
8.2 Registri numaratori
Exista diverse moduri de a simplica un PLA, prin personalizarea unui automat.
O solut ie des ntalnita consta n folosirea unui numarator sincron setabil SCOUNT
n
.
Acesta este un circuit care combina doua funct ii: cea de registru (ncarcat la comanda
L) si cea de numarator (crescator, la comanda U).
Din cele doua funct ii, cea de ncarcare are prioritate.
Exemplul 8.3 Sa reluam circuitul MAC denit n 7.5.5. Pentru a adapta asignarea
starilor utilizand un numarator setabil ca registru de stari, va trebui sa utilizam codurile
starilor (detaliate n schema logica din 7.6.1).
Ideea este de a avea n acea schema logica cat mai multe tranzit ii obt inute prin incre-
mentare.

f
f
f

f
f
f


f
f
f

f
f
f

f
f
f


f
f
f

f
f
f

f
f
f

f
f
f

f
f
f

SCOUNT
3
MUX
2
E
E
E
E
T T
'
S
E
0
1
2
3
S
0
S
1
U
L
i
2
i
1
i
0
CK
CK
Q
2
Q
1
Q
0 I
A B C W





'
'
'
'
'
'
'
'
c c c c c
c c c c c
'
c
'
c
'
c
'
c
'
c
T
T
T
'
T
E
c
,
,
,
, , , , ,
c
E
E
c
T
E
c
c c
'
T
c c c c
c c c

0

0

Construct ia data n gura urmatoare pleaca de la un SCOUNT


3
si un MUX
2
.
Multiplexorul selecteaza funct ia de numarare n ecare stare, conform cu descrierea
din schema logica.
8.2. REGISTRI NUM

AR

ATORI 157
Astfel de exemplu, din starea 000 tranzit ia este data de contor daca S = 1; altfel,
automatul ramane n aceeasi stare.
Deci, multiplexorul selecteaza pentru intrarea U a contorului valoarea lui S.
Funct ia de ncarcare a contorului este selectata cu funct ia L = Q
2
(Q
1
Q
0
S I)
(extrasa direct din schema logica).
Totul se face pentru ca intrarile i
0
, i
1
, i
2
n SCOUNT
3
sa aiba valori corecte numai
daca n starea curenta tranzit ia se poate realiza ncarcand o anumita valoare n circuitul
de control.
Deci, n denit ia funct iilor logice asociate cu aceste intrari putem avea destul de multa
libertate.
Va rezulta i
2
= i
1
= 0, i
0
= Q
2
.
Intrarea 3 a multiplexorului este Q
1
S I (pentru a maximiza termenii folosit i n
comun de PLA).
Structura rezultata n circuitul descris anterior are o componenta aleatoare minima.
Procesul de segregare este mai adanc daca implementam circuite simple, dar denite
recursiv.
158 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
8.3 Automat aritmetic si logic
Cele dou a sect iuni anterioare s-au referit la exemple de circuite n care al treilea ciclu se
nchide ntr-un circuit combinat ional.
Sa tratam acum un automat avand un ciclu nchis printr-o memorie.
Scopul este de a sublinia efectul acestui de-al treilea ciclu n sistemele care cont in
astfel de circuite.
Structura prezentata mai jos este folosita pentru realizarea de funct ii aritmetice si
logice (ALU) cu date stocate n opt registri de cate n bit i ecare; pentru simplicarea
circuitului, nu s-au mai descris ceasurile de sincronizare; de asemenea, toate magistralele
sunt de n bit i.
Vom analiza doua variante de construct ie, fara si cu DFF conectat ntre CR
OUT
-ul si
CR
IN
-ul circuitului ALU.
DFF
n EMUX
ALU
REGISTRI
c
'
c c
E
c
E
c
T
E
E
E
T
'
c
c
'T E
E
&
&a

C
< op. drept > < op. stang >
Dest
< sursa > S
0
y
1 0
D
IN
Al doilea ciclu
< reset > CLR
D
Q
Al treilea ciclu
L R
CR
OUT
CR
IN
D
OUT
,
E
T
'
'
< func >
< transport >
,
T
Circuitul cont ine:
REGISTRI: o grupare de 8 registri de cate n bit i ecare; la ecare tact sunt
selectat i doi din ei pentru a transmite codurile operanzilor drept respectiv stang (la
intrarea n ALU); un al treilea registru este desemnat la ecare tact pentru iesire, cu
codul < op drept > (pentru select ie se pot folosi doua n MUX
3
, iar la destinat ie
ceasul este distribuit printr-un DMUX
3
).
8.3. AUTOMAT ARITMETIC SI LOGIC 159
ALU: are structura si funct iile prezentate n Unitatea aritmetica si logica (5.11).
n EMUX: nchide ciclul prin aducerea rezultatului de la iesirea din ALU la
registri (pentru S
0
= 0) sau permite ncarcarea registrilor cu date primite de la
intrarea D
IN
(pentru S
0
= 1).
D: este un DFF care genereaza la intrarea CR
IN
n ALU valoarea de transport
generata la tactul precedent de iesirea CR
OUT
din ALU; poate resetat activand
bitul reset. Prima varianta pe care o vom prezenta nu va cont ine acest ip - op.
Automatul de control este un CROM (sect iunea 7.7).
Varianta I
Linia de comanda primita de la un automat de control are denit ia:
< comanda > ::= < op stang >< op drept >< func >< transport >< sursa >
::= < reset >
< op. stang > ::= L0 | L1 | . . . | L7
< op drept > ::= R0 | R1 | . . . | R7
< func > ::= AND | OR | XOR | ADD | SUB | INC | SHL
< transport > ::= CR |
< sursa > ::= D
IN
|
Sa presupunem can doua perechi de registri sunt doua numere de cate 2n bit i care trebuie
adunate.
Primul numar este stocat n perechea de registri (L1, L2) (L2 cont ine cei mai semni-
cativi n bit i); al doilea numar este stocat similar n (R1, R2).
Secvent a de comenzi care controleaza aceasta adunare este:
L1 R1 ADD CJMP CR
OUT
UNU
L2 R2 ADD JMP DOI
UNU L2 R2 ADD CR
DOI . . .
Varianta II
Aceasta varianta este un 3 DS n care ciclul se nchide printr-un DFF.
Rolul ultimului ciclu este de a reduce, simplica si a mari viteza rutinei care realizeaza
aceeasi operat ie sau alte proceduri dependente.
Diferent a din linia de comanda consta n eliminarea campului < transport > si
adaugarea la < reset > a denit iei
160 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
< reset >::= RST |
Diferent a funct ionala consta n modul n care cont inutul DFF - ului comanda bitul
de transport din intrarea n sumator (CR
IN
).
Astfel, secvent a de comenzi care realizeaza suma anterioara devine
. . . RST . . .
L1 R1 ADD
L2 R2 ADD
8.4 Automate stiva
Sa consideram acum (n construct ia 3 DS sistemelor) varianta n care al treilea ciclu se
nchide printr-un automat.
Acest ciclu are posibilitatea de a minimiza marimea componentei aleatoare.
Mai mult, aceasta micsorare va afecta ordinul de marime al part ii aleatoare (pana
acum, aceasta reducere se realiza cu o constanta).
Structura propusa cu deosebit de multe aplicat ii este automatul stiva.
FA
c
c c E
T
E
'
X
X
X
Y
{PUSH, POP, }
D
IN
D
OUT
STIV A
. . .
. . .
Denit ia 8.1 Un automat stiva PDA (PushDown Automaton) este construit prin legarea
ntr-un ciclu a unui automat nit cu o stiva (memorie LIFO) (a se vedea Figura).
Formal, el este un 7-tuplu PDA = (Q, X, Y, Z, , , z
0
), unde
Q: mult imea (nita a) starilor automatului;
X: alfabet nit nevid; secvent a de intrare, cea stocata n stiva si cea primita din
stiva sunt elemente din X

.
Y: alfabetul de iesire;
Z : mult imea de comenzi catre stiva: {PUSH, POP, NOP};
8.4. AUTOMATE STIV

A 161
: funct ia de tranzit ie; : QXX QX

Z; plecand dintr-o stare, simbolul


primit si simbolul din topul stivei (TOS), automatul comuta ntr-o noua stare, o
nou a valoare (eventual) n stiva, bazata pe comanda de tip PUSH, POP sau NOP.
Uneori pot apare si comenzi de nceput sau sfarsit de program (BEGIN, END).
: funct ia de iesire a automatului; : Q Y ;
z
0
: valoarea init iala din stiva (init ializarea lui TOS)
Este usor sa nt elegem rolul acestui tip de masina folosind un exemplu:
Exemplul 8.4 Sa construim un automat care sa recunoasca sirurile de forma $& $,
unde $, & X, X

\{$, &}. Solut ia este un PDA descris de schema logica urmatoare:


EROARE
`
_

r
r
r

r
r
r

r
r
r

r
r
r
`
_
OK
POP
r
r
r

r
r
r

r
r
r

r
r
r
PUSH a
`
_
r
r
r

r
r
r

`
_
q
0
0 1
a=$
q
1
1 0
a=&
q
2
0 1
a=$
1 0
a=TOS
0 1
TOS=Z
0
q
3
q
4
c
c
'
T
E
E
c
c
E
c
c E
T
'
`
_
'
c
c
'
c
'
c
c '
T
E
E
c
'
c
c '
T
E
E
c
E
c
c
c E
T
'
Semnicat ia ecareia din cele 5 stari este:
q
0
: este starea init iala, cand se asteapta primul caracter $.
q
1
: n aceasta stare, simbolurile primite sunt puse n stiva (PUSH); la recept iona-
rea lui & automatul comuta n starea urmatoare.
162 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
q
2
: ecare simbol primit este comparat cu varful stivei (TOS); daca cele doua carac-
tere sunt egale, stiva elimina caracterul comparat (POP); daca simbolul primit este
$ iar TOS cont ine z
0
, automatul trece n starea q
3
; n orice alta situat ie, automatul
trece n starea q
4
.
q
3
: automatul recunoaste secvent a primita ca ind corecta; este o stare nal a de
acceptare.
q
4
: automatul respinge secvent a primita ca ind incorecta; este o stare nala de
eroare.
Formal, automatul stiva este M = (Q, X, Y, Z, , , z
0
) unde:
Q = {q
0
, q
1
, q
2
, q
3
, q
4
},
X = {z
0
, $, %} V unde V este un alfabet arbitrar, denit separat,
Y = {OK, EROARE, },
Z = {PUSH, POP, NOP, BEGIN, END},
funct ia de tranzit ie
(q
0
, a, z
0
) = (q
0
, z
0
, NOP), (q
1
, a, b) = (q
1
, ab, PUSH a), a = &, b V {z
0
}
(q
0
, $, z
0
) = (q
1
, z
0
, BEGIN) (q
1
, &, b) = (q
2
, b, NOP)
(q
2
, a, a) = (q
2
, , POP a), a = $ (q
2
, a, b) = (q
4
, b, NOP), a = b, a = $
(q
2
, $, z
0
) = (q
3
, , END), (q
2
, $, a) = (q
4
, a, NOP), a = z
0
si funct ia de iesire
(q
0
) = (q
1
) = (q
2
) = , (q
3
) = OK, (q
4
) = EROARE.
Secvent a de comenzi catre stiva poate interpetata (si implementata) ca un micro-
program care opereaza cu siruri de caractere.
De remarcat ca rezolvarea acestei probleme folosind un automat nit este posibila nu-
mai pentru un alfabet X mic si siruri de intrare mici.
Marimea si complexitatea automatului va depinde direct de acesti doi parametri. Orice
modicare a lor va schimba complet circuitul.

In cazul utilizarii un automat stiva nsa, marimea sirului de intrare nu are nici o
legatura cu dimensiunea sau forma automatului.
Aici, partea simpla (stiva innita) este separata de cea complexa (automatul nit, cu
5 stari).
Observat ia 8.1 Denit ia automatului stiva este foarte asemanatoare cu denit ia trans-
latorului stiva de la limbaje formale. Diferent ele sunt minore: acolo se lucreaza cu un
automat de tip Mealy, alfabetul stiva este distinct de alfabetul de intrare, se pot folosi
denit ii nedeterministe (care atent ie nu sunt echivalente cu cele deterministe).
8.5. PROCESORUL ELEMENTAR 163
8.5 Procesorul elementar
Cel mai reprezentativ circuit din 3 DS este procesorul; el se remarca prin exibilitate
si posibilitat i funct ionale mult dezvoltate.
Denit ia 8.2 Un procesor P este un circuit care leaga printr-un ciclu un automat arit-
metico - logic cu un automat de control.
Funct ia unui procesor P este specicata prin secvent a de comenzi stocata n ROM.
Fiecare secvent a reprezinta un microprogramsi consta dintr-un sir de micro - instruct iuni.
O micro - instruct iune este compusa din comenzi executate de automatul aritmetico -
logic (ALU), si campuri care permit selectarea urmatoarei micro - instruct iuni.
Pentru a nt elege mecanismul principal folosit de acest al treilea ciclu, ne vom referi
n principal la procesorul elementar.
Un procesor elementar EP este un procesor care executa numai o secvent a de control,
adica automatul de control (CROM) asociat este un automat de init ializare, fara intrarea
de init ializare X
1
(a se vedea circuitul CROM, sect iunea 7.7).
CROM
n MUX
2
ADD
n
R
n
c
E ,
c
,
E
E E
E
T
'
T
'
T
'
c
'
c c
c E
c
c E
T
'
c
E
T
,
E
c
E
c
,
A B
CR S
0 1 2 3
S
1
S
0
MSB
D
IN
W
IN
READ
D
OUT
WRITE
W
OUT
Al doilea ciclu
Al treilea ciclu
&
&
&b
d
d
d
Un sistem simplu de PE este dat n gura de sus, unde s-a detaliat numai automatul
aritmetico - logic.
164 CAPITOLUL 8. SISTEME 3 DS SISTEME (PROCESORI)
Pachetul de n multiplexori n MUX
2
selecteaza simultan iesirea sect iunii aritmetico
- logice si intrarea n registrul R
n
(nu s-au mai precizat marimile magistralelor de date).
Select iile efectuate de el sunt:
IN: intrarea de date D
IN
, accesibila pentru comanda S
1
S
0
= 00;
ADD
n
: suma dintre numarul (de n bit i) oferit de D
IN
si cont inutul registrului R
n
,
pentru comanda S
1
S
0
= 01;
REG: cont inutul registrului paralel R
n
, pentru comanda S
1
S
0
= 10;
RSH0: cont inutul registrului R
n
deplasat spre dreapta cu o pozit ie (avand 0 pe cea
mai semnicativa pozit ie), pentru comanda S
1
S
0
= 11 completata de MSB = 0;
RSH1: cont inutul registrului R
n
deplasat spre dreapta cu o pozit ie (avand 1 pe cea
mai semnicativa pozit ie) pentru comanda S
1
S
0
= 11 completata cu MSB = 1.
Automatul este un CROM specic unei funct ii, care comanda automatul aritmetico -
logic prin intermediul grupului de trei bit i (S
0
, S
1
, MSB); el primeste comanda de la
iesirea CR a sumatorului.
De asemenea, acest CROM controleaza legaturile procesorului. EP este conectat cu
un sistem din care primeste date prin READ si W
IN
(intrare de asteptare) si caruia i
trimite iesirile WRITE si W
OUT
(iesirea de asteptare).
Descrierea funct ionala este completata prin limbajul de microprogramare al acestui
procesor, denit sintactic astfel:
< micro instructiune > ::= < comanda >< mod >< test >< salt >
< comanda > ::= < functie >< iesire >
< mod > ::= JMP | CJMP | INIT |
< test > :: = CR | WIN | WOUT |
< salt > ::= < orice marca de maxim 6 caractere >
< functie > ::= IN | ADD | REG | RSH0 | RSH1
< iesire > ::= READ | WRITE |
Exemplul 8.5 Singurul micro-program executat de procesorul elementar descris mai sus
primeste un sir de numere si genereaza alt sir de numere reprezentand mediile aritmetice
ale ecarei perechi succesive.
Utilizand limbajul de micro-programare astfel denit, rezulta urmatorul microprogram:
8.5. PROCESORUL ELEMENTAR 165
UNU IN READ CJMP WIN UNU
DOI READ CJMP WIN DOI
ADD CJMP CR TREI
RSH0
OUT REG WRITE CJMP WOUT ZERO
JMP UNU
TREI RSH1 JMP OUT
ZERO
. . .
Pe prima linie, controlerul asteapta primirea primului numar, ncarcand n R
n
orice
congurat ie binara; cand W
IN
devine inactiv, ultima ncarcare pune n registru valoarea
corecta.
A doua micro - instruct iune asteapta al doilea numar; la sosirea acestuia, micro-
programul merge la linia urmatoare.
A treia linie aduna cont inutul registrului cu numarul sosit n D
IN
, iar iesirea CR este
testata pentru a alege deplasarea corespunzatoare.
Daca CR este activ, urmatoarea instruct iune este la adresa TREI; altfel se trece la
micro - instruct iunea urmatoare.
A patra si urmatoarele micro - instruct iuni efectueaza deplasarile spre dreapta core-
spunzatoare (adica mpart irea), nalizand calculul mediei dintre numerele primite.
Linia OUT trimite afara rezultatul, iar receiverul conrma primirea.
Saltul (JMP) la UNU reporneste (la nesfarsit) procedura pentru urmatoarea pereche
de numere.
Structura de ansamblu a unui EP nu spune nimic despre funct ia realizata.
Aceasta funct ie este denita numai prin cont inutul ROM-ului din CROM. Structura
simbolica stocata n ROM combina facilitat i funct ionale simple ale automatului efectiv,
adica este un automat aritmetico - logic.
Componenta aleatoare este concentrata n ROM, al carui cont inut formeaza singura
structura complexa a sistemului structura de tip simbolic (micro - programare).
Capitolul 9
Sisteme 4 DS
Ultimul exemplu din sect iunea 8.5 subliniaza destul de clar procesul specic unui 3DS:
funct ia sistemului devine tot mai put in dependenta de structura zica si tot mai strans
legata de o structura simbolica (de exemplu, micro-programe).
Structura zica (bazata pe circuite) ramane simpla, pe cand cea simbolica stocata
n ROM (eventual convertit n PLA) presupune o anumita complexitate funct ionala.
Al patrulea ciclu creaza condit iile pentru dependent a funct ionala totala fat a de struc-
tura simbolica.
9.1 Tipuri de sisteme de ordin 4
Exista patru tipuri principale de astfel de sisteme, n funct ie de ordinul sistemului prin
care este nchis al patrulea ciclu; ele pot reprezentate schematic astfel:
1. 4 DS avand ultimul ciclu nchis printr-un 0 DS; circuitul combinat ional de
nchidere este un ROM sau PLA, cont inand programe interpretate de procesor.
PROCESOR ROM
c '
T
c E
T
c E
T
c '
T
DATE
ADRESE
READ
WAIT
0DS
Programe


167
168 CAPITOLUL 9. SISTEME 4 DS
2. 4 DS cu ultimul ciclu nchis printr-un 1 DS; acesta este computerul, cea
mai reprezentativa structura de acest ordin; a doua componenta este un RAM care
stocheaza date si programe.
PROCESOR RAM
c '
T
c E
T
c E
T
c '
T
DATE
ADRESE
{READ,WRITE, }
WAIT
1DS
Date si programe


3. 4 DS avand ultimul ciclu nchis printr-un 2 DS; automatul de nchidere este
reprezentat printr-o stiva care cont ine datele de lucru (sau secvent e n care distinct ia
dintre date si programe nu are loc cum este de exemplu programarea n limbajul
LISP);
PROCESOR LIFO
c '
T T
DATE
WAIT
2DS
Date


c E
T
{PUSH,POP, }
T
4. 4 DS cu ciclul nal nchis printr-un 3 DS; acesta este co-procesorul (procesor
specializat n executarea performanta a anumitor funct ii critice ale sistemului).

In majoritatea cazurilor, co-procesorul este un procesor aritmetic.


PROCESOR COPROCESOR
c '
T
DATE
WAIT
3DS
Funct ii


c E
T
COMENZI
T T
9.1. TIPURI DE SISTEME DE ORDIN 4 169
Ultimele doua tipuri de extensii sunt masini n care procesul de segregare este subliniat
de structura zica (stiva sau co-procesor); n ambele cazuri structura segregata este de
asemenea simpla.
Consecint a este aceea ca ntregul sistem este de asemenea simplu.
Pe de alta parte, primele doua sistem sunt foarte complexe, cu o componenta aleatoare
apreciabila.
Aceasta are ca suport structura ROM/PLA, respectiv memoria RAM.
Cont inutul ROM-ului este init ial denit simbolic; ulterior el este convertit n structura
circuitului respectiv (ROM sau PLA).

In schimb cont inutul RAM- ului ramane permanent n forma simbolica, ceea ce i
confera o mai mare exibilitate.
Aceasta este principala rat iune prin care se considera structura (b) (Computer) ca
ind cea mai reprezentativa n 4 OS.
Computerul nu este un circuit.
El este o entitate noua, cu o denit ie funct ionala specica, numita uzual arhitectura
calculatorului.

In 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 controlata
n principal prin structura simbolica a programelor.
Se pune ntrebarea ce se ntampla daca se adauga noi cicluri.
Acestea se mai introduc de obicei n interiorul structurii procesorului, pentru a facilita
capacitatea sa de a interpreta mai rapid (cu circuite mai simple) limbajul masina.
O alt a motivat ie este de a vedea perechea (Procesor, Co procesor) sau (Procesor,
Lifo) ntr-un ansamblu integrat de procesor cu performant e superioare extins printr-un
ciclu folosind un circuit RAM.
Dar, n principal aceste noi masini raman structurate pe funct iile unui computer.
Funct ia unui calculator necesita cel put in 4 cicluri, dar poate implementata pe orice
sistem cu mai multe cicluri.
170 CAPITOLUL 9. SISTEME 4 DS
9.2 Stive organizate ca n DS

In structura unui computer pot ntalnite anumite structuri hibride implementate ca


sisteme digitale cu mai multe cicluri.
O astfel de structura este cea de stiva (care poate realizata prin cel put in doua
cicluri).
Exista diverse solut ii pentru implementarea funct iei de stiva ca memorie LIFO (last-
in-rst-out).
O varianta de constructie se bazeaza pe o denit ie recursiva simpla:
LIFO
n1 mMUX
2
R
m
'
c '
T
E
E
T
'
c '
E E
c E
s s
s s
E
E
T T
'
E
E
LIFO
1
IN
OUT
D
IN
D
OUT
EXT
OUT
EXT
IN
{PUSH,POP, }
0
1
2
S
1
S
0
Denit ia 9.1 O stiva LIFO
n
pe n nivele poate construita prin extensie seriala a unui
LIFO
n1
cu un LIFO
1
(vezi Capitolul 7). Stiva de nivel 1 este un registru R
m
conectat
n ciclu cu un mMUX
2
, ai carui selectori asigura secvent a de control denita:
NO OP: cand S
1
S
0
= 00 cont inutul registrului nu se modica;
PUSH: S
1
S
0
= 01 registrul este ncarcat cu valoarea de intrare IN;
POP: S
1
S
0
= 10 registrul este ncarcat cu valoarea de intrare extinsa EXT
IN
.
Evident, LIFO
n
este un registru de deplasare serial - paralel.
Deoarece cont inutul unui astfel de registru poate deplasat n ambele direct ii, ecare
R
m
este inclus n doua feluri de cicluri:
Prin propriul sau multiplexor (pentru funct ia NO OP;
Prin doua LIFO succesive.
Deci, LIFO
1
este un 2DS, LIFO
2
este un 3DS, . . . , LIFO
n
este un (n+1)DS.
Acesta este un exemplu de circuit implementat folosind un numar arbitrar de cicluri
incluse unul n altul. Utilizarea lui este nsa strict subsumata unui circuit de tip 4 DS,
adica unui computer.
Capitolul 10
Structura unui computer la nivel de
performant a

In arhitectura unul calculator, construct iile componentelor la nivel de registru sau procesor
se preteaza mai put in la o analiza formala (comparativ cu nivelul circuitelor, bazate pe
port i logice).
Motivul rezulta din dicultatea de a descrie precis comportarea sistemului dorit.
A spune ca trebuie construit un calculator care sa execute ecient toate programele
este o armat ie mult prea vaga.
Drumul parcurs a fost preluarea unei structuri standard cu performant e cunoscute si
modicarea ei pentru a o adapta noilor cerint e.
Criteriile de performant a ale unui calculator pot rezumate n urmatoarele cerint e:
Calculatorul sa e capabil sa execute a instruct iuni de tip b pe secunda.
Calculatorul sa e capabil de a accesa c memorie sau dispozitive periferice de tip d.
Calculatorul trebuie sa e compatibil cu calculatoare de tip e.
Costul nal al sistemului sa nu depaseasca f.
171
172CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT

A
10.1 Structuri standard
Sistemele de calcul cele mai cunoscute
1
sunt calculatoarele dedicate aplicat iilor generale,
care difera ntre ele mai ales prin numarul componentelor folosite si prin gradul de au-
tonomie.
Varietatea interconexiunilor sau structurilor de comunicat ie folosite este foarte re-
stransa.

In linii mari, sistemele de calcul utilizate sunt structurate dupa una din schemele
urmatoare:
1. Structura folosita de prima generat ie de computere si de multe sisteme mici de
microprocesoare actuale este:
D
1
D
2
D
k
ICN
CPU M

3
3
3
3
3
3
3

. . .
Periferice IO
Unitate centrala Memorie
Magistrale
2. Ad augarea de procesoare specializate pentru structurile de intrare/iesire (IO) este
un proces tipic pentru calculatoare ncepand cu doua generat ie.
O structura generala care subliniaza gradul de complexitate al unor astfel de sisteme
de calcul este prezentata n pagina urmatoare.
Componenta de circuit notata ICN reprezinta o ret ea de interconexiune care con-
troleaza comunicat iile procesor - memorie.
Aceste doua variante de sisteme prezentate sunt de tip mono-procesor.
1
Reamintim cele mai utilizate sisteme de calcul sunt micro-controllerele (Capitolul 1).
10.1. STRUCTURI STANDARD 173
D
1
D
2
D
3
D
k
IOP
1
IOP
2
ICN
CM M
CPU
. . .
Periferice IO
Procesoare IO
Magistrale sistem
Memorie cache
Memorie principala
Unitate centrala
3. O structura standard pentru un multi-procesor este descrisa mai jos (pentru doua
procesoare). Variantele anterioare sunt cazuri particulare ale acestuia.
D
1
D
2
D
3
D
k
IOP
1
IOP
2
IOP
n
ICN
CM
1
CM
2
M
1
M
2
M
m
CPU
1
CPU
2
. . .
. . .
. . .
Memoria principala
Unitat i centrale
Memorii cache
Ret ea de
comutat ie
Procesoare IO
Periferice IO
4. Structuri mai complexe (de exemplu ret ele de calculatoare) se pot obt ine prin
conectarea mai multor astfel de structuri.
174CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT

A
10.2 Masurarea performant elor unui sistem
Majoritatea performant elor unui calculator rezulta din caracteristicile unitat ii sale cen-
trale de prelucrare (CPU).
Viteza sa de lucru este masurata usor dar grosier prin frecvent a f de ceas, data n
megahert i. Pot dat i nsa si alt i indicatori de performant a, cum ar :
1. Viteza medie de execut ie a instruct iunilor (MIPS).
Este numarul mediu de tact i folosit i de CPU pentru executarea unei instruct iuni.
Ea este legata de timpul mediu T (n microsecunde s) necesari pentru execut ia
a N instruct iuni, conform formulei
T =
N CPI
f
s
Deci timpul mediu t
E
de execut ie al unei instruct iuni este
t
E
=
T
N
=
CPI
f
s
Daca f depinde n principal de tehnologia circuitului integrat, folosita pentru imple-
mentarea CPU, CPI (numarul mediu de cicluri per instruct iune) depinde n primul
rand de arhitectura sistemului.
2. Pentru t
E
se poate da si o alta formula, considerand distribut ia instruct iunilor de
diverse tipuri si viteze n prelucrarea unor programe standard.
Fie I
1
, I
2
, . . . , I
n
un set de tipuri de instruct iuni reprezentative.
Notam cu t
s
timpul mediu de execut ie (n s) al unei instruct iuni de tipul I
s
si p
s
probabilitatea de aparit ie a instruct iunilor de tipul I
s
ntr-un cod obiect standard.
Atunci timpul mediu de executare al unei instruct iuni este dat de formula
t
E
=
n

i=1
p
i
t
i
s
Valori pentru t
i
se pot obt ine usor din specicat iile CPU, dar valori cat mai corecte
pentru p
i
pot obt inute numai pe cale experimentala.
3. Performant e legate de memorie.
Marimea memoriei principale si a memoriei cache pot oferi indicat ii (destul de vagi)
despre capacitatea sistemului.
10.3. MODELE BAZATE PE COZI 175
Un parametru de memorie legat de viteza de calcul este lat imea de banda: rata
maxima n milioane de bit i per secunda (Mb/sec) la care informat ia poate
transferata spre si de la unitatea de memorie.
Lat imea de banda afecteaza performant ele CPU deoarece viteza de procesare este
limitata n ultima instant a de rata la care instruct iunile si datele pot accesate sau
memorate.
4. O masura a performant ei des solicitata este costul executarii de catre sistem a
unui set de programe reprezentative.
Acest cost poate timpul total de execut ie T (incluzand act iunile legate de memorie,
memorie cache, CPU, si alte sisteme componente).
Un set de programe reprezentative pentru un mediu de calcul particular poate
utilizat pentru evaluarea performant ei ntregului sistem.
Adesea setul de programe este un standard construit special pentru evaluare.
10.3 Modele bazate pe cozi
Pentru a sublinia important a modelarii analizei performant elor unui sistem de calcul, vom
detalia o aproximare bazata pe teoria cozilor. Prezentarea este pur informala, deoarece
necesita cunostint e destul de avansate de probabilitat i.
Modelul coada spre deosebire de stiva este un model de tip FIFO
2
.
Reprezentarea sa generala este data de gura:
Coada Server
Resurse
comune
E E E
T
c
Date Date
Sistemul o coada - un server
Este reprezentat un server (de exemplu un CPU sau un computer) cu un set de
programe care trebuie executate.
2
sau M/M/1 (din rat iuni istorice)
176CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT

A
Sarcinile sunt activate sau sosesc la momente arbitrare si sunt stocate n coada, pana
ce sunt prelucrate de CPU.
Parmetrii cheie ai modelului sunt ratan care vin sarcinile si rata de prelucrare; ambele
sunt masurate n sarcini/sec.
Mediile venirii sarcinilor si media prelucarii lor sunt notate cu respectiv .
Sosirea si procesarea variaza aleator si aceste valori medii sunt determinate prin calcule
statistice. Ultima va caracteriza comportamentul sistemului modelat.
Vom nota = /; acesta este utilizarea medie a serverului, adica fract iunea de timp
cat este ocupat (n medie).
De exemplu, daca vin n medie doua probleme pe secunda ( = 2) si serverul le poate
procesa cu o rata medie de 8 probleme pe secunda ( = 8), atunci = 2/8 = 0.25.
Sosirea problemelor n sistem este un proces aleator caracterizat de distribut ia timpului
dintre sosiri
I
(t): probabilitatea ca cel put in o problema sa soseasca ntr-o perioada de
timp de lungime t.
Cazul M/M/1 presupune o sosire de tip Poisson, unde probabilitatea de distribut ie
este

I
(t) = 1 e
t
Fie p
S
(t) probabilitatea ca serviciul solicitat de o problema sa e realizat de CPU
ntr-un timp maxim t dupa eliminarea ei din coada.
Procesul de servire este modelat de o formula Poisson similara
p
S
(t) = 1 e
t
Pentru caracterizarea performant elor unui sistem cu o singura coada pot folosit i diversi
parametri.
De exemplu:
Utilizarea lui , care da fract iunea medie de timp cat serverul este ocupat.
Numarul mediu de probleme aate n coada (atat cele care asteapta prelucrarea cat
si cele care sunt n faza de procesare).
Parametrul este numit lungime medie a cozii si este dat de formula (Robertazzi -
1994)
l
Q
=

1
Timpul mediu n care problemele asteapta prelucrarea precum si timpul de prelu-
crare; este numit timpul mediu de asteptare t
Q
.
10.3. MODELE BAZATE PE COZI 177
Variabilele l
Q
si t
Q
sunt legate direct prin formula l
Q
= t
Q
sau
t
Q
=
l
Q

Aceasta ecuat ie se numeste ecuat ia lui Little si este valabila pentru toate tipurile de
sisteme cu coada, nu numai modelul M/M/1.
Din combinarea ultimelor doua relat ii se obt ine
t
Q
=
1

Valorile L
Q
si t
Q
se refera atat la probleme aate n stadiul de asteptare cat si la
cele care sunt n proces de prelucrare.
Numarul mediu de probleme care asteapta n coada dar nu sunt nca procesate se
noteaza cu l
w
, iar t
w
este timpul mediu de asteptare n coada (exclusiv timpul de
prelucrare).
Utilizarea medie a unui server n sistemul M/M/1 este numarul mediu de probleme
aate n stadiu de prelucrare, adica /.
Deci sazand acest numar din l
Q
se obt ine l
w
:
l
w
= l
Q
=

2
( )
Similar
t
w
= t
Q

=

( )
unde 1/ este timpul mediu luat de prelucrarea unei probleme.
Comparand aceste ultime doua relat ii se obt ine t
w
= l
w
/; deci ecuat ia Little are
loc si pentru indicele w de asteptare.
Exemplul 10.1 O mica societate are un calculator cu un singur terminal folosit de
salariat i.
Cam 10 persoane folosesc terminalul n timpul celor 8 ore de lucru, iar ecaruia i
vine randul circa 30 minute, adesea pentru probleme simple de rutina.
Managerul societat ii considera ca acest calculator este sub-utilizat, deoarece este defect
n medie 3 ore pe zi. Nu vrea sa cumpere mai multe terminale, deoarece este convins ca
salariat ii le vor folosi pentru jocuri sau alte probleme personale.
Acestia la randul lor considera ca terminalul este supra-utilizat deoarece sunt
nevoit i sa astepte cel put in o ora ecare pentru a avea acces la el.
178CAPITOLUL 10. STRUCTURAUNUI COMPUTER LANIVEL DE PERFORMANT

A
Ei cer conducerii sa mai cumpere terminale si sa construiasca o ret ea.
Sa studiem aceasta problema folosind teoria cozilor, printr-un model M/M/1.
Pentru ca n medie sunt 10 utilizatori n cele 8 ore de lucru, vom nota = 10/8
utilizatori/ora = 0.0208 utilizatori/minut.
Calculatorul este ocupat n medie 5 din cele 8 ore; deci utilizarea = 5/8 implica
= 1/30 = 0.0333.

Inlocuind aceste valori n ultima ecuat ie, se obt ine t


w
= 50 minute, ceea ce conrma
estimarea salariat ilor privind timpul lor mediu de acces la computer.
Directorul societat ii este astfel convins ca societatea are nevoie de terminale noi si
accepta sa cumpere destule astfel ca timpul de asteptare t
w
sa e redus de la 50 la 10
minute.
Apare astfel o ntrebare: Cate terminale noi va trebui sa cont ina ret eaua ?
Pentru a studia acest aspect, vom modela ecare terminal mpreuna cu utilizatorii sai
printr-un sistem M/M/1 independent.
Fie m numarul minim de posturi de lucru necesare pentru a reduce t
w
< 10, sau
echivalent t
Q
< 40.
Putem presupune ca venirea utilizatorilor la terminale poate separata n m cozi.
Rata de sosire

per terminal este /m = 0.0208/m utilizatori/minut.


Daca, asa cum s-a presupus, lucrarile sunt de rutina, unitatea CPU nu este afectata
de noile componente IO, asa ca timpul de raspuns nu se modica substant ial.
De aceea vom lua acelasi timp mediu pentru rata de prelucrare

= = 0.0333
utilizatori/minut.
Solicitarea performant ei cerute duce la relat ia
t

Q
=
1

=
1


m
< 40
de unde rezulta m > 2.5.
Deci sunt necesare trei posturi de lucru, asa ca se face comanda pentru doua terminale
noi.
De remarcat ca modelul este unul pesimist, n care salariat ii se mpart n trei cozi
distincte, fara legatura ntre ele, deci fara posibilitatea de a trece de la o coada la alta
cand de exemplu unul din periferice a devenit liber.
Un studiu mai complex duce la un rezultat apropiat pentru m; una din valorile m = 2
sau m = 3.
Solut ii si indicat ii la problemele propuse
Capitolul 2:
1.
18926
10
= 100100111101110
2
7772
10
= 1111001011100
2
7863, 15
10
= 1111010110111, 001(0011)
2
0, 7
10
= 0, 1(0110)
2
2. Cele doua numere sunt: 55462 si respectiv
2217 +
1
8
+
1
16
+
1
64
+
1
128
+
1
1024
= 2217 +
219
1024
= 2217, 211914 . . .
3. Vom lucra cu reprezentarea binara pe 16 bit i (primul bit ind bit de semn).
(a) 11
10
= 0000000000001011
2
, 32600 = 0111111101011000
2
.
Suma bit cu bit a celor doua numere da 0111111101100011.
Pentru vericare, acest rezultat este reprezentarea binara a lui 32611 = 11 +
32600.
(b) 599
10
= 0000001001010111
2
.
Numarul 10692 = 0010100111000100
2
trebuie trecut n cod complementar.
Complementand bit ii si adunand apoi valoarea 1 se obt ine 1101011000111100.
Adunam cele doua numere:
0000001001010111 + 1101011000111100 = 1101100010010011
Pentru vericare: rezultatul ind negativ (bitul de semn este 1), valoarea sa
absoluta este complementul la 2; dupa ce scadem 1 si complementam bit ii, se
obt ine 0010011101101101 = 10093
10
.
179
(c) 9862
10
= 0010011010000110
2
, 20043
10
= 0100111001001011,
18552
10
= 1011011110001000 (cod complementar).
0010011010000110+0100111001001011+1011011110001000 = 0010110001011001
(bitul nal de transport s-a ignorat), valoare binara ce corespunde numarului
11353.
4. Pentru x y se efectueaza urmatorii pasi:
(a) Se transforma y n cod invers;
(b) Se aduna x cu aceasta valoare si se ignora bitul nal de transport;
(c) Daca rezultatul este negativ, se trece n cod invers;
(d) Daca rezultatul este pozitiv, se aduna 1.
5. 6489
10
= 1100101011001
2
= 1, 100101011001 2
12
0, 1
10
= 0, 00011(0011)
2
= 1, 1(0011) 2
4
85
256
= 2
2
+ 2
4
+ 2
6
+ 2
8
= 0, 01010101
2
= 1, 010101 2
2
6. Pentru primul numar: C = 12 + 127 = 139
10
= 10001011
2
, f = 100101011001.
Deci reprezentarea lui 6489 ca numar real pe 32 bit i este
0100 0101 1100 1010 1100 1000 0000 0000
Pentru usurint a, aceste reprezentari se scriu n hexazecimal. Sub aceasta forma,
numarul este 45 CA C8 00.
Pentru al doilea numar: C = 4 + 127 = 123
10
= 01111011
2
,
f = 10011001100110011001100. Deci reprezentarea lui 0, 1 ca numar real pe 32
bit i este
1011 1101 1100 1100 1100 1100 1100 1100
sau n hexazecimal: BD CC CC CC.

In mod similar se rezolva si restul exercit iului.


7. 2
109
(2+2
2
+2
3
+2
5
+2
7
+2
8
+2
10
+2
14
+2
15
+2
17
+2
19
+2
21
+2
23
+2
24
).
180
Capitolul 3:
1. Aplicam pe rand axiomele 7, 9 si 6 din Denit ia algebrelor booleene si obt inem
a (a b) = (a a) (a b) = 1 (a b) = a b
A doua relat ie se demonstreaza analog.
2. Cele trei axiome ale relat iei de ordine (reexivitate, antisimetrie, tranzitivitate) se
verica imediat. Se pot scrie echivalent ele
b a a = a b a = a = a b = a b
Atunci a b = (a b) b = b deci a b.
3. a b a b = b a b = a (a b) = a (a b) = (a a) b = 0
a b = 0 a b = 1 a b = 1
4. a b = 0 a b = 0 b a = 0 b a
5. Primele patru proprietat i din Propozit ia 3.1 se verica 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)
Propozit ia 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
Propozit ia 3.3: Implicat iile (3) =(1), (3) =(2) sunt banale.
(1) =(2) : a b = a b = 0 = 1
(2) = (3) : Presupunem (a b) (a b) = 1. De aici se obt ine (exercit iu)
a b = 1 si a b = 1 deci (Exercit iul 3) a b si b a = a = b.
6. Tabela este construita pe pagina urmatoare.
7. -
181
f
15
f
14
f
13
f
12
f
11
f
10
f
9
f
8
f
7
f
6
f
5
f
4
f
3
f
2
f
1
f
0
f
0
4 3 3 2 3 2 2 1 3 2 2 1 2 1 1 0
f
1
3 4 2 3 2 3 1 2 2 3 1 2 1 2 0
f
2
3 2 4 3 2 1 3 2 2 1 3 2 1 0
f
3
2 3 3 4 1 2 2 3 1 2 2 3 0
f
4
3 2 2 1 4 3 3 2 2 1 1 0
f
5
2 3 1 2 3 4 2 3 1 2 0
f
6
2 1 3 2 3 2 4 3 1 0
f
7
1 2 2 3 2 3 3 4 0
f
8
3 2 2 1 2 1 1 0
f
9
2 3 1 2 1 2 0
f
10
2 1 3 2 1 0
f
11
1 2 2 3 0
f
12
2 1 1 0
f
13
1 2 0
f
14
1 0
f
15
0
8. Cele doua operat ii sunt (diferent a simetrica) si intersect ia.
9. Similar demonstrat iei din Teorema 3.10, se considera x
n
= 0 si x
n
= 1.
10. -
11. Ambele expresii booleene se reduc la c.
12. Ambele expresii se reduc la a b.
Cele doua forme normale sunt: (a +b +c)(a +b +c) (normal conjunctiva) si
abc +abc +abc +abc +abc +ab c (normal disjunctiva).
Capitolul 4:
1. Not and cu || operatorul Sheer (NAND), principalele operat ii booleene se denesc
astfel:
a = a||a, a b = (a||a)||(a||a), a b = (a||b)||(a||b)
Circuitele sunt:
182
`
`
`
``
`
`

,
,
, ,
,
a a b a b
a
a
b
a
b
2. Similar cu exercit iul precedent:
`
`
`
``
`
`

,
,
, ,
,
a a b a b
a
a
b
a
b


3.
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
x 0 1 0 1 0 1 1 1
y 1 0 1 0 0 0 1 0
4. Din tabelul de valori se determina imediat forma normal disjunctiva:
f(a, b, c) = a bc +abc +abc +abc +abc
Se poate construi un circuit direct pentru aceasta funct ie.
Alta varianta este de a simplica ntai funct ia, dupa care se construieste un circuit
corespunzator acestei noi reprezentari.
Nu exista un algoritm determinist pentru simplicarea unei funct ii booleene.

In
consecint a, forma gasita prin simplicare nu este unica.
Pentru funct ia din acest exercit iu, o modalitate de reducere este:
f(a, b, c) = ac(b +b) + (a +a)bc + (a +a)bc = ac +bc +bc = ac +b(c +c) = ac +b
Circuitul:
183

b
c
a
f(a, b, c)
5. Un circuit bazat direct pe forma normala a funct iei este:


` ` `

,
,
,
,
,
,
a
b
c
f(a, b, c)
O varianta de simplicare este:
f(a, b, c) = b(ac +ac) +b(a c) = b(a c) +b(a NOR c)
care conduce la circuitul

'
'
' '
'
'

`
`


,
,
,

`

a
c
b
f(a, b, c)
6. Circuitul urmator rezulta direct din forma funct iei:

e
d
c
b
a
f(a, b, c)
184
7. f(a, b, c) = b(ac +a c) = b(a c) = g(a, b, c)
Alta demonstrat ie posibila este prin construirea tabelelor de valori pentru cele doua
funct ii si observat ia ca acestea coincid.
8. f(a, b, c) = (a b)c = a b c
Aceasta este forma normal disjunctiva. Forma normal conjunctiva este
f(a, b, c) = (a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)(a +b +c)
9. Funct ia se poate scrie f(a, b) = a b.

a
b
f(a, b)
Capitolul 5:
1. Se aduc cele trei expresii ale funct iei f(x, y, z) = (f
1
(x, y, z), f
2
(x, y, z), f
3
(x, y, z))
la forma normal disjunctiva:
f
1
(x, y, z) = xyz +xyz +xyz +xy z +x yz,
f
2
(x, y, z) = xyz +xyz +xyz +xyz +xy z,
f
3
(x, y, z) = xyz +xyz +xyz +xy z +x yz.
Circuitul codicator este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3

`
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
f
3
f
2
f
1
x
y
z
185
2. Tabelul de valori al funct iei este:
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f(x, y, z) 1 0 0 1 0 1 0 0
De aici rezulta forma normal disjunctiva f(x, y, z) = x y z + xyz + xyz. Circuitul
codicator este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3

`
f(x, y, z)
x
y
z

sau daca detaliem si decodicatorul:





.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.








,
,
,
,
,
,
,
,
,
,
,
,
x
y
z
f(x, y, z)
186
3. Funct ia asociata este f : {0, 1}
3
{0, 1}
3
cu tabelul
x
2
0 0 0 0 1 1 1 1
x
1
0 0 1 1 0 0 1 1
x
0
0 1 0 1 0 1 0 1
z
2
0 1 1 1 1 0 0 0
z
1
1 0 0 1 1 0 0 1
z
0
1 0 1 0 1 0 1 0
Codicatorul:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3

`
x
y
z

,
,
,
, ,
,
,
,
,
,
,
,
z
2
z
1
z
0
4. O funct ie booleana de cinci variabile care sa implementeze condit ia trebuie sa aiba
f(1, 1, 1, 1, 1) = f(1, 1, 1, 0, 0) = f(1, 1, 0, 1, 0) = f(1, 1, 0, 0, 1) = f(1, 0, 1, 1, 0) =
f(1, 0, 1, 0, 1) = f(1, 0, 0, 1, 1) = f(0, 1, 1, 1, 0) = f(0, 1, 1, 0, 1) = f(0, 1, 0, 1, 1) =
f(0, 0, 1, 1, 1) = 1 si 0 n rest.
O astfel de funct ie n forma normala se scrie imediat, din care reiese codicatorul
(am trasat numai iesirile utile din DCD
5
, care intra n poarta OR
11
:
y
31
y
28
y
26
y
25
y
22
y
21
y
19
y
14
y
13
y
11
y
7
DCD
5

5
(x
4
, x
3
, x
2
, x
1
, x
0
)
5. Mult imea numerelor din intervalul [0, 2
6
1] divizibile cu 4 este A = {0, 4, 8, 12, 16, 20,
24, 28, 32, 36, 40, 44, 48, 52, 56, 60} (n total 16). Se construieste un DCD
6
n care
iesirile y
i
cu i A sunt conectate la o poarta OR
16
, din care iese rezultatul nal.
187
6. O simpla particularizare:

.
.
.

.
.
.

.
.
.

.
.
.

,
,
`


,
,
,
,
,
,
,
, ,
,
,
x
1
x
0
E
7. O construct ie directa este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3

`
x
2
x
1
x
0
` ` ` ` ` ` ` `


i
7
i
6
i
5
i
4
i
3
i
2
i
1
i
0
iar una recursiva:
EMUX
EMUX EMUX
EMUX EMUX EMUX EMUX


, , ,
,
x
0
x
1
x
2
y
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
7
i
6
i
5
i
4
i
3
i
2
i
1
i
0
188
8. Tabela de valori a funct iei sum este
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
sum 0 1 1 0 1 0 0 1
Circuitul MUX
3
este imediat (eventual se poate detalia):
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
7
MUX
3


, , ,
, , ,

a
b
c
9. -
10. -
11. Tabela de valori a funct iei f este
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f(x, y, z) 1 1 0 1 1 1 1 1
Un circuit codicator pentru implementare este:
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
DCD
3

`
x
y
z

,
,
,
,
,
,
,
189
Circuitul bazat pe multiplexori elementari este:
EMUX
EMUX EMUX
EMUX EMUX EMUX EMUX


, , ,
,
z
y
x
f(x, y, z)
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1

1

1

1

1

1

0

1

1

El se poate reduce spectaculos la:


EMUX
EMUX

f(x, y, z)
y
i
0
i
1

y
i
0
i
1
z

y
x
12. -
13. Tabela de valori obt inuta este (am introdus si rezultatele part iale):
190
x
0
x
1
x
2
x
3
s
1
s
2
c
1
c
2
s c
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 1 0
0 0 1 0 0 1 0 0 1 0
0 0 1 1 0 0 0 1 1 0
0 1 0 0 1 0 0 0 1 0
0 1 0 1 1 1 0 0 0 1
0 1 1 0 1 1 0 0 0 1
0 1 1 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0 1 0
1 0 0 1 1 1 0 0 0 1
1 0 1 0 1 1 0 0 0 1
1 0 1 1 1 0 0 1 0 1
1 1 0 0 0 0 1 0 0 1
1 1 0 1 0 1 1 0 0 1
1 1 1 0 0 1 1 0 0 1
1 1 1 1 0 0 1 1 1 0
14. Un circuit bazat pe codicatori simpli (fara acces):
EPE EMUX EMUX
PE
2
PE
2

, ,

i
0
i
1
i
2
i
3
i
4
i
5
i
6

i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
Z Z
y
1
y
0
y
1
y
0
i
0
i
1
i
0
i
1
i
0
i
1
Z
y
2
y
1
y
0
Daca folosim construct ia recursiva bazata pe codicatori cu acces, avem:
191
EPE
2
EPE
2

i
0
i
1
i
2
i
3
i
4
i
5
i
6

i
3
i
2
i
1
i
0
i
3
i
2
i
1
i
0
y
1
y
0
y
1
y
0
` `

E Z E Z
Z
y
0
y
1
y
2
15. Circuitul de deplasare spre dreapta cu 0 sau 1 pozit ii este:
EMUX EMUX EMUX EMUX

, , ,

, , ,

a
3
a
2
a
1
a
0
y
0
y
1
y
2
y
3
s
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0
Similar se construieste si circuitul de deplasare spre stanga cu 0, 1 pozit ii:
EMUX EMUX EMUX EMUX

, , ,


a
3
a
2
a
1
a
0
y
0
y
1
y
2
y
3
s
0
i
1
i
0
i
1
i
0
i
1
i
0
i
1
i
0

,
,
,
16. Detaliem ecuat ia de transport c
i+1
= G
i
P
i
c
i
pentru i = 0, 1, 2, 3, eliminand si
recursivitatea:
c
1
= G
0
P
0
c
0
c
2
= G
1
P
1
c
1
= G
1
P
1
G
0
P
1
P
0
c
0
c
3
= G
2
P
2
c
0
= G
2
P
2
G
1
P
2
P
1
G
0
P
2
P
1
P
0
c
0
c
4
= G
3
P
3
c
3
= G
3
P
3
G
2
P
3
P
2
G
1
P
3
P
2
P
1
G
0
P
3
P
2
P
1
P
0
c
0
Un circuit posibil se construieste imediat (nu este singura varianta).
192













c
4
c
3
c
2
c
1
c
0
G
3
G
2
G
1
G
0
P
3
P
2
P
1
P
0
,
, , , ,
, , , , ,
, , ,
,
, , ,
, , , ,
,
,
, ,
,
,
,
,
,
,
,
,
,
17. Construct ia unui comparator pe 4 bit i se realizeaza imediat particularizand structura
din sect iunea 5.7. Daca notam
4 CA

4 4
a
b
< = >
un circuit de comparare pe 4 bit i, el poate folosit ca baza pentru construirea unui
circuit pe 16 bit i astfel:
`

` ` ` ` ` ` ` ` `
4 CA 4 CA 4 CA 4 CA


, , , , , ,


4 4 4 4 4 4 4 4
< = >
18. Circuitul:
193
`


4 FA

X
Y

,
,
< = >
4 4
19. Un PLA pentru funct ie:

.
.
.

.
.
.

.
.
.

.
.
.





x
y
z
f
1
f
2
f
3
,
,
,
Pentru circuitul PROM este nevoie de tabela de valori (sau echivalent de forma
normal disjunctiva):
x 0 0 0 0 1 1 1 1
y 0 0 1 1 0 0 1 1
z 0 1 0 1 0 1 0 1
f
1
1 1 1 1 0 0 0 1
f
2
0 1 0 0 1 1 1 1
f
3
0 0 1 0 1 1 1 1

.
.
.

.
.
.

.
.
.

.
.
.

x
y
z
,
,
,

f
1
f
2
f
3
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0












194
Capitolul 6:
1. Se foloseste faptul ca a > b este echivalent cu a +b > 11 . . . 1. Deci se testeaza bitul
de semn al sumei a + b. Acesta va selectorul a n multiplexori elementari, care
triaza ntre bit ii numarului a si cei ai numarului b.
n EMUX ADD
n
\
\ /
/



,
,

max{a, b}
i
1
i
0
c
out
n
n n
n n
b
a

c
0
2. Fara a restrange generalitatea, putem considera a
n
= 1.
Circuitul este format dintr-un registru serial SR
n
(format din n DFF-uri) si cel
mult n 1 port i XOR.
O reprezentare a circuitului este
DFF DFF DFF

` ` `

_
`
`

`
`

`
`

`
`

, , , ,
, ,
CK
b
0
b
1
. . . b
k
a
n1
a
n2 a
1
a
0
. . .
. . .
Un arc marcat cu a
i
este suspendat daca a
i
= 0 (iar poarta XOR in care intra
acesta poate eliminata). Daca a
i
= 1, atunci acesta este un arc normal.
3. -
4. O solut ie posibila este:



DFF

,
x
CK
Y
195
5. O solut ie posibila este:
FA
DFF DFF




,
, ,
CK
c s
(din FA se ret ine numai transportul, valoarea sumei neind necesara).
Capitolul 7:
1. Componentele din denit ie se construiesc usor: Q = {0, 1}
2
, X = {0, 1}, Y = {0, 1}
0 1
00 00 01
01 01 10
10 10 11
11 11 00
0 1
00 00 01
01 01 10
10 10 11
11 11 00
(funct iile de tranzit ie si de iesire coincid). Graful de funct ionare este:

`
00 01
10 11
0/00
0/11
1/00
1/01
0/01
0/10
1/10
1/11
2. Se particularizeaza counterul din curs pentru n = 3, sau eventual se foloseste
exemplul de la sumatorul prex.
3. Particularizand sumatorul prex din 7.5.3, se obt ine
196
R
3
ADD
3

,
,
,
s
0
s
1
s
2
CK
c
0
x
0
x
1

Acest automat are Q = {0, 1}


3
, X = {0, 1}
2
, Y = {0, 1}
3
, iar funct iile sunt
(abc, xyz) = abc pentru iesire si
00 01 10 11
000 000 001 010 011
001 001 010 011 100
010 010 011 100 101
011 011 100 101 110
100 100 101 110 111
101 101 110 111 000
110 110 111 000 001
111 111 000 001 010
pentru transfer.
Graful de funct ionare se construieste imediat.
4. Componentele automatului sunt: Q = {0, 1}, X = {0, 1}
2
, Y = {0, 1},
00 01 10 11
0 0 0 0 1
1 1 0 0 0
00 01 10 11
0 0 1 1 0
1 1 0 0 1
Graful de funct ionare se construieste imediat.
5. Componentele automatului sunt: Q = {0, 1}, X = {0, 1}
2
, Y = {0, 1},
00 01 10 11
0 0 0 0 1
1 1 1 1 0
00 01 10 11
0 0 1 1 0
1 1 0 0 1
De remarcat ca automatul difera difera de cel anterior numai prin funct ia de transfer.
Graful de funct ionare se construieste imediat.
6. Completam marcajele arcelor cu iesirile:
197
`
_
`
_
`
_
`
_

`
`

q
0
q
1
q
2
q
3
0/00 0/11
0/10 0/01
1/00 1/10
1/11
1/01
Notam starile q
i
cu reprezentarea n baza 2 a lui i. Pentru cele patru stari sunt
sucient i doi bit i.
Deci: X = {0, 1}, Q = Y = {0, 1}
2
si (am notat cu x bitul de intrare curent)
0 1 Q
+
1
Q
+
0
00 00 01 0 x
01 01 10 x x
10 10 11 1 x
11 11 00 x x
0 1 Y
1
Y
0
00 00 11 x x
01 11 10 1 x
10 10 01 x x
11 01 00 0 x
De aici rezulta forma funct iilor de tranzit ie si de iesire:
(Q
1
Q
0
, x) = (Q
1
Q
0
x +Q
1
Q
0
x +Q
1
Q
0
, Q
0
x +Q
0
x)
(Q
1
Q
0
, x) = (Q
1
Q
0
x +Q
1
Q
0
x +Q
1
Q
0
, Q
0
x +Q
0
x)
DFF
0
DFF
1

,










x
Q
Q
Q
Q
D
D
CK
Y
1
Y
0
7. Din reprezentarea graca rezulta X = {0, 1}, Q = Y = {0, 1}
2
si
0 1
00 00 10
01 11 00
10 00 11
11 10 00
0 1
00 00 10
01 10 01
10 10 01
11 01 11
198
Graful de tranzit ie este

>
>
>
>
>
>
>
>
>
>
>
>.
`

q
0
q
1
q
2
q
3
1/11
0/00
1/01
0/10
1/10
0/10
1/01
0/01
De aici (sau eventual folosind un algoritm de eliminare a starilor inaccesibile) se
observa ca starea 01 poate eliminata, ea neputand accesibila plecand din starea
init iala 00.
8. Reluam tabelele celor doua funct ii din exercit iul anterior, completand cu coloanele
care dau informat ii despre forma lor analitica:
0 1 Q
+
1
Q
+
0
00 00 10 x 0
01
10 00 11 x x
11 10 00 x 0
0 1 Y
1
Y
0
00 00 10 x 0
01
10 10 01 x x
11 01 11 x 1
Deci putem da o forma mai simpla funct iilor de tranzit ie si de iesire:
(Q
1
Q
0
, x) = (Q
0
x +Q
0
x, Q
1
Q
0
x),
(Q
1
Q
0
, x) = (Q
1
x +Q
1
Q
0
x +Q
1
Q
0
x, Q
1
Q
0
x +Q
0
)
O implementare bazata pe tablouri logic programabile este:
DFF
0
DFF
1

x
Q
Q
Q
Q
D
D
CK
Y
1
Y
0



199
9. Separam tabloul funct iei de tranzit ie pe cele doua tablouri pentru
J
respectiv
K
:

J
0 1 J
+
1
J
+
0
00 00 10 x 0
01
10 0 1 x
11

K
0 1 K
+
1
K
+
0
00
01
10 1 0 x
11 01 11 x 1
O forma pentru cele doua funct ii poate :

J
(Q
1
Q
2
, x) = (x, Q
1
x),
K
(Q
1
Q
0
, x) = (Q
0
x, +Q
0
x,

1

)
Funct ia de iesire ramane neschimbata.
DFF
0
DFF
1

x
Q
Q
Q
Q
Y
1
Y
0

`
,

1

J
K
J
K
CK







10. -
11. Folosind cunostint e de limbaje formale, se poate construi automatul care accepta
secvent e binare marcand orice aparit ie de doua zerouri consecutive:

_

`
`

q
0
1/0
0/0
q
1
0/1
1/0
0/0
q
2
1/0
Iesirea este legata apoi de un counter crescator pe 3 bit i (eventual cel construit la
exercit iul 1).
Din graful de tranzit ie rezulta tabelele de valori ale celor doua funct ii:
200
0 1 Q
+
1
Q
+
0
00 01 00 0 x
01 01 10 x x
10 01 00 0 x
0 1 Y
+
00 0 0 0
01 1 0 x
10 0 0 0
Deci
(Q
1
Q
0
, x) = (Q
0
x, x), (Q
1
Q
0
, x) = Q
0
x
Un circuit care rezolva problema este:
DFF
0
DFF
1

,

`

x
Q
Q
Q
Q
D
D
CK

COUNT
3

`
,

Y
Observat ii:
(a) O analiza a automatului arata ca unul din cele doua DFF nu este utilizat.
Deci el se poate reduce, fapt care revine formal la ideea ca starile q
0
si q
2
sunt
echivalente deci ele se pot identica. Se obt ine automatul

_
`

q
0
1/0
q
1
0/1
1/0

0/0
1/0
a carui implementare utilizeaza un singur DFF.
(b) O solut ie interesanta primita de la mult i student i este:
`

DFF DFF



,
,
x
CK
Y
201
Eroarea consta n faptul ca n faza init iala automatul este resetat si ambele
DFF cont in valoarea 0. Deci atunci cand va ncepe sa funct ioneze, automatul
va scoate 1 ca prima valoare (desi nu a primit nca nici un bit), ceea ce va
afecta valoarea counterului.
12. A se vedea solut ia anterioara, n care se construieste un COUNT
3
folosind numai
DFF-uri.
13. -
202
Bibliograe
1. Hayes J. P. - Computer Architecture and Organisation, McGraw Hill Series in Com-
puter Engineering, Third edition, 2000
2. Hayes. J.P. - Introduction to Digital Logic Design, Reading MA, Addison Wesley,
1993
3. Hwang K - Advanced Computer Architecture, New York, Mc. Graw-Hill, 1993
4. Murdocca M., Heuring V. - Principles of Computer Architecture, Prentice Hall, 2001
5. Stefan Gh. - Circuit Complexity, Recursion, Grammars and Information, Ed. Univ.
Transilvania, Brasov, 1997
6. http://plato.stanford.edu/entries/church-turing/
7. http://www.unicode.org
8. http://computer.howstuworks.com/boolean.htm
9. http://www.play-hookey.com/digital/electronics/
203

S-ar putea să vă placă și