¿Cómo puede una computadora / SO saber qué tipo de RAM hay en la máquina?

81

¿Cómo puede Mac OS X saber qué tipo de RAM hay en la máquina? Por ejemplo, estaba trabajando en uno que tenía RAM DDR3 a 1600MHz y pensé que no era posible conocer la RAM sin abrir físicamente la carcasa y mirarla. ¿Cómo se puede hacer esto en otros sistemas?

Celeritas
fuente
66
Nota: he eliminado los comentarios ya que no iban a ninguna parte. Puede usar Super User Chat para discutir.
slhck
@ Celeritas: he revertido tu última edición. Preguntar por qué un desarrollador / fabricante eligió agregar u omitir una característica de su producto no es constructivo .
Karan
@Karan Me preguntaba si el hardware o el sistema operativo Mac es de alguna manera diferente al hardware con el que se ejecuta Windows, lo que hace que sea más fácil determinar el tipo de RAM. Parece una característica útil que se integrará en el sistema operativo para que las personas sepan qué tipo de RAM deben obtener si desean actualizar. Puede editar la pregunta para reflejar lo que acabo de decirle, pero reformúlela para que se ajuste mejor.
Celeritas
1
Como ya ha preguntado si es posible hacerlo en Windows y ha recibido respuestas que le dicen cómo, está claro que no hay una diferencia fundamental de hardware que evite que Windows muestre la información si lo desea (los datos de SPD que ha visto a continuación se almacenan en el módulo RAM, y es accesible para cualquier sistema operativo / aplicación que quiera leerlo). Más allá de esto, no tiene sentido discutir por qué exactamente la EM elige no hacerlo, incluso si es útil para los usuarios finales.
Karan
El bus i2c es un estándar con el que cualquier sistema operativo puede interactuar. El SPD se presenta como una EEPROM de 128 bytes, 256 bytes o 512 bytes. El sistema operativo solo necesita recopilar estos bytes, que obedecen a otro estándar llamado JEDEC, de la EEPROM usando i2c y luego usar esos datos para averiguar de qué tipo de memoria está hablando. Es muy independiente del sistema operativo.
LawrenceC

Respuestas:

147

Las memorias RAM tienen un pequeño chip llamado Detección de presencia en serie , que contiene información como la capacidad, los tiempos preferidos, el fabricante e incluso un número de serie.

Los sistemas operativos pueden acceder a la información SPD utilizando el bus i2c (que también incluye elementos como sensores de temperatura). Creo que puede leer directamente los SPD de Linux utilizando varias utilidades i2c.

Esta imagen del artículo de Wikipedia tiene una buena imagen: mi

LawrenceC
fuente
2
En Linux, le dmidecode --type memorypermite ver parte de la información. Aparentemente, puede generar un fabricante y un número de serie, pero al menos en mi sistema se informan como simples ManufacturerNy SerNumNcon Nlo que parece ser el número de ranura.
un CVn
2
Pensé en dmidecodeanalizar algo que el BIOS pone en marcha en el arranque. El BIOS debería leer el SPD e informar en consecuencia; sin embargo, los BIOS con errores no son nada nuevo.
LawrenceC
1
+1 por la única respuesta que menciona SPD
Jonathon Reinhart
1
Me parece que solía haber un momento en que las memorias RAM no tenían chips SPD ... Al menos recuerdo claramente haber revisado las listas de precios para RAM, donde los artículos estaban claramente marcados como SPD y no SPD (fue aproximadamente a momento de introducir el estándar DIMM)
Mikhail
1
@Mikhail sí, los SIMM tenían 4 pines para "detección de presencia": estos se tiraron hacia arriba o hacia abajo para proporcionar un identificador que indicara el tamaño y la velocidad. ohlandl.ipv7.net/config/mempresence.html
ali1234
47

En Windows:

wmic memoryChip get /?

Le dará diversa información de RAM que puede solicitar directamente desde el símbolo del sistema.

Por ejemplo,

wmic memorychip get serialnumber

Te da el número de serie. También puedes usar Speed, a Modelveces, Manufacturery más.

WMI es el método de Windows para consultar datos SMBIOS . Apple, Linux, Windows y cualquier otra persona que desee ejecutar en la mayoría del hardware debe admitir SMBIOS en algún nivel, por diferentes razones.

Puede usar SMBIOS (por ejemplo, a través de WMI o WMIC en Windows) para recopilar también información del disco duro, información de red (¿es una tarjeta 10/100 o 10/100/1000?).

Para ir un paso más allá, cada fabricante tiene un código para las direcciones MAC en las NIC. RAM también tiene un código de fabricante. Entonces, todo lo que tiene que hacer para obtener su código, por ejemplo, mis 2 x2GB en esta computadora portátil son 830B, es construir una base de datos para los fabricantes (¡830B podría ser una marca y luego revenderla también!) Y también qué modelos significan qué. Creo que así es como funciona CPUz: consultas básicas y una base de datos realmente completa y actual.

Austin T French
fuente
3
Tenga en cuenta que WMI puede consultar información DMI / SMBus pero no es la implementación de Windows de la misma . Además, dmidecodeque solo consulta y decodifica la información DMI también está disponible como un puerto de Windows .
syneticon-dj
@ syneticon-dj No estoy seguro de que hayas agregado nada aquí y tu punto no está claro. WMI es Instrumental de administración de Windows, entre sus capacidades y deberes está leyendo SMBUS. Pero si su punto era que todos los anorks son bnorks pero no todos los borks son anorks ... entonces sí, ¿exactamente ...?
Austin T French
Mi punto es que su redacción es inexacta hasta el punto en que es fácil de entender mal. WMI puede interactuar con SMBIOS, pero no se trata en absoluto de su implementación (que reside en el lado del hardware / BIOS y no en el sistema operativo).
syneticon-dj
Dice: "WMI es la implementación de Windows del estándar SMBus para dispositivos de lectura". Y es la forma de Windows de leer / consultar y saber lo que hay dentro ... Pero WMI también hace mucho más.
Austin T French
2
@ syneticon-dj: realiza una edición si está mal.
Enigma
18

La velocidad y el tipo de memoria se negocian con la BIOS y el sistema operativo puede leerlos.

Hay un muy buen sitio web que le brinda un nivel más profundo de comprensión sobre estas cosas en http://www.computermemoryupgrade.net/index1.html

Pero puede averiguar fácilmente qué tipos y velocidad tiene sin abrir la cubierta a través de:

Apple -> Acerca de esta Mac -> Más información -> Informe del sistema

Hardware abierto -> Memoria

Debería ver cada barra de RAM incluyendo Tamaño, Tipo y Velocidad (y por diversión, Estado para asegurarse de que esté bien)

Informe del sistema con memoria

jnovack
fuente
13

En muchas distribuciones de Linux (por ejemplo, Debian), puede usar la 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)

Supongo que la RAM, como todo otro hardware, informa su descripción y capacidades al sistema operativo. Si Linux puede hacerlo, no veo ninguna razón por la que OSX no pueda.

Si su distribución no tiene instalado lshw, puede instalarlo usando su administrador de paquetes, por ejemplo

aptitude install lshw

o descárguelo del sitio web del proyecto.

terdon
fuente
Para su información, lshwno está disponible en OS X:
slhck
@ b. reacción a largo plazo porque la pregunta está etiquetada win / osx pero no Linux?
Dan Neely
De hecho, lo siento, no leí toda la pregunta (o el título aparentemente). Pensé que estaba preguntando sobre cualquier sistema operativo
blong el
@slhck Lo malo es que hice una búsqueda rápida en Google OSX lshwy vi esta publicación en el sitio web de Apple y supuse que existía para OSX sin leer realmente la publicación en cuestión. (sonrojo). De todos modos, mi punto aquí fue que si Linux puede ver el tipo de RAM, ¿por qué no debería OSX?
terdon
9

En Mac OS X ejecute desde la terminal:

$ system_profiler SPMemoryDataType
Borys Borysenko
fuente
4

La memoria RAM almacena su sincronización, velocidad y tipo en un pequeño chip en la memoria. ¿Cómo sabe su computadora qué tan rápido ejecutar la RAM sin corromper sus datos? Mismo chip Apple simplemente elige mostrar estos datos también.

MarcusJ
fuente
3
Se llama SPD - Detección de presencia en serie .
David Schwartz
La primera oración no tiene mucho sentido.
un CVn
2
¿Qué pasa con eso no tiene sentido? Tiene sentido para mí, y esa es la primera queja que tengo.
MarcusJ
2

Para complementar la respuesta de ultrasawblade, en Linux, para decodificar los datos SPD, puede usar el decode-dimms perlscript de las herramientas i2c :

sudo modprobe -a i2c-i801 eeprom
decode-dimms

O para el formato HTML elegante:

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

(w3m es un buscador / buscador basado en texto). O por supuesto:

decode-dimms -f > dimms.html
xdg-open dimms.html
sch
fuente
1

Speccy es un software de Windows que le dirá muchas cosas sobre su computadora, incluido el tipo / tamaño / ranuras totales / ranuras disponibles de RAM.

Jesse Toxik
fuente
2
Solía ​​usar CPU-Z para obtener esa información en las máquinas con Windows: le brinda información muy detallada sobre CPU, RAM y aún más. Es pequeño, ordenado y se actualiza regularmente.
Mikhail