IP Library Granted Patent US 10,013,373
Granted Patent B1
US 10,013,373 · App. 15/344,537 · Granted Jul 3, 2018

Multi-level message passing descriptor

Inventors: Ricardo H. Bruce (Fremont, CA); Bernard Sherwin Leung Chiw (Quezon, PH); Margaret Anne Nadonga Somera (Caloocan, PH)
Assignee: BiTMICRO Networks, Inc.
G06F13/28G06F13/1673
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 10,013,373
App. No.
15/344,537
Granted
Jul 3, 2018
Kind
B1
Abstract

In an embodiment of the invention, a method for to use a two level linked list descriptor mechanism to pass information among flash, memory, and IO controller modules is presented. The method includes creating a first level data structure for one or more first level descriptors; creating a second level data structure for one or more second level descriptors, each second level descriptor having a pointer to tracking information that includes start information, running information, and rewind information for a data DMA; using the one or more second level descriptors, the one or more first level descriptors, and the tracking information for a data DMA; updating the tracking information during the data DMA; and updating the tracking information at the end of the data DMA.

Claims (41)

1. An apparatus comprising a processor, a logic and a memory, wherein the processor, logic and memory are operable to configure a data structure comprising:

one or more second level descriptor; and

one or more first level linked list corresponding to the one or more second level descriptor;

wherein each second level descriptor comprises a data descriptor address for pointing to a corresponding first level linked list;

wherein each first level linked list comprises one or more first level descriptor;

wherein each first level descriptor comprises a buffer address for pointing to a data buffer; and

wherein at least one first level linked list and the one or more first level descriptor corresponding to the first level linked list is accessed by a first Direct Memory Access (DMA) channel and a second DMA channel for coordinated data transfer of the data buffer corresponding to the one or more first level descriptor.

2. The apparatus of claim 1 , wherein each second level descriptor further comprises a next address for forming a linked list of the one or more second level descriptor.

3. The apparatus of claim 1 , wherein each second level descriptor further comprises an offset and a data group count for determining a beginning DMA location and an ending DMA location for the second DMA channel.

4. The apparatus of claim 1 , wherein each second level descriptor further comprises a track address for pointing to a tracking information table, the tracking information table comprising a start information table operable for storing one or more initial condition information, a running information table operable for storing one or more completed DMA transfer information and a rewind information table operable for storing one or more completed error-free DMA transfer information wherein a return point for one or more hardware retries is established.

5. The apparatus of claim 4 , wherein the running information table and the rewind information table are updated by hardware in real time.

6. The apparatus of claim 4 , further comprises one or more tracking index for accessing the one or more tracking information table wherein the one or more second level descriptor can be accessed in a non-sequential fashion.

7. The apparatus of claim 1 , further comprises one or more firmware pointer and one or more hardware register whereby one or more second level descriptor can be added in real time without pausing the coordinated data transfer of the first DMA channel and the second DMA channel.

8. The apparatus of claim 1 , wherein a given second level descriptor among the one or more second level descriptor further comprises an optional instruction code and an IOC-specific (Input Output Controller-specific) frame, wherein the second level descriptor comprises firmware instructions for an IO-Protocol (Input Output-Protocol) Controller, and wherein a data portion for the instructions is defined in the given second level descriptor to be processed by an IOC DMA engine.

9. A method comprising:

configuring a data structure in an apparatus comprising a processor, a logic and a memory, wherein the data structure comprises:

one or more second level descriptor; and

one or more first level linked list corresponding to the one or more second level descriptor;

wherein each second level descriptor comprises a data descriptor address for pointing to a corresponding first level linked list;

wherein each first level linked list comprises one or more first level descriptor;

wherein each first level descriptor comprises a buffer address for pointing to a data buffer; and

accessing at least one first level linked list and the one or more first level descriptor corresponding to the first level linked list by a first Direct Memory Access (DMA) channel and a second DMA channel for coordinated data transfer of the data buffer corresponding to the one or more first level descriptor.

10. The method of claim 9 , wherein each second level descriptor further comprises a next address for forming a linked list of the one or more second level descriptor.

11. The method of claim 9 , wherein each second level descriptor further comprises an offset and a data group count for determining a beginning DMA location and an ending DMA location for the second DMA channel.

12. The method of claim 9 , wherein each second level descriptor further comprises a track address for pointing to a tracking information table, the tracking information table comprising a start information table operable for storing one or more initial condition information, a running information table operable for storing one or more completed DMA transfer information and a rewind information table operable for storing one or more completed error-free DMA transfer information wherein a return point for one or more hardware retries is established.

13. The method of claim 12 , wherein the running information table and the rewind information table are updated by hardware in real time.

14. The method of claim 12 , further comprises one or more tracking index for accessing the one or more tracking information table wherein the one or more second level descriptor can be accessed in a non-sequential fashion.

15. The method of claim 9 , further comprises one or more firmware pointer and one or more hardware register whereby one or more second level descriptor can be added in real time without pausing the coordinated data transfer of the first DMA channel and the second DMA channel.

16. The method of claim 9 , wherein a given second level descriptor among the one or more second level descriptor further comprises an optional instruction code and an IOC-specific (Input Output Controller-specific) frame, wherein the second level descriptor comprises firmware instructions for an IO-Protocol (Input Output-Protocol) Controller, and wherein a data portion for the instructions is defined in the given second level descriptor to be processed by an IOC DMA engine.

17. An article of manufacture, comprising:

a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to perform a method comprising:

configuring a data structure in the apparatus comprising a processor, a logic and a memory, wherein the data structure comprises:

one or more second level descriptor; and

one or more first level linked list corresponding to the one or more second level descriptor;

wherein each second level descriptor comprises a data descriptor address for pointing to a corresponding first level linked list;

wherein each first level linked list comprises one or more first level descriptor;

wherein each first level descriptor comprises a buffer address for pointing to a data buffer; and

accessing at least one first level linked list and the one or more first level descriptor corresponding to the first level linked list by a first Direct Memory Access (DMA) channel and a second DMA channel for coordinated data transfer of the data buffer corresponding to the one or more first level descriptor.

18. The article of manufacture of claim 17 , wherein each second level descriptor further comprises a next address for forming a linked list of the one or more second level descriptor.

19. The article of manufacture of claim 17 , wherein each second level descriptor further comprises an offset and a data group count for determining a beginning DMA location and an ending DMA location for the second DMA channel.

20. The article of manufacture of claim 17 , wherein each second level descriptor further comprises a track address for pointing to a tracking information table, the tracking information table comprising a start information table operable for storing one or more initial condition information, a running information table operable for storing one or more completed DMA transfer information and a rewind information table operable for storing one or more completed error-free DMA transfer information wherein a return point for one or more hardware retries is established.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2021
From: BITMICRO NETWORKS, INC.
To: BITMICRO LLC
Reel/Frame 055840/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2018
From: BRUCE, RICARDO H.; CHIW, BERNARD SHERWIN LEUNG; SOMERA, MARGARET ANNE NADONGA
To: BITMICRO NETWORKS, INC.
Reel/Frame 045650/0222 →
Continuity (2)
Continuation 14217041 · Mar 17, 2014
Provisional Application 61800395 · Mar 15, 2013
Cited By (1)
US 12,705,195