Patent ID: 7689734

Claim:
In a data processing system supporting DMA data operations via a double buffering DMA system by which two buffers having separate and distinct DMA channels concurrently conduct DMA data operations, a method comprising: receiving a first DMA tag and a second DMA tag, wherein said first DMA tag and said second DMA tag respectively provide unique labels of a first memory buffer and a second memory buffer of the double buffering DMA system and which associate the first memory buffer and the second memory buffer with a first DMA channel and a second DMA channel; deterministically toggling between the first memory buffer and the second memory buffer, using the first DMA tag and the second DMA tag, during double buffering DMA data transfer; wherein the first DMA tag of the first memory buffer includes a first hexadecimal label that identifies the first memory buffer and corresponding first DMA channel; wherein the second DMA tag of the second memory buffer includes a second hexadecimal label, different from the first hexadecimal label, that identifies the second memory buffer and corresponding second DMA channel; and wherein said deterministically toggling further comprises: performing a first exclusive “OR” operation of the first hexadecimal label and the second hexadecimal label to produce a toggle factor; performing a second exclusive “OR” operation with the first hexadecimal label of the first memory buffer and the toggle factor to generate the second hexadecimal label of the second memory buffer; and performing a third exclusive “OR” operation with the second hexadecimal label of the second memory buffer and the toggle factor to generate the first hexadecimal label of the first memory buffer.