CAS latency

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

CAS latency, CL (skrót. od ang. column address strobe latency – opóźnienie bramkowania adresu kolumny) – czas utajenia (opóźnienie, czas dostępu), mierzony liczbą cykli zegara, jaki upływa między wysłaniem przez kontroler pamięci RAM żądania dostępu do określonej kolumny pamięci a otrzymaniem danych z tej kolumny przez kontroler.

Im niższa jest wartość CAS latency (przy danej częstotliwości taktowania), tym mniej czasu potrzeba na pobranie danych z pamięci – inaczej mówiąc: „im krótszy czas utajenia, tym lepiej”. Czas utajenia wpływa bowiem na szybkość wykonywania w pamięci operacji, takich jak pobranie kolejnej instrukcji do wykonania przez procesor (odczyt, zapis, porównanie, przesunięcie bitowe, itp). Im dłuższy czas oczekiwania, tym dłużej procesor musi czekać na reakcję ze strony pamięci. Można przyspieszyć działanie pamięci stosując tzw. przeplot (ang. interleaving) co pozwala na rozdzielenie operacji zapisu na kilka banków pamięci, lub stosując pamięć podręczną (ang. cache) co umożliwia tymczasowe przechowywanie przetwarzanych danych w celu synchronizacji z modułami pamięci.

Większość producentów pamięci dynamicznych podaje parametr CAS latency w nazwie konkretnego modelu. Niektórzy podają go bezpośrednio, np. CL5.

Pozostałe parametry pamięci[edytuj | edytuj kod]

  • RCD (RAS to CAS Delay; RAS – Row Access Strobe; CAS – Column Access Strobe) – czas jaki upływa od zakończenia wykonywania polecenia aktywacji konkretnej kolumny (CAS), do rozpoczęcia wykonywania polecenia aktywacji konkretnego wiersza (RAS).
  • RP (RAS Precharge; RAS – Row Access Strobe) – czas jaki upływa od wykonania polecenia zamknięcia dostępu do wcześniej aktywowanego wiersza i rozpoczęcia wykonywania polecenia aktywacji kolejnego.
  • RAT (Row Active Time) – czas jaki upływa od żądania wykonania polecenia aktywacji wiersza aż do jego dezaktywacji.
  • CR (Command Rate) – czas jaki upływa pomiędzy poleceniem adresowaniem dwóch niekoniecznie różnych komórek pamięci.

Opóźnienia CL, RCD, RP według specyfikacji JEDEC dla poszczególnych częstotliwości w pamięciach typu DDR2 powinny wynosić:

  • DDR2-400 – 3-3-3, 4-4-4
  • DDR2-533 – 3-3-3, 4-4-4
  • DDR2-667 – 4-4-4, 5-5-5
  • DDR2-800 – 4-4-4, 5-5-5, 6-6-6

Parametr RAS JEDEC podaje w nanosekundach. Dla wszystkich standardów oprócz DDR2-400 3-3-3, gdzie ma on wartość od 40 do 70 000, powinien wynosić od 45 do 70 000.

Całkowity ciąg opóźnień[edytuj | edytuj kod]

CL-RCD-RP-RAS - RC-RFC-CR-RRD-WR-WTR-RTP

Wpływ na szybkość dostępu do pamięci[edytuj | edytuj kod]

Synchronous DRAM ma CAS latency, która jest uzależniona od taktu zegara. W związku z opóźnieniami CAS parametry modułu pamięci SDRAM jest określony w cyklach zegarowych, a nie w czasie rzeczywistym.

Ponieważ moduł pamięci ma wiele wewnętrznych banków sygnał wyjściowy może być zajęty w 100% bez względu na opóźnienie CAS poprzez pipelining. Niestety, ta maksymalna przepustowość może być osiągnięta jedynie wtedy, gdy znacznie przed samym odczytem jest wiadome jakie dane zostaną odczytane, jeśli to nie jest wiadome może nastąpić zjawisko hazardu czego skutkiem będzie znaczny spadek wydajności. W wypadku całkowicie nieprzewidywalnego dostępu do pamięci, właściwym czasem opóźnienia jest: czas zamknięcia otwartego wiersza plus czas potrzebny na otwarcie nowego (CAS). Z uwagi na to, że operacje zapisu/odczytu są często wykonywane na sąsiadujących danych w jednym wierszu, do określenia opóźnienia wystarczy wtedy sam parametr CAS.

Ogólnie rzecz biorąc, mniejsze opóźnienie CAS jest lepsze. Ponieważ w nowoczesnych modułach pamięci opóźnienia (CAS) określane są w cyklach zegarowych a nie w czasie, aby dokonać rzetelnego porównania przy różnych częstotliwościach taktowania modułu należy przeliczyć podane opóźnienia na jednostkę czasu. Generalnie im mniejsze opóźnienia tym lepiej, z uwagi jednak na różnice w taktowaniu, może zaistnieć sytuacja kiedy większy CAS jednego modułu w praktyce oznacza szybszy dostęp do tego modułu. Producenci pamięci podają opóźnienia dla określonego taktu zegara, a więc możliwe jest obniżenie opóźnień poniżej zaleceń przy jednoczesnym obniżeniu taktowania.

DDR SDRAM wykorzystuje przy operacjach oba zbocza sygnału taktującego. Szybkość ta jest zwykle podawana przez producentów, zamiast właściwej częstotliwości zegara, która jest o połowę mniejsza niż szybkość transferu do i z modułów DDR, przy czym, opóźnienie CAS jest podawane w cyklach właściwego zegara taktującego, nie w cyklach 'DDR'.

Innym czynnikiem utrudniającym wyliczenie dokładnych opóźnień jest wykorzystanie transferów ciągłych. Nowoczesny mikroprocesor może mieć wielkość linii pamięci podręcznej wielkości 64 bajtów, wymaga to 8 transferów po 64-bity (8 bajtów) do wypełnienia linii. Za pomocą opóźnienia CAS można wtedy dokładnie zmierzyć tylko czas przesłania pierwszego słowa. Za czas przesłania kolejnych odpowiada opóźnienie RAS.

W poniższej tabeli dane przedstawione są podane w mln transferów na sekundę (MT/s), a częstotliwości taktowania są podane w megahercach (MHz).

Przykład timingów pamięci (CAS latency tylko)
Typ Szybkość
transmisji danych
Czas Bit Częstotliwość
taktowania
Czas cyklu CL Pierwsze słowo Czwarte słowo Ósme słowo
PC100 100 MT/s  10 ns 100 MHz  10 ns 2 20 ns 50 ns 90 ns
PC133 133 MT/s  7,5 ns 133 MHz  7,5 ns 3 22,5 ns 45 ns 75 ns
DDR-333 333 MT/s  3 ns 166 MHz  6 ns 2,5 15 ns 24 ns 36 ns
DDR-400 400 MT/s  2,5 ns 200 MHz  5 ns 3 15 ns 22,5 ns 32,5 ns
2,5 12,5 ns 20 ns 30 ns
2 10 ns 17,5 ns 27,5 ns
DDR2-667 667 MT/s  1,5 ns 333 MHz  3 ns 5 15 ns 19,5 ns 25,5 ns
DDR2-800 800 MT/s  1,25 ns 400 MHz  2,5 ns 6 15 ns 18,75 ns 23,75 ns
5 12,5 ns 16,25 ns 21,25 ns
DDR3-1066 1066 MT/s  0,9375 ns 533 MHz  1,875 ns 7 13,13 ns 15,95 ns 19,7 ns
DDR3-1333 1333 MT/s  0,75 ns 666 MHz  1,5 ns 9 13,5 ns 15,75 ns 18,75 ns
6  9 ns 11,25 ns 14,25 ns
DDR3-1375 1375 MT/s  0,73 ns 687 MHz  1,5 ns 5  7,27 ns  9,45 ns 12,36 ns
DDR3-1600 1600 MT/s  0,625 ns 800 MHz  1,25 ns 9 11,25 ns 13,125 ns 15,625 ns
8 10 ns 11,875 ns 14,375 ns
7  8,75 ns 10,625 ns 13,125 ns

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]