Process for dispatching tasks among multiple information processors
First Claim
1. In an information processing network including a main memory having memory locations for storing bit-encoded data, a plurality of processing devices for manipulating bit-encoded data, and a main storage interface connected to the processing devices and to the main memory;
- each of the processing devices having a cache memory including a plurality of cache locations for storing bit-encoded data, each processing device further including means for storing and retrieving bit-encoded data to and from the main storage memory via the main storage interface and means for storing and retrieving bit-encoded data to and from its associated cache memory;
said bit-encoded data including data operations, each of the data operations having priority indicia and having affinity indicia to indicate either a general affinity for at least two of the processing devices or a specific affinity for a selected one of the processing devices;
a process for associating each of the data operations with one of the processing devices for subsequent execution of the operation by the associated processing device, including the steps of;
(a) performing a primary scan of the data operations, including scanning the affinity indicia of each data operation for the presence of a specific affinity;
(b) for each of the data operations having a specific affinity for a selected one of the processing devices, either (i) assigning the data operation to the selected processing device if the processing device is available for such assignment, or (ii) bypassing the data operation in the event that a higher priority data operation has been assigned to the selected processing device;
(c) in the event that the data operation has a general affinity for the processing devices, proceeding to the data operation having the next highest priority;
(d) performing steps b and c until either all of the data operations have been assigned, or until each one of the processing devices has an associated one of the data operations assigned to it; and
(e) dispatching each assigned operation to its associated processing device.
1 Assignment
0 Petitions
Accused Products
Abstract
In connection with an information processing network in which multiple processing devices have individual cache memories and also share a main storage memory, a process is disclosed for allocating multiple data operations or tasks for subsequent execution by the processing devices. A plurality of task dispatching elements (TDE) forming a task dispatching queue are scanned in an order of descending priority, for either a specific affinity to a selected one of the processing devices, or a general affinity to all of the processing devices. TDEs with specific affinity are assigned immediately if the selected processor is available, while TDEs of general affinity are reserved. TDEs with a specific affinity are bypassed if the selected processor is not available, or reserved if a predetermined bypass threshold has been reached. Following the primary scan a secondary scan, in an order of ascending priority, assigns any reserved tasks to the processing devices still available, without regard to processor affinity. Previously bypassed tasks can be assigned as well, in the event that any processor remains available. A further feature of the network is a means to reset the processor affinity of a selected task from the specific affinity to the general affinity. Resetting is accomplished through an assembly level instruction contained in the task, and either can be unconditional, with reset occurring whenever the task is executed on one of the processing devices, or can occur only upon the failure to meet a predetermined condition while the task is executing.
-
Citations
17 Claims
-
1. In an information processing network including a main memory having memory locations for storing bit-encoded data, a plurality of processing devices for manipulating bit-encoded data, and a main storage interface connected to the processing devices and to the main memory;
- each of the processing devices having a cache memory including a plurality of cache locations for storing bit-encoded data, each processing device further including means for storing and retrieving bit-encoded data to and from the main storage memory via the main storage interface and means for storing and retrieving bit-encoded data to and from its associated cache memory;
said bit-encoded data including data operations, each of the data operations having priority indicia and having affinity indicia to indicate either a general affinity for at least two of the processing devices or a specific affinity for a selected one of the processing devices;
a process for associating each of the data operations with one of the processing devices for subsequent execution of the operation by the associated processing device, including the steps of;(a) performing a primary scan of the data operations, including scanning the affinity indicia of each data operation for the presence of a specific affinity; (b) for each of the data operations having a specific affinity for a selected one of the processing devices, either (i) assigning the data operation to the selected processing device if the processing device is available for such assignment, or (ii) bypassing the data operation in the event that a higher priority data operation has been assigned to the selected processing device; (c) in the event that the data operation has a general affinity for the processing devices, proceeding to the data operation having the next highest priority; (d) performing steps b and c until either all of the data operations have been assigned, or until each one of the processing devices has an associated one of the data operations assigned to it; and (e) dispatching each assigned operation to its associated processing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
- each of the processing devices having a cache memory including a plurality of cache locations for storing bit-encoded data, each processing device further including means for storing and retrieving bit-encoded data to and from the main storage memory via the main storage interface and means for storing and retrieving bit-encoded data to and from its associated cache memory;
-
11. An information processing network including a main memory having memory locations for storing bit-encoded data, a plurality of processing devices, and a main storage interface connected to the processing devices and to the main memory;
-
each of the processing devices having a cache memory including a plurality of cache locations for storing bit-encoded data, each processing device further including means for storing and retrieving bit-encoded data to and from the main storage memory via the main storage interface, and means for storing and retrieving bit-encoded data to and from its associated cache memory; said bit-encoded data including data operations comprising working data and program instructions, said processing devices using instruction streams of the program instructions to manipulate the working data, each said instruction stream comprising a plurality of the program instructions; wherein the improvement comprises; processor affinity indicia associated with each of the data operations and identifying the associated data operation as having either a general affinity for at least two of the processing devices, or a specific affinity for a selected one of the processing devices; data operation allocation means for scanning a plurality of the data operations, and for associating each of the data operations with one of the processing devices for subsequent execution of the instruction stream by the associated processing device, the associating of each data operation being based at least in part upon the affinity indicia of the data operation; a means for modifying the processor affinity indicia of each data operation, upon the associating of the data operation with one of the processing devices, to exhibit the specific affinity for the associated processing device; and at least one processor affinity reset means, each affinity reset means being associated with a selected one of the instruction streams, for resetting the processor affinity indicia of the associated selected data operation to exhibit said general affinity as the associated processing device executes the selected instruction stream of the data operation. - View Dependent Claims (12, 13, 14, 15)
-
-
16. An information processing network including a main storage memory having memory locations for storing bit-encoded data, a plurality of processing devices, and a main storage interface connected to the processing devices and to the main memory;
-
each of the processing devices having a cache memory including a plurality of cache locations for storing bit-encoded data, each processing device further including means for storing and retrieving bit-encoded data to and from the main storage memory via the main storage interface, and means for storing and retrieving bit-encoded data to and from its associated cache memory; said bit-encoded data including working data and program instructions, said processing devices using streams of the program instructions to manipulate working data, each of the streams comprising a plurality of the program instructions; the programming instructions further including receive instructions and send instructions incorporated into first and second ones of the instruction streams, respectively, for synchronizing the first and second data operations, said receive instruction when executed seeking a message that a predetermined condition is satisfied, and said send instruction when executed providing the message that the condition is satisfied, wherein the first data operation continues to execute if the message is detected when the receive instruction is executed, and the first data operation is switched out of the associated processing device if the message is not detected when the receive instruction is executed; wherein the improvement comprises; processor affinity indicia associated with each of the data operations, to identify its associated data operation as having either a general affinity for at least two of the processing devices, or a specific affinity for only a selected one of the processing devices; data operation allocation means for scanning a plurality of the data operations, and for associating each of the data operations with one of the processing devices for subsequent execution of the instruction stream of the data operation by the associated processing device, based at least in part upon the affinity indicia of the data operation; a means for modifying the processor affinity indicia of each data operation to exhibit the specific affinity for the associated processing device with which the data operation is associated; and a conditional reset means, associated with said receive instruction, for resetting the processor affinity indicia of the first data operation to exhibit said general affinity if said message is not detected when the receive instruction is executed, and for leaving the affinity indicia unchanged in the event that said message is detected when the receive instruction is executed. - View Dependent Claims (17)
-
Specification