Ir ao conteúdo
  • Cadastre-se

Endereçamento de memória, dúvida! Bits ou bytes? Ajuda aqui...


PedroSt

Posts recomendados

Vi em um vídeo que a memória RAM é como se fosse uma matriz, divida em células, e cada célula possui um transistor e um capacitor, quando o capacitor está cheio equivale a 1, quando está vazio, equivale a 0, ou seja, cada célula é 1 bit.

Disse também que para acessar a célula (1 bit) é preciso saber a linha e a coluna que cruzam essa célula. Isso seria o endereço do bit. Mas afinal, a memória possui endereço de bytes ou bits? Quando eu exibo o endereço de uma variável no C, só mostra 1 número. Isso me levou pensar que é mostrado apenas o endereço do primeiro bit para esse byte, assim como quando criamos um vetor... Estou certo? Se eu estiver, o número mostrado quando exibo o endereço é uma junção de linha e coluna?

Link para o comentário
Compartilhar em outros sites

Concordo com 99%.

O número mostrado é o índice da memória.

Exemplo;

Se um pente de memória tem 128 bytes RAM.

Então os endereços de variáveis vão de 0 a 127.

Se declarar:

char ch;

Essa pode estar no ponto 0x38.(56)

Estenda esse conceito para 8 gigas de RAM.

PS: cada célula atualmente tem 8bits equivale a 1byte.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Você disse que concorda, mas não respondeu minha pergunta muito bem... Tipo, eu declaro um inteiro, esse inteiro vai ocupar 4 bytes na memória RAM do PC. Se eu exibir o endereço desse inteiro, será exibido apenas o endereço do primeiro byte. E o endereço do primeiro byte, é o endereço do primeiro BIT? É o endereço da primeira célula linha e coluna?

Link para o comentário
Compartilhar em outros sites

Na eletronica digital :: eu nao sei muito porém, é

"linhas e colunas de acesso a bits de memória indexada,e para renovação de cargas de continuidade de dados."

Sua dúvida agora saiu do aspecto da linguagem. Se essas colunas e linhas tem algo haver com número da célula de memória de uma variável qualquer em C? a resposta é sim. Não a junção e se a multiplicação;

Exemplo:

&val = 264890 = (CAS x RAS)

Que é a primeira célula eletrizada

Da sequência de bytes.

PS.: alguém me corrija pois não tenho certeza.

Link para o comentário
Compartilhar em outros sites

Normalmente quando se fala em célula é em grupo de bits e o tamanho da célula pode variar dependendo do fabricante, mas normalmente é 1 byte (ou mais) e nesse caso a menor unidade endereçável é 1 byte.

Você nunca vai endereçar 1 bit por vez (pode manipulá-los bit-a-bit, mas aí já é outra história), quando você exibe o endereço de um dado é o fabricante ou compilador que determina o tamanho ponteiro/endereço desse dado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@PedroSt

 

 

Como você já deve ter percebido, podemos tratar desse assunto em diversos níveis de abstração: desde a eletrônica digital, passando pelo Assembly, até a programação em linguagem de alto nível.

 

 

Você fala sobre memória RAM. Mas memória RAM de onde? Do hardware do PC? RAM interna de algum microcontrolador?

 

Creio que a melhor forma de responder a essa sua pergunta seria consultar o datasheet do processador/microcontrolador. Cada um vai permitir uma particularidade.

 

 

Há microcontroladores que permitem endereçar bits:

 

http://en.wikipedia.org/wiki/Intel_MCS-51(ver a parte sobre Arquitetura de memória)

 

 

No caso do PC, a menor unidade de memória endereçável é o byte. Ou seja, um agrupamento de 8 bits é o mínimo que você consegue mover para um registrador da CPU com uma única instrução.

 

 

Leitura sugerida: Arquitetura de Computadores.

 

 

 

[ ]'s

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...