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, wherein the one or more memory controllers and the plurality of routers are coupled in a network configuration for communication between the one or more memory controllers and the plurality of cores, and wherein the plurality of routers are interconnected to form a plurality of paths from the plurality of cores to the one or more memory controllers; and
a component configured at least to perform or control performance of operations that comprise;
assign a first priority to a first core of the plurality of cores, wherein assignment of the first priority to 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, of the one or more memory controllers, are operable at a first frequency;
assign a second priority to a second core of the plurality of cores, wherein assignment of the second priority to 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 one or more memory controllers, comprise at least one router with a maximum operable frequency less than the first frequency, and wherein the second priority is lower than the first priority;
assign a first thread to execute on the first core based on the assigned first priority and second priority to the first core and the second core respectively;
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; and
cause an unassigned core of the plurality of cores to enter a sleep state, based at least, in part, on the second determination.
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.
7 Citations
15 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, wherein the one or more memory controllers and the plurality of routers are coupled in a network configuration for communication between the one or more memory controllers and the plurality of cores, and wherein the plurality of routers are interconnected to form a plurality of paths from the plurality of cores to the one or more memory controllers; and a component configured at least to perform or control performance of operations that comprise; assign a first priority to a first core of the plurality of cores, wherein assignment of the first priority to 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, of the one or more memory controllers, are operable at a first frequency; assign a second priority to a second core of the plurality of cores, wherein assignment of the second priority to 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 one or more memory controllers, comprise at least one router with a maximum operable frequency less than the first frequency, and wherein the second priority is lower than the first priority; assign a first thread to execute on the first core based on the assigned first priority and second priority to the first core and the second core respectively; 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; and cause an unassigned core of the plurality of cores to enter a sleep state, based at least, in part, on the second determination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer readable storage medium that includes executable instructions stored thereon that, in response to execution by a computation device, cause the computation device to perform or control performance of operations that comprise:
-
assign a first priority to a first core of a plurality of cores of a processor, wherein assignment of the first priority to 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, of one or more memory controllers of the processor, are operable at a first frequency, wherein the processor comprises a plurality of routers that are arranged in a network configuration for communication between the one or more memory controllers and the plurality of cores, and that are interconnected to form a plurality of paths from the plurality of cores to the one or more memory controllers; assign a second priority to a second core of the plurality of cores, wherein assignment of the second priority to 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 one or more memory controllers, comprise at least one router with a maximum operable frequency less than the first frequency, and wherein the second priority is lower than the first priority; assign a first thread to execute on the first core based on the assigned first priority and second priority to the first core and the second core respectively; 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; and cause an unassigned core of the plurality of cores to enter a sleep state, based at least, in part, on the second determination. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification