Upload
vuongthuan
View
250
Download
8
Embed Size (px)
Citation preview
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ă).
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
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
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
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
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
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
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
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
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
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ţă
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)
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
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ă
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 .
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
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
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