WO2021223146A1 - Réduction de latence associée à la détection tactile d'une interface utilisateur - Google Patents
Réduction de latence associée à la détection tactile d'une interface utilisateur Download PDFInfo
- Publication number
- WO2021223146A1 WO2021223146A1 PCT/CN2020/088945 CN2020088945W WO2021223146A1 WO 2021223146 A1 WO2021223146 A1 WO 2021223146A1 CN 2020088945 W CN2020088945 W CN 2020088945W WO 2021223146 A1 WO2021223146 A1 WO 2021223146A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- touch
- processing unit
- touch panel
- load status
- thread
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3262—Power saving in digitizer or tablet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- aspects of the present disclosure generally relate to display processing and, for example, to touch detection.
- a user device may include a touch screen as an input and output device.
- a user can provide inputs and/or control information through touching the touch screen and/or view information displayed via the touch screen.
- the touch screen may be a capacitive touch screen that detects touches of the user through changes in capacitance detected by capacitive sensors of the touch screen.
- a method of wireless communication may include identifying a load status associated with a user device that includes a touch panel; assigning, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit; and configuring a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread.
- a device for wireless communication may include a memory and one or more processors operatively coupled to the memory.
- the memory and the one or more processors may be configured to identify a load status associated with a user device that includes a touch panel; assign, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit; and configure a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread.
- a non-transitory computer-readable medium may store one or more instructions for wireless communication.
- the one or more instructions when executed by one or more processors of a device, may cause the one or more processors to identify a load status associated with a user device that includes a touch panel; assign, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit; and configure a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread.
- an apparatus for wireless communication may include means for identifying a load status associated with a user device that includes a touch panel; means for assigning, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit; and means for configuring a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread.
- aspects generally include a method, apparatus, system, computer program product, non-transitory computer-readable medium, user device, user equipment, wireless communication device, and/or processing system as substantially described with reference to and as illustrated by the drawings and specification.
- Fig. 1 is a diagram illustrating an example environment in which methods of reducing latency associated with touch detection of a user interface described herein may be implemented, in accordance with various aspects of the present disclosure.
- Fig. 2 is a diagram illustrating example components of one or more devices shown in Fig. 1, such as a user device, in accordance with various aspects of the present disclosure.
- Figs. 3-5 are diagrams illustrating examples associated with methods of reducing latency associated with touch detection of a user interface, in accordance with various aspects of the present disclosure.
- Fig. 6 is a flow chart of example processes associated with a method of reducing latency associated with touch detection of a user interface, in accordance with various aspects of the present disclosure.
- a user device may include multiple central processing units (CPUs) . To conserve power, the user device may transition into a lower power mode in which one or more of the CPUs are transitioned from an active status to a sleep state.
- the sleep state may include multiple levels ranging from a light sleep state to a deep sleep state.
- a CPU in a deep sleep state may utilize less power than a CPU in a light sleep state.
- an amount of power conserved by transitioning a CPU into a deep sleep state may be greater than an amount of power conserved by transitioning a CPU into a light sleep state for the same amount of time.
- an amount of time for the CPU to transition from the deep sleep state to the active status may be greater than an amount of time for the CPU to transition from the light sleep state to the active status.
- the amount of time for the CPU to transition from a sleep state to the active status may be referred to as an exit latency.
- the user device may utilize a touch screen as a user interface.
- the touch screen may include a touch panel that includes a touch sensor (e.g., a capacitive touch sensor) to detect a user input and may report touch information (e.g., a measurement and/or information that can be analyzed to detect and/or identify an input made by, for example, a finger of a user contacting the touch panel) based on detecting the user input.
- a touch sensor e.g., a capacitive touch sensor
- touch information e.g., a measurement and/or information that can be analyzed to detect and/or identify an input made by, for example, a finger of a user contacting the touch panel
- the touch panel reporting rate (e.g., a frequency at which the touch panel reports touch information) may be increased (e.g., from 90 Hz to 120 Hz) .
- the touch panel may report touch information every 8.3 ms.
- the exit latency associated with the CPU transitioning from the sleep state to the active state may not give a touch driver sufficient time to process the touch information within 8.3 ms.
- reported touch information may be lost and/or overridden by subsequently reported touch information thereby preventing the CPU from detecting at least the initial touch. By not detecting the initial touch, the CPU may not be able to identify, or may mis-identify, the continuous touch event.
- a user device may prevent the CPUs from entering into a deep sleep state.
- preventing the CPUs from entering the deep sleep state may increase a power consumption of the CPUs relative to CPUs that enter the deep sleep state thereby utilizing additional computing resources (e.g., processing resources, memory resources, power resources, communication resources, and/or the like) that may otherwise be conserved.
- additional computing resources e.g., processing resources, memory resources, power resources, communication resources, and/or the like
- the user device may include a device that determines a CPU load status associated with the user device and assigns, based on the CPU load status, a touch driver task thread associated with the touch panel to a prioritized processing unit. For example, the device may determine that the user device is in a low power mode in which one or more processing units (e.g., CPUs) are in a sleep state. The device may assign the driver task thread to a processing unit in an active state, rather than performing load balancing and assigning the driver task thread to a processing unit in a sleep state, based on the user device being in the low power mode.
- processing units e.g., CPUs
- exit latency associated with transitioning a CPU from a sleep state to an active state based on assigning the driver task thread to a processing unit in a sleep state may be avoided thereby enabling initial touch information to be detected by the processing unit.
- the prioritized processing unit is utilized to process the driver task thread, other processing units may be transitioned into a deep sleep state, thereby allowing the user device to conserve power relative to a user device that prevents a processing unit from entering a deep sleep state.
- Fig. 1 is a diagram illustrating an example environment 100 in which methods of reducing latency associated with touch detection of a user interface described herein may be implemented, in accordance with various aspects of the present disclosure.
- environment 100 may include a user device 110, a wireless communication device 120, and/or a network 130.
- Devices of environment 100 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
- User device 110 includes one or more devices capable of reducing latency associated with touch detection of a user interface as described herein.
- user device 110 may include one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with touch detection described herein.
- user device 110 may include a communication and/or computing device, such as a mobile phone (e.g., a smart phone, a radiotelephone, and/or the like) , a laptop computer, a tablet computer, a handheld computer, a desktop computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, and/or the like) , or a similar type of device.
- a mobile phone e.g., a smart phone, a radiotelephone, and/or the like
- a laptop computer e.g., a tablet computer, a handheld computer, a desktop computer
- gaming device e.g., a wearable communication device (e.g
- wireless communication device 120 includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with touch detection as described herein.
- wireless communication device 120 may include a base station, an access point, and/or the like.
- wireless communication device 120 may include a communication and/or computing device, such as a mobile phone (e.g., a smart phone, a radiotelephone, and/or the like) , a laptop computer, a tablet computer, a handheld computer, a desktop computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, and/or the like) , or a similar type of device.
- a mobile phone e.g., a smart phone, a radiotelephone, and/or the like
- laptop computer e.g., a tablet computer, a handheld computer, a desktop computer
- gaming device e.g., a wearable communication device (e.g., a smart wristwatch
- Network 130 includes one or more wired and/or wireless networks.
- network 130 may include a cellular network (e.g., a long-term evolution (LTE) network, a code division multiple access (CDMA) network, a 3G network, a 4G network, a 5G network, another type of next generation network, etc.
- LTE long-term evolution
- CDMA code division multiple access
- PLMN public land mobile network
- LAN local area network
- WAN wide area network
- MAN metropolitan area network
- P MN Public Switched Telephone Network
- the number and arrangement of devices and networks shown in Fig. l are provided as one or more examples. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in Fig. 1. Furthermore, two or more devices shown in Fig. 1 may be implemented within a single device, or a single device shown in Fig. 1 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 100 may perform one or more functions described as being performed by another set of devices of environment 100.
- Fig. 2 is a diagram illustrating example components of a device 200, in accordance with various aspects of the present disclosure.
- Device 200 may correspond to user device 110 and/or wireless communication device 120.
- user device 110 and/or wireless communication device 120 may include one or more devices 200 and/or one or more components of device 200.
- device 200 may include a bus 205, a processor 210, a memory 215, a storage component 220, an input component 225, an output component 230, a communication interface 235, a sensor 240, and/or the like.
- Bus 205 includes a component that permits communication among the components of device 200.
- Processor 210 is implemented in hardware, firmware, or a combination of hardware and software.
- Processor 210 is a central processing unit (CPU) , a graphics processing unit (GPU) , an accelerated processing unit (APU) , a microprocessor, a microcontroller, a digital signal processor (DSP) , a field-programmable gate array (FPGA) , an application-specific integrated circuit (ASIC) , or another type of processing component.
- processor 210 includes one or more processors capable of being programmed to perform a function.
- Memory 215 includes a random access memory (RAM) , a read only memory (ROM) , and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by processor 210.
- RAM random access memory
- ROM read only memory
- static storage device e.g., a flash memory, a magnetic memory, and/or an optical memory
- Storage component 220 stores information and/or software related to the operation and use of device 200.
- storage component 220 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid state disk) , a compact disc (CD) , a digital versatile disc (DVD) , a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive.
- Input component 225 includes a component that permits device 200 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone) . Additionally, or alternatively, input component 225 may include a component for determining a position or a location of device 200 (e.g., a global positioning system (GPS) component, a global navigation satellite system (GNSS) component, and/or the like) a sensor for sensing information (e.g., an accelerometer, a gyroscope, an actuator, another type of position or environment sensor, and/or the like) ) .
- Output component 230 includes a component that provides output information from device 200 (e.g., a display, a speaker, a haptic feedback component, an audio or visual indicator, and/or the like) .
- Communication interface 235 includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables device 200 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections.
- Communication interface 235 may permit device 200 to receive information from another device and/or provide information to another device.
- communication interface 235 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency interface, a universal serial bus (USB) interface, a wireless local area interface (e.g., a Wi-Fi interface) , a cellular network interface, and/or the like.
- Sensor 240 includes one or more devices capable of sensing characteristics associated with device 200 (e.g., a characteristic of a physical environment or operating condition of device 200.
- Sensor 240 may include one or more integrated circuits (e.g., on a packed silicon die) and/or one or more passive components of one or more flex circuits to enable communication with one or more components of device 200.
- Sensor 240 may include a capacitive touch sensor capable of detecting a user input.
- sensor 240 may be associated with a touchscreen and/or another user interface (e.g., a button) of the user device 110.
- Sensor 240 may provide a measurement and/or information that can be analyzed to detect and/or identify a finger of a user.
- sensor 240 may include magnetometer (e.g., a Hall effect sensor, an anisotropic magnetoresistive (AMR) sensor, a giant magneto-resistive sensor (GMR) , and/or the like) , a location sensor (e.g., a global positioning system (GPS) receiver, a local positioning system (LPS) device (e.g., that uses triangulation, multi-lateration, etc.
- magnetometer e.g., a Hall effect sensor, an anisotropic magnetoresistive (AMR) sensor, a giant magneto-resistive sensor (GMR) , and/or the like
- AMR anisotropic magnetoresistive
- GMR giant magneto-resistive sensor
- LPS local positioning system
- a gyroscope e.g., a micro-electro-mechanical systems (MEMS) gyroscope or a similar type of device
- MEMS micro-electro-mechanical systems
- Device 200 may perform one or more processes described herein. Device 200 may perform these processes based on processor 210 executing software instructions stored by a non-transitory computer-readable medium, such as memory 215 and/or storage component 220.
- a computer-readable medium is defined herein as a non-transitory memory device.
- a memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
- Software instructions may be read into memory 215 and/or storage component 220 from another computer-readable medium or from another device via communication interface 235. When executed, software instructions stored in memory 215 and/or storage component 220 may cause processor 210 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, aspects described herein are not limited to any specific combination of hardware circuitry and software.
- device 200 includes means for performing one or more processes described herein and/or means for performing one or more operations of the processes described herein.
- device 200 may include means for identifying a load status associated with a user device that includes a touch panel; means for assigning, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit; means for configuring a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread; and/or the like.
- such means may include one or more components of device 200 described in connection with Fig. 2, such as bus 205, processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, sensor 240, and/or the like.
- device 200 may include additional components, fewer components, different components, or differently arranged components than those shown in Fig. 2. Additionally, or alternatively, a set of components (e.g., one or more components) of device 200 may perform one or more functions described as being performed by another set of components of device 200.
- a set of components e.g., one or more components
- Fig. 3 is a diagram illustrating an example 300 associated with reducing latency associated with touch detection of a user interface, in accordance with various aspects of the present disclosure.
- example 300 may include a user device that includes a touch panel.
- the touch panel may include a touch controller and a touch sensor.
- the touch sensor may be a clear, conductive panel, such as, for example, a glass panel.
- the touch controller may cause an electrical current to flow through the conductive panel and may determine an occurrence of a touch event based on detecting a change in an electrical property of the conductive panel (e.g., a change in voltage, a change in capacitance, a change in resistance, and/or the like) caused by, for example, a user touching the touch panel.
- a change in an electrical property of the conductive panel e.g., a change in voltage, a change in capacitance, a change in resistance, and/or the like
- the touch event may be a touch start event (e.g., a first touch of the touch panel by a user) , a touch end event (e.g., the user stops touching the touch panel) , a touch move event (e.g., the user moves a finger along the surface of the touch panel) , and/or the like.
- the touch controller may report the touch event by transmitting a touch interrupt signal to a system controller of the user device.
- the touch controller may periodically poll the touch sensor to detect a touch event and/or may periodically report the touch event to the system controller.
- a frequency at which the touch controller periodically polls the touch sensor and/or at which the touch controller periodically reports the touch event may be referred to as a reporting frequency.
- a user may perform a first touch action by touching a bottom portion of the touch panel with a finger and moving the finger upwards towards a top portion of the touch panel while maintaining contact with the touch panel.
- the touch controller may detect a first touch event (e.g., a touch start event) corresponding to the user touching the bottom portion of the touch panel and may report the first touch event by transmitting a touch interrupt signal.
- a first touch event e.g., a touch start event
- the system controller may receive the touch interrupt signal and may activate a driver worker thread associated with detecting the touch.
- a CPU manager may determine that the driver worker thread is activated and may schedule a task associated with the driver worker thread to a CPU of the user device based on a load status associated with the user device.
- the CPU manager may determine a status (e.g., an active status, a sleep state, and/or the like) of each of a plurality of CPUs associated with the user device.
- the CPU manager may determine whether the user device is under a light load based on the status of the CPUs, as described in further detail below with respect to Fig. 4.
- the CPU manager may determine that the user device is not associated with a light load status.
- the CPU manager may schedule the driver worker thread based on performing load balancing to balance a load associated with the CPU.
- the CPU manager detects that the user device is under a light load.
- the CPU manager identify a high priority CPU based on the user device being under the light load. For example, the CPU manager may determine that a CPU, of the plurality of CPUs, is in an active status.
- the CPU manager may classify the CPU as a high priority CPU based on the CPU being in the active status rather than being in a sleep state.
- the high priority CPU may be the only CPU, of the plurality of CPUs, that is in the active status and/or is available to process task threads of the user device.
- the CPU manager may determine whether a task to be scheduled to a CPU is a touch panel task or a non-touch panel task.
- a touch panel task may include tasks related to detecting a touch input, performing a task related to the touch input, and/or the like. For example, the CPU manager may determine that a user interface thread is activating a task. The CPU manager may determine that the task is a touch panel task based on the task being activated by the user interface thread. As another example, the CPU manager may determine that another task is activated in association with the user interface thread activating the task. The CPU manager may identify the other task as a touch driver task based on the other task being activated in association with the user interface thread activating the task.
- the CPU manager assigns touch panel tasks to the high priority CPU.
- the CPU manager may prevent exit latency associated with assigning touch panel tasks to a CPU in a sleep state. In this way, the CPU manager may increase a speed at which touch information associated with the first touch is process to enable touch information associated with the first touch to be read and/or processed within an amount of time associated with the reporting frequency thereby preventing the touch information from being overridden by subsequent touch information reported by the touch panel.
- the CPU manager may determine an operating setting of the touch panel.
- the operating setting may identify a refresh rate associated with the touch panel, a reporting frequency associated with the touch panel, and/or the like.
- the CPU manager may assign the touch panel tasks to the high priority CPU further based on the operating setting. For example, the CPU manager may determine that driver processing latency is longer than the reporting frequency interval associated with the touch panel by analyzing historic per touch driver processing latency.
- the CPU manager may determine that an exit latency associated with the CPU currently in a sleep state comprises a threshold portion of the touch driver processing latency, the CPU manager may assign the touch panel tasks to the high priority CPU.
- the high priority CPU may execute the assigned touch panel tasks to obtain touch information associated with the touch event from the touch controller.
- the touch information may include a touch ID, touch location information, touch target information, and/or the like.
- the touch ID may be a unique identifier assigned to the touch event.
- the touch ID may allow the system controller to detect a movement of the touch, detect a multi-finger touch, and/or the like.
- the touch location information may include information identifying a location of the touch on the touch panel. For example, the location information may identify an X coordinate of the touch relative to a left edge of the touch panel and a Y coordinate of the touch relative to a top edge of the touch panel.
- the touch target information may include information identifying a display element located at a position on a display of the user device corresponding to a location of the touch (e.g., information indicating that the user touched a particular icon displayed on the display of the user device) .
- the high priority CPU may process the touch information to detect the touch of the user.
- the touch controller may determine that a period of time associated with the reporting frequency, or a reporting interval (e.g., a reporting interval of 8.3 ms for a reporting frequency of 120 Hz) , is elapsed and may poll the touch sensor.
- the touch controller may detect a second touch event (e.g., a touch move event) based on polling the touch sensor.
- the touch controller may report the second touch event in a manner similar to that described above.
- the CPU manager may prevent the CPUs from entering a deep sleep state while the user device is in the low power mode. For example, as shown by reference number 330, the CPU manager prevents a deep low power mode for a threshold period of time. The CPU manager may prevent a deep low power mode for the threshold period of time based on a control setting of the high priority CPU, as described in greater detail below with respect to Fig. 5.
- Fig. 3 is provided as an example. Other examples may differ from what is described with respect to Fig. 3.
- Fig. 4 is a diagram illustrating an example 400 associated with reducing latency associated with touch detection of a user interface, in accordance with various aspects of the present disclosure.
- Example 400 includes an example logical flow to determining whether the user device is under a light load, as described herein.
- the user device may include multiple CPUs. Each CPU may be classified as a golden CPU or a silver CPU. A golden CPU may have a greater capacity, a greater execution speed, and a greater power consumption relative to a silver CPU.
- the user device may include a load detection module that is configured to determine whether the user device is under a light load based on a status of the CPUs.
- the load detection module may determine whether only one silver CPU is in an active status (e.g., each silver CPU is in a sleep state except for a silver CPU executing a task associated with the load detection module) . As shown in Fig. 4, the load detection module may determine the user device is under a light load when only one silver CPU is in an active status.
- the load detection module may determine whether all golden CPUs are in a sleep state and whether a silver CPU in an active status has been in a sleep state a threshold amount of time over a time period. For example, as shown in Fig. 4, the load detection module may determine, during a time period (200 ms, as shown in Fig.
- a time at which the silver CPU entered into an idle mode e.g., the silver CPU is in an active status but not currently executing a task
- a time at which the silver CPU entered into a low power mode e.g., a time at which the silver CPU entered a light sleep state, a deep sleep state, and/or the like
- a time at which the silver CPU exited the low power mode e.g., a time at which the silver CPU entered the active status
- the load detection module may determine that the user device is under a light load. Otherwise, the load detection module may determine that the user device is not under a light load.
- a threshold e.g. 90%
- Fig. 4 is provided as an example. Other examples may differ from what is described with respect to Fig. 4.
- Fig. 5 is a diagram illustrating an example 500 associated with reducing latency associated with touch detection of a user interface, in accordance with various aspects of the present disclosure.
- Example 500 includes an example logical flow to prevent a CPU from entering a deep sleep state, as described herein.
- a user may provide an input (e.g., a touch) via a touch panel of a user interface.
- the touch panel may detect a touch event based on the user providing the input.
- Touch panel firmware may report the touch event by transmitting a touch interrupt signal ( “Touch irq” ) .
- a system controller may receive the interrupt signal and may activate a touch driver task to read touch information from the touch panel firmware and to process the touch event based on the touch information.
- the touch driver task may include a collection of threads that cooperate to process the touch event.
- the system controller receives the touch interrupt signal and activates a driver worker thread, in a manner similar to that described above with respect to Fig. 3.
- the system controller may send a notification ( “Notify_start_event” ) to a statistics and policy module based on activating the driver worker thread.
- the statistics and policy module may determine a start of a driver process associated with a touch event based on the notification.
- the activated driver worker thread may run and a CPU may execute one or more tasks associated with the driver worker thread.
- the CPU may finish executing the one or more tasks associated with the driver worker thread to complete the driver process associated with the touch event.
- the system controller may notify the statistics and policy module of the completion of the driver process associated with the touch event ( “Notify_end_event” ) .
- the statistics and policy module may determine a touch driver processing latency ( “touch drive time” ) .
- the touch driver processing latency may correspond to an amount of time required for the driver process associated with the touch event to be completed.
- the statistics and policy module may determine the touch driver processing latency based on the time at which the driver process started and the time at which the driver process was completed.
- the statistics and policy module may store information identifying the touch driver processing latency in a data structure.
- the data structure may include information identifying touch driver processing latency for historical touch events occurring during a lower power mode.
- the statistics and policy module may analyze the information stored in the data structure and may identify a longest touch driver processing latency based on the analysis.
- the statistics and policy module may determine whether the longest touch driver processing latency is greater than a time associated with a reporting frequency associated with the touch panel.
- the touch panel may be associated with a reporting frequency of 120 Hz.
- the touch panel may poll the touch sensor and/or report a touch event every 8.3 ms (e.g., an inverse of the reporting frequency) .
- the statistics and policy module may determine whether the longest touch driver latency is greater than 8.3 ms.
- a second touch event in the touch panel firmware may be generated prior to the touch information associated with the first touch event being completely processed by the CPU thereby resulting in the touch information associated with the first touch event being overridden.
- the statistics and policy module may apply one or more policies to shorten the touch driver processing latency.
- the touch driver processing latency may comprise a runnable time, a running time, and a sleep time.
- the runnable time is an amount of time that the CPU is running.
- the running time is an amount of time that a task is running with the CPU.
- the sleep time is an amount of time that the CPU is in a sleep state.
- the statistics and policy module may determine the runnable time, the running time, and the sleep time for the longest touch driver processing latency.
- the statistics and policy module may determine a runnable percent based on the runnable time. In some aspects, the statistics and policy may determine the runnable percent based on the formula:
- Runnable Percent (runnable time) / ( (running time) + (runnable time) + (sleep time) ) (1)
- the statistics and policy module may determine that the runnable percent is greater than a threshold percentage (e.g., 40%) .
- the statistics and policy module may determine that a state of the CPU significantly effects the touch driver processing latency and that the touch driver processing time can be reduced by preventing the CPU from entering a deep sleep state.
- the statistics and policy module may apply a first policy to prevent the CPU from entering a deep sleep state.
- the statistics and policy module may reduce an exit latency associated with the CPU transitioning from a sleep state to the active state. By reducing the exit latency associated with the CPU, the statistics and policy module may reduce the touch driver processing latency associated with the CPU processing a subsequent touch event.
- the statistics and policy module transmits a signal to an action module to cause the action module to apply a quality of service signal (shown as “pm_qos” in Fig. 5) for the CPU.
- the quality of service signal may prevent the CPU from entering a deep sleep state for a period of time (e.g., 5 ms, 8 ms, less than 10 ms, and/or the like) .
- the CPU manager may receive the quality of service signal and may cause the CPU to remain in an active state, transition to a light sleep state, and/or prevent the CPU from entering a deep sleep state during the period of time.
- the period of time may be a duration between time reports that is defined by a touch report rate of the touch panel.
- the period of time may be determined based on the longest touch driver processing latency, a runnable time associated with processing one or more tasks of the touch driver task thread, a running time associated with processing the one or more tasks of the touch driver task thread, and/or the like.
- the CPU manager may determine an expiration of the period of time.
- the CPU manager may control the CPU to enter a low power mode (e.g., a light sleep state, a deep sleep state, and/or the like) based on the expiration of the period time.
- a low power mode e.g., a light sleep state, a deep sleep state, and/or the like
- the statistics and policy module applies a second policy based on the running time of the longest touch driver processing latency.
- the statistics and policy module may determine a running percent based on the runnable time. In some aspects, the statistics and policy may determine the running percent based on the formula:
- Runnable Percent (running time) / ( (running time) + (runnable time) + (sleep time) ) (2)
- the statistics and policy module may determine that the running percent is greater than a threshold percentage (e.g., 60%) .
- the statistics and policy module may determine that the CPU is running slowly based on the running percent being greater than the threshold percentage and/or that the touch driver processing time can be reduced by increasing a CPU frequency of the CPU.
- the statistics and policy module may apply a second policy to increase a CPU frequency of the CPU.
- the statistics and policy module causes the action module to apply a pre-input boost to the CPU to increase a CPU frequency of the CPU.
- the CPU may be capable of operating at 672MHz, 768MHz, 1800MHz, and/or the like.
- the CPU may currently be operating at 672 MHz.
- Applying the pre-input boost to the CPU may cause the CPU to begin operating at 768 MHz or 1800 MHz.
- the running time of the CPU may be decreased which may result in a corresponding decrease in the touch driver processing latency associated with the CPU processing a subsequent touch event.
- the statistics and policy module may apply the pre-input boost to the CPU based on a reporting frequency associated with the touch panel and/or a refresh rate associated with a display of the user device.
- the policy and statistics module may determine whether the reporting frequency associated with the touch panel is a high touch report rate (e.g., 120 Hz) and/or whether the refresh rate associated with the display of the user device is a high refresh rate (e.g., 120 Hz) .
- the statistics and policy module causes the action module to apply the pre-input boost to the CPU when the touch rate is a high touch rate and/or when the refresh rate is a high refresh rate.
- the pre-input boost may cause a CPU frequency of the CPU to be increased, as described above.
- Fig. 5 is provided as an example. Other examples may differ from what is described with respect to Fig. 5.
- Fig. 6 is a flow chart of an example process 600 associated with reducing latency associated with touch detection of a user interface.
- one or more process blocks of Fig. 6 may be performed by a device (e.g., user device 110) .
- one or more process blocks of Fig. 6 may be performed by another device or a group of devices separate from or including the device, such as a wireless communication device (e.g., wireless communication device 120) and/or the like.
- a wireless communication device e.g., wireless communication device 120
- process 600 may include identifying a load status associated with a user device that includes a touch panel (block 610) .
- the device e.g., using processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, sensor 240, and/or the like
- process 600 may include assigning, based at least in part on the load status, a touch driver task thread, associated with the touch panel, to a prioritized processing unit (block 620) .
- the device e.g., using processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, sensor 240, and/or the like
- process 600 may include configuring a control setting of the prioritized processing unit for a threshold time period to reduce latency associated with processing the touch driver task thread (block 630) .
- the device e.g., using processor 210, memory 215, storage component 220, input component 225, output component 230, communication interface 235, sensor 240, and/or the like
- Process 600 may include additional implementations, such as any single implementation or any combination of implementations described below and/or in connection with one or more other processes described elsewhere herein.
- the load status is identified based at least in part on respective power modes of a plurality of processing units of the user device, the prioritized processing unit is one of the plurality of processing units that is in an active power mode.
- the load status is identified based at least in part on the respective power modes of the plurality of processing units during a most recent threshold time period.
- the prioritized processing unit is an only active processing unit, of a plurality of processing units of the user device, that is available to process task threads of the user device.
- the touch driver task thread is identified based at least in part on the touch driver task thread being activated in association with a user interface thread activating a task.
- process 600 includes prior to is assigning the touch driver task thread to the prioritized processing unit, determining an operating setting of the touch panel, wherein the touch driver task is being assigned to the prioritized processing unit based at least in part on the operating setting.
- the operating setting identifies at least one of: a refresh rate associated with the touch panel, or a touch report rate associated with the touch panel.
- control setting comprises at least one of: a power mode, or a performance characteristic to detect a start of a touch action.
- the threshold time period is a duration between touch reports that is defined by a touch report rate of the touch panel.
- the threshold time period is determined based at least in part on: an identified longest processing time associated with processing a previous task of the touch driver task thread; a runnable time duration associated with processing one or more tasks of the touch driver task thread, or a running time duration associated with processing the one or more tasks of the touch driver task thread.
- the method comprises: controlling the prioritized processing unit to enter a low power mode.
- process 600 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 6. Additionally, or alternatively, two or more of the blocks of process 600 may be performed in parallel.
- the term “component” is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software.
- a processor is implemented in hardware, firmware, and/or a combination of hardware and software. It will be apparent that systems and/or methods described herein may be implemented in different forms of hardware, firmware, and/or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the aspects. Thus, the operation and behavior of the systems and/or methods were described herein without reference to specific software code-it being understood that software and hardware can be designed to implement the systems and/or methods based, at least in part, on the description herein.
- satisfying a threshold may, depending on the context, refer to a value being greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, and/or the like.
- “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiples of the same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c) .
- the phrase “only one” or similar language is used.
- the terms “has, ” “have, ” “having, ” and/or the like are intended to be open-ended terms.
- the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
- the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and/or, ” unless explicitly stated otherwise (e.g., if used in combination with “either” or “only one of” ) .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
D'une manière générale, divers aspects de la présente divulgation concernent la communication sans fil. Selon certains aspects, un dispositif peut identifier un état de charge associé à un dispositif utilisateur qui comprend un panneau tactile; attribuer, sur la base au moins en partie de l'état de charge, un fil de tâche de pilote tactile, associé au panneau tactile, à une unité de traitement prioritaire; et configurer un réglage de commande de l'unité de traitement prioritaire pendant une période de temps seuil pour réduire la latence associée au traitement du fil de tâche de pilote tactile. La divulgation concerne également de nombreux autres aspects.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/088945 WO2021223146A1 (fr) | 2020-05-07 | 2020-05-07 | Réduction de latence associée à la détection tactile d'une interface utilisateur |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/088945 WO2021223146A1 (fr) | 2020-05-07 | 2020-05-07 | Réduction de latence associée à la détection tactile d'une interface utilisateur |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021223146A1 true WO2021223146A1 (fr) | 2021-11-11 |
Family
ID=78467768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/088945 WO2021223146A1 (fr) | 2020-05-07 | 2020-05-07 | Réduction de latence associée à la détection tactile d'une interface utilisateur |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021223146A1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259865A1 (en) * | 2008-04-11 | 2009-10-15 | Qualcomm Incorporated | Power Management Using At Least One Of A Special Purpose Processor And Motion Sensing |
US20100313050A1 (en) * | 2009-06-05 | 2010-12-09 | Qualcomm Incorporated | Controlling power consumption of a mobile device based on gesture recognition |
CN106200853A (zh) * | 2016-07-02 | 2016-12-07 | 上海与德通讯技术有限公司 | 一种唤醒电路及唤醒方法 |
WO2018191845A1 (fr) * | 2017-04-17 | 2018-10-25 | 深圳市汇顶科技股份有限公司 | Dispositif électronique et procédé de détection |
-
2020
- 2020-05-07 WO PCT/CN2020/088945 patent/WO2021223146A1/fr active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259865A1 (en) * | 2008-04-11 | 2009-10-15 | Qualcomm Incorporated | Power Management Using At Least One Of A Special Purpose Processor And Motion Sensing |
US20100313050A1 (en) * | 2009-06-05 | 2010-12-09 | Qualcomm Incorporated | Controlling power consumption of a mobile device based on gesture recognition |
CN106200853A (zh) * | 2016-07-02 | 2016-12-07 | 上海与德通讯技术有限公司 | 一种唤醒电路及唤醒方法 |
WO2018191845A1 (fr) * | 2017-04-17 | 2018-10-25 | 深圳市汇顶科技股份有限公司 | Dispositif électronique et procédé de détection |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI659342B (zh) | Touch sensor type electronic device and sensor control method | |
US9665217B2 (en) | Touch panel scan control | |
KR101892315B1 (ko) | 컴퓨팅 디바이스 내의 터치 이벤트의 예상 | |
US10277524B1 (en) | Monitoring data streams and scaling computing resources based on the data streams | |
EP3152642B1 (fr) | Synchronisation adaptive d'ecran tactile | |
EP3508974B1 (fr) | Procédé et terminal pour attribuer une ressource de système à une application | |
US9804765B2 (en) | Controlling method of screen lock and electronic device supporting the same | |
US20130265243A1 (en) | Adaptive power adjustment for a touchscreen | |
US9110584B2 (en) | Controlling a cursor on a touch screen | |
WO2016040811A1 (fr) | Gestion d'alimentation de processseur heuristique dans des systemes d'exploitation | |
WO2018031383A1 (fr) | Réveil de stylet à la détection d'un écran | |
WO2015062372A1 (fr) | Procédé et appareil pour sélectionner des objets | |
WO2012135373A2 (fr) | Contrôleur d'interface utilisateur dédié permettant des réponses de rétroaction | |
US9377895B2 (en) | Method for divided scanning of touch panel | |
WO2015105753A2 (fr) | Système et procédé pour le traitement tactile augmenté par le système hôte | |
JP2012113485A (ja) | タッチパネル装置及びタッチパネル検出方法 | |
US12121797B2 (en) | Program, electronic device, and method | |
EP3869234A1 (fr) | Localisation de dispositif mobile | |
JP5696603B2 (ja) | 計算機システム、計算機システムの電力制御方法およびプログラム | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
WO2021223146A1 (fr) | Réduction de latence associée à la détection tactile d'une interface utilisateur | |
CN103092498A (zh) | 确定响应模式的方法和装置、以及电子设备 | |
EP3144791A1 (fr) | Appareil de traitement d'informations, procédé de traitement d'informations et programme | |
CN103186234A (zh) | 控制方法以及电子设备 | |
CN103105957A (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: 20934551 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: 20934551 Country of ref document: EP Kind code of ref document: A1 |