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:
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:
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