Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Proiectare cu Microprocesoare
Curs 11 – Interfaţarea memoriei
An 3 CTI
An universitar 2018/2019
Semestrul 1
Lector: Radu Danescu
Ierarhia tipică a memoriilor
Second
Level
Cache
(SRAM)
Control
Datapath
Secondary
Memory
(Disk)
On-Chip Components
RegF
ile
Main
Memory
(DRAM)
Da
ta
Cache
Instr
Cache
ITLB
DT
LB
Viteza (ns): .1 1 10 100 1000
Dimensiune(bytes): 100 10K 100K … M’s 100M … G 100G …T
Cost/capacitate: maxim minim
Clasificarea memoriilor
Read Write (RWM) NVRWM ROM
Random Access Non-Random
Access
EPROM Mask-prog.
ROM
SRAM (cache, registri)
DRAM (memoria principala)
FIFO, LIFO
Registru de
deplasare
EEPROM
FLASH Electrically-
prog. PROM
Clasificare după funcţionalitate şi mecanism de stocare
– Statică sau dinamică, volatilă sau nonvolatilă (NV); read only (ROM)
Clasificare după modul de acces
– aleator, serial, adresabil prin conţinut
Clasificarea memoriilor
Configuraţia generală a pinilor
Pini de adresa
N pini de adresă numărul locaţiilor de memorie = 2N
Pini de date
M dimensiunea cuvântului din locaţia de memorie
Bidirecţionali, ieşire 3-state (#OE)
Pini de control
Chip select/enable activează dispozitivul
Read (#OE) /write (#WE) selecţia operaţiei
Arhitectura memoriei
Nu se rezolvă problema raportului dintre lăţimea şi lungimea tabloului
Această organizare este foarte lentă, deoarece firele verticale sunt foarte
lungi
Organizare liniară (1D)
Arhitectura memoriei
Dimensiunea verticală şi cea orizontală sunt de obicei similare
Mai multe cuvinte sunt stocate pe aceeaşi linie
Organizare 2-d
ROM/EPROM
ROM/EPROM
Temporizarea pe magistrală (8086)
Timpul maxim de acces la memorie = 3T-TCLAV-TDVCL. De fapt timpul de
acces trebuie să fie mai mic deoarece vor exista întârzieri de propagare
ROM/EPROM
Domeniul de adrese: FF800h - FFFFFh
ROM/EPROM
8088, min.mode, EPROM 8 x 2732 = 8 x 4kB = 32 KBytes
Organizarea adreselor: 0: F8000- F8FFF; 1: F9000- F9FFF; …..
7: FF00-FFFFF
• acces EPROM (450ns) + intarziere decoder (12ns) > timp
acces 8088
• se foloseste o stare de asteptare (1 clock = 200ns): timp total
de acces 460+200=660 ns
ROM/EPROM
8088: 8 x 2764 = 8 x 8kB = 64 KB
Spatiul de adrese: F0000 – FFFFF
Decodificatoare de adrese
Toate cele trei semnale Enable (G2A, G2B şi G1) trebuie să fie active (0, 0 şi 1)
Conectarea memoriilor
Conectarea paralela: extinde
adâncimea memoriei
Conectarea seriala: extinde
lăţimea cuvântului
Conexiunea la o magistrala de 16 biti (8086)
RAMStatic (SRAM)
SRAM
Pini similari cu cei ai EPROM-ului, cu excepţia semnalului de scriere
Timp de acces mai rapid
Folosit pentru memorii Cache
SRAM
Conectare cu magistrale de 16, 32 …. biţi
Nu există probleme la citire:
• Memoria va pune pe magistrală tot cuvântul (16 biţi, 32 biţi …)
• CPU citeşte byte-ul sau cuvântul dorit (BL, BH, BH+BL…)
(Ex: MOV AL, mem ; MOV AH, mem; MOV AX, mem)
Scrierea trebuie tratată separat pentru fiecare byte:
• LWR, HWR
Exemplu:
DRAMDynamic (DRAM)
Dimensiune: ½ din dimensiunea celulei SRAM capacitate sporită
pinii de adresă sunt multiplexaţi
Refresh (reîmprospătare): 1 .. 4 msec circuit dedicat
cicluri de citire, scriere, refresh
Variaţii: SDRAM, DDRAM, Rambus, …
DRAM
TMS4464 poate stoca 256K biţi de date
64 locaţii adresabile – necesită 16 linii de adresă, dar are numai 8
Adresa rândului (A8:A15) este plasată pe pinii de adresă, şi memorată în
latch-uri interne, folosind semnalul RAS
Adresa coloanei (A0:A7) este memorată ulterior, folosind semnalul CAS
DRAM
#RAS & #CAS trebuie transmise de un controller DRAM
Controllerul DRAM trebuie să multiplexeze (în timp) liniile de adresă, ca:
• Adresa rândului (ex. A8-15)
• Adresa coloanei (ex. A0-7)
DRAM
256K X 1 DRAM – structura internă
DRAM refresh
Ciclu special de refresh
- Se petrece transparent când sunt folosite alte componente –transparent
refresh sau cycle stealing.
- Un ciclu ce foloseşte doar RAS încarcă o adresă a rândului în DRAM
- Condensatorii rândului selectat sunt reîncărcaţi prin citirea internă a biţilor şi
scrierea lor înapoi.
Exemplu:
256K X 1 DRAM (256 rânduri x 256 coloane x 4 blocuri)
refresh este necesar la fiecare 15.6ms (4ms/256).
Pentru 8086, o citire sau o scriere se petrece la fiecare 800ns (4x200=4xTclk).
19 citiri/scrieri per refresh (15.6ms/0.8ms = 19.5)
Ciclurile de citire /scriere iau 5% din timpul de refresh
Controllere DRAM Multiplexarea adreselor si generarea
semnalelor de control pentru DRAM.
Intel 82C08, poate controla doua bancuri de memorie DRAM 256K X 16 , pentru un total de 1 MB.
Biţii A1 - A18 (18 biţi) sunt conectaţi la intrările (AL - coloană) si (AH - linie) ale82C08.
În funcţie de adresă, se activeazăRAS0/CAS0 sau RAS1/CAS1.
WE, BHE si A0 sunt folosiţi pentru determinarea scrierii, şi unde anume se va scrie.
Controllere DRAM
Folosirea PAL pentru logica interfaţării memoriei
Decodificarea adresei:
• Controllerul DRAM este activat atunci când liniile superioare de adresă
indică spaţiul DRAM (de obicei începe de la 0)
• PE (port enable) va fi activat de logica de decodificare a adresei
Comandă scriere octet superior sau inferior:
• Low write (LWR), High write (HWR)
Un singur chip 16L8 poate implementa toate aceste funcţii:
Controllere DRAM