Patent ID: 7926023

Claim:
A method, comprising: monitoring processor tasks and associated processor loads therefor that are allocated to be performed by respective sub-processing units associated with a main processing unit; detecting whether a processing error has occurred in a given one of the sub-processing units; re-allocating all of the processor tasks of the given sub-processing unit to one or more participating sub-processing units, including other sub-processing units associated with the main processing unit, based on the processor loads of the processor tasks of the given sub-processing unit and the processor loads of the participating sub-processing units, wherein the participating sub-processing units include one or more respective groups of sub-processing units, each group being associated with a respective main processing unit, wherein each of the respective groups of sub-processing units and the associated main processing unit: (i) are part of a set of multi-processing units, wherein the respective group of sub-processing units and the main processing unit share a common data bus with one or more others of the respective groups of sub-processing units and associated main processing units; (ii) are a stand alone multi-processing unit, wherein the respective group of sub-processing units and the main processing unit does not share a common data bus with any other group of sub-processing units and associated main processing unit; or (iii) are at least part of a distributed multi-processing unit, wherein at least some of the main processing unit and the sub-processing units are remotely located from one another, wherein at least some of the multi-processing units, the stand alone multi-processing units, and the distributed multi-processing units may be disposed at least one of: (i) on common or different circuit boards; (ii) in common or different products; and (iii) in common or different locations; determining communications requirements, including at least one of communication bandwidth and communication latency, needed between the given sub-processing unit and one or more sub-processing units to share processing results with the given sub-processing unit; and further basing the re-allocation of the tasks of the given sub-processing unit on the communications requirements.