Co je to kruhová vyrovnávací paměť?
Kruhová vyrovnávací paměť je typ hardwarového obvodu nebo oblast počítačové paměti, která se používá k ukládání příchozích informací. Je to vyrovnávací paměť pevné velikosti a lze ji chápat jako datovou strukturu, která používá vyrovnávací paměť, jako by byla propojena z jednoho konce na druhý. Říká se tomu kruhová vyrovnávací paměť, protože dává vzhled kruhovitosti. Přidání dalších informací, když je vyrovnávací paměť plná, přepíše první prvek uložený v vyrovnávací paměti. Také se nazývá kruhový buffer nebo cyklický buffer.
Snadným způsobem, jak porozumět kruhové vyrovnávací paměti, je představit si linku na autobusové stanici. Data jsou vždy přidána na jeden konec řádku a jsou vždy odstraněna z druhého konce. Hlava řádku je vždy slot, do kterého se přidávají informace; zadní konec řádku je místo, ze kterého jsou informace odstraněny. Ocas a hlava vytvářejí dojem, že jsou při implementaci tohoto typu vyrovnávací paměti vedle sebe, i když vyrovnávací paměť je ve skutečnosti jen blok paměti. Na rozdíl od linky v autobusové stanici je však velikost vyrovnávací paměti pevná a má určitou maximální kapacitu.
To znamená, že když je vyrovnávací paměť plná, začne přepisovat data v hlavě. Maximální kapacita vyrovnávací paměti musí být nastavena předem a přestože toto číslo může být kdykoli změněno, všechna stávající data v vyrovnávací paměti budou ztracena. Sekvenční procesy obvykle používají k výměně informací cyklické vyrovnávací paměti a data zadaná jedním procesem jsou čtena druhým. První proces, nazývaný výrobce, umisťuje data do vyrovnávací paměti a druhý proces, známý jako spotřebitel, jej vyjme. Rutiny také používají cyklické vyrovnávací paměti pro dočasné ukládání dat.
Nejvýhodnějším atributem kruhové vyrovnávací paměti je způsob ukládání dat. Při odstranění objektu na konci řádku nejsou data zamíchána. Pokud by byl vyrovnávací paměť nekruhová, všechny datové prvky přítomné v vyrovnávací paměti by musely po odstranění dat přesunout pozice. Kruhový buffer lze považovat za typ bufferu First In First Out (FIFO), zatímco standardní buffer se podobá bufferu typu Last In First Out (LIFO).
Protože kruhová vyrovnávací paměť ukládá data do sousedních oblastí paměti, umožňuje rychlý náhodný přístup k datům. Tento typ vyrovnávací paměti lze snadno ladit a je mimořádně efektivní. Slouží jako mezipaměť pro uložení určitého počtu naposledy zahrnutých dat. Je také možné velmi rychle vkládat a odebírat data z obou konců, což je ideální pro četné aplikace.