Multi-core processor for managing data packets in communication network
First Claim
1. A system-on-chip (SoC) for processing data packets, the SOC comprising:
- a plurality of cores;
a data buffer for storing the data packets;
a memory for storing a plurality of buffer descriptor rings, wherein each buffer descriptor ring includes a plurality of buffer descriptors, and a buffer descriptor corresponds to a data packet;
a hardware accelerator that receives the data packets, associates each data packet with a corresponding buffer descriptor, and generates a first hardware signal when a first set of the data packets is stored in the data buffer; and
an interrupt controller, connected to the hardware accelerator, the interrupt controller including a status table corresponding to the plurality of cores for selecting a first core of the plurality of cores, wherein the interrupt controller;
selects the first core using the status table; and
generates a first interrupt signal based on the first hardware signal and transmits the first interrupt signal to the first core,wherein the first core;
creates a first virtual queue for storing a copy of a first set of buffer descriptors of a first buffer descriptor ring of the plurality of buffer descriptor rings that correspond to the first set of data packets, andindicates to the hardware accelerator that the first set of data packets is processed, andwherein the hardware accelerator generates a second hardware signal when a second set of the data packets is stored in the data buffer.
25 Assignments
0 Petitions
Accused Products
Abstract
A system for managing data packets has multiple cores, a data buffer, a hardware accelerator, and an interrupt controller. The interrupt controller transmits a first interrupt signal to a first one of the cores based on a first hardware signal received from the hardware accelerator. The first core creates a copy of buffer descriptors (BD) of a buffer descriptor ring that correspond to the data packets in the data buffer in a first virtual queue and indicates to the hardware accelerator that the data packets are processed. If there are additional data packets, the interrupt controller transmits a second interrupt signal to a second core, which performs the same steps as performed by the first core. The first and the second cores simultaneously process the data packets associated with the BDs in the first and second virtual queues, respectively.
-
Citations
19 Claims
-
1. A system-on-chip (SoC) for processing data packets, the SOC comprising:
-
a plurality of cores; a data buffer for storing the data packets; a memory for storing a plurality of buffer descriptor rings, wherein each buffer descriptor ring includes a plurality of buffer descriptors, and a buffer descriptor corresponds to a data packet; a hardware accelerator that receives the data packets, associates each data packet with a corresponding buffer descriptor, and generates a first hardware signal when a first set of the data packets is stored in the data buffer; and an interrupt controller, connected to the hardware accelerator, the interrupt controller including a status table corresponding to the plurality of cores for selecting a first core of the plurality of cores, wherein the interrupt controller; selects the first core using the status table; and generates a first interrupt signal based on the first hardware signal and transmits the first interrupt signal to the first core, wherein the first core; creates a first virtual queue for storing a copy of a first set of buffer descriptors of a first buffer descriptor ring of the plurality of buffer descriptor rings that correspond to the first set of data packets, and indicates to the hardware accelerator that the first set of data packets is processed, and wherein the hardware accelerator generates a second hardware signal when a second set of the data packets is stored in the data buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of processing a plurality of data packets in a system-on-chip (SoC) that includes a plurality of cores, a data buffer that stores the plurality of data packets, a memory that stores a plurality of buffer descriptor rings, wherein each buffer descriptor ring includes a plurality of buffer descriptors and a buffer descriptor corresponds to a data packet, the method comprising:
-
receiving the plurality of data packets; generating a first hardware signal when a first set of data packets of the plurality of data packets are stored in the data buffer; selecting a first core of the plurality of cores; creating a copy of a first set of buffer descriptors of a first buffer descriptor ring of the plurality of buffer descriptor rings corresponding to the first set of data packets in a first virtual queue of the first core; indicating that the first set of data packets is processed; and generating a second hardware signal when a second set of data packets of the plurality of data packets are stored in the data buffer. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method of processing a plurality of data packets in a system-on-chip (SoC) that includes a plurality of cores, a data buffer that stores the plurality of data packets, a memory that stores a plurality of buffer descriptor rings, wherein each buffer descriptor ring includes a plurality of buffer descriptors and a buffer descriptor corresponds to a data packet, the method comprising:
-
receiving the plurality of data packets; generating a first hardware signal when a first set of data packets of the plurality of data packets are stored in the data buffer; selecting a first core of the plurality of cores; creating a copy of a first set of buffer descriptors of a first buffer descriptor ring of the plurality of buffer descriptor rings corresponding to the first set of data packets in a first virtual queue of the first core; indicating that the first set of data packets is processed; generating a second hardware signal when a second set of data packets of the plurality of data packets are stored in the data buffer; selecting a second core of the plurality of cores; creating a copy of a second set of buffer descriptors of the first buffer descriptor ring corresponding to the second set of data packets in a second virtual queue of the second core; indicating that the second set of data packets is processed; and processing the first and second sets of data packets, simultaneously, by the first and second cores, respectively. - View Dependent Claims (17, 18, 19)
-
Specification