IP Library Granted Patent US 9,195,625
Granted Patent B2
US 9,195,625 · App. 12/608,525 · Granted Nov 24, 2015

Interconnect controller for a data processing device with transaction tag locking and method therefor

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 9,195,625
App. No.
12/608,525
Granted
Nov 24, 2015
Kind
B2
Abstract

A data processing device includes an interconnect controller operable to manage the communication of information between modules of the data processing device via an interconnect. In response to a transaction request the interconnect controller selects a tag value from a set of available tag values, assigns the tag to the transaction and reserves the tag value so that it is unavailable for assignment to other transactions. If an expected response to the transaction request is not received within a designated amount of time, the transaction enters a timed-out state and the interconnect controller locks the tag value, so that it remains unavailable for assignment to other transactions until an unlock event, such as a request from software.

Claims (68)

1. A method, comprising:

maintaining at a data processing device a set of tag values comprising a set of available tag values, a set of reserved tag values, and a set of locked tag values;

receiving from a first processor device a first request at an interconnect controller, the first request comprising a request to communicate information via an interconnect of the data processing device;

in response to receiving the request:

selecting a first tag value from the set of available tag values, wherein the set of reserved tag values and the set of locked tag values are not available for selection;

associating the first tag value with the set of reserved tag values; and

communicating a first transaction request to the interconnect;

in response to determining a first transaction timeout based on a first elapsed amount of time since receiving the first transaction request at the interconnect controller:

indicating the first transaction timeout to the first processor device; and

associating the first tag value with the set of locked tag values; and

in response to an unlock event occurring while the first tag value is associated with the set of locked tag values, associating the first tag value with the set of available tag values, wherein determining to unlock a given tag during the unlock event comprises:

determining a recipient corresponding to the first request is known to respond with a greater latency compared to a response latency of another recipient; and

providing additional time for the recipient to respond to the first request before initiating the unlock event based on the determining the recipient is systematically slow to respond to requests.

2. The method of claim 1 , wherein determining to unlock a given tag during the unlock event further comprises receiving a transaction response associated with the first transaction request after the first transaction timeout.

3. The method of claim 1 wherein determining to unlock a given tag during the unlock event further comprises determining a second amount of time has elapsed since associating the first tag value with the set of locked tag values.

4. The method of claim 1 , wherein determining to unlock a given tag during the unlock event further comprises determining a number of tag values associated with the set of locked tag values exceeds a threshold value.

5. The method of claim 4 , wherein the threshold value is programmable.

6. The method of claim 1 , wherein determining to unlock a given tag during the unlock event further comprises receiving a request from a first software application to unlock the first tag value.

7. The method of claim 1 , wherein determining to unlock a given tag during the unlock event further comprises receiving a transaction response associated with the first transaction request after the first transaction timeout.

8. The method of claim 1 , wherein the additional time is variable and based on the latency of the recipient.

9. A method, comprising:

in response to receiving a first request at an interconnect controller of a data processing device:

determining a set of available tag values;

selecting a first tag value from the set of available tag values;

associating the first tag value with a set of reserved tag values; and

communicating a first transaction request to an interconnect;

in response to determining the first transaction request has been pending at the interconnect controller for a first period of time indicated by a first hardware timer:

associating the first tag value with a set of locked tag values; and

in response to a first unlock event, associating the first tag value with the set of available tag values;

wherein determining to unlock a given tag during the first unlock event comprises:

determining a response to the first transaction request has not been received;

determining an expected latency of a transaction recipient associated with the first request; and

providing additional for the recipient to respond to the first request before initiating the unlock event based on the determining the expected latency of the recipient.

10. The method of claim 9 , further comprising:

in response to receiving a second request at the interconnect controller after the first transaction request has been pending for the first period of time, and prior to the unlock event:

determining the set of available tag values, the set of reserved tag values, and the set of locked tag values;

selecting a second tag value from the set of available tag values;

associating the second tag value with the set of reserved tag values;

communicating a second transaction request to the interconnect, the second transaction request associated with the second tag value;

in response to determining the second transaction request has been pending at the interconnect controller for the first period of time:

associating the second tag value with the set of locked tag values; and

in response to a second unlock event, associating the tag value with the set of available tag values.

11. The method of claim 10 , wherein the second unlock event comprises determining the second tag value has been associated with the set of locked tag values for a third period of time, the third period of time different from the second.

12. The method of claim 11 , wherein the second unlock event comprises determining a number of tag values associated with the set of locked tag values exceeds a threshold value.

13. The method of claim 12 , wherein the threshold value is programmable.

14. The method of claim 11 , wherein the second unlock event comprises receiving a request from a first software application to unlock the first tag value.

15. The method of claim 9 , wherein the first unlock event further comprises receiving a transaction response to the first transaction request.

16. The method of claim 9 , further comprising:

in response to receiving a second request at the interconnect controller after the first request, and in response to determining the first tag value is associated with the set of available tag values, communicating a second transaction request to the interconnect, the second transaction request associated with the first tag value.

17. The method of claim 9 , wherein determining to unlock a given tag during the unlock event further comprises determining a second amount of time has elapsed since associating the first tag value with the set of locked tag values.

18. A device, comprising:

a first processor device comprising an output to provide a first request;

an interconnect;

a first storage module operable to store a set of status indicators, the status indicators operable to indicate a set of available tag values, a set of reserved tag values, and a set of locked tag values;

a first timer operable to store a first timer value indicative of a first elapsed time;

an interconnect controller comprising a first input/output port coupled to the first processor device and a second input/output port coupled to the interconnect, the interconnect controller, in response to receiving the first request, operable to:

select a first tag value from the set of available tag values and associate the first tag value with a first transaction request, wherein the set of reserved tag values and the set of locked tag values are not available for selection;

configure the set of status indicators to associate the first tag value with the set of reserved tag values;

communicate the first transaction request to the interconnect; and

in response to determining a first transaction timeout for the first transaction request based on the first timer value:

indicate the first transaction timeout to the first processor device; and

configure the set of status indicators to associate the first tag value with the set of locked tag values; and

in response to an unlock event, configure the set of status indicators to associate the first tag value with the set of available tag values, wherein determining to unlock a given tag during the unlock event comprises:

determining a response to the first transaction request has not been received;

determining an expected latency of a transaction recipient corresponding to the first request; and

providing additional time for the recipient to respond to the first request before initiating the unlock event based on the determining the expected latency of the transaction recipient.

19. The device of claim 18 , further comprising a second hardware timer, wherein determining to unlock a given tag during the unlock event further comprises determining at the second hardware timer that a second period of time has elapsed since associating the first tag value with the set of locked tag values, the second period of time programmatically variable.

20. The device of claim 18 , wherein the additional time is variable and based on the expected latency of the recipient.

Assignments (27)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0241. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 5, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041260/0850 →
MERGER Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040652/0241 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037355/0723 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024079/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2009
From: IKONOMOPOULOS, GUS P.; NGUYEN, THANG Q.; NUNEZ, JOSE M.; XU, KUN
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 023446/0015 →