IP Library Granted Patent US 8,656,071
Granted Patent B1
US 8,656,071 · App. 13/107,265 · Granted Feb 18, 2014

System and method for routing a data message through a message network

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,656,071
App. No.
13/107,265
Granted
Feb 18, 2014
Kind
B1
Abstract

A communication system includes a destination node containing a message buffer pointer input queue and a message queue memory. Moreover, the message queue memory includes message buffers. A source node of the communication system generates data packets and a message buffer pointer packet. A message network of the communication system routes the data packets and the message buffer pointer packet to the destination node. The destination node writes a data message in a message buffer of the message queue memory based on the data packets and enqueues the message buffer pointer into the message buffer pointer input queue. Further, the destination node dequeues the message buffer pointer from the message buffer pointer input queue and accesses the data message in the message buffer based on a message buffer pointer.

Claims (45)

1. A system comprising:

a destination node comprising a message buffer pointer input queue and further comprising a message queue memory including a plurality of message buffers;

a source node comprising a message buffer pointer free queue, the message buffer pointer free queue comprising a destination node identifier register and a destination node address register, the source node configured to generate a message buffer pointer packet including a message buffer pointer identifying a message buffer of the plurality of message buffers, the message buffer comprising a plurality of storage locations, the source node further configured to generate a plurality of message data packets including a data message, each message data packet of the plurality of message data packets including a portion of the data message and an address of a storage location in the message buffer and configured to associate the message buffer pointer free queue with the message buffer pointer input queue by writing a destination node identifier of the destination node into the destination node identifier register and writing a destination node address of the message buffer pointer input queue into the destination node address register; and

a message network coupled to the source node and the destination node, the message network configured to route the plurality of message data packets and the message buffer pointer packet to the destination node, the destination node configured to write a data message into the message buffer based on the plurality of message data packets and enqueue the message buffer pointer into the message buffer pointer input queue of the destination node to indicate the data message is stored in the message buffer identified by the message buffer pointer.

2. The system of claim 1 , wherein the destination node is further configured to dequeue the message buffer pointer from the message buffer pointer input queue and access the data message stored in the message buffer based on the message buffer pointer of the message buffer pointer packet.

3. The system of claim 1 , wherein the source node comprises a message buffer pointer free queue configured to store message buffer pointers, the source node further configured to dequeue the message buffer pointer from the message buffer pointer free queue, the destination node is further configured to generate a message buffer pointer response packet including the message buffer pointer based on the message buffer pointer packet, the message network is further configured to route the message buffer pointer response packet to the source node through message network, and the source node is further configured to enqueue the message buffer pointer into the message buffer pointer free queue based on the message buffer pointer response packet.

4. The system of claim 3 , wherein the message buffer pointer includes a source node identifier identifying the source node, a source queue identifier identifying the message buffer pointer free queue, and a message buffer address identifying the message buffer in the message queue memory.

5. The system of claim 4 , wherein the message buffer pointer free queue further comprises

a message buffer address queue for storing the message buffer address of the message buffer pointer.

6. The system of claim 5 , wherein the source node is further configured to enqueue the message buffer pointer into the message buffer pointer free queue by enqueueing the message buffer address of the message buffer into the message buffer address queue, and wherein the source node is further configured to dequeue the message buffer pointer from the message buffer pointer free queue by dequeueing the message buffer address from the message buffer address queue.

7. The system of claim 1 , wherein the message network is configured to receive the message data packets from the source node and subsequently receive the message buffer pointer packet from the source node, the message network further configured to route the message data packets and the message buffer pointer packets from the source node to the destination node in a same order in which the message network receives the message data packets and the message buffer pointer packets from the source node.

8. A system comprising:

a destination node comprising a message buffer pointer input queue and further comprising a message queue memory including a plurality of message buffers;

a source node comprising a message buffer pointer free queue configured to store message buffer pointers, the message buffer pointer free queue comprising a destination node identifier register and destination node address register, the source node configured to dequeue a message buffer pointer identifying a message buffer of the message queue memory from the message buffer pointer free queue, generate a message buffer pointer packet including the message buffer pointer, and generate a sequence of message data packets having a sequential order and including a data message, each message data packet of the sequence of message data packets including a portion of the data message and an address of a storage location in the message buffer; and

a message network coupled to the source node and the destination node, the message network configured to route the sequence of message data packets to the destination node in the sequential order and subsequently route the message buffer pointer packet to the destination node, the destination node configured to write the data message into the message buffer based on the sequence of message data packets, the destination node further configured to enqueue the message buffer pointer into the message buffer pointer input queue of the destination node to indicate the data message is stored in the message buffer of the message buffer pointer packet and configured to associate the message buffer pointer free queue with the message buffer pointer input queue by writing a destination node identifier of the destination node into the destination node identifier register and writing a destination node address of the message buffer pointer input queue into the destination node address register.

9. The system of claim 8 , wherein the destination node is further configured to dequeue the message buffer pointer from the message buffer pointer input queue and access the data message stored in the message buffer based on the message buffer pointer.

10. The system of claim 8 , wherein the destination node is further configured to generate a message buffer pointer response packet in response to receiving the message buffer pointer packet, the message network is further configured to route the message buffer pointer response to the source node through message network, and the source node is further configured to enqueue a message buffer pointer into the message buffer pointer free queue based on the message buffer pointer response packet.

11. The system of claim 8 , wherein the message buffer pointer comprises a source node identifier identifying the source node, a source queue identifier identifying the message buffer pointer free queue, and a message buffer address identifying the message buffer.

12. The system of claim 11 , wherein the message buffer pointer free queue further comprises

a message buffer address queue for storing the message buffer address of the message buffer pointer.

13. The system of claim 12 , wherein the source node is further configured to enqueue the message buffer pointer in the message buffer pointer free queue by enqueueing the message buffer address of the message buffer into the message buffer address queue, and wherein the source node is further configured to dequeue the message buffer pointer from the message buffer pointer free queue by dequeueing the message buffer address from the message buffer address queue.

14. A method comprising:

generating a message buffer pointer packet by a source node, the message buffer pointer packet including a message buffer pointer identifying a message buffer of a message queue memory in a destination node;

storing the message buffer pointer into a message buffer pointer free queue of the source node;

associating the message buffer pointer free queue of the source node with a message buffer pointer input queue of the destination node by writing a destination node identifier into a destination node identifier register of the message buffer pointer free queue, the destination node identifier identifying the destination node and writing a destination node address into a destination node address register of the message buffer pointer free queue, the destination node address identifying the message buffer pointer input queue of the destination node;

generating a plurality of message data packets including a data message, each message data packet of the plurality of message data packets including a portion of the data message and an address of a storage location in the message buffer;

routing the plurality of message data packets from the source node to the destination node through a message network;

writing the data message into the message buffer based on the plurality of message data packets;

routing the message buffer pointer packet from the source node to the destination node through the message network after routing the plurality of message data packets to the destination node; and

enqueueing the message buffer pointer into the message buffer pointer input queue of the destination node to indicate the data message is stored in the message buffer.

15. The method of claim 14 , further comprising:

dequeueing the message buffer pointer from the message buffer pointer input queue; and

accessing the data message stored in the message buffer based on the message buffer pointer dequeued from the message buffer pointer input queue.

16. The method of claim 14 , further comprising dequeueing the message buffer pointer from the message buffer pointer free queue of the source node.

17. The method of claim 16 , further comprising:

receiving the message buffer pointer packet at the destination node;

generating a message buffer pointer response packet in response to receiving the message buffer pointer packet;

routing the message buffer pointer response packet from the destination node to the source node through the message network; and

enqueueing the message buffer pointer into the message buffer pointer free queue based on the message buffer pointer response packet.

18. The method of claim 14 , wherein the message buffer pointer comprises a source node identifier identifying the source node, a source queue identifier identifying the message buffer pointer free queue, and a message buffer address identifying the message buffer.

19. The method of claim 18 , further comprising:

selecting the destination node from a plurality of destination nodes coupled to the message network;

selecting the message buffer pointer input queue from a plurality of message buffer pointer input queues of the destination node;

and

enqueueing the message buffer address into a message buffer address queue of the message buffer pointer free queue.

Assignments (12)
CONFIRMATORY ASSIGNMENT Recorded Sep 7, 2022
From: IP GEM GROUP, LLC
To: POLARIS POWERLED TECHNOLOGIES, LLC
Reel/Frame 061372/0947 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2017
From: MICROSEMI SOLUTIONS (U.S.), INC.
To: IP GEM GROUP, LLC
Reel/Frame 043212/0001 →
CHANGE OF NAME Recorded Aug 7, 2017
From: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
To: MICROSEMI SOLUTIONS (U.S.), INC.
Reel/Frame 043458/0351 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME AND ADDRESS PREVIOUSLY RECORDED AT REEL: 037961 FRAME: 0519. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 15, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (US), INC.
Reel/Frame 038102/0874 →
CHANGE OF NAME Recorded Mar 1, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 037961/0519 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING AND RECEIVING PARTIES PREVIOUSLY RECORDED ON REEL 030832 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY DATA: INTEGRATED DEVICE TECHNOLOGY, INC. TECEIVING: PMC-SIERRA US, INC. Recorded Jul 23, 2013
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: PMC-SIERRA US, INC.
Reel/Frame 030919/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2013
From: PMC-SIERRA US, INC.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 030832/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2011
From: ONUFRYK, PETER Z; SESHAN, GANESH T.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 026276/0852 →