Structura Sistemelor DE Calcul
Capitolul 1
DEFINIREA PROCESORULUI ARITMETIC
Capitolul 2
DEFINIREA ALGORITMILOR. EXEMPLE.
Exemple detaliate :
Capitolul 3
SCHEMA BLOC A ALU . DESCRIEREA FUNC|ION{RII.
Capitolul 5
UNITATEA DE CONTROL A OPERA|IEI FETCH
Capitolul 6
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE DIRECT{
Capitolul 7
UNITATEA DE CONTROL A OPERA|IEI DE SC{DERE DIRECT{
Capitolul 8
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE INDIRECT{ PRIN METODA SC{DERII
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE INDIRECT{ PRIN METODA SC{DERII
Capitolul 9
UNITATEA DE COMAND{ A CONVERTORULUI }I AFI}ORULUI
TEMA PROIECTULUI
+ aplicatia
Cuprins :
pag.
Capitolul 1 : Definirea procesorului aritmetic 1
Capitolul 2 : Definirea algoritmilor. Exemple 3
Capitolul 3 : Schema bloc a ALU . Descrierea func\ion[rii 8
Capitolul 4 : Schema bloc a UC . Descriere 10
Capitolul 5 : UC a opera\iei fetch 12
Capitolul 6 : UC a opera\iei de adunare direct[ 14
Capitolul 7 : UC a opera\iei de sc[dere direct[ 17
Capitolul 8 : UC a opera\iei de adunare indirect[ 20
Capitolul 9 : UC a convertorului ]i afi]orului 21
Anex[ : Scheme OrCAD ]i module folosite
=== 1_Def_procesorului ===
Capitolul 1
DEFINIREA PROCESORULUI ARITMETIC
Defini\ie:
Din punct de vedere matematic se nume]te procesor aritmetic urm[torul 13-uplu:
PA=<I, F, O, R, C, S, f, g, h, D, T, p, q>
I1
I2 R1
PROCESOR R2
Ik ARITMETIC
F C
O S
R = f(I, F, O) f : I x O x F R
C = g(I, F, O) g : I x O x F C
S = h(I ,F, O) h : I x O x F S
T = p(O, F) p : O x F T
D = q(O, F) q : O x F D, unde :
I=(I1, …, Ik) – setul operanzilor de la intrare. #n cazul opera\iilor pe un operand : k=1; pe 2 operanzi: k=2; …
Fiecare operand Ij este un vector. Operanzii verific[ dou[ condi\ii fundamentale:
a) Ij M; M – mul\imea numerelor reprezentabile @n calculator
M=m | mmin m mmax
b) Fiecare num[r Ij se reprezint[ cu o anumit[ precizie.
Ij – DL Ij Ij + DH; D – parametru de control al preciziei.
O = mul\imea operatorilor (mul\imea opera\iilor realizabile).
F = mul\imea formatelor de reprezentare a operanzilor.
De regul[ fiecare operator este legat de un anumit format astfel @nc`t cele dou[ mul\imi O ]i F se prezint[ de regul[ @mpreun[, @n pereche form`nd OFC -codul operator – format (O1F1, O2F2,…, OnFn).
De exemplu adunare simpl[ precizie; dubl[ precizie.
R = mul\imea rezultatelor R1 … Rn
Fiecare R (Rj – vector). De obicei n=1.
Rj verific[ cele dou[ condi\ii a) ]i b) enun\ate la I.
C = vectorul condi\iilor.
Defini\ie:
Se nume]te condi\ie o stare particular[ care este definit[ pe o dat[ valid[.
De exemplu: validare, semn, 0, etc.
Condi\iile se mai numesc ]i indicatori de stare (flag).
S = vectorul singularit[\ilor .
Defini\ie:
Se nume]te singularitate o stare particular[ definit[ pe o dat[ invalid[.
De exemplu dep[]ire (OVF), subdep[]ire (UN).
Obs: de multe ori C ]i S sunt trata\i unitar constituind vectorul STATUS.
f, g, h = trei func\ii vectoriale al c[ror domeniu de defini\ie este
I x O x F R, C, S.
D = mul\imea parametrilor de control.
Ace]ti parametri se refer[ la precizia de reprezentare. Datorit[ faptului c[ regi]trii au lungime finit[ atunci c`nd rezultatele sunt mai lungi acestea trebuie trunchiate ]i implicit anumite mecanisme de rotunjire se impun; deci parametrii de control sunt rezultatul metodei de trunchiere utilizate.
q = func\ia care reprezint[ ac\iunea de trunchiere.
T = mul\imea momentelor de timp discrete @n care evolueaz[ procesorul aritmetic . Evident mul\imea T depinde de algoritmii microscopici implementa\i.
=== 2_Def_Alg ===
Capitolul 2
DEFINIREA ALGORITMILOR. EXEMPLE.
Metoda adun[rii directe
X = Xs * 20 +X*; X*=
Y = Ys* 20 + Y*; Y*=
X > 0 Xs = 0 ; X= 0*20 + X* ;
Y > 0 Ys = 0 ; Y= 0*20 + Y* ;
X < 0 Xs = 1; X= 1*20 + X** ; X** – complementul fa\[ de 1 al lui X*
Y < 0 Ys = 1; Y= 1*20 + Y** ; Y** – complementul fa\[ de 1 al lui Y*
Avem patru cazuri :
X > 0 ; Y > 0 ;
X > 0 ; Y < 0 ;
X < 0 ; Y > 0 ;
X < 0 ; Y < 0 ;
a) #n primul caz :
X > 0 , X = 0 * 20 +X*
Y > 0 , Y = 0 * 20 +Y*
rezult[ X + Y = 0 * 20 + ( X* + Y *) .
Se pune condi\ia ca ( X* + Y *) < 1 t0 = 0. Dac[ nu este @ndeplinit[ condi\ia atunci t0 = 1 ]i apare dep[]ire.
b) #n al doilea caz :
X > 0 X = 0 * 20 +X*
Y < 0 Y = 1 * 20 +Y**
rezult[ X + Y = 1 * 20 + ( X* + Y**) .
Avem dou[ subcazuri : X* > Y* ]i X* Y* .
b1) #n cazul @n care X* > Y* X** < Y** X** + X* < Y** + X*
1 – 2-n < Y** + X* .
Dac[ neglij[m 2-n ob\inem 1 Y** + X* t0 = 1 Z =1*21 + 0*20 + ( X* + Y**).
Transportul c[tre rangul 21 este considerat transport ciclic ce trebuie adunat la rangul 2-n , suma devenind astfel : Z = 0*20 + ( X* + Y**) + 2-n.
Rezultatul este pozitiv ]i apare @n cod direct.
b2) #n cazul @n care X* Y* X* + X** Y** + X* 1 > Y** + X* . Deci vom avea t0=0 Z = 1*20 + ( X* + Y**).
Rezultatul este negativ ]i apare @n cod invers.
c) #n al treilea caz :
X < 0 X = 1 * 20 +X**
Y > 0 Y = 0 * 20 +Y*
Z = 1 * 20 +(X** + Y* ).
#n acest caz se disting dou[ subcazuri :
X* Y*
X* < Y*
c1) X* Y* X** + Y* Y** +Y* X** + Y* 1 – 2-n X** + Y** < 1
t0 = 0 Z = 1 * 20 +(X** + Y* ).
Rezultatul este negativ ]i apare @n cod invers.
c2) X* < Y* X** + Y* 1 t0 = 1 Z = 0*20 + ( X** + Y*) + 2-n.
Rezultatul este pozitiv ]i apare @n cod direct.
d) #n cazul al patrulea avem :
X < 0 X = 1 * 20 +X**
Y < 0 Y = 1 * 20 +Y**
Z = 1 * 21 + 0 * 20 + (X** + Y* *). Z = 0 * 20 + (X** + Y* *) + 2-n.
Adunarea a dou[ numere negative nu poate da ca rezultat un numar pozitiv. Acest lucru se @nt`mpl[ deoarece nu s-a \inut seama de condi\ia X* + Y* < 0 X** + Y** >1 t0 = 1. Z = 1 * 20 + (X** + Y* *) + 2-n.
Dac[ t0 = 0 atunci s-ar depista un al doilea caz de dep[sire. Dac[ t0 = 1 atunci rezultatul ob\inut este corect ]i apare @n cod complement fa\[ de 1.
Metoda sc[derii directe
#n cazul metodei sc[derii directe avem patru cazuri :
X > 0 ; Y > 0 ;
X > 0 ; Y < 0 ;
X < 0 ; Y > 0 ;
X < 0 ; Y < 0 ;
Scaderea direct[ se aseaman[ cu adunarea direct[, dar aici @n loc s[ se adune @mprumutul ciclic la rangul lsb , acesta se scade.
#n primul caz :
X > 0 X = 0 * 20 +X*
Y > 0 Y = 0 * 20 +Y*
Z = X – Y = X = 0 * 20 + (X* – Y* )
Depist[m dou[ subcazuri : X* Y* ]i X* < Y* .
a1) X* Y* X* – Y* 0 i0 = 0 Z = 0 * 20 + (X* – Y* ).
Rezultatul este pozitiv ]i apare @n cod direct.
a2) X* < Y* X* – Y* < 0 i0 = 1 Z = 1*21 +1 * 20 + (X* – Y* ) .
1*21 reprezint[ @mprumutul ciclic ]i trebuie sc[zut de la rangul cel mai pu\in semnificativ. Astfel Z devine : Z = 1 * 20 + (X* – Y* ) – 2-n .
Rezultatul este negativ ]i apare in complement fa\[ de 1.
b) #n cel de-al doilea caz :
X > 0 X = 0 * 20 +X*
Y < 0 Y = 1 * 20 +Y**
Z = X – Y = X = 1 * 21 + 1 * 20 + (X* – Y** ).
Dac[ dintr-un num[r pozitiv sc[dem un num[r negativ rezultatul va fi un num[r pozitiv, de aceea pentru a ob\ine un rezultat corect trebuie ca X* – Y** < 0 i0 = 1.
Dac[ i0 = 0 atunci depist[m un caz de dep[]ire.
c) #n cazul al treilea :
X < 0 X = 1 * 20 + X**
Y > 0 Y = 0 * 20 + Y*
Z = X – Y = X = 1 * 20 + (X** – Y* ).
Dac[ X** – Y* > 0 atunci i0 = 0 ]i rezultatul este corect. Dar dac[ i0 = 1 atunci depist[m un caz de dep[]ire.
d) #n al patrulea caz :
X < 0 X = 1 * 20 + X**
Y < 0 Y = 1 * 20 + Y**
Z = X – Y = X = 0 * 20 + (X** – Y** ).
Depist[m dou[ subcazuri : X** Y** ]i X** < Y** .
d1) X** Y** X** – Y** 0 i0 = 0 Z = 0 * 20 + (X** – Y** ).
Rezultatul este pozitiv ]i apare @n cod direct.
d2) X** < Y** X** – Y** < 0 i0 = 1 Z = 1 * 21 + 1 * 20 + (X* – Y* ) .
1*21 reprezint[ @mprumutul ciclic ]i trebuie sc[zut de la rangul cel mai pu\in semnificativ. Astfel Z devine : Z = 1 * 20 + (X* – Y* ) – 2-n .
Rezultatul este negativ ]i apare in complement fa\[ de 1.
Metoda adun[rii indirecte prin sc[dere
#n metoda adun[rii binare prin sc[derea complementului fa\[ de 1 se exprim[ termenul care se adun[ sub forma complementului fa\[ de 1 ]i apoi se efectueaz[ o sc[dere @n loc de adunare. Dac[ se consider[ c[ X ]i Y sunt termenii adun[rii, atunci suma este dat[ de rela\ia:
Z = X + Y = X – Y**, dac[ Y** X.
#n cazul @n care Y** > X, atunci apare @mprumt ciclic ]i acesta trebuie sc[zut de la rangul cel mai pu\in semnificativ al rezultatului.
Z = X + Y = X – Y** – 2-n
Sc[derea se efectueaz[ @n acela]i fel ca ]i @n cazul sc[derii directe.
Dac[ rezultatul este negativ, acesta apare @n cod complement fa\[ de 1.
Metoda sc[deri indirecte prin adunare
#n metoda sc[derii binare prin adunarea complementului fa\[ de 1 se exprim[ mai @nt`i sc[z[torul sub forma complementului fa\[ de 1 ]i apoi se efectueaz[ adunarea @n loc de sc[dere. Diferen\a celor dou[ numere X ]i Y este dat[ de rela\ia urm[toare:
Z = X – Y = X + Y**, dac[ X + Y** < 1
Dac[ X + Y** 1, atunci apare un transport ciclic. #n acest caz, diferen\a trebuie corectat[:
Z = X – Y = X + Y** + 2-n, dac[ X + Y** 1
Adunarea este efectuat[ @n acela]i mod ca @n cazul metodei adun[rii directe. C`nd rezultatul este negativ, acesta apare @n cod complement fa\[ de 1.
=== 3_Alu ===
Capitolul 3
SCHEMA BLOC A ALU . DESCRIEREA FUNC|ION{RII.
Unitatea aritmetic[ ]i logic[ poate efectua opera\iile de adunare ]i sc[dere gra\ie sumatorului ]i sc[z[torului @ncorporate. Opera\iile sunt efectuate pe 16 bi\i.
ALU preia datele de pe magistrala de date prin intermediul registrelor A ]i B. C`nd se dore]te efectuarea unei anumite opera\ii se comand[ activarea ie]irilor registrelor A ]i B ]i a intr[rilor unia din registrele rezultat. Registrul rezultat adunare preia datele de intrare de la sumator, iar registrul rezultat sc[dere preia datele de la sc[z[tor.
Sumatorul este implementat @n structur[ paralel[ cu sumatoare integrate 7483 ]i scheme de anticipare a transportului integrate 74182.
Sc[z[torul este implementat @n structur[ serial[ din 16 celule de sc[dere complete cascadate.
Transporul ]i @mprumutul @ntre opera\ii sunt memorate @n blocurile de transport ]i @mprumut care pentru a fi folosite la urm[toarele opera\ii.
=== 5_Fetch ===
Capitolul 5
UNITATEA DE CONTROL A OPERA|IEI FETCH
Unitatea de control a opera\iei fetch are urm[toarea schem[ logic[ :
#n starea A se cite]te primul octet din instruc\iune, prin activarea ie]irilor PC ]i a semnalelor RD (c[tre memoria operativ[), ]i LD1 (c[tre IR).
#n starea B se incrementeaz[ PC prin comanda INCNR.
#n starea C se cite]te al doilea octet din instruc\iune, prin activarea ie]irilor PC ]i a semnalelor RD (c[tre memoria operativ[), ]i LD2 (c[tre IR).
#n starea D se incrementeaz[ PC prin comanda INCNR.
#n starea E se cite]te al treilea octet din instruc\iune, prin activarea ie]irilor PC ]i a semnalelor RD (c[tre memoria operativ[), ]i LD3 (c[tre IR).
#n starea F se incrementeaz[ PC prin comanda INCNR.
#n starea G se lanseaz[ @n execu\ie instruc\iunea cu opcodul dat, ]i se trece @n starea H unde se a]teapt[ terminarea execu\iei operatiei lansate.Dac[ execu\ia instruc\iunii curente s-a terminat atunci semnalul STOP devine 1 logic ]i se trece @n starea A de unde se reia ciclul.
Din schema logic[ se poate observa c[ lungimea instruc\iunii este fix[ : 3 octe\i @n formatul urm[tor :
Ecua\iile logice ale comenzilor sunt :
Y0 = m0 + m2 + m4 + m6 + m7*(-STOP)
Y1 = m1 + m2 + m5 + m6 + m7*(-STOP)
Y2 = m3 + m4 + m5 + m6 + m7*(-STOP)
LD1 = m0
LD2 = m2
LD3 = m4
INCNR = m1 + m3 + m5
STARTOP = m6
=== 6_Add_dir ===
Capitolul 6
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE DIRECT{
Schema logic[ este :
#n starea A se vor reseta flagurile, num[r[torul ]i se va a]tepta sosirea semnalului de start opera\ie.
#n starea B se va @nc[rca un cuv`nt din primul operand @n registrul A din ALU.
#nc[rcarea cuvintelor @ncepe cu cel mai pu\in semnificativ. Citirea se face activ`nd semnalele OENR,RD,OE1, 16 c[tre memoria local[ ]i semnalul LDA c[tre registrul A din ALU.
#n starea C se va @nc[rca un cuv`nt din al doilea operand @n registrul B din ALU.
#nc[rcarea cuvintelor @ncepe cu cel mai pu\in semnificativ. Citirea se face activ`nd semnalele OENR,RD,OE2, 16 c[tre memoria local[ ]i semnalul LDB c[tre registrul B din ALU.
#n starea D se va efectua opera\ia de adunare a cuvintelor din registrele A ]i B ale ALU, cu @nscrierea rezultatului @n registrul RA.
#n starea E se va salva un cuv`nt din rezultat ,aflat @n registrul RA din ALU @n memoria local[.
Salvarea cuvintelor @ncepe cu cel mai pu\in semnificativ ]i se face activ`nd semnalele OENR,WR,OE3, 16 c[tre memoria local[ ]i semnalul OERA c[tre registrul RA din ALU.
#n starea F se va incrementa num[ratorul de cuvinte ]i se va testa dac[ s-au parcurs cele trei cuvinte ale operandului. Dac[ nu s-au terminat cele trei cuvinte atunci se trece @n starea B ]i se reia ciclul. Dac[ ciclul s-a terminat atunci se trece @n starea G.
#n starea G se testeaz[ condi\iile de dep[]ire. Dac[ Xs ]i Ys sunt 1 logic adic[ ambii operanzi sunt negativi (suntem @n cazul d) atunci se trece @n starea I unde se testeaz[ dac[ a ap[rut un transport c[tre rangul 0, dac[ transportul nu a ap[rut atunci se seteaz[ OVF (dep[]ire) ]i se trece @n starea A, altfel se trece @n starea J. Dac[ Xs ]i Ys sunt 0 logic atunci ambii operanzi sunt pozitivi (suntem @n cazul a) ]i se trece @n starea H unde este testat transportul c[tre rangul 0, Dac[ acesta apare atunci se semnaleaz[ OVF ]i se trece @n starea A, altfel se trece @n starea J.
#n starea J este resetat num[r[torul ]i registrul B din ALU ]i mai este testat ]i transportul c[tre rangul 1. Dac[ apare transport se trece @n starea K unde transportul (ciclic) este adunat la rangul cel mai pu\in semnificativ, altfel se trece @n starea A.
#n starea K este @nc[rcat registrul A din ALU cu un cuv`nt din rezultatul ob\inut la pa]ii anteriori. #nc[rcarea cuvintelor @ncepe cu cel mai pu\in semnificativ.
#n starea L este efectuat[ adunarea cuv`ntului din registrul A cu 0 din registrul B ]i cu transportul de la pa]ii anteriori.
#n starea M este salvat rezultatul @n registrul destina\ie.
#n starea N este incrementat num[r[torul ]i se mai testeaz[ dac[ s-au teminat toate cuvintele operandului.
Ecua\iile comenzilor
Y0 = m0*START +m2 + m4 + m5*(-ENDNR) + m6*(-Xs)(-Ys) + m7*(-T0) +
+ m8*T0+ m10 + m12
Y1 = m1 + m2 + m5*ENDNR + m6*(-Xs)(-Ys) +m9*Tout +m10 +
m13*(-ENDNR)
Y2 = m3 + m4 + m5*ENDNR + m6*Xs*Ys + m11 + m12
Y3 = m6*Xs + m7*(-T0) + m8*T0 + m9*Tout +m10 + m11 +m12 +
m13*(-ENDNR)
RSTNR = m0 + m9
INCNR = m5 + m13
STOP = RSTOV = RSTTout = m0
RD = m1 + m2 + m10
WR = m4 + m12
OE1 = m1
OE2 = m2
OE3 = m4 + m10 + m12
16 = m1 + m2 +m4 + m10 +m12
LDA = m1 + m10
LDB = m2+ m9
RSTB = m9
LRA = OEA = OEB = m3 + m11
OERA = m4 + m12
OVF = m8*(-T0) + m7*T0
=== 7_Sub_dir ===
Capitolul 7
UNITATEA DE CONTROL A OPERA|IEI DE SC{DERE DIRECT{
Schema logica este :
#n starea A sunt resetate flagurile OVF ]i Tout, num[r[torul ]i este generat deasemenea semnalul STOP. Tot @n aceast[ stare este testat ]i semanlul de START ce permite @nceputul opera\iei. Dac[ semnalul START este 1 logic atunci se poate @ncepe opera\ia, altfel se va a]tepta @n continuare.
#n starea B este @nc[rcat un cuv`nt din primul operand din memoria local[ @n registrul A din ALU. #nc[rcarea @ncepe cu cel mai pu\in semnificativ cuv`nt.
#n starea C este @nc[rcat un cuv`nt din cel de-al doilea operand din memoria local[ @n registrul B din ALU. #nc[rcarea @ncepe cu cel mai pu\in semnificativ cuv`nt.
#n starea D este efectuat[ opera\ia de adunare ]i este @nc[rcat rezultatul @n registrul RS din ALU.
#n starea E este salvat rezultatul din registrul RS @n registrul destina\ie din memoria local[.
#n starea F este incrementat num[r[torul ]i se testeaz[ dac[ s-a prelucrat la ultimul cuv`nt. Dac[ nu s-au prelucrat toate cuvintele atunci se reia ciclul de la starea B, altfel se trece @n starea G.
#n starea G sunt testate condi\iile preliminare detect[rii OVF. Dac[ Xs = 1 ]i Ys = 0 (suntem @n cazul c) atunci se trece @n starea I unde este testat @mprumutul c[tre rangul 0, dac[ I0 = 1 atunci este detectat OVF ]i se trece @n starea A altfel se trece @n starea J.
Dac[ Xs = 0 ]i Ys = 1 (suntem @n cazul b) atunci se trece @n starea H unde este testat @mprumutul c[tre rangul 0 (I0), dac[ I0 = 0 atunci se detecteaz[ OVF ]i se trece @n starea A, altfel se trece @n starea J unde este tratat @mprumutul ciclic.
Altfel suntem @n cazurile a sau d, ]i se trece @n starea J.
#n starea J este resetat num[r[torul ]i registrul B din ALU. Tot @n starea J este testat @mprumutul ciclic, dac[ acesta apare atunci se trece @n starea K unde este sc[zut din rezultatul par\ial, altfel se trece @n starea A.
#n starea K este @nc[rcat un cuv`nt din rezultatul ob\inut la pa]ii anteriori @n registrul A din ALU.
#n starea L este efectuat[ opera\ia de sc[dere a @mprumutului din registarul A, ]i este salvat rezultatul @n registru RS.
#n starea M este salvat cuv`ntul rezultat din registrul RS din ALU @n registrul destina\ie din memoria local[.
#n starea N este incrementat num[r[torul ]i se testeaz[ dac[ s-au prelucrat toate cuvintele din rezultatul par\ial. Dac[ au fost prelucrate toate cuvintele atunci se trece @n starea A, altfel se trece @n starea K de unde se reia ciclul.
Ecua\iile comenzilor
Y0 = m0*START +m2 + m4 + m5*(-ENDNR) + m6*(-Xs) + m7*I0 +
+ m8*(-I0) + m10 + m12
Y1 = m1 + m2 + m5*ENDNR + m6*(-Xs)*Ys +m9*Iout + m10 +
+ m13*(-ENDNR)
Y2 = m3 + m4 + m5*ENDNR + m6*(-Xs)*Ys + m11 + m12
Y3 = m6*Xs + m6*(-Xs)*(-Ys) + m7*(-I0) + m8*(-I0) + m9*Iout + m10 + m11
+ m12 + m13*(-ENDNR)
RSTNR = m0 + m9
INCNR = m5 + m13
STOP = RSTOV = RSTTout = m0
RD = m1 + m2 + m10
WR = m4 + m12
OE1 = m1
OE2 = m2
OE3 = m4 + m10 + m12
16 = m1 + m2 +m4 + m10 +m12
LDA = m1 + m10
LDB = m2+ m9
RSTB = m9
LRS = OEA = OEB = m3 + m11
OERS = m4 + m12
OVF = m7*(-I0) + m8*I0
=== 8_Add_sub ===
Capitolul 8
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE INDIRECT{ PRIN METODA SC{DERII
Schema logic[ a opera\iei este :
#n starea A este a]teptat semnalul de start al opera\iei.
#n starea B este complementat cel de-al doilea operand, prin re@nscrierea @n registru a valorii complementate.
#n starea C este lansat[ opera\ia de sc[dere direct[.
#n starea D este a]teptat[ terminarea opera\iei de sc[dere.
Ecua\iile comenzilor sunt :
Y0 = m0*START + m2 + m3*(-STOPS)
Y1 = m1 + m2 + m3*(-STOPS)
OE = m1
RD = WR = m1
STARTS = m2
=== 8_sub_add ===
UNITATEA DE CONTROL A OPERA|IEI DE ADUNARE INDIRECT{ PRIN METODA SC{DERII
Schema logic[ a opera\iei este :
#n starea A este a]teptat semnalul de start al opera\iei.
#n starea B este complementat cel de-al doilea operand, prin re@nscrierea @n registru a valorii complementate.
#n starea C este lansat[ opera\ia de adunare direct[.
#n starea D este a]teptat[ terminarea opera\iei de adunare.
Ecua\iile comenzilor sunt :
Y0 = m0*START + m2 + m3*(-STOPA)
Y1 = m1 + m2 + m3*(-STOPA)
OE = m1
RD = WR = m1
STARTA = m2
C = m1
=== 9_Afisaj ===
Capitolul 9
UNITATEA DE COMAND{ A CONVERTORULUI }I AFI}ORULUI
Schema logic[ a unit[\ii de comand[ pentru afisaj este :
#n starea A este resetat con\inutul convertorului din cod complement fa\[ de 1 @n cod BCD ]i este a]teptat ]i semnalul de start.
#n starea B este citit num[rul ce trebuie convertit @n BCD din memoria local[.
#n starea C este facut[ conversia unui digit.
#n starea D este deplasat la dreapta operandul, este incrementat num[r[torul ]i este testat sf`r]itul procesului de conversie.
#n starea E este salvat rezultatul final.
Ecua\iile comenzilor sunt :
Y0 = m0*START + m2
Y1 = m1 +m2 +m3 * (- END)
Y2 = m3 * END
CLRCONV = STOP = m0
OE1 = RD = S1 = m1
ENCONV = m2
INCNR = m3
LDBCD = m4
LD = S0 = m3 + m1
=== exemplu detaliat ===
EXEMPLU DETALIAT
Consider[m 2 operanzi A ]i B pe 48 de bi\i cu care vom efectua opera\ia de adunare direct[. Cei doi operanzi se afl[ @n memoria local[ . Cum ALU poate efectua opera\ii pe 16 bi\i , @nsumarea celor doi operanzi se va face @n trei etape. Pentru aceasta se @mpart cei doi operanzi A ]i B @n trei grupe de 16 bi\i A1, B1 ; A2, B2 ; A3, B3 ce se vor aduna pe r`nd @n cele trei etape. De asemenea rezultatul va fi generat @n trei tran]e de 16 bi\i : C1, C2, C3.
A3 A2 A1
A= 0101000001001010 0101001001001010 0110010011000101
B3 B2 B1
B= 1110101001010111 0010101001010111 1010011100100011
#n prima etap[ se reseteaz[ flagurile ]i numaratorul . Se d[ comanda @ncarc[ A1 ]i B1 @n regi]trii REGA ]i REGB din ALU apoi se execut[ opera\ia de adunare @n sumatorul pe 16 bi\i. Rezultatul C1 este depus @n registrul rezultat REGRA ]i se memoreaz[ transportul Tout c[tre rangul 16. Se salveaz[ con\inutul REGRA @n memoria local[ la adresa rezultat, @n zona corespunz[toare C1.
0110010011000101 +
1010011100100011
––––––––––-
1 0000101111101000
Ob\inem : C1 = 0000101111101000 ]i Tout = 1.
#n a doua etap[ se @ncarc[ A2 ]i B2 @n regi]trii REGA ]i REGB din ALU apoi se execut[ opera\ia de adunare @n sumatorul pe 16 bi\i cu Tin = Tout din prima etap[. Rezultatul C2 este depus @n registrul rezultat REGRA ]i se memoreaz[ transportul Tout c[tre rangul 32. Se salveaz[ con\inutul REGRA @n memoria local[ la adresa rezultat, @n zona corespunz[toare C2.
0101001001001010 +
0010101001010111
1 Tin
––––––––––-
0 0111110010100010
Ob\inem : C2 = 0111110010100010 ]i Tout = 0.
#n a treia etap[ (ultima) se @ncarc[ A3 ]i B3 @n regi]trii REGA ]i REGB din ALU apoi se execut[ opera\ia de adunare @n sumatorul pe 16 bi\i cu Tin = Tout din a doua etap[. Rezultatul C3 este depus @n registrul rezultat REGRA ]i se memoreaz[ transportul Tout . Se salveaz[ con\inutul REGRA @n memoria local[ la adresa rezultat, @n zona corespunz[toare C3. Dac[ Tout=1 , acesta reprezinta de fapt transportul ciclic ce trebuie adunat la rangul lsb al rezultatului (cazul b1de la adunarea direct[) .
0101000001001010 +
1110101001010111
0 Tin
––––––––––-
1 0011101010100001
Ob\inem : C3 = 0011101010100001 ]i Tout = 1.
#n aceste condi\ii, Tout se va aduna la lsb rezultat. Se reseteaz[ REGB, iar @n REGA se incarca C1 din memoria local[. Se face suma @ntre REGA , REGB ]i Tout=1. Rezultatul C1’ apare @n REGRA de unde se salveaz[ @n memorie .
0000101111101000 +
0000000000000000
1 Tc
–––––––––––-
0000101111101001
Ob\inem : C1' = 0000101111101001 ]i T'out =0 .
Se @ncarc[ C2 @n REGA , apoi se face suma @ntre REGA, REGB ]i T'out . Rezultatul C2' se ob\ine @n REGRA de unde se salveaz[ @n memorie.
0111110010100010 +
0000000000000000
0 T'out
–––––––––––
0 0111110010100010
Ob\inem : C2' = 0000101111101001 ]i T'out =0 .
Se @ncarc[ C3 @n REGA , apoi se face suma @ntre REGA, REGB ]i T'out . Rezultatul C3' se ob\ine @n REGRA de unde se salveaz[ @n memorie.
0011101010100001+
0000000000000000
0 T'out
–––––––––––
0011101010100001
Ob\inem : C3' = 0011101010100001 .
La sf`r]it rezultatul adunarii (pe48 de bi\i) este C = C1' C2' C3' ]i se afl[ @n memorie .
Deci rezultatul final al adun[rii A + B pe 48 de bi\i este :
C3' C2' C1'
C = 0011101010100001 0111110010100010 0000101111101001
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Structura Sistemelor DE Calcul (ID: 149320)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
