Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
First Claim
1. An apparatus, comprising:
- a memory DMA (direct memory access) engine;
an IOC (input/output to cache) DMA engine;
a cache;
a dependency table configured to permit one of the memory DMA engine and IOC DMA engine to transmit data to the cache and to permit, in parallel, another one of the memory DMA engine and IOC DMA engine to drain data from the cache without processor intervention whenever a data buffer in the cache is filled or drained;
wherein the dependency table comprises a plurality of index fields, wherein each of the plurality of index fields comprises a plurality of buffer fields;
wherein the plurality of buffer fields comprises a first buffer field comprising a first plurality of sub-indices assigned to the memory DMA engine;
wherein the plurality of buffer fields comprises a second buffer field comprising a second plurality of sub-indices assigned to the IOC DMA engine;
wherein the cache comprises a first descriptor for the memory DMA engine and a second descriptor for the IOC DMA engine and wherein the first descriptor and the second descriptor point to a first data buffer in the cache.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides the data flow communication control between the source (flash/IO) and destination (IO/flash) cores. The source and destination cores are started simultaneously instead of serially and get instructions from the descriptors provided and set-up by the processor. Each source and destination core'"'"'s descriptors1 are correlated or tied with each other by the processor by providing information to the hardware assist mechanism. The hardware assist mechanism responsible for moderating the data transfer from source to destination. The flow tracker guarantees that data needed by destination exists. 1 Descriptors are set of instructions that is used to activate the DMA controller.
By applying the invention to the prior approach/solution, the data latency between the flash & IO bus will be reduced. Processor interrupts will be minimized while data transfer between the flash & IO bus is ongoing.
268 Citations
17 Claims
-
1. An apparatus, comprising:
-
a memory DMA (direct memory access) engine; an IOC (input/output to cache) DMA engine; a cache; a dependency table configured to permit one of the memory DMA engine and IOC DMA engine to transmit data to the cache and to permit, in parallel, another one of the memory DMA engine and IOC DMA engine to drain data from the cache without processor intervention whenever a data buffer in the cache is filled or drained; wherein the dependency table comprises a plurality of index fields, wherein each of the plurality of index fields comprises a plurality of buffer fields; wherein the plurality of buffer fields comprises a first buffer field comprising a first plurality of sub-indices assigned to the memory DMA engine; wherein the plurality of buffer fields comprises a second buffer field comprising a second plurality of sub-indices assigned to the IOC DMA engine; wherein the cache comprises a first descriptor for the memory DMA engine and a second descriptor for the IOC DMA engine and wherein the first descriptor and the second descriptor point to a first data buffer in the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
permitting one of a memory DMA (Direct Memory Access) engine and IOC (input/output to cache) DMA engine to transmit data to a cache and permitting, in parallel, another one of the memory DMA engine and IOC DMA engine to drain data from the cache without processor intervention whenever a data buffer in the cache is filled or drained; using a dependency table comprising a plurality of index fields, wherein each of the plurality of index fields comprises a plurality of buffer fields; wherein the plurality of buffer fields comprises a first buffer field comprising a first plurality of sub-indices assigned to the memory DMA engine; wherein the plurality of buffer fields comprises a second buffer field comprising a second plurality of sub-indices assigned to the IOC DMA engine; wherein the cache comprises a first descriptor for the memory DMA engine and a second descriptor for the IOC DMA engine and wherein the first descriptor and the second descriptor point to a first data buffer in the cache. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An article of manufacture, comprising:
-
a non-transient computer-readable medium having stored thereon instructions that permit a method comprising; permitting one of a memory DMA (Direct Memory Access) engine and IOC (input/output to cache) DMA engine to transmit data to a cache and permitting, in parallel, another one of the memory DMA engine and IOC DMA engine to drain data from the cache without processor intervention whenever a data buffer in the cache is filled or drained; wherein the method further comprises;
using a dependency table comprising a plurality of index fields, wherein each of the plurality of index fields comprises a plurality of buffer fields;wherein the plurality of buffer fields comprises a first buffer field comprising a first plurality of sub-indices assigned to the memory DMA engine; wherein the plurality of buffer fields comprises a second buffer field comprising a second plurality of sub-indices assigned to the IOC DMA engine; wherein the cache comprises a first descriptor for the memory DMA engine and a second descriptor for the IOC DMA engine and wherein the first descriptor and the second descriptor point to a first data buffer in the cache.
-
Specification