A multi-processor system includes a plurality of processors, a scheduler, and a selector. Each of the plurality of processors is included in at least one of a plurality of domains. The plurality of domains include three or more domains and are defined based on a hierarchical domain structure. The scheduler receives and manages at least one task performed by the plurality of processors. The selector selects one of the plurality of domains based on states of the plurality of domains to assign the at least one task to the selected domain, and selects at least one processor among processors in the selected domain based on states of the processors in the selected domain to assign the at least one task to the selected processor, when the at least one task is received.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A multi-processor system comprising: a plurality of processors, each of which is included in at least one of a plurality of domains, wherein the plurality of domains include three or more domains and are defined based on a hierarchical domain structure; a scheduler configured to receive and manage at least one task performed by the plurality of processors; and a selector configured to select one of the plurality of domains based on states of the plurality of domains to assign the at least one task to the selected domain, and to select at least one processor among processors in the selected domain based on states of the processors in the selected domain to assign the at least one task to the selected processor, when the at least one task is received, and wherein the selector is configured to select a domain including a current domain when the at least one task is unprocessable by the current domain.
2. The multi-processor system of claim 1 , wherein, when a first task is received, the selector is configured to: check a state of the current domain among the plurality of domains, assign the first task to the current domain when it is determined that the first task is processable by the current domain, and assign the first task to the domain among the plurality of domains other than the current domain when it is determined that the first task is unprocessable by the current domain, wherein the domain is immediately subsequent to and directly including the current domain.
3. The multi-processor system of claim 2 , wherein: the state of the current domain includes at least one of utilization of the current domain and load of the current domain, and the selector is configured to determine whether the first task is processable by the current domain based on at least one of the state of the current domain, utilization by the first task, and a priority of the first task.
4. The multi-processor system of claim 2 , wherein the selector is configured to assign the first task to a smallest domain among the plurality of domains when the first task is an initial task.
5. The multi-processor system of claim 1 , wherein, when a first task is received, the selector is configured to: check the states of all of the plurality of domains, and assign the first task to an optimized domain among the plurality of domains by which the first task is processable.
6. The multi-processor system of claim 1 , wherein, when a first task is received and assigned to a first domain among the plurality of domains, the selector is configured to: check states of first processors in the first domain among the plurality of processors, and assign the first task to an idle processor having an idle state among the first processors.
7. The multi-processor system of claim 6 , wherein the selector is configured to assign the first task to a processor having a smallest load among the first processors when all of the first processors have an active state.
8. The multi-processor system of claim 7 , wherein the selector is configured to assign the first task to a processor firstly defined in the first domain among the first processors when all of the first processors have an active state and a same load.
9. The multi-processor system of claim 1 , further comprising: a domain definer configured to define the hierarchical domain structure based on first information representing characteristics of the plurality of processors and second information associated with the plurality of domains, such that each of the plurality of processors is included in at least one of the plurality of domains.
10. The multi-processor system of claim 9 , wherein: the plurality of domains include a first domain, a second domain, and a third domain, the plurality of processors include a first processor, a second processor, and a third processor, and the domain definer is configured to define the hierarchical domain structure such that the second domain includes the first domain, the third domain includes the second domain, the first domain includes the first processor, the second domain includes the first processor and the second processor, and the third domain includes the first processor, the second processor, and the third processor.
11. The multi-processor system of claim 10 , wherein one of the first domain, the second domain, and the third domain corresponds to one power domain.
12. The multi-processor system of claim 10 , wherein one of the first domain, the second domain, and the third domain corresponds to two or more different power domains.
13. The multi-processor system of claim 10 , wherein the first processor, the second processor, and the third processor are included in a first cluster, a second cluster, and a third cluster, respectively, and the first cluster, the second cluster, and the third cluster are different from one another.
14. The multi-processor system of claim 10 , wherein at least two of the first processor, the second processor, and the third processor are included in a same cluster.
15. The multi-processor system of claim 9 , wherein the hierarchical domain structure is changeable by the domain definer in response to a user setting signal.
16. The multi-processor system of claim 9 , further comprising: a memory configured to store the first information, the second information, and third information representing the hierarchical domain structure.
17. The multi-processor system of claim 9 , wherein the selector is disabled based on a user setting signal.
18. A method of operating a multi-processor system that includes a plurality of processors, the method comprising: selecting one of a plurality of domains based on states of the plurality of domains to assign at least one task to the selected domain, when the at least one task is received, wherein (1) each of the plurality of processors is included in at least one of the plurality of domains, (2) the plurality of domains include three or more domains and are defined based on a hierarchical domain structure where each domain includes all lower level domains, and (3) the selected domain includes a current domain when the at least one task is unprocessable by the current domain; and selecting at least one processor among processors in the selected domain based on states of the processors in the selected domain to assign the at least one task to the selected processor.
19. The method of claim 18 , further comprising: defining the hierarchical domain structure based on first information representing characteristics of the plurality of processors and second information associated with the plurality of domains, such that each of the plurality of processors is included in at least one of the plurality of domains.
20. A multi-core processing device comprising: a plurality of processor cores, each of which is included in at least one of a plurality of domains, wherein the plurality of domains include three or more domains and are defined based on a hierarchical domain structure; a scheduler configured to receive and manage at least one task performed by the plurality of processor cores; and a selector configured to select one of the plurality of domains based on states of the plurality of domains to assign the at least one task to the selected domain, and to select at least one processor core among processor cores in the selected domain based on states of the processor cores in the selected domain to assign the at least one task to the selected processor core, when the at least one task is received, wherein, the selected domain includes a current domain when the at least one task is unprocessable by the current domain; and when a first task is received and assigned to a first domain among the plurality of domains, the selector is configured to check states of first processors in the first domain among the plurality of processors, assign the first task to an idle processor having an idle state among the first processors, assign the first task to a processor having a smallest load among the first processors when all of the first processors have an active state, and assign the first task to a processor firstly defined in the first domain among the first processors when all of the first processors have an active state and a same load.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 11, 2019
March 23, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.