Cadastre seu e-mail para receber as novidades desse blog. Você pode cancelar a qualquer momento.

Delivered by FeedBurner

Assista ao vídeo descritivo acima; depois clique na imagem abaixo para adquirir o seu GUIA PRÁTICO PARA PASSAR EM CONCURSO PÚBLICO EM UM ANO.

Google Website Translator

Postagem em destaque

Automação Residencial com arduíno

Já pensou em criar sua própria casa inteligente, com automações em todos os cômodos? Sem gastar muito? Sem ser um engenheiro ou algo parecid...

Pesquise nesse Blog e na WEB com o Google

domingo, 3 de junho de 2012

Endereçamento de memória

Cada célula capacitiva da memória RAM do computador possui um endereço para que possa ser acessada pelo controlador de memória e pelo processador. Esse endereço que é representado na base hexadecimal nos sistemas operacionais é obviamente representado em base binária no hardware. Números hexadecimais são utilizados para que seja possível a representação de números grandes com menos dígitos, ocupando menos memória.
A abreviação RAM significa memória de acesso randômico, ou seja, a gente pode acessar qualquer parte da memória diretamente a qualquer momento, por exemplo, podemos acessar o bit 0 e imediatamente em seguida o bit 10.000.000.000 sem precisar aguardar muito tempo. Em um disco rígido não há essa facilidade pois o local do bit determina o tempo de espera para a sua leitura.
A memória RAM dos computadores possui um decodificador de endereços físicos que consegue acessar os bits corretos para que o conteúdo seja disponibilizado ao processador.





Veja o esquema de um circuito que controla o bloqueio ou a passagem de um sinal para a saída:


Controlador de passagem de sinal.

A porta "s~0 é do tipo AND, ou seja, a saída só é igual a "1" se as duas entradas também forem iguais a "1". Portanto, no circuito mostrado acima o sinal da entrada "e1" só passa para a saída "s" se o sinal da entrada "sel" (seleção) for igual a "1". Veja a tabela verdade da porta AND:


AND:

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1



*A saída da porta AND só é igual a 1 se as duas entradas forem iguais a 1.

Já o outro circuito esquematizado abaixo pode ser usado tanto para gravarmos dados na memória quanto para lermos. O circuito recebe como entrada um vetor de 3 bits (A, B, C) que contem o endereço da memória que deve ser lido ou gravado. A saída é formada por 8 bits que apontam cada um para seu respectivo bit na memória. Como são 3 bits de endereço então podem ser endereçados 8 bits de memória RAM. Só uma saída (um bit de memória) é ativada por vez. Na realidade são endereçados bilhões de bits. Vejamos um esquema detalhado de um decodificador 3x8:

Esquema detalhado de um decodificador 3x8.
As linhas coloridas ajudam a entender a lógica do circuito. Observando que os triângulos marrons são portas lógicas inversoras de sinal e os traços em cima das letras também significam inversão de sinal. As portas azuis são portas tipo AND de três entradas cada uma. Os círculos representam conexões do circuito. Vejamos exemplos:


Se o endereço do bit for "000" somente a primeira porta AND (a de cima) vai conseguir emitir um sinal 1 e ativar o bit de número 0 (o de cima). Isso porque todos os sinais que entram na primeira porta AND (a de cima) são invertidos e se tornam "111". Essa sequência "111" de bits produz a saída 1 na primeira porta AND. Todas as outras portas AND não recebem a sequência "111" e com isso emitem a saída 0 (*).






Se o endereço do bit for "001" somente a segunda porta AND (de cima para baixo) vai conseguir emitir um sinal 1 e ativar o bit de número 1 (o segundo de cima para baixo). Isso porque os bits A e B são invertidos transformando a sequência "001" em "111". Essa sequência "111" só entra na segunda porta AND (de cima para baixo, produzindo o sinal 1 em sua saída. Todas as outras portas AND não recebem a sequência "111" e com isso emitem a saída 0 (*). As tabelas verdade são as seguintes:

Expressões booleanas de um decodificador 3x8.

Observe na tabela abaixo que somente uma saída é ativada para cada endereço de bit.


Tabela verdade de um decodificador 3x8.

Se um controlador de passagem de sinal for colocado em cada saída A0 a An do decodificador 3x8, podemos controlar a saída do bit armazenado na célula de memória RAM (leitura), ou também controlar a chegada de um bit para ser armazenado (gravação). Podemos ter, por exemplo, um decodificador de endereços para leitura de bits e outro para armazenamento. Veja na figura abaixo:


Decodificador 3x8 com circuitos de controle de passagem de sinal.

A entrada "sel" que receber o sinal "1" deixa passar o bit armazenado na sua respectiva célula de memória para a sua respectiva saída "s". As entradas "e1" podem receber o valor das células de memória ou passar o seu valor para elas.


Essa é a representação simples de um decoder 3x8:

Esquema simples de um decodificador 3x8.


Um decodificador de 32 bits por exemplo recebe endereços de 32 bits que podem apontar para 4.294.967.296 bits, o que é igual a 512 megabytes. É um decodificador 32 x 4.294.967.296.

Nenhum comentário:

Postar um comentário