Semiconductor device, application allocation system, application allocation method, and non-transitory computer-readable medium
The semiconductor device predicts CPU overload using historical patterns and reallocates tasks to prevent delays and maintain performance by using time-series models, addressing inefficiencies in existing CPU task allocation.
Patent Information
- Application Number
- JP2024062243
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-08
- Publication Date
- 2025-10-21
AI Technical Summary
Existing CPU task allocation methods in cloud systems, such as those described in Patent Document 1, lead to heavy processing loads and potential delays due to late application or task switching, or inefficient resource allocation when thresholds are set too low.
A semiconductor device with an application allocation determination unit that predicts CPU utilization exceeding a threshold by comparing current data with historical patterns, generating a change request to reallocating tasks to other CPUs before overload occurs, using time-series prediction models like ARMA, ARIMA, SARIMA, and Prophet.
This approach prevents CPU overload, reduces response delays, and maintains performance by proactively reallocating tasks, avoiding unnecessary switching processes.
Smart Images

Figure 2025159568000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a semiconductor device, an application allocation system, an application allocation method, and a non-transitory computer-readable medium for storing a program. [Background technology]
[0002] Cloud systems have a function called orchestration. Orchestration automates the configuration, management, and adjustment of applications across the computer systems that make up the cloud system, ensuring efficiency when applications are run. For this reason, orchestration is expected to be applied in a variety of fields, including automotive.
[0003] One specific technique for ensuring efficiency during application execution is a technique for determining a CPU (Central Processing Unit) to execute an application or task depending on the load state of the CPU. For example, Patent Document 1 discloses a semiconductor integrated circuit that determines a high-performance CPU as the CPU to execute a task when the CPU utilization rate exceeds a reference utilization rate (threshold value), and determines a low-performance CPU as the CPU to execute a task when the CPU utilization rate does not exceed the threshold value. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 2019-219931 Summary of the Invention [Problem to be solved by the invention]
[0005] In the technology disclosed in Patent Document 1, the CPU to which an application or task is assigned is determined depending on whether or not the CPU usage rate exceeds a threshold. That is, the assignment of an application or task is changed only after the CPU usage rate exceeds a threshold, so the CPU processing load remains heavy until the application or task assignment is switched. When the CPU processing load is heavy, delays in application execution processing are likely to occur, increasing the risk of, for example, a deterioration in user interface response.
[0006] On the other hand, it is possible to set a low threshold to prevent the CPU processing load from becoming heavy. However, lowering the threshold makes it more likely that CPU usage will exceed the threshold, and increases the frequency of switching processes to change the allocation of applications and tasks. This means that CPU resources that could otherwise be used to execute applications and tasks are allocated, leading to a decrease in performance.
[0007] Other objects and novel features will become apparent from the description of this specification and the accompanying drawings. [Means for solving the problem]
[0008] According to one embodiment, a semiconductor device includes an application allocation determination unit and an application allocation control unit. The application allocation determination unit compares the latest CPU utilization data of one of a plurality of CPUs with CPU utilization threshold pattern data to predict a state in which the CPU utilization will exceed a threshold and generates an application allocation change request. The application allocation control unit changes the allocation destination of an application assigned to one of the plurality of CPUs to another of the plurality of CPUs based on the application allocation change request. [Effects of the Invention]
[0009] According to the present disclosure, by predicting a state in which the utilization rate of one of multiple CPUs will exceed a threshold, the allocation of applications assigned to that CPU is changed to another CPU. This makes it possible to prevent CPU utilization from exceeding the threshold, thereby reducing the risk of occurrence of issues such as poor response in the user interface. Furthermore, since it is not necessary to set the threshold low, it is possible to prevent CPU resources from being allocated to switching processes that occur due to application allocation changes, thereby maintaining performance. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram showing an example of a hardware configuration of an application allocation system according to an embodiment. [Figure 2] FIG. 2 is a block diagram illustrating an example of a functional configuration of an application allocation system according to the embodiment. [Figure 3] FIG. 3 is a block diagram illustrating an example of a functional configuration of an application allocation determination unit according to the embodiment. [Figure 4] FIG. 4 is a diagram for explaining the pattern matching process. [Figure 5] FIG. 5 is a flowchart showing an example of a processing flow of the semiconductor device. [Figure 6] FIG. 6 is a flowchart showing an example of a processing flow of the server. DETAILED DESCRIPTION OF THE INVENTION
[0011] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the specification and drawings, the same or corresponding components are designated by the same reference numerals, and redundant explanations will be omitted. In addition, in the drawings, configurations may be omitted or simplified for the sake of convenience.
[0012] The program may be stored on various types of non-transitory computer-readable or tangible storage media. By way of example and not limitation, non-transitory computer-readable or tangible storage media include random access memory (RAM), read-only memory (ROM), flash memory, solid state drives (SSD) or other memory technologies, compact discs (CD)-ROMs, digital versatile discs (DVDs), Blu-ray discs or other optical disc storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices. The program may also be transmitted over various types of transitory computer-readable or communication media. By way of example and not limitation, transitory computer-readable or communication media include electrical, optical, acoustic, or other forms of propagated signals.
[0013] First, a hardware configuration of an application allocation system according to an embodiment will be described. FIG. 1 is a block diagram showing an example of the hardware configuration of an application allocation system 1 according to an embodiment. As shown in FIG. 1, the application allocation system 1 includes a semiconductor device 10 and a server 20. The semiconductor device 10 and the server 20 are configured to be able to communicate with each other via a network such as the Internet or a mobile communication system. For example, when the application allocation system 1 is applied to an in-vehicle system, the semiconductor device 10 is incorporated in an electronic control unit mounted on the vehicle, and the server 20 is used as a cloud server.
[0014] The semiconductor device 10 includes a plurality of CPUs 11, memories 12, communication devices 13, and a bus 14. The plurality of CPUs 11, memories 12, and communication devices 13 are connected to the bus 14 and can be configured to be accessible to one another via the bus 14.
[0015] Each of the multiple CPUs 11 executes an assigned application from among the multiple applications. The multiple CPUs 11 include at least CPU 11a and CPU 11b. In this disclosure, any one of the multiple CPUs 11 will be simply referred to as CPU 11.
[0016] The memory 12 may store a plurality of applications executed by the CPU 11 and a program for controlling an application allocation method. Hereinafter, the program for controlling an application allocation method executed by the CPU 11 is referred to as a first control program. The semiconductor device 10 has an input / output interface (not shown). The plurality of applications and the first control program are input to the input / output interface of the semiconductor device 10 via various types of temporary or non-temporary computer-readable media and stored in the memory 12. Note that the type of memory 12 is not particularly limited, and various types of non-temporary computer-readable media can be used.
[0017] The communication device 13 is configured to transmit data generated within the semiconductor device 10 to the server 20. The communication device 13 is also configured to receive data transmitted from the server 20.
[0018] The server 20 includes a CPU 21, a memory 22, a communication device 23, and a bus 24. The CPU 21, the memory 22, and the communication device 23 are connected to the bus 24 and can be configured to be accessible to one another via the bus 24.
[0019] The memory 22 may store a program for controlling the application allocation method executed by the CPU 21. Hereinafter, the program for controlling the application allocation method executed by the CPU 21 is referred to as a second control program. The server 20 has an input / output interface (not shown). The second control program is input to the input / output interface of the server 20 via various types of temporary or non-transitory computer-readable media and stored in the memory 22. Note that the type of memory 22 is not particularly limited, and various types of non-transitory computer-readable media can be used.
[0020] The communication device 23 is configured to transmit data generated in the server 20 to the semiconductor device 10. The communication device 23 is also configured to receive data transmitted from the semiconductor device 10.
[0021] Next, a functional configuration of an application allocation system according to an embodiment will be described below. Fig. 2 is a block diagram showing an example of the functional configuration of an application allocation system 1 according to an embodiment.
[0022] 2, the semiconductor device 10 includes an application allocation determination unit 31 and an application allocation control unit 32. Some or all of the functions of the two functional blocks, the application allocation determination unit 31 and the application allocation control unit 32, are realized by the CPU 11 executing a first control program.
[0023] The application allocation determination unit 31 is connected to the application allocation control unit 32 and the server 20. The application allocation determination unit 31 generates CPU utilization data for each of the multiple CPUs 11 and transmits it to the server 20. The CPU utilization data is data indicating the proportion of the CPU processing time occupied by a running program. A high CPU utilization means that the CPU processing load is heavy.
[0024] The application allocation determination unit 31 also receives CPU utilization threshold pattern data from the server 20. The CPU utilization threshold pattern data is data generated by analyzing the accumulated CPU utilization data of each of the multiple CPUs 11. The CPU utilization threshold pattern data will be described in detail later. The application allocation determination unit 31 compares the latest CPU utilization data of each of the multiple CPUs 11 with the CPU utilization threshold pattern data to generate an application allocation change request. The application allocation change request is a signal for requesting a change in the allocation destination of an application. Therefore, the application allocation change request includes information for identifying the application whose allocation is to be changed and information for identifying the CPU 11 to which the application is to be assigned. The generated application allocation change request is output to the application allocation control unit 32.
[0025] The application allocation control unit 32 receives an application allocation change request from the application allocation determination unit 31. Based on the application allocation change request, the application allocation control unit 32 changes the allocation destination of an application allocated to one of the multiple CPUs 11 to another of the multiple CPUs 11.
[0026] For example, when requesting that the allocation destination of application B, of applications A and B currently assigned to CPU 11a as execution destinations, be changed to CPU 11b, the application allocation change request includes information that the application to be subject to the allocation change is application B and that the allocation destination to be changed is CPU 11b. In this case, based on the application allocation change request, application allocation control unit 32 changes the allocation destination of application B, which is assigned to CPU 11a, to CPU 11b.
[0027] 2, the server 20 includes a utilization rate data storage unit 41 and a pattern analysis unit 42. Some or all of the functions of the two functional blocks, the utilization rate data storage unit 41 and the pattern analysis unit 42, are realized by the CPU 21 executing a second control program.
[0028] The utilization rate data accumulation unit 41 receives and accumulates the CPU utilization rate data of each of the multiple CPUs 11 transmitted from the semiconductor device 10. The utilization rate data accumulation unit 41 accumulates the CPU utilization rate data so that it is possible to identify which CPU 11 the accumulated CPU utilization rate data belongs to.
[0029] The pattern analysis unit 42 generates CPU utilization threshold pattern data by analyzing the CPU utilization data of each of the multiple CPUs 11 stored in the utilization data storage unit 41. The stored CPU utilization data is analyzed by predicting future CPU utilization using a time-series data prediction model.
[0030] Examples of time series data prediction models that can be used include the Auto Regressive Moving Average (ARMA) model, the Auto Regressive Integrated Moving Average (ARIMA) model, the Seasonal Auto Regressive Integrated Moving Average (SARIMA) model, and the Prophet model.
[0031] The ARMA model is an effective model for prediction when the mean and variance of the data are constant, so it is preferable to use the ARMA model when predicting future CPU usage for applications where the mean and variance of the CPU usage data are constant.
[0032] The ARIMA model is an effective model for forecasting when the mean and variance of the data are not constant, so it is preferable to use the ARIMA model when forecasting future CPU usage for applications where the mean and variance of the CPU usage data are not constant.
[0033] The SARIMA model adds seasonal periodic patterns to the ARIMA model. Therefore, it is preferable to use the SARIMA model when predicting future CPU usage for applications that have seasonal periodic patterns among those analyzed with the ARIMA model. For example, in a vehicle equipped with seat heaters, a system application runs to manage the seat heaters. Since seat heaters are primarily used in winter, the system application is expected to perform more processing in winter than in summer. In such cases, the SARIMA model is more likely to produce effective analysis results than the ARIMA model.
[0034] The Prophet model is a model that combines four different data sets. The Prophet model consists of four terms: a growth function term, a periodic function term, a holiday effect term, and an error term (noise). The growth function term corresponds to data that fluctuates monotonically over time. The periodic function term corresponds to data that fluctuates periodically and repeatedly. The holiday effect term corresponds to data that fluctuates due to irregular calendar dates. The error term corresponds to randomly fluctuating data that does not fit into any of the other three models.
[0035] In this disclosure, the Prophet model is assumed to be used with short-term cycles of one day and long-term cycles of one year. For example, when considering an in-vehicle application, in the short-term cycle, the growth function term assumes CPU usage that fluctuates over time since the application is launched. The periodic function term assumes CPU usage that fluctuates due to the same commute route being used every day at the same time. The holiday effect term assumes CPU usage that fluctuates due to irregular events such as traffic congestion on the route or driving a route that is not usually used. In addition, in the long-term cycle, the growth function term assumes CPU usage that fluctuates due to application version updates. The periodic function term assumes CPU usage that fluctuates with the seasons, as in the seat heater example mentioned above. The holiday effect term assumes CPU usage that fluctuates due to long vacation travel, etc.
[0036] The pattern analysis unit 42 predicts future CPU utilization rates using the various time-series data prediction models described above, thereby analyzing the CPU utilization rate data of each of the multiple CPUs 11. That is, in the analysis of CPU utilization rate data by the pattern analysis unit 42, future CPU utilization rates are predicted using accumulated past CPU utilization rate data.
[0037] The pattern analysis unit 42 determines whether the predicted future CPU utilization rate will exceed a threshold. Although there are no particular limitations on the threshold, it is preferable to set the threshold at a CPU utilization rate at which the CPU processing load increases and the application begins to operate unstably. For example, the threshold may be set at a CPU utilization rate of 80%.
[0038] Based on the analysis results of the future CPU utilization prediction, the pattern analysis unit 42 generates time-series fluctuation pattern data of CPU utilization that is expected to exceed the threshold in the future as CPU utilization threshold pattern data. The CPU utilization threshold pattern data is composed of time-series fluctuation pattern data of average CPU utilization per certain period of time. For example, suppose that the analysis of future CPU utilization prediction using a time-series data prediction model results in a result that if the average CPU utilization per certain period of time fluctuates between 40%, 60%, and 50%, the subsequent CPU utilization will exceed the threshold. In this case, the pattern analysis unit 42 generates time-series fluctuation pattern data in which the average CPU utilization per certain period of time fluctuates between 40%, 60%, and 50% as CPU utilization threshold pattern data.
[0039] The pattern analysis unit 42 transmits the generated CPU utilization threshold pattern data to the semiconductor device 10. The pattern analysis unit 42 may generate a plurality of pieces of CPU utilization threshold pattern data. In that case, the pattern analysis unit 42 transmits the plurality of pieces of CPU utilization threshold pattern data to the semiconductor device 10.
[0040] 3 is a block diagram showing an example of the functional configuration of the application allocation determination unit 31 according to the embodiment. As shown in FIG. 3, the application allocation determination unit 31 includes a usage rate data generation unit 311, a pattern data storage unit 312, and a pattern matching unit 313.
[0041] The utilization rate data generation unit 311 generates CPU utilization rate data for each of the multiple CPUs 11. The generated CPU utilization rate data is output to the pattern matching unit 313 and the server 20.
[0042] The pattern data storage unit 312 receives and stores the CPU utilization rate threshold pattern data transmitted from the server 20. The CPU utilization rate threshold pattern data stored in the pattern data storage unit 312 is output to the pattern matching unit 313.
[0043] The pattern matching unit 313 compares the latest CPU usage data output from the usage data generation unit 311 with the CPU usage threshold pattern data stored in the pattern data storage unit 312. The pattern matching unit 313 determines whether the results of comparing the latest CPU usage data with the CPU usage threshold pattern data match. If the pattern matching unit 313 determines that the latest CPU usage data matches the CPU usage threshold pattern data, it predicts that the CPU usage will exceed the threshold in the future.
[0044] Fig. 4 is a diagram for explaining the pattern matching process by pattern matching unit 313. In Fig. 4, the horizontal axis corresponds to time, and the vertical axis corresponds to the CPU utilization rate of CPU 11. In the example shown in Fig. 4, the data of CPU utilization rate up to time t4 is data generated by utilization rate data generation unit 311, i.e., actual measurement data. In contrast, the data after time t4 corresponds to predicted data.
[0045] As shown in Figure 4, the average CPU utilization rate from time t1 to t2 is 41%, the average CPU utilization rate from time t2 to t3 is 58%, and the average CPU utilization rate from time t3 to t4 is 51%. In other words, the fluctuations in the latest measured data for the average CPU utilization rate per unit time shown in Figure 4 are 41%, 58%, and 51%.
[0046] If the CPU utilization threshold pattern data is time-series fluctuation pattern data of average CPU utilization rates of 40%, 60%, and 50%, the pattern matching unit 313 performs pattern matching by comparing the latest CPU utilization data of 41%, 58%, and 51% with the CPU utilization threshold pattern data of 40%, 60%, and 50%. The pattern matching unit 313 does not determine an exact match, but instead determines whether the data falls within an allowable range of predicted values. If the pattern matching unit 313 determines that the latest CPU utilization data of CPU 11 (41%, 58%, and 51%) matches the CPU utilization threshold pattern data of 40%, 60%, and 50% taking into account the allowable range of predicted values (e.g., ±5%), the pattern matching unit 313 predicts that the CPU utilization of CPU 11 will exceed the threshold in the future. In the example of FIG. 4, it is assumed that the CPU utilization of CPU 11 will exceed the threshold of 80% at time t5.
[0047] Furthermore, when the pattern matching unit 313 determines that the latest CPU utilization data of any one of the multiple CPUs 11 matches the CPU utilization threshold pattern data, it determines whether or not another of the multiple CPUs 11 has a free CPU utilization rate required to execute part of the applications assigned to the CPU 11 whose CPU utilization rate is predicted to exceed the threshold. When the pattern matching unit 313 determines that another of the multiple CPUs 11 has a free CPU utilization rate required to execute part of the applications assigned to the CPU 11 whose CPU utilization rate is predicted to exceed the threshold, it generates an application allocation change request.
[0048] For example, assume that applications A and B are assigned to CPU 11a of the multiple CPUs 11, and application C is assigned to CPU 11b of the multiple CPUs 11. If the pattern matching unit 313 determines that the latest CPU usage data of CPU 11a matches the CPU usage threshold pattern data and that CPU 11b has available CPU usage to execute application B, it generates an application allocation change request including information to change the allocation of application B to CPU 11b. Note that the existence of available CPU usage refers to a state in which there is enough available CPU usage that the total value of the CPU usage after the change does not exceed the threshold, even if the application whose allocation destination is to be changed is further executed.
[0049] The application allocation change request is generated before the CPU usage exceeds the threshold. In the example shown in Fig. 4, the application allocation change request is generated between time t4 and time t5. By changing the application allocation based on the application allocation change request before the state at time t5 is reached, it is possible to reduce the CPU usage and prevent the CPU usage from actually exceeding the threshold.
[0050] In this way, the application allocation determination unit 31 generates an application allocation change request by comparing the latest CPU utilization data of any one of the multiple CPUs 11 with the CPU utilization threshold pattern data, thereby predicting a state in which the CPU utilization of that CPU 11 will exceed the threshold. Then, based on the application allocation change request, the application allocation control unit 32 changes the allocation destination of the application allocated to any one of the multiple CPUs 11 to another of the multiple CPUs 11.
[0051] Next, the processing flow of the application allocation system 1 according to the embodiment will be described with reference to Fig. 5 and Fig. 6. Fig. 5 is a flowchart showing an example of the processing flow of the semiconductor device 10. The flowchart in Fig. 5 includes seven processing steps consisting of steps S101 to S107.
[0052] In step S101, utilization data generation unit 311 generates CPU utilization data for each of the multiple CPUs 11. Utilization data generation unit 311 transmits the generated CPU utilization data to pattern matching unit 313 and server 20. There are no particular restrictions on the interval at which the CPU utilization data is transmitted to server 20. Utilization data generation unit 311 may transmit the CPU utilization data to server 20 at a predetermined interval, or may change the interval at which the CPU utilization data is transmitted to server 20 depending on the performance of CPU 11 and the type of application being executed.
[0053] In step S102, the pattern data storage unit 312 determines whether or not it has received CPU utilization rate threshold pattern data from the server 20. If the pattern data storage unit 312 determines that it has received CPU utilization rate threshold pattern data (YES in step S102), the process proceeds to step S103. On the other hand, if the pattern data storage unit 312 does not determine that it has received CPU utilization rate threshold pattern data (NO in step S102), the process returns to step S101.
[0054] In step S103, the pattern data storage unit 312 stores the CPU utilization rate threshold pattern data transmitted from the server 20.
[0055] In step S104, the pattern matching unit 313 compares the latest CPU usage data for each of the multiple CPUs 11 output from the usage data generation unit 311 with the CPU usage threshold pattern data stored in the pattern data storage unit 312. Through this comparison, the pattern matching unit 313 predicts a state in which the CPU usage will exceed the threshold. If the pattern matching unit 313 determines that the latest CPU usage data matches the CPU usage threshold pattern data (YES in step S104), it predicts that the CPU usage will exceed the threshold in the future, and the process proceeds to step S105. On the other hand, if the pattern matching unit 313 does not determine that the latest CPU usage data matches the CPU usage threshold pattern data (NO in step S104), it predicts that the CPU usage will not exceed the threshold in the future, and the process flow ends. In this case, no application allocation change process is performed.
[0056] In step S105, the pattern matching unit 313 determines whether the allocation of the application can be changed by determining the availability of CPU usage of another CPU 11 to which the application allocation will be changed. In particular, if the latest CPU usage data of any one of the multiple CPUs 11 matches the CPU usage threshold pattern data, i.e., if the CPU usage is predicted to exceed the threshold, the pattern matching unit 313 determines whether the other CPU 11 of the multiple CPUs 11 has available CPU usage required to execute part of the application allocated to the CPU 11 whose CPU usage is predicted to exceed the threshold.
[0057] If the pattern matching unit 313 determines that the other CPU 11 has a free CPU utilization rate required to execute the application whose allocation destination is to be changed (YES in step S105), the process proceeds to step S106. On the other hand, if the pattern matching unit 313 does not determine that the other CPU 11 has a free CPU utilization rate required to execute the application whose allocation destination is to be changed (NO in step S105), the process flow ends, and the process of changing the allocation of the application is not performed.
[0058] In step S106, the pattern matching unit 313 generates an application allocation change request, which includes information on the application to be changed in allocation and information on the CPU 11 to which the allocation is to be changed.
[0059] In this way, in steps S104 and S106, the pattern matching unit 313 compares the latest CPU utilization data of each of the multiple CPUs with the CPU utilization threshold pattern data to generate an application allocation change request. The pattern matching unit 313 also compares the latest CPU utilization data of each of the multiple CPUs with the CPU utilization threshold pattern data to predict a state in which the CPU utilization will exceed the threshold in the future. Based on the result of this prediction, an application allocation change request is generated.
[0060] In step S107, based on the application allocation change request, the application allocation control unit 32 changes the allocation destination of the application currently allocated to one of the multiple CPUs 11 to another of the multiple CPUs 11. This completes the series of processing flows shown in FIG.
[0061] Fig. 6 is a flowchart showing an example of the processing flow of the server 20. The flowchart in Fig. 6 includes four processing steps consisting of steps S201 to S204.
[0062] In step S201, the utilization rate data storage unit 41 receives CPU utilization rate data for each of the plurality of CPUs 11 from the semiconductor device 10. The utilization rate data storage unit 41 stores the received CPU utilization rate data.
[0063] In step S202, the pattern analysis unit 42 accesses the CPU utilization data for each of the multiple CPUs 11 stored in the utilization data storage unit 41, analyzes the stored CPU utilization data for each of the multiple CPUs 11, and generates CPU utilization threshold pattern data. The pattern analysis unit 42 analyzes the CPU utilization data by predicting future CPU utilization using a time-series data prediction model. Based on the results of the analysis, the pattern analysis unit 42 generates a time-series fluctuation pattern of CPU utilization that is expected to exceed the threshold in the future as CPU utilization threshold pattern data.
[0064] In step S203, the pattern analysis unit 42 determines whether or not the CPU utilization threshold pattern data needs to be updated. Here, if the CPU utilization threshold pattern data generated this time is identical to the CPU utilization threshold pattern data already transmitted to the semiconductor device 10 in a past process, it is determined that the CPU utilization threshold pattern data does not need to be updated. On the other hand, if the CPU utilization threshold pattern data generated this time is not identical to the CPU utilization threshold pattern data already transmitted to the semiconductor device 10 in a past process, it is determined that the CPU utilization threshold pattern data needs to be updated.
[0065] If the pattern analysis unit 42 determines that the CPU utilization threshold pattern data needs to be updated (YES in step S203), the process proceeds to step S204. On the other hand, if the pattern analysis unit 42 does not determine that the CPU utilization threshold pattern data needs to be updated (NO in step S203), the process returns to step S201.
[0066] In step S204, the pattern analysis unit 42 transmits the CPU utilization rate threshold pattern data determined to require updating to the semiconductor device 10. This completes the series of processing flows shown in FIG.
[0067] As described above, according to the embodiment of the present disclosure, the application allocation determination unit 31 compares the CPU utilization data with the CPU utilization threshold pattern data to predict a state in which the CPU utilization will exceed the threshold and generates an application allocation change request. Based on the application allocation change request, the application allocation control unit 32 changes the allocation of applications from the CPU 11 whose CPU utilization is predicted to exceed the threshold to another CPU 11. The application allocation change process is executed before the CPU utilization actually exceeds the threshold, thereby reducing the risk of occurrence of a deterioration in user interface response, etc. Furthermore, setting a low threshold does not prevent a state in which the CPU utilization will remain high. Therefore, it is possible to prevent CPU resources from being allocated to a switching process required to change the application allocation, thereby maintaining performance.
[0068] In the above-described embodiment, since it is necessary to accumulate and analyze CPU utilization data over a long period of time, a configuration has been described in which the functions of the utilization data accumulation unit 41 and the pattern analysis unit 42 are realized on the server 20 side, but the present invention is not limited to this. For example, if sufficient resources can be secured on the semiconductor device 10 side (edge side), the functions of the utilization data accumulation unit 41 and the pattern analysis unit 42 may be provided on the semiconductor device 10 side.
[0069] The invention made by the inventor has been specifically described above based on the embodiments, but it goes without saying that the present invention is not limited to the embodiments already described, and various modifications are possible within the scope of the gist of the invention. [Explanation of symbols]
[0070] 1: Application Allocation System 10: Semiconductor device 11, 11a, 11b, 21: CPU 12,22:Memory 13, 23: Communication equipment 14,24: Bus 20: Server 31: Application allocation determination unit 311: Usage data generation unit 312: Pattern data storage section 313: Pattern matching section 32: Application allocation control unit 41: Usage data storage unit 42: Pattern analysis section
Claims
1. A semiconductor device including a plurality of CPUs each executing an assigned application among a plurality of applications, an application allocation determination unit that compares the latest CPU utilization data of each of the plurality of CPUs with CPU utilization threshold pattern data and generates an application allocation change request; an application allocation control unit that changes an allocation destination of an application currently allocated to one of the plurality of CPUs to another of the plurality of CPUs based on the application allocation change request; Equipped with the CPU utilization threshold pattern data is generated by analyzing accumulated CPU utilization data for each of the plurality of CPUs; the application allocation determination unit compares the latest CPU utilization data of the one of the CPUs with the CPU utilization threshold pattern data to predict a state in which the CPU utilization of the one of the CPUs will exceed a threshold, and generates the application allocation change request. Semiconductor device.
2. 2. The semiconductor device according to claim 1, The CPU utilization threshold pattern data is time-series fluctuation pattern data of an average CPU utilization per fixed time period. Semiconductor device.
3. 2. The semiconductor device according to claim 1, the accumulated CPU utilization data is analyzed by performing a future CPU utilization prediction using a time series data prediction model; The CPU utilization threshold pattern data is time-series fluctuation pattern data of the CPU utilization that is expected to exceed the threshold in the future. Semiconductor device.
4. 2. The semiconductor device according to claim 1, The application allocation determination unit a utilization rate data generating unit that generates CPU utilization rate data for each of the plurality of CPUs; a pattern data storage unit for storing the CPU utilization rate threshold pattern data; a pattern matching unit that compares the latest CPU utilization data output from the utilization data generation unit with the CPU utilization threshold pattern data stored in the pattern data storage unit; Equipped with Semiconductor device.
5. 5. The semiconductor device according to claim 4, the pattern matching unit generates the application allocation change request when a result of comparing the latest CPU utilization rate data with the CPU utilization rate threshold pattern data shows a match and the other CPU has a free CPU utilization rate required to execute a part of the application allocated to any one of the CPUs. Semiconductor device.
6. 5. The semiconductor device according to claim 4, a utilization rate data storage unit that stores the CPU utilization rate data of each of the plurality of CPUs output from the utilization rate data generation unit; a pattern analysis unit that analyzes the CPU utilization rate data of each of the plurality of CPUs stored in the utilization rate data storage unit and generates the CPU utilization rate threshold pattern data; Further provided with Semiconductor device.
7. 2. The application allocation system of claim 1, a semiconductor device according to claim 1; a server accessed by the semiconductor device via a network; Equipped with The server a utilization rate data storage unit that stores CPU utilization rate data of each of the plurality of CPUs transmitted from the semiconductor device; a pattern analysis unit that analyzes the CPU utilization rate data of each of the plurality of CPUs stored in the utilization rate data storage unit and generates the CPU utilization rate threshold pattern data; Equipped with Application allocation system.
8. 8. The application allocation system of claim 7, the pattern analysis unit analyzes the CPU utilization data of each of the plurality of CPUs by predicting future CPU utilization using a time-series data prediction model, and generates, as the CPU utilization threshold pattern data, a time-series fluctuation pattern of the CPU utilization that is expected to exceed a threshold in the future; Application allocation system.
9. 1. An application allocation method executed in a semiconductor device having a plurality of CPUs that respectively execute assigned applications among a plurality of applications, the method comprising: generating CPU utilization data for each of the plurality of CPUs; accumulating the generated CPU utilization data for each of the plurality of CPUs; analyzing the accumulated CPU utilization data of each of the plurality of CPUs to generate CPU utilization threshold pattern data; comparing the latest CPU utilization data of each of the plurality of CPUs with the CPU utilization threshold pattern data to generate an application allocation change request; changing an allocation destination of an application currently allocated to one of the plurality of CPUs to another of the plurality of CPUs based on the application allocation change request; Equipped with the step of generating the application allocation change request includes a step of predicting a state in which the CPU utilization of the one of the CPUs will exceed a threshold by comparing latest CPU utilization data of the one of the CPUs with the CPU utilization threshold pattern data; the application allocation change request is generated based on a result of the execution of the predicting step. Application allocation method.
10. 10. The application allocation method of claim 9, further comprising: The CPU utilization threshold pattern data is time-series fluctuation pattern data of an average CPU utilization per fixed time period. Application allocation method.
11. 10. The application allocation method of claim 9, further comprising: The step of generating the CPU utilization threshold pattern data includes: A step of predicting future CPU utilization using a time-series data prediction model; generating a time-series fluctuation pattern of CPU utilization that is expected to exceed the threshold in the future as the CPU utilization threshold pattern data; Including, Application allocation method.
12. 10. The application allocation method of claim 9, further comprising: The step of generating an application allocation change request includes: determining whether the other CPU has a free CPU utilization rate required to execute a portion of the application assigned to the one CPU; generating the application allocation change request when a result of comparing the latest CPU utilization data with the CPU utilization threshold pattern data shows a match and the other CPU has a free CPU utilization required to execute a part of the application allocated to any one of the CPUs; further comprising: Application allocation method.
13. 1. A non-transitory computer-readable medium storing a program for causing a semiconductor device including a plurality of CPUs that respectively execute assigned applications among a plurality of applications to execute an application assignment method, the application assignment method comprising: generating CPU utilization data for each of the plurality of CPUs; accumulating the generated CPU utilization data for each of the plurality of CPUs; analyzing the accumulated CPU utilization data of each of the plurality of CPUs to generate CPU utilization threshold pattern data; comparing the latest CPU utilization data of each of the plurality of CPUs with the CPU utilization threshold pattern data to generate an application allocation change request; changing an allocation destination of an application currently allocated to one of the plurality of CPUs to another of the plurality of CPUs based on the application allocation change request; Equipped with the step of generating the application allocation change request includes a step of predicting a state in which the CPU utilization of the one of the CPUs will exceed a threshold by comparing latest CPU utilization data of the one of the CPUs with the CPU utilization threshold pattern data; the application allocation change request is generated based on a result of the execution of the predicting step. Non-transitory computer-readable medium.
14. 14. The non-transitory computer-readable medium of claim 13, The CPU utilization threshold pattern data is time-series fluctuation pattern data of an average CPU utilization per fixed time period. Non-transitory computer-readable medium.
15. 14. The non-transitory computer-readable medium of claim 13, The step of generating the CPU utilization threshold pattern data includes: A step of predicting future CPU utilization using a time-series data prediction model; generating a time-series fluctuation pattern of CPU utilization that is expected to exceed the threshold in the future as the CPU utilization threshold pattern data; Including, Non-transitory computer-readable medium.
16. 14. The non-transitory computer-readable medium of claim 13, The step of generating an application allocation change request includes: determining whether the other CPU has a free CPU utilization rate required to execute a portion of the application assigned to the one CPU; generating the application allocation change request when a result of comparing the latest CPU utilization data with the CPU utilization threshold pattern data shows a match and the other CPU has a free CPU utilization required to execute a part of the application allocated to any one of the CPUs; further comprising: Non-transitory computer-readable medium.
Citation Information
Patent Citations
Semiconductor integrated circuit, assigning method of CPU, and program
JP2019219931A