IP Library › Granted Patent US 8,285,908
Granted Patent B2
US 8,285,908 · App. 12/692,645 · Granted Oct 9, 2012

Bus bridge and method for interfacing out-of-order bus and multiple ordered buses

Assignee: Freescale Semiconductor, Inc.
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,285,908
App. No.
12/692,645
Filed
Jan 24, 2010
Granted
Oct 9, 2012
Kind
B2
Examiner
DANG, KHANH
Art Unit
2111
USPC
710/306
Abstract

A method for interfacing an out-of-order bus and multiple ordered buses and a bus bridge. The bus bridge includes multiple ordered bus interfaces, where each ordered bus interface is coupled to an ordered bus. A flow control logic circuit is coupled to the out-of-order bus and to the multiple ordered bus interfaces. The flow control logic circuit controls a flow of transaction requests between the out-of-order bus and each of the ordered buses interfaces. The flow control logic circuit includes an updating circuit for updating dependency resolution attributes and data readiness attributes associated with transaction requests, and a shared memory unit for storing the dependency resolution attributes, the data readiness attributes and the transaction requests where the transaction requests are destined to the ordered buses. A managing circuit, coupled to the shared memory unit and to the multiple ordered bus interfaces, is used to determine a readiness of each transaction request based on a dependency resolution attribute and a data readiness attribute associated with the transaction request, and for managing a dequeueing of ready transaction requests to the ordered bus interfaces based on an availability of the ordered bus interfaces.

Claims (46)

1. A bus bridge, comprising:

multiple ordered bus interfaces, wherein each ordered bus interface is coupled to an ordered bus; and

a flow control logic circuit, coupled to the out-of-order bus and the multiple ordered bus interfaces, for controlling a flow of transaction requests between the out-of-order bus and each of the ordered bus interfaces;

wherein the flow control logic circuit includes:

an updating circuit, for updating dependency resolution attributes and data readiness attributes associated with transaction requests;

a shared memory unit, for storing the dependency resolution attributes, the data readiness attributes and the transaction requests, wherein the transaction requests are destined to the ordered buses; and

a managing circuit, coupled to the shared memory unit and to the multiple ordered bus interfaces, for determining a readiness of each transaction request based on a dependency resolution attribute and a data readiness attribute associated with the transaction request, and for managing a dequeueing of ready transaction requests to the ordered bus interfaces based on an availability of the ordered bus interfaces.

2. The bus bridge according to claim 1 , wherein the managing circuit comprises a transaction request arbiter for arbitrating between ready transaction requests that are associated with different ordered buses.

3. The bus bridge according to claim 1 , further comprising a monitor for monitoring a level of fullness of the shared memory unit and for sending, to an out-of-order bus controller, an availability indicator that is indicative of an ability of the shared memory to receive ready transaction requests.

4. The bus bridge according to claim 1 , wherein the updating circuit is arranged to receive a data readiness indicator that is indicative of an availability of data that corresponds to a relevant transaction cycle and is destined to a relevant ordered bus, to search in the shared memory unit for a matching write transaction request, and to update the data readiness attribute associated with the matching write transaction request.

5. The bus bridge according to claim 1 , wherein the updating circuit is arranged to update the data readiness attribute of a read transaction request to indicate that the data of the read transaction request is ready.

6. The bus bridge according to claim 1 , wherein the flow control logic circuit is arranged to control a flow of transaction request responses from the ordered bus interfaces to the out-of-order bus interface; and wherein the flow control logic circuit further comprises a transaction response arbiter for arbitrating between transaction request responses that originate from different ordered bus interfaces.

7. The bus bridge according to claim 1 , wherein the shared memory unit is arranged to store a maximal number of transaction requests and each ordered bus interface is arranged to store a maximal number of ready transaction requests; and wherein the maximal number of transaction requests is greater than the maximal number of ready transaction requests.

8. The bus bridge according to claim 1 , wherein the flow control logic circuit further comprises a tracking circuit for storing, for each ordered bus, a last transaction cycle identifier and a pending transaction request indicator, wherein the pending transaction request indicator indicates whether the shared memory unit stores a transaction request destined to the ordered bus; and

wherein the updating circuit is arranged to update a dependency resolution attribute of a transaction request that is destined to a relevant ordered bus, based on the last transaction cycle identifier and the pending transaction request indicator associated with the relevant ordered bus.

9. The bus bridge according to claim 1 , wherein the updating circuit is arranged to update a value of the last transaction cycle identifier and to update the pending transaction request indicator upon a dequeueing of a ready transaction request from the shared memory.

10. The bus bridge according to claim 1 , wherein each entry of the shared memory is arranged to store a valid indicator indicative of a validity of the entry, a pending transaction request, an antecedent dependency attribute indicative of an antecedent pending transaction, a dependency resolution attribute and a data readiness attribute.

11. A method for interfacing an out-of-order bus and multiple ordered buses, comprising:

receiving transaction requests from the out-of-order bus;

controlling a flow of transaction requests between the out-of-order bus and each of the ordered buses interfaces; and

performing transactions between the out-of-order bus and the ordered buses based on the flow of transaction requests;

wherein controlling of the flow of transaction requests comprises:

updating dependency resolution attributes and data readiness attributes associated with transaction requests;

storing transaction requests, dependency resolution attributes and data readiness attributes;

determining a readiness of each transaction request based on a dependency resolution attribute and a data readiness attribute associated with the transaction request; and

managing a dequeueing of ready transaction requests to the ordered bus interfaces based on an availability of the ordered bus interfaces.

12. The method according to claim 11 , further comprising arbitrating between ready transaction requests that are associated with different ordered buses.

13. The method according to claim 11 , wherein the transaction requests, dependency resolution attributes and data readiness attributes are stored in a shared memory unit, and wherein the method further comprises:

monitoring a level of fullness of the shared memory unit; and

sending, to an out-of-order bus controller, an availability indicator that is indicative of an ability of the shared memory to receive transaction requests.

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

receiving a data readiness indicator that is indicative of an availability of data that corresponds to a relevant transaction cycle and is destined to a relevant ordered bus;

searching the shared memory unit for a matching write transaction request; and

updating the data readiness attribute associated with the matching write transaction request.

15. The method according to claim 11 , further comprising updating the data readiness attribute of a read transaction request to indicate that the data of the read transaction request is ready.

16. The method according to claim 11 , further comprising: controlling a flow of transaction request responses from the ordered bus interfaces to the out-of-order bus, wherein the controlling comprises arbitrating between transaction request responses that originate from different ordered bus interfaces.

17. The method according to claim 11 , further comprising:

storing in a shared memory unit a maximal number of pending transaction requests and storing in each ordered bus interface a maximal number of ready transaction requests;

wherein the maximal number of pending transaction requests is greater than the maximal number of ready transaction requests.

18. The method according to claim 11 , further comprising:

storing in a shared memory unit, for each ordered bus, a last transaction cycle identifier and a pending transaction request indicator; and

updating a dependency resolution attribute of a transaction request that is destined to a relevant ordered bus, based on the last transaction cycle identifier and the pending transaction request indicator associated with the relevant ordered bus.

19. The method according to claim 18 , further comprising:

updating a value of the last transaction cycle identifier; and

updating the pending transaction request indicator upon a dequeueing of an associated ready transaction request from the shared memory.

20. The method according to claim 19 , further comprising storing in each entry of the shared memory unit a valid indicator indicative of a validity of the entry, a pending transaction request, an antecedent dependency attribute indicative of an antecedent pending transaction, a dependency resolution attribute and a data readiness attribute.

Assignments (33)
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 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 →
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 →
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 037357/0194 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0027 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0120 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0866 →
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 Sep 3, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 024933/0316 →
SECURITY AGREEMENT Recorded Sep 3, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024933/0340 →
SECURITY AGREEMENT Recorded Sep 1, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 024915/0777 →
SECURITY AGREEMENT Recorded Sep 1, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024915/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2010
From: DEOGHARIA, AMAR NATH; NAUTIYAL, HEMANT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 023836/0874 →
Continuity (1)
Related Publication 20110185102A1 · Jul 28, 2011