Sunteți pe pagina 1din 24

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

CUPRINS
2.

DESCRIEREA STRUCTURII SISTEMELOR NUMERICE ..................................................................... 2-1


2.1 MODALITI DE DESCRIERE A STRUCTURII SISTEMELOR NUMERICE DE PRELUCRARE A DATELOR ...................... 2-2
2.2 LIMBAJUL DE DESCRIERE A STRUCTURILOR NUMERICE AHPL ......................................................................... 2-3
2.3 DESCRIEREA SISTEMELOR NUMERICE N AHPL .............................................................................................. 2-3
2.3.1
Tipuri de operanzi n AHPL .............................................................................................................. 2-4
2.3.2
Tipuri de operatori ............................................................................................................................ 2-6
2.3.2.1

2.3.3

Operatori AHPL............................................................................................................................................ 2-6

Instruciuni AHPL ............................................................................................................................. 2-8

2.3.3.1
2.3.3.2

Instruciuni de atribuire ................................................................................................................................. 2-8


Instruciuni de salt ...................................................................................................................................... 2-14

2.4 DESCRIEREA N AHPL A SCHEMELOR LOGICE COMBINAIONALE .................................................................. 2-15


2.4.1
Sumatorul elementar complet .......................................................................................................... 2-16
2.4.2
Sumator paralel pe 16 bii ............................................................................................................... 2-17
2.4.3
Unitate logic combinaional pentru decodificator........................................................................ 2-18
2.4.4
Operaiile de citire / scriere cu memoria n AHPL .......................................................................... 2-19
2.4.4.1
2.4.4.2
2.4.4.3

Operaia de scriere n memorie.................................................................................................................... 2-19


Operaia de citire din memorie .................................................................................................................... 2-20
Unitate logic combinaional pentru citire din memorie BUSFN ................................................................ 2-20

2-0

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

2. DESCRIEREA STRUCTURII SISTEMELOR NUMERICE

OBIECTIVE

Capitolul 2 este dedicat prezentrii principalelor modaliti de descriere a sistemelor numerice.


Este prezentat limbajul AHPL (A Hardware Programming Language), care va fi utilizat pentru descrierea
arhitecturii calculatorului didactic. Se exemplific modalitile de descriere a schemelor logice
combinaionale sub form de uniti logice combinaionale i a schemelor logice secveniale sub form de
module logice.

2-1

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

2.1 Modaliti de descriere a structurii sistemelor numerice de prelucrare a datelor


Descrierea structurii sistemelor de prelucrare a datelor se poate realiza:
fie examinnd resursele hardware i software ca entiti diferite;
fie examinnd resursele hardware i software ca entiti echivalente.
Descrierea se poate efectua la diferite grade de detaliere, care pot fi organizate ierarhic.
n cele ce urmeaz structurile numerice vor fi reprezentate sub form ierarhic pe mai multe
nivele, componentele hardware i software fiind tratate ca entiti diferite.
n cadrul fiecrui nivel, sistemul numeric este caracterizat, din punct de vedere structural, printr-o
mulime finit de componente (uniti funcionale) care posed anumite proprieti (atribute) i o mulime
de modaliti de interconectare a acestor elemente.
Fiecrui element de la un anumit nivel de descriere i corespunde pe nivelul imediat inferior un
ansamblu de componente interconectate ntr-un mod specific.
Fiecare nivel de descriere se caracterizeaz printr-un limbaj distinct, specific componentelor i
modurilor de interconectare.
Nivelurile de descriere a structurilor numerice privite sub form ierarhic snt:
Nivelul elementelor de circuit;
Nivelul proiectrii logice:
subnivelul circuitelor de comutaie (ASM);
subnivelul transferurilor ntre registre (AHPL);
Nivelul interconectrii resurselor (PMS);
Nivelul programelor:
subnivelul setului de instruciuni (ISP);
subnivelul limbajelor;
subsistemul sistemelor de operare;
subsistemul aplicaiilor;
Nivelul elementelor de circuit - corespunde nivelului inferior de descriere. La acest nivel se
opereaz cu:
componente: rezistene, condensatori, tranzistori, etc.
structura:
scheme realizate cu aceste componente care au fost reprezentate grafic
sau descrise analitic prin ecuaii pe bucle i noduri.
Acest nivel nu este specific sistemelor de calcul, fiind utilizat n special n studiul circuitelor
electrice.
Nivelul proiectrii logice - corespunde descrierii la nivelul circuitelor logice. n cadrul acestui
nivel distingem :
a) subnivelul circuitelor de comutaie, care se refer la circuitele combinaionale i la cele,
secveniale:

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

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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:

componente: algoritmi de comand, microsecveniator;

structura: descrierea pailor de comand prin instruciuni de transfer specifice,


microinstruciuni i microprogram.
Nivelul interconectarii resurselor - corespunde descrierii sistemelor de calcul la nivelul
subansamblelor. Se opereaz cu:

componente : P,M,S,L,P I/E,K,D,T.

structura : calculatoare numerice, sisteme multiprocesor, reele de calculatoare.


Acest nivel scoate n eviden interconectarea componentelor i atributele intrinseci ale acestora.
Nivelul programelor - corespunde descrierii resurselor software ale sistemelor de calcul
Distingem patru subnivele:

subnivelul setului de instruciuni - opereaz cu:


componente: formatul instruciunii, moduri de adresare, registre;
structura:
descrie modul logic de interpretare a setului de instruciuni. Se
utilizeaz limbajul de descriere ISP.

subnivelul limbajelor :
descrie componentele limbajelor de programare;

subnivelul sistemelor de operare:


descrie resursele hardware i sotfware;

subnivelul aplicaiilor:
descrie caracteristicile programelor de aplicaie
pentru diverse domenii de activitate.

b) -

2.2 Limbajul de descriere a structurilor numerice AHPL


K. Iverson a propus limbajul APL (A Programming Language) care ndeplinete n mare msur
cerinele descrierii arhitecturii sistemelor numerice i ntr-o oarecare msur, i cerinele de descriere a
unitii de execuie. Pornind de la un subset APL i completndu-l cu o serie de faciliti specifice
reprezentrii operaiilor la nivelul unitii de comand a unui subansamblu numeric, s-a dezvoltat un limbaj
de descriere denumit AHPL (A Hardware Programming Language). Operaiile reprezentate de AHPL au
un echivalent direct n implementarea fizic. Totui, n scopul unei descrieri mai clare, se utilizeaz i
cteva convenii din APL care nu au echivalent direct la nivelul resurselor fizice, fiind incluse i acestea n
AHPL.
2.3 Descrierea sistemelor numerice n AHPL
n AHPL un sistem numeric este descris cu ajutorul procedurilor i funciilor.
Procedurile descriu module ce conin elemente de memorie i secvene de control.
Funciile descriu uniti ce conin elemente combinaionale.
Structura unei proceduri este urmtoarea:
MODULE: < nume modul >
< declaraii >
< secvena de control >
2-3

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

END SEQUENCE
< conexiuni >
< transferuri >
END
unde :
< nume modul >
< declaraiile >

- specific numele modulului ce urmeaz s fie descris n AHPL


- specific elementele modulului la nivel de memorie, intrri, ieiri,
conexiuni cu exteriorul.
< secvena de control >
- specific aciunile ce se desfoar la diverse momente de timp,
asociate pailor AHPL.
END SEQUENCE
- specific terminarea secvenei de control.
< conexiuni>
- specific conexiuni i transferuri ce nu sunt asociate unui
< transferuri >
moment de timp (ele au loc tot timpul).
END
- specific sfritul descrierii modulului.

Structura unei funcii este urmtoarea:


UNIT: <nume funcie> (lista de parametri)
<declaraii>
<conexiuni>
END
Declaraiile din cadrul modulului ajut la specificarea elementelor din care este constituit acesta.
Limbajul AHPL recunoate urmtoarele declaraii:
MEMORY:
<lista de variabile>
- specific prin lista de variabile asociat toate elementele de memorie (bistabili,
registre, memorii) utilizate n modulul respectiv.
INPUTS:
<lista de variabile>
- specific prin lista de variabile asociat toate semnalele de intrare n modulul
respectiv.
OUTPUTS:
<lista de variabile>
- specific prin lista de variabile asociat, semnalele de ieire din modul.
BUSES:
<lista de variabile >
- specific prin lista de variabile asociat magistralele din cadrul modulului.
COMBUSES:
<lista de variabile>
- specific prin lista de variabile asociat magistralele (bidirecionale) de
comunicaie cu exteriorul.
ONE SHOTS: <lista de variabile> specific prin lista de variabile asociat toate elementele de tip
monostabil din cadrul modulului.
n cadrul procedurilor ce descriu un modul se pot utiliza ieirile unitilor logice combinaionale
specificate prin funcii.
2.3.1 Tipuri de operanzi n AHPL
2-4

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

) reprezint linia i, iar


) reprezint coloana j a matricei M.

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

reprezint bitul j din cuvntul i.

Selecia unui subvector sau submatrici se face foarte simplu, n mod explicit astfel:
2-5

ARHITECTURA CALCULATOARELOR
Ai:j
Mi:j

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

reprezint vectorul format cu elementele de la i pn la j ale vectorului A.


reprezint matricea format cu liniile de la i pn la j ale matricii M, i reprezint n general
o zon de memorie.

2.3.2 Tipuri de operatori


Prin operatori se specific prelucrrile ce se aplic asupra operanzilor. n funcie de numrul
operanzilor, operatorii pot fi unari sau binari iar n funcie de tipul operanzilor, operatorii pot fi primitivi,
dac se aplic asupra unor variabile scalare sau operatori micti, dac se aplic asupra unor combinaii de
variabile de tip scalar, vectorial sau matriceal.
2.3.2.1 Operatori AHPL
Operatorii de care dispune limbajul AHPL sunt:
operatori logici:
, , sau . , + , care realizeaz funciile logice I, SAU, NU ntre operanzii specificai.
Exemple:
Fie:
A = ( A0, A1, ... , An )
B = ( B0, B1, ... , Bn )
doi vectori i a , b doi scalari
a b;
A + B = ( A0+B0, A1+B1, ..., An+Bn )
operatori de reducere:
/ ; /; +/ realizeaz funcia logic specificat ntre componentele vectorului asupra cruia acioneaz.
Rezultatul este un scalar.
Exemple:
/A = A0 A1 A2 ... An
operatori de sincronizare
SYN <nume_semnal_asincron>
SL <nume_semnal>
Operatorul SYN sincronizeaz semnalul specificat ca parametru (nume_semnal_asincron) , cu
semnalul de ceas al sistemului.
Operatorul SL genereaz un semnal de o durat egal cu perioada semnalului de ceas indiferent de durata
semnalului specificat ca parametru (nume_semnal).
Exemplu:
SL(SYN(starta))
genereaz un semnal sincron cu semnalul de ceas i de o durat egal cu
perioada semnalului de ceas, indiferent de durata semnalului starta.
operatori de selecie:
j ; i:j selecteaz bii dintr-un registru sau zone de memorie.
Exemple:
Aj
- selecteaz bitul j din registrul A
Ai:j =(Ai, Ai+1, ..., Aj ) - selecteaz grupul de bii ai registrului A ntre poziiile i i j
Mi:j
- selecteaz zona de memorie cuprins ntre adresele i i j
operator de selecie prin comprimare
X/Y elimin componentele din Y corespunztoare componentelor egale cu 0 din X
Exemplu:
2-6

ARHITECTURA CALCULATOARELOR
Fie

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

A = (0, 1, 1, 0, 1, 0, 0, 1 )
B = (B0, B1, B2, B3, B4, B5, B6, B7 )
A / B = (B1, B2, B4, B7 )

operator de selecie prin comprimare i reducere:


M*F realizeaz eliminarea liniilor din matricea M corespunztoare componentelor egale cu 0 din vectorul
F
Exemplu:
Fie

0
M1
M = M i F=[0,0,1]
2
M
rezult:

M*F selecteaz linia 2, adic M2

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

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

b) de transfer

,realizeaz transferul informaiei de la surs la destinaie. Resursa


destinaie trebuie s fie element cu posibilitate de memorare.
Exemplu:
a = b conecteaz semnalul b la semnalul a
Z = A conecteaz registrul A la ieirile Z ale unui modul
BA coninutul registrului A se transfer n registrul B
operator de dimensionare
,
aplicat unui vector, genereaz numrul de componente ale acestuia (lungimea vectorului).
Fie
A= ( A0, A1, ..., An ) atunci A genereaz valoarea n+1
operatori relaionali
x R y, unde: R { < ; ; = ; ; > ; } stabilete relaia ntre cei doi operanzi i genereaz valoarea
adevrat (1 logic) dac relaia este ndeplinit, i genereaz valoarea fals (0 logic) n caz contrar. n general
relaia R este implementat cu ajutorul funciilor, prin uniti logice combinaionale.
2.3.3 Instruciuni AHPL
Secvena de control a unei uniti de comand se specific cu ajutorul pailor AHPL.
n continuare se vor prezenta att modul n care se specific diferite aciuni n limbajul AHPL ct
i implementarea acestora la nivelul resurselor fizice.
Un pas AHPL specific toate aciunile ce au loc n perioada de timp n care secvena de control se
gsete n starea respectiv. Durata unui pas AHPL este egal cu perioada semnalului de ceas (de tact).
Un pas AHPL poate deci specifica mai multe instruciuni care au loc n acelai moment de timp.
Instruciunile AHPL sunt separate prin caracterul (;).
Un pas AHPL poate fi prezentat n mai multe linii surs ce specific instruciuni sau comentarii.
Fiecare pas AHPL specific att aciunile ce au loc n pasul respectiv ct i adresa urmtoarei instruciuni
din secvena de control.
Pasul AHPL urmtor poate fi specificat n mod explicit prin instruciune de salt sau n mod implicit
ca fiind urmtorul n textul programului.
Fiecare instruciune poate conine comentarii formate din iruri de caractere ncadrate de
delimitatori: /* comentariu */.
Instruciunie AHPL pot fi mprite n dou mari categorii:
- instruciuni de atribuire;
- instruciuni de salt.
Sfritul secvenei de pai AHPL este marcat cu declaraia END SEQUENCE., iar sfritul unui
program AHPL este marcat cu declaraia END.
2.3.3.1 Instruciuni de atribuire
Formatul unei instruciuni de atribuire este:
<destinaie> <operator_de_atribuire> <expresie>
Valoarea obinut prin evaluarea expresiei este atribuit variabilei destinaie. Dac vectorii
destinaie i surs nu au aceeasi dimensiune, se face alinierea dreapta.
Expresiile pot fi formate utiliznd:
operatori logici:
( ; ; - );
2-8

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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);

expresiile (sau subexpresiile) din paranteze se evalueaz cu prioritate;

pentru a evita proliferarea parantezelor se vor avea n vedere prioritile operatorilor


astfel:
1. Negaie i SYN
-prioritatea cea mai mare;
2. Operatori de selectie;
3. I logic;
4. SAU i SAU EXCLUSIV;
5. Concatenare
Ca operanzi pentru scrierea expresiilor se pot utiliza:
- intrri provenite din alte module;
- funcii logice combinaionale;
- elemente de memorie (vectori, matrice);
- magistrale de date sau comenzi;
- constante binare.
Instruciunile de atribuire sunt mprite n dou categorii n funcie de operatorul care se folosete:
- instruciuni de conexiune (operatorul de conexiune = );
- instruciuni de transfer
(operatorul de transfer ).
Prin operaiile de conexiune valoarea expresiei se atribuie variabilei doar pe durata pasului AHPL
n care este specificat conexiunea respectiv. Deci aciunea are un caracter temporar.
Prin
operaiile de transfer, valoarea expresiei se atribuie variabilei din partea stnga, cnd secvena de control a
ajuns n pasul AHPL respectiv, i este memorat n variabila destinaie care pstreaz aceasta valoare pn
la o nou atribuire. Aciunea are un caracter permanent specific funcionrii circuitelor secveniale.
1. Instruciuni de conexiune
Dac se noteaz cu:
MAG
- o magistral predeclarat
Z
- un vector de ieire;
VLCO - un vector de funcii logice combinaionale de ieire;
MLCO
- o matrice de vectori logici combinaionali VLCO;
F
- un vector de constante binare sau funcii logice
instruciunile de conexiune pot fi specificate prin una din urmtoarele forme:
2-9

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Fig.2.1 Conexiune selectiva


2. Instruciuni de transfer

2-10

A1

B0

B1

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Fig.2.2a Transfer condiionat pe intrri


B0

> CLK
CL

PR
D

Clock

> CLK
CL

PR
D

Q
_
Q

B1

_____

Reset

PR
D
> CLK
CL

Q
_
Q

Q
_
Q

A0

A1

Fig.2.2b Transfer condiionat pe tact


3. Specificarea semnalului de tact
Se observ c n ambele implementri tactul propriu-zis este dat de trecerea n 1 a bistabilului 10
care marcheaz execuia programului la acest pas (trecere care este sincron cu semnalul de tact al
modulului).
Uneori este necesar ca transferul (condiionat sau necondiionat) s se execute sincronizat cu unul
din fronturile semnalului de tact (clock) sau cu un tact extern ceea ce permite transferuri asincrone n
raport cu semnalul de ceas al modulului.
Acesta se poate realiza prin specificarea, la pasul respectiv, a unei conexiuni de tipul:
CK = semnal_de_tact
cnd toate resursele din pasul AHPL respectiv vor fi comandate de un semnal de tact extern, sau
CK [nume_resursa] = semnal_de_tact
pentru a evidenia c numai intrrile de tact ale resursei specificate sunt conectate la "semnal_de_tact".
Astfel considernd c toi bistabilii i registrele comut pe front cresctor se consider urmtoarele
exemple:
2-12

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

15. AB

/* transferul are loc pe frontul cresctor al semnalului de tact al modulului


(CLOCK) */
16. CK[A] = TACT;
AB /* transferul are loc pe frontul cresctor al unui tact extern (TACT) */
_______
17. CK[A] = CLOCK ; CK[C]=TACT
________
AB; /* transferul are loc pe frontul cresctor al semnalului CLOCK */
CB; /* transferul are loc pe frontul cresctor al semnalului TACT */
DB; /* transferul are loc pe frontul cresctor al semnalului CLOCK */
______
18. CK = CLOCK;
AB;18
CB;
DB; /* toate transferurile, la acest pas, sunt efectuate pe frontul descresctor al lui
CLOCK*/
n toate aceste cazuri intrarea de tact va fi condiionat de valoarea expresiei din instruciunea CK
= expresie
Astfel instruciunea:
______
15. CK[A] = CLOCK;
AB
Se va implementa ca n Fig. 2.3.
B0

PR

Clock

PR

A0

_
> ClLK

D
Q
_
> ClLK

D
Q

B1

_____

Reset

PR
D
Q

A1

_
> ClLK

Fig.2.3. Transfer pe frontul cztor al tactului


4. Transferuri i conexiuni dup END SEQUENCE
Transferurile i conexiunile specificate n secvena de control sunt aciuni care au loc la pasul
respectiv, cnd execuia secvenei de comand ajunge n acel punct.
Exist situaii n care este necesar o conexiune cu caracter permanent, nu numai pe o perioad a
semnalului de tact. De asemenea, n anumite situaii este necesar ca un transfer s se execute la fiecare
2-13

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Fig. 2.4. Conexiune dup END SEQUENCE


PR
D
> CLK
CL

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

Fig. 2.5. Transfer dupa END SEQUENCE


Transferul AB specificat dup END SEQUENCE se va implementa ca n Fig. 2.5.
Se vede c registrul A "urmrete" registrul B.
Dac A i B sunt n module diferite, cu semnele de tact diferite, se realizeaz un transfer sincron cu
tactul modulului destinaie.
2.3.3.2 Instruciuni de salt
Cu ajutorul instruciunilor de salt se pot implementa structuri de control de tip: ramificaii n
program, cicluri, secvene paralele.
Formatul instruciunilor de salt este:
1. (Si)
Salt necondiionat
2. (F)/(S)
Salt condiionat, unde F = S
2-14

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Fig. 2.6. Sumator elementar complet


Tabela de adevr, diagramele Karnaugh i ecuaiile logice sunt prezentate n continuare.
Ecuaiile logice rezultate sunt :
Tabela de adevr:
sum = x y tin
x y tin
suma
tout
tout = ((x y) tin) (x y)
Aceste expresii logice pot fi descrise n AHPL astfel:
0 0 0
0
0
0 0 1
1
0
UNIT: SUMEC (x;y;tin)
0 1 0
1
0
INPUTS: (x;y;tin)
0 1 1
0
1
1 0 0
1
0
OUTPUTS: SUMEC [2;1]
1 0 1
0
1
1. a = x y
1 1 0
0
1
2. b = x y
1
1
1
1
1
3. sum = a tin
4. c = a tin
5. tout = b c
2-16

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Fig. 2.7. Schema sumator elementar complet


2.4.2 Sumator paralel pe 16 bii
Pentru a descrie un sumator paralel pe 16 bii se va considera un vector de funcii SUMEC
obinndu-se astfel o matrice cu 2 linii reprezentnd suma i transportul pe fiecare rang.
Operanzii sumatorului paralel sunt:
X = ( X0, X1 ,..., X15 )
Y = ( Y0, Y1 ,..., Y15 )
Suma i transportul din rangul cel mai semnificativ vor fi:
ADD = (ADD0, ADD1 ,...,ADD16 )
Descrierea AHPL a sumatorului pe 16 bii este:
UNIT: ADD (X; Y; t16 )
INPUTS: X[16]; Y[16];t16
OUTPUTS: ADD [17]
1. T = SUMEC10:15 ( X; Y; T1:15,t16 )
2. S = SUMEC00:15 ( X; Y; T1:15,t16 )
3. ADD = T0 ,S0:15
END
Implementarea sumatorului paralel este dat n Fig. 2.8.

2-17

ARHITECTURA CALCULATOARELOR
X0 Y0

X1 Y1

SUMEC

ADD0

SUMEC

T16

SUMEC

S1

T1
ADD1

X15 Y15

X14 Y14

SUMEC

S0

T0

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

S15

T2

T14

ADD2

T15
ADD15

SUMEC

SUMEC

ADD16

Fig. 2.8. Sumator paralel pe 16 bii


Pentru efectuarea unor operaii aritmetice ca: adunare, scdere, complementare, sumatorul paralel
proiectat se poate utiliza ntr-o schem ca i cea din Fig 2.9.

AC

DM
X

T16

ADD

Fig. 2.9. Utilizarea sumatorului paralel


Cu schema din Fig.2.9 se pot efectua urmtoarele operaii:

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.4.3 Unitate logic combinaional pentru decodificator


Un decodificator primete la intrare un vector binar oarecare de n bii i genereaz la ieire un
vector de 2n bii astfel c un singur bit are valoarea 1, ceilali avnd valoarea 0.
Schema bloc a unui decodificator de la n la 2n este artat n Fig. 2.10.

2-18

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

DCD(A)
A

DCD
2n

Fig. 2.10. Decodificator cu n intrri i 2n ieiri


Bitul i din cei 2n bii de ieire va fi:
0 dac A i
DCDi = 1dac A = i
Unitatea ce descrie un decodificator paralel va fi descris astfel:
UNIT:
DCD (A)
INPUTS:A[n]
OUTPUTS:DCD[m]
/* unde m = 2n */
1.
A = A0, A1, A2,...., An 1

2.

DE = / ((( nTi) / A), (( nTi) / A))

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

Fig. 2.11 Accesul la memorie


2.4.4.1 Operaia de scriere n memorie
Scrierea datelor din DM n M se va face cu instruciunea:
M*F DM
2-19

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

2.4.4.2 Operaia de citire din memorie


Pentru citire din memorie se va utiliza o funcie special denumit BUSFN, care are ca parametri
memoria i adresa de la care se dorete citirea.
Formatul instruciunii de citire din memorie este:
DMBUSFN ((M;DCD(AM))

0:n-1

AM

DCD

BUSFN

BUSFN

0:n -1
0:m -1

0:m -1

Fig.2.12 Citirea din memorie


2.4.4.3 Unitate logic combinaional pentru citire din memorie BUSFN
Operaia de citire din memorie const n selectarea celulei de memorie a crei adresa este
specificat de liniile de adres. Prin utilizarea unui vector F, asociat funciei logice de decodificare a
adresei DCD (AM), se poate scrie o unitate logic combinaional ce realizeaz selectarea celulei de
memorie specificat.
Fie o memorie M ce are capacitatea 1M = n i 2M = m, n cuvinte de memorie a m bii fiecare, i un
vector F asociat decodificatorului de adres : F0:n-1 =DCD (AM) cu proprietatea c +/F=1.
Funcia de citire din memorie BUSFN se poate descrie astfel:
UNIT: BUSFN (M;F)
INPUTS: M [n;m]; F[n]
OUTPUTS: BUSFN [m]
1.NIVS0:n-1 = M0:n-1 F0:n-1
/* NIVS=MF */
0:n-1
0
1:n-1
2.NIV = NIVS ! ( NIVS NIV0:n-2)
3.BUSFN=NIVn-1
2-20

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

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

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu


M0

F0

NIVS0

NIV 0

M1

NIVS1

M2
F2

NIV 1

NIVS2

M3
F

NIV

NIVS3

NIV3

BUSFN(M;F)

Fig. 2.13 Implementarea unitii BUSFN

2-22

ARHITECTURA CALCULATOARELOR

Nicolae Tapus, Trandafir Moisa, Cristian Morarescu

2-0

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