Você está na página 1de 59

Eletrônica Digital

Prof. Gilson Yukio Sato


sato[at]utfpr[dot]edu[dot]br
Memórias Semicondutoras
Prof. Gilson Yukio Sato
sato[at]utfpr[dot]edu[dot]br
Memórias Digitais
• Magnética
– Fitas K7, discos 3½’, etc
• Ótica
– CDs, DVDs, etc
• Semicondutoras
– Chips de memória
Importância das Memórias
• O microprocessador precisa armazenar
instruções e dados

µP Memória Principal
(semicondutora)

Memória Auxiliar
(magnética, ótica)
Tipos de Memórias
Semicondutoras
• ROM
– Mask
– PROM
– EPROM
– EEPROM/E2PROM
– Flash
• RAM
– Dinâmica (DRAM)
– Estática (SRAM)
ROM
• ROM (Read Only Memory)
– Memória somente para leitura
– Dados não voláteis
• Não voláteis = os dados não são perdidos
quando a memória está sem alimentação
– Armazenamento de programa para µP
• Dados presentes quando da alimentação do
sistema µP
ROM Mask
• ROM programada por máscara
– Programada pelo fabricante
– Não pode ser apagada ou reprogramada
– Custo baixo para grandes quantidades

• Máscara
– Especificada pelo cliente
(Tocci, 2007)
PROM
• Programmable ROM
– OTPROM (One Time Programmable ROM)
– Pode ser programada pelo usuário
(gravador/programador de memória)
– Não pode ser apagada ou reprogramada
• Fusíveis como conexão
– Programação = queima de fusíveis
PROM

(Tocci, 2007)
EPROM
• Erasable Programmable ROM
– UVEPROM (Ultra-Violet EPROM)
– Pode ser programada, apagada e
reprogramada pelo usuário
(gravador/programador de memória)
– Apagamento não seletivo
• Transistores MOS com porta flutuante
– Porta flutuante controla fluxo de cargas
EPROM

Veja animação no site: http://www.howstuffworks.com/rom4.htm


EPROM

Retirado do site: http://www.clubedohardware.com.br/dicionario/termo/350


EPROM

Retirado do site: http://www.cpushack.net/EPROM.html


EPROM

(Tocci, 2007)
EEPROM
• Electrically Erasable PROM
– Pode ser programada, apagada e
reprogramada no próprio circuito
– Apagamento seletivo (bytes)
– Pode ser usada como uma RAM não volátil
– Construção complexa / baixa densidade
– Maior custo
– Processo de programação lento
EEPROM

(Tocci, 2007)
FLASH
• Flash
– Pode ser programada, apagada e
reprogramada no próprio circuito
– Apagamento por blocos
– Pode ser usada como uma RAM não volátil
– Construção mais simples que EEPROM
– Custo menor que EEPROM
– Velocidade maior que EEPROM
Flash

(Tocci, 2007)
Comparação entre ROMs

(Tocci, 2007)
Aplicações ROM
• Sistemas microprocessados
– Armazenamento de programa
• Transferência de dados e portabilidade
– Pen drive, MP3 players, PDAs
• Memória bootstrap
– BIOS de PCs
• Tabelas de dados
• Conversor de dados
RAM
• RAM (Random Access Memory)
– Memória de leitura e escrita
• RWM (Read Write Memory)
– Dados voláteis
• Voláteis = os dados são perdidos se a memória
fica sem alimentação
– Armazenamento de dados
• Dados temporários
SRAM
• Static RAM (RAM estática)
– Dados são mantidos enquanto houver
alimentação
– Não necessita de refresh como a DRAM
– Cada célula é um FF
– Ciclo de leitura e escrita rápido
SRAM

(Tocci, 2007)
DRAM
• Dynamic RAM (RAM dinâmica)
– Armazenam os dados sob a forma de
carga de capacitor
– Necessita de refresh, pois os capacitores
precisam ser periodicamente recarregados
– Alta densidade
DRAM

Escrita → SW1 e SW2 ON


Leitura → SW2, SW3 e SW4 ON

(Tocci, 2007)
Estrutura Interna Genérica
Célula Uma Célula armazena um bit
Dn-1 Dn-2 D1 D0 (FF)
Registro
0 O Registro é um conjunto de
n bits
n Células
1
Cada Registro ocupa uma das
m Posições de Memória
Posição de Cada Posição de Memória é
Memória acessada através de um
m-1 Endereço (A)
O Endereço (A) é uma
palavra de k bits tal que:
m = 2k
Exemplo

Representação de uma memória cujo registro é de n = 4 bits e que


possui m = 8 posições de memória

D3 D2 D1 D0 A2 A1 A0
Se m = 8 então:
0 0 1 1 1 0 0 0
8 = 2k
1 1 1 0 1 0 0 1
0 0 1 Tal que:
2 0 0 1 0
3 1 1 0 0 0 1 1 k=3

4 0 1 1 1 1 0 0
5 0 0 0 0 1 0 1
6 1 0 1 0 1 1 0
7 0 1 1 0 1 1 1
Pinagem Genérica
EPROMs, EEPROMs, Flashes, SRAMs

mxn
A0
k linhas de A1
endereço D0
D1 n linhas de
Ak-1
dados
CS Dn-1
linhas de
controle RD
WR
Pinagem Genérica
• A0~Ak-1: linhas de endereço capazes de
endereçar m posições de memória
• D0~Dn-1: linhas de dados para leitura e
escrita de dados na memória
• CS’: Chip Select – habilita a operação da
memória (ME’)
• RD’: Read – deve ser ativada para indicar
uma leitura (OE’)
• WR’: Write – deve ser ativada para indicar
escrita (não existe para ROM, PROM,
EPROM)
Exemplo

D3 D2 D1 D0 A2 A1 A0
8x4 0 0 1 1 1 0 0 0
A0 1 1 1 0 1 0 0 1
A1
A2 D0 2 0 0 0 1 0 1 0
D1
D2 3 1 1 0 0 0 1 1
D3 4 0 1 1 1 1 0 0
CS 5 0
0 0 0 1 0 1
RD
6 1 0 1 0 1 1 0
WR
7 0 1 1 0 1 1 1
Exemplo - Leitura

D3 D2 D1 D0 A2 A1 A0
8x4 0 0 1 1 1 0 0 0
0 A0 1 1 1 0 1 0 0 1
0 A1
1 A2 D0 1 2 0 0 0 1 0 1 0
D1 1
D2 1 3 1 1 0 0 0 1 1
D3 0 4 0 1 1 1 1 0 0
0 CS 5 0
0 0 0 1 0 1
0 RD
6 1 0 1 0 1 1 0
1 WR
7 0 1 1 0 1 1 1
Exemplo - Escrita

D3 D2 D1 D0 A2 A1 A0
8x4 0 0 1 1 1 0 0 0
1 A0 1 1 1 0 1 0 0 1
0 A1
1 A2 D0 0 2 0 0 0 1 0 1 0
D1 1
D2 0 3 1 1 0 0 0 1 1
D3 1 4 0 1 1 1 1 0 0
0 CS 5 1 0 10 0
0 1 0 1
1 RD
6 1 0 1 0 1 1 0
0 WR
7 0 1 1 0 1 1 1
Timming – Leitura EPROM

(Microchip)
Timming – Escrita EEPROM

(Tocci, 2007)
Timming – Leitura SRAM

(Holtek)
Timming – Escrita RAM

(Holtek)
Organização

Uma memória é organizada em termos do


número de posições de memória (m) e do
número de bits por registro (n)

mxn
Exemplo 1: 1024 x 8 = 1k x 8
Exemplo 2: 2048 x 8 = 2k x 8
Capacidade

A capacidade “C” de uma memória é dada


em bits e pode ser obtida multiplicando-se o
número de posições de memória “m” e
número de bits por registro “n” .

C=mxn
Exemplo 1: uma memória 1024x8 tem uma capacidade de 8192 bits
Exemplo 2: uma memória 2048x4 tem uma capacidade de 8192 bits
Bancos de Memória
• Banco ou associação de memórias
• O objetivo de projetar um banco de
memória pode ser:
• Caso 1: Aumentar o número de bits por registro
• Caso 2: Aumentar o número de posições de
memória
• Caso 3: Aumentar ambos
• Caso 4: Associar memórias de tipos diferentes
Bancos de Memória

Memo Memo Memo Memo

Memo Caso 2
Caso 1 Memo

Memo Memo
ROM
Memo
Memo Caso 4
Memo Memo
RAM

Caso 3
Caso 1 - Exemplo
Caso 1: Aumentar o número de bits por registro.
Exemplo: A partir de memórias do tipo 8x4 obter um banco 8x8.

Memo Banco N° CIs


n=4 → D0...D3 n=8 → D0...D7 8x8/8x4 → 2
m=8 → k=3 m=8 → k=3
k=3 → A0...A2 k=3 → A0...A2

Idéia principal: Serão necessários dois CIs que devem


ser associados de forma que cada um disponibilize 4
linhas de dados
Caso 1 - Exemplo
Memo AA0 A0
8x4
n=4 → D0...D3 AA1 A1 D0 DD0
m=8 → k=3 AA2 A2
D1 DD1
k=3 → A0...A2 CS’
D2 DD2
CS
D3 DD3
Banco RD’ RD
WR’
n=8 → D0...D7 WR

m=8 → k=3
k=3 → A0...A2 A0
8x4
A1 D0 DD4
N° CIs A2
D1 DD5
8x8/8x4 → 2 D2 DD6
CS
D3 DD7
RD
WR
Caso 2 - Exemplo
Caso 2 Aumentar o número de posições de memória.
Exemplo: A partir de memórias do tipo 8x8 obter um banco 16x8.

Memo Banco N° CIs


n=8 → D0...D7 n=8 → D0...D7 16x8/8x8 → 2
m=8 → k=3 m=16 → k=4
k=3 → A0...A2 k=4 → A0...A3

Idéia principal: Serão necessários dois CIs que devem


ser associados de forma que cada um disponibilize 8
posições de memória
Memo Banco N° CIs
n=8 → D0...D7 n=8 → D0...D7 16x8/8x8 → 2
m=8 → k=3 m=16 → k=4
k=3 → A0...A2 k=4 → A0...A3

CI1 DD0...DD7

8x8 DD0
AA0 A0 D0
D1 DD1
AA1 A1
D2 DD2
AA2 A2
D3 DD3
D4 DD4
CS D5 DD5
RD’ DD6
RD D6 DD7
WR’ WR D7

CI2
AA3 1 x/y 0 8x8 DD0
A0 D0
2 1 DD1
A1 D1
D2 DD2
2 A2 DD3
D3
CS’ EN 3 DD4
D4
CS DD5
D5 DD6
RD D6 DD7
WR D7
Barramento (Bus)

DD0...DD7

8x8 DD0 8x8


A0 D0 A0 D0 DD0
D1 DD1 D1
A1 A1 DD1
D2 DD2 D2 DD2
A2 A2
D3 DD3 D3 DD3
D4 DD4
D4 DD4
CS D5 DD5 CS D5 DD5

=
DD6
RD D6 DD7 RD D6 DD6
WR D7 WR D7 DD7

8x8 DD0 8x8


A0 D0 A0 D0
DD1
A1 D1 A1 D1
D2 DD2
A2 A2 D2
D3 DD3 D3
DD4
D4 D4
CS DD5 CS
D5 DD6 D5
RD D6 DD7 RD D6
WR D7 WR D7
Mapa de Memória
• O mapa de memória representa a faixa
de endereços ocupada por cada
memória.
Mapa de Memória

AA3 AA2 AA1 AA0 HEX CI


0 0 0 0 0h
0 1 1 1 7h 1
1 0 0 0 8h
1 1 1 1 Fh 2
Caso 3 - Exemplo
Caso 3: Aumentar o número de bits por registro e o número de
posições de memória.
Exemplo: A partir de memórias do tipo 8x4 obter um banco 16x8.

Memo Banco N° CIs


n=4 → D0...D3 n=8 → D0...D7 16x8/8x4 → 4
m=8 → k=3 m=16 → k=4
k=3 → A0...A2 k=4 → A0...A3

Idéia principal: Serão necessários quatro CIs. Cada par


de CIs 8x4 deve ser associado formando dois
conjuntos 8x8. Esses dois conjuntos devem ser
associados para formar um banco 16x8.
DD0...DD7

AA0...AA2

CI1 CI3
AA0 A0 8x4 AA0 8x4
A0
AA1 AA1 DD0
A1 D0 DD0 A1 D0
AA2 AA2
A2 DD1 A2 DD1
D1 D1
DD2 DD2
D2 D2
CS DD3 CS DD3
D3 D3
RD’ RD RD
WR’ WR WR

CI4
AA3 1 x/y 0 AA0 8x4 AA0 8x4
A0 A0
AA1 DD4 AA1 DD4
2 1 A1 A1 D0
AA2 D0 AA2
A2 DD5 A2 DD5
2 D1 D1
DD6 DD6
CS’ EN 3 D2 D2
CS DD7 CS DD7
D3 D3
RD RD
WR WR
CI2
Mapa de Memória

AA3 AA2 AA1 AA0 HEX CI


0 0 0 0 0h
0 1 1 1 7h 1/2
1 0 0 0 8h
1 1 1 1 Fh 3/4
Caso 4 – Exemplo 1
Caso 4: Associar tipos diferentes de memória.
Exemplo: Associar uma EPROM 8x8 e uma RAM 8x8, com a
EPROM ocupando os endereços mais baixos.

Memos (EPROM e RAM) Banco


N° CIs
n=8 → D0...D7 n=8 → D0...D7
2
m=8 → k=3 m=16 → k=4
k=3 → A0...A2 k=4 → A0...A3

Idéia principal: Nesse caso EPROM e RAM possuem a


mesma organização e capacidade, por isso a
associação e similar ao caso 2
EPROM DD0...DD7

8x8 DD0
AA0 A0 D0
D1 DD1
AA1 A1
D2 DD2
AA2 A2
D3 DD3
D4 DD4
CS D5 DD5
RD’ DD6
RD D6 DD7
D7

RAM
AA3 1 x/y 0 8x8 DD0
A0 D0
2 1 DD1
A1 D1
DD2
2 A2 D2
D3 DD3
CS’ EN 3 DD4
D4
CS DD5
D5 DD6
RD D6 DD7
WR’ WR D7
Mapa de Memória

AA3 AA2 AA1 AA0 HEX CI


0 0 0 0 0h EPROM
0 1 1 1 7h
1 0 0 0 8h RAM
1 1 1 1 Fh
Caso 4 – Exemplo 2
Caso 4: Associar tipos diferentes de memória.
Exemplo: Associar EPROMs 8x8 e RAMs 8x8 para obter um banco
de 8x8 de EPROM e 16x8 de ram, com a EPROM ocupando os
endereços mais baixos.
Memos (EPROM e RAM) Banco
N° CIs
n=8 → D0...D7 n=8 → D0...D7
1 EPROM
m=8 → k=3 m=24 → k=5
2 RAMs
k=3 → A0...A2 k=5 → A0...A4

Idéia principal: Como EPROM e RAMs possuem a


mesma organização e capacidade a associação e
similar ao caso 2
AA0...AA2 EPROM DD0...DD7

8x8 DD0
A0 D0
D1 DD1
A1
D2 DD2
A2
D3 DD3
D4 DD4
CS D5 DD5
RD’ DD6
RD D6 DD7
D7

RAM1
AA3 1 x/y 0 DD0
8x8
A0 D0 DD1
AA4 2 1 DD2
A1 D1
2 A2 D2 DD3
D3 DD4
CS’ EN 3 D4 DD5
CS D5 DD6
RD D6 DD7
WR’ WR D7

RAM2
8x8 DD0
A0 D0
A1 D1 DD1
A2 D2 DD2
D3 DD3
D4 DD4
CS D5 DD5
D6 DD6
RD DD7
WR D7
Mapa de Memória

AA4 AA3 AA2 AA1 AA0 HEX CI


0 0 0 0 0 00h EPROM
0 0 1 1 1 07h
0 1 0 0 0 08h RAM1
0 1 1 1 1 0Fh
1 0 0 0 0 10h RAM2
1 0 1 1 1 17h
Exercícios
• Projetar um banco de memórias RAM de
1024x8 a partir de memórias 1024x4
• Projetar um banco de memórias de
2048x8 a partir de memórias 1024x8.
Elabore o mapa de memória.
• Projetar um banco de memórias de
2048x8 a partir de memórias 1024x4.
Elabore o mapa de memória.
Exercícios
• Projetar um banco de memórias com 1024x8 de
EPROM e 1024x8 de RAM a partir de EPROMs
de 512x8 e de RAMs de 512x8. A EPROM deve
ocupar os endereços mais baixos. Elabore
também o mapa de memória.
• Projetar um banco de memórias com 1024x8 de
EPROM e 512x8 de RAM a partir de EPROMs
de 512x8 e de RAMs de 512x8. A EPROM deve
ocupar os endereços mais baixos. Elabore
também o mapa de memória.

Você também pode gostar