gs 0905 memo v0 - UTFPR
Transcript of gs 0905 memo v0 - UTFPR
Eletrônica Digital
Prof. Gilson Yukio Satosato[at]utfpr[dot]edu[dot]br
Memórias Semicondutoras
Prof. Gilson Yukio Satosato[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éricaCélula
Registro n bits
Dn-1 Dn-2 D1 D0
Posição de Memória
0
1
m-1
Uma Célula armazena um bit (FF)
O Registro é um conjunto de n Células
Cada Registro ocupa uma das m Posições de Memória
Cada Posição de Memória éacessada através de um 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
0
1
2
3
4
5
6
7
Se m = 8 então:
8 = 2k
Tal que:
k = 3
A2 A1A00 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1
1 1 0 1
0 0 0 1
1 1 0 0
0 1 1 1
0 0 0 0
1 0 1 0
0 1 1 0
Pinagem Genérica
EPROMs, EEPROMs, Flashes, SRAMs
CS
RD
WR
m x n
A0A1
Ak-1
D0D1
Dn-1
k linhas de endereço
linhas de controle
n linhas de dados
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
0
1
2
3
4
5
6
7
A2 A1A00 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1
1 1 0 1
0 0 0 1
1 1 0 0
0 1 1 1
0 0 0 0
1 0 1 0
0 1 1 0
CS
RD
WR
8 x 4
A0A1A2 D0
D1D2D3
Exemplo - Leitura
D3 D2 D1 D0
0
1
2
3
4
5
6
7
A2 A1A00 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1
1 1 0 1
0 0 0 1
1 1 0 0
0 1 1 1
0 0 0 0
1 0 1 0
0 1 1 0
CS
RD
WR
8 x 4
A0A1A2 D0
D1D2D3
001
0
0
1
1110
Exemplo - Escrita
D3 D2 D1 D0
0
1
2
3
4
5
6
7
A2 A1A00 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1
1 1 0 1
0 0 0 1
1 1 0 0
0 1 1 1
0 0 0 0
1 0 1 0
0 1 1 0
CS
RD
WR
8 x 4
A0A1A2 D0
D1D2D3
101
0
1
0
0101
1 00 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)
m x n
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 = m x n
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
Memo
Memo
Memo
Memo
Memo
Memo
Memo
ROM
RAM
Caso 1
Caso 3
Caso 2
Caso 4
Caso 1 - ExemploCaso 1: Aumentar o número de bits por registro.
Exemplo: A partir de memórias do tipo 8x4 obter um banco 8x8.
Memon=4 → D0...D3m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=8 → k=3k=3 → A0...A2
N° CIs8x8/8x4 → 2
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
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
Memon=4 → D0...D3m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=8 → k=3k=3 → A0...A2
N° CIs8x8/8x4 → 2
AA0AA1
AA2
CS’RD’
WR’
DD0
DD1
DD2
DD3
DD4
DD5
DD6
DD7
Caso 2 - ExemploCaso 2 Aumentar o número de posições de memória.
Exemplo: A partir de memórias do tipo 8x8 obter um banco 16x8.
Memon=8 → D0...D7m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=16 → k=4k=4 → A0...A3
N° CIs16x8/8x8 → 2
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
Memon=8 → D0...D7m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=16 → k=4k=4 → A0...A3
N° CIs16x8/8x8 → 2
AA0AA1
AA2
CS’
RD’WR’
1
2 1
2
0
3
x/y
EN
AA3
DD0DD1DD2DD3DD4DD5DD6DD7
DD0DD1DD2DD3DD4DD5DD6DD7
DD0...DD7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CI1
CI2
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
DD0DD1DD2DD3DD4DD5DD6DD7
DD0DD1DD2DD3DD4DD5DD6DD7
DD0...DD7
Barramento (Bus)
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
DD0DD1DD2DD3DD4DD5DD6DD7=
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
0 0 0111
0 0 01111
1
00 0h
7h
8hFh
AA0AA1AA2 HEX CI
1
2
Caso 3 - ExemploCaso 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.
Memon=4 → D0...D3m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=16 → k=4k=4 → A0...A3
N° CIs16x8/8x4 → 4
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.
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
CS
RDWR
8 x 4A0A1A2
D0
D1
D2
D3
CS’
1
2 1
2
0
3
x/y
EN
AA3
RD’WR’
DD0...DD7
AA0...AA2
DD0
DD1
DD2
DD3
DD4
DD5
DD6
DD7
DD0
DD1
DD2
DD3
DD4
DD5
DD6
DD7
AA0AA1AA2
AA1AA2
AA0AA1AA2
AA0
AA1AA2
AA0
CI1
CI2
CI3
CI4
Mapa de Memória
AA3
0 0 0111
0 0 01111
1
00 0h
7h
8hFh
AA0AA1AA2 HEX CI
1/2
3/4
Caso 4 – Exemplo 1Caso 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)n=8 → D0...D7m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=16 → k=4k=4 → A0...A3
N° CIs2
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
AA0AA1
AA2
CS’
RD’
WR’
CS
RD
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
1
2 1
2
0
3
x/y
EN
DD0DD1DD2DD3DD4DD5DD6DD7
DD0DD1DD2DD3DD4DD5DD6DD7
AA3
DD0...DD7EPROM
RAM
Mapa de Memória
AA3
0 0 0111
0 0 01111
1
00 0h
7h
8hFh
AA0AA1AA2 HEX CI
EPROM
RAM
Caso 4 – Exemplo 2Caso 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)n=8 → D0...D7m=8 → k=3k=3 → A0...A2
Bancon=8 → D0...D7m=24 → k=5k=5 → A0...A4
N° CIs1 EPROM2 RAMs
Idéia principal: Como EPROM e RAMs possuem a mesma organização e capacidade a associação e
similar ao caso 2
CS’
RD’
WR’
CS
RD
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
1
2 1
2
0
3
x/y
EN
DD0DD1DD2DD3DD4DD5DD6DD7
DD0DD1DD2DD3DD4DD5DD6DD7
AA3
DD0...DD7EPROM
RAM1
CS
RDWR
8 x 8A0A1A2
D0D1D2D3D4D5D6D7
AA4
DD0DD1DD2DD3DD4DD5DD6DD7
AA0...AA2
RAM2
Mapa de Memória
AA3
0 0 0111
0 0 01111
1
00 00h
07h
08h
0Fh
AA0AA1AA2 HEX CI
EPROM
RAM1
AA4
00
00
00
11 0 0 0
11110h
17hRAM2
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 EPROMsde 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 EPROMsde 512x8 e de RAMs de 512x8. A EPROM deve ocupar os endereços mais baixos. Elabore também o mapa de memória.