Mnohonásobný buffering

Mnohonásobný buffering je termín, v informatice označující použití celkově více než jedné vyrovnávací paměti (bufferu) pro držení bloku dat tak, aby "čtecí" zařízení tento blok vidělo jako kompletní celek, a než se vytvoří další kompletní celek (který nahradí ten minulý), čtecí zařízení vidí pouze jeho starší – poslední – kompletní verzi, ne jako průběžně se aktualizující data "zapisovačem". Nejčastěji se používá v počítačové grafice, ale jeho použití není výjimkou ani v jiných odvětvích informatiky. Používá se vždy tam, kde potřebujeme mít data poskládána jako celky, ne jako kus novější a kus starší verze.

Popis

Nejlepší bude vysvětlit princip mnohonásobného bufferingu v praxi:

Programátor vytváří svůj program, který využívá grafického prostředí. Bude to nějaký jednoduchý program, protože programátor toho zatím moc neumí. Když program doprogramuje, spustí ho. V tom se podiví - jeho program funguje, ale obrazovka nějak nepříjemně pořád problikává. Zároveň se mu zdá, že horní část obrazu je nějak "posunutá" na jednu stranu a dolní část na druhou. Programátor je zklamaný, a tak tento problém hledá na internetu. Řešení najde právě v použití několikanásobného bufferingu.

Tedy grafická karta standardně vykresluje obraz přímo na monitor, bez jakéhokoli čekání. To znamená, že obraz na monitoru se překresluje průběžně. To je viditelné obzvlášť u her a je to velmi otravné. Řešení spočívá v použití vyrovnávací paměti – do té se ukládá aktuální podoba obrázku tak, jak ho vykresluje grafická karta, a až je kompletní, tak se přesune na monitor (přesněji do bufferu monitoru), kde nahradí obraz minulý. My na monitoru vidíme pouze sled kompletních obrazů. Tím odpadají oba problémy, které měl náš mladý programátor.

Double buffering

Nejběžnější a nejpoužívanější verzí je bezesporu double buffering, ve kterém, jak název napovídá, se používají dva buffery (pozor – monitor má taky jeden svůj buffer). Jeden je použit jako plocha pro zatím nekompletní obrazy (virtuální – pouze v paměti počítače), a druhý (monitor) je použit pro kompletní obrazy. Využívá ho většina počítačových a konzolových her.

Triple buffering

Triple buffering je varianta double bufferingu, která využívá tři buffery – dva virtuální a jeden "fyzický" – monitor. Její skutečné kouzlo spočívá ve zrychlení snímkové frekvence – počtu snímků za sekundu a tím pádem celé hry (programu). V double bufferingu musí počítač vyčkat, než bude jeden obraz dovykreslen a přesunut na monitor, aby mohlo začít vykreslování dalšího. To znamená snížení odezvy a snímkové frekvence. To v triple bufferingu není nutné – zde se vykreslují dva snímky najednou (ve virtuálních bufferech), a s určenými rozestupy se pak vykreslují na monitor. To znamená zrychlení snímkové frekvence, ale zároveň to potřebuje více paměti.

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Multiple buffering na anglické Wikipedii.

Externí odkazy