Buscar

aula21

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Sistemas Digitais
Aula 21
Memo´ria
Eduardo Peixoto
Departamento de Engenharia Ele´trica
Faculdade de Tecnologia
Universidade de Bras´ılia
1 / 1
Suma´rio
Aula 21
ROM - Read-Only Memory
Estrutura Interna da ROM
ROMs Comerciais
Static RAM
Dynamic RAM
2 / 1
Memo´ria
Todo circuito sequencial tem um tipo de memo´ria, pois todo latch ou flip-flop armazena
1 bit de informac¸a˜o.
No entanto, costumamos chamar de memo´ria bits que esta˜o armazenados de maneira
estruturada, usualmente com um enderec¸o e um dado.
3 / 1
ROM - Read-Only Memory
ROM - Read-Only Memory
4 / 1
ROM - Read-Only Memory
Uma ROM e´ um circuito combinacional com n entradas e b sa´ıdas.
As entradas sa˜o chamadas de enderec¸os e as sa´ıdas sa˜o chamadas de dados.
Uma ROM e´ um tipo de memo´ria na˜o-vola´til, isto e´, seu conteu´do e´ preservado mesmo
que o circuito seja desenergizado.
2
n
×b ROM
A0
A1 D0
A2 D1
An–2 Db–1
An–1
address
inputs
data
outputs
5 / 1
ROM - Read-Only Memory
Como a ROM e´ um circuito combinacional, ela na˜o e´ uma memo´ria no sentido estrito.
Em termos de circuito, podemos pensar em uma ROM como um circuito combinacional
qualquer.
No entanto, podemos pensar que a informac¸a˜o e´ armazenada na ROM quando ela e´
produzida (ou programada).
6 / 1
ROM - Read-Only Memory
Podemos usar uma ROM para realizar uma lo´gica combinacional qualquer. Considere a
tabela a seguir (um decodificador 2-para-4 com um controle de polaridade da sa´ıda):
Inputs Outputs
A2 A1 A0 D3 D2 D1 D0
0 0 0 1 1 1 0
0 0 1 1 1 0 1
0 1 0 1 0 1 1
0 1 1 0 1 1 1
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
7 / 1
ROM - Read-Only Memory
E´ comum especificarmos o conteu´do de uma ROM escrevendo o seu conteu´do em
hexadecimal.
No exemplo:
Adress Data
0 E
1 D
2 B
3 7
4 1
5 2
6 4
7 8
8 / 1
ROM - Read-Only Memory
Podemos implementar essa tabela com o circuito:
I0
(A0)
(A1)
(A2)
I1
POL
Y0
(D0)
(D1)
(D2)
(D3)
Y1
Y2
Y3
9 / 1
ROM - Read-Only Memory
Podemos usar os dados armazenados em uma ROM para implementar func¸o˜es lo´gicas
complexas.
Por exemplo, um circuito o´timo para um multiplicador de duas palavras de 4 bits
necessitaria de 36 termos-produto.
A0
A1
D0
A2
A3
A4
A5
A6
A7
P0
P1
P2
P3
P4
P5
P6
P7
D1
D2
D3
D4
D5
D6
D7
Y0
Y1
Y2
Y3
X0
X1
X2
X3
multiplicand
multiplier
product
256 ×8 ROM
10 / 1
ROM - Read-Only Memory
Pore´m, ele pode ser facilmente implementado por uma ROM 256× 8 com a tabela
(podemos escrever um pequeno programa em C para fazer a tabela):
Table 10-3 Hexadecimal text file specifying the 
contents of a 4 × 4 multiplier ROM.
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
10: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 
20: 00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A
30: 00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 
40: 00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 
50: 00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 
60: 00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 
70: 00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 
80: 00 08 10 18 20 28 30 38 40 48 50 58 60 68
90: 00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 
A0: 00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 
B0: 00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 
C0: 00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C 
D0: 00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 
E0: 00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6
F0: 00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 
11 / 1
Estrutura Interna da ROM
Estrutura Interna da ROM
12 / 1
Estrutura Interna da ROM
O mecanismo que a ROM usa para guardar o bit de informac¸a˜o varia dependendo da
tecnologia.
Na maioria delas, a ROM utiliza diodos (ou transistores) para armazenar o bit.
R
5V
F
B
A
A B F
0 0 0
0 1 0
1 0 0
1 1 1
13 / 1
Estrutura Interna da ROM
A ROM do exemplo anterior poderia ser constru´ıda como:
D0 0
1
0
0
D2
D3
+5 V
+5 V
U1
74x138
ROW0_L HIGH
HIGH
HIGH
HIGH
HIGH
LOW
HIGH
HIGH
R
R
ROW1_L
ROW2_L
ROW3_L
ROW4_L
ROW5_L
ROW6_L
ROW7_L
74HC14
D0_L
D1_L
D2_L
D3_L
G2A
G1
G2B
Y0
Y1
Y2
Y3
6
15
14
13
1
3
5
9 8
6
4
2
4
5
B
A
C
A1
A01
0
1 A2
Y4
Y5
Y6
Y7
1 12
11
10
9
7
2
3
D1
U2
U2
U2
U2
HIGH
LOW
HIGH
HIGH
14 / 1
Estrutura Interna da ROM
A intersec¸a˜o entre uma linha de palavra e uma linha de bit corresponde a um bit de
“memo´ria”.
Se um diodo for colocado nessa intersec¸a˜o, um bit 1 e´ armazenado. Caso contra´rio, um
bit 0 e´ armazenado.
Assim, podemos “programar” essa memo´ria inserindo e removendo diodos!
15 / 1
Estrutura Interna da ROM
O antigo computador DEC-PDP 11 funcionava dessa forma.
Ele vinha acompanhado de 512 diodos para a programac¸a˜o do bootstrap module.
16 / 1
Estrutura Interna da ROM
17 / 1
Decodificac¸a˜o Bidimensional
Para construir uma ROM 128× 1 seria necessa´rio um decodificador 7-para-128, o que iria
precisar de 128 NANDs de 7 entradas, ale´m de 14 buffers e inversores com um fan-out de
64 cada um.
18 / 1
Decodificac¸a˜o Bidimensional
Existem ROMs com milho˜es de bits.
Seria invia´vel utilizar um decodificador 20-para-1.048.576.
Ao inve´s disso, elas utilizam uma estrutura mais inteligente.
19 / 1
Decodificac¸a˜o Bidimensional
+5 V
3-to-8
decoder
0
1
2
3
1
0
2
A5
A4
A6
A1
A0
A2
A3
S1
16-to-1 multiplexer
D0
Y
S0
S2
S3
4
5
6
7
R
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
20 / 1
Decodificac¸a˜o Bidimensional
Assim, uma ROM com 1M × 1 poderia ser realizada com um decodificador 10-para-1024
e um multiplexador 1024-para-1.
O que seria muito mais simples do que um decodificador 20-para-1.048.576.
21 / 1
Decodificac¸a˜o Bidimensional
Podemos usar esse esquema para fazer uma ROM 32K × 8.
64-to-1
mux
64-to-1
mux
64-to-1
mux
64-to-1
mux
64-to-1
mux
64-to-1
mux
64-to-1
mux
64-to-1
mux
A6
A7
A8
A9
A10
A11
A12
A13
A14
A0
A1
A2
A3
A4
A5
9-to-512
decoder
512 ×64
a��a�
D7 D6 D5 D4 D3 D2 D1 D0
512 ×64
a��a�
512 ×64
a��a�
512 ×64
a��a�
512 ×64
a��a�
512 ×64
a��a�
512 ×64
a��a�
512 ×64
a��a�
22 / 1
Estrutura Interna da ROM
A maioria das ROMs utiliza transistores no lugar de diodos.
R
5V
F
B
A
A B F
0 0 1
0 1 0
1 0 0
1 1 0
23 / 1
Estrutura Interna da ROM
decoderaddress
inputs
V
DD
active-high
decoder outputs
active-low bit lines,
pulled LOW
if transistor present
data to inverting
output buffers
R
24 / 1
ROMs Comerciais
ROMs Comerciais
25 / 1
ROMs Comerciais
O tipo mais simples de ROM e´ chamada de mask programmable ROMs ou,
simplesmente, mask ROMs.
Neste tipo de ROM o projetista faz uma ma´scara e entrega ao fabricante, que a usa para
fabricar o chip de uma ROM com aquelas interconexo˜es.
O prec¸o deste tipo de ROM faz com que ela so´ seja via´vel em projetos de larga escala.
26 / 1
ROMs Comerciais
Uma programmable read-only memory (PROM) resolve este problema de uma forma
bastante simples: o chip e´ feito com todos os diodos (ou transistores) conectados.
Ale´m disso, um pequeno fus´ıvel e´ utilizado para desconectar esses diodos/transistores.
Selecionando uma determinada linha de dados, e aplicando uma tensa˜o mais alta em um
pino especial (de 10V a 30V), o fus´ıvel e´
destru´ıdo, mudando o valor do bit armazenado.
Como o fus´ıvel e´ destru´ıdo, ela so´ pode ser escrita uma vez, em um processo trabalhoso.
Pore´m, isso pode ser feito em pequena escala.
27 / 1
ROMs Comerciais
Circuito para uma EPROM.
Coluna
Linha
R
5V
28 / 1
ROMs Comerciais
Outro tipo de ROM e´ a erasable programmable read-only memory (EPROM).
Similar a` PROM, o chip vem de fa´brica com todos os transistores conectados. Pore´m, ao
inve´s de utilizar fus´ıveis, a EPROM utiliza transistores do tipo floating-gate, que podem
ser desativados utilizando uma tensa˜o mais alta.
A vantagem da EPROM e´ que o conteu´do da ROM pode ser apagado (retornando ao
estado original) expondo o chip a luz ultravioleta por um determinado tempo.
29 / 1
ROMs Comerciais
30 / 1
ROMs Comerciais
31 / 1
ROMs Comerciais
Finalmente temos a electrically erasable programmable read-only memory (EEPROM).
Similar a` EPROM, pore´m os bits podem ser escritos e apagados eletricamente.
EEPROMs de grande capacidade permitem que apenas blocos inteiros possam ser
apagados (ao inve´s de bits individuais). Isso aumenta muito a velocidade da memo´ria, e
da´ nome a esse tipo de memo´ria: memo´ria flash (um bloco pode ser apagado “in a
flash”).
32 / 1
ROMs Comerciais
33 / 1
ROMs vs Circuit Design
Vantagens da ROM:
Mais ra´pidas para circuitos de maior complexidade.
Sua func¸a˜o pode ser facilmente modificada.
Desvantagens da ROM:
Para circuitos mais simples, a ROM e´ mais cara e gasta mais energia.
Para func¸o˜es com muitas entradas (25+) a implementac¸a˜o em ROM pode ficar
impratica´vel. Ex.: Somador de 16 bits.
34 / 1
Read/Write Memory
Read/Write Memory
35 / 1
Read/Write Memory
Read/Write Memory e´ o nome dado a memo´rias que podem ser lidas e escritas.
A maior parte hoje e´ do tipo RAM - Random Access Memory. O nome vem do fato de
que o tempo de escrita/leitura independe do enderec¸o.
36 / 1
Serial Access Memory
Chamamos de serial access memory (ou sequential access memory - SAM) o tipo de
memo´ria onde uma localizac¸a˜o particular esta´ imediatamente acess´ıvel, pore´m outras
posic¸o˜es precisam de passos adicionais para acesso.
Exemplos incluem HD, CDs, m´ıdia magne´tica...
37 / 1
Memo´ria Vola´til
Uma RAM e´ um tipo de memo´ria vola´til - uma vez que o circuito e´ desenergizado, os
dados sa˜o perdidos.
Pore´m, existem dois tipos principais de RAM:
Static RAMs: uma vez que um bit e´ escrito em uma posic¸a˜o, ele permanece
armazenado enquanto o chip estiver energizado.
Dynamic RAMs: o dado precisa ser re-escrito periodicamente ou ele desaparece.
38 / 1
Static RAMs
2
n
× 
A0
A1
DOUT0
DOUT1
An–1
address
inputs
DIN0
DIN1
DINb–1 DOUTb–1
CS
OE
WE
data
inputs
data
outputs
control
inputs
39 / 1
Static RAMs
OUT
IN
S����
D
Q
C
W���
IN
S��
W�
OUT
40 / 1
Static RAMs
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
IN OUT
���
	
D��
� D��
� DOUT1 DOUT0
�
3��3�
decoder
D
��
� D
��
�
DIN1 DIN0
bit
line w��� ���ff
0
1
�
��
1
0 4
5
6
7
A
�
A1
A0
fiflffi�
C ffi�
�
flffi�
fi!ffi�
�
�
flffi�
41 / 1
Static RAMs
Alguns cuidados devem ser tomados:
Os dados sa˜o armazenados em latches! Logo, os tempos de setup e hold devem ser
respeitados.
O enderec¸o deve ser mantido esta´tico durante a escrita, sob o risco do dado se
espalhar para outros enderec¸os.
42 / 1
Dynamic RAMs
Os latches sa˜o constru´ıdos com muitos transistores, o que na˜o e´ ideal quando queremos
aumentar a densidade da memo´ria.
O ideal seria usar apenas um transistor para cada bit armazenado.
Pore´m, na˜o e´ poss´ıvel fazer elementos biesta´veis com apenas um transistor.
A soluc¸a˜o e´ mudar um pouco o circuito.
43 / 1
Dynamic RAMs
word line
bit line
44 / 1
Dynamic RAMs
O bit e´ armazenado na forma de carga naquele pequeno capacitor. Isso ocasiona alguns
problemas:
A leitura destro´i o bit gravado! Logo, o dado deve ser re-escrito sempre que ele e´
lido.
Uma corrente de fuga descarrega esse capacitor - ele esquece o bit que foi gravado!
A soluc¸a˜o e´ utilizar um refresh: a memo´ria e´ re-escrita o tempo todo (a cada 20 a 60 ms).
Isto quer dizer que a memo´ria na˜o esta´ dispon´ıvel todo o tempo. Pore´m, como o tempo
de leitura/escrita e´ muito menor do que o tempo de refresh, a memo´ria esta´ dispon´ıvel
na maior parte do tempo (+99%).
45 / 1
Dynamic RAMs
VCC
LOW
1 written0 stored refresh refresh refresh
time
Vcap
46 / 1
Exerc´ıcios
Exerc´ıcios
Desenhe o esquema´tico do circuito descrito pela tabela verdade abaixo utilizando apenas
um decodificador 4-para-16 e alguns diodos.
Linha W X Y Z F1 F2 F3 F4
0 0 0 0 0 0 0 1 0
1 0 0 0 1 0 1 1 1
2 0 0 1 0 1 1 0 0
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 0 1 0
5 0 1 0 1 0 1 0 1
6 0 1 1 0 1 1 1 0
7 0 1 1 1 1 0 1 0
8 1 0 0 0 0 0 0 0
9 1 0 0 1 1 1 0 1
10 1 0 1 0 1 1 0 0
11 1 0 1 1 1 0 0 1
12 1 1 0 0 0 0 0 0
13 1 1 0 1 0 1 1 1
14 1 1 1 0 1 1 0 0
15 1 1 1 1 1 0 1 1
47 / 1
Exerc´ıcios
Exerc´ıcios
Desenhe o esquema´tico do circuito descrito pela tabela verdade abaixo utilizando apenas
um decodificador 2-para-4, alguns multiplexadores 4-para-1 e alguns diodos.
Linha W X Y Z F1 F2 F3 F4
0 0 0 0 0 0 0 1 0
1 0 0 0 1 0 1 1 1
2 0 0 1 0 1 1 0 0
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 0 1 0
5 0 1 0 1 0 1 0 1
6 0 1 1 0 1 1 1 0
7 0 1 1 1 1 0 1 0
8 1 0 0 0 0 0 0 0
9 1 0 0 1 1 1 0 1
10 1 0 1 0 1 1 0 0
11 1 0 1 1 1 0 0 1
12 1 1 0 0 0 0 0 0
13 1 1 0 1 0 1 1 1
14 1 1 1 0 1 1 0 0
15 1 1 1 1 1 0 1 1
48 / 1

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais