Sunteți pe pagina 1din 190

Electronică analogică şi digitală în biomedicină Prof. Dr. Ing.

Paşca Sever

Numărătoare şi registre
Prof. Dr. Ing. Sever Paşca
Catedra de Electronică Aplicată şi Ingineria Informaţiei
Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti

Numărătoare şi registre 2

Conţinutul cursului
 Numărătoare – generalităţi, definiţii
 Numărătoare binare asincrone
 Numărătoare binare sincrone
 Numărătoare modulo p  2n
 Registre – generalităţi, definiţii
 Registre de memorie
 Registre de deplasare
 Registru combinat (de memorie şi de deplasare)
 Registru universal
 Exemple de utilizare

Numărătoare şi registre 1
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare – generalităţi, definiţii

Un numărător este un circuit electronic care numără impulsurile aplicate la


intrarea sa.

Numărătoare şi registre 4
Numărătoare – generalităţi, definiţii

Clasificări
 După modul în care îşi modifică conţinutul
 numărătoare directe – îşi cresc conţinutul cu câte o unitate la
fiecare impuls aplicat la intrare;
 numărătoare inverse – conţinutul scade cu câte o unitate la fiecare
impuls aplicat la intrare;
 numărătoare reversibile – numără în sens direct sau invers în
funcţie de o comandă aplicată din exterior.
 După modul de funcţionare:
 numărătoare asincrone – celulele binare nu comută simultan sub
acţiunea unui impuls de tact aplicat tuturor celulelor;
 numărătoare sincrone – toate celulele binare comută simultan sub
acţiunea unui impuls de tact aplicat tuturor celulelor.

Numărătoare şi registre 2
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 5
Numărătoare – generalităţi, definiţii

Precizări
 Numărătoarele electronice se realizează cu celule binare de tip T, care
realizează o divizare cu 2.
 Prin interconectarea adecvată a n astfel de celule, se va obţine schema
unui numărător care poate fi privit şi ca un circuit secvenţial cu un număr
de stări distincte.
 Fiecărei stări îi vom putea asocia câte un cuvânt de cod de lungime n,
reprezentând conţinutul celor n celule binare pentru starea dată a
numărătorului.
 Codul în care numără un numărător va fi dat de succesiunea cuvintelor
de cod binare asociate stărilor numărătorului. Cele mai frecvent utilizate
coduri sunt: codul binar natural, codul binar reflectat, coduri BCD etc.

Numărătoare şi registre 6
Numărătoare – generalităţi, definiţii

Precizări (cont.)

 Numărul stărilor distincte posibile ale unui numărător format din n celule
binare este 2n.
 De multe ori însă, din cele 2n stări posibile, se sar un număr de k stări
rezultând un numărător cu p = 2n – k stări distincte.
 Din punct de vedere matematic, operaţia realizată de un numărător este
o operaţie modulo 2n sau modulo p.
 Vom defini capacitatea unui numărător ca fiind numărul stărilor distincte
pe care le are.
 Revenirea numărătorului în starea iniţială (de obicei asociată cuvântului
de cod 000 ... 0) este însoţită de apariţia unui impuls (tranziţie activă) pe
ieşirea acestuia.
 Vom defini factorul de divizare al numărătorului prin raportul dintre
numărul impulsurilor de la intrare şi numărul impulsurilor de la ieşire.

Numărătoare şi registre 3
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare binare asincrone

Numărătoarele se realizează cu celule binare de tip T şi se bazează pe


proprietatea acestora de a divide cu doi tranziţiile active (1  0) aplicate la
intrare.

Numărătoare şi registre 8
Numărătoare binare asincrone
Iesirea numaratorului
Numărător binar asincron direct
J___ Q0 J___ Q1 J___ Q2
 Prin interconectarea mai Intrare
CK _ CK _ CK _
multor celule de tip T prin legarea K _ Q0 K _ Q1 K _ Q2 Borna de
ieşirea Qi a uneia de intrarea de tact a R R R
aducere
la zero
următoarei (CKi + 1), obţinem schema
1 1 1 (CLEAR)
unui numărător binar asincron direct.
 Numărătorul este format din 3 celule
binare, în consecinţă va avea 23 = 8
Intrare
stări distincte. Capacitatea 1 2 3 4 5 6 7 8 9
t
numărătorului este 8 iar factorul de
divizare este tot 8. Q0

 Dacă numerotăm impulsurile de la 0 1 0 1 0 1 0 1 0 t


intrare (de fapt tranziţiile 1  0), din Q1
examinarea stărilor logice ale ieşirilor 0 0 1 1 0 0 1 1 0 t
celulelor putem deduce numărul Nx de
Q2
impulsuri care a fost aplicat la intrare,
conform relaţiei 0 0 0 0 1 1 1 1 0 t

Nx = Q2  22 + Q1  21 + Q0  20 Q2 Q1 Q0 000=0 010=2 100=4 110=6 000=0


001=1 011=3 101=5 111=7

Numărătoare şi registre 4
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 9
Numărătoare binare asincrone

Numărător binar asincron invers Iesirile numaratorului

 Schema se deosebeşte de cea a


J___ Q0 J___ Q1 J___ Q2
numărătorului direct doar prin CK CK CK
_ _ _
faptul că legătura de la o celulă K _ Q0 K _ Q1 K _ Q2
R R R
la alta se face astfel: CLEAR

Q i  CK i 1 1 1 1
Intrare 1 2 3 4 5 6 7 8 9
t

Q0

Q1

Q2

t
_ _ _
Q2 Q1 Q0 111 000 001 010 011 100 101 110 111 000

Q2 Q1 Q0 000=0 110=6 100=4 010=2 000=0


111=7 101=5 011=3 001=1 111=7

Numărătoare şi registre 10
Numărătoare binare asincrone

Numărător binar asincron reversibil


 Schemele numărătoarelor direct şi invers, pot fi cuplate într-una singură
(numărător reversibil) prin intercalarea unor multiplexoare între celulele
binare. Printr-o comandă dată multiplexoarelor pe borna de adresă
comună notată aici prin CM (Controlul Modului de funcţionare), vom
putea transforma schema în numărător direct sau invers.
 Pentru comanda CM = 0, multiplexoarele fac legătura 0  Y, ceea ce va
transforma schema într-un numărător binar asincron direct, iar pentru
comanda CM = 1, multiplexoarele realizează conexiunile 1  Y, ceea
ce transformă schema într-un numărător binar asincron invers.
Iesirile numaratorului

J___ Q0 0 J___ Q1 0 J___ Q2


Intrare MUX MUX
CK _ Y CK _ Y CK _
2:1 2:1
K _ Q0 1 K _ Q1 1 K _ Q2
R A R A R
CM
CLEAR
1 1 1

Numărătoare şi registre 5
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 11
Numărătoare binare asincrone

Performanţele nuărătoarelor asincrone


 Numărătoarele binare asincrone au avantajul de a fi simple. Ele se obţin
practic doar prin interconectarea unor bistabile de tip T.
 Frecvenţa maximă de lucru a acestor numărătoare este limitată de
numărul de celule n şi de timpul de basculare al unei celule tpd:
1
f max 
n  t pd

12

Numărătoare binare sincrone

La aceste numărătoare, toate celulele binare componente ale acestora


comută simultan sub acţiunea unui impuls de tact comun aplicat tuturor
celulelor.

Numărătoare şi registre 6
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 13
Numărătoare binare sincrone

Numărător binar sincron de tip serie


 Bornele de tact ale bistabilelor sunt legate împreună, formând intrarea
numărătorului, iar intrările J şi K ale fiecărui bistabil sunt comandate cu
ajutorul unor porţi ŞI în conformitate cu tabela de stări astfel:
 CBB0 trebuie să basculeze la fiecare impuls aplicat la intrare, deci
J0 = K0 = 1;
 CBB1 basculează din două în două impulsuri aplicate la intrare,
adică numai atunci când Q0 = 1,
deci J1 = K1 = Q0;
Iesirile numaratorului

P1
P2
1 CBB0 CBB1 CBB2 CBB3

J_0__ Q0 J_1__ Q1 J_2__ Q2 J_3__ Q3


CK CK CK CK
K0 K1 K2 K3
Intrare

Numărătoare şi registre 14
Numărătoare binare sincrone

Numărător binar sincron de tip serie (cont.)


 CBB2 basculează din patru în patru impulsuri aplicate la intrare,
adică atunci când atât Q0 cât şi Q1 sunt în 1; această comandă este
asigurată de poarta P1 care asigură ca J2 = K2 = Q0 · Q1;
 Similar, rezultă că CBB3 va bascula când Q0 = Q1 = Q2 = 1, comandă
asigurată de poarta P2.

Iesirile numaratorului

P1
P2
1 CBB0 CBB1 CBB2 CBB3

J_0__ Q0 J_1__ Q1 J_2__ Q2 J_3__ Q3


CK CK CK CK
K0 K1 K2 K3
Intrare

Numărătoare şi registre 7
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 15
Numărătoare binare sincrone

Numărător binar sincron de tip serie (cont.)


 Frecvenţa maximă este
1
t pd CBB 0 ( n  2) t pd SI
 Având în vedere faptul că tpd ŞI < tpd CBB, acest tip de numărător
sincron va lucra la frecvenţe mai mari decât numărătoarele
asincrone. Creşterea vitezei de lucru a numărătorului sincron s-a
obţinut pe seama creşterii complexităţii schemei acestuia.

Iesirile numaratorului

P1
P2
1 CBB0 CBB1 CBB2 CBB3

J_0__ Q0 J_1__ Q1 J_2__ Q2 J_3__ Q3


CK CK CK CK
K0 K1 K2 K3
Intrare

Numărătoare şi registre 16
Numărătoare binare sincrone

Numărător binar sincron de tip paralel


 O mărire suplimentară a vitezei de lucru a numărătorului sincron se
poate obţine dacă porţile ŞI dintre celule nu se mai leagă în cascadă, ca
în schema de tip serie, ci fiecare poartă ŞI este cuplată direct la ieşirile
bistabilelor care condiţionează deschiderea.
 Frecvenţa maximă de lucru este
1
t pd CBB  t pd SI

Q0
Q0
Q1
Q1
Q2
1

J_0__ Q0 J_1__ Q1 J_2__ Q2 J_3__ Q3


CK CK CK CK
K0 K1 K2 K3
Intrare

Numărătoare şi registre 8
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 17
Numărătoare binare sincrone

Numărător binar sincron reversibil


 Intrările J şi K ale tuturor celulelor sunt la nivelul 1 iar impulsul de tact
este dirijat, prin intermediul unor porţi, spre celulele care trebuie să
basculeze conform tabelei de funcţionare. Bascularea celulelor binare
se produce la tranziţia 0  1 a semnalului de pe una din intrările de tact:
CU (Count Up) pentru numărarea directă, respectiv CD (Count Down)
pentru numărare inversă.
NU1
CU
Q CY
Q Q 0 P7
P1 Q P3 Q1 0 P5 Q 1
Q0 Q1 0 Q2 Q3 2

_ _ _ _
S S S S
1 J___ Q0 1 J___ Q 1 1 J___ Q2 1 J___ Q 3
S1 CK _ S2 CK _ S3 CK _ S4 CK _
1 K _ Q0 1 K _ Q1 1 K _ Q2 1 K _ Q3
R R R R
__ __ __ __
__
Q0 __ Q __ Q Q 0 __
__ Q
P2 Q1 0 P4 Q2 1 P6 __ Q Q 1
0
BR
NU2 P8
CD Q3 2

Numărătoare şi registre 18
Numărătoare binare sincrone

Numărător binar sincron reversibil (cont.)


 Sensul de numărare este determinat de intrarea activată în timp ce
cealaltă intrare este în stare 1.
 Numărătorul mai are două porţi P7 şi P8 pentru generarea comenzilor:
 Carry (CY) când numărătorul se umple, la Q0 = Q1 = Q2 = Q3 = 1
 Borrow (BR) când numărătorul se goleşte, la Q0 = Q1 = Q2 = Q3 = 0
NU1
CU
Q CY
Q Q 0 P7
P1 Q0 P3 Q1 0 P5 Q2 1
Q0 Q1 Q2 Q3

_ _ _ _
S S S S
1 J___ Q0 1 J___ Q 1 1 J___ Q2 1 J___ Q 3
S1 CK _ S2 CK _ S3 CK _ S4 CK _
1 K _ Q0 1 K _ Q1 1 K _ Q2 1 K _ Q3
R R R R
__ __ __ __
__
Q0 __ Q __ Q Q 0 __
__ Q Q 0
P2 Q1 0 P4 Q2 1 P6 __ Q 1 BR
NU2 P8
CD Q3 2

Numărătoare şi registre 9
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 19
Numărătoare binare sincrone

Numărător binar sincron reversibil (cont.)


 Pentru a oferi o flexibilitate maximă schemei, celulele de bază s-au ales
de tipul J-K master-slave cu intrări prioritare de preîncărcare (SET) şi de
ştergere (RESET).
 Folosind aceste din urmă intrări într-o conexiune de tipul D sincronă,
putem realiza încărcarea paralelă a celulelor numărătorului. Operaţia de
încărcare este independentă de intrările de tact şi se realizează când
intrarea de încărcare Load este în 0.
 Circuitul mai poate fi prevăzut şi cu o intrare de ştergere Clear, care
forţează ieşirea în starea Q = 0 atunci când pe această bornă se aplică
nivel 1.
Intrare paralela _
Intrare paralela _ SET (S)
SET (S) LOAD

Incarcare CLEAR
(LOAD) _
RESET (R) _
RESET (R)

Numărătoare şi registre 20
Numărătoare binare sincrone

Numărător binar sincron reversibil (cont.)


 Exemplu:
SN74193

D0 D1 D2 D3
CU CY
CD BR
LOAD Q Q Q Q CLEAR
0 1 2 3

Numărătoare şi registre 10
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

21

Numărătoare modulo p  2n

Numărătoare şi registre 22
Numărătoare modulo p

Sinteza numărătorului modulo p  2n


 Numărătoarele binare prezentate anterior erau numărătoare modulo 2n
obţinute prin interconectarea a n celule binare. Caracteristica principală
a acestor numărătoare este aceea că, plecând dintr-o stare iniţială
arbitrară, acesta va evolua astfel încât va trece prin toate cele 2n stări
posibile.
 Pentru realizarea unui numărător modulo p vom proceda astfel:
 determinăm numărul minim de celule binare necesare pentru
realizarea numărătorului cu relaţia
2n  p
 interconectăm celulele numărătorului astfel încât din cele 2n stări
posibile să se omită 2n – p stări.

Numărătoare şi registre 11
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 23
Numărătoare modulo p

Exemplu: numărător modulo 5 (p = 5)

Intrare 1 2 3 4 5 6
t

Q0

t
J_0__ Q0 J_1__ Q1 J_2__ Q2 Q1
CK CK CK _
1 K0 K1 1 K2 Q2 t
Intrare Q2

Q2Q1Q0 000=0 001=1 010=2 011=3 100=4 000=0

Numărătoare şi registre 24
Numărătoare modulo p

Numărătorul decadic
1
 Prin conectarea în
J_0__ Q0 J_1__ Q1 J_2__ Q2 J_0__ Q3
cascadă a unor Intrare
CK CK CK CK
_ _ _ _
numărătoare cu factori K0 Q0 1 K1 Q1 K2 Q2 K0 Q3
de divizare diferiţi
putem obţine noi
numărătoare. De :2 :5
exemplu, dacă cuplăm :10
în cascadă un Număr impulsuri aplicate Q1 Q2 Q3 Q4
numărător modulo doi 0 0 0 0 0
(un bistabil), cu un 1 0 0 0 1
numărător modulo cinci, 2 0 0 1 0

va rezulta un numărător 3 0 0 1 1

modulo 10 (numărător 4 0 1 0 0

decadic). 5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 0 0 0 0

Numărătoare şi registre 12
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 25
Numărătoare modulo p

Numărător modulo p realizat prin aducere la zero


 Tehnica aducerii la zero este frecvent utilizată pentru realizarea
numărătoarelor modulo p:
 se lasă numărătorul să evolueze normal până în starea p – 1;
 când se atinge starea p, se aplică un impuls de ştergere tuturor
celulelor numărătorului.
Exemplu: numărător decadic
 Din relaţia 2n  p, pentru p = 10, rezultă n = 4
 Starea la care trebuie aplicată comanda reset este p = 10 = 1010b

Circuit de recunoastere a starii p = 10 y

J___ Q0 J___ Q1 J___ Q2 J___ Q3 Q3


Intrare
CK CK CK CK y
Q1
K _ K _ K _ K _
R R R R
1 1 1 1

Numărătoare şi registre 26
Numărătoare modulo p

Numărător modulo p realizat prin aducere la zero (cont.)

Număr impulsuri aplicate Q3 Q2 Q1 Q0 Y

0 0 0 0 0 0
Intrare 1 2 3 4 5 6 7 8 9 10 11 12
1 0 0 0 1 0
t
2 0 0 1 0 0
Q0
3 0 0 1 1 0

4 0 1 0 0 0 0 1 0 1 0 1 t

5 0 1 0 1 0 Q1
6 0 1 1 0 0 0 0 0 0 0 0 t
7 0 1 1 1 0
Q2
8 1 0 0 0 0
0 0 0 0 0 0 t
9 1 0 0 1 0
Q3 
10 1 0 1 0 1

11 1 0 1 1 X 0 0 1 1 0 0 t
12 1 1 0 0 X

13 1 1 0 1 X

14 1 1 1 0 X

15 1 1 1 1 X

Numărătoare şi registre 13
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 27
Numarul p scris in binar
Numărătoare modulo p

Divizoare programabile CU
D0 D 1 D2 D3
CY
Intrare Iesire
CD BR
 Un divizor programabil este un circuit LOAD Q Q Q Q CLEAR
electronic la care factorul de divizare poate 0 1 2 3

fi modificat de un cuvânt de cod de comandă R


_ _
S
aplicat din exterior. _ CBB
Q Q
 O modalitate simplă de realizare a unor
numărătoare cu factor de divizare p, arbitrar, se bazează pe utilizarea unor
numărătoare reversibile. Dacă încărcăm la început numărătorul (în paralel) cu
cifra p iar apoi aplicăm impulsurile care trebuiesc contorizate pe intrarea de
numărare inversă (CD), atunci, după p impulsuri, numărătorul se goleşte şi se
semnalează prin aceasta (pe ieşirea Borrow) că divizarea cu p a avut loc.
 În momentul în care numărătorul ajunge în starea Q3 = Q2 = Q1 = Q0 = 0 (stare
care nu face parte din ciclul de numărare), la ieşirea BR apare un impuls care
este folosit pentru reîncărcarea numărătorului, obţinem un numărător divizor cu
p (apare un impuls pe ieşirea BR pentru p impulsuri aplicate pe intrarea CD).
 Semnalul de comandă BR este memorat pe durata unui impuls de tact de către
un bistabil de tipul S-R (prin încărcare se anulează BR şi se poate compromite
încărcarea numărătorului).

28

Registre – generalităţi, definiţii

Registrele sunt circuite electronice care permit stocarea şi/sau deplasarea


unor cuvinte de cod binar.

Numărătoare şi registre 14
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 29
Registre – generalităţi, definiţii

Clasificări
 Plecând de la această definiţie, registrele se pot clasifica în:
 registre de memorie;
 registre de deplasare;
 registre combinate;
 registre universale.
 Dacă avem în vedere faptul că datele în aceste registre pot fi introduse
serie sau paralel iar citirea lor poate fi făcută de asemenea serie sau
paralel, atunci putem face şi o altă clasificare echivalentă cu cea de mai
înainte astfel:
 registru cu intrare serie - ieşire serie;
 registru cu intrare paralelă - ieşire serie;
 registre cu intrare serie - ieşire paralelă;
 registre cu intrare paralelă - ieşire paralelă.

30

Registre de memorie

Registrele de memorie (RM) sunt utilizate pentru memorarea unor cuvinte


de cod şi se realizează cu celule binare de tip D.

Numărătoare şi registre 15
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 31
Registre de memorie

Schema de principiu

Iesire paralela de date

DA Q A DB Q B DC Q C DD Q D
CK CK CK CK
WRITE
sau
L.S.I.

AL BL CL DL

Intrare paralela de date


( )

Numărătoare şi registre 32
Registre de memorie

Variante de implementare
 Dacă schema este realizată cu CBB de tip D sincrone pe frontul anterior
(trecere 0  1), atunci informaţia se înscrie la apariţia unei asemenea
tranziţii (comanda Write) şi rămâne neschimbată atât pe valoarea zero
cât şi pe valoarea unu a impulsului de tact.
 Dacă celulele registrului de memorie sunt realizate cu CBB de tip D
Latch, atunci, pe valoarea 1 a impulsului de comandă (numit de această
dată Latch Strobe Imput – LSI) registrul devine transparent (ieşirea este
copia fidelă a intrării). În momentul în care impulsul de comandă trece
din nou în zero (1  0), celulele de tip D se zăvoresc pe valoarea din
acel moment a semnalului de intrare şi menţin această valoare pe toată
durata în care impulsul de comandă (LSI) este pe nivel logic 0.
 Dacă registrul este realizat cu celule de tip D master-slave, în registru se
va memora informaţia prezentă pe intrările de date în momentul trecerii
1  0 a impulsului de tact şi se păstrează până la următoarea trecere
1  0 a impulsului de tact.

Numărătoare şi registre 16
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

33

Registre de deplasare

Registrele de deplasare (RD) sunt circuite care la fiecare impuls de tact


aplicat îşi deplasează conţinutul spre dreapta sau spre stânga cu câte o
celulă.
Aceste registre se realizează cu celule de tipul D master-slave.

Numărătoare şi registre 34
Registre de deplasare

Registrul de deplasare stânga-dreapta


 Schema unui RD stânga-dreapta realizat cu celule de tipul S-R master-
slave sau J-K master-slave, utilizate într-o conexiune de tip D master-
slave
Intrare serie Iesire serie
S(J)
___ Q 0 S(J)
___ Q 1 S(J)
___ Q 2 S(J)
___ Q 3
CK _ CK _ CK _ CK _
R(K) Q 0 R(K) Q 1 R(K) Q 2 R(K) Q 3
Tact

 Funcţionare:

Numărătoare şi registre 17
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 35
Registre de deplasare

Registrul de deplasare dreapta-stânga

Iesire serie Intrare serie

S(J)
___ Q 0 S(J)
___ Q 1 S(J)
___ Q 2 S(J)
___ Q 3
CK _ CK _ CK _ CK _
R(K) Q 0 R(K) Q 1 R(K) Q 2 R(K) Q 3
Tact

36

Registru combinat
(de memorie şi de deplasare)

Într-o serie întreagă de aplicaţii este util ca registrul să aibă pe lângă


intrarea serie (ca în cazul RD) şi intrări paralele (ca în cazul RM).

Numărătoare şi registre 18
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 37
Registru combinat (de memorie şi de deplasare)

 În funcţie de valoarea semnalului CM (control de mod) care comandă


circuitele de multiplexare, putem configura schema într-un RD stânga–
dreapta (pentru CM = 0), care funcţionează cu tactul TS, sau într-un
registru de memorie cu înscriere paralelă de date (pentru CM = 1), care
funcţionează cu tactul TP .
_
TS
0 Y
_ MUX
TP 2:1 Iesire paralela
1
A
CM
Iesire
IS A D___ QA A D___ QB A D___ QC A D___ Q D serie
0 Y 0 Y 0 Y 0 Y
MUX CK MUX CK MUX CK MUX CK
2:1 2:1 2:1 2:1
1 1 1 1

AI BI CI DI

Intrari paralele

38

Registru universal

Un registru universal (RU) cumulează funcţiile tuturor registrelor examinate


anterior.

Numărătoare şi registre 19
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Numărătoare şi registre 39
Registru universal

 Permite următoarele operaţii: deplasare stânga-dreapta, deplasare


dreapta-stânga, încărcare paralelă, citirea serie sau paralelă a
informaţiei. Registrul universal poate fi prevăzut şi cu o intrare asincronă
pentru ştergerea informaţiei (Clear). Schema se realizează cu celule de
tipul D sincrone active pe front şi cu ajutorul unor multiplexoare
_ 0 MUX
T
_S 1 4:1
2 Y
TP 3
A 1 A0

A1
A0

A1 A0 A1 A 0 A1 A 0
IS(ST-DR) 0 Y D___ Q 1 0 Y D___ Q 2 0 Y D___ Q 3
1 1 1
2 MUX CK 2 MUX CK 2 MUX CK
3 4:1 _ 3 4:1 _ 3 4:1 _
R R R

CLEAR
IS(DR-ST)
AI BI CI

Intrari paralele

Numărătoare şi registre 20
Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale


Prof. Dr. Ing. Sever Paşca
Catedra de Electronică Aplicată şi Ingineria Informaţiei
Facultatea Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Universitatea POLITEHNICA din Bucureşti

Circuite logice combinaţionale 2

Conţinutul cursului

 Generalităţi şi definiţii

 Funcţii logice elementare

 Analiza circuitelor logice combinaţionale

 Sinteza circuitelor logice combinaţionale

 Exemple de circuite logice combinaţionale

 Circuite aritmetice

Circuite logice combinaţionale 1


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite aritmetice

Circuite logice combinaţionale 4


Circuite aritmetice

Reprezentarea numerelor
 În circuitele digitale, numerele reale sunt aproximate prin numere
raţio-nale, cu un număr finit de cifre.
 Reprezentarea unui număr raţional pozitiv scris într-o bază de numeraţie
oarecare B este
N  bn 1 bn 2 ... b1 b0 , b1 b 2 ... b m
    
partea int reagă partea fractională
 Valoarea în baza zece a numărului este dată de expresia
n 1
N  bi B i
i m

Circuite logice combinaţionale 2


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 5


Circuite aritmetice

Reprezentarea numerelor (cont.)


 Baza de numeraţie utilizată în circuitele digitale este B = 2, când bi  0, 1
n 1
N  bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m   bi 2i
i  m
 Relaţia anterioară reprezintă un număr binar fără semn. Pentru
reprezentarea numerelor cu semn, pentru a indica semnul operandului
se utilizează bitul cel mai reprezentativ bn–1, numit bit de semn
N  bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m
   
bit de mărime
semn

 Prin convenţie s-a ales bn–1 = 0 pentru numere pozitive şi bn–1 = 1 pentru
numere negative.

Circuite logice combinaţionale 6


Circuite aritmetice

Reprezentarea numerelor (cont.)


 În funcţie de modul în care biţii bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m
reprezintă valoarea numerelor negative, avem trei moduri de
reprezentare a numerelor cu semn:
 Reprezentarea prin semn şi valoare absolută
 Cifrele binare bn 2 ... b m reprezintă valoarea absolută a numărului N.
 Valoarea zecimală a numărului reprezentat va fi:
n2
N   1bn 1   bi 2i
i m
 Exemplu:
(+2) = 00010 (+5) = 00101
(–2) = 10010 (+5) = 10101
 Această reprezentarea este avantajoasă în operaţiile de înmulţire şi
împărţire, dar necesită algoritmi speciali la adunare şi scădere.

Circuite logice combinaţionale 3


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 7


Circuite aritmetice

Reprezentarea numerelor (cont.)


 În cazul particular al numerelor întregi (m = 0), gama numerelor
reprezentabile este cuprinsă în intervalul:

  2  1  N   2  1
n 1 n 1

   

 Dacă împărţim relaţia anterioară cu 2n–1, obţinem în urma acestei


operaţii de scalare o reprezentare numită în virgulă fixă

 1  2   N'  N  2 1 n  1  2 1 n 
1 n
  
   

în care virgula este poziţionată imediat după bitul de semn.

Circuite logice combinaţionale 8


Circuite aritmetice

Reprezentarea numerelor (cont.)


 Reprezentarea prin complement faţă de unu (C1)
 Reprezentarea în C1 au unui număr negativ se obţine din reprezentarea
numărului pozitiv prin complementarea tuturor biţilor acestei reprezentări
 N C1  0 bn 2 ... b1 b0 , b1 ... bm
 N C1  1 bn  2 ... b1 b0 , b1 ... b m
 Se poate demonstra că
 N C1  2n  1  N
 Exemplu: (+2)C1 = 00010 (+5)C1 = 00101
(–2)C1 = 11101 (+5)C1 = 11010
 Domeniul numerelor reprezentabile (pentru numere întregi) este:

  2  1  N   2  1
n 1 n 1

   
 Avantaj: uşurinţa cu care se obţin numerele negative
 Dezavantaj: dualitatea reprezentării numărului zero (00000 dacă îl
considerăm număr pozitiv şi 11111 dacă îl considerăm număr negativ)

Circuite logice combinaţionale 4


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 9


Circuite aritmetice

Reprezentarea numerelor (cont.)


 Reprezentarea în complement faţă de doi (C2)
 N C2  0 bn  2 ... b1 b0 , b1 ... b m
 N C2
 2n  N
 Obţinerea practică a reprezentării numerelor negative:
 complementăm numărul faţă de unu;

 adăugăm un unu pe poziţia bitului cel mai puţin semnificativ;

 ignorăm eventualul transport care poate apare pe poziţia bitului


de semn.
 Exemplu:

Circuite logice combinaţionale 10


Circuite aritmetice

Reprezentarea numerelor (cont.)


 Domeniul numerelor întregi reprezentabile în C2 este

  2   N   2  1
n 1 n 1

   
 Dezavantajul legat de reprezentarea mai greoaie a numerelor
negative în C2 este compensat de faptul că o operaţie de scădere a
două numere binare se transformă într-o operaţie de adunare în C2.

Circuite logice combinaţionale 5


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 11


Circuite aritmetice

Adunarea şi scăderea
 Cazul numerelor de un bit

 Cazul numerelor de mai mulţi biţi


 Algoritmii de adunare şi scădere depind de reprezentarea folosită.
 Scăderea a două numere se poate executa prin adunarea primului
cu complementul faţă de doi al celui de al doilea. Rezultatul pozitiv
sau negativ va fi corect reprezentat în C2 în lipsa depăşirilor.
 Operaţia de adunare propriu-zisă se efectuează bit cu bit, începând
cu bitul cel mai puţin semnificativ şi terminând cu bitul de semn.

Circuite logice combinaţionale 12


Circuite aritmetice

Adunarea şi scăderea (cont.)


 Pentru fiecare poziţie, la cifrele binare curente xi şi yi se adaugă
transportul de intrare ci, rezultând, în urma adunării, suma si şi
transportul de ieşire ci+1.

Circuite logice combinaţionale 6


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 13


Circuite aritmetice

Adunarea şi scăderea (cont.)


 Exemple: folosind reprezentările în (C2) ale numerelor 2, 3 şi 5
prezentate anterior, vom exemplifica operaţiile de adunare şi
scăderea în (C2):

Circuite logice combinaţionale 14


Circuite aritmetice

Adunarea şi scăderea (cont.)


 Depăşirea
 Depăşirea (overflow) apare atunci când rezultatul nu se mai
încadrează în domeniul de reprezentabilitate ale operanzilor.
 Situaţia de depăşire se detectează prin teste efectuate asupra
operanzilor şi a rezultatului.
 Fie doi operanzi întregi X şi Y şi rezultatul adunării lor algebrice S
X  xn 1 xn  2 ... x0
Y  yn 1 yn  2 ... y0
S  sn 1 sn  2 ... s0
 Situaţia de depăşire apare doar atunci când cei doi operanzi sunt de
acelaşi semn şi se manifestă prin alterarea bitului de semn al
rezultatului.
 Pentru a găsi o modalitate de a indica situaţia de depăşire, vom
urmări modul de formare a bitului de semn al rezultatului (sn-1).

Circuite logice combinaţionale 7


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 15


Circuite aritmetice

Adunarea şi scăderea (cont.)

 Considerăm în tabelul alăturat


xi = xn–1 şi yi = yn–1 biţii de semn ai celor doi operanzi,
ci = cn–1 transportul în poziţia bitului de semn,
si = sn–1 semnul rezultatului, iar
ci+1 = cn transportul din poziţia bitului de semn (carry).
 Numai operanzii de acelaşi semn pot produce depăşire:
 Liniile 0 şi 1 corespund adunării a 2 operanzi pozitivi,

 Liniile 6 şi 7 corespund adunării a doi operanzi negativi.

 Liniile 1 şi 6 au semnul rezultatului opus semnului operanzilor, ceea


ce este incorect (depăşire).
 Numai în situaţiile de depăşire, transporturilor de intrare ci = cn-1
respectiv de ieşire ci+1 = cn în şi din poziţia bitului de semn nu sunt
egali.

Circuite logice combinaţionale 16


Circuite aritmetice

Adunarea şi scăderea (cont.)

 Funcţia logică care semnalizează anticoincidenţă a doi biţi este funcţia


suma modulo doi, iar circuitul electronic este un SAU-EXCLUSIV:
OVF  cn 1  cn

 Bitul de transport de ieşire cn = C se numeşte transport sau în engleză


Carry.
 Interpretarea valorii sale depinde de operaţia efectuată. De exemplu, în
cazul adunării unor numere întregi şi pozitive de 8 biţi, C = 1 indică
depăşirea valorii de 255.

Circuite logice combinaţionale 8


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 17


Circuite aritmetice

Circuite sumatoare
 Aşa cum s-a arătat anterior, în C2 operaţiile de adunare şi de scădere
se tratează similar şi, în consecinţă, pentru realizarea practică a acestor
operaţii, vom avea nevoie doar de circuite de sumare şi complementare.
 Se poate arăta că operaţiile de înmulţire şi împărţire în binar se reduc la
adunări şi deplasări succesive.
 În concluzie, rezultă că cele patru operaţii matematice de bază, folosind
reprezentarea în C2, se reduc la complementări, adunări şi deplasări,
ceea ce simplifică foarte mult realizarea unor automate aritmetice
programabile.
 O operaţie matematică, oricât de complicată ar fi ea, se va realiza
printr-o înşiruire de asemenea operaţii elementare.
 Pentru că o operaţie matematică, care poate conţine un număr foarte
mare de asemenea operaţii elementare, să se efectueze într-un timp
scurt, este necesar ca aceste operaţii elementare să se efectueze
într-un timp extrem de scurt.

Circuite logice combinaţionale 18


Circuite aritmetice

Circuite sumatoare (cont.)


 Schema de principiu a unui sumator
 Funcţiile de ieşire ale sumatorului de un bit se pot scrie într-o formă
convenabilă care permite realizarea schemei sumatorului de mai
mulţi biţi, prin conectarea în cascadă a unor celule elementare
(sumator elementar) identice.

y n -1 x n -1 yi xi y0 x0

SE SE SE
cn c n -1 ci c i -1 c1 c0

s n -1 si s0

Circuite logice combinaţionale 9


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 19


Circuite aritmetice

Circuite sumatoare (cont.)


 Sumatorul elementar

ci  xi  yi  xi  ci 1  yi  ci 1

si  xi  yi  ci 1  xi  yi  ci 1 
 xi  yi  ci 1  xi  yi  ci 1 
 xi  yi  ci 1

Circuite logice combinaţionale 20


Circuite aritmetice
xi yi
Circuite sumatoare (cont.)
 Sumatorul elementar
 Expresia care reprezintă valoarea
transportului, poate fi scrisă şi sub
gi pi
forma
ci  xi  yi   xi  yi   ci 1 
g i  pi  ci 1
 Interpretarea acestei relaţii este
următoarea: la ieşirea unui sumator
ci c i-1
elementar va apare un transport ci
dacă el a fost generat local
( gi  xi  yi  1 ) sau dacă transportul
de intrare ci–1 s-a propagat prin
celulă ( pi  xi  yi  1 ).

si

Circuite logice combinaţionale 10


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 21


Circuite aritmetice

Circuite sumatoare (cont.)


 Sumator de patru biţi realizat cu sumatoare elementare
 Viteza de calcul a schemei este limitată de timpul de propagare a
transportului.
x4 y4 x3 y3 x2 y2 x1 y1

g4 p4 g3 p3 g2 p2 g1 p1

c4 c0
c3 c2 c1

s4 s3 s2 s1

Circuite logice combinaţionale 22


Circuite aritmetice

Circuite sumatoare (cont.)


 Sumator de patru biţi cu calculul anticipat al transportului
 O soluţie de mărire a vitezei de calcul se bazează pe un calcul
anticipat al transportului (look ahead carry), direct din biţii celor doi
operanzi, x4 y4 x3 y3 x2 y2 x1 y1

într-un timp
mult mai scurt
decât timpul g4 p4 g3 p3 g2 p2 g1 p1

necesar
propagării în
cascadă a
transportului
prin celulele
sumatorului. c4
c3 c2 c1
c0

s4 s3 s2 s1

Circuite logice combinaţionale 11


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 23


Circuite aritmetice

Unităţi Aritmetice Logice


 Odată cu creşterea densităţii de integrare a circuitelor digitale, funcţiile
aritmetice şi logice se execută în circuite integrate complexe,
programabile, numite unităţi aritmetico-logice (Arithmetic and Logic Unit
– ALU). Aceste circuite se pot folosi ca atare, sau se vor regăsi ca
elemente componente (de execuţie) ale unor structuri programabile şi
mai complexe (procesoare).
 Structura internă a unui ALU cuprinde în esenţă următoarele tipuri de
circuite:
 un circuit logic de intrare, comandat, care efectuează operaţii logice
elementare asupra operanzilor;
 un sumator binar paralel cu calculul anticipat al transportului;
 un generator de transport anticipat;
 circuite de comparare.

Circuite logice combinaţionale 24


Circuite aritmetice

Unităţi Aritmetice Logice (cont.) 4


A=B
A 0÷3 X
 Un ALU are următoarele intrări şi ieşiri tipice: Y
4 4
 intrări operanzi (A0 … A3, B0 … B3); B 0÷3 F 0÷3

 ieşiri funcţie (F0 … F3); _ _


cn c n+4
 intrare de transport (cn); M S 0÷3
 ieşire de transport (Cn+4);
 ieşiri pentru calculul anticipat al transportului (X, Y);
 ieşiri indicatoare de egalitate între operanzi (A = B);
 intrări de comandă:
 comanda modului (M cu M = 0 pentru aritmetic, M = 1 pentru
logic);
 selecţia funcţiei (S0 … S3).

Circuite logice combinaţionale 12


Electronică analogică şi digitală în biomedicină Prof. Dr. Ing. Paşca Sever

Circuite logice combinaţionale 25


Circuite aritmetice

Unităţi Aritmetice Logice (cont.)


 Exemplu:
SN74181 – ALU de 4 biţi
 16 funcţii aritmetice şi
16 logice prezentate
alăturat (cu date de
intrare de tipul AH şi
cn  1 ).
 ALU pot fi conectate în
cascadă pentru a
prelucra operatori cu
lungime mai mare de 4
biţi. Pentru viteză mare,
trebuie folosite şi
circuite de calcul
anticipat al
transportului între
celule (SN74182).

Circuite logice combinaţionale 13


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Cap.2. Circuite
microprogramabile –
microcalculatoare şi
microprocesoare

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever PAŞCA


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins
1. Noţiuni generale
2. Schema bloc a unui microcalculator
3. Clasificarea microcalculatoarelor
4. Terminologia utilizată
5. Microprocesorul
6. Structura de principiu a unui microprocesor
7. Funcţionarea unui microprocesor elementar
8. Aspecte privind istoria dezvoltării microprocesoarelor
9. Scurtă istorie a PC-urilor

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 2

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 1


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

Obiective

 Prezentarea modelului simplificat al unui calculator


 Înţelegerea principiului de lucru al unui circuit
programabil
 Prezentarea componentelor de bază ale unui
microprocesor
 Prezentarea structurii unui microprocesor elementar
 Urmărirea fazelor de execuţie a unei instrucţiuni
 Prezentarea structurii de principiu a unui microcontroler

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 3

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni generale [1/3]


 Circuitele programabile se caracterizează prin faptul că
rezolvarea unei probleme practice presupune derularea
unui program scris intr-un anumit limbaj de programare.

 Exponentul tipic de circuit programabil este


microprocesorul.
 Pentru a putea fi folosit, microprocesorul trebuie să facă
parte dintr-un sistem care să cuprindă printre altele:
memoria program şi de date, circuite de interfaţare cu
exteriorul etc.
 Sistemul mai sus menţionat reprezintă de fapt un
calculator numeric.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 4

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 2


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni generale [2/3]


 Se poate considera că un calculator numeric este format din
următoarele trei componente de bază: Hardware (HW), Software
(SW) şi Firmware (FW).
 Prin Hardware se înţelege ansamblul tuturor componentelor mecanice
şi electrice din care este construit calculatorul: componente electronice
pasive şi active, circuite integrate, blocul de alimentare, cablaje
imprimate, cabluri de legătură, carcasa metalică, comutatoare etc.
 Partea de Software cuprinde: sistemul de operare, programele
aplicative, programele ajutătoare pentru crearea de noi programe,
mediile de programare etc.
 Firmware ocupă un loc între SW şi HW şi constă în esenţă:
 în cazul unui microprocesor, din setul de instrucţiuni precum şi
microprogramele asociate acestora,
 iar în cazul unui PC, şi din toate programele scrise de către fabricant, care
asigură funcţionarea plăcii de bază şi a perifericelor (livrate odată cu
perifericele de către fabricant).

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 5

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni generale [3/3]

 Din punct de vedere HW, un microcalculator este în


esenţă un sistem electronic digital sincron în care sunt
introduse informaţii binare spre a fi stocate sau
prelucrate.

 Prelucrarea datelor se face pe baza unui program


memorat în memoria internă sub forma unor informaţii
binare codificate.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 6

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 3


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Schema bloc al unui microcalculator [1/5]

Unitate de
AB
executie

Comenzi Semnal DB
de stare

Unitate de
comanda CB

CPU

Blocul de Circuite pt.


memorie operatii de
intrare-iesire

Sistemul de operare Echipamente


si periferice
programe aplicative

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 7

Circuite programabile cu aplicaţii biomedicale

2. Schema bloc al unui microcalculator [2/5]


Unitatea centrală de prelucrare
(Central Processing Unit – CPU)

 CPU conţine:
 microprocesorul,
 coprocesorul aritmetic,
 unitatea de management a memorie,
 memoriile cache
 controlerul de întreruperi
 etc.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 8

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 4


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Schema bloc al unui microcalculator [3/5]


Blocul de memorie

 Este format din memoria operativă a calculatorului


pentru date şi programe (în esenţă memoria RAM).

 Microcalculatoarele mai pot fi prevăzute şi cu memorii


auxiliare folosite pentru stocarea nevolatilă a unor mari
volume de date:
 memorii Flash (memory stick)
 Unităţi optice (CD, DVD, Bluray)
 Hard discul
 etc.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 9

Circuite programabile cu aplicaţii biomedicale

2. Schema bloc al unui microcalculator [4/5]


Blocul circuitelor pentru operaţii de intrare-ieşire
 Acest bloc conţine o serie de circuite integrate digitale
complexe specializate pe domenii, dar multifuncţionale
în cadrul domeniului lor de specializare. Ele asigură
interfaţa microcalculatorului cu exteriorul.
 Din grupul acestor circuite putem aminti: porturile
paralele, portul serial pentru comunicaţii, circuitele
Timer, convertoare analog digitale etc.
 Prin intermediul acestor circuite, se cuplează
echipamentele periferice informaţionale externe cum ar
fi: tastatura, ecranul, imprimanta, mouse-ul etc., sau
traductoare diverse şi elemente de execuţie în cazul
unor microcalculatoare dedicate aplicaţiilor industriale de
comandă şi control.
Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 10

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 5


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Schema bloc al unui microcalculator [5/5]


Magistralele de sistem

 Componentele unui microcalculator trebuie


interconectate între ele pentru a putea fi selectate şi a
avea asigurată posibilitatea realizării unor schimburi de
date, comenzi şi semnale de stare.

 Obiectivele de mai sus sunt asigurate de un sistem de


trei magistrale externe, şi anume:
 o magistrală unidirecţională de adrese (Address Bus – AB),
 o magistrală bidirecţională de date (Data Bus – DB),
 o magistrală de control (Control Bus – CB).

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 11

Circuite programabile cu aplicaţii biomedicale

3. Clasificarea microcalculatoarelor
Clasificarea microcalculatoarelor
 După lăţimea magistralei de date:
 pot fi de 8, 16, 32 sau 64 de biţi
 După gradul de specializare funcţională avem:
 microcalculatoare universale
 microcalculatoare specializate pe domenii
 După numărul procesoarelor din sistem avem:
 microcalculatoare mono-procesor
 microcalculatoare multi-procesor
 După gradul de integrare avem:
 microcalculatoare cu microprocesor integrat şi componente
asociate externe
 microcalculatoare monolitice

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 12

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 6


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Terminologia utilizată
 Super computer – calculator de înaltă performanţă
special conceput pentru rezolvarea unor probleme de
mare complexitate din domeniul cercetării ştiinţifice
 Mainframe computer – calculator universal de înaltă
performanţă (exemplu tipic de utilizare: server de reţea
la companii mari)
 Microcomputer – calculator universal folosit la
realizarea de calculatoare personale (Personal
Computer – PC) şi staţii de lucru
 Microcontroler – calculator universal realizat pe un
singur chip proiectat special pentru aplicaţii de comandă
şi control

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 13

Circuite programabile cu aplicaţii biomedicale

5. Microprocesorul (μP)
 Componenta de bază a oricărui microcalculator îl
reprezintă microprocesorul;
 În esenţă un microprocesor este format dintr-o unitate de
execuţie şi o unitate de comandă;
 Unitatea de execuţie, în varianta ei de bază, este
formată dintr-un circuit programabil ALU (Arithmetic and
Logic Unit) şi un set de registre interne;
 Pentru a putea funcţiona, microprocesorul are nevoie a fi
conectat la un circuit de memorie unde sa fie stocate
datele şi instrucţiunile programului;
 Structura şi funcţionarea de principiu a microprocesorului
este ilustrată în diapozitivele următoare

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 14

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 7


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Structura de principiu a unui μP [1/5]

A B
tR0 s
R0 ALU

tR1 tR0
s ALU R1
ALU tR1 Unitatea de
--- Comanda

---
tRn-1 tRn-1
F

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 15

Circuite programabile cu aplicaţii biomedicale

6. Structura de principiu a unui μP [2/5]


Funcţii realizate de unitatea de execuţie

SALU Funcţia realizată Descriere


00 F=A+B Adunare
01 F=A Transferă la ieşire operandul A
10 F=B Transferă la ieşire operandul B
11 F=A+1 Incrementare

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 16

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 8


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Structura de principiu a unui μP [3/5]


Principiul de realizare a unui registru intern de memorie

d[0] FF r[0]
>

d[1] FF r[1]
> 16 16
d[15-0] R[15-0]
---

R[15-0]
>
d[15] FF r[15]
>

Tact Tact

Realizare cu bistabile Schema bloc

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 17

Circuite programabile cu aplicaţii biomedicale

6. Structura de principiu a unui μP [4/5]


Registrul de memorie comandat

16

d r MUX

d[15-0] 1 > r
b 16 [15-0]

b
Tact

Schema bloc Mod de realizare

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 18

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 9


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Structura de principiu a unui μP [5/5]


Schema bloc a unui circuit de memorie

do
mo
Locaţie adresată
Memoria de cuvântul de cod
de adresă ai

...
Decodor
ai
ar

...

din
mi

R/ W

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 19

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [1/24]


Procesorul de tip Acumulator
 Unul dintre registrele interne, numit acumulator, conţine
unul dintre operanzi iar după efectuarea operaţiei
stochează rezultatul
 Operaţii tipice într-un limbaj formal
 LAC m [Load Accumulator]
 (încarcă acumulatorul cu operandul aflat la adresa m)
 SAC m [Store Accumulator]
 (stochează conţinutul acumulatorului la adresa m)
 ADD m [Add Accumulator]
 (adună la conţinutul acumulatorului operandul aflat la adresa m din
memorie)

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 20

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 10


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [2/24]


Exemplu de operaţie aritmetică
 Fie operaţia care urmează a fi executată
c := a + b
 Programul aferent într-un limbaj formal ar fi următorul:
LAC a
(ac := a → atribuie acumulatorului variabila a)
ADD b
(ac := ac + b → atribuie acumulatorului suma dintre
conţinutul anterior al acestuia şi operandul b)
SAC c
(c := ac → atribuie variabilei c conţinutul curent al acumulatorului)

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 21

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [3/24]


Forma codificată a instrucţiunilor

LAC a 10 35
ADD b 7 34
SAC c 5 36
Codul operaţiei Adresa de memorie

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 22

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 11


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [4/24]


Exemplu de program
 Programul sursă scris de programator va trebui să
conţină în mod explicit (sau simbolic) adresele
operanzilor.
 În consecinţă, liniile program scrise în asamblare pentru
programul de mai sus vor arăta astfel:
Load a, mem [35]
Add a, mem [34]
Store mem [36], a
 Programul de asamblare va genera din acest program
sursă programul obiect (direct executabil) şi va rezerva
locaţiile de memorie precizate în program.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 23

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [5/24]


Exemplu numeric

 Se presupune că, înaintea executării programului, s-a


înscris în locaţia de memorie de la adresa 35, valoarea
25 (s-a ales a = 25), iar în locaţia de memorie 34,
valoarea 400 (s-a ales b = 400).

 După rularea programului, se va calcula suma


c = 25 + 400 = 425 care se va înscrie la adresa 36.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 24

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 12


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [6/24]


Conţinutul memoriei program şi a memoriei de date [1/2]
Adrese Memoria externă

34 400 b
a Adrese atribuite de
35 25 asamblor
36 56 c

81 10 35 LAC a
Memoria program cu
82 7 34 ADD b instructiuni executabile
83 5 36 SAC c

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 25

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [7/24]


Conţinutul memoriei program şi a memoriei de date [2/2]
 Această organizare a memoriei va impune şi o anume
structură HW a procesorului, şi anume, existenţa în setul
de registre ale acestuia, pe lângă acumulator, şi a altor
două registre cu funcţii speciale, şi anume:
 contorul de instrucţiuni (PC – Program Counter) care va
conţine în permanenţă adresa instrucţiunii ce urmează a fi
executată
 registrul de instrucţiuni (IR – Instruction Register) în care se
va încărca forma codificată a instrucţiunii citită din memorie.
Forma codificată a instrucţiunii va fi folosită de microprocesor
pentru a forma adresa operanzilor şi a executa operaţia indicată
de codul operaţiei prezent în instrucţiune.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 26

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 13


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [8/24]


Ansamblul procesor-memorie

Microprocesor
34 400 b
A CC 35 25 a
--- 36 56 c

PC 81 10 35 LAC a
81 82 7 34 ADD b
83 5 36 SAC c

IR
---

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 27

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [9/24]


Execuţia instrucţiunii LAC a

LAC a

34 400 b
A CC
35 25 a
25
36 56 c

PC
81 10 35 LAC a
82
82 7 34 ADD b
83 5 36 SAC c

IR
10 35

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 28

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 14


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [10/24]


Execuţia instrucţiunii ADD b

LAC a
ADD b

34 400 b
A CC
35 25 a
425
56 c
36

PC
81 10 35 LAC a
83
82 7 34 ADD b
83 5 36 SAC c

IR
7 34

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 29

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [11/24]


Execuţia instrucţiunii SAC c
LAC a
ADD b
SAC c

34 400 b
A CC
35 25 a
425
425 c
36

PC
81 10 35 LAC a
84
82 7 34 ADD b
83 5 36 SAC c

IR
5 36

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 30

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 15


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [12/24]


Fazele de execuţie ale unei instrucţiuni

 extragere instrucţiune (Instruction Fetch = IF)


 decodare instrucţiune (Instruction Decoding = ID)
 extragere operand (Operand Fetch = OF)
 execuţie instrucţiune (Instruction Execution = IE)

Vom urmări în continuare aceste faze de execuţie pe


exemplul instrucţiunii ADD b codificată 7 34

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 31

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [13/24]


Structura microprocesorului elementar

tpc tac
mo

pc Acc

tmo Memoria
1 0
s 34 400
MUX
Decodor
ar

tar 82 7 34
sALU ALU
2

tm
mi

tmi
ir

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 32

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 16


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [14/24]


Prima parte a fazei extragere instrucţiune – IF

tpc tac

mo
82 25

tmo Memoria
1 0
s 34 400
MUX

Decodor
82
2 tar 82
7 34
sALU ALU

tm

mi
tmi

ir

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 33

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [15/24]


Partea a doua a fazei extragere instrucţiune – IF

tpc tac
mo

82 25

tmo Memoria
1 0
s 34 400
MUX
Decodor
82

2 tar 82
7 34
sALU ALU

tm
34

tmi
7

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 34

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 17


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [16/24]


Faza decodare instrucţiune – ID

tpc tac

mo
82 25

tmo Memoria
1 0
s 34 400
MUX

Decodor
82
2 tar 82
7 34
sALU ALU

tm

34
tmi
7

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 35

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [17/24]


Prima parte a fazei extragere operand – OF

tpc tac
mo

82 25

tmo Memoria
1 0
s 34 400
MUX
Decodor
34

2 tar 82
7 34
sALU ALU

tm
34

tmi
7

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 36

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 18


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [18/24]


Partea a doua a fazei extragere operand – OF

tpc tac

mo
83 25

tmo Memoria
1 0
s 34 400
MUX

Decodor
34
2 tar 82
7 34
sALU ALU
+1

tm

400
tmi
7

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 37

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [19/24]


Faza execuţia instrucţiunii – IE

tpc tac
mo

83 425

tmo Memoria
1 0
s 34 400
MUX
Decodor
34

2 tar 82 7 34
sALU ALU
+

tm
400

tmi
7

tir

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 38

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 19


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [20/24]


Comenzile necesare incrementării contorului de instrucţiuni

tpc =1 tac=0

mo
83 425

tmo=0 Memoria
1 0
s=0 34 400
MUX

Decodor
34
2 tar =0 82 7 34
sALU=11 ALU

tm=0

400
tmi=1
7

tir=0

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 39

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [21/24]


Secvenţa de comenzi necesară executării instrucţiunii
ADD b

s sALU tac tpc tir tar tmi tmo tm Acţiuni Faza

0 01 0 0 0 1 0 0 0 Ar := pc IF
0 00 0 0 1 0 1 0 0 mi := mem[ar], ir := mem[ar] IF
0 00 0 0 0 0 0 0 0 Decodare instrucţiune ID
1 01 0 0 0 1 0 0 0 ar := mi OF
0 11 0 1 0 0 1 0 0 mi := mem[ar], pc := pc+1 OF
1 00 1 0 0 0 0 0 0 Ac := ac+mi IE

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 40

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 20


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [22/24]


 Secvenţa de comenzi necesară executării instrucţiunii
ADD b, prezentată în Tabelul anterior, este cunoscută
sub numele de microprogram de comenzi asociat
instrucţiunii.
 Acest microprogram este stocat într-o memorie internă
rapidă şi nevolatilă conţinută în CPU.
 Microprogramele asociate instrucţiunilor asigură
separarea acestora de comenzile propriu-zise la nivelul
componentelor electronice, ceea ce permite o flexibilitate
mărită în proiectarea şi/sau modificarea acestora.
 Scrierea acestor microinstrucţiuni se numeşte
microprogramare, iar codul rezultat pentru un anumit tip
de microprocesor se numeşte microprogram.
Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 41

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [23/24]


Concluzii [1/2]

 În concluzie, se poate spune că unei instrucţiuni scrise


într-un anume limbaj de programare (ca de exemplu ADD
b în asamblare), îi va corespunde, la nivel de execuţie
HW, un cuvânt de cod binar de o structură şi conţinut
corespunzător instrucţiunii numită forma codificată a
instrucţiunii.

 În exemplul prezentat aceasta este:


ADD b codificată 7 34

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 42

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 21


Prof.Dr.Ing. Sever PAŞCA Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

7. Funcţionarea unui μP elementar [24/24]


Concluzii [2/2]

 Execuţia propriu-zisă a instrucţiunii se face în patru faze


şi, pentru fiecare dintre aceste faze, unitatea de
comandă a microprocesorului va trebui să genereze, la
momentele de timp potrivite, comenzile necesare către
componentele HW ale microprocesorului implicate în
execuţia fazei respective, conform microprogramului
asociat instrucţiunii.

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 43

Circuite programabile cu aplicaţii biomedicale

8. Aspecte privind istoria dezvoltării μP-lor [1/22]


 Dezvoltarea microprocesoarelor şi a microcalculatoarelor
este un proces evolutiv la baza căruia au stat tehnologia
microelectronică şi îmbunătăţirile arhitecturale.
 Tehnologia a evoluat de la tuburi electronice la
transistoare, iar apoi la circuite integrate cu diverse
grade de complexitate (SSI, MSI, LSI, VLSI).
 Îmbunătăţirile arhitecturale au vizat: microprogramarea,
pipelining, RISC (Reduced Instruction Set Computing),
cache, VLIW (Very Long Instruction Word).
 Raportul performanţă – cost a cunoscut o îmbunătăţire
cu cinci ordine de mărime în ultimii 40 de ani!

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 44

Cap.2. Circuite microprogramabile. Microcalculatoare şi microprocesoare 22


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Cap.3. Arhitectura
microprocesoarelor

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever PAŞCA


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins [1/2]
1. Introducere, definiţii, structuri de principiu
2. Arhitectura CISC
1. Analiza unei arhitecturi CISC
2. Date, instrucţiuni, adresarea memoriei
3. Arhitectura RISC
1. Motivaţie, soluţii propuse
2. Sinteza unei arhitecturi RISC
3. Principii de execuţie a instrucţiunilor
4. Arhitectura superscalară

Cap.3. Arhitectura microprocesoarelor 2

Cap.3. Arhitectura microprocesoarelor 1


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

Cuprins [2/2]

5. Procesoare auxiliare
6. Reprezentarea numerelor în virgulă mobilă
1. Standardul IEEE 754
2. Adunarea şi scăderea în virgulă mobilă
3. Înmulţirea în virgulă mobilă
7. Coprocesoare aritmetice
8 Procesoare de semnal
8.

Cap.3. Arhitectura microprocesoarelor 3

Circuite programabile cu aplicaţii biomedicale

Obiective

 Prezentarea structurilor de principiu pentru


microprocesoare
 Analiza structurii HW a microprocesoarelor CISC
 Sinteza structurii HW a unei arhitecturi RISC
 Prezentarea şi înţelegerea principiului superscalar şi a
modului de realizare la nivel HW
 Prezentarea pparticularităţilor
ţ constructive ale
coprocesoarelor aritmetice şi a procesoarelor de semnal
 Înţelegerea modului de operare în virgulă mobilă

Cap.3. Arhitectura microprocesoarelor 4

Cap.3. Arhitectura microprocesoarelor 2


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [1/16]

 Microprocesorul este un circuit digital programabil


capabil să execute un număr finit de operaţii elementare
asupra unuia sau a mai multor operanzi.

Cap.3. Arhitectura microprocesoarelor 5

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [2/16]

 La realizarea practică a unui astfel de circuit trebuiesc


avute în vedere mai multe aspecte cum ar fi:
 Cum se alege setul de operaţii elementare pe care să le execute
procesorul şi cum influenţează această alegere arhitectura
procesorului;
 Cum se poate implementa un anumit set de operaţii elementare
într-o arhitectură de procesor;
 Cum se poate realiza procesorul cu costuri minime, prin
utilizarea eficientă a resurselor hardware;
 Cum influenţează arhitectura aleasă performanţele procesorului
(de exemplu, timpul de calcul).

Cap.3. Arhitectura microprocesoarelor 6

Cap.3. Arhitectura microprocesoarelor 3


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [3/16]

 În cele ce urmează vor fi trecute în revistă principalele


structuri de principiu folosite la realizarea
microprocesoarelor, şi anume:

 procesoarele de tip acumulator

 procesoarele de tip stivă

 procesoarele cu set intern de registre

Cap.3. Arhitectura microprocesoarelor 7

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [4/16]


Procesoare tip acumulator [1/4]

 La un asemenea tip de microprocesor există un registru


numit acumulator care conţine în general unul din
operanzi iar după efectuarea operaţiei rezultatul acesteia
se înscrie tot în acumulator.

 Acest principiu poate fi implementat într-o arhitectură


simplă, ceea ce şi explică faptul că primele procesoare
au fost realizate pe acest principiu.

Cap.3. Arhitectura microprocesoarelor 8

Cap.3. Arhitectura microprocesoarelor 4


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [5/16]


Procesoare tip acumulator [2/4]

 Instrucţiuni tipice pentru acest gen de microprocesor:

LAC m – încarcă acumulatorul cu operandul aflat la


adresa m în memorie
SAC m – stochează conţinutul acumulatorului
la adresa m din memorie
ADD m – adună la conţinutul acumulatorului
operandul aflat la adresa m în memorie şi
formează rezultatul în acumulator

Cap.3. Arhitectura microprocesoarelor 9

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [6/16]


Procesoare tip acumulator [3/4]

 Exemplu de program:

LAC a
c := a + b  ADD b
SAC c

Cap.3. Arhitectura microprocesoarelor 10

Cap.3. Arhitectura microprocesoarelor 5


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [7/16]


Procesoare tip acumulator [4/4]
 Schema bloc

Acumulator
Adrese

---
Comenzi

Microprocesor Date Memoria externa

Cap.3. Arhitectura microprocesoarelor 11

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [8/16]


Procesoare de tip stivă [1/4]

 Acest tip de microprocesor conlucrează cu o memorie de


ti stivă
tip ti ă îîn vârful
â f l căreia
ă i stochează
t h ă operanziiii respectiv
ti
rezultatul operaţiei efectuate.

 Stiva este de fapt o memorie de tip LIFO


(Last In First Out).

 Locaţiile de memorie din vârful stivei (ultimele două) sunt


implementate cu registre, restul stivei fiind realizată pe o
parte a memorie externe.

Cap.3. Arhitectura microprocesoarelor 12

Cap.3. Arhitectura microprocesoarelor 6


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [9/16]


Procesoare de tip stivă [2/4]
 Structura de principiu

Indicator de stiva Adrese

---
Comenzi

Stiva Microprocesor Date Memoria externa

Cap.3. Arhitectura microprocesoarelor 13

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [10/16]


Procesoare de tip stivă [3/4]

 Instrucţiuni tipice ale unui astfel de procesor sunt:

PUSH m – depune operandul citit de la adresa m din


memorie în vârful stivei
ADD – adună cei doi operanzi aflaţi în două locaţii
consecutive din vârful stivei şi înscrie suma
rezultată în vârful stivei
STORE m – stochează operandul aflat în vârful stivei la
adresa m din memoria externă

Cap.3. Arhitectura microprocesoarelor 14

Cap.3. Arhitectura microprocesoarelor 7


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [11/16]


Procesoare de tip stivă [4/4]

 Exemplu de program:

PUSH a
c := a + b  PUSH b
ADD
STORE c

Cap.3. Arhitectura microprocesoarelor 15

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [12/16]


Procesoare cu set intern de registre [1/5]

 O astfel de arhitectură se caracterizează prin existenţa


unui set intern de registre universale.

 Din această categorie de procesoare, fac parte


următoarele două tipuri de arhitecturi:
 Arhitectura CISC (Complex Instruction Set Computer)

 Arhitectura RISC (Reduced Instruction Set Computer)

Cap.3. Arhitectura microprocesoarelor 16

Cap.3. Arhitectura microprocesoarelor 8


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [13/16]


Procesoare cu set intern de registre [2/5]
 Instrucţiuni tipice ale unui astfel de procesor sunt:
 cu adresarea a trei elemente
OP Dest, sursă 1, sursă 2
însemnând
Dest := Sursa1 OP Sursa2
ca de exemplu
ADD R3, R2, R1  R3 := R2 + R1
 cu adresarea a două elemente
OP Dest, Sursă
însemnând
Dest := Dest OP Sursă
ca de exemplu
ADD R2, R1  R2 := R2 + R1
Cap.3. Arhitectura microprocesoarelor 17

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [14/16]


Procesoare cu set intern de registre [3/5]

 Structura de principiu

Set intern
-- -

Adrese
de registre

Comenzi

Microprocesor Date Memoria externa

Cap.3. Arhitectura microprocesoarelor 18

Cap.3. Arhitectura microprocesoarelor 9


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [15/16]


Procesoare cu set intern de registre [4/5]
 Arhitectura CISC (Complex Instruction Set Computer)
este caracterizată prin:
 număr mare de instrucţiuni de lungimi diferite;
 multe şi, în general, complicate moduri de adresare a memoriei;
 operanzii pot fi luaţi din registrele interne sau din memorie;
 limbajele de nivel înalt sunt susţinute de instrucţiuni complexe.

 Exemplu de program:
MOV R1, a
c := a + b  ADD R1, b
MOV c, R1
Cap.3. Arhitectura microprocesoarelor 19

Circuite programabile cu aplicaţii biomedicale

1. Introducere,definiţii, structuri de principiu [16/16]


Procesoare cu set intern de registre [5/5]
 Arhitectură RISC (Reduced Instruction Set Computer),
sau procesoare de tip LOAD/STORE
LOAD/STORE, caracterizate prin:
 un număr redus de instrucţiuni simple şi de aceeaşi lungime;
 operanzii sunt luaţi exclusiv din registrele interne ale
procesorului.

 Exemplu de program:
LOAD R1
R1, a
c := a + b  LOAD R2, b
ADD R3, R2, R1
STORE c, R3

Cap.3. Arhitectura microprocesoarelor 20

Cap.3. Arhitectura microprocesoarelor 10


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Arhitectura CISC
 Caracteristicile principale ale arhitecturii CISC enunţate
anterior au condus la realizarea unei structuri HW având
următoarele componente principale:

 setul intern de registre,


 unitatea de execuţie,
 unitatea de comandă,
 automatul de adresare,
 sistemul magistralelor interne şi
 interfaţa cu magistralele externe,

conform schemei bloc prezentată pe pagina următoare.

Cap.3. Arhitectura microprocesoarelor 21

Circuite programabile cu aplicaţii biomedicale

2. Arhitectura CISC
Cuart Tact de Reset

Schema bloc
sistem
extern

generală a R0
Generator
de tact Unitate de
Semnale
de stare

procesorului CISC
comanda a
microprogramelor Comenzi

Rn-1 Decodor

S e t d e r egistr e
Registru de comanda Registru de instructiuni

Registru de stare

Unitate de comanda

ALU

Automat
T.R T.ACC de
adresare
ACC

Unitate de execu ţie

Interfata Registru intermediar


IDB

ICB

cu
magistralele
PC
externe
+1

Registru de date Registru de adresa

Cap.3. Arhitectura microprocesoarelor 22


DB CB AB

Cap.3. Arhitectura microprocesoarelor 11


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [1/26]


Setul intern de registre [1/5]
 Registrele interne reprezintă unităţi de memorare cu un
timp de acces extrem de mic din următoarele motive:

 sunt pe chip,
 sunt selectate în mod direct şi
 permit scrierea într-un registru concomitent cu citirea din unul
sau două alte registre.

Cap.3. Arhitectura microprocesoarelor 23

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [2/26]


Setul intern de registre [2/5]
 Registrele interne ale procesorului pot fi clasificate în
următoarele tipuri:
 Registre de date
La microprocesoarele de 16/32 biţi toate registrele de date pot fi
utilizate în mod identic.
 Registre de adresare
Aceste registre vor conţine adresa sau o parte a adresei unui
operand aflat în memorie. La rândul lor acestea se împart în:
 Registre de bază (conţin adresa de început a unei zone de
memorie, tabel, segment, pagină etc.) şi
 Registre index (indică deplasamentul sau numărul de ordine al
elementului raportată la adresa de început a tabelului).

Cap.3. Arhitectura microprocesoarelor 24

Cap.3. Arhitectura microprocesoarelor 12


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [3/26]


Setul intern de registre [3/5]
Mecanismul adresării indexate
Registru index

Offset

+ Operand accesat Segment de


memorie
Offset

Baza
Adresa bazei segmentului
Registru baza

Cap.3. Arhitectura microprocesoarelor 25

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [4/26]


Setul intern de registre [4/5]
 Registre speciale
Orice arhitectură de microprocesor
p va conţine
ţ şi
ş un număr de
registre cu funcţii speciale. Dintre acestea se amintesc doar
câteva dintre cele mai frecvent întâlnite:
 registrele temporare (Temp.Reg – T.R – şi Temp.Acc – T.A) din
unitatea de execuţie;
 registre de stare (Flag Register) pentru stocarea unor informaţii cu
privire la rezultatul operaţiei efectuate;
 contorul de instrucţiuni (Program Counter – PC) este un registru
care păstrează
ă t ă îîn permanenţă ţă adresa
d iinstrucţiunii
t ţi ii care urmează
ă a fi
executată;
 indicatorul de stivă (Stack Pointer – SP) este un registru care
conţine în permanenţă adresa vârfului stivei.

Cap.3. Arhitectura microprocesoarelor 26

Cap.3. Arhitectura microprocesoarelor 13


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [5/26]


Setul intern de registre [5/5]
Modul de lucru al registrului SP în raport cu memoria stivă
Adresa C ţiinutt
Con

Operand în memorie Operand din memorie

PUSH
n+2
SP SP
n+1
n
n+1 n
n1
n-1
pre decrement n-2
post increment
PULL

inaintea instructiuni
i inaintea instructiuni
i
după instructiune după instructiune

Cap.3. Arhitectura microprocesoarelor 27

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [6/26]


Registrele generale pentru unele procesoare INTEL

Cap.3. Arhitectura microprocesoarelor 28

Cap.3. Arhitectura microprocesoarelor 14


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [7/26]


Unitatea de execuţie
 Schema se compune Registru de Stare

Unitate de comanda
dintr-o unitate ••• S Z A P C

aritmetico logică ALU Microinstructiune


(Arithmetic and Logic
Unit), două registre
ALU
auxiliare (Temp. Reg.
şi Temp. Acc) şi
Comenzi ALU

B2 B4
registrul Acumulator
Temp. Reg. Temp. Acc.
(Acc). Unităţii Comenzi Registre

aritmetico logice i se B3

asociază un registru Acc.


de stare care va
B1
conţine informaţii cu
privire la rezultatul
operaţiei efectuate. Magistrala interna de date

Cap.3. Arhitectura microprocesoarelor 29

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [7c/26]


Unitatea de execuţie (cont.)
Registrele auxiliare sunt necesare pentru a asigura funcţionarea corectă a unităţii
aritmetice şi logice. ALU fiind un circuit logic combinaţional, va forma şi menţine la ieşirea
sa semnale corecte atâta timp cât vor exista la rândul lor semnale corecte pe intrările
sale.
În lipsa acestor registre auxiliare, s-ar face o legătură directă între una din intrările ALU şi
ieşirea acestuia, ceea ce ar însemna că pe măsura formării sumei la ieşire, semnalele
acestuia ar altera operandul aplicat la intrare şi ar compromite funcţionarea circuitului!
Concret, dacă se doreşte să se adune operandul a, aflat în acumulator, cu un operand b,
aflat într-un registru intern al microprocesorului, atunci se va proceda în felul următor:
•Operandul b este adus pe magistrala B1 şi depus în registrul auxiliar Temp.Reg. Ca
urmare, operandul b apare pe magistrala B2 conectată direct pe una din intrările ALU.
•Concomitent cu aceasta, operandul a, aflat în registrul acumulator (Acc), este transferat
în registrul auxiliar Temp.Acc prin magistrala B3. Ca urmare, operandul a apare pe
magistrala B4, deci pe cea de a doua intrare a circuitului ALU (a se urmări Fig. 3.8).
•În acest moment, fiind îndeplinite condiţiile necesare efectuării operaţiei, şi anume
operanzii sunt prezenţi pe intrările ALU iar registrul acumulator este disponibil pentru
stocarea rezultatului, se poate comanda efectuarea operaţiei şi depunerea rezultatului în
registrul acumulator.

Cap.3. Arhitectura microprocesoarelor 30

Cap.3. Arhitectura microprocesoarelor 15


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [8/26]


Rolul T
registrelor Tact

auxiliare în
B1
execuţia Operand b Rezultat a+b

unei operaţii
de adunare B2
Operand b

Operand a Rezultat a+b


B3

B4 Operand a

t ALU tH

Preluare operanzi Preluare rezultat

Cap.3. Arhitectura microprocesoarelor 31

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [9/26]


Registrul de stare

 C – Carry indică apariţia unei depăşiri a domeniului de


reprezentare
t a numerelor;
l
 P – Parity este bitul care indică paritatea rezultatului
ca fiind pară sau impară;
 A – Auxiliary sau Half Carry este bitul care indică un
eventual transport din bitul 4 în bitul 5 al rezultatului;
 Z – Zero este bitul care va fi setat ((Z = 1)) dacă
rezultatul unei operaţii este egal cu zero;
 S – Sign care este bitul de semn (S = 0 rezultat pozitiv
S = 1 rezultat negativ).

Cap.3. Arhitectura microprocesoarelor 32

Cap.3. Arhitectura microprocesoarelor 16


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [12/26]


Unitatea de comandă [1/5]

 Sarcina
S i principală
i i lă a unităţii
ităţii d
de comandă
dă (UC) este
t
aceea de a genera setul de comenzi necesare executării
unei anumite instrucţiuni.
 Comenzile trebuie să fie generate către toate
componentele HW ale procesorului la momentele de
timp corespunzătoare fazelor de execuţie ale
instrucţiunilor
instrucţiunilor.
 O soluţie posibilă de realizare a unităţii de comandă este
varianta microprogramată.

Cap.3. Arhitectura microprocesoarelor 35

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [13/26]


Unitatea de comandă [2/5]
 Structura de principiu a unei UC microprogramată

Instructiuni CROM

IR

Decodificator Microprogramul

asociat instructiunii
••••• ••• RET
Adresa de start a
microprogramului asociat
instructiunii
••••• •••

Comenzi catre componentele HW

Cap.3. Arhitectura microprocesoarelor 36

Cap.3. Arhitectura microprocesoarelor 18


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [13c/26]


Unitatea de comandă (cont.) [2c/5]
 Microprogramele asociate tuturor instrucţiunilor
proiectate să fie executate de microprocesor sunt stocate
în CPU, într-o memorie nevolatilă numită CROM (Control
Read Only Memory).
 Într-o abordare simplificată, se poate considera că ieşirile
acestei memorii asigură comenzile necesare tuturor
componentelor hardware ale microprocesorului.
Funcţionarea ar fi următoarea: partea de cod de operaţie
a instrucţiunii care urmează să fie executată este depusă
în registrul de instrucţiuni IR iar pe ieşirile decodorului
asociat acestui registru se generează adresa de start a
microprogramului, aflat în memoria CROM, asociat
instrucţiunii.
Cap.3. Arhitectura microprocesoarelor 37

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [14/26]


Unitatea de comandă [3/5]
 Unitatea de comandă a P Motorola 68000
Codul operatiei
instructiunii

Memorie pentru
nanoprograme
280x70 Biti
Registru de instructiuni
IR

Sfarsit microprogram
Decodificator pentru codul
operatiei

Adresa de start a
microprogramului Memorie pentru
or

microprograme
Decodo

640x10 Bit i
Contor de microinstructiuni Circuit de
(+1) demultiplexare
cu 70 de intrari
si 180 iesiri

•••

Semnale de comanda Semnale de


pentru selectie Semnale de stare
comanda pentru HW

Cap.3. Arhitectura microprocesoarelor 38

Cap.3. Arhitectura microprocesoarelor 19


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [15/26]


Unitatea de comandă [4/5]

 Unitatea de Comandă conţineţ în general


g şşi p
partea de
HW a generatorului de tact (cristalul de cuarţ se pune în
exterior). Din frecvenţa de bază a oscilatorului, prin
divizare, se generează toate frecvenţele de tact
necesare în sistem.
 O altă componentă HW ce face parte de asemenea din
unitatea de comandă este şşi circuitul iniţializare
ţ a
sistemului (RESET). Iniţializarea trebuie făcută la
pornirea sistemului (Power on RESET) şi ori de câte ori
este nevoie prin acţionare butonului de RESET

Cap.3. Arhitectura microprocesoarelor 39

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [16/26]


Unitatea de comandă [5/5]
VCC
 Circuitul de aducere O
V
CC

la zero – RESET D
R 20 k
+5V

t
O altă componentă RESET RESET

Vprag
t0

HW din UC este şi 47 R1
C t2
t
20 µF Oscilator

circuitul de PB °
°
iniţializare a Momentul
t1
t

sistemului (RESET).
pornirii
Subrutina de Derularea
resetare programului

Iniţializarea trebuie făcută la pornirea sistemului (Power


on RESET) şi ori de câte ori este nevoie prin acţionare
butonului de RESET. La pornirea sistemului, tensiunea
de alimentare urcă la Vcc, moment în care porneşte
oscilatorul, ceea ce va permite derularea unei subrutine
de iniţializare.
Cap.3. Arhitectura microprocesoarelor 40

Cap.3. Arhitectura microprocesoarelor 20


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [16c/26]


Unitatea de comandă (cont.) [5c/5]
 La pornirea sistemului (momentul t0), tensiunea de alimentare creşte
pînă la Vcc. La atingerea acestei valori (momentul t1), porneşte
oscilatorul, ceea ce va permite derularea unei subrutine de iniţializare.
Concomitent are loc încărcarea condensatorului C prin rezistorul R de
la sursa de alimentarea VCC caracterizată prin creşterea exponenţială
lentă a tensiunii de pe condensatorul C (semnalul RESET). În
momentul în care această tensiune atinge nivelul de prag Vprag
(momentul t2), se consideră faza de aducere la zero (Reset) terminată.
Valorile acestor componente trebuie astfel alese ca, până în momentul
t2, să se asigure resetarea corectă a tuturor componentelor hardware
ale microprocesorului. Ceea ce a fost descris reprezintă de fapt
iniţializarea sistemului la punerea sub tensiune (Power on Reset). Ori
de câte ori se impune, se poate acţiona butonul de reset (PB), ceea ce
va permite o descărcare rapidă a condensatorului prin rezistorul de
mică valoare R1. După eliberarea (relaxarea) butonului de Reset, se
reia procesul de resetare prezentat anterior.
Cap.3. Arhitectura microprocesoarelor 41

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [17/26]


Automatul de adresare
 Sarcina principală a
automatului de Scalare
1,2,4,8 Buffer
Set de registre
adresare din cadrul interne

unui microprocesor Registru cu adresa de


RAo Ra1

este aceea de a
baza si index

forma adresa Automat


Sumator

instrucţiunilor sau
de adresare

subrutinelor, din Interfata cu magistralele


externe
g

cadrul memoriei PC Reg. intermediar

program şi a +

operanzilor din Reg. de date Reg. de adresa

cadrul memoriei de
date. DB AB

Cap.3. Arhitectura microprocesoarelor 42

Cap.3. Arhitectura microprocesoarelor 21


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [17c/26]


Automatul de adresare (cont.)
 Adresa generată de automat se depune în registrul de
adresă şi şi, ca urmare
urmare, apare pe magistrala externă de
adrese (Address Bus – AB) pentru a putea fi folosită la
adresarea unei locaţii din memoria externă sau a unui
periferic. Această adresă poate proveni fie din contorul de
instrucţiuni (PC), fie din registrul intermediar. Automatul de
adresare propriu-zis este format dintr-un sumator cu două
registre auxiliare ataşate (Ra1 , Ra0), folosite pentru
stocarea operanzilor din care se calculează adresa (de
exemplu, prin mecanismul de adresare indexată). Un circuit
de scalare, ataşat registrului auxiliar Ra0, asigură o
flexibilitate suplimentară în tratarea operanzilor folosiţi la
calculul adresei.
Cap.3. Arhitectura microprocesoarelor 43

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [18/26]


Sistemul magistralelor interne [1/4]
 Pentru a putea funcţiona corect, componentele interne HW ale unui
microprocesor trebuiesc comandate.
 Unele componente HW generează semnale numite de stare prin
care semnalează stări şi situaţii în care se află în urma executării
comenzilor primite.
 Componentelor HW trebuie să li se asigure şi posibilitatea de a
comunica date între ele.
 Semnalele de comandă sunt generate de unitatea de comandă, iar
semnalele de stare generate sunt adresate unităţii de comandă
pentru ca, în funcţie de valoarea acestora, aceasta să-şi
să şi poată
modifica evoluţia.
 Cele de mai sus justifică nevoia unor magistrale interne care să lege
componentele hardware între ele şi pe care să circule instrucţiuni,
date, comenzi şi semnalele de stare.

Cap.3. Arhitectura microprocesoarelor 44

Cap.3. Arhitectura microprocesoarelor 22


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [19/26]


Sistemul magistralelor interne [2/4]
 Structură de Tact
Unitate de
procesor cu Set de registre
comanda

magistrală Reg. instructiuni


Reg. de stare
unică pentru
instrucţiuni şi
date ALU Automat de
adresare

Reg. Aux1 Reg. Aux2

Reg intermediar
Reg.

PC
+1

Reg. de date Reg. de adresa

DB CB AB

Cap.3. Arhitectura microprocesoarelor 45

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [20/26]


Sistemul magistralelor interne [3/4]
 Structură de Tact
Unitate de
procesor cu Set de registre
comanda

două Reg. de stare


Bus 1
Reg. instructiuni

magistrale Bus 2

interne
separate
ALU Automat de
adresare

Reg. Aux1 Reg. Aux2

Reg intermediar
Reg.

PC
+1

Reg. de date Reg. de adresa

DB AB

Cap.3. Arhitectura microprocesoarelor 46

Cap.3. Arhitectura microprocesoarelor 23


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [21/26]


Sistemul magistralelor interne [4/4]
 Structură de Tact
Unitate de
procesor cu Set de registre
comanda
Bus 1
patru Reg. instructiuni
Reg. de stare
magistrale Bus 3 Bus 2
Bus 4

interne Reg. Aux


Automat de
adresare
ALU

Reg intermediar
Reg.

PC
+1

Reg. de date Reg. de adresa

DB AB

Cap.3. Arhitectura microprocesoarelor 47

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [22/26]


Interfaţa cu magistralele externe [1/5]

 C l ttreii magistrale
Cele i t l externe
t sunt:
t

 magistrala unidirecţională de adrese (Address Bus – AB)

 magistrala de control (Control Bus – CB)

 magistrala bidirecţională de date (Data Bus – DB)

Cap.3. Arhitectura microprocesoarelor 48

Cap.3. Arhitectura microprocesoarelor 24


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [23/26]


Interfaţa cu magistralele externe [2/5]
 Circuitul de interfaţare cu magistralele externe
Automat
de
adresare

Unitate de execu ţie

IDB

ICB
Interfata Registru intermediar
cu
magistralele PC
externe
+1

Registru de date Registru de adresa

DB CB AB

Cap.3. Arhitectura microprocesoarelor 49

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [24/26]


Interfaţa cu magistralele externe [3/5]
 Circuit de cuplare a unei linii din magistrala internă cu o
linie din magistrala externă fără memorare

Int DB Ext DB

En Dir Sens de transfer

1 0 Int DB → Ext DB
En 1 1 Ext DB → Int DB
0 x Int DB şi Ext DB sunt în
stare de impedanţă mare
Dir

Cap.3. Arhitectura microprocesoarelor 50

Cap.3. Arhitectura microprocesoarelor 25


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [25/26]


Interfaţa cu magistralele externe [4/5]
 Circuit de cuplare a unei linii din magistrala internă cu o
linie din magistrală externă cu memorare
Tact Bf1 Bf3

Int DB Ext DB
D Q
Bf2 Ck Bf4

Si
So

En Dir Tact Si So Funcţia realizată


Toate bufferele sunt în
0 x x x x stare de impedanţă mare
En 1 0 0 0 0 Int DB → D
1 0 0 0 Int DB → D → Q
Dir 1 0 0 0 1 Int DB → D Q → Ext DB
1 1 0 0 0 Ext DB → D
1 1 0 0 Ext DB → D → Q
Cap.3. Arhitectura microprocesoarelor 1 1 0 1 0 Ext DB → D Q → Int DB 51

Circuite programabile cu aplicaţii biomedicale

2.1. Analiza unei arhitecturi CISC [26/26]


Interfaţa cu magistralele externe [5/5]
 Viteza de lucru a procesorului este, în general, mai mare decât
vitezele de lucru ale memoriei externe sau ale pperifericelor
conectate la porturi. Aceasta impune şi modalităţi de transfer
diferenţiate după situaţia concretă:
 Magistralele sincrone în cazul în care viteza de lucru a procesorului
coincide cu viteza de răspuns a memoriei.
 Magistrale semi–sincrone în cazul în care vitezele nu coincid dar nici
nu sunt exagerat de diferite. Pentru a permite sincronizarea în preluarea
datelor, sunt introduse stări de aşteptare (wait) din partea componentei
mai lente
lente.
 Magistralele asincrone în cazul în care vitezele diferă mult între ele,
cum este situaţia conlucrării procesorului cu periferice lente, caz în care
preluarea datelor se face printr-un protocol asincron cu confirmare la
nivel electric, cunoscut şi sub numele de protocol Hand–Shake.

Cap.3. Arhitectura microprocesoarelor 52

Cap.3. Arhitectura microprocesoarelor 26


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [1/22]


Tipuri de date

 Un ti
U tip d
de d
date
t specifică
ifi ă d
domeniul
i l valorilor
l il pe care o
constantă, o variabilă, o expresie sau o funcţie le pot lua
în cadrul unui program.

 Un anume tip de date va fi specificat prin format, cu alte


cuvinte prin numărul de biţi şi semnificaţia acestora.

 În principiu, un microprocesor poate prelucra orice tip de


date.

Cap.3. Arhitectura microprocesoarelor 53

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [2/22]


Tipurile de date ale procesoarelor de 8 biţi
7 6 5 4 3 2 1 0 15 8 7 1 0

Numar intreg fara semn Numar intreg fara semn de 16 biti


de 8 biti (cuvânt)

7 6 5 4 3 2 1 0 15 8 7 1 0
BS BS

+/-

Numar intreg cu semn Numar intreg cu semn de 16 biti


de 8 biti (cuvânt)

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0<T O ,T1<9
0 0 0 0
TO T1 TO

Numar BCD Numar BCD împachetat

7 6 5 4 3 2 1 0 15 8 7 1 0

FLAG Liber Pointer


Cuvânt de stare
Cap.3. Arhitectura microprocesoarelor 54

Cap.3. Arhitectura microprocesoarelor 27


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [3/22]


Tipuri de date suplimentare ale procesoarelor de 16/32 biţi
31 16 15 0

BS

Cuvinte duble; numere întregi de 32 B iti cu sau farã semn

63 47 32

BS

31 15 0

Cuvinte cuadruple, numere întregi de 64 Biti cu sau farã semn

ASCII Pointer 32/48 Biti

Numar segment 16 Biti Offset 16/32 Biti

Cap.3. Arhitectura microprocesoarelor 55

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [4/22]


Setul de instrucţiuni [1/3]

 Vom înţelege
V î ţ l prin
i setul
t l de
d iinstrucţiuni
t ţi i all unuii
microprocesor, mulţimea instrucţiunilor ce pot fi
interpretate de Unitatea de Comandă a procesorului şi
executate prin derularea unui micro program cu comenzi
asociate instrucţiunii în cauză.

 Se spune despre un set de instrucţiuni că este simetric


dacă fiecare instrucţiune poate fi executată cu toate
tipurile şi formatele de date pe care le acceptă
procesorul.

Cap.3. Arhitectura microprocesoarelor 56

Cap.3. Arhitectura microprocesoarelor 28


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [5/22]


Setul de instrucţiuni [2/3]

 Operaţiile
O ţiil di
din setul
t ld
de iinstrucţiuni
t ţi i pott avea următoarele
ăt l
formate principale:
A := B op C
unde B şi C semnifică operanzi (constante sau variabile),
A o variabilă iar op semnifică operaţia care se
efectuează cu cei doi operanzi.

 Dacă mărimile A, B respectiv C sunt diferite spunem ca


avem un format de instrucţiune cu trei adrese.

Cap.3. Arhitectura microprocesoarelor 57

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [6/22]


Setul de instrucţiuni [3/3]

 Î cazul în care două din cele trei coincid spunem că


În
avem un format cu două adrese ca de exemplu:
A := A op B
unde variabila A este folosită atât ca operand de intrare
cât şi ca destinatar pentru rezultat.

 Un caz particular al acestui tip de format frecvent folosit


la microprocesoarele de tip Acumulator este următorul:
Ac := Ac op B

Cap.3. Arhitectura microprocesoarelor 58

Cap.3. Arhitectura microprocesoarelor 29


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [7/22]


Forma codificată a instrucţiunilor [1/2]
 Cod maşină
<codul operaţiei> {<operand 1>{
1 <operand 2
2>}}
 Limbaj de asamblare
<Mnemonică> {<operand 1>{ <operand 2>}}

 Codul operaţiei, reprezintă o secvenţă binară care indică


tipul operaţiei precum şi numărul de operanzi ce intervin,
şi se adresează unităţii de comandă.
 Mnemonica este echivalentul codului operaţiei în limbajul
de asamblare.

Cap.3. Arhitectura microprocesoarelor 59

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [8/22]


Forma codificată a instrucţiunilor [2/2]

 ÎÎn cazull în
î care după
d ă codul
d l operaţiei
ţi i este
t precizată
i tă o
adresă atunci aceasta de obicei este indicată prin cele
două jumătăţi ale sale:

<cod operaţie> <L Address> <H Address>


sau
<cod operaţie> <H Address> <L Address>

Cap.3. Arhitectura microprocesoarelor 60

Cap.3. Arhitectura microprocesoarelor 30


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [9/22]


Formatul general Byte
Bit

al instrucţiunilor 1a
7 6 5 4 3 2 1 0

1b Cod operatie (1-6 Byte)

-
--
1f

2a

2b
Operand 1 (0-8 Byte )
Offset, adrese 8/16/32 Biti

-
Operanzi de pâna la 64 Biti

--
2h

3a

3b Operand 2 (0-8 Byte )


Offset, adrese 8/16/32 Biti
-

Operanzi de pâna la 64 Biti


--

3h

Cap.3. Arhitectura microprocesoarelor 61

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [10/22]


Clase de instrucţiuni
 de transfer
 d iintrare
de t – ieşire
i i
 aritmetice
 logice
 prelucrări pe bit
 rotaţii şi deplasări
 salturi condiţionate
condiţionate, necondiţionate apelări de subrutine
 instrucţiuni de control al sistemului
 prelucrări pe bloc, ciclări

Cap.3. Arhitectura microprocesoarelor 62

Cap.3. Arhitectura microprocesoarelor 31


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [11/22]


Moduri de adresare a memoriei
 Printr-o tehnică de adresare se înţelege o anume
modalitate prin care se determină adresa unui operand
care urmează să participe la efectuarea unei operaţii.
 Microprocesoarele CISC se caracterizează printr-o mare
varietate de moduri de adresare care se pot clasifica, de
exemplu, după numărul operaţiilor necesare pentru a
calcula adresa efectivă utilizată pentru a accesa
operandul:
 Adresarea de registru
 Adresarea directă
 Adresarea indirectă

Cap.3. Arhitectura microprocesoarelor 63

Circuite programabile cu aplicaţii biomedicale

2.2. Date, instrucţiuni, adresarea memoriei [12/22]


Adresare de registru [1/3]

 La acest tip de adresare, operandul se află într-unul din


registrele interne ale procesorului. Timpul de acces la
registrele interne fiind mult mai mic în comparaţie cu
timpul de acces la memoria externă, aceste instrucţiuni
se vor executa extrem de rapid.

 În această categorie avem două tipuri de adresare:


 Implicită,
 Explicită.

Cap.3. Arhitectura microprocesoarelor 64

Cap.3. Arhitectura microprocesoarelor 32


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Arhitectura RISC
Obiective

 Î ţ l
Înţelegerea limitărilor
li ită il arhitecturii
hit t ii CISC

 Prezentarea principalelor caracteristici ale arhitecturii


RISC

 Urmărirea fazelor de sinteză ale unei arhitecturi RISC

 Înţelegerea principiului de execuţie a instrucţiunilor prin


suprapunerea ciclurilor şi a problemelor pe care le ridică

Cap.3. Arhitectura microprocesoarelor 75

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [1/11]


Motivaţie [1/4]

 Principalele caracteristici ale procesoarelor CISC


prezentate anterior sunt următoarele:

 sunt gândite să lucreze cu un număr mare de instrucţiuni (de


ordinul sutelor);
 instrucţiunile au formate şi lungimi diferite;
 acceptă un număr mare de modalităţi de adresare a memoriei
memoriei,
dar unele dintre acestea necesită calcule suplimentare, ceea ce
conduce la un timp de acces mare;
 pot prelucra o diversitate destul de mare de tipuri de date.

Cap.3. Arhitectura microprocesoarelor 76

Cap.3. Arhitectura microprocesoarelor 38


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [2/11]


Motivaţie [2/4]
 Numărul mare de instrucţiuni, diversitatea mare a
modurilor de adresare şi a tipurilor de date conduce la
nevoia unei unităţi de comandă extrem de complicate, cu
următoarele implicaţii:

 costuri de dezvoltare extrem de mari;

 durata de testare şi punere la punct foarte mari, ceea ce;


 împiedică lansarea rapidă pe piaţă a unei variante noi,
 reduce viteza de înnoire şi
 îngreunează utilizarea promptă a noutăţilor tehnologice din
domeniu;

Cap.3. Arhitectura microprocesoarelor 77

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [3/11]


Motivaţie [3/4]

 greu de testat şi de depistat eventualele erori de proiectare;

 datorită complexităţii sale, unitatea de comandă nu se poate


realiza decât în variantă microprogramată, ceea ce conduce la o
execuţie lentă a instrucţiunilor (decodarea şi derularea micro
programelor asociate instrucţiunilor, sunt mari consumatoare de
timp);

 unitate de comandă complexă va consuma o parte consistentă a


resurselor de pe un chip; în mod uzual, suprafaţa ocupată de
unitatea de comandă de pe chip este de circa 50% dar în cazul
microprocesorului Motorola 68020 a ajuns chiar la 68%;

Cap.3. Arhitectura microprocesoarelor 78

Cap.3. Arhitectura microprocesoarelor 39


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [4/11]


Motivaţie [4/4]

 datorită lungimilor diferite ale instrucţiunilor şi durata lor de


execuţie va fi diferită (prin nevoia unor accesări repetate ale
memoriei externe), ceea ce face imposibilă implementarea unei
prelucrări în flux continuu a instrucţiunilor prin suprapunerea
ciclurilor (Pipelining);

 complexitatea setului de instrucţiuni, a modurilor de adresare şi


a formatelor de date face aproape imposibilă elaborarea unor
compilatoare eficiente.

Cap.3. Arhitectura microprocesoarelor 79

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [5/11]


Încercări şi soluţii propuse
 Problemele menţionate anterior au reprezentat preocupări în
vederea g găsirii unor soluţii
ţ de îmbunătăţire
ţ a performanţelor.
p ţ La
universitatea americană Berkley preocupările în acest sens din anii
80 au dus la realizarea procesoare (RISC I şi RISC II) cu o
arhitectură complet diferită.
 În esenţă s-a redus numărul şi complexitatea instrucţiunilor bazate
pe un studiu care a relevat faptul că 90% din programele rulate pe
microprocesoarele de tip CISC se executau de fapt cu doar 10% din
instrucţiuni! De aici şi denumirea de arhitectură RISC (Reduced
Instruction Set Computer) care datorită numărului redus de
instrucţiuni, în general simple, va necesita la rândul ei şi o unitate de
comandă simplă – în mod uzual, Unitatea de Comandă a
procesoarelor RISC ocupă doar în jur de 10% din suprafaţa chipului,
restul resurselor care se eliberează prin simplificarea unităţii de
comandă putând fi folosite pentru realizarea altor componente;
Cap.3. Arhitectura microprocesoarelor 80

Cap.3. Arhitectura microprocesoarelor 40


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [6/11]


Caracteristici ale arhitecturii RISC [1/4]
 Complexitatea Unităţii de Comandă s-a redus prin:
 utilizarea unui număr redus (zeci) de instrucţiuni simple
simple,
 puţine moduri de adresare a memoriei,
 accesul la memoria externă se face exclusiv prin instrucţiunile
LOAD respectiv STORE (motiv pentru care arhitectura se mai
numeşte şi arhitectură LOAD/STORE),
 unitatea de execuţie lucrează cu operanzi luaţi exclusiv din
registrele interne şi depune rezultatul tot într-un registru intern,
ceea ce necesită o fază suplimentară de execuţie a unei
instr cţi ni fa
instrucţiuni, fază
ănnumită
mită Write Back – WB,
WB
 durata de execuţie a instrucţiunilor este de un singur ciclu
maşină, cu excepţia instrucţiunilor LOAD/STORE,
 tipurile de date acceptate sunt doar numere întregi de 8, 16
respectiv 32 de biţi – prin hardware nu se pot prelucra, în mod
nemijlocit, operanzi în virgulă mobilă;
Cap.3. Arhitectura microprocesoarelor 81

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [7/11]


Caracteristici ale arhitecturii RISC [2/4]
 Timpul de acces extrem de redus la registrele interne, va
conduce la o viteză foarte mare de execuţie a
instrucţiunilor propriu zise;
 Unitatea de Comandă este realizată într-o variantă de
logică cablată, ceea ce înseamnă că din structura binară
a codului instrucţiunii sunt comandate în mod direct
componentele HW ale procesorului faţă de varianta
microprogramată care necesită derularea unui micro
program asociat instrucţiunii, logica cablată va asigura o
execuţie extrem de rapidă a instrucţiunilor;

Cap.3. Arhitectura microprocesoarelor 82

Cap.3. Arhitectura microprocesoarelor 41


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [8/11]


Caracteristici ale arhitecturii RISC [3/4]
 Formatul general al datelor care se prelucrează este de
32 de biţi;
 Setul intern de registre este format, în general, din 32 de
registre a câte 32 de biţi, cu posibilitatea citirii simultane
a doi operanzi şi a scrierii celui de al treilea operand!
 Prelucrarea instrucţiunilor se face prin suprapunerea
ciclurilor (pipeline), transparentă pentru utilizator şi care
asigură prelucrarea unei instrucţiuni într
într-un
un singur tact;

Cap.3. Arhitectura microprocesoarelor 83

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [9/11]


Caracteristici ale arhitecturii RISC [4/4]
 Sistemul de prelucrare cu suprapunerea ciclurilor
presupune realizarea unei arhitecturi Harvard cu memorii
de program şi date distincte; Cele două memorii,
împreună cu magistralele aferente, vor permite
executarea în paralel a citirii unei instrucţiuni din
memoria de program concomitent cu un acces
(LOAD/STORE) la memoria de date;
 Resursele oferite de procesoarele RISC vor putea fi
valorificate pe deplin doar în prezenţa unor compilatoare
de nivel înalt eficiente.

Cap.3. Arhitectura microprocesoarelor 84

Cap.3. Arhitectura microprocesoarelor 42


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [10/11]


Concluzie

 Succesull arhitecturii
S hit t ii RISC se b
bazează,
ă îîn esenţă,
ţă pe
următoarele elemente determinante:

 set redus de instrucţiuni simple;


 executarea instrucţiunilor prin suprapunerea ciclurilor;
 arhitectură Harvard;
 realizarea unor compilatoare eficiente;
 utilizarea memoriilor Cache.

Cap.3. Arhitectura microprocesoarelor 85

Circuite programabile cu aplicaţii biomedicale

3.1. Motivaţie, soluţii propuse [11/11]


a) Arhitectură Harvard b) Arhitectură von Neumann

Cap.3. Arhitectura microprocesoarelor 86

Cap.3. Arhitectura microprocesoarelor 43


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [1/25]


Criterii de bază

 P i
Precizarea d
destinaţiei
ti ţi i procesorului
l i

 Alegerea setului corespunzător de instrucţiuni

 Implementare HW cu costuri minime

 Viteză de lucru cât mai mare

Cap.3. Arhitectura microprocesoarelor 87

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [2/25]


Spaţiul de proiectare
 Spaţiul de proiectare este definit de costuri şi timp de
execuţie

Cap.3. Arhitectura microprocesoarelor 88

Cap.3. Arhitectura microprocesoarelor 44


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [5/25]


Timpul de execuţie – exemplu de calcul [2/2]
 Numărul mediu de cicluri maşină pe instrucţiune va fi:
CPIp = 0,2
02·2+0 0,1
1 · 2 + 0,4
04·1+0 0,3
3 · 2 = 1,6
16
 Se defineşte parametrul de viteză MIPS (Million
Instruction Per Second) astfel:
IC p frecventa de tact
MIPS  
Timpul de executie 10 6
CPI p 106
 Pentru exemplul de program precedent rulat pe un
procesor de 100 MHz obţinem:
100 106
MIPS   62,5
1,6 106

Cap.3. Arhitectura microprocesoarelor 91

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [6/25]


 Pentru exemplificare, se va ilustra sinteza unei
arhitecturi DLX (Delux), după modelul prezentat în:
John Hennessy and David Patterson;
Computer Architecture a Quantitative Approach,
3-rd edition, 2003, Morgan Kaufmann

 DLX este un procesor ipotetic cu arhitectură RISC


elaborat de profesorii Hennessy şi Patterson de la
Universitatea Berkeley.
 Cei doi autori au introdus în anii ’70 conceptul de RISC
în arhitectura microprocesoarelor.

Cap.3. Arhitectura microprocesoarelor 92

Cap.3. Arhitectura microprocesoarelor 46


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [7/25]


Principii şi precizări de structură preliminare [1/2]

 Pentru
P t a mări
ă i viteza
it d
de execuţie
ţi operaţiile
ţiil ffrecventt
utilizate vor fi implementate prin instrucţiuni HW (make
the common case fast)

 Operaţiile care intervin mai rar vor fi implementate SW şi


vor fi interpretabile prin mai multe instrucţiuni HW

Cap.3. Arhitectura microprocesoarelor 93

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [8/25]


Principii şi precizări de structură preliminare [2/2]
 setul de registre este format din 32 de registre a câte 32
de biţi
 registrul R0 = 0 conţine întotdeauna constanta zero
 memoria externă este organizată pe octeţi
 toate instrucţiunile sunt de 32 de biţi
 pentru transportul datelor între procesor şi memoria
externă sunt folosite doar instrucţiunile LOAD/STORE
 există un singur mod de adresare: conţinutul unui
registru + un offset de 16 biţi
 instrucţiunile ce vizează unitatea de execuţie (ALU) sunt
cu 3 adrese şi vizează doar registrele interne
 pentru salturi condiţionate se testează doar conţinutul
unui registru dacă este egal sau diferit de zero
Cap.3. Arhitectura microprocesoarelor 94

Cap.3. Arhitectura microprocesoarelor 47


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [9/25]


Formatele instrucţiunilor DLX
 Procesorul DLX propus este conceput să lucreze doar
cu următoarele trei formate de instrucţiuni de lungimi
egale:
0 56 10 11 15 16 31
Formatul I
Cod operatie rs1 rd immediate

0 56 10 11 15 16 20 21 31
o atu R
Formatul
Cod operatie rs1 rs2 rd

0 56 31
Formatul J
Cod operatie Distanta

Cap.3. Arhitectura microprocesoarelor 95

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [10/25]


Exemple de instrucţiuni [1/3]

Tipul Modul de scriere Acţiunea Formatul instrucţiunii

1. Load Word LW R1,400(R2) R1 := MEM(R2+400) LW R2 R1 400

Instrucţiunea de mai sus transferă în registrul intern R1 patru octeţi citiţi din memoria externă de la
următoarele adrese: MEM(R2+400), MEM(R2+401), MEM(R2+402) şi MEM(R2+403)

2. Store Word SW 400(R2),R1 MEM(R2+400): = R1 SW R2 R1 400

Este o operaţie inversă celei de mai sus şi care va transfera conţinutul registrului R1 în patru locaţii
consecutive de memorie începând cu adresa R2+400

3. Add ADD R1,R2,R3 R1 := R2+R3 R R2 R3 R1 ADD

Cap.3. Arhitectura microprocesoarelor 96

Cap.3. Arhitectura microprocesoarelor 48


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [13/25]


Fazele de execuţie a instrucţiunilor DLX
 Instrucţiunile DLX se prelucrează în maximum cinci paşi,
numite faze de execuţie
 IF (Instruction Fetch) – extragere cod operaţie

 ID (Instruction Decode) – decodarea codului instrucţiunii

 EX (Instruction Execute) – execuţia instrucţiunii

 MEM (Memory) – acces la memorie (scriere sau


citire)

 WB (Write Back) – scrierea rezultatului înapoi în


setul de registre
Cap.3. Arhitectura microprocesoarelor 99

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [14/25]


Diagrama fazelor de execuţie
 Sinteza unei structuri de microprocesor RISC înseamnă de fapt
conceperea
p unui hardware capabil
p să execute toate instrucţiunile
ţ
prevăzute pentru acest microprocesor.
 În această fază a sintezei, se pune problema de a găsi o
corespondenţă între desfăşurarea în timp a fazelor de execuţie a
instrucţiunilor şi hardware-ul necesar pentru a realiza practic faza
respectivă.
 Pentru a indica desfăşurarea în timp a fazelor, se va folosi o
reprezentare
p tabelară, în care fazele sunt indicate cronologic
g de la
stânga la dreapta.

IF : ID: IE : MEM : WB :

Cap.3. Arhitectura microprocesoarelor 100

Cap.3. Arhitectura microprocesoarelor 50


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [15/25]


Sinteza unei structuri de microprocesor
 Sinteza unei structuri de microprocesor RISC înseamnă
de fapt conceperea unui hardware capabil să execute
toate instrucţiunile prevăzute pentru acest
microprocesor.
 Pentru a înţelege principiul sintezei, se va urmări acest
proces pentru un număr redus de instrucţiuni, sinteza
completă fiind prezentată în literatura de specialitate.

 Prezentarea începe cu urmărirea fazelor de execuţie şi a


hardware-ului implicat în cazul instrucţiunii de citire din
memorie Load Word (LW).

Cap.3. Arhitectura microprocesoarelor 101

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [16/25]


Blocuri HW necesare executării instrucţiunilor
 Pentru a reprezenta hardware-ul implicat în executarea
fazelor instrucţiunii,
instrucţiunii se va recurge la o reprezentare
printr-o schemă bloc.

Setul de
Memoria de
A LU

Memoria de registre-rf
PC program 32x32 biti date

Cap.3. Arhitectura microprocesoarelor 102

Cap.3. Arhitectura microprocesoarelor 51


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [17/25]


Blocurile HW împreună cu registrele auxiliare
 Pentru memorarea temporară a datelor şi instrucţiunilor,
este necesar să se introducă o serie întreagă de registre
auxiliare.

a
Setul de
Memoria ar Memoria di

ALU
registre-rf
d program
de 32 32 biti
32x32 de date
PC ir
b

Cap.3. Arhitectura microprocesoarelor 103

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [18/25]


Faza de extragere a codului operaţiei
LW
IF:

ir <= i_mem (pc)

pc <= pc +4

Memoria
PC
de program
ir
În această fază are loc citirea codului
instrucţiunii din memoria program şi depunerea
acestuia în registrul
g de instrucţiuni
ţ ir,,
concomitent cu incrementarea contorului de
instrucţiunii pc cu 4 (instrucţiunile sunt de 32 de
biţi iar memoria este organizată pe octeţi!).

Pentru realizarea operaţiei de incrementare, a
+4
fost necesară introducerea unui sumator
suplimentar.
Cap.3. Arhitectura microprocesoarelor 104

Cap.3. Arhitectura microprocesoarelor 52


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [19/25]


Faza de decodare
LW ID:
IF:

ir <= i_mem (pc) a <= rf (ir [6:10])

pc <= pc + 4 b <= rf ( ir [11:15]

rs1
a
rs2 Setul de
registre - rf
PC Memoria ir 32x32 biti
de program rd
b

LW R1, 400 (R2)


R1 := MEM (R2 + 400)

0 56 10 11 15 16 31
+4 Formatul I
Cod operatie rs1 rd immediate

Cap.3. Arhitectura microprocesoarelor 105

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [19c/25]


Faza de decodare
 Se va exemplifica o instrucţiune concretă, şi anume LW
R1, 400 (R2), a cărei acţiune este: R1: = MEM
(R2 + 400), adică încărcarea în registrul intern R1, a
conţinutului locaţiei de memorie a cărei adresă se obţine
prin adăugarea numărului 400 la conţinutul registrului R2.
 Din formatul instrucţiunii de tip I, rezultă că biţii [6:10]
indică adresa registrului R2 (registrul sursă rs1) iar biţii
[11:15] indică codul binar al registrului R1 (registru de
destinaţie rd). Constanta 400 figurează în codul
instrucţiunii (immediate) pe poziţia biţilor [16:31]. În
această fază (Fig. 3.36), se citeşte conţinutul registrului
R2 (rs1) care se depune în registrul temporar a.
Cap.3. Arhitectura microprocesoarelor 106

Cap.3. Arhitectura microprocesoarelor 53


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [20/25]


Faza de execuţie
LW EX:
IF: ID:

ir <= i_mem (pc) a <= rf (ir [6:10]) ar <= a + ir [16:31]

pc <= pc + 4 b <= rf ( ir [11:15]

rs1
a
rs2 Setul de

ALU
registre - rf ar
PC Memoria ir rd 32x32 biti
de program b

MPX
imm

LW R1, 400 (R2)


R1 := MEM (R2 + 400)

0 56 10 11 15 16 31
+4 Formatul I
Cod operatie rs1 rd immediate

Cap.3. Arhitectura microprocesoarelor 107

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [20/25]


Faza de execuţie
 Se calculează adresa de start a operandului (o adresă în
cazul acesta) prin însumarea conţinutului registrului R2,
depus în faza anterioară în registrul auxiliar a, cu
constanta 400 existentă în codul instrucţiunii (biţii
[16:31]).
 Operaţia de adunare este realizată de ALU la care cel de
al doilea operand (imm) este aplicat pe intrarea ALU prin
intermediul unui multiplexor (MPX). Rezultatul calculului
este depus în registrul de adresă ar.

Cap.3. Arhitectura microprocesoarelor 108

Cap.3. Arhitectura microprocesoarelor 54


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [21/25]


Faza de acces (citire) din memorie
LW ID: EX:
IF: MEM:

ir <= i_mem (pc) a <= rf (ir [6:10]) ar <= a + ir [16:31] di <= d_mem (ar)

pc <= pc + 4 b <= rf ( ir [11:15]

rs1
a
rs2 Setul de

ALU
registre - rf ar Memoria di
PC Memoria ir 32x32 biti de date
de program rd
b

MPX
imm

Sunt adresate patru locaţii consecutive de


 memorie, începând cu adresa calculată şi
+4 depusă în registrul ar în faza de execuţie. Cei
patru octeţi citiţi formează un cuvânt de 32 de
biţi care va fi depus în registrul di (data citită).
Cap.3. Arhitectura microprocesoarelor 109

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [22/25]


Faza de scriere înapoi în registru
LW EX:
IF: ID: MEM: WB:

ir <= i_mem (pc) a <= rf (ir [6:10]) ar <= a + ir [16:31] di <= d_mem (ar) rf(ir(11:15)<=di

pc <= pc + 4 b <= rf ( ir [11:15]

rs1
a
rs2 Setul de
ALU

registre - rf ar Memoria di
PC Memoria ir rd 32x32 biti de date
de b
MPX

imm

LW R1, 400 (R2)


R1 := MEM (R2 + 400)
 0 56 10 11 15 16 31
Formatul I
+4 Cod operatie rs1 rd immediate

Cap.3. Arhitectura microprocesoarelor 110

Cap.3. Arhitectura microprocesoarelor 55


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [22/25]


Faza de scriere înapoi în registru
 Data citită din memorie şi aflată în registru auxiliar di
este scrisă în registrul de destinaţie din setul intern de
registre. În cazul exemplului ales, este vorba de registrul
R1 (rd), a cărei adresă (codul binar al registrului) este
reprezentată de biţii [11:15] din codul instrucţiunii aflat în
registrul ir.

Cap.3. Arhitectura microprocesoarelor 111

Circuite programabile cu aplicaţii biomedicale

3.2. Sinteza unei arhitecturi RISC [23/25]


Componente suplimentare necesare executării instrucţiunii
SW
SW ID: EX: MEM:
IF:

ir <= i_mem (pc) a <= rf (ir [6:10]) ar <= a + ir [16:31] d_mem (ar) <= do S impune
Se i
pc <= pc + 4 b <= rf ( ir [11:15] introducerea
unui registru
auxiliar
rs1
a
suplimentar
rs2 Setul de notat cu do.
ALU

registre - rf ar Memoria di
PC Memoria ir rd 32x32 biti de date
de b
MPX

imm
M

do SW 400 (R2), R1
MEM (R2 + 400) := R1
0 56 10 11 15 16 31
 Formatul I
Cod operatie rs1 rd immediate
+4

Cap.3. Arhitectura microprocesoarelor 112

Cap.3. Arhitectura microprocesoarelor 56


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [1/16]


a) serială
b) suprapunerea a) IF ID OF EX
instructiunea 1
IF ID OF EX
instructiunea 2
IF ID OF EX
instructiunea 3
fazei de execuţie
b)
cu faza de IF ID OF EX
instr. 1 IF ID OF EX

extragere cod instr. 2 IF ID OF EX


instr. 3 IF ID OF EX

operaţie instr. 4

c) instr. 1
c) pipelining IF ID OF EX
IF ID OF EX instr. 2

(suprapunerea IF ID OF EX
IF ID OF EX
instr. 3
instr. 4

ciclurilor)
instr. 1
d) superscalar
d) IF ID OF EX
IF ID OF EX instr 2
instr.
IF ID OF EX instr. 3
Observaţie: IF ID OF EX instr. 4
instr. 5
Ultimele două
IF ID OF EX
IF ID OF EX instr. 6
instr. 7
necesită un HW IF
IF
ID OF EX
ID OF EX instr. 8

suplimentar!
Cap.3. Arhitectura microprocesoarelor 117

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [1c/16]


 Creşterea vitezei de execuţie a programelor este un
obiectiv foarte important. Creşterea vitezei presupune
paralelizarea acţiunilor.
 Dacă se presupune că o fază a unei instrucţiuni se
execută într-un singur tact, atunci, în cazul execuţiei
seriale (Fig. a), o instrucţiune se execută în 4 tacturi, în
cazul suprapunerii fazei de execuţie cu cea de extragere
a codului operaţiei (Fig. b), o instrucţiune se execută în 3
tacturi, în cazul organizării de tip pipeline (Fig. c), o
instrucţiune se execută într-un singur tact, iar în cazul
organizării superscalare (Fig. d), o instrucţiune se
execută în jumătate de tact.

Cap.3. Arhitectura microprocesoarelor 118

Cap.3. Arhitectura microprocesoarelor 59


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [2/16]

Setul de registre

Setul de registre
Pipelining

rf 32x32 biti

rf 32x32 biti
d-mem
i-mem

ALU
Organizarea

egistre

egistre
pipeline pentru

2 biti

rf 32x32 biti
em
i-mem

Setul de re

Setul de re
ALU
U

d-me

rf 32x32
cinci instrucţiuni de
tip LW.

Setul de registre

Setul de registre
rf 32x32 biti

rf 32x32 biti
d-mem
Se impune să se

i-mem

ALU

pună în evidenţă
succesiunile de

Setul de registre

Setul de registre
rf 32x32 biti

rf 32x32 biti
d-mem
i-mem
instrucţiuni care 

ALU
pot crea probleme,
să se identifice

Setul de registre

Setul de registre
rf 32x32 biti

rf 32x32 biti
d-mem
i-mem
aceste probleme şi 

ALU
să se găsească
soluţii pentru

rezolvarea lor.
Pasul: 1 2 3 4 5 6 7 8 9
Cap.3. Arhitectura microprocesoarelor 119

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [3/16]


Tipuri de conflicte [1/2]
 Conflicte de resurse HW
apare atunci când un bloc funcţional sau o memorie este
implicată simultan în operaţiuni diferite

 Conflicte de date
 la nivelul conţinutului registrelor interne
în cazul în care înaintea unei operaţii de transfer, conţinutul
registrului implicat nu este cel corect (care ar trebui să fie!)
 la nivelul instrucţiunilor
când o dată care este necesară pentru o anume instrucţiune nu
este încă disponibilă

Cap.3. Arhitectura microprocesoarelor 120

Cap.3. Arhitectura microprocesoarelor 60


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [4/16]


Tipuri de conflicte [2/2]
 Conflictele la nivel de comandă
apare atunci când
când, din cauza unei instrucţiuni de salt în program
program,
structura Pipeline trebuie golită şi reîncărcată.

Se vor exemplifica în continuare o parte din aceste


conflicte (cele de resurse şi cele de date).

Cap.3. Arhitectura microprocesoarelor 121

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [5/16]


Conflict de resurse în cazul succesiunii de instrucţiuni LW
şi ADD
IF: ID: EX: MEN: WB:

Cele
C l ddouăă LW ir <= i - mem (pc)

pc <= pc + 4
a <= rf (ir [6:10]) ar <= a + ir [16:31] d - mem (ar) <=
do
rf (ir [11:15]) <=di

b <= rf ( ir [11:15]

instrucţiuni IF: ID: EX: WB:

consecutive ADD
ir <= i - mem (pc)

pc <= pc + 4
a <= rf (ir [6:10]) temp <= a + b rf (ir [16:20]) <=

b <= rf ( ir [11:15] temp

apelează simultan
setul intern de
Setul de registre
Setul de registre

rf 32x32 biti
d-mem
i-mem

rf 32x32 biti

LW
registre pentru
ALU

scriere ceea ce nu
scriere,
este posibil. 
Setul de registre

Setul de registre
rf 32x32 biti

rf 32x32 biti
i-mem

ALU

ADD

Pasul: 1 2 3 4 5
Cap.3. Arhitectura microprocesoarelor 122

Cap.3. Arhitectura microprocesoarelor 61


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.3. Principii de execuţie a instrucţiunilor [16/16]


Soluţie alternativă ptr. eliminarea conflictului de date [2/2]
 Situaţia creată poate fi rezolvată însă foarte elegant
printr o inversiune în ordinea de execuţie a instrucţiunilor
printr-o
care să asigure existenţa operanzilor înaintea implicării
acestora în calculele făcute de instrucţiunea ADD, aşa
cum este în secvenţa de program rescrisă:

LW R1 <= a
LW R2 <= b
LW R4 <= c
ADD R3 <= R1 + R2
ADD R3 <= R3 + R4
SW x <= R1

Cap.3. Arhitectura microprocesoarelor 133

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [1/7]


 Principiul de organizare cu suprapunerea ciclurilor
(pipeline) permite obţinerea unui timp de execuţie a
instrucţiunilor egal cu un Tact pe instrucţiune
instrucţiune.
 Arhitectura superscalară permite reduceri suplimentare a
timpului de execuţie a unei instrucţiuni (la fracţiuni dintr-
un tact) prin prelucrarea, în paralel, a mai multor
instrucţiuni (2–8) bazat tot pe principiul suprapunerii
ciclurilor.
 Din punct de vedere HW HW, o asemenea arhitectură va
avea mai multe unităţi de execuţie şi un sistem de
comandă care să alimenteze aceste unităţi de execuţie
într-un mod eficient.

Cap.3. Arhitectura microprocesoarelor 134

Cap.3. Arhitectura microprocesoarelor 67


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [2/7]


Principiul de lucru al unei arhitecturi superscalare [1/6]

Cache de instructiuni

2 instructiuni

Decodor pentru
Ordinea de De multe ori
executare a instructiuni
dependentele de date
instructiunilor I2: R4:= R1+R4 nu permit executia in
paralel
I1: R1:= R2*R3 R0
R1
R2
R3
Unitati de
executie EU1 EU2 … EUn
EU …
adresa + *

Setul de registre

Cache de date

Cap.3. Arhitectura microprocesoarelor 135

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [3/7]


Principiul de lucru al unei arhitecturi superscalare [2/6]
 Pentru a putea alimenta în mod eficient unităţile de
execuţie cu instrucţiuni,
instrucţiuni în arhitectura superscalar sunt
prevăzute memorii tampon, numite staţii de rezervare
(Reservation Station – RS) care să conţină un număr de
instrucţiuni.
 Ca variante constructive aceste staţii de rezervare pot fi
concepute astfel:
 variantă centralizată – una pentru toate unităţile de execuţie;
 variantă descentralizată – câte una lângă fiecare unitate de
execuţie.

Cap.3. Arhitectura microprocesoarelor 136

Cap.3. Arhitectura microprocesoarelor 68


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [4/7]


Principiul de lucru al unei arhitecturi superscalare [3/6]
 Execuţia instrucţiunilor se face după conceptul out of
order execution.
execution Acest concept înseamnă că
instrucţiunile nu se vor executa în ordinea lor logică, aşa
cum sunt înserate în program, ci în ordinea dictată de
disponibilitatea datelor necesare executării acestora.
 Cum în final va trebui să se restabilească ordinea logică
a instrucţiunilor, înseamnă că scrierea rezultatelor în
setul intern de registre se va face în ordinea logică a
instrucţiunilor conform conceptului de in order
completion. Această reordonare a instrucţiunilor are loc
într-o altă memorie tampon numită Reorder Buffer.

Cap.3. Arhitectura microprocesoarelor 137

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [5/7]


Principiul de lucru al unei arhitecturi superscalare [4/6]
 Executare Cache de instructiuni
R0
instrucţiunilor R1
R2
I1 şi I3 R3
RS

I4: R8:= R7*R10
Setul de registre
I3: R7:= R8+R9
Ordinea de
I2: R4:= R1+ R4
executare a
instructiunilor I1: R1:= R2*R3

Buffer de
Unitati de I3: R7:= R8+R9 I1: R1:= R2*R3 reordonare
executie EU1 EU2 EUn
a dr e sa + *
I4: R8
I3: R7
I2: R4
I1: R1

Cap.3. Arhitectura microprocesoarelor 138

Cap.3. Arhitectura microprocesoarelor 69


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [6/7]


Principiul de lucru al unei arhitecturi superscalare [5/6]
 Rescrierea Cache de instructiuni
R0
din Reorder R1
R2
Buffer în R3
setul de RS

I4: R8:= R7*R10
registre a I3: R7:= R8+R9
Setul de registre
Ordinea de
rezultatelor executare a I2: R4:= R1+ R4
I1: R1:= R2*R3
instructiunilor
instrucţiunilor
I1 şi I3 (R1 şi
Buffer de
R7) Unitati de I3: R7:= R8+R9
EU2
I1: R1:= R2*R3 reordonare
executie EU1 EUn
a dr e sa + *

I4: R8
I3: R7
I2: R4

Cap.3. Arhitectura microprocesoarelor 139

Circuite programabile cu aplicaţii biomedicale

4. Arhitectura superscalar [7/7]


Principiul de lucru al unei arhitecturi superscalare [6/6]
 Executarea Cache de instructiuni
R0
instrucţiunilor R1
R2
I2 şi I4 R3
RS

I4: R8:= R7*R10
Setul de registre
I3: R7:= R8+R9
Ordinea de
I2: R4:= R1+ R4
executare a
instructiunilor I1: R1:= R2*R3

Buffer de
Unitati de I2: R4:= R1+ R4 I4: R8:= R7*R10 reordonare
executie EU1 EU2 EUn
a dr e sa + *

I4: R8
I3: R7
I2: R4

Cap.3. Arhitectura microprocesoarelor 140

Cap.3. Arhitectura microprocesoarelor 70


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Procesoare auxiliare [1/2]


 În funcţie de sarcinile pe care le îndeplinesc,
procesoarele auxiliare se împart în:
 Procesoare auxiliare care extind HW de bază al
microprocesorului (Coprocesoare aritmetice, controlere pentru
managementul memoriei etc.)
 Procesoare (controlere) auxiliare pentru controlul
echipamentelor periferice (controlere grafice, controlere de
comunicaţie etc.)

 ÎÎn funcţie
f ţi de
d gradul
d l de
d acces a procesoarelor
l
auxiliare la resursele sistemului avem:
 Procesoare auxiliare de tip sclav;
 Coprocesoare.

Cap.3. Arhitectura microprocesoarelor 141

Circuite programabile cu aplicaţii biomedicale

5. Procesoare auxiliare [2/2]


CPU
Comenzi Alte
componente
Semn. stare
Microprocesor Procesor auxiliar de sistem
a) Procesoare
Date
auxiliare
ili care
extind HW de
bază al P
Magistrale de sistem

a)

b) Procesoare Unitate I/0

((controlere)) Comen i
Comenzi
auxiliare pentru Microprocesor Procesor auxiliar Semn. stare Periferic
controlul
Date
echipamentelor
periferice
Magistrale de sistem

b)
Cap.3. Arhitectura microprocesoarelor 142

Cap.3. Arhitectura microprocesoarelor 71


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [1/8]


 La reprezentarea binară a numerelor reale se poate
pune virgula într-o anume poziţie fixă, împărţind în felul
acesta reprezentarea în parte întreagă şi partea
fracţionară.
N = bn–12n–1 + ….. b121 + b020, + b–12–1 + … + b–m2–m
partea întreagă , partea fracţionară

 Poziţia fixă a virgulei duce la apariţia unei erori


semnificative
ifi ti maii ales
l îîn cazull multiplicărilor
lti li ă il şii di
divizărilor
i ă il
(din cauza rotunjirilor ce se impun).

Cap.3. Arhitectura microprocesoarelor 143

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [2/8]


 Apare necesitatea reprezentării în virgulă mobilă:
Z = ± M · 2±E
unde:
M – reprezintă mantisa numărului
(în cazul în care 0,5 ≤ M < 1 se spune că avem o reprezentare
normalizată iar pentru M < 0,5 vom avea o reprezentare
nenormalizată)
E – exponent
2±E – factor de scală

Cap.3. Arhitectura microprocesoarelor 144

Cap.3. Arhitectura microprocesoarelor 72


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [3/8]

msb lsb

E
Exponent
t M ti
Mantisa
a) cu exponent şi mantisă
Bitul de semn al exponentului

Bitul de semn al mantisei

a)

msb lsb

b) cu caracteristică şi mantisă Caracteristica Mantisa

Bitul de semn al mantisei


b)

Cap.3. Arhitectura microprocesoarelor 145

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [4/8]


 Ex.1. Fie numărul următor:
Z1 = –20.0 = –0,625 · 2+5

 Reprezentarea binară a numărului cu exponent şi


mantisă este următoarea:
1 0 0000101 10100000
BSm BSe E=5 M=0.625

Cap.3. Arhitectura microprocesoarelor 146

Cap.3. Arhitectura microprocesoarelor 73


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [5/8]


 Pentru a economisi un bit în reprezentarea cu virgulă
mobilă se recurge la transformarea exponentului (E) în
caracteristică (C) cu relaţia:
C=E+K

 De exemplu, dacă pentru numărul de mai sus se recurge


la o reprezentare a mantisei prin mărime şi semn, iar a
caracteristicii prin translatarea exponentului reprezentat
prin
i mărime
ăi şii semn pe 8 biţi
biţi, cu o constantă
t tă egală
lă cu
modulul valorii celei mai negative din domeniu. În acest
caz, domeniul de reprezentare va fi de la –127 la +128 şi
în consecinţă K = – (–127) = 127.

Cap.3. Arhitectura microprocesoarelor 147

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [6/8]


 Cu aceste precizări, reprezentarea în virgulă mobilă, cu
mantisă şi caracteristică, pentru numărul de mai sus,
este următoarea:
Z1 = –20.0 = –0,625 · 25+127 = –0,625 · 2132

 Reprezentarea binară a numărului cu caracteristică şi


mantisă este următoarea:
1 10000100 10100000
BS C 132
C=132 M 0 625
M=0,625

Cap.3. Arhitectura microprocesoarelor 148

Cap.3. Arhitectura microprocesoarelor 74


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [7/8]


 Reconversia numerelor reprezentate prin caracteristică
şi mantisă se face cu relaţia:
Z = (–1)
( 1)BS · M · 2C–K
C K

 Reprezentarea în virgulă mobilă, permite acoperirea unui


domeniu de reprezentare a numerelor mult mai mare
decât în cazul reprezentării în virgulă fixă.
 Domeniul de reprezentare va depinde în mod direct de
numărul de biţi rezervaţi reprezentării mantisei respectiv
exponentului.

Cap.3. Arhitectura microprocesoarelor 149

Circuite programabile cu aplicaţii biomedicale

6. Reprezentarea numerelor în virgulă mobilă [8/8]


 Mantisă normalizată înseamnă
0,5 <= M <= 1
 Î
Înseamnă că prima cifră după virgulă este 1 (0,1…)
 Vom putea economisi încă un bit în reprezentarea
mantisei dacă înmulţim cu 2
1 <= M <= 2
 Reprezentarea numărului va fi de forma 1,...
 Cum acest bit din faţa virgulei este în totdeauna 1 el va
putea fi economisit prin nereprezentare (Hidden Bit)

Cap.3. Arhitectura microprocesoarelor 150

Cap.3. Arhitectura microprocesoarelor 75


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6.1. Standardul IEEE 754 [1/4]

 Până la adoptarea acestui standard, fiecare producător


îşi avea propriile reguli de reprezentare a numerelor în
virgulă mobilă.

 Cu adoptarea standardului IEEE 754 au fost unificate


reprezentările numerelor, algoritmii de rotunjire precum
şi modul de tratare a situaţiilor de excepţie.

Cap.3. Arhitectura microprocesoarelor 151

Circuite programabile cu aplicaţii biomedicale

6.1. Standardul IEEE 754 [2/4]

31 30 23 22 0
Formatul de 32 de Biti

BS Caracteristica Mantisa

63 62 52 51 0
Formatul de 64 de Biti

BS Caracteristica Mantisa

79 78 64 63 0
Formatul de
80 de Biti
BS Caracteristica Mantisa

Cap.3. Arhitectura microprocesoarelor 152

Cap.3. Arhitectura microprocesoarelor 76


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

6.1. Standardul IEEE 754 [3/4]


 Ex. 2. Fie numărul z = 3. Se cere a fi reprezentat în
formatul de 32 de biţi.
3 = 011B = 11,1
1 · 21

 Forma binară a numărului este următoarea:


31 30 23 22 0
0 10000000 (1) 100000000000000000000000
BS
C=127+1=128
(HB)
M=0,5

Cap.3. Arhitectura microprocesoarelor 153

Circuite programabile cu aplicaţii biomedicale

6.1. Standardul IEEE 754 [4/4]


 Ex.3. Ce număr reprezintă secvenţa de mai jos
1 10000001 01000000000000000000000
BS c7 c0 m22 m0

 Z=(–1)BS · 2C–K · 1,M = (–1) · 2129–127 · 1,250 =


= – 22 · 1,25 = –5

Cap.3. Arhitectura microprocesoarelor 154

Cap.3. Arhitectura microprocesoarelor 77


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Cap.4. Memoria externă

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever PAŞCA


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins
1. Noţiuni introductive, definiţii
2. Celule elementare de memorie
3. Circuite de memorie
4. Memoria cache

Cap.4. Memoria externă 2

Cap.4. Memoria externă 1


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

Obiective
 Prezentarea structurilor şi a modului de funcţionare a
celulelor elementare de memorie
 Prezentarea şi înţelegerea principiului de lucru a
circuitelor de memorie
 Înţelegerea modului de realizare şi de operare a
memoriilor cache

Cap.4. Memoria externă 3

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [1/16]

 Se defineşte funcţia de memorare ca fiind posibilitatea


de regăsire a unor informaţii,
informaţii reprezentate sub formă
binară, care au fost stocate anterior.

 Se defineşte circuitul de memorie ca fiind circuitul


electronic realizat cu dispozitive semiconductoare care
realizează funcţia de memorare.

Cap.4. Memoria externă 4

Cap.4. Memoria externă 2


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [2/16]


Tipuri de memorie
După caracterul funcţiei de memorare:

 Funcţia de memorare numai de citire

 Funcţia de memorare preponderent de citire şi ocazional


de scriere

 Funcţia de memorare cu citire şi scriere curentă de date

Cap.4. Memoria externă 5

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [3/16]


Funcţia de memorare numai de citire [1/2]
 ROM (Read Only Memory)
S t programate
Sunt t ded către
ăt fabricant,
f bi t modificarea
difi sau
ştergerea conţinutului nu sunt posibile motiv pentru care
ele sunt doar citite, pe cale electrică, de către sistemul
care le utilizează.
 PROM (Programmable Read Only Memory)
Sunt livrate de către fabricant fără conţinut informaţional.
Sunt programabile, pe cale electrică, de către utilizator.
Odată programate conţinutul lor nu mai poate fi modificat
sau şters şi vor putea fi doar citite de către sistemul în
care au fost încorporate.

Cap.4. Memoria externă 6

Cap.4. Memoria externă 3


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [4/16]


Funcţia de memorare numai de citire [2/2]

 Memoriile
M iil ROM şii PROM suntt memoriiii nevolatile
l til şii suntt
utilizate pentru stocarea unor date fixe (de exemplu,
constantele π, e etc.), rutine de bază ale sistemelor de
operare, programe aplicative înglobate în sisteme
dedicate etc.

Cap.4. Memoria externă 7

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [5/16]


Funcţia de memorare preponderent de citire şi ocazional
de scriere [1/4]
 EPROM (Erasable Programmable Read Only Memory)
Se programează pe cale electrică de către utilizator.
Odată programate şi introduse în sistem vor putea fi
numai citite de acesta. Ştergerea este posibilă dar nu
poate fi făcută de sistemul utilizator ci pe altă cale de
exemplu prin expunere la raze UV. Ştergerea nu este
selectivă în raport cu conţinutul informaţional. După
ştergere memoria poate fi reprogramată.

Cap.4. Memoria externă 8

Cap.4. Memoria externă 4


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [6/16]


Funcţia de memorare preponderent de citire şi ocazional
de scriere [2/4]
 OTPEPROM (One Time Programmable EPROM) – Este
o variantă ieftină de EPROM, şi aşa cum sugerează şi
numele acest tip de circuit, se programează o singură
dată, după care datele se vor putea doar citi. Se
foloseşte în general pentru stocarea variantelor finale ale
programelor aplicative din sistemele dedicate.

 EEPROM (Electrically Erasable Programmable Read


Only Memory)
Aceste memorii pot fi citite, şterse şi rescrise, în mod
selectiv, pe cale electrică, de către sistemul care le
utilează.
Cap.4. Memoria externă 9

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [7/16]


Funcţia de memorare preponderent de citire şi ocazional
de scriere [3/4]

 Memoriile EPROM şi EEPROM sunt de asemenea


memorii nevolatile, domeniile de utilizare sunt
asemănătoare cu cele ale memoriilor ROM şi PROM,
sunt mai scumpe dar foarte utile în activitatea de
proiectare.

Cap.4. Memoria externă 10

Cap.4. Memoria externă 5


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [8/16]


Funcţia de memorare preponderent de citire şi ocazional
de scriere [4/4]
 Memoria FLASH
Acest tip de memorie reprogramabilă practic a
revoluţionat modul de gândire a inginerilor proiectanţi.
Re programabilitatea în cadrul sistemului care le
utilizează le face foarte utile în aplicaţii cu
microprocesoare şi microcontrolere în care programele
stocate sunt supuse unor modificări, revizuiri etc. cum ar
fi de exemplu BIOS-ul din calculatoare. Alte domenii de
utilizare ar fi: telefonia mobilă, Memory sticks etc.

Cap.4. Memoria externă 11

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [9/16]


Funcţia de memorare cu citire şi scriere curentă [1/2]
 SRAM (Static Random Access Memory)
Stochează informaţia în circuite de tip bistabil
bistabil, sunt
rapide, scumpe şi volatile. Datorită structurii de bistabil a
celulei, aceasta presupune utilizarea mai multor
tranzistore ceea ce înseamnă că celula ocupă o
suprafaţă de siliciu relativ mare şi în consecinţă acest tip
de memorie se va fabrica la capacităţi relativ mici.

Cap.4. Memoria externă 12

Cap.4. Memoria externă 6


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [10/16]


Funcţia de memorare cu citire şi scriere curentă [2/2]
 DRAM (Dynamic Random Access Memory)
Informaţia este stocată sub forma unei cantităţi de
sarcină de pe un condensator conectat în serie cu un
tranzistor de selecţie. Schema fiind simplă celula va
ocupa o suprafaţă de siliciu mică şi în consecinţă aceste
memorii se pot fabrica la capacităţi foarte mari şi la un
preţ relativ scăzut. Deoarece citirea informaţiei este
distructivă operaţia de citire este urmată întotdeauna de
o operaţie de rescriere motiv pentru care aceste memorii
sunt lente. În plus condensatorul care stochează
informaţia se descarcă în timp motiv pentru care este
nevoie de o reîmprospătare periodică a informaţiei
stocate (Refresh).

Cap.4. Memoria externă 13

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [11/16]


Semnale de adresă, date şi comenzi tipice

a d a d
Memorie Memorie
Adresa de tip Date Adresa de tip Date
RAM ROM

R/W R
Cerere de acces Cerere de acces

Cap.4. Memoria externă 14

Cap.4. Memoria externă 7


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [12/16]


Organizarea memoriei

a) pe bit
b) pe octet
c) pe cuvinte
d) pe cuvinte duble
0 7 0 15 8 7 0 31 24 23 16 15 8 7 0
a. b. c. d.

m-1 1 0 Celula elementara de


0
°° ° memorie
1
°° °

Structura tipică a •


circuitului de Adresa •
memorie
n-1
°° °

Date
Cap.4. Memoria externă 15

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [13/16]


Capacitatea memoriei
 Capacitatea memoriei reprezintă numărul de biţi care pot
fi memoraţi
memoraţi. În exemplul schematic prezentat mai sus sus,
capacitatea memoriei este de C = m · n biţi.
 Se exprimă de obicei în multipli de biţi, ca de exemplu
1024 biţi = 1 Kilobit = 1Kb sau Mb (Mega bit), Gb (Giga
bit) (pentru uşurinţa calculelor este bine să se reţină
următoarele K ≈ 210, M ≈ 220, G ≈ 230).
 Foarte frecvent se utilizează ca unitate de măsură Byte-
Byte
ul care reprezintă un cuvânt de 8 biţi şi respectiv multipli
ai acestuia: KB – KiloByte, MB – MegaByte, GB –
GigaByte

Cap.4. Memoria externă 16

Cap.4. Memoria externă 8


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [14/16]


Timpul de acces [1/2]
 Timpul de acces (acces time) reprezintă intervalul de
timp dintre momentul stabilizării semnalelor electrice
reprezentând cuvântul de cod de adresă aplicat
circuitului pe AB până în momentul în care datele citite
(cu nivele de tensiune stabile) apar pe ieşirile de date ale
memoriei şi sunt depuse pe DB;
adresa stabila

Adrese

date valide

Date

Cap.4. Memoria externă Timp de acces 17

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [15/16]


Timpul de acces [2/2]
 Durata unui ciclu de memorie reprezintă intervalul de
timp între două accesări posibile ale memoriei
memoriei. La
memoriile de tip ROM, PROM, EPROM, EEPROM şi
SRAM acest timp este egal cu timpul de acces pe când
la memoriile de tip DRAM durata unui ciclu cuprinde
timpul de acces la care se mai adaugă un interval de
timp necesar reînscrierii informaţiei.

Cap.4. Memoria externă 18

Cap.4. Memoria externă 9


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Noţiuni introductive, definiţii [16/16]


Viteza de lucru a memoriei
 Pentru a caracteriza viteza de lucru al unei memorii se
foloseşte mărimea numită rata de date (Data Rate)
definită ca raportul dintre lăţimea în biţi a cuvântului citit
împărţit la timpul de acces.
 De exemplu, în cazul unei memorii SRAM de 64K · 16
biţi şi un timp de acces de 15 ns, rata de date va fi egală
cu:
16 biti Mb
Data Rate   16 bit  67 MHz  134
15 ns s

Cap.4. Memoria externă 19

Circuite programabile cu aplicaţii biomedicale

2. Celule elementare de memorie [1/9]


Celulă de memorie pentru memorii ROM
a) cu strat normal de bioxid V DD

de siliciu
IDS
b) cu strat suplimentar de S G(WL)
IDS

bioxid de siliciu D( BL) T1


 Datorită grosimii
diferite a stratului de n
p
n V GS
t1 t2 t
bioxid de siliciu din V p1

dreptul porţii, cele 2 V GSc V GS


WL BL

tranzistoare vor avea a)


t1
caracteristici de t2
transfer cu pragul de V DD
t
deschidere diferit.
 La comanda cu o G(WL)
IDS IDS
tensiune de poarta S
D( BL)
cuprinsă între cele T2

două praguri, n n V GS
tranzistorul a) se p VP2 t1 t2 t
deschide (info 0 citit în WL BL
drenă) iar tranzistorul b) V GSc V GS

b) nu se deschide (info t1
1 citit în drenă). t2
Cap.4. Memoria externă t 20

Cap.4. Memoria externă 10


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite de memorie [1/9]


Schema de principiu a unui circuit de memorie
 Cu liniile de adresă se selectează o locaţie de memorie în care se poate
scrie, respectiv citi, un octet.

Di
8

or de adresa
10
--- 1024 cuvinte a
cite 8 Biti
Decodo

Linii de adresa

1023

D0

Cap.4. Memoria externă 29

Circuite programabile cu aplicaţii biomedicale

3. Circuite de memorie [2/9]


Schema de principiu a circuitului de memorie ROM
0
Decodor de adresa

Arie de celule
10 ROM
---

1024 cuvinte
a câte 8 Biti
Linii de adresa

1023

Power down Amplificatoare de citire


+ 5V _ +US
0V _

CS
OE
Unitate de comanda

D0 D1 D7

Cap.4. Memoria externă 30

Cap.4. Memoria externă 15


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite de memorie [9/9]


Circuitul de memorie DRAM [3/3]
 Principiul
accesării Adresse
d esse Linie Col 1
Col.1 Col 2
Col.2 Col 3
Col.3 Col n
Col.n

RAS
unui
pachet de CAS

Citire
date R/W

Dout D.1 D.2 D.3 D.n


Daten

Scriere
R/W

D in D.1 D.2 D.3 D.n


Daten

Cap.4. Memoria externă 37

Circuite programabile cu aplicaţii biomedicale

4. Memoria cache [1/18]


Structurile de memorie ale unui microcalculator

r0
Memoria Memoria Hard
Cache principala discul
r31

32x32 Bit 256 kB 512 MB

SRAM SRAM DRAM 60 GB

1 ns 5 ns 20 ns 10 ms
Cap.4. Memoria externă 38

Cap.4. Memoria externă 19


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Memoria cache [2/18]


 Dezvoltarea tehnologică din ultimii ani a permis practic o
creştere a capacităţii memoriilor DRAM (factor de
creştere
ş 4 în trei ani).
) În acelaşi
ş timp
p însă,, viteza lor de
lucru nu a cunoscut o creştere asemănătoare (timpul de
acces s-a redus doar cu o treime în ultimii 10 ani).
 Din motivele de mai sus, discrepanţa dintre viteza de
lucru a procesoarelor şi viteza de lucru a memoriilor
DRAM s-a accentuat.
 Soluţia de îmbunătăţire a performanţelor sistemelor de
calcul la nivelul sistemului,
calcul, sistemului constă în introducerea între
procesor şi memoria DRAM, a unei memorii rapide
numită cache, pentru stocarea acelor date (Data Cache)
sau instrucţiuni (Instruction Cache) de care procesorul
tocmai are nevoie să le acceseze.
Cap.4. Memoria externă 39

Circuite programabile cu aplicaţii biomedicale

4. Memoria cache [3/18]


 Memoriile cache sunt de tipul SRAM, deci de viteză
mare, dar şi de capacitate relativ mică, ceea ce va
permite stocarea doar a unei p
p părţi
ţ reduse din p
programul
g
în curs de execuţie cu datele aferente.
 Se observă că, de exemplu, timpul de acces la memoria
cache este de patru ori mai mic decât la memoria DRAM
şi, în consecinţă, dacă se va reuşi să se organizeze
sistemul astfel ca, printr-un mecanism eficient de schimb
de date şi instrucţiuni dintre memoria principală şi
memoriile cache
cache, în 90% din cazuri instrucţiunile şi
datele să poată fi accesate din memoriile cache şi nu din
memoria principală, atunci se va putea asigura o
creştere substanţială în viteza de execuţie a
programelor.

Cap.4. Memoria externă 40

Cap.4. Memoria externă 20


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Memoria cache [4/18]


 Lucrul acesta este posibil deoarece programele au
următoarele proprietăţi de localizare:
 localizarea în timp în sensul că instrucţiunile şi datele tocmai
folosite vor fi folosite din nou cu o probabilitate foarte mare (de
exemplu cazul instrucţiunilor care asigură transferul unui bloc de
date);
 localizarea în spaţiu în sensul că datele şi instrucţiunile aflate
în memorie la adrese apropiate de adresele instrucţiunilor şi
datelor tocmai utilizate vor fi folosite cu o probabilitate mult mai
mare decât datele sau instrucţiunile aflate la adrese depărtate.

Cap.4. Memoria externă 41

Circuite programabile cu aplicaţii biomedicale

4. Memoria cache [5/18]


Schema de principiu a memoriei cache
Magistrala de adrese

Comparator

Memoria de date

Adresa Data

Memoria de adrese
Magistrala de date

Cap.4. Memoria externă 42

Cap.4. Memoria externă 21


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Cap.6. Circuite configurabile

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever Paşca


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins
1. Introducere
2. Principii de organizare şi de programare
3. Circuite logice programabile
4. Circuite logice programabile complexe
5. Arii logice programabile

Cap.6. Circuite configurabile 2

Cap.6. Circuite configurabile 1


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

Obiective
 Înţelegerea principiului de lucru al unui circuit
configurabil

 Prezentarea principiilor de organizare şi de programare

 Înţelegerea principiului de lucru al unor circuite


configurabile reprezentative

 Conştientizarea importanţei utilizării acestor circuite în


proiectarea unor aplicaţii din domeniul electronicii
medicale

Cap.6. Circuite configurabile 3

Circuite programabile cu aplicaţii biomedicale

1. Introducere [1/5]
 Dacă se urmăreşte evoluţia în domeniul circuitelor
integrate digitale, se constată că, pe măsura evoluţiei în
domeniul tehnologiei, au fost realizate circuite integrate
specializate cu grade crescânde de complexitate, cum ar
fi cipuri cu porţi logice, bistabile, numărătoare, unităţi
aritmetice şi logice etc. Se poate identifica această
evoluţie în diversele familii de circuite integrate digitale,
cum ar fi familiile TTL, MOS şi CMOS.

Cap.6. Circuite configurabile 4

Cap.6. Circuite configurabile 2


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere [2/5]
 Proiectarea cu asemenea circuite integrate presupune
ca, după faza de elaborare a schemei, să se treacă la
alegerea circuitelor integrate, dintr-o anume familie, cu
care să se poată realiza funcţiile care compun schema.
 Aceste circuite integrate urmează apoi a fi montate pe
un suport, care să permită şi realizarea interconexiunilor
(cablaj imprimat).
 Această procedură este costisitoare şi mare
consumatoare de timp.
 Din acest motiv, în decursul anilor, au existat numeroase
preocupări vizând realizarea unor circuite programabile
sau configurabile de către utilizator.

Cap.6. Circuite configurabile 5

Circuite programabile cu aplicaţii biomedicale

1. Introducere [3/5]
 La ora actuală, există o mare varietate de asemenea
circuite utilizabile cu eficienţă maximă la realizarea de
prototipuri, serii mici, sisteme dedicate etc.
 Durata proiectării şi a punerii în funcţiune a aplicaţiilor,
folosind astfel de circuite programabile, se reduce cu
câteva ordine de mărime (la nivelul câtorva ore de lucru).
 Se spune despre un circuit integrat digital că este
programabil dacă utilizatorul îl poate configura (în
funcţie de aplicaţia concretă dorită), prin programare,
astfel încât să realizeze o anumită funcţie. Aceste
circuite sunt livrate de către fabricant fără un anume
conţinut informaţional, ele urmând a fi "personalizate", în
funcţie de aplicaţie, prin programarea făcută de utilizator,
fără intervenţia fabricantului.
Cap.6. Circuite configurabile 6

Cap.6. Circuite configurabile 3


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere [4/5]
 Există trei mari categorii de circuite integrate digitale
programabile:
 circuite de memorie care memorează informaţia (funcţia pe
care trebuie să o realizeze) nevolatil (ROM, PROM) sau volatil
(RAM);
 microprocesoare (microcalculatoare) care realizează anumite
funcţii prin rularea unui program scris folosind un set prestabilit
de instrucţiuni;
 circuite logice programabile la care programarea funcţiilor
logice, care pot varia de la funcţii booleene simple până la
automate finite complexe, se face prin arderea sau nu a unor
fuzibile sau prin utilizarea unor celule de memorie SRAM a căror
conţinut furnizează circuitului informaţiile necesare privind
funcţia logică care trebuie realizată, conexiunile între blocuri etc.

Cap.6. Circuite configurabile 7

Circuite programabile cu aplicaţii biomedicale

1. Introducere [5/8]
 Observaţie:
Există o deosebire esenţială în ceea ce priveşte
programarea microprocesoarelor (microcalculatoarelor)
şi programarea circuitelor logice programabile.
 În cazul microprocesorului, funcţia se realizează prin rularea
unui program scris ca o înşiruire de instrucţiuni specifice
procesorului. Fiecare instrucţiune este citită, decodificată iar apoi
executată de către microprocesor.
 În cazul circuitelor logice programabile, programarea înseamnă
alegerea funcţiilor şi a interconexiunilor realizate de circuit prin
arderea unor fuzibile sau prin alegerea conţinutului unor celule
SRAM. Din acest motiv, considerăm că acestor circuite li se
potriveşte mai mult denumirea de circuite configurabile.

Cap.6. Circuite configurabile 8

Cap.6. Circuite configurabile 4


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere [6/8]
 În funcţie de structura lor internă, circuitele logice
programabile pot fi clasificate, la rândul lor, în
următoarele trei mari categorii:
 Circuite logice programabile simple
(Programmable Logic Device – PLD);
 Circuite logice programabile complexe
(Complex Programmable Logic Device – CPLD);
 Arii logice programabile
(Field Programmable Gate Array – FPGA).

Cap.6. Circuite configurabile 9

Circuite programabile cu aplicaţii biomedicale

1. Introducere [7/8]
 În funcţie de modul de programare, circuitele logice
programabile pot fi clasificate de asemenea în trei
categorii:
 Programabile ireversibil;
 Programare se bazează pe arderea sau nu a unor fuzibile plasate în
punctele de conexiune. Un circuit odată programat, va realiza o
anumită funcţie, nefiind posibile corecturi sau modificări ulterioare.
 Reprogramabile;
 Aceste circuite utilizează în locul fuzibilelor tehnologia EPROM sau
EEPROM. Ambele se programează pe cale electrică şi permit
ştergerea şi reprogramarea legăturilor făcute. În cazul tehnologiei
EPROM, ştergerea este neselectivă (prin iradiere cu raze
ultraviolete), în schimb, în cazul tehnologiei EEPROM, ştergerea
este selectivă şi se face pe cale electrică. Varianta cu tehnologia
EEPROM este mai flexibilă şi mai ieftină (lipseşte fereastra de cuarţ
prin care razele ultraviolete pătrund la structura EPROM).

Cap.6. Circuite configurabile 10

Cap.6. Circuite configurabile 5


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere [8/8]
 Configurabile în mod dinamic.
 Acest tip de programare este tipică ariilor logice din ultimele
generaţii.
 La aceste circuite, în punctele de conexiune şi de alegere a
funcţiilor, sunt plasate tranzistoare, funcţionând ca nişte
întrerupătoare, comandate fiecare de câte o celulă RAM statică
(SRAM).
 Starea de conducţie sau de blocare a tranzistorului depinde de
informaţia prezentă în celula de memorie.
 Pentru a realiza o anumită funcţie, programarea circuitului se
realizează prin încărcarea acestor celule SRAM cu unităţi sau
zerouri.
 Celulele SRAM sunt interconectate într-o schemă de registru de
deplasare care în procesul de programare se încarcă serial.
 Dacă se doreşte schimbarea funcţiei, adică reprogramarea
circuitului, este nevoie doar de reîncărcarea celulelor SRAM în
întregime sau parţial (zonal).

Cap.6. Circuite configurabile 11

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [1/20]


Principii de organizare şi de programare [1/2]
 Un circuit logic programabil va trebui să aibă o structură
care să permită realizarea practică a oricărei funcţii
booleene. Suportul teoretic pentru o astfel de soluţie îl
oferă algebra booleană prin următoarele variante:
 existenţa unor seturi de funcţii elementare complete (cum ar fi
ŞI, SAU, NU respectiv ŞI-NU sau SAU-NU etc.) care pot fi
folosite pentru a scrie expresia oricărei funcţii booleene ca o
sumă de produse (forma disjunctivă) sau ca un produs de sume
(forma conjunctivă);
 teorema de dezvoltare a lui Shanon care conduce practic la
posibilitatea realizării unor funcţii universale de n variabile
utilizând circuite de multiplexare;
 realizarea unei funcţii arbitrare de n variabile prin memorarea
valorilor acesteia într-o memorie (look up table).

Cap.6. Circuite configurabile 12

Cap.6. Circuite configurabile 6


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [2/20]


Principii de organizare şi de programare [2/2]
 Având în vedere cele de mai sus, un circuit logic
programabil va putea fi realizat fie dintr-o mulţime de
porţi logice corespunzătoare unui set complet de funcţii
(de exemplu porţi ŞI, SAU, NU), fie dintr-o mulţime de
circuite capabile să realizeze funcţii universale de un
număr oarecare de variabile (circuite de multiplexare,
sau memorii).
 În primul caz, prin programare, se va asigura
interconectarea acestor porţi elementare pentru a realiza
funcţia dorită (de exemplu, ca sumă de produse). În al
doilea caz, programarea va viza atât alegerea funcţiei
generate de către fiecare bloc generator de funcţii
universale cât şi interconectarea acestora.
Cap.6. Circuite configurabile 13

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [3/20]


Notaţii [1/5]
 Notaţia clasică a unei funcţii ŞI de patru variabile, starea
fuzibilelor şi notaţia simbolică folosită în cazul circuitelor
logice programabile este ilustrată mai jos:

a b c d a b c d
a
b a•b•d a•b•d a•b•d
1  
d

Fuzibil Fuzibil
Intact Ars

Cap.6. Circuite configurabile 14

Cap.6. Circuite configurabile 7


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [4/20]


Notaţii [2/5]
 Suma logică este notată în mod asemănător. Notaţia
pentru o funcţie SAU de patru variabile este prezentată
mai jos:

a b c d
a
b a+b+d a+b+d
0 
d

Cap.6. Circuite configurabile 15

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [5/20]


Notaţii [3/5]
 Notaţia simbolică pentru o sumă de două produse este
reprezentată astfel:

Notatie:
a

b 
c

d
_ _
a•b•d + a•b•c

Cap.6. Circuite configurabile 16

Cap.6. Circuite configurabile 8


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [6/20]


Notaţii [4/5]
 Semnalul de ieşire poate fi furnizat în diferite variante ilustrate astfel:
ieşire Active High (a), ieşire Active Low (b), ieşire cu inversare
programabilă (c), ieşire Tri-State comandată de semnalul
Output Enable – OE (d) şi ieşire cu memorarea semnalului într-un
bistabil de tip D cu posibilitatea utilizării ieşirii acestuia ca semnal de
reacţie (e)
_ _
f f f sau f

(a) (b) (c)

Tact

D Q
OE
CK _
_ Q
f sau HiZ

Cap.6. Circuite configurabile (d) (e) 17

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [7/20]


Notaţii [5/5]
 Prezenţa bistabilului de memorare şi a buclei de reacţie
va extinde aria aplicaţiilor acestor circuite din sfera
circuitelor logice combinaţionale şi în sfera circuitelor
secvenţiale (automate finite).

Cap.6. Circuite configurabile 18

Cap.6. Circuite configurabile 9


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [8/20]


Structuri de bază [1/12]
 Orice expresie booleană poate fi scrisă ca o sumă de m
termeni, fiecare termen la rândul lui fiind un produs de n
variabile. În consecinţă, un circuit SAU cu m intrări şi n
circuite ŞI sunt suficiente pentru a realiza orice circuit
logic combinaţional. Numărul intrărilor în circuitele ŞI
poate fi mai mic sau egal cu numărul n al variabilelor de
intrare.
 Arhitectura de bază a unui circuit logic programabil care
lucrează pe acest principiu va fi formată dintr-o mulţime
(arie) de circuite ŞI, alimentate din exterior cu semnalele
de intrare, şi o mulţime (arie) de circuite SAU, care vor
realiza funcţiile dorite prin sumarea produselor generate
de circuitele ŞI.

Cap.6. Circuite configurabile 19

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [9/20]


Structuri de bază [2/12]
 Gradul de complexitate al unui asemenea circuit va fi dat
de numărul variabilelor de intrare, numărul produselor
logice şi de numărul ieşirilor.

Produse
Logice
Intrari Arie de Arie de Iesiri
circuite SI circuite SAU

CIRCUIT LOGIC COMBINATIONAL

Cap.6. Circuite configurabile 20

Cap.6. Circuite configurabile 10


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [10/20]


Structuri de bază [3/12]

 În funcţie de zona programabilă, se disting următoarele


trei structuri fundamentale:
 Structura PROM (Programmable Read Only Memory), cu aria
de circuite ŞI fixă şi aria de circuite SAU programabilă;
 Structura PLA (Programmable Logic Array), cu ambele arii de
circuite logice programabile;
 Structura PAL (Programmable Array Logic) cu aria de circuite
ŞI programabilă şi aria de circuite SAU fixă.

Cap.6. Circuite configurabile 21

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [11/20]


Structuri de bază [4/12]
 Structura PROM (Programmable Read Only Memory)
 Caracteristica structurii este aceea că zona circuitelor ŞI nu este
programabilă, ceea ce înseamnă obţinerea unui număr fix – 2n
(decodare completă) – de produse logice. Zona programată este
doar a porţilor SAU, ceea ce permite alegerea produselor logice
necesare formării funcţiilor.

Cap.6. Circuite configurabile 22

Cap.6. Circuite configurabile 11


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [12/20]


Structuri de bază [5/12]
 Exemplu de realizarea a unui mănunchi de patru funcţii
booleene cu structura PROM.

a b

_ _
a•b
_
a•b
_
a•b

a•b

f1 = a
_
f 2 = a • b_
f1 f2 f3 f4
f3 = a + b _
_
f4 = a• b + a• b

Cap.6. Circuite configurabile 23

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [13/20]


Structuri de bază [6/12]
 Dezavantajul structurii PROM îl constituie tocmai universalitatea
sa (furnizează toate cele 2n produse posibile pentru cele n
variabile de intrare), în sensul că prin adăugarea unei variabile
suplimentare la intrare (n+1), numărul produselor se dublează
(2n+1 = 2 · 2n), ceea ce duce la dublarea ariei, la o utilizare
ineficientă a suprafeţei siliciului şi la mărirea preţul de cost.

 Majoritatea aplicaţiilor reclamă mai multe intrări, fără a fi însă


nevoie de o decodare completă (formarea tuturor produselor),
ceea ce sugerează soluţia următoare.

Cap.6. Circuite configurabile 24

Cap.6. Circuite configurabile 12


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [14/20]


Structuri de bază [7/12]
 Structura PLA (Programmable Logic Array)
 Se caracterizează prin faptul că ambele zone sunt programabile.
Programabilitatea zonei de decodare permite realizarea doar a
acelor produse de care este nevoie. În felul acesta, structura
permite lucrul cu un număr mare de variabile combinate într-un
număr redus de produse (mult mai puţine decât 2n).
 Introducerea fuzibilelor suplimentare implică, pe de o parte,
utilizarea unui număr crescut de circuite de selecţie pentru
programare (cost ridicat) şi, pe de altă parte, mărirea timpilor de
propagare a semnalelor de la intrare la ieşire (viteză redusă).

Cap.6. Circuite configurabile 25

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [16/20]


Structuri de bază [8/12]
 Exemplu de realizare a unui mănunchi de patru funcţii
booleene cu structura PLA:
a b

a
_
a• b
_
b
_
a• b

f1 = a
_
f 2 = a • b_
f1 f2 f3 f4
f3 = a + b _
_
f4 = a• b + a• b

Cap.6. Circuite configurabile 26

Cap.6. Circuite configurabile 13


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [17/20]


Structuri de bază [9/12]
 Structura PAL (Programmable Array Logic)
 Are zona circuitelor ŞI programabile şi zona circuitelor SAU fixă.
Ea reprezintă o soluţie optimă din punct de vedere al raportului
performanţă/cost în comparaţie cu celelalte două structuri.

Cap.6. Circuite configurabile 27

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [18/20]


Structuri de bază [10/12]
 Exemplu de realizare a unui mănunchi de patru funcţii cu
structura PAL:
a b

f1 = a
_
f 2 = a • b_
f1 f2 f3 f4
f 3 = a +_b
_
f4 = a• b + a• b
Cap.6. Circuite configurabile 28

Cap.6. Circuite configurabile 14


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [19/20]


Structuri de bază [11/12]

 Prin adăugarea la ieşire a unor bistabile, se obţine o structură


PAL secvenţială utilă la realizarea automatelor finite. Un
exemplu de asemenea circuit este prezentat în diapozitivul
următor.

 Dacă în locul fuzibilelor sunt utilizate structuri EPROM sau


EEPROM, atunci se obţine o structură de circuit logic
programabil de tipul EPLD (Erasable Programmable Logic
Device).

Cap.6. Circuite configurabile 29

Circuite programabile cu aplicaţii biomedicale

3. Circuite logice programabile simple [20/20]


Structuri de bază [12/12]
 Structura PAL
(Programmable Array
Logic) secvenţială

D Q
CK _
Q

D Q
CK _
ARIE LOGICA Q
PROGRAMABILA

D Q
CK _
Q

D Q
CK _
Q
64 termeni
produs

Cap.6. Circuite configurabile 30

Cap.6. Circuite configurabile 15


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Circuite logice programabile complexe [1/3]


Structura CPLD [1/3]
 Circuitele PLD prezentate anterior au două mari
dezavantaje:
 nu permit realizarea de funcţii logice cu mai multe nivele;
 nu permit folosirea în comun, de către mai multe funcţii, a
produselor logice.

 Ambele dezavantaje sunt datorate faptului că, în cazul


circuitelor PLD, este posibil să se programeze funcţiile,
dar nu este posibil să se realizeze interconectarea
acestora.

Cap.6. Circuite configurabile 31

Circuite programabile cu aplicaţii biomedicale

4. Circuite logice programabile complexe [2/3]


Structura CPLD [2/3]

 Dezavantajele menţionate sunt eliminate, în cazul


structurilor de circuite logice programabile complexe
(CPLD – Complex Programmable Logic Device), printr-o
modificare a arhitecturii.
 În esenţă, un circuit CPLD se compune din două părţi:
 un număr de macrocelule universale programabile (MUP)
realizând funcţii booleene de n variabile; sunt posibile câteva
variante de implementare: cu circuite de multiplexare, cu circuite
ŞI-SAU, cu memorii etc.;
 o reţea de interconexiuni care permite, pe de o parte, selectarea
variabilelor de intrare şi aplicarea lor macrocelulelor universale
şi, pe de altă parte, interconectarea acestor macrocelule
universale.

Cap.6. Circuite configurabile 32

Cap.6. Circuite configurabile 16


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

4. Circuite logice programabile complexe [3/3]


Structura CPLD [3/3]
 Schema bloc a unei structuri de circuit CPLD este:

MUP
INTERCONEXIUNI

MUP
RETEA DE

MUP
MUP

MUP = Macrocelula Universala Programabil

Cap.6. Circuite configurabile 33

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [1/17]


 Un circuit FPGA (Field Programmable Logic Array) este
format dintr-o mulţime (arie) de celule logice plasate într-
o reţea de interconexiuni.

Celule logice
Celule de
intrare/iesire

Retea de
interconexiuni

Cap.6. Circuite configurabile 34

Cap.6. Circuite configurabile 17


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [2/17]

 Celulele logice sunt formate din generatoare universale


de funcţii care pot fi programate pentru a realiza o
funcţie logică dată. Pentru realizarea lor practică, cel mai
adesea sunt utilizate circuite de multiplexare, dar se
întâlnesc şi alte soluţii.
 Celulele de intrare/ieşire, amplasate pe marginea
structuri, sunt la rândul lor programabile, dar cu
posibilităţi mai reduse decât celulele logice. Prin
programarea acestora se specifică, de exemplu, sensul
de transfer al informaţiei (intrare sau ieşire), dacă
informaţia să fie memorată sau nu, valoarea nivelelor de
tensiune etc.
Cap.6. Circuite configurabile 35

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [3/17]

 Reţeaua de interconexiuni programabile străbate în mod


sistematic întreaga structură. În general, producătorii
oferă pe structură mai multe tipuri de legături, cum ar fi,
de exemplu, legături directe, conexiuni generale şi
conexiuni globale.
 Astfel, între două puncte date ale structurii, sunt posibile
mai multe variante de legătură.
 Din acest motiv, calculul exact al întârzierilor semnalelor
nu se va putea face anticipat, ci doar după fixarea
definitivă a interconexiunilor.

Cap.6. Circuite configurabile 36

Cap.6. Circuite configurabile 18


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [4/17]

 Complexitatea la nivelul structurii logice interne a unei


arii logice programabile (FPGA) este comparabilă cu
complexitatea circuitelor logice programabile (circuite de
tipul PLD) iar algoritmii de proiectare sunt similari.
 Un avantaj al circuitelor FPGA, în comparaţie cu
circuitele PLD, îl constituie durata mai redusă de
realizare a aplicaţiei.

Cap.6. Circuite configurabile 37

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [5/17]


Arhitectura celulei logice [1/3]
 Circuitele FPGA, în funcţie de gradul de complexitate a
celulei logice de bază, pot fi împărţite în două categorii:

 Circuite logice cu o structură simplă a celulei logice de bază

 Circuite logice cu o structură complexă a celulei logice de bază

Cap.6. Circuite configurabile 38

Cap.6. Circuite configurabile 19


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [6/17]


Arhitectura celulei logice [2/3]
 Circuite logice cu o structură simplă a celulei logice
 Celula logică este realizată fie dintr-un număr restrâns de porţi
logice (de exemplu, ŞI-NU), fie dintr-un generator universal de
funcţii logice cu o structură simplă (de exemplu, multiplexoare cu
două sau trei intrări).
 Are avantajul unei utilizări extrem de eficiente a celulelor logice
dar şi dezavantajul necesităţii unui număr mare de conexiuni
între celule pentru a realiza o aplicaţie dată.
 Exemple de circuite FPGA din această categorie o reprezintă
cele din familia Actel care se bazează pe utilizarea
multiplexoarelor cu două intrări pentru realizarea celulelor logice
de bază.

Cap.6. Circuite configurabile 39

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [7/17]


Arhitectura celulei logice [3/3]
 Circuite logice cu o structură complexă a celulei
logice
 Au avantajul că, pentru o aplicaţie dată, sunt necesare un număr
mai redus de celule logice şi, implicit, un număr mai redus de
interconexiuni.
 Au dezavantajul că, în general, celule logice sunt utilizate
ineficient (sub posibilităţile pe care le-ar putea oferi). De
exemplu, pentru o simplă operaţie logică ŞI, avem nevoie de o
întreagă celulă logică.
 Un exemplu tipic pentru această categorie de circuite îl
reprezintă familia de circuite Xilinx la care o celulă logică este
formată, de exemplu, dintr-un generator universal de funcţii cu 7
intrări, 5 multiplexoare programabile şi două bistabile.

Cap.6. Circuite configurabile 40

Cap.6. Circuite configurabile 20


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [8/17]


Tehnici de programare [1/3]
 Din punct de vedere al posibilităţilor de programare,
ariile logice programabile (FPGA) se împart în
următoarele două categorii:

 Circuite FPGA a căror programare (configurare) se bazează pe


utilizarea unor circuite SRAM

 Circuite FPGA a căror programare se bazează pe utilizarea unei


tehnici numite antifuse

Cap.6. Circuite configurabile 41

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [9/17]


Tehnici de programare [2/3]
 Circuite FPGA a căror programare (configurare) se
bazează pe utilizarea unor circuite SRAM
 Acest lucru înseamnă că fiecare intrare sau punct de conexiune
este controlat de conţinutul unei celule SRAM.
 Marele avantaj al acestei tehnici îl reprezintă uşurinţa cu care se
poate programa şi reprograma circuitul. Eventualele corecturi
sau modificări se pot opera extrem de simplu prin modificarea
conţinutului celulelor SRAM prin reprogramare.
 Dezavantajul major al acestei tehnici îl reprezintă necesitatea
unei suprafeţe mari de siliciu pentru circuit, ştiut fiind faptul că o
celulă SRAM necesită cel puţin 5 tranzistoare.

Cap.6. Circuite configurabile 42

Cap.6. Circuite configurabile 21


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [10/17]


Tehnici de programare [3/3]
 Circuite FPGA a căror programare se bazează pe
utilizarea unei tehnici numite antifuse
 Fiecare punct reprezentând o intrare de funcţie sau o
interconexiune este controlat de un antifuse. Un antifuse
reprezintă o legătură cu o impedanţă foarte mare în mod normal
(conexiune în gol). Prin aplicarea unei tensiuni înalte, această
legătură se transformă într-unul de impedanţă foarte mică
(practic o conexiune în scurtcircuit).
 Termenul antifuse vine de la faptul că starea de conducţie se
obţine prin arderea elementului, spre deosebire de fuzibile la
care prin ardere se obţine o întrerupere a legăturii.
 Lipsa posibilităţilor de reprogramare a circuitelor din această
categorie este compensată de dimensiunile foarte mici ale
acestor antifuse, impedanţa lor mică precum şi de întârzierile
mici introduse de acestea.

Cap.6. Circuite configurabile 43

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [11/17]


Metode de proiectare [1/7]
 Versatilitatea celulelor logice precum şi flexibilitatea
interconexiunilor permit un mare grad de libertate în
timpul proiectării ariilor logice FPGA.
 Spre deosebire de circuitele PLD, ariile logice
programabile permit implementarea funcţiilor booleene
de mai multe nivele, singura restricţie în acest caz fiind
viteza de lucru a aplicaţiei (ştiut fiind că fiecare nivel
logic în plus introduce întârzieri suplimentare).

Cap.6. Circuite configurabile 44

Cap.6. Circuite configurabile 22


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [12/17]


Metode de proiectare [2/7]

 Prima etapă a proiectării constă în traducerea


specificaţiilor legate de funcţionarea circuitului care
urmează a fi realizat dintr-un limbaj natural într-unul
formal prin utilizarea tabelelor de adevăr, funcţiilor
booleene, limbajelor descriptive (de exemplu ABEL sau
VHDL) sau prin combinaţii ale acestora.

Cap.6. Circuite configurabile 45

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [13/17]


Metode de proiectare [3/7]

 Etapa a doua constă în alegerea macrocomponentelor


logice necesare realizării aplicaţiei.
 Aceste macrocomponente reprezintă de fapt funcţii
prestabilite (porţi, numărătoare, registre, unităţi
aritmetice şi logice etc.) realizabile pe tipul de arie logică
programabilă (FPGA) şi puse la dispoziţia utilizatorilor de
către fabricant în cadrul unei biblioteci.

Cap.6. Circuite configurabile 46

Cap.6. Circuite configurabile 23


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [14/17]


Metode de proiectare [4/7]

 Urmează etapa (a treia) de partiţie şi de amplasare.


 În cadrul acestei etape, fiecare macrocomponentă
logică, în care a fost descompusă aplicaţia, este la
rândul ei descompusă într-un număr de blocuri logice ale
circuitului FPGA şi plasată într-o regiune anume a ariei
logice.

Cap.6. Circuite configurabile 47

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [15/17]


Metode de proiectare [5/7]

 Odată amplasarea terminată, urmează faza de


interconectare (etapa a 4-a) a blocurilor logice. Se poate
întâmpla să se ajungă în imposibilitatea interconectării
blocurilor logice chiar dacă gradul de utilizare a blocurilor
logice disponibile este de sub 70%. Se impune în
această situaţie o optimizare prin reamplasarea
macrocomponentelor logice.

Cap.6. Circuite configurabile 48

Cap.6. Circuite configurabile 24


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [16/17]


Metode de proiectare [6/7]

 Faza de simulare (am putea s-o considerăm ca etapa a


5-a) este extrem de utilă şi chiar obligatorie în cazul
realizării aplicaţiei pe circuite FPGA programabile cu
tehnica antifuse deoarece, după programare, nu mai
sunt posibile corecturi.
 În faza de simulare, vor trebui identificate şi corectate
toate erorile de funcţionare.

Cap.6. Circuite configurabile 49

Circuite programabile cu aplicaţii biomedicale

5. Arii logice programabile [17/17]


Metode de proiectare [7/7]

 Firmele producătoare livrează, odată cu produsul, şi


software-ul necesar realizării pe calculator a fazelor de
proiectare mai sus menţionate cu excepţia primei.
 Acest soft permite şi simularea funcţionării circuitelor,
inclusiv calculul întârzierilor.
 Dacă cerinţele de viteză de lucru nu sunt îndeplinite,
atunci, în general, se impune fie o reamplasare şi o
reconectare, fie, în cazurile mai dificile, o regândire mai
profundă a aplicaţiei.

Cap.6. Circuite configurabile 50

Cap.6. Circuite configurabile 25


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Cap.7. Sisteme hibride

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever Paşca


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins
1. Introducere
2. Structuri de tipul System on Chip
3. Sisteme Wireless
1. Standardul IEEE 802.15.4
2. Principalele caracteristici ale standardului ZigBee

Cap.7. Sisteme hibride 2

Cap.7. Sisteme hibride 1


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

Obiective
 Prezentarea structurii unui System on Chip şi a unor
domenii de utilizare ale acestora

 Prezentarea standardului de comunicaţii IEEE 802.15.4

 Înţelegerea particularităţilor standardului ZigBee pentru


comunicaţii Wireless în reţele de microcontrolere

Cap.7. Sisteme hibride 3

Circuite programabile cu aplicaţii biomedicale

1. Introducere [1/2]

 Dezvoltarea tehnologică din domeniul circuitelor


electronice integrate a permis punerea la dispoziţia
utilizatorilor a unor resurse hardware impresionante pe
un singur chip.

 Existenţa acestor resurse permite realizarea pe chip nu


numai a unor circuite complexe de tipul
microcontrolerelor sau a structurilor de tipul FPGA, ci şi
a unor sisteme întregi realizate din structuri eterogene
(microcontrolere, circuite FPGA, memorii, MEMS-uri,
blocuri de radiofrecvenţă etc.).

Cap.7. Sisteme hibride 4

Cap.7. Sisteme hibride 2


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

1. Introducere [2/2]

 O altă tendinţă de dezvoltare vizează integrarea unor


facilităţi de comunicare de tipul wireless în structura unor
microcontrolere sau sisteme de tipul System on Chip –
SoC.
 Cu ajutorul unor astfel de componente pot fi realizate
reţele wireless cu aplicaţii în cele mai diverse domenii
cum ar fi: monitorizarea la distanţă a bolnavilor,
comanda şi controlul de la distanţă a unor echipamente
etc.
 Pentru partea de SoC vom utiliza un material elaborat de
prof. Manfred Glesner de la TU Darmstadt.

Cap.7. Sisteme hibride 5

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [1/22]


 System on a Chip development:
Yesterday’s chip is today’s functional block!
New design methodologies are needed
2.5 million gates
New Design Paradigm
500k gates
Simulation,
Emulation,
Synthesis,
50K gates Formal equivalence
20K gates Schematics
Schematics & Synthesis
& simulation

Source: ICE
3.0 1.0 0.5 0.2

Cap.7. Sisteme hibride 6

Cap.7. Sisteme hibride 3


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [2/22]


Mobile
Phone
 What is a SoC?
 system which integrates heterogeneous
components on one piece of Si
 need for more than 1 EDA tool

 Why SoCs?
 increased functionality
 smaller packaging
 lower manufacturing costs
 improved reliability
 low power consumption

 Effect: use of IP cores (Intellectual Property)

Source: Dennis Buss, TI

Cap.7. Sisteme hibride 7

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [3/22]


What are typical SoC Components ?
 Processor Cores
 CPU, DSP
 Memories
 RAM (DRAM, SRAM)
 ROM
 Reconfigurable Comp.
 field-programmable logic (FPGA)
fine-grained coarse-grained
 configurable interconnect
 Micro-Electro-Mechanical Systems (MEMS) - Microsystem Comp.
 low cost & increased performance
 optical MEMS
 Analog RF Components, Mixed-Signal Components
 LNA, VCO, mixers, inductors
 ADCs & DACs
 Software for SoCs
Cap.7. Sisteme hibride 8

Cap.7. Sisteme hibride 4


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [4/22]


Modular Process Technologies

Source: ISSCC 2000

Cap.7. Sisteme hibride 9

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [5/22]


Technology Trend in the Internet Age

Cap.7. Sisteme hibride Source: Dennis Buss, TI 10

Cap.7. Sisteme hibride 5


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

2. Structuri de tipul System on Chip [22/22]


System In A Package

Courtesy Gammel, et.al.

Cap.7. Sisteme hibride 27

Circuite programabile cu aplicaţii biomedicale

3. Sisteme wireless
 Sistemele de tipul wireless sunt utilizate pe scară largă
în cele mai diferite domenii.
 Pentru a putea înţelege acest gen de aplicaţii, este
nevoie să cunoaştem standardele de comunicaţii pe care
acestea se bazează (IEEE 802.15.4 şi ZigBee), precum
şi componentele HW care au încorporate astfel de
facilităţi.

Cap.7. Sisteme hibride 28

Cap.7. Sisteme hibride 14


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [1/33]


 Denumirea exactă
 IEEE Standard for Information technology –Telecommunications and
Information exchange between systems – Local and metropolitan area
networks.
 Specific requirements Part 15.4:
Wireless Medium Access Control (MAC) and Physical Layer (PHY)
Specifications for Low-Rate Wireless Personal Area Networks (LR-
WPAN).
 Standardul IEEE 802.15.4 intenționează să stabilească nivelurile
fundamentale inferioare pentru reţelele personale radio (Wireless
Personal Area Networks – WPAN), care se axează pe comunicaţia
de viteză mică, cu costuri reduse, între dispozitive omniprezente
 Stă la baza specificaţiilor ZigBee, ISA100.11a, WirelessHART şi
MiWi, fiecare dintre acestea extinzând standardul prin nivelurile
superioare

Cap.7. Sisteme hibride 29

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [2/33]


 Caracteristicile principale ale unui LR-WPAN
 Rata de transmisie în aer: 250 Kb/s, 40 Kb/s, 20 Kb/s şi mai nou
100 Kb/s sau mai mică;
 Posibilităţi de a lucra în reţele de tip stea sau punct la punct;
 Alocarea unor adrese scurte de 16 biţi sau extinse de 64 biţi;
 Acces la canal prin evitarea coliziunilor şi detectarea purtătoarei
(Carrier Sense Multiple Access with Collision Avoidance channel
access – CSMA/CA);
 16 canale în banda de 2,4 GHz şi 10 canale în banda de 915
MHz şi un canal în banda de 868 MHz;
 Indicator pentru calitatea legăturii (Link Quality Indication – LQI);
 Posibilitatea detectării energiei pe canal (Energy Detection –
ED);
 Protocol hand shake care asigura siguranţa transferului;
 Managementul puterii pentru a asigura un consum redus de
putere.
Cap.7. Sisteme hibride 30

Cap.7. Sisteme hibride 15


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [3/33]


Componente de bază [1/3]
 La realizarea unei reţele LR-WPAN sunt utilizate două
tipuri de componente:

 Full Function Device – FFD

 Reduced Function Device – RFD

Cap.7. Sisteme hibride 31

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [4/33]


Componente de bază [2/3]

 Un FFD poate îndeplini funcţiile:


 Coordonator general al unei reţele PAN (Personal Area
Network)
 Coordonator de subreţea
 Simplu component al unei reţele

 Un FFD poate comunica cu alte componente FFD sau


RFD.

Cap.7. Sisteme hibride 32

Cap.7. Sisteme hibride 16


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [5/33]


Componente de bază [3/3]

 Componentele RFD:
 Sunt gândite pentru aplicaţii simple (citirea unui senzor pasiv,
aprinderea unui LED etc.)
 Sunt implementate cu resurse reduse
 Au capacitate de memorare redusă
 Viteza de transmisie redusă
 Într-o reţea este asociată unui singur FFD

Cap.7. Sisteme hibride 33

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [6/33]


Topologii de reţele [1/8]
 În funcţie de cerinţele aplicaţiei o reţea LR – WPAN
poate opera în următoarele două topologii de bază:

 Topologia de tip stea

 Topologia punct la punct

Cap.7. Sisteme hibride 34

Cap.7. Sisteme hibride 17


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [7/33]


Topologii de reţele [2/8]

Cap.7. Sisteme hibride 35

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [8/33]


Topologii de reţele [3/8]
Topologia de tip stea
 În cazul unei reţele de tip stea, după activarea unei
componente FFD pentru prima oară, aceasta îşi va
construi propria reţea devenind un coordonator PAN.
 Acest lucru se realizează prin alegerea unui identificator
unic şi nefolosit de alte componente aflate în sfera sa de
acţiune radio.
 Odată identificatorul unic ales, coordonatorul PAN poate
permite altor componente de tip FFD sau RFD de a i se
alătura, construindu-se în felul acesta reţeaua de tip
stea.

Cap.7. Sisteme hibride 36

Cap.7. Sisteme hibride 18


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [9/33]


Topologii de reţele [4/8]

 Comunicaţia se realizează întotdeauna între


componentele reţelei şi coordonatorul PAN.
 O componentă are asociată una sau mai multe aplicaţii
şi poate fi punctul de iniţiere sau de terminare a unei
comunicaţii.
 Coordonatorul reţelei poate, la rândul său, să aibă
asociate una sau mai multe aplicaţii şi poate fi folosit
pentru a iniţia, a termina sau a ruta o comunicaţie într-o
reţea.
 Aplicaţii tipice: inteligenţă ambientală, automatizări la
domiciliu, supravegherea medicală a persoanei la
domiciliu.
Cap.7. Sisteme hibride 37

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [10/33]


Topologii de reţele [5/8]
Topologia punct la punct
 Diferă de topologia de tip stea prin faptul că fiecare
componentă poate comunica cu oricare componentă din
reţea care se afla în raza ei de acţiune radio.
 Şi în topologia punct la punct există un coordonator de
reţea care poate fi o componentă FFD activată la
început.
 Permite construirea unor reţele cu topologii mai
complexe, ca de exemplu, reţeaua de tip cluster tree.
 Orice componentă FFD poate acţiona ca un coordonator
de subreţea, dar numai unul (cu o putere de calcul
mărită) va fi declarat coordonatorul general al reţelei
(cluster head) având şi un cluster identifier – CID.
Cap.7. Sisteme hibride 38

Cap.7. Sisteme hibride 19


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [11/33]


Topologii de reţele [6/8]

Cap.7. Sisteme hibride 39

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [12/33]


Topologii de reţele [7/8]

 Dacă aplicaţia are în vedere realizarea unei reţele mai


complexe, coordonatorul PAN poate instrui o
componentă FFD pentru a deveni un cluster head şi de
a-şi construi propria subreţea adiacentă primei s.a.m.d.
 O reţea de tipul punct la punct poate fi cu auto
organizare, ad-hoc, de tipul multiple hops pentru a ruta
mesajele de la un anume dispozitiv la oricare altul.
 Aplicaţii tipice: control industrial, reţea de senzori,
agricultură inteligentă etc.

Cap.7. Sisteme hibride 40

Cap.7. Sisteme hibride 20


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [13/33]


Topologii de reţele [8/8]

 Fiecare componentă care face parte dintr-o reţea are


asociată o adresă unică de 64 biţi.
 Această adresă poate fi utilizată pentru comunicaţie
directă între componentele unei reţele PAN sau poate fi
înlocuită de câtre coordonatorul reţelei cu o adresă
scurtă (de 16 biţi) pentru componentele reţelei pe care
acesta le coordonează.
 Fiecare reţea independentă PAN îşi va selecta un
identificator unic. Acest identificator va permite
comunicarea dintre componentele reţelei folosind
adresele scurte.
Cap.7. Sisteme hibride 41

Circuite programabile cu aplicaţii biomedicale

3.1. Standardul IEEE 802.15.4 [14/33]


Arhitectura protocolului [1/4]
 Arhitectura LR-PAN este definită ca blocuri structurale
pentru a uşura descrierea standardului.
 Aceste blocuri structurale formează de fapt diverse
niveluri cu care este descris standardul.
 Fiecare nivel este responsabil pentru o anume parte a
standardului şi oferă servicii nivelelor superioare lui.
 Nivelele inferioare, PHY (Physical Layer) respectiv MAC
(Media Access Control), sunt reglementate de
standardul IEEE 802.14.5, pe când nivelele superioare
sunt reglementate de alte standarde elaborate de
utilizatori, de exemplu ZigBee (topologia şi construcţia
reţelelor şi a aplicaţiilor).

Cap.7. Sisteme hibride 42

Cap.7. Sisteme hibride 21


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [4/9]


Principalele caracteristici ale protocolului

Cap.7. Sisteme hibride 65

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [5/9]


Domenii de utilizare

 Protocolul
ZigBee se
pretează
perfect
pentru
aplicaţii de
monitorizare
şi control.

Cap.7. Sisteme hibride 66

Cap.7. Sisteme hibride 33


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [6/9]


Caracteristici tehnice ale protocolului ZigBee [1/2]
 Protocolul ZigBee se pretează perfect pentru aplicaţii de
monitorizare şi control
 Operează în banda de frecvenţă globală de 2,4 MHz şi
în cele zonale de 915 MHz respectiv de 868 MHz
 Folosirea acestor benzi de frecvenţă este liberă şi nu
este restricţionată geografic
 Undele de radiofrecvenţă utilizate au proprietatea de a
se propaga prin zidurile clădirilor
 Software-ul utilizat permite configurarea automată sau
semiautomată a reţelelor

Cap.7. Sisteme hibride 67

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [7/9]


Caracteristici tehnice ale protocolului ZigBee [1/2]
 Pot fi adăugate sau îndepărtate cu uşurinţă componente
în şi din reţea
 Costurile de realizare sunt minime
 Viteza de transmisie este cuprinsă între 10 Kbps şi 115
Kbps
 Raza de acoperire a reţelei este de aproximativ 30m în
clădiri şi de 70m în exterior
 Pot coexista în acelaşi spaţiu de până la 100 de reţele
 Consum de energie redus (o baterie alcalină asigură
funcţionarea pentru aproximativ doi ani de zile)

Cap.7. Sisteme hibride 68

Cap.7. Sisteme hibride 34


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [8/9]


Modelul reţelei ZigBee

Cap.7. Sisteme hibride 69

Circuite programabile cu aplicaţii biomedicale

3.2. Protocolul de comunicaţii ZigBee [9/9]


Comparaţia performanţelor reţelelor ZigBee cu ale altor
tipuri de comunicaţii wireless

Cap.7. Sisteme hibride 70

Cap.7. Sisteme hibride 35


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Cap.8. Proiectarea sistemelor


dedicate biomedicale

Curs: Circuite programabile cu aplicaţii biomedicale

Titular: Prof. Dr. Ing. Sever Paşca


Facultatea: Electronică, Telecomunicaţii şi Tehnologia Informaţiei
Catedra: Electronică Aplicată şi Ingineria Informaţiei
Laboratorul: Proiectarea sistemelor dedicate
1

Circuite programabile cu aplicaţii biomedicale

Cuprins
1. Introducere
2. Schema bloc şi modul de realizare
3. Cerinţe specifice sistemelor dedicate
4. Problematica proiectării
5. Exemple tipice din domeniul medical

Cap.8. Proiectarea sistemelor dedicate biomedicale 2

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

3. Cerinţe specifice sistemelor dedicate [1/2]


 Diversitatea extremă a aplicaţiilor va impune şi cerinţe
specifice sistemelor dedicate utilizate în anumite
domenii.
 Siguranţă de funcţionare extremă, ca de exemplu în cazul
stimulatorului cardiac, sistemului de frânare a unui automobil,
sistemelor de control al unui avion etc.
 Lucrul în timp real cum este cazul aparatelor de monitorizare a
parametrilor biologici, controlului regimului optim de funcţionare
al motorului unui automobil etc.
 Lucrul în paralel, de exemplu supravegherea mai multor
senzori şi controlul mai multor elemente de execuţie simultan.
 Consum redus de putere pentru aparate portabile cu
autonomie mare.

Cap.8. Proiectarea sistemelor dedicate biomedicale 23

Circuite programabile cu aplicaţii biomedicale

3. Cerinţe specifice sistemelor dedicate [2/2]

 Capacitate de comunicare şi lucrul în reţea, în cazul în care


sistemul dedicat este unul distribuit, cuprinzând mai multe
controlere, acestea trebuie să comunice între ele. De exemplu,
CAN (Control Area Network) la automobile.
 Problematica testării. În general, testarea unor sisteme
dedicate este o sarcină dificilă deoarece:
 Trebuie construit sau simulat sistemul în care va fi înglobat;
 Se va face o testare HW şi SW;
 Trebuiesc elaborate metode de testare specifice;
 În general componentele HW şi produsele SW utilizate provin de la
mai mulţi producători.

Cap.8. Proiectarea sistemelor dedicate biomedicale 24

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [1/32]


 Dezvoltarea aparaturii medicale este strâns legată de
inovaţia tehnologică din domeniul circuitelor electronice.

 Procesul de inovare în medicină impune, la rândul său,


exigenţe sporite, cerinţe noi şi un proces de dezvoltare –
inovare în domeniul circuitelor electronice.

 În cele ce urmează, vor fi prezentate opt soluţii pentru


aparate medicale reprezentative realizate în jurul unor
circuite electronice programabile (soluţii MICROCHIP –
Medical Application Solutions).

Cap.8. Proiectarea sistemelor dedicate biomedicale 43

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [2/32]


 Tensiometrul digital – aparatul pentru măsurarea
presiunii sanguine (Blood Pressure Meter);
 Concentratorul de oxigen (Oxygen Concentrator);
 Pulsoximetrul numeric (Pulse Oximeter);
 Maşina pentru asigurarea presiunii respiratorii
continuu pozitive (Continuous Positive Airway Pressure
Machine – CPAP);
 Glucometrul sanguin (Glucometer);
 Termometrul digital (Digital Thermometer);
 Electrocardiograful (Electrocardiograph – ECG/EKG);
 Dispozitivul de elctroforeză ionică (Iontophoresis).

Cap.8. Proiectarea sistemelor dedicate biomedicale 44

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [3/32]


Tensiometrul digital [1/4]
 Tensiometrul, sau mai corect aparatul pentru măsurarea presiunii sanguine,
este un aparat cu care se măsoară indirect presiunea sanguină arterială.
Tensiunea arterială este un indicator important al stării de sănătate a
sistemului cardiovascular al unei persoane.
 Metoda cea mai des folosită la momentul actual este metoda oscilometrică.
Pentru măsurare se foloseşte un manşon flexibil, cu care se înfăşoară
braţul în zona arterei brahiale. Manşonul este umflat suficient de mult pentru
a bloca circulaţia sângelui prin arteră.
 Pe măsură ce presiunea din manşon este scăzută în mod gradual, circulaţia
sângelui prin arteră se va relua. Presiunea din manşon la care fluxul
sanguin se reia pentru prima dată este înregistrată ca fiind presiunea
sistolică (maximă). Circulaţia sanguină restricţionată prin arteră, care
determină o scurgere turbulentă a sângelui, poate fi detectată printr-o mică
oscilaţie a presiunii în manşon şi printr-un sunet specific auzit cu
stetoscopul.
 Dacă se continuă scăderea presiunii din manşon, circulaţia sângelui la un
moment dat nu va mai fi restricţionată, curgerea devine laminară (continuă).
Acest punct corespunde presiunii diastolice (minime) şi poate fi detectat prin
dispariţia oscilaţiilor de presiune din manşetă şi a sunetului specific auzit cu
stetoscopul.
Cap.8. Proiectarea sistemelor dedicate biomedicale 45

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [4/32]


Tensiometrul digital [2/4]

Cap.8. Proiectarea sistemelor dedicate biomedicale 46

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [5/32]


Tensiometrul digital [3/4]
 Într-un tensiometru modern, toate aceste funcţii se realizează în mod
automat:
 Umflarea şi dezumflarea manşonului se realizează cu un mic compresor
de aer acţionat de un motor electric împreună cu o valvă controlată de
un electromagnet (electrovalvă). Electromotorul şi electrovalva pot fi
controlate cu uşurinţă de către un microcontroler printr-un port general
de intrare ieşire.
 Presiunea din manşon se măsoară cu ajutorul unui senzor de presiune,
care detectează şi oscilaţiile presiunii în manşetă determinate de
curgerea turbulentă a sângelui. Curgerea sângelui determină apariţia
unor semnale electrice de amplitudine mică la ieşirea senzorului, care
vor trebui amplificate cu ajutorul unui amplificator operaţional de
precizie cu consum redus de putere. După amplificare, semnalul
analogic este aplicat la intrarea unui convertor analog–digital, care va
furniza la ieşire o valoare numerică folosită pentru calculul presiunii
arteriale.

Cap.8. Proiectarea sistemelor dedicate biomedicale 47

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [6/32]


Tensiometrul digital [4/4]
 Algoritmul de calcul folosit pentru a transforma informaţia furnizată de
senzor în valoarea tensiunii arteriale depinde de caracteristicile electrice
ale senzorului concret folosit, precum şi de poziţionarea manşonului pe
corp (pe braţ, pe încheietură, pe deget etc.).
 Odată determinate presiunile sistolică respectiv diastolică, ele vor putea
fi afişate pe un afişor cu cristale lichide (LCD).
 Un microprocesor de 8 biţi care are integrate posibilităţi de conversie
analog–digitală şi control al unui afişor LCD poate deveni nucleul unui
astfel de dispozitiv.
 Deoarece tendinţele de variaţie a presiunilor arteriale sunt mai
importante decât o anume valoare singulară măsurată, în schema
aparatului a fost inclusă şi o memorie pentru stocarea rezultatelor
măsurătorilor, ceea ce va permite utilizatorului să identifice un potenţial
pericol sau să poată urmări efectul unui anumit tratament pe care îl
urmează. Aceste funcţionalităţi sunt mult întărite în dispozitivele cu
posibilităţi de comunicare, care permit transmiterea datelor unui PC
pentru stocare şi analiză.

Cap.8. Proiectarea sistemelor dedicate biomedicale 48

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [7/32]


Concentratorul de oxigen [1/4]
 Un concentrator de oxigen realizează o sursă de aer cu o
concentraţie de oxigen mărită. El poate fi folosit pentru a înlocui
rezervoarele cu oxigen lichid sau oxigen sub presiune, necesare
persoanelor bolnave care au nevoie, pentru respiraţie, de aer
îmbogăţit cu oxigen.
 Concentratorul de oxigen lucrează pe principiul eliminării azotului
din aerul ambiental în care acesta reprezintă 78%. În majoritatea
concentratoarelor de oxigen, azotul este absorbit de o sită
moleculară, realizată dintr-o clasă de silicaţi de aluminiu cunoscuţi
sub numele de zeoliţi. Zeolitul este conţinut într-unul sau mai mulţi
cilindri ermetici, numiţi paturi de site. În fiecare pat de site azotul
este absorbit sub presiune, permiţând oxigenului şi altor urme de
gaze să treacă mai departe. La eliminarea presiunii, azotul este
eliberat în aerul înconjurător. Un concentrator de oxigen eficient
furnizează oxigen de o puritate egală cu 95%.

Cap.8. Proiectarea sistemelor dedicate biomedicale 49

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [8/32]


Concentratorul de oxigen [2/4]

Cap.8. Proiectarea sistemelor dedicate biomedicale 50

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [9/32]


Concentratorul de oxigen [3/4]
 Compresorul, care introduce aerul în concentratorul de oxigen şi
creează presiune în patul de site, este acţionat de un motor electric,
ceea ce face ca un control eficient al motorului să reprezinte o parte
importantă a proiectării concentratorului de oxigen.
 Pentru această aplicaţie este potrivit un microcontroler dintr-o familie
de 16 biţi şi de înaltă performanţă, conţinând circuite periferice
dedicate care simplifică controlul unei game largi de motoare. Un
controler PWM versatil, cu mai multe canale, permite un control
robust la costuri mici al motoarelor de curent continuu fără
colectoare. Dacă controlerul PWM se poate sincroniza şi cu
convertorul analog–digital integrat în acelaşi microcontroler, atunci
se poate realiza o simplificare a proiectării şi a reacţiei la comutare.

Cap.8. Proiectarea sistemelor dedicate biomedicale 51

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [10/32]


Concentratorul de oxigen [4/4]
 O operare eficientă a unui concentrator de oxigen impune o
coordonare riguroasă între diversele componente ale aparatului.
Presiunea trebuie monitorizată în fiecare pat de site, în rezervorul
oxigenului produs, precum şi la intrarea şi ieşirea conductei de gaz
din sistem. Puritatea oxigenului produs este monitorizată în
permanenţă simultan cu fluxul gazului. Senzori specializaţi
monitorizează parametrii de lucru ai sistemului, cum ar fi
temperatura de lucru şi tensiunea bateriei de alimentare, în cazul
concentratoarelor de oxigen portabile.
 Pentru a putea utiliza toţi aceşti senzori specializaţi ceruţi, este
necesar de un microcontroler cu posibilitatea realizării unor
prelucrări sofisticate ale semnalului analogic. Microcontrolerele care
au incluse convertoare analog–digitale pe 10 sau 12 biţi sunt
necesare pentru a se putea adapta gamei diversificate de senzori.
De asemenea, sunt necesare circuite specializate flexibile pentru a
asigura condiţionarea semnalelor, înainte de conversie, pentru
multitudinea de semnale provenind de la diverşi senzori utilizaţi în
concentratorul de oxigen.
Cap.8. Proiectarea sistemelor dedicate biomedicale 52

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [11/32]


Pulsoximetrul numeric [1/3]
 Un pulsoximetru măsoară cantitatea de oxigen din sângele
pacientului, prin măsurarea cantităţii de lumină absorbită de sângele
din capilarele aflate sub piele.
 Într-un aparat tipic, senzorul optic se ataşează degetului pacientului
(îl îmbracă) folosind o bandă adezivă sau o clemă. De o parte a
senzorului, se află o pereche de diode electroluminescente (LED),
iar de partea cealaltă o fotodiodă. Unul dintre LED-uri generează
lumină roşie iar celălalt emite în infraroşu. Funcţionarea
pulsoximetrului se bazează pe caracteristicile optice ale
hemoglobinei, o proteină din sânge care transportă oxigenul. Cu cât
hemoglobina devine mai puternic oxigenată, cu atât ea devine mai
transparentă pentru lumina roşie şi mai absorbantă pentru radiaţiile
infraroşii. Când hemoglobina conţine mai puţin oxigen, ea va fi mai
transparentă pentru radiaţiile în infraroşu şi mai absorbantă pentru
lumina roşie.
 Această proprietatea permite ca din calculul raportului între
intensităţile luminilor roşii şi infraroşii, care trec prin degetul
pacientului, să se obţină un semnal proporţional cu cantitatea de
oxigen din sânge.
Cap.8. Proiectarea sistemelor dedicate biomedicale 53

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [12/32]


Pulsoximetrul numeric [2/3]

Cap.8. Proiectarea sistemelor dedicate biomedicale 54

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [13/32]


Pulsoximetrul numeric [3/3]
 În plus, pulsul de sânge obţinut la fiecare bătaie a inimii produce un
semnal reprezentativ pentru măsurarea pulsului pacientului
(frecvenţei bătăilor cardiace).
 Deoarece semnalul generat de fotodiode este un curent de
amplitudine mică, sunt necesare condiţionări ale semnalului înainte
ca acesta să poată fi utilizat. Este indicată utilizarea unor
amplificatoare operaţionale cu anularea automată a offset-ului, într-
un circuit cu reacţie rezistivă, într-o configuraţie de amplificator
transimpedanţă.
 Tensiune rezultată este aplicată pe intrarea analogică a
convertorului analog–digital din structura microcontrolerului utilizat,
care va calcula raportul între lumina roşie şi cea infraroşie care trec
prin degetul pacientului şi va determina nivelul de saturaţie a
oxigenului în sânge, pe baza unor tabele de corespondenţă (look up
table) memorate în prealabil.
 Această valoare este apoi fie transmisă serial, către un sistem de
achiziţii de date, fie este afişată pentru utilizator, în cazul unor
pulsoximetre de sine stătătoare.
Cap.8. Proiectarea sistemelor dedicate biomedicale 55

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [14/32]


Maşina CPAP [1/3]
 Maşina pentru asigurarea presiunii respiratorii continuu pozitive –
CPAP (Continuous Positive Airway Pressure) asigură o terapie
pentru apneea obstructivă din somn. Oamenii care suferă de
această boală au detrese (prăbuşiri, căderi) ale căilor respiratorii în
timpul somnului, ceea ce împiedică respiraţia normală. În
consecinţă, ei se trezesc parţial de multe ori în timpul nopţii, ducând
la o privare de somn şi la problemele aferente de sănătate,
incluzând o stare de oboseală în timpul zilei.
 Furnizând aer la o presiune controlată dinamic, o maşină CPAP ţine
căile respiratorii deschise, asigurând în felul acesta un somn normal.
 Fiind în esenţă o pompă de aer, fiecare aparat CPCP include un
motor care acţionează un ventilator, care măreşte presiunea aerului.
Fiecare sistem impune o optimizare unică a parametrilor de sistem,
cum ar fi zgomotul, timpul de răspuns, volumul aerului, consumul de
putere, dimensiuni şi costuri.

Cap.8. Proiectarea sistemelor dedicate biomedicale 56

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [15/32]


Maşina CPAP [2/3]

Cap.8. Proiectarea sistemelor dedicate biomedicale 57

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [16/32]


Maşina CPAP [3/3]
 Pentru a-şi atinge obiectivele, proiectanţii de sistem folosesc diverse
tipuri de motoare, toate putând fi comandate folosind circuite
periferice flexibile de control al motoarelor, integrate în
microcontrolere cu o putere de calcul mare, adecvate acestei
categorii de aplicaţii. Pentru a reduce timpul şi riscul de proiectare,
producătorii acestor microcontrolere asigură instrumente de lucru şi
pachete bogate de funcţii, care uşurează implementarea diferitelor
strategii de control al motoarelor.
 Pentru a colecta mărimi fizice în timpul funcţionării, în afara părţii de circuite
logice, un aparat CPCP este echipat şi cu un număr de senzori.
Traductoarele de presiune monitorizează presiunea aerului furnizat
pacientului în timpul respiraţiei. Semnalul furnizat de aceste traductoare
este condiţionat, folosind circuite analogice, înainte de a fi aplicat la intrarea
convertorului analog–digital al microcontrolerului. În mod asemănător, se
pot măsura şi regla temperatura şi umiditatea aerului furnizat, pentru a face
terapia mai plăcută pacientului.

Cap.8. Proiectarea sistemelor dedicate biomedicale 58

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [18/32]


Glucometrul digital [1/5]
 Glucometrul este folosit pentru a măsura concentraţia de glucoză
din sângele pacientului. Concentraţia de glucoză este un parametru
important în gestionarea bolii diabetice.
 Măsurarea glicemiei poate fi făcută în mai multe feluri, incluzând
metode optice şi electrochimice. În cazul măsurării cu metode
electrochimice, se utilizează un biosenzor de unică folosinţă sub
forma unui strip. Strip-ul este o folie de plastic având din construcţie
electrozii necesari şi o mică cavitate în care se găseşte reactivul şi
catalizatorul. Acest strip este folosit pentru măsurarea nivelului de
glucoză al unei mici probe de sânge, prelevate din degetul
pacientului prin înţepare. Când proba de sânge pătrunde în
cavitatea strip-ului, are loc o reacţie catalitică, care generează un
mic curent.

Cap.8. Proiectarea sistemelor dedicate biomedicale 59

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [18/32]


Glucometrul digital [2/5]
 Curentul generat ca urmare a reacţiei chimice este transformat în
tensiune iar apoi amplificat cu un Glucometrul digital amplificator
operaţional. Tensiunea de ieşire a amplificatorului operaţional este
scalată şi adusă în gama tensiunilor măsurabile de convertorul
analog–digital integrat în microcontroler.
 Deoarece reacţia chimică din strip este sensibilă la temperatură, în
mod frecvent se recurge şi la măsurarea temperaturii ambientale
pentru a îmbunătăţi acurateţea măsurătorii.
 Pentru fiecare lot de strip-uri, producătorul lor livrează şi un set de
date de calibrare, memorate într-un EPROM conţinut într-un strip
special de calibrare. La conectarea acestui strip de calibrare,
sistemul citeşte şi stochează în memoria nevolatilă proprie aceste
date, utilizate apoi pentru afişarea valorilor glicemiei măsurate cu
strip-uri din lotul respectiv.

Cap.8. Proiectarea sistemelor dedicate biomedicale 60

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [19/32]


Glucometrul digital [3/5]

Cap.8. Proiectarea sistemelor dedicate biomedicale 61

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [20/32]


Glucometrul digital [4/5]

 Multe aparate comerciale sunt prevăzute cu posibilitatea de a


memora rezultatele măsurătorilor efectuate (Data Loging), pentru a
putea fi ulterior transferat pe un PC pentru a fi analizate de pacient
şi/sau de medicul pacientului. Această facilitate presupune utilizarea
unor circuite de memorie nevolatile de tip flash. Uneori
microcontrolerele au în componenţă o memorie de acest tip cu
capacitate suficient de mare pentru memorarea unui număr suficient
de măsurări. Alteori, pentru mărirea capacităţii de stocare a datelor,
este nevoie de conectarea suplimentară a unei memorii nevolatile
externe, de capacitate mare, care comunică de cele mai multe ori
serial cu microcontrolerul, unele chiar pe un singur fir, ceea ce
permite o simplificare şi o miniaturizare a sistemului.

Cap.8. Proiectarea sistemelor dedicate biomedicale 62

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [21/32]


Glucometrul digital [5/5]

 Pentru astfel de aplicaţii, sunt adecvate microcontrolere dotate cu


convertoare analog–digitale de rezoluţie mare (18 biţi) la un consum
de energie extrem de redus. Aceste dispozitive oferă posibilitate
ajustării consumului de putere, a rezoluţiei conversiei, precum şi a
ratei de eşantionare corespunzător procesului de optimizare parcurs
în timpul proiectării.
 La orice aparat portabil consumul de putere este un parametru
critic. În cazul glucometrului, folosit doar de câteva ori pe zi pentru
un timp scurt, este important ca aparatul să aibă un consum de
curent redus şi în stare sa inactivă (sleep). În acest gen de aplicaţii,
consumul de putere în starea de funcţionare este un criteriu extrem
de important, dar posibilitatea de trecere în stare inactivă, cu un
consum foarte redus de putere a dispozitivelor utilizate, este chiar
mai importantă. Durata bateriilor utilizate poate fi optimizată folosind
numai dispozitive cu un consum foarte redus în starea de
funcţionare şi unul extrem de redus în starea inactivă.
Cap.8. Proiectarea sistemelor dedicate biomedicale 63

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [22/32]


Termometrul digital [1/4]
 Dacă termometrele clasice erau realizate, în trecut, aproape
exclusiv în varianta unui tub capilar umplut cu mercur, termometrele
moderne au avut o evoluţie rapidă către o variantă electronică.
Cererea pieţei pentru o mai mare siguranţă, viteză de lucru şi
precizie, este un factor care a determinat, în prezent, adoptarea
variantei termometrului digital.
 O mare varietate de senzori a fost utilizată pentru măsurarea
temperaturii corpului uman, în moduri şi cu principii diferite. Bucale,
axilare, temporale, auriculare sau de oricare alt tip, toate
termometrele digitale se bazează, în ultimă instanţă, pe un senzor
de temperatură conectat la un convertor analog–digital.
 Semnalele furnizate de senzorii de temperatură au, de regulă, valori
foarte mici, astfel că ele trebuie întâi condiţionate (amplificate, filtrate
etc.) înainte de a fi convertite analog–digital. Ca şi glucometru, şi
termometrul este o aplicaţie pentru care criteriile de proiectare cu
consum redus de energie trebuie avute în vedere.
Cap.8. Proiectarea sistemelor dedicate biomedicale 64

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [23/32]


Termometrul digital [2/4]

Cap.8. Proiectarea sistemelor dedicate biomedicale 65

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [24/32]


Termometrul digital [3/4]
 În funcţie de amplasarea şi tipul traductorului, este posibil ca
temperatura măsurată să trebuiască să fie corectată, pentru a afişa
o valoare corectă a temperaturii corpului uman.
 După ce semnalul furnizat de traductor a fost amplificat şi apoi
convertit în semnal digital, urmează o procesare a acestuia de către
microcontroler pe baza unui algoritm adecvat corecţiilor care se
impun să fie făcute.
 Odată temperatura calculată, rezultatul trebuie să fie afişat pentru
utilizator. Pentru afişare, în termometrele digitale, cel mai des sunt
folosite afişoare cu cristale lichide – LCD. Se utilizează
microcontrolere care includ facilităţi de comandă a afişoarelor LCD,
ceea ce permite realizarea termometrelor la dimensiuni mici şi
costuri reduse.

Cap.8. Proiectarea sistemelor dedicate biomedicale 66

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [25/32]


Termometrul digital [4/4]

 Termometrele sunt incluse adesea în sisteme telemetrice de


măsurare la distanţă a temperaturii. În astfel de sisteme,
temperatura pacientului este transmisă la distanţă prin unde radio
într-o altă locaţie. Modulele wireless, cu consum redus şi utilizând
protocolul ZigBee, oferă o alternativă de comunicaţie la costuri
reduse şi riscuri minime.

Cap.8. Proiectarea sistemelor dedicate biomedicale 67

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [26/32]


Electrocardiograful [1/4]
 Un electrocardiograf este folosit pentru monitorizarea activităţii
electrice cardiace. Electrocardiograful preia semnalele electrice
generate de inimă cu ajutorul unor electrozi plasaţi pe pielea
pacientului. Electrozii înregistrează potenţialul electric din câteva
puncte ale corpului uman.
 În funcţie de tipul sistemului şi de analiza care se preconizează să
se facă pe semnalele achiziţionate, cele mai populare configuraţii
sunt cu 2 fire, 3 fire, 5 fire, respectiv 10 fire, conectate la electrozii
poziţionaţi pe corpul uman. Potenţialul prezent pe suprafaţa pielii
variază între 0,1 mV şi 2,5 mV.
 Deoarece semnalul achiziţionat este foarte slab, eliminarea
zgomotului de mod comun este cea mai mare provocare în
proiectarea unui sistem ECG. Amplificatoarele operaţionale de
zgomot redus trebuie utilizate la extragerea semnalului electric al
activităţii cardiace din zgomotul cules, în special datorită
interferenţelor cu reţeaua de alimentare, şi la amplificarea acestuia.
Odată semnalul condiţionat în mod corespunzător, el va fi potrivit
pentru a fi converti în semnal digital, iar apoi prelucrat şi analizat de
către unitatea centrală a microcontrolerului.
Cap.8. Proiectarea sistemelor dedicate biomedicale 68

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [27/32]


Electrocardiograful [2/4]

Cap.8. Proiectarea sistemelor dedicate biomedicale 69

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [28/32]


Electrocardiograful [3/4]
 La origine, electrocardiografele erau gândite să ofere o simplă
afişare a activităţii electrice a cordului. Aceste aparate permit
medicului cardiolog să observe şi să interpreteze activitatea
cordului.
 Sistemele moderne includ posibilitatea realizări unor analize
automate a semnalului, pentru e reduce subiectivismul şi pentru a
uşura munca şi efortul medicului care utilizează sistemul.
 Pe lângă electrocardiografele care afişează şi analizează semnalul
cules în timp real, sunt disponibile şi electrocardiografe portabile,
care permit o monitorizare a activităţii cardiace pe o perioadă mai
mare de timp (Holtere). Aceste sisteme sunt în esenţă tot
electrocardiografe, dar în locul afişării semnalelor electrice
achiziţionate, acestea sunt stocate pentru a fi prelucrate şi analizate
ulterior.

Cap.8. Proiectarea sistemelor dedicate biomedicale 70

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [29/32]


Electrocardiograful [4/4]

 Ultimele sisteme ECG sunt portabile şi chiar utilizabile cu o singură


mână, creând un segment de piaţă complet nou.
 În final, trebuie să se amintească şi faptul că facilităţi ECG sunt
încorporate şi în alte aparate, cum ar fi defibrilatoarele şi sistemele
de monitorizare automată a ritmului cardiac, pentru a le îmbunătăţi
performanţa şi funcţionalitatea.
 Aproape toate electrocardiografele moderne asigură şi o conectare
pentru transferul datelor către un PC. Multe microcontrolere, cu
consum redus de putere, au incluse şi suportul pentru realizarea
comunicaţiei pe interfeţe seriale (RS234, Ethernet şi, mai actualul,
USB).

Cap.8. Proiectarea sistemelor dedicate biomedicale 71

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [30/32]


Dispozitivul de electroforeză ionică [1/3]
 Un dispozitiv de elctroforeză ionică aplică un mic curent electric,
pentru a îmbunătăţi transportul compuşilor încărcaţi electric prin
piele. Dacă compusul încărcat electric este un produs farmaceutic,
atunci un dispozitiv de elctroforeză ionică se transformă într-un
aparat de administrare a medicamentelor.
 Primele aplicaţii ale electroforezei includeau tratamentul
hiperhidrozei şi administrarea unor medicamente antiinflamatorii prin
piele. Dispozitivele mai noi au fost dezvoltate pentru a putea fi
folosite în administrarea unei game mai largi de medicamente,
acoperind situaţii de la anestezia prin piele şi managementul durerii,
până la tratamentul durerilor de cap şi a altor afecţiuni neurologice.
 Dispozitivele de elctroforeză ionică pot varia, din punct de vedere al
realizării practice, de la sistem mari, sub forma unor console, până
la sisteme miniaturale, autoadezive, aplicabile pe piele chiar de
către pacient. Este posibil să se realizeze o elctroforeză inversă, ca
o metodă neinvazivă de prelevare de probe ale fluidelor corporale,
pentru a testa prezenţa sau a măsura concentraţia unor anumite
molecule.
Cap.8. Proiectarea sistemelor dedicate biomedicale 72

Cap.8. Proiectarea sistemelor dedicate biomedicale


Prof.Dr.Ing. Sever Paşca Circuite programabile cu aplicaţii biomedicale

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [31/32]


Dispozitivul de electroforeză ionică [2/3]

Cap.8. Proiectarea sistemelor dedicate biomedicale 73

Circuite programabile cu aplicaţii biomedicale

5. Exemple tipice din domeniul medical [32/32]


Dispozitivul de electroforeză ionică [3/3]
 În termeni electrici, un dispozitiv de elctroforeză ionică este, în
esenţă, o sursă de curent constant, cu caracteristicile de
performanţă selectate pentru a optimiza administrarea unui anumit
tip particular de compus medicamentos. În practică, curentul şi
tensiunea aplicate depind de tipul medicamentului utilizat, de zona
unde va fi aplicat şi de doza dorită.
 Microcontrolere care includ un modul periferic CCP
(Capture/Compare/PWM) se pot utiliza pentru realizarea, cu costuri
minime, de regulatoare de tensiune în comutaţie ridicătoare de
tensiune, necesare unui dispozitiv de elctroforeză ionică.
 Un convertor analog–digital de 10 biţi, integrat în microcontroler, se
poate folosi pentru monitorizarea tensiunii aplicate, prin realizarea
unei bucle de control închise.
 O memorie nevolatilă EEPROM, integrată pe chipul
microcontrolerului, este potrivită pentru memorarea unor parametri
de calibrare specifici aplicaţiei, istoria dozajului, monitorizarea
funcţionării dispozitivului sau alte date.

Cap.8. Proiectarea sistemelor dedicate biomedicale 74

Cap.8. Proiectarea sistemelor dedicate biomedicale

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