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ě

BIOS - 5. díl: Advanced Chipset Features - za paměť rychlejší

15.10.2008, Petr Stránský, článek
BIOS - 5. díl: Advanced Chipset Features - za paměť rychlejší
Většina uživatelů by chtěla mít rychlejší počítač, ale jen někteří vědí, že lepších výsledků lze dosáhnout i jinak než výměnou HW. Řeč je opět o BIOSu, kde můžete konfigurovat mnohé z obvodů základních desek, a to včetně pamětí, na které se dnes zaměříme.
Krom výše zmíněných latencí ale do hry vstupují i zpoždění další. Za všechny zmiňme alespoň Row Cycle Time (tRC), který představuje čas mezi dvěma po sobě jdoucími příkazy RAS, a to právě v případě, že je daný řádek označen jako aktivní (Active), ale data v daném okamžiku čtena nejsou. Dále může jít o parametry Refresh Rate (tREF) nebo Row Refresh Cycle Time (tRFC), z nichž první stanovuje časový interval obnovování paměťových buněk (jak často?) a druhý dále specifikuje, jak dlouho vlastně bude samotná obnova trvat - čas mezi vyvoláním příkazu REF a opětovným nastavením aktivního stavu.

Existují ještě další více či méně důležité parametry, které dále specifikují, jak rychle a jakým způsobem bude práce s paměťovým modulem probíhat. Bohužel (nebo spíše i bohudík) ale ve většině programů Setup nám bude umožněno detailněji specifikovat jen pouhý zlomek z nich. To ale vůbec nevadí, protože podle všech měření mají na výkon největší dopad právě parametry tRAS, tRP, tRCD v čele s tCL. Nabízí se tedy otázka, proč tomu tak je, a odpověď na ni je velice prostá - bývají totiž (jak již bylo několikrát řečeno) vyvolávány nejčastěji. Související data bývají často přítomná právě v rámci jednoho banku.

Nemusí tomu tak být ale vždy! Rozhodujícím faktorem a pomyslným králem nad celou komunikací je totiž vždy konkrétní program, spuštěná aplikace, která určuje, odkud se budou data teprve číst. Od toho se dále odvíjí také to, jaké všechny operace bude k přechodu na nově zadanou adresu potřeba provést. Velkou výhodou při přístupu k paměti je totiž také to, že všechny datové operace nad pamětí není třeba vykonávat ve stejném sledu. Například po požadavku čtení dat ze stejného paměťového řádku již není nutné užívat příkazu RAS, stačí pouze CL (resp. Row Precharge).

Mimochodem, víte, že i obsah operační paměti lze (podobně jako u pevného disku) defragmentovat, a tím zrychlit práci s ní? Pro tento účel lze použít velké množství nástrojů. Zmínit můžeme například WinOverBoost společnosti PCalMeglio, který je jakožto freeware k dispozici každému zdarma.




WinOverBoost 2.1.1 Beta - utilitka k optimalizaci celkového výkonu vašeho stroje


Další (ne)důležité parametry


Není ale vše tak jednoduché, jak se může na první pohled zdát. Do hry totiž vstupují další parametry, které dále specifikují práci s pamětí. Jedním z nich je například Row Active to Row Active Delay (tRRD), z něhož můžeme vyčíst počet cyklů, které musí uplynout, pokud chce chipset přecházet mezi dvěmi paměťovými bankami, z nichž ta cílová je aktivní.

Některé parametry mohou být navíc závislé i na konkrétním používaném paměťovém řadiči. Mezi takové patří třeba parametry Write to Read Delay (tWTR), Write Recovery Time (tWR) nebo Read to Write Delay (tRWT), přičemž nejdůležitější hodnotou z nich je asi nespíše druhá ze zmíněných. Ta totiž prezentuje dobu, kterou je nutno vyčkat po zadání příkazu k zápisu. Příkaz Row Precharge je možné zadat až po jejím uplynutí.

Proč tomu tak je? Pokud by zde tento limit nebyl, nebo by tento byl nastaven na příliš malý časový interval, nebylo by možné do paměti zapisovat. Nebo tedy, abych byl přesný, dalo by se, ale probíhající refresh by před dokončením zápisu mohl obnovit data stará - nová by se do paměťové buňky tedy vůbec nemusela promítnout.

tWTR je zde z podobného důvodu, avšak určuje počet cyklů mezi operací dokončení zápisu a počátkem operace čtení. Posledně zmíněný Read to Write Delay je potom přesně inverzní funkcí k této - reprezentuje dobu mezi čtením z paměťové buňky a následným zápisem.

Svět nudných čísel ještě opustit bohužel nemohu, máme tu totiž také položku SDRAM RAS Pulse Width definující šířku impulsu Row Address Strobe, tedy podobně jako příkaz Active to Precharge (RAS). Opět tedy udává minimální dobu mezi možnou aktivací a následnou deaktivací stejného paměťového řádku.

Pro optimální nastavení bývá doporučováno sečíst hodnoty CAS Latency a tRCD a výsledek dále navýšit o konstantu dvou či tří paměťových cyklů. Nejprve tedy počítejme s první nabízenou variantou a k druhé přejděme jen pokud se bude systém s tou předchozí projevovat nestabilně. Hodnotu lze i nadále po malých krůčcích zvyšovat - to právě pokud ani toto nastavení nestačí k zajištění odpovídající stability.




nastavení CAS Latency je možné samozřejmě i v případě "svislého" Setupu


Pro další zvýšení výkonu je navíc doporučováno také zvýšit hodnotu délky transakce burst přenosů. Požadované učiníte v položce SDRAM Burst Length, kam nejlépe nastavíme hodnotu 8, protože pak se bude jedna dávka skládat buď z celkem osmi čtení nebo osmi zápisů, což v tomto případě dosahuje lepších výsledků oproti čtyřem souběžným operacím po nastavení číslovky 4.

Nebo co když se vás zeptám, zda je podle vás možné předvídat události budoucí? Myslíte, že ne? Pak nemáte pravdu, tedy alespoň ve světě počítačů. Pokud totiž zapneme funkci Speculative Read (SDRAM Speculative Read), dovolíme tím vlastně paměťovému kontroléru, aby začal zpracovávat aktuálně prováděný příkaz o něco dříve, než bude cílová adresa plně dekódována. Tím můžeme výkon mírně zvýšit.

Fast R-W Turn-Around zase může nepatrně zvýšit výkon při obdržení požadavku na čtení a opětovný zápis. Při povolení této položky (Enabled) tak můžeme pomoci systému překonat prodlevu před inicializací příkazu pro zápis.

Mezi další zajímavé konfigurační položky patří ještě Read-Around-Write, jejíž možnosti nastavení jsou opět zapnuto (Enabled) či vypnuto (Disabled), přičemž doporučeno je opět zapnutí této techniky. Dovoluje totiž lépe využívat procesorového výkonu pro čtení i zápis do operační paměti RAM - data jsou nejprve ukládána do systémového bufferu (Read-Around-Write buffer) a až poté do paměti. Díky tomu se data nezapisují jednotlivě, ale pouze po větších blocích, což má za následek to, že procesor již dále nemusí čekat na dokončení jednotlivých zápisů, když zrovna potřebuje něco zapsat.

Pozn: Ač jsou předešlé možnosti poměrně lákavé, jejich vliv na výkon je u většiny počítačových systémů takřka nulový.

Posledním z řádků Setupu, který zde ještě zmíníme, bude ten s přiléhavým pojmenováním SDRAM Bank-to-Bank Delay, který velmi jednoduše specifikuje minimální množství času mezi aktivačními příkazy na stejném modulu. Čím kratší prodleva bude, tím rychleji bude možné následující bank aktivovat. Proto je obecně doporučováno zde nastavit hodnotu dvou cyklů (2 T) a k variantě 3 T se uchýlit pouze při výskytu problémů se stabilitou.


Značení jednotlivých parametrů


Jak poznat, jaké parametry jsou vhodné konkrétně pro váš paměťový modul? Jednoduše, z jejich modelového označení. Situaci však mírně komplikuje skutečnost, že se všehovšudy používají dvě zcela odlišné metody:

První z nich používá tuto posloupnost, která začíná hodnotou časování tCL, a která bývá využívána při marketingových účelech obecně nejčastěji:





Druhý způsob používají většinou samotní výrobci paměťových modulů:






Doporučení


A jak by bylo nejlepší tyto parametry nastavit? To vám bohužel nikdo přesně neřekne, vždy bude záležet jen na konkrétním kusu daného hardwaru a na vás, kam až se odvážíte zajít. A protože stejně jako na světě nenajdete identického člověka dvakrát, nenajdete takové ani paměťové moduly. Některé mohou lépe zvládnout agresivnější časování (čím nižší číslo, tím nižší latence, a tím vyšší výkon), avšak za cenu jisté nestability.

Pro vaše paměti je pak již jen třeba najít tu nejvhodnější hodnotu. Pokud by byla vysoká, počítač by byl zbytečně pomalý a paměťová propustnost pravděpodobně jeho největší slabinou. Většinou platí také přímá úměra, která říká, že čím vyšší základní takt modulu, tím vyšší časování a obráceně.

Je zřejmé, že počet hodinových cyklů, po kterých se bude operace provádět, zůstává s rostoucí frekvencí stejná, konstantní. Čím vyšší ale ona frekvence bude, tím kratší dobu bude jeden cyklus trvat a tím méně času bude k provedení celé operace zapotřebí. Zní to sice pěkně, ale vzpomeňme nejdříve, co jsem uváděl v jedné z minulých kapitol u části, která se zabývala frekvencemi a z které vyplývalo, že čím vyšší frekvence bude, tím vyššího výkonu dosáhneme.

Máme tedy dva protichůdné názory, kterého z nich se ale držet? Kdo má pravdu? Je to ten, který říká, že je třeba najít odpovídající kompromis, jenž bude dosahovat zároveň, co možná nejvyšší pracovní frekvence, tak i co nejnižšího časování.

Pro úplnost ještě řekněme, že hodnoty CAS Latency se musí pohybovat v určitých reálných mezích. Nikdy se tak nesetkáte s tCL nastavenou na hodnotu 1, protože toto by paměťový řadič jednoduše nebyl schopen ustát. To samé platí i pro hodnoty mnohem vyšší, než jaké typické nastavení představuje.




reálné časování paměťových modulů DDR SDRAM získané z testu "staršího" počítače
 

Možná se teď ptáte, jak je možné, že některé moduly zvládnou agresivní časování a jiné (avšak ze stejné modelové řady) nikoliv, a to samé platí i pro procesory a jejich taktování. Odpověď je však velmi prostá, stačí si uvědomit, jakým způsobem jsou dané komponenty vyráběny.

Uvažujme tedy pro zjednodušení nějaký starší procesor vyráběný 0,18mikronovou technologií, přičemž celá modelová řada bude začínat CPU s taktem 500 MHz a končit na 1 GHz, kde již použitá technologie dosáhla svého maxima. Ze získaných údajů si můžeme odvodit, že všechny procesory této řady budou mít jisté předpoklady, které jim zaručí běžet až na maximální frekvenci série (1 GHz).

Výrobce totiž během výroby postupuje způsobem veskrze jednoduchým. Procesor je nejprve v laboratořích vyroben a posléze i otestován, jakou frekvenci v pořádku zvládne. Podle dosažených výsledků a toho, jak se výrobci ten konkrétní kousek povedl, jej poté také odpovídajícím způsobem označí. Vznikne tak například 700MHz CPU. Za určitých podmínek bychom s tímto procesorem mohli dosáhnout ale i výše - třeba s lepším chlazením.




wafer - plátek z ignotu, na kterém naleznete během výroby stovky procesorových čipů