Single instruction processing of network packets
First Claim
Patent Images
1. A method comprising:
- providing a single instruction/multiple data (SIMD) program to process a first vector of data wherein each element of the first vector corresponds to a different received packet;
the program comprising instructions which, when executed, cause SIMD processing comprising;
accessing a second vector, wherein each element of the second vector identifies occupancy of a corresponding element in the first vector;
accessing a third vector, wherein each element of the third vector comprises flow state data for a flow of an associated packet in the first vector; and
modifying elements in the third vector; and
wherein the first vector comprises a vector that is not fully occupied and the flow state data comprises Transmission Control Protocol (TCP) flow state data.
0 Assignments
0 Petitions
Accused Products
Abstract
Executing a single instruction/multiple data (SIMD) instruction of a program to process a vector of data wherein each element of the packet vector corresponds to a different received packet.
-
Citations
23 Claims
-
1. A method comprising:
-
providing a single instruction/multiple data (SIMD) program to process a first vector of data wherein each element of the first vector corresponds to a different received packet; the program comprising instructions which, when executed, cause SIMD processing comprising; accessing a second vector, wherein each element of the second vector identifies occupancy of a corresponding element in the first vector; accessing a third vector, wherein each element of the third vector comprises flow state data for a flow of an associated packet in the first vector; and modifying elements in the third vector; and wherein the first vector comprises a vector that is not fully occupied and the flow state data comprises Transmission Control Protocol (TCP) flow state data. - View Dependent Claims (2, 3, 4)
-
-
5. A network interface controller, comprising:
-
an interface to a PHY; a Direct Memory Access (DMA) engine to transfer data from the network interface controller to and from a memory; circuitry to arrange data of the packets into a vector, wherein each element of the vector corresponds to a different packet, for single instruction/multiple data (SIMD) processing of the vector; wherein the circuitry to arrange data of the packets into a vector comprises circuitry to arrange data of the packets into a vector where each element of the vector corresponds to the same strict subset of packet header fields, wherein the packets comprising Internet Protocol (IP) packets. - View Dependent Claims (6, 7)
-
-
8. A computer program disposed on a non-transitory computer readable medium comprising instructions for causing circuitry to:
-
access a vector of network packet data, individual vector elements comprising a strict subset of fields of a network packet header, respective vector elements corresponding to different respective network packets; and cause single instruction, parallel processing of the respective vector elements corresponding to the different respective network packets; and wherein the network packets comprise Internet Protocol packets. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
- 16. The program of 8, wherein the single instruction, parallel processing of the respective array elements comprises updating of flow state data associated with the respective network packets.
-
18. A system comprising:
-
at least one processor capable of single instruction, parallel processing of vector elements; logic, when in operation, to; access a vector of network packet data, individual vector elements comprising a strict subset of fields of a network packet header, respective vector elements corresponding to different respective network packets; and cause single instruction, parallel processing by the at least one processor of the respective vector elements corresponding to the different respective network packets; wherein the network packets comprise Internet Protocol packets. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification