Як дізнатись, чи пам’ять є 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.