Documente Academic
Documente Profesional
Documente Cultură
AC Subiecte-Teorie Rezolvate
AC Subiecte-Teorie Rezolvate
Instruciuni de atribuire
Formatul unei instruciuni de atribuire este:
<destinaie> <operator_de_atribuire> <expresie>
Expresiile pot fi formate utiliznd:
operatori logici:
operatori de sincronizare:
operatori de selecie:
operator de selecie prin comprimare:
operator de selecie prin comprimare i reducere:
operatori de concatenare:
operator de codificare:
operatori de decodificare:
operatori relaionali.
( ; ; - );
(SL ; SYN (semnal_asincron));
(Aj; Am:n ; Mj ; Mm:n );
( X / Y );
(M * F);
(A,B ; A!B);
( n T p);
(X ; DCD );
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:
Z =
VLCO
MAG =
VLCO
Z =
MLCO*F
MAG =
MLCO*F
Instruciuni de transfer
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.
- operatori de reducere:
/ ; /; +/ realizeaz funcia logic specificat ntre componentele vectorului asupra cruia
acioneaz. Rezultatul este un scalar.
Exemple:
/A = A0 A1 A2 ... An
- operator de selecie prin comprimare:
X/Y elimin componentele din Y corespunztoare componentelor egale cu 0 din X
Exemplu:
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 )
- 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
M0
1
M = M i F=[0,0,1]
2
M
rezult:
M*F selecteaz linia 2, adic M2
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
SUMEC
END
Implementarea unitii logice combinaionale a sumatorului elementar complet este
prezentat n Fig. 2.7.
x
sum
SUMEC
tin
tout
SUMEC
SUMEC
CURS 3
1.Reprezentarea numerelor in virgula fixa
n virgul fix numerele se pot reprezenta n funcie de poziia virgulei n trei moduri:
-numere ntregi: poziia virgulei fiind interpretat dup cifra cea mai putin semnificativ x0
x = xnxn-1 ... x1x0,
n
Vx = xi * 2
i=0
iar valoarea numrului
-numere subunitare: poziia virgulei fiind interpretat nainte de cifra cea mai semnificativ x-1
x = ,x-1x-2 ... x-n+1x-n
n
Vx = x-i * 2
-i
i= 0
iar valoarea numrului
-numere reale: poziia virgulei fiind interpretat n cadrul reprezentrii. Exist un grup de bii care
specific partea ntreag i un numr de bii care specific partea fracionar. Aceast reprezentare
combin cele dou reprezentri anterioare. n practic se utilizeaz numai n structuri numerice
dedicate, n care se conoate foarte bine domeniul de valori al datelor.
x = xkxk-1 ... x1x0,x-1x-2 ... x-m
V = x *2 + x *2
x
-i
-i
i=0
i=0
iar valoarea numrului
n marea majoritate a calculatoarelor se utilizeaz reprezentarea n virgul fix numere
ntregi.
Fie :
x = xsx-1x-2...x-n
y = ysy-1y-2...y-n cu condiia ca |x| + |y| < 1
dou numere n virgul fix, subunitare, reprezentate n cod complementar.
Operaia de adunare const n:
se adun bit cu bit ncepnd cu rangul cel mai putin semnificativ, inclusiv bitul de
semn.
Eventualul transport din bitul de semn se neglijeaz.
Justificare:
1. n cazul n care x>0, y>0 i |x|+|y|<1
[x]c + [y]c = |x|+|y| = [(|x|+|y|)]c
2. n cazul n care x>0, y<0
cazul 1:
|x|>|y|
[x]c + [y]c = |x|+2-|y| = 2 + (|x|-|y|)
deoarece |x|-|y|>0,
atunci 2+(|x|-|y|) genereaz un transport din
bitul de semn, care conform regulii enunate se neglijeaz.
n acest caz:
[x]c + [y]c = (|x|-|y|) = [(|x|-|y|)]c
cazul 2:
|x|<|y|
[x]c + [y]c = |x|+2-|y| = 2 - (|y|-|x|)
deoarece |y|-|x|>0,
atunci 2-(|y|-|x|) nu genereaz un transport din bitul de semn.
n acest caz:
[x]c + [y]c = 2 - (|y|-|x|) = [-(|y|-|x|)]c
3. n cazul n care x<0, y<0 i |x|+|y|<1
[x]c + [y]c
= 2 - |x| + 2 - |y| =
= 2 + 2 - (|x|+|y|) =
= 2 - (|x|+|y|) = [-(|x|+|y|)]c
Deoarece (|x|+|y|)>0,
atunci 2 - (|x|+|y|) nu genereaz un transport din bitul de semn.
n schimb 2 + 2 - (|x|+|y|) genereaz un transport care se neglijeaz.
n acest caz:
[x]c + [y]c = [-(|x|+|y|)]c
11. Etapele inmultirii prin metoda lui Booth (c4)
i =1
Justificare:
a) dac y este pozitiv y = 0y-1y-2...y-n are valoarea
n
Vy = 0 + y i * 2 -i
i =1
ceea ce reprezint ntr-adevr evaluarea unui numr pozitiv reprezentat n cod direct.
b) dac y este negativ, y = 1y-1y-2...y-n, valoarea sa este obinut evalund [-y]c.
Dar tim c [y]c =[y]i + 2-n , deci
n
yn-n + 2 -n unde
i
[ -y ] =
c = y -2
1 y -2...
VV
y i * 2 -i + 2y-nj = 1 y j
[ -y ] c n
V[ - y ] c =i =1 y i*i =21 -i + 2 n
i =1
V[ - y ] c = 1 y i * 2 -i + 2 n
i =1
V[ - y ] c = 1 y i * 2 -i
i =1
Metoda de nmulire direct este utilizat n cazul reprezentrii n cod direct (mrime i semn).
Fie:
x = xsx-1x-2...x-n
y = ysy-1y-2...y-n
dou numere n virgul fix, subunitare, reprezentate n cod direct.
Pentru a realiza nmulirea z = x * y este necesar ca rezultatul s fie reprezentat pe un
numr dublu de bii sau s se realizeze o rotunjire a rezultatului, n cazul n care se reprezint pe
acelai numr de bii.
Operaia de nmulire const din trei etape principale:
a) - determinarea semnului;
b)- nmulirea efectiv;
c)- rotunjirea rezultatului;
a) Determinarea semnului
zs = xs ys
b) nmulirea efectiv
nmulirea efectiv are ca scop determinarea modulului produsului: |z| = |x| * |y|
|z| = y-1*2-1|x| + y-2*2-2|x| + ... + y-n*2-n|x|
c) Rotunjirea rezultatului. Dac |z| trebuie s fie depus ntr-un cuvnt de n+1 bii, atunci trebuie
fcut o rotunjire prin adaus ce const n a aduna 2-n la rezultat dac partea la care se renun are
bitul cel mai semnificativ 1.
CURS 5
26. Schema generala a calculatorului didactic
I/E
Subsistem de I/E
AIE
MAG
UE
RA
S
E
L
RG
T1
T2
RB
RC
IS
UAL
AM
XA
XB
BA
BB
RI
CP
IND
UC
Interpretor
cod
instructiune
Generare comenzi
verificare stari
Comenzi si stari
Modul de adresare reprezint modalitatea n care se calculeaz adresa efectiv (AE) a operanzilor
implicai n instruciunea curent. Instruciunile calculatorului didactic pot prelucra maxim doi
operanzi. Acetia se pot gsi :
-ambii n registrele generale RG ;
-unul n registrele generale RG i altul n memorie ;
-unul n registrele generale RG i altul n cadrul instruciunii respective (operand imediat);
-unul n memorie i altul imediat.
n funcie de codificarea cmpurilor MOD i RM se precizeaz modul n care se calculeaz
adresa efectiv (AE) a operandului.
1. Adresare directa mov RA,adres
2. Adresare indirecta mov RA,[adresa]
3. Adresare indirect prin registru mov RA,[BA]
4. Adresare indirect prin sum de registre mov RA,[BA] [XA]
mov RA,[BA + XA]
start
IURM
CP
RI
M
Operandul
R/M
in RG
RI0
5
26
66
AE directa / indirecta
tip instr.
Citeste primul
registru implicat in
calculul de AE
6
un singur registru
implicat in AE
T1
BX
XX
CP+1
T2
Depls(M
)
NU
tip instr.
citeste al-II-lea
registru implicat in
calculul de AE
indirect
DA
T2
XX
XA
XA-1
17
18
se aduna
continutul celor
doua registre
10
T1
T1+T2
T2
XA
DA
autoincrementare.
16
increm.
reg.
index
XX
XX+1
11
deplasament.
citeste
deplasament
se aduna
deplasament
DA
12
14
CP+1
T2
Depls(M
15
T1
T1+T2
25
AM
T1
26
executie
23
24
T1
T1
M
Vom prezenta indicatorii de condiii numai pentru unitatea care lucreaz cu numere reprezentate
n complement fa de doi.
Indicatorii propui sunt urmtorii:
S semn, reprezint valoarea bitului de semn al rezultatului.
Z zero, este poziionat n unu dac rezulatul este zero, i este poziionat n zero cnd
rezultatul este diferit de zero.
Valoarea lui Z se stabilete Z = /REZULTAT astfel:
D depire, este poziionat n unu, cnd cele dou numere care se adun sunt pozitive i
exist transport spre bitul de semn, sau dac operanzii sunt negativi i nu exist transport spre
bitul de semn.
Considernd xs, ys semnele celor doi operanzi i ts transportul spre bitul de semn, care
atunci cnd apare modific pe zs, semnul rezultatului astfel c valoarea lui D se stabilete cu
ecuaia:
D = x s ys zs x s ys zs
T transport, se poziioneaz pe 1 n cazul n care exist un transport din bitul de semn
spre stnga.
P paritate, se poziioneaz pe 1 n cazul n care rezulatul are un numr par de uniti.
16. Modurile de adresare bazata si indexata
Adresare bazat
Adresa efectiv se obine prin adunarea coninutului celui de-al doilea cuvnt al
instruciunii cu unul din registrele baz, Fig. 5.9.
BA
BB
AE =
Exemplu:
+ deplasament
mov RA,[BA]+adres
mov RA,adresa[BA]
mov RA,[BA+adresa]
6 7 8 9 10
COP
d MOD
1 0
12 13
15 0
REG
RM
x x x
1 1 x
15
deplasament
RG
BA
BB
Figura 5.9
AE
MEMORIE
OPERAND
Adresare indexat
Adresa efectiv se obine prin adunarea coninutului celui de-al doilea cuvnt al
instruciunii cu unul din registrele index, Fig. 5.10.
XA
XB
AE =
Exemplu:
+ deplasament
mov RA,[XA]+adresa
mov RA,adresa[XA]
mov RA,[XA+adresa]
6 7 8 9 10
COP
d MOD
1 0
12 13
15 0
REG
RM
x x x
1 0 x
15
deplasament
RG
XA
XB
Figura 5.10
AE
MEMORIE
OPERAND
CURS 7
6. Resursele principale ale unei interfete de I/E
Cele 256 porturi de I/E, ale calculatorului didactic, pot fi asimilate cu 256 de registre plasate
ntr-un spaiu de adresare separat de cel al registrelor generale i al memoriei, care pot fi citite
sau nscrise individual prin intermediul instruciunilor IN i OUT. Plecnd de la aceste premize
se poate dezvolta un model simplu de subsistem de I/E bazat pe urmtoarele consideraii :
1. vom considera echipamentele periferice fie de intrare fie de ieire ;
2. fiecarui echipament periferic i se asociaz un registru de date (din cele 256) n care unitatea
central de prelucrare nscrie datele ce trebuie transmise ctre echipamentul periferic de
ieire sau din care unitatea central de prelucrare preia datele nscrise de un echipament
periferic de intrare;
3. fiecrui echipament periferic i se asociaz un registru de comenzi n care unitatea central de
prelucrare nscrie comenzile transmise spre echipamentul periferic i un registru de stri n
care echipamentul periferic nscrie starea ce va fi preluat de unitatea central de prelucrare.
Din punctul de vedere al implementrii este convenabil s se considere 2 registre separate,
unul de comenzi selectat numai la execuia instruciunilor OUT i unul de stri selectat
numai la execuia instruciunilor IN, cele dou registre avnd aceeai adres;
4. registrele de I/E sunt conectate la magistrala MAG a unitii centrale de prelucrare;
5. fiecare interfa i recunoate adresele asociate;
6. datele sunt structurate pe cuvinte;
RCMT
RDATE
MAG
Prin canal de I/E vom nelege un procesor specializat capabil s execute "programe de canal"
scrise ntr-un limbaj main specializat n operaii de I/E.
Canalul conine o unitate de comand proprie pentru controlul echipamentelor periferice
i a accesului la memorie n mod independent.
CURS 8
7. Principiul de functionare al unui sistem de intreruperi
Dup modul n care se face activarea secvenei (a rutinei) de tratare a unei ntreruperi se disting
urmtoarele tipuri de sisteme de ntreruperi:
*0nevectorizat;
*1vectorizat.
La elaborarea unui sistem de ntreruperi trebuie avute n vedere mai multe aspecte cum ar fi:
*0pentru a facilita tratarea lor, cererile de ntrerupere trebuie partiionate n clase,
dup sursa de generare, denumite n general niveluri de ntreruperi;
*1n funcie de natura lor (de provenien) exist cereri care trebuie tratate imediat,
chiar dac sunt n curs de tratare alte cereri, ceea ce impune ordonarea dup o
anumit schem de prioriti a nivelurilor de ntrerupere;
*2pe un nivel se pot conecta mai multe cereri, subniveluri de acceai prioritate. n
acest caz trebuie s existe posibilitatea identificrii fiecrui nivel i subnivel;
*3deoarece prin mecanismul ntreruperilor este posibil execuia concurent a mai
multor programe, se impune necesitatea protejrii fa de ntreruperi a unor
secvene de cod main indivizibile, denumite seciuni critice. Aceasta se poate
realiza prin dezactivarea global sau individual (mascare) a ntreruperilor pe
diferite durate de timp;
*4sistemul de ntreruperi trebuie prevzut cu faciliti de salvare i restaurare a
contextului programului ntrerupt, ntr-o manier ct mai eficient;
*5trebuie prevzut posibilitatea unui dialog cu subansamblele (echipamentele)
care au generat cereri de ntrerupere privind tratarea cererii;
*6timpul de rspuns al sistemului de ntreruperi (SI), definit ca intervalul dintre
lansarea unei cereri de ntrerupere spre sistemul de ntreruperi i momentul
execuiei primei instruciuni din secvena de prelucrare efectiv a cererii, trebuie s
fie ct mai mic.
Dup modul n care se face activarea secvenei (a rutinei) de tratare a unei ntreruperi se
disting urmtoarele tipuri de sisteme de ntreruperi:
*7nevectorizat;
vectorizat.
operational
D
cdes
TACT
CLK
Modul de lucru al interfeei, pe baza cruia se va proiecta hardware-ul necesar, se poate rezuma la
urmtoarele caracteristici:
- interfaa ateapt comenzi, date de la unitatea central de prelucrare sau citirea strii
de ctre unitatea central de prelucrare ;
- dac nu este activ nici o operaie cu unitatea central de prelucrare , se analizeaz
dac n memoria tampon exist caractere i dac da, se tipresc i se actualizeaz
adresa de citire din memoria tampon;
- pentru operaia de citire stare pune pe magistrala MAG cuvntul de stare;
- pentru operaia de transfer comenzi, preia comenzile trimise de unitatea central de
prelucrare n bistabilii de comand;
- pentru operaia de transfer date, nscrie data n memoria tampon, actualizeaz adresa
de scriere n memoria tampon i verific dac nu s-a umplut memoria tampon.
CURS 7
Transferul datelor este efectuat far intervenia unitii centrale de prelucrare. Pentru aceasta,
modulul de acces direct la memorie conine toate resursele necesare pentru efectuarea autonom
a transferului (registru de adresare a memoriei, contor de cuvinte transferate, mecanismul de
acces la memorie, ntreruperi, etc. )
Soluia de rezolvare a concurenei la memorie dintre unitatea central de prelucrare i
modulul de acces direct la memorie conduce la dou moduri de transfer prin DMA i anume :
*0transfer prin furt de ciclu;
*1transfer n mod rafal.
n cazul transferului prin furt de ciclu concurena la memorie se rezolv la nivel de ciclu
elementar de acces la memorie. Pentru fiecare cuvnt transferat modulul de acces direct la
memorie i disput cu unitatea central de prelucrare accesul la memorie. n cazul unor cereri
simultane de acces la memorie, modulul de acces direct la memorie are prioritate i n felul
acesta "fur" de la unitatea central de prelucrare un ciclu de acces.
Cu excepia operaiei de acces efectiv la memorie, activitatea modulului de acces direct
la memorie i a unitii centrale de prelucrare se desfoar n paralel, mrind astfel
productivitatea sistemului.
n cazul transferului cu echipamentele periferice critice, care necesit servirea imediat a
unei cereri de acces la memorie, pentru o funcionare corect se utilizeaz transferul n mod
rafal.
Acest mod de transfer const n faptul c dup iniierea unei operaii de transfer,
activitatea unitii centrale de prelucrare este suspendat pn la terminarea ntregului tranfer de
date. Productivitatea sistemului n acest caz este mai mic, n special n cazul transferului de
blocuri cu lungimi mari. O astfel de soluie este utilizat n cazurile n care transferul nu ar
putea avea loc sub controlul unitii centrale de prelucrare i nici prin modulul de acces direct la
memorie dac accesul la memorie s-ar disputa la fiecare cuvnt.
Iniierea explicit a tuturor parametrilor transferului i intervenia unitii centrale de
prelucrare la apariia unor evenimente aprute n timpul sau la terminarea transferului menin un
grad destul de mare de interaciune ntre unitatea central de prelucrare i modulul de acces
direct la memorie.
Modulului de acces direct la memorie i se asociaz 8 registre (porturi) de I/E conform cu tabelul
Tab. 7.1, prezentat n cele ce urmeaz. Adresa de baz a grupului de 8 adrese asociate
modulului de acces direct la memorie poate fi selectat oriunde n spaiul de 256 de adrese.
Tabelul 7.1
ADRESA
DENUMIRE FUNCIE
Baza +0
CSEP0
Registrul de comenzi/stri pentru EP 0
Baza +1
CSEP1
Registrul de comenzi/stri pentru EP 1
Baza +2
CSEP2
Registrul de comenzi/stri pentru EP 2
Baza +3
CSEP3
Registrul de comenzi/stri pentru EP 3
Baza +4
CSDMA
Registrul de comenzi/stri pentru modulul de
acces direct la memorie
Baza +5
AMDMA
Registrul adresare memorie pentru modulul
de acces direct la memorie
Baza +6
RCDMA
Codificare vertical
n cadrul codificrii verticale, fiecare microinstruciune operaional specific o singur
microoperaie. Setul de microoperaii (MO) necesar pentru controlul primitivelor funcionale se
codific n [ log2 | (MO) ] bii, care constituie lungimea cuvntului din MC.
Pentru identificarea microoperaiei specificate de I se utilizeaz un decodificator, Fig.
9.10
Aceast codificare reprezint un caz extrem, deoarece elimin orice posibilitate de
desfurare paralel a operaiilor elementare.
Din punctul de vedere al minimizrii cuvntului de control, codificarea vertical implic
numrul cel mai mic de bii. Dimensiunea mare a decodificatorului face ca realizarea fizic a
acestuia s aib loc pe mai multe niveluri, ceea ce conduce la introducerea de ntrzieri.
Un dezavantaj major al codificrii maximale l reprezint eliminarea controlului paralel
asupra resurselor precum i inflexibilitatea dezvoltrii sau completrii sistemului n ceea ce
privete introducerea de noi microoperaii. Este aplicabil numai n sisteme dedicate care au o
structur specific.
0
[log2 |(0)|]-1
DEC
O0 O1
Figura 9.10
Codificarea vertical a microoperaiilor
O|(0)| -1
Codificarea orizontal
n cadrul acestei codificri, fiecare microoperaie din setul (MO) este pus n
coresponden cu un bit din cadrul cuvntului de control. Controlul microoperaiilor se face n
mod direct, Fig. 9.11.
0
|
(
0)|-1
O0
O1
O|
(
0)| -1
Codificarea minimal
Combin flexibilitatea i paralelismul potenial oferite de codificarea orizontal cu
eficiena codificrii verticale.
Ideea de baz este de a grupa n clase de compatibilitate setul de microoperaii care se
exclud reciproc (O dintr-o clas de compatibilitate nu se vor efectua niciodat simultan).
Microinstruciunea este mprit n cmpuri. Un cmp corespunde unei clase de
compatibilitate. La nivel de cmpuri se realizeaz o codificare orizontal iar n cadrul cmpurilor
se realizeaz o codificare vertical, Fig 9.12 a).
I
C0
C1
C|
C|-1
log2|
C0|]
[
I
DEC0
DEC1
DEC|
C|-1
|
C 0|
C0
C1
Ci
DEC
C|
C|-1
DEC
DEC
DEC
RCRZ0
RCRZ1
RCRZn
|
C 0|
Adr.
M
I
distincte
Adrresa
Codificare mixt
O variant utilizat mult n practic este aceea n care microinstruciunea este mprit
n cmpuri. Unele cmpuri controleaz direct microoperaiile (sub form codificat sau direct)
iar altele specific adrese de memorie ce conin un subset de microinstruciuni distincte, Fig.
9.15.
I
C0
C1
Cn
Adr.
DEC
M
I