Data processing apparatus 10 supporting circular buffers CB includes
address storage ARx for holding a virtual buffer index and offset storage
BOFxx for holding an offset address. Circular buffer management logic 802
is configured to be operable to apply a modifier to a virtual buffer index
held in the address storage to derive a modified virtual buffer index and
to apply a buffer offset held in the offset storage to the modified
virtual buffer index to derive a physical address for addressing a
circular buffer. By employing virtual addressing to a buffer index for a
circular buffer management, it is possible to make efficient use of memory
resources. One or more circular buffers can be located contiguously with
respect to each other and/or other data in memory, avoiding fragmentation
of the memory. The buffer index forms a pointer for the circular buffer.
The apparatus enables circular buffers to be implemented without alignment
constraints, while maintaining compatibility with prior circular buffer
implementations with alignment constraints.
Het gegevensverwerkingsapparaat 10 ondersteunende cirkelbufferscb omvat adresopslag ARx voor het houden van een virtuele van de bufferindex en compensatie opslag BOFxx voor het houden van een compensatieadres. Cirkel logica 802 wordt van het bufferbeheer gevormd om opereerbaar te zijn om een bepaling op een virtuele bufferindex toe te passen die in de adresopslag wordt gehouden een gewijzigde virtuele bufferindex af te leiden en een buffercompensatie toe te passen die in de compensatieopslag wordt gehouden op de gewijzigde virtuele bufferindex een fysiek adres af te leiden voor het richten van een cirkelbuffer. Door het virtuele richten aan een bufferindex voor een cirkelbufferbeheer aan te wenden, is het mogelijk om efficiënt gebruik van geheugenmiddelen te maken. Één of meerdere cirkelbuffers kunnen contiguously met betrekking tot elkaar en/of andere gegevens in geheugen worden gevestigd, vermijdend fragmentatie van het geheugen. De bufferindex vormt een wijzer voor de cirkelbuffer. Het apparaat laat dat cirkelbuffers toe worden uitgevoerd zonder groeperingsbeperkingen, terwijl het handhaven van verenigbaarheid met vroegere cirkelbufferimplementaties met groeperingsbeperkingen.