syqe
Power Member
Pelo fórum (e internet) a dentro vejo várias vezes utilizadores cometerem o mesmo erro informando outros utilizadores com frases:
"Vai para 64-bit que a versão 32-bit só detecta 3,2 GB de ram.", como esta existem as variantes 3,5 / 3,75 / 3,25.
Ora isto é um enorme erro.
É a dimensão da palavra de instrução do CPU.
Essa palavra pode ser usada para cálculos (indicação de constantes, como o número 10: 00000000000000000000000000000101) ou endereços de memória/dispositivos que funcionem por interrupções, que também serão constantes numéricas.
Esta dimensão da palavra contempla também os acessos à memória RAM. Daí os processadores terão 32 bits ou 64 bits para aceder à memória RAM.
Assim, facilmente se observa que 2^32 = 4294967296 posições de memória. Dado que cada posição de memória é constituida por 8 bits = 1 byte teremos os 4294967296 bytes de memória para endereçar.
Efectuando algumas conversões:
4294967296 B = 4194304 KB = 4096 MB = 4 GB
Daqui podemos concluir que o limite de memória para 32 bits é 4 GB.
Já para 64-bits: 2^64 = 18446744073709551616 B = 18014398509481984 KB = 17592186044416 MB = 17179869184 GB = 16777216 TB = 16384 PB = 16 EB.
Isto são 16 ExaBytes de memória.
Tão depressa este não vai ser um bottleneck.
Isto deve-se que dentro destes 4 GB de memória "visível" ao processador também estão incluídos todos os endereçamentos do hardware da máquina, incluindo, obviamente, a memória da placa gráfica.
Escusado será dizer que com o aumento gradual deste tipo de memória, cada vez mais se vêm casos de RAM "que não aparece".
Logo se existem endereços que estão a ser reservados para outro hardware, menos endereços sobram para o endereçamento de memória RAM, já não tendo o processador os 2^32 para calculo, mas sim 2^32 menos o número bits utilizados em endereços reservados para o outro hardware.
Logo isto será aplicado a qualquer SO 32-bit seja Vista, XP ou qualquer distribuição de Linux.
Digo isto porque também já li pessoas a dizerem que isto apenas se aplicaria no Vista, ou ao contrário. Ora isto não faz sentido.
Se quiserem ter acesso total aos 4GB de memória ou mais terão que ter um SO 64-bit.
Numa arquitectura 32-bit se um calculo ultrapassar o número 4294967296 este terá que ser dividido em dois cálculos, logo mais trabalho para o processador.
Assim em 64-bit este calculo seria feito apenas de uma vez. Obviamente isto só será aplicado se o SO e a aplicação em questão forem 64-bit.
Isto porque em Windows, utilizando a tecnologia WoW64 (Windows on Windows 64) é possível correr aplicações 32-bit num SO 64-bit.
Se detectarem erros agradeço que mos identifiquem e corrigirei assim que possível.
"Vai para 64-bit que a versão 32-bit só detecta 3,2 GB de ram.", como esta existem as variantes 3,5 / 3,75 / 3,25.
Ora isto é um enorme erro.
1) O Processador
Quando se fala de um processador ser de 32-bit ou 64-bit, isto indica-nos o número de bits que o processador consegue utilizar para efectuar cálculos.É a dimensão da palavra de instrução do CPU.
Essa palavra pode ser usada para cálculos (indicação de constantes, como o número 10: 00000000000000000000000000000101) ou endereços de memória/dispositivos que funcionem por interrupções, que também serão constantes numéricas.
Esta dimensão da palavra contempla também os acessos à memória RAM. Daí os processadores terão 32 bits ou 64 bits para aceder à memória RAM.
Assim, facilmente se observa que 2^32 = 4294967296 posições de memória. Dado que cada posição de memória é constituida por 8 bits = 1 byte teremos os 4294967296 bytes de memória para endereçar.
Efectuando algumas conversões:
4294967296 B = 4194304 KB = 4096 MB = 4 GB
Daqui podemos concluir que o limite de memória para 32 bits é 4 GB.
Já para 64-bits: 2^64 = 18446744073709551616 B = 18014398509481984 KB = 17592186044416 MB = 17179869184 GB = 16777216 TB = 16384 PB = 16 EB.
Isto são 16 ExaBytes de memória.
Tão depressa este não vai ser um bottleneck.
2) Outros endereçamentos
Já provamos que o limite dos 32-bit são 4GB então porquê de nalguns SO's apenas mostrar 3 / 3,2 / 3,5 GB de RAM?Isto deve-se que dentro destes 4 GB de memória "visível" ao processador também estão incluídos todos os endereçamentos do hardware da máquina, incluindo, obviamente, a memória da placa gráfica.
Escusado será dizer que com o aumento gradual deste tipo de memória, cada vez mais se vêm casos de RAM "que não aparece".
Logo se existem endereços que estão a ser reservados para outro hardware, menos endereços sobram para o endereçamento de memória RAM, já não tendo o processador os 2^32 para calculo, mas sim 2^32 menos o número bits utilizados em endereços reservados para o outro hardware.
3) Sistema Operativo
Os factos apresentados anteriormente dizem referência à arquitectura do sistema, e não ao SO em si.Logo isto será aplicado a qualquer SO 32-bit seja Vista, XP ou qualquer distribuição de Linux.
Digo isto porque também já li pessoas a dizerem que isto apenas se aplicaria no Vista, ou ao contrário. Ora isto não faz sentido.
Se quiserem ter acesso total aos 4GB de memória ou mais terão que ter um SO 64-bit.
4) Para além da memória
O facto de o processador passar a ter capacidade para trabalhar com 4+ GB de memória RAM, não é a única vantagem de utilizar uma arquitectura 64-bit, como já disse mais atrás estes 64-bit são utilizados para todos os cálculos do processador.Numa arquitectura 32-bit se um calculo ultrapassar o número 4294967296 este terá que ser dividido em dois cálculos, logo mais trabalho para o processador.
Assim em 64-bit este calculo seria feito apenas de uma vez. Obviamente isto só será aplicado se o SO e a aplicação em questão forem 64-bit.
Isto porque em Windows, utilizando a tecnologia WoW64 (Windows on Windows 64) é possível correr aplicações 32-bit num SO 64-bit.
Se detectarem erros agradeço que mos identifiquem e corrigirei assim que possível.
Última edição: