IP Library Granted Patent US 7,447,735
Granted Patent B2
US 7,447,735 · App. 10/610,746 · Granted Nov 4, 2008

Interprocessor communication protocol

Assignee: Motorola, 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 7,447,735
App. No.
10/610,746
Granted
Nov 4, 2008
Kind
B2
Abstract

An InterProcessor Communication (IPC) Protocol network ( 100 ) includes at least one IPC client ( 102 ) and an IPC server ( 108 ). The IPC protocol allows for the IPC client ( 102 ) to register with the IPC server ( 108 ) which will provide the means for the two to communicate freely without any limitations on what software architectures, operating systems, hardware, etc. each depend on. The IPC protocol in one embodiment of the invention provides for dynamic IPC node configuration in a server based IPC communication management framework.

Claims (40)

1. An interprocessor communication (IPC) network, comprising:

a first processor acting as an IPC server; and

a second processor acting as an IPC client coupled to the IPC server,

the IPC client and IPC server including an IPC stack each having:

a presentation manager;

a session manager coupled to the presentation manager;

a device interface coupled to the session manager; and

the IPC client uses the IPC stack to communicate with the IPC server;

wherein the IPC server and the IPC client can switch functions via negotiation to allow the IPC client to become the new IPC server;

wherein the IPC network includes multiple IPC clients and remaining IPC clients of the IPC network are instructed to change the Internet Protocol address of the IPC server if the IPC client becomes the new IPC server; and

wherein the IPC network allows any processor that adopts the IPC as its inter-processor communication stack to co-exist together and operate as if the two were actually running on the same processor core sharing a common operating system and memory.

2. An IPC network as defined in claim 1 , wherein at least one component is coupled to the IPC client.

3. An IPC network as defined in claim 2 , wherein the presentation manager is used to translate different data types between the at least one component.

4. An IPC network as defined in claim 2 , wherein the session manager assigns component IDs for the at least one component.

5. An IPC network as defined in claim 4 , wherein the component IDs assigned to the at least one component are dynamic and can be reassigned.

6. An IPC network as defined in claim 4 , wherein the session manager routes IPC data between the at least one component.

7. An IPC network as defined in claim 2 , wherein the session manager further comprises an IPC router block having a component routing table, the component routing table is used by the session manger to send IPC data to one or more component(s) amongst the at least one component that that are linked to a particular opcode.

8. An IPC network as defined in claim 1 , wherein at least one IPC hardware is coupled to the device interface and the device interface abstracts the at least one IPC hardware so that the IPC stack becomes hardware independent.

9. An IPC network as defined in claim 7 , wherein the session manager further comprises an IPC transport layer, the IPC transport layer provides cyclic redundancy checks to the IPC data and the routing function of the IPC transport layer is enabled only on the IPC server.

10. An IPC network as defined in claim 7 , wherein the IPC component routing table includes a list of IPC opcodes and all of the at least one component that have subscribed to a particular IPC opcode.

11. An IPC network as defined in claim 7 , wherein the IPC router block also includes a dynamic routing table that includes an IPC address assigned to the IPC client and a pointer to all IPC supported message opcodes.

12. An IPC network as defined in claim 9 , wherein the device interface includes a channel resource table that links a channel ID to a list of physical channel IDs.

13. An IPC network as defined in claim 2 , wherein the session manager further comprises an IPC router block having a component routing table that includes a list of unique IPC opcodes, each unique IPC opcode is assigned to each of the at least one component.

14. An IPC network as defined in claim 1 , wherein the device interface provides a hardware port that functions as a device interface to the IPC client.

15. An IPC network as defined in claim 1 , wherein

the session manager handles an assignment and authentication of the IPC client.

16. An IPC network as defined in claim 15 , wherein the session manager includes a dynamic routing table having a list of node Identification numbers (IDs) and each node coupled to the IPC stack has a unique node ID assigned to it.

17. A method for providing InterProcessor Communications (IPC) between first and second processors of an IPC network, comprising the steps of:

having the first processor act as an IPC server and the second processor act as an IPC client;

providing communications between the IPC server and the IPC client via an IPC network that includes an IPC stack in each of the IPC server and the IPC client; and

negotiating between the IPC server and the IPC client to permit the IPC client to become the new IPC server;

wherein the IPC network includes multiple IPC clients and the method further comprises the step of instructing remaining IPC clients of the IPC network to change the Internet Protocol address of the IPC server if the IPC client becomes the new IPC server;

wherein the IPC stack in each of the IPC server and the IPC client includes:

a presentation manager;

a session manager coupled to the presentation manager; and

a device interface coupled to the session manager;

wherein the IPC allows any processor that adopts the IPC as its inter-processor communication stack to co-exist together and operate as if the two were actually running on the same processor core sharing a common operating system and memory.

18. A method as defined in claim 17 , wherein the session manager in each of the IPC server and the IPC client includes a dynamic routing table, and the method includes the further step of:

using the dynamic routing table in each of the IPC server and IPC client to properly route data sent from the IPC client to the IPC server.

19. A method as defined in claim 17 , wherein IPC stacks of the IPC server and IPC clients includes a session manager that has an IPC transport layer, the IPC transport layer provides cyclic redundancy checks to the IPC data and the method further comprises the step of enabling the routing function of the IPC transport layer only on the IPC server.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE INCORRECT PATENT NO. 8577046 AND REPLACE WITH CORRECT PATENT NO. 8577045 PREVIOUSLY RECORDED ON REEL 034286 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 3, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034538/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034286/0001 →
CHANGE OF NAME Recorded Oct 2, 2012
From: MOTOROLA MOBILITY, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 029216/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2010
From: MOTOROLA, INC
To: MOTOROLA MOBILITY, INC
Reel/Frame 025673/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2003
From: KHAWAND, CHARBEL; KHAWAND, JEAN; WONG, CHIN P.
To: MOTOROLA INC.
Reel/Frame 014565/0453 →
Continuity (1)
Related Publication 20050027904A1 · Feb 3, 2005