Sunteți pe pagina 1din 51

Arhitectura calculatoarelor şi sisteme de operare - partea I

III. Circuite secvenţiale

87
Arhitectura calculatoarelor şi sisteme de operare - partea I

Circuit secvenţial
• ieșirea la orice moment depinde de
– intrare
– starea internă
• deci pentru aceeași intrare se pot obţine
valori diferite la ieșire, la momente diferite
• starea internă
– este memorată de către circuit
– evoluează în timp
88
Arhitectura calculatoarelor şi sisteme de operare - partea I

Diagrama bloc

89
Arhitectura calculatoarelor şi sisteme de operare - partea I

Evoluţia stării
• starea se modifică la anumite momente
– sincron: la intervale regulate de timp
• date de un semnal special (ceas)
– asincron: la momentul apariţiei unui eveniment
• evenimentele sunt definite în funcţie de activitatea
circuitului
– de ce nu se modifică permanent?
• transmiterea semnalului prin porţi şi prin liniile de
comunicare se face cu întârzieri
• semnalele - luate în considerare după stabilizare
90
Arhitectura calculatoarelor şi sisteme de operare - partea I

Ceasul
• semnal periodic
– ciclu activ - procentajul din perioadă în care
semnalul este activ
– depinde de ce înseamnă semnal activ
• pe nivel (0 sau 1)
• pe front (trecerea de la 0 la 1 sau invers)
• durata perioadei
– suficient de mare pentru a avea intrări stabile
91
Arhitectura calculatoarelor şi sisteme de operare - partea I

Implementare
• cea mai simplă variantă
– esenţială este conexiunea inversă

• în general se folosesc scheme mai complexe


92
Arhitectura calculatoarelor şi sisteme de operare - partea I

Tipuri de circuite secvenţiale

• la nivel de bit - circuite bistabile


• după cum este detectat semnalul activ
– latch - activ pe nivel
– flip-flop - activ pe front
• circuite pe mai mulți biți
– regiștri, numărătoare (contoare)
– formate din mai multe circuite bistabile
93
Arhitectura calculatoarelor şi sisteme de operare - partea I

III.1. Circuite bistabile

94
Arhitectura calculatoarelor şi sisteme de operare - partea I

Bistabil
• cum trebuie să arate un circuit care
implementează bitul?
• specificații
– să se poată scrie în el un 0 sau un 1
– să memoreze acea valoare până la scrierea
alteia
– să se poată citi ultima valoare scrisă
• nu poate fi circuit combinaţional
(memorare)
95
Arhitectura calculatoarelor şi sisteme de operare - partea I

Bistabil RS fără ceas


• două intrări (R,S), două ieșiri (Q,P), două
conexiuni inverse
– circuitul implementează un singur bit: P  Q

96
Arhitectura calculatoarelor şi sisteme de operare - partea I

Funcționarea bistabilului RS (1)


• la prima vedere avem simultan
q = Q și p = P
QpR
P  q S
• de fapt, ieșirile nu se modifică instantaneu
la modificarea intrărilor
– datorită timpilor de propagare prin porți
– deci putem studia evoluția prin tabele de adevăr
97
Arhitectura calculatoarelor şi sisteme de operare - partea I

Funcționarea bistabilului RS (2)


• considerăm (q,p)
Diagrama Karnaugh
valorile curente ale
ieșirile: QP
ieșirilor qp\RS 00 01 11 10
• iar (Q,P) valorile 00 11 10 00 01
viitoare 01 01 00 00 01
– în funcție de (q,p) și de 11 00 00 00 00
intrările (R,S) 10 10 10 00 00

– care vor deveni


efective după timpii de QpR
propagare P  q S
98
Arhitectura calculatoarelor şi sisteme de operare - partea I

Stări stabile
• în principiu, (Q,P) se
modifică permanent
• dar atunci când qp\RS 00 01 11 10
(Q,P)=(q,p), avem o 00 11 10 00 01
stare stabilă 01 01 00 00 01
– dorim identificarea 11 00 00 00 00
acestor stări 10 10 10 00 00
– circuitul poate fi
controlat dacă trece
doar prin stările stabile
99
Arhitectura calculatoarelor şi sisteme de operare - partea I

Funcționare (1)
stare inițială (q,p) evoluție (q,p) concluzie
R=0, S=1
00 00  10 stabil
01 01  00  10 stabil circuitul evoluează
întotdeauna spre starea
10 10 stabil stabilă (Q,P)=(1,0)
11 11  00  10 stabil
R=1, S=0
00 00  01 stabil
01 01 stabil circuitul evoluează
întotdeauna spre starea
10 10  00  01 stabil stabilă (Q,P)=(0,1)
11 11  00  01 stabil
100
Arhitectura calculatoarelor şi sisteme de operare - partea I

Funcționare (2)
stare inițială (q,p) evoluție (q,p) concluzie
R=0, S=0
00 00  11  00  ...
pentru q=p, circuitul
01 01 stabil oscilează la infinit
10 10 stabil pentru qp, circuitul își
păstrează starea (stabilă)
11 11  00  11  ...
R=1, S=1
00 00 stabil
01 01  00 stabil circuitul evoluează
întotdeauna spre starea
10 10  00 stabil stabilă (Q,P)=(0,0)
11 11  00 stabil
101
Arhitectura calculatoarelor şi sisteme de operare - partea I

Funcționare (3)

• reamintim condiția P  Q
(R,S)=(0,0): păstrare stare existentă
(memorare)
(R,S)=(0,1): stabilizare la Q=1 (set)
(R,S)=(1,0): stabilizare la Q=0 (reset)
(R,S)=(1,1): combinație interzisă
– deoarece P=Q - nu implementează un bit
102
Arhitectura calculatoarelor şi sisteme de operare - partea I

Circuite secvenţiale sincrone

• se adaugă bistabilului RS un semnal de


sincronizare (ceas)
• pornind de la acesta se pot realiza alte
circuite bistabile
– D, JK, T
• toate sunt de tip latch (active pe nivel)

103
Arhitectura calculatoarelor şi sisteme de operare - partea I

Latch RS cu ceas
q(=Qt) R S Qt+1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 *
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 *

104
Arhitectura calculatoarelor şi sisteme de operare - partea I

Latch D
• modelează doar situaţiile RS
• elimină combinaţiile interzise
• aici ieșirea nu depinde de fapt de starea anterioară

q(=Qt) D Qt+1
0 0 0
0 1 1
1 0 0
1 1 1

105
Arhitectura calculatoarelor şi sisteme de operare - partea I

Latch JK
• elimină combinaţia imposibilă de la bistabilul RS

q(=Qt) J K Qt+1
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
106
Arhitectura calculatoarelor şi sisteme de operare - partea I

Latch T
• derivat din bistabilul JK
• modelează doar situaţiile J=K

q(=Qt) T Qt+1
0 0 0
0 1 1
1 0 1
1 1 0

107
Arhitectura calculatoarelor şi sisteme de operare - partea I

Evoluţia stărilor
R S Qt+1 J K Qt+1
0 0 Qt neschimbat 0 0 Qt neschimbat
0 1 1 scriere 1 0 1 0 scriere 0
1 0 0 scriere 0 1 0 1 scriere 1
1 1 * interzis 1 1 Qt inversare

D Qt+1 T Qt+1
0 0 scriere 0 0 Qt neschimbat
1 1 scriere 1 1 Qt inversare

108
Arhitectura calculatoarelor şi sisteme de operare - partea I

Diagrame bloc pentru bistabili

109
Arhitectura calculatoarelor şi sisteme de operare - partea I

Temă

• implementaţi și analizaţi comportamentul


bistabilului RS (fără ceas) utilizând porţi
NAND în locul porţilor NOR
• similar pentru bistabilii latch RS, D, JK, T

110
Arhitectura calculatoarelor şi sisteme de operare - partea I

Flip-flop

• intrările sunt luate în considerare doar pe


frontul crescător (sau descrescător) al
semnalului de ceas
• cum se poate obţine un flip-flop
– electronic - derivarea semnalului de ceas
– utilizând circuite latch  circuite master-slave

111
Arhitectura calculatoarelor şi sisteme de operare - partea I

Flip-flop master-slave D

112
Arhitectura calculatoarelor şi sisteme de operare - partea I

Latch vs. flip-flop


• fiecare categorie are utilitatea sa
• circuitele flip-flop - utilizate pentru
comanda sistemelor digitale
– frontul semnalului de ceas este foarte scurt
comparativ cu perioada ceasului
– exact un pas în evoluţia sistemului într-o
perioadă de ceas
• circuitele latch - sisteme asincrone
113
Arhitectura calculatoarelor şi sisteme de operare - partea I

III.2. Circuite secvenţiale


complexe

114
Arhitectura calculatoarelor şi sisteme de operare - partea I

Regiştri
• un circuit bistabil controlează un singur bit
– nu foarte util în practică
• putem utiliza mai mulţi bistabili simultan
– toţi primind acceași comandă
– un asemenea circuit se numește registru
• tipuri de regiştri
– paraleli
– cu deplasare (seriali)
115
Arhitectura calculatoarelor şi sisteme de operare - partea I

Registru paralel
• implementare cu
bistabili D
– pot fi latch sau flip-
flop, după necesităţi
• aceeași comandă
(ceas)
– toţi bistabilii se
modifică la aceleași
momente
• extinderea bistabilului
116
Arhitectura calculatoarelor şi sisteme de operare - partea I

Registru cu deplasare (clasic)


• memorează ultimele n valori de la intrare
• poate fi implementat doar cu flip-flop
– temă: de ce?

117
Arhitectura calculatoarelor şi sisteme de operare - partea I

Alţi regiștri cu deplasare

118
Arhitectura calculatoarelor şi sisteme de operare - partea I

Registru universal
• intrări și ieşiri seriale sau paralele
• deplasare spre stânga sau spre dreapta
• pot fi folosite cele care sunt necesare la un moment dat

s0 s1 funcţie
0 0 nemodificat
0 1 deplasare dreapta
1 0 deplasare stânga
1 1 încărcare paralelă

119
Arhitectura calculatoarelor şi sisteme de operare - partea I

Proiectarea unui circuit secvenţial


• mașină cu număr finit de stări (automat)
1.stabilirea stărilor prin care trece circuitul
2.stabilirea tranziţiilor între stări
– starea următoare și ieșirile în funcţie de intrări
şi de starea curentă
3.codificarea stărilor
– pe numărul de biți necesar
4.scrierea tabelului de adevăr pentru tranziții
120
Arhitectura calculatoarelor şi sisteme de operare - partea I

Proiectarea unui circuit secvenţial


5. minimizare
6. implementare
– starea este memorată prin circuite bistabile
– partea combinațională - conform minimizării
• intrările părții combinaționale (starea curentă) se
preiau de la ieșirile circuitelor bistabile și de la
variabilele de intrare
• ieșirile părții combinaționale (starea următoare) se
aplică la intrările circuitelor bistabile
121
Arhitectura calculatoarelor şi sisteme de operare - partea I

Numărătorul (contorul) binar

• reţine la fiecare moment un număr pe n biţi


• la fiecare "bătaie" a ceasului - incrementare
– poate fi și decrementare
– după valoarea maximă urmează din nou 0
– nu are intrări, doar variabile de stare
• care reţin de fapt numărul curent
– ieșirile sunt identice cu variabilele de stare

122
Arhitectura calculatoarelor şi sisteme de operare - partea I

Exemplu: n=4
starea curentă starea următoare starea curentă starea următoare
q3 q2 q1 q0 d3 d2 d1 d0 q3 q2 q1 q0 d3 d2 d1 d0
0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1
0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0
0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1
0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0
0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1
0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0
0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1
0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0

123
Arhitectura calculatoarelor şi sisteme de operare - partea I

Exemplu: n=4
• prin minimizare se obţin ecuaţiile
d0  q0  q0 1
d1  q1  q 0  q1  q 0  q1  q 0
d 2  q 2  q1  q 0  q 2  q1  q 2  q 0  q 2  q1  q 0 
d 3  q 3  q 2  q1  q 0  q 3  q 2  q 3  q1  q 3  q 0 
 q 3  q 2  q1  q 0 
– implementarea stării - cu flip-flop-uri D
124
Arhitectura calculatoarelor şi sisteme de operare - partea I

Implementare

125
Arhitectura calculatoarelor şi sisteme de operare - partea I

Microprogramare (1)

• formă alternativă de implementare


– starea este memorată tot de circuite bistabile
– partea combinațională - cu ajutorul unei
memorii ROM
– intrările funcțiilor booleene se aplică la intrările
de adresă ale circuitului
– iar ieșirile funcțiilor booleene se colectează de
la ieșirile de date
126
Arhitectura calculatoarelor şi sisteme de operare - partea I

Microprogramare (2)
• implementarea părții combinaționale
– se pornește tot de la tabelul de adevăr
– în fiecare locație se scriu valorile dorite pentru
ieșire
• avantaj - flexibilitate
– orice modificare a automatului implică doar
rescrierea conținutului memoriei ROM
• dezavantaj - viteză redusă
– memoria ROM este mai lentă decât porțile
127
Arhitectura calculatoarelor şi sisteme de operare - partea I

Același exemplu
• avem 16 (= 24) stări
– codificate pe 4 biți de stare
• deci circuitul ROM va avea
– 24 adrese  4 biți de adresă
• 16 locații
– 4 biți de date  locații de 4 biți
– în acest exemplu nu avem variabile de intrare și
ieșiri ale sistemului care să se adauge la biții de
stare
128
Arhitectura calculatoarelor şi sisteme de operare - partea I

Conținutul memoriei ROM


adresă valoare adresă valoare
0 0001 8 1001
1 0010 9 1010
2 0011 10 1011
3 0100 11 1100
4 0101 12 1101
5 0110 13 1110
6 0111 14 1111
7 1000 15 0000
129
Arhitectura calculatoarelor şi sisteme de operare - partea I

Implementare

130
Arhitectura calculatoarelor şi sisteme de operare - partea I

IV. Reprezentări interne

131
Arhitectura calculatoarelor şi sisteme de operare - partea I

• reprezentări interne elementare


– fac parte din arhitectura calculatorului
– deci sunt implementate în hardware
– accesibile direct programatorilor
• structuri de date mai complexe
– pe baza reprezentărilor elementare
– definite și accesibile programatorilor prin
software
132
Arhitectura calculatoarelor şi sisteme de operare - partea I

Reprezentări elementare
• date numerice
– numere întregi, raționale
– doar anumite submulțimi ale acestora
• date alfa-numerice
– caractere etc.
• instrucțiuni
– singurele specifice fiecărui sistem
– deci nestandardizate și neportabile
133
Arhitectura calculatoarelor şi sisteme de operare - partea I

Studiul reprezentărilor

• reprezentări numerice
repr(n1) op repr(n2) = repr(n1 op n2) ???
• exemplu - dacă adunăm două variabile
întregi, rezultatul va fi scris corect?
• erori de reprezentare
– aproximări
– depășiri
134
Arhitectura calculatoarelor şi sisteme de operare - partea I

Transmiterea informațiilor
• între diverse medii
– între calculatoare/sisteme
– între componente ale aceluiași calculator/sistem
• pot apărea erori de transmisie
– datorită perturbărilor/funcționării incorecte
– semnal digital - unii biți sunt inversați
– se dorește detectarea apariției acestor erori
– și chiar corectarea lor, unde e posibil
135
Arhitectura calculatoarelor şi sisteme de operare - partea I

Moduri de detectare/corectare
• adăugarea de biți suplimentari redundanți
• paritate - 1 bit suplimentar
– permite detecția apariției unei erori (pe 1 bit)
– paritate (im)pară: număr total (im)par de biți 1
• cod Hamming
– 4 biţi de informaţie, 3 biţi suplimentari
– permite detectarea/corecţia mai multor erori
simultan
136
Arhitectura calculatoarelor şi sisteme de operare - partea I

Exemplu paritate impară


• emițător
– are de trimis valoarea (110)2
– 2 biți (par) pe 1, deci bitul suplimentar va fi 1
– se va trimite (1101)2
• receptor
– primește șirul de biți
– dacă numărul de biți pe 1 este par - eroare
– altfel - elimină bitul de paritate și obține (110)2
137

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