Memorias: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
 
(12 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 19: Linha 19:


:;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?
:;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 2<sup>n</sup>, em função do número de bits de endereço do decodificador de memória. Por exemplo, mamória de 1k (2<sup>10</sup> ou 1024 palavras), 2k (2<sup>11</sup> ou 2048 palavras), ..., 1M (2<sup>20</sup> ou 1.048.576 palavras).
;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 2<sup>n</sup>, em função do número de bits de endereço do decodificador de memória. Por exemplo, mamória de 1k (2<sup>10</sup> ou 1024 palavras), 2k (2<sup>11</sup> ou 2048 palavras), ..., 1M (2<sup>20</sup> ou 1.048.576 palavras).
Linha 24: Linha 28:
[[Arquivo:DecodificadorMemoria.png | Decodificador de endereço de memória]]
[[Arquivo:DecodificadorMemoria.png | Decodificador de endereço de memória]]


;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.
;Decodificador de endereço de memória: Um componente importante de uma memória é o [[Decodificadores e Multiplexadores | '''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 '''2<sup>n</sup>'''.
 
;Escrita de um dado na memória: É a operação de gravação de um dado em uma dada posição de memória.


==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 ou leitura''') (/W|R - ''Write/Read'') e habilitação do circuito de memória ('''ME''' - ''Memory Enable'').
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 38: Linha 40:
;Princípios de operação de uma memória<ref name="TOCCI"/>:  
;Princípios de operação de uma memória<ref name="TOCCI"/>:  
#Aplicar um endereço binário da posição de memória a ser acessada (A9,..A0);
#Aplicar um endereço binário da posição de memória a ser acessada (A9,..A0);
#Habilitar o dispositivo para responder as entradas de controle (ME=1);
#Selecionar a memória para responder as entradas de controle (Select=1);
#No caso de leitura (~W/R=1), habilitar a saída ''tristate'' (OE=1), as quais aplicam os dados aos pinos de saída (O7,...,O0);
#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);
#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);
#Habilitar a operação de escrita, que faz com que os dados sejam armazenados (~W/R=0);
#Aplicar o pulso de relógio (Clock) (subida de 0 para 1);
#Desabilitar a memória (ME=0).
#Desabilitar a memória (Select=0).


;Exercícios:
==Laboratório e exercícios: Memórias==
;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.
 
===Exercícios===
#Determinada memória tem capacidad de 16k x 8 bits:
#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 entrada/saída de dados tem esta memória;
#*Quantas linhas de endereço ela tem?
#*Quantas linhas de endereço ela tem?
#*Qual a capacidade em Bytes?
#*Qual a capacidade em Bytes?
#Quantas entradas de endereço, entrada e saída de dados são necessárias para uma memória de 1M Bytes.
#Quantas entradas de endereço, entrada e saída de dados são necessárias para uma memória de 1M Bytes?
 
==Conexão dos dispositivos de memória à CPU==
Um computador possui vários dispositivos de memória, como a memória principal, ou memória RAM, memória ROM e memória secundária, como discos rígidos.
 
A '''CPU''' do computador se comunica com os dispositivos de '''memória''' através de três '''barramentos''' principais:
*Barramento de endereços;
*Barramento de dados;
*Barramento de controle.
 
[[Arquivo:Barramentos.png]]


Quando um computador executa instruções de um programa a CPU busca (lê) as instruções na memória e também os dados necessários. O resultado da execução das instruções, por sua vez, é armazenado (escrito) de volta na memória.
===Simulação===
#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'''.
#Configure a memória RAM para ter '''pinos de entradas e saídas separados'''.
#Qual a '''capacidade de armazenamento''' em Bytes da memória do circuito anterior.
#Armazene na memória os '''[https://pt.wikipedia.org/wiki/ASCII Códigos ASCII]''' correspondentes as letras do seu nome.


==Referências==
==Referências==
Linha 67: Linha 66:


----
----
;Autoria: Evandro Cantú / IFPR - Câmpus Foz do Iguaçu
[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 17h25min de 10 de junho de 2021 (-03)
----
----


[[Categoria:Sistemas Digitais]]
[[Categoria:Sistemas Digitais]]

Edição atual tal como às 20h25min 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).

Laboratório e exercícios: Memórias

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.

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?

Simulação

  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. Configure a memória RAM para ter pinos de entradas e saídas separados.
  3. Qual a capacidade de armazenamento em Bytes da memória do circuito anterior.
  4. Armazene na memória os Códigos ASCII correspondentes as letras do seu nome.

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) 17h25min de 10 de junho de 2021 (-03)