Hlavní navigace

Jak testuje Memtest

Petr Krčmář

Memtest86 je vynikající program pro testování paměťových modulů ve vašem počítači. Dokáže odhalit poškozené nebo nefunkční paměti a pomůže tak vyřešit časté záhadné problémy s vašim počítačem. V článku se společně podíváme, co všechno umí a jak to dělá.

K čemu to

Paměti jsou velmi citlivou součástí počítače a závisí na nich bezchybný běh systému. Pokud nejsou v pořádku, může se počítač chovat záhadně, systém může vykazovat nepříjemné chyby nebo znenadání havarovat. Mnoho dotazů ve fórech se týká problémů, které jasně zapříčinil špatný hardware.

Mělo by proto být dobrým zvykem každého uživatele počítače z druhé ruky, že nejlépe ještě před jeho zakoupením stáhne Memtest a nechá stroj „proklepnout”.

Co to tedy je

Memtest je samostatná aplikace s vlastním zavaděčem, která je distribuována jako bootovatelný obraz. Ke svému běhu nepotřebuje žádný operační systém ani speciální podporu dalšího software.

Jedná se o program, který se chová jako naprosto samostatný jednoúčelový operační systém. To přináší velmi zásadní výhodu – Memtest není nijak omezen a může si v paměti dělat, co se mu zlíbí. To je samozřejmě velmi důležité pro všechny testy, které provádí. Není rušen dalšími aplikacemi a především není omezován. Za normálních okolností by se totiž musel podřizovat pravidlům nadřazeného systému, která by mu zakazovala pracovat se všemi stránkami paměti.

Ačkoliv tedy nemá na první pohled Memtest s Linuxem nic společného, přece jen jsou úzce svázáni. Oba jsou k dispozici pod GNU GPL, ovšem Memtest zároveň používá některé části kódů přímo z kernelu. Velmi silně je ovšem modifikuje pro své potřeby.

Memtest86 nebo Memtest86+

Původním programem je Memtest86. Jeho vývoj ale šel velmi pomalu a v roce 2002 v podstatě ustal. Proto na počátku roku 2004 vznikl nový fork, který je na originálním Memtestu86 založen, ale snaží se udržet vývoj v pohybu a vytvářet nové a aktuální verze. Vyšel z původní verze 3.0, opravil mnoho chyb a začal vydávat vlastní program.

Původní autoři ovšem nechtěli být zahanbeni, a tak po založení nového projektu začali produkovat nové verze. I přesto je ale Memtest86+ mnohem pokročilejší, rychleji se vyvíjí a podporuje více platforem a hardware. Jeho nezanedbatelnou výhodou je, že běží na 64bitových strojích. Program ale budeme označovat obecně jako Memtest.

Jak na to

Chcete-li Memtest vyzkoušet, navštivte domovské stránky a stáhněte si obraz aktuální verze. Existuje několik způsobů jak program nastartovat. Tím nejjednodušším je jeho nahrání na disketu. Nesmíte ovšem Memtest nahrát na disketu jako běžný soubor, ale zapsat na ni přímo jeho obraz.

V Linuxu bude stačit zadat

# cat soubor > /dev/fd0

Pokud budete chtít obraz zapsat v DOSu, poslouží vám k tomu program rawrite.

Další možností je použití vašeho oblíbeného zavaděče. Pokud používáte Lilo, stačí soubor nahrát do adresáře /boot a pak do /etc/lilo.conf přidáte dva řádky:

image = /boot/memtest.bin
label = memtest

Po novém zapsání zavaděče příkazem lilo stačí rebootovat. Pokud jste použili disketu, zavedete Memtest z ní, jinak vyberte v zavaděči novou položku. Program se spustí a rovnou začne testovat.

Co to umí

Už jsem napsal, že Memtest dokáže otestovat vaše paměťové moduly. Používá k tomu řadu sofistikovaných metod, které dokáže vhodně kombinovat. Obsahuje tak sadu testů, které automaticky na počítači spouští.

Tyto testy jsou založeny na dvou algoritmech. První z nich se jmenuje moving inversion a druhý Modulo-X.

Moving inversion

Stěžejní algoritmus funguje následovně:

  1. Naplní paměť datovým vzorkem
  2. Začne od nejnižší adresy
  3. Zkontroluje, jestli se vzorek nezměnil
  4. Přepíše jej jeho binárním doplňkem
  5. Zvýší adresu

opakuje body 3 – 5

  1. Začne na nejvyšší adrese
  2. Zkontroluje, jestli se vzorek nezměnil
  3. Přepíše jej jeho binárním doplňkem
  4. Sníží adresu

opakuje body 2 – 4

Přestože se jedná o velmi spolehlivý algoritmus, má svá omezení. Dnešní paměťové čipy používají 4 až 16 bitovou sběrnici, takže není možno z nich přečíst právě jeden bit. Vždy vrací vícebitovou hodnotu. Proto není možno zaručit, že byly otestovány interakce všech sousedních buněk.

Proto je potřeba volit takové varianty vzorků, které zajistí vyzkoušení všech možných kombinací jedniček a nul ve všech sousedních buňkách.

Modulo-X

Dalším problémem jsou buffery a cache, které mohou snížit efektivitu předchozího algoritmu. Je sice možné vypnout cache, ale v novějších pamětech už není možno odstavit buffering. Proto vznikl algoritmus Modulo-X, který není cachováním nijak ovlivněn.

  1. Na každou dvacátou pozici je zapsán vzorek
  2. Na ostatní (0 – 19) je zapsán jeho doplněk
  3. Bod 2 se několikrát opakuje
  4. Zkontroluje dvacátou pozici zda se nezměnila
  5. Pozice se posune o 1

Celé testovací okno se tak pomalu posouvá po jedné pozici, ačkoliv se v každou chvíli pracuje s dvaceti samostatnými kusy paměti. Díky tomu ovšem můžeme vyprazdňovat cache a nakonec každého cyklu přečíst reálnou hodnotu z testované paměti.

Všechny testy

Ostatní testy jsou jen drobnými úpravami popsaných algoritmů. Zkouší se různá doba průběhu, zapnuté nebo vypnuté cache, změny zapisovaných vzorů a podobně. Jakmile testy proběhnou, opět se vše spustí od začátku. Chcete-li mít jistotu, měli byste nechat vše proběhnout několikrát dokola.

Závěrem

Memtest je velmi užitečným pomocníkem, kterého byste měli povolat do služby jako prvního ve chvíli, kdy se začnou objevovat podivné potíže s počítačem. Rovněž zabrání tomu, abyste v bazaru koupili zajíce v pytli.

Anketa

Používáte Memtest?

Našli jste v článku chybu?

23. 8. 2006 1:19

No nevim. Mam system stabilni a memtest pri full testu (tj. pri nejake z tech obskurnosti) hlasi chyby. IMHO zatezuje tu pamet vic nez jakykoliv realny provoz ...
DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Test na HIV je zdarma i za pět set

Test na HIV je zdarma i za pět set

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D