Patent ID: 8745626

Claim:
A system for assigning one or more application instances that are associated with a respective application in a plurality of applications to an array of processor cores of configurable types at least in part based on information specifying type of processing resources demanded for execution of one or more of the plurality of applications, the system comprising: a core fabric comprising the array of processor cores, each processor core configured to a type of processing resource optimal for executing its currently assigned application from the plurality of applications; a hardware controller for periodically assigning the one or more application instances for execution on the array of processor cores for an execution interval at least in part based on processing demands associated with each of the plurality of applications, wherein the hardware controller assigns, for at least some of the execution intervals, the one or more application instances to the array of processor cores by: identifying a present allocation of application instances currently assigned for execution on the array of processor cores in a current execution interval; determining a new allocation of application instances to be assigned to the array of processor cores at a next execution interval; identifying one or more application instances from the new allocation that are not present in the present allocation, with this set of application instances referred to as activating application instances; identifying one or more application instances from the present allocation that are not present in the new allocation, with this set of application instances referred to as deactivating application instances; identifying one or more processor cores in the array of processor cores that are currently assigned to the deactivating application instances, with this set of processor cores referred to as available processor cores; assigning the activating application instances to the available processor cores for execution in the next execution interval by matching, to the extent possible, a currently configured type of processor core in the available processor cores with the type of processing resources as specified by the activating application instances; and when at least one of the activating application instances cannot be matched with any of the available processor cores, reconfiguring at least one of the available processor cores from its currently configured type to a type of processing resource as specified by the at least one activating application instance.