Pode um endereço de CPU de 32 bits 4 Gigabits ou 4 Gigabytes de espaço de endereço de memória?

0

Eu estou querendo saber se 4 GB implica "Gigabit" ou "Gigabyte" em relação ao sistema operacional de 32 bits que endereça "apenas 4 GB de espaço de endereço"?

Outras postagens mencionam 2 ^ 32 Bit igual a 4294967296 bytes. Mas se eles falam sobre 32 bits, como é que o resultado é dado em bytes?

Ou estou faltando alguma coisa?

    
por Oldkid 10.01.2014 / 11:39

3 respostas

10

Na maioria das arquiteturas, a memória endereçamento é feita em bytes.

Um campo de endereço de 32 bits permite que você especifique 2 ^ 32 (cerca de 4,3 bilhões) endereços.

Isso significa que uma CPU que usa endereçamento de 32 bits e endereça a RAM em termos de bytes pode endereçar nativamente 2 ^ 32 bytes, que é igual a 4 GiB (gibibytes).

Em muitas arquiteturas atuais, há outras questões a serem consideradas, como o alinhamento do endereço de solicitação de memória, que limita quais endereços podem ser usados para o acesso real. Mas isso não muda a quantidade de RAM que a CPU pode endereçar, apenas muda como ela pode ser endereçada, e a menos que você esteja trabalhando muito perto da CPU, isso é normalmente abstraído do programador, e certamente do usuário.

Existem maneiras (como a Extensão de Endereço Físico, PAE) para contornar a limitação imposta pela largura de endereço de 32 bits, da mesma forma que as CPUs de 16 bits usaram várias técnicas (incluindo segmentação) para lidar com mais de 64 KiB (2 ^ 16 bytes) de RAM. Além disso, se o endereçamento fosse feito em uma unidade diferente (por exemplo, palavras de 16 bits em vez de bytes de 8 bits), a quantidade real de memória que poderia ser endereçada mudaria de acordo; Por exemplo, usando palavras de 16 bits em vez de bytes de 8 bits, uma largura de endereço de 32 bits permitiria o endereçamento de 8 GiB, porque cada endereço realmente endereça dois bytes.

    
por 10.01.2014 / 11:56
0

Cada byte tem um endereço de memória, portanto, o barramento de endereços de 32 bits pode ser usado para acessar 4 gigabytes de memória.

A quantidade de memória que você pode endereçar é os valores possíveis do barramento de endereços (2 ^ 32) vezes o tamanho de cada unidade de memória (1 byte), então 2 ^ 32 * 1 byte = 4294967296 bytes.

Você também pode expressar isso como bits, se desejar, ou seja, 2 ^ 32 * 8 bits = 34359738368 bits.

A unidade na qual você expressa o resultado, é a mesma unidade que você expressa a unidade de memória. O número possível de endereços não tem uma unidade, então enquanto o barramento de endereços é de 32 bits, o número de endereços possíveis não é 4294967296 bits, é apenas 4294967296.

Se, por exemplo, você tivesse um barramento de endereços de 16 bits e cada unidade de memória tivesse 4 bytes, você poderia acessar 2 ^ 16 * 4 bytes = 262144 bytes.

    
por 10.01.2014 / 12:01
0

4GB refere-se a 4 Gigabytes e o 32-bit no sistema operacional não está relacionado dessa forma com os números.

Não é contado em bits, é contado em bytes quando se usa 2 ^ 32. Mas essa limitação não se deve a uma coisa e pode variar dependendo das diferentes configurações de E / S no mobo, de modo que ela pode variar muito de 2 Gigabytes para aproximadamente 4 Gigabytes. E com PAE isso pode ser superado.

    
por 10.01.2014 / 11:47

Tags