Escolar Documentos
Profissional Documentos
Cultura Documentos
Dispositivos de memória
Marcos H. Maruo
marcos.maruo@ufsm.br
2017
Marcos H. Maruo (UFSM) ELC 1112 – Circuitos Digitais II 2017 1 / 65
Roteiro I
1 Introdução
2 Terminologia
4 Conexões CPU–memória
6 Arquitetura de ROM
7 Temporização da ROM
8 Tipos de ROM
9 Memória flash
Marcos H. Maruo (UFSM) ELC 1112 – Circuitos Digitais II 2017 2 / 65
Objetivos
Circuitos combinacionais;
Lógica booleana;
Sistemas de telecomunicação
Em sistemas de telecomunicações, sistemas digitais ainda apresentam a
possibilidade de introduzir estações repetidoras de sinais para regenerar
sinais degradados pelos efeitos do meio de telecomunicação.
Flip-flops vs memórias
Durante o estudo de flip-flops, vocês aprenderam a produir registradores
que podem ser utilizados para armazenar informação binária. Eles são
dispositivos de alto desempenho que costumam ser mais utilizados para
armazenar informação que precisa ser continuamente transferida de um
local para outro. Não obstante, os avanços nas tecnologias LSI (large scale
integration) e VLSI (very large scale integration) permitem produzir
dispositivos de memória baseados em flip-flops extremamente rápidos e
com custos ccontinuamente decrescentes.
Memória principal
Memórias baseadas em dispositivos semicondutores são utilizadas na
construção da memória principal ou memória de trabalho de um
computador. Isso ocorre pois o acesso a essa parcela da memória deve ser
rápido pois ela está em comunicação constante com a unidade central de
processamento (CPU, do inglês central processing unit).
Memória auxiliar
Outra forma de armazenamento no computador é realizada pela memória
auxiliar que é separada da memória principal. A memória auxiliar, também
chamada de armazenamento em massa, tem a capacidade de armazenar
uma enorme quantidade de dados sem volatilidade. O acesso à memória
auxiliar é bem mais lento que à memória principal e ela serve para
armazenar dados e programas que não estão sendo utilizados na CPU.
Dispositivos comuns de armazenamento em massa são discos magnéticos,
fita magnética, dispositivos ópticos (CD, DVD) e memórias tipo flash.
Célula de memória
São dispositivos digitais capazes de armazenar um único bit. Logo, podem
alternar entre dois estados (0 ou 1). Exemplos de dispositivos que podem
ser utilizados como células de memórias incluem flip-flops, capacitores,
chaves mecânicas, um portão (aberto ou fechado), etc.
Palavra de memória
Um grupo de bits em uma memória que representa instruções ou dados de
algum tipo. Por exemplo, um registrador com 8 flip-flops pode ser
utilizado como uma memória que está armazenando uma palavra de 8
bits. Os tamanhos de palavra de processadores modernos variam
tipicamente de 4 até 64 bits, dependendo do porte do computador.
Byte
Um termo utilizado para indicar um grupo de 8 bits. Tamanhos de palavra
podem ser expressos tanto em bits como em bytes dependendo da
conveniência. Por exemplo, uma palavra de 32 bits tem 4 bytes; uma
palavra de 2 bytes tem 16 bits e assim por diante.
Densidade
Um termo alternativo à capacidade. Quando um dispositivo de memória
tem uma densidade maior que outro, isso significa somente que ele tem
uma capacidade maior. Como esses dispositivos utilizam interfaces
semelhantes para se comunicar com outros dispositivos e tendem a
apresentar dimensões iguais para se encaixar em fatores de forma
factor-form da indústria, a “densidade” definida como capacidade por
volume de dispositivos de mesmo volume é uma medida da capacidade.
Endereço
Um número que identifica a posição de uma palavra na memória. Cada
palavra armazenada em um dispositivo possui um endereço único.
Endereços são sempre números inteiros não-negativos com representação
binária. Contudo, por conveniência, as representações octal, decimal e
hexadecimal são frequentemente utilizadas.
Operação de leitura
É a operação na qual o conteúdo de um endereço de memória é
identificado e então transferido para outro dispositivo. Por exemplo, se
deseja-se gravar o conteúdo de memória do endereço 042h em uma
memória não volátil, inicialmente é necessário que os bits de endereço
estejam corretamente determinados de acordo com o endereço desejado
(042H) e um comando de leitura deve ser recebido pela memória. A
operação de leitura é frequentemente chamada também de busca.
Operação de escrita
É a operação na qual uma nova palavra é colocada em uma determinada
posição da memória. Por exemplo, várias operações de escrita são
necessárias para carregar um programa na memória. Da mesma maneira
que a operação de leitura, é necessário especificar o endereço de memória
no qual deseja-se escrever o dado. A operação de escrita também é
conhecida como armazenamento. Após uma operação de escrita, o
conteúdo anterior da memória no endereço é completamente obliterado.
Tempo de acesso
É uma métrica da velocidade de operação do dispositivo de memória
definida pelo tempo necessário para realizar uma operação de leitura. Mais
especificamente, é o tempo decorrido entre a memória receber uma nova
entrada de endereço e os dados se tornarem disponı́veis na saı́da da
memória. O sı́mbolo tAcc é utilizado para indicar o tempo de acesso.
Memória volátil
Qualquer tipo de memória que requer energia para poder armazenar
informação. Se a fonte de energia é retirada, todas as informações
armazenadas na memória são perdidas. Muitas memórias semicondutoras
são voláteis enquanto todas as memórias magnéticas são não voláteis.
Memória principal
Também conhecida como memória de trabalho de um computador. Ela
armazena instruções e dados eque a CPU esteja acessando no momento. É
a memória mais rápida de um computador portanto geralmente é
produzida utilizando elementos semicondutores.
Memória auxiliar
Também conhecida como memória de massa porque ela armazena grandes
quantidades de informação externamente à memória principal. É mais
lenta que a memória principal e sempre não-volátil. Discos magnéticos,
dispositivos ópticos e memórias flash são dispositivos comuns de memória
auxiliar.
Entradas de endereço
Supondo que a memória tem 2Na palavras, ela requer Na bits para
endereçar unicamente todos os endereços. Logo, devem existir Na sinais
binários A0 , A1 , . . . ANa −1 para realizar o endereçamento da memória. Para
realizar a leitura ou escrita no endereço X de memória, basta determinar
[A] = [X ].
Habilitação de memória
Muitas vezes, as memórias não são ligadas diretamente ao processador e
sim a barramentos de endereços e dados. Assim, é necessário um sinal de
controle para que o dispositivo seja desabilitado quando os barramentos
estão sendo utilizados para outras funções. Isto é representado pela
entrada ME (do inglês memory enable), embora ela possa ter nomes
diferentes para diferentes sistemas de memórias como chip enable (CE ) ou
chip select (CS). Seu funcionamento é bastante simples. Quando o sinal
de habilitação de memória está em nı́vel alto, a memória deve responder
aos sinais de entradas de endereço e entradas de leitura/escrita. Quando o
sinal de habilitação de memória está em nı́vel baixo, estes sinais devem ser
ignorados (e possivelmente as entradas devem entrar em modo de
impedância alta). Além disso, esse sinal permite que vários circuitos
integrados de emmória sejam combinados para ampliar o tamanho de
palavra ou o número de endereços.
Operação de escrita
1 A CPU fornece ao barramento de endereços o endereço em que o
dado deve ser armazenado;
2 A CPU escreve os dados a serem armazenados no barramento de
dados;
3 A CPU ativa as linhas de controle relativas a habilitar a memória
desejada e indicar a operação de escrita ao pino R/W ;
4 A memória decodifica o endereço binário para determinar a posição
de armazenamento;
5 A memória transfere o conteúdo do barramento de dados para o
endereço informado.
Operação de Leitura
1 A CPU fornece ao barramento de endereços o endereço em que o
dado deve ser armazenado;
2 A CPU ativa as linhas de controle relativas a habilitar a memória
desejada e indicar a operação de leitura ao pino R/W ;
3 A memória decodifica o endereço binário para determinar a posição
de leitura;
4 A memória transfere o conteúdo do endereço desejado para o
barramento de dados.
Geralmente os pinos de saı́da dos dados de uma ROM são do tipo tristate,
para permitir que vários chips de ROM sejam associados para expansão de
memória. Os tamanhos de palavra mais comuns são 4,8 e 16 bits.
Operação de leitura
Considere inicialmente que a ROM da figura anterior foi programada com
o conteúdo da tabela abaixo:
A CPU lê uma instrução do programa
que requer a leitura da ROM no
endereço 7H;
A CPU escreve no barramento de
endereçamento o valor 7H indicando
que o programa deseja ler o endereço
7H de alguma memória;
A CPU escreve no barramento de
controle de modo que o sinal CS da
ROM seja mudado para zero.
Operação de leitura
A ROM decodifica o conteúdo do barramento de endereços e
seleciona a palavra correta. A ROM então escreve o conteúdo de 7H
(EDH) no barramento de dados;
A CPU lê e decodifica a próxima instrução, muda o nı́vel de CS da
ROM para 1 e os pinos de dados da ROM voltam para o estado de
alta impedância.
Matriz de pseudo-registradores
A matriz de pseudo-registradores armazena os dados que foram
programados na ROM. Cada pseudo-registrador contém um número de
células de memória igual ao tamanho da palavra utilizada. Os
pseudo-registradores estão distribuı́dos na forma de uma matriz quadrada
que é comum em muitos chips de memória. Para determinar qual
pseudo-registrador está sendo lido, é possı́vel mapear sua posição
(linha,coluna) para um número binário (endereço).
Decodificadores de endereço
O endereço [A] = A3 A2 A1 A0 determina qual pseudo-registrador na matriz
será habilitado para escrever seud dados no barramento interno. Os bits
do endereço são divididos em dois conjuntos: um contendo a metade dos
bits mais significativos [AM ] e outro contendo a metade dos bits menos
significativos [AL ].
Buffer de saı́da
Finalmente, é necessário um buffer de saı́da que permita que os dados do
barramento passem para o barramento de dados somente se CS = 0. Do
contrário, o buffer deve forçar todos seus pinos de saı́da para o estado de
impedância alta.
Instante t0
Neste instante, o barramento de endereços apresenta um conteúdo
qualquer e irrelevante e o sinal de controle CS está em nı́vel alto indicando
que outro dispositivo está utilizando os barramentos de dados e de
endereços.
Instante t1
Imediatamente antes de t1 , ocorre uma mudança no conteúdo do
barramento de endereços e existe um certo tempo de atraso para que a
ROM decodifique o endereço (por meio dos conversores de N para 2N
bits) e os conversores de endereço passem a selecionar o
pseudo-registrador correto. Após esse tempo, existe mais um atraso
relativo ao tempo que o pseudo-registrador leva para escrever seu
conteúdo no barramento interno. Após decorrido esse tempo de atraso, o
conteúdo do endereço desejado está na entrada do buffer de saı́da.
Instante t2
Após a decodificação do endereço, a CPU modifica o barramento de
controle de modo a alterar o sinal CS = 0. Este sinal comanda o buffer de
saı́da para transferir seu sinal de entrada para os pinos de saı́da da
memória ROM.
Instante t2
Neste instante, após o tempo de resposta do registrador, o conteúdo do
endereço desejado da memória ROM é escrito no barramento de dados.
ROM programável
O alto custo da criação de máscaras especı́ficas para a manufatura de
ROMS programadas por máscara e sua baixa adaptabilidade para as
necessidades do projetista pode ser inadequada para grande parte dos
projetos digitais.
ROM programável
A programação e verificação da PROM ocorre utilizando um dispositivo
programador que insere tensões negativas de magnitude maior que a
encontrada durante o funcionamento da PROM. Essa tensão produz uma
corrente que “queima” o fusı́vel armazenando um dado “zero” nesse
transistor. Caso o bit a ser armazenado seja um basta não inserir uma
tensão na entrada de dados.