Sunteți pe pagina 1din 7

Introducere n tiina i Ingineria Calculatoarelor

42

ELEMENTE PRIMARE DE MEMORARE. REGITRII. MEMORII. AUTOMATE CU NUMR FINIT DE STRI Curs 4
4.1.4. MEMORIA Reprezint o zon de date de capacitate mai mare dect regitrii procesorului dar mai lent dect acetia. Se cunosc urmtoarele tipuri de memorii: ROM (read only memory) memorii fixe, nevolatile, n care informaia se pstreaz i dup ntreruperea alimentrii. Circuitele ROM sunt circuite pur combinaionale, celula de memorie fiind un tranzistor programat sau nu, amplasat la intersecia unei linii cu a unei coloane, din matricea de memorie (vezi figura 4.9). n ele se nscrie softul de baz al unui sistem de calcul: sistemul de operare, BIOS (rutina de iniializare a sistemului de calcul imediat dup alimentarea cu energie teste de memorie, verificare periferice). Memoriile ROM pot fi doar citite nu scrise (scrierea se face o singur dat n momentul fabricrii). PROM (programmable ROM) poate fi programat de productor sau utilizator la prima folosire a dispozitivului. UVEPROM (Ultraviolet Erasable PROM) sunt identice cu memoriile PROM cu deosebirea c ofer posibilitatea de tergere i reprogramare prin expunerea la raze ultraviolete. Necesit un echipament special pentru programare. EEPROM (Electrical Erasable PROM) sunt identice cu memoriile UVEPROM cu deosebirea c tergerea se face prin aplicarea unor semnale electrice speciale de tensiune ridicat (30V). FLASH ROM este o memorie special de tip EEPROM care poate fi tears sau programat n timpul funcionrii n circuit (aplicaii cu microcontrollere n care se ncarc un cod obiect gata de execuie). Odat programat coninutul rmne nemodificat chiar i dup eventuale anomalii datorate cderii tensiunii de alimentare. RAM (random access memory) este o memorie care poate fi scris sau citit (atta timp ct este alimentat cu energie). Informaia se pierde dup oprirea alimentrii. Accesul la memorie se permite numai n anumite momente de timp validate de un semnal de tip acces la memorie (memory request). Exist dou tipuri majore de memorii RAM: o SRAM (Static RAM) mai rapide, mai fiabile dar mai scumpe per unitate de octet memorat. Uzual sunt folosite la implementarea memoriilor cache. De asemenea, consum mai mult energie. o DRAM (Dynamic RAM) lent i necesit regenerare (celula de memorie o reprezint un condensator care se descarc n timp); ieftin per unitate de octet memorat. Memoria principal este de tip DRAM. Din punct de vedere al evoluiei n timp a memoriilor DRAM se cunosc urmtoarele etape: EDO (Extended Data Out RAM) cu 10% pn la 20% mai rapid dect primele memorii DRAM. SDRAM (Synchronous DRAM) mai rapide cu aproape 25% dect memoriile EDO RAM. DDR sau SDRAM II (Double Data Rate SDRAM) de dou ori mai rapide dect memoriile SDRAM. RDRAM (Rambus DRAM) dezvoltate de ctre firma Rambus Inc., sunt de aproape zece ori mai rapide dect memoriile DRAM. SLDRAM (Synclink DRAM) este principalul competitor din punct de vedere tehnologic al memoriilor RDRAM.

Introducere n tiina i Ingineria Calculatoarelor

43

Creterea decalajului dintre viteza procesoarelor i timpul de acces la memorie a impus introducerea unui sistem ierarhic de memorie (vezi figura 4.8), pentru a nu face simit la nivelul performanei globale a sistemului ncetineala cu care se acceseaz memoria . Practic, cu ct capacitatea memoriei crete, cu att scade timpul de acces la memorie i se ieftinete preul per unitate de octet memorat. Memoria cache este o memorie situat din punct de vedere logic ntre CPU (unitatea central de procesare) i memoria principal, mai mic, mai rapid i mai scump (per byte) dect aceasta i gestionat n general prin hardware astfel nct s existe o ct mai mare probabilitate statistic de gsire a datei accesate de ctre CPU, n cache. Aadar, cache-ul este adresat de ctre CPU n paralel cu memoria principal (MP): dac data dorit a fi accesat se gsete n cache, accesul la MP se aborteaz, dac nu, se acceseaz MP cu penalizrile de timp impuse de latena mai mare a acesteia, relativ ridicat n comparaie cu frecvena de tact a CPU. Oricum, data accesat din MP se va introduce i n cache.

Figura 4.8. Ierarhizarea memoriei ntr-un sistem de calcul

4.2. AUTOMATE SECVENIALE I PROGRAMABILE


Automatul cu numr finit de stri presupune o desfurare automat a unui numr finit de secvene. Aplicaii n informatic: modelarea comportamentului aplicaiilor ingineria software compilatoare n studiul computaiei i limbajelor n proiectarea sistemelor digitale hardware o structurile hardware de predicie aferente ramificaiilor condiionate din program o mecanisme de confiden n vederea unei evacuri / inserri selective n structuri de predicie a salturilor indirecte de tip Target Cache o n reducerea decalajului dintre viteza procesoarelor i timpul de acces la memorie prin concepte de tip selective victim cache). Un automat finit (AF) sau o main cu stri finite este un model de comportament compus din stri, tranziii i aciuni. O stare stocheaz informaii despre trecut, adic reflect schimbrile intrrii de la iniializarea sistemului pn n momentul de fa . O tranziie indic o schimbare de stare i este descris de o condiie care este nevoie s fie ndeplinit pentru a declana tranziia. O aciune este o descriere a unei activiti ce urmeaz a fi executat la un anumit moment. Exist cteva tipuri de aciuni: Aciune de intrare executat la intrarea ntr-o stare. Aciune de ieire executat la ieirea dintr-o stare. Aciune de intrare de date executat n funcie de starea prezent i de datele de intrare.

Introducere n tiina i Ingineria Calculatoarelor

44

Aciune de tranziie executat n momentul unei tranziii. Logica automatelor finite stabilete c ieirea i starea urmtoare a unui automat finit este o funcie de intrare i de starea curent. Logica unui AF este prezentat n figura 4.13.

Figura 4.13. Logica automatelor finite

Automatul finit poate fi reprezentat printr-o diagram de stri (sau diagram de stri i tranziii) ca n figura 4.14. n plus, se folosesc i tabele de tranziie. Cea mai comun reprezentare este dat mai jos: prin combinaia strii curente (B) i a condiiei (Y) se determin starea urmtoare (C). Informaii complete privind aciunile pot fi adugate doar ca note de subsol. n limbaj natural funcionarea automatului urmtor s-ar descrie astfel: Din starea B dac se ndeplinete condiia Y se trece n starea C. Starea curent / Condiia Condiia X Condiia Y Condiia Z Starea A ... ... ... Starea B ... Starea C ... Starea C ... ... ...

Tabelul 4.3 Tabel de tranziie ntr-un automat cu numr finit de stri caz general Pentru exemplificare, se prezint n continuare funcionarea unui automat finit pe doi bii (de tip numrtor saturat, folosit de cele mai multe structuri de predicie implementate n cadrul procesoarelor actuale).

Figura 4.14. Diagrama de stri i tranziii automat finit pe doi bii (de tip numrtor saturat)

Introducere n tiina i Ingineria Calculatoarelor

45

Tabela de tranziie arat astfel: Stare curent


0 1 2 3

Stare urmtoare
Pentru intrare = 0 (predicie incorect) 0 0 1 2 Pentru intrare = 1 (predicie corect) 1 2 3 3

Predicie (Aciune de ieire: predictibil=1 / nepredictibil=0)


0 0 1 1

Tabelul 4.4. Tranziiile automatului de predicie pe 2 bii

Rolul acestui automat este urmtorul: starea automatului va determina aciunea de ieire (predicia ramificaiei n program, adic urmarea ramurii cu if sau a celei cu else) Dac acesta e 1 logic, atunci se prezice c saltul se va face, iar dac e 0 logic, se prezice c saltul nu se va face. Evident c nu se poate ti n avans dac predicia este corect. Oricum, procesorul va considera c predicia este corect i va declana aducerea instruciunii urmtoare de pe ramura prezis. Dac predicia se dovedete a fi fost fals se va iniia procesarea celeilalte ramuri de program. Totodat, automatul va tranzita ntr-o nou stare conform figurii 4.13 sau a tabelului 4.4. ntr-o implementare software care modeleaz funcionarea automatului finit (de predicie) acesta poate fi este descris printr-un ir de caractere cu un format mai special, ce prezint att numrul de stri, tranziiile ntre stri ct i predicia aferent fiecrei stri . De exemplu, automatul anterior s-ar descrie prin irul de caractere: 01021323:12. ntr-un circuit digital, o implementare hardware a unui AF necesit un registru pentru a stoca variabilele de stare, un bloc de logic combinaional care determin tranziia de stare, i un alt bloc de logic combinaional care determin ieirea automatului finit. Optimizarea unui automat finit nseamn gsirea automatului finit cu numrul minim de stri care opereaz cu aceeai funcionalitate. Aceast problem se poate rezolva folosind un algoritm de colorare. Automatele finite pot fi clasificate: Acceptoare genereaz o ieire binar, fie da, fie nu, reprezentnd rspunsul la ntrebarea "Intrarea este acceptat sau nu de main?" . Maina, utilizat n cazul gramaticilor din limbajele formale, poate fi descris i ca definitorie pentru un limbaj, n cazul de fa limbajul definit ar conine toate cuvintele acceptate de main i nici unul din cele neacceptate. Toate strile automatului se clasific n stri acceptante (finale) sau neacceptante. Dac la momentul terminrii procesrii ntregului ir de intrare automatul este ntr-o stare final, atunci intrarea este acceptat, altfel nu . Ca o regul, intrarea este compus din simboluri (caractere); nu se folosesc aciunile. Modelul matematic al automatului finit acceptor este un cvintuplu

<, S, s0, , F>, unde: este alfabetul de intrare (o mulime finit i nevid de simboluri). S este o mulime finit i nevid de stri. s0 este starea iniial, element al lui S. ntr-un automat finit nedeterminist, s0 este o mulime de stri iniiale. este funcia de tranziie a strii: : S x S. F este mulimea strilor finale, o submulime (posibil vid) a lui S.

Introducere n tiina i Ingineria Calculatoarelor

46

Transductoarele genereaz ieire pe baza unei intrri date i/sau a unei stri, folosind aciuni. Ele sunt folosite n controlul aplicaiilor . Aici se disting dou tipuri: o Maina Moore Automatul folosete doar aciuni de intrare, i deci ieirea depinde doar de stare. Avantajul modelului Moore este dat de simplificarea comportamentului. o Maina Mealy Automatul folosete doar aciuni de intrare de date, adic ieirea depinde de intrare i de starea curent. Utilizarea unui AF Mealy conduce adesea la o reducere a numrului de stri. n practic se folosesc deseori modele hibride. Un automat finit transductor este un sextuplu <, , S, s0, , >, unde: , S i s0 i pstreaz semnificaiile din definiia automatului finit acceptor . este alfabetul de ieire (o mulime finit i nevid de simboluri). este funcia de tranziie a strii: : S x S x . este funcia de ieire. Dac funcia de ieire este o funcie de stare i de alfabetul de intrare (: S x ), atunci aceast definiie corespunde modelului Mealy. Dac funcia de ieire depinde doar de stare (: S ), atunci aceast definiie corespunde modelului Moore. O alt distincie care se face ntre automatele finite: Automatele finite deterministe (AFD) din fiecare stare se poate efectua exact o singur tranziie pentru fiecare intrare posibil. Automatele finite nedeterministe (AFN) pentru o anumit stare i o anumit intrare, pot fi mai multe tranziii posibile, sau chiar nici una. Aceast distincie este relevant n practic, dar nu i n teorie, deoarece exist un algoritm care poate transforma orice AFN ntr-un AFD echivalent, dei aceast transformare mrete, de obicei, complexitatea automatului. Aplicaie 2: Circuitul de mai jos implementeaz un automat cu numr finit de stri (fie acesta M). Registrul pe un bit etichetat S memoreaz starea curent, I este intrarea i O este ieirea.

(a) Cte stri are automatul M? Desenai diagrama strilor i a tranziiilor pentru automatul M.

Introducere n tiina i Ingineria Calculatoarelor

47

(b) Circuitul de mai jos este un automat cu numr finit de stri programabil. Componentele circuitului, sunt etichetate astfel: (A) o memorie cu patru locaii fiecare coninnd un bit (2 2x1-bit), (Z) o memorie cu dou locaii a cte un bit fiecare (2 1x1-bit). (S) un registru pe un bit. Ce trebuie s conin locaiile de memorie A i Z astfel nct acest circuit s reprezinte o implementare hardware a automatului M?

Rspuns: a) ntruct S este reprezentat pe un bit rezult c M are dou stri. Diagrama strilor i a tranziiilor pentru automatul M arat astfel: Considerm o stare a automatului (S=0) i alta (S=1). Din schem se observ c O= not S. De asemenea, pentru orice intrare egal cu 0 (I=0) automatul trece din starea curent n cealalt (din S=0 n S=1 sau invers). Pentru orice intrare egal cu 1 (I=1) automatul i pstreaz starea.

b) Adresa (A1A0) 00 01 10 11 Coninutul locaiei 1 0 0 1

Se observ c A1 este I (intrarea n automat) iar A 0 este S (starea curent). inem cont de consideraiile anterioare (intrare 1 pstreaz starea constant, intrare 0 schimb starea). Adresa (Z0) Coninutul locaiei 0 1 1 0

Introducere n tiina i Ingineria Calculatoarelor

48

Se observ c O (ieirea) este dat de coninutul locaiei, i este negaia strii S.

S-ar putea să vă placă și