Controller and method for handling configuration change of a computing device

A controller dynamically adjusts CPU configurations based on traffic state changes using machine learning, addressing inefficiencies in existing static optimization methods by optimizing energy and performance in computing devices.

WO2026008153A1PCT designated stage Publication Date: 2026-01-08TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/068928
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-04
Publication Date
2026-01-08

AI Technical Summary

Technical Problem

Existing energy and performance optimization tools for computing devices, such as TuneD and Kubernetes, are static and require rebooting when CPU cores are disabled, leading to inefficiencies and suboptimal energy usage, especially in modern CPU architectures where frequency changes can occur in nanoseconds.

Method used

A controller and method that dynamically adjust CPU fabric frequency and other configuration parameters based on real-time traffic state changes, using machine learning models to determine optimal configurations tailored to current traffic needs.

Benefits of technology

This approach enables energy savings and performance improvements by optimizing CPU utilization according to traffic demands, extending device lifespan and maintaining performance intent.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024068928_08012026_PF_FP_ABST
    Figure EP2024068928_08012026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to a computer-implemented method performed by a controller (201) for handling configuration change of a computing device (200). The controller (201) determines that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device (200). The controller (201) determines a second configuration for the computing device (200) based on the state change. The controller (201) triggers an implementation of the second configuration in the computing device (200) such that there is a change from a first configuration currently implemented in the computing device (200) to the second configuration.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CONTROLLER AND METHOD FOR HANDLING CONFIGURATION CHANGE OF A

[0002] COMPUTING DEVICE

[0003] TECHNICAL FIELD

[0004] The present disclosure relates generally to a controller and a computer-implemented method performed by the controller. More particularly, the present disclosure relates to handling configuration change of a computing device.

[0005] BACKGROUND

[0006] In computer technology, energy and performance optimization is important. It is important for several aspects, for example cost, environmental, operational and competitive reasons, just to mention some examples. The configuration of computing devices is one parameter that plays a role in energy and performance optimization.

[0007] TuneD is a known tool for energy and performance optimization. It optimizes energy and performance by adjusting various parameters. For example, it may use parameters such as power management profiles to manage Central Processing Unit (CPU) core power per use case. Kubernetes is another tool which performs power management by using power management profiles to manage CPU core power per use case.

[0008] CPU core frequency and CPU fabric frequency are two main contributors to the amount of energy used in a computing device to handle incoming traffic. Fig. 1 is a schematic drawing illustrating a current CPU architecture. The CPU 100 comprises n number of CPU cores 101_n, where n is a positive integer. Each CPU core 101_n may be in a certain state. The states are power management states and used by the CPU core 101_n to balance performance and energy efficiency. A first state may be a performance state and a second state may be an executing state, and the CPU core 101_n may be in any of these states. Note that there may be other additional states not mentioned herein. Each CPU core 101_n has its own frequency and then there is a common frequency domain called CPU fabric frequency 103 that is shared by all CPU cores 101_n. The CPU fabric frequency 103 is a parameter representing the operating speed of the CPU 100. The CPU fabric frequency 103 is the same across the whole CPU 100, i.e. it is not different for individual CPU cores 101_n. A Network Interface Card (NIC) 108 and a Dynamic Random-Access Memory (DRAM) 110 are connected to the CPU 100. The NIC 108 is arranged to enable network connectivity and the DRAM 110 is arranged to store data.

[0009] In older architectures, the delay in the change of CPU fabric frequency 103 may take up to half a millisecond. The newer architectures have reduced this delay to nanoseconds.

[0010] TuneD and Kubernetes power management, as mentioned above, use power management profiles that are static, and they would have no effect if the CPU cores 101_n are required to be in executing state at all times. In addition, if power management is done statically through Kubernetes profiles, if a CPU 100 is disabled, a reboot is required to turn it back on.

[0011] Therefore, there is a need to further improve energy and performance optimization in a computing device.

[0012] SUMMARY

[0013] An objective of the present disclosure is to obviate at least one of the above disadvantages to improve energy and performance optimization of a computing device. A further objective of the present disclosure is to provide methods and a controller for improving the handling of configuration change of a computing device to thereby optimize energy and performance of the computing device.

[0014] According to a first aspect of present disclosure, there is provided a computer- implemented method performed by a controller for handling configuration change of a computing device. The method comprises determining that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device. The method comprises determining a second configuration for the computing device based on the state change. The method comprises triggering an implementation of the second configuration in the computing device such that there is a change from a first configuration currently implemented on the computing device to the second configuration.

[0015] According to a second aspect of the present disclosure, there is provided a controller for handling configuration change of a computing device. The controller is arranged to determine that there has been a state change between a first state for handling traffic state and a second state for not handling traffic in the computing device. The controller is arranged to determine a second configuration of the computing device based on the state change. The controller is arranged to trigger an implementation of the second configuration in the computing device such that there is a change from a first configuration currently implemented on the computing device to the second configuration.

[0016] According to a third aspect of the present disclosure, the objective is achieved by a computer program product comprising program code for performing, when executed by a processing circuitry, the method of the first aspect.

[0017] According to a fourth aspect of the present disclosure, the objective is achieved by a non-transitory computer-readable storage medium comprising instructions, which when executed by a processing circuitry, cause the processing circuitry to perform the method of the first aspect.

[0018] Since the state change is taken into account, a second configuration can be determined which may be considered an optimal configuration or a more optimal configuration compared to the first configuration for example in relation to energy and performance optimization in the computing device. Thus, the handling of configuration change of a computing device is improved.

[0019] The present disclosure herein affords many advantages, of which a non-exhaustive list of examples follows:

[0020] An advantage of the present disclosure is that it achieves energy savings tailored to the amount of CPU fabric utilization needed as well as differentiating on quality-of-service requirements. Since changing CPU fabric frequency takes nanoseconds with the new generation of CPU architectures, energy can be saved even at maximum traffic speed.

[0021] Another advantage of the present disclosure is that it increases performance because the CPU cores can run faster, e.g. handle more traffic, based on the energy that has been saved through changing the configuration based on the state change. Yet another advantage of the present disclosure is that it provides a dynamic solution.

[0022] That is, different learned configurations can be applied according to current traffic needs while maintaining performance according to an intent.

[0023] A further advantage of the present disclosure is that it provides a general solution. That is, the optimization can be performed based on an intent.

[0024] Another advantage of the present disclosure is that optimizations can be made based on metrics from all levels of the stack, from hardware, cloud infrastructure to applications.

[0025] Yet another advantage of the present disclosure is that it prolongs the lifetime of the computing device, e.g. CPUs, by reducing energy consumption.

[0026] The present disclosure is not limited to the features and advantages mentioned above. A person skilled in the art will recognize additional features and advantages upon reading the following detailed description.

[0027] BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The present disclosure will now be described in more detail by way of example only in the following detailed description by reference to the appended drawings in which:

[0029] Fig. 1 is a schematic block diagram illustrating a current CPU architecture.

[0030] Fig. 2 is a schematic block diagram illustrating a computing device.

[0031] Fig. 3 is a flow chart illustrating a method for a controller.

[0032] Fig. 4 is a schematic drawing illustrating a computing device.

[0033] Fig. 5 is a flow chart illustrating a method for a controller.

[0034] Fig. 6 is a flow chart illustrating a method for a lookup function manager.

[0035] Fig. 7 is a flow chart illustrating a method for a controller.

[0036] Fig. 8 is a schematic drawing illustrating a controller.

[0037] The drawings are not necessarily to scale and the dimensions of certain features may have been exaggerated for the sake of clarity. Emphasis is instead placed upon illustrating the principle of the embodiments herein. DETAILED DESCRIPTION

[0038] Fig. 2 is a schematic drawing illustrating a computing device 200. The computing device 200 comprises a controller 201. The controller 201 may be referred to as a governor.

[0039] The computing device 200 may be comprised in any suitable entity, for example a User Equipment (UE), a network node, a Personal Computer (PC), a laptop etc., just to mention some examples. The UE may be any of a wide variety of communication devices for example a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage / playback device, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), an Augmented Reality (AR) or Virtual Reality (VR) device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE. The network node may be a core network node or an access node. Examples of network nodes comprise access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU). Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).

[0040] The computing device 200 may be implemented as a virtual component executed by one or more virtual machines (VMs) implemented in one or more virtual environments hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host Virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources.

[0041] The computing device 200 comprises n number of computer applications 208, where n is a positive integer. The computer application 208 may be any suitable computer application arranged to be implemented on the computing device 200 and arranged to handle traffic in the computing device 200, for example Policy Gateway Control (PCG) application, Policy and Charging Control (PCC) application, Cross Carrier Dynamic Multiple Input Multiple Output (CCDM) application, Network Data Analytics Function (NWDAF), just to mention some examples. The traffic may be referred to as events, packets, data etc. The traffic may be of a traffic type, for example, uplink traffic, downlink traffic, video streaming traffic, email traffic, http traffic, ftp traffic etc.

[0042] The computing device 200 comprises a processing unit 210. The processing unit 210 may be the CPU 100 or the CPU core 101_n in fig. 1. Fig. 2 only shows one processing unit 210 for the sake of simplicity, but the computing device 200 may comprise any m number of processing units 210, where m is a positive integer. The processing unit 210 may be referred to as a CPU, a processor, a processor core, a CPU core, just to mention some examples.

[0043] The computing device 200 may comprise other entities such as a network interface, a state change detector and a traffic monitor (not illustrated in fig. 2). Traffic may be received by the computing device 200 via the network interface. A state change detector may be arranged to detect that the computing device 200 receives traffic. The state change detector may be referred to as a burst detector. The traffic monitor may be arranged to monitor and analyze the detected traffic over time. The states that may be detected may be a first state for handling traffic and a second state for not handling traffic.

[0044] The computing device 200 has a configuration. The configuration may be referred to as a CPU configuration. The configuration may comprise a fabric frequency, also referred to as a CPU frequency. The fabric frequency is only an example of a parameter in the configuration. The configuration may comprise other parameters, for example core frequency, cache size, uncore memory bandwidth, CPU affinity etc., and these parameters may be different in different configurations. The configuration currently implemented in the computing device 200 may be a first configuration and the first configuration may be changed to a second configuration based on detection of a state change in the computing device 200. When the computing device 200 has a certain configuration, it may mean that each processing unit 210 (in case of multiple processing units 210) comprised in the computing device 200 have the same configuration, or that each processing unit 210 have different configurations, or that at least one processing unit 210 has a different configuration than the others. If each processing unit 210 have different configurations or at least one processing unit 210 has a different configuration than the others, then the configuration of the computing device 200 may comprise configurations for each processing unit 210, e.g. sub-configurations.

[0045] Fig. 3 is a flow chart illustrating a computer-implemented method performed by the controller 201 for handling configuration change of a computing device 200. The method comprises at least one of the following steps, which steps may be performed in any suitable order than described below:

[0046] 301 The controller 201 determines that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device 200.

[0047] 302 The controller 201 determines a second configuration for the computing device 200 based on the state change.

[0048] 303 The controller 201 triggers an implementation of the second configuration in the computing device 200 such that there is a change from a first configuration currently implemented in the computing device 200 to the second configuration.

[0049] Fig. 4 is another schematic drawing illustrating the computing device 200. Compared to fig. 2, fig. 4 illustrates more details of the computing device 200.

[0050] As seen in both fig. 2 and fig. 4, the computing device 200 comprises a controller 201.

[0051] The controller 201 may be referred to as a governor. The computing device 200 comprises at least one computer application 208. Fig. 4 shows an example with two computer applications 208a, 208b. When the reference number 208 is used without the letters a or b, it refers to any of the computer applications shown in figs. 2 and 4.

[0052] As seen in fig. 4, the computing device 200 may comprise a traffic monitor 401 and a state change detector 405. The state change detector 405 may be referred to as a burst detector. These entities are not illustrated in fig. 2 but may still be present in the computing device 200 of fig. 2. Fig. 4 shows two traffic monitors 401a, 401b and two state change detectors 405a, 405b. When the reference number 401 is used without the letters a or b, it refers to any of the traffic monitors shown in fig. 4, and similarly for the reference number 405. The traffic monitor 401 and the state change detector 405 may be created based on Data Plane Development Kit (DPDK). The traffic monitor 401 and the state change detector 405 may support the controller 201 , e.g., by providing input information to the controller 201 , to apply a second configuration in the computing device 200, e.g. to apply the optimal configuration.

[0053] Fig. 4 shows that the computing device 200 may comprise a host OS 410. The host OS may implement an Internet Protocol (IP) 413.

[0054] Traffic may be received by the computing device 200 via a NIC 108. Fig. 4 illustrates two NICs 108a, 108b, which represent two alternative paths that the incoming traffic may take, i.e. either the right path or the left path. When the reference number 108 is used without the letters a and b, it refers to any of the NICs 108 shown in fig. 4.

[0055] Right path: In the right path, traffic is received by the computing device 200 via the right NIC 108a and transmitted further to the right computer application 208a. The traffic may be referred to as events, packet etc. When the traffic is received by the computing device 200, it’s state changes from a second state for not handling traffic to a first state for handling traffic and this state change is detected by the state change detector 405a. The state change detector 405a may be arranged to detect the presence of incoming traffic in real time. The traffic monitor 401a may be arranged to monitor and analyze the received traffic. The state change detector 405a may be referred to as a burst detector, traffic detector, event detector etc. The controller 201 may be arranged to receive information about the state change from the state change detector 405a and measurement information from the traffic monitor 401a. Left path: In the left path, the traffic is received by the computing device 200 via the left NIC 108b. The traffic passes the host OS 410 before reaching the left computer application 208b. Similar to the right path, the state change caused by the received traffic may be detected by the state change detector 405b and the traffic monitor 401b may monitor and analyze the received traffic. The controller 201 may be arranged to receive information about the state change from the state change detector 405a and measurement information from the traffic monitor 401a. In the left path, the traffic monitor 401b and the state change detector 405b are located outside the computer application 208b, while they are located inside the computer application 208a in the right path.

[0056] Some differences between the right path and left path are as follows:

[0057] • State change detector 405a, 405b: o Right path: Located in the computer application 208a o Left path: Located between the host OS 410 and the controller 201. Not located in the computer application 208b.

[0058] • T raffic monitor 401 a, 401 b: o Right path: Monitors traffic coming directly from the NIC 108a. o Left path: Monitors the traffic after it has passed the host OS or at the same time as it passes through the host OS 410

[0059] • Computer application 208a, 208b: o Right path: Comprises state change detector 405a and traffic monitor 401a. o Left path: Does not comprise state change detector 405b and traffic monitor 401b.

[0060] • T raffic: o Right path: Goes directly from NIC 108a to the computer application 208a, without passing any intermediate unit. o Left path: Goes from NIC 108b via host OS 410 before ending up in the computer application 208b.

[0061] A machine learning (ML) model (not illustrated in fig. 4) may be used to map performance metrics created by the traffic monitor 401 at different traffic levels to their corresponding optimal configurations including but not limited to CPU fabric frequency. The terms fabric frequency and CPU fabric frequency are used interchangeably herein. The fabric frequency is only an example of a parameter comprised in the configuration. The configuration may comprise other parameters, for example core frequency, cache size, uncore memory bandwidth, CPU affinity, etc., and these parameters may be different in different configurations. These optimal configurations, quality of service and application’s intents may be used to create a lookup function that the controller 201 may use along with the states detected by the state change detector 405a, 405b to obtain an optimal configuration, including CPU fabric frequency, given current traffic needs. The lookup function may be created by a lookup function manager using the ML model and the lookup function may be comprised in or accessible by the controller 201. The ML model may be a generative artificial intelligence (Al) model. The lookup function manager may be comprised in the computing device 200, it may be comprised in a separate device and arranged to make the lookup function accessible by the controller 201 , e.g. by sending it to the controller 201. The creation of the lookup function will be described in more detail with reference to fig. 6.

[0062] The lookup function may be recreated if the environment or requirements change. Some examples that may require the recreation of the lookup function are major changes in business intents, adding another cluster, adding new resources etc., provided that these changes are not covered by the training data used to train the ML Model. This process may be handled by a lookup function manager, see also fig. 6, and / or the controller 201.

[0063] The traffic monitor 401 monitors traffic events that are received, and the traffic monitor 401 may connect to the controller 201 at startup time of the computer application 208. The traffic monitor 401 may create a performance metrics as a result of the traffic monitoring. The traffic monitor 401 may continually pass the performance metrics to the controller 201. The performance metric may be referred to as an application performance metric and comprises information indicating the monitored traffic.

[0064] The controller 201 may use the lookup function and the state change information from the state change detector 405 to decide if it is necessary to change the configuration of the computing device 200, e.g. to set a new optimal CPU fabric frequency or other configurable parameters. If yes, the controller 201 may use the appropriate API(s) to set the new optimal value(s). If the controller 201 decides that it is necessary to change the configuration of the computing device 200, the configuration may be determined using an optimization function implemented as a lookup function, e.g. a lookup table, a linear regression model etc. If nanoseconds level latency is required, the lookup function may be stored in fastaccess memory comprised in the computing device 200. If a ML model is used to create the lookup function, data, e.g. configuration and metrics, representative of the computer application 208 is provided to the ML model and used to train the ML model. Once the ML model is trained, it may be used to generate the lookup function using the user defined intents and constraints, where the user is the user of the computing device 200. Given a number of inputs, the lookup function maps these inputs to the optimal configuration. Below is an example where the lookup function is in the form of a lookup table. Note that the lookup table is only an example and that there may be other examples of the lookup function, as mentioned previously. In the example of the lookup table below, the input is the request rate, and the corresponding configuration is the optimal configuration. That is, for example, if a request rate of 550 is the input, then configuration 3 is output from the lookup function. In the example table below, the optimal configuration is an energy optimizing configuration. If the intent change and depending on the ML model, the lookup function may be recreated based on the new intent without having to retrain the ML model.

[0065] Requests rate Energy optimizing configuration

[0066] Table 1

[0067] As mentioned above, request rate is one example of an input to the lookup function. Other examples of input to the lookup function may be for example application intent, packet size, time of day, traffic type. The traffic type may be for example uplink traffic, downlink traffic, video streaming, email, http traffic, ftp etc. There may be one or more inputs to the lookup function. There may be a number of pre-determined candidate configurations which have been pre-determined using the ML model. One of these pre-determined candidate configurations is selected as the second configuration to be used, and the selection is done based on the input, e.g. the request rate.

[0068] Instead of using the lookup function, the second configuration may be determined by setting it to the configuration with maximum fabric frequency or minimum fabric frequency. The maximum fabric frequency may be used for the first state for handling traffic and the minimum fabric frequency may be used for the second state for not handling traffic. If the first configuration which is currently implemented in the computing device 200 comprises a minimum fabric frequency, then the second configuration may comprise a maximum fabric frequency, or the other way around. In other words, the fabric frequency of the computing device 200 may change from minimum to maximum, or from maximum to minimum when the state of the computing device 200 changes. The minimum fabric frequency may be referred to as an off fabric frequency and the maximum fabric frequency may be referred to as an on fabric frequency. The lookup function described above is different than the maximum and minimum frequency in that the lookup function may provide a configuration having a fabric frequency of any value between the minimum and maximum frequency.

[0069] Fig. 5 is a flow chart illustrating a method for the controller 201. The method comprises at least one of the following steps performed by the controller 201 , which steps may be performed in any suitable order than described below:

[0070] 501 The controller 201 may obtain measurement information, e.g. metrics, from e.g. the traffic monitor 401. The measurement information may comprise traffic information related to traffic received by the computing device 200.

[0071] 502 The controller 201 determines that there has been a state change. The controller 201 may determine that there has been a state change based on obtaining state change information, e.g., upon receiving a state change indication from a state change detector 405. The state change may be between a first state for handling traffic and a second state for not handling traffic. 503 The controller 201 determines a second configuration for the computing device 200. The second configuration may be determined using a lookup function and based on the detected state change. The second configuration may further be based on the measurement information from step 501. The second configuration may be referred to as an optimal configuration. One example of a lookup function may be a lookup table. Another example of a lookup function may be a linear regression model.

[0072] 504 The controller 201 checks if there is a change between the first configuration currently implemented on the computing device 200 and the second configuration determined in step 503. If there is a change, indicated with yes in fig. 5, the method proceeds to step 505. If there are not change, indicated with no in fig. 5, the method proceeds to step 506.

[0073] 505 This step is performed if there is a change between the first configuration and second configuration. The controller 201 may trigger at least one API to be invoked to modify the configuration of the computing device 200, i.e. to implement the second configuration such that there is a change from the first configuration to the second configuration.

[0074] 506 This step is performed if there is no change between the first configuration and second configuration. If there is no change between the two configurations, then no action is taken.

[0075] Fig. 6 is a flow chart illustrating a method for a lookup function manager illustrating the creation and updating of the lookup function. The lookup function manager may be comprised in the computing device 200 or it may be comprised in a separate device and arranged to make the lookup function accessible to the controller 201 , e.g. by sending it to the controller 201. Some steps of fig. 6 may be performed by either the lookup function manager or the controller 201. The creation of the lookup function may be done in parallel to the method in fig. 5, or before the method in fig. 5 is performed. The method comprises at least one of the following steps, which steps may be performed in any suitable order than described below: Data is obtained by the lookup function manager. The data may be for example configuration data, performance metrics, traffic metrics, just to mention some examples. The data may be obtained from the computing device 200.

[0076] 602 The lookup function is created based on intent of the computing device 200, e.g., an intent of the computer application 208. The intent may be obtained by the lookup function manager at some earlier instance and from any suitable entity arranged to provide information related to the intent to the lookup function manager. The lookup function may be provided to the controller 201 after step 602 has been performed. The lookup function may be created using a ML model, the ML model may e.g. be a gen Al model. Step 602 may comprise updating the lookup function.

[0077] 603 This step may be performed by either the lookup function manager or the controller 201. The lookup function manager may check if there has been a change in the intent of the computing device 200 or not. Instead of the lookup function manager doing the check for change in intent, the controller 201 may perform this step and provide information about the change to the lookup function manager. This check is done by comparing the current intent with the previous known intent. The lookup function manager may obtain information indicating the current intent and the previous known intent, for example from the computing device 200. If there has been a change in intent, indicated with yes in fig. 6 it is an indication of a need to update the configuration and, then the method goes back to perform step 602 once more. Performing step 602 for the second or more times may be described as an update of the lookup function. If there has not been a change in the intent, indicated with no in fig. 6, then the method proceeds to step 604.

[0078] 604 This step may be performed by either the lookup function manager or the controller 201. This step is performed if there has not been a change in intent. If there is no change in intent, then there is no action taken.

[0079] 605 This step may be performed by either the lookup function manager or the controller 201. The lookup function manager may check if there has been a change in the environment. Instead of the lookup function manager doing the check for change in environment, the controller 201 may perform this step and provide information about the change to the lookup function manager. This check is done by comparing the current environment and the previous known environment. The lookup function manager may obtain information indicating the current environment and the previous known environment, for example from the computing device 200. If there has been a change in environment, indicated with yes in fig. 6, it is an indication of a need to update the configuration and the method goes back to perform step 601 once more and further to step 602 etc. If there has not been a change in environment, indicated with no in fig. 6, then the method proceeds to step 606. The change in the environment may be for example a new HW deployed, changes in configuration apart from the CPU configuration, new software deployed etc.

[0080] 606 This step may be performed by either the lookup function manager or the controller 201. This step is performed if there has not been a change in environment. If there is no change in environment, then there is no action taken.

[0081] Summarized, the present disclosure relates to optimizing the configurations of a computing device 200 based on at least one of: a state of change between handling traffic and not handling traffic in the computing device 200 and measurement information, e.g., performance metrics, comprises information about traffic handled by the computing device 200. Configurations of the computing device 200 may comprise parameters such as CPU fabric frequency, core frequency, cache size, uncore memory bandwidth, CPU affinity, while measurement information may be represented by, for example, packet rate, CPU utilization, First In First Out (FIFO) event queue utilization, etc. The measurement information, e.g. obtained from the traffic monitor 401, together with the state change information, e.g., obtained from the state change detector 405, may subsequently be used to determine the level of the CPU fabric frequency optimal for the CPU utilization rate. State change detectors 405 may be located wherever traffic events are received and connect to the controller 201 at the computer application 208 start up time. A state change detector 405 may be described as a function that is arranged to detect two states, “handling traffic” and “not handling traffic”. Whenever the state changes, an indication of the state change is provided to the controller 201.

[0082] The optimal fabric frequency may be decided through the lookup function that may be created based on intent of the computing device 200 and the ML model. This lookup function may be used to create a mapping from current metrics and the states of the state change detectors 405 to an optimal configuration. The mapping may or may not be needed.

[0083] The approach of the present disclosure is enabled by the ability to set CPU fabric frequency quickly. As mentioned above, fabric frequency is only an example, and there may be other configuration parameters that may be changed, for example core frequency, cache size, uncore memory bandwidth, CPU affinity, etc.

[0084] The present disclosure may use generative Al to optimize computer application configurations to find the best policy and differentiating between guaranteed and besteffort quality of service classes. It can be used in any infrastructure where metrics may be observed, for example event queues, and its corresponding configuration, for example fabric frequency, and where there are facilities for configuring the underlying system quickly enough, i.e. , between traffic bursts.

[0085] The method described above will now be described seen from the perspective of the controller 201. Fig. 7 is a flowchart describing the present method in the controller 201 for handling configuration change of a computing device 200. The method comprises at least one of the following steps to be performed by the controller 201 which steps may be performed in any suitable order than described below:

[0086] This step corresponds to step 301 in fig 3 and step 502 in fig. 5. The controller 201 determines that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device 200. Thus, the computing device 200 may be in one of the following states:

[0087] State 1): handling traffic

[0088] State 2): not handling traffic

[0089] The controller 201 may obtain state change information which indicates the occurrence of the state change. The state change information may be obtained from for example a state change detector 405 comprised in the computing device 200. The state change information may be referred to as burst information, and the state change detector 405 may be referred to as burst detector. 701 This step corresponds to step 501 in fig. 5. The controller 201 may obtain measurement information comprising traffic information related to traffic received by the computing device 200. The measurement information may be referred to as a performance metric in other parts of this disclosure. The traffic may be referred to as events, packets, data etc. The traffic may be of a traffic type, for example, uplink traffic, downlink traffic, video streaming traffic, email traffic, http traffic, ftp traffic etc. The measurement information may in addition to the traffic information comprise application performance information and / or a Key Performance Indicator (KPI).

[0090] The traffic information may comprise one or more of: information about traffic received by the computing device 200 and information about traffic type. The information about traffic may be for example one or more of: packet rate, packet size, uplink traffic vs downlink traffic. Traffic type may be for example one or more of: Hypertext Transfer Protocol (HTTP), Real Time Streaming Protocol (RTSP), File Transfer Protocol (FTP), video streaming, User Datagram Protocol (UDP), Transmission Control Protocol (TCP)

[0091] The application performance information may comprise information about the performance of the computer application 208 such as one or more performance metrics.

[0092] The KPI may be of the intent of at least one of: the computing device 200 and the computer application 208. The KPI may be related to for example throughput, latency and / or performance of at least one of the computing device 200 and / or the computer application 208.

[0093] 702 This step corresponds to step 302 in fig 3 and step 503 in fig. 5. The controller 201 determines a second configuration for the computing device 200 based on the state change. The second configuration may be determined based on the detected state change or based on both the detected state change and the obtained measurement information.

[0094] The second configuration may be referred to as an optimal configuration which may be optimal according to some intent of the computing device 200, but also taking the measurement information, e.g. traffic information, and state change information into account.

[0095] The second configuration may be determined using a lookup function where state change information is used as input to the lookup function. The second configuration may be determined using the lookup function and using both the state change information and measurement information as input to the lookup function. Other examples of input to the lookup function may be for example request rate, application intents, packet size, time of day, traffic type. The traffic type may be for example uplink traffic vs downlink, video streaming, email, http traffic, ftp etc. There may be one or more inputs to the lookup function.

[0096] The lookup function may be created and / or updated based on at least one of: an intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and an environment of the computing device 200.

[0097] The lookup function may determine the second configuration by accessing a plurality of pre-determined candidate second configurations, e.g., in real time. That is, the candidate second configurations may not be optimized on-demand. The second configuration may be selected from the plurality of pre-determine candidate second configurations. Table 1 is an example of such pre-determined candidate second configurations.

[0098] The lookup function may be a lookup table or a linear regression model.

[0099] The first configuration may comprise a minimum fabric frequency and the second configuration may comprise a maximum fabric frequency, or the first configuration may comprise a maximum fabric frequency and the second configuration may comprise a minimum fabric frequency. The maximum fabric frequency may be suitable for the first state for handling traffic and the minimum fabric frequency may be suitable for the second state for not handling traffic. This step corresponds to step 504 in fig 5. The controller 201 may compare the second configuration and the first configuration. The purpose of the comparison is to check if there is a need for changing to the second configuration.

[0100] 704 This step corresponds to step 504 in fig 5. The controller 201 may determine that the first configuration should be changed to the second configuration when a result of the comparison indicates that there is a difference between the second configuration and the first configuration.

[0101] In embodiments, the comparison described above to determine whether or not the configuration should be changed may not be performed. The configuration may instead be changed without any comparison, e.g. to make the change faster or if the first configuration has less desirable consequences like consuming extra energy or wearing down the life expectancy of the computing device 200 faster. In other words, the decision whether or not to change the configuration currently implemented in the computing device 200 may be done taking one, two or more parameters into account, for example the speed of changing configuration, energy consumption, life expectancy etc.

[0102] 705 This step corresponds to step 303 in fig 3 and step 505 in fig. 5. The controller 201 triggers an implementation of the determined second configuration in the computing device 200 such that there is a change from a first configuration currently implemented in the computing device 200 to the second configuration. This may comprise providing information indicating the second configuration to, for example, the processing unit 210. For example, the controller 201 may trigger at least one API to be invoked to modify the configuration of the computing device 200.

[0103] The computing device 200 may be in an executing state both when it handles traffic and when it is not handling traffic. Thus, even when the computing device 200 is not handling traffic, it may not become inactive but may perform tasks such as keeping itself ready to handle traffic, housekeeping tasks, maintenance tasks, monitoring tasks etc.

[0104] As a consequence of the trigger, the computing device 200 changes its configuration from the first configuration to the second configuration. It may be the configuration of the processing unit 210 of the computing device 200 that is changed. When the configuration of the computing device 200 has changed, its configuration may be optimized for example with respect to energy consumption and performance.

[0105] The triggering of the implementation of the second configuration may trigger a change of one or more of the following parameters of the computing device 200: fabric frequency, core frequency, cache size, uncore memory bandwidth and CPU affinity. For example, the first configuration may comprise a first fabric frequency and the second configuration may comprise a second fabric frequency different from the first fabric frequency. When there is change to the second configuration, the fabric frequency of the computing device 200 may hence change from the first fabric frequency to the second fabric frequency.

[0106] 706 This step corresponds to step 603 and 605 in fig 6. The controller 201 may determine that there has been a change in at least one of:

[0107] - the intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and

[0108] - the environment of the computing device 200.

[0109] The intent may be associated with requirements for the computing device 200, like minimize energy consumption and maximize performance. The environment may be associated with the type of hardware the computing device 200 is running on, operating system, etc. The change in environment may hence be related to a change in hardware and / or operating system but also e.g. that the data distribution has changed, or new data was introduced.

[0110] 707 This step corresponds to step 602 in fig 6. The controller 201 may trigger an update of the lookup function based on the change in at least one of:

[0111] - the intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and

[0112] - the environment of the computing device 200.

[0113] The triggering may comprise that the controller 201 itself performs the update or sends trigger instructions to the lookup function manager that performs the update. Fig. 8 is a schematic drawing illustrating the controller 201 for handling configuration change of the computing device 200. The computing device 200 may be in executing state. The controller 201 may be comprised in the computing device 200. The controller 201 may comprise processing circuitry 801 e.g. one or more processors, configured to perform the methods herein.

[0114] The controller 201 and / or the processing circuitry 801 are arranged to determine that there has been a state change between a first state for handling traffic state and a second state for not handling traffic in the computing device 200.

[0115] The controller 201 and / or the processing circuitry 801 are arranged to determine a second configuration for the computing device 200 based on the state change. The second configuration may be determined using a lookup function. State change information and optionally measurement information may be used as input to the lookup function. The lookup function may be created and / or updated based on at least one of:

[0116] - an intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and

[0117] - environment of the computing device 200.

[0118] The lookup function may determine the second configuration by accessing a plurality of predetermined candidate second configurations, e.g. in real time. The pre-determined candidate second configurations may have been previously determined using an ML model, as described earlier. The lookup function may be a lookup table or a linear regression model.

[0119] The controller 201 and / or the processing circuitry 801 are arranged to trigger implementation of the determined second configuration in the computing device 200 such that there is a change from a first configuration currently implemented in the computing device 200 to the second configuration. The first configuration may comprise a minimum fabric frequency and the second configuration comprises a maximum fabric frequency, or the first configuration may comprise a maximum fabric frequency and the second configuration comprises a minimum fabric frequency.

[0120] The minimum fabric frequency may be a low fabric frequency and the maximum fabric frequency may be a high fabric frequency. The maximum fabric frequency may be suitable for the first state for handling traffic and the minimum fabric frequency may be suitable for the second state for not handling traffic.

[0121] The triggering of the implementation of the second configuration may comprise a change of fabric frequency of the computing device 200. The change to the second configuration may comprise a change of one or more of the following parameters: fabric frequency, core frequency, cache size, uncore memory bandwidth, CPU affinity.

[0122] The controller 201 and / or the processing circuitry 801 may be arranged to obtain measurement information comprising traffic information related to traffic received by the computing device 200. The second configuration may be determined based on the measurement information and the state change. The traffic information may comprise one or more of: information about traffic received by the computing device 200 and information about traffic type. The measurement information may comprise the traffic information, application performance information and / or a KPI.

[0123] The controller 201 and / or the processing circuitry 801 may be arranged to compare the second configuration and the first configuration. The controller 201 and / or the processing circuitry 801 may be arranged to determine that the first configuration should be changed to the second configuration when a result of the comparison indicates that there is a difference between the second configuration and the first configuration.

[0124] The controller 201 and / or the processing circuitry 801 may be arranged to determine that there has been a change in at least one of: the intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and

[0125] - the environment of the computing device 200.

[0126] The controller 201 and / or the processing circuitry 801 may be arranged to trigger update of the lookup function based on the change in at least one of: the intent of the computing device 200 and / or a computer application 208 implemented on the computing device 200, and

[0127] - the environment of the computing device 200. The controller 201 further comprises a memory 803. The memory 803 comprises one or more units to be used to store data on, such as indications, traffic indication, state changes, state information, traffic information, metrics, measurement information, measurements, thresholds, data related to nodes, and applications to perform the methods disclosed herein when being executed, and similar. Furthermore, the controller 201 may comprise a communication interface 805 such as a transmitter, a receiver, a transceiver and / or one or more antennas.

[0128] The methods according to the embodiments described herein for handling configuration change of a computing device 200 are respectively implemented using e.g., a computer program product 807 or a computer program, comprising instructions, i.e. , software code portions, which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the controller 201. The computer program product 807 may be stored on a computer-readable storage medium 808 e.g. a disc, a universal serial bus (USB) stick or similar. The computer- readable storage medium 808 having stored thereon the computer program product 807, may comprise the instructions which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the controller 201. In some embodiments, the computer-readable storage medium may be a transitory or a non-transitory computer-readable storage medium. Thus, embodiments herein may disclose a controller 201 for handling configuration change of a computing device 200, wherein the controller 201 comprises processing circuitry 801 and a memory 803. The memory 803 comprises instructions executable by the processing circuitry 803 whereby the controller 201 is operative to perform any of the methods herein.

[0129] The present disclosure relates to monitoring traffic of a computing device 200 and to changing the configuration of the computing device 200 based on the traffic. The controller 201 may monitor notifications from burst detectors of the CPU cores in the computing device 200. The configuration may be changed by e.g. changing the fabric frequency to its minimum value in between bursts of traffic. The fabric frequency may be set back to a high or maximum value as soon as a new burst of traffic is detected. This may be enabled by the ability of the controller 201 to set fabric frequency quickly. The present disclosure can optimize the configurations of the computing device 200 based on the monitored infrastructure, applications’ metrics and / or the state of burst detectors. Configurations can include CPU fabric frequency, while metrics can be represented by, for example, packet rate, CPU utilization, FIFO event queue utilization, etc. The metrics collected by traffic monitors together with the state of the burst detectors may subsequently be used to determine the level of the CPU fabric frequency optimal for its utilization rate. Burst detectors can be located wherever traffic events are received and connect to the controller 201 at application start up time. A burst detector may be described as a simple function that has two states, “handling traffic” and “not handling traffic”. Whenever its state changes, it may indicate this state change to the controller 201.

[0130] An optimal configuration may be decided through a lookup function that is created based on application intents and the model of the computing device 200. The lookup function may create a mapping from current metrics and the states of the burst detectors to an optimal configuration. The mapping may or may not be necessary.

[0131] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hardwired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.

[0132] The embodiments herein are not limited to the embodiments described herein. Various alternatives, modifications and equivalents may be used. Therefore, the above embodiments should not be taken as limiting the scope of the embodiments, which is defined by the appended claims. A feature from one embodiment may be combined with one or more features of any other embodiment.

[0133] The term “at least one of A and B” should be understood to mean “only A, only B, or both A and B.”, where A and B are any parameter, number, indication used herein etc.

[0134] It should be emphasized that the term “comprises / comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components, but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof. It should also be noted that the words “a” or “an” preceding an element do not exclude the presence of a plurality of such elements.

[0135] The term “configured to” used herein may also be referred to as “arranged to”, “adapted to”, “capable of’ or “operative to”.

[0136] It should also be emphasised that the steps of the methods defined in the appended claims may, without departing from the embodiments herein, be performed in another order than the order in which they appear in the claims.

Claims

CLAIMS1. A computer-implemented method performed by a controller (201) for handling configuration change of a computing device (200), the method comprising: determining (301, 502, 700) that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device (200); determining (302, 503, 702) a second configuration for the computing device (200) based on the state change; and triggering (303, 505, 705) an implementation of the second configuration in the computing device (200) such that there is a change from a first configuration currently implemented in the computing device (200) to the second configuration.

2. The method according to claim 1, comprising: obtaining (403, 501 , 701) measurement information comprising traffic information related to traffic received by the computing device (200); and wherein the second configuration is determined based on the measurement information and the state change.

3. The method according to any of the preceding claims, comprising: comparing (405, 504, 703) the second configuration and the first configuration; and determining (405, 504, 704) that the first configuration should be changed to the second configuration when a result of the comparison indicates that there is a difference between the second configuration and the first configuration.

4. The method according to any of the preceding claims, wherein the second configuration is determined using a lookup function, and wherein state change information is used as input to the lookup function.

5. The method according to claim 4, wherein the state change information and measurement information are used as input to the lookup function.

6. The method according to any of claims 4-5, wherein the lookup function is created and / or updated based on at least one of: an intent of the computing device (200) and an environment of the computing device (200).

7. The method according to any of claims 4-6, wherein the lookup function determines the second configuration by accessing a plurality of pre-determined candidate second configurations.

8. The method according to any of claims 4-7, wherein the lookup function is a lookup table or a linear regression model.

9. The method according to any of claims 4-8, comprising: determining (706, 603, 605) that there has been a change in at least one of: an intent of the computing device (200) and an environment of the computing device (200); and triggering (707, 602) an update of the lookup function based on the change in at least one of: an intent of the computing device (200) and an environment of the computing device (200).

10. The method according to any of claims 1-9, wherein the first configuration comprises a minimum fabric frequency and the second configuration comprises a maximum fabric frequency; or wherein the first configuration comprises a maximum fabric frequency and the second configuration comprises a minimum fabric frequency.

11. The method according to any of the preceding claims, wherein triggering (705) the implementation of the second configuration comprises triggering a change of fabric frequency of the computing device (200).

12. The method according to any of the preceding claims, wherein the computing device (200) is in executing state.

13. The method according to any of claims 2-12, wherein the traffic information comprises one or more of: information about traffic received by the computing device (200) and information about traffic type.

14. The method according to any of claims 2-13, wherein the measurement information further comprises application performance information and / or a Key Performance Indicator, KPI.

15. A controller (201) for handling configuration change of a computing device (200), the controller (201) being arranged to: determine that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device (200); determine a second configuration for the computing device (200) based on the state change; and to trigger an implementation of the second configuration in the computing device such that there is a change from a first configuration currently implemented in the computing device (200) to the second configuration.

16. The controller (201) according to claim 15, further arranged to perform a method as claimed in any one of claims 2 to 14.

17. A controller (201) for handling configuration change of a computing device (200), the controller (201) comprising processing circuitry (801) configured to cause the controller (201) to: determine that there has been a state change between a first state for handling traffic and a second state for not handling traffic in the computing device (200); determine a second configuration for the computing device (200) based on the state change; and to trigger an implementation of the second configuration in the computing device such that there is a change from a first configuration currently implemented in the computing device (200) to the second configuration.

18. The controller (201) according to claim 17, wherein the processing circuitry (801) is further configured to cause the controller (201) to carry out a method as claimed in any one of claims 2 to 14.

19. A computer program product comprising program code for performing, when executed by a processing circuitry, the method of any of the claims 1-14 as performed by the controller (201).

20. A non-transitory computer-readable storage medium comprising instructions, which when executed by the processing circuitry, cause a processing circuitry to perform the method of any of the claims 1-14 as performed by the controller (201).

Citation Information

Patent Citations

  • Edge server CPU with dynamic deterministic scaling

    US20200125389A1

  • Dynamic network controller power management

    US20210041929A1

  • Multi-timescale power control technologies

    US20220326757A1