System and method for direct memory access transfers
US-9727502-B2 · Aug 8, 2017 · US
US10120820B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10120820-B2 |
| Application number | US-201715797605-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 30, 2017 |
| Priority date | Jun 29, 2015 |
| Publication date | Nov 6, 2018 |
| Grant date | Nov 6, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A direct memory access (DMA) transmission control method and apparatus, where the method includes selecting a target channel for the target DMA task according to a priority corresponding to the target DMA task when a DMA transmission request for transmitting data of a target DMA task is received, querying a task type and a priority of another DMA task that has occupied a channel and a task type of the target DMA task when the other DMA task exists on the DMA channel, comparing the task type and the priority of the other DMA task that has occupied the channel with the task type and the priority of the target DMA task, and controlling data transmission on the DMA channel according to a comparison result. Hence, the urgent DMA task can be preferentially processed.
Opening claim text (preview).
What is claimed is: 1. A direct memory access (DMA) transmission control method, applied to a DMA transmission control apparatus to control data transmission on a DMA channel, data transmitted on the DMA channel comprising data transmitted between an external device and a memory, and the method comprising: receiving a DMA transmission request carrying a target DMA task; querying a priority of the target DMA task, the priority of the target DMA task being based on an amount of to-be-transmitted data, a lower priority being set for the target DMA task when the target DMA task comprises a smaller amount of to-be-transmitted data, and a higher priority being set for the target DMA task when the target DMA task comprises a larger amount of to-be-transmitted data; selecting, from a DMA channel block according to the priority of the target DMA task, a DMA channel corresponding to the priority of the target DMA task as a target channel; querying a task type of a DMA task that has occupied the DMA channel and a task type of the target DMA task when the DMA channel that has been occupied by the DMA task exists in the DMA channel block; querying a priority of a DMA task whose task type is different from that of the target DMA task when the DMA task whose task type is different from that of the target DMA task exists in the DMA task that has occupied the DMA channel; and suspending data transmission of a DMA task whose priority is lower than that of the target DMA task, obtaining target data of the target DMA task, inputting the target data using an input queue of the target channel, and outputting the target data using an output queue of an occupied channel corresponding to the DMA task whose priority is lower than that of the target DMA task when the DMA task whose priority is lower than that of the target DMA task exists in the DMA task whose task type is different from that of the target DMA task. 2. The method of claim 1 , wherein before receiving the DMA transmission request, the method further comprises pre-storing a DMA task priority list and a mapping relationship table between a DMA task priority and a DMA channel, and querying the priority of the target DMA task and selecting the target channel comprising: querying the priority of the target DMA task in the DMA task priority list; querying, in the mapping relationship table, the DMA channel corresponding to the priority of the target DMA task; and setting the DMA channel corresponding to the priority of the target DMA task as the target channel. 3. The method of claim 1 , wherein when no DMA channel that has been occupied by the DMA task exists in the DMA channel block, the method further comprises: obtaining the target data corresponding to the target DMA task; inputting the target data using the input queue of the target channel; and outputting the target data using an output queue of the target channel. 4. The method of claim 1 , wherein when no DMA task whose task type is different from that of the target DMA task exists in the DMA task that has occupied the DMA channel, the method further comprises: obtaining the target data corresponding to the target DMA task; inputting the target data using the input queue of the target channel; and outputting the target data using an output queue of the target channel. 5. The method of claim 1 , wherein when no DMA task whose priority is lower than that of the target DMA task exists in the DMA task whose task type is different from that of the target DMA task, the method further comprises: obtaining the target data corresponding to the target DMA task; inputting the target data using the input queue of the target channel; and outputting the target data using an output queue of the target channel. 6. A direct memory access (DMA) transmission control method, applied to a DMA transmission control apparatus to control data transmission on a DMA channel, data transmitted on the DMA channel comprising data transmitted between an external device and a memory, and the method comprising: receiving a DMA transmission request carrying a target DMA task; querying a priority of the target DMA task, the priority of the target DMA task being based on an amount of to-be-transmitted data, a lower priority being set for the target DMA task when the target DMA task comprises a smaller amount of to-be-transmitted data, and a higher priority being set for the target DMA task when the target DMA task comprises a larger amount of to-be-transmitted data; selecting, from a DMA channel block according to the priority of the target DMA task, a DMA channel corresponding to the priority of the target DMA task as a target channel; querying a priority of a DMA task that has occupied the DMA channel when the DMA channel that has been occupied by the DMA task exists in the DMA channel block; and suspending data transmission of a DMA task whose priority is lower than that of the target DMA task, obtaining target data of the target DMA task, inputting the target data using an input queue of the target channel, and outputting the target data using an output queue of an occupied channel corresponding to the DMA task whose priority is lower than that of the target DMA task when the DMA task whose priority is lower than that of the target DMA task exists in the DMA task that has occupied the DMA channel. 7. The method of claim 6 , wherein before receiving the DMA transmission request, the method further comprises pre-storing a DMA task priority list and a mapping relationship table between a DMA task priority and a DMA channel, and querying the priority of the target DMA task and selecting the target channel comprises: querying the priority of the target DMA task in the DMA task priority list; querying, in the mapping relationship table, the DMA channel corresponding to the priority of the target DMA task; and setting the DMA channel corresponding to the priority of the target DMA task as the target channel. 8. A direct memory access (DMA) transmission control apparatus to control data transmission on a DMA channel, data transmitted on the DMA channel comprising data transmitted between an external device and a memory, and the apparatus comprising: a receiver configured to receive a DMA transmission request carrying a target DMA task; a processor coupled to the receiver and configured to: query a priority of the target DMA task, the priority of the target DMA task being based on an amount of to-be-transmitted data, a lower priority being set for the target DMA task when the target DMA task comprises a smaller amount of to-be-transmitted data, and a higher priority being set for the target DMA task when the tart DMA task comprises a larger amount of to-be-transmitted data; select, from a DMA channel block according to the priority of the target DMA task, a DMA channel corresponding to the priority of the target DMA task as a target channel; query a task type of a DMA task that has occupied the DMA channel and a task type of the target DMA task when the DMA channel that has been occupied by the DMA task exists in the DMA channel block; query a priority of a DMA task whose task type is different from that of the target DMA task when the DMA task whose task type is different from that of the target DMA task exists in the DMA task that has occupied the DMA channel; suspend data transmission of a DMA task whose priority is lower than that of the target DMA task when the DMA task whose priority is lower than that of the target DMA task exists in the DMA task whose task type is different from that of the target DMA task; and a transmitter coupled to the processor and configured to: obtain target data of the target DMA task; input the target data using an input queue of t
using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title
based on priority control (G06F13/1605 takes precedence) · CPC title
considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title
Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders {(with shifting G06F5/01)} · CPC title
Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.