Mic Raspunsuri(1)

43
1. Structura unui calculator cu arhitectură von Neumann (principii, structură bloc, rolul componentelor din structura bloc). 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 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. Structura bloc: Rolul componentelor din structura bloc: UCP: 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 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 intens utilizate de program. Fiecare instrucţiune este executată într-o secvenţă de paşi,numităciclu instrucţiune. Unitatea de control (UC) este “creierul” procesorului Unitate de prelucrare 1

Transcript of Mic Raspunsuri(1)

Page 1: Mic Raspunsuri(1)

1 Structura unui calculator cu arhitectură von Neumann (principii structură bloc rolul componentelor din structura bloc)

Principii Datele şi instrucţiunile sunt stocate icircn aceeaşi memorie principală (conceptul de program

stocat) Conţinutul memoriei este adresabil la nivel de locaţie Instrucţiunile sunt executate secvenţial (una cacircte una icircn ordinea locaţiilor de memorie icircn care

sunt stocate) cu excepţia faptului cacircnd 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 problemeicircn funcţie de programul executat

Structura bloc

Rolul componentelor din structura bloc

UCP Funcţia principală a UCP este să execute instrucţiunile aduse (ldquofetchrdquo) 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 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 intens utilizate de program Fiecare instrucţiune este executată icircntr-o secvenţă de paşinumităciclu instrucţiune Unitatea de control (UC) este ldquocreierulrdquo procesorului

Unitate de prelucrare Unitatea aritmetică şi logică (ALU) realizează operaţii logice sau aritmetice cu operanzii

adresaţi de UC Icircnainte de prelucrare operanzii se stochează icircntr-un set de registre de uz general folosite ca

memorie temporară Registrele reprezintă o memorie locală UCP de foarte mare viteză Icircn funcţie de rezultatul operaţiilor efectuate ALU setează anumiţi indicatori de condiţii

(indicatori de stare fanioane)

1

Memoria principalaSistem de intrare iesire

Sistemul de IO conţine locaţii adresabile (port-uri) prin care calculatorul face schimb de informaţie cu lumea externă Sistemul conţine circuite pentru funcţiile

schimbare format date (serial paralel) stocare temporară de date (latch) verificare a corectitudinii datelor transferate sincronizare icircntre periferic şi UCP (datorită diferenţelor mari de viteză de funcţionare) logică de decodificare

Periferice Dispozitive (periferice) de intrare ndash recepţionează informaţia din mediul extern (prin

diverşi senzori) şi o transformă ca natură fizică şi format de reprezentare harrcompatibilitate cu nivelurile de tensiune recunoscute de calculator (ca valori binare)

Dispozitive (periferice) de ieşire ndash operaţie inversă dispozitivelor de intrare Prelucrează datele din calculator şi le transformă icircn informaţie acceptabilă la dispozitivul de ieşire

2 Definiţi noţiunea de arhitectură a calculatorului şi specificaţi pe scurt componentele acesteia

Arhitectura de calculator (procesor) include1 Arhitectura setului de instrucţiuni ISA (Instruction SetArchitecture)

Reprezinta Interfaţă icircntre 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 costuri şi performanţe diferite) să ruleze

aceleaşi programe

2 Implementare cu două componente Organizarea include aspectele de nivel icircnalt ale proiectului cum ar fi organizarea sistemului de

memorie structura magistralelorOrganizarea internă a UCPndash Două maşini pot avea organizări diferite dar să aibăacelaşi ISA

Hardware se referă la aspectele specifice de implementare ale maşinii Include proiectul de detaliu al logicii tehnologia semiconductoare utilizată tipul de capsulă

3 Reprezentarea funcţională a unui calculator (limbaj maşină translatare interpretare ierarhie de maşini virtuale)

Un calculator poate fi descris şi prin funcţiile - operaţiile pe care le pune la dispoziţia utilizatoruluiCircuitele electronice ale unui calculator recunosc şi execută doar un set limitat de instrucţiuni

elementare codificate icircn formă binarăInstrucţiunile recunoscute sunt rareori mai complicate decacirct

ndash adună două numerendash verifică dacă un număr este egal cu zerondash copiază date dintr-o zonă a memoriei calculatorului icircn altă zonă

Limbaj de programare

1048708Instrucţiunile elementare recunoscute de un procesor formează limbajul maşină al procesorului1048708Notaţie limbaj L0 ce corespunde maşinii fizice M0

2

1048708Programatorul scrie programele sale icircntr-un limbaj L1 format din instrucţiuni simbolice (succesiuni de litere şi cifre) şi mai apropiat de limbajul uman1048708Pentru a putea executa acest program pe maşina M0 fiecare instrucţiune din L1 a programului trebuie translatată icircn instrucţiuni din limbajul L0 1048708De exemplu programatorul poate scrie icircn L1 instrucţiunea add al6 iar programul de translatare va genera succesiunea binară corespunzătoare lui L0 0000 0100 0000 0110

Masini virtuale

1048708Funcţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită M1 Numele acestui limbaj simbolic de programare este ldquolimbaj de asamblarerdquo iar programul de translatare este numit ldquoasamblorrdquo1048708Translatarea - tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programulicircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat1048708Exemple de programe translator compilator asamblor1048708Interpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului icircn L1 ca pe date de intrareInterpretorul 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 translatare1048708Limbaje de programare mai apropiate de limbajul uman L2 L3 (pentru maşini virtuale M2 M3 )

Ierarhie de masini virtuale

3

4 Care sunt motivele organizării magistralelor unui sistem de calcul ca o ierarhie de magistrale

Pentru a icircnlătura supraicircncărcarea canalului de comunicaţie şi a creşte performanţele acestuia se construieşte o ierarhie de mai multe magistrale interconectate

5 Definiţi proprietăţile de referinţe localizate la memorie (spaţial şi temporal) şi menţionaţi modul icircn care se profită de aceste proprietăţi la organizarea multi-nivel a memoriei

ndash localizare temporală a referinţelor dacă programul face acces la o celulă de memorie lamomentul t este foarte probabil ca programul să facă din nou acces la aceeaşi celulă la momentult + Δ

ndash localizare spaţială a referinţelor dacă la momentul t programul face acces la o celulă dememorie de adresă X este foarte probabil ca la momentul t + Δ programul să facă acces la celulade adresă X + ε

Pentru a folosi caracteristica referinţelor localizate icircn timp datele cele mai recent accesate trebuie păstrate cacirct mai aproape de procesor

Pentru a folosi caracteristica referinţelor localizate icircn spaţiu la transferul icircntre niveluri trebuie mutate blocuri continue de date şi nu cuvinte individuale

6 Descrieţi pe scurt următoarele noţiuni magistrală sincronă magistrală asincronă miss hit arbitrare magistrale

Magistrala sincrona Magistralele sincrone includ o linie de CLOCK (controlată de un oscilator cu cuarţ) icircntre liniile

magistralei de controlFrecvenţele tipice sunt icircntre 5 - 133 MHz Toate transferurile pe magistrală durează un număr icircntreg de cicluri de ceas numite cicluri

magistrală

Magistrala asincrona Transfer asincron

ndash Nu există linie de ceasndash Etapele transferului presupun transmiterea şi recepţionarea unor semnale

deconfirmare icircntre doi corespondenţi ( ldquohandshakingrdquo)

ndash Un eveniment pe magistrală se produce ca urmare a producerii unui alteveniment precedent

bull Se prezintă două variantendash transfer iniţiat de sursă - sursa decide momentul cacircnd se transmit date pe

magistrala comunăndash transfer iniţiat de destinaţie ndash destinaţia decide cacircnd să ceară date

Miss (nu am gasit)Hit (nu am gasit)

Metoda de arbitrarendash Centralizatăndash Distribuită

4

7 Explicaţi următorii termeni (a) translator (b) interpretor (c) compilator (d) maşină virtuală subliniaţi apoi deosebirile principale dintre translatare şi interpretare

Translator- tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programul

icircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat

InterpretorInterpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului

icircn L1 ca pe date de intrareInterpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia

Compilator - Program translator

Masina virtualaFuncţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită

M18 Care sunt diferenţele dintre un microcontroller şi un microprocesor de uz general

- Microprocesor- Un microprocesor (MP) este o unitatea Centrală de Procesare (UCP) integrată icircntr-un singur

chip Microprocesoarele sunt utilizate icircn general pentru aplicaţii de icircnaltă 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 icircn PC-uri staţii de lucru servere unde compatibilitatea

software performanţa generalitatea şi flexibilitatea sunt importante

Microcontroller Microcontroller ndash un calculator ce include un microprocesor şi care este destinat aplicaţiilor de

control industrial (nu calculului de uz general) Un microcontroller conţine UCP memorie şi IO Microcontrollerele sunt proiectate pentru a se obţine o dimensiune redusă a chip-ului

micşorarea costurilor şi includerea de spaţiu de memorie şi IO pe chip Microcontrollerele sunt adesea ldquospecializate pe aplicaţiirdquo icircn dauna flexibilităţii Un microcontroller conţine UCP Memorie IO

9 Intr-o organizare ierarhizată multi-nivel de memorie ce reprezintă proprietăţile de incluziune şi coerenţă a datelor Cum se asigură

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

anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior Proprietatea de coerenta

Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă icircn spatiul de memorie trebuie să fie aceeaşi indiferent de nivelul de memorie pe care se află

- 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 icircn momentul icircnlocuirii informaţiei de pe nivelul curent (write-back)

5

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 2: Mic Raspunsuri(1)

Memoria principalaSistem de intrare iesire

Sistemul de IO conţine locaţii adresabile (port-uri) prin care calculatorul face schimb de informaţie cu lumea externă Sistemul conţine circuite pentru funcţiile

schimbare format date (serial paralel) stocare temporară de date (latch) verificare a corectitudinii datelor transferate sincronizare icircntre periferic şi UCP (datorită diferenţelor mari de viteză de funcţionare) logică de decodificare

Periferice Dispozitive (periferice) de intrare ndash recepţionează informaţia din mediul extern (prin

diverşi senzori) şi o transformă ca natură fizică şi format de reprezentare harrcompatibilitate cu nivelurile de tensiune recunoscute de calculator (ca valori binare)

Dispozitive (periferice) de ieşire ndash operaţie inversă dispozitivelor de intrare Prelucrează datele din calculator şi le transformă icircn informaţie acceptabilă la dispozitivul de ieşire

2 Definiţi noţiunea de arhitectură a calculatorului şi specificaţi pe scurt componentele acesteia

Arhitectura de calculator (procesor) include1 Arhitectura setului de instrucţiuni ISA (Instruction SetArchitecture)

Reprezinta Interfaţă icircntre 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 costuri şi performanţe diferite) să ruleze

aceleaşi programe

2 Implementare cu două componente Organizarea include aspectele de nivel icircnalt ale proiectului cum ar fi organizarea sistemului de

memorie structura magistralelorOrganizarea internă a UCPndash Două maşini pot avea organizări diferite dar să aibăacelaşi ISA

Hardware se referă la aspectele specifice de implementare ale maşinii Include proiectul de detaliu al logicii tehnologia semiconductoare utilizată tipul de capsulă

3 Reprezentarea funcţională a unui calculator (limbaj maşină translatare interpretare ierarhie de maşini virtuale)

Un calculator poate fi descris şi prin funcţiile - operaţiile pe care le pune la dispoziţia utilizatoruluiCircuitele electronice ale unui calculator recunosc şi execută doar un set limitat de instrucţiuni

elementare codificate icircn formă binarăInstrucţiunile recunoscute sunt rareori mai complicate decacirct

ndash adună două numerendash verifică dacă un număr este egal cu zerondash copiază date dintr-o zonă a memoriei calculatorului icircn altă zonă

Limbaj de programare

1048708Instrucţiunile elementare recunoscute de un procesor formează limbajul maşină al procesorului1048708Notaţie limbaj L0 ce corespunde maşinii fizice M0

2

1048708Programatorul scrie programele sale icircntr-un limbaj L1 format din instrucţiuni simbolice (succesiuni de litere şi cifre) şi mai apropiat de limbajul uman1048708Pentru a putea executa acest program pe maşina M0 fiecare instrucţiune din L1 a programului trebuie translatată icircn instrucţiuni din limbajul L0 1048708De exemplu programatorul poate scrie icircn L1 instrucţiunea add al6 iar programul de translatare va genera succesiunea binară corespunzătoare lui L0 0000 0100 0000 0110

Masini virtuale

1048708Funcţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită M1 Numele acestui limbaj simbolic de programare este ldquolimbaj de asamblarerdquo iar programul de translatare este numit ldquoasamblorrdquo1048708Translatarea - tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programulicircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat1048708Exemple de programe translator compilator asamblor1048708Interpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului icircn L1 ca pe date de intrareInterpretorul 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 translatare1048708Limbaje de programare mai apropiate de limbajul uman L2 L3 (pentru maşini virtuale M2 M3 )

Ierarhie de masini virtuale

3

4 Care sunt motivele organizării magistralelor unui sistem de calcul ca o ierarhie de magistrale

Pentru a icircnlătura supraicircncărcarea canalului de comunicaţie şi a creşte performanţele acestuia se construieşte o ierarhie de mai multe magistrale interconectate

5 Definiţi proprietăţile de referinţe localizate la memorie (spaţial şi temporal) şi menţionaţi modul icircn care se profită de aceste proprietăţi la organizarea multi-nivel a memoriei

ndash localizare temporală a referinţelor dacă programul face acces la o celulă de memorie lamomentul t este foarte probabil ca programul să facă din nou acces la aceeaşi celulă la momentult + Δ

ndash localizare spaţială a referinţelor dacă la momentul t programul face acces la o celulă dememorie de adresă X este foarte probabil ca la momentul t + Δ programul să facă acces la celulade adresă X + ε

Pentru a folosi caracteristica referinţelor localizate icircn timp datele cele mai recent accesate trebuie păstrate cacirct mai aproape de procesor

Pentru a folosi caracteristica referinţelor localizate icircn spaţiu la transferul icircntre niveluri trebuie mutate blocuri continue de date şi nu cuvinte individuale

6 Descrieţi pe scurt următoarele noţiuni magistrală sincronă magistrală asincronă miss hit arbitrare magistrale

Magistrala sincrona Magistralele sincrone includ o linie de CLOCK (controlată de un oscilator cu cuarţ) icircntre liniile

magistralei de controlFrecvenţele tipice sunt icircntre 5 - 133 MHz Toate transferurile pe magistrală durează un număr icircntreg de cicluri de ceas numite cicluri

magistrală

Magistrala asincrona Transfer asincron

ndash Nu există linie de ceasndash Etapele transferului presupun transmiterea şi recepţionarea unor semnale

deconfirmare icircntre doi corespondenţi ( ldquohandshakingrdquo)

ndash Un eveniment pe magistrală se produce ca urmare a producerii unui alteveniment precedent

bull Se prezintă două variantendash transfer iniţiat de sursă - sursa decide momentul cacircnd se transmit date pe

magistrala comunăndash transfer iniţiat de destinaţie ndash destinaţia decide cacircnd să ceară date

Miss (nu am gasit)Hit (nu am gasit)

Metoda de arbitrarendash Centralizatăndash Distribuită

4

7 Explicaţi următorii termeni (a) translator (b) interpretor (c) compilator (d) maşină virtuală subliniaţi apoi deosebirile principale dintre translatare şi interpretare

Translator- tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programul

icircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat

InterpretorInterpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului

icircn L1 ca pe date de intrareInterpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia

Compilator - Program translator

Masina virtualaFuncţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită

M18 Care sunt diferenţele dintre un microcontroller şi un microprocesor de uz general

- Microprocesor- Un microprocesor (MP) este o unitatea Centrală de Procesare (UCP) integrată icircntr-un singur

chip Microprocesoarele sunt utilizate icircn general pentru aplicaţii de icircnaltă 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 icircn PC-uri staţii de lucru servere unde compatibilitatea

software performanţa generalitatea şi flexibilitatea sunt importante

Microcontroller Microcontroller ndash un calculator ce include un microprocesor şi care este destinat aplicaţiilor de

control industrial (nu calculului de uz general) Un microcontroller conţine UCP memorie şi IO Microcontrollerele sunt proiectate pentru a se obţine o dimensiune redusă a chip-ului

micşorarea costurilor şi includerea de spaţiu de memorie şi IO pe chip Microcontrollerele sunt adesea ldquospecializate pe aplicaţiirdquo icircn dauna flexibilităţii Un microcontroller conţine UCP Memorie IO

9 Intr-o organizare ierarhizată multi-nivel de memorie ce reprezintă proprietăţile de incluziune şi coerenţă a datelor Cum se asigură

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

anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior Proprietatea de coerenta

Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă icircn spatiul de memorie trebuie să fie aceeaşi indiferent de nivelul de memorie pe care se află

- 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 icircn momentul icircnlocuirii informaţiei de pe nivelul curent (write-back)

5

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 3: Mic Raspunsuri(1)

1048708Programatorul scrie programele sale icircntr-un limbaj L1 format din instrucţiuni simbolice (succesiuni de litere şi cifre) şi mai apropiat de limbajul uman1048708Pentru a putea executa acest program pe maşina M0 fiecare instrucţiune din L1 a programului trebuie translatată icircn instrucţiuni din limbajul L0 1048708De exemplu programatorul poate scrie icircn L1 instrucţiunea add al6 iar programul de translatare va genera succesiunea binară corespunzătoare lui L0 0000 0100 0000 0110

Masini virtuale

1048708Funcţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită M1 Numele acestui limbaj simbolic de programare este ldquolimbaj de asamblarerdquo iar programul de translatare este numit ldquoasamblorrdquo1048708Translatarea - tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programulicircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat1048708Exemple de programe translator compilator asamblor1048708Interpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului icircn L1 ca pe date de intrareInterpretorul 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 translatare1048708Limbaje de programare mai apropiate de limbajul uman L2 L3 (pentru maşini virtuale M2 M3 )

Ierarhie de masini virtuale

3

4 Care sunt motivele organizării magistralelor unui sistem de calcul ca o ierarhie de magistrale

Pentru a icircnlătura supraicircncărcarea canalului de comunicaţie şi a creşte performanţele acestuia se construieşte o ierarhie de mai multe magistrale interconectate

5 Definiţi proprietăţile de referinţe localizate la memorie (spaţial şi temporal) şi menţionaţi modul icircn care se profită de aceste proprietăţi la organizarea multi-nivel a memoriei

ndash localizare temporală a referinţelor dacă programul face acces la o celulă de memorie lamomentul t este foarte probabil ca programul să facă din nou acces la aceeaşi celulă la momentult + Δ

ndash localizare spaţială a referinţelor dacă la momentul t programul face acces la o celulă dememorie de adresă X este foarte probabil ca la momentul t + Δ programul să facă acces la celulade adresă X + ε

Pentru a folosi caracteristica referinţelor localizate icircn timp datele cele mai recent accesate trebuie păstrate cacirct mai aproape de procesor

Pentru a folosi caracteristica referinţelor localizate icircn spaţiu la transferul icircntre niveluri trebuie mutate blocuri continue de date şi nu cuvinte individuale

6 Descrieţi pe scurt următoarele noţiuni magistrală sincronă magistrală asincronă miss hit arbitrare magistrale

Magistrala sincrona Magistralele sincrone includ o linie de CLOCK (controlată de un oscilator cu cuarţ) icircntre liniile

magistralei de controlFrecvenţele tipice sunt icircntre 5 - 133 MHz Toate transferurile pe magistrală durează un număr icircntreg de cicluri de ceas numite cicluri

magistrală

Magistrala asincrona Transfer asincron

ndash Nu există linie de ceasndash Etapele transferului presupun transmiterea şi recepţionarea unor semnale

deconfirmare icircntre doi corespondenţi ( ldquohandshakingrdquo)

ndash Un eveniment pe magistrală se produce ca urmare a producerii unui alteveniment precedent

bull Se prezintă două variantendash transfer iniţiat de sursă - sursa decide momentul cacircnd se transmit date pe

magistrala comunăndash transfer iniţiat de destinaţie ndash destinaţia decide cacircnd să ceară date

Miss (nu am gasit)Hit (nu am gasit)

Metoda de arbitrarendash Centralizatăndash Distribuită

4

7 Explicaţi următorii termeni (a) translator (b) interpretor (c) compilator (d) maşină virtuală subliniaţi apoi deosebirile principale dintre translatare şi interpretare

Translator- tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programul

icircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat

InterpretorInterpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului

icircn L1 ca pe date de intrareInterpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia

Compilator - Program translator

Masina virtualaFuncţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită

M18 Care sunt diferenţele dintre un microcontroller şi un microprocesor de uz general

- Microprocesor- Un microprocesor (MP) este o unitatea Centrală de Procesare (UCP) integrată icircntr-un singur

chip Microprocesoarele sunt utilizate icircn general pentru aplicaţii de icircnaltă 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 icircn PC-uri staţii de lucru servere unde compatibilitatea

software performanţa generalitatea şi flexibilitatea sunt importante

Microcontroller Microcontroller ndash un calculator ce include un microprocesor şi care este destinat aplicaţiilor de

control industrial (nu calculului de uz general) Un microcontroller conţine UCP memorie şi IO Microcontrollerele sunt proiectate pentru a se obţine o dimensiune redusă a chip-ului

micşorarea costurilor şi includerea de spaţiu de memorie şi IO pe chip Microcontrollerele sunt adesea ldquospecializate pe aplicaţiirdquo icircn dauna flexibilităţii Un microcontroller conţine UCP Memorie IO

9 Intr-o organizare ierarhizată multi-nivel de memorie ce reprezintă proprietăţile de incluziune şi coerenţă a datelor Cum se asigură

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

anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior Proprietatea de coerenta

Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă icircn spatiul de memorie trebuie să fie aceeaşi indiferent de nivelul de memorie pe care se află

- 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 icircn momentul icircnlocuirii informaţiei de pe nivelul curent (write-back)

5

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 4: Mic Raspunsuri(1)

4 Care sunt motivele organizării magistralelor unui sistem de calcul ca o ierarhie de magistrale

Pentru a icircnlătura supraicircncărcarea canalului de comunicaţie şi a creşte performanţele acestuia se construieşte o ierarhie de mai multe magistrale interconectate

5 Definiţi proprietăţile de referinţe localizate la memorie (spaţial şi temporal) şi menţionaţi modul icircn care se profită de aceste proprietăţi la organizarea multi-nivel a memoriei

ndash localizare temporală a referinţelor dacă programul face acces la o celulă de memorie lamomentul t este foarte probabil ca programul să facă din nou acces la aceeaşi celulă la momentult + Δ

ndash localizare spaţială a referinţelor dacă la momentul t programul face acces la o celulă dememorie de adresă X este foarte probabil ca la momentul t + Δ programul să facă acces la celulade adresă X + ε

Pentru a folosi caracteristica referinţelor localizate icircn timp datele cele mai recent accesate trebuie păstrate cacirct mai aproape de procesor

Pentru a folosi caracteristica referinţelor localizate icircn spaţiu la transferul icircntre niveluri trebuie mutate blocuri continue de date şi nu cuvinte individuale

6 Descrieţi pe scurt următoarele noţiuni magistrală sincronă magistrală asincronă miss hit arbitrare magistrale

Magistrala sincrona Magistralele sincrone includ o linie de CLOCK (controlată de un oscilator cu cuarţ) icircntre liniile

magistralei de controlFrecvenţele tipice sunt icircntre 5 - 133 MHz Toate transferurile pe magistrală durează un număr icircntreg de cicluri de ceas numite cicluri

magistrală

Magistrala asincrona Transfer asincron

ndash Nu există linie de ceasndash Etapele transferului presupun transmiterea şi recepţionarea unor semnale

deconfirmare icircntre doi corespondenţi ( ldquohandshakingrdquo)

ndash Un eveniment pe magistrală se produce ca urmare a producerii unui alteveniment precedent

bull Se prezintă două variantendash transfer iniţiat de sursă - sursa decide momentul cacircnd se transmit date pe

magistrala comunăndash transfer iniţiat de destinaţie ndash destinaţia decide cacircnd să ceară date

Miss (nu am gasit)Hit (nu am gasit)

Metoda de arbitrarendash Centralizatăndash Distribuită

4

7 Explicaţi următorii termeni (a) translator (b) interpretor (c) compilator (d) maşină virtuală subliniaţi apoi deosebirile principale dintre translatare şi interpretare

Translator- tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programul

icircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat

InterpretorInterpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului

icircn L1 ca pe date de intrareInterpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia

Compilator - Program translator

Masina virtualaFuncţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită

M18 Care sunt diferenţele dintre un microcontroller şi un microprocesor de uz general

- Microprocesor- Un microprocesor (MP) este o unitatea Centrală de Procesare (UCP) integrată icircntr-un singur

chip Microprocesoarele sunt utilizate icircn general pentru aplicaţii de icircnaltă 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 icircn PC-uri staţii de lucru servere unde compatibilitatea

software performanţa generalitatea şi flexibilitatea sunt importante

Microcontroller Microcontroller ndash un calculator ce include un microprocesor şi care este destinat aplicaţiilor de

control industrial (nu calculului de uz general) Un microcontroller conţine UCP memorie şi IO Microcontrollerele sunt proiectate pentru a se obţine o dimensiune redusă a chip-ului

micşorarea costurilor şi includerea de spaţiu de memorie şi IO pe chip Microcontrollerele sunt adesea ldquospecializate pe aplicaţiirdquo icircn dauna flexibilităţii Un microcontroller conţine UCP Memorie IO

9 Intr-o organizare ierarhizată multi-nivel de memorie ce reprezintă proprietăţile de incluziune şi coerenţă a datelor Cum se asigură

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

anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior Proprietatea de coerenta

Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă icircn spatiul de memorie trebuie să fie aceeaşi indiferent de nivelul de memorie pe care se află

- 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 icircn momentul icircnlocuirii informaţiei de pe nivelul curent (write-back)

5

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 5: Mic Raspunsuri(1)

7 Explicaţi următorii termeni (a) translator (b) interpretor (c) compilator (d) maşină virtuală subliniaţi apoi deosebirile principale dintre translatare şi interpretare

Translator- tot programul scris icircn L1 este transformat icircn program scris icircn L0 (executabil) iar programul

icircn L1 este abandonat- programul icircn L0 este icircncărcat icircn memoria calculatorului şi executat

InterpretorInterpretorul este un program icircn L0 care rulează pe M0 şi care preia instrucţiunile programului

icircn L1 ca pe date de intrareInterpretorul citeşte şi decodifică fiecare instrucţiune din L1 şi apoi trece imediat la execuţia acesteia

Compilator - Program translator

Masina virtualaFuncţional se poate spune că limbajul L1 corespunde unei maşini virtuale programabile numită

M18 Care sunt diferenţele dintre un microcontroller şi un microprocesor de uz general

- Microprocesor- Un microprocesor (MP) este o unitatea Centrală de Procesare (UCP) integrată icircntr-un singur

chip Microprocesoarele sunt utilizate icircn general pentru aplicaţii de icircnaltă 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 icircn PC-uri staţii de lucru servere unde compatibilitatea

software performanţa generalitatea şi flexibilitatea sunt importante

Microcontroller Microcontroller ndash un calculator ce include un microprocesor şi care este destinat aplicaţiilor de

control industrial (nu calculului de uz general) Un microcontroller conţine UCP memorie şi IO Microcontrollerele sunt proiectate pentru a se obţine o dimensiune redusă a chip-ului

micşorarea costurilor şi includerea de spaţiu de memorie şi IO pe chip Microcontrollerele sunt adesea ldquospecializate pe aplicaţiirdquo icircn dauna flexibilităţii Un microcontroller conţine UCP Memorie IO

9 Intr-o organizare ierarhizată multi-nivel de memorie ce reprezintă proprietăţile de incluziune şi coerenţă a datelor Cum se asigură

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

anumit nivel de memorie se vor găsi şi pe nivelul de memorie inferior Proprietatea de coerenta

Proprietatea de coerenţă exprimă faptul că informaţia existentă la o anumită adresă icircn spatiul de memorie trebuie să fie aceeaşi indiferent de nivelul de memorie pe care se află

- 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 icircn momentul icircnlocuirii informaţiei de pe nivelul curent (write-back)

5

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 6: Mic Raspunsuri(1)

10 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword missrdquo (ratare la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- 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 Icircn acest caz (evenimentul este numit word miss) cuvacircntul necesar a fi accesat trebuie adus pe un nivel de memorie superior (de pe nivelul i+1 pe nivelul i)

11 Explicaţi pe scurt icircn ce constă evenimentul de bdquoword hitrdquo (reuşită la apel cuvacircnt) pentru o organizare multi-nivel de memorie

- Daca informatia existent pe nivelul Mi+1 se gaseste si pe nivelul Mi si este accesata pe nivelul Mi atunci evenimentul se numeste word hit

12 Clasificaţi şi descrieţi modurile de adresare tipice pentru un microprocesor de uz general

bull Clasificare moduri de adresarendash adresarea imediatăndash adresarea directăndash adresarea indirectăndash adresarea relativăndash adresarea indexată

Adresarea imediata

Adresarea directabull adresare directă la registru (adresare explicită sau implicită) (AE = r)bull adresare directă la memorie (absolută sau extinsă) (AE = x)

Adresarea indirecta

bull Adresare indirectă prin registru (AE = r)ndash De exemplu se poate scrie mov axbx

bull Adresare indirectă prin memorie (AE = x )ndash De exemplu se poate scrie mov axthere

6

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 7: Mic Raspunsuri(1)

bull Adresare indirecta prin variantea indirectă prin registru cu auto-postincrementaremov r1r2+b indirectă prin registru cu auto-postdecrementaremov r1r2minusc indirectă prin registru cu auto-pre-incrementaremov r1+r2d indirectă prin registru cu auto-predecrementaremov r1minusr2

bull Adresare indirecta la stivabull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarrSP ndash NSPlarrsursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarrSPSP larrSP + N

bull Adresare indirecta a instructiunilor(adresare secventiala)bull La execuţia de secvenţe succesive de instrucţiuni din memorie

- adresare indirectă prin registrul PC cu auto-postincrementareAE = PC+

Adresarea relative

bull Corpul instrucţiunii conţine un deplasament care este adunat la adresa de start a unei secţiuni de memorie adresă conţinută icircntr-un registru desemnat explicit sau implicit icircn instrucţiunebull Putem deosebi următoarele variante de adresare relativă

a) adresare relativă bazată (numită şi indirectă prin registru bază cudeplasare) AE = (r + d)ndash De exemplu mov ax[bx+8]

b) adresare relativa la contorul de program -PC AE = (PC + d)ndash De exempluEticheta1 mov dxthere

mov ax1732hmov bxcxjmp -9

Adresarea indexata

bull Asemănătoare cu adresarea relativă bazatăbull Adresarea indexată este folosită exclusiv la adresarea datelor

ndash Adresa datelor din memoria principală este modificată cu ajutorul conţinutului unui registru index

ndash Registrul index conţine indicele unui element dintr-un vector de datendash Indicele se modifică prin modificarea valorii conţinute icircn registrul index

bull Numărul de registre index dintr-un procesor indică numărul de tablouri potenţiale care se pot adresa icircn memorie iar mărimea deplasamentului determină dimensiunea maximă a tabloului

bull Numărul registrelor index este un criteriu de performanţă pentru microprocesoare

13 Definiţi noţiunea de aliniere la stocarea informaţiilor multi-octet icircn memorie şi explicaţi convenţiile de adresare Little Endian şi Big Endian

7

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 8: Mic Raspunsuri(1)

bull Legat de convenţia de stocare icircn memorie a informaţiilor (instrucţiuni date adrese) trebuie menţionat aici că la unele microprocesoare accesul la obiecte mai mari decacirct un octet se poate face doar dacă

informaţia este aliniatăbull Alinierea se referă la faptul că accesul la un obiect de dimensiunea D octeţi se face prin

specificarea adresei A a primului octet ocupatunde adresa A respectă ecuaţia A modulo D = 0

Little Endianndash Convenţia Little Endian (aluzie la şirul indian care are icircn faţă pe cel mai mic) plasează

icircntotdeauna pe prima poziţie la adresa cea mai mică octetul (byte) cel mai puţin semnificativ al unei adrese multi ndashoctet

ndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai puţin semnificativ (adresa mică) către octetul cel mai semnificativ stocatla adresa cea mai mare

Big Endianndash Convenţia ldquoBig Endian plasează icircntotdeauna pe prima poziţie la adresa cea mai mică octetul

cel mai semnificativ al unei adrese multi ndash octetndash Stocarea icircn memorie se face icircn ordine de la octetul cel mai semnificativ (adresa mică) către

octetul cel mai puţin semnificativ stocat la adresa cea mai mare

14 Pentru o memorie organizată pe octet informaţia cu lungimea de 4 octeţi stocată la adresa de memorie 4A26 hex este (a) aliniată (b) ne-aliniată Justificaţi răspunsul ales ca fiind corect Seminar 291020124 A 26=4sdot163+ Asdot162+2sdot161+6sdot160=212sdot4+28sdotA+24sdot2+6=16384+2560+32+6=18982A modulo D = 18982 modulo 4 = 2rArr b ) ne-aliniata

15 Seturi de instrucţiuni ortogonalitate completitudine formate tipice interdependenţa set instrucţiuni structura UCP arhitecturi CISC RISC

Caracteristici ale setului de instructiunibull regularitate (ortogonalitate) - această caracteristică impune ca fiecare instrucţiune din ISA să poată opera cu

8

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 9: Mic Raspunsuri(1)

orice tip de date conţinute icircn oricare registru sau oricare locaţie de memorie şi să poată fi adresate prin oricaremod de adresarebull completitudine- această cerinţă ar impune ca setul de instrucţiuni să cuprindă tot setul de operatori disponibiliicircntr-un limbaj

ndash Cenzură pentru operatorii cu frecvenţă scăzută de apariţie icircn programe icircn avantajul operatorilor cu frecvenţă ridicată

Formatul instructiunilorbull Lungimendash arhitecturi la care lungimea instrucţiunilor este fixăndash arhitecturi cu lungime variabilă a instrucţiunilor recunoscute

bull Instrucţiunile se reprezintă icircn memoria principală ca octeţi succesivi (unul sau mai mulţi octeţi icircn funcţie de tipul de procesor)bullScopul fiecărei instrucţiuni recunoscute de procesor este să specifice

ndash operaţia ce trebuie executată de hardwarendash operanzii utilizaţi şi locul unde se stochează rezultatul operaţiei

Interdependenta

Clasificarebull Conform legăturii dintre organizarea UCP şi numărul de adrese pe instrucţiune vom putea icircncadra cele mai multe procesoare icircntr-una din următoarele trei categorii

ndash organizare pe bază de registru acumulator (Ac) la care pentru majoritatea operaţiilor unul dintre operanzi se găseşte implicit icircnacumulator De asemenea rezultatul operaţiei se rdquoacumuleazărdquo icircn acest registru cu funcţie specială

ndash organizare pe bază de registre de utilizare generala (RG) La acest tip de organizare operanzii sunt explicit localizaţi fie icircn registrele interne(fără restricţii) fie icircn registrele din locaţiile memoriei principale

ndash organizare de tip stivă (ST) la care operanzii se găsesc implicit icircn vacircrful stivei şi tot aici se stochează rezultatul Există unele procesoare de tip stivă care folosesc două stive una pentru operaţii asupra datelorşi alta pentru operaţii asupra adreselor

9

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 10: Mic Raspunsuri(1)

16 Tipuri de instrucţiuni caracteristice unui microprocesor de uz general

bull Instrucţiuni aritmeticebull Instrucţiuni logicebull Instrucţiuni pentru transferul informaţieibull Instrucţiuni pentru deplasarea şi rotirea datelorbull Instrucţiuni de ramificare (pentru controlulsecvenţei de program)bull Instrucţiuni pentru controlul procesorului

17 Consideracircnd cele două variante de implementare a unui set de instrucţiuni cu lungime fixă respectiv cu lungime variabilă descrieţi pe scurt avantajele şi dezavantajele fiecăreia dintre variante

Nu am gasit

18 Descrieţi pe scurt modul de adresare utilizat pentru icircnscrierea şi extragerea icircn din memoria stivă şi icircncadraţi aceste moduri de adresare icircn modurile de adresare generale ale unui microprocesor

Adresare indirecta

bull Operaţia de scriere icircn stivă (push sursa) poate fi scrisămovminusSPsursaSPlarr SP ndash NSPlarr sursabull Operaţia de extragere din stivă (pop dest) icircntr-un registru destinaţie poate fi scrisămov destSP+destlarr SPSP larr SP + N

10

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 11: Mic Raspunsuri(1)

19 Structură elementară de UCP pe bază de acumulator (schemă bloc descriere componente funcţionare extinderea UCP elementare prin perfecţionarea unor blocuri funcţionale)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control

Perfecţionarea UCP elementare

ndash Introducerea unor registre speciale de stare şi control11

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 12: Mic Raspunsuri(1)

ndash Introducerea unor registre suplimentare de adresare pentru stocare şi manipulare

ndash Extinderea funcţiilor oferite de unitatea aritmetică

ndash Introducerea de suport hardware (logică plus registre de adresare specializate) pentru implementarea memorie stivă

ndash Introducerea facilităţilor pentru prelucrarea paralelă a două sau mai multor instrucţiuni

20 Descrieţi pe scurt structura şi funcţionarea unui procesor de uz general (funcţionalitate unitate de control şi unitate de prelucrare interconectare sincronizare cu exteriorul interfaţă cu exteriorul cicluri caracteristice stare ciclu maşină ciclu instrucţiune)

Ca structură generală un procesor cuprinde

ndash o unitate de prelucrare a datelor (care conţine o unitate aritmetică şi logică şi registrele folosite ca memorie locală)

ndash o unitate de control (generează semnale de control secvenţiaza instrucţiunileinterpreteaza instrucţiunile)

Cicluri de funcţionare

bull Ciclu instrucţiune Secvenţa de operaţii necesare pentru adresarea aducerea şi execuţia unei instrucţiuni

bull Ciclul maşină intervalul de timp necesar pentru terminarea unei operaţii intermediare citire memorie scriere memorie citire IO scriere IO

bull Stare (timp de ciclu al UCP) Este timpul UCP (tUCP) necesar pentru executarea unei operaţii elementare şi bine definite (este inversul frecvenţei la care lucrează procesorul)

21 Descrieţi rolul următoarelor componente icircn funcţionarea unui microprocesor (a) program counter (b) registru de indicatori (c) registru stack pointer

12

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 13: Mic Raspunsuri(1)

a)Program counter este un numărător pe 16 biţi care este incrementat la fiecare citire de octet din memoria de program el conţine adresa locaţiei de memorie icircn care se află următorul octet din instrucţiune

b) Registru de indicatori- indicatori setati de ALU oferiti ca feedback catre Unitatea de Control

c)Gestiunea informaţiilor din stivă este realizată cu ajutorul unui registru ce memorează icircntotdeauna informaţia de adresare a vacircrfului stivei - registru Indicator de Stivă (SP - Stack Pointer)

22Ce reprezintă operaţia de corecţie zecimală icircn cadrul ALU şi de ce se utilizează

Daca rezultatul nu este un cod NBCD se aplica o corectie zecimala cu 6 in functie de operatia precedenta(sumascadere)

23 Enumeraţi indicatorii de condiţii tipici pentru un microprocesor de uz general şi explicaţi pe scurt rolul fiecăruia

-Sign (S)ndashse pozitioneaza pe 1 daca rezultatul operatiei aritmetice este negativ

-Zero (Z) ndash se pozitioneaza e 1 daca rezultatul este 0 altfel ramane pe 0

-Parity (P) ndash se pozitioneaza pe 1 sau pe pe baza conventiei de imparitate(daca numarul de biti semnificativi 1 din rezultat este par P va fi 1 altfel P va fi 0

-OVerflow (V) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica s-a produs depasire a capacitatii de reprezentare

-Carry (C) ndash se pozitioneaza pe 1 daca la ultima operatie aritmetica a existat transport sau imprumut de la rangul cel mai semnificativ

-Auxiliary Carry (AC) ndash are semnificatie doar pt numerele reprezentate in NBCD AC se pozitioneaza pe 1 daca exista transport sau imprumut intre 2 grupuri de biti adiacente

24 Realizaţi sumarea algebrică a celor două numere indicaţi modul de setare al indicatorilor de condiţii (S Z P V CY AC) şi convertiţii icircn zecimal pentru numere fără semn şi apoi cu semn

(a) 0111 1111 + 0111 1111 (b) 1000 0001 + 1111 1110 (c) 1000 0001 + 1011 1110 7

Asta e pt punctual a)

13

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 14: Mic Raspunsuri(1)

25 Icircntreruperi şi excepţii (clasificare definiţii mod de servire răspunsul tipic al UCP icircntreruperi mascabile ne-mascabile vectorizate ne-vectorizate influenţe asupra timpului de servire)

Toate evenimentele produse de condiţii neobişnuite neaşteptate pentru programul curent icircn execuţie sunt numite la modul general icircntreruperildquo

-evenimentele icircntreruptoare (care cer tratare) sunt generate de instrucţiunile programului rulat -sunt deci sincrone cu programul ce va fi interrupt

Exceptii

ndash icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

ndash icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

14

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 15: Mic Raspunsuri(1)

ndash condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

ndash icircncercarea de a accesa un segment pagină de informaţie (instrucţiuni date) nerezidentă icircn memoria principală

bull Efectul general (atacirct pentru icircntreruperea hardware cacirct şi pentru icircntreruperea software) este un salt către o rutinăde tratare servire a icircntreruperii (RTI)

bull Indiferent de sursa ce a generat icircntreruperea cele douătipuri sunt servite icircn mod asemănător prin secvenţa generală

ndash saltul la o rutină de tratare a evenimentului icircntreruptor

ndash execuţie RTI

ndash revenire la programul icircntrerupt

bull Termenii icircntrerupere şi cerere de icircntrerupere sunt folosiţi icircn general pentru evenimente ce produc cereri asincrone cu programul curent rulat (icircntreruperi hardware)

bull Termenii excepţie capcană sunt folosiţi pentru icircntreruperile software sincrone cu programul rulat

bull După modul de manifestare şi tratare a excepţiilor Intel icircmparte excepţiile icircn următoarele categorii

ndash devieri (traps) O deviere poate fi recunoscută doar dupăterminarea ciclului instrucţiune curent După tratare devierile produc reluarea programului icircntrerupt icircncepacircnd cu instrucţiunea următoare

ndash erori (faults) Sunt excepţii ce sunt detectate fie icircnainte de icircnceputul execuţiei instrucţiunii fie in timpul execuţiei acestora

Dacă erorile se detectează icircn timpul execuţiei unei instrucţiuni după tratarea erorii reluarea programului se va face icircncepacircnd cuinstrucţiunea icircntreruptă

ndash esecuri - terminari anormale (abort) Produc abandonarea procesuluiEşecurile sunt utilizate pentru a trata erori severecum sunt valori ilegale si sau inconsecvente icircn tabelele sistemului sau erori de hardwaree icircntrerupere mascabilă (INTR)

ndash se poate bloca (ldquomascardquo) acţiunea de recunoaştere a acesteia de către UCP rArr nu se icircntrerupe programul rulat de UCPe icircntrerupere nemascabilă (NMI)

ndash recunoaştere necondiţionată şi icircntreruperea programului rulat de UCP

RĂSPUNS UCP LA IcircNTRERUPERE

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

(pentru intreruperi vectorizate si nevectorizate exercitiul 28)

26 Descrieţi acţiunile executate de UCP ca răspuns la o cerere de icircntrerupere15

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 16: Mic Raspunsuri(1)

bull UCP răspunde la o cerere de icircntrerupere (hardware sau software) şi tratează evenimentul ce a produs icircntreruperea icircn paşi succesivi care pot fi rezumaţi astfel

1 UCP identifică sursa ce a produs icircntreruperea

2 UCP calculează adresa unde se găseşte RTI

3 UCP salvează adresa de revenire la programul icircntrerupt

4 Salt la RTI şi execuţie

5 Revenire la programul icircntrerupt prin restaurarea contorului de program

27 Care este deosebirea icircntre icircntreruperile vectorizate şi cele nevectorizate

bull Icircntreruperi vectorizate procesoare produc saltul către o adresă diferită pentru fiecare tip diferit de condiţie icircntrerupere

bull Icircntreruperi nevectorizate procesoare produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

28 Clasificaţi şi caracterizaţi icircn maximum 100 de cuvinte principalele tipuri de icircntreruperi şi excepţii

După modul de identificare a sursei ce a produs icircntreruperea putem clasifica icircntreruperile icircn

bull Icircntreruperi vectorizate

ndash Identificarea se face pe baza unui vector de icircntrerupere (VI) cu ajutorul căruia UCP calculează o adresă pointer icircntr-o tabelă a vectorilor de icircntrerupere (TVI)

ndash La intrarea din TVI UCP găseşte adresa de icircnceput a RTI asociate icircntreruperii

ndash Cererile de icircntrerupere (hardware) sunt icircn general icircntreruperi vectorizate iar dispozitivul ce lansează cererea de icircntrerupere furnizează şi VI

bull Icircntreruperi nevectorizate

ndash Produc saltul la aceeaşi adresă şi stochează informaţia pentru identificarea şi tratarea icircntreruperii la anumite adrese prestabilite din registrele procesorului sau din memorie

Exemple Icircntreruperi ne-vectorizate

bull La microprocesorul 80386 o NMI produce execuţia automată a rutinei de tratare de la adresa stocată icircn locaţia 2 a TVI

excepţii evenimente neobişnuite sincrone cu programul (produse la rularea programului) care cer tratare De obicei indică situaţii de excepţie cum ar fi

-icircntacirclnirea unor instrucţiuni de control ilegale icircn programul utilizator

16

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 17: Mic Raspunsuri(1)

- icircncercarea de violentare a sistemului de protecţie a informaţiilor din memorie

-condiţii aritmetice speciale (depăşiri icircmpărţire la zero)

-accesul la segmente (sau pagini virtuale) de memorie nerezidente icircn memoria principală

29 Descrieţi pe scurt modurile de implementare ale memoriei stivă

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

30 Explicaţi afirmaţia bdquovacircrful stivei este identic cu baza stiveirdquo

Daca varful stivei este identic cu baza stivei atunci stiva se afla in stare de gol adica s-a extras si ultimul element din stiva

31 Explicaţi icircn maximum 50 de cuvinte ce icircnţelegeţi prin noţiunea de ferestre de registre suprapuse (la arhitecturile RISC)

Prin utilizarea ferestrelor de registre se doreşte micşorarea numărului de accesări la memorie

La RISC se utilizează ferestre de registre suprapuse pentru a elimina nevoia salvării şi restaurării valorilor din registre

bull Un apel de procedură ca face ca UCP să comute automat către utilizarea unei alte ferestre de registrebull

Fereastra de registre are o lungime fixă

bull Fiecare set de registre dintr-o fereastră este icircmpărţit icircn 3 sub-seturi

ndash Registre de INTRARE (pentru parametri de intrare)

ndash Registre LOCALE

ndash Registre de IEŞIRE (pentru parametri de ieşire)

bull La apelul unei proceduri se va utiliza automat o altă fereastră suprapusă parţial cu fereastra anterioară

ndash registrele de ieşire ale programului apelant sunt aceleaşi cu registrele de intrare ale programului (procedură) apelat

bull Această suprapunere permite transferul parametrilor rezultatelor fără mutarea efectivă a datelor

32 Memoria stivă utilizare organizare mod de funcţionare - vedeţi de asemenea şi exerciţiile de la seminar

17

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 18: Mic Raspunsuri(1)

bull Memoria stivă (ldquostack memoryrdquo) este o structură de date specială ce lucrează pe principiul LIFO (Last In First Out= ultimul intrat - primul ieşit)

ndash Fiecare cuvacircnt nou introdus icircn stivă se aşează ldquopesterdquo cuvinte anterioare

ndash Extragerea articolelor din stivă se icircncepe de la ldquovacircrful stiveirdquo(ultimul articol introdus)

bull Subsistemul de icircntreruperi salvează automat icircn stivă şi restaurează automat din stivă adresa de icircntoarcere la programul interrupt

bull Memoria stivă este utilizată ca memorie de stocare temporară

ndash sistemul de icircntreruperi

ndash tehnicile de apelare a procedurilor (subrutinelor)

ndash stocare temporară şi regăsire rapidă a datelor(rezultate intermediare sau parametri transmişi către proceduri)

bull Metode de implementare a memoriei stivă

ndash stivă ldquoconstruitărdquo hardware (implementată cu registre interne Viteză mare capacitate mică de stocare)

ndash stivă software (implementată icircn cadrul memoriei principale icircntr-o zonă cu dimensiune satisfăcătoare pentru aplicaţie Viteză redusă capacitate mare de stocare)

33 Interfaţa UCP cu exteriorul tipuri de semnale pe magistralele externe (date adrese control)

vedeţi de asemenea şi exerciţiile de la seminar (extindere capacitate de memorare)

Magistrale externe

- Magistrala de adresebull Linii de adresă ce transmit doar semnale de ieşire din microprocesorbull Este o magistrală unidirecţionalăbull Liniile de pe această magistrală se folosesc pentru adresarea locaţiilor de memorie şi a porturilor de intrare-ieşirebull De obicei valorile binare cele mai semnificative (cu ponderea binară maximă) din adresă se folosesc pentru selectarea blocurilor de memorie

- Magistrala de datebull Lărgimea magistralei de date este de obicei multiplu de octet (d = 8 16 32 64)bull Cele d linii ale magistralei de date sunt bidirecţionalebull Liniile au posibilitatea de trecere icircn starea de icircnaltă impedanţă (HiZ)bull Pentru economie de pini unele microprocesoare multiplexează icircn timp liniile magistralei de date

18

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 19: Mic Raspunsuri(1)

- Magistrala de control1 Semnale de control şi sincronizare pentru transferuri de date cu memoria şi dispozitivele de IO2 Semnale de control şi sincronizare a cererilor de cedare a controlului magistralelor3 Semnale de control şi sincronizare cu evenimente externe ce generează cereri de icircntrerupere4 Semnale indicatoare de stare5 Semnale utilitare cum ar fi reset clock alimentare cu tensiune6 Semnale diverse specifice tipurilor de microprocesoare şi scopului pentru care au fost proiectate De exemplu

ndash intrări testabile prin softwarendash intrări pentru comanda activităţii pas cu pas a UCP

34 Memorii RAM static structură organizare 1-d şi 2-d a circuitelor de selecţie funcţionare cicluri caracteristice restricţii de timp

bull Sunt construite icircn tehnologie bipolară sau unipolară

bull Au doar două cicluri caracteristice de funcţionare

ndash Ciclul de citire

ndash Ciclul de scriere

bull La SRAM celulele de memorie sunt bistabile ce păstrează informaţia pe toată durata alimentării cu energie

bull Circuitele de acces reprezintă logica internă a dispozitivului de memorie necesare pentru

ndash decodificarea cuvacircntului de adresă

ndash comanda semnalelor de selecţie a celulelor

ndash circuitele de citire sau scriere a informaţiei

ndash circuitele de control intern

19

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 20: Mic Raspunsuri(1)

35 Memorii RAM dinamice organizare internă moduri de funcţionare convenţional pagină nibble burstrafală

bull Structura formată din decodificatorul de coloane şi porţile de transfer de IO funcţionează ca o structură de demultiplexare multiplexare similară blocului MDX pomenit la memoriile SRAMbull Atunci cacircnd se doreşte accesul la o locaţie de memorie adresele se introduc icircn ordineandash adresa de linie validată de semnalul (row address strobe)ndash adresa de coloană validată de semnalul (column address strobe)bull Rol ndash Semnalul mai este folosit de logica de control internă circuitului pentru a controla tampoanele de ieşire ale memoriei Icircn cazul icircn care nu a trecut icircn zero pentru a valida adresa de coloană tampoanele de ieşire rămacircn icircn stare de icircnaltă impedanţă (HiZ)

Moduri de lucruModuri de acces la coloane pentru a reduce timpul mediu de acces la memoria DRAMbull Mod Pagină

20

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 21: Mic Raspunsuri(1)

ndash Pagina corespunde unei adrese de linie şi toate adresele de coloană cu aceeaşi adresă de linie se găsesc icircn aceeaşi paginăndash Icircn mod pagină controllerul de memorie schimbă icircn mod repetat doar adresa de coloană

bull Mod tetradă (nibble mode)ndash 4 biţi de date dintr-o linie şi de la patru adrese succesive de coloană sunt transmişi secvenţial spre exterior Prima dată accesată este determinată de adresa de coloană furnizată circuitului iar următoarele trei sunt de la adresele succesive de coloanăbull Mod rafală (burst)

ndash Şi aici biţii de pe o linie adresată sunt furnizaţi sincronizat cu CAS

36 Memoria cache principiul de funcţionare hit-ratio moduri de mapare algoritmi de icircnlocuire tehnici de scriere -vedeţi de asemenea şi exerciţiile de la seminar

Functionare

bull Atunci cacircnd UCP lansează o adresă pentru a face acces la memoria principală se examinează mai icircntacirci conţinutul memoriei cachebull Daca informaţia adresată este găsită icircn cache se citeşte de către procesor

ndash Spunem că s-a produs un acces reuşit la cache (sau pe scurt o reuşită cache hit icircn limba engleză)bull Dacă informaţia adresată nu este găsită icircn cache se accesează memoria principală pentru citirea informaţiei

ndash Dacă informaţia căutată nu este icircn cache s-a produs o ratare (cache miss)

bull Accesul la cache este controlat direct de procesorbull Accesul la memoria principală se face de obicei sub controlul unităţii de comandă a memoriei cachebull Transferul icircntre memoria principală şi cache nu se face icircnsă la nivel de cuvacircnt ci la nivel de bloc de cuvinte bloc care cuprinde şi cuvacircntul adresat de UCP şi negăsit icircn cachebull Performanţa memoriei cache este adesea măsurată cantitativ prin aşa numitul raport de reuşită (hit ratio notat hr)bull Valoarea hr se calculează ca raport icircntre numărul total de reuşite şi numărul total de accesări la memorie (ratări plus reuşite)

Hit-ratiobull Hit ratio se măsoară de obicei prin rularea unor programe de test reprezentative pentru clase de programebull Valoarea lui hr este subunitară dar mai mare decacirct 09bull Timpul mediu de acces la o memorie se icircmbunătăţeşte considerabil dacă se utilizează memorie cache

Tipuri de maparebull Din punctul de vedere al structurii şi organizării memoriei cache există trei tehnici principale (tehnici de mapare)

ndash mapare asociativăbull Organizarea memoriei cache ca o memorie asociativă (adresabilă prin conţinut) conduce la viteza şi flexibilitatea cea mai bunăbull Pentru că o memorie asociativă este scumpă şi are un grad mic de integrare metoda este destul de rar utilizată şi doar pentru implementarea unor memorii de mici dimensiunibull Icircn cadrul memoriei asociative ce funcţionează ca memorie cache se stochează atacirct adresele cacirct şi conţinutul (datele) unor locaţii din memoria principală

ndash mapare direct

21

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 22: Mic Raspunsuri(1)

bull Maparea directă estre o soluţie mai ieftină pentru că permite implementarea cu ajutorul unor memorii RAM staticebull La maparea directă adresa de a biţi este logic icircmpărţită icircn două cacircmpuri numite index (cel mai puţin semnificativ care din punct de vedere logic poate fi privit ca fiind format din alte două cacircmpuri bloc şi cuvacircnt) şi respectiv etichetăbull Numărul de biţi pentru index (k biţi) determină dimensiunea memoriei cache (2k cuvinte adresabile prin index) valoarea sa constituind adresa pentru memoria cache bull Icircn cache se stochează nu numai data corespunzătoare ci şi eticheta (formată din a-k biţi) asociată dateibull La citire cacircmpul etichetă al adresei de memorie de la UCP este comparat cu eticheta cuvacircntului găsit icircn cache şi avacircnd aceeaşi adresă de index cu adresa de memorie bull Dacă etichetele se potrivesc s-a produs un eveniment de reuşităbull Modul de mapare directă poate fi exprimat analitic cai = j modulo m undei = numărul liniei din cache j = numărul blocului din memoria principală m = numărul total de linii icircn cache

ndash mapare asociativă pe seturibull Icircnlătura dezavantajul care face ca la maparea directă două cuvinte cu acelaşi index (dar etichetă diferită) nu pot să fie simultan icircn cachebull Spre deosebire de maparea directă compararea cacircmpului etichetă al adresei cu etichetele blocurilor stocate icircn cache se face prin metode combinaţionale (prin asociere cu conţinutul cacircmpului etichetă)bull Modul de mapare asociativă pe seturi poate fi exprimat analitic cam = v times k i = j modulo v undei = numărul setului din cache j = numărul blocului din memoriaprincipală m = numărul total de linii icircn cache

Algoritmi de inlocuirebull FIFO - Este un algoritm pe bază de ldquovacircrsta icircn cacherdquo = primul intrat primul ieşitbull LRU (Least Recently Used) ndash Se icircnlocuieşte blocul din cache care este cel mai vechi şi la care nu s-a făcut acces de cel mai lung timpbull LFU (Least Frequently Used) ndash icircnlocuieşte blocul la care s-au făcut cele mai puţine referiribull Icircnlocuire aleatoare ndash conduce la performanţe (hr) mai reduse decacirct LRU şi LFU dar este extrem de uşor de implementat

Tehnici de scrierendash Write through scriere cu propagare către nivelurile inferioare de memorie notată pe scurt

WTEste cea mai simplă tehnică dar este consumatoare de timpndash Write back scriere prin actualizarea nivelurilor inferioare icircn momentul icircnlocuirii (eliminării)

informaţiei din cache notată pe scurt WB Scrierile se fac doar icircn cache şi se actualizează un bit (Update bit sau Dirty bit) asociat liniei din cache

ndash Write-through with buffered write ndash acelaşi principiu ca la WT dar adresa şi data asociată scrisă se stochează icircntr-un tampon de scriere de mare vitezăbull Icircn cazul unui eveniment de tip write miss se utilizează

ndash Write allocate (numit şi fetch on write) ndash Blocul este icircncărcat icircn cache după evenimentul de ratare (similar cu ratarea la citire)

ndash No-write allocate (numit şi write around) ndash Blocul este modificat doar pe nivelul inferior şi nu este icircncărcat icircn cache

37 Care este icircnţelesul şi rolul stării High Impedance (HiZ) state la pinii de ieşire dintr-un microprocesor

(nu am gasit)38 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii

capacitate totală de stocare 128 KB (organizată 64K x 16) circuite integrate de memorie RAM a cacircte 16 KB

22

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 23: Mic Raspunsuri(1)

Nu e aceeasi problema da e asemanatoare

39 Construiţi o memorie ce foloseşte adresarea complet decodificată cu următorii parametrii capacitate totală de stocare 64 KB (organizată 64K x 8) circuite integrate de memorie RAM a cacircte 16 KB Conform schemei bloc concepute deduceţi harta adreselor de memorie

23

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 24: Mic Raspunsuri(1)

-la fel nu e aceeasi asemanatoare

40 Unitatea de control Funcţii principale secvenţiere interpretare Construcţia unităţii de control a UCP control cablat şi control microprogramat

Functii principalebull Secvenţierea instrucţiunilor se referă la maniera icircn care controlul procesorului este transferat de la o instrucţiune la alta prin ordinea de generare a adreselor către memoria principală a calculatorului

24

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 25: Mic Raspunsuri(1)

bull Interpretarea instrucţiunilor se referă la modul icircn care UC decodifică codul fiecărei instrucţiuni şi la modalitatea de generare a semnalelor de control către calea de date pentru a comanda execuţia instrucţiunilor

Constructia unitatii de control a UCPbull Există două metode de proiectare şi implementare a UC

ndash Unitate de control cablatăndash Unitate de control microprogramată

bull Unitatea de control cablată este un automat secvenţial proiectat şi construit pentru generarea unui set specific şi icircntr-o secvenţă fixă de semnale de control

ndash Odată proiectată algoritmul de control nu mai poate fi modificat decacirct prin reproiectarea icircntregii structuri

ndash Scop minimizarea numărului de componente utilizate şi maximizarea vitezei de operarebull La unitatea de control microprogramată semnalele de control sunt incluse icircn cuvinte binare succesive (microinstrucţiuni) stocate icircntr-o memorie de mare viteză inclusa icircn UC numită memorie de control

ndash Implementarea algoritmului de control se face prin programarea conţinutului memoriei de control

ndash Fiecărei instrucţiuni recunoscute de procesor icirci corespunde o secvenţă de microoperaţii generate prin citirea unei secvenţe de microinstrucţiuni din memoria de control (secvenţă de microinstrucţiuni numită microprogram)

ndash Microprogramele conţinute icircn memoria de control formează uninterpretor al setului de instrucţiuni recunoscut de processor

41 Descrieţi deosebirile dintre unitatea de control a UCP construită cablat şi unitatea de control construită microprogramat

bull Tehnica cablată are cacircteva avantajendash dimensiuni mici ale UCndash viteză mare de operare

bull Avantajele microprogramăriindash Permite schimbarea uşoară a algoritmului de control

bull icircn faza de dezvoltare simpla schimbare a unui 0 icircn 1 icircn memoria de control poate salva proiectul (altfel reproiectarea componentelor hw)ndash prin emularea altui set de instrucţiuni icircn microcod se simplifică compatibilitatea softwarendash reduce costurile icircn cazul adăugării unei instrucţiuni mai complexe la o microarhitectura standardndash flexibilitate - construcţia hardware poate icircncepe icircnainte ca setul de instrucţiuni şi microcodul să fie complet scris pentru că specificarea controlului este doar o problema de softwarebull Dezavantajele microcoduluindash Viteza redusă de lucru dependentă de tehnologia de realizare a memoriilorndash Gabaritul mare (suprafaţă mare ocupată pe chip)

42 Structuri de tip pipeline (conductă) principiu de funcţionare creştere icircn viteză conflicte posibile şi moduri de rezolvare

Principiul de functionarebull Tehnica de tip pipeline conduce la o reducere a timpului de execuţie mediu pentru o

instrucţiunebull Cea mai simplă cale de a icircnţelege principiul conductei este să imaginăm fiecare etaj ca fiind

format dintr-un registru urmat de un circuit combinaţional de prelucrare

25

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 26: Mic Raspunsuri(1)

bull Registrele stochează datele de intrare pentru combinaţionale pe durata necesară ca sub-operaţia corespunzătoare segmentului să fie terminate şi rezultatele să apară corect la ieşirea circuitului combinaţional

bull Dacă icircncărcarea registrelor cu datele de la etajul anterior se face sincron cu un impuls de ceas perioada ceasului trebuie să fie sufficient de mare astfel ca cel mai lent dintre etaje să termine prelucrarea

Cresterea in vitezabull Conductă cu k etaje şi n instrucţiuni de executatbullTCLK timpul de ciclu al conducteibull ktimesTCLK timpul necesar pentru umplerea conducteibull timpul total pentru execuţia celor n instrucţiuni icircntr-o conductă cu k etaje TP = (k + n minus1) timesTCLKbull Tmediu timp mediu necesar pentru execuţia fiecărei instrucţiunibull Pentru un program cu n instrucţiuni fără pipeline(suprapunere) timpul mediu total de execuţie va fi egal cu

T = n timesTmediu

bull Dacă presupunem căndash timpul mediu de execuţie al unei instrucţiuni este acelaşi cu Tmediundash timpul mediu de execuţie al unei instrucţiuni icircn unitatea construită ca pipeline (adică )rArrcreşterea icircn viteză tinde către k numărul de etajeal conductei

Surse de conflict1 Conflicte de resurse (hazard structural)2 Dependenţa datelor (hazard de date)3 Ramificările (hazard de control)

Hazard structural

26

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 27: Mic Raspunsuri(1)

bull Conflicte de resurse (hazard structural) produse de accesul la aceleaşi resurse din două etaje diferite ale conductei

ndash De exemplu accesul simultan a două etaje la memoria principală unul din accese pentru aducerea codului uneiinstrucţiuni iar celălalt pentru accesarea operanzilor

ndash Aceste conflicte se rezolvă prin mărirea numărului de unităţi funcţionale (de exemplu ALU multiple) şi prinutilizarea de spaţii separate de memorie pentru date şi instrucţiuni

Hazard de date

bull Dependenţa datelor (hazard de date) se referă la instrucţiuni care folosesc ca operanzi rezultate ale instrucţiunilor anterioare din conduct

ndash instrucţiunile anterioare icircncă nu au fost complet executatendash rezultatul nu este disponibilndash Hazardul de date se icircnlătură fie prin metode hardware (bypass) sau prin re-ordonarea

instrucţiunilor din Program

Hazard de control

bull Ramificările (hazard de control)ndash dacă se face un salt (ramificare) stiva trebuie golită şi re-icircnceput procesul de execuţie al instrucţiunilor de la adresa de saltndash Problemele hazardului de control se rezolvă prin predicţia salturilor sau prin instrucţiuni de

salt icircntacircrziatndash Toate metodele de rezolvare icircncearcă să menţină conducta plină la fiecare impuls de ceas

43 Ce este un microcontroler şi prin ce se caracterizează această arhitectură de calcul bull Microcontroller-ele (MC) sunt circuite LSIVLSI echipate cu

ndash Procesor (UCP)ndash Memoriendash Circuite Contor Temporizatorndash Pini de IO seriali paralelindash Alte periferice pe chip

bull Elementul determinant al existenţei MC este costulbull Integrarea tuturor elementelor unui calculator pe acelaşi chip contribuie la reducerea următoarelor elemente

ndash gabaritndash cost de fabricaţiendash timp de dezvoltare a unui sistem

bull Un MC este un microcalculator pe un chip proiectat pentru aplicaţii de control

44 Registre tipice de control pentru porturile digitale de IO si51 Descrieţi funcţiile registrelor tipice de control pentru porturile digitale de IO ale

microcontrollerelor

1 Registru direcţie date (DDR - Data Direction Register)2 Registru port de ieşire (PORT - Port Register)3 Registru port de intrare (PIN - Port Input Register)

Registru direcţie date(DDR)

27

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 28: Mic Raspunsuri(1)

ndash Pentru fiecare port bidirecţional se asociază un registru de control DDR care conţine un bit de configurare pentru fiecare pin al portuluindash Tipic bitul de configurare este setat pentru funcţia debull 1nput saubull 0utputndash După un reset icircn general toţi biţii DDR sunt iniţializaţi ca intrărindash Citirea registrului DDR returnează valorile icircnscrise

Registru port de ieşire (PORT)

ndash Este utilizat pentru a controla nivelul de tensiune la pinii de ieşirendash Pentru un pin configurat ca ieşire set (1) va produce nivel High iar reset (0) va produce nivel Lowndash Scrierea la un pin de ieşire se face fie prin instrucţiuni speciale de set ndashclear bit fie prin operaţii de tip citeşte-modifică-scriendash La citirea registrului PORT pinii configuraţi ca ieşiri returnează ultima valoare scrisăndash Pentru pinii configuraţi ca intrări funcţionalitatea depinde de tipul microcontrolerului

bull Unele MC permit citirea stării pinului de intrarebull Alte MC ca de ex Atmega 16 utilizează biţii setaţi ca intrări ai portului pentru alte scopuri

astfel că dacă se face citire se va returna valoarea pe care aţi scris-o icircn registru

Registru port de intrare (PIN)

ndash Registrul PIN este icircn general un registru doar cu citirendash PIN conţine starea curentă (sus sau jos) a tuturor pinilor indiferent dacă sunt configuraţi ca intrări sau ca ieşirindash Este utilizat pentru a citi starea pinilor de intrarendash O scriere la acest registru icircn general nu are efectbull O soluţie simplă pentru citirea valorilor la intrarea registrului PIN este memorarea locală a stării intrărilor la icircnceputul fiecărui ciclu de ceasbull Dacă latch-ul este triggerat cu clock-ul sistem el va stoca starea doar la icircnceputul fiecărui ciclu de ceasbull Pentru că eşantionăm doar cu granularitatea ceasului icircnseamnă că recunoaştem schimbarea stării doar cu icircntacircrzierea unui impuls de ceas

45 Intrări ndash ieşiri digitale la interfaţa cu exteriorul a microcontrollerului

Intrarea digitala

bull Semnalul de intrare se poate schimba doar icircntre două stări SUS (corespunzător lui logic 1) şi JOSbull Interpretarea nivelelor ca SUS sau JOS depinde de nivelul tensiunilor conform specificaţiilor microcontrollerului care la racircndul lor depind de tensiunea de alimentare la care funcţionează controllerulbull Intervalul ce cuprinde valorile [02Vcc hellip 06Vcc] volţi corespunde unui semnal de intrare nedefinit

Iesiri digitalebull Similar cu intrările ndash inclusiv rezistenţe trage susbull Niveluri de tensiune uşor diferitebull Ieşirile sunt mai critice decacirct intrările

ndash dacă un pin care generează nivel SUS este legat la masă scurt-circuitulpoate distruge circuitulbull Atunci cacircnd bitul corespunzător din DDR este setat ca ieşire valoarea pe pin va fi cea stabilită de către conţinutul registrului PORT

28

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 29: Mic Raspunsuri(1)

bull Dacă microprocesorul nu utilizează biţii de intrare din registrul PORT(registru folosit pentru generarea stărilor pe pinii de ieşire) pentru alte scopuri şi dacă controllerul permite scrieri la biţii de intrare din registrul PORT atunci se setează mai icircntacirci registrul PORT şi apoi DDR asta asiguracircnd că valorile corecte sunt puse pe linii icircncă de laicircnceput

46 Circuite timer - counter structuri şi aplicaţii tipice (enumerare minim 5 aplicaţii) bull Oricare MC conţine unul sau mai multe circuite timercounter cu rezoluţia de 8 16 biţibull Funcţia de temporizator (timer) e folosită pentru multe aplicaţii de tipgenerare semnale temporizare măsurări de perioade generare forme de undă generare semnale de triggerbull Temporizatorul şi contorul sunt construite pe bază de contor digitalbull Toate semnalele măsurate generate icircn timp conţin un număr icircntreg de impulsuri de ceasbull Un contor poate fi incrementat decrementat la fiecare impuls de ceas de intrare şi este utilizat pentru a număra impulsuri de intrare (internesau externe)bull Direcţia de numărare este configurabilă

Aplicatii ale circuitelor timer-counterbull Circuitele contor temporizator sunt elemente extrem de flexibile icircn cadrul unui MC

ndash Se pot genera forme de undăndash Semnalul dreptunghiular de ieşire poate fi utilizat pentru generare de forme de undă

sinusoidale sau alte forme de undă periodicendash Formele de undă periodice pot fi utilizate de exemplu icircn aplicaţii de telefonie (ton taste

avertizări sonore)

bull Circuitul contor temporizator poate fi utilizat pentru a generaimpulsuri singulare Acestea pot comanda

ndash icircnfăşurări de motorndash icircnfăşurări de relee de controlndash elemente de afişarendash impulsuri de declanşare evenimente (ceas de timp real control cicluriDMA icircntreruperi

diverse)

47 Ce este un watchdog timer (rol şi funcţionare)

bull Este un timer special folosit pentru revenirea din situaţii dificilendash probleme de software ca de exemplu bucle infinitendash probleme de hardware care blochează funcţionarea corectă a programului

bull Acest timer verifică că anumite porţiuni din program sunt atinse icircntr-un timp pre-determinatbull Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat icircn funcţionare de modurile tip ldquosleeprdquo icircn care ceasul sistem este oprit

bull Watchdog timer este utilizat pentru monitorizarea funcţionării corecte a sistemuluindash O dată ce este activat el icircncepe decrementarea conţinutului său icircncepacircnd cu o valoare

programată (timp programat icircn registrul său de control)ndash Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornire programndash Pentru a bloca acţiunea de reset programul rulat trebuie să restarteze circuitul watchdog timer

icircnainte ca acesta să ajungă la zerondash Este util icircn cazul erorilor ne-permanente ale sistemului

48 Descrieţi modul de funcţionare al unui controller PWM (Pulse Width Modulation)bull Este controllerul folosit de obicei pentru operaţii de conversie DA

29

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 30: Mic Raspunsuri(1)

ndash De exemplu pentru un factor de umplere de 50 şi o amplitudine a formei de undă dreptunghiulare de 5 V tensiunea medie pe ciclu este 25 Vndash De exemplu pentru un factor de umplere de 10 şi o amplitudine a formei de undă

dreptunghiulare de 5 V tensiunea medie pe ciclu este 05 Vbull La ieşirea PWM se foloseşte icircn acest caz un FTJbull PWM poate fi folosit pentru a controla viteza unui motor electricbull PWM poate fi utilizat pentru a comanda intensitatea luminoasă (reglabilă) printr-un LEDbull PWM poate fi utilizat pentru generarea de tonuri audio

49 Ce este o rezistenţă de trage - sus la un pin al microcontrollerului şi care este rolul său

bull Cele mai multe dintre MC au doar rezistenţe interne trage-sus ce pot fi controlate prin programarea registrelor de control dar există şi MC ce au rezistenţe interne trage ndash jos (de ex HCS12)bull Rolul rezistorului de forţare a nivelului conectarea pinului de intrare la o tensiune definită ca valoare dacă pinul nu este controlat de hardware extern către un anumit nivel de tensiunebull Rezistoarele respective sunt controlate printr-un registru ce poate controla fiecare pinbull Dacă curentul curge dinspre MC către circuitul extern intrarea estenumită ldquosource inputrdquobull Dacă curentul curge dinspre circuitul extern către MC intrarea estenumită ldquosink inputrdquo

50 Explicaţi de ce la unele intrări digitale se impune utilizarea unui circuit de tip trigger-Schmitt

bull Ce se icircntacircmplă dacă schimbarea semnalului de intrare se face foarte lentbull E posibil să citim o stare ne-definită la intrare (SUS sau JOS) bull Pentru a scădea probabilitatea de stare nedefinită sau de oscilaţie circuitul folosit ca intrare include un trigger Schmitt pentru a rezulta fronturi bine definite ale semnalului de intrarebull Intrări şi Ieşiri pentru un trigger Schmitt

30

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 31: Mic Raspunsuri(1)

52 Trataţi pe scurt problemele ce apar la MC privind consumul de putere şi metodele folosite pentru managementul puterii

bull Puterea de comutaţie Pswitching = C V dd2

f(contribuţie 70-90 din puterea totală)C-capacitatea parazitaV-tensiunea de alimentaref-frecventa de comutare

bull Puterea internă de scurt-circuit Pint (contribuţie 10 - 30 din puterea totală)bull Puterea prin curenţi de scurgere icircn regim staticPstatic (contribuţie lt1 din puterea totală)

Metode folosite pentru managementul puterii Modul sleepstandby

ndash Capacitatea de a scoate din funcţionare icircntregul circuit sau părţi ale circuitului pentru anumite perioade

ndash Se realizează prin blocarea temporară a ceasului (porţi deblocare) şi circuite de izolarendash Se reduce astfel consumul de putere de comutare pentru anumite unităţi funcţionale sau

pentru icircntregul circuitbull mod aşteptare (standby mode)

ndash procesorul nu execută instrucţiunindash informaţia stocată intern se păstreazăndash se poate trece rapid icircn mod complet operaţional

bull semnal de ceas oprit (clock-off mode)ndash semnal de ceas oprit completndash pentru ieşire din această stare procesorul trebuie resetat

31

32

Page 32: Mic Raspunsuri(1)

32