Sunteți pe pagina 1din 37

2. Circuite logice 2.11.

Memorii

Copyright Paul GASNER

Random Access Memory RAM


Toate circuitele secveniale depind de memorii
un flip-flop poate stoca doar un bit de informaie un registru poate stoca un cuvnt (pe 8, 16, 32 sau 64 bits)

RAM permite stocarea unor cantiti mult mai mari de memorie. Trebuie rezolvate urmtoarele probleme:
interfaarea cu memoria implementarea ierarhizarea cipurilor

Copyright Paul GASNER

RAM capabiliti
n general, o memorie trebuie s fie minimum capabil:
s stocheze o valoare s permit citirea valorii stocate s permit rescrierea valorii stocate

RAM trebuie s ndeplineasc cerinele de mai sus, dar avnd n vedere c stocheaz mai multe valori, deci se asociaz o adres fiecrei locaii de memorie i atunci se redefinesc cerinele: RAM trebuie s fie capabil:
s stocheze mai multe cuvinte, cte unul la fiecare adres s permit citirea cuvintelor stocate la orice adres s permit rescrierea cuvintelor stocate, indiferent de adres
Copyright Paul GASNER 3

Organizarea RAM operaii


memorie 2k x n
k n

ADRS DATA CS WR

OUT

CS 0 1 1

WR x 0 1

Operaie nimic citirea cuvntului selectat scrierea cuvntului selectat

CS (Chip Select) activeaz sau dezactiveaz RAM ADRS adresa (locaia) de memorie scris sau citit WR selecteaz citirea sau scrierea la adresa aleas
citire WR=0 i OUT este valoarea n-bit stocat la ADRS scriere WR=1 i valoarea n-bit de la DATA este stocat n memorie
Copyright Paul GASNER 4

Organizarea RAM capacitate


O memorie 2k x n prezint:
2k locaii de memorie k linii pentru accesarea adresei cuvntul stocat la o adres conine n bii
memorie 2k x n
k n

ADRS DATA CS WR

OUT

De exemplu, o memorie 224 x16 RAM conine 224=16M cuvinte, fiecare de lungime 16 bits
RAM are nevoie de 24 linii de adres capacitatea total de stocare este 224 x16=228 bii
Copyright Paul GASNER 5

Mrimi utilizate
K M G Prefix Baza 2 Kilo 210 = 1,024 Mega 220 = 1,048,576 Giga 230 = 1,073,741,824 Baza 10 103 = 1,000 106 = 1,000,000 109 = 1,000,000,000

O memorie 224 x16=228 bii = 224bytes=32MB Un sistem care utilizeaz 32 bii pentru adrese poate accesa aproximativ 4 miliarde de locaii
dac o locaie poate stoca un byte, atunci sistemul poate accesa 4GB RAM a nu se confunda RAM cu memoria virtual de pe HDD swap
Copyright Paul GASNER

Adres 00000000 00000001 00000002 00000003 ... ... ... ... ... ... ... ... ... ... FFFFFFFC FFFFFFFD FFFFFFFE FFFFFFFF

Date

Operaia de citire
Pentru a citi din memorie, circuitul de control (controller de memorie) trebuie s:
activeze cipul prin CS=1 selecteze operaia de citire WR=0 trimit adresa dorit pe magistrala de adrese ADRS citeasc coninutul adresei specificate la ieirea OUT

Intrarea DATA nu este utilizat la citire


memorie 2k x n
k n

ADRS DATA CS WR

OUT

Copyright Paul GASNER

Operaia de scriere
Pentru a citi din memorie, circuitul de control (controller de memorie) trebuie s:
activeze cipul prin CS=1 selecteze operaia de scriere WR=1 trimit adresa dorit pe magistrala de adrese ADRS trimit datele pentru stocare pe magistrala de date DATA

Ieirea OUT nu este utilizat la scriere


memorie 2k x n
k n

ADRS DATA CS WR

OUT

Copyright Paul GASNER

Memoria static
Exist mai multe ci de implementare hardware a RAM
memoria static utilizat n cache i video (cu excepia ultimelor generaii) memoria dinamic

Memoria static este construit cu ajutorul latch-urilor (la nivel de bit) i nu a flip-flop-urilor:
un latch necesit de cel puin 2 ori mai puine componente dect un flip-flop (are nevoie de 2 pori NAND sau NOR)
cu ct sunt mai puine componente, cu att circuitul este mai rapid, fr distorsiuni sau alte pierderi, mai fiabil i consum mai puin energie

rmne problema sincronizrii

Copyright Paul GASNER

Celula RAM 1 bit

Intrarea ADRS nu e necesar doar un singur bit Citirea:


dac CS=1 i WR=0, atunci C=0 i latch-ul D i pstreaz starea coninutul latch-ului aparea la ieirea OUT

Scrierea:
dac CS=1 i WR=0, atunci C=0 i latch-ul D i pstreaz starea coninutul latch-ului aprea la ieirea OUT

Copyright Paul GASNER

10

RAM 4 bit
Cip 4x1 RAM
ADRS are 2 bii Cuvintele conin doar 1 bit, deci DATA i OUT sunt pe 1 bit Selectarea celulei se face prin decodorul legat la porturile de activare CS pe baza adresei introduse Numai o singur celul poate fi scris sau citit la un moment dat
Copyright Paul GASNER 11

Conectarea ieirilor
Nu este recomandat conectarea ieirilor ntre ele, deoarece valori diferite ale acestora conduc la conflicte (logice i electrice) conflict

Combinarea ieirilor se realizeaz cu OR sau MUX

dar aceasta soluie presupune complicarea circuitului

Copyright Paul GASNER

12

Buffer 3 stri
EN 0 1 1 IN x 0 1 OUT Deconectat 0 1

Ieirea unui buffer 3 stri (three-state buffer) poate lua 3 valori, spre deosebire de porile clasice Deconectat semnific absena oricrui semnal la ieire, astfel nct OUT poate fi conectat n siguran la un alt semnal Stare deconectat este o stare de impedan ridicat

Copyright Paul GASNER

13

Conectarea bufferelor
Se pot interconecta ieirile bufferelor doar dac la un moment dat numai unul dintre ele este activ
dac decodorul este dezactivat, atunci toate bufferele sunt dezactivate i toate ieirile vor fi deconectate cnd decodorul este activat, doar un singur buffer este activ i valoarea de la intrarea sa va fi transmis la OUT

Copyright Paul GASNER

14

4x4 RAM

Copyright Paul GASNER

15

64K x 8 RAM => 256K x 8 RAM


16 8 8
16 8

18 linii la adrese
primii 2 bii cei mai semnificativi fiind la decodor i selecteaz celula de memorie ceilali 16 bii merg la cipurile de 64K

Cipurile 64K x 8 partajeaz intrrile WR i DATA


Copyright Paul GASNER

16

Domeniile de adrese
8

16

11 1111 1111 1111 1111 (0x3ffff) ... 11 0000 0000 0000 0000 (0x30000) 10 1111 1111 1111 1111 (0x2ffff) ... 10 0000 0000 0000 0000 (0x20000) 01 1111 1111 1111 1111 (0x1ffff) ... 01 0000 0000 0000 0000 (0x10000) 00 1111 1111 1111 1111 (0x0ffff) ... 00 0000 0000 0000 0000 (0x00000)

Copyright Paul GASNER

17

64K x 8 RAM => 64K x 16 RAM


Se pot stoca i cuvinte mai lungi:
cei mai semnificativi 8 bii n cipul din stnga cei mai puin semnificativi 8 bii n cipul din dreapta
8 16 8

Copyright Paul GASNER

18

Memorii dinamice
Memoriile dinamice folosesc condensatori pentru stocarea informaiilor
prezena sarcinii electrice semnific 1 logic absena sarcinii electrice semnific 0 logic

Consensatorii necesit rencrcare permanent de unde numele de memorie dinamic DRAM Memoria dinamic are dimensiuni fizice mult mai mici dect memoria static:
stocarea unui bit necesit un condensator i un tranzistor la memoria dinamic, pe cnd la cea static sunt necesari 4+6 tranzistori

Copyright Paul GASNER

19

SDRAM
Synchronous DRAM SDRAM Cipurile de memorie sunt organizate n module i conectate la CPU printr-o magistral de 64 bii (8 bytes) Viteza: PC66, PC100, PC133 aka 66MHz, 100MHz, 133MHz Limea de band:
PC100: 100MHz x 8bytes = 800MB/ s PC133: 133MHz x 8bytes = 1GB/s

Tensiune de alimentare 3.3V


Copyright Paul GASNER 20

DDR-RAM
Double Data Rate RAM Transferul de date se face foarte asemntor ca la SDRAM, dar se folosesc ambele fronturi (pozitiv i negativ) de la semnalul de ceas La un bus de 100-133MHz, memoria apare ca 200-266MHz
PC1600 = DDR 200MHz: 200MHz x 8bytes = 1600MB/s PC2100 = DDR 266MHz: 266MHz x 8bytes = 2100MB/s PC3200 = DDR 400MHz: 400Mhz x 8bytes = 3200MB/s

Tensiune de alimentare 2.5V


Copyright Paul GASNER 21

RDRAM
Rambus Dynamic RAM Utilizate Playstation2 i primele PC cu Pentium4 Busul de date este de 16 bii i memoria funcioneaz la 400MHz (ambele fronturi de ceas)
Rata de transfer de 1.6GB/s Duble channel 3.2GB/s

Tensiune de alimentare 2.5V

Copyright Paul GASNER

22

dinamic versus static


Memoria dinamic are dimensiuni foarte mici comparativ cu cea static Dezavantaje majore DRAM:
vitez mic (nu satisface necesarul procesorului) laten mare
Tip modul SD RAM, PC100 SD RAM, PC133 Rambus, PC800 Rambus, Dual PC800 DDR 266 (PC2100) DDR 333 (PC2700) DDR 400 (PC3200) DUAL DDR PC3200 DUAL DDR2-400 DUAL DDR2-533 transfer maxm 800 MB/sec 1064 MB/sec 1600 MB/sec 3200 MB/sec 2128 MB/sec 2664 MB/sec 3200 MB/sec 6400 MB/sec 8600 MB/sec 10600 MB/sec
Lime Maximum address bus RAM 20 1 MB 24 16 MB 32 4 GB

Pentru a mbunti viteza, procesoarele utilizeaz memorie static intern cache cu rolul de memorie tampon

Procesor 8088, 8086 80286, 80386SX 80386DX, 80486, Pentium, Pentium MMX, K5, K6 etc. Pentium Pro, Pentium II, III Pentium 4

36

64 GB

Copyright Paul GASNER

23

ROM
Read Only Memory ROM este un tip special de memorie, al crei coninut nu se modific (uzual)
nu prezint port de activare a scrierii WR ca la RAM stocarea datelor n ROM se efectueaz cu unelte speciale

Sunt utilizate pentru stocarea datelor permanente:


BIOS n PC-uri sisteme de operare PDA, telefoane, console de jocuri etc tabele matematice pentru sisteme de calcul
2k x n ROM
k

ADRS CS

OUT

Copyright Paul GASNER

24

ROM. Funcii
ROM este un circuit combinaional, nu secvenial Poate fi privit ca un circuit combinaional care are la intrare adresa locaiei de memorie, iar la ieire coninutul locaiei respective Tabela ROM prezint coninutul memoriei, adic datele stocate la fiecare adres Tabela ROM este ca o tabel de adevr i se poate construi un circuit combinaional pe baza acesteia
Copyright Paul GASNER

Adresa A2A1A0 000 001 010 011 100 101 110 111

Data V2V1V0 000 100 110 100 101 000 011 011

25

ROM cu decodoare
Tabela de adevr poate fi convertit n circuit clasic combinaional cu decodoare
X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 C S 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1

Poate fi privit ca o memorie care stocheaz suma i bitul de depire conform tabelei de adevr
Copyright Paul GASNER 26

Arhitectura ROM
ntr-adevr, ROM-urile se bazeaz pe implementarea cu decodoare a funciilor
un ROM nescris (blank) este o colecie de decodoare i pori OR conexiunile dintre intrrile porilor i ieirile decodoarelor sunt programabile

A scrie sau programa un ROM nseamn realizarea conexiunilor dorite ntre decodor i pori

Copyright Paul GASNER

27

Exemplu ROM
Un ROM 8x3 pentru implementarea funciilor V2V1V0

V2 = m(1,2,3,4)

V1 = m(2,6,7)

V0 = m(4,6,7)

Copyright Paul GASNER

28

Exemplu ROM
Un ROM 8x3 pentru implementarea funciilor V2V1V0

A2 A1 A0

V2 = m(1,2,3,4)

V1 = m(2,6,7)

V0 = m(4,6,7)

Copyright Paul GASNER

29

... sau prescurtat...


Un ROM 8x3 pentru implementarea funciilor V2V1V0

A2 A1 A0

V2= m(1,2,3,4) V1 = m(2,6,7) V0= m(4,6,7)

V2

V1

V0

Copyright Paul GASNER

30

... sau prescurtat


Un ROM 8x3 pentru implementarea funciilor V2V1V0
Adresa A2A1A0 000 001 010 011 100 101 110 111 Data V2V1V0 000 100 110 100 101 000 011 011

A2 A1 A0

V2= m(1,2,3,4) V1 = m(2,6,7) V0= m(4,6,7)

V2

V1

V0

Copyright Paul GASNER

31

Matrici logice programabile PLA


Un ROM nu este optimizat, decodorul genereaz toi mintermenii posibili Pentru a implementa o funcie cu n intrri sunt necesare:
un decodor nx2n care conine n inversoare i 2n pori AND fiecare cu n intrri o poart OR cu 2n intrri numrul de pori se dubleaz la fiecare intrare suplimentar

O matrice programabil programmable logic array PLA nglobeaz decodorul n partea programabil a ROM i se aleg doar produsele necesare implementrii funciei (nu neaprat mintermeni)
Copyright Paul GASNER 32

Un PLA 3x4x3 neprogramat


PLA 3x4x3 = 3 intrri + 4 produse + 3 ieiri chenarul reprezint decodorul din RAM conexiunile se realizaz n AND array pentru a obine doar 4 mintermeni (nu toi 8) produsele se sumeaz n OR array
Copyright Paul GASNER

Inputs

OR array

AND array

Outputs

33

Optimizarea PLA cu K-map


Optimizarea clasic utiliznd diagrame Karnaugh ar duce la obinerea a 6 produse diferite pentru cele 3 funcii
V2 V1 V0
0 1 1 0 Z Y 1 1 0 0
0 0 0 0 Z Y 0 1 1 1

0 1

0 0 Z

Y 0 0 1 1

V2= m(1,2,3,4) V1 = m(2,6,7) V0= m(4,6,7)

Copyright Paul GASNER

34

Optimizarea PLA cu K-map


Pentru PLA se ncearc minimizarea pentru toate funciile mpreun
V2 = xyz + xz + xyz
0 1 1 0 Z Y 1 1 0 0

V1 = xyz + xy
0 0 0 0 Z Y 0 1 1 1

V0 = xyz + xy
0 1 0 0 Z Y 0 0 1 1

V2= m(1,2,3,4) V1 = m(2,6,7) V0= m(4,6,7)

Copyright Paul GASNER

35

Exemplu PLA
A2 A1 A0

xyz xy xz xyz V2 = m(1,2,3,4) = xyz + xz + xyz V1 = m(2,6,7) = xyz + xy V0 = m(4,6,7) = xyz + xy

V2

V1

V0

Copyright Paul GASNER

36

PLA. Concluzii
PLA k x m x n are k linii pentru adres, 2k locaii fiecare stocnd un cuvnt pe n bii PLA k x m x n poate implementa n funcii cu k intrri; funciile trebuie s poat fi exprimate prin maximum m termeni produs PLA nu permite stocarea tuturor valorilor posibile Deoarece se pot alege produsele generate, PLA are un numr mult mai mic de pori logice i intrri n pori dect ROM ROM poate implementa toate funciile posibile cu k intrri, nu i PLA Implementarea unei funcii cu memorii reduce practic la zero timpul de calcul
Copyright Paul GASNER 37

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