Arhitectura Microprocesoarelor 2015 MICROCALCULATORUL = o masina Vo MICROCALCULATORUL = Von Neumann, programabila, de prelucrare a informatiei, cu componente inseparabile! - Hardware - Software
A. Hardware: 1.UCP"unitatea centrala de prelucrare#=blocul functional care prelucrea$a datele si conduce TOT sistemul% &e pre$inta sub forma unui singur cip, MICRO'ROC(&OR% Celelate componente ale sistemului nu au putere de deci$ie% 2.MEMORIA=are rolul de stocare a informatiei intr)o sec*enta de locatie+ pre$inta entitati informationale! -continutul : -continutul : un sir de cifre binare si -, biti, ce repre$inta de fapt coduri, numere etc% + marimea unei locatii *a fi denumita formatul memoriei, e.primat in numar de biti "/,-0,1,02 biti#% -adresa : numarul de ordine al unei locatii, ce permite identificarea locatiei respecti*e in cadrul sec*entei de locatii a memoriei "intre adresa si locatia de memorie e.ista o corespondenta biuni*oca# Notiuni comlementare! Harta Memoriei" totalitatea locatiilor de memorie pe care le poate adresa microprocesorul. e.emplu! adresa pe / biti, cate locatii3 raspunsul este 4/ locatii de memorie adresa pe biti, cate locatii3 raspunsul este 4 locatii de memorie Respecti*a 5arta a memoriei o putem descompune in subdi*i$iuni logice, numite 6segmente7, o impartire *irtuala a memoriei% Memoria interna= structura fi$ica a memoriei unui microcalculator, formata din unul sau mai multe cipuri cu capacitati di*erse de stocare+ capacitatea totala de stocare a informatiei pe care o reali$ea$a fi$ic cipurile de memorie% memorie% o#$er%atie! memoria interna85arta memoriei Memoria, de asemenea, dispune de $one "semnificatia continutului memoriei microcalculatorului#! )memoria de date"RAM)ul, fi$ic *orbind#! contine operan$i, re$ultate+ se pot efectua scrierea si citirea+ )memoria de program"ROM#! contine instructiuni, de regula+ s e poate doar citi% In$tructiunea" informatia codificata binar, impusa unui microprocesor pentru a efectua o actiune% Intre cod "un sir de cifre binare# si in$tructiune e.ista, de asemenea, o corespondenta biuni*oca% Instructiunea mai poate fi definita ca cea mai simpla actiune din acti*itatea unui microcalculator, a carui UC' este un microprocesor anume% Microprocesorul citeste din memorie, recunoaste si e.ecuta doar codurile instructiunilor pe care el a fost conceput sa le recunoasca 9+ totalitatea 9+ totalitatea instructiunilor pe care
un microprocesor le poate recunoaste si e.ecuta se numeste $etul de in$tructiuni al microprocesorului respecti*+ aceasta insiruire de instructiuni este structurata sub forma de programe"sec*enta de coduri structurate in asa fel incat sa urme$e un anumit anumit algoritm pentru o saricna prestabilita#% o#$er%atie! memoria nu are niciun control asupra semnificatiei informatiei pe care o detine, ci programatorul si microprocesorul9
&.'ISPO(I)I*E+E de IN)RARE,IESIRE I,O" o succesiune de porturi prin care se reali$ea$a comunicarea cu mediul e.terior% (.ista o asemanare intre porturi si locatiile de memorie+ dpd* logic, porturile sunt identice cu memoria, fi$ic, e*ident, nu% 'utem discuta astfel despre o 65arta a porturilor7, porturilor7, deoarece fiecare port are si el continut si adresa, e.act ca memoria% Ma/i$trala " cone.iunile fi$ice intre sc5emele bloc prin care circula informatia cu o semnificatie prestabilita% :iecare sistem are magistrala lui unica% ;pd* functional, magistrala se imparte in 1 feluri! -ma/i$trala de date ! intr)o masina Vo Von Neumann este esentiala, bidirectionala, prin ea circula datele, instructiunile, adresele etc% , pe scurt, scur t, cirucla toate tipurile de informatii -ma/i$trala de adre$e! unidirectionala, permite microprocesorului sa locali$e$e informatia in memorie sau in dispo$iti*ele de I
B. Software! o serie de programe organi$ate in categorii!
)sistem de operare"programe ce permit accesul la resursele calculatorului#+ )softare)ul utili$atorului"totalitatea programelor folosite pentru sarcini specifice# necesitatii utili$atorului# Ar0itectura " proprietatile unui sistem"microprocesorul#, *i$ibile *i$ibile si disponibile utili$atorului% (.emple de proprietati! registre, setul de instructiuni etc% obser*atie! ar5itectura e legata de semnificatia informatiei, de aspectul logic al informatiei , structura in sc5imb, e a.ata pe aspectul fi$ic , deci ar0itectura$tructura.
Cla$ificarea notiunii de microroce$oare! -% ;upa latimea magistralei de date a*em! microprocesoare microprocesoar e pe /,-0,1,02 biti% )un sistem cu latimea magistralei pe /,-0,1 sau 02 biti = microprocesor pe /,-0,1 sau 02 biti+ % ;upa tipul de sarcini eficient e ficient reali$abile! )microprocesoare de u$ general, nespeciali$ate+ )microprocesoare speciali$ate, precum! procesoare de intrare< iesire, coprocesoare aritmetice etc% 1% ;upa principiile de ba$a ale ar5itecturii! )procesoare c)un set comple. de instructiuni ! CI&C )procesoare c)un set redus de instructiuni ! RI&C
Rereentarea informatiei in $i$teme di/itale!
)bit=un bit" sau -# "b# )nibble= insiruire de 2 biti "n# )b>te=insiruire de / biti "?# )ord=insiruire de octeti "#
)double ord= insiruire de 2 octeti "d# Jprefi.e! K = 4-=-41 ) Kilo
'=4=-4- ) peta
M=4=-40 ) mega
(=40=-4-/ ) e.a
=41=-4 ) giga
H=4G=-4- ) $etta
T=42=-4- ) tera
=4/=-42 ) >otta
REPREZENTAREA REPREZENTAREA INTERNA:
3ormatul in$tructiunilor 8 formatul memoriei 9 repre$inta totalitatea cifrelor binare necesare pentru codificare% &e lucrea$a in octeti% " in rereentarea ro/ramelor# in rereentarea numerelor! )intregi, fara semn, in binar natural+
o#$er%atie! &emnul num@rului este repre$entat de msb cu urm@toarea con*enie! -m$# " 4 semnific@ num@r oiti%+ -m$# " 1 semnific@ num@r ne/ati%% 'entru un num@r f@r@ semn cu / bii, plaBa numerelor repre$entabile acoper@ 0 de po$iii, intre Di , in $ecimal% 'entru un num@r cu semn, plaBa numerelor repre$entabile acoper@ tot 0 de po$iii, dar in inter*alul )-/ E F-G, presupunand num@r po$iti*% po$iti*%
)intregi, cu semn ! )marime si semn+ )complement fata de -+ )complement fata de + ))) toate procesoarele folosesc complementul fata de 9 REPREZENTAREA REPREZENTAREA EXTERNA! cum apare informatia prelucrata de microcalculator, utili$atorului% ) pentru pentru coduri codurile le instru instructi ctiuni unilor lor se *or folosi folosi 6mnemonicele mnemonicele7, 7, cu*inte)c5eie specifice limbaBului de asamblare sau cu*inte)c5eie impuse de fabricant ! MOV, MOV, A;;, A;C A;C etc%+ ) pentru pentru numere numere a*em! a*em! repr repre$e e$enta ntarea rea binar binara, a, octal octala, a, 5e.a$e 5e.a$ecim cimala ala++ ) pentru pentru caracter caractere! e! repre$e repre$enta ntaril rilee alfanume alfanumeric rice, e, ce folosesc folosesc codul codul A&CII A&CII%%
5ONUS 'E +A PRO3 6666666 Sc0eme #loc functionale7 Circuite com#inationale7 Circuitele $ec%entiale7 Con%entii entru notatii8e9licit in caiet666
Structura unui nucleu de microprocesor de u !eneral " #IS# Microroce$orul=unitatea centrala de prelucrare a informatiei intr)un sistem programabil, organi$at ca o masina 6Von Neumann7% :unctionarea consta in e.istenta unui program memorat, alcatuit dintr)o sec*enta de instructiuni pe care procesorul le oate recunoaste si e.ecuta% ORICE in$tructiune din respecti*ul program parcurge 1 etape! )microprocesorul accesea$a si citeste din memorie codul instructiunii+ )microprocesorul decodifica acest cod si recunoaste instructiunea+ )e.ecuta instructiunea recunoascuta
$ET#H-%E#&%E-EXE#'TE (((
Pa$ul 1 de detaliere ! re/i$trul de dateR' $i re/i$trul de adre$eRA
Registrele R; si RA nu $unt atribute de ar5itectura9 :unctia lor este de a sincroni$a acti*itatea pe magistrala de date, respecti* adrese% &unt niste dimensiuni impuse de constrangerile sistemului% J;espre R;! )registru fi$ic, sincroni$ea$a acti*itatea pe magistrala de date+ )dimensiunea lui este aceeasi ca dimensiunea magistralei de date+ )este bidirectional+ Odata de informatia a fost inscrisa in R;, este disponibila in microprocesor% Obser*am pe imaginea de sus ca dinspre e.terior spre microprocesor, R; primeste informatia de la memorie si porturi, iar dinspre interior spre e.terior trimite informatia spre memorie si porturi9 J;espre RA! )registru fi$ic, sincroni$ea$a acti*itatea pe magistrala de date+ )TOAT( adresele trimise catre memorie prin RA *or fi adrese fi$ice "adresa ce ne permite sa gasim orice locatie in 5arta memoriei#+ )este unidirectional+ )dimensiunea lui RA deinde de dimensiunea 5artii de memorie+ )adresa scrisa prin RA este di$oni#ila intregului sistem9 Obser*atie! nu e.ista nicio legatura intre cele registre, RA si R;+ marimile lor, de asemenea, sunt complet diferite%
Pa$ul 2 de detaliere ! re/i$trele /enerale
)o caracteristica importanta a microprocesorului! setul de registre de u$ general, cu functia principala de a stoca n biti de informatie% In acest conte.t, e ca si cum am a*ea o mica memorie in microprocesor "n)are legatura cu 5arta memoriei999#+ )rolul de stocare temporara a unor informatii utile programatorului, de fel operan$i "o arie de stocare cea mai rapid accesibila, fiind in interiorul microprocesorului#+ )sunt atribute de ar5itectura "printre cele mai importante#+ )dimensiunea acestor registre este de regula data de dimensiunea operan$ilor in $ona de lucru+ )numarul si lungimea registrelor generale repre$inta un criteriu de performanta a microprocesorului+ )de feluri! logice si fi$ice9 ;e acum incolo, cand *orbim despre registre, trebuie sa a*em in *edere urmatoarele caracteristici! cat de mare e, daca e fi$ic sau logic, daca este sau nu atribut de ar5itectura si ce functie are9 A*em categorii de registre! • •
dedicate "functia registrului este impusa de un fabricant#+ multifunctionale "putem alege ce tip de informatie sa stoc5e$e registrul#%
Ma/i$trala interna de date" setul de cone.iuni intre blocurile functionale ale microprocesorului, inclusi* registrul de date% Alt criteriu de performanta a microprocesorului e ste cat de mare e magistrala interna de date% ;e regula, dimensiunea midd=dimensiunea magistralei de date e.terne, dar nu mereu9 e.emplu! putem a*ea 1 biti pe e.terna, dar pe interna 0 biti9
Pa$ul & de detaliere ! unitatea aritmetica de roce$are
1.UAL "unitatea aritmetica logica#= se ocupa cu efectuarea de operatii pe /,-0,1 biti cu sau mai multi operan$i% 'utem selecta di*erse operatii, spre e.emplu! )operatii logice c)un operand sau doi+ )operatii logice c)un operand complement fata de + )operatii logice cu operan$i! &I, &AU, &AU (CLU&IV+ )aritmetice tipice! un operand "incrementare, decrementare#+ )aritmetice tipice cu operan$i! F,),J,< + o#$! alt criteriu de performanta) tipurile de operatii aritmetice ce le poate efectua in UAL microprocesorul9 2%rupul de fanioane":LA, e.ista tipuri de fanioane! ) aritmetico)logice ) speciale 3anioanele sunt asamblate de microprocesor intr)un registru *irtual "este un e9emlu tiic de re/i$tru lo/ic9 #% (ste un re/i$tru tiic lo/ic, nu fi$ic9 &. Registrul acumulator=registru fi$ic, atribut de ar5itectura, cu dimensiunea la fel ca cea a operan$ilor in $ona de lucru% :unctia e una clar stabilita ! contine operandul si dupa operatie, re$ultatul, apoi , obligatoriu, re$ultatul distruge operandul% :%Registrul de deplasare= singurul registru din microprocesor care e.ecuta deplasari stanga) dreapta% (ste un registru fi$ic, nu e atribut de ar5itectura, iar lungimea, de regula, e data de operan$ii din $ona de lucru%
Pa$ul : de detaliere ! unitatea de control al adre$arii memoriei UCAM
UCAM"modul in care microprocesorul fabrica adresele fi$ice si putem locali$a informatia+ blocul functional care preluand informatia de pe magistrala interna de date li%reaa adre$a fiica catre re/i$trul de adre$e% UCAM are functii principale! -sa furni$e$e adrese pentru memoria de program+ - preluarea informatiilor de pe magistrala interna de date % a3urniarea de adre$e se poate face in feluri! )instructiune dupa instructiune+ )prin sec*ente, salturi, cicluri etc+ #Preluarea informatiei! )accesarea de date elementare+ )date structurate temporale "sti*a, coada#+ )date structurate spatial"tablouri#%
'rocesorul organi$ea$a OR;ANI(AREA +INIARA a MEMORIEI " toate locatiile de memorie sunt accesibile in mod egal+ utili$atorul foloseste si el adresele fi$ice, astfel, inseamna ca adre$ele fiice $unt atri#ute de ar0itectura% ;e mentionat ca nu e$te $in/urul mod de or/aniare6 Circuitul care *a returna adresele succesi*e intr)o memorie organi$ata liniar este numaratorul"'C#% Numaratorul ! )mereu incarcat cu adresa fi$ica a instructiunii curente+ )nu e$te atri#ut de ar0itectura, adica utili$atorul nu)l poate modifica, fiind o functie foarte importanta, care modificata neprofesionist ar da sistemul peste cap+ cu el practic se citesc instructiunile de program+ )dimensiunea lui e impusa de lungimea adresei fi$ice+ )furni$ea$a locali$area instructiunilor in memoria de program "furni$area memoriei de program#% )accesul memoriei de program prin 'C9 O?&(RVATII IM'ORTANT(!
Am incarcat direct adresa in RA, fac saltul impunand noua adresa, o trimit in memorie si actuali$e$ numaratorul 'C% Un microprocesor pe -0 biti, daca adresa are 1 de biti ) scad criteriile de performanta9
In caul functiei 1 a! numaratorul de program furni$ea$a la iesire adresa fi$ica a instructiunii curente+ locatie dupa locatie inseamna instructiune dupa instructiune in memoria de program+ inscrisa in RA instructiunea de*ine *alabila in memorie, o citesc"inscrisa in R;#, nu maratorul se incrementea$a, pregatindu)se pentru urmatoarea de instructiune% 1 #! printr)o adresa de salt, inscrisa in RA apoi actuali$area numaratorului de program e facuta disponibila in memorie In caul functiei 2 a!o adresa furni$ata catre memoria de date #! toate microprocesoarele folosesc &TIV(9 + a*em indicatorul de sti*a"un numarator special# are furni$ea$a o adresa in memoria de date , utiliatorul imune initial de unde sa plece sti*a, initiali$at cu adresa fi$ica a ba$ei de sti*a, apoi microroce$orul actualieaa in orice moment *arful
sti*ei, actuali$area indicatorului se face detectand adresa fi$ica a *arfului sti*ei9
&ti*a poate fi de feluri! -$ti%a HAR' "tipica RI&C, foarte rapida, dar limitata pe partea de stocare # -$ti%a SO3)"cele mai multe microprocesoare o folosesc, acces mai lent, dimensiune mare# &ti*a e folosita pentru transferuri de date" ce implica membri!sursa si destinatie#, JAccesul in sti*a se reali$ea$a prin cai! PUSH7 POP% )'U&P r+ ! SP<--SP-17 aoi SP<--r 7 mai intai decrementea$a sa faca loc, apoi *ine continutul din registrul r in locatia de memorie &' + u$0 la $ur$a6 -'O' r+ ! r<--SP7 aoi SP<--SP=1 7 selectam locatie din *arf, o citim, o inscriem in microprocesor, *arful sti*ei s)a mutat , cealalta locatie pier$andu)si s emnificatia, nu se sterge9 + o la de$tinatie6 o#$! SP- re/i$tru numarator7 fiic7 atri#ut de ar0itectura> J'imen$iunea $ti%ei e in functie de adresa fi$ica in ca$ul organi$arii liniare a memoriei9 obs! sti*a creste in Bos9"nu e obligatoriu insa, e doar un detaliu+ pe masura ce adaug elemente in sti*a, *arful ei se duce spre adrese inferioare+ pe masura ce citesc, *arful sti*ei se muta in sus#
3unctia 2c Q accesul in tabloul de date, responsabile cate*a blocuri! in primul rand un set de registre, numite registre inde."obisnuite, fara alte proprietati, nu sunt numaratoare9#, niste mu.) uri si un sumator+ 'entru o $tructura unidimen$ionala! unul dintre registre este incarcat cu adresa fi$ica a ba$ei sirului de numere, noi furni$am doar o adresa relati*a, adica al catelea element din sir ma interesea$a"disp#, microprocesorul calculea$a automat suma dintre ba$a si po$itia relati*a, facuta in mu. , apoi incarcata in RA% Registrele inde.! re/i$tre fiice7 atri#ute de ar0itectura, trebuie sa initiali$am noi inceputul> functia! contin adresele fi$ice ale ba$elor unor potentiale tablouri de memorie+ dimen$iunea e data de dimensiunea adreselor fi$ica, daca memoria e organi$ata liniar% o#$! numarul de registre index este un criteriu de performanta! ; marimea deplasamentului (numarul care-l dorim) da marimea tabloului; un deplasament pe 8 biti--> un tablou cu 256 de numere (2^8); JMicroprocesorul calculea$a adresa unui element dintr)un tablou de date%
Pa$ul ? de detaliere ! unitatea de control al microroce$orului
JIndeplineste functii! -defa$urarea @in $atiu! tine de formatul unui in$tructiuni+
-de$fa$urarea in tim! daca eu comand procesorului sa faca o inmultire spre e.emplu, e.ecuta o serie de actiuni elementare+ caracteristici! J starea!perioada de tact a microprocesorului "- ns# Jciclu masina! set de actiuni bine definite "citire din memorie, scriere in memorie, citire din sti*a, scriere in sti*a, de aducere a codului, adica citire din memoria de program etc% # Un microprocesor are de regula cate*a cicluri masina care combinate in di*erse feluri duc la e.ecutia oricarei instructiuni din setul de instructiuni ale microprocesorului9
Orice unitate de control pentru CI&C, are un registru numit registru de instructiuni9 'imen$iunea lor depinde de dimensiunile u$uale ale operan$ilor+ nu e atri#ut de ar0itectura, este re/i$tru fiic6 ;ecodorul este un circuit comple.% Control si sincroni$are= bloc microprogramat "tipic cisc Q stocarea in interiorul unitatii de control a succesiunii de stari#, rememorea$a toate sec*entele de stari pentru toate instructiunile din setul de instructiuni% Totodata mai furni$ea$a si semnale de control sistemului%
e)emplu! fie un microprocesor CI&C, sc5emele bloc functionale care le utili$ea$a sunt cele din subcapitolele %%, cu urmatoarele preci$ari! )microprocesorul organi$ea$a liniar memoria+ )magistrala de date si interna si e.terna are / biti+ )adresele fi$ice au -0 biti+ )formatul memoriei este octetul+ )e.ista un registru de date, unde are / biti+ )e.ista un registru de adrese, unde are -0 biti+ )e.ista un numarator de program care are -0 biti )e.ista un registru de instructiuni care are / biti+
:ie niste registre generale "R-, R, R1, R2# de cate / biti fiecare + a*em si un acumulator "A#, si el de / biti% Care este desfasurarea in timp a acestei instructiuni, a carei descriere formala a semanticii este !
A ← R1 ↑ R2=R& ↑ R: ) instructiunea aduna continutul locatiei de memorie a carei adresa se afla in resgistrele r- concatenat cu r cu continutul locatiei de memorie a carei adresa se afla in registrele r1 concatenat cu r2%%%re$ultatul de / biti stocandu)se in A% obs! adunarea se face cu numere de aceeasi lungime999 nu intamplator acumulatorul are si el / biti, ca sa lucre$e normal cu re$ultatul% COMEN)ARIU! JUn prim ciclu masina! de fetc5 "in care microprocesorul trebuie sa)si aduca codul instructiunii si sa)l interprete$e# !
(RA) ← (PC) READ )prima stare! numaratorul de program accesea$a codul instructiunii curente, inscrierea in RA+ ←
(PC)
(PC) + 1
)a )a stare! numaratorul de program isi face functia lui de ba$a, se pregateste pentru urmatoarea instructiune+ incrementaea numaratorului de program+ ←
(RD)
((RA))
)a 1)a stare! codul instructiunii este adus in microprocesor, este citit, este inscrisa in R;, disponibila oriunde astfel in microprocesor +
(RI)
←
(RD)
)a 2)a stare! luam codul din R; si)l inscriem in acel registru special unde aduc codurile, RI+
decodifcare )a )a stare! decodificarea, microprocesorul stie ce are de facut%
JUn al doilea ciclu!
(RA) READ
←
(R1)
↑
(R2)
)prima stare! furni$am in RA prima Bumatate a adresei fi$ice, pentru primul operand+
(RD)
←
((RA))
)a )a stare! citesc in memoria de date primul operand si)l aduc in microprocesor, in R;+
(A)
←
(RD)
)a 1)a stare! inscrierea in acumulator"A#,fiindca ne pregatim pentru o operatie aritmetica + primul operand e pregatit in acumulator%
JUn al treilea ciclu masina!
(RA) READ
←
(R3)
↑
(R4)
)prima stare! furni$am noua adresa fi$ica, pentru al doilea operand emitem R(A;+
(RD)
←
((RA))
)a )a stare! l)am locali$at si aduc din memorie al doilea operand din microprocesor, inscriem in R;+
(A)
←
(RD) + (A)
)a 1)a stare! aducem in acumulator suma dintre cele Bumatati ale adresei fi$ice%
obs! )a%em & cicluri mari in e9emlul no$tru6 ciclu ma$ina de fetc07 aoi 2 cicluri ma$ina de citire din memoria de date7 a 2-a e$te in$a o citire = o oeratie7 adunare> -tot ce am comentat e$te in conformitate cu $c0emele #loc reentate> -1.& aduc din memorie de ro/ram in microroce$or codul in$tructiunii curente > 2.2 aduc din memoria de date un oerand in microroce$or> &.2 aduc din alta arte din memoria de date un oerand in microroe$or formal $unt identice7 dar $e e9ecuta altfel>
Or/aniarea functionala a unui microroce$or e 1B $au &2 de #iti! Vom lucra pe generatia a 1)a de procesoare, cu noile atribute de ar5itectura ce au aparut odata cu acea generatie, precum!
aa*em mai multe unitati care lucrea$a in paralel, cu functii distincte+ #coada de instructiuni "o unitate se ocupa cu reali$area unei co$i de instructiuni, ducerea in microprocesor a unor instructiuni astfel incat dupa e.ecutia unei instructiuni microprocesorul nu mai asteapta aducerea instructiunii urmatoare#+ c*ersatilitatea functiilor registrelor! )dedicate "functie a registrului stabilita de fabricant, astfel nu poate fi modificata Q acumulator,sti*a etc%# )multifunctionale "cu functii implicite, oferite de fabricant, si alternati*e# dunitatea de calcul a adreselor "accesul in memorie se face calculand adrese< pointeri#+ estructurarea logica a memoriei "optional, e.ista microprocesoare care reali$ea$a *irtual structuri logice de memorie < descompune in segmente#% A*em + functii principale care lucreaa in paralel:
1.UE ! )prelucrea$a operan$ii+ ) contine registrele generale si ALU " Unitate aritmetica logica#+ ) accepta informatiile aferente instructiunilor deBa aduse de catre UIM+ ) primeste operan$ii de la UIM+ ) trimite re$ultatele la UIM, dupa ce prelucrea$a operan$ii+ ) contine unitatea de control al microprocesorului% 2.UIM ! ) furni$ea$a "calculea$a# adrese pentru instructiuni si date+ ) aduce instructiuni din memoria de program si le stoc5ea$a intr)o structura de tip coada+ "deosebire fata de a le astepta din memorie, deci %itea de e9ecutie mai mare# ) intrerupe umplerea co$ii de instructiuni cand se impune aducerea operan$ilor sau trimiterea re$ultatelor+ ) reali$ea$a structurarea logica a memoriei "de pilda! organi$area segmentata a
memoriei#%
CONC+U(II! &e lucrea$a in paralel! in timp ce se e.ecuta o instructiune"U(# sunt aduse din memoria de program urmatoarele"UIM#))%itea de e9ecutie cre$te J salturile intarie executia9))ele golesc coada de instructiune, UIM stie doar sec*ential sa aduca instructiunile, iar saltul poate conduce oriunde, astfel, trebuie sa folosim salturile doar cand e imperios necesar In timp au aparut unitati de predictie a salturilor! cu preci$ie de peste %
PRIN#IPII,E %E BAZA A,E 'NEI ARHITE#T'RI TIPI#E #IS# S)RUC)URA RE;IS)RE+OR! JRegistrele procesoarelor de tip ./0, in modul real7 pe 6 biti"
) a*em putine registre"specific CI&C#+ )cu e.ceptia registrului I', toate $unt atri#ute de ar0itectura> )cu e.ceptia lui :, toate $unt re/i$tre fiice> )rimul /ru de : re/i$tre, disponibile si pe / biti "o caracteristica ./0# sunt re!istrele !enerale de date:A,?,C,; &etul de registre generale este completat cu re/i$tre de ti indicator i inde9% 'entru fiecare din aceste registre e.ist@ atSt o utili$are implicit@ sugerat@ de fabricant, cSt Di una alternati*@%
DA"acumulatorul#! pe -0 biti+ implicit in impartiri si inmultiri+ se poate imparti si accesa in ! )A+! implicit in translatii, aritmetica ?C;, inmultiri si impartiri pe / biti+ )AH! implicit in inmultiri si impartiri pe / biti+ alternati%! AH poate fi acumulator daca dorim9 D5"ba$a in adresarea datelor#! un registru pointer in mod implicit, care contine o adresa, adresa efecti*a a ba$ei unei structuri de date+ se poate imparti si accesa in ! -5H! pe / biti -5+! pe / biti alternati%! ?P si ?L pot fi acumulatori9
JC"contor#! un registru numarator, folosit implicit in anumite instructiuni ale procesoarelor de tip ./0, precum ciclurile cu contor, operatiile cu siruri etc% + se poate imparti si accesa in ! -C+! pe / biti+ operatii de deplasare sau rotatie cu mai mult de 1 pozitie; -CH! pe / biti+ alternati%! CL si CP pot fi acumulatori9 J'"date#! un registru general de date in mod implicit+ se poate imparti si acesa in ! )'+! pe / biti+ )'H! pe / biti+ alternati%! ;L, ;P pot fi acumulatori9 )al 2-lea /ru de : re/i$tre sunt registrele care implicit contin adrese, re!istrele de adresare. re!istre pointer + nu sunt accesibile pe Bumatati "tocmai fiindca pointerii au ne*oie de -0 biti # SP- contine adresa efecti*a a *arfului curent a sti*ei primare + 5P- pointer pentru sti*a alternati*a+ ./0 poate forma sti*e!una prima si ua secundara+ ?' Q o intrare secundara in sti*a primara+ SI7 'I- registre inde. in mod implicit+ alternati%! toate aceste registre pot fi registre generale de date si acumulatoare9 )al &-lea /ru de 2 re/i$tre! re/i$trele dedicate IP) nu contine adresa fi$ica ci adresa efecti*a a instructiunii curente+ 3- registru logic, registru *irtual, o concatenare a unor fanioane+
DDa%em 2 cate/orii de fanioane la 9FB! )aritemetico-logice " C"carr>)transport#,' "parit>#, A "transport au.iliar, dupa primul nibble#, H"fanionul de $ero, cand reultatul unei op e $ero#, &"fanionul de semn, copia$a msb a unui numar repre$entat in marime si semn#, O "depasire#+ -speciale " T "fanion de tip capcana, trap, folosit in anumite tipuri de intrerupere# , I"fanionul de *alidare a unor intreruperi#, ;"fanionul de directie, permite sa ne alegem in ce ordine sa parcurgem un sir#+
-al :-lea /ru de : re/i$tre! registre fi$ice dedicate si atribute de ar5itectura, re!istrele se!ment + functia lor dedicata "n)am *oie s)o sc5imb# este de a permite reali$area in memorie segmente "subdi*i$iuni *irtuale logice ale memoriei#+ aceste registre contin adrese segment, de aceea ele sunt folosite in crearea de segment! CS! definim segmentul curent de program+ SS!definim segmentul curent de sti*a+ 'S!definim segmentul curent de date+ ES! segment suplimentar de date%
JReg istrel e
procesoarelor de tip ./0, in modul real7 pe #2 biti" )ea."e.tended a.# etc% registrele generale se e.tind+ )registrele segement nu se e.tind, pastrea$a dimensiunea, dar mai adauga in plus":&, + )dimensinea registrelor este de regula dimensiunea operan$ilor de lucru+ Toate caracteristicile de la -0 biti se aplica si la 1 de biti, cu mici diferente, abordate mai sus9
'utem conclude astfel urmatoarele caracteri$tici ale $eturilor de re/i$tre CISC 7 comparand microprocesoare, de la INT(L si MOTOROLA! /. numar registre" ' CI&C Qnumar mic de registre "/ registre Intel, - Motorola# )este clar ca Motorola are mai multe registre decat Intel +. dimensiunea registrelor" )dimensiunea operan$ilor de lucru -0 biti pe ' de -0 1 biti pe ' de -0 )Motorola are dimensiunea registrelor mai mare decat la Intel 0. ma$oritatea registrelor sunt multifunctionale" functii implicite
a% la Intel structurarea segmentata a memoriei "registre segment# b% la Motorola mecanism de protectie cu ni*ele "u&' si s&'#
&R3ANIZAREA 4E4&RIEI 4I#RA,#',AT&R','I JOrgani$area memoriei este un atribut de ar5itectura a microprocesorului% -% dimensiunile 5artii memoriei ) ce memorie poate sa accese$e memoria fi$ica+ % formatul memoriei ) memoria trebuie sa asigure formatul+ 1% con*entiile de stocare in memorie a datelor care ocupa mai mult de o locatie+ 2% structura logica a memoriei )organi$area propriu)$isa% )56 in modul real ! -% 5arta memoriei Q data de dimen$iunea adre$ei fiice, biti adica megalocatie+ % formatul memoriei Q octetul> 1% informatii stocate pe octeti $ucce$i%i care se accesea$a conform con*entiei micului indian "informatia cea mai putin semnificati*a este pe adresa cea mai mica#+ 2% imi ofera alternati*a! organi$area segmentata a memoriei"in memorie se definesc subdi*i$iuni logice numite segmente, cu dimensiuni fi.e, prestabilite#% )adre$a fiica nu e$te atri#ut de ar0itectura7 fiindca *om lucra cu adrese lo!ice , pe 1 biti, si compuse din parti "efecti*a AE si segment AS#
JMicroprocesorul are org% segmentata cu tipuri! )intrasegment )intersegment JTranslatarea adresei logice = trecerea de la o adresa logica spre una fi$ica+ facuta automat de microprocesor si transparenta pentru utili$ator + JAdresa fi$ica a ba$ei unui segment se face inmultind cu -0 ba$a A& iar apoi in interiorul segmentului po$itionarea se face adunand A( la el!
)ultima e formula de translatare din adresa logica in cea fi$ica%
&7ser*atii:
-% prima deo$e#ire in or/aniarea liniara $i cea $e/mentata este ca in ca$ul organi$arii liniara adresa fi$ica este atribut de ar5itectura in sc5imb in cea segmentata nu este atribut de ar5itectura+ % adre$area $e/mentata ) po$itionarea segmentului in memorie si apoi adresare liniara in segment%
)se pierd - biti, dar ei se regasesc in organi$area *irtuala in memorie!
)adresa segment se afla in registru segment )adresa efecti*a " nu fi$ica 9#
AS imune! )2"-0 biti# sau 0"1 biti# segmente simultan+ )un segment de program, un segment de sti*a si sau 2 segmente de date+ )po$itia absoluta a segementelor in memorie este pe adrese multiplu de -0+ )po$itiile relati*e ale segmentelor sunt la latitudinea utili$atorului segmentele pot fi si suprapuse%
AE imune! )dimensiunea lui A( imi da dimensiunea segmentelor ! 4-0 locatii de memorie , 02 ?+ )dimensiunea 5artii memoriei, data de adresa fi$ica! 4 locatii de memorie , -M? + )organi$area memoriei!octetul cel mai putin semnificati* e adresa cea mai mica "micul indian#%
DMecani$me de utiliare a unui $e/ment! I.Redirectionarea $e/mentelor $e/ment o%erridin/! -utili$area unor segmente pentru alte informatii stabilite implicit de fabricant+ -inseamna ca segmentele in memorie pot a*ea functii implicite si alternati*e+ -redirectionarea segmentelor este restrictionata+ -se face in mod e.plicit in program cu un prefi. de redirectionare "un mnemonic in assembler#
II.Suraunerea! 'rogramele care pot rula intr)un singur segment, nu depasesc granitele segmentului, si pentru care po$itia absoluta a segmentului nu contea$a , se numesc ro/ramele relocata#ile din memorie
O5SER*A)IE! Organi$are liniara a memoriei *s% Organi$are segmentata a memoriei )timp de access ) pentru segmentare timp indelungat de access dar odata inauntru timpul de accesare este rapid+ e.emplu! o memorie de -mb e accesata mai rapid decat una de 02 Kb in organi$area liniara a memoriei+ in cea segmentata, statistic, accesarea e cu mult mai rapida , deoarece accesul intrasegment este mult mai des decat accesul intersegment% )ocuparea %artii memoriei ) org% liniara mai eficace, org% segment risipeste memoria )modulariare ) in fa*oarea organi$arii segmentate "sti*e#
TRANS$ER'RI,E %E %ATE: )ran$ferurile de date! deplasarile de operan$i si
)Cate/oria 5! poate transfera direct cu alte registre + are toate caracteristicile celor din categoria A, sunt mai complicate astfel!
)Cate/oria C! transfera direct din locatia de memorie + are toate caracteristicile lui A si ?! )Cate/oria '! pot transfera un bloc de memorie dintr)o parte in alta+ au toate caracteristicile lui A, ? si C!
O?&(RVATII! )ne referim la transferuri de numere9 nu coduri9 ci operan$i si re$ultate9 )presupun membrii! sursa si destinatie "copierea sursei la destinatie, sursa nu se distruge9# )dimensiunea sursei si destinatiei sunt identice
Re/i$trele care iau arte la tran$ferurile de date dintr-un microroce$or $unt atri#ute de ar0itectura6
TEHNI#I %E A%RESARE Un alt atribut de ar5itectura! te5nicile de adresare "modalitate de specificare, in formatul unei instructiuni a locatiei adresei unui operand, re$ultat sau a codului unei instructiuni#%
D)e0nici de adre$are $imle! acele te5nici de adresare care le detine orice masina CI&C% A*em astfel urmatoarele! aImlicita in re/i$tru! este modul sau te5nica de adresare ce presupune ca in c5iar codul instructiunii curente e.ista niste campuri in care se specifica registrul sau perec5ea de registre in care a*em informatia tinta " un operand sau re$ultat, doar numere9#% o#$! ) nu e in memorie adresarea, ci este un mod de a locali$a informatiile dorite c5iar in registrele generale ale microprocesorului+ )la limita un singur octet, deoarece se reduce la formatul instructiunii% #Adre$area imediata! este modul sau te5nica de adresare ce presupune ca in formatul instructiunii curente, imediat dupa cod, se afla informatia dorita "adica informatia se afla in memoria de program#% )nu putem a*ea in formatul instructiunii curente alte instructiuni+ )cautam date in memoria de program9 doar citim, nu scriem+ )in formatul instructiunii a*em doar operan$i, nu si re$ultate, a*and in *edere ca doar citim din memorie% o#$! cel putin octeti "unul pentru cod, altul pentru re$ultate#
e)emplu:
:ie un procesor CI&C , un procesor pe / biti, cu urmatoarele caracteristici! ) adresare liniara a memoriei+ ) o adresa fi$ica pe octeti+ ) formatul memoriei este de / biti+ )e.ista un numarator de program 6'C7 si pp ca numaratorul de program contine c5iar adresa codului instructiunii+ ) operan$i! un operand pe un octet, un operand pe celalalt octet
Cel mai imp mod de adresare pentru CI&C " la RI&C acest mod nu prea functionea$a#!
cAdre$area a#$oluta "e.tinsa, directa# ! modul sau te5nica de adresare ce presupune ca in formatul instructiunii curente gasim, imediat dupa cod, adre$a comleta a informatiei *i$ate+ Jadresa completa = totalitatea elementelor necesare pentru a identifica fi$ic in memorie informatia dorita+ )in ca$ul or!aniarii liniare a memorie7 adre$a fiica e$te adre$a comleta9 )in ca$ul or!aniarii se!mentate a memoriei ! adresa completa e adresa logica"efecti*a sau segment#, a*em ca$uri! Jcand accesul este intra$e/ment! adre$a efecti%a " adre$a comleta9 Jcand accesul este inter$e/ment! adre$a lo/ica"adre$a comleta 9
o#$! -formatul ma.im al instructiunii este de 1 octeti+ -cele mai multe instructiuni de salt, folosesc acest tip de adresare9
e)emplu:
:ie o masina CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii pe un octet si o adresa fi$ica de octeti+ de asemenea, acest procesor asculta de con*entia micului indian!
dAdre$area $curta! modul sau te5nica de adresare ce presupune ca in formatul instructiunii instrutiunii curente se gaseste o par te din adresa completa a informatiei *i$ate, cealalta parte e presupusa implicit+ o#$! -formatul instructiunii este mai compact, nea*and toata adresa completa)) minim octeti"octet codF-< octet la adresa completa#+ -se refera atat la date cat si la instructiuni, deri*a din adresa completa%
e)emplu:
:ie o masina CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii pe un octet si o adresa fi$ica de octeti "-< inferior in formatul instructiunii si -< superior implicit #!
eAdre$area relati%a! modul sau te5nica de adresare ce presupune ca in formatul instructiunii curente gasim adresa relati*a a informatiei *i$ate, la po$itia codului instructiunii curente% 'o$itia relati*a este date de 6 deplasament 7, care e un numar cu semn "ne putem duce inainte sau dupa#% @di$= deplasamentul , fie p / biti "disp/#, pe -0 biti "disp-0# etc% o#$! )informatia *i$ata poate fi data sau instructiune "de obicei aceasta modalitate de adresare e folosita la cicluri cu contor#+ ) formatul este mai compact decat la adresarea absoluta)) minim octeti% e)emplu:
:ie o masina CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii pe un octet si o adresa fi$ica de octeti!
f 1%Adre$area indirecta prin registru" pre$enta si la CI&C si la RI&C , presupune ca in c5iar codul instructiunii curente este indicat un registru sau o perec5e de registre care unul dintre ele contine adresa completa a informatiei *i$ate + o#$!)in acest moment registrul este de fapt un pointer9 )formatul instructiunii este compact , a*em minim un octet+ )putem accesa orice, si instructiuni si date9
e)emplu:
:ie un procesor CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii de un octet, o adresa fi$ica de octeti si o perec5e de registre generale de / biti fiecare!
2.Adre$area indirecta cu memoria" presupune ca in formatul instructiunii curente se gaseste adresa completa a adresei informatiei *i$ate + o#$! -adresa adresei practic "timpul de acces se lungeste9, dar a*em a*antaBe! o relati*a independenta a locali$arii datelor fata de program+ al )lea! protectia informatiei #+ )formatul este de minim 1 octeti, a*and adresa completa9 )putem accesa orice, si date si instructiuni% e)emplu:
:ie un procesor CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii de un octet, o adresa fi$ica pe octeti si foloseste con*entia micului indian!
/ 1. Adre$area cu preindexare" presupune ca in formatul instructiunii curente gasim po$itia relati*a a unei date, a unui numar, intr)o structura de date "tablou de date# predefinita+ o#$! )formatul este mai compact decat o adresa completa! minim octeti+ )po$itia relati*a, deplasamentul, este un numar po$iti*9 )acest mod de adresare se refera doar la date9 )marimea deplasamentului da marimea tabloului% e)emplu:
:ie un procesor CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii de un octet, o adresa fi$ica pe octeti, cel putin un registru inde. de -0 biti si deplasamentul de /, -0 biti!
2. Adre$area cu postindexare" o combinatie intre adresarea indirecta cu memoria si preinde.are+ presupune ca in formatul instructiunii curente gasim adresa completa a deplasamantului intr)o structura de date predefinita+ o#$! )formatul are cel putin 1 octeti+ -acest mod de adresare se refera la date+
e)emplu:
:ie un procesor CI&C pe / biti, organi$area liniara a memoriei, formatul instructiunii de un octet, o adresa fi$ica pe octeti si un tabel de deplasament!
D)e0nicile de adre$are comu$e! re$ultate din compunerea a sau mai multe te5nici de adresare9
2 concluii! a modul sau te5nica de adresare contribuie decisi* la dimensiunea formatului instructiunii curente+ # semnificatia informatiei o stim noi si microprocesorul, nu memoria! adresarea directa &s adresarea indirecta cu memoria &s cu adresare cu preindexare 'a*em semnificatii diferite! )pentru directa! adresa informatiei )pentru indirecta! adresa adresei informatiei )pentru adresare cu preinde.are! adresa deplasamentului informatiei o#$! toate sunt aceeasi entitate))o adresa completa, dar au semnificatii de informatie diferite9
)e0nici de adre$are entru Intel F4FB!
E o$i#ila redirectionarea $e/mentelor! !
Adre$are indirecta=Adre$are directa rin re/i$tru!
Adre$are indirecta rin re/i$tre=Adre$are cu reinde9are!
2 adre$ari indirecte rin re/i$tre!
Tipuri de instructiuni C(L MAI IM'ORTANT ATRI?UT ;( ARPIT(CTURA! in$tructiunea9 )din punct de *edere semantic, ' imparte setul de instructiuni in subseturi!
1 tran$fer de date 2 relucrari date & in$tructiuni de control al ro/ramului : in$tructiuni in,out ?in$tructiuni de control al Gcalculatorului 1)ran$ferul de date! )presupune in general membri, o sursa si o destinatie! se copia$a sursa la destinatie" asta e semantica#+ sursa ramane nesc5imbata+ )tipurile de entitati care participa la transfer, sursa sau destinatie, depind de clasa din care face parte microprocesorul+ e9emlu! fie un procesor de clasa A, fie &, fie ; trebuie sa fie implicit acumulatorul microprocesorului%
)locali$area informatiilor, fie la sursa fie la destinatie, se face folosind una din modurile de adresare disponibile microprocesorului respecti*+ niciodata la niciun microprocesor nu sunt posibile orice combinatii, e.ista intotdeauna restrictii9 )destinatia unui transfer nu poate fi adresata imediat, deoarece destinatia trebuie sa repre$inte un loc de depo$itare a unei noi informatii, nu a unei constante9 )dimensiunea lui s = dimensiunea lui d+ )un transfer de date este considerat cel cu sti*a, cu pus5 si pop etc% )formatul instructiunii este foarte compact, deoarece trebuie sa permita un transfer masi* de informatii%
E9emle!
4&8SB.4&8S9 ! o instructiune tipica CI&C )copia$a un sir de numere dintr)o locatie de memorie la alta locatie de memorie+ )este o primiti*a ce poate fi repetata cu R(', un prefi. de repetabilitate, ce implica un ciclu cu contor, o bucla9 "face parte dintr)un set de tipuri de prefi.e, pe care Intel le poate folosi 9 e.emplu! prefi. de redirectionare etc%# ! REP MO*S5,MO*S
) in formatul instructiunii apare, parado.al, un octet inaintea codului "mai intai prefi.ul apoi codul, acest aspect repre$inta o e.ceptie9#+ )&I, ;I, ;&, (&, C, ;:) ca sa aiba rost, aceste registre trebuie actuali$ate, sunt prestabilite+ )este un transfer intersegment + )caracteristica specifica intel! asocierea lui ;I cu ;& este obligatorie9 nu-l utem redirectiona> );: imi permite sa parcurgem intr)un fel sirul, de la stanga spre dreapta";:=#, ori in*ers";:=-#+
2Prelucrari de date!
A*em tipuri de operatii!
aoeratii cu un oerand monadice! ) cu acumulator! d ← ⨂ d ) fara acumulator! d
←⨂
$
#oeratii cu 2 oeranidiadice! ) cu acumulator! d ← ( d ) ⨂ $ ) fara acumulator! d
( ) ⨂ $2
← s1
o#$er%atie! operatiile cu acumulator sunt tipice CI&C, deoarece nu a*em multe registre, iar cele fara acumulator sunt tipice RI&C9
aracteristici"
)tipuri de operatii u$uale! a#logice! &I, &AU, OR"diadice logice#, complement fata de - si "monadice logice# b#aritmetice! F, ) ,J, < "diadice aritmetice#, incrementare, decrementare"monadice aritmetice# c#deplasari si rotatii"monadice aritmetice# )sursa si destinatie pot fi, in principiu, registre generale, ;AR si locatii de memorie 9 o#$er%atie! utili$area locatiilor de memorie ca membrii a operatiior aritmetice)logice, este o caracteristica CI&C 9 )identificarea operan$ilor si a re$ultatului se face folosind modurile de adresare ale ' respecti*, cu restrictii+ )nu orice combinatii de moduri de adresare, pentru sursa si destinatie, sunt posibile+ )ca si la transferuri, sursele si destinatiile au lungimi egale e9cetii! inmultirea, cu re$ultatul pe dubla preci$ie impartirea, unde deimpartitul este pe dubla preci$ie )aceste instructiuni afectea$a fanioanele aritmetico)logice, modul in care ele sunt afectate, face parte din semantica instructiunii9 a%em : moduri de afectare a fanioanelor! a# fanioane neafectate indiferent de operatii " nu pot fi folosite in a lua deci$ii ulterioare# b# fanioane afectate ulterior c# fanioane care sunt fie setate, fie resetate dupa o operatie indiferent de re$ultat d# fanioane care in functie de tipul operan$ilor, in functie de *aloarea operan$ilor, sunt setate sau resetate o#$! )nu toate fanioanele sunt afectate de orice instructiune de prelucrare de date )e.ista instructiuni de prelucrari de date care afectea$a anumite fanioane la fel )afectea$a fanioanele aleator
) performanta acestor tipuri de instructiuni este un compromis intre comple.itatea instructiunii si timpul de e.ecutie, tipic CI&C 9
E9emle! :ie un procesor CI&C pe / biti, organi$are liniara a memorie, adrese fi$ice pe -0 biti, memorie formatata pe octeti, numarator 'C, indicator de sti*a, registre generale R-, R, R1,R2,R, R0 , / biti fiecare , acumulator A pe / biti, si fanion de transport optional%
Alte primiti*e:
CMPS5 , CMPS "compara un element dintr)un sir, cu un element din alt sir#
)trebuie initiali$ate! (&,;&,&I,;I,;: 9
SCAS5 , SCAS "se compara o constanta cu elementele unui sir#
)utili$area lui (& si ;I e obligatorie+ )poate fi prefi.at cu R(', R('H, R('NH
e9emle de in$tructiuni lo/ice!
)IMUL Q inmultirea cu semn9
'I* C !
Obser*atie! si multe alte instructiuni intr)un pdf separat9
&'e control al ro/ramului! Microprocesoarele ne pun la dispo$itie clase de actiuni! teste si salturi9
)e$tele! A%testea$a un fanion+ ?% testea$a combinatii logice fanioane+ C% testea$a un bit oarecare dintr)un operand oarecare+ ;% testea$a linii de intrare Wserie7+
Salturi! ma duc la alta locatie de memorie, decat cea imediat urmatoare% Jdupa efectuarea sau nu a unor teste! )neconditionate )conditionate Jdupa modul de adresare"mult mai retricti*#)CI&C foloseste patru salturi!
Jdupa cum memorea$a sau nu *aloarea curenta a numaratorului de program! )salturi propriu)$ise )apeluri de subprograme Jdupa comple.itate A%salturi posibilitati ?% salturi 1 posibilitati C% cicluri o#$er%atie! )salturile neconditionate nu sunt recomandate de folosit + in sc5imb salturile conditionate, strict necesare, pot fi facute+ )apelurile de subprogame "CALL# = apelul de program, in esenta, este un salt neconditionat "ca XM', dar cu diferenta maBora ca CALL poate sa re*ina la adresa de la care a plecat, in programul principal#999 )apelurile de programe presupun sal*area adresei pentru reintoarcere, e regula facuta in sti*a, procesoarele CI&C folosesc sti*a pentru asta + CALL este saltul la prima instructiune a programului apelat+ e9emle!
1. Prin adre$are directa inter$e/ment> $alt roriu-i$ neconditionat !
2. Prin adre$are imlicita7 inter$e/ment7 neconditionat!
&. Intel are toate $alturile conditionate cu adre$are relati%a7 intra$e/ment cu dela$ament7 numai e F #iti !
:. Aelul adre$are directa7 inter$e/ment!
?. Return la aelul din ro/ramul rincial ultimele 2 randuri7 arantee drete7 entru inter$e/ment7 re$tul intra$e/ment!
Principiile de 7aa ale unei aritecturi de microprocesor- RIS# 'e aceeasi masina VON N(UMANN, cu acelasi mod de functionare " fetc%-decode-execute#, cu aceleasi tipuri de ar5itectura, dar se manifesta in mod diferit9
CARAC)ERIS)ICI 'E3INI)ORII! 1. Unitatea de control e$te realiata rin @lo/ica de ti ca#lat. 2. In$tructiunile $e de$fa$oara intr-o $in/ura stare 7 deci durate de timp identice9 &. Numarul de in$tructiuni e$te mic $u# 12F> ele sunt 6simple7 "nu e.ista operatii de tip cicluri, adica nu a*em loop)uri#% :. 'imen$iunea e$te fi9a entru tot formatul in$tructiunilor cat cea a oeranilor tiici> de regula, sunt pe 1 de biti, dar in general informatiile "operan$i, re$ultate, instructiuni, adrese etc% # *or fi uniforme pe 2 octeti 9 ?. In$tructiunile au format uniform nu mai mult de : tiuri de formate> informatiile din formatul instructiunilor sunt putine, pentre decodificari cat mai simple cu putinta9 B. Numarul de moduri de adre$are e$te mic $u# :> pentru a nu a*ea coduri imense+ sunt putine ' dar sunt compuse, nu simple9 . E9i$ta un numar mare de re/i$tre /enerale7 atri#ute de ar0itectura cel utin &2 . F. Acce$ul memoriei $e face numai cu in$tructiuni de tran$feruri $imle de date intre re/i$tre $i memorie in$tructiuni de ti ;,&A%< $i ;ST&RE<= oeratiile de relucrare ale datelor folo$e$c numai re/i$trele microroce$orului lor.
Setul de re/i$tre! A*em de)a face cu urmatoarele a*antaBe in folosirea unui set de registre! ) marirea *ite$ei de procesare prin minimali$area accesului in memorie a operan$ilor si
) transferul parametrilor intre programele apelante si apelate se face direct in interiorul microprocesorului+ ) deser*irea cererilor de intrerupere si multiprocesare pot fi reali$ate direct in interiorul microprocesorului+ ) marirea 6factorului de uniformitate7 a cipului "numar total de circuite< numar de tipuri de circuite! registre, UAL, numaratoare etc%#%
Re/i$trele! 'rocesorul RI&C are! ) in general foarte multe registre "de la 1%%%%% sau poate c5iar mai mult, conform ultimelor te5nologii aparute#+ ) dimensiunea registrelor = dimensiunea operan$ilor de lucru "1, 02 biti#+ ) ele sunt fi$ice sau logice+ ) toate registrele sunt multifunctionale, in general fara functii implicite+ multe dintre ele fiind folosite ca pointeri+ nu a*em acumulator, nici macar implicit9 ) a*and multe registre generale, putem defini subdi*i$iuni logice in setul de registre, ce conduc la aparitia registrelor logice+ inter*ine astfel in acest proces notiunea de set de lucru de re!istre >su7set de re!istre lo!ice folosite in pro!ram=? 'entru un program care rulea$a, *om a*ea de a face de acum incolo cu setul de lucru de registre "care se poate sc5imba de la un program la altul, de minim 1 de registre#% Ca microprocesorul sa treaca de la registrul logic la registrul fi$ic, se reali$ea$a tran$latarea registrelor logice in registre fi$ice% Respecti*a translatare se face automat si transparent pentru utili$ator%
D)iuri de or/aniari a $etului de re/i$tre! a $etul de re/i$tre fiice $imlu! )un "la
sir de registre, fiecare identificat dupa numarul sau de ordine r, r-, r etc% fel ca)n organi$area liniara a memoriei# , apoi folosite cum dorim%
# mai multe $eturi de re/i$tre lo/ice unic $et de re/i$tre fiice!
) se imparte setul de registre fi$ice in mai multe subseturi+ ) fiecare subset de registre logice are cel putin 1 de registre, ca sa fie set de lucru9 ) prin intermediul unui pointer trecem de la un subset la altul+ a%antaJul! modulari$area programului " nu mai sal*am continutul registrelor+ trec de la un program la altul fara sa mai sal*e$ continutul unor registre care *or fi folosite si in alt program#+ )remarcam o corespondenta biuni*oca intre registrul fi$ic si cel logic%
c $eturi de re/i$tre lo/ice artial $urau$eunic $et de re/i$tre fiice! ) $uraunere " 6 ferestre de registre care permit comunicarea intre seturile de lucru+ ) ) in acest tip de organi$are nu mai a*em nicio corespondenta biuni*oca intre registrul fi$ic si logic+ ) ) fiecare set de registre logice repre$inta de fapt un set de lucru9 ) ) permite transferul de parametrii intre programul apelant si apelat 99 ) ) daca ultimul set de lucru se suprapune cu primul, a*em de) a face cu 6ferestre circulare7 ))) $e incuraJeaa recur$i%itatea6 )microprocesorul impune numarul de suprapuneri+ )
d mai multe $eturi de re/i$tre lo/ice entru multiroce$are mai multe $eturi de re/i$tre fiice!
)
multiroce$area " set fi$ic pentru fiecare proces > trecerea de la un proces la altul se face prin intermediul unui pointer%
Ca e9emle7 a%em7 de la inceuturile RISC-ului7 urmatoarele re/i$tre ale microroce$oarelor ! ?erKele> RI&C I si II% a# registrele disponibile pentru o anumita procedura!
)setul de lucru, de 1 de registre, este format din! 1 ferestre si registrele sale proprii% b# registrele fi$ice si registrele logice!
) / seturi de lucru ! putem a*ea / programe care se pot apela unele pe altele+ ) primele - registre sunt comune, - registre dedicate fiecarui parametru de lucru ) 0 registre din fiecare set se suprapun+ ) ultimul set de 0 registre se suprapune peste ultimul+ ) / seturi de lucru a cate 1 de registre fiecare+ ) registrul R= stoc5e$ constanta 9 )) consum de registre, aspect care nu)l regasim si la CI&C9 -in total! -1/ de registre fi$ice9 - tran$latarea!
R=A=?=C=Y=P %%% R-=A-=P0 R-=A-=P1R0=A0=?- R1-=A1-=?- etc%
DSetul de in$tructiuni $i )e0nicile de adre$are &etul de instructiuni! ;upa cum am stabilit, setul de instructiuni este mult simplificat "cel mult -/ de instructiuni# si sunt 6simple7% A*em urmatoarele tipuri de instructiuni RI&C!
a in$tructiuni entru acce$ in memorie! +OA',S)ORE +OA' r7 mem>
r
S)ORE mem7 r>
←
mem ←
mem
r
- accesul in memorie se face *+, cu aceste instructiuni+ - r si mem trebuie sa aiba aceeasi dimensiune% # in$tructiuni aritemetico-lo/ice! d ← (s 1) ⨂ $2
, unde
⨂
) o operatie aritmetica, logica oaecare 9
) nu se lucrea$a cu acumulator "destinatia nu inlocuieste ua dintre surse#+ ) d, s- si s sunt registre din setul de lucru+ ) d, s- si s au aceeasi dimensiune+ nu *om a*ea niciodata locatii de memorie+ ) tipuri de operatii! 1.operatii logice! &I, &AU, OR "diadice#, C:-, C:"monadice#+ 2.operatii aritmetice! F, ), J, ! "diadice#, incrementare, decrementare "monadice#+ o#$! inmultirea si impartirea nu sunt considerate operatii comple.e9 &.deplasari sau rotatii "monadice#, care nu distrug operandul si au un numar *ariabil de celule%
c in$tructiuni de control! Jaici a*em salturi proriu-ise, apeluri de subprograme si teste" ) apelurile de subprograme nu folosesc neaparat sti*a 6soft7, microprocesorul nu o foloseste implicit, adresa de re*enire poate fi sal*ata in sti*a 65ard7 sau intr)un registru+ ) daca e.ista sti*e, de multe ori ea este 65ard7, nu 6soft7%
Tipuri de moduri de adresare! 1. In re/i$tru! A3 "
rn
, unde
r n
repre$inta un registru oarecare din setul de lucru registre+
2. 'irecta a#$oluta7 de re/ula intr-o ortiune a 0artii de memorie!
A3 " adr ) se presupune ca adresa figurea$a in formatul instructiunii+ ) in formatul instructiunii am o bucata de din instructiunea curenta, astfel puem considera ca a*em o adresare scurta 9 &. Indirecta rin re/i$tru! A3 "
rn
) se accesea$a orice din 5arta memoriei+ ) orice registru poae fi pointer+ ) tipica /
:. Adre$area imediata! constante care apar in formatul instructiunii% Dtiuri comu$e de adre$ari! ?. Relati%a la #aa7 directa! A3 "
rn
=adr
B. Relati%a la #aa7 cu re/i$tru inde9! A3 "
ri
=
r j
7"
ri
#, "
r j
# Qorice registre din setul de lucru
o#$! si 0 sunt ba$ate pe adresarea indirecta prin registru9 . Relati%a la PC! A3 " PC = di$ , tipica pentru adresarea in programe+ 'E REMARCA)! Orice re/i$tru oate fi #aa $i oricare re/i$tru oate fi inde96
'NITATEA %E #&NTR&, A 4I#R&PRES&R','I RIS#>'#P-ul=:
Ca la orice procesor, UC' are functii! -de$fa$urarea in $atiu -de$fa$urarea in tim
D 'e$fa$urarea in $atiu! Un RI&C ! la fiecare in$tructiune a%em : octeti9 'eci UCP-ul e $imlificat6 "fata de CI&C, unde a*em intre - si - octeti pentru instructiuni#%
- se obser*a ca)n formatul instructiunii putem a*ea ! un cod, de$*oltarea pentru 1 registre si un loc pentru un deplasament, instanta, adresa+ ) 1 de registre de lucru+ ) 40 instructiuni, din cod+ ) o adresa are! 0 biti9 ")#% Un CI&C se pre$inta sub forma urmatoare!
- linia punctata" suplimentar! - linia continua" obligatoriu!
O ma$ina RISC are toate in$tructinile de$fa$urate intr-un numar e/al de $tari6 Se oate face o de$fa$urare in aralel a mai multor in$tructiuni dintr-o $ec%enta -K o de$fa$urare diferita cu fiecare )AC).
D 'e$fa$urarea in tim!
a CISC - inmultirea e &2 de #iti6 unde se folosesc acumulatori ;, A!
CONCLUHII! -% pentru di*erse operatii de prelucrari de date se folosesc acelea$i comonente ale $c0emelor 5locL pre$entate deBa pentru un ' CI&C+ % operatiile aritmetice comple.e dureaa un numar mare de $tari, *ariabil, depin$and de operan$i+ 1% succesiunea de stari este stocata intr)o memorie de program in care fiecare in$tructiune e Gro/ramata+
acumulator = re/i$tru de dela$are )reali$are prin concatenare de registri de 1 biti%
# RISC - inmultirea e &2 de #iti6
CONCLUHII! -% operatiile de prelucrare de date $e realieaa cu circuite dedicate7 com#inationale de re/ula+ % operatiile se reali$ea$a cablat, e.ista premise ca aceste operatii de prelucrari de date, c5iar cele comple.e, sa se reali$e$e intr-o $tare> 1% UC $imlificata, astfel nu e ne*oie de un automat complicat care sa genere$e succesiunile de stari% Acest aspect face diferenta maBora dintre un RI&C si CI&C9 o#$! UC= unitate de control, neprogramata...e cablata!
Pe $curt! )a*antaBul maBor! doar o stare la RI&C, n stari la CI&C9 fiecare operatie pe RI&C repre$inta un circuit separat 9999 la CI&C se folosesc aceleasi blocuri, aceeasi sc5ema pentru indiferent ce operatie, dar depinde de comple.itatea operatiei daca a*em sau nu numar mare de stari9 o#$er%atie! - totodata, la un RI&C, circuitul trebuie optimi$at pentru ca 5a$ardurile sa fie sub o perioada de clocK 9 - unitatea de control fiind mai simpla → desfasurarea in timp este mai rapida + definim C'I "clocK per instruction = -#% In mod normal a*em urmatoarele ca$uri! a# la RISC! CPI"1 + cu e.ceptii C'I- "date de salturi#+ b# la CISC! CPIK1 $i %aria#il + c# la unele roce$oare7 $uer$calare! CPI<1 "intr)o stare pot e.ecuta mai mult decat o instructiune#+ e.emplu! '(NTIUM%
)EHNICA PIPE+INE! - durata este uniforma, egala practic pentru toate instructiunile intr)un numar mic de stari+ in principiu aceasta desfasurare uniforma in timp este posibila datorita ! reali$arii cablate a operatiilor, prelucrarilor de date+ folosirii registrelor interne pentru operatii+ instructiunile au format identic si putine tipuri de informatii+ putine instructiuni "cod scurt#+ • • • •
→
•
putine moduri de adresare
durea$a putin +
•
pre$enta unei co$i de instructiuni%
J;aca un procesor e.ecuta toate instructiunile din setul de instructiuni, in cate n stari, e.ecutia instructiunilor dintr)o sec*enta se poate suprapune asa incat, in fiecare moment de timp, a*em n instructiuni in di*erse stadii de e.ecutie, astfel $icem ca a*em o e9ecutie PIPE+INE7 cu n etaJe. (ste posibil sa am un numar constant de stari pentru orice instructiune% 'resupunem "n=# stari, n+ nF-+ nF etc%"momente de timp# si K+ KF-+ K)- etc%"instructiuni#, toate desfasurate intr)un moment de timp!
A%em urmatoarele $emnificatii ale celor ? $tari ! a pentru instructiunile de prelucrari de date! &-"starea -#) fetc5+ &"starea #) decodificare+ &1"starea 1#) citeste operan$i+ &2"starea 2#) e.ecuta operatia aritmetica sau logica+ &"starea #)scrie re$ulatul%
# pentru operatiile de accesare a memoriei de date si
o#$! tinem insa cont ca nu toate instructiunile urmea$a succesiunile de stari de mai sus9
#aracteristici RIS# la ni*elul Software: Consta in! ) impunerea de restrictii desfasurarii programelor+ ) cel care proiectea$a procesorul poate sa optimi$e$e sec*enta de instructiuni cu care sunt emulate instructiunile de ni*el inalt+ ) optimi$ari ulterioare ale codurilor sunt imposibile+ ) translatarea registrelor logice in registre fi$ice "pentru folosirea registrelor#% Intr)o masina RI&C este posibil sa blocam masina, fiindca nu stim detalii de implementare a instructiunilor si conduce la conflicte 9 Optimi$area Translatarii RI&C! :ie un set de lucru, cu 0 registre logice! A, ?, C, ;, (, :% 'resupunem, de asemenea, registrele logice organi$ate intr)un anume fel si)n orice moment translatarea registrelor logice in trei registre fi$ice! R-, R, R1 % a= prin diagrama timpilor de utili$are a registrelor logice A, ?, C, ;, (, :+ 7= graful de interferenta a utili$arii registrelor+ alocarea registrelor fi$ice R1, R2, R& .
Nodurile grafului sunt registre logice% Laturile grafului semnifica cel putin utili$area simultana a celor doua registre logice% Alocarea registrelor logice se face e*itand sa am acelasi registru fi$ic in doua noduri unite de o latura% ;aca alocarea nu e posibila, inseamana ca microprocesorul se bloc5ea$a9 "ca$ul nodului :#% Acest ca$ poate fi e*itat printr)o *arianta softare
→
sa a*em griBa ca sec*entele de
instructiuni sa permita intotdeauna translatarea pentru un minim de registre fi$ice disponibile9
A*AN)AE RISC! 1. Realiarea fiica in $tructuri *+SI! *+SI *er +ar/e Scale Inte/ration " procesul de creare a unui circuit integrat prin combinarea a mii de tran$istoare intr)un singur cip% ) minimi$area ariei cipului dedicata UC al microprocesorului "sub -#+ ) marirea ariei cipului disponibila pentru registre generale+ ) marirea 6factorului de uniformitate 6 a cipului "numar total de circuite
2. Marirea %iteei de roce$are! ) prin reali$area cablata a UC si a prelucrarii datelor+ ) prin utili$area unui numar mare de registre interne se reduce traficul cu memoria+ ) prin suprapunerea e.ecutiei instructiunilor+ ) prin utili$area te5nicii Wintar$ierii salturilor7 se pre*ine golirea co$ii de instructiuni%
&. Scaderea co$tului si marirea fia#ilitatii! ) timp mai mic pentru proiectarea UC+ ) timpul global de proiectare si punere in fabricatie este considerabil mai mic decat pentru CI&C+ ) probabilitate mai mica de a a*ea erori de proiectare si usurinta de corectare+ ) lungimea standard a formatului instructiunilor elimina riscul depasirii limitelor paginilor de catre o instructiune% estionarea paginilor de*ine mai usoara%
:. Suort entru lim#aJele de ni%el inalt! ) reali$area compilatoarelor este mai simpla "numar mic de optiuni in alegerea instructiunilor#+ ) cresterea eficientei prin utili$area e.tensi*a a operatiilor de prelucrare in interiorul microprocesorului+ ) te5nica Wferestrelor de registre7 usurea$a implementarea apelarii subrutinelor "procedurilor#%
'E(A*AN)AE RISC! 1. Numarul redu$ de in$tructiuni! re$ulta ca programele RI&C sunt mai lungi decatcele CI&C "in medie cu 1#% 2. Numarul mare de re/i$tre interne! ) timp de acces mai mare+ ) utili$area registrelor Wpointer7 pentru ferestre complica selectia unui registru la decodare+ ) spatiu mare pe cip+ ) te5nici complicate de gestionare a ferestrelor+ ) compilatoarele a*ansate folosesc mai eficient seturi reduse de registre+ ) sal*area registrelor in conte.tul multiprocesarii "la trecerea de la un proces la altul# presupune timp mai indelungat pentru stocare si recuperare in
Strate!ii de intrare . iesire &patiul dispo$iti*elor de intrare < iesire ;iscutam despre POR)URI $i acce$area lor Q tipic CI&C! a# ca porturi propriu)$ise "tipic CI&C#! Consuma coduri de instructiuni, e.istenta de instructiuni suplimentare mareste setul de instructiuni, numarul de semnale de control si consuma terminale de pe magistrala de control+ a%antaJul e$te acce$ul raid daca sunt indeplinite cele 1 conditii! )daca d si s se cunosc "acumulatorul implicit sau dedicat) A, AL#+ )daca 5arta porturilor este foarte mica, mai mica decat 5arta memoriei+ )daca limite$ drastic modurile de adresare la porturi ! directa, indirecta prin registru% ;e asemenea, aceasta accesare mai este caracteri$ata prin cicluri masina specifice si semnale distincte pe magistrala de control! IOR si IO "input output read si input output rite#!
IN OUT
d, port; port, ;
(d) ← (port) (port) ← ()
e9emle! )Intel ./0 este compatibil pentru astfel de organi$ari ale dispo$iti*elor intrare read si memor> rite#% Toate caracteristicile transferurilor de date sunt transmise asupra instrcutiunilor de I < O% Totodata, dar doar la CI&C, e.tind utili$area porturilor si in cadrul instructiunilor de prelucrari de date% 'ea%antaJele ace$tei acce$ari! consuma spatiu din 5arta memoriei si timp mare de acces "formatul instructiunilor complicat, moduri de adresare multe) doar CI&C#%
o#$er%atii! ) oricare operatii in care se foloseste memoria se aplica si la porturi+ ) oricare procesor care poate folosi aceasta caracteristica b# poate folosi si caracteristica a#+ ) daca procesorul nu are a#, atunci are b#%
Te5nici de intrare < iesire u$uale! Te5nici de sincroni$are a microcalculatorului cu ec5ipamentele periferice conectate prin intermediul porturilor% A*em tipuri principale de te5nici! A% Sincrone cu ro/ramul curent. Intero/area continua te0nica PO++IN;!
'resupune ca fiecare port are disponibil un asa $is 6cu*ant de stare7 "de un octet sau mai multi#, in care portul informea$a daca este ocupat sau nu in con*ersatia cu perifericul de care e legat% Microprocesorul citeste periodic aceste cu*inte de stare al fiecarui port pana cand se anunta ce port e disponibil pentru permiterea transferului de informatii intre e.terior si port%
Multe a%antaJe7 dar $i dea%antaJe maJore! A*antaBe! )nu implica 5ardare in plus"sarme etc% #+ )totul se face sincron cu programul curent+ ;e$a*antaBe! )cat timp interogam un anumit port, pierdem timp+ )daca o cerere de con*ersatie a unui periferic e tinut blocat, putem pierde con*ersatia+
E9emlu de imlementare a te0nicii ! :ie porturi, fiecare pre$inta un cu*ant de stare, pe un octet, in care presupunem ca M&? ne arata daca portul e ocupat sau nu "- Q e disponibil, Q nu e#+ comunicarea e pe -0 biti+ Care este timpul minim si ma.im de interogare a unui port3 Jminim! la limita inferioara calculam cate stari durea$a instructiunile cand se e*aluea$a o singura data corpul acelui ciclu+ Jma.im! pana la sfarsitul energiei calculatorului%
comentariu! citim cu*antul de stare, msb trece in fanionul de transport, testam fanionul de transport , trecem mai departe in A=-0biti % XNC "Bump if not carr>, daca C:=- trec mai departe# %
?% A$incrone cu ro/ramul in cur$ de de$fa$urare. Intreruerile
Acesta te5nica presupune o legatura fi$ica speciala intre porturi si microprocesor+ porturile pot trimite semnale, nu logice, ca sunt disponibile si ca doresc transfer de la un terminal speciali$at al microprocesorului, apoi microprocesorul raspunde intrerupandu)si programul intr)o maniera specifica cererii unui port si re*enind apoi la programul curent %
Respecti*a te5nica este cea mai utili$ata, incearca sa elimine cele de$a*antaBe de la cealalta te5nica% obs! A%antaJele de la unctul A $unt dea%antaJe7 iar dea%antaJle a%antaJe666
Cerere de intreruere! semnal " sau -# trimis unui terminal dedicat al microprocesorului prin care un periferic "prin intermediul unui port# cere acces la resursele sistemului% R a$un$ la o cerere de intreruere! o sec*enta de actiuni pe care microprocesorul o declansea$a parasind programul normal de functionare+ totodata repre$inta trecerea intr)o alta stare Rutina de de$er%ire a unei intrerueri 0andler! un program prestabilit, aflat la o adresa prestabilita, prin care microprocesorul raspunde la o anumita cerere de intrerupere formulata de un anumit periferic% Adica fiecarui periferic trebuie sa)i raspundem intr)un mod diferit9
E9emlu de imlementare a te0nicii ! :ie o masina CI&C, pe / biti, organi$are liniara a memoriei, adresele fi$ice sunt pe octeti, memoria formata pe octet, procesorul are registre generale, pe / biti, concatenabile cate in registre de -0, e.ista un numarator de program "'C# de lungime%%%, este tipic sa aiba o sti*a soft"fiind CI&C#, indicator de sti*a &', de lungime%%%+ a*em registrul de fanione":#, intre fanioane a*em un fanion special! fanion de *alidare a anumitor cereri de intrerupere"I:#%
comentariu! 1. Raspunsul la o cerere de intrerupere pentru ' CI&C foloseste sti*a primara sau propriu)$isa "sti*a soft#% &ti*a este o $ona de memorie, foarte sensibila fiind soft+ inafarZ de pus5, pop, call, ret se pare ca se utili$ea$a si pentru cererile de intrerupere99 2. 'rocesorul sal*ea$a in sti*a : "registrul de fanioane#, 'C deci locul unde se face intreruperea si optional alte registre atribute de ar5itectura% &. Resetarea lui I: inseamna in*alidarea anumitor cereri de intreruperi care ar putea aparea in re$ol*are, in cursul raspunsului intreruperii curente% :. O etapa in cadrul sec*entei de raspuns este apelarea etapei nr%%"di*erse tipuri de intrerupere si dupa modul in care adr este prestabilita#%
?. Reiau din sti*a ceea ce era acolo pentru a putea continua programul initial% Apel al procedurii de raspuns "difera de la un tip de intrerupere la altul9#%
Intreruperi caracteristice microprocesoarelor de u$ general! Un procesor de u$ general, fie CI&C, fie RI&C poate raspunde la mai multe tipuri de intreruperi!
a Acce$ul direct la memorie!
Caracteri$tici! ) este o intrerupere de prioritate ma.ima "se raspunde prima#+ ) este un criteriu de performanta + timpul de raspuns nu asteapta ciclul masinii curent+ ) raspunsul la intrerupere este PAR;, nu &O:T "microprocesorul isi ing5eata acti*itatea Q impedanta inalta asupra terminalelor, ca si cum l)am scoate din soclu#+ ) ?U&R[ ! bus re\uest "controllerul preia controlul asupra magistralei#+ ) ;MA"direct memor> access# ! pre)programat sa accese$e memoriilee si porturile si *a facilita un transport direct intre memorie si porturi+ ) transferul de date direct intre memorie si porturi este considerat cel mai rapid mod de tansfer de date de pe magistrala microprocesorului unui calculator% 'entru o masina CI&C, care presupune mai multe cicluri masina, fiecare cu mai multe stari! nu se asteapta terminarea instructiunilor, ci teminarea ciclului de masina curent9
Concluie ! ;MA = tip de intrerupere puternic si rapid "odata primit pe un terminal speciali$at un astfel de semnal , procesorul raspunde imediat==timpul de raspuns e un criteriu de performanta9 nu a*em de a face cu sti*a, sal*are in ea etc+ este preprogramat9 "sa controle$e transferuri pe
magistrala de date pentru un acces direct intre porturi si memorie# Q cel mai rapid transfer posibil pe magistrala de date9
# Intrerueri nema$ca#ile! J este formulata pe un terminal speciali$at "WNMI7#+ J nu poate fi in*alidata de catre utili$ator"=nemascabila#+ J ca prioritate, urmea$a dupa cererea de acces direct la memorie";MA#+ J asteapta terminarea instructiunii curente+ J urmea$a algoritmul general de raspuns la o cerere de ]ntrerupere+ J rutina de deser*ire a ]ntreruperii are o adresa prestabilita%
c Intrerueri ma$ca#ile! J este formulata pe un terminal speciali$at "W INT 7#+ J poate fi in*alidata de catre utili$ator "fanion < fanioane de *alidare a ]ntreruperilor#+ J ca prioritate, urmea$a dupa ]ntreruperile nemascabile+ J asteapta terminarea instructiunii curente+ J urmea$a algoritmul general de raspuns la o cerere de ]ntrerupere+ J rutina de deser*ire a ]ntreruperii are o adresa care depinde de Wmodul de raspuns7 prestabilit! Wmodul 7 Q perifericul stabileste adresa dar si instructiunea de apel a rutinei de deser*ire a ]ntreruperii+ practic perifericul stie tot9 Wmodul -7 Q adresa rutinei de deser*ire a ]ntreruperii este prestabilita+ adica perifericul nu stie ce)i intreruperea etc% si ii trimitem noi o procedura+ Wmodul 7 Q @ntreruperi *ectoriate "combinatie intre modul si -#% •
•
Nu toate microprocesoarele detin modulele de mai sus " $/ e un e.emplu care le detine pe toate#%
Intrerueri %ectoriate! adre$a comleta a unei rutine de deser*ire a intreruperii+ Al/ortimul de %ectoriare! adre$area indirecta cu memoria "independenta po$itionarii datelor in program si protectie9 # , folosind o tabela cu *ectori de intrerupere 9 -un procesor are, de regula, mai multe proceduri de raspuns, si , deci, mai multi *ectori de intrerupere pregatiti "*ectorul il alegem noi9#+ -*ectorii sunt organi$ati intr)o tabela, unul dupa altul intr)o $ona predefinita+ - perifericul trimite prin intermediul portului cererea de intrerupere si un cod "un numar de biti#+ -microprocesorul calculea$a pornind de la acest cod adresa *ectorului "adresa adresei procedurii de raspuns corespun$atoare#+ -citeste *ectorul si transfera controlul la procedura de raspuns "salt la prima instructiune din procedura#% )dimensiunea *ectorului de intrerupere "numarul de octeti al adresei complete# ! m #te$
)cat de mare e codul in biti3 dimensiunea informatiei"6 ti7# + daca acest cod este pe n #iti atunci marimea tabelei de *ectori este mD2n octeti #te$6
) locali$area tabelei in 5arta memoriei+ a*em doua categorii de microprocesoare din punct de *edere al po$itiei in tabela cu *ectori de intrerupere ! microprocesoare care spun unde se afla tabela+ micrprocesoare ce pot sa foloseasca anumite $one% • •
EEMP+U! :ie o masina CI&C " F4#, microprocesor pe / biti, organi$area liniara a memorie, cu o adresa pe -0 biti "o adresa completa are octeti#, memoria formatata pe octeti+ acest microprocesor poate raspunde la cererile de intrerupere mascabile, *ectori$ate, iar codul 6tip7 primit de la periferic trebuie sa aiba G biti "-/ de proceduri))-/ de *ectori# + e.ista un fanion de *alidare a intreruperilor si e.ista un registru atribut de ar5itectura, I, pe / biti, care ne permite locali$area tabelei cu *ectori de intrerupere%
cu
!ector"de"#$trer%pere & ((I) tip ↑ ')
↑
tip
↑
' + 1)
↑
((I)
↑
)*ectorul de intrerupere are octeti+ )6tip7 are G biti+ )tabelul cu *ectori de intrerupere ! J4G b>tes Q 0 de b>tes+ )iar locali$area tabelei este la alegerea utili$atorului%
JConcatenam cu la dreapta" sau deplasam o po$itie la stanga#! inmultim cu 29 "de ce3 obligatoriu pe adrese pare, intrarea in ta#ela e din 2 in 29 intrarile in tabele sunt obligatoriu pe adrese pare9== a*and *ectori pe octeti, adresele *ectorilor nu pot fi decat pare9
)iuri de intrerueri la microroce$oarele Intel 9FB in modul real
- *ectorul de intrerupere are 2 octeti+ - intel are 6tip7 / biti+ - tabela are un - K?+ - locali$area tabelei este prestabilita+ Intel impune ca aceasta tabela sa inceapa de la po$itia 67+ octetul $e inmulte$te cu :6 "intrarile in tabela din 2 in 2, iar apoi partea mai semnificati*a se completea$a cu $erouri, adresele fi$ice pe de biti#% O caracteri$tica intere$anta din partea Intel este! intreruerea $oftware. Obser*atii! Jintreruperea ) ce*a asincron cu programul, de natura 5ardare "nu depinde de noi9# Jintreruperea softare "depinde de noi+ daca o *rem, apare# ) o instructiune din microprocesor, din setul de instructiuni+ dar de ce o nume$te intreruereQ deoarece este identica cu succesiunea de actiuni ce o face procesorul cand primeste o intrerupere propriu)$isa, 5ardare "foloseste aceeasi tabela cu *ectori de intrerupere # 9
Junde ^tip_) un numar ce poate fi dat in $ecimal, intre si + numarul *enind de pe magistrala de date9 ) ) )
al doilea rand==sal*ea$ in sti*a registrul de fanioane+ fanionul I: si T:, amandoua sunt in*alidate, ca sa nu ne intrerupa alt periferic+ al 0)lea rand==se sal*ea$a in sti*a adresa segment curenta, ca sa stiu unde sa ne intoacem, si se incarca Bumatate din *ectorul de intrerupere "Bumatatea ce presupune adresa segment a procedurii de raspuns#+ ) daca acest numar"6tip7# e.ista sau, altfel, se incarca automat adresa segment cu procedura de raspuns + ) se sal*ea$a in sti*a adresa efecti*a curenta si apoi se incarca adresa efecti*a din *ectorul de intrerupere "Bumatatea inferiora#, calculata sau implicita daca acest numar nu e.ista in formatul instructiunii9 obs! INT corespunde *ectorului de tip 19
Dalte intrerueri $oftware ! JINTO "interact if o*erflo# ! dedicata situatiei cand tin seama de depasirea unei operatii aritmetice% aceasta intrerupere corespunde *etorului de tip 29
JIR(T "return after interact# ! intoarcearea din procedura de raspuns%
'e a$emenea7 de o#$er%at la in$tructiunea de imartire ca a%em o intreruere $oftware la miJloc666 ;IV C "impartire la 67#! *ectorul de tip 9
A*em intreruperi softare re$er*ate 9 'rimul Kb il lasam neocupat fiindca *om a*ea tabela de *ectori 9
;imensiunea temporala a ar5itecturii de microprocesor de u$ general
8om a7orda urmatoarele aspecte:
1. ;esfasurarea in timp in ca$ul unui procesor CI&C clasic "fundamentele CI&C#+ 2. Imbunatatirile aduse pentru microprocesoarele CI&C de generatia a 1)a+ &. Modul in care e.ecutia 'I'(LIN( poate fi intar$iata din moti*e obiecti*e "situatiile cand C'I-, de ce3# Q la RI&C% D1. Un nucleu CI&C! de$fa$urarea in tim deinde de comle9itatea in$tructiunii + isi imparte e.ecutia in cicluri masina "M-,M%%% Q un grup de actiuni elementare ce re$ol*a ce*a, precum :(TCP# si stari "T-, T%%%#% Numar mic de cicluri masina, combinate in di*erse feluri putem reali$a di*erse instructiuni% exemple de cicluri masina" ):(TCP "6M-7# ) inseamna ca ciclul masina M-, *a fi ciclul masina de :(TCP 9 )decodifica+ )prelucrare de date+ )citeste din memorie+ )scrie in memorie+ etc% :ie o masina CI&C, cu urmatoarele caracteristici! magistrala de date interna si e.terna pe / biti+ organi$area liniara a memoriei+ adresa fi$ica pe -0 biti+ memorie organi$ata pe octeti+ registre generale pe / biti concatenabile cate doua "R-%%%R0#+ un acumulator pe / biti A+ registru de fanione : pe / biti + un numarator de program 'C+ un indicator de sti*a &'+ un registru inde., I+ un registru de instructiuni , RI, pe / biti+ un registru de date R;, RA si niste registre temporare "AT(M', T(M', AU-, AU#%
) )
AT(M', T(M'! se ocupa cu sincroni$area operatiilor aritmetice si logice din UAL+ AU-, AU ! ele sunt registre ascunse, registre cac5e 9
Pentru fiecare e9emlu reentat7 %om a%ea in %edere urmatoarele a$ecte! -% Ce moduri de adresare sunt folosite in instructiunea propusa3 % Care este formatul instructiunii propuse, cati octeti3 1% 'ropunerea desfasurarii in timp9
I. e9emlu! un simplu transfer intre registre, in interiorul microprocesorului!
la )1! se accesea$a codul instructiunii curente din memoria de program+ se emite un impuls MR(A; "memoria e a*erti$ata ca urmea$a a fi citita#+ multe microprocesoare isi fac cunoscuta starea "rand # , folosit pentru sincroni$are cu restul dispo$iti*elor "apare obligatoriu in prima stare, a primului ciclu masina, se inscrie in R; pe magistrala de date interna#+ la )2! numaratorul de program "'C# este actuali$at si urmea$a sa indice urmatorul octet+ se aduce codul instructiunii din memoria de program in microprocesor "discutate in %-#+ la )&! tipic ciclului masina de :(TCP, codul este adus in RI, un registru care primeste codul si atat "nu)l *edem, nu)i atribut de ar5itectura# + la ):! urmea$a decodificarea + microprocesorul acum stie ce are de facut + copiem din R1 in T(M' + registrele interne din microprocesor sunt reali$ate fi$ic ca o mica memorie RAM+ la )?! folosim un registru tampon + de ce )EMP3 Q trebuie sa defineasca conditii !sa nu fie atribut de ar5itectura+ trebuie sa am acces de pe magistrala interna de date $e o#$er%a e de$enul de $u$ ca )EMP e le/at de ma/i$trala6 . JA*and in *edere sc5emele bloc functionale din capitolul cu preci$arile facute in acest capitol si principiile masinii Von Neumann, de$fa$urarea in tim urmare$te minimiarea timului de e9ecutie 7in conditile date6 Conditiila date inseamna principiile masinii Von N(UMANN, sc5emele bloc functionale stabilite si preci$arile atributelor de ar5itectura si de structura pre$entate% O masura importanta ca sa atingem scopul respecti*! de a incerca sa indeplinim mai multe actiuni elementare intr)o stare 9 Princiii! )putem a*ea mai multe actiuni elementare intr)o singura stare daca nu mai mult de o actiune elementara foloseste magistrala interna de date+ )intr)o singura stare pot fi efectuate succesi* mai multe actiuni elementare daca este e*ident ca niciuna dintre ele nu *a dura cat o perioada de TACT%
Con*entie! ;aca am astfel de formule pe acelasi rand! actiuni elementare simultane% "precum T# ;aca am astfel de formule una dupa alta! actiuni elementare succesi*e% "precum T-#
o#$! + actiune elementara = un set de comen$i trimise de la UC "unitatea de control# spre di*erse blocuri + semnale de *alidare < selectie trimise di*erselor componente ale procesorului% 3iecare formula din e9emlu rereinta o actiune elementara6
'entru astfel de actiuni , stabilim niste reguli ! a actiunile $ucce$i%e ! tre#uie $a duree $uficient de utin entru a $e incadra intr-o erioada de )AC) actiunile com#inationale-decodificarea 7 actiuni ele mentare in interiorul microroce$oruui # actiunile $imultane! utem a%ea una $au mai multe actiuni elementare $ucce$i%e daca cel mult una din ree$cti%ele actiuni elementare afecteaa ma/i$trala interna de date
Ce tre#uie a%ut in %edere6 1. adresare implicita in registru, si pentru sursa si destinatie+ o copiere simpla9 2. - octet "datorita 'C)ului#%
II. in cadrul unui alt e9emlu! a*em o adunare in interiorul microprocesorului, pe / biti + utili$area acumulatorului este obligatorie "cand declaram ca a*em un acumulator dedicat ) automat instructiunea *a arata cum se pre$inta mai Bos#!
la M1! T-, T, T1 si o parte din T2 se obser*a ca sunt identice 7 deoarece orice in$tructiune incee cu 3E)CH SI 'ECO'E rinciiu *ON NEUMANN7 $e intamla la toate in$tructiunile7 toate ince a$a666 ca o $inta9a
la ):! dupa decodificare facem 2 actiuni $imultan acum, nu una9 pentru adunare trebuie sa a*em operan$ii in T(M' si AT(M'9 )EMP afecteaa ma/i$trala interna de date7 A)EMP nu6 uita-te e de$en6 la M2! in mod parado.al se declansea$a un nou ciclu masina care lasa starea Tnefolosita9 astfel" ) a*em de fapt 2 stari, economisim o stare din + "e.ecutia PIPE+INE# ) cele instructiuni pot fi suprapuse partial+ ) orice stare in cerc accesea$a magistrala interna de date " o ocupa#+ nu e.ista pe aceeasi *erticala9 ) e.ecutia lui n=1 se reali$ea$a dupa 2 stari9 ;e remarcat ca $uraunerea nu e$te uniforma7 entru ca in$tructiunea nu $e de$fa$oara uniform9 == &U'RA'UN(R( 'ARTIALA &I N(UNI:ORMA%
Ce tre#uie a%ut in %edere6 1. adresare implicita in registru, si pentru sursa si destinatie+ o copiere simpla9 2. - octet "datorita 'C)ului#%
III. in cadrul unui alt e9emlu! tot o adunare, doar ca de aceasta data iesim din microprocesor+ al )lea operand este in memoria de date la adresa aflata in perec5ea R, R0+ ce *edem este o adresare indirecta, parante$ele sunt un pointer !
la M1! T-, T, T1 sunt la fel din nou9 la T2! decodificam si AT(M' primeste *aloarea acumulatorului "pregatim primul operand in AT(M'9#+ • •
•
la M2! la )1! cite$c din memoria de date> furniam adre$a oerandului $i-l acce$am> la )2! il aduc din memoria de date in microroce$or> la )&! il re/ate$c entru adunare. la M&! relucrarea datelor6 &7ser*atii !
- comle9itatea e mai mare mai multe $tari7 deci tim mai mare> - utem face $i aici o $uraunere7 dar ca$ti/ul de tim e$te mai mic aici economi$im o $tare din F 6. Ce tre#uie a%ut in %edere6 -% adresare indirecta prin registru % - octet "datorita 'C)ului#%
I*. in cadrul unui alt e9emlu! o instructiune comple.a, cu 2 cicluri masina si -1 stari9
la M1! un 3E)CH ur7 ca-n caurile anterioare T-, T, T1 la fel ca e.emplele anterioare, iar la T2 doar decodifica+ •
la M2! citim din memoria de program primul octet+ la M&! citim din memoria de program al doilea octet+ Dambii operan$i ii ducem in niste acumulatoare9 citim din memoria de program in M, M1% la M:! asamblam octetii sa forme$e o adresa, accesam memoria de date9 JActiuni elementare, formal identice, cu semnificatii diferite! )T din M- !aduc codul+ )T din M, M1 !aduc o adresa+ )T din M2 ! aduc un operand%
Ce tre#uie a%ut in %edere6 -% adresare directa
*. in cadrul unui alt e9emlu! un $alt neconditionat cu adre$are directa7 unde ne a$tetam $a folo$im o in$tructiune cu & octeti
M17 M27 M& la fel ca-n e9emlul anterior6 M: inscrierea acestei adrese in RA inseamna de fapt saltul , accesam memoria de program, nu de date9 adresa din AU17 AU2 "registre tampon# folosite sa aducem adresa operandului 9 'C actuali$at ulterior9 JM2 poate fi suprapus cu o instructiune urmatoare pentru ca saltul inseamna inceputul unei noi instructiuni si se pot suprapune %
Ce tre#uie a%ut in %edere6 -% salt cu adresare directa
% 1 octeti "un octet de cod si octeti de adresa#%
#oncluii caracteristice desfasurarii in timp pentru un procesor #IS# clasic: 1 de$fa$urarea in tim $e #aeaa e rinciiile *ON NEUMANN7 e $c0eme #loc re$ta#ilite $i cu reciarea a#$lut nece$ara a unor anumite atri#ute de ar0itectura $i de $tructura> 2 urmare$te o minimiarea a timului de e9ecutie7 in conditiile date> & caracteri$tica /enerala a de$fa$urarii in tim e$te neuniformitatea numarul de $tari %ariaa in functie de comle9itate in$tructiunii> : entru minimiarea timului $-a incercat $uraunerea a unor actiuni elementare7 dar $i $uraunerea unor actiuni dintr-o $ec%enta> ? $uraunerea in$tructiunilor e$te o$i#ila datorita unui numar mic de $tari7 identic7 la inceutul fiecarei in$tructiuni incat ana la urma a%em o $uraunere neuniforma $i ne$i$tematica .
CR(&T(R(A VIT(H(I ;( ((CUTI( '(NTRU CI&C (VOLUAT( Incepand cu generatia a 1)a de procesoare CI&C pana in $ilele noastre s)au adus atribute de ar5itectura in plus % "de asemenea are in *edere sc5ema bloc functionala din subcapitolul 1%-) *e$i slide#% In respecti*ul capitol a*em in *edere + caracteristici fundamentale! a# sau mai multe unitati cu functii distincte "putem lucra in par alele, deci poate *ite$a *a creste, dubla etc% ! U( "prelucrea$a operan$i dar nu interfatea$a cu restul#, UIM + b# e.istenta conceptului de 6coada de instructiuni7 ! UIM " rolul de a aduce din memorie instructiunea, poate aduce c5iar mai multe fiindca are o 6coada de instructiuni7 la dispo$itie, care trebuie sa fie mereu plina))procesorul nu mai asteapta, *ite$a poate creste9# + timpul nu scade din cau$a neuniformitatii instructiunii9
:ie un procesor CI&C clasic conform capitolului % Are de efectuat o sec*enta de instructiuni care constau in cicluri masina ca mai Bos% Alegerea este intamplatoare%
&uccesiunea de instructiuni din punct de *edere al ciclurilor masina este intamplatoare% &a *edem ce fac U(, UIM si ?U&"magistrala#!
Jfa$a de prelucrare "in U(# ) UIM in acelasi timp aduce urmatoarea instructiune si inca una cat timp U( inca prelucrea$a Q alta fa$a de prelucrare facute de U( ) UIM nu poate face :(TCP, deoarece in momentul in care instructiunea - s)a terminat, trebuie sa se scrie re$ultatul in memorie, apoi ia instructiunea urmatoarea , se termina fa$a de prelucrare , apoi a*em ne*oie de ce*a din memorie "citire# , se aduce apoi alta instructiune, alta fa$a de prelucrare etc%
Concluii! 1 CISC7 inceand cu /eneratia a &-a7 au noi atri#ute de ar0itectura care ermit cre$terea %iteei de e9ecutie in tim> 2 cre$terea %iteei de e9ecutie nu e$te direct roortionala cu numarul de unitati care lucreaa in aralel7 din caua neuniformitatii in$tructiunii fiind CISC> %itea nu e du#la6 > de$fa$urarea in tim ermite $uraunerea $i$tematica dar tot neuniforma a in$tructiunilor dintr-o $ec%enta> & rin ace$t ti de functionare $e atin/e limita ocuarii ma/i$tralei de date a microcalculatorului.
;(&:A&URAR(A IN TIM' LA 'ROC(&OAR(L( RI&C 'e$fa$urarea in tim la RISC are urmatoarele remi$e! in$tructiunile $unt uniforme in tim7 toate dureaa acela$i numar de $tari> ace$t lucru e$te o$i#il deoarece! prelucrarea operan$ilor este reali$ata cablat+ e.ista multe registre interne ceea ce permite accesarea memoriei in mult mai putine oca$ii+ a*em putine instructiuni, codificarea este simpla si rapida+ a*em putine moduri de adresare, ea este simpla si rapida+ format identic ca numar de octeti pentru toate instructiunile si putine tipuri de format+ • •
• • •
Acestea duc la simplificarea unitatii de control care este cablata si nu microprogramata% Toate aceste premise permit desfasurarea uniforma si rapida% Uniformitatea permite aplicarea 'I'(LIN(%
'e$fa$urare PIPE+INE, fie cu etaBe "N=#, care inseamna ca orice instructiune durea$a stari9 &emnificatia fiecareia e diferita, depind de tipul instructiunii9 E)emplu: fie o instructiune RI&C cu stari% N= • • •
&-! 3E)CH &! 'ECO'E &1, &2, &! depind de tipul de instructiuni, de feluri! ) pentru instructiuni de prelucrari de date+ S&- cite$te oerand> S:- relucrarea> S?- $crie reultat. ) pentru instructiuni de accesare a memoriei de date si
n7 n=17n=2%%%timpul $17$27$&%%% starile, in numar L-:7L-&%%%re$ultatul Jin fiecare moment de timp a*em cate un re$ultat+ fiecare instructiune durea$a o stare9 "CPI"1 Q doar la RI&C#
O5SER*A)IE! salturile sunt o pro7lema( :ie o succesiune de instructiuni oarecare, RI&C!
La n=: a*em re$ultatul saltului 9 La n=? se e.ecuta instructiunea asupra careia se efectuea$a saltul 9 Ideea ! ace$t mod de de$fa$urare PIPE+INE e$te corect7 'AR reultatul e$te /re$it6 re$tul in$tructiunilor in $tarea n=? $unt reultate /re$ite6
DCorectarea! ;upa salt se introduc niste instructiuni ! NOP "no operation# Q instructiune care nu modifica atributele de ar5itectura == nu $e intamla nimic , n-a%em reultate, iar programul nu se strica9 Timp Timp de 2 stari, se poate obser*a in imaginea urmatoare, ca procesorul sta degeaba!
'rimul re$ultat apare in n=6 &tarile n=?7 n=B7 n=7 n=F rereinta intarieri "C'I -#%
Otimiarea Tntrierilor entru a re%eni e9ecuVia incorectW a $alturilor
Repre$inta optimi$area de la 2 stari la 1 stari9 Drimul rand! se aduna continutul lui r- la continutul lui r si re$ultatul se depune in r1+ Dal doilea rand! se face un sir logic intre continutul lui r si continutul lui r0 si re$ultatul se depune in r+ Numarul de NO')uri care trebuie adaugat depinde de structura structura ben$ii rulante9
Intarieri din caua acce$ului in memorie Varianta incomoda!
+OA' r17 mem A'' r&7 r27 r1 ) continutul lui r- nu e cel corect9
Varianta comoda!
+OA' r17 mem NOP NOP ... NOP A'' r&7 r27 r1
0umarul de instructiuni 0+1 depinde de" a $tructura #enii rulante> # numarul de $tari nece$are acce$arii memoriei>
Intarieri din caua deendentei datelor de utiliarea re/i$trelor A'' AN'
r17 r27 r rB7 r17 r&
Varianta incomoda!
Varianta comoda!
ADD NOP NOP AND
r1, r2, r r, r1, r3