Como um computador / sistema operacional pode dizer que tipo de RAM há na máquina?

81

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

Celeritas
fonte
6
Nota: removi os comentários porque eles não estavam indo a lugar algum. Você pode usar o bate - papo do superusuário para discutir.
slhck
@Celeritas: recuperei sua última edição. Perguntar por que um desenvolvedor / fabricante optou por adicionar ou omitir um recurso de seu produto não é construtivo .
28413 Karan
@ Karan Eu queria saber se o hardware ou sistema operacional Mac é de alguma forma diferente do hardware que o Windows executa, o que facilita a determinação do tipo de RAM. Parece que um recurso útil deve ser incorporado ao 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 reformulá-la para que se encaixe melhor.
28913 Celeritas
1
Como você já perguntou se é possível fazê-lo no Windows e recebeu respostas dizendo como, fica claro que não há diferença fundamental de hardware que impede o Windows de exibir as informações, se desejar (os dados SPD como você viu abaixo são armazenados no módulo RAM e é acessível a qualquer sistema operacional / aplicativo que queira lê-lo). Além disso, não faz sentido discutir por que exatamente a MS escolhe não fazê-lo, mesmo que seja útil para os usuários finais.
28413 Karan
O barramento i2c é um padrão com o qual qualquer sistema operacional pode interagir. O SPD se apresenta como uma EEPROM de 128 bytes, 256 bytes ou 512 bytes. O sistema operacional só precisa coletar esses bytes, que obedecem a outro padrão chamado JEDEC, da EEPROM usando o i2c e, em seguida, usam esses dados para descobrir que tipo de memória está falando. É muito independente do sistema operacional.
LawrenceC

Respostas:

147

As unidades de RAM possuem um pequeno chip chamado Serial Presence Detect , que contém informações como capacidade, horários preferidos, fabricante e até um número de série.

As informações do SPD são acessíveis pelos sistemas operacionais usando o barramento i2c (que também inclui itens 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 Wikipedia tem uma boa imagem: e

LawrenceC
fonte
2
No Linux, dmidecode --type memorypermite ver algumas informações. Aparentemente, pode gerar um fabricante e um número de série, mas pelo menos no meu sistema, esses são relatados de maneira simples ManufacturerNe SerNumNcom o Nque parece ser o número do slot.
a CVn 27/03
2
Eu pensei em dmidecodeanalisar algo que o BIOS monta na inicialização. O BIOS deve ler o SPD e informar adequadamente - os BIOS de buggy não são novidade.
LawrenceC
1
+1 para a única resposta que menciona SPD
Jonathon Reinhart
1
Parece-me que costumava haver um tempo em que os sticks de RAM não tinham chips SPD ... Pelo menos, lembro-me de revisar as listas de preços de RAM, onde os itens eram claramente marcados como SPD e não SPD (foi aproximadamente a um introdução do padrão DIMM)
Mikhail
1
@ Mikhail sim, os SIMMs tinham 4 pinos para "detecção de presença" - estes foram puxados para cima ou para baixo para fornecer um identificador indicando tamanho e velocidade. ohlandl.ipv7.net/config/mempresence.html
ali1234 31/03
47

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

Fornece o número de série. Você também pode usar Speed, Modelàs vezes Manufacturere muito mais.

WMI é o método do Windows para consultar dados SMBIOS . Apple, Linux, Windows e qualquer pessoa que queira executar a maioria dos hardwares fabricados precisam suportar SMBIOS em algum nível, por diferentes motivos.

Você pode usar o 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, todo fabricante possui um código para endereços MAC nas NICs. A RAM também possui um código de fabricante. Portanto, tudo o que você precisa fazer para obter seu código, por exemplo, meus 2 x2GB neste laptop são 830B, é criar um banco de dados para os fabricantes (830B pode ser uma marca e depois revender também!) E também quais modelos significam o que. Acredito que é assim que o CPUz funciona - consultas básicas e um banco de dados realmente completo e atual.

Austin T Francês
fonte
3
Observe que o WMI pode consultar informações de DMI / SMBus, mas não é a implementação do Windows . Além disso, dmidecodeque puramente consulta e decodifica informações DMI, também está disponível como uma porta do Windows .
syneticon-dj 28/03
@ syneticon-dj Não tenho certeza se você adicionou algo aqui e seu argumento não está claro. O WMI é a Instrumentação de Gerenciamento do Windows, entre suas capacidades e funções está a leitura do SMBUS. Mas se o seu argumento era que todos os anorks são bnorks, mas nem todos os bnorks são anorks ... então sim, exatamente ...?
Austin T French
O que quero dizer é que sua redação é imprecisa a ponto de ser fácil entender mal. O WMI pode interagir com o SMBIOS, mas não é de forma alguma sua implementação (que reside no lado do hardware / BIOS e não no SO).
syneticon-dj
Diz: "WMI é a implementação do Windows do padrão SMBus para dispositivos de leitura". E é a maneira do Windows ler / consultar e saber o que há dentro ... Mas o WMI também faz muito mais.
Austin T French
2
@ syneticon-dj - faça uma edição se estiver errada.
Enigma
18

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

Existe um site muito bom, oferecendo um nível mais profundo de entendimento 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 por:

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

Hardware aberto -> Memória

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

Relatório do sistema com memória

jnovack
fonte
13

Em muitas distribuições Linux (por exemplo, Debian), você pode usar a lista de hardware lshw

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 recursos ao sistema operacional. Se o Linux pode fazer isso, não vejo razão para o OSX não poder.

Se 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 no site do projeto.

Terdon
fonte
FYI, lshwnão está disponível no OS X:
slhck 27/03
@ b.long reação no joelho porque a pergunta está marcada como win / osx, mas não no Linux?
Dan Neely 27/03
Na verdade, desculpe por isso - eu não li a pergunta inteira (ou o título aparentemente). Eu pensei que estava perguntando sobre qualquer sistema operacional
blong
@ sllck Meu mal, eu fiz uma rápida pesquisa no google OSX lshwe vi este post no site da apple e presumi que ele existisse para o OSX sem realmente ler o post em questão. (corar). Enfim, o que quero dizer aqui é que, se o Linux pode ver o tipo de RAM, por que o OSX não deveria?
terdon
9

No Mac OS X, execute o terminal:

$ system_profiler SPMemoryDataType
Borys Borysenko
fonte
4

O cartão de memória RAM armazena seu tempo, velocidade e tipo em um pequeno chip no cartão. Como o seu computador sabe o quão rápido é executar a RAM sem corromper seus dados? Mesmo chip. A Apple simplesmente escolhe exibir esses dados também.

MarcusJ
fonte
3
Chama-se SPD - Serial Presence Detect .
David Schwartz
A primeira frase não faz muito sentido.
a CVn 27/03
2
E quanto a isso não faz sentido? Faz sentido para mim, e essa é a primeira reclamação que recebi.
MarcusJ
2

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

sudo modprobe -a i2c-i801 eeprom
decode-dimms

Ou para o formato HTML sofisticado:

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
sch
fonte
1

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

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