WO2019205172A1 - 一种图像处理器的功率分配的方法、装置及系统 - Google Patents

一种图像处理器的功率分配的方法、装置及系统 Download PDF

Info

Publication number
WO2019205172A1
WO2019205172A1 PCT/CN2018/085192 CN2018085192W WO2019205172A1 WO 2019205172 A1 WO2019205172 A1 WO 2019205172A1 CN 2018085192 W CN2018085192 W CN 2018085192W WO 2019205172 A1 WO2019205172 A1 WO 2019205172A1
Authority
WO
WIPO (PCT)
Prior art keywords
power
image processor
preset
image
frame rate
Prior art date
Application number
PCT/CN2018/085192
Other languages
English (en)
French (fr)
Inventor
张旭
高璐
朱勇鑫
姜坤
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201880092619.6A priority Critical patent/CN112005218B/zh
Priority to PCT/CN2018/085192 priority patent/WO2019205172A1/zh
Publication of WO2019205172A1 publication Critical patent/WO2019205172A1/zh
Priority to US17/079,917 priority patent/US11301029B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3218Monitoring of peripheral devices of display devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to the field of electronic technologies, and in particular, to a method, an apparatus, and a system for power allocation of an image processor.
  • the image processor unit (GPU) closely related to the game running effect may be in a power bottleneck state, that is, the input power is low, so that the GPU cannot meet the smooth running operation of the game application, thereby making The frame rate of the game application runtime is reduced or even stuck, resulting in poor running of the game application, and the user's gaming experience is poor, similar to this situation is also very common on other devices. And not limited to games, similar problems exist for other applications that need to consume image processors.
  • the technical problem to be solved by the embodiments of the present application is to provide an apparatus, system and method for power allocation of an image processor, so as to improve an image display effect.
  • an embodiment of the present application provides an apparatus for power allocation of an image processor, which may include: a frame rate detecting module, configured to detect a frame rate of image data to be displayed currently; and a power allocation module, configured to: Determining whether the frame rate is lower than a preset frame rate threshold; if the frame rate is lower than the preset frame rate threshold, determining that the display of the image data is in a stuck state; in response to the stuck state, Determining whether the image processor reaches a power bottleneck state; if it is determined that the image processor reaches the power bottleneck state, increasing the power of the image processor and reducing the power of other modules related to the display.
  • This solution can reasonably perform power redistribution and improve the performance of the image processor.
  • the sum of the power of the image processor and the power of other modules related to the display does not exceed a preset power upper limit.
  • the preset power upper limit is determined by a battery temperature, a system temperature, or a board temperature at which the device collected by the sensor is located. The scheme is capable of reallocating power when the total system power is limited to mitigate the power bottleneck state of the image processor.
  • the other module includes at least one of a control processor, another processor, or a memory. This solution allows power redistribution between different devices to balance system performance.
  • the power distribution module when determining whether the image processor reaches a power bottleneck state, is specifically configured to: compare a boundary measure value of the image processor with a preset threshold; When the boundary measurement reaches the preset threshold, determining that the image processor reaches a power bottleneck state; wherein the boundary measurement value is a parameter for measuring a load state of the image processor.
  • the scheme can be combined with frame rate detection to further accurately determine the image processor's power bottleneck state.
  • the device further includes: an information saving module, configured to record the stuck scene information when determining that the display of the image data is in a stuck state; wherein the Receive scene information comprises The execution time of the application programming interface OpenGL API, the hardware counter Hardware Counter information, and the number of renderings of the open image interface OpenGL Draw Call in the open image interface of the image processor driver.
  • the Carton scene information saved by this scheme helps the R&D personnel to analyze the Caton scene.
  • the device further includes: a cardon scene information saving switch module, configured to receive a cardot scene information saving switch instruction input by the user, and save the indication of the switch instruction according to the cardon scene information, Turn the information saving module on or off.
  • a cardon scene information saving switch module configured to receive a cardot scene information saving switch instruction input by the user, and save the indication of the switch instruction according to the cardon scene information, Turn the information saving module on or off.
  • the device further includes: an intelligent power distribution switch module, configured to receive an intelligent power distribution switch command input by a user, according to the instruction of the smart power distribution switch instruction, to enable or The power distribution module is turned off.
  • an intelligent power distribution switch module configured to receive an intelligent power distribution switch command input by a user, according to the instruction of the smart power distribution switch instruction, to enable or The power distribution module is turned off.
  • the power distribution module is specifically configured to: increase power of the image processor according to a preset power adjustment amount, and reduce and adjust according to the preset power adjustment amount.
  • the power of the other module is increased; or the power of the image processor is increased according to the value of the preset power adjustment function, and the power of the other module is reduced according to the value of the preset power adjustment function.
  • the power distribution module is further configured to: restore the image after increasing a power of the image processor and reducing a preset time of power of other modules related to the display
  • the power of the processor and the other modules is assigned to an initial value. After adopting this scheme, once the power bottleneck state is released, the system returns to the original state.
  • an embodiment of the present application provides a system for power allocation of an image processor, which may include: an image processor for performing image processing; and a control processor for: detecting image data currently to be displayed. a frame rate; determining whether the frame rate is lower than a preset frame rate threshold; if the frame rate is lower than the preset frame rate threshold, determining that the display of the image data is in a stuck state; responding to the card And determining whether the image processor reaches a power bottleneck state; if it is determined that the image processor reaches the power bottleneck state, increasing power of the image processor and reducing power of other modules related to the display.
  • the sum of the power of the image processor and the power of other modules related to the display does not exceed a preset power upper limit.
  • the preset power upper limit is determined by a battery temperature, a system temperature, or a board temperature at which the device collected by the sensor is located.
  • the other module includes at least one of the control processor, other processor, or memory.
  • control processor is specifically configured to: compare a boundary measure value of the image processor with a preset threshold; and when the boundary measurement reaches the preset threshold, determine The image processor reaches a power bottleneck state; wherein the boundary measure is a parameter used to measure a load state of the image processor.
  • the system further includes: a memory, configured to record the stuck scene information when the control processor determines that the display of the image data is in a stuck state; wherein the The scene information includes an execution time of the application programming interface OpenGL API in the open image interface, a hardware counter, a hardware counter information, and a number of renderings of the open image interface in the state of the image processor driver OpenGL Draw. Call.
  • a memory configured to record the stuck scene information when the control processor determines that the display of the image data is in a stuck state
  • the scene information includes an execution time of the application programming interface OpenGL API in the open image interface, a hardware counter, a hardware counter information, and a number of renderings of the open image interface in the state of the image processor driver OpenGL Draw. Call.
  • the memory or another memory in the device is configured to store a driver software code instruction of the control processor, and the instruction is used to drive the control processor to execute various types of running functions mentioned before.
  • control processor is further configured to: receive a cardot scene information saving switch instruction input by the user, save an indication of the switch instruction according to the cardon scene information, and turn on or off the recording cardon scene. The function of information.
  • control processor is further configured to: receive a smart power distribution switch instruction input by a user, and enable or disable the smart power of the image processor according to the indication of the smart power switch instruction. Assigned features.
  • control processor is specifically configured to: increase power of the image processor according to a preset power adjustment amount, and reduce the display related to the display according to the preset power adjustment amount The power of the other modules; or increasing the power of the image processor according to the value of the preset power adjustment function, and reducing the power of other modules related to the display according to the value of the preset power adjustment function .
  • control processor is further configured to: restore the image after increasing a power of the image processor and reducing a preset time of power of other modules related to the display
  • the power of the processor and the other modules is assigned to an initial value.
  • an embodiment of the present application provides a method for power allocation of an image processor, which may include: detecting, when the application is running, a frame rate of image data to be displayed; if the frame rate is lower than a pre- Setting a frame rate threshold, determining that the display of the image data is in a stuck state; determining, in response to the stuck state, whether the image processor reaches a power bottleneck state; if the image processor reaches a power bottleneck state, dynamically increasing The power of the image processor and the power of other modules associated with the display.
  • the sum of the power of the image processor and the power of other modules related to the display does not exceed a preset power upper limit.
  • the preset power upper limit is determined by a battery temperature, a system temperature, or a board temperature at which the device collected by the sensor is located.
  • the other modules include a control processor and a memory.
  • the determining whether the image processor reaches a power bottleneck state comprises: determining, according to a comparison result of a boundary measure value of the boundary of the image processor and a preset threshold, determining the image processor Whether the power bottleneck state is reached; when the boundary measurement value reaches the preset threshold, determining that the image processor reaches a power bottleneck state; and when the boundary measurement value does not reach the preset threshold, determining the image The processor does not reach a power bottleneck state; wherein the boundary measurement is determined based on voltage data and frequency data read in the image processor driver.
  • the method when it is determined that the display of the image data is in a stuck state, the method further includes: recording the stuck scene information; wherein the Receive scene information includes the image processor driver at the In the state of Carton, the execution time of the application programming interface OpenGL API in the open image interface, the hardware counter Hardware Counter information, and the number of renderings of the open image interface OpenGL Draw Call.
  • the method further includes: receiving a cardot scene information saving switch instruction input by a user, and saving the switch instruction indication according to the cardon scene information, and turning on or off the function of recording the cardot scene information. .
  • the method further includes: receiving an intelligent power distribution switch instruction input by a user, and turning on or off the function of performing intelligent power distribution on the image processor according to the indication of the smart power switch instruction .
  • the dynamically increasing the power of the image processor and reducing the power of other modules related to the display includes: dynamically increasing the amount according to a preset power adjustment amount. Determining the power of the image processor, and reducing the power of the other modules related to the display according to the preset power adjustment amount; or dynamically increasing the power of the image processor according to the value of the preset power adjustment function, And reducing the power of other modules related to the display according to the value of the preset power adjustment function.
  • the method further includes dynamically restoring power of the image processor and the other module after the image processor that reaches the power bottleneck state releases the power bottleneck state for a preset time. Assigned to the initial value.
  • an embodiment of the present application provides an apparatus for power allocation of an image processor, which may include: a processor, a memory, and a bus, where the processor and the memory are connected by a bus, wherein the memory is used for storing A set of program code, the processor is configured to invoke the program code stored in the memory, and perform the steps in the first aspect of the embodiment of the present application or the implementation manner in any one of the first aspect.
  • the apparatus may further comprise an image processor.
  • an embodiment of the present application provides a computer readable storage medium having instructions stored therein that, when run on a computer, implement any of the above third or third aspects The method in the possible implementation.
  • FIG. 1 is a schematic structural diagram of a system for power allocation of an image processor according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of an apparatus for power allocation of an image processor according to an embodiment of the present invention
  • FIG. 3 is a schematic structural diagram of a frame rate detecting module according to an embodiment of the present disclosure
  • FIG. 4 is a schematic structural diagram of an intelligent power adjustment mechanism according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic flowchart diagram of a method for power allocation of an image processor according to an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of a system framework for power allocation according to an embodiment of the present invention
  • the system framework may include: an image processor 10, a control processor 20, and a memory 30. It can be used in large game runs, high-definition video playback, or other scenarios where complex image rendering processing is required.
  • the system can be included in a device, which can be a mobile terminal, such as a cell phone, tablet or wearable device, or other device such as a desktop computer, server or in-vehicle device.
  • the system framework can be a System-on-a-Chip (SoC) or be considered a chip.
  • SoC System-on-a-Chip
  • the image processing unit (GPU) 10 is the most important component of a graphics card in a device such as a computer or a mobile terminal, and determines the image processing capability and image acceleration performance of the device.
  • the GPU in a mobile terminal such as a smart phone or a tablet computer is mainly taken as an example for description.
  • smartphone screens are getting bigger and bigger, the system is getting more and more beautiful, and the game effects are getting more and more dazzling.
  • the traditional mobile phone only relies on the central processing unit (CPU) for image processing, which can not meet the development of today's smart phones. need. With the rapid development of smart phones in recent years, the introduction of three-dimensional (3D) acceleration chips has injected a strong vitality into the entertainment of smart phones.
  • the image processor 10 can be responsible for the necessary 3D processing, and can also take over at least part of the image display function from the CPU, and optionally further provide auxiliary processing during video playback, video recording, and photography, so that the CPU is greatly liberated. You can concentrate on pure instructions without having to deal with heavy image processing tasks. Thereby, the 3D performance of the mobile phone system is greatly improved.
  • the image processor 10 When running a large game application, the image processor 10 generates a large amount of heat, and at this stage, the temperature control of the smartphone is realized mainly by controlling the total output power of the system including the image processor 10.
  • the control processor 20 is a control center of the device, and can execute various application programs, read or call data collected or saved by other modules (such as the image processor 10, the memory 30, etc.) for processing and output, and realize the processing of other modules. Management and control. It can be a central processing unit, and can be other types of processors, such as a digital signal processing (DSP), an application specific integrated circuit (ASIC), a microprocessor or a microcontroller.
  • DSP digital signal processing
  • ASIC application specific integrated circuit
  • the CPU in a mobile terminal such as a smart phone or a tablet computer is mainly taken as an example for description.
  • the CPU is the control center system of the mobile terminal and the control center of the logic part. It can be controlled by running software in memory 30 and calling a database in memory 30.
  • the CPU can have one or more cores, such as a more common dual-core processor, a quad-core processor, or even an eight-core processor.
  • the CPU includes a large core and a small core.
  • the core used to run the application can be selected according to the performance requirements of the application and the power consumption of the terminal.
  • the memory 30 may include a power-down volatile memory such as a random access memory (RAM), or a non-power-down volatile memory such as a read only memory (ROM) or a flash memory, and may also include various caches. Such as first in first out (FIFO) memory or advanced out (FILO) memory. It can provide instructions and data to the control processor 20. Taking the mobile terminal as an example, the memory 30 can be used to load the operating system and application software when the mobile terminal is running, cache data and instructions to be processed by the CPU, and can also be used to permanently store the operating system and application software.
  • RAM random access memory
  • ROM read only memory
  • flash memory may also include various caches. Such as first in first out (FIFO) memory or advanced out (FILO) memory. It can provide instructions and data to the control processor 20.
  • FIFO first in first out
  • FILO advanced out
  • the image processor 10 can be used for image processing; for example, image data to be displayed by various applications can be processed.
  • the application includes a game application, a video playback application, or other applications that require a large amount of image processing.
  • the control processor 20 is configured to: detect a frame rate of the image data to be displayed; determine whether the frame rate is lower than a preset frame rate threshold; if the frame rate is lower than the preset frame rate threshold, determine The display of the image data is in a stuck state; determining whether the image processor reaches a power bottleneck state in response to the stuck state; and if the image processor 10 is determined to reach the power bottleneck state, increasing the image processing
  • the power of the device 10, and the power of other modules associated with the display is equivalent to the power redistribution performed.
  • the sum of the power of the image processor 10 and the power of other modules related to the display does not exceed a preset power upper limit. This ensures the stability of the entire system and good equipment temperature control management.
  • the other modules may include, but are not limited to, at least one of the control processor 10, other processors, or the memory 30.
  • the stuck state is a display state of the image data when the frame rate is lower than the preset frame rate threshold, and the frame rate related to the display is considered to be too low to display the image that is not smooth enough.
  • the image processor In order to further accurately locate the reason, it is necessary to further determine whether the image processor reaches the power bottleneck state. Through the two-step judgment method, it is possible to accurately identify the cause of the occurrence of the Caton, and reasonably realize the power redistribution or adjustment.
  • control processor 20 may include a CPU, such as a CPU running an operating system, and the control processor 20 may also include other controllers than the CPU running the operating system, for example, in an Android system, which may be run by the CPU.
  • the Android system and various applications are separately configured with one other processor to implement the above-described functions of the control processor 20, which is not limited in this application.
  • the control processor 20 is specifically configured to: compare a boundary measure value of the image processor 10 with a preset threshold; and when the boundary measurement reaches the When the threshold is preset, the image processor 10 is determined to reach a power bottleneck state; when the boundary measurement does not reach the preset threshold, the image processor 10 may be considered as not reaching a power bottleneck state, thus eliminating Subsequent power adjustments are made; wherein the boundary measurements are parameters used to measure the load state of the image processor 10.
  • the boundary measurement value may be calculated according to at least one of an operating frequency, an operating voltage, an operating current, or an operating time of the image processor 10 according to a driver of the image processor 10, for example, according to an operating frequency, an operating voltage, an operating current, and
  • the working time is the parameter value obtained by comprehensive calculation.
  • the above data can be obtained by the control processor 20 from the image processor 10, and then the boundary measurement values are calculated based on the data.
  • the controller processor 20 may record the Receive scene information into the memory 30 or other memory when determining that the display of the image data is in a stuck state; wherein the Karst scene information may include, but is not limited to, the image
  • the information of the current frame may be recorded, and the information of the first n frame including the current frame may be recorded, where n is an integer greater than 0, and the foregoing Karton scene information may be processed by the controller.
  • the device 20 is acquired from the image processor 10 and saved to the memory 30 or other memory.
  • the control processor 20 can also send an information storage instruction to the image processor 10 and the memory 30 or other memory to instruct the image processor 10 to output the above data. Save to memory 30 or other memory.
  • the Karton scene information record on the control processor 20 By adding the function of the Karton scene information record on the control processor 20, the information about the driver of the image processor 10 in the stuck state and the specific screen appearing in the state of the stuck state can be recorded, which facilitates the developer to extract the card.
  • the data is analyzed to quickly locate the problem, further optimize the driver and screen display, and effectively help the developer solve the problem.
  • a corresponding switch may be configured to enable or disable the corresponding function.
  • the control processor 20 may also be configured to: receive user input.
  • the Carton scene information save switch instruction, and the function of saving the switch scene information is turned on or off according to the indication that the cardon scene information saves the switch instruction.
  • the control processor 20 is further configured to: receive an intelligent power distribution switch instruction input by the user, and turn on or off a function of performing intelligent power allocation on the image processor according to the indication of the smart power switch instruction.
  • the control processor 20 is configured to increase the power of the image processor 10 according to a preset power adjustment amount, and reduce other related to the display according to the preset power adjustment amount.
  • the power of the module is increased; or the power of the image processor 10 is increased according to the value of the preset power adjustment function, and the power of other modules related to the display is reduced according to the value of the preset power adjustment function.
  • control processor 20 may alternatively be used to increase the power of the image processor 10 and reduce the power of other modules associated with the display. After the preset time, the power of the image processor 10 and the other modules is restored to an initial value.
  • the preset time here may be defined by the device or given a number of options for the user to select, or may be customized by the user, which is not limited in the embodiment of the present application.
  • the related modules of the description and display are insufficient in performance or insufficient in power. Since the total output power of the system may be lowered in the temperature control scenario, the module with strong correlation with the display is the image processor 10. Therefore, at this time, the power state of the image processor 10 can be preferentially detected to determine whether it reaches the power bottleneck state. If it reaches the power bottleneck state, the power of the image processor 10 is increased and the power of other modules is reduced. If the image processor 10 does not have a power bottleneck state, the power conditions of other modules related to the display can also be detected.
  • the controller processor 20 or the memory 30 may also have a power bottleneck state, which may also cause a display jam, so that when the controller processor 20 is detected to reach the power bottleneck state, the control may be increased.
  • the power of the processor 20 is reduced and the power allocation of other modules is reduced.
  • the power of the memory 30 can be increased and the power allocation of other modules can be reduced.
  • the displayed card state is detected by configuring a preset frame rate threshold and the power bottleneck state of the image processor 10 is further detected.
  • the power is increased and the other modules are lowered.
  • Power allocation equivalent to the power redistribution performed.
  • This embodiment does not need to increase the total output power of the system, reduces the energy consumption ratio, reduces power waste, can quickly and effectively detect the display jamon scene, and solves the Karton problem by increasing the power of the image processor 10, thereby improving the
  • the average frame rate and fluency of the application will help users get a good app experience. Since there are many reasons for causing the stuck state, even if a jam occurs, the accuracy of identifying the cause of the jam can be improved by further detecting whether the image processor 10 is in a power bottleneck state, so as to make adjustments in a targeted manner.
  • the device for power allocation of the image processor according to the embodiment of the present application will be described in detail with reference to FIG. 2 to FIG. 4, and the main power distribution function may be CPU to achieve. It can be understood that the power allocation can also be implemented by other processors than the CPU running the Android system, and this embodiment is merely an example.
  • the means for achieving power allocation can be implemented by software and run on the CPU.
  • the device for realizing power allocation may acquire some data of the image processor 10 during operation to determine the operating state of the image processor 10, and adjust the power of the image processor 10 according to the determination result.
  • the functions thereof may include, but are not limited to, frame rate detection of data to be displayed, Karen scene recognition, image processor 10 bottleneck state detection, Intelligent Power Allocation (IPA), and the like when the application is running.
  • it can also be used for recording information of the Caten scene, and configuring a corresponding switch module to turn on and off the Carton scene information recording function and the IPA function.
  • IPA technology is able to monitor the entire system, such as the current temperature of the SoC, and dynamically allocate the power of each part based on the power levels of the large core, small core, and image processor 10 in the CPU. The technology will estimate the power of each part by an algorithm to measure whether they are within the rated performance level. The excess performance is then adjusted to keep the SoC at normal heat levels.
  • the display picture jamming problem occurring in the temperature control scenario can be significantly solved.
  • FIG. 2 is a schematic diagram of a device for power allocation of an image processor according to an embodiment of the present invention.
  • the device may be formed by a CPU running a software driving instruction, and specifically includes: a frame rate detecting module 100, and the function thereof may be The program corresponding to the function can be run on the CPU for detecting the frame rate of the image data to be displayed currently.
  • the device further comprises a power distribution module 200, the function of which can also be implemented by a CPU, the program corresponding to its function being operable on the CPU.
  • the method may be configured to: determine whether the frame rate is lower than a preset frame rate threshold; if the frame rate is lower than the preset frame rate threshold, determine that the display of the image data is in a stuck state, if the frame rate Not lower than the preset frame rate threshold, determining that the display of the image data is not in a stuck state and not performing other operations; determining, in response to the stuck state, whether the image processor 10 reaches a power bottleneck state; When the image processor 10 reaches the power bottleneck state, the power of the image processor 10 is increased and the power of other modules associated with the display is reduced. If it is determined that the image processor 10 has not reached the power bottleneck state, the adjustment is not performed, that is, the original power allocation is maintained.
  • the frame rate detecting module 100 may include various components as shown in FIG.
  • FIG. 3 is a schematic diagram of the composition of the frame rate detecting module 100.
  • the SurfaceFlinger in SurfaceFlinger&BufferQueue101 is a service program running in the System process of the Android system, responsible for drawing the interactive interface of the Android application;
  • the BufferQueue in SurfaceFlinger&BufferQueue101 is the service program of the Android user interface system, and resides in the SurfaceFlinger process for service;
  • FpsConuter102 is a frame rate detection program;
  • IMonitor103 is a mobile phone status monitoring program that can monitor status data such as phone temperature, performance, or frame rate;
  • Systrace 104 is a performance analysis tool for Android; GPU DDK105 external to frame rate detection module 100 is image processing.
  • the device 10 draws a driver software program required for rendering and runs on the image processor 10; in the embodiment of the present application, the FpsConuter 102 can obtain an application white list and a preset frame rate from a configuration file stored in the memory 30 or other memory. Threshold, and determine whether the current program is in a stuck state by a given preset frame rate threshold. This is because in Android, every frame update displayed will call the BufferQueue service, so it can be in the BufferQueue. Increasing the frame rate detection program FpsCounter102 service basis.
  • the FpsCounter 102 counts the frame rate of the image data to be displayed by calling the number of times the frame of the display image recorded by the BufferQueue module is called, and then calls the IMonitor 103 interface to save the Systrace file.
  • the FpsConuter 102 can also perform a screen capture when the card is displayed, and the above operation sends an indication message. Give IMonitor103 and send an indication to Systrace104 via IMonitor103 that you need to save the Systrace file or screen capture.
  • the frame rate detection module 100 can also obtain some data about the working state of the image processor 10 from the GPU DDK 105 to save to the Systrace file, and the Systrace file can be output to the memory 30 or directly output to the negotiation memory or other device outside the system, the device Some test tools such as HiZee (a game test tool) can be run. HiZee can analyze and extract Systrace data offline and give reports for users to view.
  • HiZee a game test tool
  • the preset frame rate threshold may be pre-configured by the terminal manufacturer or pre-configured by the terminal manufacturer to select a number of options for the user to select or set by the user.
  • the same or different frame rate thresholds may be configured for different applications, and the embodiment of the present application is also not limited.
  • the user can preset the frame rate threshold of all game applications to be 30 frames/second, or set the first frame rate threshold 60 for the game application A with good game screen alone. Frame/sec, and set the second frame rate threshold of 30 frames/sec separately for the game application B with better game operability.
  • the terminal saves the above setting information in a configuration file in the memory 30 or other memory, and can be directly called when needed.
  • the frame rate of the image data to be displayed during the game may be counted by the CPU by calling the number of frame calls of the BufferQueue.
  • the device may further include an information saving module 300 and a system setting module 400.
  • the functions of the information saving module 300 and the system setting module 400 can also be implemented by a CPU, and the program corresponding to the above functions can be run on the CPU.
  • the information saving module 300 is configured to record the stuck scene information when determining that the display of the image data is in a stuck state; wherein the Receive scene information is included in the stuck state, the image processor
  • the application programming interface (API) in the Open Graphics Library (OpenGL) the execution time of the OpenGL API, the hardware counter of the image processor, the information of the Hardware Counter, and the open image. The number of times the interface is drawn is OpenGL Draw Call.
  • the save module 300 in Figure 2 is a separate module.
  • the save module 300 may be embedded in the Systrace 104 of FIG. 3.
  • the Imonitor 103 and the Systrace 104 of FIG. 3 may not be part of the frame rate detection module 100 in FIG. 2, but may be located in the frame rate detection module 100.
  • the Systrace 104 at this time may include a save module 300 for saving the Receive scene information.
  • Systrace 104 may be equivalent to the save module 300, which generates a Systrace file while performing performance analysis and statistics, and the Systrace file may include Caton scene information and other information such as a screen shot.
  • Systrace 104 further saves the Carton scene information into memory 30 or other memory, such as a system external storage device.
  • OpenGL refers to a professional image program interface that defines a cross-programming language and cross-platform programming interface specification. It is used for 3D images (also available in 2D) and is a powerful, easy-to-call underlying image library.
  • Draw Call is the number of OpenGL renderings; the API is a predefined function that provides the ability for applications and developers to access a set of routines based on a piece of software or hardware without having to access the source code or to understand The details of the internal workings of a software or hardware.
  • the cardon scene information is provided by the image processor 10 to the information saving module 300 formed by the control processor 20, and the information saving module 300 can save the execution state of the application to the Dump file through the debugger.
  • the Dump file is the memory image of the process.
  • the Dump file can be used to debug the driver for the driver writer. This file must be opened with special tool software, such as WinDbg.
  • the system setting module 400 can be used to set a switch of a function of the system, and the function can be implemented by a CPU.
  • the program corresponding to the above function can be run on the CPU.
  • the system can include: a cardon scene information saving switch module 401.
  • the Carton scene information saving switch instruction for receiving the user input, and opening or closing the information saving module 300 according to the indication that the cardon scene information saves the switch instruction.
  • the system setting module 400 further includes an intelligent power distribution switch module 402 for receiving an intelligent power distribution switch command input by the user, and turning the power distribution module 200 on or off according to the instruction of the intelligent power distribution switch command.
  • the system will request the iMonitor 103 to perform a Systrace 104 save operation, and the image processor 10 will record the OpenGL API recorded in the GPU DDK 105 when the most recent frames are run.
  • Information such as execution time, Hardware Counter information, and OpenGL Draw Call are written to the Systrace 104 file to analyze the display cause. For example, the execution time of the OpenGL API is too long, the voltage of the image processor 10 counted in the Hardware Counter information is too low or the frequency is too low, and the number of OpenGL Draw Calls is too high, etc. may cause the cardon, when the engineer views the saved information. Then, based on the saved information, the cause of the display can be determined.
  • the power distribution module 200 can detect the bottleneck state of the image processor 10 and dynamically adjust the power of the image processor 10 when the image processor 10 is in the power bottleneck state.
  • the above functions may be completed by the CPU.
  • the CPU may perform the function of the apparatus shown in FIG. 2, and read the execution time of the OpenGL API and the Hardware Counter information from the GPU DDK 105.
  • the OpenGL Draw Call information is written to the memory 30 for storage, and the corresponding function can be turned on or off according to the received user's switch control command.
  • FIG. 4 is a schematic structural diagram of an intelligent power adjustment mechanism in the present application.
  • the right side of the vertical dotted line is the hardware device involved in the embodiment of the present application, including the control processor 20 shown in FIG. 1 , that is, the CPU, and the memory 30 and the image processor 10;
  • the software management module involved is implemented by a device similar to that of FIG. 2.
  • the power-saving management program is a temperature control software, which will change the total output power of the system according to the temperature of the battery and/or the motherboard, and set each according to the weight such as 2:1 and the total output power of the system.
  • the module dynamically adjusts the maximum power value when frequency modulation. Therefore, in the embodiment of the present application, the sum of the power of the image processor 10 and the power of other modules related to the display does not exceed the preset power upper limit, that is, does not exceed the total system output power.
  • the power-saving management program can be controlled by other factors in addition to the temperature control, for example, the preset power limit is determined according to the user setting, which is not limited in this embodiment. The following is an example of controlling the preset power upper limit by taking the temperature as a temperature factor. This upper power limit can vary dynamically depending on temperature changes.
  • the temperature sensor driver will obtain the temperature data of the battery temperature sensor and the motherboard temperature sensor, and then output to the power saving management program.
  • the power saving management program will appropriately reduce the total output power of the system. That is, the total power upper limit is lowered, and the image processor 10 and the CPU are allocated respective maximum powers according to a fixed weight according to a fixed power allocation mechanism.
  • the power allocation mechanism may further include allocating the maximum for other modules such as the memory 30.
  • Dynamic Voltage and Frequency Scaling (DVFS) program dynamically adjusts the operating frequency and voltage of the chip (for the same chip, depending on the maximum power allocated and the different computing power requirements of the application running on the chip) The higher the frequency, the higher the voltage required, thus achieving energy savings.
  • the temperature sensor drive can also provide other sensor temperature data to the power save management program so that the power save management program sets the total power cap.
  • Other temperature data includes, but is not limited to, SoC temperature data collected by a temperature sensor configured for the SoC.
  • the DVFS program is the performer of the function adjustment and can accept the control of the power distribution module 200 and the power saving management program.
  • the power adjustment submodule 203 or the power saving management program in the power distribution module 200 is used for power adjustment, that is, each output adjustment information, and the respective adjustment information is integrated to form a power allocation mechanism, and the power allocation mechanism is transmitted.
  • the power allocation mechanism illustratively includes power of the image processor 10, the CPU, and the memory 30.
  • the power saving management program is used to control the initial power of the image processor 10, the CPU, and the memory 30, and generally does not exceed the maximum power of the image processor 10, the CPU, and the memory 30.
  • the sum of the initial powers of the three does not exceed the sum of the maximum total powers, that is, the system power upper limit
  • the power adjustment submodule 203 is configured to perform power re-adjustment on the basis of the initial power, that is, perform power redistribution based on the power upper limit. For example, perform IPA.
  • the power adjustment sub-module 203 can restore the power of each device to the initial power at a suitable time, such as a preset time to perform the above power redistribution.
  • the power distribution module 200 described in the embodiment of the present application dynamically adjusts the conventional power allocation mechanism under the power-saving management program when the card is displayed.
  • the Karton scene recognition sub-module 201 determines whether a jam occurs according to the frame rate information provided by the frame rate detecting module 100, and then triggers the bottleneck state detecting sub-module 202 of the image processor 10 to perform the image processor 10 when the jam occurs. Detection.
  • the HardWare counter in the bottleneck state detecting sub-module 202 as the image processor 10 data statistics program, can acquire some related data in the image processor 10, such as the operating frequency and operating voltage of the image processor 10.
  • the bottleneck state detecting program can calculate the boundary measurement value of the image processor 10 based on the data acquired by the HardWare counter, and then measure the boundary The value is compared to a preset threshold, and when the preset threshold reaches the boundary measurement, it can be determined that the image processor 10 is in a power bottleneck state.
  • the power adjustment procedure in the power adjustment sub-module 203 can be triggered to change the weight in the conventional power allocation mechanism such as changing 2:1 to 2.5:0.5.
  • the boundary measurement value does not reach the preset threshold, it may be determined that the image processor 10 does not reach the power bottleneck state.
  • the device involved in the embodiment of the present application may use an IPA weight dynamic adjustment mechanism, that is, the function of the device is embedded in an existing IPA temperature control system.
  • the frequency of temperature sampling will be increased, and the total system power limit will be reduced.
  • the power state of the image processor 10 is acquired while the temperature is being sampled.
  • the weight ratio of the priority image processor 10 is adopted under the condition that the power upper limit is satisfied; otherwise, the image processor 10 and the CPU can be used fairly under the condition that the power upper limit is satisfied. Weight ratio.
  • the IPA monitoring subroutine updates the monitored motherboard and/or battery temperature in a fixed cycle and detects the power bottleneck state of the image processor 10. Once the image processor 10 reaches the power bottleneck state, the allocation of the total output power of the system is dynamically changed. value.
  • the maximum power value of each module may be directly adjusted.
  • the power of the image processor 10 may be dynamically increased according to a preset power adjustment amount, and the power of other modules related to the display may be reduced according to the preset power adjustment amount; or may be according to a preset power.
  • the value of the adjustment function dynamically increases the power of the image processor 10 and reduces the power of other modules associated with the display based on the value of the preset power adjustment function.
  • the total output power of the system is 6000 milliwatts.
  • the image processor 10 initially allocates a maximum power of 3000 milliwatts, and the CPU initially allocates a maximum power of 2000 milliwatts.
  • the preset adjustment amount may be 500. In milliwatts, when the card is stuck, the maximum power of the image processor 10 can be adjusted to 3500 mW, and the maximum power of the CPU is adjusted to 1500 mW.
  • the preset power adjustment amount here may be a single number, or a sequence consisting of irregular numbers, such as [500, 200, 100], the first adjustment may be according to 500 millimeters.
  • the tile is adjusted, the second time is adjusted in units of 200 milliwatts, and the third time is adjusted in units of 100 milliwatts.
  • the value is infinite.
  • the power distribution of the image processor 10 and the other modules may also be restored to before the adjustment.
  • the initial value Ensure the smoothness of the overall system power distribution.
  • At least one of a clock frequency, an operating voltage, or a current may be added by increasing power.
  • the power can also be achieved by reducing at least one of a clock frequency, an operating voltage, or a current.
  • This embodiment does not limit the specific power adjustment mode.
  • the DVFS program of FIG. 4 as previously mentioned may be used to accept control of the power adjustment sub-module 203 in the power distribution module 200 to increase the image processor 10 as an executor of power adjustment and allocation.
  • the power and the power of other modules associated with the display are reduced, specifically the DVFS program scales the voltage and operating frequency.
  • the DVFS program is used as a separate module.
  • the DVFS program may also be included in the power adjustment sub-module 203 to form a part of the power distribution module 200.
  • the DVFS power adjustment functions such as current, voltage, and operating frequency scaling, can be implemented by a dedicated hardware.
  • the hardware is a specific executor of power adjustment or allocation under the control of the power adjustment sub-module 203. This embodiment does not limit this.
  • the functions of the respective sub-modules or further software modules included in the above smart power module 200 may be implemented by a CPU, and the program corresponding to the above functions may be run on the CPU.
  • FIG. 5 is a schematic flowchart of a method for power allocation of an image processor 10 according to an embodiment of the present invention.
  • the mobile processor is an example.
  • the control processor 10 is a CPU.
  • the method also runs an Android system and other applications that need to consume the amount of computation of the image processor 10.
  • the method is executed by the CPU and specifically includes the following steps: S501. Detecting a frame rate of image data to be displayed currently. S502. Determine whether the frame rate is lower than a preset frame rate threshold. S503. If the frame rate is lower than a preset frame rate threshold, determine that the display of the image data is in a stuck state, otherwise the process ends. S504. Determine, according to the stuck state, whether the image processor reaches a power bottleneck state. S505. If the image processor reaches a power bottleneck state, increase power of the image processor and reduce power of other modules related to the display. If the image processor does not reach the power bottleneck state, the process ends, that is, no adjustment is made.
  • the memory may also be referred to as a storage medium or a storage device or the like.
  • the multiple memories may be different types of memory, which is not limited by the embodiment of the present application.
  • each step of the above method may be completed by an integrated logic circuit of hardware in a processor or an instruction in a form of software.
  • the steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps of the above method. To avoid repetition, it will not be described in detail here.
  • the size of the sequence numbers of the foregoing processes does not mean the order of execution sequence, and the order of execution of each process should be determined by its function and internal logic, and should not be applied to the embodiment of the present application.
  • the implementation process constitutes any limitation.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
  • the computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be from a website site, computer, server or data center Transfer to another website site, computer, server, or data center by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL), or wireless (eg, infrared, wireless, microwave, etc.).
  • the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
  • the usable medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (such as a solid state disk (SSD)).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请实施例公开了一种图像处理器的功率分配的装置、系统及方法,在该装置中,包括:帧率检测模块,用于检测当前待显示的图像数据的帧率;功率分配模块,用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。采用本申请,可提升设备的图像显示效果。

Description

一种图像处理器的功率分配的方法、装置及系统 技术领域
本申请涉及电子技术领域,尤其涉及一种图像处理器的功率分配的方法、装置及系统。
背景技术
随着图像处理技术的不断发展,各种设备如移动终端、计算机和服务器等的图像处理能力也得到了极大的提升。从而可以在游戏、高清视频播放或图像编辑及绘图等需要进行大量图像处理的应用上为用户提高更好的使用体验。例如,通信技术的快速发展和移动终端的暴发式增长,使得移动终端如手机或平板电脑等在用户的生活、工作、娱乐等方面可提供越来越多的帮助。这也就对移动终端的性能要求越来越高。尤其在娱乐方面,基于移动终端的便利性和用户时间的碎片化,越来越多的用户使用移动终端来玩游戏或进行高清视频播放等。
由于移动终端尺寸较小,运行大型游戏应用时容易产生发热的问题,因此不得不对移动终端进行适度的温度控制,如降低系统的总功率输出以使得移动终端的温度降低。但是系统的总输出功率降低后可能会导致与游戏运行效果紧密相关的图像处理器(Graphic Processor Unit,GPU)处于功率瓶颈状态即输入功率较低使得GPU无法满足游戏应用流畅运行的需求,从而使得游戏应用运行时的帧率降低甚至出现卡顿,导致游戏应用运行不畅,用户的游戏体验较差,类似这种情况在其他设备上同样也非常常见。并且不仅限于游戏,对于其他需要消耗图像处理器的应用,类似问题也会存在。
发明内容
本申请实施例所要解决的技术问题在于,提供一种图像处理器的功率分配的装置、系统及方法,以期提升图像显示效果。
第一方面,本申请的实施例提供了一种图像处理器的功率分配的装置,可包括:帧率检测模块,用于检测当前待显示的图像数据的帧率;功率分配模块,用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。该方案能够合理进行功率重新分配,提升图像处理器的性能。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、系统温度或单板温度确定。该方案能够在总系统功率受到限制时重分配功率以缓解图像处理器的所述功率瓶颈状态。
在一种可能的实现方式中,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。该方案可以在不同器件之间进行功率重新分配以平衡系统性能。
在一种可能的实现方式中,所述功率分配模块在判断图像处理器是否达到功率瓶颈状 态时,具体用于:比较所述图像处理器的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。该方案可以与帧率检测相结合,进一步准确确定图像处理器达到功率瓶颈状态。
在一种可能的实现方式中,所述装置还包括:信息保存模块,用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。利用该方案保存的卡顿场景信息有助于研发人员对卡顿场景进行分析.
在一种可能的实现方式中,所述装置还包括:卡顿场景信息保存开关模块,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块。
在一种可能的实现方式中,其特征在于,所述装置还包括:智能功率分配开关模块,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块。
在一种可能的实现方式中,其特征在于,所述功率分配模块具体用于:根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述其他模块的功率。
在一种可能的实现方式中,所述功率分配模块还用于:在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。采用该方案后,一旦功率瓶颈状态解除,则系统恢复为原始状态。
第二方面,本申请的实施例提供了一种图像处理器的功率分配的系统,可包括:图像处理器,用于进行图像处理;控制处理器,用于:检测当前待显示的图像数据的帧率;判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、系统温度或单板温度确定。
在一种可能的实现方式中,所述其他模块包括所述控制处理器、其他处理器或存储器中的至少一个。
在一种可能的实现方式中,所述控制处理器具体用于:比较所述图像处理器的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
在一种可能的实现方式中,所述系统还包括:存储器,用于在所述控制处理器确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
可选地,该存储器或装置中的另一存储器,用于存储控制处理器的驱动软件代码指令,该指令,用于驱动控制处理器执行之前提到的各类运行功能。
在一种可能的实现方式中,所述控制处理器还用于:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
在一种可能的实现方式中,所述控制处理器还用于:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在一种可能的实现方式中,所述控制处理器具体用于:根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述控制处理器还用于:在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
第三方面,本申请的实施例提供了一种图像处理器的功率分配的方法,可包括:当应用程序运行时,检测当前待显示的图像数据的帧率;若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若所述图像处理器达到功率瓶颈状态,则动态增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。可选地,该预设功率上限由传感器采集的装置所在的电池温度、系统温度或单板温度确定。
在一种可能的实现方式中,所述其他模块包括控制处理器和存储器。
在一种可能的实现方式中,所述判断图像处理器是否达到功率瓶颈状态,包括:根据对所述图像处理器的边界测量bound measure值与预设阈值的比较结果,判断所述图像处理器是否达到功率瓶颈状态;当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;当所述边界测量值未达到所述预设阈值时,确定所述图像处理器未达到功率瓶颈状态;其中,所述边界测量值根据所述图像处理器驱动程序中读取的电压数据和频率数据确定。
在一种可能的实现方式中,当确定所述图像数据的显示处于卡顿状态时,还包括:记录卡顿场景信息;其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware  Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
在一种可能的实现方式中,所述方法还包括:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
在一种可能的实现方式中,所述方法还包括:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在一种可能的实现方式中,其特征在于,所述动态增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率,包括:根据预设的功率调整量动态增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值动态增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
在一种可能的实现方式中,所述方法还包括:当达到功率瓶颈状态的所述图像处理器解除功率瓶颈状态达到预设时间之后,动态还原所述图像处理器和所述其他模块的功率分配至初始值。
第四方面,本申请的实施例提供了一种图像处理器的功率分配的装置,可包括:处理器、存储器和总线,所述处理器和存储器通过总线连接,其中,所述存储器用于存储一组程序代码,所述处理器用于调用所述存储器中存储的程序代码,执行本申请实施例第一方面或第一方面任一实现方式中的步骤。可选地,该装置可以进一步包括图像处理器。
第五方面,本申请的实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现上述第三方面或第三方面的任意可能的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本发明实施例提供的一种图像处理器的功率分配的系统框架示意图;
图2为本发明实施例提供的一种图像处理器的功率分配的装置的组成示意图;
图3为本发明实施例提供的帧率检测模块的组成示意图;
图4为本发明实施例提供的一种智能功率调整机制的结构示意图;
图5为本发明实施例提供的一种图像处理器的功率分配的方法的流程示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请的实施例进行描述。本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参见图1,图1为本发明实施例提供的一种功率分配的系统框架示意图;该系统框架中可包括:图像处理器10、控制处理器20和存储器30。其可以应用在大型游戏运行、高清视频播放或其他需要进行复杂的图像渲染处理的场景下。该系统可以包括在一个设备中,该设备可以是移动终端,如手机、平板电脑或可穿戴设备,也可以是台式电脑、服务器或车载设备等其他设备。该系统框架可以是系统芯片(System-on-a-Chip,SoC),或者被视为一个芯片。
其中,图像处理器10(Graphic Processing Unit,GPU)是例如计算机或移动终端等设备中的显卡的最重要组成部分,它决定了设备的图像处理能力和图像加速性能。在本申请实施例中,主要以移动终端如智能手机或平板电脑中的GPU为例进行说明。目前智能手机屏幕越来越大,系统越来越华丽,游戏特效越来越眩目,传统手机仅依靠中央处理器(Central Processing Unit,CPU)进行图像处理的方式已经不能满足现今智能手机发展的需要。随着近几年智能手机的高速发展,三维(Three-dimensional,3D)加速芯片的引入为智能机的娱乐性注入了强大的生命力。有了3D加速芯片,可以流畅地运行各种3D游戏和3D应用程序。图像处理器10可以负责必要的3D处理,也可以将至少部分图像显示功能从CPU那里接管过来,并且还选择性进一步提供了视频播放、视频录制和照相时的辅助处理,使得CPU被大大解放,可以专心地处理纯指令,而不再需要去负责繁重的图像处理任务。从而使得手机系统的3D性能得到极大的提升。在运行大型游戏应用程序时,图像处理器10会产生大量的热量,现阶段主要通过控制包括图像处理器10在内的系统的总输出功率来实现智能手机的温度控制。
控制处理器20,是设备的控制中心,可以执行各种应用程序,读取或调用其他模块(如图像处理器10、存储器30等)采集或保存的数据进行处理和输出,实现对其他模块的管理和控制。其可以是中央处理器,还可以是其他类型处理器,如数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、微处理器或者微控制器等。在本申请实施例中,主要以移动终端如智能手机或平板电脑中的CPU为例进行说明。CPU是移动终端的控制中枢系统,也是逻辑部分的控制中心。其可以通过运行存储器30内的软件及调用存储器30内的数据库,达到控制目的。CPU可以具备一个或一个以上的核心,如比较常见的双核处理器、四核处理器甚至八核处理器等。为了降低移动终端功耗,CPU包括大核和小核,当用户运行不同的应用程序时,可以根据应用程序的性能需求及终端功耗的考虑来选择运行应用程序所使用的核心。
存储器30,可以包括掉电易失性存储器如随机存取存储器(RAM)、或非掉电易失性存储器如只读存储器(ROM)或闪存(Flash Memory)等,也可以包括各种缓存,如先进先出(FIFO)存储器或先进后出(FILO)存储器。其可以向控制处理器20提供指令和数据。以移动终端为例,存储器30可用于移动终端运行时加载操作系统和应用软件,缓存CPU要处理的数据和指令,也可以用于永久性的存储所述操作系统和应用软件。
结合到本申请实施例中,图像处理器10,可用于进行图像处理;例如,可以对各种应用程序待显示的图像数据进行处理。所述应用程序包括游戏应用、视频播放应用或者是其他需要进行大量图像处理的应用等。
控制处理器20,可用于:检测当前待显示的图像数据的帧率;判断所述帧率是否低于 预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;若确定所述图像处理器10达到所述功率瓶颈状态,则增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率,相当于执行的功率重新分配。可选地,所述图像处理器10的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。这样可以确保整个系统工作的稳定性以及进行良好的设备温度控制管理。可选地,所述其他模块可以包括但不限于所述控制处理器10、其他处理器或存储器30中的至少一个。该卡顿状态即是所述帧率低于所述预设帧率阈值时的图像数据的显示状态,此时与显示有关的帧率被认为过低以至于显示的图像不够流畅。但是造成这种不流畅的原因可能很多,其有可能但不一定是由于图像处理器造成,为了进一步准确定位原因,需要进一步判断图像处理器是否达到功率瓶颈状态。通过两步判断法,能够准确识别卡顿出现的原因,合理实现功率重新分配或调整。
需要说明的是,上述帧率检测、卡顿状态判断、图像处理器10功率瓶颈状态判断、功率调整等功能的实现可以由控制处理器20来实现。该控制处理器20可以包括CPU,如运行操作系统的CPU,该控制处理器20也可以包括运行操作系统的CPU之外的其他控制器,例如在安卓(Android)系统中,可以由CPU来运行安卓系统和各种应用程序,单独配置一个其他的处理器来实现上述控制处理器20功能,本申请不作任何限定。
在判断图像处理器10是否处于功率瓶颈状态时,所述控制处理器20具体用于:比较所述图像处理器10的边界测量bound measure值与预设阈值;当所述边界测量值达到所述预设阈值时,确定所述图像处理器10达到功率瓶颈状态;当所述边界测量值没有达到所述预设阈值时,可以认为所述图像处理器10没有达到功率瓶颈状态,这样也就无需进行后续的功率调整;其中,所述边界测量值是用于衡量所述图像处理器10的负载状态的参数。边界测量值可以根据图像处理器10的驱动程序获取图像处理器10的工作频率、工作电压、工作电流或工作时间中的至少一种数据计算得到,例如是根据工作频率、工作电压、工作电流和工作时间进行综合计算得到的参数值。上述数据可以由控制处理器20从图像处理器10获取得到,然后根据这些数据计算边界测量值。
为了便于研发人员对卡顿场景进行分析。控制器处理器20可以在确定所述图像数据的显示处于卡顿状态时,将卡顿场景信息记录到存储器30或其他存储器中;其中,所述卡顿场景信息可以包括但不限于所述图像处理器10驱动程序在所述卡顿状态下,图像处理器10的驱动软件程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、图像处理器10的硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
可选地,在记录卡顿场景信息时,可以记录当前帧的信息,也可以记录包括当前帧在内的前n帧的信息,n为大于0的整数上述卡顿场景信息可以由控制器处理器20从图像处理器10获取并保存到存储器30或其他存储器上,也可以由控制处理器20向图像处理器10和存储器30或其他存储器发送信息存储指令,指示图像处理器10将上述数据输出到存储器30或其他存储器进行保存。
通过在控制处理器20上增加卡顿场景信息记录的功能,可以在出现卡顿的情况时,记录卡顿状态下图像处理器10驱动程序的相关信息以及出现的具体画面,利于开发人员提取 卡顿数据进行分析,快速定位问题所在,进一步优化驱动和画面显示,有效的帮助开发人员解决卡顿问题。
可选地,为了便于灵活使用卡顿场景信息记录功能和智能功率分配功能,可以配置相应的开关来打开或关闭相应的功能,此时,所述控制处理器20还可以用于:接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。以及所述控制处理器20还可以用于:接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
在进行功率调整时,所述控制处理器20可用于:根据预设的功率调整量增加所述图像处理器10的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者根据预设的功率调整函数的取值增加所述图像处理器10的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
此外,为了平衡各个模块之间的功率分配,可选地,所述控制处理器20还可以用于:在增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器10和所述其他模块的功率分配至初始值。此处的预设时间可以由设备出厂时定义或给出若干选项供用户选择,或者也可以由用户自定义,本申请实施例不作任何限定。
需要说明的是,当显示出现卡顿时,说明与显示的相关模块性能不足或功率不足。由于在温控场景下系统总输出功率可能降低,而与显示相关性较强的模块即为图像处理器10。因此,此时可以优先检测图像处理器10的功率状况,判断其是否达到功率瓶颈状态。如果其达到了功率瓶颈状态则增加图像处理器10的功率并降低其他模块的功率,如果图像处理器10没有出现功率瓶颈状态,则还可以检测与显示相关的其他模块的功率状况。事实上,控制器处理器20或存储器30也可能会出现功率瓶颈状态,这样也会对造成显示卡顿的情况发生,因此,在检测到控制器处理器20达到功率瓶颈状态时,可以增加控制器处理器20的功率,并降低其他模块的功率分配。同理,若检测到存储器30达到功率瓶颈状态,则可以增加所述存储器30的功率,并降低其他模块的功率分配。
在本申请实施例中,通过配置预设帧率阈值检测显示的卡顿状态并进一步检测图像处理器10的功率瓶颈状态,在图像处理器10处于功率瓶颈状态时增加其功率并降低其他模块的功率分配,相当于执行的功率重新分配。本实施例无需增加系统总输出功率,降低了能耗比,减少了功率浪费,可以快速而有效的检测出显示卡顿场景,并通过提升图像处理器10功率来解决卡顿问题,从而提升了应用程序的平均帧率和流畅度,利于用户获得良好的应用程序使用体验。由于造成卡顿状态的原因很多,即便出现卡顿,可通过进一步检测图像处理器10是否处于功率瓶颈状态来提高识别卡顿原因的准确性,以便针对性做调整。
下面以控制处理器20为CPU并且运行安卓系统(Android)为例,结合图2-图4对本申请实施例所述的图像处理器的功率分配的装置进行详细介绍,其主要功率分配功能可以由CPU来实现。可以理解功率分配也可以由运行安卓系统的CPU之外的其他处理器来实现,本实施例仅仅是个举例。该实现功率分配的装置可以由软件实现并运行在所述CPU上。在 进行功率分配之前,该实现功率分配的装置可以获取图像处理器10工作时的一些数据来对图像处理器10的工作状态进行判断,并根据判断结果对图像处理器10的功率进行调整。可选地,其功能可以包括但不限于进行应用程序运行时,待显示数据的帧率检测、卡顿场景识别、图像处理器10瓶颈状态检测,智能功率分配(Intelligent Power Allocation,IPA)等。可选地,还可以用于卡顿场景信息记录,并配置相应的开关模块来开启和关闭卡顿场景信息记录功能和IPA功能。IPA技术能够监测整个系统,如SoC当前温度,再根据CPU中的大核、小核和图像处理器10的功率水平动态地分配每个部分的功率。该技术将通过算法预估每部分的功率,衡量它们是否处在额定性能水平范围内。随后,对超出的性能进行调整,以保持SoC处在正常的热量水平。在本申请实施例中,通过对IPA技术进行进一步的改进,可以显著的解决在温控场景下发生的显示画面卡顿问题。
请参见图2,为本发明实施例提供的一种图像处理器的功率分配的装置的组成示意图,该装置可以由CPU运行软件驱动指令所形成,具体包括:帧率检测模块100,其功能可以通过CPU实现,其功能对应的程序可运行在CPU上,用于检测当前待显示的图像数据的帧率。该装置进一步包括功率分配模块200,其功能同样可以通过CPU实现,其功能对应的程序可运行在CPU上。可用于:判断所述帧率是否低于预设帧率阈值;若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态,若所述帧率不低于所述预设帧率阈值则确定所述图像数据的显示不处于卡顿状态且不作其他操作;响应于所述卡顿状态,判断图像处理器10是否达到功率瓶颈状态;若确定所述图像处理器10达到所述功率瓶颈状态,则增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率。如果确定所述图像处理器10未达到所述功率瓶颈状态,则不执行所述调整即维持原来的功率分配。
以安卓(Android)系统和运行游戏应用程序的场景为例,帧率检测模块100可以包括如图3所示的各个部件。图3为帧率检测模块100的组成示意图。其中SurfaceFlinger&BufferQueue101中的SurfaceFlinger是运行在Android系统的System进程中的一个服务程序,负责绘制Android应用程序的交互界面;SurfaceFlinger&BufferQueue101中的BufferQueue是Android用户界面系统的服务程序,驻留在SurfaceFlinger进程中进行服务;FpsConuter102是一个帧率检测程序;IMonitor103是一个手机状态监控程序,可以监控手机温度、性能、或帧率等状态数据;Systrace104是Android的性能分析工具;帧率检测模块100外部的GPU DDK105是图像处理器10绘制渲染所需的驱动软件程序,运行在图像处理器10上;在本申请实施例中,FpsConuter102可以从存储器30或其他存储器上存储的配置文件中获取应用程序白名单和预设帧率阈值,并通过给定的预设帧率阈值来判断当前程序是否处于卡顿状态,这是由于在Android中,被显示的每一帧的更新都会调用BufferQueue服务,因此可以在BufferQueue服务基础上增加帧率检测程序FpsCounter102。FpsCounter102通过调用BufferQueue模块记录的显示图像的帧被调用次数来统计待显示的图像数据的帧率,再调用IMonitor103接口来保存Systrace文件,FpsConuter102还可以在显示卡顿时进行截屏,以上操作通过发送指示消息给IMonitor103,并通过IMonitor103将需要保存Systrace文件或截屏的指示发送给Systrace104。帧率检测模块100还可以从GPU DDK105上获取关于图像处理器10 工作状态的一些数据来保存到Systrace文件,Systrace文件可以输出至存储器30或直接输出至系统外部的洽谈存储器或其他设备,该设备可运行一些测试工具如HiZee(一种游戏测试工具),HiZee可以离线分析提取Systrace数据,并给出报表供用户查看。
可选地,预设帧率阈值可以是由终端厂商预先配置或由终端厂商预先配置若干选项供用户选择或由用户自定义设置,本申请实施例不作任何限定。且对于不同的应用程序可以配置相同或不同的帧率阈值,本申请实施例同样不作任何限定。以游戏应用程序为例,用户可以预先设定所有游戏应用程序的帧率阈值为显示效果较佳的30帧/秒,也可以单独为游戏画面较好的游戏应用A设置第一帧率阈值60帧/秒,并单独为游戏操作性较好的游戏应用程序B设置第二帧率阈值30帧/秒。当帧率阈值设置完毕后,会由终端保存上述设置信息在存储器30或其他存储器中的一个配置文件中,当需要使用时直接调用即可。在具体实现时,可以由CPU通过调用BufferQueue的帧调用次数来统计游戏时待显示的图像数据的帧率。
可选地,所述装置还可以包括信息保存模块300和系统设置模块400。信息保存模块300和系统设置模块400的功能也可以由CPU来实现,上述功能对应的程序可运行在CPU上。信息保存模块300,可用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;其中,所述卡顿场景信息包括在所述卡顿状态下,所述图像处理器的驱动程序开放式图像接口(Open Graphics Library,OpenGL)中应用程序编程接口(Application Programming Interface,API)即OpenGL API的执行时间、所述图像处理器的硬件计数Hardware Counter的信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
图2中的保存模块300是一个独立模块。可替换地,保存模块300可以是嵌入在图3的Systrace104中的,此时,图3的Imonitor103和Systrace104可以不是图2中的帧率检测模块100的一部分,而是位于帧率检测模块100之外,此时的Systrace104内部可包括用于保存卡顿场景信息的保存模块300。或者,Systrace104可以等同于是所述保存模块300,其在做性能分析和统计的同时生成Systrace文件,该Systrace文件可包括卡顿场景信息和其他信息,如截屏等。因此,Systrace104进一步将卡顿场景信息保存入存储器30或其他存储器,如系统外部存储设备。
其中,OpenGL是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图像程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图像库。Draw Call是OpenGL的描绘次数;API是一些预先定义的函数,其作用是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,且无需访问源码,或者还可以用于理解某软件或硬件内部工作机制的细节。在进行保存时,卡顿场景信息被由图像处理器10提供给控制处理器20运行所形成的信息保存模块300,信息保存模块300可以把应用程序的执行状态通过调试器保存到Dump文件中。Dump文件是进程的内存镜像。Dump文件可用于给驱动程序编写人员调试驱动程序,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
系统设置模块400可用于对系统的功能的开关进行设置,其功能可以通过CPU实现,上述功能对应的程序可运行在CPU上,可选地,其可以包括:卡顿场景信息保存开关模块401,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块300。系统设置模块400还包括智能功率分配开 关模块402,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块200。
如果当前显示处于卡顿状态,且此时卡顿场景信息保存功能打开,则系统会请求iMonitor103进行一次Systrace 104保存操作,图像处理器10将最近若干帧运行时,GPU DDK105中记录的OpenGL API的执行时间、Hardware Counter信息、OpenGL Draw Call等信息写入到Systrace104文件中,以便分析显示卡顿原因。例如,OpenGL API的执行时间过长,Hardware Counter信息中统计的图像处理器10的电压过低或频率过低,OpenGL Draw Call次数过多等都可能引起卡顿,当工程人员查看保存的信息时,便可以根据保存的信息来确定显示卡顿的原因。
当出现显示卡顿之后,便可以由功率分配模块200实现对图像处理器10瓶颈状态的检测以及当图像处理器10处于功率瓶颈状态时,对图像处理器10的功率进行动态调整。具体实现时,可以由CPU来完成上述功能,例如,当CPU判断出现卡顿状态时,可以该由CPU执行图2所示装置的功能,从GPU DDK105读取OpenGL API的执行时间、Hardware Counter信息、OpenGL Draw Call信息并写入到存储器30中进行保存,且可以根据接收到的用户的开关控制指令来开启或关闭相应的功能。
请参见图4,为本申请中智能功率调整机制的结构示意图。其中,竖直虚线右侧为本申请实施例涉及的硬件设备,包括图1所示的控制处理器20,即CPU,以及存储器30和图像处理器10;竖直虚线左侧为本申请实施例涉及的软件管理模块,由类似图2的装置实现。
其中,省电管理程序是一款温控软件,它会根据电池和/或主板的温度高低来改变系统总输出功率的大小,并根据权值比如2:1和系统总输出功率来设定各个模块动态调压调频时的最大功率值。因此,在本申请实施例中,所述图像处理器10的功率和所述显示相关的其他模块的功率之和不超过预设功率上限即不会超过系统总输出功率。可理解,省电管理程序除了受到温度控制外,还可以受到其他因素控制,如根据用户设置来确定所述预设功率上限,本实施例对此不作限定。下面以温度为考虑温度因素来控制预设功率上限为例作说明。该功率上限可以根据温度变化动态变化。
温度传感器驱动会获取电池温度传感器和主板温度传感器的温度数据,然后输出至省电管理程序,当电池和/或主板的温度较高时,省电管理程序会适当的降低系统的总输出功率,即降低总功率上限,并采用常规的功率分配机制按照固定的权重为图像处理器10和CPU分配各自的最大功率,可选地,在功率分配机制中还可以包括为存储器30等其他模块分配最大功率,然后由动态电压频率调整(Dynamic Voltage and Frequency Scaling,DVFS)程序根据分配的最大功率和芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电压(对于同一芯片,频率越高,需要的电压也越高),从而达到节能的目的。可选地,温度传感器驱动还可以提供其他传感器温度数据给省电管理程序以便省电管理程序设置总功率上限。其他温度数据包括但不限于由配置给SoC的温度传感器所采集的SoC温度数据。
DVFS程序是功能调整的执行者,可接受功率分配模块200和省电管理程序的控制。如图4所示,功率分配模块200中功率调整子模块203或省电管理程序用于进行功率调整,即各自输出调整信息,各自的调整信息综合起来形成功率分配机制,并将功率分配机制传 输给DVFS程序以便DVFS程序进行具体功率调整。如图4所示,功率分配机制示例性地包括图像处理器10、CPU和存储器30三者的功率。例如,对于功率分配机制而言,省电管理程序用于控制图像处理器10、CPU和存储器30三者的初始功率,通常不超过控制图像处理器10、CPU和存储器30三者的最大功率,或三者初始功率之和不超过最大总功率之和,即系统功率上限,功率调整子模块203用于在初始功率基础上进行再次功率调整,即在满足该功率上限基础上做功率重新分配,例如执行IPA。功率调整子模块203可以在适当的时刻,如执行以上功率重新分配的预设时间后将各个器件的功率还原为初始功率。
示例性地,结合图3和图4,当出现显示卡顿的情况时,本申请实施例所述的功率分配模块200会对省电管理程序作用下的常规的功率分配机制进行动态调整。首先,卡顿场景识别子模块201会根据帧率检测模块100提供的帧率信息确定是否出现卡顿,然后在出现卡顿时触发图像处理器10的瓶颈状态检测子模块202对图像处理器10进行检测。在检测过程中,瓶颈状态检测子模块202中的HardWare counter作为图像处理器10数据统计程序,可以获取到图像处理器10驱动中的一些相关数据,如图像处理器10的工作频率、工作电压、工作电流和工作时间等;瓶颈状态检测子模块202中的GPU bound detector作为图像处理器10瓶颈状态检测程序可以根据HardWare counter获取到的数据计算确定图像处理器10的边界测量值,然后将边界测量值与预设阈值进行比较,当预设阈值达到边界测量值时,便可以确定图像处理器10处于功率瓶颈状态。从而可以触发功率调整子模块203中的功率调整程序,来改变常规的功率分配机制中的权重如将2:1改变为2.5:0.5。而当所述边界测量值未达到所述预设阈值时,则可以确定所述图像处理器10未达到功率瓶颈状态。
需要说明的是,本申请实施例中的涉及的装置可以使用IPA权重动态调节机制,即将所述装置的功能内嵌到现有的IPA温度控制系统之中。会在电池和/主板温度大于门限值的情况下,提高温度采样的频率,此时系统总功率上限会被降低。每当温度被采样的同时,获取图像处理器10的功率状态。当图像处理器10处于功率瓶颈状态时,在满足所述功率上限的条件下采用优先图像处理器10的权重比;否则,在满足所述功率上限的条件下可以使用图像处理器10和CPU公平的权重比。IPA监控子程序会以固定的周期更新监控到的主板和/电池温度并检测图像处理器10功率瓶颈状态,一旦发生图像处理器10达到功率瓶颈状态,就动态的改变系统总输出功率的分配权值。
可选地,除了直接改变权重的方式之外,也可以直接对各个模块的分配的最大功率值进行调整。例如,可以根据预设的功率调整量动态增加所述图像处理器10的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者可以根据预设的功率调整函数的取值动态增加所述图像处理器10的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
例如,系统总输出功率为6000毫瓦,根据常规功率分配机制,图像处理器10初始分配的最大功率为3000毫瓦,CPU初始分配的最大功率为2000毫瓦,预设的调整量可以是500毫瓦,则出现卡顿时,可以将图像处理器10的最大功率调整为3500毫瓦,CPU的最大功率调整为1500毫瓦。当然,此处预设的功率调整量可以是单一的数字,也可以是一个由无规律的多个数字组成的数列,如[500,200,100],则第一次调整时可以按照500毫瓦进 行调整,第二次按照200毫瓦为单位进行调整,第三次按照100毫瓦为单位进行调整。
又例如,可以给出预设的功率调整函数如y=1/x,其中,y为功率调整量,x为大于0的变量,其取值顺序及取值范围可以预设,如从0.0001取值到正无穷。根据x的取值可以计算得到功率调整量y的计算结果,然后根据y的计算结果进行分配,x可以与功率调整次数或其他系统参数有关。如在第一次调整中x取0.001时y等于1000;在第二次调整中x=0.002时,y=500;在第三次调整中x=0.005时,y=200。通过使用这种减函数的函数值进行功率分配,可以在初始动态分配时先为功率瓶颈状态的模块尽快分配较多的功率以加速解除功率瓶颈状态。
而在增加所述图像处理器10的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还可以还原所述图像处理器10和所述其他模块的功率分配至调整前的初始值。确保整个系统功率分配的平滑度。
可选地,在增加功率时,可以通过增加包括时钟频率、工作电压或电流中的至少一项。而在降低功率时,同样可以通过降低包括时钟频率、工作电压或电流中的至少一项来实现。本实施例对具体功率调整方式不做限定。在典型的示例中,如之前提到的图4中DVFS程序可以用于接受功率分配模块200中的功率调整子模块203的控制以作为功率调整和分配的执行者实现增加所述图像处理器10的功率并降低与所述显示相关的其他模块的功率,具体该DVFS程序进行电压和工作频率的缩放。本实施例将DVFS程序作为一个独立模块,在实际实现中,DVFS程序也可以包括在所述功率调整子模块203中,以形成功率分配模块200的一部分。或者,作为一个个可替换实施例,与图4中DVFS程序是软件不同,DVFS的功率调整功能,如电流、电压和工作频率的缩放等功能可以通过一个专用硬件来实现。此时该硬件在功率调整子模块203的控制下作为功率调整或分配的具体执行者,本实施例对此不作限制。
以上智能功率模块200包括的各个子模块或者更进一步的其他软件模块的功能可以由CPU实现,上述功能对应的程序可运行在CPU上。
请参见图5,为本发明实施例提供的一种图像处理器10的功率分配的方法的流程示意图;以移动该终端为例,其中的控制处理器10即为CPU,该CPU除了运行功率分配方法还运行安卓系统和其他应用程序,该应用程序需要消耗图像处理器10的计算量。该方法有CPU执行并具体包括如下步骤:S501.检测当前待显示的图像数据的帧率。S502.判断所述帧率是否低于预设帧率阈值。S503.若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态,否则结束流程。S504.响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态。S505.若所述图像处理器达到功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。如所述图像处理器未达到功率瓶颈状态则结束流程,即不作调整。
该方法所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明请参见前述系统、装置或其他实施例中关于这些内容的描述,此处不做赘述。也即是说,本申请的不同实施例中不同技术描述之间可以互相参考。
本领域技术人员可以理解,为了便于说明,本申请实施例中仅示出了一个存储器和处理器。在实际的场景中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者 存储设备等。当存储器数量是多个的时候,多个存储器可以是不同类型的存储器,本申请实施例对此不做限制。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (27)

  1. 一种图像处理器的功率分配的装置,其特征在于,包括:
    帧率检测模块,用于检测当前待显示的图像数据的帧率;
    功率分配模块,用于:
    判断所述帧率是否低于预设帧率阈值;
    若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
    响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
    若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
  2. 根据权利要求1所述的装置,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
  3. 根据权利要求1或2所述的装置,其特征在于,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。
  4. 根据权利要求1至3中任一项所述的装置,其特征在于,所述功率分配模块在判断图像处理器是否达到功率瓶颈状态时,具体用于:
    比较所述图像处理器的边界测量bound measure值与预设阈值;
    当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
    其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
  5. 根据权利要求1至4中任一项所述的装置,其特征在于,所述装置还包括:
    信息保存模块,用于在确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;
    其中,所述卡顿场景信息包括所述图像处理器驱动程序的开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
  6. 根据权利要求5所述的装置,其特征在于,所述装置还包括:
    卡顿场景信息保存开关模块,用于接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭所述信息保存模块。
  7. 根据权利要求1至6中任一项所述的装置,其特征在于,所述装置还包括:
    智能功率分配开关模块,用于接收用户输入的智能功率分配开关指令,根据所述智能功率分配开关指令的指示,开启或关闭所述功率分配模块。
  8. 根据权利要求1至7中任一项所述的装置,其特征在于,所述功率分配模块具体用 于:
    根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述其他模块的功率;或者
    根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述其他模块的功率。
  9. 根据权利要求1至8中任一项所述的装置,其特征在于,所述功率分配模块还用于:
    在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
  10. 一种图像处理器的功率分配的系统,其特征在于,包括:
    图像处理器,用于进行图像处理;
    控制处理器,用于:
    检测当前待显示的图像数据的帧率;
    判断所述帧率是否低于预设帧率阈值;
    若所述帧率低于所述预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
    响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
    若确定所述图像处理器达到所述功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
  11. 根据权利要求10所述的系统,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
  12. 根据权利要求10或11所述的系统,其特征在于,所述其他模块包括所述控制处理器、其他处理器或存储器中的至少一个。
  13. 根据权利要求10-12任一项所述的系统,其特征在于,所述控制处理器具体用于:
    比较所述图像处理器的边界测量bound measure值与预设阈值;
    当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
    其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
  14. 根据权利要求10-13任一项所述的系统,其特征在于,所述系统还包括:
    存储器,用于在所述控制处理器确定所述图像数据的显示处于卡顿状态时,记录卡顿场景信息;
    其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
  15. 根据权利要求14所述的系统,其特征在于,所述控制处理器还用于:
    接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
  16. 根据权利要求10-15任一项所述的系统,其特征在于,所述控制处理器还用于:
    接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
  17. 根据权利要求10-16任一项所述的系统,其特征在于,所述控制处理器具体用于:
    根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者
    根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
  18. 根据权利要求10-17任一项所述的系统,其特征在于,所述控制处理器还用于:
    在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
  19. 一种图像处理器的功率分配的方法,其特征在于,包括:
    检测当前待显示的图像数据的帧率;
    判断所述帧率是否低于预设帧率阈值;
    若所述帧率低于预设帧率阈值,则确定所述图像数据的显示处于卡顿状态;
    响应于所述卡顿状态,判断图像处理器是否达到功率瓶颈状态;
    若所述图像处理器达到功率瓶颈状态,则增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率。
  20. 根据权利要求19所述的方法,其特征在于,所述图像处理器的功率和所述显示相关的其他模块的功率之和不超过预设功率上限。
  21. 根据权利要求19所述的方法,其特征在于,所述其他模块包括控制处理器、其他处理器或存储器中的至少一个。
  22. 根据权利要求19或20所述的方法,其特征在于,所述判断图像处理器是否达到功率瓶颈状态,包括:
    比较所述图像处理器的边界测量bound measure值与预设阈值;
    当所述边界测量值达到所述预设阈值时,确定所述图像处理器达到功率瓶颈状态;
    其中,所述边界测量值是用于衡量所述图像处理器的负载状态的参数。
  23. 根据权利要求19-22任一项所述的方法,其特征在于,当确定所述图像数据的显示处于卡顿状态时,还包括:
    记录卡顿场景信息;
    其中,所述卡顿场景信息包括所述图像处理器驱动程序在所述卡顿状态下,开放式图像接口中应用程序编程接口OpenGL API的执行时间、硬件计数Hardware Counter信息以及所述开放式图像接口的描绘次数OpenGL Draw Call。
  24. 根据权利要求23所述的方法,其特征在于,所述方法还包括:
    接收用户输入的卡顿场景信息保存开关指令,根据所述卡顿场景信息保存开关指令的指示,开启或关闭记录卡顿场景信息的功能。
  25. 根据权利要求19-24任一项所述的方法,其特征在于,所述方法还包括:
    接收用户输入的智能功率分配开关指令,根据所述智能功率开关指令的指示,开启或关闭对所述图像处理器进行智能功率分配的功能。
  26. 根据权利要求19-25任一项所述的方法,其特征在于,所述增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率,包括:
    根据预设的功率调整量增加所述图像处理器的功率,并根据所述预设的功率调整量降低与所述显示相关的其他模块的功率;或者
    根据预设的功率调整函数的取值增加所述图像处理器的功率,并根据所述预设的功率调整函数的取值降低与所述显示相关的其他模块的功率。
  27. 根据权利要求19-26任一项所述的方法,其特征在于,所述方法还包括:
    在增加所述图像处理器的功率,并降低与所述显示相关的其他模块的功率的预设时间之后,还原所述图像处理器和所述其他模块的功率分配至初始值。
PCT/CN2018/085192 2018-04-28 2018-04-28 一种图像处理器的功率分配的方法、装置及系统 WO2019205172A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201880092619.6A CN112005218B (zh) 2018-04-28 2018-04-28 一种图像处理器的功率分配的方法、装置及系统
PCT/CN2018/085192 WO2019205172A1 (zh) 2018-04-28 2018-04-28 一种图像处理器的功率分配的方法、装置及系统
US17/079,917 US11301029B2 (en) 2018-04-28 2020-10-26 Method, apparatus, and system for allocating power to graphics processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/085192 WO2019205172A1 (zh) 2018-04-28 2018-04-28 一种图像处理器的功率分配的方法、装置及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/079,917 Continuation US11301029B2 (en) 2018-04-28 2020-10-26 Method, apparatus, and system for allocating power to graphics processing unit

Publications (1)

Publication Number Publication Date
WO2019205172A1 true WO2019205172A1 (zh) 2019-10-31

Family

ID=68294750

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/085192 WO2019205172A1 (zh) 2018-04-28 2018-04-28 一种图像处理器的功率分配的方法、装置及系统

Country Status (3)

Country Link
US (1) US11301029B2 (zh)
CN (1) CN112005218B (zh)
WO (1) WO2019205172A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343710A (zh) * 2020-02-26 2020-06-26 维沃移动通信有限公司 一种功率调整方法及电子设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111405347B (zh) * 2020-04-23 2022-04-29 成都极米科技股份有限公司 画面显示方法、装置、电子设备及可读存储介质
CN112835548A (zh) * 2021-02-04 2021-05-25 维沃移动通信有限公司 电子设备和显示帧率控制方法
US20220317747A1 (en) * 2021-03-31 2022-10-06 Advanced Micro Devices, Inc. Power shifting based on bottleneck prediction
CN113347487B (zh) * 2021-06-17 2022-09-27 微微科技有限公司 一种自动兼容设备低电量的浏览器序列图视频化方法及终端
US11747882B2 (en) * 2021-10-26 2023-09-05 Dell Products L.P. Central processor/accelerator power management system
CN114222084B (zh) * 2021-12-01 2023-05-23 联想(北京)有限公司 一种控制方法、装置及电子设备
CN116774809A (zh) * 2022-03-17 2023-09-19 荣耀终端有限公司 调整频率的方法、装置、电子设备及可读存储介质
WO2023230744A1 (en) * 2022-05-30 2023-12-07 Qualcomm Incorporated Display driver thread run-time scheduling
US20240211014A1 (en) * 2022-12-27 2024-06-27 Advanced Micro Devices, Inc. Power-aware, history-based graphics power optimization
CN118368375A (zh) * 2023-01-18 2024-07-19 华为技术有限公司 一种录像方法以及电子设备
CN115942131B (zh) * 2023-02-09 2023-09-01 蔚来汽车科技(安徽)有限公司 保障车辆环视功能的方法、座舱系统及车辆、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
CN104115093A (zh) * 2011-12-15 2014-10-22 英特尔公司 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
CN105378824A (zh) * 2013-06-04 2016-03-02 高通股份有限公司 用于便携式计算设备中基于智能多媒体的热功率管理的系统和方法
CN106681833A (zh) * 2016-12-27 2017-05-17 宇龙计算机通信科技(深圳)有限公司 一种调节cpu频率的方法及装置
CN107463481A (zh) * 2017-07-26 2017-12-12 努比亚技术有限公司 数据交互方法、移动终端和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
EP1846834A2 (en) * 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system
US20140002730A1 (en) * 2012-06-28 2014-01-02 Qualcomm Incorporated Adaptive frame rate control
US9128721B2 (en) * 2012-12-11 2015-09-08 Apple Inc. Closed loop CPU performance control
EP2962479B1 (en) * 2013-02-28 2016-11-30 Robert Bosch GmbH Mobile electronic device integration with in-vehicle information systems
US9261939B2 (en) * 2013-05-09 2016-02-16 Apple Inc. Memory power savings in idle display case
EP3019971B1 (en) * 2013-07-12 2020-05-06 Google LLC Methods and systems for performance monitoring for mobile applications
US9940858B2 (en) * 2016-05-16 2018-04-10 Unity IPR ApS System and method for assymetric rendering to eyes in augmented reality and virtual reality devices
CN106375755B (zh) * 2016-08-31 2018-12-28 福建省天奕网络科技有限公司 一种视频数据卡顿检测方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
CN104115093A (zh) * 2011-12-15 2014-10-22 英特尔公司 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
CN105378824A (zh) * 2013-06-04 2016-03-02 高通股份有限公司 用于便携式计算设备中基于智能多媒体的热功率管理的系统和方法
CN106681833A (zh) * 2016-12-27 2017-05-17 宇龙计算机通信科技(深圳)有限公司 一种调节cpu频率的方法及装置
CN107463481A (zh) * 2017-07-26 2017-12-12 努比亚技术有限公司 数据交互方法、移动终端和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343710A (zh) * 2020-02-26 2020-06-26 维沃移动通信有限公司 一种功率调整方法及电子设备

Also Published As

Publication number Publication date
US20210041937A1 (en) 2021-02-11
US11301029B2 (en) 2022-04-12
CN112005218A (zh) 2020-11-27
CN112005218B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
WO2019205172A1 (zh) 一种图像处理器的功率分配的方法、装置及系统
US11914446B2 (en) Electronic device control method and apparatus, and electronic device
CN107851042B (zh) 使用命令流提示来表征gpu工作负载和电力管理
WO2019174474A1 (zh) 卡顿信息获取方法、装置及终端
CN109064538B (zh) 视图渲染方法、装置、存储介质及智能终端
WO2019042169A1 (zh) 资源配置方法及相关产品
US20160232643A1 (en) Application-transparent resolution control by way of command stream interception
KR101471303B1 (ko) 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
US20140047256A1 (en) Terminal device and method for operating the same
TW201902226A (zh) 訊框速率調整方法及圖像處理裝置
WO2019072208A1 (zh) 应用程序运行控制方法及设备
CN111708642B (zh) Vr系统中处理器性能优化方法、装置及vr设备
CN105719229B (zh) 一种基于指令流截取的应用程序透明化的分辨率控制
US8780120B2 (en) GPU self throttling
TW201319828A (zh) 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
CN111816109A (zh) 显示方法、装置及显示设备
US20180262983A1 (en) Mobile terminal and working method thereof
CN112316437A (zh) 一种资源切换方法、装置、电子设备及存储介质
CN115454576B (zh) 一种虚拟机进程管理方法、系统及电子设备
WO2020206690A1 (zh) 应用清理方法、装置、存储介质及电子设备
CN112988364B (zh) 一种动态的任务调度方法、装置及存储介质
CN112463626B (zh) 内存泄漏定位方法、装置、计算机设备及存储介质
CN110515736B (zh) 限制后台对象的方法、装置、终端及存储介质
TWI712890B (zh) 電子設備中執行任務級快取記憶體管理的方法和裝置
CN114546910A (zh) 访问控制方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18916547

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18916547

Country of ref document: EP

Kind code of ref document: A1