Circular Buffers
Data rate buffers (FIFos) are often referred to as linear buffers. As soon as all the
Locations in tA FIFO is useful as a data-rate buffer between systems that transfer data at widely different rates. One example is the transfer of data from a computer to a printer. The computer sends character data to the printer at a very high rate, say, one byte every 10 us. These data fill up a FIFO memory in the printer, The printer then reads out the data from the FIFO at a much slower rate, say, one byte every 5 ms, and prints out the corresponding characters in the same order as sent by the computer.
A FIFO can also be used as a data-rate buffer between a slow device, such as a keyboard, and a high-speed computer. Here the FIFo accepts keyboard data at the slow and asynchronous rate of human fingers and stores them. The computer can then read all of the recently stored keystrokes very quickly at a convenient point in its program. In this way, the computer can be performing other tasks while the FlFO is slowly being filled with data.
he buffer are full, on more entries are made until the buffer is emptied
This wey none of the ''old'' information is lost. A similar memory system is called a
circular buffer. These memory systems are used to store the last n values entered,
Where n is the numder of memory locations in the buffer. Each time a new value is
written to a circular buffer, it overwrites(replaces) the oldest value. Circular buffers
are addressed by a MOD-n address counter. Consequently, when the highest address
is reached, the address counter will ''wrap around'' and the next location will
de the lowest address. As you recall from Chapter 10, digital filtering and other DSP
operations perfrom calculations using a group of recent samples. Special hardware
included in a DSP allows easy implementation of circular buffers in memory.