Sunteți pe pagina 1din 10

Microprocesorul

noiembrie 13, 2011


Microprocesorul, uneori numit i procesor, este unitatea central de prelucre a informaiei (U.C.P.
sau n englez: CPU) a unui calculator sau a unui sistem electronic structurat funcional (care
coordoneaz sistemul) i care, fizic, se prezint sub forma unui circuit electronic integrat IC
cunoscut i sub numele de cip electronic. Reprezint forma structural cea mai compex pe care o
pot avea circuitele integrate. El controleaz activitile ntregului sistem n care este integrat i poate
prelucra datele furnizate de utilizator. Este elementul principal al unui sistem de calcul; cipul
semiconductor, care este plasat pe placa de baz numit motherboard (en), este de obicei foarte
complex, putnd ajunge s conin de milioane de foarte mici transistoare (microtranzistoare).
Microprocesorul asigur procesarea instruciunilor i datelor, att a celora din sistemul de operare al
sistemului, ct i a celora din aplicaia utilizatorului, i anume le interpreteaz, prelucreaz i
controleaz, execut sau supervizeaz transferurile de informaii i controleaz activitatea general
a celorlaltor componente care alctuiesc un sistem de calcul.
Tipuri de microprocesoare / Exemple
Intel 80286
Pe capsula ce este prevzut cu 68 de pini de contact (piciorue, contacte) se afl integrate 134.000
de tranzistoare. Nu exist probleme cu disiparea cldurii, deoarece emisia caloric este mic.
Dispune de magistrale cu 24 de linii de adres i 16 linii de date, fiind un procesor pe 16 bii, att
intern ct i extern, regitrii de memorare fiind dimensionai la 16 bii.
Intel 80386
Este un procesor pe 32 de bii construit cu 275.000 de tranzistoare, i este realizat n tehnologie
CMOS de 1,2 microni. Capsula are 132 de pini, implantarea se face, prin lipire, direct n placa de
baz fr intermediul unui soclu, i nu necesit cooler (ventilator de rcire).
Intel 80486
Intel Pentium
AMD ATHLON
Intel Pentium Pro
Intel P7
Intel Core Solo i Intel Core Duo, cel din urm cu 2 nuclee
Intel Core 2 Solo i Intel Core 2 Duo, cel din urm cu 2 nuclee n tehnologie de 48 nm
Intel Core i3
Intel Core i5 i Intel Core i7, cu 4 nuclee n tehnologie de 45 nm
Intel Atom, n special pentru netbooks
Memorie flash
Memoria (de tip) flash este o memorie electronic, de calculator (sau alt aparat), nevolatil (n care
datele persist i fr alimentare cu energie electric), i care la nevoie poate fi tears i
reprogramat (rencrcat cu date). Flash mai desemneaz i tehnologia folosit la fabricarea
memoriilor de acest tip. Memoriile flash sunt memorii cu acces aleator.
Caracteristici
Memoria flash (uneori numit i Flash RAM) este un tip de memorie nevolatil cu alimentare
constant ale crei blocuri de memorie pot fi terse i programate. Este o variant a memoriei
EEPROM (electrically erasable programmable read-only memory), care, spre deosebire de
memoria flash, este tears i programat la nivel de bit, ceea ce o face mai lent.
Numele de memorie flash vine de la faptul ca cipul este organizat in aa fel nct o operaie de
tergere se face printr o singur aciune sau flash. tergerea este cauzat de fenomenul tunelare
Fowler-Nordheim prin care electronii strpung un material dielectric fin cu scopul de a nltura

sarcina din poarta flotant asociat fiecrei celule de memorie.


Memoria Flash este folosit des pentru a stoca cod de control asemanator BIOS- ului calculatoarelor
personale. Cnd informaia din BIOS trebuie modificat memoria poate fi scris la nivel de bloc
ceea ce o face mai uor de modificat. In schimb , flash ul nu este folositor ca RAM (random
acces memory) deoarece RAM ul este adresat la nivel de byte . Intel ofer o tehnologie flash care
retine 2 biti intr o celul de memorie ceea ce dubleaz capacitatea fara a avea vreo influient
asupra pretului.
Clasificare
Exist dou tipuri de memorie flash: NOR (Not Or) i NAND (Not And). Denumirile se refer la
tipul de poart logic folosit pentru celulele de stocare. NOR nseamn adevrat numai dac
ambele intrri sunt false iar NAND nseamn fals numai dac ambele intrri sunt adevrate.NOR
flash a fost introdusa de Intel in anul 1988 in timp ce NAND de Toshiba in 1989.Cele doua cipuri
lucreaz in mod diferit. NAND are capacitate de stocare mult mai mari decat NAND. Tehnologia
NAND i-a gasit utilitatea in dispozitive care au nevoie de putere mare de stocare a datelor i in
plus stergerea si programarea sa se faca frecvent. MP3 player le , camere digitale si stick uri
USB folosesc NAND. NOR , in schimb , este mai rapid dar i mai scump Un scop important al
producatorilor de NAND este reducerea costului pe bit si marirea capacitaii unui cip astfel incat sa
poata concura cu dispozitive de stocare magnetice ca hard discuri. Noile tehnologii NAND au dus la
un cip mai mic , au micorat voltajul i au marit ciclul de scriere citire.
Memoria flash tip NOR are o speran de via de 10.000 la 100.000 de cicluri de scriere-tergere.
Dei are viteze mici de scriere i de tergere, permite un acces aleatoriu pentru citire i scriere,
fcnd-o adecvat pentru stocarea datelor care nu necesit o actualizare frecvent. O meniune
important care trebuie fcut relativ la circuitele NOR este c la acestea, la livrare, se garanteaz
c toate locaiile de memorie sunt bune i au acelai numr garantat de cicluri de tergereprogramare. Mai mult, n faza de fabricaie se realizeaz un numr destul de mare de locaii de
rezerv, care vor fi utilizate pentru repararea eventualelor locaii cu defecte si producerea astfel a
unui circuit perfect.
Memoria flash tip NAND are viteze de scriere i de tergere mai mari, o mai mare densitate de
memorie, un cost mai mic pe bit i o speran de via mult mai lung, suportnd de aproximativ 10
ori mai multe cicluri de scriere-tergere dect memoria flash tip NOR. Dezavantajul const n
interfaa de intrare-ieire care permite numai un acces secvenial la date. La un circuit NAND Flash,
productorul NU garanteaz c toate locaiile de memorie sunt bune i au acelai numr garantat
de cicluri de tergere-programare. Deasemenea se realizeaz un numr foarte mic de locaii de
rezerv, care pot fi utilizate pentru repararea eventualelor locaii cu defecte, rezultnd o economie
n plus. La un astfel de circuit trebuie s existe un mecanism de detecie a erorilor si de gestionare al
locaiilor defecte, circuitul putnd fi livrat, din considerente economice, cu locaii defecte! Mai mult
este perfect posibil ca unele celule s-i epuizeze resursa de tergere-programare mai devreme dect
altele, pe parcursul utilizrii circuitului. Funcionarea unui NAND Flash este similar altor
dispozitive de intrareieire, cum ar fi i hard-disk-ul pe care acesta dorete s-l nlocuiasc.
Datorit acestei interfee indirecte un sistem de calcul nu poate executa codul memorat ntr-un
NAND Flash dect prin intermediul unui controler de memorie sau al unei maini secveniale
dedicate.
Din punct de vedere practic, al proiectantului de sistem i utilizatorului, cea mai mare diferen ntre
cele dou categorii de circuite este interfaa utilizator. Un circuit NOR Flash este foarte asemntor
din punct de vedere al interfeei cu un circuit EPROM (sau SRAM), avnd linii (magistrale) de
adrese i date dedicate. El poate fi mapat cu uurin, natural, n spaiul de memorie al unui sistem
de calcul. Astfel, sistemul de calcul poate citi n mod natural cod memorat ntr-un NOR Flash i l

poate executa.
Memoria NOR suport acces random pe un byte ceea ce permite sistemului sa ia datele si sa le
execute direct de pe cip in acelai fel cum un PC al luat date dim memoria principal. NOR flash
are o interfat SRAM ce contine suficieni pini de adresa pentru a mapa intregul cip dnd astfel
acces ctre fiecare byte.
Suport software
Spre deosebire de alte circuite de memorie, pentru utilizatorul tehnologiei FLASH exist i o
component software, a crei prezen este obligatorie, mai ales n cazul circuitelor NAND FLASH.
Exist dou nivele diferite pentru suportul software: un nivel de baz pentru operaiile de citire
tergere scriere i un nivel superior, pentru emularea unui hard-disk i gestionarea algoritmilor
specifici tehnologiei FLASH (mrirea duratei de via, uniformizare uzur, optimizare performane,
etc). Pentru a citi informaie i eventual a executa cod dintr-o memorie NOR Flash nu este practic
nevoie de nici un suport software. Pentru a executa ns cod dintr-o memorie NAND este neprat
nevoie de un driver (pe lng hardware-ul suplimentar)! Aceast categorie de drivere poart
denumirea de drivere asociate tehnologiei de memorie MTD (Memory Technology
Driver/Device). Att circuitele NOR ct i cele NAND au nevoie de un driver MTD pentru
operaiile de tergere i scriere. Dac un driver MTD este tot ce e nevoie pentru a terge/scrie un
circuit NOR, la un circuit NAND trebuie s mai existe un suport suplimentar pentru detecia erorilor
de bit i gestionarea blocurilor defecte (bad block mangement). Un exemplu de software de nivel
superior, axat pe tehnologia NAND Flash, este cel al firmei MSystems, numit TrueFFS (True Flash
File System) care realizeaz att emularea hard-disk-urilor, gestionarea blocurilor defecte ct i
uniformizarea uzurii (wear leveling), uurnd n mod esenial integrarea n sistem a acestor circuite.
O versiune TrueFFS exist i pentru tehnologia NOR Flash. TrueFFS este disponibil, ca surse i/sau
executabile, pentru toate sistemele de operare majore cum ar fi: VxWorks, Windows CE, Linux,
QNX/Neutrino, Windows XP/XPE, Windows NT/ NTE, DOS i multe altele.
Limitri
Dei ele la prima vedere par a nmagazina informaia permanent, cu timpul informaiile se pot
pierde dac utilizatorul memoriei nu le folosete mult timp. Pentru memoriile flash, durata de timp
dup care informaia se poate pierde este de ordinul zecilor de ani. O limitare mai important o
constituie faptul c memoria flash are un numr limitat de cicluri citire-scriere, din cauza acumulrii
de electroni la poarta tranzistoarelor MOS, ceea ce, dup citiri i scrieri repetate, reduce tensiunea
de prag logic ntr att nct devine imposibil de detectat dac respectivul bit este un 1 sau un
0. Fenomenul poate aprea dup un numr de ordinul zecilor de mii pn la ordinul milioanelor
de operaii de citire/scriere.
Domenii de utilizare
Memoriile flash se utilizeaz n primul rnd pentru memoriilepropriu-zise ale diverselor
echipamente electronice cum ar fi: USB flash drive, thumb drive, handy drive, memory stick, flash
stick, jump drive, Cap N Go care nc nu dispun de un termen romnesc consacrat.
Ca exemple de aplicaii ale flashurilor:
Un memory stick se folosete la schimbul de date ntre computere i alte produse digitale.
PDA-uri (personal digital assistants)
Computere personale de tip laptop, notebook, netbook etc.
O mare rspndire au cunoscut-o flashurile i la consolele de jocuri electronice, unde, pentru
reinerea datelor jocului, ele au nlocuit deja EEPROM-urile i SRAM-urile (care trebuie alimentate
cu baterii).
Alte exemple unde se folosesc flashurile sunt player audio, camer digital de fotografiat i

telefoanele mobile, n special cele de tip smartphone.


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
MICROPROCESOARE
Mihai Scoraru
Microprocesorul poate s rmn o "cutie neagr" pentru muli utilizatori ai calculatorului...
tiind c printre cititorii fideli ai GInfo sunt muli curioi, propunem o aventur pe parcursul a
dou numere n universul palpitant al microprocesoarelor
Structura intern a microprocesoarelor
Microprocesorul este o unitate central de prelucrare (Central Processing Unit - CPU)
ncorporat ntr-o capsul de circuit integrat, el fiind coordonatorul tuturor operaiilor
efectuate de ctre calculator. Are rolul de a citi instruciunile dintr-o zon de memorie, de a
decodifica i executa comenzile corespunztoare.
Pentru ca microprocesorul s poat citi codul instruciunii care urmeaz a fi decodificat i
executat, el trebuie s genereze o adres care va fi pstrat n memorie pn cnd din
celula selectat pe baza acestei adrese va putea fi citit data cerut. Pentru a putea fi memorat
starea liniilor de adres n timpul operaiei de citire, microprocesorul are nevoie de o memorie
intermediar numit registru tampon de adrese (Address Buffer - AB). Informaia codificat
care a fost citit, trebuie i ea depus ntr-un registru intermediar, numit registru tampon de date
(Data Buffer - DB).
Traseele de cupru cu ajutorul crora se va genera informaia binar care reprezint o adres se
numesc magistral de adrese (Address BUS - ABUS), iar cele care vor genera informaii
corespunztoare datelor citite sau scrise n memorie poart denumirea de magistral de date
(Data BUS - DBUS).
Pentru a putea efectua diferite calcule aritmetice i logice, microprocesorul are nevoie de o unitate
aritmetic i logic (Arithmetic and Logic Unit - ALU).
Pentru a putea fi executat o anumit instruciune procesorul conine i o unitate de comand
(Command Unit - CU). Aceast component programeaz execuia secvenial n timp a
tuturor manevrelor necesare pentru a putea executa instruciunea; ea genereaz semnalele de
comand pentru ntregul sistem, dirijeaz fluxul de date, coreleaz viteza de lucru a unitii
centrale cu timpul de acces al memoriei etc. Activitatea sa este "pilotat" de un semnal de ceas a
crui frecven (deocamdat) este de ordinul Mhz-ilor.
Semnalele prin care microprocesorul d comenzi de execuie spre memorie sau spre alte
componente ale sistemului poart denumirea de semnale de comand. Semnalele prin care
microprocesorul primete informaii despre diferite componente ale sistemului se numesc
semnale de stare. Traseele de cupru pe care circul aceste semnale formeaz magistrala de
comenzi (Command BUS - CBUS).
n cazul n care o instruciune folosete date care au rezultat n urma execuiei instruciunii
precedente atunci aceste date ar trebui citite din nou din memorie. Pentru a evita acest acces
suplimentar la memorie, microprocesorul este prevzut cu regitri, n care pot fi pstrate
temporar date sau adrese de memorie. Microprocesorul mai are nevoie de un registru special n
care s poat fi generat i pstrat nealterat adresa de memorie a urmtoarei instruciuni

care trebuie executat. Acest registru se numete instruciune program (Instruction Program - IP)
sau contor de program (Program Counter - PC). Mai exist nc un registru special n care sunt
pstrate informaii referitoare la natura rezultatului unei operaii aritmetice. Biii care compun
acest registru se numesc indicatori de stare, iar registrul poart denumirea de registrul indicatorilor
de stare i control. Vor exista bii corespunztori diferitelor stri ale rezultatului cum ar fi:
numr par sau impar, negativ sau pozitiv, nul sau nenul etc.
Pe lng magistralele externe care sunt folosite pentru "comunicarea" dintre procesor i celelalte
componente ale sistemului, microprocesorul este prevzut i cu o magistral intern de date,
necesar pentru efectuarea unor transferuri interne de date.
La magistralele de date i de comenzi pot fi cuplate circuite de intrare/ieire (Input/Output - I/O)
care realizeaz legtura cu exteriorul.
Limea unei magistrale reprezint numrul de trasee de cupru care o compun. Numrul de
locaii de memorie care pot fi adresate direct de procesor depinde de limea magistralei de
adrese, de exemplu o magistral de adrese care conine 20 de trasee permite adresarea a 220
celule de memorie.
Pentru a se executa o instruciune, au loc urmtoarele evenimente: microprocesorul depune pe
magistrala de date valoarea din registrul IP i depune pe magistrala de comenzi comanda citete
din memorie; memoria intern preia de pe magistrala de date valoarea N care a fost stocat n
registrul IP, caut adresa N, preia valoarea I coninut n aceast locaie, depune pe magistrala
de date valoarea I i pe magistrala de comenzi comanda am terminat citirea; dup ce
recepioneaz aceast comand, microprocesorul citete de pe magistrala de date valoarea I i
execut instruciunea codificat prin aceast valoare; valoarea din registrul IP este incrementat
cu o unitate (devine N+1).
Valoarea registrului IP poate fi modificat de una din instruciunile unui program, disprnd
astfel monotonia cauzat de incrementarea cu o unitate. O astfel de instruciune ar putea fi scade
valoarea k din valoarea registrului IP. Efectul acestei instruciuni este ntoarcerea cu k
instruciuni nainte i repetarea lor n alt context (valorile datelor vor fi altele).
Toate activitile calculatorului sunt coordonate de ctre pulsurile unui oscilator numit ceas
intern. Dup cum am vzut, execuia unei instruciuni const din execuia mai multor etape
pariale. Fiecare astfel de etap parial este efectuat n intervalul dintre dou pulsuri de
ceas, astfel c intervalul de timp necesar execuiei unei instruciuni poate fi msurat cu ajutorul
numrului de pulsuri de ceas.
Structura unui microprocesor Intel
n continuare ne vom ocupa n principal de microprocesoarele 8086 i 8088, acestea fiind
denumite de crile de specialitate microprocesoare convenionale. Ori de cte ori vom face
referire la un alt microprocesor i vom indica numele.
Microprocesoarele 8086 i 8088 au o structur pe 16 bii, deosebirea esenial dintre ele
constnd n faptul c 8088 este proiectat cu o magistral de date extern de 8 bii, n timp ce
8086 dispune de una de 16 bii. Aceasta nseamn c pot fi transferai pe magistrala de date
extern 8, respectiv 16 bii deodat. Din motive comerciale, Intel a pstrat compatibilitatea cu
microprocesoarele aprute anterior, ceea ce nseamn c orice program care funcioneaz cu
un anumit microprocesor va funciona i cu orice alt microprocesor aprut ulterior.

Microprocesorul Intel are dou componente majore: unitatea de interfa cu magistrala (Bus
Interface Unit - BIU) i unitatea de execuie (Executive Unit - EU).
Unitatea de interfa cu magistrala transmite procesorului instruciuni i operanzi i rezultatele
unor prelucrri spre memoria intern sau dispozitivele de intrare/ieire. Principalele componente
ale sale sunt regitrii de segment, registrul pointer de instruciuni, dispozitivul de adresare i
coada fluxului de instruciuni.
Unitatea de execuie are rolul de a executa instruciunile care i sunt transmise de ctre BIU.
Principalele sale componente sunt regitrii generali, registrul de manevr pentru memorarea
operanzilor, unitatea aritmetico-logic (ALU) i registrul indicatorilor de stare i control.
Magistralele cu ajutorul crora se realizeaz comunicarea dintre microprocesor i celelalte
componente ale sistemului de calcul sunt: magistrala de date (pe 16 bii), magistrala de adres (pe
20 de bii) i magistrala de comenzi.
Sistemul de ntreruperi
Microprocesorul mai dispune de dou linii pentru semnalele de ntrerupere emise de dispozitivele
externe: linia INTR (Interrupt Request) i linia NMI (Non-Maskable Interrupt). Pe linia INTR
sosesc ntreruperi n urma crora unitatea central, n funcie de valoarea indicatorului de
validare a ntreruperilor (IF), execut diferite operaii. Dac IF este ters (are valoarea 0)
nseamn c ntreruperile semnalate pe linia INTR sunt mascate sau dezactivate, ca urmare
unitatea central le ignor i trece la instruciunea urmtoare. Dac IF este poziionat (are
valoarea 1) nseamn c ntreruperile de pe linia INTR sunt activate i unitatea central
oprete execuia normal a instruciunilor i pred controlul rutinei de tratare a ntreruperilor.
NMI este o linie prin care sosesc ntreruperi care anun evenimente critice. Aceste ntreruperi
nu pot fi dezactivate i unitatea central le va lua n considerare de fiecare dat cnd acestea
sosesc.
Sistemul de ntreruperi este simplu i uor de manevrat. Pot fi utilizate cel mult 256 de tipuri de
ntrerupere, fiecrui tip fiindu-i atribuit un cod specific. ntreruperile pot fi clasificate n
ntreruperi externe i ntreruperi interne. Cele externe sunt numite i ntreruperi hardware, iar
cele interne mai poart denumirea de ntreruperi software. Diferena esenial dintre cele dou
tipuri de ntreruperi este c cele externe sunt cauzate de dispozitivele externe, iar cele interne sunt
generate prin program, folosindu-se anumite instruciuni.
Tabela vectorilor de ntrerupere
Tabela vectorilor de ntrerupere permite asocierea dintre tipul ntreruperii (reprezentat de un
numr ntre 0 i 255) i rutina de tratare a ntreruperii. Fiecare intrare a tabelei ocup 4 bytes,
ea coninnd adresa rutinei de tratare a ntreruperii. Tabela ocup prima zon a memoriei
interne i poate avea pn la 256 de intrri.
La apariia unei ntreruperi este suspendat execuia instruciunilor programului curent i
sunt salvate pe stiv registrul cu indicatorii de stare i control i adresa instruciunii urmtoare;
apoi este activat rutina de tratare a ntreruperii.
Unitatea aritmetic i logic
Pentru efectuarea operaiilor aritmetice procesorul are nevoie de circuite specializate n acest
sens. n aritmetica binar operaiile aritmetice pot fi descrise cu ajutorul unor funcii logice, de

aceea este normal ca circuitele respective s fie utilizate i pentru operaiile logice propriu-zise.
Aceste circuite utilizate de procesor pentru efectuarea operaiilor aritmetice i logice poart
denumirea de unitate aritmetic i logic. ALU face parte din unitatea de execuie a
microprocesorului, ea avnd i rolul de a gestiona indicatorii de stare i control ai
microprocesorului i de a manevra regitrii generali i operanzii instruciunilor. Regitrii i
cile de date interne sunt de 16 bii, deoarece se dorete mrirea transferurilor interne.
Coada de instruciuni
Unitatea de execuie nu are nici o legtur cu magistrala sistemului, cea care efectueaz toate
operaiile necesare cu magistrala fiind unitatea de interfa cu magistrala. n timpul n care
unitatea de execuie se ocup cu execuia instruciunilor, unitatea de interfa cu magistrala
ncarc instruciunile ntr-o memorie special de tip RAM (Random Acces Memory) numit
coada fluxului de instruciuni. Aceast memorie are o dimensiune de 4 bytes n cazul
microprocesoarelor 8088 i 6 bytes n cazul 8086. Unitatea de execuie preia cte o
instruciune din coada fluxului de instruciuni; apoi o execut.
n majoritatea cazurilor coada fluxului de instruciuni conine cel puin un byte al fluxului de
instruciuni i unitatea de execuie nu mai trebuie s atepte ncrcarea instruciunii care
urmeaz a fi executat. La un moment dat n coada fluxului de instruciuni sunt memorate
instruciunile care se afl n locaiile de memorie imediat urmtoare locaiei de memorie n
care se afl instruciunea care se execut la acel moment. Dac este executat o instruciune
care transfer controlul unei locaii de memorie, coada fluxului de instruciuni este tears, se
ncarc instruciunea de la noua adres i unitatea de interfa cu magistrala ncepe
rencrcarea cozii fluxului de instruciuni cu instruciunile urmtoare.
Dispozitivul de adresare
Microprocesorul trebuie s poat adresa att instruciunile ct i datele de care instruciunile
au nevoie atunci cnd sunt executate. Adresa locaiei de memorie din care se va ncrca o
instruciune este suma dintre o adres de segment i un deplasament. Pentru adresarea datelor,
microprocesorul ofer cteva modaliti de adresare.
Segmentarea memoriei
Microprocesoarele 8086 i 8088 pot adresa 1 MB de memorie care sunt grupai n mai multe
segmente. Un segment de memorie este o unitate logic de memorie care poate avea cel mult 64
KB. Fiecare segment de memorie este alctuit din mai multe locaii de memorie consecutive i
poate fi considerat ca o unitate care poate fi adresat independent. Fiecare segment este caracterizat
printr-o adres de baz care reprezint adresa locaiei de nceput a segmentului i este
exprimat n numr de blocuri de 16 bytes, numite paragrafe. Ca urmare, toate segmentele
ncep de la o adres care este un multiplu de 16. Dou segmente se numesc adiacente dac
adresa de nceput a unuia dintre ele este cu 1 mai mare dect adresa de sfrit a celuilalt. Dou
segmente sunt parial suprapuse dac adresa de nceput a unuia se afl ntre adresa de nceput
i cea de sfrit a celuilalt. Dou segmente sunt suprapuse complet dac adresele lor de
nceput coincid. n toate celelalte cazuri segmentele se numesc disjuncte.
n funcie de necesiti o anumit aplicaie (program) utilizeaz segmentele n mod diferit.
Segmentele care pot fi adresate n mod curent ofer 64 KB pentru cod, 64 KB pentru stiv i 64
KB pentru date. Pentru a utiliza un spaiu de lucru mai mare, trebuie gestionate segmentele de
memorie n funcie de necesiti.

Adrese fizice i adrese logice


Adresa fizic este o valoare reprezentat pe 20 de bii care identific n mod unic fiecare
locaie de memorie aflat n spaiul de adresare. Ca urmare aceast adres poate fi un numr
cuprins ntre 0 i 220-1.
Pentru a nu depinde de locul n care este pstrat codul n memorie, programele folosesc adresele
logice n locul celor fizice. Adresa logic este dat de o valoare de baz de segment i o valoare
de deplasament. Valoarea de baz a segmentului indic adresa primului byte al segmentului care
conine locaia i este exprimat n paragrafe. Deplasamentul reprezint numrul de octei
dintre locaia respectiv i nceputul segmentului. Att adresa de baz ct i deplasamentul
sunt reprezentate pe 16 bii.
Este posibil ca mai multe adrese logice s localizeze o aceeai locaie de memorie atunci cnd
aceasta face parte din segmente diferite. De exemplu adresele logice F000:FFF0 i FFFF:0000
indic aceeai locaie de memorie i anume cea care are adresa fizic FFFF0. Generarea
adresei fizice cu ajutorul adresei logice se realizeaz nmulind cu 16 valoarea bazei segmentului
(shiftare spre stnga cu 4 poziii) i adugnd deplasamentul.
Mecanisme de adresare
Calculele de adres sunt efectuate de unitatea de interfa cu magistrala, cu ajutorul unei uniti
de calcul, specifice, numit ADR i a unor regitri speciali fiecare avnd o capacitate de 16 bii.
Primele generaii de calculatoare aveau o memorie de 1 MB. Primele 10 blocuri de memorie (640
KB) formeaz memoria RAM, urmtoarele 5 fiind folosite pentru memoria ecran i reinerea
coninutului memoriei ROM n timpul funcionrii sistemului. Pentru a putea codifica n mod
unic fiecare din cele 220 de locaii de memorie diferite, o adres trebuie s fie reprezentat pe
20 de bii. Magistrala de adrese are capacitatea necesar pentru a transmite cei 20 de bii
deodat, ns nu se poate spune acelai lucru despre magistrala de date care are o capacitate de
16 bii. Prin convenie adresa de nceput a fiecrui segment este un multiplu de 16, iar un
segment poate avea cel mult 64 KB. Datorit acestui fapt cei mai nesemnificativi 4 bytes ai adresei
de nceput a segmentului vor fi 0 (n baza 2 un multiplu de 16 are ultimele 4 cifre ntotdeauna
0). Din acest motiv aceti 4 bii nu mai trebuie memorai i ca urmare regitrii de segment vor
conine numai restul celor 16 bii. Pentru a specifica deplasamentul (offset) sunt folosii tot 16
bii.
O adres virtual este compus din dou numere reprezentate fiecare pe 16 bii, unul
reprezentnd coninutul registrului de segment, iar al doilea deplasamentul n cadrul
segmentului. Adresa fizic este calculat de ctre BIU nmulind cu 16 primul numr i
adunnd la rezultat cel de-al doilea numr.
Mecanismul descris este tipic pentru procesorul 8086 i poart denumirea de mod real (Real
Adress Mode). La microprocesoarele 80286 apare nc un mod de adresare, denumit mod protejat
(Protected Virtual Address Mode), iar o dat cu apariia procesorului 80386 sunt introduse modul
paginat i modul virtual 8086. Aceste noi modaliti de adresare au fost introduse pentru a
permite adresarea de ctre un calculator IBM-PC a mai mult de 1 MB de memorie.
Implementarea stivei
Stiva este o zon de memorie folosit pentru a stoca datele temporare. Deosebirea esenial
dintre stive i alte segmente de memorie este faptul c datele de pe stiv sunt stocate ncepnd

de la adresele mai mari de memorie i continund spre adrese mai mici. La nceput stiva este un
segment de memorie neiniializat care are o dimensiune fix. n timp ce sunt adugate
informaii n stiv dimensiunea stivei "crete" de la adresele mari spre adresele mai mici, iar
cnd sunt eliminate informaii, stiva se "micoreaz" n sens invers.
Numrul de stive este limitat numai de spaiul de memorie disponibil n sistem, iar dimensiunea
unei stive nu poate depi 64 KB. Dac se extinde stiva peste aceast dimensiune, informaiile
adugate vor nlocui informaiile de la nceputul stivei. La un moment dat nu poate fi adresat
direct dect o stiv, ea purtnd denumirea de stiv curent.
Regitri
Regitrii microprocesoarelor 8086 i 8088 sunt n numr de 14, au fiecare cte 16 bii i pot
fi mprii n urmtoarele categorii: regitrii generali, regitrii de segment, registrul
pointerului de instruciuni i registrul indicatorului de stare i control.
Regitrii generali sunt n numr de 8 i pot fi clasificai n regitri de date (AX, BX, CX i
DX), regitri de pointer (SP i BP) i regitri de index (SI i DI). O caracteristic important a
regitrilor de date este aceea c "jumtile" lor pot fi accesate separat, deci ei pot fi folosii
fie ca regitri de 16 bii, fie ca doi regitri de cte 8 bii fiecare. Cele dou jumti ale
registrului AX pot fi referite ca regitri AL, respectiv AH. n acelai mod putem folosi regitrii
BL, BH, CL, CH, DL i DH. Regitrii de pointer i de index pot fi folosii numai ca regitri de
16 bii.
Regitrii de segment, 4 la numr, sunt denumii CS, SS, DS i ES. Registrul CS indic
segmentul de cod curent (adresa de baz a segmentului de memorie care conine codul
programului). Registrul SS indic segmentul de stiv curent, operaiile cu stiva fiind efectuate
n locaiile de memorie corespunztoare acestui segment. Registrul DS indic segmentul de date
curent, segment ce conine, de obicei, datele i variabilele programului. n sfrit, registrul ES,
indic extrasegmentul curent, folosit de obicei tot pentru date. Aceti regitri pot fi modificai
direct prin program.
Registrul pointerului de instruciuni (IP) este un registru actualizat de BIU i conine
deplasamentul locaiei de memorie n care se afl instruciunea urmtoare fa de nceputul
segmentului de cod curent. Acest registru nu poate fi modificat direct prin program.
Registrul indicatorilor de stare i control este un registru ai crui bii au fiecare cte o
semnificaie aparte. Ei indic starea rezultatului operaiei pe care o execut programul la un
moment dat sau controleaz unele operaii ale microprocesorului. Registrul conine 6 bii de
stare i 3 bii de control, restul biilor fiind rezervai, ei neavnd o semnificaie precizat.
Microprocesorul 80386 utilizeaz aceiai regitri ca i predecesorii si din familia 8086, dar
toi regitrii (cu excepia celor de segment) pot fi extinse pn la 32 de bii. Denumirea
regitrilor extini ncepe cu litera E i ei se numesc EAX, EBX, ECX, EDX, ESP, EBP, ESI,
EDI i EIP). Au fost adugate i doi regitri de segment suplimentari FS i GS.
Indicatori
Cei 16 bii ai registrului indicatorilor de stare i control poart denumirea de indicatori (denumire
sugerat i de numele registrului) sau flaguri. Cuvntul englezesc flag este tradus n limba
romn prin steag. Denumirea sugereaz faptul c un anumit stegule va fi ridicat n cazul n
care o condiie este ndeplinit. Mai multe instruciuni permit modificarea execuiei unui
program n funcie de cei ase indicatori de stare.
Indicatorul de transport (Carry - CF) indic faptul c cel mai semnificativ bit al rezultatului
operaiei care s-a efectuat a fost "transportat" n exterior. De obicei este utilizat atunci cnd se

efectueaz operaii matematice cu numere a cror reprezentare este pe mai mult de un octet.
Indicatorul mai poate fi modificat i n cazul operaiilor de deplasare i rotire.
Indicatorul de paritate (Parity - PF) este poziionat dac rezultatul conine n reprezentare un
numr par de bii cu valoarea 1. De obicei este folosit pentru verificarea transmisiilor de date.
Indicatorul de transport auxiliar (Auxiliary Carry - AF) este poziionat dac a avut loc un
transport de la un nivel inferior la un nivel superior al semioctetului rezultatului. Este folosit n
operaiile cu numere reale.
Indicatorul de zero (Zero - ZF) este poziionat dac rezultatul operaiei este 0.
Indicatorul de semn (Sign - SF) este poziionat dac cel mai semnificativ bit al rezultatului este 1.
Indicatorul de depire (Overflow - OF) este poziionat dac are loc o depire aritmetic,
adic dimensiunea rezultatului depete capacitatea locaiei de destinaie.
Aceti bii indicatori de stare sunt poziionai de ctre unitatea de execuie. Indicatorii de
control permit controlarea unor operaii ale microprocesorului i ei pot fi modificai prin
program.
Indicatorul de depanare (Trap/Trace - TF) dac este poziionat, indic faptul c programul va fi
executat pas cu pas. Unitatea central va genera o ntrerupere dup fiecare instruciune,
existnd posibilitatea urmririi execuiei fiecrei instruciuni.
Indicatorul de ntrerupere (Interrupt - IF) indic unitii centrale, n cazul n care este
poziionat, c trebuie s "reacioneze" la ntreruperile externe mascabile. Dac acest indicator
nu este poziionat aceste ntreruperi vor fi ignorate. Nu are efect asupra ntreruperilor externe
nemascabile sau asupra ntreruperilor interne.
Indicatorul de direcie (Direction - DF) n cazul n care este poziionat, indic faptul c
irurile vor fi prelucrate de la adresele mari spre adresele mici (de la dreapta la stnga). n caz
contrar irurile vor fi prelucrate de la stnga la dreapta.
ncepnd cu microprocesorul 80286 au fost adugate nc dou indicatoare pentru a acorda
mai multe faciliti programatorului.
Indicatorul protecie intrare/ieire (Input/Output Privilege level flag - IOP) indic nivelul de
protecie pentru intrare i ieire. Trebuie remarcat c pentru acest flag sunt folosii 2 bii.
Indicatorul imbricare (Nested flag - N) controleaz nlnuirea proceselor ntrerupte n modul
protejat.
ncepnd cu microprocesorul 80386 registrul indicatorilor de stare i control este i el extins la
32 de bii, fiind adugai nc doi indicatori.
Indicatorul reluare (Restart flag - R) determin, dac este poziionat, dezactivarea temporar a
excepiilor de depanare.
Indicatorul mod virtual (Virtual 8086 mode flag - V) indic, n cazul poziionrii sale, modul de
execuie virtual 8086. n caz contrar modul de execuie va fi modul protejat.
O dat cu apariia microprocesorului 80486 au aprut nc 7 indicatori de stare i control:
indicatorul AC permite generarea unui semnal de eroare n cazul n care apar date incorect
aliniate; indicatorul PG arat dac paginarea este activ sau nu; indicatorul CE este folosit pentru
conectarea memoriei cache; indicatorul WT este folosit pentru validarea i invalidarea scrierii n
memoria cache; indicatorul WE controleaz dac la coprocesor apare o excepie datorat
vectorului de ntrerupere 2h sau 16h (numerele terminate n h indic faptul c ele sunt scrise n
sistem hexazecimal - baza 16; numrul 16h poate fi scris ca 22 dac se folosete sistemul
zecimal); indicatorul TS este setat n cazul n care este lansat un task; indicatorul EM arat dac
instruciunile ESC sunt preluate sau transmise mai departe la coprocesor.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////