Athlon 32 i pamięć – czyli mity i kity o wydajności
ARTYKUŁ ARCHIWALNY. Ile razy zdarzyło nam się ulec obiegowym opiniom, uwierzyć na słowo grupce osób, które uznajemy za bardziej kompetentne od siebie? Często boimy się, nie chcemy lub z jakiegoś innego powodu nie sprawdzamy tego, co inni uznali za najlepsze. Niezależnie od tego, czy są to doświadczeni użytkowników forum, czy tez twórcy BIOS-u naszej płyty głównej. A może czasem warto samemu przetestować to i owo? Ostatnio zainteresowałem się pamięcią operacyjną i postanowiłem sprawdzić kilka kwestii związanych z jej wydajnością i zweryfikować obiegowe teorie. Jedne utrzymały swój niepodważalny status, inne no cóż… zobaczycie sami, ale
najpierw sprawy techniczne:
Platforma testowa
- Athlon 2200+ Thoroughbred B (1800MHz FSB133MHz)
- Epox EP-8K9A(I) KT400
- Twinmos DDR400 CL 2.5 256 MB
- Sapphire R9550 128MB 250/391@351/459 [rdzeń/pamięć]
- Seagate Barracuda 80 GB ATA100 2MB Cache
- Sound/LAN – On Board
- Rozmiar Pagefile = 768 MB [ustawiony na sztywno]
Procedura głównego testu:
- System – Windows XP Home SP2 PL, wystarczająco świeża kopia, testy wykonano 7-9 dni po instalacji. Co ważne system nie był w żaden sposób optymalizowany.
- Po odpaleniu Windowsa wszystkie programy były każdorazowo wyłączane. Następnie po kolei uruchamiałem benchmarki, w poniższej kolejności:
- CCR 2002 RC1 (10x test RAMu)
- Aida32 3.93 EE
- Sandra 2005 10.37 Lite
- 3d Mark 2001 SE (domyślne ustawienia)
- Winrar 3.30 (test polegał na spakowaniu w trybie „normal” 248 MB danych, 11 różnych typów plików)
- Po wykonaniu serii testów następował restart systemu, odpowiednie zmiany w BIOS-ie i powtórzenie całej procedury.
- Serie testów wykonywane w sposób ciągły, pomiędzy pierwszym i ostatnim nie został zainstalowany, ani usunięty żaden z programów. Między całymi seriami testów miały miejsce odstępy czasowe, ale za każdym razem zachowałem zasadę: gdy testuje serię, zawsze robię to w sposób ciągły. Stąd mogą wystąpić niewielkie różnice w wynikach osiągniętych przy tych samych ustawieniach, ale w różnych seriach testów.
Na testy nadszedł czas…
Zawsze słyszę lub też czytam odnośnie optymalnej współpracy CPU z RAM: „Athlon musi pracować synchronicznie z pamięcią, aby uzyskać maksymalną wydajność”. Tak przynajmniej wynika z testów Bartona, chociaż chętnie sam bym to sprawdził. Athlon 3200+ (FSB 200MHz) po prostu dławi się, jeśli nie ma do pomocy kostek DDR400. Dobrze, a co z najpopularniejszymi wersjami Athlonów (czytaj – najwięcej sprzedanych egzemplarzy) z szyna FSB133 MHz? Moja kość – Twinmos 256MB w standardzie pracuje jako DDR400, więc trochę odbiega to od teoretycznie optymalnego DDR266. Tryb DDR333 powinien być od niego szybszy, a DDR266 najszybszy.
Pora na pierwsze porównanie DDR 400 vs DDR333
FSB | 133 | |
Timingi | 2.5-3-3-7 | |
DDR | 400 | 333 |
CCR – pamięć | 8133 | 8797 |
Aida32 odczyt | 1806 | 1877 |
Aida32 zapis | 581 | 598 |
Sandra RAM INT ALU | 1750 | 1945 |
Sandra RAM Float FPU | 1649 | 1858 |
3D Mark 2001 SE | 8705 | 8970 |
WinRAR [s] | 378 | 342 |
Wyniki mówią same za siebie! Na razie wszystko idzie zgodnie z planem. Podsystem pamięci dostał porządnego kopa, 4-10% w testach pamięci, 5% w 3D Mark SE. Winrar dostał po prostu skrzydeł, był aż o 10% szybszy! Po takich wynikach nie mogłem się już doczekać, co stanie się przy trybie DDR266 i stało się…
FSB | 133 | ||
Timingi | 2.5-3-3-7 | ||
DDR | 400 | 333 | 266 |
CCR- pamięć | 8133 | 8797 | 8352 |
Aida32 odczyt | 1806 | 1877 | 1780 |
Aida32 zapis | 581 | 598 | 527 |
Sandra RAM INT ALU | 1750 | 1945 | 1886 |
Sandra RAM Float FPU | 1649 | 1858 | 1777 |
3D Mark 2001 SE | 8705 | 8970 | 8766 |
WinRAR [s] | 378 | 342 | 379 |
Coś jest nie tak? Jest lepiej niż przy DDR400 ale niewiele, a DDR266 nie dotrzymuje kroku DDR333. Chwila na zastanowienie się. Coś musi być nie tak. Chyba już wiem – timingi. Teoria mówi „im mniejsze timingi tym lepiej”. Więc zmieniłem z 2.5-3-3-7 na niemal kultowe 2-2-2-6. Myślałem, że przy tak wolnym zegarze pamięci, poprzednie timingi po prostu hamują przyrost mocy, jaki daje tryb synchroniczny. I już się cieszyłem, że po problemie, w końcu miałem „najlepszy” synchroniczny tryb i sportowe timingi, a tu nagle… drugi zgrzyt.
FSB | 133 | ||
DDR | 333 | 266 | 266 |
Timingi | 2.5-3-3-7 | 2-2-2-6 | |
CCR- pamięć | 8797 | 8352 | 9171 |
Aida32 odczyt | 1877 | 1780 | 1862 |
Aida32 zapis | 598 | 527 | 583 |
Sandra RAM INT ALU | 1945 | 1886 | 1926 |
Sandra RAM Float FPU | 1858 | 1777 | 1841 |
3D Mark 2001 SE | 8970 | 8766 | 8980 |
WinRAR [s] | 342 | 379 | 340 |
Ku mojemu zaskoczeniu wyniki są niemal identyczne jak w przypadku DDR333 z wolniejszymi timingami. Jak widać tryb synchroniczny bardzo zawodzi. Tu chyba mogę sobie pozwolić na sformułowanie pewnego wniosku:
AMD Athlon z FSB 133MHz (przynajmniej XP) najlepiej działa w trybie asynchronicznym z pamięciami DDR333, dlaczego? Może to kwestia wysokiego zegara CPU, który więcej czerpie korzyści z wyższej przepustowości RAM, niż traci przez dodatkowe opóźnienia związane z asynchroniczną pracą FSB i DDR? W końcu, te zgodne fazy zegarów FSB i pamięci to takie pobożne życzenia. Gdy wkraczają do akcji wszystkie opóźnienia, cały model teoretyczny mocno się komplikuje. W swoim BIOS-ie znalazłem 9 ich rodzajów, a niektóre płyty maja jeszcze więcej!
Niezrażony jednak, postanowiłem sprawdzić najlepszy dotychczas tryb DDR333 z niższymi timingami 2-2-2-6. Dostałem sygnał, że coś jest nie tak w postaci dwóch auto-restartów podczas uruchamiania się systemu. Szybka wizyta w BIOS-ie, zmiana napięcia z 2,5V na 2,7V i już było lepiej, pamięci z „uśmiechem na złotych stykach” przeszły kolejną serię testów:
FSB | 133 | ||||
DDR | 400 | 333 | 266 | 266 | 333 |
Timingi | 2.5-3-3-7 | 2-2-2-6 | |||
CCR – pamięć | 8133 | 8797 | 8352 | 9171 | 9285 |
Aida32 odczyt | 1806 | 1877 | 1780 | 1862 | 1959 |
Aida32 zapis | 581 | 598 | 527 | 583 | 618 |
Sandra RAM INT ALU | 1750 | 1945 | 1886 | 1926 | 1992 |
Sandra RAM Float FPU | 1649 | 1858 | 1777 | 1841 | 1910 |
3D Mark 2001 SE | 8705 | 8970 | 8766 | 8980 | 9172 |
Winrar [s] | 378 | 342 | 379 | 340 | 309 |
Chyba wyniki nie wymagają komentarza. Werdykt zapadł – DDR333 2-2-2-6 wygrywa, teoria o wyższości niższych timingów, sprawdza się w całości. Krótsze czasy dostępu mogą znacznie zwiększyć wydajność, nawet o ponad 5%, a w aplikacjach intensywnie wykorzystujących podsystem pamięci jeszcze więcej. W tym miejscu mam jeszcze małą uwagę. Pisząc „intensywnie wykorzystujących podsystem pamięci” nie mam na myśli „zapychania” RAM-u. Winrar nawet na najwyższym poziomie kompresji potrzebuje tylko kilkudziesięciu MB wolnej pamięci operacyjnej.
Apetyt rośnie…
Tak jest, apetyt rośnie, bo to w końcu serwis dla tych, którzy lubią majsterkować przy komputerze i wyciskać z niego siódme poty. Postanowiłem zatem, dla własnej satysfakcji, zrobić również test na jeszcze niższych timingach, tym razem z ustawieniami ekstremalnymi 1.5-2-2-5 (na niższe nie pozwala mi płyta). Oto na co stać DDR266 i DDR333 z tymi ustawieniami. Skoro poszło wcześniej tak dobrze teraz powinno być jeszcze lepiej, ale niestety…
FSB | 133 | |||
DDR | 266 | 333 | ||
Timingi | 2-2-2-6 | 1.5-2-2-5 | 2-2-2-6 | 1.5-2-2-5 |
CCR – pamięć | 9171 | 9173 | 9285 | 9314 |
Aida32 odczyt | 1862 | 1869 | 1959 | 1962 |
Aida32 zapis | 583 | 581 | 618 | 619 |
Sandra RAM INT ALU | 1926 | 1932 | 1992 | 1994 |
Sandra RAM Float FPU | 1841 | 1840 | 1910 | 1910 |
3D Mark 2001 SE | 8980 | 9003 | 9172 | 9201 |
Winrar [s] | 340 | 338 | 309 | 309 |
Widać różnicę, testy wskazują wyższość czasów 1.5-2-2-5 nad 2-2-2-6, jest to jednak różnica bardzo symboliczna, poniżej 0,3%! Jaki z tego wniosek? Albo zmiana w ustawieniach timingów jest zbyt mała, aby zaistniała bardziej wyraźna różnica, albo co bardziej prawdopodobne, nie ma po prostu już z czego zejść. Dlatego przy 2-2-2-6 szyna pamięci i FSB osiągają niemal optymalne warunki współpracy, a pozostałe opóźnienia niwelują efekty zastosowania CL1.5.
Potwierdzenie poprawności wyników
Aby udowodnić prawdziwość mojej tezy, o niedoskonałości powszechnego stwierdzenia wyższości trybu synchronicznego nad asynchronicznym w przypadku Athlonów z szyna FSB=133MHZ (przynajmniej dla wersji XP i chipsetu KT400) zrobiłem jeszcze kilka testów:
- Najsilniejszym formatem kompresji Zip, silniejszym od Rar jest 7z. Może więc warto sprawdzić jak poradzi sobie z tymi samymi plikami co Winrar – 7zip 4.12b, tylko że tym razem tryb kompresji ustawiłem dodatkowo na „max”? Jest jeszcze „ultra”, ale to już prawdziwy pożeracz pamięci i bez 512 MB RAM nie ma nawet co próbować.
- Coraz popularniejszy staje się format Rmvb, który jest powszechnie stosowany do przesyłania plików video przez Internet. Charakteryzuje się on znakomitym stopniem kompresji przy zachowaniu jakości plików w formacie Avi. Do testu posłużył mi plik zawierający niezapomniane sceny ze zwycięstwa Urana w teleturnieju „Daję słowo” (raz jeszcze
gratuluję Uran!). Całość „ważyła” 66.5 MB.
FSB | 133 | ||||
DDR | 400 | 333 | 266 | 266 | 333 |
Timingi | 2.5-3-3-7 | 2-2-2-6 | |||
Avi do Rmvb | 13:27 | 13:07 | 13:39 | 13:12 | 12:49 |
7z | 14:02 | 12:52 | 14:13 | 12:41 | 11:55 |
Jak widać testy, w których większe jest zapotrzebowanie na moc i mocniej wykorzystujące
podsystem pamięci potwierdzają poprzednie spostrzeżenia:
- Najlepszym ustawieniem (w wypadku tej konfiguracji) jest DDR333
- Im krótsze timingi tym lepiej
Tylko niech nikogo nie zwiodą małe różnice w kodowaniu Avi do Rmvb. Po prostu zaważyła na tym mała ilość RAM-u i brak przygotowania systemu do tego typu zadań (celowo nie grzebałem „pod maską”).
Jest też nowe spostrzeżenie, które mną wstrząsnęło. Spójrzcie na wyniki DDR400 i DDR266 z CL 2.5. „świetny tryb synchroniczny” poległ na całej linii, jest wolniejszy od teoretycznie gorszego DDR400. I w sumie tym mało optymistycznym akcentem, po zmieszaniu trybu synchronicznego z błotem mógłbym zakończyć, ale pozostało jeszcze kilka rzeczy do sprawdzenia i wyjaśnienia. Skoro różnica miedzy najgorszym, a najlepszym trybem była aż tak duża i to bez podkręcania, a dzięki samej wizycie w BIOS-ie, podjąłem decyzje, że jeszcze tam nieco poszperam.
FSB | 133 | 133 | lepiej o [%] |
DDR | 400 | 333 | |
Timingi | 2.5-3-3-7 | 2-2-2-6 | |
CCR – pamięć | 8133 | 9285 | 11.4 |
Aida32 odczyt | 1806 | 1959 | 10.8 |
Aida32 zapis | 581 | 618 | 6.3 |
Sandra RAM INT ALU | 1750 | 1992 | 11.3 |
Sandra RAM Float FPU | 1649 | 1910 | 15.8 |
3D Mark 2001 SE | 8705 | 9172 | 5.3 |
Winrar [s] | 378 | 309 | 22.3 |
Avi do Rmvb | 13:27 | 12:49 | 2.2 |
7z | 14:02 | 11:55 | 17.7 |
W BIOS-ie są jeszcze trzy dosyć ciekawe opcje:
- Bank Interleave (przeplot banków pamięci)
- Burst Length (długość ciągu danych przesyłanych w trybie burst)
- AGP Aperture Size (szczelina w pamięci RAM, która może być oddawana do dyspozycji procesora grafiki)
Wszystkie testy do tej pory były wykonywane z następującymi ustawieniami:
- Bank Interleave = disable (wylaczony)
- Burst Length = 4
- AGP Aperture Size = 128 MB
Ale po kolei… najpierw zająłem się przeplotem, powszechnie uważa się, że im więcej banków pamięci się przeplata tym lepiej, wiec ustawiłem przeplot na 4 (DDR ma 4 banki). Potem z
wyłączonym przeplotem przetestowałem różnicę w wydajności po wydłużeniu ciągu bitów przesyłanych w trybie burst i otrzymałem bardzo ciekawe rezultaty:
FSB | 133 | ||
DDR | 333 | ||
Timingi | 2-2-2-6 | ||
Bank Interleave | 0 | 4 | 0 |
Burst Length | 4 | 4 | 8 |
CCR – pamięć | 9335 | 9588 | 9321 |
Aida32 odczyt | 1965 | 1997 | 1962 |
Aida32 zapis | 618 | 664 | 603 |
Sandra RAM INT ALU | 1993 | 2021 | 1995 |
Sandra RAM Float FPU | 1911 | 1944 | 1909 |
3D Mark 2001 SE | 9172 | 9323 | 9189 |
Winrar [s] | 309 | 295 | 309 |
O ile zmiana wartości Burst Length na 8 praktycznie nie wpływa na wydajność, o tyle poczwórny przeplot znakomicie spełnia swoje zadanie i bije wszelkie rekordy w dotychczasowych testach. Wynik z Sandry w końcu przekroczył magiczną granicę 2000pkt, a kompresja w Winrar zajęła mniej niż 300 sekund. Bez wątpienia przeplot znacznie poprawia wydajność pamięci.
Pozostało jeszcze ustawienie wartości AGP Aperture Size, z racji odrębnej procedury testowej omawiam ją na końcu. Ponieważ AAS ma z założenia poprawiać wydajność tylko w grach, jedynym benchmarkiem tu zastosowanym był 3D Mark 2001 SE. Teoria mówi, że AAS winno równać się połowie wielkości posiadanej w komputerze pamięci RAM, co powinno spowodować wzrost wydajności. Czyżby kolejny mit do obalenia? Najwyraźniej tak!
FSB | 133 | 133 | 133 | 133 |
DDR | 333 | 333 | 333 | 333 |
Timingi | 2-2-2-6 | 2-2-2-6 | 2-2-2-6 | 2-2-2-6 |
Przeplot banków | 4 | 4 | 4 | 4 |
AAS [MB] | 128 | 64 | 128 | 64 |
VGU/ram karty | 351/459 | 351/459 | 101/202 | 101/202 |
3D Mark 2001 SE | 9319 | 9302 | 3572 | 3573 |
3D Mark 2001 SE 4AA | 6380 | 6378 | 2284 | 2278 |
Chyba parę osób się zdziwiło widząc taktowania zegarów rdzenia i pamięci karty graficznej. To nie pomyłka tylko celowe działanie. Po prostu chciałem dać szanse wykazania się AAS w sytuacji zbliżonej do współpracy z kartą graficzną starszej generacji. Obniżyłem przepustowość pamięci karty graficznej z ~7.3 GB/s do ~3.2 GB/s, aby mogła się do czegokolwiek przydać pamięć na płycie głównej (DDR333 ~2.7 GB/s).
Wyniki są niemal identyczne i chyba warto się teraz zastanowić dlaczego teoria po raz kolejny się nie sprawdziła, a ustawienie AAS na 64 MB równie wydajne jak 128MB. Powodów jest kilka:
- AAS wskazuje, ile chipset może maksymalnie przeznaczyć pamięci RAM dla wsparcia karty graficznej, gdy tej zabraknie na tekstury. Było to skuteczne, gdy karty miały 16/32 MB swojej pamięci, a nie 128 i to szybkiego RAM-u (tu potrzeba naprawdę czegoś ostrego, a nawet DOOM III, który strasznie obciąża VGU, nie potrzebuje aż 128 MB na tekstury).
- Po za tym, jeśli nawet chipset skorzysta z pamięci dla GPU, to straci na tym główny procesor, który nie będzie miął przez pewien czas dostępu do całej objętości RAM (AAS ma charakter dynamiczny, czyli działa czasowo, nie ciągle).
- VGU dostaje wolną pamięć. Co z tego, że dwa kanały DDR 400 to 6.4 GB/s, skoro AGP 8x może wysłać max. 2 GB/s, a karty na PCI-Ex16 (~9.5 GB/s) maja takie pamięci, ze od 6.4GB/s to im się przepustowość zaczyna. A jeśli ktoś ma tylko jeden kanał to ma tylko 3.2 GB/s i to tylko teoretycznie…
- Z tych 128 MB VGU dostaje tylko 58MB. Dlaczego? Taka specyfikacja standardu, 12 MB na przestrzeń adresowa, a reszta na pół.
Wniosek jest oczywisty: AAS tak samo jak Fast Write to przestarzały dopalacz, nowy sprzęt już go nie potrzebuje i świetnie sobie radzi bez niego. Wychodzi tutaj przestarzała konstrukcja BIOS-u… może też całej architektury?
Podsumowanie
Po poświeceniu kilkunastu godzin na wykonanie powyższych testów muszę stwierdzić z zadowoleniem, że udało mi się wyjaśnić kilka kwestii i przy okazji przyspieszyć pracę swojego komputera. Różnica miedzy domyślnymi ustawieniami, a tymi które teraz używam jest niemal przepaścią: 7-28%!
FSB | 133 | lepiej o [%] | |
DDR | 400 | 333 | |
Timingi | 2.5-3-3-7 | 2-2-2-6 | |
Bank Interleave | 0 | 4 | |
CCR – pamięć | 8133 | 9588 | 11.7 |
Aida32 odczyt | 1806 | 1997 | 10.5 |
Aida32 zapis | 581 | 664 | 14.3 |
Sandra RAM INT ALU | 1750 | 2021 | 15.5 |
Sandra RAM Float FPU | 1649 | 1944 | 17.9 |
3D Mark 2001 SE | 8705 | 9323 | 7.1 |
Winrar [s] | 378 | 295 | 28.1 |
Tryb synchroniczny w przypadku Athlonów XP FSB133 okazał się nieporozumieniem, podobnie jak AAS, który po prostu nic nie daje! Z kolei swoją przydatność udowodniły niskie timingi i przeplot banków pamięci. Chyba już wystarczy wniosków i tabelek jak na jeden artykuł, teraz możecie komentować, kłócić się, że wyniki nie są niewiarygodne itp. … Ale uprzedzam – ja już je dwa razy sprawdziłem.
Was też zachęcam do sprawdzania na własnej skórze (maszynie) różnych obiegowych opinii, zawsze może się okazać, że któraś jest już nieaktualna lub nigdy nie była prawdziwa!
Spis treści: Athlon 32 i pamięć – czyli mity i kity o wydajnościSłowa kluczowe: burst length
Całkiem niezły test – zasłużone 5 😉
Wreszcie ktoś przedstawił konkretne dane, co i jak należy ustawić. Dobry artykuł
Ten „mit” dotyczył tylko płyt głównych na chipsecie nForce 2 – na nim rzeczywiście najlepszą wydajność uzyskiwano w trybie synchronicznym.