Как мне узнать, является ли моя память ECC или не-ECC?


46

Мне нужно заменить память в моей системе, и я не совсем уверен, как определить, является ли память ECC или не-ECC. Как мне это определить?


2
Есть ли что-нибудь в справочнике вашего ПК, обычно это указано там. В противном случае загрузите и установите Speccy . Эта программа сообщает вам, какое именно оборудование у вас на компьютере, и вы можете проверить это.
— Вернфрид Домшайт

Посмотрите руководство по материнской плате или системное руководство для вашей системы и посмотрите, что требуется для вашего оборудования? Использовать инструменты предложения памяти на различных сайтах производителей ОЗУ?
— Зоредаче


2
@WannabeCoder "вы должны использовать не-ECC" [цитата нужна] [недостаточное объяснение]
— CVn

1
@ MichaelKjörling Целостность данных на этом уровне не критична для приложений домашнего использования. Родительские приложения (или ОС) могут с этим легко справиться, а память ECC идет с небольшим снижением производительности. Кроме того, практически все потребительские процессоры не поддерживают память ECC (таким образом, «следует»).
— WannabeCoder

Ответы:


58

Для Windows 7 вы можете запустить следующую команду в командной строке:

wmic MEMORYCHIP get DataWidth,TotalWidth

Если значение TotalWidth больше значения DataWidth, у вас есть память ECC.

Пример вывода:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Лучший способ определить это с помощью следующей команды:

wmic memphysical get memoryerrorcorrection

Это вернет код в зависимости от типа установленной памяти:

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

Я получаю физическую память - алиас не найден. на Windows 7 Enterprise SP 1

3
@kristianp Во 2-й команде были две опечатки, это должно было быть: wmic memphysical get memoryerrorcorrection(сработало у меня в 8.1)
— Дэн Нили

@DanNeely Моя система (которая, как мне известно, имеет 8 полосок по 4 ГБ ECC) выдает 2 значения из этой команды: 6 и 3 во второй строке вывода. Другая команда показывает 8 строк с 64 и 72 (как и ожидалось) и 1 дополнительную строку, показывающую 2 и 2. Я никогда не видел этого раньше. Есть идеи, что это значит? Для справки: это рабочая станция HP XW8600 (серверная материнская плата Intel 5400/6311.)
— Тонни

@ Тонны, какую команду вы используете?
— Джеймс Мерц

Что означает код 3 (нет)? У меня нет установленной памяти?
— Восстановить Монику

40

Для FreeBSD (и, вероятно, для большинства Unix-подобных платформ):

dmidecode -t 17

Пример вывода:

# dmidecode 2.12
SMBIOS 2.5 присутствует.

Ручка 0x1100, тип DMI 17, 28 байтов
Устройство памяти
        Ручка массива: 0x1000
        Обработка информации об ошибках: не предоставлена
        Общая ширина: 72 бита
        Ширина данных: 64 бита
        Размер: 2048 МБ
        Форм-фактор: DIMM
        Набор: 1
        Локатор: DIMM1
        Банк Локатор: Не указано
        Тип: DDR2
        Тип Деталь: Синхронный
        Скорость: 667 МГц
        Производитель: AD00000000000000
        Серийный номер: 00002062
        Тег актива: 010839
        Номер детали: HYMP125P72CP8-Y5
        Ранг: 2

Это Total Width: 72 bitsта часть, которую вы ищете.


Более подробную информацию об обнаружении этого в Linux можно найти здесь на нашем дочернем сайте unix.stackexchange.com.

Более подробную информацию о том, как работает код исправления ошибок, можно найти в этом простом посте, где я показал, как можно использовать дополнительные биты для обнаружения и исправления ошибок. Вот почему у нас есть модули DIMM шириной 64 бита (шириной 8 байт данных) или шириной 72 бита (64 данных плюс дополнительные биты для хранения избыточной информации).


3
dmidecode также является стандартным для Linux. Я думаю, что исправление ошибок будет происходить по умолчанию с установленной ECC RAM, но если ваше ядро ​​контролирует контроллер памяти для отслеживания частоты ошибок памяти, это было бы еще одним подтверждением того, что у вас есть ECC RAM. (проверьте журнал ядра.)
— Питер Кордес

Как проверить, отслеживает ли контроллер памяти это? mcelog?
— Hennes

У меня больше нет доступа к каким-либо ECC-оборудованным серверам, но я бы посмотрел сообщение в журнале ядра об этом. Может быть, нет ни одного. Есть ссылка на что-то об этом на buttersideup.com (лучшее доменное имя для проекта, IMO).
— Питер Кордес

1
Я думаю, что вы должны объяснить в своем ответе, что делать с ECC, если Total Widthесть 72 bitsили 64 bits.
— AL

1
«Общая ширина: 72 бита - это та часть, которую вы ищете». И что мне делать после того, как я нашел это?
— эндолит

19

Если вы посмотрите на модуль физической памяти, ECC обычно будет иметь 9 (иногда больше) чипов. Non-ECC будет иметь только 8 (или редко, 8x2 = 16) .

ECC против не-ECC (Изображение предоставлено Puget Systems )


9 чипов для 10 бит на байт в модуле ECC?
— Hennes

5
@Hennes: Вы можете иметь 10, но 9 встречается гораздо чаще. Память обычно разбивается на блоки по 72 бита (8 бит считываются сразу из каждого из 9 чипов данных) , с 64 битами данных + 8 битами с исправлением ошибок в каждом фрагменте. Смотрите здесь для получения дополнительной технической информации.
— BlueRaja - Дэнни Пфлугхофт

1
Как более общее правило, если число микросхем памяти делится на 3, то модуль ECC.
— Джеймс Мерц

При копировании любого контента (включая изображения) вы должны предоставить атрибуцию.
— Мокубай

1
@endolith с момента создания сайтов, и согласно справочному центру: Как ссылаться на материалы, написанные другими .
— Мокубай

8

На Mac вы можете посмотреть в приложении System Information, чтобы определить ECC-статус компьютера и каждого модуля RAM.

/Applications/Utilities/System Information

Выберите Память на правой панели в разделе оборудования.

Затем с выбранным списком «Слоты памяти». В окне ниже должен отображаться статус ECC.

Смотрите картинку ниже:

Окно приложения Информация о системе

Также в качестве FYI каждый слот RAM будет иметь поле Status, если в модуле RAM обнаружена проблема, статус будет иметь значение, отличное от «OK».


Означает ли «Отключено», что баран не является ECC? это не совсем понятно из вашего ответа
— mounaim

Правильное состояние «Включен» означает, что он является ОЗУ ECC.
— MrDaniel

6

Inxi может сделать это:

$ 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

...

Здесь используются не ECC-RAM модули EC: None


Это 4 EC: Noneзначение, которое я должен искать?
— Джеймс Мерц

Просто EC: None. 4Является частью предыдущего поля ( devices: 4).
— сумерки

0

Вы также можете попробовать бесплатное приложение, как Belarc . Дает кучу дополнительной информации о вашей системе также ...

Я использовал программное обеспечение несколько раз. Я не имею никакого отношения к этому программному обеспечению, но я знаю, что оно используется некоторыми университетами.

Я не могу предоставить снимок экрана с результатами, потому что он содержит конфиденциальные данные, но веб-сайт должен предоставить некоторые примеры. Это довольно просто (и быстро), скачать файл, запустить его, и результаты представлены.


Пожалуйста, дайте более подробную информацию о том, как это работает. Для справки смотрите этот мета пост
— Джеймс Мерц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.