SISTEME CU MICROPROCESOARE (EM

)
Denumirea disciplinei :

ARHITECTURA MICROPROCESOARELOR (EA)
Grad didactic, titlul, prenume, numele Conf.univ.dr.ing. Adrian FLOREA E-mail: adrian.florea@ulbsibiu.ro, florea_daa@yahoo.com, http://webspace.ulbsibiu.ro/adrian.florea/html/

Coordonator de Disciplină

1. Dobândirea principalelor cunoştinţe şi înţelegerea conceptelor de bază referitoare la sistemele cu microprocesoare, abordate prin prisma unui sistem unitar interactiv la nivelul

Obiective / (I) CE urmărim?

hardware-software. 2. Cunoaşterea principiilor de proiectare, modelare şi simulare în vederea optimizării microarhitecturilor de procesare a informaţiei.
3. Abordarea microarhitecturilor de calcul atât din punct de

vedere informativ cât şi formativ bazat pe dezvoltarea de aplicaţii.

Computer Science and Electrical Engineering Adrian FLOREA

1

Grila de competenţe asigurată prin specializarea la nivel licenţă:( http://www.rncis.ro/ )  Electromecanică (EM): o C2 – Operarea cu concepte fundamentale din ştiinţa calculatoarelor şi tehnologia informaţiei o C5 – Automatizarea proceselor electromecanice  Electronică aplicată (EA): o C3 – Aplicarea cunoştinţelor, conceptelor şi metodelor de bază privitoare la arhitectura sistemelor de calcul, microprocesoare, microcontrolere, limbaje si tehnici de programare o C4 – Proiectarea si utilizarea unor aplicaţii hardware şi software de complexitate redusă specifice electronicii aplicate

Competenţe specifice disciplinei

1.

Cunoaştere şi înţelegere:  Înţelegerea principiilor de bază ale structurii sistemelor de calcul in general şi a sistemelor cu microprocesoare in particular. Înţelegerea simbiozei microprocesor-compilator.  Identificarea principalelor componente ale unui sistem de calcul. Înţelegerea fluxului datelor si a celui de control in cadrul unui microprocesor. Înţelegerea necesităţii unui sistem ierarhic de memorie.  Abordarea cantitativă a proiectării şi analizei sistemelor de calcul pe baza observaţiei empirice a programelor1, experimentare şi utilizând instrumente de simulare.

Înţelegerea modelului de execuţie von Neumann, (componentele modelului şi ciclul instrucţiunii) aferent unei microarhitecturi de calcul, a limbajului de asamblare propriu. Cunoaşterea interfeţei cu tastatura şi monitorul, a apelurilor sistem (întreruperi software reprezentând servicii ale sistemului de operare prin instrucţiuni dedicate), modurile de adresare pentru instrucţiunile cu referire la memorie (load / store), mecanismul de apel şi revenire din subrutină.
2

Computer Science and Electrical Engineering Adrian FLOREA

2. Instrumental – aplicative

Scrierea de programe in limbaj de asamblare aferent microprocesoarelor MIPS, DLX. Simularea arhitecturilor superscalare cu accent pe sistemul ierarhic de memorie, pe performanţa de procesare şi pe consumul de putere. Optimizari software in vederea reducerii ratei de miss in cache. Concluzii şi interpretări ale rezultatelor simulărilor. Rezolvarea unor probleme de proiectare folosind circuite de memorie, regiştrii, automate programabile. Rezolvarea problemelor ce implică memorii cache, graful dependenţelor de date între instrucţiuni, timpul de aducere şi execuţie a unei instrucţiuni. Scrierea de programe in limbajul de programare C. Compilarea si incarcarea programelor pe microcontrollerul PIC32MX460F512L. Crearea de aplicatii de transfer pe interfete de comunicatii seriale USART, SPI, I2C. Implementarea unei interfeţe grafice de control al sistemului integrat dintr-un PC în limbajul C# (WPF). Aplicaţii cu porturile microcontrolerului PIC32MX460F512L.

(II) DE CE un curs de SISTEME CU MICROPROCESOARE (Arhitectura Calculatoarelor) ?

1

Regula 90 / 10, Legea lui Moore, Legea lui Amdahl, principiul de localitate (temporală, spațială, a valorii), reutilizabiltatea codului

Computer Science and Electrical Engineering Adrian FLOREA

3

Scopul principal al ştiinţei calculatoarelor şi tehnologiei informaţiei (CTI) îl reprezintă realizarea unei lumi mai bune pentru fiecare dintre noi, creşterea nivelului de trai folosind toată gama de sisteme de calcul moderne (calculatoare desktop/laptop, servere şi centre de procesare date de înaltă performanţă, tablete, smartphone şi alte dispozitive portabile multimedia, sisteme dedicate, etc). Pentru a aborda provocările tehnice ale sistemelor de calcul trebuie discutate şi analizate care sunt provocările sociale majore, constrângerile tehnologice, oportunităţile în dezvoltarea economică şi afaceri, caracteristicile aplicaţiilor viitorului, întrucât toate acestea au ca suport sistemele de calcul.

 Provocări sociale majore:
o Reducerea consumului de energie consumată  Sistemele de calcul şi în special centrele de stocare a datelor – serverele browserelor web (Data centers) consumă aceeaşi cantitate de energie cât aviaţia civilă (aproximativ 1.5% - 2% din totalul energie mondiale din anul 2010).  În medie, o simplă interogare pe Google, produce 7g de CO2, iar un sistem desktop care este pornit timp de o oră degajă 60g de CO2.  Turbine masive eoliene inteligente2 interconectate furnizează noi surse de energie electrică. Acestea reprezintă sunt una dintre cele mai mari surse de energie electrică pe an, care înlocuieşte energie electrică produsă prin arderea unor cantităţi mari de cărbune. Astfel, rezultă o economisire a energiei şi un aer mai curat.  Noile aplicaţii solicită mai multe resurse hardware: “Windows 7 + Office 2010 necesită de 70 de ori mai multă memorie (RAM) decât Windows 98 + Office 2000 pentru a scrie exact acelaşi text sau pentru a trimite exact acelaşi mesaj electronic decât acum 10 ani.” o Folosirea tehnologiilor avansate pentru îmbunătăţirea sistemului de sănătate  Dispozitive de monitorizare şi asistare în procesul de vindecare. Operaţii la distanţă  Dezvoltarea de echipamente performante pentru identificarea cu precizie a diferitelor boli (cancer, etc) în fază incipientă  Accelerarea procesului de dezvoltare şi personalizarea medicamentelor / tratamentelor în funcţie de genomul fiecăruia, creşterea imunităţii la anumite boli o Asigurarea unui regim de viaţă decent persoanelor vârstnice sau cu handicap  Implementarea conceptului de casă inteligentă şi automatizarea activităţilor casnice  Utilizarea roboţilor umanoizi pentru într-ajutorare o Contribuţia CTI la transport şi mobilitate  Mobilitatea oamenilor reprezintă un factor critic al societăţii moderne. Desfăşurarea în condiţii de siguranţă, viteză şi transport ieftin poate avea loc:  prin optimizarea şi controlul traficului terestru / aerian sau,  prin folosirea autovehiculelor autonome (conduse singure) sau,
2

Turbinele sunt comandate automat adaptându-se în timp real prin intermediul microcontrollerelor care monitorizează şi modifică pasul paletelor turbinei, viteza de rotație în funcţie şi de modificari ale condițiilor de vânt, temperatură, vibraţii.

Computer Science and Electrical Engineering Adrian FLOREA

4

 prin evitarea anumitor călătorii implementându-se întâlniri virtuale (tele/video - conferinţe). o Asigurarea siguranţei persoanelor  Protejarea persoanelor în cazul defectării mijloacelor de transport  Implementarea de tranzacţii electronice (bancare) sigure  Păstrarea intimităţii (securităţii) individului într-o societate bazată pe comunicare şi apartenenţă la diverse reţele sociale

 Constrângeri tehnologice:
o Din punct de vedere economic durata de viaţă a software-ului este mult mai mare decât cea a hardware-ului  Utilizatorii sunt tentaţi să adapteze / să achiziţioneze sisteme hardware care să le ruleze aplicaţiile software complexe dorite.  Sistemele noi hardware, deşi mai performante (mai multe nuclee de procesare, set de instrucţiuni extins) nu sunt exploatate eficient decât de către cele mai noi aplicaţii software (caracterizate de un grad de paralelism mai mare). Portarea aplicaţiilor software existente (dorite) pe ultimele sisteme hardware poate fi extrem de scumpă şi de multe ori conduce la instabilitatea sistemului. o Puterea consumată defineşte (influenţează) performanţa  Până recent, dublarea numărului de tranzistori integraţi în circuit enunţată prin Legea lui Moore, era însoţită de reducerea nivelului tensiunii de alimentare a circuitului, asigurând o putere consumată relativ stabilă. Din nefericire, reducerea tensiunii de alimentare are ca efect secundar creşterea puterii statice care compensează (în mod negativ) reducerea puterii dinamice (de comutare)  reducerea nivelului tensiunii de alimentare nu mai este eficientă.  Pentru păstrarea puterii consumate în limite acceptabile, este probabil ca în cazul procesoarelor multicore, doar o parte din nuclee vor fi active (alimentate cu energie).  Dacă nu sunt folosite toate nucleele  atunci nu are sens ca sistemul multicore să aibă toate nucleele identice  microarhitecturile serverelor şi al sistemelor embedded tind să fie heterogene. o Transferul datelor influenţează performanţa. Comunicaţia (preluarea datelor) în sistemele multicore  Se disting trei tipuri de transfer date: (i) dintre procesor (CPU) şi sistemul ierarhic de memorie.  Memorie mare  timp de acces ridicat  soluţie – memorii cache (cost) (ii) dintre procesoarele din sistemul multicore (CPU1) ...(CPUn)  Număr ridicat de procesoare  interconectarea printr-o singură magistrală produce gâtuire  sunt necesare reţele de interconectare (cost) (iii) dintre sistem şi mediul exterior (dintre procesor şi dispozitivele periferice)  În acest caz, atât procesorul multicore cât şi perifericele contribuie decisiv la costul întregului sistem Necesitatea şi dificultatea scrierii / depanării aplicaţiilor paralele  Din păcate cercetătorii afirmă că doar 10% dintre programatori vor scrie cod cu adevărat paralel, pentru ceilalţi 90% companiile producătoare de procesoare vor dezvolta medii de programare şi tools-uri care să paralizeze automat (integral / parţial) aplicaţiile. Computer Science and Electrical Engineering Adrian FLOREA 5

o

 Principala dificultate în programarea paralelă o constituie codul moştenit (aplicaţiile deja existente care trebuiesc paralelizate pentru a exploata noul hardware). o Relevanţa timpului în sistemele embedded şi în aplicaţii care conţin task-uri paralele Aplicaţii / servicii personalizate, accesate ubicuu, folosind cantităţi mari de date  O aplicaţie bazată pe servicii web (vizibilă pe mobil sau pe monitoare / dispozitive inteligente3 acasă) efectuează analiza datelor colectate de la reţele de senzori şi o ilustrează în condiţii grafice ridicate.  Monitorizarea parametrilor ambientali (temperatură, umiditate, iluminat) aferenţi unei clădiri inteligente echipată cu o reţea de senzori alimentaţi la surse de electricitate ieftine (baterii) sau contoare inteligente (smart meters) în vederea optimizării consumului de energie.  Staţiile de reţele inteligente (smart grid is IP-based networked) comunică cu sistemul de gestionare a energiei de unde locuim pentru a opri sistemele care nu sunt critice în timpul unui deficit de energie.  Sisteme de iluminat public inteligente care se adaptează şi emit cantitatea optimă de lumină în funcţie de condiţiile de trafic, de cele meteorologice, de perioada zilei (zi / noapte).

 Tendinţele aplicaţiilor
o

DE CE SISTEME CU MICROPROCESOARE?
 Pentru a înţelege cum lucrează (funcţioneaza inside) sistemele de calcul moderne din perspectivă mai ales hardware.  Pentru înţelegerea tendinţelor de dezvoltare viitoare ale sistemelor de calcul. o Şi să învăţăm cum să contribuim la acest viitor …  Pentru a încerca să răspundem la intrebarea: Ce impact vor avea modificarile hardware asupra sistemelor şi aplicaţiilor software? o Este esenţial să înţelegem simbioza dintre microprocesor şi sistem de operare / compilator / limbaj de programare; ele trebuie abordate în mod integrator într-un sistem unitar hardware-software o O mai bună înţelegere a sistemului de calcul la nivel hardware ne va ajuta să scriem aplicaţii software mult mai eficiente din punct de vedere al exploatării resurselor hardware ale sistemului (de ex. pentru a fi exploatate eficient arhitecturile multicore necesită aplicaţii paralele).

3

Aceste display-uri fiind disponibile 24/7 trebuie să combine starea de lucru cu cea de veghe (sleep) pentru a fi energy-saving.

Computer Science and Electrical Engineering Adrian FLOREA

6

 Ce impact vor avea tehnologiile viitoare asupra sistemelor de calcul şi asupra vieţii cotidiene? (vezi conceptul de „ubiquitous computing/ambient intelligence”) o medii inteligente bazate pe roboţi de serviciu:  Aplicabilitate: medicină, biologie, inginerie civilă (protecţie), divertisment, militar  Roboţi inspiraţi de comportamentul şi aspectul animalelor, dotaţi cu inteligenţă artificială şi folosiţi pentru monitorizarea biodiversităţii marine, prevenirea / tratarea scurgerilor de petrol în mare, roboţi zburători pentru survolarea / explorarea clădirilor afectate de incendii, cutremure, roboţi de tip şarpe care se pot deplasa şi insera camere video pentru capturi de imagini din respectivele zone

 Roboţi umanoizi care îndeplinesc diverse sarcini domestice: acompaniază persoane în vârstă, ghidează persoanele în muzeu, au rol de barmani sau chelneri. Inteligenţa artificială precum şi camerele web, senzorii de perimetru, microfoanele pentru recunoaşterea la distanţă a vocii şi conexiunile de tip Wi-Fi pentru controlul remote le permit acestora generarea de hărţi, deplasarea pe coridoare, evitarea obstacolelor, unduirea printre călători, furnizarea de bături, etc.

Computer Science and Electrical Engineering Adrian FLOREA

7

 Roboţi care pot îndeplini sarcini periculoase: scufundarea la mare adâncime cu echipamente grele în vederea reparării de conducte marine, nave avariate; inspectarea etanşeizării rezervoarelor de carburant inflamabil / toxic.  Roboţi pentru sporirea performanţelor oamenilor cu dizabilităţi: implantarea de cipuri pe retină pentru îmbunătăţirea vederii; mână bionică, picioare bionice; inserarea de nano-roboţi în sânge care lucrează ân paralel pentru diagnosticarea / vindecarea celulelor bolnave.

(III) CE este Arhitectura Calculatoarelor?

Microprocesorul – „creierul” sistemului de calcul (centrul existentei umane – servere – http://zamolxe.hpc.ulbsibiu.ro/ganglia/, sisteme de uz general – desktop, laptop si sisteme dedicate omniprezente in viata de zi cu
Computer Science and Electrical Engineering Adrian FLOREA 8

zi). Analog cu organismul uman, nu poate funcţiona singur ci în strânsă conexiune cu celelalte componente ale sistemului: memorie, sisteme de intrare / ieşire, interfeţe, bus-uri. Tipuri de sisteme de calcul şi aplicaţii
 Dispozitive mobile cu caracter personal / multimedia (PMD – telefoane

celulare, tablete de tip IPad)
 Sisteme de calcul de uz general de tip Desktop sau mobile (Laptop)  Sisteme de calcul dedicate (Embedded Computers)  Servere comerciale (internet)  Clustere / depozite de calculatoare (zeci de mii de servere)  Aplicaţii cu caracter ştiinţific, industrial, de apărare Prerequisites: Computing Hardware (i.e. Basic Digital Logic, Computer Arithmetic), C Programming are required. LINUX, Compilers are a plus, not needed. On the other hand, we do assume that the student is able and highly motivated to learn and has the energy to support that motivation.

(IV) STRUCTURA cursului
TEMATICA CURSURILOR Nr. crt. Denumirea temei Nr. ore 1. Introducere in problematica microarhitecturilor de procesare a 3 informaţiei. Evoluţia şi clasificarea sistemelor de calcul. Conceptul de calculator omniprezent. Structura unui microsistem de calcul. Rolul blocurilor componente şi interacţiunea acestora: microprocesor Conţinutul tematic (descriptori) 2. (decodificatoare / multiplexoare / sumatoare / unităţi aritmeticologice, regiştrii), memorii, interfeţe, periferice, bus-uri de interconectare, semnale de comenzi şi stări, întreruperi. Instrucţiuni, cicli canonici, stări. Probleme ale comunicării microprocesor – memorie. Memorii DRAM, SRAM, EPROM. Moduri de transfer intre microprocesor si dispozitivele periferice (interogare / intrerupere / DMA). Rolul stivei in tratarea intreruperilor imbricate. 3

Computer Science and Electrical Engineering Adrian FLOREA

9

3.

Modalităţi de evaluare a sistemelor de calcul. Metrici de evaluare si alegerea metricilor. Rolul performantei. Evaluare multicriteriala a microarhitecturilor de calcul. Ecuaţia de stabilire a performanţei procesorului. Legea lui Amdahl. Simulatoare software dedicate microarhitecturilor de calcul. Metodologii de simulare. Platforme de simulare monolitice respectiv modulare (SimpleScalar / UniSim). Clasificare, caracteristici, utilitate (Execution Driven respectiv Trace Driven). Simularea la nivel tranzactional in sistemele many-core. Benchmark-uri standardizate (SPEC, EEMBC). Instrumente software utile in analiza si proiectarea microarhitecturilor (asambloare, link-editoare, debuggere, cross-compilatoare). Proiectare simulatoare (interfata cu utilizatorul si crearea resurselor; nucleul functional al simulatorului; optimizatoare software de cod obiect).

6

Exemple, aplicatii. 4. Proiectarea sistemului ierarhizat de memorii într-o microarhitectura de calcul. Necesitatea ierarhizării sistemelor de memorii. Localităţi temporale şi spatiale: caracteristici intrinseci ale programelor în execuţie (regula 90-10). Memoria cache – definiţie, metrici folosite în caracterizare (Rhit, Tacces, Rata de procesare). Tipuri arhitecturale de memorii cache: definitie, structură, regula de mapare, principii de proiectare / implementare. Funcţionare dinamică – algoritmii de înlocuire a blocurilor conflictuale, strategia de scriere. Folosirea instrumentelor software în evaluarea complexităţii şi a consumului de putere în microarhitecturi; evaluare bazată pe necesitatea simulării consumului energetic aferent unui cache (simulatorul CACTI: http://quid.hpl.hp.com:9081/cacti/detailed.y ) 3

Computer Science and Electrical Engineering Adrian FLOREA

10

5.

Metode

de

îmbunătăţire

a

performanţei

cache-urilor.

3

Optimizari software in vederea reducerii ratei de miss in cache. Coerenta cache-urilor in sistemele multiprocesor. Evidenţierea conceptelor legate de cache-uri – modul de organizare, regulile de mapare, algoritmii de înlocuire a blocurilor conflictuale, strategia de scriere, optimizari software – folosind simulatorul PCSPIM-CACHE. Insistat pe organizare simulator (ferestre Registru / Sesiune / Cache_Instructiuni_Date), vizualizare metrici, limbaj asamblare MIPS. Aplicaţii: prima (g_cache.s) are un caracter explicativ cu rolul de a evidentia eficienta memoriilor cache din prisma celor doua principii de localitate: temporala si spatiala. Sunt ilustrate interferentele produse de accesul in aceeasi zona a cache-ului de date din partea a două tablouri (aflate evident la adrese diferite în memoria principală). A doua aplicaţie (cache_loop.s / cache_loop_i.s) se referă la implementarea unei metode software de optimizare care să determine creşterea ratei de hit, şi anume interschimbarea buclelor. 6. Testare parţială din materia parcursă. Seminar de aplicaţii. (I) Interogare/Intreruperi/DMA – probl. 42, 36, 30 cap.11 [3]; Metrici Cache-uri (rata de hit, timp mediu de acces la memorie) – probl. 40, 64 cap.11 [3], probl. cache - Structura sistemelor de calcul [Baruch Zoltan]. 7. Microcontrollere şi aplicatii hard-soft. Introducere. Caracteristici arhitecturale specifice. Programarea microcontrollerului: 3 3

alegerea limbajului; depanarea, testarea si incarcarea codului in memoria EPROM.

Computer Science and Electrical Engineering Adrian FLOREA

11

8.

Microcontrollerul

Philips

80C51.

Organizarea memoriei.

3

Schema bloc de principiu a unui microcontroller. Setul de instructiuni, moduri de adresare. Structura mecanismelor de intreruperi hardware. Structura interfetelor de I/O. Magistrala de interconectare I2C. Magistrala ACCES.bus. Protocolul CAN (Control Area Network). Placi si softuri de dezvoltare a aplicatiilor. 9. Arhitectura microprocesoarelor RISC. Arhitectura setului de instructiuni (ISA): regiştrii procesorului, modurile de adresare, sintaxa asamblor, utilizarea memoriei şi convenţii de apel, formatul instrucţiunilor şi setul de instrucţiuni. Optimizarea ISA in vederea facilizarilor compilarilor HLL: formate de instructiuni de lungime fixa, opcode de lungime fixa, permiterea adnotarilor pentru cresterea performantei de procesare prin interactiunea software – hardware, determinarea variabilelor de memorie (frecvent folosite) care pot fi stocate in registrii. Simbioza procesor – compilator. Generarea codului obiect pentru o arhitectură dată. Implementarea în hardware a funcţiilor din programele de nivel înalt. Stiva de date aferentă funcţiilor. Transferul parametrilor în cazul apelului. Translatarea codului de la nivel high (C) la nivel low (asamblare). (Cap. 1 [3], Cap. 10 [2]) 3

Computer Science and Electrical Engineering Adrian FLOREA

12

10.

Principiile

arhitecturale

ale

microprocesoarelor

moderne.

3

Caracteristicile de bază ale modelului RISC. Setul optimizat de instrucţiuni: diferenţe MIPS – DLX (instrucţiuni pentru rest, instrucţiuni de transfer şi de salt condiţionat). Structura pipeline a microprocesorului (fazele). Avantajele procesării pipeline.
Implementarea non-pipeline respectiv pipeline a arhitecturii

„hardware” a microprocesoarelor RISC (probl. 24, 29 (a, b) şi 50
cap.11 [3]). Proiectarea caii de date si a caii de control a

microprocesorului. Problemele hazardurilor in microprocesoarele RISC: definire, clasificare (structurale, de date, de ramificatii), soluţii de evitare a efectelor defavorabile. Principii de proiectare a unitatii de control in vederea detectării / eliminării hazardurilor (forwarding, renaming). Optimizarea unităţilor secvenţiale de program şi predicţia ramificaţiilor (probl. Branch prediction Example, pg. 263, cap.3.5
[5], Probl. 3.7, 3.8, pg. 348, cap. 3.15 [5]).

Computer Science and Electrical Engineering Adrian FLOREA

13

11.

Principiile maşinilor cu execuţie multipla. Consideraţii generale. Taxonomii (procesoare superscalare si VLIW). Tehnici de optimizare statica a programelor (locale – List Scheduling: Loop Unrolling şi Software Pipelining, globale – Trace Scheduling). Aplicaţii: a) Utilizarea simulatorului WinDLX: configurarea WinDLX, încărcarea programelor de test, simularea benchmarkurilor, sistemul de ferestre. Investigaţii arhitecturale utilizând simulatorul DLX: benchmark - urile Fact.s, Invers.s, rutina Input.s, probleme propuse spre rezolvare. Evidenţierea efectului defavorabil al hazardurilor RAW în cadrul arhitecturilor pipeline scalare asupra performanţei de procesare. Modificarea programului de test fact.s şi simularea hazardurilor structurale şi a conflictelor de nume (WAW). Vizualizarea tehnicii de forwarding – câştigul de performanţă obţinut. b) Utilizarea simulatorului VLIW-DLX: ilustrarea principiilor fundamentale ale procesării VLIW (very long instruction word). Rolul software-lui în detecţia şi eliminarea hazardurilor RAW. Relaţia dintre instrucţiunea multiplă şi instrucţiunile RISC primitive şi independente, care vor fi alocate unităţilor de execuţie în conformitate strictă cu poziţia lor în instrucţiunea multiplă (număr/latenţe). Optimizări software in procesoarele VLIW (loop unrolling, software pipelining). Avantaje / Dezavantaje faţă de procesoarele superscalare. Aplicabilitate – sisteme dedicate (procesoare de semnal, procesoare multimedia). Aplicaţie rezolvată – execuţia pe un procesor VLIW a unui program care înmulţeşte două matrici pătratice.

3

Computer Science and Electrical Engineering Adrian FLOREA

14

12.

Principiile maşinilor cu execuţie multipla. Consideraţii generale. Modele si algoritmi de procesare a instrucţiunilor in microprocesoarele superscalare (in order / out of order). Resurse arhitecturale implicate. Influenţa caracteristicilor arhitecturale specifice procesoarelor RISC superscalare asupra consumului de putere şi respectiv asupra performanţei. Predictorul de salturi – una din principalele cauze care determină consum ridicat de putere în arhitecturi. Evidenţierea efectului negativ al predicţiei greşite a instrucţiunilor de ramificaţie atât asupra vitezei de execuţie a procesorului cât şi asupra energiei consumate (simulatorul PSATSim). Seminar de aplicaţii. (II) Problematica hazardurilor in microprocesoarele pipeline. Graful dependentelor de date, timpul de executie al unui program inainte si dupa optimizare (renaming, forwarding) – probl. 7, 8, 2, 23, 28 cap.11 [3]. Recapitulare finala. Parcurgerea conceptelor esentiale.

3

13.

3

TEMATICA SEMINARIILOR/LABORATOARELOR/PROIECTULUI 1. Exemplificare de sisteme cu microprocesoare / 2

microcontrollere folosite în industrie. Avantajele utilizarii sistemelor dedicate faţă de cele universale. Prezentare a conceptelor fundamentale din teoria sistemelor şi cu microprocesoare. Asemănări / deosebiri microprocesoare vs. Microcontrollere. Noţiuni introductive prezentarea generală structurii laboratorului.

Computer Science and Electrical Engineering Adrian FLOREA

15

2.

Prezentare generală a mediului de lucru şi instalarea instrumentelor hardware / software folosite în dezvoltarea de proiecte cu microprocesoare. Prezentare placă de dezvoltare EasyPic Fusion. Prezentare microcontroller

2

PIC32MX460512L. Prezentare MicroC Pro for Pic32 IDE. Implementarea, compilarea şi încărcarea programului de test “Hello PIC” pe microcontrollerul PIC32MX460F512L. Testarea funcţionării. Utilizarea bibliotecilor din MicroC. 3. Instalare Visual Studio 2010. Introducere în C#, lucrul în consolă, exerciţii de conversie binară, blocuri de decizie. Introducere în programarea orientată obiect (POO), lucrul cu clase şi obiecte, necesare pentru crearea de interfeţe vizuale (WPF). Utilizare controale de tip Textbox, Listbox, Button,etc. 4. Realizarea comunicării între interfaţa grafică şi 2 microcontroller prin interfaţa serială. Vizualizare process şi crearea unui protocol de comenzi. Prezentarea noţiunilor de socket, accesul la interfaţa serială din C# şi transferul datelor dinspre microcontroller către PC. 5. Prezentare Timere: noţiuni generale de funcţionare a timerelor, configurarea şi utilizarea acestora. Prezentare mod de funcţionare intern al timerelor în cadrul arhitecturii sistemului cu microcontrollere şi exemplificarea utilităţii acestora în proiecte viitoare. Utilizarea întreruperilor generate de timere şi folosirea lor pentru gestiunea taskurilor într-un sistem. 6. 7. Evaluare parţială a cunoştintelor. Interfeţe de comunicare receive serială: UART (universal 2 2 4 2

asynchronous

transmit),

I2C

(Inter-Integrated

Circuit), SPI (Serial Peripheral Interface). Introducere în modul de funcţionare şi descrierea detaliată a acestora la nivel fizic.

Computer Science and Electrical Engineering Adrian FLOREA

16

8.

Comunicaţie serială: detaliere şi proiectarea unui sistem complex de mesaje pe LCD ce ilustrează starea unui PC. Această lucrare va presupune îmbinarea tuturor cunoştinţelor de până acum în crearea unei monitorizări simpliste a unui sistem. Generare de date şi feedback. Construcţie minisistem de operare ce administrează un system timesharing a task-urilor microprocesorului. Se va creea un sistem de administrare a unor apeluri de funcţii în funcţie de timpul de acces şi de prioritatea acestora.

2

9.

2

10.

Salvarea de date primite din aplicaţia C# în memoria Flash. Se va încerca să se creeze un sistem de partiţionare al memoriei, pentru a putea indexa rapid locaţia unui fişier. Aplicaţii cu LCD-ul grafic: desenare forme. Se va creea o interfaţă grafică în C# de desenare, ce va transmite desenul prin interfaţa serială microcontroller-ului. Acesta din urmă va afişa desenul pe LCD-ul plăcii de dezvoltare. Evaluare practică privind materia studiată la laborator. 50 20 30

2

11.

2

12.. -

4

Stabilirea notei finale (procentaje)

răspunsurile la examen/colocviu(evaluare finală) teste pe parcursul semestrului răspunsurile finale la lucrările practice de laborator activitaţi gen teme/referate/eseuri/traduceri/proiecte etc. teme de control alte activităti(precizaţi)……………………………… ……………………………………………………….. - TOTAL

100%

Computer Science and Electrical Engineering Adrian FLOREA

17

Bibliografia

Minimală obligatorie: 1. Vinţan Lucian – Organizarea şi proiectarea microarhitecturilor, http://webspace.ulbsibiu.ro/lucian.vintan/html/Organizarea.pdf. 2. Florea Adrian – Introducere în Ştiinţa şi Ingineria Calculatoarelor. Interfaţa Hardware – Software, Editura Matrix ROM, Bucureşti, ISBN 978-973-755264-8, 2007 (313 pg.). 3. Florea Adrian, Vinţan Lucian – Simularea şi optimizarea arhitecturilor de calcul în aplicaţii practice, Editura Matrix ROM, Bucureşti, ISBN 973-685605-4, 2003 (443 pg. + CD atasat). 4. Florea Adrian – Predicţia dinamică a valorilor în microprocesoarele generaţiei următoare, Editura MatrixROM, Bucuresti, ISBN 973-685-980-0, 2005, (413 pg. + CD atasat). 5. Patterson David, Hennessy John – Computer Architecture: A quantitative Approach, Morgan Kaufmann Publishers, Fourth Edition, 2007. Complementară: 6. Patt Yale, Patel Sanjay – Introduction to Computing Systems: from bits & gates to C & beyond, McGraw-Hill Higher Education, 2001. 7. Patterson David, Hennessy John – Computer Organisation and Design: The Hardware/Software Interface, Third Edition, Elsevier, 2005, ISBN: 1-55860604. 8. Baruch Zoltan Francisc – Structura sistemelor de calcul, Editura Albastra Cluj Napoca, 2005, ISBN 973-650-143-4. 9. M. Duranton et al. – The HiPEAC Vision, HiPEAC Roadmap, 2010, http://www.hipeac.net/system/files/hipeacvision.pdf .

Pentru detalii suplimentare legate de instrumente software utile în analiza şi proiectarea microarhitecturilor a se vedea capitolul 3 din lucrarea 4 – „Predicţia dinamică a valorilor în microprocesoarele generaţiei următoare” din bibliografia obligatorie prezentată în cursul introductiv şi în fişa disciplinei.

Computer Science and Electrical Engineering Adrian FLOREA

18

Sign up to vote on this title
UsefulNot useful