Hlavní navigace

Co dělá počítač za vašimi zády

V článku se podíváme na komunikaci mezi procesorem a pamětí. Také si řekneme, na co procesor používá vyrovnávací paměti, jak jimi zefektivňuje chod počítače a jak rychle dokáže vůbec pracovat.
Martin Zachar 25. 4. 2009

Sdílet

Úvod

Na začátek uvedu jeden vtípek, který možná někteří z vás již četli na internetu. Mnohdy se bohužel až příliš shoduje s realitou:

Když si uvědomím, že dnes mám na stole 30x rychlejší počítač se 160x větší pamětí a 333x větším diskem než před 8 lety a nové programy na tom dokážou běhat úplně stejně jako tehdy ty tehdejší, je to na pováženou.

A když si představím, že jedna operace dnes procesoru trvá méně než 0.000000001 sec, že během mrknutí oka dokáže 80 000 000krát přesunout čísla mezi registry, sečíst a odečíst je, během toho současně pětatřicetkrát překreslit všech 995 328 bodů na obrazovce a ještě si 130 000x ověřit, jestli jsem náhodou mezitím nestiskl klávesu nebo nepohnul myší - tak se prostě musím zeptat: Co ten Word už minutu dělá?!!!

Věřte, že počítač není škodolibou technickou vymožeností, která má pozlobit uživatele svým zdánlivě neustálým nicneděláním něčeho důležitého. Počítač je sofistikované zařízení, které plní pouze příkazy, jenž má v sobě uloženy. Ale proč tedy někdy pracuje pevný disk, i když jste počítači nezadali žádný složitý úkon? A právě na to se podíváme v následujícím textu.

 

Procesor

Dalo by se říci, že takovým srdcem počítače je procesor. Ten postupně načítá jednotlivé instrukce a snaží se s nimi řídit celý stroj. Na obrázku můžeme vidět velmi zjednodušený názorný model částí počítače potřebných pro náš příklad. Vzal jsem tedy dvoujádrový procesor s výkonem 3 GHz, což se v dnešní době může snad vyskytovat v obyčejném počítači. Údaje nemusí být přesné, mají sloužit k ilustraci.

Ukázkový zjednodušený model počítače.

Když se tedy podíváme na obrázek, můžeme si všimnout, že procesor zvládne vykonat jednu instrukci přibližně za jednu třetinu nanosekundy. Pokud si nedovedete představit, jak moc rychlé to je, pak si uvědomte, že například světlo za tuto dobu urazí necelých deset centimetrů, což je při jeho obrovské rychlosti zanedbatelná vzdálenost.

 

Vyrovnávací paměti a RAM

Při své práci musí procesor samozřejmě načítat z paměti a zapisovat do ní. Takto sbírá jak instrukce, tak také jednotlivá data potřebná k výpočtům a výsledky sem zase ukládá. K paměti přistupuje přes L1 a L2 vyrovnávací paměti (cache), do kterých si ukládá data načtená z RAM pro rychlejší přístup. Vyrovnávací paměti jsou součástí samotného procesoru, které jsou však oproti obyčejné paměti mnohem dražší, ale také daleko rychlejší.

Pokud tedy procesor přistupuje k paměti a chce z ní načíst nějaká data, nejprve se podívá do L1 a L2, zda zde již nejsou. Kdybychom si to uvedli na reálném příkladu, tak pokud čteme data z L1, pak je to jako natáhnout se pro svačinu, kterou máte na stole, což vám zabere 3 sekundy. Pokud data nejsou v L1 a procesor je tedy musí hledat v L2, pak je to jako jít do lednice pro svačinu, což byste za 14 sekund zvládnout mohli. A pokud data ani zde nejsou, pak musí přistoupit ke čtení z paměti, což je asi jako zajít si přes ulici do obchodu. Takovou procházku za 4 minuty určitě zvládnete.

 

Procesor.

Samozřejmě, že přístupová doba k paměti RAM není dána přesně. Záleží na mnoha parametrech a neodhadnutelných faktorech. Určitě bude záležet na tom, jaký přesně typ paměti ve svém počítači máte a jaké jsou jeho veškeré technické údaje. Dalším parametrem ovlivňujícím rychlost odezvy je také způsob procesoru, jakým si ukládá data do vyrovnávacích pamětí. Většinou se totiž praktikuje to, že když procesor čte nějaká data z paměti, tak jsou s těmito daty přeneseny do cache také okolní data nebo data s nimi nějak logicky svázaná.

Avšak nejde vždy pouze o paměť samotnou, ale také o různé sběrnice a další zařízení. Ty uskutečňují opravdový přesun dat například z paměti k procesoru. Zde se může jednat například o rychlost přenosu 10 GB/s. Může se to zdát opravdu úsměvné, pokud si uvědomíte, že byste takto mohli přenést v jedné sekundě dvakrát obsah celé vaší paměti RAM (pokud bereme údaje z obrázků). To je bohužel však jen teoretická rychlost, ke které se reálné hodnoty málokdy přiblíží.

Paměť RAM.

Pevný disk

Avšak všechna data nejsou uložena pouze v paměti z důvodu nedostačující velikost a často musí být načítána i z pevného disku. Co se týká rychlosti odezvy tohoto zařízení, pak je opět různě proměnné, ale pohybuje se většinou kolem 14 ms (Zde se již nejedná o nanosekundy, jako tomu bylo doposud. Odpovídá to přibližně 42 milionům cyklů.), což by do našeho příkladu se svačinou zapadalo na víc než jeden rok a tři měsíce hledání jídla. To už byste snad i přestali mít chuť. Rychlost je proměnná především kvůli tipování, kde se mohou daná data vyskytovat a také kvůli jejich uspořádání. Pokud jsou jednotlivé části skupiny dat různě rozloženy na pevném disku, pak musí být načítány a hledány postupně. Pokud jsou na jednom umístění hezky za sebou, pak jsou načteny a poslány daleko rychleji. Už tedy víte, na co slouží defragmentace?

Pevný disk.

Jen tak pro zajímavost. Přístupová doba k rychlým serverům je například 45 ms. Určitě by bylo zajímavé mít místo pevného disku pouze nějaké serverové uložiště. Na takovou možnost však můžeme jen čekat a doufat, že jednou příjde.

 

Závěr

Pokud tedy počítač právě něco načítá a vám se zdá, že nic nedělá, pak zřejmě hledá příslušná data v paměti nebo na pevném disku. Rozhodně se neznervózňujte a spíše se zamyslete, zda mu přístup nemůžete nějak zjednodušit, například defragmentací.

Zdroj: intel, duartes.org

Autor článku

Něco jsme propásli?

Dejte nám vědět. Upozornit redakci Stahuj
Velice děkujeme za Vaše podněty