Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Interleaving – zrychlete svoji paměť

  12:00aktualizováno  12:03
Možná jste už něco zaslechli o pojmu interleaving, zkratkách RAS a CAS i jiných záležitostech kolem operační paměti. Pravdou je, že přes tyto věci vede cesta k optimalizaci paměťového subsystému počítače, takže chcete-li vyhnat svého miláčka na maximum jeho možností, směle se ponořte do čtení a experimentování.

Během psaní seriálu o AwardBIOSu jsem si řekl, že by neškodilo se s vámi podělit o zkušenosti, které jsem získal při své snaze optimalizovat výkon paměťového subsystému na základní desce MSI K7T Turbo. Vše se točí kolem pojmu memory bank interleaving neboli prokládané zpracování paměťových bank – tato funkce může práci vaší paměti významně urychlit.

SDRAM, její banky a tajemný interleaving
Paměťovou jednotkou, ke které přistupuje čipset základní desky, není celý modul SDRAM, ale paměťová banka – každý modul, které zasouváte do základní desky, je totiž logicky rozdělen právě na dvě banky (proto se mu říká DIMM neboli Dual In-line Memory Module).

Řadič paměti SDRAM je schopen provádět zajímavou věc, která může významně urychlit odezvu a potažmo i průchodnost paměti: zhruba řečeno, umí přistupovat k datům ve více paměťových blocích (bankách) najednou. Jak to dělá? Paměť je organizována maticově, tedy do sloupců a řádků, proto při přístupu do ní musí proběhnout dvě operace: výběr řádku (Row Access Strobe neboli RAS) a výběr sloupce (Column Access Strobe neboli CAS) – pak teprve získáme obsah požadované paměťové adresy. Mezi těmito operacemi ještě musí být krátká prodleva nazývaná RAS to CAS delay. Často se výše uvedené parametry paměti shrnují do zápisu typu x-y-y-y, kde x je doba, za kterou získáme obsah náhodné adresy z paměti a y je doba, za kterou získáme obsah jiné adresy ze stejného řádku. Můžeme snadno odvodit, že platí:

x = RAS + RAS to CAS delay + CAS (nastavujeme řádek i sloupec)
y = CAS (zde už nastavujeme pouze sloupec, protože zůstáváme na stejném řádku)

Netřeba jistě zdůrazňovat, že čím jsou hodnoty RAS a CAS nižší, tím je výkon paměti vyšší. A nyní přichází ten trik, kterému se anglicky říká interleaving a česky bychom ho mohli označit jako prokládané zpracování paměťových bank. Procesor zadá čipsetu požadavek na přečtení obsahu nějaké paměťové adresy, a jak bylo výše uvedeno, několik cyklů to potrvá, než danou hodnotu dostane. Protože však řadič paměti umí zacházet s jednotlivými bankami souběžně a nezávisle, může zároveň přistupovat k jiné adrese, pokud se tato nachází na jiné paměťové bance. V ideálním případě plně využitého čtyřcestného interleavingu tedy řadič současně získává hodnoty ze čtyř paměťových bank a připravuje je procesoru, aby jeho čekání na data bylo co nejkratší.

Interleaving se vztahuje i na občerstvování (refresh) obsahu paměti. Dynamická paměť se musí v pravidelných intervalech občerstvovat, aby neztratila svůj obsah, a v době občerstvování nemůže procesor k paměti vůbec přistupovat. Aby procesor po dobu refreshe neztrácel přístup k celé paměti, občerstvuje se při interleavingu v daném okamžiku vždy jen jedna paměťová banka a nikoli všechny najednou – procesor tak může ve zbývajících bankách pokračovat v rozdělané práci.

Vidíme tedy, že interleaving je v určitých situacích schopen výrazným způsobem zefektivnit práci paměťového subsystému a dodávat procesoru data z operační paměti rychleji.

Jak se k tomu staví MSI K7T Turbo (ale i jiné základní desky)
Oficiální BIOS tohoto motherboardu (momentálně verze 2.8) nám u pamětí klasifikovaných v jejich identifikačním čipu (SPD) jako CAS 3 neumožňuje pokusit se o plnou optimalizaci jejich výkonu. Standardně máme dvě možnosti, z nichž žádná není ideální. První variantou je ve skupině Advanced Chipset Features zapnout volbu DRAM Timing by SPD – tím získáme výhodný čtyřcestný interleaving, ale BIOS nám zároveň znepřístupní volby SDRAM Cycle Length a DRAM Clock, v nichž nastaví hodnoty z SPD (tedy CAS = 3). My ale víme, že většina pamětí klasifikovaných výrobcem jako CAS 3 dokáže bez problémů zvládnout i CAS = 2, což přináší vyšší výkon, a chtěli bychom tuto hodnotu nastavit. Pokud ovšem zvolíme druhou variantu, tj. vypnutí volby DRAM Timing by SPD, a „ručně“ nastavíme CAS (tedy SDRAM Cycle Length) na hodnotu 2, přijdeme o čtyřcestný interleaving, který je zde bohužel zapnut pouze tehdy, je-li zapnuto DRAM Timing by SPD. Co tedy s tím?

Řešení existuje a má jméno Memory Interleave Enabler (MIE). Jedná se o malý ovladač pro 9x, ME, NT 4.0, 2000 a XP, který na základních deskách s čipsety VIA zapíná čtyřcestný interleaving (seznam podporovaných čipsetů najdete na této stránce). Je třeba dodat, že ovladač slouží pouze k úvodnímu přeprogramování registrů při startu Windows a nezabírá prakticky žádnou paměť. Jeho instalace je jednoduchá – stačí rozbalit stažený archiv do libovolného adresáře, spustit instalační dávku (pro Windows 9x/ME je to Setup_9x.bat a pro Windows NT4/2000 Setup_NT.bat) a na závěr restartovat počítač. Pokud vám váš BIOS umožňuje interleaving aktivovat a neztratit přitom žádnou z jiných optimalizačních výhod, samozřejmě MIE nepotřebujete; v opačném případě se vám však tento ovladač velmi hodí. VIA začlenila možnost prokládaného zpracování paměťových bank do svých čipsetů již v roce 1997, mnoho výrobců základních desek však v BIOSech tuto vlastnost nedává uživateli plně k dispozici.

Jak zjistit, jestli váš paměťový subsystém interleaving používá?
Stačí použít oblíbený diagnosticko-benchmarkovací program SiSoftware Sandra, v jehož modulu Mainboard Information (pod hlavičkou Logical/Chipset Memory Banks) tuto informaci objevíte (viz obrázek). Nenajdete-li tam položku Bank Interleave, znamená to, že je režim prokládaného zpracování vypnut.

Sandra Mainboard Info

Stojí to za to?
Podívejte se na výsledky, které jsem naměřil, a posuďte sami. Grafy jasně naznačují (rozdíl mezi první hodnotou a dalšími dvěma), jak velkým přínosem je aktivování prokládaného zpracování paměťových bank. Je samozřejmě třeba vzít v úvahu, že Sandřin benchmark průchodnosti paměti je pouze syntetickým testem a u konkrétních her a aplikačních programů se bude přírůstek výkonu lišit podle toho, jak intenzivně a jakým způsobem daný program s pamětí pracuje.

Sandra ALU/RAM

Sandra FPU/RAM

Zdroje: RipNet, Networking Resources

 

Autor:


Témata: BIOS

Nejčtenější

První zahraniční ohlasy na českou hru Kingdom Come: Deliverance

Kingdom Come: Deliverance

Některé zahraniční servery již publikovaly recenze na českou hru Kingdom Come: Deliverance. Jak si vede? U kritiků...

OBRAZEM: Vychází Kingdom Come, přinášíme své dojmy po prvních 20 hodinách

Nejočekávanější česká hra poslední dekády je konečně tady. My už ji sice pár...

Nejočekávanější česká hra poslední dekády je konečně tady. My už ji pár dnů testujeme, ale vzhledem k jejímu obrovskému...



O Kingdom Come: Deliverance je v Česku zájem, mnohé obchody mají vyprodáno

Kingdom Come: Deliverance

Česká hra Kingdom Come: Deliverance sice vyšla teprve v úterý, mnohé obchody však měly rozprodanou většinu z první...

RECENZE: Subnautica je nejlepší podmořská hra všech dob

Subnautica

Podmořská Subnautica je na první pohled nenápadná hra, která se od svého vydání drží mezi nejprodávanějšími hrami na...

RETRO: Winter Challenge je i po 25 letech nejlepší herní olympiádou

Winter Challenge

Je to s podivem, ale i po čtvrt století od vydání zůstávají neoficiální zimní hry od Accolade tou nejlepší olympijskou...

Další z rubriky

Video z Infinity Blade II. Tohle na mobilu ještě nebylo

Infinity Blade II

Při pohledu na úvodní video, které běží v herním engine, je těžké uvěřit, že jde o hru na mobil. Infinity Blade II si...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

Najdete na iDNES.cz