Comment savoir si ma mémoire est ECC ou non-ECC?


46

Je dois remplacer la mémoire de mon système et je ne sais pas trop comment déterminer si la mémoire est ECC ou non-ECC. Comment puis-je déterminer cela?


2
Y at-il quelque chose dans le manuel de votre PC, généralement indiqué ici. Sinon, téléchargez et installez Speccy . Ce programme vous dit exactement quel matériel vous avez sur votre PC, alors vous pouvez le vérifier.
Wernfried Domscheit

Recherchez le manuel de la carte mère ou du système correspondant à votre système et voyez ce qui est requis pour votre matériel? Utilisez les outils de suggestion de mémoire sur les sites Web des différents vendeurs de RAM?
Zoredache


2
@WannabeCoder "vous devriez utiliser des logiciels non-ECC" [citation requise] [explication insuffisante]
un CVn

1
@ MichaelKjörling L'intégrité des données à ce niveau n'est pas critique dans les applications à usage domestique. Les applications parent (ou le système d'exploitation) peuvent gérer cela facilement, et la mémoire ECC s'accompagne d'une surcharge de performances. En outre, pratiquement tous les processeurs grand public ne prennent pas en charge la mémoire ECC (donc le "devrait").
WannabeCoder

Réponses:


58

Pour Windows 7, vous pouvez exécuter la commande suivante à l'invite de commande:

wmic MEMORYCHIP get DataWidth,TotalWidth

Si la valeur TotalWidth est supérieure à la valeur DataWidth, vous disposez d'une mémoire ECC.

Exemple de sortie:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Une meilleure façon de déterminer est via la commande suivante:

wmic memphysical get memoryerrorcorrection

Cela retournera un code basé sur le type de mémoire installé:

Value Meaning 
0 (0x0) Reserved 

1 (0x1) Other 

2 (0x2) Unknown 

3 (0x3) None 

4 (0x4) Parity 

5 (0x5) Single-bit ECC 

6 (0x6) Multi-bit ECC 

7 (0x7) CRC

Je reçois memoryphysical - Alias ​​non trouvé. sur Windows 7 Enterprise SP 1

3
@kristianp La 2ème commande contenait deux fautes de frappe, aurait dû être: wmic memphysical get memoryerrorcorrection(a travaillé pour moi en 8.1)
Dan Neely

@DanNeely Mon système (dont je connais 8 bandes de 4 Go ECC) donne 2 valeurs à partir de cette commande: 6 et 3 sur une deuxième ligne de sortie. L'autre commande montre 8 lignes avec 64 et 72 (comme prévu) et 1 ligne supplémentaire indiquant 2 et 2. Je ne l'avais jamais vu auparavant. Une idée de ce que cela signifie? Pour mémoire: Il s’agit d’une station de travail HP XW8600 (carte mère de serveur Intel 5400/6311.)
Tonny

@Tonny quelle commande utilisez-vous?
James Mertz

Que signifie le code 3 (aucun)? Je n'ai pas de mémoire installée?
Rétablir Monica

40

Pour FreeBSD (et probablement la plupart des plateformes de type Unix):

dmidecode -t 17

Exemple de sortie:

# dmidecode 2.12
SMBIOS 2.5 présent.

Poignée 0x1100, type DMI 17, 28 octets
Dispositif de mémoire
        Poignée de tableau: 0x1000
        Traitement des informations d'erreur: non fourni
        Largeur totale: 72 bits
        Largeur de données: 64 bits
        Taille: 2048 MB
        Facteur de forme: DIMM
        Set: 1
        Locator: DIMM1
        Localisateur de banque: Non spécifié
        Type: DDR2
        Détail du type: Synchrone
        Vitesse: 667 MHz
        Fabricant: AD00000000000000
        Numéro de série: 00002062
        Numéro d'inventaire: 010839
        Numéro de pièce: HYMP125P72CP8-Y5
        Rang: 2

La Total Width: 72 bitsest la partie que vous recherchez.


Vous trouverez plus d'informations sur la détection de ce problème sous Linux ici sur notre site partenaire, unix.stackexchange.com.

Vous trouverez plus d'informations sur le fonctionnement du code de correction d'erreur dans cet article simple, dans lequel je vous ai montré comment utiliser des bits supplémentaires pour détecter et corriger les erreurs. C'est pourquoi nous avons des modules DIMM d'une largeur de 64 bits (8 octets de données) ou de 72 bits (64 données plus des bits supplémentaires pour stocker des informations redondantes).


3
dmidecode est également standard sous Linux. Je pense que la correction d'erreur se produira par défaut si la RAM ECC est installée, mais si votre noyau surveille le contrôleur de mémoire pour suivre le taux d'erreur de la mémoire, ce serait une autre confirmation du fait que vous disposez de la RAM ECC. (consultez le journal du noyau.)
Peter Cordes

Comment vérifier si le contrôleur de mémoire suit cela? Mcelog?
Hennes

Je n'ai plus accès à aucun serveur équipé d'ECC, mais je rechercherais un message du journal du noyau à ce sujet. Peut-être qu'il n'y en a pas. Il y a un lien vers quelque chose à ce sujet sur Buttersideup.com (meilleur nom de domaine de tous les temps pour un projet, IMO).
Peter Cordes

1
Je pense que vous devriez expliquer dans votre réponse ce qu’il faut conclure au sujet de la CEC si Total Widthest 72 bitsou 64 bits.
AL

1
"La largeur totale: 72 bits est la partie que vous recherchez." Et que dois-je faire après l'avoir trouvé?
endolith

19

Si vous regardez le module de mémoire physique, ECC aura généralement 9 (parfois plus) de puces. Non-ECC aura seulement 8 (ou rarement, 8x2 = 16) .

ECC vs non-ECC (Image reproduite avec l'aimable autorisation de Puget Systems )


9 puces pour les 10 bits par octet sur le module ECC?
Hennes

5
@Hennes: Vous pouvez en avoir 10, mais 9 est beaucoup plus commun. La mémoire est généralement divisée en morceaux de 72 bits (8 bits lus simultanément sur chacune des 9 puces de données) , avec 64 bits de données + 8 bits de correction d'erreur dans chaque morceau. Voir ici pour plus d'informations techniques.
BlueRaja - Danny Pflughoeft

1
En règle générale, si le nombre de puces mémoire est divisible par 3, alors le module est ECC.
James Mertz

Lorsque vous copiez un contenu (y compris des images), vous devez fournir une attribution.
Mokubai

1
@endolith depuis la création des sites et selon le centre d’aide: comment référencer des documents écrits par d’autres .
Mokubai

8

Sur un Mac, vous pouvez regarder dans l' application Informations système pour déterminer le statut ECC de l'ordinateur et de chaque module de RAM.

/Applications/Utilities/System Information

Sélectionnez Mémoire dans le volet de droite, sous la section Matériel.

Puis avec la liste "Slots de mémoire" sélectionnée. La fenêtre ci-dessous devrait afficher un statut ECC.

Voir l'image ci-dessous:

Fenêtre Informations système

De plus, en tant que FYI, chaque emplacement de mémoire vive aura un champ d’état si un problème est détecté dans un module de mémoire vive, l’état sera une valeur autre que «OK».


Est-ce que "Disabled" signifie que le bélier est non ECC? ce n'est pas tout à fait clair d'après votre réponse
mounaim

C'est correct si un statut "Enabled" signifie que la RAM est ECC.
MrDaniel

6

Inxi peut le faire:

$ sudo inxi -m -xxx
Memory:    Array-1 capacity: 32 GB devices: 4 EC: None
           Device-1: ChannelA-DIMM0 size: 4 GB speed: 1333 MHz type: DDR3 (Synchronous)
           bus width: 64 bits manufacturer: Kingston part: KHX1600C9D3/4GX serial: B7ED5A53

...

Ici, des modules non ECC-RAM sont utilisés EC: None


Est-ce 4 EC: Nonela valeur que je devrais rechercher?
James Mertz

Juste le EC: None. Le 4fait partie du champ précédent ( devices: 4).
Crépuscule

0

Vous pouvez également essayer une application gratuite comme Belarc . Plus d'informations sur votre système également ...

J'ai utilisé le logiciel à quelques reprises. Je n'ai aucune affiliation avec ce logiciel, mais je sais qu'il est utilisé par certaines universités.

Je ne peux pas fournir une capture d'écran des résultats car ils contiennent des données confidentielles, mais le site Web devrait en fournir quelques exemples. C'est assez simple (et rapide), téléchargez le fichier, exécutez-le et les résultats sont présentés.


S'il vous plaît donner plus de détails sur la façon dont cela fonctionne. Pour référence voir cette publication meta
James Mertz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.