IP Library Granted Patent US 8,762,581
Granted Patent B2
US 8,762,581 · App. 09/741,857 · Granted Jun 24, 2014

Multi-thread packet processor

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,762,581
App. No.
09/741,857
Granted
Jun 24, 2014
Kind
B2
Abstract

A multi-thread packet processor which processes data packets using a multi-threaded pipelined machine, wherein no instruction depends on a preceding instruction because each instruction in the pipeline is executed for a different thread. The multi-thread packet processor transfers a data packet from a flexible data input buffer to a packet task manager, dispatches the data packet from the packet task manager to a multi-threaded pipelined analysis machine, classifies the data packet in the analysis machine, modifies and forwards the data packet in a packet manipulator. The multi-thread packet processor includes an analysis machine having multiple pipelines, wherein one pipeline is dedicated to directly manipulating individual data bits of a bit field, a packet task manager, a packet manipulator, a global access bus including a master request bus and a slave request bus separated from each other and pipelined, an external memory engine, and a hash engine.

Claims (40)

1. A method for routing a data packet comprising:

receiving the packet at a first device;

producing at least one thread associated with routing the packet, the thread including a sequence of instructions;

assigning a thread identifier (TID) to each of the threads and maintaining an activity status for each thread;

for each instruction, selecting a pipeline from a plurality of processing pipelines such that no instruction in the selected pipeline depends on a preceding instruction because every instruction in the selected pipeline is associated with a different thread;

executing the instructions in the selected pipelines; and

transmitting the packet from the first device to a second device.

2. The method according to claim 1 , further comprising: transferring a first thread from an input buffer to a packet task manager; dispatching the first thread from the packet task manager to an analysis machine having multiple pipelines; classifying the first thread in the analysis machine; and modifying and forwarding the first thread in a packet manipulator.

3. The method according to claim 1 , wherein the activity status indicates that a status of the associated thread is one of active, inactive or waiting.

4. The method of claim 1 wherein executing the instructions includes executing computational instructions including an arithmetic, boolean, or shift operation.

5. The method of claim 1 wherein executing the instructions includes executing multi-argument instructions.

6. The method of claim 1 wherein executing the instructions includes executing atomic instructions including a read-modify-write operation on data in private memory or statistics memory.

7. The method of claim 1 wherein executing the instructions includes executing flow control instructions including a jump or branch operation.

8. The method of claim 1 wherein executing the instructions includes executing load and store instructions to move data between memory spaces and registers.

9. The method of claim 1 wherein executing the instructions includes executing search engine instructions including a filtering, lookup, or memory access operation.

10. An apparatus for routing a packet comprising:

a memory for storing:

at least one thread associated with routing the packet, each thread including a sequence of instructions;

a unique Thread Identifier (TID) for each thread; and

an activity status for each thread; and

an analysis machine including a plurality of pipelines, the analysis machine selecting a pipeline for each instruction such that no instruction in the selected pipeline depends on a preceding instruction because every instruction in the selected pipeline is associated with a different thread and forwarding that instruction to the selected pipeline.

11. The apparatus according to claim 10 , wherein one pipeline is dedicated to directly manipulating individual data bits of a bit field a packet task manager operationally connected to said analysis machine, and a packet manipulator operationally connected to said analysis machine.

12. The apparatus according to claim 11 , wherein said analysis machine is multi-threaded.

13. The apparatus according to claim 11 , wherein said analysis machine has 32 threads.

14. The apparatus according to claim 11 , further comprising: a packet task manager operationally connected to said analysis machine; a packet manipulator operationally connected to said analysis machine; and a global access bus including a master request bus and a slave request bus separated from each other and pipelined.

15. The apparatus according to claim 11 , further comprising: an external memory engine operationally connected to said analysis machine; and a hash engine operationally connected to said analysis machine.

16. The apparatus according to claim 14 , further comprising: packet input global access bus program code, stored in a computer readable memory and operable when executed to control a flow of data packet information from a flexible input data buffer to the analysis machine.

17. The apparatus according to claim 14 , further comprising: packet data global access bus program code, stored in a computer readable memory and operable when executed to control a flow of packet data between a flexible data input bus and the packet manipulator.

18. The apparatus according to claim 14 , further comprising: statistics data global access bus software code used for connection of the analysis machine to the packet manipulator.

19. The apparatus according to claim 14 , further comprising: private data global access bus software code used for connection of the analysis machine to an internal memory engine submodule.

20. The apparatus according to claim 14 , further comprising: lookup global access bus software code used for connection of the analysis machine to an internal memory engine submodule.

21. The apparatus according to claim 14 , further comprising: results global access bus software code used for providing flexible access to an external memory.

22. The apparatus according to claim 14 , further comprising: a bi-directional access port operationally connected to said analysis machine; an input buffer operationally connected to said analysis machine; and an output buffer operationally connected to said analysis machine.

23. The apparatus according to claim 10 , wherein the activity status indicates that associated multi-IP packet thread status is one of active, inactive or waiting.

24. The apparatus of claim 10 wherein the selected pipeline executes computational instructions including an arithmetic, boolean, or shift operation.

25. The apparatus of claim 10 wherein the selected pipeline executes multi-argument instructions.

26. The apparatus of claim 10 wherein the selected pipeline executes atomic instructions including a read-modify-write operation on data in private memory or statistics memory.

27. The apparatus of claim 10 wherein the selected pipeline executes flow control instructions including a jump or branch operation.

28. The apparatus of claim 10 wherein the selected pipeline executes load and store instructions to move data between memory spaces and registers.

29. The apparatus of claim 10 wherein the selected pipeline executes search engine instructions including a filtering, lookup, or memory access operation.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 48612/0598) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063691/0294 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 48612/FRAME 0582 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.
Reel/Frame 063456/0428 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 57700/FRAME 0935 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.
Reel/Frame 063458/0303 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Oct 4, 2021
From: AVAYA MANAGEMENT LP
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 057700/0935 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Mar 15, 2019
From: AVAYA MANAGEMENT L.P.
To: CITIBANK, N.A.
Reel/Frame 048612/0582 →
SECURITY INTEREST Recorded Mar 15, 2019
From: AVAYA MANAGEMENT L.P.
To: GOLDMAN SACHS BANK USA
Reel/Frame 048612/0598 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: AVAYA HOLDINGS LIMITED
To: AVAYA MANAGEMENT L.P.
Reel/Frame 048577/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2010
From: NORTEL NETWORKS LIMITED
To: AVAYA HOLDINGS LIMITED
Reel/Frame 023998/0799 →