Browse Prior Art Database

Method for DMA descriptor queuing

IP.com Disclosure Number: IPCOM000012024D
Publication Date: 2003-Apr-02
Document File: 2 page(s) / 79K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for direct memory access (DMA) descriptor queuing. Benefits include improved performance and improved security.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 54% of the total text.

Method for DMA descriptor queuing

Disclosed is a method for direct memory access (DMA) descriptor queuing. Benefits include improved performance and improved security.

Background

        � � � � � Conventionally, DMA descriptors have a chain pointer that specifies the next DMA operation. The DMA engine follows the link list of DMA descriptors and halts when it gets to the end. When the controlling process must add transactions, it may chain additional descriptors to the end of the linked list. Alternatively, the controlling process may create a new chain and post it to the DMA engine when the previous chain completes. The problem is that the controlling process and the DMA engine are not synchronized. The DMA engine might finish the previous chain while the controlling process is attempting to chain. Waiting for the DMA engine to finish before posting the new chain incurs latency, which reduces performance. Furthermore, the controlling entity might have processed the previous chain and the last descriptor may not be available for chaining.

Description

        � � � � � The disclosed method is DMA descriptor queuing. The method enables a controlling process to automatically append transactions to a DMA engine. The controlling process (either host S/W or an I/O process) can chain DMA descriptor chains to a DMA channel.

        � � � � � The disclosed method provides a queue for chain base addresses (see Figure 1). The controlling process simply writes the location of the next DMA chain to the queue. When the DMA engine finishes one chain, it simply takes the next chain from the queue until the queue is empty. When no more entries exist in the queue, the DMA channel halts. When the c...