CORE PRIORITIZATION FOR HETEROGENEOUS ON-CHIP NETWORKS
First Claim
1. A system, comprising:
- a processor comprising a plurality of cores, a plurality of routers, and one or more memory controllers communicatively coupled to the plurality of cores by the plurality of routers; and
a component configured at least to;
identify a first core of the plurality of cores, wherein the identification of the first core is based at least in part on a first determination that all routers in at least one path between the first core and at least one of the one or more memory controllers are operable at a first frequency;
identify a second core of the plurality of cores, wherein the identification of the second core is based at least in part on a second determination that all paths between the second core and a memory controller of the at least one memory controller comprise at least one router with a maximum operable frequency less than the first frequency;
assign a first thread to execute on the first core; and
assign a second thread to execute on the second core based at least in part on a determination that the first core is unavailable to execute the second thread.
4 Assignments
0 Petitions
Accused Products
Abstract
A processor may comprise a plurality of cores operating at heterogeneous frequencies communicatively coupled by a network of routers also operating at heterogeneous frequencies. A core may be prioritized for thread execution based on operating frequencies of routers on a path from the core to a memory controller. Relatively higher priority may be assigned to cores having a path comprising only routers operating at a relatively higher frequency. A combined priority for thread execution may be based on core frequency, router frequency, and the frequency of routers on a path from the core to a memory controller. A core may be selected based primarily on core operating frequency when cache misses fall below a threshold value.
-
Citations
23 Claims
-
1. A system, comprising:
-
a processor comprising a plurality of cores, a plurality of routers, and one or more memory controllers communicatively coupled to the plurality of cores by the plurality of routers; and a component configured at least to; identify a first core of the plurality of cores, wherein the identification of the first core is based at least in part on a first determination that all routers in at least one path between the first core and at least one of the one or more memory controllers are operable at a first frequency; identify a second core of the plurality of cores, wherein the identification of the second core is based at least in part on a second determination that all paths between the second core and a memory controller of the at least one memory controller comprise at least one router with a maximum operable frequency less than the first frequency; assign a first thread to execute on the first core; and assign a second thread to execute on the second core based at least in part on a determination that the first core is unavailable to execute the second thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method, comprising:
-
identifying a first core of a plurality of cores of a processor, wherein the identification of the first core is based at least in part on a first determination that all routers in at least one path between the first core and at least one of the one or more memory controllers are operable at a first frequency; and identifying a second core of the plurality of cores, wherein the identification of the second core is based at least in part on a second determination that ail paths between the second core and a memory controller of the at least one memory controller comprise at least one router with a maximum operable frequency less than the first frequency. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer readable storage medium that includes executable instructions stored thereon that, in response to execution by a computing device, cause the computing device to perform or cause to be performed at least:
-
identify a first core of a plurality of cores, wherein the identification of the first core is based at least in part on a first determination that all routers in at least one path between the first core and at least one memory controller are operable at a first frequency; identify a second core of the plurality of cores, wherein the identification of the second core is based at least in part on a second determination that all paths between the second core and a memory controller of the at least one memory controller comprise at least one router with a maximum operable frequency less than the first frequency, assign a first thread to execute on the first core; and assign a second thread to execute on the second core based at least in part on a determination that the first core is unavailable to execute the second thread. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification