Sunteți pe pagina 1din 24

1.

Concepte generale privind microprocesoarele

Curs nr. 1,2

CONCEPTE GENERALE PRIVIND


MICROPROCESOARELE

Cuprins Pagina
Obiectivele 14
1.1. Definiţii şi terminologie 14
1.2. Arhitecturile von Neumann şi Harvard 19
1.3. Arhitectura de bază a unui microprocesor 20
1.3.1. Structura standard a microprocesorului 20
1.3.2. Unitatea aritmetică şi logică (ALU) 22
1.3.3. Unitatea de comandă şi control 23
1.3.4. Grupul de registre 25
1.4. Principiul de funcţionare al microprocesorului 29
Test de autoevaluare 30
Lucrare de verificare 31
Răspunsuri şi comentarii la întrebările din testul de autoevaluare 31
Concluzii 32
Bibliografie 32

13
SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele
OBIECTIVELE

Principalele obiective sunt:


• Însuşirea cunoştinţelor referitoare la terminologia utilizată
în lucrările din domeniul microprocesoarelor
• Însuşirea noţiunilor fundamentale referitoare la arhitectura
şi funcţionarea microprocesoarelor

1.1. Definiţii şi terminologie


În cele ce urmează se prezentă câteva definiţii strict necesare pentru înţelegerea
noţiunilor de bază privind termeni şi notaţii utilizate în lucrările din domeniul
microprocesoarelor.
➢ Circuit integrat - componentă electronică de mici dimensiuni, (cu suprafaţa măsurată în
milimetri pătraţi) ce conţine un număr de tranzistoare elementare interconectate; el poate
avea funcţii cablate sau programate. Circuitele integrate sunt clasificate în mai multe
categorii, în funcţie de densitatea de integrare:
✓ circuite integrate simple;
✓ circuite integrate pe scară medie (MSI - Medium Scale Integration);
✓ circuite integrate pe scară largă (LSI - Large Scale Integration);
✓ circuite integrate pe scară foarte largă (VLSI - Verry Large Scale Integration), etc.
➢ Unitate centrală sau Unitate centrală de procesare - acea componentă a unui calculator
care realizează prelucrarea datelor pe baza unui program şi controlul întregului sistem. Se
utilizează frecvent notaţia CPU (Central Processing Unit) ceea ce desemnează de data
aceasta în mod exclusiv un microprocesor.
➢ Microprocesor - este un circuit integrat VLSI complex care poate efectua operaţii
aritmetice şi logice sub controlul unui program memorat, fiind definit ca unitatea centrală a
unui calculator.
➢ Microcalculator - sistem de calcul în care unitatea centrală este un microprocesor; un
microcalculator mai cuprinde: blocuri de memorie, circuite pentru transferul informaţiei
(porturi de intrare - ieşire) şi dispozitive periferice - tastatură, monitor, unitate de discuri,
imprimantă etc.

14
SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele
➢ Hardware - ansamblu de elemente care compun un calculator (structuri mecanice, cabluri,
cutii, circuite, etc.).
➢ Software - reprezintă un sistem de programe cu care este dotat un calculator.
➢ Sistem de operare - totalitatea programelor care permit utilizatorului accesul deplin la
toate resursele sistemului. Conţine programe cu denumiri specifice după funcţiile realizate,
care asigură accesul la echipamentele periferice (tastatură, monitor, unităţi externe de
memorie etc.) organizarea informaţiei sub formă de fişiere şi o gamă largă de operaţii
asupra acestora (deschiderea, închiderea, transferul, afişarea, crearea, ştergerea,
modificarea şi altele). Cele mai răspândite sisteme de operare sunt MS-DOS, WINDOWS
şi LINUX.
➢ Instrucţiunea - reprezintă cea mai simplă operaţie (comandă) pe care o poate transmite
programatorul către o unitate centrală (care poate fi un microprocesor). Unitatea centrală
poate recunoaşte şi executa numai instrucţiunile codificate pentru care a fost construită;
acestea formează setul de instrucţiuni caracteristic unităţii centrale.
Un şir de instrucţiuni, organizate logic după un algoritm, formează un program; prin
intermediul programului, utilizatorul transmite sistemului de calcul o anumită sarcină
privind prelucrarea datelor (task).
➢ Memoria - este un şir finit de locaţii numerotate. O locaţie este definită de două entităţi
informaţionale: conţinutul şi adresa.
✓ Conţinutul este un şir de cifre binare 0 sau 1 (Binary Digit = bit) care poate reprezenta o
dată (un număr sau un caracter în cod binar, o stare, etc.) sau o comandă (instrucţiune).
Numărul de cifre binare dintr-o locaţie reprezintă dimensiunea locaţiei (formatul
memoriei)
✓ Adresa este numărul de ordine al unei locaţii de memorie; adresa permite identificarea
fiecărei locaţii în şirul ordonat de locaţii ce alcătuiesc memoria unui sistem de calcul.
Structura memoriei organizată pe locaţii, cu delimitarea anumitor zone este numită
"harta memoriei". Se pot evidenţia două astfel de zone:
• Memoria de date (locaţiile conţin "date");
• Memoria de programe (locaţiile conţin instrucţiuni codificate).
Memoria sistemului este organizată sub forma unei matrice, cu liniile având un număr de
celule (biţi), egal cu cel al cuvântului de instrucţiune sau de date, fiecărei linii îi
corespunde, în mod unic, o adresă proprie. Selectarea unei astfel de celule permite accesul
de la microprocesor la această celulă de memorie sau însens invers, sensul transferului de
informaţie fiind indicat de unitatea de comandă şi control.

15

SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele
Apariţia unei operaţii cu memoria de la o anumită adresă va determina activarea tuturor
celulelor de memorie elementare de la adresa respectivă (de pe linia cu aceeaşi adresă). Prin
intermediul semnalului R/W (citeşte/scrie), unitatea de comandă şi control va indica operaţia
ce se execută, deci sensul fluxului de informaţie (de la microprocesor la memorie, pentru
operaţie de scriere, sau de la memorie la microprocesor, pentru o operaţie de citire).
Microprocesorul poate conţine pe cip atât memorie ROM (eventual programe), cât şi
memorie RAM (de uz general, sau, sub denumirea de registre, celule cu destinaţie specială în
memorarea, decodificarea şi executarea instrucţiunilor, a operaţiilor aritmetice si logice etc.).
O memorie ROM poate fi doar citită; informaţia din ea este permanentă şi nu dispare la
încetarea alimentarii calculatorului. Memoria RAM permite scrierea şi citirea informaţiilor.
Ea este o memorie volatilă (se pierde informaţia din ea, prin oprirea alimentarii circuitului).
➢ Magistrala - reprezintă legaturi multiple şi complexe între diferitele părţi funcţionale ale
microprocesorului.
Magistralele conectează semnalele de date, adrese, control, ale unei secţiuni, cu
semnalele omologe ale celorlalte secţiuni, constituind calea de legătura dintre ele.
Exista două seturi de magistrale în orice sistem microprocesor:
✓ magistrale interne (reprezentând canalele de legătura între diversele unităţi funcţionale
din unitatea centrala (CPU) a sistemului);
✓ magistrale externe (reprezentând caile de comunicaţie între CPU şi componentele
externe acestuia).
Fiecare grup de magistrale poate fi subdivizat în trei categorii, după tipul informaţiei
transferate:
✓ magistrale de adrese;
✓ magistrale de date;
✓ magistrale de control.
O magistrală poate avea mai multe linii, permiţând transferul simultan al unui cuvânt de
informaţie (adresă sau dată), caz în care magistrala se numeşte magistrală paralelă. Există
deasemenea magistrale seriale, pentru care datele sunt transmise multiplexat în timp (un
cuvânt este transmis bit cu bit, pe aceeaşi linie), care sunt, in mod evident, mult mai lente
decât magistralele paralele. Practic, toate magistralele interne ale CPU, cât şi cele externe care
conectează CPU cu memoria, şi cu majoritatea interfeţelor de intrare/ieşire ale sistemului,
sunt organizate ca magistrale paralele. Legaturi seriale se utilizează mai ales pentru
transmiterea datelor la/de la echipamente aflate la distanţă de CPU (terminale, linii telefonice,
etc.).

14
SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele
Deoarece unitatea centrală nu poate alimenta simultan un număr prea mare de circuite
exterioare (există valori limitate ale curenţilor pe care acesta îi suportă sau generează), este
necesară amplificarea semnalelor de pe magistralele sistemului. Aceasta adaptare a
semnalelor este efectuată cu diferite tipuri de circuite, distingându-se în esenţă următoarele:
✓ circuite tampon amplificatoare de magistrala (drivere);
✓ circuite tampon bidirecţionale (buffere bidirecţionale);
✓ circuite pentru reţinerea datelor (latch).

Magistrala de date este destinată atât transferului unidirecţional de instrucţiuni de la


memorie (citire a programului), cât şi celui bidirecţional, de date între memorie, unitatea
centrală şi/sau interfeţele de intrări/ieşiri (informaţia parcurge magistrala în ambele sensuri,
sau de la procesor la una dintre unităţile externe acestei unităţi, sau de la una dintre aceste
unităţi spre procesor). Direcţia transferului de informaţie este supervizată de către unitatea de
comandă şi control a microprocesorului, prin generarea de semnale specifice (citire sau
scriere). Lungimea cuvântului microprocesorului determină numărul de linii de conexiune din
magistrala de date (8, 16, 32, etc.).

Magistrala de adrese este o magistrală unidirecţionala. Ea vehiculează codul binar


reprezentând locaţia (adresa) datei ce se va utiliza în cadrul operaţiei ce se execută. Astfel, ea
poate selecta adresa celulei de memorie de la care se citeşte o noua instrucţiune sau dată, sau
la care se memorează un rezultat. Multe microprocesoare utilizează magistrala de adrese şi
pentru configurarea adresei echipamentului de intrare - ieşire, selectat la o operaţie de INPUT
sau OUTPUT. Este sarcina unităţii de comandă şi control de a delimita şi indica, prin
generarea de semnale de control specifice, dacă este vorba de o operaţie de citire sau scriere
din memorie sau intrare - ieşire.
Adresabilitatea unui microprocesor este dată de numărul de biţi ai magistralei de adrese.
Un număr uzual de 65536 (64 ko) celule de memorie vor necesita 16 linii de adresă pe această
magistrală. (216=65536). În general, se vor putea adresa 2N celule de memorie prin intermediul
a N linii de adresă.

Magistrala de control furnizează informaţii suplimentare necesare pentru indicarea


operaţiei ce se efectuează. Numărul de semnale de pe aceasta magistrală depinde de numărul
de semnale de control necesare pentru microprocesorul utilizat. Tipice sunt semnalul de ceas
al sistemului (care asigură funcţionarea secvenţiala cu o periodicitate fixă a întregului sistem
microprocesor), semnalele de citire/scriere în memorie, citire/scriere pentru intrare/ieşire din
sistem etc.

17
SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele
Corelate cu magistrala de adrese, semnalele de pe magistrala de control permit selecţia
unică a echipamentului sau a celulei de memorie căreia/de la care, prin intermediul
magistralei de date, se transmite/preia informaţia, conform operaţiei ce se execută.
Conectarea pe liniile magistralelor, în sensul transferului de informaţie pe magistrală,
este efectuată prin circuitele tampon respective, care sunt selectate (deschise) doar în cazul
adresării circuitului respectiv.

De reţinut !
Microprocesor - este un circuit integrat VLSI complex care poate
efectua operaţii aritmetice şi logice sub controlul unui program memorat,
fiind definit ca unitatea centrală a unui calculator.
Reprezentarea informaţiei se face prin cuvinte de instrucţiuni şi
respectiv cuvinte de date.
Fiecare instrucţiune din programul microprocesorului va fi formată din
unul sau mai multe cuvinte de instrucţiune. Acestea "spun" procesorului
ce are de făcut. Cuvântul de instrucţiune constă din doua părţi:
✓ codul operaţiei (care indică ce operaţie se va executa);
✓ operanzii (care indică asupra cui se va efectua operaţia conţinută în
codul operaţiei).
Instrucţiunile sunt memorate în ordinea executării, iar microprocesorul
le citeşte şi le execută secvenţial. În esenţă, se citeşte un cuvânt de
instrucţiune, se decodifică, obţinându-se operanzii, locaţia lor şi se
execută operaţia indicată. Apoi se trece la o nouă instrucţiune etc.
Un şir de instrucţiuni, organizate logic după un algoritm, formează un
program; prin intermediul programului, utilizatorul transmite sistemului
de calcul o anumită sarcină privind prelucrarea datelor (task).
Fiecare cuvânt de instrucţiune sau date are asociat, în mod unic, un
număr care reprezintă adresa sa.
A citi o anumita instrucţiune sau data din memorie va însemna, în mod
practic, a se activa, prin intermediul funcţiilor de control, acea celula de
memorie, a cărei adresă este cea dorită.
Magistralele reprezintă legaturi multiple şi complexe între diferitele părţi
funcţionale ale microprocesorului.

14
SISTEME CU MICROPROCESOARE
1. Concepte generale privind microprocesoarele

1.2. Arhitecturile von Neumann şi Harvard


Modul de conectare şi funcţionarea componentelor de bază ale unui sistem de calcul, s-au
bazat şi se bazează încă, în marea majoritate a structurilor utilizate, pe aşa numita arhitectura
de tip von Neumann utilizată practic în exclusivitate la realizarea microprocesoarelor uzuale
(Fig.1.1).

Logica de
Unitate
control
control
Memorie Unitatea aritmetică
Program şi logică (ALU)
şi Date
Unitate intrare/ieşire
(I/O)

Fig. 1.1. Arhitectura Von Neumann

Configuraţiile numerice ce folosesc microprocesoare realizate utilizând structura


corespunzătoare arhitecturii von Neumann nu fac distincţie între memoria pentru program şi
cea pentru date, structura de memorie fiind exterioară microprocesorului şi accesată prin
magistrale unice de adrese şi date, multiplexate sau nu. În această arhitectură unitatea
aritmetică şi logică va executa câte o singură instrucţiune la un moment dat, într-o secvenţă de
program. Deşi mai lentă decât în sistemele în care se execută mai multe instrucţiuni deodată
(procesare paralelă) arhitectura von Neumann este mai simplu de implementat.
Arhitecturile recentelor tipuri de microprocesoare au elemente de prelucrare paralelă, ca
şi în cazul procesoarelor numerice de semnal DSP (Digital Signal Processors), conform cu
aşa numita arhitectură Harvard care prezintă secţiuni de memorie diferite pentru program şi
date şi deci implicit magistrale de date şi adrese separate pentru fiecare secţiune (Fig.1.2).

Logica de
Unitate
control
control
Memorie Unitate intrare/ieşire Memorie
Program (I/O) Date
Unitatea aritmetică
şi logică (ALU)

Fig. 1.2. Arhitectura Harvard


Arhitectura Harvard permite o paralelizare completă a lanţului de citire/decodificare
instrucţiuni respectiv efectuare operaţii de calcul şi transfer al datelor în sistem. Acest mod de
19
SISTEME CU MICROPROCESOARE
operare (tip pipeline) conduce la creşteri sensibile ale performanţelor (viteza de procesare)
respectivelor sisteme, faţă de cele “clasice”, realizate în arhitectură von Neumann.

De reţinut !
Arhitectura de tip von Neuman, conţine o singură memorie şi o singură
magistrală pentru transferul datelor din şi dinspre unitatea centrală de
procesare.
Magistrala unică de date şi instrucţiuni este numită magistrală
bidirecţională şi ea oferă anumite avantaje sistemului, din punctul de
vedere al flexibilităţii modului de lucru cu exteriorul. Câteva din aceste
avantaje ale unei magistrale unice de date şi instrucţiuni sunt:
✓ se foloseşte o memorie unică pentru stocarea datelor şi instrucţiunilor
(memoria principală, externă procesorului). Rezultă simplificarea
UCP din punctul de vedere al automatului de adresare a memoriei şi
al numărului de registre implicate.
✓ folosirea unei memorii unice, unde se stochează atât date cât şi
instrucţiuni creşte flexibilitatea sistemului, pentru că nu există
restricţii privind adresele de stocare a datelor şi instrucţiunilor în
memoria principală.
Acest mod de organizare are şi dezavantaje, din punctul de vedere al
vitezei de lucru şi din punctul de vedere al unei relative creşteri în
complexitate a unităţii de control, care trebuie să interpreteze în mod
corect cuvintele citite din memorie ca fiind date, sau instrucţiuni.
Arhitectura Harvard prezintă memorii separate de date şi program şi
deci implicit magistrale de date şi adrese separate pentru fiecare tip de
memorie oferind viteză crescută.

1.3. Arhitectura de bază a unui microprocesor


1.3.1. Structura standard a microprocesorului

Deşi există o mare varietate de microprocesoare, produse de diferite firme, cu multe


deosebiri în structura şi tehnologia lor de fabricaţie, toate au o schemă structurală comună,
rezultată din operaţiile de bază pe care le efectuează. Caracteristicile structurale şi funcţionale
comune rezultă din filosofia proiectării microprocesoarelor, ca instrumente complexe pentru
realizarea unor sisteme numerice flexibile, rapide, puternice şi la un preţ de cost deosebit de
avantajos.
Arhitectura standard a unui microprocesor (Fig.1.3) are blocurile componente:
➢ unitatea aritmetică şi logică (ALU);
➢ unitatea de comandă şi control;
➢ grupul de registre.
Blocurile componente sunt conectate între ele şi înspre/dinspre exterior prin intermediul
magistralelor de date şi de adrese iar accesul la magistrale este realizat de semnalele de
control generate de unitatea de comandă şi control.

Memorie
de
instructiuni
(ROM)
Magistrală Magistrală
externă externă
de date de adrese
Memorie
de
date
n-biţi (RAM) m-biţi

Registre generale
Registrul I/O Registrul adrese
.
Mag. internă adrese m-biţi
Mag. internă date n-biţi

Registrul indicatori instrucţiuni (IR) Numărător de


adrese (PC)
de condiţii

... OPCODE
operand
Unitatea
aritmetică
şi Decodificatorul
instrucţiunii (ID)
(ALU)

control TACT
Registru
acumulator

Microprocesor
Fig. 1.3. Arhitectura standard a unui microprocesor
21
De reţinut !
Microprocesorul operează în mod secvenţial, determinat de către un
program memorat, format din instrucţiuni.
Majoritatea modelelor de microprocesoare au circuitele logice interne
împărţite în cinci părţi componente principale: unitatea de control;
unitatea aritmetică şi logică (ALU); unitatea de intrare/ieşire (I/O);
memorie internă / registre; magistrale. Uneori, primele două sunt apelate
împreună sub numele unitate centrală de prelucrare, deşi acelaşi termen
este folosit adeseori ca sinonim al întregului procesor. Toate cele cinci
părţi ale microprocesorului interacţionează, unitatea de intrare/ieşire se
află sub controlul unităţii de control, iar operaţiile unităţii de control pot
fi determinate de rezultatele calculelor executate de ALU

1.3.2. Unitatea aritmetică şi logică (ALU)

Unitatea aritmetică şi logică care procesează informaţia realizând operaţii aritmetice şi


logice, fiind un circuit combinaţional, prezintă două intrări şi o ieşire necesitând atât pentru
cuvintele de intrare, cât şi pentru cele de ieşire registre de memorare temporară. Unul din
cuvintele de intrare este preluat de pe magistrala internă de date a microprocesorului unde a
fost depus de către un alt registru sau a fost adus din memoria externă, iar celălalt cuvânt de
intrare se află într-un registru numit registru acumulator, cuvântul rezultat în urma procesării
va fi încărcat tot în registrul acumulator, deci registrul acumulator conţine unul din operanzi
înainte de procesare, precum şi rezultatul în urma procesării.
Comenzile necesare procesării, de exemplu: încărcarea celor doi operanzi,
executarea operaţiei şi încărcarea acumulatorului cu rezultatul procesării
sunt primite de la unitatea de comandă şi control.

De reţinut !
Unitatea aritmetică şi logică execută prelucrarea datelor realizând
următoarele funcţii:
✓ funcţii aritmetice: adunare, scădere, înmulţire, împărţire;
✓ funcţii logice: SI, SAU, SAU EXCLUSIV, NU şi complement.
Fiecare funcţie este activată de o instrucţiune corespunzătoare care
furnizează şi operanzii implicaţi în operaţie.
1.3.3. Unitatea de comandă şi control
Coordonează funcţionarea tuturor unităţilor interne pentru execuţia operaţiilor conţinute
în mod codificat în instrucţiuni.
Funcţiile unităţii de comandă sunt:
➢ Extragerea instrucţiunii din memoria externă.
Se ''citeste'' instrucţiunea din zona care conţine programul aflat în execuţie. Instrucţiunea
are două zone de informaţie:
✓ zona de cod, care conţine operaţia caracteristică instrucţiunii;
✓ zona de date (adresă operanzi).
➢ Decodificarea instrucţiunii.
Fiecare instrucţiune are ca efect o succesiune specifică de operaţii elementare, numite
microoperaţii. Secvenţa de microoperaţii este generate de unitatea de comandă pe baza
codului instrucţiunii; determinarea acestei secvenţe în funcţie de cod, este numită
''decodificare''.
➢ Execuţia propriu-zisă constă în activarea succesivă a unităţilor interne pentru efectuarea
operaţiilor din secvenţa corespunzătoare instrucţiunii.
Codul instrucţiunii permite obţinerea tuturor informaţiilor necesare execuţiei operaţiilor
impuse de instrucţiune:
✓ numărul de octeţi din formatul instrucţiunii;
✓ tipul operaţiei principale (adunare, scădere, transfer, salt etc.);
✓ numărul operanzilor implicaţi în operaţie;
✓ adresa fiecărui operand ( dacă este operand aflat temporar într-un registru intern, se
specifică acest registru; dacă este operand în memorie, se specifică adresa sau cum se
obţine adresa lui).
Fiecare instrucţiune corespunde unei operaţii fundamentale, care, în general se
realizează în mai multe etape (Fig.1.4).
Execuţia unei instrucţiuni este un şir de operaţii elementare:
✓ starea - corespunde unei perioade de tact (T) şi este durata unei operaţii elementare
(de exemplu, incrementarea unui registru);
✓ ciclul maşină - conţine 3…5 stări şi corespunde unei etape din execuţia unei
instrucţiuni (de exemplu, citirea unei locaţii de memorie, transferul de date între un
registru intern şi o locaţie de memorie etc.); o instrucţiune conţine 1 - 5 cicluri maşină,
dintre care primul ciclu maşină este de citire memorie (citirea codului instr.).

23
T

Fig. 1.4. Diagramele de timp pentru semnalul de tact şi ciclu maşină

În desfăşurarea în timp a unei instrucţiuni, unitatea de comandă şi control selectează şi


adresează unităţile interne ale microprocesorului care realizează funcţii specifice rolului lor.
Realizarea concretă a unităţii de comandă şi control este specifică fiecărui
tip de microprocesor şi determină multe din performanţele sale.
Ca structură, unitatea de comandă şi control este un automat secvenţial cu
număr finit de stări, care funcţionează pe baza unui microprogram introdus
în procesul de fabricaţie. Acest microprogram nu poate fi modificat de
utilizator şi corespunde setului de instrucţiuni, fiind un interpretor de
instrucţiuni. De aceea, setul de instrucţiuni este fix pentru fiecare tip de
microprocesor.

De reţinut !
Unitatea de control este cea care supervizează funcţionarea corectă a
ansamblului de elemente unite în structura microprocesorului în corelaţie
cu restul microsistemului. Comenzile generate de unitatea de control
rezultă în urma decodificării instrucţiunii, a cererilor de întrerupere
primite de la elementele microsistemului şi a impulsurilor de tact. În
general, unitatea de control este implementată prin microprograme, adică
algoritmul de funcţionare este înscris ca o succesiune de cuvinte într-o
memorie ROM (Read Only Memory).
Pe măsură ce complexitatea microprocesoarelor a crescut, unitatea de
control a devenit tot mai sofisticată.
1.3.4. Grupul de registre
În componenţa microprocesorului se pot considera două categorii de registre:
✓ registre speciale;
✓ registre de uz general.
Registrele speciale numite şi registre de lucru, sau registre interne ale
microprocesorului, au funcţii predefinite specifice în funcţionarea acestuia. Deşi uneori pot fi
setate la valori iniţiale specificate, aceste registre nu sunt accesibile prin program, la execuţia
instrucţiunilor. În această categorie sunt: registrul acumulator, registrul numărător de adrese
al programului, registrul indicatorilor de condiţii, registrul de instrucţiuni, registrul de
adresare a memoriei şi registrul de intrare/ieşire.

✓ Registrul acumulator – A(Acumulator). Acumulatorul este registrul cel mai


frecvent utilizat, fiind conectat la magistrala internă de date şi la unitatea aritmetică
şi logică. Când se prelucrează două cuvinte, la început un cuvânt se află în
acumulator, iar după prelucrare rezultatul dintre cele două cuvinte este trecut din
unitatea aritmetică şi logică tot în acumulator. De asemenea registrul acumulator
participă la transferul informaţiei între o sursă (locaţie de memorie, port de
intrare/ieşire-I/O) şi o destinaţie (locaţie de memorie, port de intrare/ieşire-I/O).
Transferul are loc în două etape: cuvântul de la sursă este deplasat în acumulator iar
apoi din acumulator este deplasat la destinaţie. Numărul de celule ale acumulatorului
este egal cu lungimea cuvântului prelucrat de microprocesor care în cazul structurii
prezentate este n. Există structuri de microprocesoare care pot conţine mai multe
acumulatoare, existând şi instrucţiuni diferite pentru fiecare din acumulatoare, iar
acumulatoarele pot fi considerate şi împreună pentru a se putea lucra cu cuvinte de
lungime multiplu de n-biţi. Avantajul mai multor acumulatoare rezultă din
posibilitatea de a lucra acumulator la acumulator.

✓ Registrul numărător de adrese al programului - PC (Program Counter). Programul


ce constă din succesiunea de instrucţiuni ce trebuie executate de microprocesor este
înscris în locaţii de adrese succesive ale unei memorii externe. Adresa locaţiei ce
conţine instrucţiunea care trebuie adusă din memoria externă este înscrisă în registrul
numărător de adrese al programului. Conţinutul de m-biţi al numărătorului de adrese
este automat mărit cu o unitate după ce instrucţiunea a fost adusă din memorie,
pregătindu-se astfel adresa pentru instrucţiunea următoare. Numărătorul de adrese
25
este un numărător cu prescriere, rezultă că se pot introduce şi alte valori decât cele
ale numărării în ordine naturală, deci se pot efectua salturi în citirea locaţiilor
memoriei. Prin comanda de RESET (iniţializare) aplicată microprocesorului la
punerea în funcţiune după conectarea tensiunii sau se aplică din exterior, numărătorul
este încărcat cu o adresă fixată de către producător 0000.
✓ Registrul indicatorilor de condiţii - F(Flag). Reprezintă un grup de bistabile
(fanioane, steguleţe) asamblate sub forma unui registru şi citite simultan vor genera,
împreună cu conţinutul acumulatorului, cuvântul de stare al programului PSW
(Program Status Word). Din starea biţilor registrului F se poate afla dacă rezultatul
operaţiei efectuate este 0 sau nu, dacă el este un număr pozitiv sau negativ, dacă
numărul biţilor din rezultat ce au valoarea 1 este un număr par sau impar etc.
Semnificaţia principalilor biţi indicatori de condiţii (de stare) întâlniţi la majoritatea
microprocesoarelor este:
- Carry (CF), Indicatorul de transport: este utilizat pentru a indica depăşirea
preciziei de lucru a microprocesorului, în urma efectuării unei operaţii aritmetice
(de exemplu, adunarea a două numere a căror sumă depăşeşte dimensiunea
cuvântului de date al procesorului). Rezultatul se va memora în aceste cazuri în
acumulator, cu excepţia bitului cel mai semnificativ, memorat in indicatorul de
transport (carry), utilizat astfel ca o extensie a acumulatorului. Acest bit poate fi
astfel ulterior testat, sau utilizat în operaţii ulterioare ale ALU. Avem:
CF = 1, dacă rezultatul ultimei operaţii în ALU a generat transport;
CF= 0, dacă rezultatul ultimei operaţii în ALU nu a generat transport.
Carry poate fi iniţializat uzual (0 sau 1), prin instrucţiuni specifice ale
microprocesorului. Valoarea sa se va modifica însă, în cursul efectuării de operaţii
în ALU.
- Zero (ZF), Indicatorul de zero: este utilizat pentru a indica faptul că rezultatul
unei operaţii aritmetice sau logice a fost 0 sau nu. Acest bit nu poate fi iniţializat
direct printr-o instrucţiune specifică. Avem:
ZF = 1, dacă s-a obţinut rezultat nul la ultima operaţie aritmetică sau logică;
ZF = 0, dacă nu s-a obţinut rezultat nul la ultima operaţie aritmetică sau logică.
- Paritate (PF, Indicatorul de paritate: este utilizat pentru a indica tipul sumei
modulo 2 a rezultatului ultimei operaţii efectuate în ALU. Astfel:
PF = 0, dacă rezultatul are un număr impar de biţi cu valoarea 1;
PF = 1, dacă rezultatul are un număr par de biţi cu valoarea 1.
Acest bit este uzual testat în cadrul programelor de verificare a corectitudinii
informaţiilor codificate, sau la transmisii de date.
- Semn (SF), Indicatorul de semn: este utilizat pentru a indica semnul rezultatului
unei operaţii efectuate în ALU. Astfel:
SF = 0, dacă s-a obţinut un rezultat pozitiv (sau zero);
SF = 1, dacă s-a obţinut un rezultat negativ.
Semnul rezultatului este decis în funcţie de valoarea celui mai semnificativ bit al
sau, considerat ca bit de semn, numerele fiind tratate ca numere reprezentate în
complement faţă de doi.
Se pot adăuga şi alţi biţi de condiţie care să reflecte dacă anumite funcţiuni
sau stări hardware ale microprocesorului sunt îndeplinite sau nu, iar unele
microprocesoare posedă instrucţiuni ce pot înscrie anumiţi biţi de condiţie.

✓ Registrul de instrucţiuni - IR (Instruction Register). După ce un cuvânt instrucţiune


este adus din memorie prin registrul I/O pe magistrala internă de date a
microprocesorului, acesta va fi înscris în registrul de instrucţiuni care păstrează
instrucţiunea pe durata executării acesteia. Instrucţiunea este divizată este divizată în
două câmpuri: câmpul codului operaţiei OPCODE şi câmpul operandului (adresa
operandului). Biţii din codul operaţiei se aplică decodificatorului instrucţiunii care,
apoi prin unitatea de control, va genera toate semnalele de control necesare execuţiei
instrucţiunii reprezentată de codul operaţiei. Câmpul adresa operandului se aplică
registrului de adresă pentru a forma adresa din memorie unde se află operandul
necesar operaţiei specificate de OPCODE.

✓ Registrul de adresare a memoriei. Este conectat la magistrala externă de adresare a


memoriei care transferă conţinutul registrului numărător de adrese ce conţine un
cuvânt binar de m biţi şi care reprezintă adresa unei locaţii de memorie sau adresa unui
port I/O. Încărcarea registrului de adrese se poate face nu numai de la numărătorul de
adrese ci şi de la alte elemente ale microprocesorului, rezultând că pe magistrala de
adrese se pot aplica şi cuvinte de adresă diferite de conţinutul registrului numărător de
adresă.

✓ Registrul de intrare/ieşire. Realizează legătura între magistrala de date interioară a


microprocesorului şi magistrala de date exterioară, deci vehiculează cuvintele de date
şi instrucţiuni.
27
Registrele de uz general sunt adresabile de către utilizator, şi pot fi folosite pentru
stocarea şi manevrarea datelor programului - operanzi, date, adrese de memorie conţinând
date utile programului, etc. Uzual, aceste registre conţin informaţiile cele mai utilizate de
către program. Aceasta conduce la o sporire a vitezei de lucru globale a sistemului, deoarece
timpii de acces la registrele interne sunt sensibil mai reduşi decât timpii de acces la memoria
externa a sistemului. Aceste registre sunt conectate atât la alte registre interne ale
microprocesorului, cât şi la magistralele externe, prin intermediul magistralelor interne şi al
circuitelor tampon.
În cazul cel mai general microprocesorul poate conţine, atât memorie ROM
şi RAM, pe lângă, registre (fizic tot memorie RAM). Registrele alcătuiesc un
element cu totul aparte faţă de memorie, din punctul de vedere al
programării microprocesorului. Astfel, datele memorate de către registre
pot fi manipulate, modificate, operate în ALU, prin instrucţiuni specifice de
operare cu registrele, sau coordonat de către secţiunea de CONTROL.
Totodată, aceste instrucţiuni sunt cele mai rapide. O operaţie tipică cu un
registru durează câteva zeci de nanosecunde, faţă de sute de nanosecunde
necesare atunci când se operează cu memoria externă.

De reţinut !
Se pot considera două categorii de registre ale unui microprocesor:
✓ registre speciale au funcţii predefinite specifice în funcţionarea
microprocesorului; aceste registre nu sunt accesibile prin program, la
execuţia instrucţiunilor.
✓ registre de uz general sunt utilizate pentru manipularea şi memorarea
temporară a datelor. În general, orice registru de acest tip este
accesibil programatorului, prin instrucţiuni specifice, fiind posibile:
- încărcarea cu un cuvânt dorit de date, deplasarea informaţiei între
registre, sau între registre şi memorie, rotirea conţinutului
acestora;
- tratarea unei perechi de registre ca reprezentând date pe cuvinte
cu lungime dublă (la registre de 8 biţi, perechi de 16 biţi) şi
posibilitatea operării cu acestea.
1.4. Principiu de funcţionare al microprocesorului
La un moment dat numărătorul de adrese PC conţine adresa la care în memorie se află
instrucţiunea ce trebuie să fie executată. Acest cuvânt de adresă este pus pe magistrala de
adrese şi aplicat memoriei de programe care trimite instrucţiunea în registrul de instrucţiuni şi
în acelaşi timp unitatea de control incrementează numărătorul de adrese pentru instrucţiunea
următoare. Există şi anumite instrucţiuni de salt care modifică ordinea de numărare naturală
din numărătorul de adrese caz în care se prescrie adresa la care se face saltul pentru
instrucţiunea următoare de executat.
Execuţia unei instrucţiuni (ciclu instrucţiune) se descompune în:
➢ etapa de aducere a instrucţiunii din memorie (fetch) identic ca procedură pentru orice
instrucţiune;
➢ etapa de execuţie a instrucţiunii care necesită un timp variabil în funcţie de complexitatea
instrucţiunii.
Biţi din câmpul de cod al instrucţiunii (operaţiei) denumit OPCODE se aplică
decodificatorului de instrucţiuni - ID (Instruction Decoder) care, prin unitatea de control, va
genera semnalele de control asociate execuţiei operaţiei respective.
Câmpul cu adresa operandului este aplicat registrului de adrese pentru localizarea
adresei din memorie de unde trebuie luat operandul necesar operaţiei în curs de execuţie.
În executarea unei instrucţiuni unitatea de control primeşte, pe lângă ieşirile
decodificatorului, la aplicarea câmpului OPCODE, şi impulsuri de ceas (tact).
O instrucţiune este constituită din mai mulţi octeţi, ceea ce rezultă că desfăşurarea
ciclului instrucţiune poate necesita unul sau mai multe apeluri la memorie sau la un dispozitiv
intrare/ieşire. Fiecare apel la memorie sau la un dispozitiv intrare/ieşire al unei instrucţiuni
defineşte un interval de timp numit ciclu maşină (Machine Cycle), deci un ciclu instrucţiune
cuprinde unul sau mai multe cicluri maşină. Fiecare ciclu maşină se desfăşoară în mai multe
perioade de tact, o perioadă constituind o stare (State).
Impulsurile de tact care sincronizează activitatea unităţii de comandă şi control sunt
generate de un circuit specializat inclus sau nu în microprocesor numit generator de tact
(Clock Driver).
Unitatea de comandă şi control generează la rândul ei un semnal de sincronizare
(SYNCRO) corelat cu tactul sistem, care permite sincronizarea blocurilor exterioare
microprocesorului (memorie, periferice) cu etapele consecutive din derularea unei
instrucţiuni. Cunoscând numărul de stări necesare acesteia şi frecvenţa tactului se poate
29
determina durata în unităţi de timp a realizării instrucţiunii respective.
Pentru scurtarea timpului de realizare a instrucţiunii, ciclurile instrucţiune se suprapun.
Deoarece etapele de transfer pentru fetch şi pentru execuţie nu se suprapun se poate realiza în
paralel (pipeline) executarea instrucţiunii curente cu aducerea instrucţiunii următoare. Această
metodă (tip conductă) este curent folosită la microprocesoarele moderne de mare viteză
extinzându-se paralelismul la grupuri de instrucţiuni care sunt aduse, în timp ce alte grupuri
sunt executate.

Test de autoevaluare
1. Ce este hardware-ul? Dar software-ul?
2. Ce este microprocesorul? Dar microcalculatorul?
3. Ce înseamnă memoria şi care sunt tipurile de memorie dintr-un
sistem cu microprocesor?

4. Ce înseamnă magistrală (bus) şi care sunt magistralele dintr-un sistem


cu microprocesor?
5. Care sunt componentele principale ale arhitecturii von Neumann?
6. Care sunt componentele principale ale arhitecturii Harvard?
7. Care sunt părţile componente ale unui microprocesor?
8. Ce rol are unitatea aritmetică şi logică în cadrul unui microprocesor?
9. Ce rol are unitatea de commandă şi control în cadrul unui
microprocesor?
10. Care sunt şi ce rol îndeplinesc registrele în cadrul unui
microprocesor?
11. Care sunt indicatorii de condiţii ai unui microprocesor?
12. Cum funcţionează un microprocesor?

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