Electronic device for controlling processor including plurality of clusters and operating method therefor
The processor optimizes cluster operations by adjusting frequency and power based on workload characteristics, enhancing performance and efficiency in processors with multiple clusters.
Patent Information
- Application Number
- PCT/KR2025/010473
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-10-23
- Filing Date
- 2025-07-16
- Publication Date
- 2026-01-22
Smart Images

Figure KR2025010473_22012026_PF_FP_ABST
Abstract
Description
Electronic device for controlling a processor including multiple clusters and method for operating the same
[0001] The present disclosure relates to an electronic device for controlling a processor including a plurality of clusters and a method of operating the same.
[0002] Advances in information and communication technology (ICT) and semiconductor technology are integrating diverse functions into a single portable electronic device (e.g., smartphones). For example, electronic devices can embody not only communication functions but also entertainment features like gaming, multimedia functions like music and video playback, communication and security functions for mobile banking, camera functions for capturing images and videos, calendar management, and electronic wallets. These electronic devices are becoming smaller and more portable for users, and the various functions they provide are becoming increasingly sophisticated.
[0003] An electronic device may include a processor capable of executing various functions. To efficiently execute the various functions, the processor may include multiple clusters (or multiple cores). At least some of the multiple clusters may execute at least one workload or task of the electronic device.
[0004] The above information may be provided as background art to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above is applicable as prior art in connection with the present disclosure.
[0005] According to one embodiment, an electronic device may include a processor including a plurality of clusters of different types and a memory storing instructions. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to control an operating frequency or driving power of the plurality of clusters using a first table stored in the memory. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to determine, for a plurality of workloads executed by the plurality of clusters, a first performance value indicating a usage amount of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain, based on determining that the usage amount satisfies a specified condition, a second table including second performance values indicating a performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to control the operating frequency or the driving power of the plurality of clusters using the second table.
[0006] According to one embodiment, a method of operating an electronic device may include controlling an operating frequency or driving power of a plurality of clusters included in a processor of the electronic device using a first table stored in a memory included in the electronic device. According to one embodiment, the method of operating the electronic device may include checking a first performance value indicating a usage amount of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters for a plurality of workloads executed by the plurality of clusters. According to one embodiment, the method of operating the electronic device may include obtaining a second table including second performance values indicating a performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value, based on checking that the usage amount satisfies a specified condition. According to one embodiment, the method of operating the electronic device may include controlling the operating frequency or the driving power of the plurality of clusters using the second table.
[0007] In a non-transitory computer-readable recording medium storing instructions, the instructions, when executed by a processor, cause the electronic device to control the operating frequency or driving power of a plurality of clusters included in the processor using a first table stored in a memory included in the electronic device, and, with respect to a plurality of workloads executed by the plurality of clusters, to check a first performance value indicating the usage of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters, and, based on checking that the usage satisfies a specified condition, to obtain a second table including second performance values indicating the performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value, and to control the operating frequency or the driving power of the plurality of clusters using the second table.
[0008] FIG. 1 is a block diagram illustrating an electronic device within a network environment according to one embodiment of the present disclosure.
[0009] FIG. 2 is a schematic block diagram of an electronic device and a processor included in the electronic device, according to one embodiment.
[0010] FIG. 3 is a flowchart illustrating a method for an electronic device to update a table according to one embodiment.
[0011] FIGS. 4A and 4B are diagrams illustrating multiple clusters executing different workloads according to one embodiment.
[0012] FIGS. 5A and 5B are diagrams illustrating a method for obtaining a first performance value (IPC) of each of a plurality of clusters for different plurality of workloads according to one embodiment.
[0013] FIGS. 6A and 6B are diagrams illustrating a method for obtaining a second performance value (performance-to-power ratio) of each of a plurality of clusters for a plurality of different workloads according to one embodiment.
[0014] Figures 7a, 7b, and 7c are graphs showing the performance of multiple clusters for a first workload set, according to one embodiment.
[0015] FIGS. 8A, 8B, and 8C are graphs showing the performance of multiple clusters for a second workload set, according to one embodiment.
[0016] FIGS. 9A and 9B are diagrams illustrating a method for an electronic device to obtain different second tables for controlling multiple clusters for different sets of workloads, according to one embodiment.
[0017] FIGS. 10A and 10B are diagrams illustrating second tables for controlling multiple clusters for different workload sets, according to one embodiment.
[0018] FIG. 11 is a diagram illustrating a method for controlling multiple clusters according to a maximum power included in a second table, according to one embodiment.
[0019] FIG. 1 is a block diagram of an electronic device within a network environment according to various embodiments.
[0020] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0021] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0022] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0023] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
[0024] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0025] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0026] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0027] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0028] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0029] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0030] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0031] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0032] The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0033] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0034] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0035] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0036] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
[0037] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0038] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the selected at least one antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0039] According to various embodiments, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0040] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0041] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0042] FIG. 2 is a schematic block diagram of an electronic device and a processor included in the electronic device, according to one embodiment.
[0043] Referring to FIG. 2, according to one embodiment, an electronic device (201) may include a processor (220) and a memory (230). For example, the electronic device (201) may be implemented in the same or similar manner as the electronic device (101) of FIG. 1.
[0044] According to one embodiment, the processor (220) may control the overall operation of the electronic device (201). For example, the processor (220) may be implemented in a manner identical to or similar to the processor (120) of FIG. 1. The processor (220) according to one embodiment may execute software (e.g., the program (140) of FIG. 1) to control at least one other component (e.g., a hardware or software component) of the electronic device (201) connected to the processor (220), and may perform data processing or calculations based on the instructions. The instructions according to one embodiment may include instructions configured in a machine language that can be processed by the electronic device (201) or the processor (220). For example, the instructions may include instructions corresponding to operation instructions used in the program.
[0045] Meanwhile, although FIG. 2 illustrates that the electronic device (201) includes one processor (220), this is merely exemplary and the technical concept of the present invention may not be limited thereto. For example, the electronic device (201) may include at least one processor. For example, the processor (220) may be implemented as at least one processor.
[0046] According to one embodiment, the memory (230) (e.g., the memory (130) of FIG. 1) may store at least one instruction (or command) that causes at least one operation of the electronic device (201). The at least one instruction, when executed by the processor (220), may cause the electronic device (201) to perform a corresponding operation. For example, the memory (230) may be implemented as a non-volatile memory (e.g., a flash memory). For example, at least one instruction (or command) or an execution code as a set of the instructions may be stored in the memory (230). The execution code as at least one instruction (or command) or a set of the instructions may be loaded into the memory (230) (e.g., a DRAM) and executed by the processor (220).
[0047] According to one embodiment, the processor (220) may include a central processing unit (CPU). The processor (220) (or CPU) may include a plurality of clusters (260, 270, 280, and / or 290). The plurality of clusters (260, 270, 280, 290) may be different types of clusters. For example, the first cluster (260) may be implemented as a big cluster, the second cluster (270) as a middle-high cluster, the third cluster (280) as a middle-low cluster, and the fourth cluster (290) as a little cluster. For example, the plurality of clusters (260, 270, 280, 290) may have different sizes, performances, and / or performance-to-power ratios. For example, the plurality of clusters (260, 270, 280, 290) can be operated independently of each other. In addition, the plurality of clusters (260, 270, 280, 290) may have their operations restricted independently of each other. According to one embodiment, a specific architecture related to the plurality of clusters (260, 270, 280, 290) may be implemented as a big cluster, a mid-high or mid-low cluster, or a little cluster depending on their relative roles within the CPU. Meanwhile, the number of clusters is not limited to the four types of embodiments, and the roles of the clusters may be configured differently depending on the number of clusters. For example, when there are two types of clusters, they may be configured as big / little or high-performance / high-efficiency clusters. For example, when there are three types of clusters, they can be organized into big / middle / little clusters. For example, when there are four or more types of clusters, they can be organized into big / little or middle clusters, depending on the level of the core.
[0048] According to one embodiment, each of the plurality of clusters (260, 270, 280, 290) may include at least one core. For example, a first cluster (260) may include a first core (261), a second cluster (270) may include a second core (272), a third core (273), and a fourth core (274), a third cluster (280) may include a fifth core (285), a sixth core (286), and a fourth cluster (290) may include a seventh core (297). For example, each of the cores (261, 272, 273, 274, 285, 286, 297, and 298) may perform a series of processing operations to execute a workload (or task, process, thread) of the electronic device (201).
[0049] Meanwhile, the plurality of clusters (260, 270, 280, 290) and the plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) included in the processor (220) illustrated in FIG. 2 are exemplary, and the technical features of the present invention may not be limited thereto. For example, the number of clusters and the number of cores included in each cluster illustrated in FIG. 2 are exemplary, and the technical features of the present invention may not be limited thereto.
[0050] According to one embodiment, a workload may represent a task or activity performed on an electronic device (e.g., a computing device). For example, a task or activity may include operations (or loads) performed by various types of computing devices related to software or applications. In this specification, a workload will be described as including tasks, processes, and / or threads. It will be readily apparent to those skilled in the art that the workload of the present invention may be replaced with any of the tasks, processes, or threads.
[0051] According to one embodiment, at least one of the plurality of clusters (260, 270, 280, 290) included in the processor (220) may execute a specific workload set (or multiple workloads). For example, the plurality of clusters (260, 270, 280, 290) may exhibit different performances when executing the corresponding workload set (or multiple workloads). In addition, at least one of the plurality of clusters (260, 270, 280, 290) may have different occupancies when executing the corresponding workload set (or multiple workloads). For example, a certain cluster may have a higher occupancy (or a lower occupancy) in executing the multiple workloads compared to other clusters. In addition, a certain cluster may exhibit higher performance (or lower performance) compared to other clusters.
[0052] According to one embodiment, the processor (220) may control the operation of the plurality of clusters (260, 270, 280, and / or 290) to improve performance or increase power efficiency depending on the characteristics of the workload. For example, the processor (220) may adjust the frequency of the plurality of clusters (260, 270, 280, and / or 290) or adjust the power supplied to the plurality of clusters (260, 270, 280, and / or 290). According to one embodiment, the processor (220) may control the operation of at least two clusters among the plurality of clusters (260, 270, 280, and / or 290) to improve performance or increase power efficiency depending on the characteristics of the workload. For example, the processor (220) may adjust the frequency of at least two of the plurality of clusters (260, 270, 280, and / or 290) or adjust the power supplied to at least two of the plurality of clusters (260, 270, 280, and / or 290).
[0053] According to one embodiment, the processor (220) may control or adjust the frequency or power supplied to the plurality of clusters (260, 270, 280, and / or 290) using a table stored in the memory (230). For example, the processor (220) may obtain and store the table using information about the plurality of clusters (260, 270, 280, and / or 290) confirmed in real time (e.g., performance values of each of the plurality of clusters when executing a plurality of workloads).
[0054] According to one embodiment, the processor (220) may change or update a table stored in the memory (230) with a new table every specified time (e.g., 10 msec to 3 sec). For example, the processor (220) may check workloads executed by multiple clusters (260, 270, 280, and / or 290) in real time.
[0055] According to one embodiment, the processor (220) may check or monitor a first performance value (e.g., instructions per cycle (IPC)) representing the utilization of each of the plurality of clusters (260, 270, 280, and / or 290) and instructions executed in one cycle of each of the plurality of clusters (260, 270, 280, and / or 290) for a plurality of workloads executed by the plurality of clusters (260, 270, 280, and / or 290). In this case, the first performance value may be determined based on the characteristics of the workloads and the plurality of clusters (260, 270, 280, and / or 290). For example, a specific cluster among the plurality of clusters (260, 270, 280, and / or 290) may exhibit higher or lower performance for specific workloads. Additionally, a particular cluster among the plurality of clusters (260, 270, 280, and / or 290) may have a higher utilization (or occupancy) or a lower utilization (or occupancy) for particular workloads. This may be because the plurality of clusters (260, 270, 280, and / or 290) are implemented as different types of clusters.
[0056] According to one embodiment, the processor (220) may obtain second performance values (e.g., power-to-performance ratio) representing performance per power of each of the plurality of clusters (260, 270, 280, and / or 290) when the plurality of clusters (260, 270, 280, and / or 290) operate at designated frequencies (e.g., arbitrarily designated frequencies or virtual frequencies) using the first performance value when the utilization according to the monitoring result satisfies a designated condition.
[0057] According to one embodiment, the processor (220) may determine that a specified condition is satisfied when the utilization of the plurality of clusters (260, 270, 280, and / or 290) for the plurality of workloads for a specified period of time is checked or when the utilization of the plurality of clusters (260, 270, 280, and / or 290) for the plurality of workloads satisfies a specified amount. According to one embodiment, the processor (220) may check the utilization of each of the plurality of clusters (260, 270, 280, and / or 290) and determine that a specified condition is satisfied when all of the plurality of clusters (260, 270, 280, and / or 290) satisfy a specified amount (e.g., the utilization is greater than or equal to the specified amount). According to one embodiment, the processor (220) may determine that a specified condition is satisfied when the utilization of at least two clusters among the plurality of clusters (260, 270, 280, and / or 290) satisfies a specified amount. For example, when the control target is three clusters (260, 270, and 280) among the plurality of clusters (260, 270, 280, and / or 290), the processor (220) may determine that a specified condition is satisfied when the utilization for the corresponding three clusters satisfies a specified amount.
[0058] According to one embodiment, the processor (220) may sort the designated frequencies corresponding to the second performance values for each of the plurality of clusters (260, 270, 280, and / or 290) in an order of the second performance values. The processor (220) may obtain a new table used to control the frequency or power supplied to the plurality of clusters (260, 270, 280, and / or 290) based on the designated frequencies corresponding to the sorted second performance values.
[0059] According to one embodiment, the processor (220) may change, update, or update an existing table stored in memory (230) with a new table.
[0060] According to one embodiment, the processor (220) may control (e.g., limit) the frequency of each of the plurality of clusters (260, 270, 280, and / or 290) using a table (e.g., an updated table) stored in the memory (230). Alternatively, according to one embodiment, the processor (220) may control (e.g., limit) the power supplied to the plurality of clusters (260, 270, 280, and / or 290) using a table (e.g., an updated table) stored in the memory (230).
[0061] In the past, even if multiple clusters (260, 270, 280, and / or 290) were implemented as different types of clusters, a table for controlling multiple clusters was created and stored without considering the characteristics of the workloads and the characteristics of the multiple clusters. The existing processor controlled or limited the frequency or power applied to the multiple clusters (260, 270, 280, and / or 290) without considering the characteristics of the clusters that exhibit different performances depending on the workload. Accordingly, the existing operation of limiting the frequency or power of the multiple clusters (260, 270, 280, and / or 290) did not exhibit optimal performance in processing the workloads. That is, the operation of limiting the frequency or power of the existing plurality of clusters (260, 270, 280, and / or 290) could cause excessive performance degradation of the plurality of clusters (260, 270, 280, and / or 290). In addition, the operation of limiting the frequency or power of the existing plurality of clusters (260, 270, 280, and / or 290) could not exhibit optimal efficiency in terms of power management.
[0062] According to one embodiment, the processor (220) may obtain and store a table reflecting the characteristics of the currently executed workloads and the characteristics of the plurality of clusters (260, 270, 280, and / or 290). For example, the relative performance between clusters may change in real time depending on the workload (or the type of workload). The processor (220) may obtain and store a table that takes into account the relative performance between clusters that changes in real time depending on the workloads. According to one embodiment, the processor (220) may first limit the frequency of clusters with poor real-time power performance so that clusters with good performance-to-power ratio can maximize the frequency utilization in real time. Through this, the processor (220) may control (e.g., limit) the frequency or power while exhibiting optimal performance (e.g., minimizing performance degradation) using the table. In addition, the processor (220) may exhibit optimal efficiency in terms of power management.
[0063] The power management operation described in the present invention (e.g., frequency limiting and / or power supply limiting of clusters) may be used when it is necessary to limit the maximum power usage of the processor (220) in order to control heat generation on the surface of the electronic device (201) or the entire electronic device (201), operate in battery power saving mode, and / or solve the power-off problem of the electronic device (201) in a low battery power situation. However, this is exemplary, and the technical features of the present invention may not be limited thereto. However, embodiments of the present invention may not be related to thermal throttling, which limits the frequency only in a cluster where the temperature is an issue, without considering the performance of the entire cluster and the situation of other clusters, so as not to exceed the temperature limit (e.g., 90 to 110 degrees Celsius) that the electronic device (201) can tolerate, cluster by cluster or core by core.
[0064] According to one embodiment, the memory (230) (e.g., the memory (130) of FIG. 1) may store an existing table. In addition, the memory (230) may store an updated new table. In this case, the memory (230) may store the new table instead of the existing table. The memory (230) may provide information about the stored table to the processor (220) at the request of the processor (220). For example, the memory (230) may be implemented as a volatile memory (e.g., DRAM). In the following description, for convenience of explanation, the existing table will be referred to as the first table, and the new table will be referred to as the second table.
[0065] At least some of the operations of the electronic device (201) described below may be performed by the processor (220). However, for convenience of explanation, the operations below will be described as being performed by the electronic device (201).
[0066] FIG. 3 is a flowchart illustrating a method for an electronic device to update a table according to one embodiment.
[0067] Referring to FIG. 3, according to one embodiment, in operation 301, an electronic device (e.g., electronic device (201) of FIG. 2) may store a first table used to control a frequency or power supplied to a plurality of clusters (e.g., a plurality of clusters (260, 270, 280, 290) of FIG. 2) included in a processor (e.g., processor (220) of FIG. 2) in a memory (e.g., memory (230) of FIG. 2). The electronic device (201) may control a frequency (e.g., operating frequency) or power (e.g., driving power) of the plurality of clusters (260, 270, 280, 290) using the first table.
[0068] According to one embodiment, in operation 303, the electronic device (201) may check or monitor (in real time) a first performance value (e.g., instructions per cycle (IPC)) representing the usage of each of the plurality of clusters (260, 270, 280, 290) and instructions executed in one cycle of each of the plurality of clusters (260, 270, 280, 290) for the plurality of workloads executed by the processor (220). For example, the electronic device (201) may check the number of cycles and the number of instructions that each cluster must execute for each workload. The electronic device (201) may divide the number of instructions executed per cluster for each workload by the number of cycles to check the first performance value (e.g., IPC) of each cluster.
[0069] According to one embodiment, in operation 305, the electronic device (201) may check or determine whether the usage satisfies a specified condition. For example, the electronic device (201) may check whether the monitored (or checked) usage is sufficient to acquire or create a new table. For example, the electronic device (201) may check that the usage satisfies a specified condition when a specified time has passed for a plurality of workloads executed by a plurality of clusters (260, 270, 280, 290). For example, the electronic device (201) may check whether the usage of each of the plurality of clusters (260, 270, 280, 290) has been checked for a specified time after acquiring or storing the first table. For example, if the electronic device (201) checks the usage of each of the plurality of clusters (260, 270, 280, 290) for a specified period of time after acquiring or storing the first table, it may determine that the usage satisfies the specified condition. Depending on the implementation, in special circumstances, such as when a specific cluster has restricted use or is assigned to a specific operation, it may be necessary to check the usage of a specific cluster (or the remaining clusters excluding the specific cluster). In this case, the electronic device (201) may check the usage of the specific cluster (or the remaining clusters excluding the specific cluster).
[0070] In one embodiment, if it is determined that the usage does not satisfy the specified condition (NO of operation 305), the electronic device (201) may monitor the usage of each of the plurality of clusters (260, 270, 280, 290) until the specified condition is satisfied.
[0071] According to one embodiment, when it is determined that the usage satisfies a specified condition (e.g., operation 305), the electronic device (201) may obtain a second table including second performance values (e.g., performance-to-power ratio) representing the performance per power of each of the plurality of clusters (260, 270, 280, 290) when the plurality of clusters operate at specified frequencies, using the first performance values monitored for a specified time (e.g., 10 msec to 3 sec).
[0072] According to one embodiment, the electronic device (201) may check the first performance value for each cluster when it is confirmed that the usage satisfies the specified condition (example of operation 305). For example, the first performance value of a specific cluster may be checked or calculated using mathematical expression 1 as follows. Here, the occupancy workload may represent the occupancy of each workload executed by the corresponding cluster. The IPC workload may represent the IPC for a specific workload of the corresponding cluster. The first performance value (IPC) may represent the IPC of the corresponding cluster when executing all workloads.
[0073]
[0074] According to one embodiment, in operation 307, the electronic device (201) may obtain or calculate second performance values (e.g., performance-to-power ratio) representing performance per power of each of the plurality of clusters (260, 270, 280, 290) when the plurality of clusters operate at designated frequencies using first performance values monitored for a designated time (e.g., 10 msec to 3 sec). For example, the second performance value (e.g., performance-to-power ratio) for each frequency may correspond to a value obtained by multiplying the frequency corresponding to the first performance value. For example, the designated frequencies may be frequencies pre-designated by the electronic device (201). In operation 309, the electronic device (201) may obtain a second table used to control the frequency or power supplied to the plurality of clusters based on arranging the designated frequencies corresponding to the second performance values for each of the plurality of clusters in an order of the second performance values (e.g., in ascending order).
[0075] According to one embodiment, in operation 311, the electronic device (201) may control (or limit) a frequency (e.g., operating frequency) or power (e.g., driving power) supplied to the plurality of clusters (260, 270, 280, 290) using the second table. For example, the electronic device (201) may preferentially not supply a frequency (or power) corresponding to a low second performance value (e.g., performance-to-power ratio) included in the second table to each of the plurality of clusters (260, 270, 280, 290)).
[0076] According to one embodiment, the electronic device (201) may change or update the first table to a second table. For example, the electronic device (201) may store the second table in the memory (230) instead of the first table. Alternatively, the electronic device (201) may change data stored in the first table to data of the second table. For example, the electronic device (201) may control (or limit) the frequency (e.g., operating frequency) or power (e.g., driving power) supplied to the plurality of clusters (260, 270, 280, 290) using the changed (or updated) second table.
[0077] According to one embodiment, the electronic device (201) can add information about the maximum power (e.g., the maximum required power value) for the power ratio. For example, the electronic device (201) can check the maximum power when all of the plurality of clusters (260, 270, 280, 290) are driven at a specific power ratio. For example, the electronic device (201) can obtain or calculate the maximum power (or maximum power values) of the plurality of clusters for each power ratio based on the product of the number of cores included in each cluster and the power specified for the corresponding frequency plus the value.
[0078] According to the above-described method, the electronic device (201) can control the operation of at least one of the plurality of clusters (260, 270, 280, and / or 290) to improve performance or increase power efficiency, depending on the characteristics of the workloads and the characteristics of each of the plurality of clusters (260, 270, 280, 290).
[0079] FIGS. 4A and 4B are diagrams illustrating multiple clusters executing different workloads according to one embodiment.
[0080] Referring to FIGS. 4A and 4B, according to one embodiment, the x-axis may be a time axis, and the shaded portion may represent each core executing a workload.
[0081] Referring to FIG. 4A, according to one embodiment, a plurality of clusters (260, 270, 280, and / or 290) can execute a first workload set including a plurality of workloads (e.g., workload1 to workload8). For example, the plurality of clusters (260, 270, 280, and / or 290) can include a plurality of cores (261, 272, 273, 274, 285, 286, 297, 298). The plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) can execute a first workload set including a plurality of workloads (e.g., workload1 to workload8). For example, the first workload set can include a workload for at least one application.
[0082] According to one embodiment, a plurality of workloads (e.g., workload 1 to workload 8) may be executed by at least one of a plurality of cores (261, 272, 273, 274, 285, 286, 297, 298). For example, the shaded portion in FIG. 4A may indicate the extent to which each of the plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) executes the plurality of workloads (e.g., workload 1 to workload 8). For example, workload 1 may be executed primarily by the first core (261). The remaining workloads (workloads 2 to 8) can be performed by multiple clusters (260, 270, 280, and / or 290), with each of the multiple cores (261, 272, 273, 274, 285, 286, 297, 298) having a different share.
[0083] Referring to FIG. 4B, according to one embodiment, the plurality of clusters (260, 270, 280, and / or 290) can execute a second workload set including a plurality of workloads (e.g., workload1 to workload8). For example, the plurality of clusters (260, 270, 280, and / or 290) can include a plurality of cores (261, 272, 273, 274, 285, 286, 297, 298). The plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) can execute a second workload set including a plurality of workloads (e.g., workload1 to workload8). For example, the second workload set can include a workload for at least one application. For example, the second workload set may be different from the first workload set.
[0084] According to one embodiment, a plurality of workloads (e.g., workload 1 to workload 8) may be executed by at least one of a plurality of cores (261, 272, 273, 274, 285, 286, 297, 298). For example, the shaded portion in FIG. 4B may indicate the degree to which each of the plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) executes the plurality of workloads (e.g., workload 1 to workload 8). For example, each workload may be classified by a scale in FIG. 4B. For example, workload 1 and workload 2 (e.g., workloads corresponding to the enlarged portion) may be executed by cores (272, 273, 285, 297) excluding the first core (261) and the fourth core (274). For example, workload 4 and workload 5 may be executed by some cores (261, 272, 273, 286, 297, 298). The remaining workloads may be performed by multiple clusters (260, 270, 280, and / or 290) with each of the multiple cores (261, 272, 273, 274, 285, 286, 297, 298) having different occupancies.
[0085] As described above, the occupancy rates of the plurality of clusters (260, 270, 280, 290) may vary depending on the types of workloads of the plurality of clusters (260, 270, 280, 290). Through this, the electronic device (201) can check the performance of each of the plurality of clusters (260, 270, 280, 290) when executing the corresponding workloads. In addition, the electronic device (201) can check the performance difference between the plurality of clusters (260, 270, 280, 290) when executing the corresponding workloads. That is, the electronic device (201) can check the relative performance between the clusters that changes in real time depending on the workloads currently being executed.
[0086] In FIG. 5a and FIG. 5b below, a method for checking relative performance between clusters that changes in real time depending on the workloads being executed by the electronic device (201) will be specifically described.
[0087] Meanwhile, the workload sets (e.g., the first workload set and the second workload set) illustrated in FIGS. 5A and 5B and the occupancy rates of each of the plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) executing the same are exemplary, and the technical features of the present invention may not be limited thereto.
[0088] FIGS. 5A and 5B are diagrams illustrating a method for obtaining a first performance value (IPC) of each of a plurality of clusters for different plurality of workloads according to one embodiment.
[0089] FIG. 5A is a diagram illustrating a method for obtaining a first performance value (IPC) of each of a plurality of clusters for a first workload set according to one embodiment.
[0090] Referring to FIG. 5A, according to an embodiment, the electronic device (201) may check a first performance value (510, 520, 530, 540) of each of a plurality of clusters (260, 270, 280, and / or 290) for a plurality of workloads (e.g., workload 1 to workload 8) included in a first workload set. For example, as described in FIGS. 4A and 4B, the workloads may be performed by a plurality of clusters (260, 270, 280, and / or 290) while each of the plurality of cores (261, 272, 273, 274, 285, 286, 297, 298) has a different occupancy rate. The electronic device (201) can check the usage (e.g., occupancy) of multiple clusters (260, 270, 280, and / or 290) for the workloads and the first performance value of each cluster based on monitoring the workloads being executed.
[0091] According to one embodiment, referring to FIG. 5A, even if the second cluster and the third cluster (e.g., the mid-low cluster or the mid-high cluster) have the same core architecture, there may be an IPC difference depending on the characteristics (or nature) of the tasks running on each cluster. For example, a task (or workload) may be performed by moving across multiple clusters depending on circumstances such as the size of the load by a scheduler (e.g., the CPU scheduler). Therefore, the electronic device (201) can check the relative performance of each cluster in real time based on checking the real-time IPC. For example, if a task (or workload) that is very different from the general IPC characteristics is performed only on a specific cluster (or specific core), it may be difficult to check the relative performance of each cluster based on checking the IPC. However, it may be difficult for a cluster (or core) to actually perform a specific task (or workload). Accordingly, a single task (or workload) can be performed by multiple clusters (or cores) by a scheduler (e.g., CPU scheduler), and a single cluster (or core) can perform multiple tasks (or workloads).
[0092] According to one embodiment, the electronic device (201) may check the occupancy rate of each cluster for each workload. In addition, the electronic device (201) may check a first value indicating the relative performance of each cluster for the corresponding workload when executing each workload. For example, for the first workload, the fourth cluster (290) may have a first value (e.g., IPC) indicating a performance of 0.81 and may have an occupancy rate of 30%. In addition, for the first workload, the first cluster (260) may have a first value (e.g., IPC) indicating a performance of 2.66 and may have an occupancy rate of 30%.
[0093] According to one embodiment, the electronic device (201) may obtain a first performance value (510, 520, 530, or 540) representing the overall performance of each of the plurality of clusters (260, 270, 280, and / or 290) based on determining a first value representing the performance of each of the plurality of clusters (260, 270, 280, and / or 290) for each workload, and dividing a sum of values obtained by multiplying the first value by the occupancy rate for each workload (e.g., Sum(occupancy rate*IPC)) by a sum of the occupancies of each cluster for the plurality of workloads (e.g., Sum(occupancy rate)). For example, the first performance value (510) of the first cluster (260) may be 2.66, the first performance value (520) of the second cluster (270) may be 2.00, the first performance value (530) of the third cluster (280) may be 2.00, and the first performance value (540) of the fourth cluster (290) may be 0.75. For example, the first performance values (510, 520, 530, and 540) may represent relative performances among the plurality of clusters (260, 270, 280, and / or 290) in executing the first set of workloads. For example, the larger the first performance value, the better the performance of the plurality of clusters (260, 270, 280, and / or 290). For example, the first performance value may be a value representing the number of instructions that the cluster can execute in one cycle.
[0094] FIG. 5b is a diagram illustrating a method for obtaining a first performance value (IPC) of each of a plurality of clusters for a second workload set according to one embodiment.
[0095] Referring to FIG. 5B, according to one embodiment, the electronic device (201) can check the first performance values (560, 570, 580, 590) of each of the plurality of clusters (260, 270, 280, and / or 290) for the plurality of workloads (e.g., workload 1 to workload 8) included in a second workload set different from the first workload set. The electronic device (201) can obtain the first performance values (560, 570, 580, 590) of each of the plurality of clusters (260, 270, 280, and / or 290) for the plurality of workloads (e.g., workload 1 to workload 8) included in the second workload set, similarly to that described in FIG. 5A. For example, the first performance value (560) of the first cluster (260) may be 1.63, the first performance value (570) of the second cluster (270) may be 0.93, the first performance value (580) of the third cluster (280) may be 1.08, and the first performance value (590) of the fourth cluster (290) may be 0.48. For example, the first performance values (560, 570, 580, and 590) may represent relative performances between the plurality of clusters (260, 270, 280, and / or 290) in executing the second workload set.
[0096] According to one embodiment, the electronic device (201) can acquire and store a table that considers the relative performance between clusters identified according to the above-described method. Using the table, the electronic device (201) can control (e.g., limit) frequency or power while achieving optimal performance (or minimizing performance degradation). Furthermore, the electronic device (201) can achieve optimal efficiency in terms of power management.
[0097] Meanwhile, the first value, occupancy rate, and first performance value of each of the workload sets (e.g., the first workload set and the second workload set) and the plurality of clusters (260, 270, 280, 290) executing the same as illustrated in FIGS. 5a and 5b are exemplary, and the technical features of the present invention may not be limited thereto.
[0098] FIGS. 6A and 6B are diagrams illustrating a method for obtaining a second performance value (performance-to-power ratio) of each of a plurality of clusters for a plurality of different workloads according to one embodiment.
[0099] FIG. 6A is a diagram illustrating a method for obtaining a second performance value (e.g., power-to-performance ratio (hereinafter, power-to-performance ratio)) of each of a plurality of clusters for a first workload set according to one embodiment.
[0100] Referring to FIG. 6A, according to one embodiment, when executing a first workload set, the electronic device (201) may check the second performance value of each cluster for a designated frequency using the first performance ratio of each cluster, the designated frequency, and the designated power value for the corresponding frequency. For example, the electronic device (201) may check the second performance values of each cluster for the designated frequencies of the first cluster (260) as shown in (a) of FIG. 6A. The electronic device (201) may check the second performance values of each cluster for the designated frequencies of the second cluster (270) as shown in (b) of FIG. 6A. The electronic device (201) may check the second performance values of each cluster for the designated frequencies of the third cluster (280) as shown in (c) of FIG. The electronic device (201) can check the second performance values of each cluster for the designated frequencies of the fourth cluster (260), as shown in (d) of FIG. 6a. For example, the second performance value can represent the performance-to-power ratio for the designated frequency when executing the first workload set.
[0101] According to one embodiment, the electronic device (201) may obtain or confirm a third performance value (e.g., a score) when the cluster is driven at a specified frequency, based on the product of a first performance value and a specified frequency. For example, based on the product of a first performance value (e.g., instructions per cycle (IPC)) and a frequency, the third performance value may represent the number of instructions that can be processed per second. For example, the frequency may represent the number of cycles that can be generated per second. The electronic device (201) may obtain or confirm a second performance value of the cluster for a specified frequency, based on the division of the third performance value by a specified power corresponding to the specified frequency. For example, referring to (a) of FIG. 6A, the first cluster (260) may exhibit a performance (or power-to-performance ratio) corresponding to the second performance value (or power-to-performance ratio) (e.g., 8.033) at a frequency of 480 MHz. Referring to (d) of FIG. 6a, the fourth cluster (290) can exhibit a performance (or power-to-weight ratio) corresponding to the second performance value (or power-to-weight ratio) (e.g., 6.706) at a frequency of 1344 MHz.
[0102] For example, referring to (b) of FIG. 6A, the second cluster (270) can exhibit performance corresponding to the third performance value (or score) (e.g., 1697) at a frequency of 730 MHz. For example, referring to (c) of FIG. 6A, the third cluster (280) can exhibit performance corresponding to the third performance value (or score) (e.g., 1161) at a frequency of 499 MHz.
[0103] FIG. 6b is a diagram illustrating a method for obtaining a second performance value (e.g., power ratio) of each of a plurality of clusters for a second workload set according to one embodiment.
[0104] Referring to FIG. 6B, according to an embodiment, the electronic device (201) may, when executing a second workload set, determine a second performance value of each cluster for a designated frequency using the first performance ratio of each cluster, the designated frequency, and the designated power value for the corresponding frequency. For example, the electronic device (201) may determine the second performance values of each cluster for the designated frequencies of the first cluster (260) as in (a) of FIG. 6B. The electronic device (201) may determine the second performance values of each cluster for the designated frequencies of the second cluster (270) as in (b) of FIG. 6B. The electronic device (201) may determine the second performance values of each cluster for the designated frequencies of the third cluster (280) as in (c) of FIG. The electronic device (201) can check the second performance values of each cluster for the designated frequencies of the fourth cluster (290), as shown in (d) of FIG. 6b. For example, the second performance value can represent the performance-to-power ratio for the designated frequency when executing the second workload set.
[0105] Referring to FIGS. 6A and 6B , according to an embodiment, different second performance values may be obtained for each workload set even when the specified frequency is the same. According to an embodiment, the electronic device (201) may obtain a new table for the corresponding workload set based on obtaining the second performance value of each cluster for the specified frequency. Through this, the electronic device (201) may generate a table that reflects differences in performance (e.g., power-to-performance ratio (P / P)) of clusters (260, 270, 280, 290) that may change depending on the type of workload.
[0106] As shown in Figures 6a and 6b, the second performance values for each cluster for a given frequency may be derived differently depending on the workload. Figures 7a through 8c will specifically illustrate examples where the second performance values or scores for each cluster may vary depending on the workload.
[0107] Meanwhile, the numerical values of the tables shown in FIGS. 6a and 6b are exemplary, and the technical features of the present invention may not be limited thereto.
[0108] Figures 7a, 7b, and 7c are graphs showing the performance of multiple clusters for a first workload set, according to one embodiment.
[0109] Referring to FIGS. 7a, 7b, and 7c, according to one embodiment, the performance of multiple clusters for a first workload set can be described based on specific sections of the graphs (e.g., sections where the power-to-performance ratio decreases as the frequency increases, excluding sections where the power-to-performance ratio drops below 1000 MHz).
[0110] FIG. 7A may represent graphs representing the power required by one core in each cluster based on a score, according to an embodiment. Referring to FIG. 7A, for example, the horizontal axis (or x-axis) of the graph may represent a score corresponding to the processing performance of a workload set, and the vertical axis (or y-axis) of the graph may represent the power required by the corresponding cluster. A first graph (711) may be a graph for a first cluster (260), a second graph (721) may be a graph for a second cluster (270), a third graph (731) may be a graph for a third cluster (280), and a fourth graph (741) may be a graph for a fourth cluster (290). For example, the closer the graph for each cluster is to a counterclockwise direction of a reference line (706) that rotates around the (0,0) point, the worse the performance-per-power ratio, which is a second performance value, is.
[0111] In one embodiment, referring to the first graph (711), the second graph (721), the third graph (731), and the fourth graph (741), each cluster may have a different power value required to achieve a specific score of performance when executing the first set of workloads.
[0112] FIG. 7B may represent graphs representing the power-to-performance ratio (e.g., score / corresponding power) of each cluster based on a score, according to an embodiment. For example, the horizontal axis of the graph may represent the score (e.g., the first performance value of the corresponding cluster * the corresponding frequency), and the vertical axis of the graph may represent the power-to-performance ratio (e.g., score / corresponding power) of the corresponding cluster. A first graph (712) may be a graph for a first cluster (260), a second graph (722) may be a graph for a second cluster (270), a third graph (732) may be a graph for a third cluster (280), and a fourth graph (742) may be a graph for a fourth cluster (290). For example, as the power-to-performance ratio of a graph decreases for a specific score, the operating efficiency of the corresponding cluster may deteriorate. That is, the corresponding cluster may have to use more power to achieve the same performance or score.
[0113] In one embodiment, referring to the first graph (712), the second graph (722), the third graph (732), and the fourth graph (742), each cluster may have different power-to-performance ratios when performing a specific score when executing the first workload set. Furthermore, the change trends in power-to-performance ratios may also vary across clusters.
[0114] FIG. 7C may represent graphs representing the power ratio (e.g., score / corresponding power) of each cluster based on a score, according to an embodiment. For example, the horizontal axis of the graph may represent frequency, and the vertical axis of the graph may represent the power ratio (e.g., score / corresponding power) of the corresponding cluster. A first graph (710) may be a graph for a first cluster (260), a second graph (720) may be a graph for a second cluster (270), a third graph (730) may be a graph for a third cluster (280), and a fourth graph (740) may be a graph for a fourth cluster (290). For example, when a reference line (707) is drawn horizontally, specific frequencies for each cluster corresponding to points of the graphs intersecting the reference line (707) may have the same power ratio and required power value per score. For example, when the baseline (707) is lowered, the frequencies of each cluster that intersect the baseline (707) may have a lower power ratio, and the operating efficiency of the cluster may deteriorate.
[0115] In one embodiment, referring to the first graph (710), the second graph (720), the third graph (730), and the fourth graph (740), each cluster may have different performance ratios when performing a specific score when executing the first workload set. Furthermore, the change trends in performance ratios may also vary across clusters.
[0116] FIGS. 8A, 8B, and 8C are graphs showing the performance of multiple clusters for a second workload set, according to one embodiment.
[0117] FIG. 8A may represent graphs representing the power required by one core within each cluster based on a score, according to an embodiment. For example, the horizontal axis of the graph may represent the score, and the vertical axis of the graph may represent the power required by the corresponding cluster. A first graph (761) may be a graph for a first cluster (260), a second graph (761) may be a graph for a second cluster (270), a third graph (761) may be a graph for a third cluster (280), and a fourth graph (761) may be a graph for a fourth cluster (290). For example, the closer the cluster-specific graph is to a counterclockwise direction of a reference line (708) that rotates around the (0,0) point, the worse the second performance value, the worse the performance-to-power ratio.
[0118] In one embodiment, referring to the first graph (761), the second graph (771), the third graph (781), and the fourth graph (791), each cluster may have different power values required to achieve a specific score of performance when executing the second workload set. In addition, when comparing FIGS. 7A and 8A, the change trends of the first graph (761), the second graph (771), the third graph (781), and the fourth graph (791) may differ from the change trends of the first graph (711), the second graph (721), the third graph (731), and the fourth graph (741).
[0119] FIG. 8B may represent graphs representing the power ratio (e.g., score / corresponding power) of each cluster based on a score, according to an embodiment. For example, the horizontal axis of the graph may represent the score (e.g., the first performance value of the corresponding cluster * the corresponding frequency), and the vertical axis of the graph may represent the power ratio (e.g., score / corresponding power) of the corresponding cluster. A first graph (762) may be a graph for a first cluster (260), a second graph (772) may be a graph for a second cluster (270), a third graph (782) may be a graph for a third cluster (280), and a fourth graph (792) may be a graph for a fourth cluster (290). For example, the operating efficiency of the corresponding cluster may deteriorate. That is, the corresponding cluster may have to use more power to achieve the same performance or score.
[0120] In one embodiment, referring to the first graph (762), the second graph (762), the third graph (762), and the fourth graph (762), each cluster may have different power ratios when it performs a specific score when executing the second workload set. In addition, the change trends of the power ratios may also differ for each cluster. In addition, when comparing FIGS. 7B and 8B, the change trends of the first graph (762), the second graph (772), the third graph (782), and the fourth graph (792) may differ from the change trends of the first graph (712), the second graph (722), the third graph (732), and the fourth graph (742).
[0121] FIG. 8C may represent graphs representing the power ratio (e.g., score / corresponding power) of each cluster based on a score, according to an embodiment. For example, the horizontal axis of the graph may represent frequency, and the vertical axis of the graph may represent the power ratio (e.g., score / corresponding power) of the corresponding cluster. A first graph (810) may be a graph for a first cluster (260), a second graph (820) may be a graph for a second cluster (270), a third graph (830) may be a graph for a third cluster (280), and a fourth graph (840) may be a graph for a fourth cluster (290). For example, when a reference line (709) is drawn horizontally, specific frequencies for each cluster corresponding to points of the graphs intersecting the reference line (709) may have the same power ratio and required power value per score. For example, when the baseline (709) is lowered, the frequencies of each cluster that intersect the baseline (709) may have a lower power ratio, and the operating efficiency of the cluster may deteriorate.
[0122] According to one embodiment, referring to the first graph (810), the second graph (820), the third graph (830), and the fourth graph (840), each cluster may have different power ratios when it performs a specific score when executing the second workload set. In addition, the change trends of the power ratios may also differ for each cluster. In addition, when comparing FIGS. 7C and 8C, the change trends of the first graph (760), the second graph (770), the third graph (780), and the fourth graph (790) may differ from the change trends of the first graph (710), the second graph (720), the third graph (730), and the fourth graph (740).
[0123] Referring to FIGS. 7A through 8C above, the performance (e.g., power-to-performance ratio) of each cluster may vary depending on the workload. Considering this, according to one embodiment, the electronic device (201) may generate a table that considers the currently executing workload and the characteristics of each cluster in real time, and control the clusters using the generated table.
[0124] Referring to FIGS. 7C and 8C , according to an embodiment, different power ratios may be obtained for each workload even when the specified frequency is the same. According to an embodiment, the electronic device (201) may obtain a new table for the corresponding workload set based on obtaining the power ratio of each cluster for the specified frequency. Through this, the electronic device (201) may generate a table that reflects the performance differences of clusters (260, 270, 280, 290) that may change depending on the type of workload.
[0125] The second table for FIGS. 9A and 9B described below can be generated based on the power ratio by frequency (e.g., score = first performance value * corresponding frequency, power ratio = score / corresponding power) as described in FIGS. 7C and 8C. However, the technical features of the present invention may not be limited thereto, and may include various forms of tables for controlling the performance of each cluster that varies depending on the workload.
[0126] Meanwhile, the graphs shown in FIGS. 7a to 8c are exemplary, and the technical features of the present invention may not be limited thereto.
[0127] FIGS. 9A and 9B are diagrams illustrating a method for an electronic device to obtain different second tables for controlling multiple clusters for different sets of workloads, according to one embodiment.
[0128] FIG. 9A is a diagram illustrating a method for obtaining a second table for controlling multiple clusters for a first workload set, according to one embodiment.
[0129] Referring to FIG. 9A, according to one embodiment, the electronic device (201) may obtain a table (910) based on the second performance value (e.g., power ratio) for each cluster for the specified frequency obtained or confirmed in FIG. 6A.
[0130] According to one embodiment, the table (910) may include, for each cluster, each power ratio and a designated frequency corresponding thereto. For example, the table (910) may arrange or sort the corresponding frequency values according to the order of the power ratios (e.g., ascending order) for each cluster. For example, the electronic device (201) may arrange the designated frequencies for each of the plurality of clusters (260, 270, 280, 290) from the lowest value to the highest value among the power ratios. When a frequency value corresponding to a specific power ratio is not identified for a corresponding cluster, the table (910) may leave the frequency value corresponding to the specific frequency blank.
[0131] FIG. 9b is a diagram illustrating a method for obtaining a second table for controlling multiple clusters for a second workload set, according to one embodiment.
[0132] Referring to FIG. 9b, according to one embodiment, the electronic device (201) may obtain a table (920) based on the second performance value (e.g., power ratio) for each cluster for the specified frequency obtained or confirmed in FIG. 6b.
[0133] According to one embodiment, the table (920) may include, for each cluster, each power ratio and a designated frequency corresponding thereto. For example, the table (920) may arrange or sort corresponding frequency values according to the order of the power ratios (e.g., ascending order) for each cluster. For example, the electronic device (201) may arrange designated frequencies for each of the plurality of clusters (260, 270, 280, 290) from the lowest value to the highest value among the power ratios. When a frequency value corresponding to a specific power ratio is not confirmed for a corresponding cluster, the table (920) may leave the frequency value corresponding to the specific frequency blank. For example, the table (920) may be generated based on excluding a frequency range in which the power ratio actually worsens as the frequency decreases or a frequency range in which the performance of the cluster is so poor that the frequency should not be limited. For example, in obtaining the table (920), the electronic device (201) may obtain (or generate) the table (920) such that the first cluster is used for control only up to 902 MHz, and the second and third clusters are used for control only up to 960 MHz. For example, in the table (920), a frequency range below the frequency may be excluded from consideration.
[0134] In Figures 10a and 10b below, a method of obtaining a second table by adding frequency values to empty spaces in each table (910 and 920) will be described.
[0135] FIGS. 10A and 10B are diagrams illustrating second tables for controlling multiple clusters for different workload sets, according to one embodiment.
[0136] FIG. 10A is a diagram illustrating a second table for controlling multiple clusters for a first workload set, according to one embodiment.
[0137] Referring to FIG. 10A, according to one embodiment, the electronic device (201) may obtain a second table for controlling a plurality of clusters (260, 270, 280, 290) based on monitoring a first set of running workloads.
[0138] According to one embodiment, the electronic device (201) may add frequency values to empty spaces in the table (910) of FIG. 9A. For example, if a frequency value corresponding to a specific power ratio is not confirmed for each cluster, the electronic device (201) may check the frequency value of the next order in ascending order. If the frequency value of the next order is confirmed, the electronic device (201) may add the corresponding frequency value to the empty space of the previous order. Through this, the electronic device (201) may arrange a designated frequency for each of the plurality of clusters (260, 270, 280, 290) from the lowest value to the highest value among the power ratios. For example, the designated frequency may be a frequency designated in advance to the electronic device (201), and the designated power may represent a power value when each of the plurality of clusters (260, 270, 280, 290) is driven at the corresponding designated frequency. That is, the specified frequencies and specified powers corresponding to the power ratios in the second table can be arranged for each of the multiple clusters (260, 270, 280, 290).
[0139] According to one embodiment, the electronic device (201) may add information about the maximum power (e.g., the maximum required power value) for the power ratio to the second table (1010). For example, the electronic device (201) may check the maximum power when all of the plurality of clusters (260, 270, 280, 290) are driven at a specific power ratio. For example, the electronic device (201) may obtain the maximum power (or maximum power values) of the plurality of clusters for each power ratio based on the product of the number of cores included in each cluster and the power specified for the corresponding frequency plus the value. For example, when the power-to-performance ratio is 4.440, the maximum power may be the sum of the power (e.g., 1906.9) of the first cluster (260) multiplied by the number of cores (e.g., 1), the power (1442.6) of the second cluster (270) multiplied by the number of cores (e.g., 3) (e.g., 1442.6*3), the power (1262.5) of the third cluster (280) multiplied by the number of cores (e.g., 2) (e.g., 1262.5*2), and the power (405.3) of the fourth cluster (290) multiplied by the number of cores (e.g., 2) (e.g., 405.3*2), which is the sum of all of the following: 9570.5. The electronic device (201) may add the maximum power (or maximum power value) corresponding to each power ratio to the second table in the order of the power ratios (e.g., ascending order). Depending on the implementation, information on the maximum power may be excluded from the second table (1010).
[0140] According to one embodiment, the electronic device (201) may control the plurality of clusters (260, 270, 280, 290) using the first table (1010). For example, the electronic device (201) may sequentially reduce the frequency applied to each of the plurality of clusters (260, 270, 280, 290) from a low power ratio to a high power ratio for heat generation control or power control. Alternatively, the electronic device (201) may sequentially reduce the power applied to each of the plurality of clusters (260, 270, 280, 290) from a low power ratio to a high power ratio for heat generation control or power control.
[0141] FIG. 10b is a diagram illustrating a second table for controlling multiple clusters for a second workload set, according to one embodiment.
[0142] According to one embodiment, the electronic device (201) can obtain the second table (1020) for the second workload set in the same manner as in FIG. 10A. The method for obtaining the second table (1020) for the second workload set overlaps with the description in FIG. 10A and will therefore be omitted.
[0143] Referring to FIGS. 10A and 10B , according to an embodiment, the electronic device (201) may obtain the second table (1010) of FIG. 10A when a first workload set is being executed by a plurality of clusters (260, 270, 280, 290). The electronic device (201) may change or update an existing first table stored in the memory (230) to the second table (1010). According to an embodiment, the electronic device (201) may obtain the second table (1020) of FIG. 10B when a second workload set is being executed by a plurality of clusters (260, 270, 280, 290). The electronic device (201) may change or update an existing first table stored in the memory (230) to the second table (1020). That is, the electronic device (201) can obtain a second table (1010 or 1020) containing different values depending on the type of workload being executed, and change the existing table to the newly obtained second table (1010 or 1020).
[0144] Referring to FIGS. 10A and 10B , according to one embodiment, values included in the second table (1020) for the second workload set (e.g., power ratios and frequency values corresponding to the power ratios) may be different from values included in the first table (1010) for the first workload set. That is, since a performance difference may occur between the plurality of clusters (260, 270, 280, 290) depending on the type of workload, values included in the second table (1010 or 1020) generated depending on the workload being executed by the plurality of clusters (260, 270, 280, 290) may also be different.
[0145] Referring to FIGS. 10A and 10B , according to an embodiment, the power ratios and corresponding frequency values included in each table (1010 or 1020) may be different. That is, the frequency and corresponding power ratio for driving each cluster may be different for each workload. Accordingly, when the electronic device (201) performs heat control or power control, the second table for controlling multiple clusters (260, 270, 280, 290) according to the type of workload being executed needs to be updated in real time. Through this, the electronic device (201) can perform heat control or power control while maintaining higher performance than before.
[0146] Meanwhile, the values included in the second table (1010 or 1020) illustrated in FIGS. 10a and 10b are exemplary, and the technical features of the present invention may not be limited thereto.
[0147] FIG. 11 is a diagram illustrating a method for controlling multiple clusters according to a maximum power included in a second table, according to one embodiment.
[0148] Referring to FIG. 11, according to an embodiment, the electronic device (201) may utilize the second table (1010 or 1020) when performing heat generation control or power control. The electronic device (201) may perform heat generation control or power control based on the maximum power. At this time, the electronic device (201) may control the frequency or power applied to the plurality of clusters (260, 270, 280, 290) using the maximum power to be controlled. For example, when the electronic device (201) reduces the power consumption of the electronic device (201) with a specific driving power, the electronic device (201) may identify the maximum power corresponding to the specific driving power. The electronic device (201) may apply the frequency or power corresponding to the identified maximum power to each cluster.
[0149] According to one embodiment, the electronic device (201) may sequentially reduce the frequency or power applied to the plurality of clusters (260, 270, 280, 290) while sequentially reducing the maximum power. For example, the electronic device (201) may sequentially reduce the maximum power as in the first graph (1110) using a second table (1010) based on a first workload set. For example, the electronic device (201) may sequentially reduce the maximum power as in the second graph (1120) using a second table (1020) based on a second workload set. For example, the horizontal axes of the first graph (1110) and the second graph (1120) may represent steps of sequentially controlling power.
[0150] Through the above-described method, the electronic device (201) can control a plurality of clusters (260, 270, 280, 290) based on the maximum power. Through this, the electronic device (201) can control (e.g., limit) the frequency or power of the plurality of clusters (260, 270, 280, 290) while minimizing performance degradation by using the second table (1010 or 1020).
[0151] According to one embodiment, an electronic device may include a processor including a plurality of clusters of different types and a memory storing instructions. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to control an operating frequency or driving power of the plurality of clusters using a first table stored in the memory. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to determine, for a plurality of workloads executed by the plurality of clusters, a first performance value indicating a usage amount of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain, based on determining that the usage amount satisfies a specified condition, a second table including second performance values indicating a performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value. According to one embodiment, the instructions, when executed by the processor, may cause the electronic device to control the operating frequency or the driving power of the plurality of clusters using the second table.
[0152] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to determine, for a plurality of workloads executed by the plurality of clusters, that the utilization satisfies the specified condition after a specified time has elapsed.
[0153] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to determine, based on the usage, an occupancy rate of each of the plurality of clusters for each of the plurality of workloads during the specified period of time. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to determine, for each of the plurality of workloads, a first value representing a performance of each of the plurality of clusters during the specified period of time.
[0154] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain the first performance value for each of the plurality of clusters based on dividing a sum of the product of the occupancy times the first value by the sum of the occupancy of each cluster for the plurality of workloads.
[0155] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain third performance values when each of the plurality of clusters is driven according to each of the designated frequencies based on a product of the first performance value and each of the designated frequencies. In one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain the second performance value based on dividing each of the third performance values by a power designated for the corresponding frequency.
[0156] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to obtain maximum power values of the plurality of clusters for the second performance values based on the product of the number of cores included in each cluster and the power specified for the corresponding frequency.
[0157] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to add the maximum power values to the second table.
[0158] According to one embodiment, the specified power may include a power value when each of the plurality of clusters is driven at the corresponding frequency.
[0159] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to place the specified frequency and the specified power corresponding to each of the second performance values in the second table for each of the plurality of clusters.
[0160] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to place a designated frequency for each of the plurality of clusters in the second table from a lower performance value to a higher performance value among the second performance values.
[0161] In one embodiment, the instructions, when executed by the processor, may cause the electronic device to update the first table with the second table.
[0162] In one embodiment, the processor may include a central processing unit (CPU).
[0163] According to one embodiment, a method of operating an electronic device may include controlling an operating frequency or driving power of a plurality of clusters included in a processor of the electronic device using a first table stored in a memory included in the electronic device. According to one embodiment, the method of operating the electronic device may include checking a first performance value indicating a usage amount of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters for a plurality of workloads executed by the plurality of clusters. According to one embodiment, the method of operating the electronic device may include obtaining a second table including second performance values indicating a performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value, based on checking that the usage amount satisfies a specified condition. According to one embodiment, the method of operating the electronic device may include controlling the operating frequency or the driving power of the plurality of clusters using the second table.
[0164] According to one embodiment, the operating method of the electronic device may further include an operation of confirming that the usage satisfies the specified condition when a specified time elapses for a plurality of workloads executed by the plurality of clusters.
[0165] According to one embodiment, the operation of checking the first performance value may include an operation of checking an occupancy rate of each of the plurality of clusters for each of the plurality of workloads during the specified time based on the usage, an operation of checking a first value representing a performance of each of the plurality of clusters for each of the plurality of workloads during the specified time, and an operation of obtaining the first performance value of each of the plurality of clusters based on dividing a sum of values obtained by multiplying the occupancy rate by the first value by a sum of occupancies of each cluster for the plurality of workloads.
[0166] According to one embodiment, the operation of verifying the second performance value may include an operation of obtaining third performance values when each of the plurality of clusters is driven according to each of the specified frequencies based on multiplying the first performance value by each of the specified frequencies, and an operation of obtaining the second performance value based on dividing each of the third performance values by a power specified for the corresponding frequency.
[0167] According to one embodiment, the method of operating the electronic device may further include obtaining maximum power values of the plurality of clusters for the second performance values based on adding a value obtained by multiplying the number of cores included in each cluster by the power specified for the corresponding frequency, and adding the maximum power values to the second table.
[0168] In one embodiment, the specified power may include a power value when each of the plurality of clusters is driven at the corresponding frequency.
[0169] In one embodiment, the operation of obtaining the second table may include an operation of arranging the designated frequency and the designated power corresponding to each of the second performance values in the second table for each of the plurality of clusters.
[0170] According to one embodiment, the method of operating the electronic device may further include arranging a designated frequency for each of the plurality of clusters from a lower performance value to a higher performance value among the second performance values in the second table.
[0171] According to one embodiment, the method of operating the electronic device may further include updating the first table with the second table.
[0172] In a non-transitory computer-readable recording medium storing instructions, the instructions, when executed by a processor, cause the electronic device to control the operating frequency or driving power of a plurality of clusters included in the processor using a first table stored in a memory included in the electronic device, and, with respect to a plurality of workloads executed by the plurality of clusters, to check a first performance value indicating the usage of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters, and, based on checking that the usage satisfies a specified condition, to obtain a second table including second performance values indicating the performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value, and to control the operating frequency or the driving power of the plurality of clusters using the second table.
[0173] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
[0174] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0175] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0176] Various embodiments of the present document may be implemented as software (e.g., program (140)) including one or more instructions stored in a storage medium (e.g., built-in memory or external memory) readable by a machine (e.g., electronic device (101)). For example, a processor (e.g., processor (120)) of the machine (e.g., electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0177] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0178] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In the electronic device (201), A processor (220) comprising multiple clusters (260, 270, 280, 290) of different types; and A memory (230) for storing instructions, wherein the instructions, when executed by the processor, cause the electronic device to: Controlling the operating frequency or driving power of the plurality of clusters using the first table stored in the above memory (230), For a plurality of workloads executed by the plurality of clusters, a first performance value indicating the usage of each of the plurality of clusters and instructions executed in one cycle of each of the plurality of clusters is confirmed, Based on the determination that the above utilization satisfies the specified condition, a second table including second performance values representing the performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies is obtained using the first performance value, An electronic device that controls the operating frequency or the driving power of the plurality of clusters using the second table.
2. In the first paragraph, when the instructions are executed by the processor, the electronic device, An electronic device that verifies that the usage satisfies the specified condition when a specified time elapses for a plurality of workloads executed by the plurality of clusters.
3. In any one of the first and second paragraphs, the instructions, when executed by the processor, cause the electronic device to: Based on the above usage, check the occupancy rate of each of the plurality of clusters for each of the plurality of workloads during the specified time, During the specified time, for each of the plurality of workloads, a first value representing the performance of each of the plurality of clusters is checked, An electronic device that obtains the first performance value of each of the plurality of clusters based on dividing the sum of the values obtained by multiplying the first value by the occupancy by the sum of the occupancies of each cluster for the plurality of workloads.
4. In any one of paragraphs 1 to 3, the instructions, when executed by the processor, cause the electronic device to: Obtain third performance values when each of the plurality of clusters is driven according to each of the specified frequencies based on the product of the first performance value and each of the specified frequencies, An electronic device that obtains the second performance value based on dividing each of the third performance values by the power specified for the corresponding frequency.
5. In any one of paragraphs 1 to 4, the instructions, when executed by the processor, cause the electronic device to: Based on the product of the number of cores included in each cluster and the power specified for the corresponding frequency, the maximum power values of the plurality of clusters for the second performance values are obtained, An electronic device that adds the above maximum power values to the second table.
6. In any one of paragraphs 1 to 5, An electronic device in which the above-mentioned specified power includes a power value when each of the plurality of clusters is driven at the corresponding frequency.
7. In any one of paragraphs 1 to 6, the instructions, when executed by the processor, cause the electronic device to: An electronic device that arranges the specified frequency and the specified power corresponding to each of the second performance values in the second table for each of the plurality of clusters.
8. In any one of paragraphs 1 to 7, the instructions, when executed by the processor, cause the electronic device to: An electronic device that arranges a designated frequency for each of the plurality of clusters from a lower performance value to a higher performance value among the second performance values in the second table.
9. In any one of paragraphs 1 to 8, the instructions, when executed by the processor, cause the electronic device to: An electronic device that updates the first table with the second table.
10. In any one of paragraphs 1 to 9, The above processor is an electronic device including a central processing unit (CPU).
11. In the operating method of an electronic device (201), An operation of controlling the operating frequency or driving power of a plurality of clusters (260, 270, 280, 290) included in a processor of the electronic device by using a first table stored in a memory (230) included in the electronic device; An operation of checking a first performance value representing the usage of each of the plurality of clusters and instructions performed in one cycle of each of the plurality of clusters for a plurality of workloads executed by the plurality of clusters; An operation of obtaining a second table including second performance values representing the performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies using the first performance value based on confirming that the above utilization satisfies the specified condition; and An operating method of an electronic device, comprising an operation of controlling the driving frequency or the driving power supplied to the plurality of clusters using the second table.
12. In paragraph 11, An operating method of an electronic device further comprising an operation of confirming that the usage satisfies the specified condition when a specified time elapses for a plurality of workloads executed by the plurality of clusters.
13. In any one of the 11th and 12th clauses, the operation of confirming the first performance value comprises: An operation of checking the occupancy rate of each of the plurality of clusters for each of the plurality of workloads during the specified time based on the above usage; During the specified time, for each of the plurality of workloads, an operation of checking a first value representing the performance of each of the plurality of clusters; and An operating method of an electronic device, comprising an operation of obtaining the first performance value of each of the plurality of clusters based on dividing the sum of the values obtained by multiplying the first value by the occupancy by the sum of the occupancies of each cluster for the plurality of workloads.
14. In any one of the 11th to 13th clauses, the operation of confirming the second performance value is: An operation of obtaining third performance values when each of the plurality of clusters is driven according to each of the specified frequencies based on the product of the first performance value and each of the specified frequencies; and A method of operating an electronic device, comprising obtaining the second performance value based on dividing each of the third performance values by a power specified for the corresponding frequency.
15. In a non-transitory computer-readable storage medium storing instructions, The above instructions, when executed by the processor, cause the electronic device to: Controlling the operating frequency or driving power of a plurality of clusters included in the processor using a first table stored in a memory included in the electronic device, For a plurality of workloads executed by the plurality of clusters, a first performance value indicating the usage of each of the plurality of clusters and instructions executed in one cycle of each of the plurality of clusters is confirmed, Based on the determination that the above utilization satisfies the specified condition, a second table including second performance values representing the performance per power of each of the plurality of clusters when the plurality of clusters operate at specified frequencies is obtained using the first performance value, A recording medium that controls the operating frequency or the driving power supplied to the plurality of clusters using the second table.
Citation Information
Patent Citations
Method for managing power for multi-core processor, recorded medium for performing method for managing power for multi-core processor and multi-core processor system for performing the same
KR1020110073631A
Core-level dynamic voltage and frequency scaling in a chip multiporcessor
KR1020140122745A
A Novel Composition
KR1020220113579A
Device for braking a sudden start of a vehicle
KR1020240123497A
Workload-based cognitive dynamic computing system optimization
US20210208932A1