Sunteți pe pagina 1din 20

Agenda

Sistemul de memorie
Interfatarea cu circuitele de memorie
Ierarhizarea memoriei

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Sistemul de memorie
n cadrul unui sistem de calcul memoria ocup un loc important
reprezentnd depozitul de informaii (date i program) al acestuia.
Exist dou arhitecturi consacrate n ceea ce privete organizarea
sistemului de memorie: von Neumann i Harvard. n cazul arhitecturii von
Neumann memoria este vzut ca un tot unitar n care se afl att
programele ct i datele; n cazul arhitecturii Harvard memoria este
mprit n dou pri distincte, memorie program i memorie de date

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Tipuri de circuite de
memorie
RAM

ROM

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Tipuri de circuite de
memorie
Configuratia pinilor
Conectare Adrese

Scriere

ROM

Citire
Selectie

Conectare Date (Iesiri/ Intrari-Iesiri)

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

Circuite de memorie ROM


Memoria ROM (Read-Only Memory) este un tip de memorie care nu poate fi
modificat sau tears de ctre 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

EPROM
VPP programarea
circuitului prin aplicarea 25V
si utilizarea PGM cu
mentinerea CS\ high

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

EPROM

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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 pstra 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.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

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 pstra 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 ntreinere
(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 dect 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
reinerea informaiilor din circuit la ntreruperea alimentrii cu energie electric a
sistemului
Liliana Dobrica, Sisteme cu Microprocesoare
2013-2014

Memoria RAM
DRAM

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

10

Memoria RAM
DRAM - normal

DRAM refresh
Necesita hardware extern

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

11

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

12

Standarde JEDEC
Standardele JEDEC (Joint Electronic Device
Engineering Committe www.jedec.org) definesc
modul de funcionare a circuitelor de memorie actuale
(tipuri de circuite, organizarea pinilor, parametri de
funcionare etc.).
Prin intermediul acestora se asigur o compatibilitate
a utilizrii circuitelor de memorie n practic.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

13

Detectarea si corectia erorilor


Mecanismele de detectare a erorilor presupun stoparea operaiilor cu memoria
nainte ca informaii greite s fie utilizate n sistem. Corecia erorilor presupune
reconstruirea informaiilor greite, pe baza unor informaii redundante, chiar n
timpul funcionrii sistemului. Exist dou tipuri de erori: permanente (hard errors)
sau aleatoare (soft errors). Erorile permanente sunt cauzate de defecte hardware,
iar erorile aleatoare de interferene, desincronizri sau erori de program.
Una dintre metodele cele mai utilizate de detectare i corecie a erorilor se
bazeaz pe utilizare unor bii de paritate. n cele mai multe cazuri se utilizeaz
un singur bit de paritate pentru fiecare cuvnt de date din memorie. O astfel de
metod poate detecta erorile simple (modificare unui singur bit din cuvnt), nu i
erorile multiple, i nu poate corecta aceste erori. Pentru detectarea erorilor
multiple i corecia erorilor simple se poate extinde metoda bitului de paritate de la
nivel de cuvnt la nivel de bloc, pe lng bitul de paritate a fiecrui cuvnt se
utilizeaz i un bit de paritate la nivel de coloan a blocului de cuvinte.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

14

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

15

Detectarea si corectia erorilor

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

16

Detectarea si corectia erorilor

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

17

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
Verificarea se face prin adunarea si
este
0.
Date:de4 control
octeti in
hexa

verificarea cu 00 (se ignora transportul)

Calculeaza suma

Inverseaza si aduna 1 pentru a


obtine octetul sumei de control

Nu este intotdeauna adevarat:


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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

18

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

19

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


Liliana Dobrica, Sisteme cu Microprocesoare
2013-2014

20

10

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

21

Detectarea si corectia erorilor


Prin introducerea biilor de paritate la nivel de bloc de pot detecta erorile multiple
i pot fi corectate erorile simple.
Un standard de corecie bazat pe implementarea hardware a bitului de paritate la
nivel de cuvnt este ECC (Error Correction Code). Acest mecanism implic att
suport hardware la nivel de circuit de memorie, ct 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 nsumrii 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 oricror modificri a
informaiilor din respectivul bloc de date. Algoritmul de calculare a CRC-ului se
bazeaz pe interdependena polinomial a informaiilor i ofer o acuratee mai
mare de detectare a erorilor.
Liliana Dobrica, Sisteme cu Microprocesoare
2013-2014

22

11

Interfatarea cu circuitele de
memorie

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

23

Magistrala sistem
Orice sistem de calcul este format din UCP, sistem de memorie i porturi
de intrare / ieire (sistem I/O), acestea fiind prile componente de baz.
Mulimea conexiunilor (liniilor electrice) care interconecteaz UCP cu
sistemul de memorie i cu sistemul I/O se numete magistral sistem.
Aceasta are rolul de a permite schimbul de informaii (date) ntre UCP i
restul sistemului precum i de a transmite comenzile UCP ctre celelalte
componente ale sistemului.
Exist trei componente ale magistralei sistem: magistrala de adrese,
magistrala de date i magistrala de comenzi.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

24

12

Magistrala sistem

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

25

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

26

13

Decodificarea adreselor

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

27

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)

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

28

14

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

29

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

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

30

15

Interfatarea memoriei pentru microprocesoare pe


16 biti

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

31

Exemplu de decodificare a adreselor


Se d un sistem cu magistrala de adrese pe 16 bii, magistrala de
date pe 8 bii i un bloc de memorie de 16KB aflat la adresa 1000H.
Blocul de memorie este implementat utiliznd dou circuite SRAM
de 8K X 8. S se implementeze circuitul de decodificare a adreselor
pentru acest sistem.
Avnd n vedere c magistrala de adrese este pe 16 bii plaja de adrese
a sistemului este cuprins ntre 0000H i FFFFH. Dimensiunea maxim
a memoriei, magistrala de date fiind pe 8 bii, este de 64KB.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

32

16

Harta memoriei
Zon de Adres n
memorie hexa zecima l
0000H
Nealocat ...
0FFFH
1000H
Circuit 1 ...
2FFFH
3000H
Circuit 2 ...
4FFFH
5000H
Nealocat ...
FFFFH

Linii magistral de adrese


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

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

0
1

0
0

0
0

0
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

0
1

1
1

0
0

0
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

1
0

0
1

0
0

1
1

0
0

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

33

Analiza variatiei liniilor de adresa


Am reprezentat spaiul de adrese poziionnd cele dou circuite de memorie
ncepnd 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). Atenie, linia A12 trebuie negat
pentru a forma un spaiu coerent de memorie (0000H 1FFFH).
Liniile de adres A12, A13 i A14 fac diferenierea ntre adresele aflate n
circuitul 1 i adresele aflate n circuitul 2. Astfel pentru cnd funcia
A12*A13\*A14\+A12\*A13*A14\ este true adresele se afl n circuitul 1 iar
cnd funcia A12*A13*A14\+A12\*A13\*A14 este true adresele se afl n
circuitul 2.
Liliana Dobrica, Sisteme cu Microprocesoare
2013-2014

34

17

Stabilirea functiilor CS
Cu alte cuvinte putem conecta liniile magistralei de adrese sistem A0 A12 direct la intrrile de adrese ale
circuitelor (cu A12 -> /A12) i liniile A12, A13 i A14 le putem folosi ca semnale de selecie. Dac n
sistem nu se mai afl nici un alt dispozitiv mapat n acest spaiu de adrese este suficient utilizarea liniilor
A12-A14, dac mai exist i alte dispozitive trebuie s utilizm 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 coninutul adresei 1000H (cele
dou adrese difer exact prin linia de adres A15).
n cazul nostru funciile 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 funciile logice de selecie sunt prea complicate ele pot fi minimizate prin metode specifice
(teorema DeMorgan).
Dac modalitatea de variaie 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) funciei logice de
selecie.
n funcie de natura circuitului de memorie n logica de selecie 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

35

Posibila implementare
/WR
A12 A13

A14 A15

1
2
4

3 /WE

5
1
2

3 CS1

1
2
1

1
2

5
1

3 /OE

/RD

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

36

18

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 alctuiesc. Un prim exemplu de ierarhizare a memoriei l constituie
mprirea 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).
Apariia celui de al doilea nivel de memorie a fost argumentat de raiuni economice i
practice. Memoria primar este format din circuite electrice care nu permit stocarea
unor mari cantiti de informaii i care nu permit ntotdeauna stocarea informaiilor n
absena alimentrii 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 posibiliti de stocare de mari dimensiuni i cu faciliti de pstrare a datelor i
n absena alimentrii cu energie electric.

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

37

Memorie principala/
Memorie secundara

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

38

19

Niveluri de memorie

Microproces or
UCP
On-chip
cache

Regis trii

Timp (ns): 1s

10s

Cap(byte): 100s

Ks

On-board
Cache
(SRAM)

100s

Memorie
principala
(DRAM)

10000000s
10s ms
Ms

Memorie
de masa
(B anda
magnetica)

Memorie
secundara
(Hard-dis k)

Gs

10000000000s
10 sec
Ts

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

39

Principiul localitatii
S-a evideniat existena unui principiu, numit principiul localitii
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 secvene de instructiuni
Programele au bucle
Matricele sunt memorate n blocuri contigue
Datele nenrudite sunt plasate n acelai segment

Liliana Dobrica, Sisteme cu Microprocesoare


2013-2014

40

20

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