PROCESSING SYSTEM INCLUDING A PLURALITY OF CORES AND METHOD OF OPERATING THE SAME
First Claim
Patent Images
1. A method of assigning resources in a heterogeneous multi-core processing system including a plurality of first-type cores having a first architecture and a plurality of second-type cores having a second architecture different from the first architecture, the method comprising:
- maintaining history of usage information for each core of the plurality of first-type cores and each core of the plurality of second-type cores;
receiving a request to perform a task;
selecting a core from among the plurality of first-type cores and the plurality of second-type cores to perform the task,wherein the selecting depends at least in part on the history of usage information.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method of allocating resources among cores in a multi-core system is disclosed. The system and method determine cores that are able to process tasks to be performed, and use history of usage information to select a core to process the tasks. The system may be a heterogeneous multi-core processing system, and may include a system on chip (SoC).
60 Citations
38 Claims
-
1. A method of assigning resources in a heterogeneous multi-core processing system including a plurality of first-type cores having a first architecture and a plurality of second-type cores having a second architecture different from the first architecture, the method comprising:
-
maintaining history of usage information for each core of the plurality of first-type cores and each core of the plurality of second-type cores; receiving a request to perform a task; selecting a core from among the plurality of first-type cores and the plurality of second-type cores to perform the task, wherein the selecting depends at least in part on the history of usage information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of assigning resources in a multi-core processing system including a plurality of first-sized cores and a plurality of second-sized cores, the first size being smaller than the second size, the method comprising:
-
maintaining history of usage information for each core of the plurality of first-sized cores and each core of the plurality of second-sized cores; receiving a request to perform a task; determining that a first core of the plurality of first-sized cores has insufficient resources to perform the task; and as a result of the determination, selecting a second core from among the plurality of second-sized cores to perform the task, wherein the selecting depends at least in part on the history of usage information. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of assigning resources in a multi-core processing system including a plurality of first-sized cores and a plurality of second-sized cores, the first size being smaller than the second size, the method comprising:
-
storing history of usage information for each core of the plurality of first-sized cores and each core of the plurality of second-sized cores; determining a set of cores of the plurality of first-sized cores that each individually have sufficient resources to process all of the processes being performed on a core of the plurality of second-sized cores; and selecting at least a first core of the set of cores based at least in part on the history of usage information, wherein the first core is selected from among the set of cores based at least in part on one or more of the following; a selection count number indicating a number of times the first core has been selected; a usage time indicating an amount of past usage time of the first core; an instruction count number indicating a number of instructions executed by the first core; and a core load count number indicating a historical load amount processed by the first core. - View Dependent Claims (20, 21)
-
-
22. A resource management controller for assigning resources among a plurality of cores in a heterogeneous multi-core processing system including a plurality of first cores and a plurality of second cores different from the first cores, the controller comprising:
-
a determining circuit configured to determine whether a first core of the plurality of first cores has sufficient resources available to perform a requested task; and a selecting circuit configured to, when it is determined that the first core does not have sufficient resources to perform the task, select a second core from among the plurality of first cores and the plurality of second cores to perform the task, wherein the selecting depends at least in part on history information reflecting a history of usage of the plurality of first cores and plurality of second cores. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A heterogeneous multi-core processing system, comprising:
-
a plurality of core processors including a plurality of first-speed core processors each having a first maximum speed and a plurality of second-speed core processors each having a second maximum speed faster than the first speed; and a controller coupled to the plurality of core processors, wherein the controller is configured to; select a first second-speed core processor based on a history of usage of the plurality of second-speed core processors; assign one or more tasks to the first second-speed core processor in response to a determination that a load on a first first-speed core processor of the plurality of first-speed core processors is above a first threshold load amount; select one of the plurality of first-speed core processors based on a history of usage of the plurality of first-speed core processors; and assign one or more tasks to the selected first-speed core processor in response to a determination that a load on the first second-speed core processor is below a second threshold load amount. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A processing system comprising:
-
a plurality of first cores having a first size; a plurality of second cores having a second size larger than the first size, the number of the plurality of first cores being different from the number of the plurality of second cores; a controller coupled to the plurality of first cores and plurality of second cores; a first history log coupled to the controller and coupled to the plurality of first cores; and a second history log coupled to the controller and coupled to the plurality of second cores, wherein the controller includes a first counter configured to count numbers of accesses to the first cores, and a second counter configured to count numbers of accesses to the second cores, and the controller is configured to; receive an external request to perform a task; and assign the task to a selected core from among the plurality of first cores and plurality of second cores, the selected core selected based on at least one of information stored in the first history log and information stored in the second history log. - View Dependent Claims (33, 34, 35)
-
-
36. A system on chip comprising:
-
a plurality of first cores; a plurality of second cores different from the first cores; and a controller, wherein the controller is configured to; determine whether a first core of the plurality of first cores has sufficient resources available to perform a requested task; and when it is determined that the first core does not have sufficient resources to perform the task, select a second core from among the plurality of first cores and the plurality of second cores to perform the task, wherein the selecting depends at least in part on history information reflecting a history of usage of the plurality of first cores and plurality of second cores. - View Dependent Claims (37, 38)
-
Specification