1 / 134

Sisteme cu microprocesoare

Sisteme cu microprocesoare. Seria 2008-2009 Prof. Dr. Ing. Traian C. IONESCU. Date de contact. Profesor: Traian IONESCU Email: tcion@rdsmail.ro Asistenti: Radu PIETRARU Andrei HOHAN Bogdan CARSTOIU Laborator: ED 308, ED 312 Website: http://smp.aii.pub.ro/. Capitolul 1.

nadine-beck
Download Presentation

Sisteme cu microprocesoare

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sisteme cu microprocesoare Seria 2008-2009 Prof. Dr. Ing. Traian C. IONESCU

  2. Date de contact • Profesor: Traian IONESCU • Email: tcion@rdsmail.ro • Asistenti: Radu PIETRARU Andrei HOHAN Bogdan CARSTOIU • Laborator: ED 308, ED 312 • Website: http://smp.aii.pub.ro/

  3. Capitolul 1 Introducere

  4. Pozitia in cadrul planului de invatamant • Componenta esentiala a programei de computer engineering • Accentul este pus mai putin pe analiza si formule si mai mult pe intelegerea proiectarii si a functionarii unui sistem real. Plan invatamant Automatica

  5. Obiectivele cursului Obiective generale: • Obtinerea de experienta in abordarea subiectelor tehnice complexe si capacitatea de a digera informatii tehnice detaliate intr-un interval de timp rezonabil de scurt • Dezvoltarea abilitatii de a combina creativitatea cu abordarea metodica a proiectarii hardware si software pentru a minimiza numarul de erori • Dezvoltarea atentiei catre detalii la implementarea proiectarii • Obtinerea de experienta in aplicarea metodelor de rezolvare a problemelor pentru a gasi solutii ce satisfac un set de constrangeri, debugging hardware/software

  6. Obiectivele cursului Obiective specifice: • Intelegerea legaturii dintre conceptele logicii digitale de nivel jos si conceptele arhitecturii de nivel inalt • Intelegerea executiei unei instructiuni ciclu cu ciclu • Intelegerea conceptelor precum: magistrala, memorie, interfatarea acestora, intreruperi (……..)

  7. Evaluarea cunostintelor • Structura cursului: 14 sapt x 3 ore/sapt = 42 ore curs 14 sapt x 2 ore/sapt = 28 ore aplicatii • Metoda de evaluare a cunostintelor: evaluarea continua • Evaluarea activitatii la curs: 2 examene scrise, (sapt. 8, sesiunea de vara) • Evaluarea activitatii aplicative: 4 lucrari (2 teme de programare, 1 tema de cercetare + 1 tema de proiectare hardware)

  8. Evaluarea cunostintelor (2) • Baza materiala: 25 PCuri conectate la Internet (ED308) + 12 PCuri conectate la Internet (ED312) + 12 platforme cu 8051+12 platforme cu 80386 (ED312) • Materiale elaborate in anii anteriori • Note de curs, difuzate saptamanal, anticipat

  9. Evaluarea cunostintelor (3) • Probele de examen: • Saptamana 8: 3 subiecte + 1 problema, pondere 40 % din nota la examen conditie de promovare: minimum 5 • Sesiunea de vara: 3 subiecte + 1 problema, pondere 60 % din nota la examen Conditie de promovare: minimum 5 Timp de elaborare a raspunsurilor: 150 min

  10. Evaluarea cunostintelor (4) • Aplicatii: • Cele 4 teme, notate de la 0 la 10, suma minima pentru promovare 35 Ponderea in evaluarea aplicatiilor 50 % • Proiect, notat de la 0 la 10, nota minima 5 Ponderea in evaluarea aplicatiilor 50 % Programa Laborator SMP

  11. Evaluarea cunostintelor (5) • Ponderea examenelor: 60% • Ponderea aplicatiilor: 40 %

  12. Principalele capitole • Introducere (3 ore) • Pozitia in cadrul planului de invatamant • Obiectivele cursului • Cerinte • Evolutia microprocesoarelor • Principalele caracteristici arhitecturale ale microprocesoarelor (6 ore) • Structuri de date • Mecanisme de stiva • Moduri de adresare • Intreruperi • Ierarhizarea memoriei

  13. Principalele capitole (2) • Multiprogramming si multitasking (3 ore) • Multiprogramming • Excludere mutuala • Semafoare. Regiuni critice • Microprocesorul 8086 (3 ore) • Arhitectura • Structuri de date • Registre • Segmentarea memoriei

  14. Principalele capitole (3) • Interfata intre microprocesor si lumea externa (12 ore) • Magistrala • Memorie, ierarhizare • Porturi I/O • Tratarea variabilei “timp” • Interfata cu tastatura si elemente de afisare • Interfata cu lumea analogica • Comunicatii seriale

  15. Principalele capitole (4) • Arhitectura avansata: Pentium (9 ore) • Metode avansate de gestiune a memoriei • Segmentare. Paginare • Cai de crestere a vitezei de executie a programelor • Arhitectura pipeline • Executie speculativa • Structuri multi-core • Studii de caz (3 ore) • Bancomat (ATM) • Monitorizarea distribuirii agentului termic intr-un cartier de locuinte

  16. Evolutia Microprocesoarelor Legea lui Moore Gordon Moore – 1965: “numarul de tranzistoare de pe un chip se va dubla la fiecare doi ani” • Legea lui Moore a “alimentat” o revolutie tehnologica, pe masura ce Intel a crescut exponential numarul de tranzistoare integrate in procesoarele sale pentru a spori performantele si a eficientiza consumul de energie.

  17. Momente importante • 1971: Microprocesorul 4004 • Primul microprocesor Intel • Folosit la calculatorul Busicom • 1972: Microprocesorul 8008 • De doua ori mai puternic decat 4004 • Folosit la Mark-8 – unul din primele “home computers” • 1974: Microprocesorul 8080 • Folosit pentru primul personal computer – “Altair” – costa 395 USD. S-au vandut zeci de milioane.

  18. Momente importante • 1978: Microprocesorul 8086-8088 • Un moment de cotitura pentru IBM PC. • Este procesorul care a propulsat compania Intel in topul Fortune 500. • 1982: Microprocesorul 286 • Initial cunoscut ca 80286, a fost primul procesor pe care putea rula tot software-ul scris pentru predecesorul sau. • Caracteristica de baza: compatibilitatea cu versiunile anterioare. • La 6 ani de la lansare, un numar de 15 milioane de computere foloseau procesorul 286. • 1985: Mircroprocesorul Intel386 • 275000 tranzistoare, de 100 de ori mai multe decat 4004. • Chip pe 32 de biti • multitasking

  19. Momente importante • 1989: Intel486 DX CPU • Coprocesor matematic – cresterea vitezei de calcul • 1993: Intel Pentium • Incorporare usoara a datelor din lumea “reala” – sunete, fotografii etc. • 1995: Intel Pentium Pro • Destinat aplicatiilor pentru statii si servere pe 32 de biti • Computer-aided design, calcule stiintifice • Fiecare procesor Intel Pentium Pro contine un al doilea chip de memorie cache. • Contine 5.5 milioane de tranzistoare. • Unele procesoare au contacte cu pini si altele montate in asa numitele BGA (Ball Grid Array)

  20. Momente importante • 1997: Intel Pentium II • 7.5 milioane de tranzistoare • Tehnologie MMX pentru procesarea eficienta a datelor video, audio si gragice. • Introdus in SEC – Single Edge Contact Cartridge care incorporeaza un chip de memorie cache rapida. • Utilizatorii pot edita si partaja fotografii, text, muzica, tranzitii de imagini in cadrul unui videoclip si apoi pot trimite aceste date pe Internet.

  21. Momente importante • 1998: Intel Pentium II Xeon • Destinat pentru niveluri de performanta necesare serverelor, potrivit strategiei Intel de a oferi procesoare destinate unor segmente de piata specifice. • Folosit pentru statii si servere pe care ruleaza aplicatii de business consumatoare de resurse: servicii Internet, data warehousing, creare de continut digital, design. • Sistemele bazate pe acest procesor pot cotine pana la 8 procesoare.

  22. Momente importante • 1999: Intel Celeron • Destinat segmentului de piata PC. • Performante inalte la preturi rezonabile • Excelent pentru gaming si software educational. • 1999: Pentium III • 70 de instructiuni noi • 3-D, streaming audio, video. • Proiectat pentru browsing Internet confortabil, real-time – muzee online, magazine virtuale etc. • 9.5 milioane de tranzistoare. • 1999: Intel Pentium III Xeon • Performante suplimentare, ideal pentru aplicatii de e-Commerce si pentru multiprocesoare (tehnologie cache avansata ce creste viteza de transmitere a datelor de la magistrala la procesor).

  23. Momente importante • 2000: Intel Pentium 4 • Videoclipuri TV transmise prin Internet • Comunicare real-time de sunete, imagini si voce • Randare de grafica 3D • 42 milioane de tranzistoare • Viteza de 1.5 GHz (fata de 4004 care avea viteza de 108 KHz). • Daca viteza automobilelor ar fi avut aceeasi rata de crestere, distanta de la San Francisco la New York ar fi putut fi strabatuta in doar 13 secunde 

  24. Momente importante • 2001: Intel Itanium • Primul din familia de procesoare pe 64 de biti de la Intel. • Destinat statiilor si serverelor enterprise • Arhitectura noua, bazata pe EPIC – Explicitly Parallel Instruction Computing design technology. • Performante inalte pentru aplicatii e-Commerce, tranzactii securizate, baze de date mari, calcule stiintifice complexe.

  25. Momente importante • 2003: Intel Pentium M • Intel Pentium M, Intel 855 si Intel Pro/Wireless 2100 sunt cele trei componente bazate pe tehnologia Intel Centrino – ofera portabilitate, wireless LAN incorporat, performante mobile ridicate. • 2006: Intel Core • 2006: Pentium Dual-Core

  26. Legea lui Moore

  27. Dihotomia limbaj de nivel inalt‑masina tinta (1) • Un mare volum din programele destinate microcalculatoarelor este scris prin utilizarea limbajelor de nivel inalt. • Cel mai bun mod de imbunatatire a performantelor microcalculatoarelor: cresterea eficientei de executie pentru astfel de limbaje. • “Prapastie semantica” intre modul in care limbajul de nivel inalt este vazut de catre programator si modul de implementare a acestui limbaj pe masina tinta.

  28. Dihotomia limbaj de nivel inalt‑masina tinta (2) • Memorie: In limbajele de nivel inalt memoria este privita drept constand dintr‑un set de variabile carora li s‑au asociat nume, set care nu reflecta relatii de tipul: vecinatatea variabilelor, pozitia lor relativa etc. Dar: • Masina fizica are memoria organizata ca o matrice liniara cu locatii de dimensiuni egale, fiecarei locatii asociindu‑i‑se o adresa.

  29. Dihotomia limbaj de nivel inalt‑masina tinta (3) Structuri de date • Limbajele de nivel inalt folosesc structuri de date multidimensionale (de exemplu matrice cu mai multi indici), in timp ce organizarea memoriei unei masini reale poate manipula structuri de date cu o singura dimensiune. Apel de proceduri • In unele limbaje de nivel inalt, programarea structurata necesita o multitudine de apeluri de proceduri care implica: • transfer de parametri • alocare dinamica a memoriei.

  30. Diferenta Cod - Date • Limbajele de nivel inalt fac diferentierea neta intre cod si date, diferentiere inexistenta in memoria masinii reale. • Alte caracteristici ale masinii care nu sunt luate in considerare de limbajele de nivel inalt: • registrele UCP • aritmetica binara • intreruperi.

  31. Clasificari Arhitecturale (1) • Diferentele intre clasele de arhitecturi constau in volumul de prelucrari efectuate prin program si prin intermediul echipamentului la executia unui program scris in limbaj de nivel inalt.

  32. Clasificari Arhitecturale (2) • Unele masini necesita volume importante de translatari din limbajul de nivel inalt in cel apropiat masinii, ca urmare a nivelului foarte scazut al limbajului masina, caz in care un mare volum de prelucrari se efectueaza de catre software. • Alte masini, avand functii de nivel inalt implementate in arhitecturi hardware, necesita un proces de compilare mai simplu.

  33. Clasificari arhitecturale (3)

  34. Arhitecturi cu Executie Directa • Capabile sa execute direct programe in limbaje de nivel inalt Avantaje: • gradul ridicat de interactiune cu programatorul • absenta timpului de compilare • reprezentarea programului cu un singur fisier (doar codul sursa, fara fisier obiect sau executabil). Dezavantaje: • dificultatile de depanare • numarul erorilor sintactice detectate la executie este mic • este necesara verificarea sintactica a tuturor programelor, chiar si a celor corecte • masina nu poate executa decat programe scrise in limbajul propriu Nu exista exemple de microprocesoare din aceasta categorie.

  35. Arhitecturi Reduse • Orientate catre imbunatatirea performantelor la rularea programelor de nivel inalt. • Implementareadirecta in hardware a unui mic numar de instructiuni simple, a caror executie este optimizata. • Principalele dificultati sunt solutionate la nivelul compilatorului. • Procesoare cu set redus de instructiuni (RISC‑ Reduced Instruction Set Computers)

  36. Arhitecturi Orientate catre Limbaj • Trasatura distinctiva: utilizarea unor • moduri speciale de adresare • instructiuni speciale facilitand implementarea unor operatii specifice limbajelor de nivel inalt, cum este accesul la structuri complexe de date. • Rezultatul: • simplificarea procesului de compilare. • Avantaj: • posibilitatea de implementare directa in hardware a unor functii specifice limbajelor de nivel inalt. Complexitatea crescanda a procesorului poate indeparta rezultatul proiectarii de situatia optima, reducerea vitezei de executie a instructiunilor simple.

  37. Arhitecturi Corelate cu Limbajul • Realizeaza o corespondenta biunivoca intre limbajul de nivel inalt si codul masina. • Compilatorul unui astfel de calculator devine similar cu un asamblor. • Diferenta intre tipurile A (translatare software) si B (translatare hardware): • mai mare viteza de translatare pentru varianta B • mai redusa complexitatea hardware pentru varianta A

  38. Arhitectura si Eficienta de Executie • Caracteristicile arhitecturale cu cele mai puternice influente asupra eficientei de executie a programelor scrise in limbaje de nivel inalt: • tipurile de date • modurile de adresare • setul de instructiuni

  39. Alocarea Memoriei in Limbaje de Nivel Inalt (1) • Spatiul de memorie ocupat de un program este divizat in doua sectiuni principale: • o sectiuneread‑only - contine codul si constantele • o sectiune read‑write - stocheaza toate variabilele declarate si auxiliare utilizate de catre program • Zona de date poate fi subdivizata in: • zona pentru stiva (stack), • zona pentru variabilele declarate • zona cu acces aleatoriu (heap ‑ gramada neorganizata), folosita pentru variabilele create dinamic

  40. Alocarea Memoriei in Limbaje de Nivel Inalt (2)

  41. Alocarea Memoriei in Limbaje de Nivel Inalt (3) • Programarea recursiva impune ca fiecarei apelari de proceduri sa i se ofere propria copie de parametri si variabile definite in cadrul procedurii. • In felul acesta, apelarea procedurii rezulta in alocarea unei noi regiuni de memorie, numita cadru (frame), care contine variabilele locale ale lui A, parametrii sai, adresa de revenire si orice alta informatie necesara adresarii variabilelor exterioare lui A, dar vizibile din procedura A. • Celelalte variabile - definite in programul principal.

  42. Alocarea Memoriei in Limbaje de Nivel Inalt (4) • Structura posibila a unui nou cadru alocat in memorie

  43. Alocarea Memoriei in Limbaje de Nivel Inalt (5)

  44. Tipuri de Date (1) • Manipularea datelor - scopul principal al unui program • Toate limbajele de nivel inalt ofera metode flexibile de definire a structurilor complexe de date In majoritatea cazurilor, programul este in buna masura definit de indata ce s‑au proiectat structurile de date ce urmeaza a fi manipulate.

  45. Tipuri de Date (2) • Principial, toate microprocesoarele sunt capabile a manipula cu rezonabila eficienta structurile de date definite in limbajele de nivel inalt, dar prapastia semantica despre care s‑a vorbit mai inainte conduce la mari deosebiri intre solutiile practice adoptate. • Un microprocesor ofera suport pentru un anumit tip de date doar daca este capabil a manipula operanzi apartinind acelui tip. • Pentru asigurarea suportului pentru tipuri de date diverse doua caracteristici ale microprocesorului sunt de regula intrebuintate: • instructiuni care executa operatii asupra datelor reprezentate conform formatului asociat tipului considerat; • moduri de adresarecare permit accesul simplu la operanzi de tipul considerat

  46. Lungimea Cuvantului (1) • Dimensiunea cuvantului de date - unul dintre factorii majori care influenteaza • performantele • calitatile functionale ale unui microprocesor. • Importanta acestor parametri este demonstrata de faptul ca un criteriu tipic de clasificare a microprocesoarelor se bazeaza pe lungimea cuvantului. Se vorbeste de microprocesor de 8 biti, 16 biti, 32 biti, 64 biti, numerele 8, 16, 32, 64 referindu‑se la lungimea cuvantului de date manipulat.

  47. Lungimea Cuvantului (2) • Doua posibile definitii sunt: • lungimea cuvantului este data de numarul maxim de biti care pot fi transferati intre CPU si memorie intr‑un singur ciclu • lungimea cuvantului este determinata de dimensiunea maxima a operandului care poate fi manipulat de catre unitatea aritmetica‑logica (ALU) a CPU • Prima definitie se refera la traseul extern al datelor • A doua se refera la traseul intern

  48. Lungimea Cuvantului (3) • Adesea, lungimea cuvantului indica, intr‑o anumita masura, performanta. • Este mai potrivit a se discuta despre doua dimensiuni de cuvant de date: • a celuiintern (influenteaza viteza de prelucrare a operanzilor instructiunii) • a celui extern (influenteaza timpul global de acces la memorie pentru extragerea instructiunilor si vehicularea operanzilor)

  49. Lungimea Cuvantului (4) • Cresterea dimensiunii operandului nu este singura consecinta a disponibilitatii unei dimensiuni mai mari a cuvantului. Posibilitatea de a manipula seturi mai mari de biti conduce, de obicei, la introducerea de noi tipuri de instructiuni. • Microprocesoarele cu dimensiuni mai mari de cuvant nu sunt numai mai rapide decit cele cu cuvinte de dimensiuni mai mici, dar ele tind sa posede un mai bogat repertoriu de tipuri de date, sprijinite cu seturi de instructiuni si moduri de adresare adecvate.

  50. Organizarea Memoriei (1) • Toate microprocesoarele au un subsistem al memoriei organizat ca o matrice liniara de elemente de baza de memorare, fiecare din ele asociat cu o anumita adresa. • Dimensiunea elementului de baza de memorare este rezultatul compromisului intre doua cerinte disjuncte: • reprezentarea compacta a datelor • acces eficient la datele stocate in memorie Adresarea bitilor • Necesitatea unei reprezentari compacte a datelor conduce la selectarea unei dimensiuni mici a elementului de baza de memorare.

More Related