Patent ID: 8205020
Filing Date: 2012-06-19
Classification: G06F

Abstract:
1. A method of efficiently allocating digital image memory blocks, comprising: allocating a direct memory access (DMA) channel to each of one or more clients requiring memory allocation, wherein the clients are cyan (C), magenta (M), yellow (Y), and black (K) channels of a color scanning system; allocating one or more DMA blocks to each DMA channel; for each DMA channel, generating a DMA block list that identifies DMA blocks used by each DMA channel; generating an interrupt message from within each memory block as it is used by a DMA channel; determining whether a processor is processing a number of interrupt messages greater than a first predetermined threshold, wherein the processor processed an actual number of DMA blocks used by each DMA channel in a completed DMA chain multi-block transfer; increasing the size of the memory blocks being assigned to the DMA channels to reduce the number of interrupt messages generated in response to the number of interrupt messages exceeding the first predetermined threshold; determining whether the processor is processing a number of interrupt messages less than a second predetermined threshold, which is lower than the first predetermined threshold; decreasing the size of the memory blocks being assigned to the DMA channels to mitigate memory waste in response to the number of interrupt messages is less than the second predetermined threshold; and releasing unused allocated DMA blocks to a pool of available memory blocks not included in any DMA block list for subsequent use.