Documente Academic
Documente Profesional
Documente Cultură
CUPRINS
2.
2.3.3
2.3.3.1
2.3.3.2
2-0
ARHITECTURA CALCULATOARELOR
OBIECTIVE
2-1
ARHITECTURA CALCULATOARELOR
componente:
circuite logice elementare : I, SAU, NU, DCD, MULTIPLEXOARE,
BISTABILI, REGISTRE, etc.
structura: scheme logice sau sisteme de ecuaii logice, diagrame Karnaugh sau ASM (limbaj
de descriere a mainilor algoritmice de stare)
2-2
ARHITECTURA CALCULATOARELOR
subnivelul transferurilor ntre registre, care descrie comportarea sistemului la nivelul unitii de
execuie i a unitii de comand.
n cadrul descrierii unitii de execuie se opereaz cu:
componente: uniti logice combinaionale, registre, memorii;
structura:
interconectarea componentelor prin instruciuni de conexiune specifice
n cadrul descrierii unitii de comand se opereaz cu:
subnivelul limbajelor :
descrie componentele limbajelor de programare;
subnivelul aplicaiilor:
descrie caracteristicile programelor de aplicaie
pentru diverse domenii de activitate.
b) -
ARHITECTURA CALCULATOARELOR
END SEQUENCE
< conexiuni >
< transferuri >
END
unde :
< nume modul >
< declaraiile >
ARHITECTURA CALCULATOARELOR
Operanzii reprezint variabile ce pot lua diverse valori numerice sau alfanumerice i sunt asociai
unor operatori ce aparin limbajului.
Variabilele reprezint nume prin care se pot face referiri simbolice la operanzi sau alte entiti ale
limbajului.
Operanzii cu care opereaz AHPL sunt de trei tipuri:
- Scalari, reprezentai prin litere mici:
x,y,z;
- Vectori, reprezentai prin litere mari:
X,Y,Z;
- Matrice, reprezentate prin litere mari aldine: X,Y,Z;
Prin scalari se reprezint variabile independente, fr s li se asocieze o structur oarecare.
Exemplu: bistabili individuali din unitatea de comand sau execuie.
Vectorul este un ansamblu de operanzi scalari structurai sub forma unui tablou unidirecional.
Numrul de componente ale unui vector formeaz dimensiunea acestuia i poate fi determinata cu
operatorul dimensiune <nume_vector >.
Registrele unui calculator sunt reprezentate prin vectori.
De exemplu un registru RA de 16 bii are dimensiunea RA=16, iar componentele sale se noteaz:
RA = ( RA0, RA1,...,RARA-1 ),
unde prin RAi se specific bitul din poziia i a registrului RA.
Matricea este un ansamblu de operanzi structurai ntr-un tablou bidimensional. Matricea are deci
dou dimensiuni i n mod corespunztor exist doi operanzi dimensiune 1 i 2.
2M =numrul de coloane ;
1M =numrul de linii.
Astfel o matrice M de dimensiunea (1M, 2M) se prezint astfel:
M0
0
M
0
M=
1M1
M0
(M
Vectorul ( M
Vectorul
i
0
0
j
M
M
1
j
L
L
2M1
1M1
M 2M1
M
M
M
M
1
1
1M 1
1
i
M
j
2M1
2M 1
1M 1
Prin matrice se reprezint ansambluri de registre grupate pentru diferite operaii sau module de
memorie. Astfel un modul de memorie de 4 K cuvinte de 16 bii poate fi reprezentat ca o matrice M cu
1M=4096 i 2M=16.
i
M reprezint cuvntul i din memorie,
iar
i
j
Selecia unui subvector sau submatrici se face foarte simplu, n mod explicit astfel:
2-5
ARHITECTURA CALCULATOARELOR
Ai:j
Mi:j
ARHITECTURA CALCULATOARELOR
Fie
A = (0, 1, 1, 0, 1, 0, 0, 1 )
B = (B0, B1, B2, B3, B4, B5, B6, B7 )
A / B = (B1, B2, B4, B7 )
0
M1
M = M i F=[0,0,1]
2
M
rezult:
operatori de concatenare
, concatenare pe linii
! concatenare pe coloane
Exemplu:
Fie a i b doi scalari, A i B doi vectori iar M o matrice
A=a,b reprezint un vector care are ca i componente pe a i b
M=A!B reprezint o matrice care are ca linii componetele A i B
De notat faptul c dac vectorii concatenai pe coloane nu au aceeai dimensiune se face aliniere la
dreapta.
operator de codificare
n T m; realizeaz codificarea binar a valorii reprezentat de numrul m ntr-un vector care are n
componente binare. Rezultatul codificrii este un vector.
Exemplu:
4 T 5 genereaz vectorul (0,1,0,1)
8 T 7 genereaz vectorul (0,0,0,0,0,1,1,1)
operatori de decodificare
sau DCD; realizeaz funcia invers a codificrii adic interpreteaz componentele vectorului
cruia i se aplic la intrare cifre binare i genereaz o valoare numeric. n general aceast valoare
reprezint o adres.
Exemplu:
(0,1,0,1) genereaz valoarea 5
DCD (0,0,0,0,0,1,0,1) genereaz valoarea 5
operatori de atribuire
a) de conexiune
=
,realizeaz conectarea resurselor specificate
2-7
ARHITECTURA CALCULATOARELOR
b) de transfer
ARHITECTURA CALCULATOARELOR
operatori de sincronizare:
(SL ; SYN (semnal_asincron));
operatori de selecie:
(Aj; Am:n ; Mj ; Mm:n );
operator de selecie prin comprimare:
( X / Y );
operator de selecie prin comprimare i reducere: (M * F);
operatori de concatenare:
(A,B ; A!B);
operator de codificare:
( n T p);
operatori de decodificare:
(X ; DCD );
operatori relaionali.
Pentru scrierea expresiilor trebuie s se in seama de urmtoarele:
indicii superiori i inferiori trebuie specificai prin valori constante (nu se admit expresii de
indici);
ARHITECTURA CALCULATOARELOR
Z =
VLCO
MAG =
VLCO
Z =
MLCO*F
MAG =
MLCO*F
n primele dou instruciuni are loc o conexiune necondiionat a ieirilor VLCO la intrrile Z sau
MAG.
Fiecare component a vectorului VLCO poate fi o funcie logic combinaional a crei ieire va fi
conectat la intrarea corespunztoare a vectorului destinaie.
Ultimele dou instruciuni specific o conexiune condiionat n sensul c, prin F se specific linia
din matricea de vectori de funcii logice MLCO, care se va conecta la Z sau MAG. Operaia MLCO*F
este echivalent cu operaiile de comprimare i reducere.
Astfel dac: F=(f,g,h) iar MLCO = (A!B!C),
operaia MLCO*F este echivalent cu
(A f) (B g) (C h)
ceea ce poate fi scris i sub forma:
(A0f,A1f,..,Anf) (B0g,B1g,..,Bng) (C0h,C1h,..,Cnh)
n general astfel de expresii se utilizeaz pentru specificarea operaiilor de multiplexare (cnd
+/F=1), dar se poate ca i (+/F > 1) s fie util n diferite situaii.
Pentru exemplificare se considera pasul AHPL urmtor:
10.BUS=(A!B) * (f1 ,f2 )
unde A=(A0 ,A1 ) i B= (B0, B1)
Implementarea fizic a acestui pas este prezentat n Fig. 2.1. Se vede c operaia de conexiune are loc
numai dac bistabilul 10 este n 1, deci controlul este la pasul AHPL 10.
A0
f1
Pas 10.
D
Clock
> CLK
CL
Q
_
Q
f2
_____
Reset
Bus
2-10
A1
B0
B1
ARHITECTURA CALCULATOARELOR
Variabila destinaie este un bistabil sau un vector ce are ca echivalent un registru sau un cuvnt de
memorie. nscrierea valorii expresiei n operandul destinaie se face sincronizat cu un semnal de tact. Acest
semnal de tact poate fi specificat explicit printr-o conexiune sau implicit ca fiind tactul unitii de comand.
Forma general a unei instruciuni de transfer este:
VD VLCO
VD MLCO*F
MD*FVLCO
unde: VD este un vector destinaie iar
MD este o matrice destinaie
Prima instruciune specific un transfer necondiionat.
Cea de a doua form poate fi descompus n urmtoarele operaii elementare: conexiune la
intrrile vectorului destinaie a vectorului rezultat prin evaluarea expresiei i apoi nscrierea acestuia n VD.
Cea de a treia form este echivalent cu: valoarea lui VLCO se transfer n toate liniile matricei
rezultate prin comprimarea i reducerea cu vectorul de selecie F.
Exemplu:
Fie
MLCO = (A!B!C)
F = (f,g,h)
VD = D
Instruciunea:
D(A!B!C)*(f,g,h) se va implementa astfel:
D(A f) (B g) (C h).
Instruciunea:
(A!B!C)*(f,g,h) D se va implementa astfel:
( A! B!C ) ((( D! A) * ( f , f ))!(( D! B ) * ( g , g ))!(( D!C ) * (h, h)))
sau
dac f=1 AD altfel A rmne neschimbat
dac g=1 BD altfel B rmne neschimbat
dac h=1 CD altfel C rmne neschimbat
Diferena dintre cele dou implementri este urmtoarea:
n primul caz transferul se execut ntotdeauna, datele de intrare fiind selectate n mod
corespunztor. n al doilea caz funciile de transfer condiioneaz intrarea de tact i deci transferul are loc
numai dac se ndeplinete condiia.
Exemplu:
10. A*fB se va implementa astfel:
Instruciunea de mai sus se va implementa ca n Fig 2.2.a. cnd transferul este condiionat pe
intrri, i ca n Fig. 2.2.b, cnd transferul este condiionat pe tact.
2-11
ARHITECTURA CALCULATOARELOR
PR
A1
A2
A3
A4
B0
B1
Y1
Y2
Y3
Y4
> CLK
CL
B1
B2
B3
B4
_
A/B
G
Q
_
Q
PR
D
MUX 2:1
> CLK
CL
PR
D
Clock
> CLK
CL
Q
_
Q
Q
_
Q
A0
A1
_____
Reset
> CLK
CL
PR
D
Clock
> CLK
CL
PR
D
Q
_
Q
B1
_____
Reset
PR
D
> CLK
CL
Q
_
Q
Q
_
Q
A0
A1
ARHITECTURA CALCULATOARELOR
15. AB
PR
Clock
PR
A0
_
> ClLK
D
Q
_
> ClLK
D
Q
B1
_____
Reset
PR
D
Q
A1
_
> ClLK
ARHITECTURA CALCULATOARELOR
perioad de tact. Astfel de transferuri i conexiuni se specific dup declaraia END SEQUENCE i
bineneles, nainte de END.
Exemplu:
Conexiunea Z = (A!B)*(f1 ,f2 )
unde A=(A0 ,A1 ) i B=(B0 ,B1 ) specificat dup END SEQUENCE se va implementa ca n Fig. 2.4. Se
observ c nu apare condiionarea cu vreun pas AHPL, conexiunea are loc tot timpul indiferent de punctul
n care se gsete execuia secvenei de control.
A0
f1
Z0
A1
Z1
B0
f2
B1
Q
_
Q
PR
D
> CLK
CL
Q
_
Q
B0
PR
D
> CLK
CL
B1
Q
_
Q
PR
D
> CLK
CL
Q
_
Q
A0
A1
Clock
ARHITECTURA CALCULATOARELOR
3. (S)
Salt multiplu (necondiionat), S > 1
unde:
Si este un numr reprezentnd pasul AHPL cu care se va continua secvena de control, i trebuie
specificat printr-o constant.
F este un vector de funcii logice reprezentnd condiiile de test.
S este un vector de constante reprezentnd numerele de pai AHPL la care se poate continua
secvena, funcie de valoarea vectorului F.
Pentru saltul condiionat se evalueaz expresiile pentru F i prin comprimarea lui S cu F, se obin
numerele pailor AHPL cu care se continua execuia.
Exist urmtoarele cazuri:
((F)/(S)) = 0
Se continu cu pasul urmtor.
((F)/(S)) = 1
Se execut ca i saltul necondiionat.
((F)/(S)) > 1
Se iniiaz o secven paralel ncepnd cu paii AHPL selectai.
Saltul prezentat la cazul 3 reprezint un salt multiplu necondiionat, ce iniiaz deci o secven
paralel.
n secvenele de comand care nu au o structur ciclic sau n cazul secvenelor paralele se poate
specifica terminarea execuiei unei secvene prin instruciunea: DEAD END ,care va trece unitatea de
comand ntr-o stare terminal. n aceast stare nu se mai execut nici o aciune dintre cele specificate n
secvena de comand pn la o nou iniializare. DEAD END poate apare oriunde n secvena de
comand.
Pentru a facilita scrierea programelor n care au loc mai multe aciuni n aceai perioad de tact,
limbajul AHPL permite specificarea execuiei mai multor pai AHPL n aceai perioad de timp. Astfel
dac la un pas AHPL se specific declaraia: NO DELAY, toate aciunile din acest pas se desfoar n
perioada de tact corespunztoare pasului precedent din care provine (ultimul care nu conine declaraia
NO DELAY).
Dac fiecare pas AHPL dintr-o secven de comand conine declaraia NO DELAY, iar n cazul
secvenei se specific numai conexiuni se obine o schem logic combinaional. O astfel de secven se
poate scrie i dup END SEQUENCE.
2.4 Descrierea n AHPL a schemelor logice combinaionale
Pentru a facilita scrierea secvenelor de descriere a circuitelor logice combinaionale oferind i o
flexibilitate de utilizare a acestora n diferite module, limbajul AHPL permite descrierea separat ca
module de program distincte sub forma:
UNIT: nume_funcie <lista de parametri>
<declaraii>
<conexiuni>
END
Dac o schem combinaional apare (este apelat) de mai multe ori cu aceeai parametri efectivi
ea va fi generat fizic o singur dat cu condiia s nu se depeasc fan-out-ul ieirilor.
Dac ns este apelat de mai multe ori, cu parametri diferii se poate proceda n dou moduri:
se implementeaz cte o copie a schemei pentru fiecare apelare;
se implementeaz schema o singur dat dar se prevede schema de selecie a parametrilor de
intrare corespunztori fiecrei apelri.
2-15
ARHITECTURA CALCULATOARELOR
Alegerea uneia dintre modaliti se face prin analiza complexitii funciei combinaionale i a
logicii de selecie a parametrilor.
Apelul unei uniti logice combinaionale se face prin:
nume_funcie(lista_de_parametri_efectivi).
Deci n expresii AHPL pot s apar nume de uniti logice combinaionale definite.
n continuare se vor prezenta cteva uniti logice combinaionale foarte utilizate n structurile
numerice.
2.4.1 Sumatorul elementar complet
Sumatorul elementar complet realizeaz operaia de adunare a unor operanzi de lungime un bit,
innd seama de transportul de intrare i genereaz pe lng sum i eventualul transport.
n Fig.2.6 se prezint schema bloc a unui sumator elementar complet. Intrrile sunt cei doi
operanzi i transportul din exterior iar ieirile sunt suma i transportul spre exterior.
x
tin
SUMEC
sum
tout
SUMEC
0
1
SUMEC
ARHITECTURA CALCULATOARELOR
6. SUMEC00 = sum
7. SUMEC01 = tout
END
Implementarea unitii logice combinaionale a sumatorului elementar complet este prezentat n
Fig. 2.7.
x
sum
SUMEC
tin
tout
SUMEC
SUMEC
2-17
ARHITECTURA CALCULATOARELOR
X0 Y0
X1 Y1
SUMEC
ADD0
SUMEC
T16
SUMEC
S1
T1
ADD1
X15 Y15
X14 Y14
SUMEC
S0
T0
S15
T2
T14
ADD2
T15
ADD15
SUMEC
SUMEC
ADD16
AC
DM
X
T16
ADD
t, AC ADD(AC; DM;0),
/ * AC AC + DM * /
t, AC ADD(AC; DM;1),
/ * AC AC DM * /
t, AC ADD(AC; DM;1),
/ * AC DM AC * /
2-18
ARHITECTURA CALCULATOARELOR
DCD(A)
A
DCD
2n
2.
3.
DCD = DE0:m-1
END
2.4.4 Operaiile de citire / scriere cu memoria n AHPL
Se consider o memorie M [2n ,m] i un vector de selecie F cu F = 2n componente astfel ca
+/F=1 (o singur component este egal cu 1).
Presupunem c datele se citesc i se scriu n memorie printr-un registru de date DM[m]. Schema
general pentru acces la memorie este prezentat n Fig. 2.11.
0
M
2nxm
2n-1
D
C
D
AM
M
2nxm
n-1
m-1
m-1
DM
DM
ARHITECTURA CALCULATOARELOR
n schema din Fig. 2.12 vectorul de selectie F a fost nlocuit cu o schem logic combinaional
care primete la intrare un vector de n bii, registrul de adrese AM, i genereaz un vector decodificat de
2n bii care are o singur component egal cu 1 n orice moment. Aceast schem logic este realizat de
DCD (AM).
Instruciunea de scriere n memorie va fi deci:
M*DCD(AM) DM
0:n-1
AM
DCD
BUSFN
BUSFN
0:n -1
0:m -1
0:m -1
ARHITECTURA CALCULATOARELOR
END
Exemplu:
Fie o memorie de 4 cuvinte a 8 bii. Unitatea logic combinaional ce asigur citirea din aceast
memorie are urmtoarea descriere:
UNIT BUSFN (M,F)
INPUTS: M [4,8], F [4]
OUTPUTS: BUSFN [8]
1. NIVS = M F
2. NIV = NIVS0 ! ( NIVS1:3 NIV0:2 )
3. BUSFN=NIV3
END
Implementarea unitii logice combinaionale este prezentat n Fig 2.13.
2-21
ARHITECTURA CALCULATOARELOR
F0
NIVS0
NIV 0
M1
NIVS1
M2
F2
NIV 1
NIVS2
M3
F
NIV
NIVS3
NIV3
BUSFN(M;F)
2-22
ARHITECTURA CALCULATOARELOR
2-0