Claims
- 1. A method comprising:
generating a descriptor for a single direct memory access operation, said descriptor including memory descriptors and a tag identifying said direct memory access operation; writing said descriptor to a queue; fetching said descriptor from the queue based on a priority of the descriptor; and performing the direct memory access operation.
- 2. The method of claim 1, further comprising storing the tag along with status information for the direct memory access operation in response to performing the direct memory access operation.
- 3. The method of claim 2, wherein the status information indicates that the direct memory access operation completed successfully.
- 4. The method of claim 2, wherein the status information comprises error information.
- 5. The method of claim 1, wherein the descriptor has a size corresponding to a cache line.
- 6. The method of claim 5, wherein said writing the descriptor comprises a cache line spill operation.
- 7. The method of claim 1, wherein the queue is one of a plurality of queues and said priority comprises a priority of said queue in relation to other queues in said plurality of queues.
- 8. The method of claim 1, wherein the queue is a first-in first-out (FIFO) buffer, and said priority comprises the descriptors position in the buffer.
- 9. The method of claim 1, wherein the memory descriptors comprises address and length information for a block of memory.
- 10. The method of claim 1, wherein the memory descriptors include a host memory address for a host memory location to be accessed in the direct memory access operation.
- 11. The method of claim 1, wherein the memory descriptors include a plurality of local memory addresses for a corresponding number of local memory locations to be accessed in the direct memory access operation.
- 12. The method of claim 11, wherein said plurality of local memory locations are non-contiguous memory locations in a local memory.
- 13. The method of claim 9, further comprising storing in a buffer the tag and address and length information along with data to be written to memory in the direct memory access operation.
- 14. The method of claim 1, wherein the direct memory access operation is performed over a PCI/X (Peripheral Component Interface Extended) bus.
- 15. The method of claim 1, wherein the direct memory access operation is performed over a bus, and further comprising:
converting data in a little endian format received from the bus in the direct memory access operation to a big endian format; and storing the data in the big endian format in a local memory.
- 16. A processor comprising:
a first queue operative to store a plurality of descriptors, each descriptor including a tag and a memory descriptor, wherein different descriptors specify different direct memory access operations; a processor operative to retrieve one of said plurality of descriptors from said queue and perform a direct memory access operation corresponding to said descriptor; a completion memory; and a post-processor operative to write the tag for said descriptor and status information for said direct memory access operation in the completion memory.
- 17. The apparatus of claim 16, wherein the processor comprises a receive processor including:
a pre-processor operative to retrieve said descriptor from the first queue; a buffer; an execution processor operative to write the tag and the memory descriptor to the buffer; a local memory application unit operative to retrieve data identified by the memory descriptor from a local memory and to write said data to the buffer; and a bus interface operative to specify a host memory write operation over a bus in response to receiving the memory descriptor and said data.
- 18. The apparatus of claim 16, wherein the processor comprises a transmit processor including:
a pre-processor operative to retrieve said descriptor from the first queue; a buffer; an execution processor operative to write the tag and the memory descriptor to the buffer; a bus interface operative to write data received from a bus to the buffer; and a local memory application unit operative to write data in the buffer to one or more local memory locations identified by the memory descriptor in a local memory.
- 19. The apparatus of claim 16, wherein the memory descriptor includes a host address, a host length, and a plurality of local memory address and an associated plurality of local memory lengths.
- 20. The apparatus of claim 16, wherein the bus interface comprises a PCI/X bus interface.
- 21. The apparatus of claim 20, further comprising a first channel register and a second channel register,
wherein the memory descriptor includes PCI/X transfer data; wherein the pre-processor is operative to write a portion of a first descriptor to the first channel register, said portion including a tag and PCI/X transfer data, and to write a portion of a second descriptor to the first channel register, said portion including a tag and PCI/X transfer data, and wherein the bus interface is operative to perform two PCI/X transfer operations by alternately accessing the PCI/X transfer data and tag in the first channel register and the PCI/X transfer data and tag in the second channel register.
- 22. The apparatus of claim 18, wherein the buffer is a first-in first-out buffer (FIFO).
- 23. The apparatus of claim 16, further comprising a second queue operative to store a second plurality of descriptors.
- 24. The apparatus of claim 23, wherein the preprocessor is operative to retrieve descriptors in the first queue before retrieving descriptors in the second queue for processing.
- 25. The apparatus of claim 16, wherein each descriptor has a length corresponding to a size of a cache line.
- 26. A system comprising:
a host memory; a host processor including a cache, said cache including a cache line having a cache line length; a local memory; a bus; a data transmit processor connected between the bus and the local memory and a queue, said data transmit processor being operative to perform a direct memory access operation over the bus in response to a data transmit descriptor being written to one of said queues, said data transmit block including a tag, a host memory descriptor, and a local memory descriptor and having a length equal to the cache line length; a controller operative to generate the data transfer descriptor for the direct memory access and to write the descriptor to the queue in a cache line spill operation; and a post-processor operative to write said tag and status information for the direct memory access operation the completion memory in response to the data transmit processor performing said data transfer operation.
- 27. The system of claim 26, wherein the bus comprises a PCI/X bus.
- 28. The system of claim 26, wherein the data transmit processor comprises:
a receive processor operative to write data from the local memory to the host memory over the bus; and a transmit processor operative to write data from the bus to the local memory.
- 29. The system of claim 26, wherein the data transfer descriptor includes a plurality of local memory descriptors.
- 30. The system of claim 26, wherein the data transmit processor including a first queue and a second queue, and wherein the data transfer processor is operative to operate on a first data transfer descriptor in the first queue before operating on a second data transfer descriptor in the second queue.
- 31. An article comprising a machine-readable medium including machine-executable instructions, the instructions operative to cause a machine to:
generate a descriptor for a single direct memory access operation, said descriptor including memory descriptors and a tag identifying said direct memory access operation; write said descriptor to a queue; fetch said descriptor from the queue based on a priority of the descriptor; and perform the direct memory access operation.
- 32. The article of claim 31, further comprising instructions operative to cause the machine to store the tag along with status information for the direct memory access operation in response to performing the direct memory access operation.
- 33. The article of claim 32, wherein the status information indicates that the direct memory access operation completed successfully.
- 34. The article of claim 32, wherein the status information comprises error information.
- 35. The method of claim 31, wherein the descriptor has a size corresponding to a cache line.
- 36. The method of claim 35, wherein the instructions operative to cause the machine to write the descriptor comprise instructions operative to cause the machine to perform a cache line spill operation.
- 37. The article of claim 31, wherein the queue is one of a plurality of queues and said priority comprises a priority of said queue in relation to other queues in said plurality of queues.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. Provisional Application Serial No. 60/339,187, filed on Dec. 10, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60339187 |
Dec 2001 |
US |