Jak sprawdzić, czy moja pamięć to ECC czy nie-ECC?

46

Muszę wymienić pamięć w moim systemie i nie jestem pewien, jak ustalić, czy pamięć jest w trybie ECC czy Non-ECC. Jak to ustalić?

James Mertz
źródło
2
Czy jest coś w podręczniku komputera, zwykle jest tam określony. W przeciwnym razie pobierz i zainstaluj Speccy . Ten program mówi dokładnie, jaki sprzęt masz na komputerze, a następnie możesz to sprawdzić.
Wernfried Domscheit
Sprawdź instrukcję płyty głównej lub systemową swojego systemu i zobacz, co jest wymagane dla twojego sprzętu? Używać narzędzi do sugerowania pamięci na różnych stronach internetowych dostawców pamięci RAM?
Zoredache
2
@WannabeCoder „powinieneś używać non-ECC” [potrzebne źródło] [niewystarczające wyjaśnienie]
CVn
1
@ MichaelKjörling Integralność danych na tym poziomie nie ma decydującego znaczenia w zastosowaniach domowych. Aplikacje nadrzędne (lub system operacyjny) mogą to łatwo obsłużyć, a pamięć ECC ma niewielki narzut wydajności. Dodatkowo, praktycznie wszystkie procesory konsumenckie nie obsługują pamięci ECC (dlatego „powinien”).
WannabeCoder,

Odpowiedzi:

58

W systemie Windows 7 możesz uruchomić następujące polecenie w wierszu polecenia:

wmic MEMORYCHIP get DataWidth,TotalWidth

Jeśli wartość TotalWidth jest większa niż wartość DataWidth, masz pamięć ECC.

Przykładowe dane wyjściowe:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Lepszym sposobem ustalenia jest użycie następującego polecenia:

wmic memphysical get memoryerrorcorrection

Zwróci kod na podstawie typu zainstalowanej pamięci:

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
James Mertz
źródło
Dostaję pamięć fizyczną - Alias ​​nie został znaleziony. w
3
@kristianp Drugie polecenie zawierało dwie literówki, powinno być: wmic memphysical get memoryerrorcorrection(pracował dla mnie w 8.1)
Dan Neely
@ DanNeely Mój system (który znam ma 8 pasków 4 GB ECC) podaje 2 wartości z tego polecenia: 6 i 3 w drugim wierszu wyjścia. Drugie polecenie pokazuje 8 linii z 64 i 72 (zgodnie z oczekiwaniami) i 1 dodatkową linię z 2 i 2. Nigdy wcześniej tego nie widziałem. Masz pojęcie, co to znaczy? Dla przypomnienia: jest to stacja robocza HP XW8600 (płyta główna serwera Intel 5400/6311).
Tonny
@ Tonny, którego polecenia używasz?
James Mertz,
Co oznacza kod 3 (brak)? Nie mam zainstalowanej pamięci?
Przywróć Monikę
40

W przypadku FreeBSD (i prawdopodobnie najbardziej podobnych do Uniksa platform):

dmidecode -t 17

Przykładowe dane wyjściowe:

# dmidecode 2.12
Obecny SMBIOS 2.5.

Uchwyt 0x1100, typ DMI 17, 28 bajtów
Urządzenie pamięci
        Uchwyt tablicy: 0x1000
        Uchwyt informacji o błędzie: Nie dostarczono
        Całkowita szerokość: 72 bity
        Szerokość danych: 64 bity
        Rozmiar: 2048 MB
        Form Factor: DIMM
        Zestaw: 1
        Lokalizator: DIMM1
        Lokalizator banków: nie określono
        Wpisz: DDR2
        Szczegół typu: Synchroniczny
        Prędkość: 667 MHz
        Producent: AD00000000000000
        Numer seryjny: 00002062
        Tag zasobu: 010839
        Numer części: HYMP125P72CP8-Y5
        Ranga: 2

Jest Total Width: 72 bitsto część, której szukasz.


Więcej informacji na temat wykrywania tego w systemie Linux można znaleźć tutaj na naszej siostrzanej stronie unix.stackexchange.com.

Więcej informacji na temat działania kodu korygującego błędy można znaleźć w tym prostym poście, w którym pokazałem, jak można wykorzystać dodatkowe bity do wykrywania i korygowania błędów. Właśnie dlatego mamy moduły DIMM o szerokości 64 bitów (8 bajtów danych) lub 72 bitów (64 dane plus dodatkowe bity do przechowywania nadmiarowych informacji).

Hennes
źródło
3
dmidecode jest także standardem w Linuksie. Myślę, że korekcja błędów nastąpi domyślnie po zainstalowaniu pamięci ECC RAM, ale jeśli jądro monitoruje kontroler pamięci w celu śledzenia wskaźnika błędów pamięci, byłoby to kolejne potwierdzenie posiadania pamięci ECC RAM. (sprawdź dziennik jądra.)
Peter Cordes,
Jak sprawdzić, czy kontroler pamięci to śledzi? mcelog?
Hennes,
Nie mam już dostępu do serwerów wyposażonych w ECC, ale szukałbym komunikatu dziennika jądra na ten temat. Może nie ma. Na stronie buttersideup.com znajduje się link do czegoś na ten temat (najlepsza nazwa domeny dla projektu, IMO).
Peter Cordes,
1
Myślę, że powinieneś wyjaśnić w swojej odpowiedzi, co wyciągać wnioski na temat ECC, jeśli Total Widthjest 72 bitslub 64 bits.
AL
1
„Całkowita szerokość: 72 bity to część, której szukasz.” A co mam zrobić, gdy go znajdę?
endolith
19

Jeśli spojrzysz na moduł pamięci fizycznej, ECC zwykle będzie miało 9 (czasem więcej) układów. Non-ECC będzie mieć tylko 8 (lub rzadko 8x2 = 16) .

ECC kontra spoza ECC (Zdjęcie dzięki uprzejmości Puget Systems )

BlueRaja - Danny Pflughoeft
źródło
9 żetonów na 10 bitów na bajt w module ECC?
Hennes,
5
@Hennes: Możesz mieć 10, ale 9 jest znacznie częstsze. Pamięć jest zazwyczaj dzielona na 72-bitowe fragmenty (8 bitów odczytywanych jednocześnie z każdego z 9 chipów danych) , z 64-bitowymi danymi + 8-bitowymi korekcjami błędów w każdej części. Zobacz tutaj, aby uzyskać więcej informacji technicznych.
BlueRaja - Danny Pflughoeft
1
Zasadniczo, jeśli liczba układów pamięci jest podzielna przez 3, wówczas modułem jest ECC.
James Mertz
Podczas kopiowania jakichkolwiek treści (w tym obrazów) musisz podać informacje o autorze.
Mokubai
1
@endolith od momentu powstania witryn i zgodnie z centrum pomocy: Jak odwoływać się do materiałów napisanych przez innych .
Mokubai
8

Na komputerze Mac możesz zajrzeć do aplikacji Informacje o systemie , aby ustalić status ECC komputera i każdego modułu pamięci RAM.

/Applications/Utilities/System Information

Wybierz Pamięć w prawym okienku, w sekcji sprzętu.

Następnie z wybraną listą „Gniazda pamięci”. Poniższe okno powinno pokazywać status ECC.

Zdjęcie poniżej:

Okno aplikacji Informacje o systemie

Również jako FYI każde gniazdo RAM będzie miało pole Status, jeśli w module RAM zostanie wykryty problem, stan będzie miał wartość inną niż „OK”

MrDaniel
źródło
Czy „Wyłączony” oznacza, że ​​siłownik nie jest ECC? nie jest całkiem jasne z twojej odpowiedzi
mounaim
To prawda, że ​​status „Enabled” oznacza, że ​​RAM ma ECC.
MrDaniel
6

inxi może to zrobić:

$ 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

...

Tutaj wykorzystywane są moduły inne niż ECC-RAM EC: None

Jonas Stein
źródło
Czy jest 4 EC: Nonewartość, której powinienem szukać?
James Mertz
Po prostu EC: None. 4Jest częścią poprzedniego pola ( devices: 4).
duskwuff
0

Możesz także wypróbować bezpłatną aplikację, taką jak Belarc . Daje też kilka dodatkowych informacji o twoim systemie ...

Użyłem oprogramowania kilka razy. Nie mam żadnego powiązania z tym oprogramowaniem, ale wiem, że jest ono używane przez niektóre uniwersytety.

Nie mogę przedstawić zrzutu ekranu wyników, ponieważ zawiera poufne dane, ale strona internetowa powinna podać kilka przykładów. Jest całkiem prosty (i szybki), pobierz plik, uruchom go, a wyniki zostaną przedstawione.

htm11h
źródło
Podaj więcej szczegółów, jak to działa. W celach informacyjnych zobacz ten meta post
James Mertz