microprocesoare Şi course web page: …vega.unitbv.ro/~romanca/mpmctrl/1-2-introducere-mpmc.pdf ·...

18
MICROPROCESOARE ŞI MICROCONTROLERE Profesor dr. ing. Mihai ROMANCA 1 Profesor dr. ing. Mihai ROMANCA Departament: Electronică şi Calculatoare email: [email protected] Course web page: Acces la : http://etc.unitbv.ro/~romanca/MpMCtrl Sau: http://www.unitbv.ro/dec/Despredepartament.aspx -> Membri 2 Studenţii sunt îndemnaţi să-şi tipărească slide- urile în avans şi să le utilizeze pentru a lua notiţe în clasă OBIECTIVE CURS Introducere în arhitectura microprocesoarelor şi microcontrolerelor cu explicarea noţiunilor privind: setul de instrucţiuni aritmetica în procesor şi structura căii de date calea de control memorie de date şi memorie de program 3 memorie de date şi memorie de program structurile de tip pipeline semnalele de interfaţare ale microprocesorului sistemul de întreruperi. Clasificarea şi exemplificarea arhitecturilor de microprocesoare/microcontrollere moderne. Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere OBIECTIVE Obiective Seminar: – Fixarea şi aprofundarea cunoştinţelor transmise la curs, pe baza unor aplicaţii rezolvate împreună cu studenţii şi pe baza discutării unor studii de caz privind funcţionarea şi exemple concrete de aplicare a microprocesoarelor şi microcontrollerelor. 4 În urma asimilării cunoştinţelor predate la această disciplina, viitorul inginer îşi va putea asuma responsabilitatea punerii în funcţiune a diferitelor sisteme de control cu microprocesor / microcontroller – întreţinerea sau proiectarea şi construcţia diferitelor interfeţe (acestea fiind realizabile şi prin studiul suplimentar al documentaţiilor de firmă).

Upload: vuongthuan

Post on 19-Feb-2018

247 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

MICROPROCESOARE ŞI

MICROCONTROLERE

Profesor dr. ing. Mihai ROMANCA

1

Profesor dr. ing. Mihai ROMANCA

Departament: Electronică şi Calculatoare

email: [email protected]

Course web page:• Acces la :

http://etc.unitbv.ro/~romanca/MpMCtrl• Sau:

http://www.unitbv.ro/dec/Despredepartament.aspx - > Membri

2

• Studenţii sunt îndemnaţi să-şi tipărească slide-urile în avans şi să le utilizeze pentru a lua notiţe în clasă

OBIECTIVE CURS

• Introducere în arhitectura microprocesoarelor şi microcontrolerelor cu explicarea noţiunilor privind:– setul de instrucţiuni– aritmetica în procesor şi structura căii de date– calea de control– memorie de date şi memorie de program

3

– memorie de date şi memorie de program– structurile de tip pipeline– semnalele de interfaţare ale microprocesorului– sistemul de întreruperi.

• Clasificarea şi exemplificarea arhitecturilor de microprocesoare/microcontrollere moderne.

• Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

OBIECTIVE

• Obiective Seminar: – Fixarea şi aprofundarea cunoştinţelor transmise la curs, pe

baza unor aplicaţii rezolvate împreun ă cu studen ţii şi pe baza discutării unor studii de caz privind funcţionarea şi exemple concrete de aplicare a microprocesoarelor şi microcontrollerelor.

4

• În urma asimilării cunoştinţelor predate la această disciplina, viitorul inginer îşi va putea asuma– responsabilitatea punerii în funcţiune a diferitelor sisteme de

control cu microprocesor / microcontroller– întreţinerea sau proiectarea şi construcţia diferitelor interfeţe

(acestea fiind realizabile şi prin studiul suplimentar al documentaţiilor de firmă).

Page 2: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

1. INTRODUCERE ÎN ARHITECTURA MICROPROCESOARELOR

• Definire microprocesor / microcontroller, evoluţie istorică

5

evoluţie istorică • Organizare generală, cale de date, cale de

control, memorie, magistrale, sincronizare• Organizarea ierarhică a sistemului de memorie:

memorie internă, cache, memorie externă• Reprezentări structurale şi funcţionale ale

calculatorului

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

2. ARHITECTURA SETULUI DE INSTRUCŢIUNI (ISA)

• ISA ca interfaţă între hardware şi software, principalele caracteristici.

• Formatul instrucţiunilor, tipuri de instrucţiuni, interpretarea adreselor de memorie.

6

interpretarea adreselor de memorie.• Moduri de adresare, spaţiu de adresare.• Clasificarea arhitecturilor setului de instrucţiuni• Modelul RISC, caracteristici generale,

comparaţie caracteristici CISC / RISC

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI3. ORGANIZAREA ŞI FUNCŢIONAREA PROCESORULUI

DE UZ GENERAL

• Organizarea CPU, comportare, structura unităţii de control şi a căii de date, sincronizări.

• Structura şi funcţionarea unei UCP simple pe bază de acumulator, extinderi la structura simplă (seturi de registre de

7

acumulator, extinderi la structura simplă (seturi de registre de date, registre de adresare, circuite aritmetice suplimentare, registre de stare şi control, registre speciale, contor de program, pointer de stivă, pipelines)

• Semnale de interfaţare ale procesorului (magistralele de date, adrese şi control).

• Întreruperi şi excepţii• Memoria stivă, organizare, funcţionare, aplicaţii.• Ferestre de registre la arhitecturile RISC

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

4. UNITATEA DE CONTROL

• Secvenţierea şi interpretarea instrucţiunilor

8

instrucţiunilor• Control cablat• Control microprogramat

Page 3: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

5. PIPELINING

• Consideraţii generale, exemple de prelucrare pipeline, creşterea în viteză datorită structurii pipeline

9

pipeline• Conducte aritmetice, exemple pentru adunare

şi scădere în virgulă mobilă• Conducte de instrucţiuni, tipuri de conflicte

(hazard), principii de înlăturare a conflictelor

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

6. Structura şi func ţionarea memoriei principale

• Static RAM, structură şi cicluri caracteristice de funcţionare

• Dinamic RAM, structură şi cicluri caracteristice

10

• Dinamic RAM, structură şi cicluri caracteristice de funcţionare

• DRAM sincrone• Memoria cache, rol, funcţionare şi organizare

FIFIFIFIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEIŞA DISCIPLINEI

7. ARHITECTURA MICROCONTROLLERELOR

• Introducere, aspecte specifice comparativ cu arhitecturile de microprocesor de uz general

• Organizarea memoriei• Arhitectura internă: registre de control, moduri de

11

• Arhitectura internă: registre de control, moduri de adresare, tipuri de instrucţiuni, structura şi funcţionarea sistemului de intrare / ieşire

• Circuite counter / timer• Metode de economisire a energiei• Interfeţe seriale sincrone şi asincrone

BibliografieBibliografieBibliografieBibliografie

� Romanca M., Microprocesoare si microcontrolere, Editura Universitatii Transilvania din Brasov, 2015, ISBN: 978-606-19-0683-3, disponibilă în format electronic la http://etc.unitbv.ro/∼romanca

� Burileanu, C., Arhitectura microprocesoarelor, Editura DENIX, Bucuresti, 1994;

12

� Stallings, William, Computer Organization and Architecture, 5th edition, Prentice Hall International, Inc., 2000.

� Tanenbaum, A., Structured Computer Organization, 4th

ed., Prentice-Hall Inc. 1999� Patterson, D., Hennessy, J., Computer Architecture A

Quantitative Approach, Morgan Kaufmann Publishers, Inc. (4th ed.) 2007

Page 4: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

EVALUAREForme de evaluare

Modalitate evaluareProcent din nota

finală

Examen Examinare scrisă (E) 60 %

Prezenţa la curs şi activitate la

seminar

Ca formă de cooperare în însuşirea cunoştinţelor (Pp)

10 %

13

Seminar Verificare pe parcurs (B)Bonificaţie în limita 10%

Laborator 2L – Aplicaţii (L) 20%

Proiect 1P – Aplicaţii dezvoltate (P) 10%

Pentru promovarea examenului este obligatorie obţinerea notei minime5.00 latoate formele. Calcul medie finală: =E*0.6+L*0.2+P*0.1+P*0.1+B

Calcul medie finală (M)

• M = E*0.6+L*0.2+P*0.1+Pp+B

– Pp (procent prezenţă) = (Nr. Prezenţe)/ (Nr. Total de cursuri)

– Bonificatie Seminar: calcul alocare din tabel cu prezenta seminar si numar de raspunsuri. Prezenta peste 80% si minim 2 raspunsuri asigura B = 1

14

Ce este unCe este unCe este unCe este un Microprocesor ?Microprocesor ?Microprocesor ?Microprocesor ?

• Un microprocesor(MP) este o unitatea Centrală de Procesare (UCP) integrată într-un singur chip.

• UCP pentru un (micro)calculator de uz general este un microprocesorde uz general

15

este un microprocesorde uz general

• UCP-ul unui calculator este o structură de procesorde uz general

• Toate calculatoarele moderne sunt construite cu microprocesoare cu funcţia de UCP.

Ce este un calculatorCe este un calculatorCe este un calculatorCe este un calculator????• Un calculator este o maşină de prelucrare automată a datelor

ce funcţionează sub controlul unei liste de instrucţiuni (program) stocate în memoria principală a calculatorului.

• Un calculator este constituit dintr-un ansamblu de resurse

16

• Un calculator este constituit dintr-un ansamblu de resurse fizice (hardware) şi de programe de sistem (software de sistem) care asigură prelucrarea automată a informaţiilor, în conformitate cu algoritmii specificaţi de utilizator prin programele de aplicaţii (software utilizator).

• Calculatorul conţine: UCP + Memorie + IO

Page 5: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Sistem de calcul

• De obicei un sistem de calcul conţine un calculatorşi periferice

• Organizare generală calculator:– UCP (căi de date şi control)– Memoria principală

17

– Memoria principală– Sistem de intrare-ieşire (legătura cu dispozitivele externe –

periferice)

• Perifericele calculatorului includ– Dispozitive de intrare (tastatură, mouse, memorii secundare)– Dispozitive de ieşire (display, difuzoare, memorii secundare,

imprimantă)

MICROCONTROLER

• Microcontroller – un calculator ce include un microprocesor şi care este destinat aplicaţiilor de control (nu calculului de uz general)

• Un microcontroller conţine în acelaşi CI cel puţin:

18

• Un microcontroller conţine în acelaşi CI cel puţin: UCP, memorie şi IO

• Un microcontroller este un microcalculator pe un chip proiectat pentru aplicaţii de control.

Microprocesor vs. Microcontroller• Microprocesoarele sunt utilizate în general pentruaplicaţii de înaltă

performanţă de procesare• Microprocesoarele sunt utilizate ca UCP pentru calculatoare de uz

general (GPC)• Microprocesoarele necesită extern memorieşi interfeţe IO• Microprocesoarele sunt utilizate în PC-uri, staţii de lucru, servere,

laptop-uri, unde compatibilitatea software, performanţa, generalitateaşi flexibilitateasuntimportante.

19

şi flexibilitateasuntimportante.

• Microcontrollerele sunt proiectate pentru a se obţine o dimensiuneredusă a chip-ului, micşorarea costurilorşi includerea de spaţiu dememorieşi IO pe chip.

• Microcontrollerele sunt adesea “specializate pe aplicaţii” în daunaflexibilit ăţii.

• Un microcontroller conţine:UCP, Memorie, IO

Microcoprocesor Microcontroler

Poate funcţiona ca maşină de calcul doar dacă adăgăm în exterior memorie şi sistem de I/O

Este o maşină de calcul autonomă, având toate componentele necesare incluse în circuitul integrat (nucleu microprocesor, memorie, sistem I/O)

Este destinat aplicaţiilor de uz general Este destinat aplicaţiilor de control

Performanţe ridicate în viteza de prelucrare, pentru a satisface o gamă largă de aplicaţii rulate

Performanţe mai reduse de viteză, dar suficiente pentru aplicaţiile rulate

În setul de instrucţiuni există puţine instrucţiuni ce pot manipula individual biţii unui cuvânt

În setul de instrucţiuni există multe instrucţiuni ce pot manipula individual biţii unui cuvântpot manipula individual biţii unui cuvânt pot manipula individual biţii unui cuvânt

Sunt utilizate în PC-uri, staţii de lucru, servere, laptop-uri, unde compatibilitatea software,

performanţa, generalitatea şi flexibilitatea sunt importante

Sunt utilizate în sisteme cu calculator încorporat, unde fiabilitatea, gabaritul şi costul sunt extrem de importante

La capsulă există puţini pini cu funcţii multiple, multiplexate

La capsulă există mulţi pini cu funcţii multiple, multiplexate

Capacitatea de adresare a memoriei principale este foarte mare (tipic maxim sute de MB - GB)

Capacitatea de adresare totală a memoriei principale este redusă (tipic KB)

Pentru a creşte viteza medie de acces la memorie foloseşte o ierarhie de niveluri de memorie

interne şi externe

Memoria de program şi date este inclusă în CI şi au rar nevoie de niveluri externe de memorie

20

Page 6: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Microprocesor vs. Microcontroller

• Principalul obiectiv al proiectării pentru fiecare tip dechip poate fi rezumat ca:

�Microprocesoarele (MP) sunt mai ales flexibile şi au performanţe de procesare mai ridicate

21

au performanţe de procesare mai ridicate

�Microcontrollerele (MC) sunt mai ales compacte şi au cost mai scăzut

Scurtă analiză istorică a progresului calculatoarelor

• De-a lungul timpului, performanţele calculatoarelor nu au crescut în ritm constant

• Există două forţe care stimulează dezvoltarea calculatoarelor:1. dezvoltarea tehnologiei semiconductoare utilizată la

construcţia microprocesoarelor (îmbunătăţirea tehnologică)

2. inovaţii în organizarea şi proiectarea calculatoarelor

22

Legea lui Moore• În 1965, dr. Gordon E. Moore a prezis că numărul

de tranzistoare echivalente pe un singur chip va creşte în ritm constant şi se prevedea o creştere în acelaşi ritm pentru următoarele decenii

• Această predicţie, numită Legea lui Moore (denumire încetăţenită din 1975), spune că “puterea de calcul va cre şte exponen ţial, dublându -se la fiecare 18 -

23

încetăţenită din 1975), spune că “puterea de calcul va cre şte exponen ţial, dublându -se la fiecare 18 -24 luni, pentru un viitor previzibil ”

• Legea lui Moore este adesea criticată, pentru că utilizatorii sunt interesaţi în primul rând de creşterea performanţelor procesoarelor– Este greu să se echivaleze creşterea numărului de

tranzistoare echivalente pe un chip cu creşterea performanţei procesoarelor

Tendinţă: oprirea creşterii frecvenţei de ceas

• Cu cât sunt mai multe impulsuri pe secundă cu atât se fac mai multe operaţii

• Cu cât frecvenţa este mai mare cu atât creşte si puterea

24

• Cu cât frecvenţa este mai mare cu atât creşte si puterea consumată (comutaţie)

• Creşterea frecvenţei impune mijloace de disipare a căldurii procesorului

Page 7: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Tendinţă: oprirea creşterii frecvenţei de ceas

• Procesoare multi-core (mai multe nuclee ce lucrează în paralel)

• Intel a calculat că scăderea cu 20% a frecvenţei pentru un nucleu conduce la scăderea la jumătate a puterii consumate şi doar la 13% pierdere de performanţă

25

• Dacă se împart sarcinile de prelucrare între 2 nuclee ce lucrează la o frecvenţă redusă la 80%, se obţine o performanţă mai mare cu 73% pentru aceeaşi putere consumată

• Disiparea căldurii este mai bună (două noduri în loc de unul)

Links: Multiprocessors/ Multicores

• http://www.cs.cornell.edu/courses/cs6410/2013fa/slides/08-multiprocessors.pdf

• http://superuser.com/questions/214331/what-is-the-• http://superuser.com/questions/214331/what-is-the-difference-between-multicore-and-multiprocessor

26

Scurtă analiză istorică a progresului

• Anii 1960 – calculatoare mari. Aplicaţiile tipice includeau procesări de date în afaceri şi calcule ştiinţifice

• Anii 1970– apariţia minicalculatorului: laboratoare ştiinţifice, utilizatori

multipli care partajează resursele de la terminale independente– microprocesorul :îmbunătăţiri în tehnologia circuitelor integrate,

cost redus, producţie în număr mare, răspândire în multe aplicaţii de calcul numeric

27

calcul numeric• Generalizarea limbajelor de programare de nivel înalt

(HLL) + translatoare a înlăturat nevoia compatibilităţii programelor la nivel de cod obiect

• Crearea de sisteme de operare standardizate,independente de producător, care au scăzut costurile şi riscurile de utilizare a noilor arhitecturi

ENIAC (Electronic Numerical Integrator and Computer)

Universitatea din Pennsylvania

� Conţinea aproximativ 18.000 tuburi electronice, 70.000 rezistoare, 10.000 condensatoare şi 6.000 de

28

comutatoare

� Consum de putere 140 kW

Page 8: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

MicroprocesMicroprocesMicroprocesMicroprocesoareoareoareoare –––– secolul secolul secolul secolul XXIXXIXXIXXI

� Frecvenţe de ceas mai mari de 2 GHz� Procesoare de putere mică (aplicaţii mobile)� Micro-arhitecturi superscalare (mai multe instrucţiuni lansate

în paralel)� SIMD (Single Instruction Stream Multiple Data Stream):

operaţii similare efectuate în paralel pe seturi diferite de date

29

operaţii similare efectuate în paralel pe seturi diferite de date� Funcţii de prelucrare DSP: MMX, 3D, grafică, sunet� Nuclee procesor multiple pe un chip� Memorie cache pe mai mult de 2 niveluri� ............................

PRINCIPALE CATEGORII DE APLICA ŢII ALE MICROPROCESOARELOR

Piaţa microprocesoarelor s-a dezvoltat pe trei direcţii mari:• Desktop

– Exemple: PC, staţii de lucru– Metrici: latenţă (grafică şi sistem de IO)

• Servere– furnizează servicii de fişiere şi calcul– Exemple : server Web, server bază de date, server LAN

30

– Exemple : server Web, server bază de date, server LAN– Metrici: throughput, fiabilitate, scalabilitate, disponibilitate

• Sisteme Embedded (sisteme cu procesor înglobat)– Exemple: telefon celular, PDA, cuptor cu microunde, cameră video

digitală– Metrici: complexitate, putere redusă, latenţă

Piaţa embedded este cea mai mare !• Procesor Embedded = Un procesor programabil a cărui interfaţă

de programare nu este accesibilă utilizatorului final şi care realizează un set restrâns de funcţiuni dedicate aplicaţiei specifice.

PRINCIPALE CATEGORII DE APLICA ŢII ALE MICROPROCESOARELOR (P&H 2012)

• Dispozitive de calcul personale şi mobile:

– Telefoane mobile şi tabletele. Dispozitive controlate prin intermediul unui SO

– Principalele caracteristici de proiectare: costuri reduse, gabarit mic şi eficienţă energetică mare

• Calculatoare desktop

• Servere• Servere

• Clusters/ Warehouse-Scale Computers (WSC) [Hennesy 2012]

– centru de calcul masiv cu dimensiunea unui depozit de calculatoare

– organizate ca noduri de calcul conectate local printr-o reţea

– WSC sunt direcţionate spre aplicaţii de tip SaaS ( Software as a Service ): căutare, reţele sociale, partajare de fişiere video, cumpărături on-line, jocuri multiplayer

• Calculatoare încorporate în aplicaţie

31

ARHITECTURA CALCULATORULUI

• “Arhitectul” de calculator proiectează maşina pentru a rula programe.

• Arhitectura de calculator (procesor) include:1. Arhitectura setului de instrucţiuni ISA (Instruction Set

32

Architecture)

2. Implementare, cu două componente:

– Organizare

– Hardware

Page 9: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Arhitectura Setului de Arhitectura Setului de Arhitectura Setului de Arhitectura Setului de InstrucţiuniInstrucţiuniInstrucţiuniInstrucţiuni

• Interfaţă între hardware şi software.• ISA include tot ce trebuie să cunoască un programator

pentru a programa la nivel fizic al maşina.• ISA permite ca două maşini diferite (implementare,

33

• ISA permite ca două maşini diferite (implementare,costuri şi performanţe diferite) să ruleze aceleaşiprograme.

Implementare• Organizarea include aspectele de nivel înalt

ale proiectului, cum ar fi organizarea sistemuluide memorie, structura magistralelor,organizarea internă a UCP.– Două maşini pot avea organizări diferite, dar să aibă

acelaşi ISA.

34

acelaşi ISA.

• Hardware se referă la aspectele specifice deimplementare ale maşinii. Include proiectul dedetaliu al logicii, tehnologia semiconductoareutilizată, tipul de capsulă.

Organizarea generală a unui calculator uni-processor

• Fluxul de informaţii este controlat de UCP pe două căi:– cale de control – (“creierul” procesorului). Semnalele de control

spun căii de date, memoriei şi sistemului de intrare/ieşire ce săfacă, conform instrucţiunilor unui program.

– cale de date – (“muşchii” procesorului). Calea de date realizeazăoperaţii aritmetice / logice şi de transfer

35

Unitate de Control

Memorie principală

instrucţiuni

date

Calculator

RegistreALU

adreseşi comenzi

UCP

Organizare generală a unui (micro)processor, cu indicarea interfeţelor principale cu exteriorul

Bloc Registre

Program Counter (pt. aducere instrucţiuni)

Instrucţiunea curentă

Adresă instr.

Instrucţiune

PC

IR

36

ALU

Reg. adrese memorie (pt. aducere date)

de la/lamemorie

Adresă Date

DateMAR

MDR

Logică de Control

Page 10: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Structura generală a unui calculator

Calculator (GPC)

dataaddresses

controlUCP(Microprocesor)

37

Memorie principal ă

Interfe ţe IO

Periferice

SISTEM DE MEMORIE

• Dispozitivele de memorare au rolul de a stoca informaţia numerică (programe, date iniţiale, rezultate intermediare şi finale) cu posibilitatea ca informaţia numerică să poată fi accesată printr-o adresa, pentru a fi citită sau scrisă

• Sistemul de memorie al calculatorului = dispozitivele de stocare a informaţiei + algoritmii de control ai memoriei

38

stocare a informaţiei + algoritmii de control ai memoriei (implementaţi fie în software fie în hardware)

• La proiectarea şi construcţia unui sistem de memorie, se face un compromis, al cărui obiectiv să se obţină:– o viteză de acces medie cât mai mare– în condiţiile unui cost total minim

PRINCIPII DE REALIZARE A SISTEMULUI DE MEMORIE

• Informaţia stocată este distribuită pe o varietate de dispozitive de memorie (dispozitive cu raport cost / performanţă şi caracteristici fizice foarte diferite)– Organizate pentru a asigura o viteza medie cât mai mare, la un

cost specific mediu cât mai mic• Transferul de informaţii între diferitele niveluri ale memoriei se

39

• Transferul de informaţii între diferitele niveluri ale memoriei se desfăşoară transparent pentru utilizator (sarcina sistemului de operare)– metode de alocare dinamică a spaţiului disponibil de memorie,

pentru o utilizare cât mai eficientă.• Realizarea conceptelor memoriei virtuale pentru a elibera

programele utilizator de funcţia administrării spaţiului de memorie şi pentru a face programele relativ independente de configuraţia dată a memoriei fizice.

• Creşterea lărgimii de bandă a sistemului de memorie şi asigurarea unor mecanisme de protecţie

Exemplu de organizare ierarhică a memoriei

UCP Memorie auxiliar ă

Acces direct Acces indirect

40

Memorie cache

(tampon)

Memorie principal ă

auxiliar ă (extern ă)

Registre de memorie

internă UCP

IO

S

c, v

Page 11: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

LOCALIZAREA REFERIN ŢELOR LA MEMORIE

• La majoritatea programelor rulate se manifestă “localizarea referinţelor la memorie”– Doar o mică porţiune a memoriei este accesată la un

moment dat.• Această caracteristică nu este o lege naturală, ea

putând fi uneori încălcată

41

• Această caracteristică nu este o lege naturală, ea putând fi uneori încălcată

• Localizarea referinţelor este o caracteristică a programelor, care se manifestă în cea mai mare parte a timpului la rularea programelor.

• Pe baza localizării referinţelor sistemul de memorie păstrează cele mai recent accesate articole, pe cât posibil, în memoria cea mai rapidă

LOCALIZAREA REFERIN ŢELOR LA MEMORIE

• Două variante:– localizare temporală a referinţelor: dacă

programul face acces la o celulă de memorie la momentul t, este foarte probabil ca programul să

42

momentul t, este foarte probabil ca programul să facă din nou acces la aceeaşi celulă la momentul t + ∆

– localizare spaţială a referinţelor: dacă la momentul t programul face acces la o celulă de memorie de adresă X, este foarte probabil ca la momentul t + ∆ programul să facă acces la celula de adresă X + ε.

LOCALIZAREA REFERIN ŢELOR LA MEMORIE

• Pentru a folosi caracteristica referinţelor localizate în timp, datele cele mai recent accesate trebuie păstrate cât mai aproape de procesor

• Pentru a folosi caracteristica referinţelor localizate în

43

• Pentru a folosi caracteristica referinţelor localizate în spaţiu la transferul între niveluri trebuie mutate blocuri continue de date şi nu cuvinte individuale.

• Organizare ierarhică şi referinţe localizate⇒pe diferite niveluri ierarhice există copii ale aceluiaşi

bloc de date, date ce pot fi modificate doar pe nivelul cel mai apropiat de UCP, sau şi pe nivelurile inferioare

SISTEME DE MEMORIEMULTI-NIVEL

• Sistemele de memorie multi-nivel, cu posibilitatea de scriere-citire trebuie să satisfacă două proprietăţi privind

44

să satisfacă două proprietăţi privind informaţia stocată:– proprietatea de incluziune– proprietatea de coerenţă

Page 12: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

ORGANIZARE IERARHIC Ă

• Proprietatea de incluziune exprimă faptul că totdeauna informaţiile care se găsesc pe un

MemoryLevel 1

CPU

MemoryLevel i

MemoryLevel i+1

BlockA

BlockB

45

totdeauna informaţiile care se găsesc pe un anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior (M1 ⊂ M2 ⊂ ... ⊂ Mn )– Este posibil ca o informaţie existentă pe nivelul Mi+1

să nu se găsească pe nivelul Mi, dar să fie accesată (cerută) pe nivelul i de memorie. În acest caz (evenimentul este numit "word miss") cuvântul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1, pe nivelul i).

ORGANIZARE IERARHIC Ă

• Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă în spaţiul de memorie trebuie să fie aceeaşi, indiferent de

MemoryLevel 1

CPU

MemoryLevel i

MemoryLevel i+1

BlockA

BlockB

46

de memorie trebuie să fie aceeaşi, indiferent de nivelul de memorie pe care se află.

• Dacă un cuvânt este modificat pe nivelul i, atunci va trebui modificat şi pe nivelul i+1 şi pe toate nivelurile inferioare.– Coerenţa nivelurilor de memorie se poate obţine fie prin

propagarea valorii modificate spre toate nivelele inferioare ("write-through"), sau prin actualizarea nivelurilor inferioare în momentul înlocuirii informaţiei de pe nivelul curent ("write-back").

MAGISTRALA SISTEM

• Principalele unităţi componente ale sistemului (procesor, memorie principală, module de I/O) sunt interconectate pentru a schimba informaţii de date şi control

• Calea de comunicare între două sau mai multe unităţi este numită magistrală (bus)

47

numită magistrală (bus)• Magistrala conţine linii electrice care transferă informaţia

codificată în binar• O magistrală la care sunt conectate principalele

componente ale calculatorului (procesor, memorie principală, module de I/O) este numită magistrală sistem

MAGISTRALA SISTEM

• Magistrala este un canal de comunicare partajat în timp– Doar un dispozitiv poate transmite date pe magistrală la un

moment dat

• Pentru a înlătura supraîncărcarea canalului de comunicaţie, şi a creşte performanţele acestuia, se construieşte o ierarhie

48

şi a creşte performanţele acestuia, se construieşte o ierarhie de mai multe magistraleinterconectate.

• Elemente cheie la proiectarea magistralelor:– arbitrare– sincronizare– lărgimea magistralelor(număr de biţi transmişi în

paralel)

Page 13: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

MAGISTRAL Ă SISTEM

UCPBloc

Memorieprincipală

BlocMemorieprincipală

I/O I/O

49

Magistrală de control

Magistrală de date

Magistrală de adrese

IERARHIE DE MAGISTRALE MULTIPLE

• Cu cât sunt mai multe dispozitive conectate la o magistrală, cu atât mai mare estelungimeaacesteia

• Cu cât sunt mai multe dispozitive conectate la o magistrală, cu atât mai mare va fi întârziereaprodusă la

50

magistrală, cu atât mai mare va fi întârziereaprodusă la transmisia datelor

• Dispozitivele conectate la o magistrală au viteze mult diferitede funcţionare– Comparaţi viteza procesorului (UCP) cu a unui echipament

periferic• Magistrala unică conduce la scăderea vitezei mediia

transmiterii informaţiilor

MAGISTRALE MULTIPLE- structur ă tradi ţională tipică -

Procesor Cache

Controllerlocal I/O

Magistrală locală

Memorie principală

51

SCSIReţea

Interfaţă cu magistrala de

extensie

Modem Serial

Magistrală sistem

Magistrală de extensie

principală

MAGISTRALE MULTIPLE- structur ă de înaltă performanţă -

ProcesorCache /Bridge

Memorie principală

Mag. localăMagistrală sistem

52

SCSI FireWire Grafică Video LAN

FAX

Interfaţă cu magistrala de

extensieModem Serial

Magistrală de mare viteză

Magistrală de extensie

Page 14: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

MAGISTRALE SINCRONE

• Magistralele sincrone includ o linie de CLOCK(controlată de un oscilator cu cuarţ) între liniile magistralei de control. Frecvenţele tipice sunt între 5 - 133 MHz

• Toate transferurile pe magistrală durează un număr întreg de cicluri de ceas, numite cicluri magistrală.

53

cicluri de ceas, numite cicluri magistrală.• Avantajul magistralei sincrone se regăseşte în viteza marede

transfer şi într-o logică suplimentară foarte simplă• Dezavantajul constă în faptul că pentru transferurile care s-ar

putea face mai rapid decât intervalul corespunzător unui număr întreg de cicluri magistrală, protocolul trebuie păstrat (timp prestabilit de transfer)

MAGISTRALE ASINCRONE- Handshaking -

• Motive transfer asincron:• Există diferenţe mari de viteză între UCP şi unele periferice – nu putem face

comunicaţie sincronă !• Distanţa mare între două dispozitive ce comunică.

• De exemplu, dacă semnalul de ceas are o perioadă de 10 ns (frecvenţă de 100 MHz), iar datele se transmit la o distanţă echivalentă cu 60 m, semnalul este primit după 200 ns (20 de impulsuri de ceas), considerând viteza egală cu viteza luminii în vid (3×108 m/s).

54

vid (3×108 m/s).

• Transfer asincron:• Nu există linie de ceas• Etapele transferului presupun transmiterea şi recepţionarea unor semnale de

confirmare între doi corespondenţi ( “handshaking”)• Un eveniment pe magistrală se produce ca urmare a producerii unui alt

eveniment precedent

• Se prezintă două variante:• transfer iniţiat de sursă - sursa decide momentul când se transmit date pe

magistrala comună• transfer iniţiat de destinaţie – destinaţia decide când să ceară date

MAGISTRALE ASINCRONE- Handshaking -

DestinaţieSursă

Date

RDY

Strobe

Date

Strobe

RDY

55

Date

ACK

Strobe

Date

Strobe

ACK

Sursă Destinaţie

MAGISTRALE

• Tip magistrală– Dedicată

– Multiplexată

56

• Metoda de arbitrare– Centralizată

– Distribuită

Page 15: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Două tipuri principale de arhitecturi

address bus

data bus

Memorie

dateşiinstrucţiuni

CPU

� Arhitectură von Neumann –o singură memorie pentru date şi instrucţiuni

57

� Arhitectură Harvard – Memorii separate pentru instrucţiuni şi date

addr. bus PM

data bus PM

Memorie de Program

doarinstrucţiuni

UCPaddr. bus DM

data bus DM

Memoriede Date

doar date

ArchitecturArchitecturArchitecturArchitectura a a a von Neumannvon Neumannvon Neumannvon Neumann(defin(defin(defin(definităităităită îîîîn 1945)n 1945)n 1945)n 1945)

Principii:

• Datele şi instrucţiunile sunt stocate în aceeaşi memorie principală (conceptul de program stocat);

• Conţinutul memoriei este adresabil la nivel de locaţie (fără a se considera ce informaţie este stocată: datesau cod);

58

a se considera ce informaţie este stocată: datesau cod);• Instrucţiunile sunt executate secvenţial (una câte una în

ordinea locaţiilor de memorie în care sunt stocate) cu excepţia faptului când acest lucru este precizat explicit.

• Calculatorul conţine următoarele subsisteme: unitate de control, unitate aritmetică şi logică (ALU), sistem IO, memorie

• Calculatoarele cu arhitectură von Neumann sunt calculatoare de uz general. Ele pot rezolva diverse probleme în funcţie de programul executat.

Arhitectură de uz general secvenţială Arhitectură de uz general secvenţială Arhitectură de uz general secvenţială Arhitectură de uz general secvenţială (von Neumann) (von Neumann) (von Neumann) (von Neumann) –––– reprezentare reprezentare reprezentare reprezentare

structuralăstructuralăstructuralăstructurală

Sistem de calcul – conceptul de “program stocat”

Periferice intrare

Perifericeieşire

Sistem de intrare

Sistem de ieşire

Memorie principală

59

intrare ieşireintrare ieşireprincipală

ALU & Registre

Unit. control (UC)

I D

UCP

Calculator

Reprezentare structuralăReprezentare structuralăReprezentare structuralăReprezentare structuralăvon Neumannvon Neumannvon Neumannvon Neumann

• Funcţia principală a UCP este să execute instrucţiunile aduse (“fetch”) din memoria principală.

• O instrucţiune codifică pentru UCP o operaţie de bază (aritmetică, logică, transfer de date la / de la memorie, etc.) ce trebuie efectuată.

• UC interpretează (decodifică) instrucţiunea curent adusă şi

60

• UC interpretează (decodifică) instrucţiunea curent adusă şi comandă celelalte unităţi funcţionale pentru a se putea executa instrucţiunea.

• UCP conţine un set de registre folosite ca locaţii de stocare temporară pentru rezultate intermediare şi date inmtens utilizate de program.

• Fiecare instrucţiune este executată într-o secvenţă de paşi, numită ciclu instruc ţiune .

Page 16: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Reprezentare a ciclului Reprezentare a ciclului Reprezentare a ciclului Reprezentare a ciclului instrucţiuneinstrucţiuneinstrucţiuneinstrucţiune

• Reprezentare simplificată ciclu instrucţiune:

O reprezentare extinsă a ciclului instrucţiune:

Fetch Instrucţiune

FetchInstrucţiune

Decodifică

61

Pentru rularea programului UCP are o funcţionare ciclică la fiecare instrucţiune executată

Execuţie

Execuţie

Decodifică instrucţiune

Fetch operand

Unitate de Unitate de Unitate de Unitate de ControlControlControlControl• Unitatea de control (UC) este “creierul” procesorului• UC controlează şi sincronizează toate elementele din

interiorul UCP şi interfeţele către calea de date externă.

Semnale de control

62

Registru Instrucţiune

Semnale de control interne UCP

Semnale de control către magistrala sistem

Semnale de la magistrala sistem

Indicatori condiţii şi stare

Clock

Unitate de Control

Unitate de prelucrare (ALU şi Registre)

• Unitatea aritmetică şi logică (ALU), realizează operaţii logice sau aritmetice cu operanzii adresaţi de UC

• Înainte de prelucrare, operanzii se stochează într-un set de registre de uz general, folosite ca memorie temporară

63

memorie temporară• Registrele reprezintă o memorie locală UCP, de

foarte mare viteză– Setul de registre de uz general poate fi folosit însă şi

pentru salvarea diferitelor informaţii privind adresarea memoriei principale.

• În funcţie de rezultatul operaţiilor efectuate, ALU setează anumiţi indicatori de condiţii (indicatori de stare, fanioane)

MEMORIA PRINCIPAL Ă (INTERNĂ)

Adresa 0

Adresa 1

d biţi

64

Adresa 1

Adresa k

Adresa 2a-2

Adresa 2a-1

Page 17: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

Sistem de Intrare / Ieşire

• Sistemul de IO conţine locaţii adresabile (port-uri) princare calculatorul face schimb de informaţie cu lumeaexternă. Sistemul conţine circuite pentru funcţiile:– schimbareformatdate(serial/ paralel)

65

– schimbareformatdate(serial/ paralel)– stocare temporară de date (latch)– verificare a corectitudiniidatelor transferate– sincronizareîntre perifericşi UCP (datorită diferenţelor mari de

viteză de funcţionare).– logică dedecodificare

Periferice

• Dispozitive (periferice) de intrare – recepţioneazăinformaţia din mediul extern (prin diverşi senzori) şi otransformă ca natură fizică şi format de reprezentare↔

66

transformă ca natură fizică şi format de reprezentare↔compatibilitate cu nivelurile de tensiune recunoscute decalculator (ca valori binare).

• Dispozitive (periferice) de ieşire – operaţie inversădispozitivelor de intrare. Prelucrează datele din calculatorşi le transformă în informaţie acceptabilă la dispozitivulde ieşire.

REPREZENTAREA FUNCŢIONAL Ă A UNUI CALCULATOR

• Un calculator poate fi descris şi prin funcţiile -operaţiile pe care le pune la dispoziţia utilizatorului

• Circuitele electronice ale unui calculator recunosc şi execută doar un set limitat de instrucţiuni elementare, codificate în formă binară

67

codificate în formă binară• Instrucţiunile recunoscute sunt rareori mai complicate

decât:– adună două numere– verifică dacă un număr este egal cu zero– copiază date dintr-o zonă a memoriei calculatorului în altă

zonă.

LIMBAJ DE PROGRAMARE

• Instrucţiunile elementare, recunoscute de un procesor formează limbajul ma şină al procesorului

• Notaţie: limbaj L0 ce corespunde maşinii fizice M0. • Programatorul scrie programele sale într-un limbaj L1, format

din instrucţiuni simbolice (succesiuni de litere şi cifre) şi mai apropiat de limbajul uman

68

apropiat de limbajul uman• Pentru a putea executa acest program pe maşina M0 fiecare

instrucţiune din L1 a programului trebuie translatată în instrucţiuni din limbajul L0

• De exemplu programatorul poate scrie în L1 instrucţiunea:add al,6

• iar programul de translatare va genera succesiunea binară, corespunzătoare lui L0:

0000 0100 0000 0110

Page 18: MICROPROCESOARE ŞI Course web page: …vega.unitbv.ro/~romanca/MpMCtrl/1-2-Introducere-MPMC.pdf · • Introducere în utilizarea sistemelor cu microprocesoare şi microcontrollere

MAŞINI VIRTUALE• Funcţional, se poate spune că limbajul L1 corespunde unei

maşini virtuale programabile numită M1. Numele acestui limbaj simbolic de programare este “limbaj de asamblare”, iar programul de translatare este numit “asamblor”.

• Translatarea: - tot programul scris în L1 este transformat înprogram scris în L0 (executabil), iar programulîn L1 este abandonat.

- programul în L0 este încărcat în memoria

69

- programul în L0 este încărcat în memoriacalculatorului şi executat

• Exemple de programe translator : compilator, asamblor.• Interpretorul este un program în L0 care rulează pe M0 şi care

preia instrucţiunile programului în L1 ca pe date de intrare. Interpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia. La interpretare nu se generează un program executabil ca la translatare

• Limbaje de programare mai apropiate de limbajul uman: L2, L3, ... (pentru maşini virtuale M2, M3, ...)

Calculator = succesiune de maşini virtuale

Maşina virtualã M2, cu

Maşina virtualã Mn, cu limbajul maşinã Ln

Nivelul 2: Programele în L2 pot sã fie interpretate de un interpretor ce ruleazã pe M1

Nivelul n: Programele în Ln pot sã fie interpretate de un interpretor ce ruleazã pe o maşinã de nivel inferior, sau pot sã fie translatate cãtre limbajul maşinã al unei maşini inferioare

70

Nivelul 0: Programele în L0 pot fi executate direct de cãtre circuitele electronice

Maşina fizicã (realã) M0, cu

limbajul maşinã L0

Maşina virtualã M1, cu limbajul maşinã L1

Maşina virtualã M2, cu limbajul maşinã L2

Nivelul 1: Programele în L1 pot sã fie interpretate de un interpretor ce ruleazã pe M0, sau pot sã fie translatate în L0

interpretate de un interpretor ce ruleazã pe M1 sau M0, sau pot sã fie translatate în L1 sau L0

Ierarhie de maşini virtuale la

Pachete de aplicaţii

Limbaj de nivel înalt

Asamblor

Maşina virtualã a sistemului de operare

Translatare sau interpretare

Translatare

Translatare

Interpretare parţială

aux=z[k];for (j=k;j<q;j++) z[j]=z[j+1];z[q]=aux;if(z[k]==k) k++;else {printf("\n");k=1;

shl dl,1jnc adr1add ax,bxshl ax,1dec cl

71

virtuale la GPC

micro-programat

Instrucţiuni maşinã

Microprogram

Unitãţi funcţionale

Dispozitive electronice

Interpretare

Implementare

Interpretare parţială

Interpretare

0110 1101 0000 0100 1110 1011 1101 11001000 0000 1101 1001 0100 1101 1110 11101000 0110 1110 1100 0111 0000 1110 11010111 1010 1111 1011 1000 0010 1110 1001

SOFTWARE- software utilizator

- software de asistenţã (pentru dezvoltarea aplicaţiilor)Software

• compilatoare

72

- software de sistem

⇒ sistem de fişiere⇒ memorie virtualã⇒ drivere dispozitive de I/O

• interpretoare de comenzi

• sisteme de operare

• compilatoare