IP Library Granted Patent US 9,323,534
Granted Patent B2
US 9,323,534 · App. 13/831,850 · Granted Apr 26, 2016

Method and apparatus for detecting a collision between multiple threads of execution for accessing a memory array

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,323,534
App. No.
13/831,850
Granted
Apr 26, 2016
Kind
B2
Abstract

A method includes determining, for a first thread of execution, a first speculative decoded operands signal and determining, for a second thread of execution, a second speculative decoded operands signal. The method further includes determining, for the first thread of execution, a first constant and determining, for the second thread of execution, a second constant. The method further compares the first speculative decoded operands signal to the second speculative decoded operands signal and uses the first and second constant to detect a wordline collision for accessing the memory array.

Claims (28)

1. A computer-implemented method for detecting a collision between multiple threads of execution for accessing a memory array, the method comprising:

determining, for a first thread of execution, a first speculative decoded operands value by summing a first subset of consecutive bits from a first base operand and a first subset of consecutive bits from a first offset operand;

determining, for a second thread of execution, a second speculative decoded operands value by summing a first subset of consecutive bits from a second base operand and a first subset of consecutive bits from a second offset operand;

determining, for the first thread of execution, a first least significant bit value based on a sum of a second subset of bits from the first base operand and a second subset of bits from the first offset operand;

determining, for the second thread of execution, a second least significant bit value based on a sum of a second subset of bits from the second base operand and a second subset of bits from the second offset operand; and

determining a word line collision between the first and second threads is indicated when the first speculative decoded operands value matches the second speculative decoded operands value and the first and second least significant bit values correspond to the same value.

2. The method of claim 1 , wherein an even wordline collision, between the first and second threads of execution, for accessing the memory array is indicated when the first and second least significant bit values each have a value that is equivalent to a binary zero, and wherein an odd wordline collision, between the first and second threads of execution, for accessing the memory array is indicated when the first and second least significant bit values each have a value that is equivalent to a binary one.

3. The method of claim 1 , wherein an even wordline collision is indicated when the first and second least significant bit values both correspond to a binary zero.

4. The method of claim 1 , wherein an odd wordline collision is indicated when the first and second least significant bit values both correspond to a binary one.

5. The method of claim 1 , wherein the computer-implemented method is performed in parallel with summing the first base operand with the first offset operand to determine a first effective memory address and with summing the second base operand with the second offset operand to determine a second effective memory address.

6. Memory array access and collision detection apparatus comprising:

an operands decoding circuit configured to:

determine, for a first thread of execution, a first speculative decoded operands signal based on a first subset of consecutive bits from a first base operand and a first subset of consecutive bits from a first offset operand; and

determine, for a second thread of execution, a second speculative decoded operands signal based on a first subset of consecutive bits from a second base operand and a first subset of consecutive bits from a second offset operand;

a first adder circuit configured to determine, for the first thread of execution, a first least significant bit value based on a sum of a second subset of bits from the first base operand and a second subset of bits from the first offset operand;

a second adder circuit configured to determine, for the second thread of execution, a second constant based on a sum of a second subset of bits from the second base operand and a second subset of bits from the second offset operand; and

a third logic circuit coupled to the operands decoding circuit and to the first and second adder circuits, wherein the third logic circuit is configured to detect a wordline collision when the first speculative decoded operands signal matches the second speculative decoded operands signal and the first least significant bit value is equal to the second least significant bit value.

7. The apparatus of claim 6 , wherein the third logic circuit is further configured to generate a wordline collision signal indicating a detected wordline collision between the first and second threads of execution for accessing the memory array, the system further comprising:

a collision avoidance circuit coupled between the third logic circuit and the memory array, wherein the collision avoidance circuit is configured to receive the wordline collision signal, a first wordline determined for the first thread of execution, and a second wordline determined for the second thread of execution and to prevent or delay the first or second wordline access to the memory array.

8. The apparatus of claim 6 , wherein the third logic circuit comprises a multiplexer circuit, wherein the multiplexer circuit is configured to use the first and second least significant bits as first and second selection bits to detect the wordline collision when the first speculative decoded operands signal matches the second speculative decoded operands signal.

9. The apparatus of claim 8 , wherein the multiplexer is configured to detect the wordline collision when the first least significant bit value is equal to the second least significant bit value.

10. A computer-implemented method for detecting a collision between multiple threads of execution for accessing a memory array, the method comprising:

determining, for a first thread of execution, a first speculative decoded operands signal based on a first subset of consecutive bits from a first base operand and a first subset of consecutive bits from a first offset operand;

determining, for a second thread of execution, a second speculative decoded operands signal based on a first subset of consecutive bits from a second base operand and a first subset of consecutive bits from a second offset operand; and

comparing the first speculative decoded operands signal to the second speculative decoded operands signal, and when the first speculative decoded operands signal and the second speculative decoded operands signal have an equivalent value, detecting a wordline collision between the first and second threads when a least significant bit value calculated by summing a second subset of bits from the first base operand with a second subset of bits from the first offset operand is equal to a second least significant value calculated by summing a second subset of bits from the second base operand and a second subset of bits from the second offset operand.

11. The method of claim 10 , wherein an even wordline collision is indicated when the first and second least significant bit values correspond to a binary zero and when the first and second speculative decoded operands signals correspond to a same even numbered value.

12. The method of claim 10 , wherein an odd wordline collision is indicated when the first and second least significant bit values correspond to a binary one and when the first and second speculative decoded operands signals correspond to a same odd numbered value.

13. The method of claim 1 , further comprising providing collision avoidance in response to detecting the wordline collision, wherein the first thread and the second thread attempt to access the same wordline at the same time.

Assignments (31)
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 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 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 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 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 →
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 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 →
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/0704 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0725 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0744 →
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 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0581 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030445/0709 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 20, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 030445/0737 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2013
From: RAMARAJU, RAVINDRARAJ; STACER, KATHRYN C.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 030008/0714 →