Vyrovnávací paměť

Vyrovnávací paměť (anglicky buffer) je v informatice část paměti, která je určena pro dočasné uchování dat před jejich přesunem na jiné místo. Typicky jsou do vyrovnávací paměti kopírována data, která přichází ze vstupního zařízení (klávesnice, optické mechaniky), nebo do ní jsou umísťována data, která jsou určena pro výstupní zařízení (tiskárnu, pevný disk). Je nasazována pro vyrovnání rozdílu mezi rychlostí přijímání dat a rychlostí jejich zpracovávání, nebo v případě, že jsou tyto rychlosti variabilní. Vyrovnávací paměť může být použita i při komunikaci mezi procesy. Implementována může být pomocí hardware, nebo softwarově (jako fronta FIFO).

Využití

Vyrovnávací paměť je většinou používána pro propojení komunikace procesoru se vstupně/výstupními zařízeními, jako například s pevným diskem. Dále pak při posílání nebo přijímání dat z počítačové sítě nebo při přehrávání zvuku (dávkové čtení z disku a souvislý přísun dat do zvukové karty). Princip je podobný jako u fronty na horskou dráhu v zábavním parku. Lidé k horské dráze přicházejí různým tempem, ale stejně musí čekat, než si budou moci všichni nastoupit (než kabinka přijede a je naplněna). Místo, kde lidé ve frontě čekají, je tedy něco jako vyrovnávací paměť: dočasné místo, kde lidé těšící se na jízdu čekají, až bude dostupná. Vyrovnávací paměť většinou používá frontu FIFO (první dovnitř, první ven), která zachovává pořadí dat, ve kterém dorazila. Pro komunikaci mezi procesy se v unixové rouře používá kruhový buffer, který odstraňuje neustálé přesouvání dat uvnitř vyrovnávací paměti.

Buffer v telekomunikacích

Používání bufferu v telekomunikacích má běžně za účel kompenzovat rozdíl v rychlosti toku dat při přenosu dat z jednoho zařízení do druhého.

Buffer se používá k mnoha různým účelům, například:

  • propojení dvou digitálních okruhů s různou rychlostí
  • uložení dat pro pozdější použití
  • provádění úprav časování datového proudu
  • shromažďování binárních datových bitů do skupin, se kterými může být dále nakládáno jako se samostatnými jednotkami
  • dočasné zadržení (zpoždění) signálu tak, aby mohly proběhnout ostatní operace (například rozložení zvuku do několika datagramů u VoIP nebo mobilních telefonů

Buffer versus cache

Cache často také slouží jako buffer a naopak. Nicméně cache pracuje na předpokladu, že z ní budou stejná data čtena několikrát, že zapsaná data budou brzy přečtena a že je vysoká šance na spojení zapisovaných nebo čtených dat do jednoho většího bloku. Její jediný účel je redukovat počet přístupů do pomalejšího zařízení. Cache je také obvykle abstraktní vrstva, která je navržena jako neviditelná. Disková a souborová cache si udržují statistiky o obsažených datech a ukládají data během dob nečinnosti ve zpětně zapisujícím režimu. Buffer nic z toho nedělá.

Související informace naleznete také v článku Cache.

Buffer se v první řadě používá pro vstup, výstup a někdy i na dočasné uložení dat, která jsou buď předávána dalším médiím, nebo dat, která jsou modifikována nesekvenčním způsobem před zapsáním (nebo čtením) sekvenčním způsobem. Například:

Historie

Prvního použití se vyrovnávací paměť dočkala ve formě tiskové vyrovnávací paměti Outscriber navržené průkopníkem ve zpracování obrazu Russelem A. Kirschem pro počítač SEAC v roce 1952.[1] Jedním z vážných problémů při návrhu automatických digitálních počítačů byla nutnost získat vypočítané výsledky z přístroje v natolik krátkém čase, aby nedošlo ke zpoždění dalšího postupu výpočtů. Ve většině úloh, které musel počítač řešit, bylo množství výstupních dat relativně velké – tak velké, že by bylo vysoce neefektivní nutit počítač čekat než budou tato data vytištěna na tehdejších tiskárnách. Tento problém byl v SEAC vyřešen umístěním magnetických záznamových zařízení na výstup. Tato zařízení jsou schopná zaznamenávat data z počítače až 100x rychleji než elektronický psací stroj. Díky tomu je dosaženo větší efektivnosti v zaznamenávání výstupních dat. Později může být proveden převod z magnetického záznamového zařízení do tiskárny bez zatěžování procesoru hlavního počítače.

Související články

Externí odkazy

Reference

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

  1. SEAC Maintenance Manual: The Outscriber. National Bureau of Standards Report. July 1953. Dostupné online. (anglicky) [nedostupný zdroj]