Sunteți pe pagina 1din 17

1

SISTEME CU MICROPROCESOARE

1 . Introducere
Aparatele i sistemele controlate cu microprocesor au aprut i s-au perfecionat odat cu apariia
pe pia a miroproesoarelor (1970 -1980) dup care (n special dup 1985) s-au rspndit foarte rapid,
nlocuind aproape complet aparatele i sistemele de msur i control numerice clasice (cu logic
cablat), att n tehnica de laborator ct i n instrumentaia industrial, mai ales n controlul automat.

Clasificarea sistemelor cu microprocessor

n funcie de complexitatea sistemului din care face parte vom avea:
- aparate de msur cu microprocesor utilizate ca instrumente de laborator sau de teren;
- sisteme de msur cu microprocesor folosite n complexe de msur i control n industrie.

1.1 Avantajele folosirii microprocesoarelor n sistemele de msur i control

Includerea unui microprocesor ntr-un sistem de msur i control d posibilitatea ca manevrele
de operator s fie preluate (parial sau total) de ctre microprocesor i n plus s se obin cteva
avantaje importante:
1. Preluarea comenzilor de operator cum ar fi reglaje de zero i de cap de scar, selectarea gamelor
asigurnd un plus de precizie i siguran n exploatare.
2. Autocalibrarea i compensarea automat a influenei factorilor de clim. De asemenea se
calculeaz abaterile i se corecteaz rezultatul final al msurrii.
3. mbuntirea preciziei prin eliminarea erorilor sistematice (prin autocalibrare, autocorecie).
4. Micorarea numrului de componente ale sistemului prin eliminarea componentelor destinate
implementrii logicii cablate.
5. Creterea versatilitii aparatului prin obinerea unor posibiliti suplimentare de msur pe baza
programelor interne.
6. Creterea vitezei de lucru prin automatizarea operaiilor de msurare.
7. Posibilitatea determinrii prin calcul a altor parametrii de semnal (valoare de vrf, valoare
medie, valoare efectiv, calculul distorsiunilor, a spectrului de amplitudini, determinarea fazei,
defazajului).
8. Posibilitatea autotestrii prin programe speciale executate de microprocesorul ncorporat, la
comanda operatorului sau n cazul apariiei unei anomalii in funcionare. n acest caz se poate declana
o procedur de testare i semnalizare a eventualelor defecte.
Toate aceste avantaje arat clar c sistemele de msur i control moderne nu pot exista fr a fi
controlate de ctre microprocesoare.

1.2 Microprocesoare : o privire general

n cele ce urmeaz ne vom referi la un microprocesor generic (presupus de 8 bii) i vom ncepe
cu precizarea unor termeni i notaii utilizate n lucrrile din domeniul microprocesoarelor.

Definiii i terminologie
Sistemul de calcul este un echipament care transform datele de intare n rezultate de ieire pe
baza unui algoritm materializat ntr-un program. Aceast definiie reprezint sensul clasic al noiunii
de calculator .
Sistemele inteligente sunt acele sisteme care pot prelucra informaii incomplete definite sau
aproape complet definite. Astfel de sisteme sunt sistemele fuzzy sau reelele neuronale.
2
n cazul n care informaiile de prelucrat sunt complet definite atunci avem de-a face cu algoritmi
secveniali. Acest tip de algoritmi a stat la baza construciei mainilor secveniale (Von Newman).
Dac operaiile elementare independente se pot executa paralel (pe mai multe uniti de calcul), avem
de-a face cu algoritmi paraleli.
ncepnd cu anii 1970 au aprut tendine de automatizare a proceselor de producie bazate iniial
pe automate numerice cablate (logic cablat) i apoi pe sisteme cu microprocesoare (logic
programat). De dat recent sunt sistemele bazate pe arhitecturi paralele (sisteme multiprocesor ,
sisteme distribuite).
Arhitectura mainii secveniale standard (Von Newman) este urmtoarea:
















Unitatea central (CPU-Central Processing Unit), transform datele n rezultate pe baza
execuiei instruciunilor programului memorat.
Memoria este mediul principal de stocare/regsire a datelor, rezultatelor i programelor.
Subsistemul de intrare-ieire este destinat realizrii interfeei om-main sau proces-main.
Partea fizic a unui sistem de calcul (componentele electronice) este relative simpl, poate fi
produs n serie i este relativ ieftin. Termenul hardware se refer tocmai la aceast parte
Ceea ce transform acest echipament ieftin ntr-o diversitate de instrumente, controlere
industriale, calculatoare speciale sau de uz general, sunt programele (utilitare sau de aplicaii) i
sistemele de programe (operare, exploatare), adic software care vor determina hardware-ul de uz
general s execute ceea ce dorim.
Un alt termen frecvent utilizat este firmware, care desemneaz programe speciale stocate n
memorii nevolatile, al cror rol este de a asigura faciliti de configurare i testare a echipamentului,
precum i minima sa funcionare. Exemplu biosul de la calculatoarele personale.
Microprocesoarele actuale se produc ntr-o gam larg de variante, de la cele de uz general sau
cele destinate aplicaiilor industriale, pn la procesoarele de semnal sau coprocesoarele cu funcii bine
precizate. De asemenea, microprocesoarele pot fi:
- microprocesoare monocip (unitatea central i circuitele de suport sunt dispuse n interiorul
aceleiai capsule de circuit integrat).
- microprocesoare multicip la care unitatea central i circuitele de suport, sunt realizate sub
form de circuite integrate distincte.
Microprocesoarele pentru aplicaii dedicate mai ales cele destinate mediului industrial sunt
realizate monocip, oferind un plus de comoditate n proiectare i o fiabilitate sporit. De exemplu,

Unitate
Central

Memorie
Subsistem de intrare/ieire
Om/proces
3
microprocesorul 80186, al firmei Intel, include aproximativ toate componentele sistemelor cu 8086,
adic unitatea central, generatorul de tact, controlerul de magistral i cel de ntreruperi, controlerul
DMA, contor/timer-ul, logica de decodificare, etc.
Deseori microprocesoarele monocip includ att memorie de lucru, ct i interfee de intrare/ieire,
adic structura minimal a unui microcalculator, motiv pentru care ele se mai numesc i
microcalculatoare ntr-un singur cip (Single Component Microcomputer). Deoarece aceast categorie
de microprocesoare sunt destinate mai ales aplicaiilor de control n mediul industrial, ele se ntlnesc i
sub denumirea de microcontrolere.
Microprocesoarele de uz general multicip au fost realizate i n variante monocip, purtnd
numele de microprocesoare nglobate. De exemplu, familiile 80186 sau 80386EX sunt produse de Intel
i n varianta monocip avnd avantajul utilizrii suportului de programe i exploatare dezvoltat pentru
sistemele de calcul existente curent pe pia (de exemplu calculatoarele personale).

Elemente tehnologice

Microprocesoarele i circuitele de suport se pot produce n urmtoarele tehnologii:
1 . Tehnologia bipolar permite obinerea unor viteze de lucru mari, dar cu un consum ridicat
i cu probleme de climatizare deosebite.
2 . Tehnologia MOS a evoluat mult, oferind condiii de obinere a unor performane de vitez
deosebit, n condiiile unui consum redus i al unui grad de integrare foarte ridicat. Exist 3 familii
MOS mai importante:
PMOS se bazeaz pe realizarea tranzistoarelor MOS cu canal p, prin difuzia impuritilor de tip
p (bor), ntr-un substrat de siliciu de tip n , pentru a forma drena i sursa. Se remarc prin densitate
mare de integrare, ns microprocesorul este relativ lent.
NMOS se bazeaz pe relizarea tranzistoarelor MOS cu canal n prin difuzia impuritilor de tip
n (fosfor sau arseniu) ntr-un substrat de siliciu de tip p, pentru a forma drena i sursa. Se obine o
densitate de componente similar cu cea specific PMOS, dar asigur o vitez mai mare pentru
circuitele realizate, ns este mult mai scump dect tehnologia PMOS.
CMOS combin ambele tipuri de tranzistoare ntr-o structur complementar, rezultatul fiind o
vitez de lucru medie, imunitate mare la zgomote i un consum extreme de redus.
HMOS este o tehnologie mai recent i a fost utilizat cu succes de firma INTEL la realizarea
noilor sale generaii de microprocesoare i microcontrolere. Aceast tehnologie folosete tranzistoare
cu canal n, proiectate special pentru a lucra la tensiuni joase i la viteze mari.
CHMOS este rodul mbinrii performanelor de vitez deosebit ale tehnologiei HMOS, cu
consumul sczut al celei CMOS. Rezultatul a fost remarcabil, astfel nct majoritatea productorilor de
microprocesoare i microcontrolere au trecut la aceast tehnologie.

Bii , octei , cuvinte

Marea majoritate a echipamentelor numerice folosesc pentru reprezentarea intern a numerelor
sistemul binar, caracterizat de utilizarea a numai 2 cifre: 0 i 1. Bitul reprezint cea mai mic unitate de
informaie, echivalent cu o afirmaie (DA , 1) sau o infirmaie (NU, 0).
Pentru uniti mai mari, cea mai important este octetul, obinut din gruparea a 2 8 bii.
Octetul reprezint unitatea cea mai folosit pentru caracterizarea dimensiunii blocurilor de memorie.
Dac aceast dimensiune este mare, se pot folosi multiplii acestuia:
Kilooctet 2
10
bii
Megaoctet 2
20
bii 2
10
KB
Gigaoctet 2
30
bii 2
10
MB 2
20
KB
4
Un cuvnt este un grup de bii ce desemneaz cantitatea maxim de informaie ce poate fi
transferat la un moment dat de un dispozitiv numeric. Cuvntul este materializat prin ci paralele de
comunicaie a informaiei numite magistrale. Numrul de bii al unui cuvnt constituie lungimea sa.
Lungimea unui cuvnt este una dintre caracteristicile cele mai importante ale unui microprocesor,
deoarece hotrte precizia datelor i viteza de prelucrare a acestora.

Algoritmi , programe i limbaj main

Fiind dat o problem pentru rezolvarea acesteia trebuie gsit o metod adecvat algoritmul.
Un algritm este o secven de operaii, grupate ntr-o succesiune de etape (pai) ce permit rezolvarea
problemelor specificate. Pentru a fi neles de microprocesor, algoritmul trebuie prezentat ntr-un limbaj
adecvat, limbaj care const ntr-un set de simboluri i reguli de sintax foarte bine precizate.
Materializarea algoritmului cu ajutorul unui limbaj se face ntr-un program ce const ntr-o succesiune
de operaii elementare instruciuni.
La nivelul cel mai de jos, instruciunile programului se prezint ca iruri de bii ce pot fi
transformate cu uurin n impulsuri electrice, dar care sunt foarte greu de manevrat de ctre
programator. Acest limbaj, singurul neles de procesor este numit limbaj main. Din acest motiv, au
fost create programe speciale, care permit utilizarea unor limbaje mai apropiate de cel uman (limbaj de
asamblare).
Ulterior au fost create o multitudine de limbaje (BASIC, FORTRAN, C etc) , numite de nivel
ridicat, a cror scop a fost gsirea unei modaliti ct mai accesibile de a programa un microprocesor.

Logic cablat i logic programat

Logica cablat presupune un automat de control n care secvena de semnale de
sincronizare/coordonare sunt elaborate pe baza unei scheme fixe (de obicei cu pori i bistabile
interconectate convenabil), imposibil de modificat.
Logica programat se bazeaz pe un automat de control flexibil, capabil s genereze semnale de
sincronizare/coordonare, pe baza unui program executat de microprocesor. Majoritatea aparaturii
moderne utilizeaz logic programat. Prin simpla modificare a programului, ntreaga funcionare a
aparatului se poate schimba.

Puterea de calcul i viteza de lucru a microprocesorului

Prin putere de calcul se nelege mai ales capabilitatea de prelucrare numeric a acestuia i este
determinat de lungimea cuvntului, de arhitectura intern i viteza de execuie a instruciunilor.Viteza
microprocesorului este condiionat de 2 factori:
-Frecvena ceasului un tact mai rapid determin un procesor s execute un program mult mai rapid;
-Arhitectura intern permite creterea vitezei de lucru (meninnd frecvena ceasului neschimbat)
pe baza trecerii de la execuia strict secvenial a operaiilor, la execuia lor paralel, ntr-un mod
transparent pentru utilizator, folosind tehnici ca: utilizarea memoriilor CACHE, creterea numrului de
magistrale interne ale unitilor de prelucrare, succesiune pipeline (suprapunerea parial a operaiilor).
-Viteza de execuie a instruciunilor este dificil de msurat direct. Se definete de obicei ca durata
de execuie a unor instruciuni foarte des folosite sau ca numr mediu de instruciuni executate ntr-o
secund.
-Setul de instruciuni - condiioneaz indirect viteza de calcul. Cu ct modul de codificare a
instruciunilor este mai simplu i secvena microoperaiilor este mai rapid, cu att microprocesorul va
avea o vitez de lucru mai mare.
Microprocesoarele cu set complet de instruciuni (CISC) consum un timp relative ridicat pe
instruciune, dar compenseaz acest lucru printr-o gam divers de instruciuni.
5
Spre deosebire de ele, microprocesoarele cu set redus de instruciuni (RISC) sunt optimizate
astfel nct instruciunile s fie executate foarte rapid, chiar mai multe ntr-un singur tact main .

Arhitectura intern a unui microprocessor

Ca orice unitate central a unui sistem de calcul, microprocesorul conine urmtoarele
componente principale:
- unitatea de control CPU ;
- unitatea logico-aritmetic ALU;
- registre interne;
Acestea comunic ntre ele prin ci de transfer informaiei numite magistrale, ce leag ntre ele
mai multe dispozitive, dar la un moment dat doar dou dispozitive pot schimba informaie: sursa i
destinaia. Coordonarea transferurilor pe magistral se face de ctre un dispozitiv master, cele
subordonate fiind slave. Microprocesorul posed i o magistral intern, legat printr-o interfa la
magistrala extern.
Structura intern a unui microprocesor generic este urmtoatea:






















Unitatea de control

Asigur sincronizarea i coordonarea operaiilor din interiorul i exteriorul microprocesorului. Ca
orice automat secvenial sincron, unitatea central este guvernat de un semnal de tact (CLK), produs
de un circuit de ceas intern sau extern microprocesorului. n majoritatea cazurilor, oscilatorul, care
asigur tactul, este pilotat cu cuar i asigur frecvene ntre 1 i 40 MHz (microprocesoarele ce
echipeaz calculatoarele moderne ajung pn la frecvene de ordinal GHz).
n principal, unitatea de control solicit instruciunile stocate n memoria de program, le
decodific i pe baza acestora comand funcionarea celorlalte blocuri (ALU, registre etc ) interne
microprocesorului, n vederea executrii corecte a acestora.

PS

CLK
Gen
IR PC
SP
Inst DCD
CPU





BI
ADD
BUS
DATA
BUS
REG DCD
R
2
R
1

R
4
R
3

B
X
TMP
ACC
ALU
CMD
BUS
Cuartz
INT
Reset
6
Unitatea logico aritmetic

ALU execut operaiile aritmetice i logice impuse de instruciunile programului, sub
coordonarea direct a unitii de control.
Operaiile aritmetice pot fi: adunare i scdere (de baz - obligatorii), respectiv nmulire,
mprire, ridicare la putere (suplimentare).
Operaiile logice pot fi: NU, I, SAU (de baz - obligatorii), respectiv SAU EXCLUSIV,
deplasri, rotiri (suplimentare).
Participanii la o operaie aritmetic sau logic se numesc operanzi, iar semnul grafic asociat
acesteia se numete operator. Dac operaia necesit un singur operand (schimbarea semnului sau
negarea), ea se numete operaie unar. Dac operaia necesit 2 operanzi (adunare, I logic), ea se
numete binar.

Registrele interne

Au rolul de a stoca temporar operanzii i rezultatele vehiculate prin ALU, pe parcursul uneia sau
mai multor instruciuni. Registrele folosite n mod uzual la calcule se numesc registre generale, iar cele
folosite la operaii speciale (adresarea, manevrarea stivelor) se numesc registre funcionale.
Registrele generale pot ndeplini mai multe roluri:
- manevr pentru stocarearea temporar a unui operand sau a unui rezultat;
- acumulator (ACC) registru folosit n operaiile de adunare pentru cumularea unui ir de
valori (unul din operanzi se gsete ntr-un registru de lucru, iar cellalt l constituie chiar coninutul
acumularorului), iar la sfrit rezultatul se depune tot n acumulator;
- contor cu autoincrementare sau cu autodecrementare, ce permite realizarea simpl a buclelor
de program i parcurgerea irurilor de date;
-baz (B) i index (X) ce permite adresarea irurilor de valori (vectori), plasate n locaii
succesive de memorie;
-indicator de stiv (SP) - permite adresarea unei zone de memorie (stiv), special creat
pentru a facilita manevrarea datelor, pe principiul ultimul sositprimul servit (LIFO), prin operaii de
tipul PUSH, POP, precum i execuia subrutinelor sau a tratrii ntreruperilor.
Un microprocesor posed cel puin 2 registre generale (acumulator i manevr). Majoritatea
microprocesoarelor folosesc seturi de 4 16 registre, ce pot prelua unul din rolurile prezentate mai sus.
Registrele funcionale
ndeplinesc sarcini dedicate pentru controlul derulrii instruciunilor n microprocesor.
-Registrul de stare program (PS) conine o serie de informaii ce descriu starea execuiei
progarmului (indicatorii de condiie, care reprezint modul de terminare a unei operaii logico-
aritmetice, utilizat la realizarea salturilor condiionate, precum i a indicatorilor de semnalare a
evenimentelor speciale i a modurilor de lucru);
-Registrul de instruciuni (IR) destinat stocrii instruciunii pe parcursul execuiei sale;
-Contorul de program (PC) indic n permanen instruciunea curent (de executat);

Execuia instruciunilor i indicatorii de condiie

Vom considera citirea i execuia unei instruciuni tipice de un cuvnt. Pentru aceasta:
-de la adresa coninut n contorul de program (PC) interfaa de magistral citete un cuvnt, printr-
un ciclu de citire al instruciunii
-coninutul locaiei citite este transferat prin magistrala intern n registrul de instruciuni (IR);
-contorul de program este incrementat pentru a indica instruciunea imediat urmtoare;
7
-imediat ce codul instruciunii este disponibil, n registrul de instruciuni (IR), el este decodificat i
transformat n semnale de activare a diverselor microoperaii din care este compus execuia propriu-
zis a instruciunii;
-nc din faza final a execuiei instruciunii, se poate declana citirea instruciunii urmtoare;
n cazul instruciunilor de mai multe cuvinte, se fac referiri succesive la memorie.
Multe microoperaii presupun folosirea ALU pentru calcule ascunse (calcule de adres).
Operaiile de calcul produc rezultate ce trebuie testate pentru a lua o decizie. ALU dispune de un set de
bistabili care fac parte integrant din registrul de stare program (PS) i care memoreaz modul de
finalizare al operaiei executate. Aceti bistabili se numesc indicatori de condiie i ei pot fi testai n
instruciuni de salt condiionat.
Indicatorii cei mai utilizai sunt prezentai n continuare:
-Z (ZERO) se seteaz dac rezultatul este nul;
-S (SIGN) se seteaz dac rezultatul este negativ;
-C (CARRY) se seteaz dac apare un transport;
-V (OVERFLOW) se seteaz dac rezultatul unei operaii ntre numere cu semn are un semn
incorect (datorit transporturilor nedorite spre poziia semnului).

Seturi de instruciuni

Instruciunea este o operaie elementar ce se execut de microprocesor n cadrul unui program.
Orice instruciune este identificat pe baza unui cod de operaie ce face parte integrant din corpul
acesteia. Codul de operaie este completat de informaii suplimentare, numite uzual argumente.
Codul operaiei este singura poriune a instruciunii care se decodific intern i declaneaz
secvena de microoperaii din unitatea de comand (exist instruciuni formate numai din cod).
Lista complet de instruciuni pe care o poate interpreta i executa un microprocesor se numete
set de instruciuni. Instruciunile sunt stocate n memorie sub form de cuvinte consecutive, care
materializeaz programul existnd dou categorii de instruciuni mprite pe baza formatului:
- instruciuni cu format fix la care lungimea acestora i structura diverselor cmpuri
componente este fix, indiferent de codul instruciunii;
- instruciuni cu format variabil la care lungimea i structura cmpurilor componente este
dependent de codul instruciunii.

Formate uzuale de instruciuni


a)
CO
Cod operaie
AO
Adres operand
AO
Adres operand
AR
Adres rezultant
AI
Adres instruciune


b)
CO
Cod operaie
AO
Adres operand
AO
Adres operand
AR sau AI
Adres rezultant sau Adres instruciune


c)
CO
Cod operaie
AO
Adres operand
AO sau AI
Adres operand sau Adres instruciune


d)
CO
Cod operaie
AO sau AI
Adres operand sau Adres instruciune


8
a) - instruciune cu patru adrese: dou adrese de operanzi, o adres pentru rezultat i o adres
pentru urmtoarea instruciune. Formatul este incomod, datorit numrului mare de argumente, care nu
sunt folosite ntotdeauna.
b) - instruciune cu trei adrese: dou adrese de operanzi i o adres pentru rezultat sau pentru
urmtoarea instruciune. n acest caz se presupune c instruciunile sunt plasate n locaii succesive,
astfel c adresa instruciunii urmtoare este subneleas. Instruciunile care nu respect aceast
secven (salturi, apeluri de subrutine), de regul nu sunt instruciuni de calcul i ca urmare ultimul
cmp poate fi folosit pentru adresa urmtoarei instruciuni de executat.
c) - instruciuni cu dou adrese: dou adrese de operand, din care ultima poate fi pentru
urmtoarea instruciune. Rezultatul unei operaii este depus ntr-un loc implicit cunoscut (de obicei, n
acumulator).
d) - instruciuni cu o singur adres: o adres de operand sau pentru urmtoarea instruciune. n
aceast situaie att unul din operanzi, ct i rezultatul operaiei au un loc prestabilit. Acest format este
cel mai economic.
Microprocesoarele actuale folosesc , de obicei , instruciuni cu format variabil cu una sau cu
dou adrese , deoarece permit o utilizare optim a memoriei de program i o scurtare semnificativ a
timpului de extragere decodificare .

Instruciuni de transfer de date
Transfer informaia dintr-un registru (sau locaie de memorie) n alt registru. Operaiile curente
sunt de transfer (ncrcare, memorare) i interschimbare.

Instruciuni aritmetice i logice
n aceast categorie intr: adunare (ADD), scdere (SUB), nmulire (MUL), mprire (DIV),
complementare (CPL), test i comparare, I logic (AND), SAU logic (OR), SAU exclusiv (XOR),
negare (NEG), incrementare (INC), decrementare (DEC), deplasri stnga sau dreapta, rotiri stnga
(RL) sau dreapta (RR), tergerea (CLR) unui registru sau nscrierea unui bit cu o valoare dorit
(SETB/RESB).

Instruciuni de control al programului
Instruciunile din acest categorie au drept caracteristic faptul c oricare din ele modific
derularea secvenial a programului, provocnd ncrcarea contorului de program cu o valoare dintr-un
cmp de adres al instruciunii curente, sau cu o adres calculat ntr-un pas precedent al programului.
O instruciune de ramificare, numit i salt, determin prsirea secvenei normale a programului,
fr un mecanism de reinere a locului unde s-a ntmplat acest lucru. O posibil revenire este lsat
complet n seama programatorului.
Exist dou tipuri de salt:
-salt necondiionat (JMP);
-salt condiionat (JZ, JC), ce are loc doar dac este ndeplinit o condiie specificat prin starea
indicatorilor de condiie poziionai anterior.
Unele microprocesoare au o instruciune, considerat tot de salt, care determin CPU s ignore
una sau mai multe instruciuni dintr-o secven (SKIP).
Instruciunile de apel (CALL) i revenire (RET) din subroutine, realizeaz i salvarea adresei de
ntoarcere (a locului de unde trebuie reluat programul dup execuia subrutinei).

Instruciuni de control al microprocesorului
n acest grup pot fi nscrise unele instruciuni speciale de control:
-oprire (HALT) ce suspend execuia programului curent pn la apariia unei cereri de
ntrerupere extern ;
9
-nici o operaie (NOP);
-activarea (EI) sau dezactivarea (DI) sistemului de ntreruperi.

Instruciuni de intrare / ieire
Acest grup include dou instruciuni de transfer, cu porturi de intrare/ieire, adic citire port (IN)
sau scriere port (OUT).

Tehnici de adresare a memoriei

Din analiza formatelor de instruciuni, am observat c pentru a defini complet operaia de
executat este nevoie s cunoatem locul unde sunt amplasai operanzii, adic adresele lor. n general,
un operand se poate afla n registre sau n memoria de lucru.
Adresa unui registru se poate codifica pe un numr redus de bii (uzual 3 sau 4 bii), ce
poate face parte chiar din cmpul destinat codului operaie.
n al doilea caz, adresa locaiei de memorie unde se afl operandul este precizat ntr-un cmp
separat, ce face parte din corpul instruciunii.
Regsirea unei informaii presupune determinarea adresei utiliznd un set de convenii i metode
de calcul, cunoscute sub numele de tehnici de adresare.
Principalele tehnici de adresare ntlnite la majoritatea microprocesoarelor sunt:
Adresarea implicit
Pleac de la ideea c adresa (locul) unui operand este implicit cunoscut i definit chiar de
operaia executat, n timp ce al doilea operand se afl ntr-un registru de lucru.
Multe instruciuni cu adresare implicit sunt reprezentate pe un singur cuvnt, necesitnd pentru
extragere o singur referire la memorie.
Ex: ADD r ACC ACC + r ,
unde r este un registru de lucru;

Adresarea direct
Este legat de prezena unui operand n memorie, n care adresa lui nu mai poate fi implicit
cunoscut. Corpul instruciunii are un cmp explicit pentru adres. n timpul execuiei instruciunii se
mai face o referire suplimentar la memorie, pentru extragerea operandului.
Ex : ADD r , adr r r + ( adr ) ,
unde (adr) este coninutul locaiei de memorie cu adresa adr.
n cazul instruciunii de forma:
ADD adr ACC ACC + ( adr ) ,
avem un caz tipic de combinaie a adresrii implicite i a celei directe.
Adresare imediat
Presupune aducerea operandului chiar n corpul instruciunii (nlocuind corpul de adres cu
operandul). Avantajul const n economia unor referiri suplimentare la memorie n timpul execuiei
unei instruciuni, util mai ales la operaii cu constante.
ADD r ,4 r r + 4 ,
unde 4 este o constant plasat n corpul instruciunii.
Adresarea indexat
Este principalul mijloc de adresare a irurilor de date dispuse la adrese consecutive, pornind de la
o adres de baz. Adresarea indexat utilizeaz un registru special, numit registru de index, n care se
10
plaseaz numrul de ordine al elementului din ir, care trebuie prelucrat. n corpul instruciunii sunt
specificate adresa de baz i adresa registrului de index.
Ex : ADD r , adr [ x ] r r + ( adr +x )
Adresarea bazat
Este folosit ca mijloc alternativ (la adresarea indexat) de acces la irurile de date. Adresa irului
este plasat n registru special numit registru de baz, iar indexul face parte din corpul instruciunii.
Adresarea bazat combinat cu adresarea indexat dau un mijloc foarte eficient de acces la
blocurile mari de date.
Ex : ADD r , B[10] r r + (B+10) ,
unde r este registrul de lucru, B este registrul de baz, iar prin (B+10) se nelege coninutul
locaiei de memorie cu adresa dat de registrul de baz la care s-a adugat 10.
nlocuind constanta 10 cu x, adic B[x] se obine o adresare bazat i indexat.
Adresarea indirect
Este o modalitate de regsire a informaiei pe baza interpretrii operandului, nu ca o valoare de
calcul ci ca o nou adres de unde se poate extrage valoarea sa adevrat. Adresarea indirect permite
partajarea unei date ntre mai multe uniti de program, dar i accesul la irurile de date.
EX : ADD r , (adr) r r+(adr)
Prin (adr) se nelege coninutul locaiei de memorie cu adresa adr, la care se afl o nou adres.
Alte tipuri de adresri:
-adresare relativ la care calculul adresei se face n raport cu coninutul contorului de program;
-adresare cu autoincrementare i autodecrementare (punere i extragere din stiv);
-adresare paginat;
De obicei microprocesoarele nu admit combinarea oricrei insruciuni cu orice mod de adresare.
Instruciunile de transfer implementeaz cele mai multe moduri de adresare.

Microprocesorul i circuitele externe

Un sistem cu microprocesor, n afar de unitatea central, cuprinde memoria i subsistemul de
intrare/ieire ce sunt conectate printro magistral extern.

Magistral extern a unui microprocesor
Realizarea unui sistem cu microprocesor se face n jurul unei magistrale ce servete drept cale de
transfer a informaiei. i n interiorul microprocesorului principalele sale componente sunt dispuse tot
n jurul unei magistrale, numit magistral intern. n afara microprocesorului, aceasta are drept
corespondent magistrala extern.
Legtura ntre cele dou magistrale se face printr-o interfa special, al crui rol este de a asigura
att o separare electric, un numr relativ redus de terminale externe, dar i adaptarea la acelai
protocol de comunicaie ntre dispozitive.
Liniile unei magistrale se grupeaz n date (DATA BUS), adrese (AD BUS), comenzi/control
(CMD BUS) i alimentri.
Magistrala de date (DATA BUS), permite transferal informaiei bidirecional, fiind compus
dintr-un numr de linii egal cu lungimea cuvntului microprocesorului. Disciplina de magistral
impune ca la un moment dat ntr-un sistem s se afle n dialog doar dou dispozitive, unul surs i unul
destinaie, sensul de transfer fiind unic i dictat de cele dou tipuri de operaii de baz admise: citire i
scriere. Rezult c dispozitivele ce se conecteaz mpreun pe aceeai magistral de date trebuie s
11
dispun de buffere cu trei stri (3-State) astfel nct s nu apar conflicte electrice n timpul
transferurilor.
Magistrala de adrese (AD BUS) este unidirecional (de la microprocesor spre exterior) i
servete la vehicularea adreselor ce permit localizarea n memorie sau ntr-un registru de interfa a
informaiei utile.
Magistrala de comenzi (CMD BUS) conine semnale unidirecionale, menite s asigure
coordonarea i sincronizarea transferurilor cu dispozitivele externe precum memorie i interfee I/O.
Aceste semnale permit identificarea tipului de operaie de transfer ( RD-citire, WR-scriere), natura
dispozitivului ( MRQ-memorie, IORQ-interfee I/O), precum i natura informaiei vehiculate (date,
MI -instruciuni).
Microprocesorul dispune i de linii speciale pentru generatorul de tact (X1 i X2, pentru
conectarea cuarului sau CLK pentru semnalul de tact extern),precum i pentru sincronizarea cu
dispozitivele externe (RDY), iniializarea (RESET), cereri de ntrerupere (INT) i de magistral (BRQ
i BACK). Unele microprocesoare folosesc aceleai linii pentru adrese i date, acestea fiind
multiplexate. La nceputul fiecrui transfer, procesorul depune nti adresele (ce pot fi ngheate ntr-
un registru LATCH) i apoi folosete aceleai linii pentru citirea sau scrierea datelor.

Memoria
Sistemele cu microprocesoare utilizeaz dou tipuri de memorii pentru stocarea datelor si
programelor.
-Memorie numai cu posibilitate de citire care este nevolatil i care este scris de utilizator
(EPROM i EEPROM), aceasta fiind memoria de program.
-Memorie cu posibiliti de citire/scriere (RAM), care este volatil i servete la stocarea
temporar a informaiilor (date rezultate i chiar programe), aceasta fiind memoria de lucru.
Microprocesoarele de uz general, de regul multicip, nu dispun de resurse proprii de memorie (cu
excepia registrelor de lucru ce pot fi considerate memorii RAM foarte rapide dar de capacitate mic).
Multe microprocesoare actuale sunt dotate cu memorie RAM proprie foarte rapid, de capacitate
relativ modest (4 16 KB), al crui rol este de a funciona ca tampon ntre CPU i memoria extern,
mai lent, dar de mare capacitate. Aceast memorie, numit memorie CACHE, realizeaz funcia de
accelerator, mpreun cu un dispozitiv intern de gestionare, funcie ce este complet transparent pentru
utilizator.

Subsistemul de intrare/ieire
Face legtura ntre microprocesor i periferice prin interfee specializate, numite generic porturi.
n principiu, transferal datelor de la sau ctre porturi se face cu instruciuni speciale, numite instruciuni
de intrare/ieire. Citirea unui port se face cu o instruciune de intrare (IN), iar scrierea ctre un port se
face cu o instruciune de ieire (OUT). Utilizatorul are acces la funciile interfeei prin intermediul
registrelor acesteia. Registrele de interfa se grupeaz n trei categorii:
-registre de control, destinate manevrrii interfeei i perifericului asociat;
-registre de stare, cu ajutorul crora se verific condiiile i modul de execuie al operaiilor,
precum i erorile aprute;
-registre de date, prin care se face transferul propriu zis.






12

Structura simplificat a unei interfee este prezentat n figura urmtoare:



















Tipuri de Interfee
-interfaa paralel permite interconectarea perifericelor cu vitez de lucru ridicat;
-interfaa serial permite interconectarea perifericelor cu vitez redus, dar folosind un numr
mic de linii (de regul dou sau trei), conform unui standard (RS 232, RS 422, RS 485 etc);
-contor/temporizator: este o interfa special folosit ca i contor sau generator de impulsuri
programabil;
-interfaa video: permite obinerea imaginilor grafice ale caracterelor sau curbelor pe un ecran
monitor TV sau cu cristale lichide.

Transferuri , cicluri , stri

Principala utilitate a unei magistrale este transferul informaiei. Pentru aceasta, un microprocesor
trebuie s precizeze:
-natura operaiei dorite: poate fi citire sau scriere i este identificat cu ajutorul unor semnale
speciale de pe magistrala de comenzi ( RD sau WR);
-natura dispozitivului implicat n transfer ce poate fi memorie au interfa de intrare/ieire ( MRQ
- memorie, IORQ- interfaa I/O);
-adresa locaiei sau registrului dorit (AD BUS);

Transferul are loc pe durata unui ciclu de magistral. Cum microprocesorul este guvernat de un
semnal de tact precis, rezult c i ciclul de magistral este corelat cu acest tact. Perioada tactului se
numete stare, iar fiecare ciclu are un numr determinat de stri.
Ciclurile de citire/scriere ale microprocesorului sunt date n diagramele urmtoare:

AD BUS
CMD BUS
DATA
BUS
Decodor i
control
interfa
Registru
de control
Registru
de stare
Registru
de date
Registru
de date







DISPOZITIV
PERIFERIC

Tampon
13































nti microprocesorul pune o adres valid pe liniile AD BUS (locaie de memories sau registru
I/O), apoi activeaz pe rnd semnalele care specific natura dispozitivului ( MRQ sau IORQ) i apoi
operaia dorit ( RD sau WR).
n timpul ciclului de citire, microprocesorul ateapt dispozitivul adresat s pun pe magistrala de
date un cuvnt valid, pe care-l preia spre sfritul ciclului.Dac dispozitivul nu poate rspunde n timp
util, el poate folosi dezactivarea liniei READY, fornd microprocesorul s atepte.
Folosirea liniei READY pentru sincronizarea cu dispozitive lente determin microprocesorul s
insereze automat o succesiune de stri de ateptare, acestea sunt introduse n interiorul ciclului,
lungindu-i convenabil durata. Dac dispozitivul adresat nu activeaz linia READY, sistemul se poate
bloca.


CLK
Dat stabil
T
1
T
2

T
3

Ciclu de citire
AD BUS
DATA BUS
RD
MRQ , IRQ
Adres stabil
CLK
Dat stabil
T
1
T
2

T
3
Ciclu de scriere
AD BUS
DATA BUS
WR
MRQ , IRQ
Adres stabil
14
ntreruperi i accesul direct la memorie

O problem important n orice sistem de calcul este sincronizarea activitii microprocesorului
cu evenimentele externe. Toate aceste evenimente au un punct comun: sunt asincrone n raport cu
execuia programului de ctre procesor. Programul trebuie informat printr-un mijloc oarecare c un
astfel de eveniment s-a produs i c trebuie tratat corespunztor (printr-o secven specific numit
rutin de tratare).
Exist trei tipuri de mecanisme utilizate pentru tratarea evenimentelor externe:
- ateptarea (bucla) programat;
- ntreruperi;
- accesul direct la memorie.

Ateptarea programat

n forma sa cea mai simpl, const ntr-o secven de program care citete n permanen o
informaie de stare i testeaz un indicator, pentru a afla dac evenimentele au avut loc.
Procesorul nu execut nici o alt activitate pn ce evenimentul nu s-a produs rezultnd timpi
inutilizabili pentru sistem.

ntreruperi
Sunt faciliti hardware oferite de microprocesoare, prin care un dispozitiv periferic atrage
atenia asupra producerii unor evenimente externe ce reclam o intervenie prompt.
nainte ca o ntrerupere s poat avea loc, este necesar s se ndeplineasc condiiile:
-perifericul n cauz trebuie s fie capabil s genereze o ntrerupere;
-sistemul trebuie s posede toate mecanismele hardware de transmitere a semnalului de
ntrerupere de la periferic la CPU;
-programul ce se execut de microprocesor trebuie s conin secvene de cod special destinate
lucrului cu ntreruperi (rutine de tratare a ntreruperilor);
-perifericul trebuie s genereze semnalul de ntrerupere.

Apariia unei ntreruperi n activitatea curent a microproesorului determin urmtoarea secven
de evenimente:
-instruciunea n curs de execuie se ncheie normal;
-starea intern a procesorului (registrul de stare i contorul de program) este salvat pentru a
permite mai trziu reluarea activitii din locul unde a fost ntrerupt;
-microprocesorul ncarc noi informaii de stare i execut un salt de la o rutin de tratare
specific, ce realizeaz toate aciunile urgente implicate de apariia evenimentului;
-la sfritul rutinei de tratare (marcat cu o instruciune de revenire din ntrerupere IRET) se
restaureaz starea procesorului salvat anterior;
-restaurarea este ncheiat cu rencrcarea contorului de program cu valoarea salvat i prin
aceasta, reluarea programului ntrerupt.

Observaii
-tratarea ntreruperii trebuie s nlture cauza apariiei acesteia, astfel secvena de mai sus se
poate repeta;
-dac sosesc noi ntreruperi de aceeai natur, n timpul execuiei rutinei de tratare, se poate
ajunge la situaia ca aceasta s fie restartat recursive, pn la apariia unor erori sau pierderea
controlului asupra programului;
-procesoarele actuale suport instruciuni ce permit activarea, respectiv dezactivarea tratrii
ntreruperilor. Pe baza acestora se pot elimina ntreruperile neprevzute.
15
Microprocesoarele mai simple sunt dotate cu o singur intare pentru semnale de ntrerupere
(INT), dar cele mai multe posed o intrare suplimentar (NMI), care permite tratarea unor evenimente
imperative, motiv pentru care nu exist nici un mecanism intern de inhibare a acestora
(ntreruperi nemascabile).
O problem important apare la conectarea ntreruperilor de la mai multe periferice. Cum pot fi
luate acestea n considerare dac microprocesorul dispune doar de o singur intrare INT. Rspunsul
este dat de introducerea unui mecanism de multiplexare/arbitrare a cererilor de ntrerupere, bazat pe o
logic cu prioriti.
O soluie este folosirea unui controler de ntreruperi. Acesta dispune de un codor de prioriti care
determin solicitantul cu cel mai mare nivel de prioritate i genereaz semnalul de ntrerupere ctre
procesor. n momentul acceptrii ntreruperii, controlerul pune pe magistral un cuvnt de identificare
al perifericului solicitant, astfel nct microprocesorul s fie capabil s activeze rutina de tratare
specificat.
O alt soluie este cea n care logica de arbitrare i multiplexare a fost distribuit chiar n
circuitele de interfa. Fiecare circuit are o intrare de autorizare a ntreruperilor (IEI) i o ieire de
semnalizare a activitii ctre perifericul urmtor (IEO). Dac IEI1, atunci perifericul n cauz poate
genera o ntrerupere. Dac acelai periferic se afl n curs de tratare, el va pune IEO0. Un dispozitiv
cu IEI0 este obligat s transmit IEO0.
Prioritatea este stabilit pe baza poziiei fizice a perifericului ntr-un lan de prioriti.
Odat generat ntreruperea i acceptat de procesor, perifericul i va pune cuvntul de
identificare pe magistral, pentru a permite activarea rutinei de tratare corect.












































ntrerupere nemascabil
0
1
Controler
de
ntreruperi
n NMI
MICROPROCESOR
INT
Periferic 1
Periferic 2
Periferic n
16






















Accesul direct la memorie

Permite ca dou procesoare s partajeze aceeai magistral n scopul realizrii accesului la
aceleai resurse. Unul dintre ele este chiar unitatea central a sistemului, iar cellalt este dedicat numai
interceptrii i arbitrrii cererilor provenite de la periferice, precum i coordonrii transferurilor
solicitate, fr a mai apela la unitatea central.
Acest procesor dedicat controler pentru acces direct la memorie (DMA) funcioneaz n dou moduri:
-modul slave, funionnd ca un circuit de interfa obinuit, ce poate fi programat prin instruciuni
I/O, programarea are ca scop precizarea locaiei de memorie de unde ncepe transferul i sensul
transferului;
-modul master controlerul preia controlul magistralei (dup ce a primit acceptul CPU) i
dirijeaz traficul de informaie, genernd toate semnalele de control necesare.
Ciclurile DMA se pot ntreptrunde cu cele CPU, mai ales dac rata de transfer a perifericului nu
este prea mare, caz n care execuia programului principal este ncetinit foarte puin.
Multe controlere DMA sunt capabile s gestioneze mai multe periferice. Astfel, cererile DMA,
notate DRQ, emise de periferice, ajung la controler, care le arbitreaz i care solicit apoi eliberarea
temporar a magistralei de ctre procesor prin activarea semnalului BREQ.
Procesorul termin ciclul de memorie sau I/O n curs, dup care se deconecteaz de la magistral
i semnalizeaz acest lucru activnd linia BACK.
Controlerul DMA preia acum controlul magistralei i semnalizeaz acest lucru perifericului, prin
smnal de acceptare DACK. La terminarea unui transfer DMA, perifericul dezactiveaz linia DRQ,
controlerul eliberez magistrala, semnaliznd acest lucru i procesorului prin linia BRQ, acesta preia
din nou controlul magistralei i totul reintr n normal.









ntrerupere nemascabil
1
NMI
MICROPROCESOR
INT
Periferic 1
Periferic 2
Periferic n
IEI
IEI
IEI
IEO
IEO
IEO
17


















Avantajul imediat al tehnicii de transfer prin acces direct la memorie este c acesta permite
eliberarea procesorului de sarcina gestionrii directe a intrrilor i ieirilor de date din sistem: este
suficient s programm controlerul DMA pentru citirea unui bloc de date de la un periferic (de
exemplu. CAN), dup care procesorul este liber s realizeze o alt activitate ce nu are nevoie de datele
solicitate. Unitatea de transfer a datelor prin DMA este blocul, de aceea la sfritul transferului este
considerat a fi epuizarea blocului de date.






DRQ

DACK

DRQ

DACK

DRQ0

DACK0
BREQ

BACK

DRQ1

DACK1






BREQ

BACK


Microprocesor
Periferice
Controler DMA

S-ar putea să vă placă și