IP Library Granted Patent US 9,116,799
Granted Patent B2
US 9,116,799 · App. 13/931,945 · Granted Aug 25, 2015

Method for detecting bank collision at a memory and device 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,116,799
App. No.
13/931,945
Granted
Aug 25, 2015
Kind
B2
Abstract

A pipeline circuit determines a first effective address based a sum of a first value and a second value. The first effective address is based upon an actual value of a carry-in into a bit-wise region of the first and second values. The bit-wise region includes a predefined internal region of bits of the first and second values. The pipeline circuit also determines a second effective address based a sum of a third value and a fourth value. A collision detector circuit receives bits from the bit-wise region of each of the four values and determines a plurality of speculative results based upon the bits of the bit-wise regions and based upon a plurality of speculative carry-in values. A collision indicator is asserted based on at least one result of the plurality of speculative results, and the actual values of the first and second carry-in.

Claims (57)

1. A method comprising:

determining at a pipeline circuit, a first effective address based a sum of a first value and a second value, the first effective address based upon an actual value of a first carry-in into a bit-wise region of the first and second values, wherein the bit-wise region includes a predefined internal region of bits of the first and second values;

determining at the pipeline circuit, a second effective address based a sum of a third value and a fourth value, the second effective address based upon an actual value of a second carry-in into the bit-wise region of the third and fourth values;

receiving, at a collision detector circuit, corresponding bits from the bit-wise region of each of the first, second, third, and fourth values;

determining a plurality of speculative results based upon the bits of the bit-wise regions of the first, second, third, and fourth values and based upon a plurality of speculative carry-in values, the speculative carry-in values being speculative of the actual first and second carry-in values; and

asserting an indicator to indicate a memory access collision, the indicator based on at least one result of the plurality of speculative results, and in response to receiving the actual value of the first carry-in and the actual value of the second carry-in from the pipeline circuit.

2. The method of claim 1 , wherein determining the plurality of speculative results further comprises:

determining a first speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a first speculative value of the first carry-in and a first speculative value of the second carry-in;

determining a second speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the first speculative value of the first carry-in and a second speculative value of the second carry-in;

determining a third speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a second speculative value of the first carry-in and the first speculative value of the second carry-in; and

determining a fourth speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the second speculative value of the first carry-in and the second speculative value of the second carry-in into the bit-wise region.

3. The method of claim 1 , wherein determining the plurality of speculative results further comprises:

determining a first speculative result based on values of bits of the bit-wise region of the first value, values of bits of the bit-wise region of the second value, and a first speculative value of the first carry-in into the bit-wise region;

determining a second speculative result based on the values of bits of the bit-wise region of the first value, the values of bits of the bit-wise region of the second value, and a second speculative value of the first carry-in into the bit-wise region;

determining a third speculative result based on values of bits of the bit-wise region of a third value, values of bits of the bit-wise region of a fourth value, and a first speculative value of a second carry-in into the corresponding bit-wise region; and

determining a fourth speculative result based on the values of bits of the bit-wise region of the third value, the values of bits of the bit-wise region of the fourth value, and a second speculative value of the second carry-in into the corresponding bit-wise region.

4. The method of claim 1 , wherein asserting the indicator further comprises determining values at bits of the bit-wise region of the sum of the first value and the second value are equal to values of corresponding bits of the bit-wise region of the sum of the third value and the fourth value.

5. The method of claim 1 , wherein asserting the indicator further comprises determining two memory access requests will collide.

6. The method of claim 1 , wherein determining the first speculative result further comprises determining a value of a first speculative carry-out of a first bit position of the bit-wise region.

7. The method of claim 1 , wherein the first value represents a base address and the second value represents an address offset, the first effective address associated with a first memory access request of a first program thread and corresponding to a location at a memory device, and wherein the third value represents a base address and the fourth value represents an address offset, the second effective address associated with a second memory access request of a second program thread and corresponding to another location at the memory device.

8. The method of claim 1 , wherein the first, second, third, and fourth speculative results are determined concurrently with a determination of the actual values of the first carry-in and the second carry-in.

9. The method of claim 1 , wherein the actual value of the first carry-in is determined during a calculation of the first effective address and the actual value of the second carry-in is determined during a calculation of the second effective address.

10. A data processing device comprising:

a pipeline circuit to:

determine a first effective address based a sum of a first value and a second value, the first effective address based upon an actual value of a first carry-in into a bit-wise region of the first and second values, wherein the bit-wise region includes a predefined internal region of bits of the first and second values; and

determine a second effective address based a sum of a third value and a fourth value, the second effective address based upon an actual value of a second carry-in into the bit-wise region of the third and fourth values; and

a collision detector circuit coupled to the pipeline circuit to:

receive corresponding bits from the bit-wise region of each of the first, second, third, and fourth values;

determine a plurality of speculative results based upon the bits of the bit-wise regions of the first, second, third, and fourth values and based upon a plurality of speculative carry-in values, the speculative carry-in values being speculative of the actual first and second carry-in values; and

assert an indicator to indicate a memory access collision, the indicator based on at least one result of the plurality of speculative results, and in response to receiving the actual value of the first carry-in and the actual value of the second carry-in from the pipeline circuit.

11. The data processing device of claim 10 , wherein determining the plurality of speculative results further comprises:

determining a first speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a first speculative value of the first carry-in and a first speculative value of the second carry-in;

determining a second speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the first speculative value of the first carry-in and a second speculative value of the second carry-in;

determining a third speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a second speculative value of the first carry-in and the first speculative value of the second carry-in; and

determining a fourth speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the second speculative value of the first carry-in and the second speculative value of the second carry-in into the bit-wise region.

12. The data processing device of claim 10 , wherein determining the plurality of speculative results further comprises:

determining a first speculative result based on values of bits of the bit-wise region of the first value, values of bits of the bit-wise region of the second value, and a first speculative value of the first carry-in into the bit-wise region;

determining a second speculative result based on the values of bits of the bit-wise region of the first value, the values of bits of the bit-wise region of the second value, and a second speculative value of the first carry-in into the bit-wise region;

determining a third speculative result based on values of bits of the bit-wise region of a third value, values of bits of the bit-wise region of a fourth value, and a first speculative value of a second carry-in into the corresponding bit-wise region; and

determining a fourth speculative result based on the values of bits of the bit-wise region of the third value, the values of bits of the bit-wise region of the fourth value, and a second speculative value of the second carry-in into the corresponding bit-wise region.

13. The data processing device of claim 10 , wherein asserting the indicator further comprises determining values at bits of the bit-wise region of the sum of the first value and the second value are equal to values of corresponding bits of the bit-wise region of the sum of the third value and the fourth value.

14. The data processing device of claim 10 , wherein asserting the indicator further comprises determining two memory access requests will collide.

15. The data processing device of claim 10 , wherein determining the first speculative result further comprises determining a value of a first speculative carry-out of a first bit position of the bit-wise region.

16. The data processing device of claim 10 , wherein the first value represents a base address and the second value represents an address offset, the first effective address associated with a first memory access request of a first program thread and corresponding to a location at a memory device, and wherein the third value represents a base address and the fourth value represents an address offset, the second effective address associated with a second memory access request of a second program thread and corresponding to another location at the memory device.

17. The data processing device of claim 10 , wherein the first, second, third, and fourth speculative results are determined concurrently with a determination of the actual values of the first carry-in and the second carry-in.

18. A method comprising:

determining at a first circuit a first sum of a first value and a second value, the first sum based upon an actual value of a first carry-in into a bit-wise region of the first and second values, wherein the bit-wise region includes a predefined internal region of bits of the first and second values;

determining at the first circuit a second sum of a third value and a fourth value, the second sum based upon an actual value of a second carry-in into the bit-wise region of the third and fourth values;

receiving, at a second circuit, corresponding bits from the bit-wise region of each of the first, second, third, and fourth values;

determining a plurality of speculative results based upon the bits of the bit-wise regions of the first, second, third, and fourth values and based upon a plurality of speculative carry-in values, the speculative carry-in values being speculative of the actual first and second carry-in values; and

assert an indicator indicating values of bits of the bit-wise region of a sum of the first value and the second value are equal to values of corresponding bits of the bit-wise region of a sum of the third value and the fourth value based on the first speculative result, the second speculative result, the third speculative result, and the fourth speculative result, in response to receiving the actual value of the first carry-in and the actual value of the second carry-in.

19. The method of claim 18 , wherein determining the plurality of speculative results further comprises:

determining a first speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a first speculative value of the first carry-in and a first speculative value of the second carry-in;

determining a second speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the first speculative value of the first carry-in and a second speculative value of the second carry-in;

determining a third speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and a second speculative value of the first carry-in and the first speculative value of the second carry-in; and

determining a fourth speculative result based on values of bits of the bit-wise region of the first value, the second value, the third value, the fourth value, and the second speculative value of the first carry-in and the second speculative value of the second carry-in into the bit-wise region.

20. The method of claim 18 , wherein the first value represents a base address and the second value represents an address offset, the first sum to provide an effective address associated with a first memory access request of a first program thread and corresponding to a location at a memory device, and wherein the third value represents a base address and the fourth value represents an address offset, the second sum to provide an effective address associated with a second memory access request of a second program thread and corresponding to another location at the memory device.

Assignments (29)
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 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 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 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 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
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 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 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 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 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
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 6, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037445/0592 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0819 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0844 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0804 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Sep 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 031248/0750 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Sep 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031248/0627 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Sep 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031248/0510 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Sep 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031248/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2013
From: RAMARAJU, RAVINDRARAJ; STACER, KATHRYN C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 030716/0344 →