Comment un ordinateur / système d'exploitation peut-il déterminer le type de RAM présent sur la machine?

81

Comment Mac OS X peut-il savoir quel type de RAM se trouve sur la machine? Par exemple, je travaillais sur un ordinateur doté d'une RAM DDR3 à 1600 MHz et je pensais qu'il était impossible de connaître la RAM sans ouvrir physiquement le boîtier et l'examiner. Comment cela peut-il être fait sur d'autres systèmes?

Céléritas
la source
6
Remarque: j'ai supprimé les commentaires car ils n'allaient nulle part. Vous pouvez utiliser le super-utilisateur pour discuter.
Slhck
@ Celeritas: J'ai annulé votre dernière modification. Demander pourquoi un développeur / fabricant a choisi d’ajouter ou de supprimer une fonctionnalité de son produit n’est pas constructif .
Karan
@ Karan Je me demandais si le matériel ou le système d'exploitation du Mac était quelque peu différent de celui sur lequel Windows est exécuté, ce qui facilite la détermination du type de RAM. Cela semble être une fonctionnalité utile à intégrer au système d’exploitation pour que les utilisateurs sachent quel type de RAM obtenir si ils souhaitent effectuer une mise à niveau. Vous pouvez modifier la question pour refléter ce que je viens de vous dire, mais reformulez-la pour l'adapter davantage.
Celeritas
1
Puisque vous avez déjà demandé s'il était possible de le faire sous Windows et que des réponses vous ont été données, il est clair qu'aucune différence matérielle fondamentale n'empêche Windows d'afficher les informations si elle le souhaite (les données SPD que vous avez vues ci-dessous sont stockées). sur le module de RAM, et est accessible à tout OS / application qui se soucie de le lire). Au-delà de cela, il est inutile de discuter des raisons pour lesquelles exactement MS choisit de ne pas le faire, même si cela est utile pour les utilisateurs finaux.
Karan
Le bus i2c est une norme avec laquelle tout OS peut s’interfacer. Le SPD se présente comme une EEPROM de 128 octets, 256 octets ou 512 octets. Le système d'exploitation doit simplement collecter ces octets, qui obéissent à une autre norme appelée JEDEC, à partir de la mémoire EEPROM utilisant i2c, puis utiliser ces données pour déterminer le type de mémoire dont il parle. C'est très agnostique.
LawrenceC

Réponses:

147

Les clés USB possèdent une petite puce appelée Serial Presence Detect , qui contient des informations telles que la capacité, les horaires préférés, le fabricant et même un numéro de série.

Les informations SPD sont accessibles aux systèmes d’exploitation utilisant le bus i2c (qui inclut également des éléments tels que les capteurs de température). Je pense que vous pouvez lire directement les SPD sous Linux en utilisant divers utilitaires i2c.

Cette image de l'article Wikipedia en donne une bonne image: e

LawrenceC
la source
2
Sous Linux, dmidecode --type memoryvous permet de voir certaines informations. Apparemment, il peut générer un fabricant et un numéro de série, mais au moins sur mon système, ceux-ci sont signalés comme étant simplement ManufacturerNet SerNumNavec Nce qui semble être le numéro d'emplacement.
un CVn
2
Je pensais avoir dmidecodeanalysé quelque chose que le BIOS met en place au démarrage. Le BIOS doit lire le SPD et en rendre compte en conséquence. Les BIOS buggés n’ont cependant rien de nouveau.
LawrenceC
1
+1 pour la seule réponse qui mentionne SPD
Jonathon Reinhart
1
Il me semble qu’il était un temps où les barrettes de RAM n’avaient pas de puces SPD ... Au moins, je me souviens clairement de la révision des listes de prix pour la RAM où les articles étaient clairement identifiés comme SPD et non-SPD (c’était à peu près à date d'introduction de la norme DIMM)
Mikhail
1
@ Mikhail oui, les SIMM avaient 4 broches pour la "détection de présence" - elles étaient tirées haut ou bas pour fournir un identifiant indiquant la taille et la vitesse. ohlandl.ipv7.net/config/mempresence.html
ali1234
47

Sous Windows:

wmic memoryChip get /?

Vous donnera diverses informations sur la RAM que vous pouvez demander directement à partir de l'invite de commande.

Par exemple,

wmic memorychip get serialnumber

Vous donne le numéro de série. Vous pouvez également utiliser Speed, Modelparfois, Manufactureret plus encore.

WMI est la méthode Windows d'interrogation des données SMBIOS . Apple, Linux, Windows et tous ceux qui souhaitent utiliser la plupart des matériels conçus doivent prendre en charge SMBIOS à un certain niveau, pour différentes raisons.

Vous pouvez utiliser SMBIOS (par exemple via WMI ou WMIC sous Windows) pour collecter également des informations sur le disque dur, le réseau (une carte 10/100 ou 10/100/1000?).

Pour aller plus loin, chaque fabricant a un code pour les adresses MAC sur les NIC. La RAM a également un code de fabricant. Donc tout ce que vous avez à faire pour obtenir leur code, par exemple mes 2 x2GB dans cet ordinateur portable sont 830B, est de construire une base de données pour les fabricants (830B pourrait être une marque et ensuite revendu aussi!) Et quels modèles veulent dire quoi. C’est ainsi que fonctionne CPUz, je crois - des requêtes de base et une base de données vraiment complète et à jour.

Austin T français
la source
3
Notez que WMI peut interroger les informations DMI / SMBus mais qu’il ne s’agit pas de leur implémentation Windows . De plus, les dmidecodeinformations DMI purement interrogées et décodées sont également disponibles en tant que port Windows .
syneticon-dj
@ syneticon-dj Je ne suis pas sûr que vous ayez ajouté quoi que ce soit ici et votre argument n'est pas clair. WMI est Windows Management Instrumentation; parmi ses capacités et fonctions, il lit SMBUS. Mais si vous vouliez dire que tous les syndicats sont des syndicats mais que tous ne sont pas des syndicats ... alors oui, exactement ...?
Austin T French
Ce que je veux dire, c'est que votre libellé est inexact au point qu'il est facile de mal comprendre. WMI peut s’interfacer avec SMBIOS mais ce n’est en aucun cas son implémentation (qui réside du côté du matériel / du BIOS et non du système d’exploitation).
syneticon-dj
"WMI est l'implémentation Windows de la norme SMBus pour la lecture de périphériques". Et c'est une façon Windows de lire / interroger et de savoir ce qu'il y a à l'intérieur ... Mais WMI fait aussi beaucoup plus.
Austin T French
2
@ syneticon-dj - fait un edit si c'est faux.
Enigma
18

La vitesse et le type de mémoire sont négociés avec le bios et peuvent être lus par le système d'exploitation.

Il existe un très bon site Web vous permettant de mieux comprendre ces choses à l' adresse http://www.computermemoryupgrade.net/index1.html.

Mais vous pouvez facilement déterminer vos types et votre vitesse sans ouvrir le couvercle via:

Apple -> À propos de ce Mac -> Plus d'informations -> Rapport système

Matériel ouvert -> Mémoire

Vous devriez voir chaque clé de mémoire vive, y compris la taille, le type et la vitesse (et, pour le plaisir, Status pour vous assurer que tout va bien)

Rapport système avec mémoire

Jnovack
la source
13

Sur de nombreuses distributions Linux (par exemple Debian), vous pouvez utiliser le listeur de matériel lshw

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

Je suppose que la RAM, comme tout autre matériel, transmet sa description et ses capacités au système d'exploitation. Si Linux peut le faire, je ne vois pas pourquoi OSX ne pourrait pas le faire.

Si votre distribution n’a pas installé lshw, vous pouvez l’installer en utilisant votre gestionnaire de paquets, par exemple:

aptitude install lshw

ou téléchargez-le sur le site web du projet.

terdon
la source
FYI, lshwn'est pas disponible sur OS X:
slhck
@ b.long kneejerk réaction parce que la question est étiquetée win / osx mais pas Linux?
Dan Neely
En effet, désolée pour ça - je n’ai pas lu toute la question (ni son titre apparemment). Je pensais que c'était à propos de n'importe quel OS
Blong
@slhck Ma mauvaise, je viens de faire une recherche rapide sur Google OSX lshwet vu ce post sur le site Web d'Apple et j'ai supposé qu'il existait pour OSX sans lire le post en question. (rougir). Quoi qu'il en soit, ce que je voulais dire ici, c'est que si Linux peut voir le type de RAM, pourquoi OSX ne devrait-il pas?
Terdon
9

Sur Mac OS X, exécutez depuis le terminal:

$ system_profiler SPMemoryDataType
Borys Borysenko
la source
4

Le stick RAM stocke son timing, sa vitesse et son type sur une petite puce sur le stick. Comment votre ordinateur sait-il à quelle vitesse exécuter la RAM sans corrompre ses données? Même puce. Apple choisit simplement d’afficher ces données également.

MarcusJ
la source
3
C'est ce qu'on appelle SPD - Serial Presence Detect .
David Schwartz
La première phrase n'a pas beaucoup de sens.
un CVn
2
Qu'en est-il cela n'a pas de sens? Cela a du sens pour moi et c’est la première plainte que j’ai reçue.
MarcusJ
2

Pour compléter la réponse de ultrasawblade, sous Linux, pour décoder les données SPD, vous pouvez utiliser le decode-dimms perlscript à partir des outils i2c :

sudo modprobe -a i2c-i801 eeprom
decode-dimms

Ou pour le fantaisie HTML formaté:

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

(w3m étant un navigateur / pageur texte). Ou bien sur:

decode-dimms -f > dimms.html
xdg-open dimms.html
sch
la source
1

Speccy est un logiciel Windows qui vous expliquera de nombreuses informations sur votre ordinateur, notamment le type / la taille de la mémoire vive / le nombre total d'emplacements disponibles.

Jesse Toxik
la source
2
J'avais l'habitude d'utiliser CPU-Z pour obtenir de telles informations sur les machines Windows - cela vous donne des informations très détaillées sur le processeur, la RAM et bien plus encore. C'est petit et soigné et être mis à jour régulièrement.
Mikhail