IP Library Granted Patent US 8,332,546
Granted Patent B2
US 8,332,546 · App. 12/839,566 · Granted Dec 11, 2012

Fully asynchronous direct memory access controller and processor work

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,332,546
App. No.
12/839,566
Granted
Dec 11, 2012
Kind
B2
Abstract

An apparatus generally having a processor and a direct memory access controller is disclosed. The processor may be configured to increment a task counter to indicate that a new one of a plurality of tasks is scheduled. The direct memory access controller may be configured to (i) execute the new task to transfer data between a plurality of memory locations in response to the task counter being incremented and (ii) decrement the task counter in response to the executing of the new task.

Claims (27)

1. An apparatus comprising: a processor configured to (i) generate a first signal conveying a new one of a plurality of tasks to a memory and (ii) generate a second signal that causes a task counter to increment to indicate that said new task is scheduled, wherein said second signal is generated after said new task is stored in said memory; and a direct memory access controller configured to (i) execute said new task to transfer data between a plurality of memory locations in response to an absence of a predetermined value in said task counter, (ii) decrement said task counter in response to said executing of said new task, and (iii) wait to receive a next of said tasks in response to said task counter having said predetermined value; and wherein said processor is further configured to asynchronously increment said task counter to indicate that an additional one of said tasks is scheduled without monitoring said execution of said new task.

2. The apparatus according to claim 1 , wherein (i) said processor is further configured to add said new task to a linked list in said memory before said increment of said task counter and (ii) said memory is external to said direct memory access controller.

3. The apparatus according to claim 2 , wherein said processor is further configured to add said additional one of said tasks to said linked list while said execution of said new task is ongoing.

4. The apparatus according to claim 1 , wherein said direct memory access controller is further configured to (i) read said new task from said memory and (ii) set an indicator to a busy condition during said execution of said new task.

5. The apparatus according to claim 4 , wherein said direct memory access controller is further configured to set said indicator to a wait condition in response to finishing said execution of said new task.

6. The apparatus according to claim 1 , wherein said direct memory access controller is further configured to (i) transition from a wait state to a first execute state in response to said task counter being incremented by said processor and (ii) decrement said counter during said transition.

7. The apparatus according to claim 6 , wherein said direct memory access controller is further configured to transition from said first execute state to a second execute state in response to said task counter being further incremented by said processor.

8. The apparatus according to claim 7 , wherein said direct memory access controller is further configured to (i) transition from said second execute state to said first execute state in response to finishing said execution of all but one of said tasks and (ii) decrement said counter during said transition from said second execute state.

9. The apparatus according to claim 7 , wherein said direct memory access controller is further configured to transition from said first execute state to said wait state in response to finishing said execution of all of said tasks.

10. A method for asynchronous direct memory access controller and processor work, comprising the steps of: (A) generating a first signal with said processor conveying a new one of a plurality of tasks to a memory; (B) generating a second signal with said processor that causes a task counter to increment to indicate that said new task is scheduled, wherein said second signal is generated after said new task is stored in said memory; (C) executing said new task to transfer data between a plurality of memory locations in response to an absence of a predetermined value in said task counter; (D) decrementing said task counter with said direct memory access controller in response to said executing of said new task; (E) waiting to receive a next of said tasks in response to said task counter having said predetermined value; and (F) asynchronously incrementing said task counter to indicate that an additional one of said tasks is scheduled without monitoring said execution of said new task with said processor.

11. The method according to claim 10 , further comprising the step of:

adding said new task to a linked list in said memory before said incrementing of said task counter, wherein said memory is external to said direct memory access controller.

12. The method according to claim 11 , further comprising the step of: adding said additional one of said tasks to said linked list while said execution of said new task is ongoing.

13. The method according to claim 10 , further comprising the steps of:

reading said new task from said memory; and

setting an indicator to a busy condition during said executing of said new task.

14. The method according to claim 13 , further comprising the step of:

setting said indicator to a wait condition in response to finishing said executing of said new task.

15. The method according to claim 10 , further comprising the steps of:

transitioning said direct memory access controller from a wait state to a first execute state in response to said task counter being incremented by said processor; and

decrementing said counter during said transition.

16. The method according to claim 15 , further comprising the step of:

transitioning said direct memory access controller from said first execute state to a second execute state in response to said task counter being further incremented by said processor.

17. The method according to claim 16 , further comprising the steps of:

transitioning said direct memory access controller from said second execute state to said first execute state in response to finishing said executing of all but one of said tasks; and

decrementing said counter during said transition from said second execute state.

18. An apparatus comprising: means for generating a first signal conveying a new one of a plurality of tasks to a memory; means for generating a second signal that causes a task counter to increment to indicate that said new task is scheduled, wherein said second signal is generated after said new task is stored in said memory; means for executing said new task to transfer data between a plurality of memory locations in response to an absence of a predetermined value in said task counter; means for decrementing said task counter in response to said executing of said new task; means for waiting to receive a next of said tasks in response to said task counter having said predetermined value; and means for asynchronously incrementing said task counter to indicate that an additional one of said tasks is scheduled without monitoring said executing of said new task with said means for generating said first signal.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: INTEL CORPORATION
To: BEIJING XIAOMI MOBILE SOFTWARE CO., LTD.
Reel/Frame 037733/0440 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2010
From: DUBROVIN, LEONID; RABINOVITCH, ALEXANDER
To: LSI CORPORATION
Reel/Frame 024712/0237 →