US2008301406A1PendingUtilityA1
System and method for allocating communications to processors in a multiprocessor system
Est. expiryJan 6, 2023(expired)· nominal 20-yr term from priority
G06F 15/163
51
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
In a multiprocessor-system, a system and method assigns communications to processors, processes, or subsets of types of communications to be processed by a specific 5 processor without using a locking mechanism specific to the resources required for assignment.
Claims
exact text as granted — not AI-modified1 . In a computer system comprising a plurality of processors separately capable of responding to an interrupt from a communication interface, a method of assigning each of a plurality of communications, the method comprising:
5 receiving at a first processor a first communication of the plurality; responsive to at least a portion of the communication received, sinelockingly assigning, at the first processor, the first communication to, at least one selected from a 10 first one of the plurality of processors, a first one of the plurality of processes and first one of the plurality of types of communications to be processed by one of the plurality of processors;
receiving at a second processor a second communication 15 of the plurality; and responsive to at least a portion of the communication received, sinelockingly assigning, at the second processor, the second communication to at least one selected from a second one of the plurality of processors, a second one of 20 the plurality of processes and a second one of the plurality of types of communications to be processed by one of the plurality of processors.
2 . The method of claim 1 wherein each of at least one of the assigning steps is additionally responsive to information received from at least one of the plurality of processes.
3 . The method of claim 1 wherein:
during and after the receiving the first communication step, and prior to and before and during the assigning the first communication step, the first communication is not 5 provided to, or received from, an operating system;
and during and after the receiving the second communication step, and prior to and before and during the assigning the second communication step, the second communication is not provided to, or received from, an 10 operating system.
4 . The method of claim 1 wherein at least one selected from: the first one of the plurality of processors comprises the second one of the plurality of processors;
the first one of the plurality of processes comprises the, second one of the plurality of processes;
and the first one of the plurality of types of communications to be processed by one of the plurality of processors comprises the second one of the plurality of 10 types of communications to be processed by one of the plurality of processors
5 . The method of claim 1 wherein: the first communication and the second communication comprise TCP packets;
and the at least the portions of the first communication 5 and the second communication comprise TCP headers of the first communication and the second communication.
6 . The method of claim 1 , wherein:
the assigning the first communication step comprises assigning the first communication to a first one of a plurality of queues;
5 the assigning the second communication step comprises 1 assigning the second communication to a second one of the plurality of queues;
and each of the first processor and the second processor is capable of assigning the plurality of communications to 10 the first queue and the second queue.
7 . The method of claim 1 wherein the assigning steps are responsive to at least one function.
8 . The method of claim 1 wherein the assigning steps are responsive to at least one set of criteria.
9 . A system for allocating a plurality of received communications comprising:
a plurality of processors forming a multiprocessor system that hosts an operating system, each processor equipped with a driver containing a communications assignor and at least one process that receives and processes communications; a system storage communicatively coupled with the plurality of processors, the system storage having at least one buffer that is identifiable by an index and adapted to store at least one of the plurality of received communications; and a communication interface communicatively coupled with the plurality of processors and the system storage and configured to receive the plurality of communications, the communication interface including an address space having at least one queue adapted to store the index identifying the at least one buffer in the system storage that stores the at least one of the plurality of received communications, wherein the at least one process on each processor is adapted to receive and process the received communications cooperatively with the system storage and independently of the operating system and any form of locking mechanism to enable coordinated access to the system storage by the plurality of processors.
10 . The system of claim 9 wherein the system storage is selected from the group consisting of a disk storage and memory.
11 . The system of claim 9 wherein each communication in the plurality of received communications is characterized by a size bounded by a maximal size and the at least one buffer is configured to store at least one of the plurality of received communications having the maximal size.
12 . The system of claim 9 wherein the process on each processor is an application program adapted to process at least one of the plurality of received communications.
13 . The system of claim 9 wherein the plurality of received communications are TCP packets.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.