Questão Como um computador / SO pode dizer que tipo de RAM está na máquina?


Como o Mac OS X pode dizer que tipo de RAM está na máquina? Por exemplo, eu estava trabalhando em um que tinha RAM DDR3 @ 1600MHz e achei que não era possível conhecer a RAM sem abrir o gabinete fisicamente e olhar para ele. Como isso pode ser feito em outros sistemas?


78


origem


Nota: Eu removi os comentários porque eles não estavam indo a lugar algum. Você pode usar Super User Chat para discutir. - slhck
@Celeritas: revirei sua última edição. Perguntando porque um desenvolvedor / fabricante escolheu adicionar ou omitir um recurso de seu produto é não construtivo. - Karan
@ Karl Eu queria saber se o hardware do Mac ou o sistema operacional é de alguma forma diferente do que o hardware do Windows é executado que torna mais fácil determinar o tipo de memória RAM. Parece um recurso útil para ser construído no sistema operacional para que as pessoas saibam que tipo de RAM obter se quiserem atualizar. Você pode editar a pergunta para refletir o que eu acabei de dizer, mas reescrevê-la para que ela se encaixe melhor. - Celeritas
Já que você já perguntou se é possível fazer isso no Windows e recebeu respostas dizendo como, está claro que não há nenhuma diferença fundamental de hardware que impeça o Windows de exibir a informação se quiser (os dados do SPD, como você viu abaixo, são armazenados no módulo de RAM, e é acessível para qualquer sistema operacional / aplicativo que se preocupa em lê-lo). Além disso, não faz sentido discutir por que exatamente a MS escolhe não fazer isso, mesmo que seja útil para usuários finais. - Karan
Bus i2c é um padrão que qualquer sistema operacional pode interagir. O SPD apresenta-se como EEPROM de 128 bytes, 256 bytes ou 512 bytes. O SO só precisa coletar esses bytes, que obedecem a outro padrão chamado JEDEC, da EEPROM usando i2c e, em seguida, usar esses dados para descobrir de que tipo de memória está falando. É muito agnóstico do sistema operacional. - LawrenceC


Respostas:


Varas de RAM têm um pequeno chip sobre eles chamado o Presença Serial Detectar, que contém informações como capacidade, horários preferidos, fabricante e até mesmo um número de série.

As informações do SPD podem ser acessadas pelos sistemas operacionais usando o barramento i2c (que também inclui elementos como sensores de temperatura). Eu acho que você pode ler diretamente os SPDs do Linux usando vários utilitários i2c.

Esta imagem do artigo da Wikipédia tem uma boa imagem: e


146



No Linux, dmidecode --type memory permite que você veja algumas das informações. Aparentemente ele pode mostrar um fabricante e um número de série, mas pelo menos no meu sistema eles são reportados como simples ManufacturerN e SerNumN com N sendo o que parece ser o número do slot. - Michael Kjörling
eu pensei dmidecode analisou algo que o BIOS reúne na inicialização. O BIOS deve ler o SPD e reportar de acordo - bugs BIOSes não são novidade. - LawrenceC
+1 para a única resposta que menciona o SPD - Jonathon Reinhart
Parece-me que costumava haver um tempo em que a RAM não tinha chips SPD ... Pelo menos eu me lembro claramente de revisar listas de preços para RAM onde os itens estavam claramente marcados como SPD e não-SPD (era aproximadamente a tempo de introdução do padrão DIMM) - Mikhail
@ Mikhail sim, os SIMMs tinham 4 pinos para "detecção de presença" - estes eram puxados para cima ou para baixo para fornecer um identificador indicando o tamanho e a velocidade. ohlandl.ipv7.net/config/mempresence.html - ali1234


No Windows:

wmic memoryChip get /?

Fornecerá várias informações de RAM que você pode solicitar diretamente no prompt de comando.

Por exemplo,

wmic memorychip get serialnumber

Dá-lhe o número de série. Você também pode usar Speed, Model as vezes, Manufacturer e mais.

WMI é o método do Windows de consultar SMBIOS dados. Apple, Linux, Windows e qualquer outra pessoa que queira rodar na maioria dos hardwares precisam suportar o SMBIOS em algum nível, por diferentes razões.

Você pode usar SMBIOS (por exemplo, através de WMI ou WMIC no Windows) para também coletar informações sobre o disco rígido, informações de rede (é uma placa 10/100 ou 10/100/1000?).

Para dar um passo adiante, cada fabricante tem um código para endereços MAC em NICs. RAM também tem um código de fabricantes. Então tudo que você precisa fazer para obter seu código, por exemplo meus 2 x2GB neste laptop são 830B, é construir um banco de dados para os fabricantes (830B pode ser uma marca e então revendido também!) E também quais modelos significam o quê. É assim que funciona o CPUz - consultas básicas e um banco de dados realmente completo e atual.


47



Observe que o WMI pode consultar informações de DMI / SMBus, mas não é a implementação do Windows. Além disso, dmidecode que puramente consulta e decodifica informações de DMI é disponível como uma porta do Windows também. - syneticon-dj
@ syneticon-dj Não tenho certeza se você adicionou algo aqui e seu ponto não está claro. O WMI é o Windows Management Instrumentation, entre seus recursos e funções está lendo o SMBUS. Mas se o seu ponto era todo anorks são bnorks mas nem todos os bnorks são anorks ... então sim, exatamente ...? - Austin T French
Meu ponto é que o seu texto é impreciso ao ponto de ser fácil entender mal. WMI posso interface com SMBIOS, mas não é em qualquer aspecto a sua implementação (que reside no lado do hardware / BIOS e não dentro do sistema operacional). - syneticon-dj
Ele diz: "WMI é a implementação do padrão SMBus para dispositivos de leitura no Windows". E é a maneira do Windows de ler / consultar e saber o que está dentro ... Mas o WMI também faz muito mais. - Austin T French
@ syneticon-dj - faça uma edição se estiver errado. - Enigma


A velocidade e o tipo de memória são negociados com o BIOS e podem ser lidos pelo sistema operacional.

Há um site muito bom que lhe dá um nível mais profundo de compreensão sobre essas coisas em http://www.computermemoryupgrade.net/index1.html

Mas você pode facilmente descobrir quais tipos e velocidade você tem sem abrir a tampa via:

Apple -> Sobre este Mac -> Mais informações -> Relatório do sistema

Abra o hardware -> memória

Você deve ver cada pedaço de memória RAM, incluindo tamanho, tipo e velocidade (e por diversão, status para se certificar de que está tudo bem)

System Report with Memory


18





Em muitas distribuições Linux (por exemplo, Debian), você pode usar o lsh hardware lister

sudo lshw |grep DDR
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)
         description: SODIMM DDR3 Synchronous 1067 MHz (0.9 ns)

Eu acho que a RAM, como todos os outros hardwares, relata sua descrição e capacidades para o sistema operacional. Se o Linux conseguir, não vejo razão para o OSX não conseguir.

Se a sua distribuição não tiver o lshw instalado, você poderá instalá-lo usando o gerenciador de pacotes, por exemplo,

aptitude install lshw

ou faça o download do site do projeto.


13



PARA SUA INFORMAÇÃO, lshw não está disponível no OS X: - slhck
@ b.long reação kneejerk porque a questão é marcada win / osx mas não Linux? - Dan Neely
De fato, desculpe por isso - eu não li a pergunta inteira (ou título aparentemente). Eu pensei que estava perguntando sobre qualquer sistema operacional - blong
@slhck Meu mal, eu só fiz uma busca rápida no google por OSX lshw e viu esta postagem no site da Apple e eu assumi que existia para o OSX sem realmente ler o post em questão. (corar). Enfim, meu ponto aqui é que, se o Linux pode ver o tipo de RAM, por que não deveria OSX? - terdon


No Mac OS X, execute a partir do terminal:

$ system_profiler SPMemoryDataType

8





O stick RAM armazena seu tempo, velocidade e tipo em um pequeno chip no bastão. Como o seu computador sabe com que rapidez rodar a RAM sem corromper seus dados? Mesmo chip. A Apple simplesmente escolhe exibir esses dados também.


4



Chama-se SPD - Presença Serial Detectar. - David Schwartz
A primeira frase não faz muito sentido. - Michael Kjörling
E isso não faz sentido? Faz sentido para mim, e essa é a primeira queixa que recebi. - MarcusJ


Para complementar a resposta do ultrasawblade, no Linux, para decodificar os dados do SPD, você pode usar o decode-dimms  perl roteiro do i2c-tools:

sudo modprobe -a i2c-i801 eeprom
decode-dimms

Ou para o formato formatado em HTML:

decode-dimms -f | w3m -T text/html

(w3m sendo um navegador / pager baseado em texto). Ou claro:

decode-dimms -f > dimms.html
xdg-open dimms.html

2





Speccy é um software do Windows que lhe dirá muitas coisas sobre o seu computador, incluindo o tipo de RAM / tamanho / total de slots / slots disponíveis.


1



Eu costumava usar CPU-Z para obter essas informações em máquinas Windows - fornece informações muito detalhadas sobre CPU, RAM e muito mais. É pequeno e limpo e sendo atualizado regularmente. - Mikhail