Superpi kontra timingi

  1. Teoria - timingi.

    Co to są timingi? W uproszczeniu są to liczby określające czas oczekiwania kontrolera pamięci na wykonanie poszczególnych kroków pracy modułów pamięci. Liczby te są wyrażane w cyklach zegarowych - większe oznaczają większe czasy oczekiwania i mniejszą wydajność, a mniejsze - mniejsze opóźnienia i wiekszą wydajność.
    Logiczne jest, że przy różnych częstotliwosciach opóźnienie wyrażone tą samą liczbą bedzie oznaczać różne czasy wyrażone w sekundach. Dla 100MHz 1 cykl trwa 1us, dla 200MHz - 0.5us. Natomiast pamięć potrzebuje zawsze takiego samego czasu oczekiwania wyrażonego w sekundach. Co za tym idzie na wyższych częstotliwościach istnieje potrzeba ustawienia dla pamięci wiekszej ilości cykli oczekiwania, bo przestanie się wyrabiać.
    Są pamięci potrafiące pracować przy małych opóźnieniach, są też słabsze którym potrzeba wiekszych opóźnień. Istnieją też pamięci szczególne, optymalizowane pod niskie timingi (historyczne już Winbondy, czy obecne Samsungi TCCD), i inne optymalizowane pod wysokie częstotliwości (Hynixy). Które są lepsze? Czy lepsze są niskie timingi czy wysokie częstotliwości? czy pamięć niepotrafiąca pracować na niskich timingach może nadrobić wysoką częstotliwością? Jesli tak to o ile musi miec wyższą częstotliwość?
    Postaram się to pokazać na przykładzie praktycznym...

  2. Sprzęt pomiarowy i metodologia.

    Jak pomierzyć, aby wykazać tylko i wyłącznie wpływ timingów i częstotliwości na wydajność pamięci? Hmmm...
    Na początek trzeba znaleźć program, który korzysta z przepustowości pamięci w wyraźny sposób. Program musi być maksymalnie powtarzalny, aby błędy pomiarowe z poszczególnych powtórzeń pomiaru nie zaprzepaściły naszej pracy - błędy pomiaru muszą być znacznie mniejsze niż różnice w wielkościach zmierzonych. Do tego musi być popularny. Ja nie mam wątpliwości - Superpi.
    Na koniec musimy zapewnić prawidłowe warunki sprzętowe - wszystkie elementy systemu mające wpływ na wydajność muszą być niezmienne. Procesor zawsze musi mieć tę samą częstotliwość, w systemie nie może być usług mogących zakłócić pomiary. wybrałem następujące zestawienie: Athlon 64 2800+ ustawiony na 9x280MHz (2520MHz) oraz:

    1. pamięci '@183MHz' w BIOSie, czyli 252MHz

    2. pamięci '@166MHz' w BIOSie, czyli 229.1MHz

    3. pamięci '@150MHz' w BIOSie, czyli 210MHz

    4. pamięci '@133MHz' w BIOSie, czyli 193.8MHz

    Zmieniać będę tylko 4 wartości: CAS Latency, RAS to CAS Delay, RAS Precharge, i Cycle Time - są to najważniejsze timingi ustawialne we wszystkich BIOSach oraz widoczne w oknie CPU-Z.


    Rys. 2. Timingi pamięci widoczne w CPU-Z.

    Jest też wiele innych timingów dostępnych tylko w najbardziej overclockerskich BIOSach oraz przez specjalne programy - aby nie wpływały one na pomiary ustawiłem je wszystkie na stałe.
    Wygląda to mniej więcej tak:


    Rys. 2. Timingi pamięci widoczne w A64 Tweakerze.

    Pomiary przeprowadzę za pomoocą programu Superpi na próbkach o wielkości 4M - to zapewni krótkie czasy pomiaru poszczególnych próbek (ok. 3 minuty), a przy tym odpowiednio małą tolerancję pomiaru - +/-1s dla czasu 180s to tolerancja 0.55% czyli akceptowalna.

  3. Pomiary.

    Tab. 1. Pomiary czasu obliczania próbek 4M w programie Superpi.

    Ustawnienia

    Pamięci @252MHz

    Pamięci @229.1MHz

    Pamięci @210MHz

    Pamięci @193.8MHz

    2-2-2-52'53"2'57"2'59"3'06"
    2-2-2-62'53"2'57"2'59"3'06"
    2-3-2-52'55"2'58"3'01"3'08"
    2-3-2-62'56"2'57"3'02"3'08"
    2-3-3-62'57"2'58"3'02"3'09"
    2.5-3-2-52'55"2'59"3'03"3'11"
    2.5-3-2-62'56"3'00"3'03"3'10"
    2.5-3-3-62'58"3'00"3'04"3'11"
    2.5-3-3-72'58"2'59"3'05"3'10"
    2.5-4-2-62'58"2'59"3'05"3'11"
    2.5-4-3-73'00"3'01"3'06"3'13"
    2.5-4-4-72'59"3'02"3'07"3'13"
    2.5-4-4-83'01"3'01"3'063'14"

    Jak widać nie ma tu zestawienia z CL3. Niestety moje pamięci (Winbond BH-6) nie chcą działać na tak dużych opóźnieniach.

  4. Podsumowanie.

    Przyjrzyjmy się teraz wynikom. Co widać? Widać, że wysoko taktowane pamięci z dużymi opóźnieniami mają podobną wydajność do niżej taktowanych z mniejszymi opóźnieniami. Praca z timingami x-4-4-x jest szczególnie nieopłacalna - tak samo wydajne są pamięci ustawione z timingami 2-2-2 a nawet 2-3-2 i częstotliwością mniejszą nawet o 40MHz (lewy dolny róg tabeli kontra górna część trzeciej kolumny). Oglądając i porównując wartości w poszczególnych komórkach tabeli można wyciągnąć wiele podobnych wniosków.
    Jakie pamięci warto więc kupować? Dla mnie odpowiedź jest oczywista: Takie, które mogą pracować na niskich timingach - 2-2-2 to oczywiście trudny do zdobycia (i zazwyczaj droższy) ideał, ale na 2-3-2 potrafi pracować wiele pamięci. Chwalący pod niebiosa Hynixy chyba dostali wystarczające dowody - zauważcie do tego, że nie mierzyłem z '2T Command' czyli 'CPC off'.

    Z życzeniami niskich timingów już zapraszam na nastepny odcinek, w którym przekonacie się jak ciekawie i wywrotowo wykorzystać je na NF2...


    rapra, Białystok 2005.02.06


    - Hosted by Bachus Anonymous -