IP Library Granted Patent US 8,631,169
Granted Patent B2
US 8,631,169 · App. 12/134,985 · Granted Jan 14, 2014

Restore PCIe transaction ID on the fly

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,631,169
App. No.
12/134,985
Granted
Jan 14, 2014
Kind
B2
Abstract

Restoring retired transaction identifiers (TID) associated with Direct Memory Access (DMA) commands without waiting for all DMA traffic to terminate is disclosed. A scoreboard is used to track retired TIDs and selectively restore retired TIDs on the fly. DMA engines fetch a TID, and use it to tag every DMA request. If the request is completed, the TID can be recycled to be used to tag a subsequent request. However, if a request is not completed, the TID is retired. Retired TIDs can be restored without having to wait for DMA traffic to end. Any retired TID value may be mapped to a bit location inside a scoreboard. All processors in the system may have access to read and clear the scoreboard. Clearing the TID scoreboard may trigger a DMA engine to restore the TID mapped to that location, and the TID may be used again.

Claims (35)

1. An apparatus for restoring retired transaction identifiers (TIDs) associated with commands, comprising:

a retired TID scoreboard configured for maintaining an individual status of each TID of a plurality of TIDs, the plurality of TIDs including one or more of the retired TIDs; and

a command engine coupled to the retired TID scoreboard and configured for retiring the plurality of TIDs whose associated commands do not complete, for monitoring the retired TID scoreboard, and for selectively restoring the retired TIDs of the monitored retired TID scoreboard individually without requiring resetting the command engine.

2. The apparatus of claim 1 , the command engine further configured for ensuring that a particular TID of the retired TIDs is not in use when selectively restoring occurs.

3. The apparatus of claim 1 , the command engine further configured for periodically polling the retired TID scoreboard to determine when one or more of the TIDs should be restored.

4. The apparatus of claim 3 , the command engine further configured for periodically polling the retired TID scoreboard at a rate determined by a longest timeout period of an attached device.

5. The apparatus of claim 3 , further comprising a programmable register within the command engine for establishing a poll rate.

6. The apparatus of claim 3 , the command engine further configured for adjusting the poll rate based on a number of remaining available TIDs in the retired TID scoreboard.

7. The apparatus of claim 1 , the command engine further configured for selectively restoring the retired TIDs based on a number of remaining available TIDs in the retired TID scoreboard.

8. The apparatus of claim 1 , the command engine further configured for selectively restoring the retired TIDs based on a ratio of the retired TIDs to available TIDs.

9. The apparatus of claim 1 , the command engine further configured for selectively restoring the retired TIDs based on a rate at which a number of the retired TIDs are changing.

10. The apparatus of claim 1 , the command engine incorporated within a host bus adapter (HBA), the HBA further configured for managing the restoring of the retired TIDs in a master/slave relationship with at least one other HBA.

11. The apparatus of claim 1 , the command engine incorporated within a host bus adapter (HBA), the HBA further configured for managing the plurality of TIDs.

12. The apparatus of claim 1 , the command engine further configured for first restoring the retired TIDs that have been retired for a longest period of time.

13. The apparatus of claim 1 , incorporated within a host bus adapter (HBA).

14. The apparatus of claim 13 , the HBA incorporated with a storage area network (SAN).

15. The apparatus of claim 1 , the command engine further configured for selectively restoring the retired TIDs without requiring all the other TID-associated commands to complete.

16. The apparatus of claim 1 , the command engine comprising a DMA engine, the commands comprising DMA requests.

17. A method for restoring retired transaction identifiers (TIDs) associated with commands, comprising:

maintaining an individual status of each TID of a plurality of TIDs by a retired TID scoreboard, the plurality of TIDs including one or more of the retired TIDs;

retiring TIDs whose associated commands do not complete;

monitoring the retired TID scoreboard; and

selectively restoring the retired TIDs of the monitored retired TID scoreboard individually without requiring resetting a command engine.

18. The method of claim 17 , further comprising ensuring that a particular TID of the retired TIDs is not in use when selectively restoring occurs.

19. The method of claim 17 , further comprising periodically polling the retired TID scoreboard to determine when one or more of the retired TIDs should be restored.

20. The method of claim 19 , further comprising periodically polling the retired TID scoreboard at a rate determined by a longest timeout period of an attached device.

21. The method of claim 19 , further comprising selectively varying a poll rate.

22. The method of claim 19 , further comprising adjusting a poll rate based on a number of remaining available TIDs in the retired TID scoreboard.

23. The method of claim 17 , further comprising selectively restoring the retired TIDs based on a number of remaining available TIDs in the retired TID scoreboard.

24. The method of claim 17 , further comprising selectively restoring the retired TIDs based on a ratio of the retired TIDs to available TIDs.

25. The method of claim 17 , further comprising selectively restoring the retired TIDs based on a rate at which a number of the retired TIDs are changing.

26. The method of claim 17 , further comprising managing, by a host bus adapter (HBA), the restoring of the retired TIDs in a master/slave relationship with at least one other HBA.

27. The method of claim 17 , further comprising first restoring the retired TIDs that have been retired for a longest period of time.

28. The method of claim 17 , further comprising selectively restoring the retired TIDs without requiring all the other TID-associated commands to complete.

29. The method of claim 17 , the commands comprising DMA requests.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
CORRECTIVE ASSIGNMENT TO CORRECT ASSIGNEE'S ZIP CODE PREVIOUSLY RECORDED ON REEL 021077 FRAME 0165. Recorded Sep 12, 2008
From: JIN, DAMING; NGUYEN, VUONG CAO; SU, SAM SHAN-JAN; TANG, JOHN SUI-KEI; FIACCO, PETER MARK
To: EMULEX DESIGN & MANUFACTURING CORPORATION
Reel/Frame 021543/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2008
From: JIN, DAMING; NGUYEN, VUONG CAO; SU, SAM SHAN-JAN; TANG, JOHN SUI-KEI; FIACCO, PETER MARK
To: EMULEX DESIGN & MANUFACTURING CORPORATION
Reel/Frame 021077/0165 →