Packet ordering system using an atomic ticket release command of a transactional memory
First Claim
1. A method comprising:
- (a) receiving packets of a plurality of flows onto an integrated circuit;
(b) assigning the packets of some but not all of the flows to an ordering context, wherein each packet of the ordering context is assigned a corresponding ordering sequence number, wherein the ordering sequence number is not a part of the packet as the packet is received in (a) onto the integrated circuit;
(c) maintaining a ticket release bitmap in a transactional memory;
(d) using the ticket release bitmap to track which packets of the ordering context have been flagged for future release by an ordering system but have not yet been released from the ordering system; and
(e) using a plurality of processors to perform application layer processing on the packets, wherein each processor further executes a corresponding amount of ordering system code, wherein each packet of the ordering context is processed by one of the processors as a result of execution of the amount of ordering system code such that after the application layer processing of the packet the processor issues an atomic ticket release command to the transactional memory thereby accessing the ticket release bitmap and such that the processor receives information in return back from the transactional memory, wherein the ordering system includes;
1) a plurality of ticket release bitmaps, one of which is the ticket release bitmap of (d), and
2) the amount of ordering system code executing on each processor of the plurality of processors, and wherein the transactional memory and the plurality of processors are parts of the integrated circuit.
3 Assignments
0 Petitions
Accused Products
Abstract
An Island-Based Network Flow Processor (IB-NFP) receives packets of many flows, and classifies them as belonging to an ordering context. These packets are distributed to a set of Worker Processors (WPs), so that each packet of the context is processed by one WP, but multiple WPs operate on packets of the context at a given time. The WPs use an atomic ticket release functionality of a transactional memory to assist in determining when to release packets to another set of Output Processors (OP). The packets are indicated to the set of OPs in the correct order, even though the WPs may complete their processing of the packets in an out-of-order fashion. For a packet that is indicated as to be released, an OP generates a “transmit command” such that the packet (or a descriptor of the packet) is then put into a properly ordered stream for output from the IB-NFP.
-
Citations
20 Claims
-
1. A method comprising:
-
(a) receiving packets of a plurality of flows onto an integrated circuit; (b) assigning the packets of some but not all of the flows to an ordering context, wherein each packet of the ordering context is assigned a corresponding ordering sequence number, wherein the ordering sequence number is not a part of the packet as the packet is received in (a) onto the integrated circuit; (c) maintaining a ticket release bitmap in a transactional memory; (d) using the ticket release bitmap to track which packets of the ordering context have been flagged for future release by an ordering system but have not yet been released from the ordering system; and (e) using a plurality of processors to perform application layer processing on the packets, wherein each processor further executes a corresponding amount of ordering system code, wherein each packet of the ordering context is processed by one of the processors as a result of execution of the amount of ordering system code such that after the application layer processing of the packet the processor issues an atomic ticket release command to the transactional memory thereby accessing the ticket release bitmap and such that the processor receives information in return back from the transactional memory, wherein the ordering system includes;
1) a plurality of ticket release bitmaps, one of which is the ticket release bitmap of (d), and
2) the amount of ordering system code executing on each processor of the plurality of processors, and wherein the transactional memory and the plurality of processors are parts of the integrated circuit. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method involving a plurality of packets of an ordering context, wherein each packet of the ordering context has an ordering sequence number, the method comprising:
(a) using a ticket release bitmap in a packet ordering system to track which packets of the ordering context of packets have been flagged for future release but have not yet been released, wherein the ticket release bitmap includes a flag bit for each ordering sequence number in the ordering context, and wherein the ticket release bitmap is maintained in one or more transactional memories. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A packet ordering system for ordering packets of an ordering context, wherein each packet of the ordering context has an ordering sequence number, the packet ordering system comprising:
-
a transactional memory that stores a ticket release bitmap, wherein the ticket release bitmap tracks which packets of the ordering context have been flagged for future release but have not yet been released from the packet ordering system, wherein the ticket release bitmap includes a flag bit for each ordering sequence number in the ordering context; and means for;
1) supplying atomic ticket release commands to the transactional memory, wherein each atomic ticket release command includes an ordering sequence number. - View Dependent Claims (18, 19, 20)
-
Specification