Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Ladíme výkon Athlonu 64

27.7.2005, Eagle , článek
Ladíme výkon Athlonu 64
Procesor Athlon 64 má řadu možností nastavení časování pamětí. Řada z nich je ovšem nedokumentovaná (podporované jsou neoficiálně). Dnes si ukážeme, jak měnit nastavení pamětí za chodu z operačního systému - včetně oněch nedokumentovaných nastavení jako například změny frekvence na 180 MHz. Mimo to si také povíme, jak zjistit maximální přípustnou teplotu čipu (TCaseMax).
Časování pamětí

Řada BIOSů nabízí pouze velmi omezené možnosti nastavení časování pamětí. Přitom Athlon 64 má možností více než dvacet. To, co výrobce základní desky nedovolí uživateli, nastaví automatika dle údajů z SPD (Serial Presence Detect) informačního čipu, který je na každém DIMM modulu. Tyto nastavení však často nemusí být zcela korektní a dokonce se může stát, že si v Setupu něco zvolíte, ale deska to nastaví úplně jinak! V takovém případě lze přenastavení provést manuálně, tentokrát ale naprosto jasně. A pokud by nám náhodou nešlo o nápravu neschopnosti výrobce základní desky, můžeme časování měnit pro dosažení vyššího výkonu.

V následujícím textu vypisuji zajímavé parametry. Vždy platí, že čím nižší hodnoty / menší počet cyklů T, tím lépe. Paměti to ale nemusí zvládat (například při přetaktování na vyšší frekvence je prakticky vždy nutné hodnoty zvyšovat). Obvykle proti automatickému nastavení BIOSu lze časování vylepšit o jeden až dva stupně. Kde je lepší vyšší hodnota, bude to jasně řečeno. Veškeré změny ihned testujte - ideální je program Prime95 nastavený na využití téměř celého rozsahu operační paměti. Stáhnout si ho můžete tady.

V případech, kdy chybí nějaké bitové kombinace, jsou tyto popsány v manuálu jako "reserved", tj. nepodporované. To ovšem neznamená, že procesor na ně nebude reagovat, může se totiž jednat o nedokumentovaná nastavení. Kde je v textu uvedeno "...", tam jsou další hodnoty vždy o jednu vyšší než předchozí, jen by bylo příliš dlouhé je zde vypisovat. Takže například...

0000 = 7T
...
1111 = 22T

... značí, že jsou podporovány i hodnoty 0001 = 8T, 0010 = 9T, 0011 = 10T atd. Pokud neumíte binární matematiku, stačí použít klasické sčítání v Kalkulače z operačního systému a přepínat na Bin nastavení.

DRAM Timing Low Register

Tento registr se nachází v Device 24, Function 2, Offset 88h.


Write Recovery Time (bit 28), tWR
    • 0 = 2T
    • 1 = 3T
- Obvyklé nastavení: 2T pro DDR200 a DDR266, 3T pro DDR333 a DDR400
- Čas potřebný na zápis před příkazem Precharge. Při příliš rychlém nastavení bude docházet k chybám zápisu.

Row Precharge Time (bity 26 až 24), tRP

    • 010 = 2T
    • 011 = 3T
    • 100 = 4T
    • 101 = 5T
    • 110 = 6T
- Běžně paměti zvládají 2T až 4T.
- Doba mezi příkazy Precharge a Active jedné stránky.

Minimum RAS# Active Time (bity 23 až 20), tRAS

    • 0101 = 5T
    • 0110 = 6T
    • ...
    • 1111 = 15T
- Běžně paměti zvládají 5T až 8T.

Active-to-active Delay (bity 18 až 16), tRRD

    • 010 = 2T
    • 011 = 3T
    • 100 = 4T
- Čas potřebný pro přepnutí na Active na jiné stránce.

RAS#-active to CAS#-read/write Delay (bity 14 až 12), tRCD

    • 010 = 2T
    • 011 = 3T
    • 100 = 4T
    • 101 = 5T
    • 110 = 6T
- Časová prodleva mezi signály RAS-Active a CAS. Paměti běžně zvládají 2T až 4T.

Row Refresh Cycle Time (bity 11 až 8), tRFC

    • 0000 = 9T
    • 0001 = 10T
    • ...
    • 1111 = 24T
- Doba potřebná k provedení refresh obsahu.

Row Cycle Time (bity 7 až 4), tRC

    • 0000 = 7T
    • 0001 = 8T
    • ...
    • 1111 = 22T
- Součet délky příkazů Precharge (tRP) a Active (tRAS)

CAS Latency (bity 2 až 0), tCL

    • 001 = 2T
    • 101 = 2.5T
    • 010 = 3T
- Procesor podporuje i hodnotu 1.5T, binární kombinace mi ovšem není známá, navíc změna CAS Latency za chodu vede téměř vždy k zatuhnutí.
- Čas potřebný pro dodání dat po poslání CAS signálu (Column Access Strobe - vyhledávání buňky).

DRAM Timing High Register

Tento registr se nachází v Device 24, Function 2, Offset 8Ch.


Write-to-Read Delay (bit 0), tWRT
    • 0 = 2T
    • 1 = 3T
- Obvyklé nastavení: 2T pro DDR200, DDR266 a DDR333, 1T pro DDR400
- Určuje čas nutný pro přepnutí datové sběrnice ze zápisu na čtení.

Read-to-Write Delay (bity 6 až 4), tRWT

    • 000 = 1T
    • 001 = 2T
    • 010 = 3T
    • 011 = 4T
    • 100 = 5T
    • 101 = 6T
- Určuje čas potřebný pro přepnutí datové sběrnice ze čtení na zápis
- Doporučené stabilní hodnoty:


Refresh Rate (bity 12 až 8), tREF

    • 00000 = 100 MHz, 15.6um
    • 00001 = 133 MHz, 15.6um
    • 00010 = 166 MHz, 15.6um
    • 00011 = 200 MHz, 15.6um
    • 01000 = 100 MHz, 7.8um
    • 01001 = 133 MHz, 7.8um
    • 01010 = 166 MHz, 7.8um
    • 01011 = 200 MHz, 7.8um
    • 10000 = 100 MHz, 3.9um
    • 10001 = 133 MHz, 3.9um
    • 10010 = 166 MHz, 3.9um
    • 10011 = 200 MHz, 3.9um
- Delší doba refreshe slušně zvyšuje propustnost, ale data mohou náhodně mizet z pamětí. Nastavení volte dle použité frekvence, jinak může značně růst latence.


Výsledky z programu Everest

Write CAS Latency (bity 22 až 20)

    • 000 = 1T
    • 001 = 2T
- Unbuffered paměti by měly být naprogramovány na 1T, registrované pak na 2T.

DRAM Configuration Low Register

Tento registr se nachází v Device 24, Function 2, Offset 90h.

Enable 2T timing (bit 28)

    • 1 = 2T
    • 0 = 1T
- Platí pouze pro procesory revizí CG a novější.
- Hodnota 2T je potřeba při osazení více moduly pamětí (typicky čtyřmi). Způsobí posílání příkazů a adres za dva hodinové cykly místo jednoho, což sníží výkon streamové propustnosti o cca. 10 procent.


Srovnání propustnosti (Sandra) a latencí (Everest) mezi 1T timing a 2T timing

DRAM Configuration High Register

Tento registr se nachází v Device 24, Function 2, Offset 94h.


Memory Clock 3 Enabled (bit 29)
    • 0 = vypnuto
    • 1 = zapnuto
- Určuje, zda jsou posílány signály do DIMM modulu číslo 3. V případě, že tento modul nepoužíváte, nastavte na vypnuto (menší spotřeba, menší elektromagnetické rušení).
- Obdobné nastavení platí i pro ostatní položky (bit 28 - Memory Clock 2 Enabled; 27 - Memory Clock 1 Enabled; 26 - Memory Clock 0 Enabled)

Idle Cycle Limit (bity 18 až 16)

    • 000 = 0T
    • 001 = 4T
    • 010 = 8T
    • 011 = 16T
    • 100 = 32T
    • 101 = 64T
    • 110 = 128T
    • 111 = 256T
- Určuje počet cyklů před nuceným zavřením otevřené paměťové stránky. Efekt závisí na konkrétním programu. Pokud přistupuje stále do stejné stránky, je vhodné zvolit co nejdelší čas. Typicky nastavovaná hodnota je 16T, pro zvýšení výkonu můžete zkusit 256T.

Maximum Asynchronous Latency (bity 3 až 0)

    • 0000 = 0 ns
    • 0001 = 1 ns
    • ...
    • 1111 = 15 ns
- Doba by měla být nastavena podle času potřebného pro signál k dosáhnutí poslední DIMM slotu a zpět. Pro unbuffered moduly se doporučuje 7 ns v případě třech či čtyřech modulů, v ostatních případech 6 ns. Hodnota může mít značný vliv na stabilitu.