Как мне узнать, является ли моя память 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.