Memorias: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 32: Linha 32:
==Circuito de Memória==
==Circuito de Memória==


Um circuito de memória possui um conjunto de pinos para as '''entradas de endereço''', que fornecem o endereço onde o dado será escrito ou lido. Um conjunto de pinos para a '''entrada''' e outro para a '''saída dos dados''', os quais podem ser compartilhados. E, um conjunto de pinos com '''entradas de controle''', indicando o tipo de operação a ser realizada na memória '''escrita'''(''Store'') ou '''leitura''' (''Load'') e seleção do circuito de memória (''Select''). O pulso de relógio (''Clock'') sinaliza o momento em que a operação é realizada.
Um circuito de memória possui um conjunto de pinos para as '''entradas de endereço''', que fornecem o endereço onde o dado será escrito ou lido. Um conjunto de pinos para a '''entrada''' e outro para a '''saída dos dados''', os quais podem ser compartilhados. E, um conjunto de pinos com '''entradas de controle''', indicando o tipo de operação a ser realizada na memória '''escrita''' (''Store'') ou '''leitura''' (''Load'') e '''seleção da memória''' (''Select''). O '''pulso de relógio''' (''Clock'') sinaliza o momento em que a operação é realizada.


;Exemplo: Circuito de memória de 1k Byte.
;Exemplo: Circuito de memória de 1k Byte.
Linha 43: Linha 43:
#No caso de escrita, aplicar os dados a serem armazenados aos pinos de entrada (I7,..I0) e acionar a escrita (Store=1);
#No caso de escrita, aplicar os dados a serem armazenados aos pinos de entrada (I7,..I0) e acionar a escrita (Store=1);
#No caso de leitura, habilitar o carregamento dos dados na saída (Load=1), o que transfere os dados aos pinos de saída (O7,...,O0);
#No caso de leitura, habilitar o carregamento dos dados na saída (Load=1), o que transfere os dados aos pinos de saída (O7,...,O0);
#Aplicar o pulso de relógio (Clock) (subida de 0 para 1);
#Desabilitar a memória (Select=0).
#Desabilitar a memória (Select=0).



Edição das 20h21min de 10 de junho de 2021

Memórias Digitais

Uma vantagem importante dos sistemas digitais sobre os sistemas analógicos é a capacidade de armazenar informações digitais[1].

Nos computadores digitais as memórias são um dos principais componentes, juntamente com a CPU (Unidade Central de Processamento) e os dispositivos de entrada e saída.

A memória principal de um computador, conhecida como memória RAM (Random Access Memory), é uma memória semicondutora formada por por um grande número de flip-flops organizados em um único circuito integrado (CI). A memória principal se comunica com a CPU em operações rápidas à medida que as instruções de um programa são executadas. Tanto das instruções de um programa quanto os dados, permanecem na RAM do computador enquanto são executados[1].

Conceitos sobre memórias

Célula de memória
Armazena um único bit (0 ou 1). Um flip-flop é um exemplo de uma célula de memória.
Palavra de memória
Armazena um grupo de bits. Um registrador é um exemplo de dispositivo que armazena uma palavra de memória. Por exemplo, um registrador de 8 bits armazena uma palavra binária de 8 bits, ou 1 Byte.
Capacidade de memória
Indica a quantidade de bits que a memória é capaz de armazenar. É dada pelo produto entre a quantidade de palavras que consegue armazenar e do número de bits de cada palavra. Por exemplo, podemos ter uma memória com 16 palavras de 4 bits, totalizando capacidade de 64 bits. Entretanto, é comum nos referirmos a capacidade de memória em número Bytes, o que indica que a memória armazena palavras de 8 bits. Por exemplo, uma memória de 1k Byte, consiste de 1024 palavras de 1 Byte.
Exemplo
Memória de 128 bits, com 16 posições de 8 bits:

Exercício
Suponha que um CI de memória armazene 8k Bytes. Qual a quantidade de palavras que ele consegue armazenar? Quantos bits tem cada palavra? Qual o total de bits que esta memória armazena?
Leitura de um dado na memória
É a operação de recuperação de um dado armazenado em uma dada posição de memória.
Escrita de um dado na memória
É a operação de gravação de um dado em uma dada posição de memória.
Endereço de memória
Número que indica a posição de uma palavra na memória. Normalmente o endereço é dado em binário, mas para facilitar podemos indicar em hexadecimal ou decimal. A capacidade de endereçamento é em geral múltiplo de 2n, em função do número de bits de endereço do decodificador de memória. Por exemplo, mamória de 1k (210 ou 1024 palavras), 2k (211 ou 2048 palavras), ..., 1M (220 ou 1.048.576 palavras).

Decodificador de endereço de memória

Decodificador de endereço de memória
Um componente importante de uma memória é o decodificador de endereços. O mesmo é usado para selecionar uma posição de memória para um dado ser armazenado no computador. Cada posição de memória tem um endereço, fornecido por um número binário, o qual será a entrada do decodificador que indicará a posição selecionada. Esta é a explicação do porque os tamanhos dos dispositivos de memória sempre são múltiplos de 2n.

Circuito de Memória

Um circuito de memória possui um conjunto de pinos para as entradas de endereço, que fornecem o endereço onde o dado será escrito ou lido. Um conjunto de pinos para a entrada e outro para a saída dos dados, os quais podem ser compartilhados. E, um conjunto de pinos com entradas de controle, indicando o tipo de operação a ser realizada na memória escrita (Store) ou leitura (Load) e seleção da memória (Select). O pulso de relógio (Clock) sinaliza o momento em que a operação é realizada.

Exemplo
Circuito de memória de 1k Byte.

Princípios de operação de uma memória[1]
  1. Aplicar um endereço binário da posição de memória a ser acessada (A9,..A0);
  2. Selecionar a memória para responder as entradas de controle (Select=1);
  3. No caso de escrita, aplicar os dados a serem armazenados aos pinos de entrada (I7,..I0) e acionar a escrita (Store=1);
  4. No caso de leitura, habilitar o carregamento dos dados na saída (Load=1), o que transfere os dados aos pinos de saída (O7,...,O0);
  5. Aplicar o pulso de relógio (Clock) (subida de 0 para 1);
  6. Desabilitar a memória (Select=0).
Exercícios
  1. Determinada memória tem capacidad de 16k x 8 bits:
    • Quantas linhas de entrada/saída de dados tem esta memória;
    • Quantas linhas de endereço ela tem?
    • Qual a capacidade em Bytes?
  2. Quantas entradas de endereço, entrada e saída de dados são necessárias para uma memória de 1M Bytes.

Laboratório e Exercícios de Simulação

Para este laboratório será utilizado o Simulador de Circuitos Lógicos - Logisim
Veja no link as instruções para download e instalação do programa.

Memórias

  1. Construa uma memória RAM, com a memória presente no Logisim, com 4 bits de endereços e 8 bits de dados com entrada e saída de dados separadas.
  2. Qual a capacidade de armazenamento em Bytes da memória do circuito anterior.
  3. Armazene na memória os Códigos ASCII correspondentes as letras do seu nome.
  4. Verifique a tela de ajuda sobre as Memórias RAM do Logisim e construa uma memória com com 4 bits de endereços e 8 bits de dados, com uma única porta de leitura/escrita síncrona.
  5. Repita a operação para gravação de seu nome em código ASCII na memória.
  6. Construa uma memória ROM, com a memória presente no Logisim, e compare o funcionamento com a memória RAM.

Referências

  1. 1,0 1,1 1,2 TOCCI, R.J.; WIDMER, N.S.; MOSS, G.L. Sistemas Digitais: princípios e aplicações, São Paulo: Pearson, 2011.

--Evandro.cantu (discussão) 10h52min de 12 de junho de 2014 (BRT)