Tajniki platformy A64
Wstęp teoretyczny - budowa systemu z A64 oraz różnice w stosunku do SocketA.
Pojawienie się Athlonów 64 wprowadziło wielką nowość w budowie systemów. Zmienił się sposób przepływu danych. Chipset stracił pozycję centralnego zarządcy obliczeniami, tę rolę przejął procesor.Poszukiwania asynchroniczności w systemie z A64 - porównanie wpływu zmiany stosunku FSB:pamięci na wydajność systemu.
Jak już wcześniej widzieliśmy, w systemie z A64 nie powinien występować w najmniejszym nawet stopniu efekt, który pamietamy z platformy Socket A, czyli spadek wydajności po ustawieniu asynchronicznego trybu pracy procesora i pamięci, kiedy stosunek ich częstotliwości nie jest równy 1:1. Czy tak jest rzeczywiście? Przekonajmy się.Dla Athlona 64 2800+ (mnożnik maksymalny x9) wybrałem następujące zestawienie:
9x222MHz, stosunek częstotliwości CPU:dzielnika pamieci równy 9:9 (pamięci @222MHz) - tryb 'synchroniczny'
8x250MHz, stosunek częstotliwości CPU:dzielnika pamieci równy 8:9 (pamięci @222MHz) - tryb 'asynchroniczny'
7x285MHz, stosunek częstotliwości CPU:dzielnika pamieci równy 7:9 (pamięci @222MHz) - tryb 'asynchroniczny'
Dla Athlona XP weźmiemy nastepujące warianty:
12x200MHz, stosunek częstotliwości CPU:pamieci równy 4:6 (pamięci @133MHz) - tryb asynchroniczny
15x160MHz, stosunek częstotliwości CPU:pamieci równy 5:6 (pamięci @133MHz) - tryb asynchroniczny
18x133MHz, stosunek częstotliwości CPU:pamieci równy 6:6 (pamięci @133MHz) - tryb synchroniczny
Jako narzędzia pomiarowe użyte będą:
Sisoft Sandra - do zmierzenia przepustowości pamięciami
Superpi - do zmierzenia mocy obliczeniowej systemu
3DMark2001SE - do zmierzenia wydajności 3D.
Wszystkie 3 programy charakteryzują się dobrą lub bardzo dobrą powtarzalnością pomiarów, jedynie dla 3DMarka musimy uwzględnić częściową przypadkowość wyników.
Na początek popatrzmy na wyniki zmiany stosunku FSB do częstotliwości pamięci w platformie Socket A (nForce2 w trybie Dual DDR) (pomiary wykonał Lagier - dzięki za pomoc):
Ustawnienia | Sisoft Sandra/Memory | Superpi 4M | 3DMark2001SE |
---|---|---|---|
18x133MHz, FSB:Mem=1:1 | 2021/1952 | 4'12" | 15529 |
13.5x178MHz, FSB:Mem=4:3 | 2254/2106 | 4'06" | 15375 |
12x200MHz, FSB:Mem=6:4 | 2272/2141 | 4'03" | 15613 |
Nie ulega chyba wątpliwości, że zmiana stosunku częstotliwości FSB do częstotliwości pamięci przy niezmienionej częstotliwości pamięci oraz procesora daje wyrażne zmiany przepustowości pamięci oraz wydajności systemu. Zmiany są widoczne w każdej aplikacji.
A czego to jest wynikiem? Przede wszystkim tego, że dane wymieniane między pamięcią a procesorem muszą przewędrować przez chipset. A przepustowość tego łącza jest mocno ograniczona - wyznacza ją częstotliwość FSB w trybie DDR. Łatwo zrozumieć, że dla trybu Dual DDR (wymagana 2 razy większa przepustowość) jest to za mało.
Zupełnie przy okazji obaliliśmy mit o tym, że tylko w trybie synchronicznym Athlon XP pracuje najwydajniej. Tu widać tendencję zupełnie odwrotną. Tak więc bracia Athlonowcy w wersji SocketA: jeśli pamięci nie idą Wam wyżej, maksymalizujcie FSB - w trybie Dual DDR mocno podrasuje to Wasze kompy.
Przyjrzyjmy się teraz zachowaniu Athlona 64:
Ustawnienia | Sisoft Sandra/Memory | Superpi 4M | 3DMark2001SE |
---|---|---|---|
9x222MHz, HTx4 (888MHz), CPU:Mem=9:9 | 3461/3461 | 3'36" | 20914 |
9x222MHz, HTx3 (666MHz), CPU:Mem=9:9 | 3463/3462 | 3'36" | 20915 |
8x250MHz, HTx3 (750MHz), CPU:Mem=8:9 | 3464/3465 | 3'33" | 20929 |
7x285MHz, HTx3 (855MHz), CPU:Mem=7:9 | 3459/3458 | 3'33" | 20976 |
Widać pewne rozbieżności? Ale popatrzmy na częstotliwości pokazywane przez CPU-Z:
Rys. 2. CPU-Z - 9x222MHz
Rys. 3. CPU-Z - 8x250MHz
Rys. 4. CPU-Z - 7x285MHz
Widać, że częstotliwości nie są równe. Również częstotliwości pamięci będą różne. Wynoszą odpowiednio: 222MHz, 222.2MHz oraz 221.7MHz. Nie są to wielkie różnice, ale dla pewności przeliczmy co będzie kiedy unormujemy wyniki.
Po unormowaniu wyników do pierwszej wartości wyniki w Sandrze bedą wyglądać następująco:
Ustawnienia | Sisoft Sandra/Memory - wartości unormowane |
---|---|
9x222MHz, HTx4 (888MHz), CPU:Mem=9:9 | 3461/3461 |
9x222MHz, HTx3 (666MHz), CPU:Mem=9:9 | 3463/3462 |
8x250MHz, HTx3 (750MHz), CPU:Mem=8:9 | 3461/3462 |
7x285MHz, HTx3 (855MHz), CPU:Mem=7:9 | 3464/3463 |
Różnice w czasie kolejnych pomiarów (przyciskiem odświeżania w oknie programu) sięgają 2MB/s, można więc śmiało powiedzieć ze wyniki są identyczne (błędy pomiaru są większe niż pomierzone różnice). Różnice w Superpi wyglądają podobnie. Natomiast w przypadku 3DMarka2001SE należy koniecznie brać pod uwagę, że wyniki mogą się różnić przy kolejnych powtórzeniach nawet o kilkadziesiąt punktów. Jednak uważam jego użycie za sensowne.
Gdzie się więc podział wpływ asynchroniczności na wydajność? Odszedł w krainę wiecznych Megaherców, ale smutno nam nie bedzie.
'Zaraz zaraz, a co to za 7:9, 8:9, 9:9?' czyli skąd się biorą te dzielniki.
W systemie A64 inaczej ustalana jest częstotliwość pracy pamieci. Wiemy, że chipset komunikuje się z pamięciami za pośrednictwem procesora. Co z tego wynika? Nie można tak po prostu ustawić dzielnika FSB:pamięci, bo nie ma jak. Ten stosunek ustawia się pośrednio. Najpierw ustawiamy mnożnik procesora: 5, 6, 7, 8, 9, ew. połówkowe 5.5, 6.5, 7.5. Następnie musimy ustawić dzielnik częstotliwości CPU:pamięci. Iloczyn tych wartości da stosunek częstotliwości FSB:pamięci.
Na przykład: mnożnik procesora to 9. Możemy więc ustawić: 9:9, 9:10, 9:11, 9:12 itd.
Jak widzimy różni się to znacznie od tego, co widzimy w BIOSach - tam jest 200MHz, 166MHz, 133MHz, w niektórych płytach jeszcze 183MHz i150MHz. Co jest grane? Twórcy standardu albo się bardzo nudzili, albo uważali nas za idiotów którzy nie potrafiliby zrozumieć tego, że jest mnożnik procesora i dzielnik pamięci. Uznali, że użytkownik ma widzieć częstotliwość pamięci. Jaki mętlik to powoduje chyba wszyscy wiemy. Aby z częstotliwości procesora uzyskać częstotliwość pamięci trzeba najpierw odgadnąć jaki dzielnik CPU:pamięci ustala sobie płyta, a następnie podzielić częstotliwość procesora przez te liczbę. Z kolei aby z ustawienia w BIOSie wyliczyć częstotliwość pamięci trzeba wiedzieć jakiemu dzielnikowi FSB:pamięci odpowiada dane ustawienie (żeby było śmieszniej dla różnych mnożników procesora są ustalane różne dzielniki CPU:pamięci, a jeszcze zabawniej jest dla mnożników połówkowych, bo wtedy procesor zaokrągla dzielnik w górę do najbliższej liczby całkowitej).
Przykład: chcemy ustawić dzielnik FSB:pamięci 200MHz:183MHz przy mnożniku procesora 10. Liczymy: 183:200=0,915. Najbliższym stosunkiem dla mnożnika 10 bedzie 10:11. Da to dla pamięci częstotliwość 0,90909x200MHz=181,8MHz. To samo ustawienie przy mnożniku 9 da dla pamięci częstotliwość 180MHz, dla mnożnika 8 będzie 177.8MHz. Nieco to komplikuje sprawę w porównaniu do starej architektury, gdzie był tylko dzielnik w chipsecie.
Pełna tablica dzielników wygląda następująco:
Tab. 4. Dzielniki pamięci A64.
A wynikające z niej częstotliwości pamięci dla poszczegółnych ustawień pamięci i mnożników procesora:
Tak więc mówiąc o ustawieniach 200, 166, 133MHz należy pamiętać, że to tylko symboliczne oznaczenia a rzeczywista częstotliwość pamięci może być inna niż wynika to z ustawienia pokazanego w BIOSie. Tym bardziej jest to ważne, że nawet programy pokazujące te częstotliwości (np.: CPU-Z) potrafią się w tym względzie mylić!
Mnożnik HT - co daje, na co wpływa.
Jak pewnie zauważyliście w tabeli pomiarowej, ustawienie częstotliwości HT na 666MHz i 888MHz nie zmienia zupełnie niczego. Nie zmienia się ani przepustowość pamięci, ani wynik Superpi, ani wydajność 3D. Czego to dowodzi? Dowodzi to po pierwsze tego, że nie ma ona znaczącego wpływu na wydajność komputera. Powód jest bardzo prosty - już przy tych 600MHz przepustowość magistrali procesor-reszta systemu jest całkowicie wystarczająca. Tak więc pogoń za Gigahercami w tym miejscu jest zupełnie niepotrzebna. A gdy do tego dodamy częste kłopoty przy wyższych częstotliwościach rzędu 1GHz wiemy już, że ustawianie wysokich mnożników HT możemy sobie darować. Skupmy się na wyciskaniu MHz z procesora i pamięci.
Podsumowanie.
Co widać po wynikach naszych pomiarów? Najważniejszą informacją jest całkowita dowolność w ustawianiu częstotliwości pamięci - nareszcie nie musimy się martwić o dzielniki. O pytaniu 'ustawię 5:4 to stracę czy zyskam?', o zwrocie 'synchroniczne/asynchroniczne ustawienie pamięci' użytkownik A64 może zupełnie zapomnieć.
Platforma A64 wnosi wiele zmian, trzeba od nowa uczyć się tych dzielników, mnożników, zerkać czasem do tabeli. Ale to kwestia przyuczenia się. Potem czekają nas już tylko same przyjemności...
rapra, Białystok 2005.01.09