Як дізнатись, чи пам’ять є ECC чи Non-ECC?


46

Мені потрібно замінити пам'ять у моїй системі, і я не зовсім впевнений, як визначити, чи пам'ять є ECC чи Non-ECC. Як це визначити?


2
Чи є що-небудь в довіднику вашого ПК, як правило, це вказано там. В іншому випадку завантажте та встановіть Speccy . Ця програма точно розповідає, яке обладнання ви маєте на своєму ПК, то ви зможете це перевірити.
Wernfried Domscheit

Перегляньте посібник із материнської плати чи посібник із системи для вашої системи та подивіться, що потрібно для вашого обладнання? Використовуєте інструменти для пропозиції пам’яті на різних веб-сайтах постачальників оперативної пам’яті?
Зоредаче


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.)
Tonny

@Tonny, яку команду ти використовуєш?
Джеймс Мерц

Що означає код 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, але якщо ваше ядро ​​відстежує контролер пам'яті для відстеження швидкості помилки пам'яті, це буде ще одним підтвердженням наявності у вас ОЗУ ECC. (перевірити журнал ядра.)
Пітер Кордес,

Як перевірити, чи контролює це контролер пам'яті? mcelog?
Геннес

У мене більше немає доступу до будь-яких серверів, оснащених ECC, але я б шукав повідомлення про це в ядрі ядра. Можливо, його немає. На buttersideup.com є посилання на щось про це (найкраще доменне ім’я для проекту, IMO).
Пітер Кордес

1
Я думаю , ви повинні пояснити в своїй відповіді , що висновок про ECC , якщо Total Widthє 72 bitsабо 64 bits.
AL

1
"Загальна ширина: 72 біта - це частина, яку ви шукаєте." І що я роблю після того, як знайшов?
ендоліт

19

Якщо ви подивитеся на модуль фізичної пам’яті, ECC, як правило, має 9 (іноді більше) мікросхем. Non-ECC матиме лише 8 (або рідко 8x2 = 16) .

ECC проти non-ECC (Зображення надано Puget Systems )


9 фішок за 10 біт на байт модуля ECC?
Геннес

5
@Hennes: У вас може бути 10, але 9 набагато частіше. Пам'ять, як правило, розділена на шматки 72-бітових (8 біт, прочитаних одразу з кожної з 9-х мікросхем даних) , з 64-бітними даними + 8-біт виправлення помилок у кожному фрагменті. Дивіться тут для отримання додаткової технічної інформації.
BlueRaja - Danny Pflughoeft

1
Як загальне правило, якщо кількість мікросхем пам'яті ділиться на 3, то модуль є ECC.
Джеймс Мерц

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

1
@endolith з моменту створення сайтів та відповідно до довідкового центру: Як посилатися на матеріали, написані іншими .
Мокубай

8

На комп'ютері Mac ви можете ознайомитись із додатком " Інформація про систему", щоб визначити стан ECC комп'ютера та кожного модуля оперативної пам'яті.

/Applications/Utilities/System Information

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

Потім вибрано список "Слоти пам'яті". У вікні нижче має відображатися статус ECC.

Дивіться малюнок нижче:

Вікно програми про інформацію про систему

Також як FYI кожен слот оперативної пам’яті матиме поле Status, якщо в модулі оперативної пам’яті виявлена ​​проблема, статус буде значенням, відмінним від „OK”


Чи означає "інвалід", що баран не є ECC? це не зовсім зрозуміло з вашої відповіді
mounaim

Це правильний статус "Увімкнено" означає, що він RAM є 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.