SISTEME CU MICROPROCESOARE – note de curs
1
1. ARHITECTURA GENERALĂ
Cuprins
Introducere
Obiective
1.1 ARHITECTURA VON NEUMANN
1.1.1 Unitatea centrală de prelucrare
1.1.2 Magistralele
1.1.3 Memoria
1.1.4 Echipamentele de intrare-ieşire
1.2 ARHITECTURA HARVARD
1.3 MICROPROCESOR SAU MICROCONTROLER?
1.4 STRUCTURA INTERNĂ A MICROCONTROLERELOR
DIN FAMILIA PIC18F
1.4.1 Execuţia instrucţiunilor
1.4.2 Unitatea de control
1.4.3 Unitatea aritmetică şi logică
Concluzii
Teste de autoevaluare
Bibliografie
Dicţionar
Teste de evaluare
ARHITECTURA GENERALĂ
2
Introducere
Microcontrolerele sunt în esenţă sisteme de calcul având arhitectura
modelată pe baza celei a calculatoarelor numerice. Pornind de la această
idee, capitolul curent urmăreşte câteva principii privind arhitectura şi
modul de funcţionare al acestor tipuri de sisteme.
Obiective
După parcurgerea acestui capitol cursantul va trebui:
- să înţeleagă deosebirile existente între arhitecturile sistemelor de
calcul de tip von Neumann şi Harvard;
- să înţeleagă relaţia dintre microcontrolere şi microprocesoare
- să cunoască rolul şi structura elementelor componente ale
sistemelor de calcul;
- să cunoască modul în care se execută instrucţiunile şi conceptul de
pipeline;
- să cunoască rolul registrului de lucru (WREG) şi al registrului
STATUS.
1.1 ARHITECTURA VON NEUMANN
Din punct de vedere istoric sistemele de calcul moderne îşi au originea în cele
dezvoltate în timpul celui de-al doilea război mondial. Aceste sisteme iniţiale îndeplineau o
funcţionalitate dedicată, fiind proiectate pentru a realiza un singur task pe baza unor seturi de
date, iar pentru a-şi schimba comportamentul era necesară refacerea conexiunilor fizice dintre
elementele componente. Evoluţia esenţială a acestor sisteme de calcul rudimentare s-a produs
în momentul în care s-a înţeles că programul putea fi stocat în memorie alături de date. Unul
dintre avantajele acestei arhitecturi, denumită von Neumann, după numele celui care a
coordonat proiectul, îl reprezintă flexibilitatea. Astfel, modificarea programului presupune
doar încărcarea secvenţei de biţi corespunzătoare în zona de memorie potrivită.
Simplitatea arhitecturii von Neumann a făcut ca majoritatea sistemelor de calcul
moderne să fie bazate pe această structură. Elementele caracteristice ale acestor sisteme de
calcul sunt: unitatea centrală de prelucrare (UCP), memoriile, echipamentele de intrare ieşire
şi magistralele. Unitatea centrală de prelucrare conţine o unitate de control, care realizează
interpretarea, secvenţierea instrucţiunilor şi comandă celelalte componente ale sistemului, şi o
unitate aritmetică şi logică (UAL), care execută instrucţiuni. Unitatea de memorie stochează
instrucţiuni şi date, iar echipamentele periferice asigură interacţiunea dintre sistemul de calcul
SISTEME CU MICROPROCESOARE – note de curs
3
şi mediul înconjurător prin introducerea instrucţiunilor şi a datelor, respectiv prin
reprezentarea rezultatelor. Magistralele furnizează căile de comunicaţie între componentele
sistemului de calcul.
În Fig. 1.1 se prezintă structura generală a sistemelor de calcul bazate pe arhitectura
von Neumann.
Fig. 1.1. Structura generală a sistemelor de calcul bazate pe arhitectura von Neumann
1.1.1 Unitatea centrală de prelucrare (UCP)
Funcţia principală a unităţii centrale de prelucrare (UCP) este de a executa o secvenţă
de instrucţiuni stocată în memorie. Acest lucru se va realiza în mod continuu şi repetat atâta
timp cât sitemul este activ. Un ciclu de instrucţiune presupune extragerea instrucţiunilor din
memorie într-un registru intern al UCP, decodificarea acestora şi apoi execuţia propriuzisă.
Extragerea succesivă a instrucţiunilor din memorie se realizează sub controlul unui circuit
denumit numărător de program (en. PC – Program Counter), care va conţine adresa
următoarei instrucţiuni din memorie care urmează a fi extrasă. Datele rezultate din execuţia
programului sau datele utilizate de program pot fi accesate din memorie. De asemenea,
unitatea centrală de prelucrare supervizează şi comandă celelalte componente ale sistemului
prin liniile de control.
Structura internă a unităţii centrale de prelucrare conţine în general următoarele
componente majore:
1. O unitate de control care realizează interpretarea şi secvenţierea
instrucţiunilor, precum şi comanda celorlalte componente ale sistemului.
2. O unitate aritmetică şi logică care execută instrucţiunile din memorie. Ea este
responsabilă de manipularea datelor şi executarea operaţiilor aritmetice şi logice.
3. Regiştri interni (memorii de mare viteză), cu rol în stocarea de informaţii
necesare execuţiei instrucţiunilor (ex. Registrul de instrucţiuni, acumulatorul etc.).
În general, aceşti regiştri interni stochează doar câţiva octeţi de date, care pot fi
operanzi, rezultate, adrese de memorie etc.
ARHITECTURA GENERALĂ
4
1.1.2 Magistralele
Magistralele caracterizează căile de comunicaţie ale sistemului de calcul. Informaţia
transferată între componentele sistemului este transmisă sub formă binară, paralel pe liniile
magistralelor. Se pot identifica trei tipuri de magistrale:
1. Magistrala de date este utilizată la transferul datelor necesare procesării efectuate de
UCP. De exemplu, un sistem de calcul de 8 biţi este un sistem de calcul care dispune
de o magistrală de date cu lăţimea de 8 biţi, fiind capabil să manipuleze date (numere)
reprezentate pe 8 biţi. Astfel, un asemenea sistem va putea efecuta operaţii între
numere de 8 biţi, furnizând ca rezultate tot numere de 8 biţi.
Existenţa unei magistrale de 8 biţi nu limitează procesorul doar la utilizarea datelor cu
dimensiunea de 8 biţi, ci indică faptul că procesorul poate accesa un singur octet de
date per ciclu de memorie. De aceea, în raport cu o magistrală cu laţimea de 16 biţi, o
magistrală de 8 biţi poate transmite doar jumătate din informaţie în unitatea de timp.
Astfel, procesoarele de 16 biţi sunt mai rapide decât cele de 8 biţi ş.a.m.d. Chiar dacă
procesoarele de 16, 32 sau 64 de biţi pot accesa date cu dimensiunea maximă egală cu
laţimea magistralelor lor, ele pot accesa la fel de bine şi locaţii de memorie cu
dimensiunea mai mică (ex. câte un octet)
2. Magistrala de adrese este utilizată pentru specificarea adreselor locaţiilor de
memorie accesate. De exemplu, în cazul unei magistrale de adrese de 8 biţi, sistemul
poate accesa 28=256 locaţii de memorie distincte. Cu 16 linii de adresă se pot adresa
65536 locaţii de memorie.
3. Magistrala de control are rolul de a conduce semnalele de control ale UCP care
comandă componentele sistemului. De exemplu, semnale transmise prin intermediul
magistralei de control pot specifica modul de acces la memorie în vederea realizării
unor operaţii de scriere sau de citire. Practic liniile de scriere şi citire ale magistralei
controlează direcţia datelor de pe magistrala de date. Alte semnale ale magistralei de
control pot include: tactul sistem, liniile de întrerupere, linii de stare etc.
SISTEME CU MICROPROCESOARE – note de curs
5
1.1.3 Memoria
Memoriile sunt caracterizate de conţinutul pe care acestea îl stochează într-un set de
regiştri şi locaţia sau adresa individuală a fiecărui registru. În cazul arhitecturii von Neumann,
atât instrucţiunile cât şi datele se găsesc în acelaşi spaţiu de memorie. Indiferent că este
internă sau externă, memoria reprezintă un spaţiu de stocare şi poate fi accesată cu ajutorul
magistralelor dacă se specifică adresa locaţiei dorite şi tipul operaţiei (scriere sau citire).
1.1.4 Echipamentele de intrare-ieşire
Pentru a putea fi util un sistem de calcul trebuie să fie capabil să interacţioneze cu
mediul înconjurător. Acest lucru se realizează prin intermediul echipmantelor de intrare ieşire.
Comunicarea dintre UCP şi echipamentele periferice se va efectua tot prin intermediul
magistralelor printr-un set de regiştri cu adrese proprii denumite porturi. Porturile pot fi
accesate în mod similar cu memoria, în multe situaţii chiar sunt mapate în spaţiul de adrese al
memoriei. Prin intermediul porturilor pot fi configurate perifericele, pot fi trimise date direct
spre exterior sau pot fi citite date binare din exterior.
1.2 ARHITECTURA HARVARD
Principalul avantaj al arhitecturii von Neumann îl reprezintă simplitatea, totuşi,
existenţa unor magistrale comune pentru toate cele trei componente ale arhitecturii determină
faptul că sistemul de calcul în cauză nu poate realiza la un anumit moment decât un singur
lucru. Astfel, de exemplu, accesul la datele din memorie nu se poate produce în acelaşi timp
cu extragerea unei instrucţiuni din memorie.
În aceste condiţii, în prima decadă după cel de-al doilea război mondial s-a dezvoltat
la universitatea Harvard o nouă arhitectură pentru sistemele de calcul. Această arhitectură,
denumită arhitectura Harvard reprezenta o variaţie a arhitecturii von Neumann fiind
caracterizată de faptul că datele şi instrucţiunile sunt stocate separat în spaţii de memorie
distincte şi sunt accesate prin magistrale diferite. Avantajul acestei arhitecturi este dat de
posibilitatea de a accesa datele şi instrucţiunile în acelaşi timp, având drept consecinţă
creşterea complexităţii arhitecturii interne. Acesta este şi motivul pentru care arhitectura
Harvard a început să fie prezentă mai mult abia odată cu evoluţia circuitelor integrate.
ARHITECTURA GENERALĂ
6
În Fig. 1.2 sunt alăturate, cu scop comparativ, cele două tipuri de arhitecturi de sisteme
de calcul: von Neumann (Fig. 1.2-a) şi Harvard (Fig. 1.2-b). În cea din urmă se evidenţiază
cele două spaţii de memorie distincte împreună cu magistralele asociate. Fiecare memorie
dispune de propria sa magistrală de adrese, respectiv de date, astfel încât nu există nici o
legătură între adresele sau datele celor două spaţii de memorie.
Fig. 1.2. Comparaţie între arhitecturile von Neumann şi Harvard
1.3 MICROPROCESOR SAU MICROCONTROLER?
Până acum, în paragrafele anterioare s-a făcut referire doar la nişte sisteme de calcul
care ne trimit cu gândul mai mult spre calculatoarele numerice.
Dar, ce sunt de fapt microprocesoarele, respectiv microcontrolerele?
Pe scurt, microprocesorul implementează funcţiile unităţii centrale de prelucrare.
Pentru a putea fi folosit într-un sistem de calcul, unui microprocesor trebuie să i se adauge
alte componente, cum ar fi memorie, sau componente pentru primirea şi trimiterea datelor.
Pe de altă parte microcontrolerul a fost proiectat să conţină toate cele trei
componente principale (UCP, memorie, echipamente de intrare-ieşire) într-un singur circuit
integrat. Astfel, nu mai sunt necesare alte componente externe deoarece toate perifericele
sunt deja incluse în el. Funcţiile principale ale componentelor însă rămân neschimbate fiind
aceleaşi indiferent de aplicaţia dezvoltată, dar din motive de preţ şi dimensiune
microcontrolerele dispun de un set redus de instrucţiuni şi o capacitate de adresare mai mică.
Astfel, făcând trimitere la cele două tipuri de arhitecturi prezentate anterior în Fig. 1.1
şi Fig. 1.2, microprocesorul reprezintă unitatea centrală de prelucrare, pe când
microcontrolerul reprezintă întreg sistemul de calcul.
SISTEME CU MICROPROCESOARE – note de curs
7
Pentru a pune în evidenţă structura internă a microcontrolerelor se consideră următorul
exemplu.
Exemplu
Se analizează cazul unui sistem de control al unei sere. Acesta
monitorizează umiditatea din sol cu ajutorul unui traductor care furnizează
un semnal analogic. Dacă acest semnal este sub o anumită valoare se
comandă pornirea sistemului de irigaţie care presupune deschiderea unei
valve pentru apă timp de 5 secunde apoi închiderea acesteia timp de 5
secunde şi repetarea acestui ciclu până la refacerea umidităţii dorite a
solului. Apa pentru irigat provine dintr-un rezervor, iar nivelul acesteia
este sesizat cu ajutorul unui flotor. Când nivelul apei scade sub un anumit
prag se va închide un comutator care va activa o alarmă sonoră. Se cere
structura unui sistem bazat pe microcontroler care implementează
funcţionalitatea amintită.
Soluţia pentru această problemă se prezintă în Fig. 1.3 şi pune în evidenţă
perifericele necesare. Pentru interfaţarea semnalului care provine de la
traductorul de umiditate va fi necesar un port de intrare analogic, respectiv
un convertor analog-digital. Având în vedere că rezistenţa electrică a
solului dintre cei doi electrozi ai traductorului se modifică odată cu
umiditatea, prin intermediul unui divizor rezistiv se va putea culege
semnalul analogic necesar. Convertorul analog-digital al
microcontrolerului va discretiza acest semnal furnizând o valoare digitală
internă echivalentă care va putea fi comparată cu valoarea de referinţă.
Resursele necesare pentru implementarea proiectului pot fi
rezumate după cum urmează:
- o intrare pentru un oscilator extern conectat la un counter/timer
care să furnizeze baza de timp pentru obţinerea celor 5 secunde
cerute. În general, tactul sistem este de cele mai multe ori folosit
de către un timer intern pentru obţinerea temporizărilor
- o intrare analogică pentru măsurarea semnalului analogic care
provine de la traductorul de umiditate
- o intrare digitală pentru detectarea nivelului apei din rezervor
- o ieşire digitală pentru comanda valvei sistemului de irigat
- o ieşire digitală pentru activarea alarmei
- UCP pentru realizarea calculelor şi pentru efectuarea operaţiilor de
ARHITECTURA GENERALĂ
8
intrare-ieşire
- Memorie program (de obicei memorie de tip ROM)
- Memorie de date pentru stocarea variabilelor temporare (de obicei
memorie de tip RAM)
Fig. 1.3. Controlul umidităţii într-o seră
Presupunând că programul de control nu ocupă complet toate resursele
microcontrolerului, sistemul ar mai putea interfaţa şi alte semnale precum
temperatura sau iluminarea, pe care le-ar putea în plus transmite la
distanţă prin intermediul unui sistem de comunicaţie, în vederea obţinerii
unui sistem complet de monitorizare şi control a parametrilor de mediu ai
unei sere.
În concluzie, pornind de la exemplul anterior se pot identifica o parte din
componentele unui microcontroler. Astfel, structura generală a microcontrolerelor include
unitatea centrală de prelucrare, memorii de date şi program, ceas intern, timere, interfeţe de
comunicaţie, convertoare analog-digitale, circuite de veghe.
Fig. 1.4. Structura generală a microcontrolerelor
SISTEME CU MICROPROCESOARE – note de curs
9
1.4 STRUCTURA INTERNĂ A MICROCONTROLERELOR DIN FAMILIA PIC18F
PIC este o familie de microcontrolere produse de compania Microchip Technology.
Denumirea PIC este o prescurtare de la “Programmable Intelligent Computer” (Calculator
Inteligent Programabil). Succesul de care se bucură aceste microcontrolere se datorează în
mare măsură suportului oferit de producător şi al mediului de dezvoltare MPLAB IDE
disponibil gratuit pe site-ul producătorului1. Numărul mare de aplicaţii, posibilitatea de a
dezvolta aplicaţiile în limbaj de asamblare sau în C, dar şi o mulţime de biblioteci bine
documentate permit dezvoltarea rapidă a aplicaţiilor şi fac din aceste microcontrolere un bun
candidat pentru studiul din acest curs.
PIC 18 reprezintă o familie de microcontrolere cu instrucţiuni pe 16 biţi, şi magistrală
internă de date de 8 biţi, memorie program de tip flash, spaţiu de memorie date adresabil
liniar. Familia a fost extinsă cu un număr mare de protocoale de comunicaţii, CAN, Ethernet,
USB, SPI, I2C, Irda, existând în prezent peste 100 de membri ai familiei fiecare cu alte
combinaţii de facilităţi. În continuare se prezintă câteva caracteristici ale acestor
microcontrolere.
Microcontrolerele PIC analizate în acest curs sunt bazate pe arhitectura Harvard.
Pentru a reduce din complexitatea circuitului de control, aceste microcontrolere
implementează un set redus de instrucţiuni (en. RISC = Reduced Instruction Set Computer).
Spre deosebire de procesoarele RISC, procesoarele cu set complex de instrucţiuni (en. CISC =
Complex Instruction Set Computer) au fost proiectate să implementeze un set de instrucţiuni
cât mai apropiat de cel al limbajelor de nivel înalt, motiv pentru care şi numărul de
instrucţiuni este mai mare. În schimb, procesoarele RISC dispun de un set compact de
instrucţiuni şi moduri mai puţine de adresare, obţinându-se în felul acesta timpi de execuţie ai
instucţiunilor mai mici la aceeaşi frecvenţă de tact.
Unul dintre avantajele importante ale arhitecturii Harvard este dat de faptul că
magistralele celor două tipuri de memorii pot avea dimensiuni diferite. Astfel, magistrala de
date (instrucţiuni) a memoriei program împreună cu memoria program pot fi organizate pe
cuvinte (în cazul analizat este vorba de cuvinte de 16 biţi), iar magistrala şi memoria de date
sunt organizate pe octet. Acest lucru, combinat cu setul redus de instrucţiuni permit
implementarea unor instrucţiuni cu lungime fixă ce pot fi extrase într-un singur pas.
1 http://www.microchip.com
ARHITECTURA GENERALĂ
10
1.4.1 Execuţia instrucţiunilor
Înţelegerea ciclului instrucţiune este esenţială pentru înţelegerea modului de
funcţionare al microcontrolerelor. Un ciclu instrucţiune presupune două faze principale:
- Faza de extragere a instrucţiunilor din memoria program într-un registru intern al
UCP
- Faza de execuţie care include decodificarea instrucţiunii, extragerea operanzilor,
efectuarea operaţiei specificate în codul instrucţiunii şi depunerea rezultatului în
memorie
Durata unui ciclu instrucţiune depinde de frecvenţa de lucru a sistemului, fiind egală
cu 2x4 tacţi sistem. Astfel, tactul sistem este divizat intern la patru fiind generate patru
semnale de tact în cuadratură (Q1, Q2, Q3 şi Q4). Numărătorul program este incrementat în
Q1, iar instrucţiunea este extrasă din memorie în registrul de instrucţiuni în Q4. În
următoarele Q1 până la Q4 instrucţiunea este decodificată (Q1), se citesc datele/operanzii din
memorie (Q2), se procesează datele în funcţie tipul instrucţiunii decodificate (Q3), se scriu
datele/rezultatele în memorie (Q4). Dacă oricare din aceşti paşi lipseşte, datorită tipului de
instrucţiune care se execută, se va insera un pas fără operaţie în locul lui, astfel încât timpul de
execuţie nu se reduce.
Analizând cele două faze ale ciclului instrucţiune se constată că în faza de extragere
UCP accesează memoria program, iar în faza de execuţie UCP accesează memoria de date.
Ţinând cont de faptul că microcontrolerul implementează o arhitectura Harvard, iar cele două
memorii pot fi accesate prin magistrale independente, pentru a creşte performanţa sistemului
s-a implementat un pipeline pe două nivele pentru instrucţiuni. Acesta permite suprapunerea
celor două faze ale instrucţiunii. Astfel, în timp ce instucţiunea curentă este extrasă cea
precedentă se execută. În acest fel se reduce la jumătate timpul de execuţie al unei
instrucţiuni, datorită faptului că la fiecare 4 tacţi sistem se terimină de executat o instrucţiune.
Excepţie prezintă instrucţiunile care modifică valoarea numărătorului de program.
Fig. 1.5. Fazele de execuţie ale instrucţiunilor
SISTEME CU MICROPROCESOARE – note de curs
11
Fig. 1.6. Exemplu de execuţie al unui set de instrucţiuni
Pornind de la modul în care se execută instrucţiunile, UCP poate fi împărţită în două
componente: Unitatea de control şi regiştrii asociaţi, respectiv Unitatea Aritmetică şi Logică.
1.4.2 Unitatea de control
În Fig. 1.7 se prezintă structura simplificată a unităţii de control împreună cu circuitele
componente.
Fig. 1.7. Unitatea de control
Instrucţiunile care constituie programul microcontrolerului sunt stocate în memoria
program sub forma unor cuvinte binare la adrese succesive. Un numărător binar, denumit
numărător de program (en. PC = Program Counter) este utilizat pentru a adresa pe rând
fiecare instrucţiune. Sub controlul acestui numărător, instrucţiunile vor fi extrase pe rând din
memoria program, iar apoi vor fi executate.
Doi regiştri de instrucţiuni, care împreună formează Pipeline-ul, vor stoca codul
instrucţiunilor extrase din memoria program. Cel de sus, Registrul de Instrucţiuni 1 (RI1) va
stoca instrucţiunea n şi o va păstra pe durata următorului ciclu instrucţiune. Această structură
permite ca instrucţiunea n-1, aflată în registrul de la baza pipeline-ului (Registrul de
Instrucţiuni 2 - RI2) să fie executată în timp ce instrucţiunea n este extrasă din memorie şi
stocată în Registrul de instrucţiuni 1 al pipeline-ului. După execuţia instrucţiunii n-1 se
ARHITECTURA GENERALĂ
12
transferă conţinutul din registrul de instrucţiuni 1 al pipeline-ului în registrul de instrucţiuni 2,
urmând ca în timp ce instrucţiunea n+1 este extrasă din memorie şi stocată în vârful pipeline-
ului, instrucţiunea de la bază (instrucţiunea n) să fie executată.
Una din componentele de bază ale UCP, decodificatorul, are rolul de a descifra codul
instrucţiunii stocate în registrul de la baza pipeline-ului şi contribuie la generarea semnalelor
de control interne necesare pentru execuţia instrucţiunii.
1.4.3 Unitatea aritmetică şi logică
Microcontrolerul conţine o unitate aritmetică si logică (Fig. 1.8) pe 8 biţi şi un registru
de lucru de 8 biţi (en. WREG = Work Register) denumit şi acumulator. Unitatea aritmetică este
capabilă să efectueze operaţii precum: adunare, scădere, operaţii logice (ŞI, SAU, XOR etc),
deplasări şi rotiri, înmulţire. În cazul instrucţiunilor cu doi operanzi (ex. adunare) unul din
operanzi se va găsi întotdeauna în registrul de lucru. Celălalt operand poate fi o constantă sau
un registru din memorie. În funcţie de starea unui bit din codul instrucţiunii, denumit bit de
destinaţie d, rezultatul operaţiilor poate fi stocat fie în registrul de lucru (d=0) fie în registrul
din memoria de date din care provenea operandul (d=1). Rezultatul operaţiei de înmulţiere se
va stoca întotdeauna într-o pereche de regiştri speciali PRODH:PRODL.
Introducerea registrului de lucru (WREG) în structura microcontrolerului contribuie la
simplificarea substanţială a modului de reprezentare al instrucţiunilor, lucru care conduce la
creşterea vitezei de execuţie a instrucţiunilor, precum şi la reducerea cantităţii de memorie
necesară pentru stocarea instrucţiunilor. Pentru a exemplifica această idee se poate considera
cazul unei operaţii de adunare în care intervin trei termeni: doi operanzi, respectiv un rezultat.
În lipsa registrului de lucru şi a bitului de destinaţie al rezultatului, codul instrucţiunii de
adunare ar fi trebuit să cuprindă specificarea tuturor celor trei termeni, în loc de unul singur,
lucru care ar fi condus la creşterea numărului de biţi necesari pentru reprezentarea
instrucţiunii.
SISTEME CU MICROPROCESOARE – note de curs
13
Fig. 1.8. Structura unităţii aritmetice şi logice
Operaţiile aritmetice şi logice pot genera o serie de indicatori ce vor fi stocaţi în
registrul de stare STATUS. Aceşti indicatori sunt: bitul de transport (C - Carry), bitul de
depăşire (OV - Overflow), bitul de semn (N - Negative), rezultat zero (Z - Zero), bitul de
transport auxiliar (DC – Digit Carry). Registrul de stare poate fi şi registru de destinaţie, dar
dacă operaţia executată va conduce la setarea acestor indicatori, se va suprascrie rezultatul. De
exemplu instrucţiunea CLRF STATUS, va şterge toţi biţii registrului STATUS, dar bitul Z va
fi setat la sfârsitul instrucţiunii. În concluzie, registrul de stare va conţine întotdeauna valorile
corecte ale indicatorilor.
Structura registrului de stare STATUS este prezentată mai jos:
bit 7 bit 0- - - N OV Z DC C
Fig. 1.9. Registrul STATUS
Concluzii
Pornind de la ideea introductivă conform căreia microcontrolerele
reprezintă încapsularea unor sisteme de calcul, în acest curs s-au prezentat
principalele tipuri de arhitecturi existente, s-a evidenţiat structura
acestora, rolul elementelor componente, dar şi principalele avantaje şi
dezavantaje care le caracterizează. Studiul unei aplicaţii practice a condus
la identificarea necesarului de elemente componente în structua generală a
microcontrolerelor, iar familia de microcontrolere PIC18F a furnizat
suportul pentru aprofundarea conceptelor referitoare la modul de execuţie
al instrucţiunilor, respectiv la structura internă a UCP.
ARHITECTURA GENERALĂ
14
1. Arhitectura microcontrolerului permite extragerea unei instrucţiuni
din memorie simultan cu execuţia altei instrucţiuni. Discutaţi
elementele care permit realizarea acestor lucruri în paralel.
2. Care este diferenţa între arhitectura von Neumann şi arhitectura
Harvard a sistemelor de calcul?
3. Care este diferenţa între un microcontroler şi un microcprocesor?
4. Explicaţi rolul registrului de lucru (WREG) în arhitectura
microcontrolerului.
5. Explicaţi rolul registrului status (STATUS) în arhitectura
microcontrolerului.
6. Prezentaţi un avantaj şi un dezavantaj pentru fiecare din cele două
tipuri de arhitecturi prezentate.
7. Care sunt elementele componente ale unui sistem de calcul?
8. Care sunt fazele unei instrucţiuni?
9. Care este rolul numărătorului de program?
Teste de autoevaluare
10. Cum este implementat pipeline-ul la nivelul unităţii de control?
[1] Sid Katzen – The Essential PIC18 Microcontroller, Springer Verlag
London, 2010
[2] Genge Bela, Haller Piroska – Proiectarea sistemelor dedicate şi
încorporate cu microcontrolerul PIC, Editura universităţii „Petru
Maior” din Tg. Mureş, 2008
[3] Microchip – PIC18F2455/2550/4455/4550 Data Sheet, Microchip
Technology Inc. 2006
Bibliografie
[4] www.microchip.com
SISTEME CU MICROPROCESOARE – note de curs
15
Dicţionar
Adresă
Colecţie de biţi utilizaţi pentru a identifica locaţiile de memorie
Ciclu instrucţiune
Procesul prin care se extrage o instrucţiune din memoria program şi se
execută
CISC
Complex Instruction Set Computer
Dată
Conţinutul unei locaţii de memorie
Instrucţiuni
Comenzi pe care le execută UCP
Magistrală
Colecţie de fire prin care informaţia se transmite paralel între
componentele unui sistem de calcul
Memorie
Spaţiu de stocare
Memorie de date
Spaţiu de stocare temporar (RAM) pentru datele cu care lucrează
programul
Memorie program
Spaţiu de stocare pentru program
Microcontroler
Sistem de calcul încapsulat într-un singur circuit integrat
Microprocesor
Parte componentă a unui sistem de calcul, UCP
Numărător de program
Numărător binar utilizat pentru adresarea instrucţiunilor. Conţine adresa
instrucţiunii care urmează a fi executată
PIC
Programmable Intelligent Computer
Pipeline
Tehnică utilizată pentru a creşte numărul de instrucţiuni care pot fi
executate în unitatea de timp. Pipeline-ul nu reduce timpul necesar
execuţiei unei instrucţiuni, ci creşte numărul de instrucţiuni care pot fi
procesate simultan
ARHITECTURA GENERALĂ
16
Port
Calea de legătură a sistemului de calcul cu lumea exterioară prin care
acesta poate să trimită şi să primească date
Registru
Spaţiu de stocare
Registru de instrucţiuni
Spaţiu de stocare temporar pentru o instrucţiune extrasă din memorie
RISC
Reduced Instruction Set Computer
STATUS
Registru care indică starea operaţiilor aritmetice executate de unitatea
aritmetică şi logică
UAL
Unitate aritmetică şi logică
UCP
Unitate centrală de prelucrare
WREG
Registru de lucru / acumulator. În general conţine unul din operanzii
instrucţiunilor
Top Related