sd09-Memorias - ICA - PUC-Rio

Transcrição

sd09-Memorias - ICA - PUC-Rio
PUC-Rio
Memórias: ROM, RAM, DRAM
1
Classificação de Memórias
Semicondutoras
PUC-Rio
• Volatilidade
– Volátil e Não Volátil
• Acesso
– Leitura e Escrita ou Somente Leitura
• Tipos
– RAM
– DRAM
– ROM
– PROM
– EPROM
– E2PROM
– FLASH
Random Access Memory (static)
Dynamic RAM
Read Only Memory
User-Programmable ROM
Erasable PROM
Electrically EPROM
Flash E2PROM
2
Classificação de Memórias
Semicondutoras
PUC-Rio
• Tecnologia
– Bipolar
– CMOS
Transistores Bipolares (npn, pnp)
Complementary Metal Oxide Silicon
• Estrutura de Acesso
– Aleatório
– Disciplinado (pilha, fila, etc)
• Endereçamento
– bit, byte, bloco
3
PUC-Rio
Características Importantes
• Capacidade:
mega bits, bytes
– Ex: 1024 bits
• Organização:
M palavras de N bits
– Ex: 1024x1 , 256x4 bits
• Tempo de Acesso:
nano segs
• Consumo/Dissipação:
m amp
• Densidade de Integração: área do chip, # gates
Bipolar
CMOS
Capacidade
baixa
alta
Velocidade
alta
média/alta
Consumo
alto
baixo
Densidade
baixa
alta
4
PUC-Rio
Estrutura Básica de Chips de Memória
A1
Sinais de A2...
Endereço
células
D1
An-1
D2...
Memória
Dados
Dn-1
Sinais de
Controle
R/W
CS
5
PUC-Rio
ROM - Read Only Memory
• Pré-gravadas: modo permanente ou semi-permanente
• Não volátil
• n sinais de endereço; 2n palavras de b bits
6
PUC-Rio
Porque memória “ROM”?
• Armazenamento de Programas
– Boot ROM de computadores pessoais
– Programas residentes em equipamentos, jogos, etc.
• ROM é um circuito combinacional: truth-lookup
table
– pode executar qualquer função combinacional lógica
– Endereço = entradas da função
– Saídas = saídas da função
7
PUC-Rio
Estrutura Interna da ROM
• ROM = decodificador + codificador
A0
endereço
2n
dados
b bits
An-1
Decodificador
Codificador
8
PUC-Rio
ROM
implementando:
Decodificador 2-to-4 c/
controle de polaridade
da saída
decodificador
codificador
9
PUC-Rio
Multiplicador
4x4
End=36
X=6; Y=3
Endereço
Conteúdo
P=18=12H
10
PUC-Rio
Estrutura
interna
da ROM
11
Decodificação em duas dimensões:
PUC-Rio
reduz complexidade decodificador
12
PUC-Rio
32Kx8 ROM
13
PUC-Rio
ROMs modernas
• 256K bytes, 1M byte, ou maior
• Usa transistores MOS como chaves
14
Tipos de ROM
• ROM
PUC-Rio
Read Only Memory
– programada na fábrica através da metalização nos pontos
de interconexão dos diodos
• PROM
User-Programmable ROM
– programada pelo usuário (alta corrente) através da
queima de fusível (desliga diodo); não permite alterações
• EPROM
Erasable PROM
– programada eletronicamente; exposição a luz ultra violeta
apaga o conteúdo
• E2PROM
Electrically EPROM
– apagada e escrita eletronicamente, byte a byte
• FLASH
Flash E2PROM
– apagada eletronicamente todo o conteúdo de uma vez15
PUC-Rio
EPROM
• possui floating gate MOS transistor em cada bit;
• floating gate é não conectado e está cercado de
material de altíssima impedância;
• alta voltagem aplicada aos bits que devem ser 0,
rompe isolante e armazena carga negativa no floating
gate;
• carga negativa previne que o transistor MOS
conduza nas operações de leitura;
• carga pode permanecer por 10 anos ou removida por
15-20 minutos de luz ultra violeta (bit=1);
• chip possui janela de vidro para exposição à luz;
16
PUC-Rio
Estrutura da EPROM
floating gate é não conectado e está
cercado de material de altíssima
impedância
carga negativa previne que o
transistor MOS conduza nas
operações de leitura
17
PUC-Rio
EPROMs Comerciais - Chips 28 pinos
18
PUC-Rio
EEPROMs, Flash PROMs
• Semelhante a EPROM porém, bits podem ser apagados
eletronicamente com VPP = 12 V
• Floating-gate MOS transistors possuem camada fina de
isolante que permite eliminar a carga através de tensão de
polaridade oposta;
• Pode ser reprogramada 10000 vezes;
• Escrita demora muito mais que leitura: milliseconds vs.
dezenas de nanosegundos;
• Apagar
– Byte-byte
– Chip inteiro (“flash”)
• FLASH PROM pode ser apagada de uma só vez,
aproximando-se de um “RAM” não volátil.
19
PUC-Rio
ROM:
Sinais
de
Control
e E/S
Chip Select
Output Enable
20
EPROM em Microprocessadores
PUC-Rio
128Kx8 localizada no
extremo
A19=A18=A17=1
21
PUC-Rio
Espaço de Endereçamento
• Corresponde à capacidade de endereçamento
(direto ou indireto) de um processador: 2n
• Representado pelos n sinais de endereço: Ai
An-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
....
....
....
....
....
....
....
....
....
....
....
....
....
....
....
A19
0
0
0
0
0
0
0
0
0
0
0
0
0
1
A18
0
0
0
0
0
0
0
0
0
0
0
0
1
A17
0
0
0
0
0
0
0
0
0
0
0
1
A16
0
0
0
0
0
0
0
0
0
0
1
A15
0
0
0
0
0
0
0
0
0
1
A14
0
0
0
0
0
0
0
0
1
A13
0
0
0
0
0
0
0
1
A12
0
0
0
0
0
0
1
A11
0
0
0
0
1
1
A10
0
0
0
1
0
1
A9
0
...
1
....
0
...
1
A0
0
...
1
22
1K
2K
3K
4K
8K
16K
32K
64K
128K
256K
512K
1M
2n
PUC-Rio
Operação da EPROM
Read
Output Disable
Standby (35 ma)
Program
CE_L
0
0
1
0
OE_L/VPP
0
1
X
VPP
VCC
5v
5v
5v
5v
OUTPUT
Dout
Z
Z
Din
23
PUC-Rio
ROM - Diagramas de Tempo
• Leitura
•
•
•
•
•
tAA - access time from address
tACS - access time from chip select
tOE - output-enable time
tOZ - output-disable time
tOH - output-hold time
24
Definição do Tempos
PUC-Rio
• tAA - access time from address
– delay entre endereços estáveis e saídas válidas
• tACS - access time from chip select
– delay entre CS e saídas válidas
• tOE - output-enable time
– delay entre OE e CS ativados, até 3-states de saída sairem
de alta impedância
• tOZ - output-disable time
– delay entre OE e CS desativados, até 3-states de saída
entrarem em alta impedância
• tOH - output-hold time
– delay no qual as saídas continuam válidas após mudar
25
endereço ou após desativar CS e OE
PUC-Rio
Projeto
• Projete um circuito para a geração e
visualização em matrizes 8x8 LEDs dos
caracteres de A a D, utilizando ROM (32x8).
– Neste esquema cada caracter é representado por n
(8) posições consecutivas da ROM: bit=1 significa
pixel aceso.
– O circuito deve exibir a cada instante um caracter
indicado pelo seu código (2 bits) fornecido ao circuito.
– As saídas da ROM devem acionar uma linha da
matriz de LEDs a cada ciclo de varredura.
26
PUC-Rio
Projeto
• Sugestão: código caracter= end. alto;
contador(8)= end. baixo; conteúdo EPROM=matriz
de pixels;
• ROM é lida continuamente, palavra a palavra;
• Cada 8 palavras consecutivas referem-se a 8
linhas da matriz de um caracter;
• Palavras subsequentes acionam linhas
subsequentes na matriz;
• Somente uma linha está ativa (acesa) a cada
ciclo;
• A sensação visual corresponde a forma do
caracter.
27
PUC-Rio
RAM-Memória de Leitura/Escrita
• “RAM” (Random Access Memory)
• Volatilidade
– RAMs perdem seu conteúdo quando alimentação é
removida
– NVRAM = RAM + bateria (non-volatile RAM)
• SRAM (Static RAM)
– Memória comporta-se como latches
• DRAM (Dynamic Memory)
– Conteúdo da memória mantem-se por apenas
alguns milisegundos
– É preciso “refrescar” posições através de leitura ou
escrita
28
PUC-Rio
SRAM
Chip Select
Output Enable
Write Enable
(read/write_L)
29
PUC-Rio
Operação da SRAM
• Células de bits são latches tipo D, não
flip-flops edge-triggered tipo D.
– conteúdo (Q) é sensível a entrada (D)
– poucos transistores por célula.
• Implicações para operações de escrita:
– Endereços devem estar estáveis antes de escrever.
– Dado deve permanecer estável até o final da escrita.
30
PUC-Rio
SRAM:
Estrutura
Interna
31
PUC-Rio
SRAM:
Linhas de
controle
• Chip select
• Output enable
• Write enable
32
PUC-Rio
SRAM - Leitura
• Similar a ROM
tRC
•
•
•
•
•
•
tAA - access time from address
tACS - access time from chip select
tOE - output-enable time
tOZ - output-disable time
tOH - output-hold time
tRC - read cycle time
33
PUC-Rio
SRAM - Escrita
tWC
•
•
•
•
•
•
•
tAS - address setup time before write
tAH - address hold time after write
tCSW - chip select setup before end of write
tWP - write pulse width
tDS - data setup time before end of write
tDH - data hold time after end of write
tWC - write cycle time
• Endereço deve estar estável antes
e depois do acionamento de writeenable.
• Dado é armazenado na subida de
(WE & CS).
34
PUC-Rio
Definição do Tempos
• tAS - address setup time before write
– endereço deve estar estável antes de CS e WE
senão posições imprevisíveis podem ser alteradas
• tAH - address hold time after write
• tCSW - chip select setup before end of write
• tWP - write pulse width
– tempo durante o qual WE deve estar acionado para
o armazenamento confiável do dado na célula
• tDS - data setup time before end of write
• tDH - data hold time after end of write
• tR/WC - read/write cycle time
– duração de um ciclo completo de leitura/escrita
35
PUC-Rio
Dados bidirecionais
• Usa os mesmos sinais para leitura e escrita
– mais comum em RAM de vários bits
– compatível para uso com barramentos bidirecionais
de microprocessadores
36
PUC-Rio
Chips SRAM
• Similar aos chips ROM
8kx8
32kx8, 28-pin DIPs 128kx8
512kx8 32-pin DIPs
37
PUC-Rio
2114
1024 x 4 bit
Static RAM
38
PUC-Rio
Diagrama de Tempo
39
PUC-Rio
Diagrama de Tempo
40
PUC-Rio
Exemplo
• Projete uma placa de memória estática (chips +
decodificação de endereço) contendo 16K x 8 bits,
usando os chips:
– 1o. caso: 2114 (1024 x 4 bits)
– 2o. caso: 2147 (4096 x 1 bit)
• Capacidade total da placa = 128K bits
• Número de chips necessários:
– 1o. Caso = 32
– 2o. Caso = 32
• use 1 RAM 1K no lugar da 2114 e 4 RAM 1K
no lugar da 2147; despreze bits.
41
PUC-Rio
Solução
1o. Caso
(16Kx16)
U7
74LS154
A13
A12
A11
A10
E1
E0
A3
A2
A1
A0
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
R/W
U1
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
U3
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
U5
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
U2
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
U4
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
U6
RAM1K
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
CS
WE
IO7
IO6
IO5
IO4
IO3
IO2
IO1
IO0
42
PUC-Rio
Projeto
• Projete uma placa de memória RAM estática
de 32K x 9bits - 8 bits de dados, com
armazenamento e verificação de paridade (1
bit).
• Sugestão:
– veja exemplo na aula de XOR;
– use a RAM 1K e implemente 32Kx16 bits (haverá
desperdício de 7 bits)
43
PUC-Rio
DRAM (Dynamic RAMs)
• SRAMs tipicamente usam 6 transistores por célula
de um bit.
• DRAMs usam apenas um transistor por bit: há mais
memória por área de silício
• conteúdo 1/0 equivale à carga/descarga do
capacitor do gate
capacitor
equivalente
do gate do
1-bit cell
transistor
44
PUC-Rio
DRAM - Operação
S1
S2
Operação
Write
Read
Refresh
S1
close
close
close
S2
open
close
close
S3
open
close
close
Rfuga
Cgate
Ampl
Comparador
-
S3
IN
Circuito comum a
cada coluna da matriz
+
Vref
OUT
45
PUC-Rio
DRAM - Leitura
– Pré-carga de bit line até VDD/2.
– Faz word_line = HIGH.
– Detecta se há passagem de corrente de/para a célula
(se carga < ou > VDD/2).
– Conteúdo da célula é destruído na leitura.
– Bit deve ser re-escrito de volta.
46
PUC-Rio
DRAM - Escrita
– Faz word line = HIGH.
– Faz bit line = LOW ou HIGH para armazenar 0 ou 1.
– Faz word line = LOW.
– A carga armazenada para nível 1 vai eventualmente
vazar.
47
PUC-Rio
DRAM - Fuga de Carga
• DRAM típica requer que cada célula seja
refrescada uma vez a cada 4 a 64 ms.
48
PUC-Rio
Operação da DRAM: RAS/CAS
• DRAM de 2n posições de b bits
• Sinais:
– RAS: Row Address Strobe,
– CAS: Column Address Strobe
• n sinais de endereço são fornecidos ao chip de DRAM em 2
passos, usando n/2 pinos apenas:
– 1o. Passo:
endereço de linha na descida de RAS_L
– 2o. Passo:
endereço de coluna na descida de CAS_L
• Método tradicional de operação de DRAM por 20 anos.
• CAS_L faz papel de chip select
49
PUC-Rio
DRAM-Organização Interna
64K x 1
DRAM
Seleção de
todas as
células da
mesma linha
256
C
A0-A7
C
C
C
C
Matriz de
Células:
Circuito
comum às
colunas
A8-A15
Leitura do bit
selecionado
pelo end. de
coluna
50
PUC-Rio
Refresh
• Células são organizadas em vetores:
– seleção de uma linha, efetua o refresh de todas os
bits da linha
• Exemplo: 2116 16Kx1bit DRAM
– 128 linhas x 128 colunas
– Trefresh = 2 ms; Taccess = 500 ns
– requer 128 ciclos de refresh de duração de 500 ns
– 1 ciclo de refresh a cada 2/128 = 15,6 µs
– durante refresh processador fica em WAIT
1o.
ciclo
t
500 ns
15,6 µs
2o.
ciclo
500 ns
15,6 µs
t + Tref
500 ns
51
PUC-Rio
DRAM - Leitura
52
PUC-Rio
DRAM - refresh
53
PUC-Rio
DRAM - Escrita
54
PUC-Rio
Outros tipos de Ciclos
• CAS-before-RAS
– se CAS é acionado antes de RAS, chip refresca linha
selecionada por um contador interno e incrementa
contador; simplifica projeto; elimina contador de refresh
externo.
• read-modify-write
– leitura seguida de escrita da mesma posição
• page-mode-read
– permite que uma linha inteira (page) seja lida mantendose RAS low e pulsando-se CAS; acesso mais rápido a
dados que estão próximos
• page-mode-write
– escrita, similar a page-mode-read
55
PUC-Rio
Outros tipos de Ciclos
• static-column-mode read
– similar a page mode; end. de coluna não é armazenado
na DRAM; assim, outro bit da mesma coluna pode ser
lido, mudando-se o end. de coluna sem pulsar CAS.
• static-column-mode write
– escrita, similar a static-column-mode read; é necessário
negar CAS ou WE na mudança de endereço.
• nibble-mode read
– similar a page-mode; o chip de DRAM gera uma
sequência de endereços a partir do endereço fornecido no
início do ciclo RAS-CAS;
• nibble-mode write
– idem, write
56
PUC-Rio
Outros Tipos de DRAM
• EDRAM: Enhanced DRAM
• CDRAM: cache-DRAM
• SDRAM: Synchronous DRAM
• RDRAM: Rambus DRAM
57
PUC-Rio
Símbolos Lógicos de DRAMs
5
7
6
12
11
10
13
9
2
4
15
3
64K ×1
256K ×1
64K ×4
1M ×1
256K ×4
4164
4256
4464
41000
44256
A0
A1
A2
A3
A4
A5
A6
A7
DIN
RAS
CAS
WE
5
7
6
12
11
10
13
9
DOUT
14
1
2
4
15
3
A0
A1
A2
A3
A4
A5
A6
A7
A8
DIN
RAS
CAS
WE
14
13
12
11
8
7
6
10
5
DOUT
14
16
4
1
A0
A1
A2
A3
A4
A5
A6
A7
RAS
CAS
WE
OE
5
6
7
8
2
DIO1
3
DIO2
15
DIO3
17
DIO4
10
11
12
13
14
15
1
3
16
2
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
DIN
RAS
CAS
WE
6
7
8
9
11
12
13
14
15
4
DOUT
17
17
3
16
A0
A1
A2
A3
A4
A5
A6
A7
A8
RAS
CAS
WE
OE
1
DIO1
2
DIO2
18
DIO3
19
DIO4
Copyright © 2000 by Prentice Hall, Inc.
Digital Design Principles and Practices, 3/e
58

Documentos relacionados