IP Library Granted Patent US 7,558,890
Granted Patent B1
US 7,558,890 · App. 10/741,132 · Granted Jul 7, 2009

Instruction set for programmable queuing

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,558,890
App. No.
10/741,132
Granted
Jul 7, 2009
Kind
B1
Abstract

A traffic manager includes an execution unit that is responsive to instructions related to queuing of data in memory. The instructions may be provided by a network processor that is programmed to generate such instructions, depending on the data. Examples of such instructions include (1) writing of data units (of fixed size or variable size) without linking to a queue, (2) re-sequencing of the data units relative to one another without moving the data units in memory, and (3) linking the previously-written data units to a queue. The network processor and traffic manager may be implemented in a single chip.

Claims (30)

1. A device comprising:

a scheduler configured to schedule queues of data in a memory based on at least one of: rate and bandwidth guarantee;

an execution unit comprising an input bus and decode logic coupled to the input bus, the decode logic being configured to decode from the input bus at least a set of instructions related to queuing;

wherein the set of instructions related to queuing comprises:

a first operation code to write data to the memory but not link the data to a queue, wherein the decode logic is responsive to a first predetermined pattern of bits on the input bus to identify the first operation code; and

a second operation code to link the data held in memory to the queue, wherein the decode logic is further responsive to a second predetermined pattern of bits on the input bus to identify the second operation code;

wherein the execution unit executes the first operation code in response to identification of the first operation code by the decode logic and executes the second operation code in response to identification of the second operation code by the decode logic; and

a network processor coupled to the input bus, the network processor comprising a processing unit programmed to identify a queue number and generate at least one instruction for each unit of data to be transmitted on the input bus, the processing unit in the network processor comprising another decode logic different from said decode logic of the execution unit;

wherein the network processor transmits at least the queue number to the execution unit on the input bus; and

wherein the execution unit and the scheduler are included in a traffic manager, the traffic manager being coupled to the network processor by the input bus.

2. The device of claim 1 wherein:

the execution unit comprises a pipeline, the decode logic in the execution unit is included in an early stage of the pipeline, and the memory is coupled to a last stage of the pipeline; and

the execution unit further comprises a first-in-first-out memory coupled to the input bus.

3. The device of claim 1 wherein the traffic manager further comprises a pointer pool, said pointer pool being coupled to each of said network processor and said execution unit, said pointer pool comprising a plurality of pointers, each pointer in said plurality of pointers consisting essentially of an address in memory.

4. The device of claim 1 wherein the set further comprises a third instruction to set up a sequence in which the data is read from the memory but without moving the data in the memory, the decode logic in the execution unit being responsive to a third predetermined pattern of bits to identify the third operation code.

5. A device comprising:

means for scheduling configured to schedule queues of data in a memory based on at least one of: rate and bandwidth guarantee; and

means for execution comprising an input means and decode means coupled to the input means, the decode means being configured to decode from the input means at least a set of instructions related to queuing;

wherein the set of instructions related to queuing comprises:

a first operation code to write data to the memory but not link the data to a queue, wherein the decode means is responsive to a first predetermined pattern of bits on the input means to identify the first operation code; and

a second operation code to link the data held in memory to the queue, wherein the decode means is further responsive to a second predetermined pattern of bits on the input means to identify the second operation code;

wherein the means for execution executes the first operation code in response to identification of the first operation code by the decode means and executes the second operation code in response to identification of the second operation code by the decode means; and

a network processor coupled to the input means, the network processor comprising a processing means programmed to identify a queue number and generate at least one instruction for each unit of data to be transmitted on the input means, the processing means in the network processor comprising another decode means different from said decode means of the means for execution;

wherein the network processor transmits at least the queue number to the execution means on the input means; and

wherein the means for execution and the means for scheduling are included in a traffic manager, the traffic manager being coupled to the network processor by the input means.

6. The device of claim 5 wherein the traffic manager further comprises a pointer pool, said pointer pool being coupled to each of said network processor and said means for execution, said pointer pool comprising a plurality of pointers, each pointer in said plurality of pointers consisting essentially of an address in memory.

7. The device of claim 5 wherein the set further comprises a third instruction to set up a sequence in which the data is read from the memory but without moving the data in the memory, the decode means in the means for execution being responsive to a third predetermined pattern of bits to identify the third operation code.

8. The device of claim 5 wherein:

the execution unit comprises a pipeline, the decode means in the means for execution is included in an early stage of the pipeline, and the memory is coupled to a last stage of the pipeline; and

the execution unit further comprises a first-in-first-out memory coupled to the input means.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2016
From: NET NAVIGATION SYSTEMS, LLC
To: RPX CORPORATION
Reel/Frame 037679/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2013
From: PACKETQ SOLUTIONS LLC
To: NET NAVIGATION SYSTEMS, LLC
Reel/Frame 031645/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2011
From: APPLIED MICRO CIRCUITS CORPORATION
To: NET NAVIGATION SYSTEMS, LLC
Reel/Frame 026714/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2004
From: LI, ANDREW; LAU, MICHAEL; KHAMISY, ASAD
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 015350/0484 →