Documente Academic
Documente Profesional
Documente Cultură
operaie, eliminndu-se caracterul specializat atribuit unor registre (acumulator, numai pentru
date sau numai pentru adrese, etc). Se remarc de asemenea lungimea registrului de stare
program n care pe lnga indicatorii de condiie existeni si la microprocesoarele pe opt bii,
apar indicatori suplimentari.
Faciliti pentru ntreruperi
La microprocesoarele pe 16 bii se regsesc facilitile prevzute pentru generarea
ntreruperilor de la microprocesoarele pe opt bii cu meniunea c sporesc posibi1itile
pentru tratarea acestora i acest proces se desfoara n modul de operare "supervizor".
O caracteristic inexistent la microprocesoarele pe opt bii, dar prezent la cele pe 16
bii, se refer la ntreruperile de tipsoftware. Spre deosebire de ntreruperi1e externe care
apar aleatoriu, fiind dependente de momentul apariiei unui eveniment ce are loc n exteriorul
microprocesorului, ntreruperile provocate pe cale software sunt sincrone. Ele se produc
ntotdeauna atunci cnd are loc execuia unor instruciuni anume prevzute n aceste scopuri.
Moduri de operare
Majoritatea microprocesoarelor de 16 i 32 bii pot sa funcioneze fie n modul denumit
"utilizator", fie n modul denumit "supervisor". i functie de firma productoare, cele dou
moduri se regsesc sub alte nume spre exemplu "normal" si respectiv "sistem". Fiecare din
aceste dou moduri de operare este precizat prin starea unui bit dintr-un registru intern. In
fiecare ciclu de magistral, microprocesorul informeaz celelalte componente din sistem
asupra modului de operare n care el funcioneaz.
Acest mecanism bazat pe dou moduri de operare asigur securitatea sistemului.
Programele uti1izatorilor cureni se execut n modul de operare "utilizator" i prin aceasta li
se permite accesul numai la zonele proprii alocate pentru cod i date. Sistemul de operare se
execut nsa n modul "supervizor" i are acces la toate resursele sistemului. Un numr de
instruciuni care au efecte importante asupra sistemului, numite "instruciuni privilegiate", pot
fi executate numai cnd microprocesorul funcioneaz n modul supervizor. n aceast
categorie intr instruciunile de intrare/ieire, instruciunile de validare i invalidare a
ntreruperilor, instruciunile prin care se modific coninutul registrului de stare i alte
instruciuni. S-au prevzut instruciuni prin care dintr-un program utilizator s se poat trece
ntr-un mod controlat n modul supervizor. Trecerea din modul de lucru supervizor n modul de
lucru utilizator poate fi facut prin executarea unor instruciuni privilegiate ce modific starea
acelui bit indicator din registrul de stare care precizeaz. modul de lucru al microprocesorului.
Prelucrarea instruciunilor
O caracteristic arhitectural specific microprocesoarelor pe 16 bii este extragerea
anticipat a instrucunilor i execuia acestora n regim "pipeline" ceea ce n limba romn se
traduce adesea prin "band de asamblare''. Procedeul are la baz o idee simpl. Un proces de
calcul mai complex se subdivde n subprocese de complexitate mai redus, fiecare subproces fiind
executat ntr-o subunitate hardware specializat. Subunitile hardware se succed una dup alta,
nct se poate spune c formeaz o conduct sau, o band de asamblare. Prima subunitate
recepioneaz continuu informaia la intrare, o prelucreaz conform cu atribuiile ce i-au fost
ncredinate i pred la ieire rezutatul ntr-un anumit moment. eirea primei subuniti constituie
intrare pentru unitatea a doua .a.m.d. La un moment dat, conducta este "plin" i toate
subunitiile hardware ce o compun funcioneaz simultan. Acest principiu este exemplificat n
Calculul adresei
efective
(A)
Decodificare
instruciune
(D)
Extragere
operand
(O)
Execuie
instruciune
(F)
a)
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15
Instruc-iunea 1
F1
D1 A1 01 E1
F2
Instruc-iunea 2
D2 A2 02 E2
F3
D3 A3 03
F4
Instruc-iunea 3
Instruc-iunea 4
E3
D4
A4 04
E4
b)
Fig. 1.1 Prelucrarea pipeline a instruciunilor
n figura 1.1.b, s-a luat n considerare procesarea a patru instruciuni i rezult pentru
acestea c sunt necesare numai cinsprezece uniti de timp, fa de douzeci uniti de timp cte ar
fi necesare dac nu s-ar apela la prelucrarea tip pipeline. Repartizarea n timp a subproceselor s-a
fcut avnd n vedere c n timpul operaiei de decodificare a codului (D1), n principiu memoria
poate fi adresat (pentru extragerea offsetului , a datelor imediate etc) i prin urmare nu se poate
suprapune n timp cu extragerea codului urmtoarei instruciuni (F2) . Din aceleai motive, D2 nu
poate apare suprapus n timp cu O1. n mod practic, problema este mult mai complex dect
rezult din cele prezentate mai sus. La mparirea unui proces mai complex n subprocese mai
simple, n vederea execuiei acestora n regim pipeline, trebuie avute n vedere mai multe criterii
pentru a obine rezultatele dorite, att ca performan n execuie, ct i ca pre de cost.
O alt caracteristic arhitectural a microprocesoarelor pe 16 bii, o prezint extragerea
anticipat ("look-ahead") a instruciunilor. La baza acestui mecanism se gseste o memorie
tampon n care se ncarc un numr de instruciuni i operanzi din memoria principal n avans
fat de instruciunea curent. Acest proces se declaneaz n timpul execuiei unei instruciuni,
dac rezult c magistrala de legtur cu memoria principal, pentru anumite perioade de timp,
este neocupat. Procedndu-se n acest mod, numrul de instruciuni prelucrate ntr-o secund
crete, ntruct unele instruciuni vor fi preluate direct din memoria tampon intern, fiind eliminat
deci timpul relativ lung de aducere din memoria principal.
La microprocesorul 8086, pentru procesarea instruciunilor, s-au prevzut dup cum
rezult din fig. 1.2, dou uniti. Prima dintre ele notat prescurtat BIU ("Bus Inter-face Unit")
care asigur interfaa cu memoria, este nsrcinat cu realizarea subprocesului de extragere a
instruciunilor i operanzilor din memorie i stocarea acestora ntr-o memorie tampon a crei
capacitate s-a ales de ase octei. A doua unitate, notat prescurtat cu EU ("Execution Unit") este
nsrcinat cu decodificarea, calculul adresei efective, preluarea operandului de la BIU i cu
execuia propriu-zis a instruciunilor pe care le preia din memoria tampon a BIU. Tot unitatea EU
are sarcina de a transmite spre BIU datele ce trebuie stocate n memorie.
Extragere
instruciune
(F)
Memorie
tampon
(6 octei)
Decodificare
(D)
Calcul adres
operand, execuie
instruciune (E)
EXECUTION UNIT
(EU)
Extinderea cu mult peste aceast limit a magistralei de adres nu se poate face datorit faptului c
intervine condiia de limitare a numrului total de terminale.
n stabilirea arhitecturii microprocesoarelor cu 16 bii, s-a avut n vedere necesitatea
existenei unor mecanisme prin care s se asigure o administrare eficient a memoriei.
Spaiul adreselor logice
De regul, la microprocesoarele pe opt bii adresa generat n timpul execuiei unui
program i poziionat pe magistrala de adrese de ctre microprocesor, se folosete direct n
adresarea unei locaii din memorie sau a unui dipozitiv de intrare/ieire. La microprocesoarele pe
16 bii se introduc noiunile de adres logic i de adres fizic. Adresele generate de un program
sunt considerate adrese logice i totalitatea acestora formeaz spaiul adreselor logice. Totalitatea
adreselor ce corespund memoriei (sau dispozitivelor de intrare/ieire) formeaz spaiul adreselor
fizice. Cele dou spaii, al adreselor logice i al adreselor fizice, pot s nu fie egale. Arhitectura
microprocesoarelor pe opt bii nu a fost conceput a suporta acest mod de tratare a adreselor. La
aceste microprocesoare, adresa logic coincide cu adresa fizic. La microprocesoarele pe 16 bii
este necesar s existe un mecanism de conversie a adreselor prin care adresele logice s fie
translatate (convertite) n adrese fizice. Adresa instalat de microprocesor pe magistrala de adrese
poate s coincid cu adresa fizic sau poate fi diferit de aceasta. Astfel la microprocesorul 8086,
mecanismul de translatare este inclus n microprocesor i adresa instalat pe magistrala de adrese
se folosete direct n adresarea memoriei.
De regul, la microprocesoarele pe opt bii, spaiul adreselor este considerat "liniar" n
sensul c acesta ncepe de la adresa cu valoarea zero i continu cu valori unu, doi i aa mai
departe pna la valoarea maxim ce rezult din numrul total de bii cu care se exprim adresa.
Acest mod de organizare al spaiului de adresare prezint unele dificulti, atunci cnd cteva
programe trebuie s-i mpart spre o folosire eficient aceeai resurs a sistemului, respectiv
atunci cnd aceste programe i zonele de date asociate trebuie s fie protejate unele fa de
celelalte. Dac nu se dispune de un mecanism de administrare a memoriei, atunci aceste sarcini
trebuie s fie preluate de ctre programele utilizator.
Una din cerinele fundamentale pentru o administrare i alocare eficient a memoriei o
reprezint distincia ce trebuie fcut ntre spaiul adreselor logice i spaiul adreselor fizice,
respectiv independena adreselor logice de adresele fizice. Aceast cerin este totodat i o prim
condiie n realizarea sistemelor cu memorie virtual. n cazul n care spaiul adreselor logice este
mai mare dect spaiul fizic de memorare oferit de memoria principal atunci se apeleaz
conceptul de memorie virtual. n acest caz spaiul logic este n corespondent att cu spatiul fizic
oferit de memoria principal ct i cu spaiul oferit de memoriile externe pe discuri. Programatorul
n aceste condiii i elaboreaz programele fr a fi constrns de capacitatea de stocare oferit de
memoria principal. La realizarea unui sistem cu memorie virtual se va introduce un mecanism
care s constate automat dac elementul adresat gsete n memoria principal sau n memoria
auxiliar. n cazul c accesul vizeaz un element ce nu se gasete n memoria principal, atunci
execuia instruciunii este suspendat i intervine sistemul de operare ce va aduce elementul
respectiv n memoria principal. Dup executarea acestor transferuri se revine la programul aflat
n execuie curent prin reexecuia instruciunii anterior suspendat.O caracteristica important ce
trebuie s existe n arhitectura microprocesorului pentru a se putea realiza o memorie virtual, se
refer la posibilitatea c execuia unei instruciuni s fie ntrerupt nainte ca aceasta s fie
complet executat. Dup aducerea elementului adresat din memoria extern n memoria
principal, instruciunea respectiv va fi reexecutat. Se mai face precizarea c transferul ntre
memoria principal i cea extern nu se face la nivelul unui singur element ci pe blocuri de
elemente (segmente sau pagini) .
ADRESE
LOGICE
SPAIUL MEMORIEI
FIZICE
Mecanismul
de
transpunere
ADRESE
FIZICE
ADRESELE
LOGICE ALE
UTILIZATORULUI
A
Mecanismul
de
translatare
SPAIUL
MEMORIEI
FIZICE
Pentru A
ADRESELE LOGICE
ALE
UTILIZATORULUI
B
Pentru B
Fig. 1.5 Exemplificarea trecerii ntr-un singur spaiu fizic de memorie a adreselor logice
generate a doi utilitori
Pentru utilizator este important modul n care este structurat spaiul adreselor ntruct are
influen direct asupra scrierii programelor. Spaiul adreselor logice se consider liniar, respectiv
cu o singur dimensiune, atunci cnd adresele logice se exprim prin numere ntregi 0,1,...n. Un
astfel de spaiu de 1 Moctet este redat n fig. 1.6.a. Deoarece ntr-un spaiu liniar accesul se face
utiliznd un singur numr, calculele aritmetice ce vizeaz determinarea de adrese se aplic asupra
adreselor logice n ntregime, adic ca i cum acestea ar reprezenta date de acelai tip i aceiai
mrime.
Un al doilea mod de structurare este cunoscut sub numele de spaiul segmentat al adreselor
logice. Un spaiu segmentat se compune dintr-un numr de zone liniare numite segmente si toate
adresele din cadrul unui segment dat sunt relative la adresa de nceput a segmentului. Localizarea
unei date ntr-un spaiu segmentat rezult ca se poate face dac se cunoate numrul segmentului
i adresa (deplasamentul, offsetul) n cadrul segmentului. ntruct localizarea unei date comport
cunoaterea a dou mrimi, spaiul segmentat este numit cu dou dimensiuni. n fig. 1.6.b se arat
un spaiu segmentat de 1 Moctet. La microprocesorul 8086 s-a optat pentru organizarea
segmentat, segmentul avnd dimensiunea maxim de 64 Koctei.
Tehnica pentru formarea adreselor segmentate este practicat la 8086. n acest caz, numai
o parte din adresa logic este inclus n formatul instruciunii i anume un deplasament exprimat
prin 16 cifre binare prin care se slecteaz o locaie din cadrul unui segment avnd capacitatea
maxim de 64 Koctei. Numai patru segmente pot fi adresate direct n orice moment. Cele patru
segmente sunt date n fig.1.8 n care se exemplific modul de localizare a unei locaii. Selecia
segmentului nu se face explicit ntr-un cmp din instruciune, ci rezult implicit pe baza unor
reguli prestabilite.
SPAIUL SEGMENTAT AL
ADRESELOR LOGICE
SPAIUL LINIAR AL
ADRESELOR LOGICE
0000016
0000016
ADRESA
LOGIC
19
0
ADRESA
LOGIC
Y
ELEMENTUL
ADRESAT
OFFSET X
FFFFF16
SEGMENT
NR.1
64 K0
SEGMENT
NR.11
15
SEGMENT
NR.0
64 K0
FFFFF16
SEGMENT
NR.n
64 K0
SEGMENT
NR.15
64 K0
a)
b)
Fig. 1.6.(a) Spaiul liniar, al adreselor logice pentru 1 MO i (b) spaiul adreselor logice
pentru 1MO exprimat prin NUMR SEGMENT i DFSET
ADRESA LOGIC
SELECIA
IMPLICIT A
SEGMENTULUI
PTR. DATE
OFFSET
X
15
SEGMENTUL PTR.
COD
0000
FFFF
SEGMENTUL PTR.
DATE
0000
SEGMENTUL PTR.
STIV
0000
FFFF
SEGMENTUL PTR.
SUPLIMENTAR
0000
FFFF
Fig. 1.8 Spaiul adreselor logice de 256 Koctei sub forma de segmente la INTEL 8086