Sunteți pe pagina 1din 8

Aspecte generale privind microprocesoarele organizate pe 16 bii

La elaborarea arhitecturii microprocesoarelor organizate pe opt bii, proiectanii au avut n


vedere aproape n mod exclusiv aspecte hardware. S-a urmrit deci ca prin folosirea
microprocesorului s se obin o reducere ct mai mare a numrului de componente electronice
integrate pe scara joas i medie. Este adevrat ca anumite soluii, adoptate n aceast etap, i-au
pstrat n mare msur valabilitatea i n cadrul microprocesoarelor dezvoltate ulterior. n acest
sens se pune n eviden n primul rnd modul de comunicare cu echipamentele periferice. S-au
dezvoltat interfee specializate, programabile care au fost preluate i n generaia
microprocesoarelor pe 16 bii. n curnd ns microprocesoarele pe opt bii au artat c prezint
limitri de principiu n atingerea unor performane superioare i n primul rnd datorit
comunicrii cu memoria principal care se fcea pe o magistral de date limitat la opt bii. S-au
fcut atunci aprecieri potrivit crora generaia urmtoare de microprocesoare va produce o
adevrat revoluie. n arhitectura microprocesoarelor pe 16 bii nu apare de fapt o revoluie
datorit dezvoltrii circuitelor VLSI, aa cum se anticipase, ci se preiau concepte folosite la
minicalculatoare, n fond reflectndu-se n mare msur istoria dezvoltrii calculatoarelor mari.
Acelai lucru se remarc i pe partea software n sensul c la nivelul microprocesoarelor s-au
materializat preocuprile privind implementarea limbajelor de programare de nivel nalt, a
compilatoarelor, programe relocatabile s.a.
Organizarea magistralelor
La microprocesoarele pe 16 bii trstura fundamental din acest punct de vedere este
faptul c magistrala de date a fost extins la 16 bii. n acelai timp, apare i o extindere
corespunztoare a magistralei de adrese pentru a acoperi un spaiu de cel puin un megaoctet.
Magistrala de date poate s apar complet separat fa de magistrala de adrese sau acestea pot fi
multiplexate. n aceast ultim soluie, aceeai magistral este folosit att pentru adrese ct i
pentru date, reducndu-se astfel numrul de terminale externe ale microprocesorului. n cazul
magistralelor multiplexate se impune introducerea de registre pentru reinerea informaiei de
adres. n acest scop sunt prevzute semnale prin care se precizeaz natura informaiei poziionat
la un moment dat pe magistral.
Comunicarea cu memoria se poate face la nivelul unui cuvnt de 16 bii, dar s-a meninut
i posibilitatea ca schimbul de date ntre unitatea central i memorie s se poat face la nivel de
octet. n acest scop s-au prevzut semnale prin care se precizeaz dac schimbul se face la nivel de
cuvnt sau de nivel octet.
Registrele interne
Prezena registrelor generale n arhitectura unui microprocesor vizeaz n primul rnd
creterea vitezei de procesare (execuie) a instruciunilor. Datele ce sunt utilizate n operaii
imediat urmtoare nu mai sunt depuse n memorie ci sunt reinute temporar n registrele interne.
La microprocesoarele pe 16 biti crete numrul registrelor interne i mai ales se lrgesc
considerabi1 posibi1ittile de prelucrare a informaiilor stocate n aceste registre: la nivel de
bit, octet, BCD, cuvnt, cuvnt dublu sau quadruplu cuvnt. Se urmrete a se da un caracter
general valabil registrelor interne, n sensul ca acestea s poata interveni n orice tip de

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

fig.1.1.a, referitor la prelucrarea instruciunilor. Procesul de prelucrare a fost divizat n cinci


subprocese: extragerea instruciunii (F), decodificare (D), calculul adresei efective (A), extragerea
operandului (O) si execuia propriu-zis a operaiei (E).
Extragere
instruciune
(F)

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)

BUS INTERFACE UNIT


(BIU)

Calcul adres
operand, execuie
instruciune (E)

EXECUTION UNIT
(EU)

Fig.1.2 Prelucrarea instruciunilor la 8086


Administrarea memoriei
Memoria operativ a constituit resursa principal a unor calculatoare i continu nc s se
menin n aceast poziie. Din punctul de vedere al unitii centrale n raport cu memoria
operativ, se manifest dou cerine. Una se refer la faptul c schimbul de informaii ntre
unitatea central i memorie ar trebui s se fac la o vitez aa de mare nct memoria s nu
intervin ca un factor limitativ n numrul de instruciuni executate ntr-o unitate de timp de ctre
unitatea central. Din fig. 1.3 rezult c dac, de exemplu, ciclul memoriei este de 100
nanosecunde i c o instruciune se extinde pe dou cuvinte, ce sunt extrase consecutiv din
memorie, n unitatea central, se pot prelucra maxim cinci milioane de instruciuni ntr-o secund.
A doua cerin vizeaz capacitatea de stocare a memoriei operative. Creterea continu a
complexitaii aplicaiilor ce opereaz pe un mare volum de date conduce la necesitatea de a
dispune de o memorie operativ cu o capacitate de stocare tot mai mare, n cazul ideal de
capacitate practic nelimitat, pentru utilizator. Aceste dou cerine privind memoria, de vitez si
capacitatea de stocare, se soluioneaz printr-un compromis, ntruct problemele tehnologice ce
apar sunt greu de rezolvat.
Memoria
operativ
Canalul de
legtur
Unitatea
central

Fig. 1.3 Pentru unitatea central apare o strangulare pe canalul


de legtur cu memoria operativ
La microprocesoarele organizate pe 16 bii n canalul de legtur cu memoria operativ
(fig. 1.3), schimbul de date se face pe o magistral ce cuprinde 16 linii. Fa de microprocesoarele
organizate pe opt bii, debitul de transfer al datelor pe canalul de legatur cu memoria se dubleaz.
n ceea ce privete capacitatea de stocare a memoriei operative la microprocesoarele pe 16 bii,
magistrala de adrese de asemenea a fost extins fa de microprocesoarele pe opt bii. Pentru a
acoperi un spaiu de adresare de un megaoctet, magistrala de adrese trebuie s cuprind 20 de linii.

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

Procednd astfel rezult c adresele folosite de un programator, respectiv cele generate n


cadrul unui program pentru localizarea unei mrimi vor fi adrese logice. n programele
utilizatorilor, niciodat nu vor aprea adrese fizice. Mai rezult c programele utilizator i datele
asociate acestora se gsesc deci n spaiul adreselor logice i nu depind de capacitatea memoriei
operative fizic prezent intr-un sistem. Exista cteva modalitti de organizare a spaiului adreselor
logice i de formare a adreselor logice. Se va arta c o continuitate n adresele logice nu conduce
la necesitatea de a avea i o continuitate n adresele fizice.
SPAIUL ADRESELOR
LOGICE

ADRESE
LOGICE

SPAIUL MEMORIEI
FIZICE

Mecanismul
de
transpunere

ADRESE
FIZICE

Fig. 1.4 Exemplificarea trecerii de la adrese logice la adrese fizice


n fig. 1.4 se pune n eviden faptul c prin creerea a dou spaii n ceea ce privete
adresele, unul logic i cellalt fizic, este necesar s apar un mecanism prin care s se asigure o
coresponden biunivoc ntre cele dou tipuri de adrese. n cazul n care se ia n considerare c
n sistem se ruleaz programele a doi utilizatori, notai cu A si B, fiecare avnd propriul spaiu al
adreselor logice atunci din fig. 1.5 rezult c mecanismul de translatare trebuie s asigure
corespondena necesar ntre cele dou tipuri de adrese pentru fiecare din cei doi utilizatori.
Spaiile adreselor logice corespunztoare celor doi utilizatori de regul nu sunt egale ca
mrime. n principiu, mecanismul de translatare a adreselor se poate realiza prin procedee
exclusiv software, hardware sau printr-o combinare a acestora.

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