US2020336421A1PendingUtilityA1

Optimized function assignment in a multi-core processor

49
Assignee: REX COMPUTING INCPriority: Oct 19, 2016Filed: Jun 30, 2020Published: Oct 22, 2020
Est. expiryOct 19, 2036(~10.3 yrs left)· nominal 20-yr term from priority
H04L 49/109H04L 41/145H04L 43/08G06F 15/17381H04L 41/0823H04L 45/70G06F 15/7867G06F 2119/12
49
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method and system including a computer processor; an optimization module executing on the computer processor and configured to enable the computer processor to: receive a user application, where the user application includes a set of functions; simulate execution of different configurations of the set of 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 each router implements a deterministic static priority routing policy, 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, where 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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system comprising:
 a computer processor;   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 each router implements a deterministic static priority routing policy, 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. 
   
     
     
         2 . The system of  claim 1 , wherein the optimization module is further configured to enable the computer processor to receive an identification of a high priority function of the set of functions, wherein the ranking is based on optimal network traffic patterns for the high priority function. 
     
     
         3 . The system of  claim 1 , wherein the optimization module is further configured to enable the computer processor to determine a high traffic function of the set of functions based on the monitoring, wherein the ranking is based on optimal network traffic patterns for the high traffic function. 
     
     
         4 . The system of  claim 1 , wherein the optimization module is further configured to enable the computer processor to assign a function with high outbound network traffic to a group of tiles in an area of the grid having high routing priority. 
     
     
         5 . The system of  claim 1 , wherein:
 execution of a function includes execution of a set of sub-functions by a group of tiles; and   the optimization module is further configured to enable the computer processor to arrange the set of sub-functions with particular tiles of a group of tiles executing the function for optimal performance in accordance with the static priority routing policy.   
     
     
         6 . The system of  claim 1 , wherein the optimization module is further configured to enable the computer processor to:
 determine that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and   assign execution of the first function to a first group of tiles proximate to a second group of tiles executing the second function.   
     
     
         7 . The system of  claim 1 , wherein the optimization module is further configured to enable the computer processor to:
 determine that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and   assign execution of the first function to a first group of tiles in a high routing priority area of the grid with respect to a second group of tiles executing the second function.   
     
     
         8 . The system of  claim 1 , wherein the ranking criteria comprises at least one selected from a group consisting of overall network traffic of the network-on-chip, network traffic for high priority functions, overall performance of the network-on-chip, performance for high priority functions, and overall power consumption of the network-on-chip. 
     
     
         9 . The system of  claim 1 , wherein the user application comprises at least one selected from a group consisting of source code, assembly code, and machine code. 
     
     
         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 each router implements a deterministic static priority routing policy, 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.   
     
     
         11 . The method of  claim 10 :
 further comprising receiving an identification of a high priority function of the set of functions; and   wherein the ranking is based on optimal network traffic patterns for the high priority function.   
     
     
         12 . The method of  claim 10 :
 further comprising determining a high traffic function of the set of functions based on the monitoring; and   wherein the ranking is based on optimal network traffic patterns for the high traffic function.   
     
     
         13 . The method of  claim 10 , further comprising assigning a function with high outbound network traffic to a group of tiles in an area of the grid having high routing priority. 
     
     
         14 . The method of  claim 10 :
 wherein execution of a function includes execution of a set of sub-functions by a group of tiles; and   further comprising arranging the set of sub-functions with particular tiles of a group of tiles executing the function for optimal performance in accordance with the static priority routing policy.   
     
     
         15 . The method of  claim 10 , further comprising:
 determining that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and   assigning execution of the first function to a first group of tiles proximate to a second group of tiles executing the second function.   
     
     
         16 . The method of  claim 10 , further comprising:
 determining that a group of tiles executing a first function frequently sends data packets to a group of tiles executing a second function; and   assigning execution of the first function to a first group of tiles in a high routing priority area of the grid with respect to a second group of tiles executing the second function.   
     
     
         17 . The method of  claim 10 , wherein the ranking criteria comprises at least one selected from a group consisting of overall network traffic of the network-on-chip, network traffic for high priority functions, overall performance of the network-on-chip, performance for high priority functions, and overall power consumption of the network-on-chip. 
     
     
         18 . The method of  claim 10 , wherein the user application comprises at least one selected from a group consisting of source code, assembly code, and machine code. 
     
     
         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 each router implements a deterministic static priority routing policy;   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; and   assigning execution of the high priority function to the one or more tiles with high routing priority.   
     
     
         20 . The method of  claim 19 , wherein the high priority function is a high traffic function.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.