IP Library Granted Patent US 7,096,296
Granted Patent B2
US 7,096,296 · App. 10/995,456 · Granted Aug 22, 2006

Supercharge message exchanger

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,096,296
App. No.
10/995,456
Granted
Aug 22, 2006
Kind
B2
Abstract

A system with a first random access memory (RAM), a second RAM, a first processor coupled to the first RAM and a second processor coupled to the second RAM. The first RAM is configured to store input/output (I/O) completions from at least two engines. The second RAM is also configured to store I/O completions from at least two engines. When all engines are active, the system writes I/O completions from the engines to the first and second RAMs. The first processor processes I/O completions stored in the first RAM. The second processor processes I/O completions stored in the second RAM.

Claims (16)

1. A method comprising:

receiving input/output (I/O) completions from a plurality of data paths, the plurality of data paths including first processor data paths for I/O completions resulting from I/O requests initiated by a first processor, and a write data path for I/O completions resulting from I/O requests initiated by a second processor; storing the I/O completions in a plurality of registers, each register being configured to store an I/O completion from one of the plurality of data paths;

transferring the I/O completions from the plurality of registers to a plurality of logical blocks of a random access memory, each logical block being configured to store I/O completions from one of the plurality of data paths, wherein each respective register and each respective logical block are associated with a respective predetermined one of the plurality of data paths; and

processing the I/O completions stored in the plurality of logical blocks using the first processor, including the I/O completions resulting from the I/O requests initiated by the second processor.

2. The method of claim 1 , wherein receiving input/output (I/O) completions from the plurality of data paths comprises receiving I/O completions from a first set of data paths in a first mode, and receiving I/O completions from a second set of data paths in a second mode.

3. The method of claim 1 , further comprising:

transferring the I/O completions from the registers to an arbitrator;

arbitrating which I/O completion to send to a selected one of the plurality of logical blocks of the random access memory; and

sending one of the I/O completions from the arbitrator to the selected logical block of the random access memory.

4. The method of claim 3 , wherein arbitrating involves using a round robin method.

5. The method of claim 1 , further comprising sending a plurality of ready signals to a plurality of data sources via the plurality of data paths, each ready signal indicating that a selected one of the plurality of registers is ready to store one of the I/O completions.

6. The method of claim 5 , further comprising detecting one of the plurality of ready signals and generating a write-enable signal if one of the plurality of data sources has a particular I/O completion to write to the random access memory.

7. The method of claim 1 , further comprising using pointers to determine if there are outstanding I/O completions ready for processing.

8. The method of claim 1 , further comprising using pointers to determine whether one or more of the plurality of logical blocks is full.

9. The method of claim 8 , further comprising preventing one of the I/O completions from being written to a selected one of the plurality of logical blocks if the selected logical block is full.

10. The method of claim 8 , further comprising notifying a source coupled to one of the plurality of data paths that the logical block and register configured to store I/O completions from the source are full.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2006
From: EMULEX CORPORATION
To: EMULEX DESIGN & MANUFACTURING CORPORATION
Reel/Frame 017216/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2006
From: LIU, MICHAEL; ROACH, BRADLEY; SU, SAM; FIACCO, PETER
To: EMULEX CORPORATION
Reel/Frame 017197/0427 →