Documente Academic
Documente Profesional
Documente Cultură
Micro Proceso Are
Micro Proceso Are
1 . Introducere
Aparatele şi sistemele controlate cu microprocesor au apărut şi s-au perfecţionat odată cu apariţia
pe piaţă a miroproesoarelor (1970 -1980) după care (în special după 1985) s-au răspândit foarte rapid,
înlocuind aproape complet aparatele şi sistemele de măsură şi control numerice clasice (cu logică
cablată), atît în tehnica de laborator cît şi în instrumentaţia industrială, mai ales în controlul automat.
Clasificarea sistemelor cu microprocessor
În funcţie de complexitatea sistemului din care face parte vom avea:
- aparate de măsură cu microprocesor – utilizate ca instrumente de laborator sau de teren;
- sisteme de măsură cu microprocesor – folosite în complexe de măsură şi control în industrie.
1
În cazul în care informaţiile de prelucrat sunt complet definite atunci avem de-a face cu algoritmi
secvenţiali. Acest tip de algoritmi a stat la baza construcţiei maşinilor secvenţiale (Von Newman).
Dacă operaţiile elementare independente se pot executa paralel (pe mai multe unităţi de calcul), avem
de-a face cu algoritmi paraleli.
Începând cu anii 1970 au apărut tendinţe de automatizare a proceselor de producţie bazate iniţial
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 maşinii secvenţiale standard (Von Newman) este următoarea:
Unitate
Centrală Memorie
Subsistem de intrare/ieşire
Om/proces
2
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 atât memorie de lucru, cât şi interfeţe de intrare/ieşire,
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 aplicaţiilor de control în mediul industrial, ele se întâlnesc şi
sub denumirea de microcontrolere.
Microprocesoarele de uz general multicip au fost realizate şi în variante monocip, purtând
numele de microprocesoare înglobate. De exemplu, familiile 80186 sau 80386EX sunt produse de Intel
şi în varianta monocip având avantajul utilizării 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 următoarele tehnologii:
1 . Tehnologia bipolară – permite obţinerea unor viteze de lucru mari, dar cu un consum ridicat
şi cu probleme de climatizare deosebite.
2 . Tehnologia MOS – a evoluat mult, oferind condiţii de obţinere a unor performanţe de viteză
deosebită, în condiţiile 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 impurităţilor 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 impurităţilor de tip
n (fosfor sau arseniu) într-un substrat de siliciu de tip p, pentru a forma drena şi sursa. Se obţine o
densitate de componente similară cu cea specifică PMOS, dar asigură o viteză mai mare pentru
circuitele realizate, însă este mult mai scumpă decât 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 generaţii de microprocesoare şi microcontrolere. Această tehnologie foloseşte tranzistoare
cu canal n, proiectate special pentru a lucra la tensiuni joase şi la viteze mari.
CHMOS – este rodul îmbinării performanţelor de viteză deosebită ale tehnologiei HMOS, cu
consumul scăzut al celei CMOS. Rezultatul a fost remarcabil, astfel încât majoritatea producătorilor de
microprocesoare şi microcontrolere au trecut la această tehnologie.
3
Un cuvânt este un grup de biţi ce desemnează cantitatea maximă de informaţie ce poate fi
transferată la un moment dat de un dispozitiv numeric. Cuvântul este materializat prin căi paralele de
comunicaţie a informaţiei numite magistrale. Numărul de biţi al unui cuvânt constituie lungimea sa.
Lungimea unui cuvânt este una dintre caracteristicile cele mai importante ale unui microprocesor,
deoarece hotărăşte precizia datelor şi viteza de prelucrare a acestora.
DATA
BUS
IR PC
CLK SP
Gen CPU
Inst DCD CMD
Cuartz BUS
Reset INT
Unitatea de control
Asigură sincronizarea şi coordonarea operaţiilor din interiorul şi exteriorul microprocesorului. Ca
orice automat secvenţial 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ă frecvenţe între 1 şi 40 MHz (microprocesoarele ce
echipează calculatoarele moderne ajung până la frecvenţe de ordinal GHz).
În principal, unitatea de control solicită instrucţiunile stocate în memoria de program, le
decodifică şi pe baza acestora comandă funcţionarea celorlalte blocuri (ALU, registre etc ) interne
microprocesorului, în vederea executării corecte a acestora.
5
Unitatea logico – aritmetică
ALU execută operaţiile aritmetice şi logice impuse de instrucţiunile programului, sub
coordonarea directă a unităţii de control.
Operaţiile aritmetice pot fi: adunare şi scădere (de bază - obligatorii), respectiv înmulţire,
împărţire, ridicare la putere (suplimentare).
Operaţiile logice pot fi: NU, ŞI, SAU (de bază - obligatorii), respectiv SAU – EXCLUSIV,
deplasări, rotiri (suplimentare).
Participanţii la o operaţie aritmetică sau logică se numesc operanzi, iar semnul grafic asociat
acesteia se numeşte operator. Dacă operaţia necesită un singur operand (schimbarea semnului sau
negarea), ea se numeşte operaţie unară. Dacă operaţia necesită 2 operanzi (adunare, ŞI logic), ea se
numeşte binară.
Registrele interne
Au rolul de a stoca temporar operanzii şi rezultatele vehiculate prin ALU, pe parcursul uneia sau
mai multor instrucţiuni. Registrele folosite în mod uzual la calcule se numesc registre generale, iar cele
folosite la operaţii speciale (adresarea, manevrarea stivelor) se numesc registre funcţionale.
Registrele generale pot îndeplini mai multe roluri:
- manevră – pentru stocarearea temporară a unui operand sau a unui rezultat;
- acumulator (ACC) – registru folosit în operaţiile de adunare pentru cumularea unui şir de
valori (unul din operanzi se găseşte într-un registru de lucru, iar celălalt îl constituie chiar conţinutul
acumularorului), iar la sfârşit 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 locaţii
succesive de memorie;
-indicator de stivă (SP) - permite adresarea unei zone de memorie (stivă), special creată
pentru a facilita manevrarea datelor, pe principiul ultimul sosit–primul servit (LIFO), prin operaţii de
tipul PUSH, POP, precum şi execuţia subrutinelor sau a tratării întreruperilor.
Un microprocesor posedă cel puţin 2 registre generale (acumulator şi manevră). Majoritatea
microprocesoarelor folosesc seturi de 4 – 16 registre, ce pot prelua unul din rolurile prezentate mai sus.
Registrele funcţionale
Îndeplinesc sarcini dedicate pentru controlul derulării instrucţiunilor în microprocesor.
-Registrul de stare program (PS) – conţine o serie de informaţii ce descriu starea execuţiei
progarmului (indicatorii de condiţie, care reprezintă modul de terminare a unei operaţii logico-
aritmetice, utilizată la realizarea salturilor condiţionate, precum şi a indicatorilor de semnalare a
evenimentelor speciale şi a modurilor de lucru);
-Registrul de instrucţiuni (IR) – destinat stocării instrucţiunii pe parcursul execuţiei sale;
-Contorul de program (PC) – indică în permanenţă instrucţiunea curentă (de executat);
6
-imediat ce codul instrucţiunii este disponibil, în registrul de instrucţiuni (IR), el este decodificat şi
transformat în semnale de activare a diverselor microoperaţii din care este compusă execuţia propriu-
zisă a instrucţiunii;
-încă din faza finală a execuţiei instrucţiunii, se poate declanşa citirea instrucţiunii următoare;
În cazul instrucţiunilor de mai multe cuvinte, se fac referiri succesive la memorie.
Multe microoperaţii presupun folosirea ALU pentru calcule “ascunse” (calcule de adresă).
Operaţiile 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 operaţiei executate. Aceşti bistabili se numesc indicatori de condiţie şi ei pot fi testaţi în
instrucţiuni de salt condiţionat.
Indicatorii cei mai utilizaţi sunt prezentaţi î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 operaţii între numere cu semn are un semn
incorect (datorită transporturilor nedorite spre poziţia semnului).
Seturi de instrucţiuni
Instrucţiunea este o operaţie elementară ce se execută de microprocesor în cadrul unui program.
Orice instrucţiune este identificată pe baza unui cod de operaţie ce face parte integrantă din corpul
acesteia. Codul de operaţie este completat de informaţii suplimentare, numite uzual argumente.
Codul operaţiei este singura porţiune a instrucţiunii care se decodifică intern şi declanşează
secvenţa de microoperaţii din unitatea de comandă (există instrucţiuni formate numai din cod).
Lista completă de instrucţiuni pe care o poate interpreta şi executa un microprocesor se numeşte
set de instrucţiuni. Instrucţiunile sunt stocate în memorie sub formă de cuvinte consecutive, care
materializează programul existând două categorii de instrucţiuni împărţite pe baza formatului:
- instrucţiuni cu format fix – la care lungimea acestora şi structura diverselor câmpuri
componente este fixă, indiferent de codul instrucţiunii;
- instrucţiuni cu format variabil – la care lungimea şi structura câmpurilor componente este
dependentă de codul instrucţiunii.
CO AO AO AR AI
a) Cod operaţie Adresă operand Adresă operand Adresă rezultant Adresă instrucţiune
CO AO AO AR sau AI
b) Cod operaţie Adresă operand Adresă operand Adresă rezultant sau Adresă instrucţiune
CO AO AO sau AI
c) Cod operaţie Adresă operand Adresă operand sau Adresă instrucţiune
CO AO sau AI
d) Cod operaţie Adresă operand sau Adresă instrucţiune
7
a) - instrucţiune cu patru adrese: două adrese de operanzi, o adresă pentru rezultat şi o adresă
pentru următoarea instrucţiune. Formatul este incomod, datorită numărului mare de argumente, care nu
sunt folosite întotdeauna.
b) - instrucţiune cu trei adrese: două adrese de operanzi şi o adresă pentru rezultat sau pentru
următoarea instrucţiune. În acest caz se presupune că instrucţiunile sunt plasate în locaţii succesive,
astfel că adresa instrucţiunii următoare este subînţeleasă. Instrucţiunile care nu respectă această
secvenţă (salturi, apeluri de subrutine), de regulă nu sunt instrucţiuni de calcul şi ca urmare ultimul
câmp poate fi folosit pentru adresa următoarei instrucţiuni de executat.
c) - instrucţiuni cu două adrese: două adrese de operand, din care ultima poate fi pentru
următoarea instrucţiune. Rezultatul unei operaţii este depus într-un loc implicit cunoscut (de obicei, în
acumulator).
d) - instrucţiuni cu o singură adresă: o adresă de operand sau pentru următoarea instrucţiune. În
această situaţie atât unul din operanzi, cât şi rezultatul operaţiei au un loc prestabilit. Acest format este
cel mai economic.
Microprocesoarele actuale folosesc , de obicei , instrucţiuni 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 .
8
-nici o operaţie (NOP);
-activarea (EI) sau dezactivarea (DI) sistemului de întreruperi.
Instrucţiuni de intrare / ieşire
Acest grup include două instrucţiuni de transfer, cu porturi de intrare/ieşire, adică citire port (IN)
sau scriere port (OUT).
9
plasează numărul de ordine al elementului din şir, care trebuie prelucrat. În corpul instrucţiunii 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 instrucţiunii.
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 înţelege conţinutul
locaţiei de memorie cu adresa dată de registrul de bază la care s-a adăugat 10.
Înlocuind constanta 10 cu x, adică B[x] se obţine o adresare bazată şi indexată.
Adresarea indirectă
Este o modalitate de regăsire a informaţiei pe baza interpretării operandului, nu ca o valoare de
calcul ci ca o nouă adresă de unde se poate extrage valoarea sa adevărată. Adresarea indirectă permite
partajarea unei date între mai multe unităţi de program, dar şi accesul la şirurile de date.
EX : ADD r , (adr) r ← r+(adr)
Prin (adr) se înţelege conţinutul locaţiei de memorie cu adresa adr, la care se află o nouă adresă.
Alte tipuri de adresări:
-adresare relativă – la care calculul adresei se face în raport cu conţinutul contorului de program;
-adresare cu autoincrementare şi autodecrementare (punere şi extragere din stivă);
-adresare paginată;
De obicei microprocesoarele nu admit combinarea oricărei insrucţiuni cu orice mod de adresare.
Instrucţiunile de transfer implementează cele mai multe moduri de adresare.
10
dispună de buffere cu trei stări (3-State) astfel încât să nu apară conflicte electrice în timpul
transferurilor.
Magistrala de adrese (AD BUS) este unidirecţională (de la microprocesor spre exterior) şi
serveşte la vehicularea adreselor ce permit localizarea în memorie sau într-un registru de interfaţă a
informaţiei utile.
Magistrala de comenzi (CMD BUS) conţine semnale unidirecţionale, menite să asigure
coordonarea şi sincronizarea transferurilor cu dispozitivele externe precum memorie şi interfeţe I/O.
Aceste semnale permit identificarea tipului de operaţie de transfer ( RD -citire, WR -scriere), natura
dispozitivului ( MRQ -memorie, IORQ -interfeţe I/O), precum şi natura informaţiei vehiculate (date,
MI -instrucţiuni).
Microprocesorul dispune şi de linii speciale pentru generatorul de tact (X1 şi X2, pentru
conectarea cuarţului sau CLK pentru semnalul de tact extern),precum şi pentru sincronizarea cu
dispozitivele externe (RDY), iniţializarea (RESET), cereri de întrerupere (INT) şi de magistrală (BRQ
şi BACK). Unele microprocesoare folosesc aceleaşi linii pentru adrese şi date, acestea fiind
multiplexate. La începutul fiecărui transfer, procesorul depune întâi adresele (ce pot fi ˝îngheţate˝ într-
un registru LATCH) şi apoi foloseşte aceleaşi 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 posibilităţi de citire/scriere (RAM), care este volatilă şi serveşte la stocarea
temporară a informaţiilor (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
excepţia 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 cărui rol este de a funcţiona ca tampon între CPU şi memoria externă,
mai lentă, dar de mare capacitate. Această memorie, numită memorie CACHE, realizează funcţia de
accelerator, împreună cu un dispozitiv intern de gestionare, funcţie ce este complet transparentă pentru
utilizator.
Subsistemul de intrare/ieşire
Face legătura între microprocesor şi periferice prin interfeţe specializate, numite generic porturi.
În principiu, transferal datelor de la sau către porturi se face cu instrucţiuni speciale, numite instrucţiuni
de intrare/ieşire. Citirea unui port se face cu o instrucţiune de intrare (IN), iar scrierea către un port se
face cu o instrucţiune de ieşire (OUT). Utilizatorul are acces la funcţiile interfeţei prin intermediul
registrelor acesteia. Registrele de interfaţă se grupează în trei categorii:
-registre de control, destinate manevrării interfeţei şi perifericului asociat;
-registre de stare, cu ajutorul cărora se verifică condiţiile şi modul de execuţie al operaţiilor,
precum şi erorile apărute;
-registre de date, prin care se face transferul propriu – zis.
11
Structura simplificată a unei interfeţe este prezentată în figura următoare:
CMD BUS
Decodor şi
Registru
control
AD BUS de control
interfaţă
Registru
de stare
DISPOZITIV
PERIFERIC
Registru
de date
Tipuri de Interfeţe
-interfaţa paralelă – permite interconectarea perifericelor cu viteză de lucru ridicată;
-interfaţa serială – permite interconectarea perifericelor cu viteză redusă, dar folosind un număr
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;
-interfaţa video: permite obţinerea imaginilor grafice ale caracterelor sau curbelor pe un ecran
monitor TV sau cu cristale lichide.
12
Ciclu de citire
T1 T2 T3
CLK
MRQ , IRQ
RD
Ciclu de scriere
T1 T2 T3
CLK
MRQ , IRQ
WR
Întâi microprocesorul pune o adresă validă pe liniile AD BUS (locaţie de memories sau registru
I/O), apoi activează pe rând semnalele care specifică natura dispozitivului ( MRQ sau IORQ ) şi apoi
operaţia dorită ( RD sau WR ).
În timpul ciclului de citire, microprocesorul aşteaptă dispozitivul adresat să pună pe magistrala de
date un cuvânt valid, pe care-l preia spre sfârşitul ciclului.Dacă dispozitivul nu poate răspunde în timp
util, el poate folosi dezactivarea liniei READY, forţând microprocesorul să aştepte.
Folosirea liniei READY pentru sincronizarea cu dispozitive lente determină microprocesorul să
insereze automat o succesiune de stări de aşteptare, acestea sunt introduse în interiorul ciclului,
lungindu-i convenabil durata. Dacă dispozitivul adresat nu activează linia READY, sistemul se poate
bloca.
13
Întreruperi şi accesul direct la memorie
O problemă importantă în orice sistem de calcul este sincronizarea activităţii microprocesorului
cu evenimentele externe. Toate aceste evenimente au un punct comun: sunt asincrone în raport cu
execuţia programului de către procesor. Programul trebuie informat printr-un mijloc oarecare că un
astfel de eveniment s-a produs şi că trebuie tratat corespunzător (printr-o secvenţă specifică numită
rutină de tratare).
Există trei tipuri de mecanisme utilizate pentru tratarea evenimentelor externe:
- aşteptarea (bucla) programată;
- întreruperi;
- accesul direct la memorie.
Aşteptarea programată
În forma sa cea mai simplă, constă într-o secvenţă de program care citeşte în permanenţă o
informaţie de stare şi testează un indicator, pentru a afla dacă evenimentele au avut loc.
Procesorul nu execută nici o altă activitate până ce evenimentul nu s-a produs rezultând timpi
inutilizabili pentru sistem.
Întreruperi
Sunt facilităţi hardware oferite de microprocesoare, prin care un dispozitiv periferic ˝atrage
atenţia˝ asupra producerii unor evenimente externe ce reclamă o intervenţie promptă.
Înainte ca o întrerupere să poată avea loc, este necesar să se îndeplinească condiţiile:
-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ă conţină secvenţe de cod special destinate
lucrului cu întreruperi (rutine de tratare a întreruperilor);
-perifericul trebuie să genereze semnalul de întrerupere.
Apariţia unei întreruperi în activitatea curentă a microproesorului determină următoarea secvenţă
de evenimente:
-instrucţiunea în curs de execuţie se încheie normal;
-starea internă a procesorului (registrul de stare şi contorul de program) este salvată pentru a
permite mai târziu reluarea activităţii din locul unde a fost întreruptă;
-microprocesorul încarcă noi informaţii de stare şi execută un salt de la o rutină de tratare
specifică, ce realizează toate acţiunile urgente implicate de apariţia evenimentului;
-la sfârşitul rutinei de tratare (marcat cu o instrucţiune de revenire din întrerupere IRET) se
restaurează starea procesorului salvată anterior;
-restaurarea este încheiată cu reîncărcarea contorului de program cu valoarea salvată şi prin
aceasta, reluarea programului întrerupt.
Observaţii
-tratarea întreruperii trebuie să înlăture cauza apariţiei acesteia, astfel secvenţa de mai sus se
poate repeta;
-dacă sosesc noi întreruperi de aceeaşi natură, în timpul execuţiei rutinei de tratare, se poate
ajunge la situaţia ca aceasta să fie restartată recursive, până la apariţia unor erori sau pierderea
controlului asupra programului;
-procesoarele actuale suportă instrucţiuni ce permit activarea, respectiv dezactivarea tratării
întreruperilor. Pe baza acestora se pot elimina întreruperile neprevăzute.
14
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. Răspunsul
este dat de introducerea unui mecanism de multiplexare/arbitrare a cererilor de întrerupere, bazat pe o
logică cu priorităţi.
O soluţie este folosirea unui controler de întreruperi. Acesta dispune de un codor de priorităţi care
determină solicitantul cu cel mai mare nivel de prioritate şi generează semnalul de întrerupere către
procesor. În momentul acceptării întreruperii, controlerul pune pe magistrală un cuvânt de identificare
al perifericului solicitant, astfel încât microprocesorul să fie capabil să activeze rutina de tratare
specificată.
O altă soluţie 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 ieşire de
semnalizare a activităţii către perifericul următor (IEO). Dacă IEI═1, atunci perifericul în cauză poate
genera o întrerupere. Dacă acelaşi periferic se află în curs de tratare, el va pune IEO═0. Un dispozitiv
cu IEI═0 este obligat să transmită IEO═0.
Prioritatea este stabilită pe baza poziţiei fizice a perifericului într-un lanţ de priorităţi.
Odată generată întreruperea şi acceptată de procesor, perifericul îşi va pune cuvântul de
identificare pe magistrală, pentru a permite activarea rutinei de tratare corectă.
Periferic 1 0
Controler INT
Periferic 2 1 de
întreruperi
MICROPROCESOR
Periferic n n NMI
Întrerupere nemascabilă
15
‘1’
IEI
Periferic 1
IEO
INT
IEI
Periferic 2 MICROPROCESOR
IEO
NMI
IEI
Periferic n
IEO
Întrerupere nemascabilă
16
DRQ DRQ0
DACK DACK0
BREQ BREQ
BACK BACK
DRQ DRQ1
Periferice
Controler DMA
Avantajul imediat al tehnicii de transfer prin acces direct la memorie este că acesta permite
eliberarea procesorului de sarcina gestionării directe a intrărilor şi ieşirilor de date din sistem: este
suficient să programăm 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 sfârşitul transferului este
considerat a fi epuizarea blocului de date.
17