Documente Academic
Documente Profesional
Documente Cultură
Micro Proceso Are
Micro Proceso Are
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.
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. 1
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:
Unitate Central
Memorie
Subsistem de intrare/ieire
Om/proces 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, 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 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.
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.
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 .
REG DCD X B R3 R1 R4 R2 BI
ADD BUS
Inst DCD
Reset
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. 5
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 logicoaritmetice, 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);
-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 propriuzis 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) b) c) d) CO Cod operaie CO Cod operaie CO Cod operaie CO Cod operaie AO Adres operand AO Adres operand AO Adres operand AO Adres operand AO Adres operand AR Adres rezultant AI Adres instruciune
AO sau AI Adres operand sau Adres instruciune AO sau AI Adres operand sau Adres instruciune
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 .
-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).
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 ] 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. r r + ( adr +x )
10
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 ntrun 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.
11
AD BUS
Registru de control
DATA BUS
Tampon
Registru de date
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.
12
Ciclu de citire T1 CLK AD BUS MRQ , IRQ RD DATA BUS Dat stabil Adres stabil T2 T3
Ciclu de scriere T1 CLK AD BUS MRQ , IRQ WR DATA BUS Dat stabil Adres stabil T2 T3
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.
13
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.
Periferic 1
Periferic 2
Periferic n
NMI
ntrerupere nemascabil
15
1 IEI Periferic 1 IEO IEI Periferic 2 IEO NMI IEI Periferic n IEO ntrerupere nemascabil INT MICROPROCESOR
DRQ DACK
BREQ BACK
DRQ1 DACK1
Microprocesor
Controler DMA 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.
17