cursms10prezentat_2014

20
•1 Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 1 Agenda Agenda Sistemul de memorie Interfatarea cu circuitele de memorie Ierarhizarea memoriei Liliana Dobrica, Sisteme cu Microprocesoare 2013-2014 2 Sistemul Sistemul de de memorie memorie În cadrul unui sistem de calcul memoria ocupă un loc important reprezentând „depozitul de informaţii” (date şi program) al acestuia. • Există două arhitecturi consacrate în ceea ce priveşte organizarea sistemului de memorie: von Neumann şi Harvard. În cazul arhitecturii von Neumann memoria este văzută ca un tot unitar în care se află atât programele cât şi datele; în cazul arhitecturii Harvard memoria este împărţită în două părţi distincte, memorie program şi memorie de date

Upload: vlad-stefan-cristian

Post on 05-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

•1

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 1

AgendaAgenda

• Sistemul de memorie

• Interfatarea cu circuitele de memorie

• Ierarhizarea memoriei

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 2

SistemulSistemul de de memoriememorie• În cadrul unui sistem de calcul memoria ocupă un loc important

reprezentând „depozitul de informaţii” (date şi program) al acestuia. • Există două arhitecturi consacrate în ceea ce priveşte organizarea

sistemului de memorie: von Neumann şi Harvard. În cazul arhitecturii von Neumann memoria este văzută ca un tot unitar în care se află atât programele cât şi datele; în cazul arhitecturii Harvard memoria este împărţită în două părţi distincte, memorie program şi memorie de date

•2

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 3

Tipuri de circuite de memorie

RAM

ROM

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 4

Tipuri de circuite de memorie

Configuratia pinilor

ROM Citire

Conectare Adrese

Conectare Date (Iesiri/ Intrari-Iesiri)

Scriere

Selectie

•3

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 5

Circuite de memorie ROM• Memoria ROM (Read-Only Memory) este un tip de memorie care nu poate fi

modificată sau ştearsă de către procesor. Este în general non-volatilă.

• Circuite de memorie de tip ROM

• Programata din fabrica, nu poate fi modificata• Circuite de memorie de tip PROM (Programmable ROM)

• Poate fi programata o singura data• Circuite de memorie de tip EPROM (Erasable PROM)

• Reprogramarea prin expunere la lumina UV de mare intensitate timp de 20 minute

• Circuite de memorie de tip flash EPROM, E2PROM sau EEPROM (Electrically Erasable PROM)

• Scrierea este mai lenta decat in RAM normal. Utilizata pentru memorarea informatiilor de setup (ex. video), BIOS, etc.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 6

EPROMVPP – programarea circuitului prin aplicarea 25V si utilizarea PGM cu mentinerea CS\ high

•4

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 7

EPROM

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 8

Memoria RAM• Memoria de tip RAM (Random Access Memory) se caracterizează prin faptul că

timpul de acces la date este independent de localizarea efectivă (în circuit) a acestora.

• SRAM. Circuitele SRAM (Static RAM) sunt circuite de memorie RAM volatile care utilizează patru tranzistoare per celulă pentru a păstra sarcina electrică de „1” logic. Timpul de acces este mai rapid fata de EPROM (250ns). SRAM pentru cache are timp de acces de ordinul 10ns.

•5

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 9

Memoria RAM • SRAM sunt limitate ca dimensiune ( pana la 128K X 8). DRAM sunt disponibile in

capacitati mai mari, (ex. 64M X 1)• Circuitele DRAM (Dynamic RAM) sunt circuite de memorie RAM volatile care

utilizează un condensator pentru a păstra sarcina electrică de „1” logic. Din cauză că timpul de stocare a sarcinii în elementul capacitiv este de ordinul milisecundelor aceste circuite necesită, spre deosebire de SRAM, un ciclu periodic de întreţinere (refresh) a sarcinilor electrice la nivel de celulă la fiecare 2 pana la 4 ms. Densitatea elementelor electronice pentru implementarea unei celule pe pastila de siliciu a circuitului este de patru ori mai mică decât în cazul SRAM (memoria SRAM necesită patru tranzistoare per celulă, memoria DRAM unul singur) şi de aceea costul per unitate de stocare este mai mic. Pinii de adresa sunt multiplexati.

• Exemple de tehnologii actuale DRAM: FPM DRAM (Fast Page DRAM), EDO DRAM (Extended Data Out DRAM), SDRAM (Synchronous DRAM), DDR SDRAM (Double data-rate SDRAM), RDRAM (rambus DRAM), VRAM (Video RAM) etc.

• Circuitele NVRAM (Non-volatile RAM) sunt circuite de memorie SRAM realizate în tehnologie CMOS, cu consum redus, alimentate cu o baterie care să permită reţinerea informaţiilor din circuit la întreruperea alimentării cu energie electrică a sistemului

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 10

Memoria RAM • DRAM

•6

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 11

Memoria RAM • DRAM - normal

• DRAM – refresh• Necesita hardware extern

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 12

Memoria RAM • Controller DRAM

• Exemplu: 82C08 controleaza 1MB DRAM pentru un sistem pe 16 biti de date si 24 linii de adrese.

•7

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 13

Standarde JEDEC

• Standardele JEDEC (Joint Electronic Device Engineering Committe – www.jedec.org) definesc modul de funcţionare a circuitelor de memorie actuale (tipuri de circuite, organizarea pinilor, parametri de funcţionare etc.).

• Prin intermediul acestora se asigură o compatibilitate a utilizării circuitelor de memorie în practică.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 14

Detectarea si corectia erorilor• Mecanismele de detectare a erorilor presupun stoparea operaţiilor cu memoria

înainte ca informaţii greşite să fie utilizate în sistem. Corecţia erorilor presupune reconstruirea informaţiilor greşite, pe baza unor informaţii redundante, chiar în timpul funcţionării sistemului. Există două tipuri de erori: permanente (hard errors) sau aleatoare (soft errors). Erorile permanente sunt cauzate de defecte hardware,iar erorile aleatoare de interferenţe, desincronizări sau erori de program.

• Una dintre metodele cele mai utilizate de detectare şi corecţie a erorilor se bazează pe utilizare unor biţi de paritate. În cele mai multe cazuri se utilizează un singur bit de paritate pentru fiecare cuvânt de date din memorie. O astfel de metodă poate detecta erorile simple (modificare unui singur bit din cuvânt), nu şi erorile multiple, şi nu poate corecta aceste erori. Pentru detectarea erorilor multiple şi corecţia erorilor simple se poate extinde metoda bitului de paritate de la nivel de cuvânt la nivel de bloc, pe lângă bitul de paritate a fiecărui cuvânt se utilizează şi un bit de paritate la nivel de coloană a blocului de cuvinte.

•8

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 15

Detectarea si corectia erorilor

• Verificarea paritatii – detecteaza un singur bit eronat din memorie. Pentru fiecare 8 biti de date se adauga 1 bit de paritate. Paritate EVEN, al 9-lea bit devine 1 daca exista un numar par de 1 in toti cei 9 biti. Paritate ODD - al 9-lea bit devine 1 daca este impar.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 16

Detectarea si corectia erorilor

•9

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 17

Detectarea si corectia erorilor

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 18

Detectarea si corectia erorilor

• Suma de control sau BCC (Block-Check Character). Poate detecta biti multipli eronati. - Suma in complement fata de 2 a secventei de octeti (negativul sumei). Nu exista eroare daca rezultatul adunarii datelor cu suma de control este 0.Date: 4 octeti in hexa

Calculeaza suma Inverseaza si aduna 1 pentru a obtine octetul sumei de control

Verificarea se face prin adunarea si verificarea cu 00 (se ignora transportul)

Nu este intotdeauna adevarat:

Daca (45 se schimba cu 44) AND ( 04 devine 05), atunci eroarea este nedetectata

•10

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 19

Detectarea si corectia erorilor

• CRC (Cyclic Redundancy Check) – verifica transferul datelor prin hardware (ex. harddrives). Datele sunt stream-uri seriale de n-biti. Bitii sunt coeficientii unui polinom (M(X)): b0 – cmps bit, iar bn cms bit.

• Pentru un stream 16 biti : 26F0H = 0010 0110 1111 0000

• CRC se afla:

• Unde G(X) este numit generator polinomial. Cel mai folosit este:

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 20

Detectarea si corectia erorilor

• Restul R(X) este adaugat blocului de date. Cand CRC si R(X) sunt calculate de receiver, R(X) trebuie sa fie 0. Deoarece G(X) este o putere a lui 16, R(X) nu poate avea un ordin mai mare ca 15.

• Valoarea ce se va adauga: 1101 1010 1100 0101 = DAC5H

•11

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 21

Detectarea si corectia erorilor

• Paritate, BCC si CRC sunt doar mecanisme de detectie. Sistemul este trecut in starea halt daca este detectata vreo eroare. Corectia erorilor este inclusa in noile sisteme. SDRAM include ECC (error correction code).

• Corectia va permite sistemului sa continue operarea. Corectia erorilor costa in termeni de extra-biti.

• Corectia erorilor bazata pe Codurile Hamming. Pentru corectia unui singur bit dintr-un octet de date sunt necesari 4 biti de paritate.

• Circuitul 74LS636 – corecteaza erorile prin memorarea a 5 biti de paritate pentru fiecare octet de date. Are 8 pini de date (I/O); 5 pini de paritate (I/O), 2 pini de control, 2 iesiri de eroare : Single error flag (SEF), Double error flag (DEF).

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 22

Detectarea si corectia erorilor

• Prin introducerea biţilor de paritate la nivel de bloc de pot detecta erorile multiple şi pot fi corectate erorile simple.

• Un standard de corecţie bazat pe implementarea hardware a bitului de paritate la nivel de cuvânt este ECC (Error Correction Code). Acest mecanism implică atât suport hardware la nivel de circuit de memorie, cât şi suport hardware şi software la nivel de sistem.

• O altă modalitate de detectare al erorilor la nivel de bloc de date este tehnica bazată pe sumă de control. Această se bazează pe un mecanism simplu de tip modulo n pe baza însumării tuturor elementelor din bloc. Un mecanism similar,dar care oferă o siguranţă mai mare este cel care extrage pentru un bloc de date un CRC (cyclic redundancy code) care permite detectarea oricăror modificări a informaţiilor din respectivul bloc de date. Algoritmul de calculare a CRC-ului se bazează pe interdependenţa polinomială a informaţiilor şi oferă o acurateţe mai mare de detectare a erorilor.

•12

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 23

Interfatarea cu circuitele de memorie

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 24

Magistrala sistem

• Orice sistem de calcul este format din UCP, sistem de memorie şi porturi de intrare / ieşire (sistem I/O), acestea fiind părţile componente de bază.

• Mulţimea conexiunilor (liniilor electrice) care interconectează UCP cu sistemul de memorie şi cu sistemul I/O se numeşte magistrală sistem. Aceasta are rolul de a permite schimbul de informaţii (date) între UCP şi restul sistemului precum şi de a transmite comenzile UCP către celelalte componente ale sistemului.

• Există trei componente ale magistralei sistem: magistrala de adrese, magistrala de date şi magistrala de comenzi.

•13

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 25

Magistrala sistem

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 26

Decodificarea adreselor de memorie

• Procesorul adreseaza un spatiu de memorie mai mare decat al unui circuit de memorie.

• Pentru a aloca unui circuit de memorie un spatiu in memoria adresabila a microprocesorului , este necesara decodificarea.

• Exemplu: 8086 are adrese pe 20-biti si un spatiu total de adresare de 1 MB. EPROM 2716 are numai 2KB de memorie si 11 pini de adresa. Un decodificator poate fi utilizat pentru a aloca 2KB de memorie in spatiul de 1MB de adrese.

• 74LS138 – Decodificator 3/8

•14

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 27

Decodificarea adreselor

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 28

Interfatarea memoriei pentru microprocesoare pe 8 biti

• Microprocesorul are 20 linii de adrese (A19 - A0), 8 linii de date(AD7 - AD0), 3 semnale de control IO/M, RD, si WR

• 32K EPROM de la F8000H la FFFFFH realizat cu circuite 2732 (4K X 8)

•15

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 29

Interfatarea memoriei pentru microprocesoare pe 8 biti

• Microprocesorul are 20 linii de adrese (A19 - A0), 8 linii de date(AD7 - AD0), 3 semnale de control IO/M, RD, si WR

• 512K SRAM de la 00000H la 7FFFFH realizat cu circuite 62256 (32Kx8). Sunt necesare 16 circuite.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 30

Interfatarea memoriei pentru microprocesoare pe 16 biti

• Microprocesorul are 16 linii de date(D15 - D0), semnale de control M/IO (8086/80186), MWTC for 80286 and 80386SX, BHE, Bus High Enable, Address pin A0 (or BLE, Bus Low Enable)

• Magistrala de date este impartita in bancuri

•16

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 31

Interfatarea memoriei pentru microprocesoare pe 16 biti

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 32

Exemplu de decodificare a adreselor

• Se dă un sistem cu magistrala de adrese pe 16 biţi, magistrala de date pe 8 biţi şi un bloc de memorie de 16KB aflat la adresa 1000H. Blocul de memorie este implementat utilizând două circuite SRAM de 8K X 8. Să se implementeze circuitul de decodificare a adreselor pentru acest sistem.

• Având în vedere că magistrala de adrese este pe 16 biţi plaja de adrese a sistemului este cuprinsă între 0000H şi FFFFH. Dimensiunea maximă a memoriei, magistrala de date fiind pe 8 biţi, este de 64KB.

•17

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 33

Harta memoriei

Zonă de Adresă în

memorie hexazecimal A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15

0000H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0FFFH 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 01000H 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

2FFFH 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 03000H 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0

4FFFH 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 05000H 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0

FFFFH 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Circuit 2

Nealocată

...

...

Linii magistrală de adrese

Nealocată ...

Circuit 1 ...

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 34

Analiza variatiei liniilor de adresa

• Am reprezentat spaţiul de adrese poziţionând cele două circuite de memorie începând cu adresa 1000H. Zona de memorie cuprinsă în primul circuit începe la 1000H şi se termină la 2FFFH, zona de memorie din al doilea circuit începe la 3000H şi se termină la 4FFFH.

• Se observă două lucruri foarte importante:

• Putem utiliza direct liniile de adrese A0 – A12 pentru formarea adresei interne a circuitelor (13 linii de adresă – 213 = 8K). Atenţie, linia A12 trebuie negată pentru a forma un spaţiu coerent de memorie (0000H – 1FFFH).

• Liniile de adresă A12, A13 şi A14 fac diferenţierea între adresele aflate în circuitul 1 şi adresele aflate în circuitul 2. Astfel pentru când funcţia A12*A13\*A14\+A12\*A13*A14\ este „true” adresele se află în circuitul 1 iar când funcţia A12*A13*A14\+A12\*A13\*A14 este „true” adresele se află în circuitul 2.

•18

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 35

Stabilirea functiilor CS

• Cu alte cuvinte putem conecta liniile magistralei de adrese sistem A0 – A12 direct la intrările de adrese ale circuitelor (cu A12 -> /A12) şi liniile A12, A13 şi A14 le putem folosi ca semnale de selecţie. Dacă în sistem nu se mai află nici un alt dispozitiv mapat în acest spaţiu de adrese este suficientă utilizarea liniilor A12-A14, dacă mai există şi alte dispozitive trebuie să utilizăm şi linia A15 pentru a identifica în mod unic cele două circuite de memorie. Dacă nu facem acest lucru este posibil ca în momentul emiterii adresei 9000H, de exemplu, (aflată în alt dispozitiv) circuitul 1 să ne returneze conţinutul adresei 1000H (cele două adrese diferă exact prin linia de adresă A15).

• În cazul nostru funcţiile de chip select sunt:

• CS1 = A12*A13\*A14\*A15\+A12\*A13*A14\*A15\

• CS2 = A12*A13*A14\*A15\+A12\*A13\*A14*A15\

• În cazul în care funcţiile logice de selecţie sunt prea complicate ele pot fi minimizate prin metode specifice (teorema DeMorgan).

• Dacă modalitatea de variaţie a valorilor liniilor de adresă nu poate fi observată direct se pot utiliza metode de tipul Karnaugh, Quine-McCluskey sau Espresso pentru extragerea (şi minimizarea) funcţiei logice de selecţie.

• În funcţie de natura circuitului de memorie în logica de selecţie poate fi implicat şi un semnal de comandă de tip /RD, /WR sau /PSEN. În cazul nostru fiind vorba de circuite de memorie de tip SRAM vom folosi doar semnalele /RD şi /WR

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 36

Posibila implementare

1

23

/RD

/OE

/WE

1 2

1 2

1 2

1 2

A12

6

1

2

4

5

A13 A14 A15

6

1

2

4

5

31

2CS1

1

23

/WR

•19

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 37

Ierarhizarea memoriei• În majoritatea cazurilor sistemele de calcul nu dispun de un singur nivel de memorie;

sistemul de memorie nu este omogen din punct de vedere al tipurilor de circuite şi dispozitive care îl alcătuiesc. Un prim exemplu de ierarhizare a memoriei îl constituie împărţirea memoriei pe două niveluri: memorie primară (memorie cu care UCP lucrează în mod direct) şi memorie secundară (memorie accesibilă prin intermediul unui dispozitiv de control suplimentar).

• Apariţia celui de al doilea nivel de memorie a fost argumentată de raţiuni economice şi practice. Memoria primară este formată din circuite electrice care nu permit stocarea unor mari cantităţi de informaţii şi care nu permit întotdeauna stocarea informaţiilor în absenţa alimentării cu energie electrică. În schimb, memoria principală oferă un timp de acces foarte mic. Spre deosebire de aceasta, memoria secundară este formată din dispozitive de stocare magnetice sau magneto-optice, cu un timp de acces mai ridicat,dar cu posibilităţi de stocare de mari dimensiuni şi cu facilităţi de păstrare a datelor şi în absenţa alimentării cu energie electrică.

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 38

Memorie principala/ Memorie secundara

•20

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 39

Niveluri de memorie

Microprocesor

UCP

Regis trii On-chip cache

On-board Cache

(SRAM)

Memorie principala (DRAM)

Memorie secundara (Hard-disk)

Memorie de masa (Banda

magnetica)

Timp (ns): 1s 10s 100s 10000000s 10000000000s 10s ms 10 sec Cap(byte): 100s Ks Ms Gs Ts

Liliana Dobrica, Sisteme cu Microprocesoare

2013-2014 40

Principiul localitatii• S-a evidențiat existența unui principiu, numit principiul “localității”

programelor (program locality), extensibil si la date. • Dacă la momentul t se face acces la adresa de memorie x, există o

probabilitate ridicată ca, la momentul t + ∆t, să se efectueze accesul la adresa de memorie x + ∆x, unde ∆t si ∆x sunt valori mici ale lui t si x.

• Principle of locality:• Programele executa secvențe de instructiuni• Programele au bucle• Matricele sunt memorate în blocuri contigue• Datele neînrudite sunt plasate în același segment