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.
Dost už ale vychvalování a pojďme se raději podívat, jaké možnosti nám BIOS v tomto směru vlastně nabízí. V prvé řadě se jedná o zvýšení frekvence paměťové sběrnice, kterou můžeme ovlivnit, pokud vypneme funkci automatického zjišťování továrních nastavení.

Paměťové moduly se totiž mohou díky čipu SPD (Serial Presence Detect) totiž také konfigurovat samy. Konkrétní konfigurace je pak uložena v malém čipu paměti EEPROM (Electrically Erasable Programmable Read Only Memory, více o tomto a dalších typech pamětí jste si mohli přečíst také v prvním díle tohoto seriálu) osazeném přímo na samotném PCB paměťového modulu.

Samotnou frekvenci poté můžeme nastavit v řádku SDRAM Frequency (SDRAM Clock), a to většinou relativně pomocí konstanty, kterou buďto k základnímu taktu přičteme (například HCLK+33 MHz), či naopak odečteme (HCLK-33MHz). Frekvence ale někdy může být zadána i přímo (fixně) případně může být pro určení výsledné frekvence třeba počítat s frekvencí jiného zařízení (např. sběrnice PCI, HCLK+PCI).

Frekvence je důležitá zejména kvůli burst přenosům, protože při vyšším taktu bude jeden hodinový cyklus logicky trvat dobu kratší. Vyšší frekvence je však velmi náročná nejen na samotnou paměť, ale třeba i na paměťový řadič a jeho prostřednictvím také na celý systém. Všimněte si také, že volba je dostupná pouze pokud bude položka SDRAM Controlled by vypnuta (viz dále).

Poměr mezi vnější FSB (Front Side Bus) vůči taktu paměti může být někdy v BIOSu možno také nastavit, a to v konfiguračním řádku DRAM Ratio CPU:DRAM (SDRAM Ratio), přičemž možnosti mohou být různé: 3:4, 5:4, 3:2 (asynchronní) nebo 1:1 pro synchronní režim.

Pozn: Nastavení synchronního či asynchronního režimu pamětí může být někdy veden i přes řádek CPU/DRAM Synch CTL.




snahou sdružení JEDEC (Joint Electron Device Engineering Council) bylo zajistit umístění čipů SPD na všechny paměťové moduly, za což mu patří veliký dík


BIOS s pomocí SPD tak zjistí nejen nominální kapacitu daného modulu, ale také jeho datovou šířku, rychlost nebo i dokonce napájecí napětí. S jejich pomocí poté také odpovídajícím způsobem nakonfiguruje čipset základní desky. Výhodou tohoto řešení je nejen velmi jednoduchá instalace, která se tak skládá z pouhého osazení určitého paměťového slotu získaným modulem, ale také hlavně vysoká spolehlivost, protože je použito výrobcem ověřených a doporučovaných mezních hodnot.

Nevýhodu na druhou představuje skutečnost, že téměř všechny paměti snesou o něco vyšší frekvenci, než jakou mají ve svých specifikacích, a proto se často vyplatí funkci v řádku SDRAM Controlled by (DRAM Timing by SPD, DRAM Timing Selectable, Auto Configuration) vypnout, čímž nám bude umožněno zadat hodnoty vlastní. Je však nutné také pamatovat na to, že ne vždy vám toto počínání může přinést kýžený výkon navíc, obzvláště tedy u starých SDR SDRAM paměťových modulů. Na druhou stranu je však pravdou, že dnes se s tímto typem modulů setkáte spíše jen u relativně velmi starých sestav.

Pozn: Pojmenování DRAM Timing můžeme nalézt především u základních desek, které disponují možností osadit jak moduly SIMM, tak i DIMM. I takové desky byly.

Čipsety VIA dále umožňovaly zapnout také tzv. vícecestný prokládaný přístup k paměťovým buňkám, který umožňoval rozdělit vzniklou zátěž mezi více paměťových bank (ne modulů!) na konkrétním paměťovém modulu. Prokládání potom může být buď dvoucestné nebo čtyřcestné (atd.), přičemž ale pouze druhá z variant přináší teoreticky až několik desítek procent výkonu navíc. Přínos dvoucestného prokládání je poměrně diskutabilní.

Jak jistě sami uznáte, jedná se o velmi zajímavý nápad. Ale jak vlastně funguje? Základem je snaha překonat zdržení, které vznikne během dynamického obnovování obsahu operační paměti. Chipset, jenž má občerstvování na starosti, by bez něho nedokázal udržet uložená data ani po dobu několika málo okamžiků. Občerstvování pak sice data před jistou zkázou zachrání, avšak způsobí také nemožnost s bankami jakkoli v té době pracovat, a tím tedy i ono zdržení.

No a právě prokládaný přístup umožňuje v okamžiku "refreshe" vyslat příkazy ještě dalším paměťovým bankám (čipům na paměťovém modulu). Kolik jich bude, to záleží právě na stupni samotného prokládání. Největších účinků dosáhnete při použití modulů stejného výrobce a také kapacity. Přístup ke konfiguraci této funkce může pak být veden skrz konfigurační řádek SDRAM Bank Interleave (DRAM Interleave), jež nejčastěji naleznete také v Advanced Chipset Features.




ne všechny čipové sady umí prokládat


U jiných ale ne. U takových pak může být interleaving dostupný automaticky buď vždy či pouze po použití automatické konfigurace pomocí čipů SPD (viz výše). V tomto případě je pak (obzvláště pokud se jedná o starou základní desku) ale namístě zvážit, zda se mírný nárůst výkonu po zvýšení frekvence vyplatí. Zároveň s odstavením SPD, totiž může dojít také k vypnutí paměťového prokládání, což by celkový výkon poměrně značně degradovalo.

Zajímavé také je, že paměťové prokládání se můžete pokusit zapnout též přímo v operačním systému, a to pomocí Memory Interleave Enabler (MIE), což je jednoduchá utilitka pracující s čipsety VIA, avšak velmi mocná. Před jejím použitím však doporučuji podrobné pročtení přiloženého souboru readme.htm, protože s MIE je velmi jednoduché počítač "rozbít". Ten se může začít po aplikaci funkce chovat nestabilně nebo se mohou ve větší míře vyskytovat tzv. obrazovky smrti (BSOD, Blue Screen of Death).




modrá je dobrá... Nebo snad ne?


V případě těchto, nebo jiných problémů, ale není většinou problém ovladač odinstalovat, a to klasicky přímo z Ovládacích panelů. Paměťové prokládání poté bude ale zrušeno až po následném restartu vašeho stroje.

Podobnou funkcí je i tzv. Rank Interleave, která oproti předešle zmíněné Bank Interleave dokáže pracovat i mezi více odlišnými fyzickými paměťovými bankami. Ty se pak nazývají řady (ranks). Pro správnou funkci prokládání je také zapotřebí použití tzv. "double-sided" paměťových modulů a alespoň dvou "ranků". Pokud bychom totiž zapnuli funkci pouze nad "single-sided" moduly, pracovala by sice, ale nárůst výkonu by byl roven nule. Proto je za těchto podmínek také doporučováno techniku vypnout. Navzdory tomu je možné ji ale zapnout i pokud v systému používáte oba druhy modulů (tedy double i single).




porovnání latencí paměťových modulů v programu Everest


K vlastní konfiguraci můžeme potom použít dalších řádků, které se nám po vypnutí SPD zpřístupní, přičemž DRAM RAS# Precharge (Precharge to Active, tRP) bude třeba hned prvním z nich. Jeho důležitost si představíme nejlépe po uvědomění si, že s pamětí nelze nikdy pracovat ihned po dokončení předchozího požadavku. Její obsah musí být totiž nejprve občerstven, dochází tedy k tzv. přednabití (Row Precharge, RAS Precharge).




princip činnosti operačních pamětí je jednoduchý a složitý zároveň, en.kioskea.net


Doba, kterou zadáváme ve výše zmíněném řádku, reprezentuje počet strojových cyklů, kdy po příkazu Precharge můžeme vyslat systému adresu novou, tedy přesně, jak dlouho bude ono nabíjení trvat.

Zpoždění tRAS (Active to Precharge Delay - Row Address Strobe / Row Address Select, Minimum RAS Active Time, DRAM Act to PreChrg CMD) potom naopak určí, za jak dlouho musí paměťový řádek zůstat po jeho aktivaci činný, tedy za jak dlouho po jeho výběru bude možné s řádkem pracovat. Teprve až po uplynutí této latence je možné s řádkem korektně pracovat.

Po výběru a aktivaci určeného řádku je dále třeba vyčkat určitý čas, který zajistí potřebnou stabilizaci obvodu - tzv. RAS to CAS Delay (tRCD, DRAM RAS# to CAS# Delay). Oproti minule zmiňovanému má ale tento na výsledný výkon paměťového systému vliv poměrně značný, a to z jednoho prostého důvodu. K výběru konkrétní buňky je potřebný vždy. Představuje totiž, jak už jeho anglický název napovídá, prodlevu mezi příkazy RAS a CAS.




blokové schéma čipsetů z rodiny i845, funkci paměťového řadiče zajišťuje severní můstek


Adresaci nakonec završuje signál CAS (Column Address Strobe / Column Address Select), který již jen udává adresu konkrétního sloupce, se kterou budeme chtít nadále pracovat. Doba, po kterou bude sloupec hledán, je udávána opět v hodinových cyklech (T), a bývá v BIOSu označena jako CL (CAS Latency, tCL, CAS Latency Time, SDRAM Cycle Length) a krom jiného slouží také také k zajištění, aby data na vstupních a výstupních pinech byla platná, a mohlo tedy dojít k jejich korektnímu přečtení příp. zápisu.

Pozn: Pokud mluvíme o zkratce tCL, je zřejmé, že písmenka CL jsou zkráceninou spojení CAS Latency a písmenko t reprezentuje čas (time). Někteří autoři ale s oblibou využívají jiného způsobu zápisu - velké písmenko T a malé cl (Tcl).

CAS Latency je také právě tím nejdůležitějším údajem, s jakým se můžeme v této oblasti setkat. Důvodem je opět prostý fakt, že k této latency dochází téměř vždy - před každým čtením nebo zápisem na paměťovou buňku. Tedy s vyjímkou burst přenosů, kdy dochází k přenosu celého bloku dat (to je velmi výhodné, protože takovýto přístup významným způsobem šetří procesorový čas). Konkrétní hodnota v poli CAS Latency může být ale navíc i poloviční, ne pouze celá. Pokud tedy budeme uvažovat např. CL 2,5, bude to znamenat, že k dané operaci nad daty dojde přesně v půli druhého a třetího strojového cyklu.

Typické hodnoty, které budeme pro jednotlivé paměti zadávat, se liší především podle toho, o jaký modul konkrétně jde, a pak také podle jeho samotné kvality. Obecně ale platí, že čím menší hodnota bude ve výše zmíněných řádcích nastavena, tím bude paměťový subsystém celkově rychlejší.

Úplně posledním pojmem, který zde budeme uvažovat, značí tzv. Command Rate (v BIOSu jej můžeme najít pod označením např. SDRAM Command Rate, SDRAM 1T Command Delay) a čím kratší interval zde bude nastavený, tím dříve bude paměťový řadič schopen zadat paměťové buňce konkrétní příkazy. Definuje tedy zpoždění mezi signálem čipové sady a reakcí řadiče. Příliš nízká hodnota této latence pak může do života notorického přetaktovávače ale kromě vysokého zrychlení přinést také mnoho nepříjemností. Řadič paměti k překladu adresy potřebuje totiž také určitý čas, bez něhož bude docházet k poškození nebo rovnou ztrátám zpracovávaných dat.

Command Rate může být navíc ovlivněn též počtem instalovaných modulů, protože je částečně ovlivněn také možnostmi samotného paměťového řadiče. Nejlepší je tedy využívat moduly s co největší kapacitou - při velkých počtech paměťových modulů je totiž někdy nutné zvýšit také hodnotu Command Rate, což může zapříčinit pokles výkonu řádově až v desítkách procent.




paměťový řadič může být integrován i přímo do pouzdra procesoru - AMD Athlon 64 X2