Optimized function assignment in a multi-core processor
DCFirst Claim
1. A system comprising:
- a computer processor; and
an optimization module executing on the computer processor and configured to enable the computer processor to;
receive a user application, wherein the user application includes a set of functions;
simulate execution of different configurations of the set of functions on a multi-core microprocessor chip, wherein;
the multi-core microprocessor chip comprises a set of tiles arranged in a grid configuration, wherein each tile comprises a processor core and a corresponding router, wherein each router;
is communicatively coupled with at least one other router to form a network-on-chip, andimplements the same deterministic static priority routing policy, wherein the deterministic static priority routing policy comprises assigning unchanging priority levels to the input ports of the router and routing outbound data in accordance with the unchanging priority levels, andthe different configurations include execution of the set of functions by different groups of tiles;
monitor network traffic patterns of the execution of the different configurations;
rank the different configurations according to ranking criteria, wherein the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and
select an optimal configuration of the different configurations based on the ranking.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A system including an optimization module executing on and configured to enable a computer processor to: receive a user application including a set of functions and simulate execution of different configurations of the functions on a multi-core microprocessor chip, where: the multi-core microprocessor chip includes a set of tiles arranged in a grid configuration, where each tile includes a processor core and a corresponding router, where each router is communicatively coupled with at least one other router to form a network-on-chip and implements a deterministic static priority routing policy, and the different configurations include execution of the functions by different groups of tiles. The computer processor is further enabled to monitor network traffic patterns of the execution of the different configurations; rank the different configurations based on the corresponding network traffic patterns; and select an optimal configuration of the different configurations based on the ranking.
45 Citations
20 Claims
-
1. A system comprising:
-
a computer processor; and an optimization module executing on the computer processor and configured to enable the computer processor to; receive a user application, wherein the user application includes a set of functions; simulate execution of different configurations of the set of functions on a multi-core microprocessor chip, wherein; the multi-core microprocessor chip comprises a set of tiles arranged in a grid configuration, wherein each tile comprises a processor core and a corresponding router, wherein each router; is communicatively coupled with at least one other router to form a network-on-chip, and implements the same deterministic static priority routing policy, wherein the deterministic static priority routing policy comprises assigning unchanging priority levels to the input ports of the router and routing outbound data in accordance with the unchanging priority levels, and the different configurations include execution of the set of functions by different groups of tiles; monitor network traffic patterns of the execution of the different configurations; rank the different configurations according to ranking criteria, wherein the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and select an optimal configuration of the different configurations based on the ranking. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
receiving a user application, wherein the user application includes a set of functions; simulating execution of different configurations of the set of functions on a multi-core microprocessor chip, wherein; the multi-core microprocessor chip comprises a set of tiles arranged in a grid configuration, wherein each tile comprises a processor core and a corresponding router, wherein each router; is communicatively coupled with at least one other router to form a network-on-chip, and implements the same deterministic static priority routing policy, wherein the deterministic static priority routing policy comprises assigning unchanging priority levels to the input ports of the router and routing outbound data in accordance with the unchanging priority levels, and the different configurations include execution of the set of functions by different groups of tiles; monitoring network traffic patterns of the execution of the different configurations; ranking the different configurations according to ranking criteria, wherein the ranking criteria is used to rank each of the different configurations based on the corresponding network traffic patterns; and selecting an optimal configuration of the different configurations based on the ranking. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
-
receiving a user application, wherein the user application includes a set of functions to be executed by a multi-core microprocessor chip, wherein the multi-core microprocessor chip comprises a set of tiles each including a processor core and a corresponding router, wherein each router; is communicatively coupled with at least one other router to form a network-on-chip grid, and implements the same deterministic static priority routing policy, wherein the deterministic static priority routing policy comprises assigning unchanging priority levels to the input ports of the router and routing outbound data in accordance with the unchanging priority levels; receiving an identification of a high priority function of the set of functions; identifying one or more tiles with high routing priority according to the static priority routing policy; assigning execution of the high priority function to the one or more tiles with high routing priority; and executing the high priority function in accordance with the assignment. - View Dependent Claims (20)
-
Specification