Kontroler pamięci - Memory controller

Kontroler pamięci to obwód cyfrowy, który zarządza przepływem danych do iz pamięci głównej komputera . Kontroler pamięci może być oddzielnym chipem lub zintegrowany z innym chipem, na przykład umieszczony na tej samej matrycy lub jako integralna część mikroprocesora ; w tym drugim przypadku jest zwykle nazywany zintegrowanym kontrolerem pamięci ( IMC ). Kontroler pamięci jest czasami nazywany także kontrolerem układu pamięci ( MCC ) lub jednostką kontrolera pamięci ( MCU ).

Powszechną formą kontrolera pamięci jest jednostka zarządzania pamięcią (MMU), która w wielu systemach operacyjnych, takich jak Unix , implementuje adresowanie wirtualne .

Historia

Większość nowoczesnych mikroprocesorów do komputerów stacjonarnych lub stacji roboczych korzysta ze zintegrowanego kontrolera pamięci (IMC), w tym mikroprocesorów Intel , AMD i tych zbudowanych na architekturze ARM .

Przed K8 (około 2003 r.) mikroprocesory AMD miały kontroler pamięci zaimplementowany na mostku północnym ich płyty głównej . W K8 i nowszych AMD zastosowało zintegrowany kontroler pamięci. Podobnie, aż do Nehalem (około 2008 r.), mikroprocesory Intela wykorzystywały kontrolery pamięci zaimplementowane na mostku północnym płyty głównej. Nehalem, a później przeszedł na zintegrowany kontroler pamięci.

Inne przykłady mikroprocesorów że stosowanie zintegrowane kontrolery pamięci obejmują IBM „s POWER5 i Sun Microsystems ” s UltraSPARC T1 .

Chociaż zintegrowany kontroler pamięci może potencjalnie zwiększyć wydajność systemu, na przykład zmniejszając opóźnienia pamięci , blokuje mikroprocesor do określonego typu (lub typów) pamięci, wymuszając przeprojektowanie w celu obsługi nowszych technologii pamięci. Kiedy wprowadzono DDR2 SDRAM , AMD wypuściło nowe procesory Athlon 64. Te nowe modele z kontrolerem DDR2 używają innego fizycznego gniazda (znanego jako Socket AM2 ), dzięki czemu będą pasować tylko do płyt głównych zaprojektowanych dla nowego typu pamięci RAM. Gdy kontroler pamięci nie jest włączony, ten sam procesor można zainstalować na nowej płycie głównej ze zaktualizowanym mostkiem północnym .

Niektóre mikroprocesory w latach 90., takie jak DEC Alpha 21066 i HP PA-7300LC , miały zintegrowane kontrolery pamięci; jednak zamiast zwiększać wydajność, wdrożono to w celu zmniejszenia kosztów systemów poprzez wyeliminowanie potrzeby stosowania zewnętrznego kontrolera pamięci.

Niektóre procesory są zaprojektowane tak, aby ich kontrolery pamięci były dedykowanymi komponentami zewnętrznymi, które nie są częścią chipsetu. Przykładem jest IBM POWER8 , który wykorzystuje zewnętrzne układy Centaur, które są montowane na modułach DIMM i działają jako bufory pamięci, układy pamięci podręcznej L4 oraz rzeczywiste kontrolery pamięci. Pierwsza wersja układu Centaur wykorzystywała pamięć DDR3, ale później została wydana zaktualizowana wersja, która może korzystać z DDR4.

Cel, powód

Kontrolery pamięci zawierają logikę niezbędną do odczytu i zapisu do DRAM oraz do "odświeżania" DRAM . Bez stałych odświeżeń, DRAM traci danych zapisane na nim jak kondensatory wyciek ich ładunek w ułamku sekundy (nie więcej niż 64 milisekund według JEDEC standardami).

Odczytywanie i zapisywanie w pamięci DRAM odbywa się poprzez wybranie adresów danych wierszy i kolumn pamięci DRAM jako danych wejściowych do obwodu multipleksera , gdzie demultiplekser w pamięci DRAM wykorzystuje przekonwertowane dane wejściowe do wybrania właściwej lokalizacji pamięci i zwrócenia danych, które są następnie przekazywane z powrotem przez multiplekser w celu konsolidacji danych w celu zmniejszenia wymaganej szerokości magistrali dla operacji.

Szerokość magistrali to liczba równoległych linii dostępnych do komunikacji z komórką pamięci. Szerokości magistrali kontrolerów pamięci wahają się od 8-bitów we wcześniejszych systemach do 512-bitów w bardziej skomplikowanych systemach i kartach graficznych (zwykle realizowane jako cztery 64-bitowe kontrolery pamięci jednocześnie działające równolegle, chociaż niektóre są zaprojektowane do pracy w „trybie grupowym ”, gdzie dwa 64-bitowe kontrolery pamięci mogą być używane do uzyskania dostępu do 128-bitowego urządzenia pamięci).

Niektóre kontrolery pamięci, takie jak ten zintegrowany z procesorami PowerQUICC II, zawierają sprzęt do wykrywania i korekcji błędów .

Bezpieczeństwo

Kilka eksperymentalnych kontrolerów pamięci (głównie przeznaczonych na rynek serwerów, gdzie ochrona danych jest prawnie wymagana) zawiera drugi poziom translacji adresów, oprócz pierwszego poziomu translacji adresów wykonywanej przez jednostkę zarządzania pamięcią procesora .

Kontrolery pamięci zintegrowane z niektórymi procesorami Intel Core zapewniają również szyfrowanie pamięci jako funkcję, która zamienia dane użytkownika zapisane w pamięci głównej na pseudolosowe wzorce.

Szyfrowanie pamięci (w teorii kryptografii) ma zapobiegać analizom kryminalistycznym i inżynierii wstecznej w oparciu o remanencję danych DRAM , skutecznie czyniąc różne rodzaje ataków zimnego rozruchu nieskutecznymi. W obecnej praktyce nie zostało to osiągnięte.

Jednak szyfrowanie pamięci zostało zaprojektowane tylko w celu rozwiązania problemów elektrycznych związanych z DRAM. Standardy szyfrowania pamięci z końca 2010 roku nie naprawiają ani nie zapobiegają problemom lub problemom związanym z bezpieczeństwem. Standardy Memory Scrambling z 2010 roku nie są bezpieczne kryptograficznie, ani nie są koniecznie otwarte lub otwarte na publiczną rewizję lub analizę.

ASUS i Intel mają własne standardy szyfrowania pamięci. Obecnie płyty główne ASUS pozwalają użytkownikowi wybrać, które standardy szyfrowania pamięci mają być używane [ASUS lub Intel] lub czy całkowicie wyłączyć tę funkcję.

Warianty

Pamięć o podwójnej szybkości transmisji danych

Kontrolery pamięci o podwójnej szybkości transmisji danych (DDR) służą do obsługi pamięci DDR SDRAM , w której dane są przesyłane zarówno na zboczach narastających, jak i opadających zegara pamięci systemu. Kontrolery pamięci DDR są znacznie bardziej skomplikowane w porównaniu do kontrolerów z pojedynczą szybkością transmisji danych, ale umożliwiają przesyłanie dwukrotnej ilości danych bez zwiększania częstotliwości taktowania komórki pamięci lub szerokości magistrali.

Pamięć wielokanałowa

Wielokanałowe kontrolery pamięci pamięci to kontrolery pamięci, w których urządzenia DRAM są rozdzielone na wiele różnych magistral, aby umożliwić kontrolerom pamięci dostęp do nich równolegle. Zwiększa to teoretyczną szerokość pasma magistrali o współczynnik liczby kanałów. Podczas gdy kanał dla każdej komórki DRAM byłby idealnym rozwiązaniem, dodanie większej liczby kanałów jest bardzo trudne ze względu na liczbę przewodów, pojemność linii i potrzebę równoległych linii dostępowych o identycznej długości.

W pełni buforowana pamięć

W pełni buforowane systemy pamięci umieszczają urządzenie buforujące pamięć na każdym module pamięci (nazywanym FB-DIMM, gdy używana jest w pełni buforowana pamięć RAM), które w przeciwieństwie do tradycyjnych urządzeń kontrolera pamięci używa szeregowego łącza danych do kontrolera pamięci zamiast łącza równoległego używanego w poprzednie projekty pamięci RAM. Zmniejsza to liczbę przewodów niezbędnych do umieszczenia urządzeń pamięci na płycie głównej (pozwalając na użycie mniejszej liczby warstw, co oznacza, że ​​na jednej płycie można umieścić więcej urządzeń pamięci), kosztem zwiększenia opóźnień (czasu niezbędne do uzyskania dostępu do lokalizacji w pamięci). Ten wzrost jest spowodowany czasem wymaganym do konwersji równoległych informacji odczytanych z komórki DRAM do formatu szeregowego używanego przez kontroler FB-DIMM iz powrotem do postaci równoległej w kontrolerze pamięci na płycie głównej.

Teoretycznie urządzenie buforujące pamięci FB-DIMM można zbudować tak, aby uzyskać dostęp do dowolnych komórek DRAM, umożliwiając projektowanie kontrolera pamięci niezależnego od komórek pamięci, ale nie zostało to zademonstrowane, ponieważ technologia jest w powijakach.

Kontroler pamięci flash

Wiele urządzeń pamięci flash , takich jak karty pamięci USB, zawiera kontroler pamięci flash na chipie. Dostęp do pamięci flash jest z natury wolniejszy niż dostęp do pamięci RAM i często staje się bezużyteczny po kilku milionach cykli zapisu, co ogólnie sprawia, że ​​nie nadaje się do zastosowań z pamięcią RAM.

Zobacz też

Bibliografia

Linki zewnętrzne