Curs NR 1 2
Curs NR 1 2
Curs NR 1 2
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
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).
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
Logica de
Unitate
control
control
Memorie Unitatea aritmetică
Program şi logică (ALU)
şi Date
Unitate intrare/ieşire
(I/O)
Logica de
Unitate
control
control
Memorie Unitate intrare/ieşire Memorie
Program (I/O) Date
Unitatea aritmetică
şi logică (ALU)
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ă.
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
... 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
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
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.
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?