Documente Academic
Documente Profesional
Documente Cultură
Profesor Mihai
OBIECTIVE CURS
ROMANCA
Introducere n arhitectura calculatoarelor de uz general, cu accent pe structura i organizarea sistemelor: UCP, memorie, sistem de IO Clasificare i exemplificare a arhitecturilor moderne de calculatoare La absolvirea cursului studenii vor fi capabili:
s descrie, clasifice i s utilizeze un sistem de calcul pe baz de microprocesor s descrie funcionarea subsistemelor unui calculator utilizeze cunotinele (cu ajutorul foilor de catalog i a notelor de aplicaii) pentru instalare, depanare i proiectare a dispozitivelor cu microprocesor, sau a unor interfee specializate la calculator
LABORATOR
1.
PROGRAM ANALITIC
Elemente introductive privind calculatoarele numerice: Reprezentrile funcionale i structurale ale sistemelor de calcul, Organizarea calculatorului, Magistrale, Tipuri de microprocesoare, Modaliti de evaluare a performanelor, Principii fundamentale privind organizarea i funcionarea Unitii Centrale de Procesare (UCP): Structura de procesor, funcionare, cale de date, unitate de control, arhitectura unei UCP elementare, adresarea i selectarea memoriei principale, indicatori de condiii i de control, interfaa cu exteriorul, tipuri de semnale pe magistralele externe, ntreruperi i excepii, memoria stiv, seturi de instruciuni, CISC/RISC, moduri de adresare, unitatea de control, structuri de tip pipeline (conduct) Organizarea memoriei: Funcie, caracteristici principale, organizarea pe niveluri ierarhice, RAM static, RAM dinamic, cache, tehnici de administrare a memoriei, implementarea memoriei virtuale Organizarea sistemului de intrare/iesire (I/O): interfee, comunicaii seriale sincrone i asincrone, modaliti de transfer I/O, standarde de interfaare la magistralele calculatorului: ISA, PCI, EIA232, USB 4
Obiective
educaionale:
Cptarea deprinderilor de programare i dezvoltare de aplicaii software cu microprocesoare Utilizarea programrii n limbaj de asamblare pentru procesoare Intel 80x86
2.
3.
4.
Bibliografie
Romanca, M., Calculatoare - arhitectura si organizare, Ed. Universitii Transilvania, Braov, 2004; disponibil n format electronic la http://vega.unitbv.ro/romanca Athanasiu, Irina, s.a., Microprocesoarele 8086, 286, 386, Programarea n limbaj de asamblare, Ed. Teora 1992; Stallings, William, Computer Organization and Architecture, 5th edition, Prentice Hall International, Inc., 2000. Tanenbaum, Andrew, Organizarea structurat a calculatoarelor, Computer Press Agora, 1999 http://vega.unitbv.ro/~romanca/Calc http://elearning.unitbv.ro/mdl10/
Colocviu Prezena la curs Laborator
EVALUARE
Forme de evaluare Modalitate evaluare Examinare scris Ca form de cooperare n nsuirea cunotinelor Activitate practic i evaluare final Procent din nota final 80 % 10 % 10%
Pentru promovarea examenului este obligatorie obinerea notei minime 5.00 la examinarea scris ct i media minim 5.00 la evaluarea activitii n laborator
Ce este un Microprocesor ?
Ce este un calculator?
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 microprocesor de uz general UCP-ul unui calculator este o structur de procesor de uz general Toate calculatoarele moderne sunt construite cu microprocesoare cu funcia de UCP.
7
Un calculator este o main de prelucrare automat a datelor ce funcioneaz sub controlul unei liste de instruciuni (program) stocate n memoria principal a calculatorului. Un calculator este o combinaie de resurse fizice (hardware) i programe (software) Calculatorul conine: UCP + Memorie + IO
Sistem de calcul
date
adrese
UCP (Microprocesor)
control
Periferice
9 10
MICROCONTROLLER
11 12
Microcontroller un calculator ce include un microprocesor i care este destinat aplicaiilor de control industrial (nu calculului de uz general) Un microcontroller conine: UCP, memorie i IO Un microcontroller este un microcalculator pe un chip proiectat pentru aplicaii de control
Principalul obiectiv al proiectrii pentru fiecare tip de chip poate fi rezumat ca:
Microprocesoarele (MP) sunt mai ales flexibile Microcontrollerele (MC) sunt mai ales compacte
13
14
Proprietile multor dispozitive electronice sunt strns legate de legea lui Moore:
viteza de prelucrare capacitatea de memorie dimensiunea i rezoluia senzorilor etc
Numrul tranzistoarelor (echivalente) ce poate fi plasat pe un circuit integrat crete exponential, dublndu-se aproximativ la fiecare 2 ani Numrul tranzistorilor ce pot fi plasate ieftin pe un circuit integrat creste exponential, dublandu-se aproximativ la fiecare 2 ani.
Densitatea la cost minim pe tranzistor
Termenul de Lege a lui Moore a fost inventat, n jurul lui 1970, de profesorul Carver Mead de la California Institute of Technology Legea lui Moore este adesea criticat, pentru c utilizatorii sunt interesai n primul rnd de creterea performanelor procesoarelor
Este greu s se echivaleze creterea numrului de tranzistoare echivalente pe un chip cu creterea performanei procesoarelor
Puterea de calcul va crete exponenial, dublndu-se la fiecare 18 - 24 luni, pentru un viitor previzibil
15
16
Cu ct sunt mai multe impulsuri pe secund cu att se fac mai multe operaii Cu ct frecvena este mai mare cu att crete si puterea consumat (comutaie) Creterea frecvenei impune mijloace de disipare a cldurii procesorului
17
18
Procesoare multi-core (mai multe nuclee ce lucreaz n paralel) Intel a calculat c scderea cu 20% a frecvenei pentru un nucleu conduce la scderea la jumate a puterii consumate i doar la 13% pierdere de performan Dac se mpart sarcinile de prelucrare ntre 2 nuclee ce lucreaz la o frecven redus la 80%, se obine o performan mai mare cu 73% pentru aceeai putere consumat Disiparea cldurii este mai bun (dou noduri n loc de unul)
19
20
Anii 1960 calculatoare mari. Aplicaiile tipice includeau procesri de date n afaceri i calcule tiinifice Anii 1970
apariia minicalculatorului: laboratoare tiinifice, utilizatori multipli care partajeaz resursele de la terminale independente microprocesorul : mbuntiri n tehnologia circuitelor integrate, cost redus, producie n numr mare, rspndire n multe aplicaii de calcul numeric Generalizarea limbajelor de programare de nivel nalt (HLL) + translatoare a nlturat nevoia compatibilitii programelor la nivel de cod obiect Crearea de sisteme de operare standardizate, independente de productor, care au sczut costurile i riscurile de utilizare a noilor arhitecturi
21
22
Anii 1990:
Multiprocesoare SoC (System on Chip) VLIW (very large instruction word) un compilator planific instruciunile (static) spre deosebire de planificarea dinamic de la procesoarele superscalare Din ce n ce mai multe funcii implementate hardware: acceleratoare grafice, extensii de instruciuni MMX Rspndirea legturii Internet i a tehnicilor World Wide Web Dispozitive de calcul portabil (PDA, notebook) Electronic digital de larg consum
Frecvene de ceas mai mari de 2 GHz Procesoare de putere mic (aplicaii mobile) Micro-arhitecturi superscalare (mai multe instruciuni lansate n paralel) SIMD (Single Instruction Stream Multiple Data Stream): operaii similare efectuate n paralel pe seturi diferite de date Funcii de prelucrare DSP: MMX, 3D, grafic, sunet Nuclee procesor multiple pe un chip Memorie cache pe 2-3 niveluri ............................
23
24
ARHITECTURA CALCULATORULUI
Arhitectul de calculator proiecteaz maina pentru a rula programe. Arhitectura de calculator (procesor) include:
1. 2. Arhitectura setului de instruciuni ISA (Instruction Set Architecture) Implementare, cu dou componente: Organizare Hardware
Piaa embedded este cea mai mare ! Procesor Embedded = Un procesor programabil a crui interfa de programare nu este accesibil utilizatorului final i care realizeaz un set restrns de funciuni dedicate aplicaiei specifice.
25
26
Adres instr.
IR Instruciunea curent
Instruciune
UCP ALU
ALU
Logic de Control
de la/la memorie
adrese i comenzi
Date
MDR
28
Datele i instruciunile sunt stocate n aceeai memorie principal (conceptul de program stocat); Coninutul memoriei este adresabil la nivel de locaie (fr a se considera ce informaie este stocat: date sau cod); Instruciunile sunt executate secvenial (una cte una n ordinea locaiilor de memorie n care sunt stocate) cu excepia faptului cnd acest lucru este precizat explicit. Calculatorul conine urmtoarele 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 funcie de programul executat.
29
Periferice intrare
Sistem de intrare
Memorie principal I
Unit. control (UC)
Sistem de ieire D
ALU & Registre
Periferice ieire
UCP Calculator
30
Funcia principal a UCP este s execute instruciunile aduse (fetch) din memoria principal. O instruciune codific pentru UCP o operaie de baz (aritmetic, logic, transfer de date la / de la memorie, etc.) ce trebuie efectuat. UC interpreteaz (decodific) instruciunea curent adus i comand celelalte uniti funcionale pentru a se putea executa instruciunea. UCP conine un set de registre folosite ca locaii de stocare temporar pentru rezultate intermediare i date intens utilizate de program. Fiecare instruciune este executat ntr-o secven de pai, numit ciclu instruciune.
Fetch Instruciune
Execuie
31
Pentru rularea programului UCP are o funcionare ciclic la fiecare instruciune executat
32
Unitate de Control
Unitatea de control (UC) este creierul procesorului UC controleaz i sincronizeaz toate elementele din interiorul UCP i interfeele ctre calea de date extern.
Adresa 0 Registru Instruciune Semnale de control interne UCP Adresa 1
d bii
Unitate de Control
Adresa k
Adresa 2a-1-1
Adresa 2a-1
Clock
33 34
Periferice
Sistemul de IO conine locaii adresabile (port-uri) prin care calculatorul face schimb de informaie cu lumea extern. Sistemul conine circuite pentru funciile:
schimbare format date (serial / paralel) stocare temporar de date (latch) verificare a corectitudinii datelor transferate sincronizare ntre periferic i UCP (datorit diferenelor mari de vitez de funcionare). logic de decodificare
35
Dispozitive (periferice) de intrare recepioneaz informaia din mediul extern (prin diveri senzori) i o transform ca natur fizic i format de reprezentare compatibilitate cu nivelurile de tensiune recunoscute de calculator (ca valori binare). Dispozitive (periferice) de ieire operaie invers dispozitivelor de intrare. Prelucreaz datele din calculator i le transform n informaie acceptabil la dispozitivul de ieire.
36
,,Arhitectura calculatorului
Memorie
date i instruciuni
CPU
Arhitectul de calculator proiecteaz maina pentru a rula programe. Printre sarcinile sale, sunt i urmtoarele: proiectarea setului de instruciuni organizare funcional proiectare logic, i implementare
Memorie de Program
doar instruciuni
37
38
,,Arhitectura calculatorului
Termenul de arhitectur se refer la dou componente principale: Arhitectura Setului de Instruciuni (ISA), se refer la setul de instruciuni vizibil programatorului. Arhitectura setului de instruciuni servete ca o interfa ntre software i hardware. Implementarea mainii cu dou sub-componente: organizare hardware
Interfa ntre hardware i software. ISA include tot ce trebuie s cunoasc un programator pentru a programa la nivel fizic al maina. ISA permite ca dou maini diferite (implementare, costuri i performane diferite) s ruleze aceleai programe.
39
40
Implementare
Organizarea include aspectele de nivel nalt ale proiectului, cum ar fi organizarea sistemului de memorie, structura magistralelor, organizarea intern a UCP. Dou maini pot avea organizri diferite, dar s aib acelai ISA. Hardware se refer la aspectele specifice de implementare ale mainii. Include proiectul de detaliu al logicii, tehnologia semiconductoare utilizat, tipul de capsul.
41
Un calculator poate fi descris i prin funciile operaiile pe care le pune la dispoziia utilizatorului Circuitele electronice ale unui calculator recunosc i execut doar un set limitat de instruciuni elementare, codificate n form binar Instruciunile recunoscute sunt rareori mai complicate dect:
adun dou numere verific dac un numr este egal cu zero copiaz date dintr-o zon a memoriei calculatorului n alt zon.
42
LIMBAJ DE PROGRAMARE
MAINI VIRTUALE
Funcional, se poate spune c limbajul L1 corespunde unei maini 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 n program scris n L0 (executabil), iar programul n L1 este abandonat. - programul n L0 este ncrcat n memoria calculatorului i executat Exemple de programe translator: compilator, asamblor. Interpretorul este un program n L0 care ruleaz pe M0 i care preia instruciunile programului n L1 ca pe date de intrare. Interpretorul citete i decodific fiecare instruciune din L1 i apoi trece imediat la execuia acesteia. La interpretare nu se genereaz un program executabil ca la translatare Limbaje de programare mai apropiate de limbajul uman: L2, L3, ... (pentru maini virtuale M2, M3, ...)
44
Instruciunile elementare, recunoscute de un procesor formeaz limbajul main al procesorului Notaie: limbaj L0 ce corespunde mainii fizice M0. Programatorul scrie programele sale ntr-un limbaj L1, format din instruciuni simbolice (succesiuni de litere i cifre) i mai apropiat de limbajul uman Pentru a putea executa acest program pe maina M0 fiecare instruciune din L1 a programului trebuie translatat n instruciuni din limbajul L0 De exemplu programatorul poate scrie n L1 instruciunea: add al,6 iar programul de translatare va genera succesiunea binar, corespunztoare lui L0: 0000 0100 0000 0110
43
Pachete de aplicaii
Translatare sau interpretare
Maina virtual M2, cu limbajul main L2 Maina virtual M1, cu limbajul main L1 Maina fizic (real) M0, cu limbajul main L0
Nivelul 2: Programele n L2 pot s fie interpretate de un interpretor ce ruleaz pe M1 sau M0, sau pot s fie translatate n L1 sau L0 Nivelul 1: Programele n L1 pot s fie interpretate de un interpretor ce ruleaz pe M0, sau pot s fie translatate n L0 Nivelul 0: Programele n L0 pot fi executate direct de ctre circuitele electronice
Instruciuni main
Interpretare
Microprogram
Interpretare
0110 1101 0000 0100 1110 1011 1101 1100 1000 0000 1101 1001 0100 1101 1110 1110 1000 0110 1110 1100 0111 0000 1110 1101 0111 1010 1111 1011 1000 0010 1110 1001
Uniti funcionale
Implementare
Dispozitive electronice
45 46
SOFTWARE
- software utilizator
Software
- software de asisten (pentru dezvoltarea aplicaiilor) compilatoare - software de sistem interpretoare de comenzi
sisteme de operare
47