Memorias: mudanças entre as edições
Sem resumo de edição |
|||
(22 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 5: | Linha 5: | ||
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. | 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''' 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<ref name="TOCCI"/>. | ||
==Conceitos sobre memórias== | ==Conceitos sobre memórias== | ||
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]] | ||
; | ;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>'''. | ||
==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 (''' | 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. | ||
[[Arquivo:Memoria1kByte.png]] | [[Arquivo:Memoria1kByte.png]] | ||
;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); | |||
#Selecionar a memória para responder as entradas de controle (Select=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); | |||
#Aplicar o pulso de relógio (Clock) (subida de 0 para 1); | |||
#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=== | |||
#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? | |||
#Quantas entradas de endereço, entrada e saída de dados são necessárias para uma memória de 1M Bytes? | |||
===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 40: | Linha 66: | ||
---- | ---- | ||
[[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
- 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]
- Aplicar um endereço binário da posição de memória a ser acessada (A9,..A0);
- Selecionar a memória para responder as entradas de controle (Select=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);
- Aplicar o pulso de relógio (Clock) (subida de 0 para 1);
- 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
- 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?
- Quantas entradas de endereço, entrada e saída de dados são necessárias para uma memória de 1M Bytes?
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 Códigos ASCII correspondentes as letras do seu nome.
Referências
Evandro.cantu (discussão) 17h25min de 10 de junho de 2021 (-03)