IP Library Granted Patent US 7,941,499
Granted Patent B2
US 7,941,499 · App. 11/682,867 · Granted May 10, 2011

Interprocessor message transmission via coherency-based interconnect

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 7,941,499
App. No.
11/682,867
Granted
May 10, 2011
Kind
B2
Abstract

A method includes communicating a first message between processors of a multiprocessor system via a coherency interconnect, whereby the first message includes coherency information. The method further includes communicating a second message between processors of the multiprocessor system via the coherency interconnect, whereby the second message includes interprocessor message information. A system includes a coherency interconnect and a processor. The processor includes an interface configured to receive messages from the coherency interconnect, each message including one of coherency information or interprocessor message information. The processor further includes a coherency management module configured to process coherency information obtained from at least one of the messages and an interrupt controller configured to generate an interrupt based on interprocessor message information obtained from at least one of the messages.

Claims (56)

1. A method comprising:

communicating a first message between processors of a multiprocessor system via a coherency interconnect, the first message comprising coherency information that is associated with a memory address of a shared address space of the multiprocessor system; and

communicating a second message between processors of the multiprocessor system via the coherency interconnect, the second message comprising interprocessor message information that is not associated with a memory address of the shared address space.

2. The method of claim 1 , wherein:

communicating the first message comprises generating the first message in a message format having a type field, the first message comprising a first value in the type field; and

communicating the second message comprises generating the second message in the message format, the second message comprising a second value in the type field.

3. The method of claim 2 , further comprising:

receiving the first message and the second message at a processor of the multiprocessor system;

accessing, at the processor, the type field of the first message to identify the first message as comprising coherency information;

processing, at the processor, the coherency information in response to identifying the first message as comprising coherency information;

accessing, at the processor, the type field of the second message to identify the second message as comprising interprocessor message information; and

processing, at the processor, the interprocessor message information in response to identifying the second message as comprising interprocessor message information.

4. The method of claim 1 , further comprising:

processing the interprocessor message information at a first processor of the multiprocessor system in response to determining that the second message is intended for the first processor.

5. The method of claim 4 , wherein processing the interprocessor message information at the first processor comprises generating an interrupt based on the interprocessor message information.

6. The method of claim 4 , further comprising:

disregarding the interprocessor message information at a second processor of the multiprocessor system in response to determining that the second message is not intended for the second processor.

7. The method of claim 1 , wherein communicating a second message between processors of a multiprocessor system via the coherency interconnect comprises:

communicating the second message from a first virtual processor of a processor of the multiprocessor system to the coherency interconnect; and

communicating the second message from the coherency interconnect to a second virtual processor of the processor.

8. A method comprising:

receiving, at a first processor of a multiprocessor system, a first message via a coherency interconnect;

accessing a type field of the first message to determine whether the first message includes coherency information that is associated with a memory address of a shared address space of the multiprocessor system or interprocessor message information that is not associated with a memory address of the shared address space;

in response to determining the first message includes coherency information, performing a coherency action at the first processor based on the coherency information; and

in response to determining the first message includes interprocessor message information, selectively processing the interprocessor message information at the first processor.

9. The method of claim 8 , wherein accessing the type field of the first message comprises:

determining the first message includes coherency information in response to the type field of the first message having a first value; and

determining the first message includes interprocessor message information in response to the type field of the first message having a second value.

10. The method of claim 8 , wherein performing a coherency action at the first processor comprises:

generating, at the first processor, a second message comprising coherency information in response to the coherency information of the first message, the second message having a same message format as the first message; and

communicating the second message to at least a second processor of the multiprocessor system, the second message including a representation of a coherency state of a coherency granule for a cache hierarchy of the first processor.

11. The method of claim 8 , further comprising:

providing the first message to the coherency interconnect from a first virtual processor of the first processor, the interprocessor message information including an identifier associated with a second virtual processor;

wherein receiving the first message comprises comparing the identifier with a filter parameter to determine whether the second virtual processor is at the first processor; and

wherein selectively processing the interprocessor message information at the first processor comprises selectively providing the interprocessor message information of the first message to the second virtual processor of the first processor based on the comparison of the identifier with the filter parameter.

12. The method of claim 8 , wherein selectively processing the interprocessor message information comprises:

processing the interprocessor message information at the first processor in response to determining the first message is compliant with at least one filter parameter; and

disregarding the interprocessor message information at the first processor in response to determining the first message is not compliant with at least one filter parameter.

13. The method of claim 12 , wherein processing the interprocessor message information comprises generating an interrupt at the first processor based on the interprocessor message information.

14. A system comprising:

a coherency interconnect coupleable to a plurality of processors;

a first processor comprising:

an interface configured to receive messages from the coherency interconnect, the messages each comprising one of coherency information that is associated with a memory address of a shared address space of the system or interprocessor message information that is not associated with a memory address of the shared address space;

a coherency management module configured to process coherency information obtained from one or more of the messages; and

an interrupt controller configured to generate an interrupt based on interprocessor message information obtained from one or more of the messages.

15. The system of claim 14 , wherein the messages each comprises a same message format.

16. The system of claim 15 , wherein the message format comprises a type field and a payload field, the type field configured to identify a payload in the payload field as comprising one of coherency information or interprocessor message information.

17. The system of claim 16 , the first processor further comprising:

a message filter module configured to selectively provide the payload of a message received via the coherency interconnect to one of the coherency management module or the interrupt controller based on the type field of the message.

18. The system of claim 14 , wherein the coherency management module is configured to generate a message comprising coherency information and provide the message for communication to at least a second processor of the multiprocessor system via the coherency interconnect.

19. The system of claim 14 , the first processor further comprising:

a message filter module configured to selectively provide interprocessor message information from a message received via the coherency interconnect to the interrupt controller based on at least one filter parameter.

20. The system of claim 14 , wherein:

the first processor implements a first virtual processor, the first virtual processor to providing a select message to the coherency interconnect from a first virtual processor of the first processor, the select message comprising interprocessor message information including an identifier associated with a second virtual processor;

the coherency management module is to compare the identifier of the select message with a filter parameter to determine the second virtual processor is at the first processor; and

the coherency management module selectively provides the interprocessor message information of the select message to the second virtual processor of the first processor based on the comparison of the identifier with the filter parameter.

Assignments (26)
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 →
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 →
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 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
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 →
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 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 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: ZENITH INVESTMENTS, LLC
To: APPLE INC.
Reel/Frame 034749/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: ZENITH INVESTMENTS, LLC
Reel/Frame 033687/0336 →
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 May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Sep 19, 2007
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 019847/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2007
From: BRUCE, BECKY G.; DESHPANDE, SANJAY R.; SNYDER, MICHAEL D.; WHISENHUNT, GARY L.; GALA, KUMAR
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 018992/0830 →