Counting semaphores for network processing engines
First Claim
Patent Images
1. A method for implementing a software FIFO in a network processing engine, the method comprising:
- receiving a request to write data to a FIFO;
determining whether the FIFO is full by comparing the value of a counting semaphore with a predefined maximum value; and
if the value of the counting semaphore is less than the predefined maximum value;
incrementing the counting semaphore; and
writing data to the FIFO.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for implementing software FIFOs on network processing engines (NPEs). The logic needed to support these software FIFOs is believed to be less than that needed to support additional hardware FIFOs, especially as the number of additional FIFOs is increased. Thus, the systems and methods enable NPEs to utilize more FIFOs at less cost. The counting semaphores that are used in the implementation of the software FIFOs can also, or alternatively, be used to provide NPEs with additional resource-locking and signaling functionality.
-
Citations
30 Claims
-
1. A method for implementing a software FIFO in a network processing engine, the method comprising:
-
receiving a request to write data to a FIFO;
determining whether the FIFO is full by comparing the value of a counting semaphore with a predefined maximum value; and
if the value of the counting semaphore is less than the predefined maximum value;
incrementing the counting semaphore; and
writing data to the FIFO. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product embodied on a computer readable medium, the computer program product comprising instructions which, when executed by a processor, are operable to perform actions comprising:
-
receiving a request to write data to a FIFO;
determining whether the FIFO is full by comparing the value of a counting semaphore with a predefined maximum value; and
if the value of the counting semaphore is less than the predefined maximum value;
incrementing the counting semaphore; and
writing data to the FIFO. - View Dependent Claims (12)
-
-
13. A network processing engine comprising:
-
one or more coprocessors;
a memory;
a counting semaphore;
signal generation logic for signaling the status of a FIFO; and
computer code stored in said memory, which, when executed by one or more of said coprocessors, is operable to implement a FIFO using said counting semaphore and said signal generation logic. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A signaling method performed by a network processing engine, the method comprising:
-
maintaining a counting semaphore, the counting semaphore being operable to increment and decrement a count in an atomic fashion;
atomically incrementing the value of the count in response to a first action by a first process; and
taking at least one action in a second process based on the incremented value of the count. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
Specification