CAS latency
CAS to skrót od Column Address Strobe (bramkowanie adresu kolumny) lub Column Address Select (wybór adresu kolumny). Adresy te odnoszą się do kolumny fizycznych komórek pamięci w tablicy kondensatorów używanych w dynamicznej pamięci RAM (DRAM).
CAS latency (CL), czyli „czas oczekiwania CAS”, oznacza czas (liczbę cykli zegara) jaki upływa między wysłaniem przez kontroler pamięci żądania dostępu do określonej kolumny pamięci a odczytaniem danych z tej kolumny na wyprowadzeniach modułu pamięci.
Im niższa jest wartość CAS latency (przy takiej samej częstotliwości zegara), tym mniej czasu potrzeba na pobranie danych z pamięci. Najprościej mówiąc, im krótsze CAS latency, tym lepiej. Czas oczekiwania CAS wpływa bowiem na szybkość wykonywania w pamięci operacji, takich jak pobranie kolejnej instrukcji do wykonania przez procesor, operacje odczytu/zapisu/porównania/przesunięcia bitowego itp. Im dłuższy czas oczekiwania, tym dłużej procesor musi czekać na reakcję ze strony pamięci. Istnieją różnorodne sposoby na przyśpieszenie działania pamięci, takie jak stosowanie przeplotu (ang. interleaving; pozwala na rozdzielenie operacji zapisu na kilka banków pamięci), czy też korzystanie z pamięci podręcznej (ang. cache; umożliwia tymczasowe przechowywanie przetwarzanych danych, a czasem także inteligentną synchronizację z modułami pamięci).
Zdecydowana większość producentów pamięci komputerowych podaje parametr CAS latency (CL) w nazwie konkretnego modelu. Niektórzy podają go bezpośrednio (pisząc np. CL5).
Spis treści |
[edytuj] Pozostałe parametry pamięci
- 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 specyfikacja 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.
[edytuj] Całkowity ciąg opóźnień
CL-RCD-RP-RAS - RC-RFC-CR-RRD-WR-WTR-RTP
[edytuj] Wpływ na szybkość dostępu do pamięci
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, a dane można przesyłać z jednego w czasie dostępu do innego jest opóźniony, sygnał wyjściowy może być zajęty w 100% bez względu na opóźnienie CAS poprzez pipelining; maksymalnie osiągalna przepustowość jest określona jedynie przez taktowanie. 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 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 MHz (cyklach na sekundę).
| 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 |