Bufor cykliczny

Z Wikipedii, wolnej encyklopedii
Zasada działania bufora cyklicznego

Bufor cykliczny (kołowy) – bufor, który wykorzystuje stałą (niezmieniającą swojego położenia i wielkość) tablicę (lub pamięć w elektronice) o ograniczonej pojemności do zapisu teoretycznie nieskończonej liczby danych. Z reguły raz odczytana dana staje się niepotrzebna (np. bufor FIFO) czyli może być nadpisana, dlatego po zapisaniu całej tablicy możliwe jest rozpoczęcie pisania od początku tablicy. W konsekwencji bufor cykliczny nie ma swojego początku i końca, a dokładniej położenie początku i końca jest zmienne i nie powinno być kojarzone z położeniem początku i końca rzeczywistej tablicy. W rzeczywistej implementacji bufor zorganizowany w ten sposób, że dane są przechowywane w tablicy, a dodatkowo przechowywane są dwa wskaźniki lub indeksy tablicy pokazujące pierwszy i ostatni element (albo pierwszy i puste miejsce za ostatnim). Dopisywanie nowych danych wymaga inkrementacji wskaźnika na ostatni element. W przypadku dojścia do końca tablicy jest on przemieszczany na początek. Podobnie wskaźnik odczytu po dojściu do końca tablicy przemieszcza się na początek. Bufor na ogół reprezentuje kolejkę FIFO, można też zaimplementować na nim bufor, w którym dane mogą być dopisywane i czytane z obydwu stron.

Zalety:

  • prostota konstrukcji,
  • szybki dostęp,
  • oszczędność czasu przepisywania danych.

Wady:

  • ograniczenie z góry wielkości bufora przez wielkość tablicy

Przykłady:

  • bufor klawiatury w PC
  • oscyloskop cyfrowy, w którym sygnał wyzwalający nie znajduje się na początku rejestrowanych próbek. W takim wypadku dane są rejestrowane ciągle a zakończenie rejestracji następuje z opóźnieniem po wystąpieniu sygnału wyzwalającego.