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ší

KVÍZ: Poznáte nejslavnější herní padouchy?

Call of Duty: WW2 - Zombie Mode

Většina kladných herních hrdinů si je podobná jako vejce vejci. Zato u záporáků se mohou vývojáři daleko více vyřádit,...

Umělá inteligence od Elona Muska už teď poráží profesionály ve hře Dota 2

Organizace OpenAI slaví s vývojem umělé inteligence spoustu úspěchů.

Vývojáři projektu OpenAI, u jehož zrodu stál vizionář Elon Musk, představili umělou inteligenci, která je schopná...



Speedrunner dohrál nejtěžší hru loňského roku za 50 minut

Cuphead

Pouhých 50 minut stačilo hráči s přezdívkou TheMexicanRunner k tomu, aby pokořil neskutečně obtížnou skákačku Cuphead....

KOMENTÁŘ: Lezou vám krkem hry pro každého? Nejste sami, ale máte smůlu

Far Cry 5

Při pohledu na herní průmysl vynikne jeden zajímavý rozpor. Velcí vydavatelé se snaží hráčům zprostředkovat herní...

Z uklízení nepořádku a instalace sporáku je nečekaný herní hit

House Flipper

House Flipper je nečekaný prodejní hit letošního roku. Jeho hlavní náplní je přitom uklízení, stěhování nábytku a...

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...



Najdete na iDNES.cz