Dzisiaj, zdecydowana większość pamięci używanej przez komputery stacjonarne, notebooki i urządzenia mobilne jest unbuffered non-ECC (Error Checking and Correction) DRAM. W rzeczywistości, chyba że ktoś pracuje z procesorem Intel lub AMD, który może obsługiwać pamięć ECC, niebuforowana pamięć ECC DRAM jest jedynym wyborem dla większości użytkowników. Xeony Intela, na przykład, obsługują pamięć ECC, podczas gdy nawet nowe Core i7 tego nie robią. AMD ma znacznie szersze wsparcie ECC na poziomie procesora, ale wiele płyt głównych AMD nie obsługuje funkcji pamięci ECC, więc nie jest uniwersalna.
ECC Memory What it Does
Error Checking and Correction (ECC) pamięci jest głównie uważane za niezbędne w środowiskach korporacyjnych tych dni. Pojedynczy bit kontroli błędów i korekcji w 8-bitowy bajt pozwala na pojedynczych błędów bitowych być zarówno wykrywane i korygowane, gdy występują. Co ciekawe, sposób działania tego jednobitowego ECC nie jest aż tak różny od RAID 4 i RAID 5, gdzie do generowania bitów parzystości używa się algorytmu XOR. Zamiast tracić użyteczną pojemność pamięci, producenci pamięci mają tendencję do dodawania dodatkowego chipa do pamięci ECC na każde osiem chipów pamięci. Gdy wykryty zostanie błąd pojedynczego bitu, informacja o parzystości jest używana do rekonstrukcji danych z błędem. Ponownie, jest to koncepcyjnie podobny do tego, jak RAID 4 i RAID 5 może szorować i naprawić błędy danych w macierzach pamięci masowej. Większe błędy niż wielobitowe mogą być wykryte, ale nie poprawione przez pojedynczy bit ECC typu schematu parzystości.
Dla komputerów stacjonarnych, to jest mniej ważne, jak wiele liczb umieścić błędy jednobitowe w zakresie 1 na 1GB lub 1 na 2GB pamięci każdego miesiąca. Dla użytkownika komputera stacjonarnego może to spowodować zawieszenie się programu lub w najgorszym przypadku wymagać ponownego uruchomienia. W serwerach, ECC jest niezbędne do utrzymania zarówno integralności danych, jak i czasu pracy. Przy obecnej niewielkiej różnicy kosztów ECC w porównaniu do niebuforowanych buforowanych modułów DIMM, nie ma większego powodu, aby uzyskać pamięć non-ECC dla serwera.
Niebuforowana pamięć ECC kontra zarejestrowana pamięć ECC
Dodając do koncepcji ECC, istnieją dwie koncepcje w grze, niebuforowane i zarejestrowane moduły pamięci ECC. Podstawowa różnica polega na tym, że polecenia pamięci w konfiguracjach pamięci niebuforowanej idą bezpośrednio od kontrolera do modułu pamięci, natomiast w konfiguracjach pamięci rejestrowanej polecenia są wysyłane najpierw do rejestrów banków pamięci, zanim zostaną wysłane do modułów. Koncepcja ta może wydawać się trudna, ale oto bardzo prosty/koncepcyjny pogląd na to, co się dzieje.
W powyższym przykładzie kontroler pamięci uzyskuje bezpośredni dostęp do banków pamięci. Powyższe zakłada, że kontroler pamięci znajduje się w pakiecie procesora, jak to ma miejsce w nowoczesnych architekturach procesorów. Patrząc na starsze systemy, kontroler pamięci znajdował się w mostku północnym procesora. Porównaj to z poniższym przykładem zarejestrowanej pamięci.
Tutaj CPU komunikuje się z rejestrami banków pamięci w każdym module. Stamtąd, te rejestry komunikują się z DRAM. Implikacje tego są dwojakie. Po pierwsze, po stronie negatywnej, instrukcje zajmują około jeden cykl CPU dłużej z powodu pośrednictwa rejestru banku. Po stronie pozytywnej, buforowanie to zmniejsza obciążenie kontrolera pamięci CPU, ponieważ wskazuje on na dedykowany rejestr pośredniczący, zamiast bezpośredniego dostępu do DRAM. Kontroler pamięci łatwiej radzi sobie z mniejszą liczbą celów.
Ta funkcja jest bardzo ważna w scenariuszach serwerowych, ponieważ, na przykład, platforma z serii Intel 3400, taka jak Supermicro X8SI6-F lub Intel S3420GPLC obsługuje 16 GB niebuforowanej pamięci ECC i 32 GB zarejestrowanej pamięci ECC. Podobnie, w systemach dwuprocesorowych, takich jak seria E5600 oparta na Supermicro X8DTH-6F ostatnio recenzowana na ServeTheHome, delta jest znacznie większa z maksymalnie 48GB niezarejestrowanej pamięci ECC lub 192GB zarejestrowanej pamięci ECC. Dla środowisk wirtualizacji, gdzie pamięć i przepustowość pamięci jest kluczem do osiągnięcia wysokiej konsolidacji i gęstości metryk, zarejestrowana pamięć ECC jest generalnie drogą do zrobienia. Jeśli ktoś kupuje serwer z niezarejestrowanych ECC DIMMs, a następnie wymaga dodatkowej pojemności, a następnie operacja aktualizacji będzie wymagać ciągnąć i wymienić wszystkie moduły UDIMM, co czyni go drogie proposition.
Conclusion
W tym artykule mam nadzieję, że można uzyskać koncepcyjny pogląd na różnicę między niebuforowanej pamięci ECC i zarejestrowanej pamięci ECC, aby pomóc poinformować decyzje dotyczące wyboru. To nie był zbyt techniczny artykuł, ponieważ moduły pamięci mają tendencję do być elementy, które ludzie zamawiają z lub dodać do swoich systemów i zrobić niewiele pracy na aż potrzebują więcej pamięci.
.