Existe uma maneira de determinar programaticamente / universalmente a velocidade máxima de RAM que um computador suporta?

0

Digamos que eu tenha um computador, arquitetura padrão de 32 ou 64 bits. Eu posso colocar qualquer sistema operacional nele (* nix, Windows, etc). Existe alguma forma de o computador interrogar o hardware quanto à velocidade máxima suportada pela RAM, que funciona universalmente ?

Por "universalmente", quero dizer que esta solução deve funcionar mesmo em dispositivos que não são conhecidos por ela / em seu dicionário interno de partes / chipsets / processadores / whatever. No momento, posso executar dmidecode em um MB aleatório e 9/10 vezes ele me fornecerá as especificações corretas do sistema atual. Mas isso não me diz a velocidade máxima suportada da RAM, e também está errado mais do que eu gostaria: especialmente em placas-mãe mais novas rodando sistemas operacionais mais antigos, e em estranhos ambientes de compatibilidade UEFI / BIOS.

Isso é possível? Se não, por que não?

    
por Zac B 14.02.2013 / 06:09

1 resposta

1

Eu diria que é fácil mostrar que é impossível.

Em um sistema moderno, o controlador de memória está na CPU. A frequência de memória máxima suportada é a mais baixa do que a CPU suporta e o que a placa-mãe suporta. Sem um banco de dados da CPU, a única maneira de informar a freqüência máxima que a CPU suporta é o BIOS informar. Embora os BIOSs devam relatar a freqüência real do clock na tabela DMI, não há entrada padrão para a frequência máxima suportada.

Outro problema é que a tabela DMI tem a freqüência de clock real. Se você estiver procurando pela freqüência efetiva (que é como a velocidade da memória RAM é normalmente reportada), isso também exigiria que o programa compreendesse a relação efetiva entre a tecnologia de RAM. E se QDR RAM se tornar popular? Você pode escrever um programa hoje que possa detectar com precisão o QDR SDRAM que ainda não existe como uma especificação?

    
por 14.02.2013 / 06:14