Protocol parallel processing apparatus having a plurality of CPUs allocated to process hierarchical protocols
First Claim
1. A protocol parallel processing apparatus, comprising:
- a plurality of CPUs for processing a plurality of protocol data units;
a shared memory accessible by each of the plurality of CPUs for storing a CPU state table, that associates each of the plurality of CPUs with an idle flag indicative of whether a CPU is currently processing a protocol data unit, a remote address indicative of a remote node identified by a protocol data unit, and a process start time indicative of a time at which each CPU begins processing a protocol data unit; and
at least one line interface, coupled to the shared memory, including means for writing a remote address into the CPU state table when a protocol data unit is processed, and means for requesting one of the plurality of CPUs whose idle flag indicates that the CPU is idle to process the protocol data unit, and, means operative when no CPU is idle, for requesting a CPU with an oldest process start time to process the protocol data unit if none of the plurality of CPUs is idle.
0 Assignments
0 Petitions
Accused Products
Abstract
A protocol processing apparatus is presented having a plurality of CPUs for processing communication protocol data in parallel so as to achieve a high measure of efficiency. The apparatus provides a common memory including a CPU state table that is accessible by the plurality of CPUs. The CPU state table associates an idle flag, a remote node identifier, and a process start time with each of the plurality of CPUs. At least one line interface selects a CPU from the plurality of CPUs according to the contents of the CPU state table, selecting an idle CPU if one is available, selecting a CPU with the oldest process start time if no idle CPU is available, or selecting a busy CPU if the communication data to be processed is related to communication data already running on the busy CPU.
-
Citations
20 Claims
-
1. A protocol parallel processing apparatus, comprising:
-
a plurality of CPUs for processing a plurality of protocol data units; a shared memory accessible by each of the plurality of CPUs for storing a CPU state table, that associates each of the plurality of CPUs with an idle flag indicative of whether a CPU is currently processing a protocol data unit, a remote address indicative of a remote node identified by a protocol data unit, and a process start time indicative of a time at which each CPU begins processing a protocol data unit; and at least one line interface, coupled to the shared memory, including means for writing a remote address into the CPU state table when a protocol data unit is processed, and means for requesting one of the plurality of CPUs whose idle flag indicates that the CPU is idle to process the protocol data unit, and, means operative when no CPU is idle, for requesting a CPU with an oldest process start time to process the protocol data unit if none of the plurality of CPUs is idle. - View Dependent Claims (2, 3, 4)
-
-
5. A protocol parallel processing apparatus, comprising:
-
a plurality of CPUs for processing a plurality of protocol data units; a shared memory accessible by each of the plurality of CPUs for storing a CPU state table that associates each of the plurality of CPUs with an idle flag, a connection number, and a process start time; and at least one line interface, coupled to the shared memory, including means for writing a connection number into the CPU state table, and requesting one of the plurality of CPUs whose idle flag indicates that it is idle to process the protocol data unit, and means, operative when no CPU is idle, for requesting a CPU having an oldest process start time to process the protocol data unit if none of the plurality of CPUs is idle. - View Dependent Claims (6, 7)
-
-
8. A computer-implemented process for allocating a plurality of parallel CPUs, that share a common memory and network line interface, to process protocol data units (PDUs) in a network communication system, comprising the steps, performed by at least one of the plurality of CPU'"'"'s, of:
-
A) writing, by each CPU, an idle flag in the common memory to indicate whether the CPU is presently processing a PDU; B) writing, by each CPU, a process starting time in the common memory to indicate a time at which the CPU begins processing a PDU, the method further comprising the steps of; C) allocating, by the line interface in response to at least one CPU being idle, a received PDU to an idle CPU; and D) allocating, by the line interface in response to no CPUs being idle, the received PDU to a CPU with an oldest process starting time. - View Dependent Claims (9, 10)
-
-
11. A parallel data processing apparatus, comprising:
-
a plurality of CPUs joined together by a common bus; a common memory coupled to the common bus; means for determining, within the common memory, whether each of the plurality of CPUs is busy processing a protocol data unit (PDU); means for recording, within the common memory, a process start time for each of the plurality of CPUs, indicative of a time at which each CPU began processing a PDU; means for searching the common memory for a CPU from the plurality of CPUs that is idle; means, responsive to the means for searching, for selecting a CPU that is idle, if one is found, and for selecting a CPU having an oldest process start time, if each of the plurality of CPUs is busy. - View Dependent Claims (12, 13)
-
-
14. A protocol parallel processing apparatus, comprising:
-
a plurality of CPUs for processing a plurality of protocol data units; a shared memory accessible by each of the plurality of CPUs for storing a CPU state table, that associates each of the plurality of CPUs with an idle flag indicative of whether a CPU is currently processing a protocol data unit, an identifier indicative of a remote node of a protocol data unit, and a process start time indicative of a time at which each CPU begins processing a protocol data unit; at least one line interface, coupled to the shared memory, including means for writing a remote address into the CPU state table when a protocol data unit is processed, and means for requesting one of the plurality of CPUs whose idle flag indicates that the CPU is idle to process the protocol data unit; and means, operative when no CPU is idle, for requesting a CPU with an oldest process start time to process the protocol data unit. - View Dependent Claims (15, 16)
-
-
17. A protocol parallel processing apparatus, comprising:
-
a plurality of CPUs for processing a plurality of protocol data units; a shared memory accessible by each of the plurality of CPUs for storing a CPU state table, that associates each of the plurality of CPUs with an idle flag indicative of whether a CPU is currently processing a protocol data unit, an identifier indicative of a remote node of a protocol data unit, and a process start time indicative of a time at which each CPU begins processing a protocol data unit; and at least one line interface, coupled to the shared memory, including means for writing a remote address into the CPU state table when a protocol data unit is processed, and means, responsive to no CPU being idle, for requesting one of the plurality of CPUs with an oldest process start time to process the protocol data unit. - View Dependent Claims (18, 19, 20)
-
Specification