O que em um computador determina quanta memória um endereço de memória contém?

4

Nas minhas notas, encontrei as seguintes citações de fontes desconhecidas:

a byte-addressable 32-bit computer can address 2^32 = 4,294,967,296 bytes of memory, or 4 gibibytes (GiB).

a system with a 32-bit address bus can address 2^32 (4,294,967,296) memory locations. If each memory address holds one byte, the addressable memory space is 4 GB.

o que é em um computador para determinar a quantidade de memória que um endereço de memória mantém, ou seja, se o computador é endereçável por byte, endereçável por palavra ou endereçável por xxxx? É a própria RAM, CPU ou outra coisa?

Nota: Minha pergunta não tem nada a ver com programação. Eu acho que é diferente da perspectiva de programação, onde a quantidade de memória que o endereço de um objeto mantém depende do seu tipo de dados (int, float, ...).

Obrigado!

    
por Ben 25.12.2013 / 04:34

3 respostas

8

Sem entrar nos detalhes técnicos (o que eu estaria errado de qualquer maneira), o próprio hardware do computador é projetado e construído de forma que cada endereço se refira a um byte, ou 2 bytes ou 4 bytes, ou o que for. O sistema operacional não tem escolha no assunto; deve ser escrito para se adequar ao design do hardware.

A maioria, provavelmente todos, os computadores em execução hoje são endereçáveis por byte e um byte é de 8 bits. Designs anteriores foram diferentes.

O número de bits em um endereço determina o número de endereços. O número de bits armazenados em um endereço é especificado pelo design; haverá um pino e uma linha para transportar os dados. Multiplique esses números para obter o número máximo de bits que podem ser armazenados.

Para responder à sua pergunta real: é a RAM em si - sim, CPU - sim, ou qualquer outra coisa - sim, a placa-mãe e o chipset. Tudo isso deve ser projetado para funcionar em conjunto e todos precisam concordar com o tamanho e o endereçamento de bytes.

    
por 25.12.2013 / 05:35
6

Antigamente, os processadores tinham pinos e alguns deles eram usados para se comunicar com a memória.

Você tinha pinos, para especificar um endereço e pinos D, para ler ou gravar dados. Um típico processador de 8 bits do início dos anos 80 teria os pinos D0 a D7 e A0 a A15. Significa que poderia endereçar até 2 ^ 16 8 bits (D0 a D7) bytes de memória ou 64K. CPUs de 16 bits teriam dezesseis linhas D (o exemplo m68k ) e CPUs de 32 bits (como o Pentium ) teria trinta e dois.

É possível ter uma arquitetura de 16 bits com um barramento externo de 8 bits, ou arquitetura de 32 bits com um barramento externo de 16 bits - há várias coisas que determinam o "bit" de uma CPU e largura de dados é apenas um deles. A arquitetura interna ainda pode ser diferente.

Olhando para o pinagem (embora as CPUs não tenham mais" pinos ", a placa tem pinos e a CPU agora tem" terras ") de algo recente como o Core i7 - as coisas mudaram. Eu não tenho certeza do que coisas como DDR0_DQ [63] significam - a relação entre CPU e memória é complexa hoje devido a CPUs com armazenamento em cache, NUMA e multi-core.

Portanto, é uma combinação da arquitetura da CPU e da interface de memória física que isso determina.

    
por 25.12.2013 / 05:06
1

what is it in a computer to determine how much memory a memory address holds?

Boa pergunta no nível de entrada.

Eu diria que a resposta simples é a troca entre custo e complexidade.

Por exemplo, houve computadores de um bit, que endereçaram apenas um bit de cada vez, deslocando bits e, em seguida, montando-os juntos (concedido há muito tempo atrás). Eles mantêm a fiação ao mínimo. E havia computadores de palavra de dados de 4 bits que não vão tão longe. O computador em que estou digitando recebe uma palavra com 64 bits de largura por vez. Mas note que as máquinas de 32 bits fazem a mesma coisa apenas obtendo duas palavras de 32 bits e montando-as juntas como uma só. Também me lembro do antigo mainframe da IBM, que tinha cerca de 10 maneiras diferentes de endereçar palavras. Mas a maior parte disso foi feita em firmware para a convienência do programa, já que na verdade estava endereçando apenas um tamanho de palavra de memória física (para manter as coisas simples no hardware).

Portanto, a resposta é que existem muitas maneiras de fazer as coisas e muitas maneiras de projetar as coisas, e praticamente todas as combinações entre elas. Custo e velocidade são onde as decisões são tomadas.

    
por 25.12.2013 / 09:24

Tags