IP Library Granted Patent US 7,275,112
Granted Patent B1
US 7,275,112 · App. 09/925,159 · Granted Sep 25, 2007

Efficient serialization of bursty out-of-order results

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,275,112
App. No.
09/925,159
Granted
Sep 25, 2007
Kind
B1
Abstract

A method, apparatus, and computer program product includes serially receiving, from a source, a plurality of forward messages each addressed to one of a plurality of destinations; receiving a plurality of availability signals, each availability signal indicating that one of the destinations is available to accept a forward message; simultaneously sending a forward message to each available destination; simultaneously receiving, after a predetermined period of time, a plurality of reverse messages from the destinations, each reverse message corresponding to one of the forward messages simultaneously sent to an available destination; and serially sending the reverse messages to the source.

Claims (38)

1. A method comprising:

serially receiving, from a source, a plurality of forward messages each addressed to a corresponding destination among a plurality of destinations;

storing each forward message before attempting to send the forward message to its corresponding destination;

for each stored forward message, receiving an availability signal indicating whether its corresponding destination is available to accept the stored forward message before attempting to send the stored forward message to its corresponding destination;

for first stored forward messages whose corresponding first destinations are available, simultaneously sending the first stored forward messages to their corresponding first destinations, wherein a stored forward message is sent only to its corresponding destination and not until after receiving an availability signal indicating that the destination is available;

subsequent to sending the first stored forward messages, simultaneously receiving, after a predetermined period of time, a plurality of reverse messages from the first destinations, each reverse message corresponding to one of the first stored forward messages; and

serially sending the reverse messages to the source.

2. The method of claim 1 , wherein the source identifies each of the forward messages by a different tag, further comprising:

placing a tag in a delay buffer when sending to a destination the forward message identified by that tag, wherein the delay buffer implements a delay equal to the predetermined period of time such that the tag is available when receiving from the destination the reverse message corresponding to the forward message; and

sending the tag to the source with the reverse message, whereby the source associates the reverse message with the forward message.

3. The method of claim 1 , further comprising:

associating a priority with each forward message; and

sending a forward message to a destination when that forward message has a higher priority than other forward messages addressed to that destination.

4. The method of claim 3 , wherein the priority of each forward message represents an age of that forward message.

5. The method of claim 1 , further comprising:

associated a priority with each reverse message; and

sending a reverse message to the source when that reverse message has a higher priority than other reverse messages.

6. The method of claim 5 , wherein the priority of each reverse message represents an age of that reverse message.

7. The method of claim 1 , wherein each destination is a memory bank, each forward message is a memory transaction, and each reverse message is the result of one of the memory transaction.

8. A computer program product, tangibly stored on a computer-readable medium, comprising instructions operable to cause a programmable processor to:

serially receive, from a source, a plurality of forward messages each addressed to a corresponding destination among a plurality of destinations;

store each forward message before attempting to send the forward message to its corresponding destination;

receive an availability signal for each stored forward message indicating whether its corresponding destination is available to accept the stored forward message before attempting to send the stored forward message to its corresponding destination;

for first stored forward messages whose corresponding first destinations are available, simultaneously send the first stored forward messages to their corresponding first destinations, wherein a stored forward message is sent only to its corresponding destination and not until after receiving an availability signal indicating that the destination is available;

simultaneously receive, after a predetermined period of time, a plurality of reverse messages from the first destinations, each reverse message corresponding to one of the first stored forward messages; and

serially send the reverse messages to the source.

9. The computer program product of claim 8 , wherein the source identifies each of the forward messages by a different tag, further comprising instructions operable to cause a programmable processor to:

place a tag in a delay buffer when sending to a destination the forward message identified by that tag, wherein the delay buffer implements a delay equal to the predetermined period of time such that the tag is available when receiving from the destination the reverse message corresponding to the forward message; and

send the tag to the source with the reverse message, whereby the source associates the reverse message with the forward message.

10. The computer program product of claim 8 , further comprising instructions operable to cause a programmable processor to:

associate a priority with each forward message; and

send a forward message to a destination when that forward message has a higher priority than other forward messages addressed to that destination.

11. The computer program product of claim 10 , wherein the priority of each forward message represents an age of that forward message.

12. The computer program product of claim 8 , further comprising instructions operable to cause a programmable processor to:

associate a priority with each reverse message; and

send a reverse message to the source when that reverse message has a higher priority than other reverse messages.

13. The computer program product of claim 12 , wherein the priority of each reverse message represents an age of that reverse message.

14. The computer program product of claim 8 , wherein each destination is a memory bank, each forward message is a memory transaction, and each reverse message is the result of one of the memory transactions.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2023
From: INTELLECTUAL VENTURES ASSETS 191 LLC
To: MIND FUSION, LLC
Reel/Frame 064270/0685 →
SECURITY INTEREST Recorded Mar 24, 2023
From: MIND FUSION, LLC
To: INTELLECTUAL VENTURES ASSETS 191 LLC; INTELLECTUAL VENTURES ASSETS 186 LLC
Reel/Frame 063295/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2023
From: ZARBAÑA DIGITAL FUND LLC
To: INTELLECTUAL VENTURES ASSETS 191 LLC
Reel/Frame 062666/0789 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF THE RECEIVING PARTY PREVIOUSLY RECORDED AT REEL: 036684 FRAME: 587. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 2, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036745/0324 →
MERGER Recorded Sep 29, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036684/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2004
From: BELIEVE, INC.
To: PASTERNAK SOLUTIONS LLC
Reel/Frame 014708/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2001
From: PURCELL, STEPHEN CLARK
To: BELIEVE, INC.
Reel/Frame 012082/0269 →