Pamięć RAM

Oznaczenia i timingi

przeczytasz w 3 min.

Patrząc na opis modułu pamięci spotkać się można z  przykładową formą zapisu:

DDR2-1066MHz . PC2-8500 . 5-5-5-15 . UNBUFFERED . NON-ECC

Rozszyfrujmy podane informacje:

  • DDR2-1066MHz - pierwszy człon informuje o tym, z jakim typem pamięci mamy do czynienia, natomiast wartość podana w megahercach określa efektywną częstotliwości pracy układu
  • PC2-8500 - jest to zdublowanie poprzedzającej informacji. PC2 oznacza standard DDR2, natomiast wartość 8000 mówi o teoretycznej przepustowości pamięci, wyrażonej w bajtach. Szyna danych ma szerokość 64 bitów, czyli 8 bajtów. Pomnożenie tej ostatniej wartości przez efektywną częstotliwość pracy modułu daje w efekcie wielkość danych, jaka teoretycznie może zostać przepchnięta przez magistralę w ciągu jednego cyklu zegarowego. Ten format zapisu pozwala kłuć klientów wielkimi liczbami, co bardzo lubią specjaliści od promocji. Trzeba jednocześnie przyznać, że podanie teoretycznej przepustowości wiąże się z mniejszymi nieścisłościami, niż podawanie 'efektywnej' częstotliwością pracy.
  • Cztery liczby oddzielone od siebie kreseczką to tak zwane Timingi, czyli wartości niektórych opóźnień związanych z procesem dostępu do pamięci. Opóźnienia te zapisuje się je w formacie CL - tRP - tRCD - tRAS. Wszystkie poszczególne wartości wyrażane są w cyklach zegara taktującego.

    • CL, czyli CAS Latency - jest to opóźnienie, jakie następuje pomiędzy pojawieniem się sygnału sterującego CAS, a pojawieniem się zawartości komórki pamięci na magistrali danych
    • tRP (RAS Precharge Delay) - opóźnienie które wiąże się z koniecznością odświeżania zawartości pamięci aktywnego wiersza, przed 'zamknięciem' go oraz przejściem do odczytu nowego
    • tRCD (RAS to CAS Delay) - przerwa, jaka następuje pomiędzy odczytem przez pamięć adresu wiersza, a odczytem adresu kolumny wystawionym na magistrale adresową
    • tRAS (Active to Preharge Delay) - czas jaki musi upłynąć pomiędzy aktywacją danego wiersza, a pojawieniem się komendy precharge umożliwiającej jego zamknięcie. Minimalna wartość tego opóźnienia jest oczywiście zawsze większa od sumy CL i tRCD.

  • Pamięć operacyjna może być buforowana bądź niebuforowana (registered / unbuffered memory). Nazewnictwo bywa czasem niejasne, można jednak dużo uprościć przyjmując, że rejestry i bufory to jedno i to samo. Bufory występujące w modułach pamięci są pewnego rodzaju podtrzymywaczami sygnału. Zapewniają, że sygnały sterujące oraz sygnały pochodzące z magistrali adresowej zostaną doprowadzone do każdego z podukładów pamięci dokładnie w tym samym czasie, co zwiększa stabilność systemu. Niestety, wykorzystanie dodatkowych elementów logicznych, jakimi są bufory, prowadzi do pojawiania się kolejnych opóźnień w czasach dostępu do pamięci. Zastosowanie pamięci buforowanej ma sens w przypadku serwerów, stacji roboczych lub systemów operujących bardzo dużą ilością RAM.
  • ECC (Error Correction Code) jest to system korekcji błędów pamięci. Budowa modułów pamięci, a także niezależne czynniki zewnętrzne, jak chociażby promieniowanie kosmiczne, prowadzą czasami do zmiany wartości pojedynczych przesyłanych do lub od pamięci bitów. Przekłamanie takie pojawiają się raz na kilkadziesiąt godzin w każdym, nawet w pełni sprawnym module pamięci, lecz nie mają najczęściej żadnego wpływu na funkcjonowanie systemu. Stosowanie modułów RAM z korekcją błędów nie ma sensu w przypadku zwykłych pecetów, jednak w przypadku serwerów wyklucza się nawet najmniejsze szanse na pojawienie się błędów - stąd konieczność stosowania ECC w tych systemach.
    Podobnie jak w przypadku pamięci buforowanej, dodatkowe zaimplementowane w module układy logiczne powodują spowolnianie działania pamięci z zastosowaną korekcją błędów.