WO2022046055A1 - Latency durations of peripheral devices - Google Patents

Latency durations of peripheral devices Download PDF

Info

Publication number
WO2022046055A1
WO2022046055A1 PCT/US2020/048143 US2020048143W WO2022046055A1 WO 2022046055 A1 WO2022046055 A1 WO 2022046055A1 US 2020048143 W US2020048143 W US 2020048143W WO 2022046055 A1 WO2022046055 A1 WO 2022046055A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
duration
latency duration
latency
peripheral device
Prior art date
Application number
PCT/US2020/048143
Other languages
French (fr)
Inventor
Tsue-Yi HUANG
Chia-Cheng Lin
Kang-Ning Feng
Shao-Yu CHIANG
Original Assignee
Hewlett-Packard Development Company, L.P.
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 Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/048143 priority Critical patent/WO2022046055A1/en
Publication of WO2022046055A1 publication Critical patent/WO2022046055A1/en

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera

Definitions

  • a battery-operated host device may perform any of a variety of actions to preserve battery life.
  • the host device may be programmed with a particular latency duration, which determines how long the host device may wait before servicing a signal (e.g., an interrupt signal) received from a peripheral device connected to the host device.
  • Battery life may be preserved by longer latency durations and may be diminished by shorter latency durations.
  • FIG. 1 is a schematic diagram of a system for adjusting a latency duration of a peripheral device in accordance with various examples
  • FIG. 2 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples
  • FIG. 3 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples.
  • FIG. 4 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples.
  • a host device may be programmed with a relatively long latency duration.
  • the latency duration may be a Latency Tolerance Reporting (LTR) duration, for example.
  • LTR Latency Tolerance Reporting
  • relatively long latency durations help to preserve battery life, they can often result in a diminished user experience.
  • a peripheral device e.g., a full high definition (FHD) Universal Serial Bus (USB) camera
  • FHD Full high definition
  • USB Universal Serial Bus
  • the peripheral device may send signals to the host device and may expect the host device to rapidly service those signals.
  • the host device may take an undesirably long time to service the signals from the peripheral device.
  • an audio controller in the host device may have been programmed with a relatively long latency duration, and in response to a user headset being connected to the host device, the audio controller may instruct a central processing unit (CPU) of the host device to wait an undesirably long time before servicing signals from the headset.
  • CPU central processing unit
  • Such delays may be compounded even further by latency durations that are so long that they allow the CPU to enter a low-power mode (e.g., a sleep mode) due to low activity levels.
  • a low-power mode e.g., a sleep mode
  • signals from the peripheral device are serviced even more slowly than when the CPU is not in a low-power mode because the CPU may not be able to service the signals until it has exited the low-power mode and resumed normal operations.
  • Attempting to improve the user experience by indiscriminately decreasing the latency duration is also disadvantageous, as this may result in a higher rate of battery drain.
  • This disclosure describes examples of a host device that dynamically adjusts a latency duration in response to a peripheral device, such as a highspeed peripheral device, being connected to the host device, either directly or indirectly (e.g., through an electronic device such as a docking station).
  • a peripheral device such as a highspeed peripheral device
  • the host device may determine what type of peripheral device has been connected; store, for later use, a first latency duration present in a register of a device controller for the peripheral device; and then adjust the first latency duration in the register to a second latency duration.
  • the type of peripheral device may indicate a function performed by the peripheral device (e.g., input device, output device, storage device), a particular form of the peripheral device (e.g., touch screen device, audio device, mouse, keyboard, display device), a method by which the peripheral device couples to another electronic device (e.g., USB, Thunderbolt), or a speed of the peripheral device (e.g., high speed).
  • the second latency duration may be a programmed latency duration that prevents the CPU from entering the low-power mode. After the peripheral device has been disconnected from the host device, the host device may re-write the register with the first latency duration and discard the second latency duration.
  • the experience for the user of the peripheral device is improved because signals from the peripheral device to the CPU are serviced quickly.
  • the user experience is further improved because decreasing the latency duration of a device controller prevents the CPU from entering a low-power mode while the peripheral device is connected to and communicating with the host device.
  • the host device described herein continues to preserve battery life because it includes a selective and dynamic adjustment (e.g., reduction) to a latency duration when doing so would result in an improved user experience. By adjusting latency durations selectively and dynamically instead of indiscriminately and permanently, battery life is still preserved.
  • the host device may decrease the latency duration in the register of an audio controller but may leave the latency durations in other device controllers (e.g., USB controller, local area network (LAN) controller) unchanged, thus preserving battery life while making a temporary accommodation for a high-speed headset peripheral device.
  • Battery life preservation is further improved by restoring the prior latency duration, as described above, in response to the peripheral device being disconnected from the host device.
  • a host device comprising a first controller having a first latency duration; and a second controller coupled to the first controller.
  • the second controller is to receive data from an electronic device coupled to the host device.
  • the data indicates a type of a peripheral device coupled to the electronic device.
  • the second controller is to replace the first latency duration with a second latency duration based on the data.
  • the first and second latency durations are indicative of respective delays that are to elapse prior to servicing signals received from the electronic device.
  • the second latency duration is shorter than the first latency duration.
  • a non-transitory computer-readable medium stores computer- readable instructions.
  • the computer-readable instructions When executed by a first controller of a host device, the computer-readable instructions cause the first controller to determine a type of a peripheral device coupled to the host device, store a first latency duration of a second controller for the peripheral device, replace the first latency duration of the second controller with a second latency duration based on the type, and, after a signal from the peripheral device has been serviced, replace the second latency duration of the second controller with the stored first latency duration.
  • a host device comprises a first controller and a second controller coupled to the first controller.
  • the second controller is to determine a type of a peripheral device coupled to the host device and to replace a first latency duration of the first controller with a second latency duration based on the type.
  • the second latency duration is indicative of a delay that is to elapse prior to servicing a signal received from the peripheral device.
  • the first latency duration is sufficiently long to allow a processor of the host device to enter a low-power mode and the second latency duration is sufficiently short to prevent the processor from entering the low-power mode.
  • the system 100 comprises a host device 102, an electronic device 104, and a peripheral device 106.
  • the host device 102 may be a notebook, laptop, tablet, smartphone, wearable electronic device, or other electronic computing device, for example.
  • the electronic device 104 may be a docking station, a hub, a cable converter, or another suitable device for coupling a host device to a peripheral device.
  • the electronic device 104 may facilitate communication between the host device 102 and the peripheral device 106.
  • the host device 102 may be communicate with the electronic device 104 or the peripheral device 106 wirelessly utilizing BLUETOOTH®, WIFI®, or utilizing any other suitable wireless technology standard. In other examples, the host device 102 may communicate with the electronic device 104 or the peripheral device 106 utilizing a cable (e.g., universal serial bus (USB), Ethernet, or any other suitable wired technology standard).
  • the host device 102 comprises a communication bus 126 coupled to a processor 108, a storage device 110, controllers 112, 114, 116, and 118. Ports 120 and 122 and a wireless transceiver 124 couple to the controller 112.
  • the communication bus 126 facilitates the communication of data between components that are coupled to the communication bus 126.
  • the communication bus 126 may be Inter-Integrated Circuit (I2C), Peripheral Component Interconnect Express (PCI-E®), or any other suitable bus that allows data transfers, for example.
  • I2C Inter-Integrated Circuit
  • PCI-E® Peripheral Component Interconnect Express
  • the processor 108 and the controllers 112, 114, 116, 118 may each be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example.
  • the processor 108 may be the central processing unit (CPU) of the host device 102, for example.
  • the controller 112 may be a controller for a communications bus.
  • the communications bus may be the communications bus 126, for example.
  • the bus may be I2C, PCI-E®, or any other suitable bus that allows data transfers, for example.
  • the controller 112 may be a PCI-E controller.
  • the controllers 112, 114, 116, 118 may each be a device controller for a different type of peripheral device.
  • the controller 114 may control a USB device
  • the controller 116 may control an audio device
  • the controller 118 may control a storage device.
  • the controller 112 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 124.
  • the controller 112 may be a USB Power Delivery (PD) controller.
  • the wireless transceiver 124 transmits and receives signals.
  • the wireless transceiver 124 may transmit or receive signals from the electronic device 104 or the peripheral device 106, for example.
  • the storage device 110 may include a hard drive, solid state drive (SSD), flash memory, random access memory (RAM), or other suitable memory.
  • the storage device 110 may store the computer-readable instructions 132.
  • the computer-readable instructions 132 when executed by the processor 108, may cause the processor 108 to perform some or all of the actions attributed herein to the processor 108.
  • the controller 112 includes an embedded processor 128 and a storage device 130.
  • the storage device 130 may store the computer-readable instructions 134.
  • the computer- readable instructions 134 when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
  • the electronic device 104 comprises a controller 136 coupled to a wireless transceiver 138 and ports 140, 142, and 144.
  • the controller 136 may be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example.
  • the controller 136 may be a controller for a communication bus carrying data transferred to and from the ports 140, 142, 144 and the wireless transceiver 138.
  • the controller 136 may be a PCI-E controller.
  • the controller 136 may be a device controller for a peripheral device.
  • the controller 136 may be a USB Power Delivery (PD) controller.
  • the controller 136 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 138.
  • the wireless transceiver 138 transmits and receives signals.
  • the wireless transceiver 138 may transmit or receive signals from the host device 102 or the peripheral device 106, for example.
  • the controller 136 includes an embedded processor 146 and a storage device 148.
  • the storage device 148 may store the computer-readable instructions 150.
  • the computer-readable instructions 150 when executed by the embedded processor 146, may cause the embedded processor 146 to perform some or all of the actions attributed herein to the controller 136.
  • the host device 102 dynamically adjusts a latency duration in response to the peripheral device 106 being connected to the electronic device 104.
  • the peripheral device 106 may be coupled to the host device 102 utilizing the port 120, the port 122, or the wireless transceiver 124.
  • the peripheral device 106 may be coupled to the electronic device 104 utilizing the port 140, the port 142, the port 144, or the wireless transceiver 138, and, in turn, the electronic device 104 may be coupled to the host device 102 utilizing the port 120, the port 122, or the wireless transceiver 124.
  • the controller 112 of the host device 102 may determine what type of peripheral device has been connected, store a first latency duration present in a register for a device controller for the peripheral device (e.g., controller 114, controller 116, controller 118) for later use, and then adjust (e.g., decrease) the first latency duration in the register to a second latency duration.
  • the controller 112 may determine the type based on data received from the electronic device 104, based on a port to which the peripheral device is connected, or based on a signal received from the peripheral device 106, for example.
  • the register may be stored on the storage device 110 or a storage device of the device controller.
  • the second latency duration may be a programmed latency duration that is sufficiently short so that it prevents the processor 108 from entering a low-power mode.
  • the controller 112 may notify the basic input/output system (BIOS) that the register is to be updated and provide the relevant value(s), and the BIOS may save the register value, update the register, and subsequently re-write the register using the saved register value.
  • BIOS basic input/output system
  • a basic input/output system refers to hardware or hardware and instructions to initialize, control, or operate a computing device prior to execution of an operating system (OS) of the computing device.
  • BIOS may be software, firmware, microcode, or other programming that defines or controls functionality or operation of a BIOS.
  • the instructions may be stored on the storage device 110, for example.
  • a BIOS may be implemented using instructions, such as platform firmware of a computing device, executable by the processor 108.
  • a BIOS may operate or execute prior to the execution of the OS of a computing device.
  • a BIOS may initialize, control, or operate components such as hardware components of a computing device and may load or boot the OS of computing device.
  • a BIOS may provide or establish an interface between hardware devices or platform firmware of the computing device and an OS of the computing device, via which the OS of the computing device may control or operate hardware devices or platform firmware of the computing device.
  • a BIOS may implement the Unified Extensible Firmware Interface (UEFI) specification or another specification or standard for initializing, controlling, or operating a computing device.
  • UEFI Unified Extensible Firmware Interface
  • the controller 112 may re-write the register with the first latency duration and discard the second latency duration.
  • an audio controller of the host device 102 may include a register storing a latency duration of 10 milliseconds (ms), which may be too large for a high-speed peripheral such as a headset.
  • the controller 112 may store the 10 ms latency duration for later use and then re-write the audio controller register with a 2 ms latency duration.
  • This 2 ms latency duration may cause the processor 108 to service signals from the headset more quickly, thus resulting in an improved user experience.
  • the 2 ms latency duration is discarded from the register and the register is re-written with the 10 ms latency duration.
  • the host device 102 may improve the user experience by quickly servicing signals from the peripheral device 106 and by preventing the processor 108 from entering a low-power mode while the peripheral device 106 is connected to and communicating with the host device 102. By rewriting the register value to a higher latency duration after the peripheral device 106 is disconnected, the host device 102 preserves battery life.
  • the peripheral device may be the peripheral device 106, for example.
  • the host device 102 may include the controllers 112, 114, 116, 118 coupled to the communications bus 126.
  • the controller 112 may include the embedded processor 128 and the storage device 130.
  • the storage device 130 may store the computer-readable instructions 200 and 202.
  • the computer-readable instructions 200, 202 may be the computer-readable instructions 134, for example.
  • the computer-readable instructions 200, 202 when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
  • the computer-readable instructions 200, 202 when executed by the embedded processor 128, the computer-readable instructions 200, 202 cause the controller 112 to replace a latency duration based on a type of a peripheral device coupled to an electronic device that is coupled to the host device 102.
  • the peripheral device may be the peripheral device 106, for example.
  • the electronic device may be the electronic device 104, for example.
  • the computer-readable instruction 200 may cause the controller 112 to receive data from the electronic device 104, the data indicating a type of the peripheral device 106 coupled to the electronic device 104.
  • the computer-readable instruction 202 may cause the controller 112 to replace a first latency duration of a device controller with a second latency duration based on the data.
  • the device controller may be the controller 114, 116, or 118, for example.
  • the first and second latency durations are indicative of respective delays that are to elapse prior to servicing signals received from the electronic device 104.
  • the second latency duration is shorter than the first latency duration.
  • the second latency duration in response to the data indicating the peripheral device 106 is a high-speed type of peripheral device, the second latency duration may be set to a programmed latency duration that is sufficiently short to prevent the processor 108 from entering a low-power mode.
  • the second latency duration is longer than the first latency duration.
  • the second latency duration in response to the data indicating no peripheral device is coupled to the electronic device 104, the second latency duration may be set to a programmed latency duration that is sufficiently long to allow the processor 108 to enter a low-power mode.
  • the electronic device 104 may transmit data indicating types for multiple peripheral devices coupled to the electronic device 104.
  • the electronic device 104 may transmit a table of data indicating a type of peripheral device for multiple peripheral devices.
  • the controller 112 may replace a latency duration of a device controller associated with each type of peripheral device based on the data.
  • the electronic device 104 may transmit a table indicating that a first and a third type of peripheral devices are high-speed peripheral devices and a second type of peripheral device is not a high-speed peripheral device.
  • the controller 112 may replace a latency duration of the device controller 114 and 118 with the second latency duration and may not be able to replace a latency duration of the device controller 116, for example.
  • the electronic device 104 may transmit data indicating a Latency Tolerance Reporting (LTR) duration for the type of the peripheral device.
  • LTR Latency Tolerance Reporting
  • the controller 112 may utilize the LTR duration as the second latency duration.
  • the controller 112 may determine whether the LTR duration is less than a programmed latency duration that is sufficiently short to prevent the processor 108 from entering a low- power mode. In response to the LTR duration being less than the programmed latency duration, the controller 112 may set the second latency duration to the LTR duration. In response to the LTR duration being greater than the programmed latency duration, the controller 112 may set the second latency duration to the programmed latency duration.
  • the controller 112 may improve the user experience by quickly servicing signals from a high-speed peripheral device and preventing the processor 108 from entering a low-power mode while the high-speed peripheral device is connected to and communicating with the electronic device 104. Additionally, by adjusting the latency duration from a first latency duration to a second latency duration that is greater than the first latency duration, the controller 112 preserves battery life.
  • FIG. 3 depicts a schematic diagram of a host device 300 for adjusting a latency duration of a peripheral device 302 in accordance with various examples.
  • the host device 300 may be the host device 102, for example.
  • the peripheral device 302 may be the peripheral device 106, for example.
  • the host device 300 may comprise a controller 304, a storage device 306, a port 308 (e.g., for coupling to the peripheral device 302), a wireless transceiver 310 (e.g., for communicating with the peripheral device 302), and a device controller 312 coupled to a communications bus 314.
  • the controllers 304 and 312 may each be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example.
  • the controller 304 may be the processor 108 or the controller 112, for example.
  • the controller 304 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 310.
  • the controller 312 may be a device controller for a type of peripheral device.
  • the controller 312 may be for a Thunderbolt type peripheral device, for a local area network (LAN) type peripheral device, or for a USB type peripheral device.
  • the controller 312 may be the controller 114, 116, or 118, for example.
  • the wireless transceiver 310 transmits and receives signals.
  • the wireless transceiver 310 may transmit or receive signals from an electronic device (not expressly shown) or the peripheral device 302, for example.
  • the storage device 306 may be a non-transitory computer-readable medium.
  • the non-transitory computer-readable medium may include any electronic, magnetic, optical, or other physical storage device for storing information such as computer-readable instructions and data.
  • the storage device 306 may be the storage device 110 or 130, for example. In some examples, the storage device 306 may store the computer-readable instructions 316, 318, 320, and 322.
  • the computer-readable instructions 316, 318, 320, 322 may be the computer- readable instructions 132 or 134, for example.
  • the computer-readable instructions 316, 318, 320, 322 when executed by the controller 304, the computer-readable instructions 316, 318, 320, 322 cause the controller 304 to replace a latency duration based on a type of the peripheral device 302 coupled to the host device 300.
  • the computer-readable instruction 316 may cause the controller 304 to determine a type of the peripheral device 302 coupled to the host device 300 (e.g., via a physical connection to the port 308 or a wireless connection to the wireless transceiver 310).
  • the computer-readable instruction 318 may cause the controller 304 to store a first latency duration of a device controller for the peripheral device 302.
  • the device controller for the peripheral device 302 may be the device controller 312, for example.
  • the controller 304 may store the first latency duration on the storage device 306 or on a storage device of the device controller for the peripheral device 302, for example.
  • the computer- readable instruction 320 may cause the controller 304 to replace the first latency duration of the device controller with a second latency duration based on the type.
  • the computer-readable instruction 322 may cause the controller 304 to, after a signal from the peripheral device 302 has been serviced, replace the second latency duration of the device controller with the stored first latency duration.
  • the computer-readable instructions may cause the controller 304 to determine the peripheral device 302 has been removed (e.g., is no longer coupled) from the host device 300. For example, the peripheral device 302 may no longer be coupled to the port 308 or may no longer be wirelessly communicating with the wireless transceiver 310 (e.g., a lack of communication for a programmed threshold length of time). In response to the determination, the computer-readable instructions may case the controller 304 to replace the second latency duration of the device controller with the stored first latency duration. In some examples, the computer-readable instructions may cause the controller 304 to notify a BIOS of the host device 300 each time the latency duration is replaced.
  • the computer-readable instructions may cause the controller 304 to determine a second type of a second peripheral device (not expressly shown) coupled to the host device 300.
  • the computer-readable instructions may cause the controller 304 to store a third latency duration of a device controller (not expressly shown) for the second peripheral device.
  • the computer-readable instructions may cause the controller 304 to replace the third latency duration of the device controller for the second peripheral device with a fourth latency duration based on the second type.
  • the fourth latency duration is the same as the second latency duration.
  • the fourth latency duration is different than the second latency duration and the fourth and the second latency durations are sufficiently short to prevent the host device 300 from entering a low-power mode.
  • the host device 300 may improve the user experience for a high-speed peripheral device 302 by quickly servicing signals from the peripheral device 302.
  • the user experience is further improved because decreasing the latency duration of the high-speed peripheral device controller (e.g., controller 312) prevents the host device 300 from entering a low- power mode while the high-speed peripheral device 302 is connected to and communicating with the host device 300.
  • the host device 300 preserves battery life by selectively and dynamically adjusting the latency duration to enable the host device 300 to enter a low-power mode when the highspeed peripheral device 302 is no longer coupled to the host device 300.
  • FIG. 4 depicts a schematic diagram of the host device 102 for adjusting a latency duration of a peripheral device, in accordance with various examples.
  • the host device 102 may be the host device 300, for example.
  • the peripheral device may be the peripheral device 106 or 302, for example.
  • the host device 102 may include the controllers 112, 114, 116, 118 coupled to the communications bus 126.
  • the controller 112 may also couple to the communications bus 126 and may include the embedded processor 128 and the storage device 130.
  • the storage device 130 may be the storage device 306, for example.
  • the storage device 130 may store the computer-readable instructions 400 and 402.
  • the computer-readable instructions 400, 402 may be the computer-readable instructions 134, for example.
  • the computer-readable instructions 400, 402, when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
  • the computer-readable instructions 400, 402 when executed by the embedded processor 128, the computer-readable instructions 400, 402 cause the controller 112 to replace a latency duration based on a type of a peripheral device coupled to the host device 102.
  • the computer-readable instruction 400 may cause the controller 112 to determine a type of a peripheral device coupled to the host device 102.
  • the computer-readable instruction 402 may cause the controller 112 to replace a first latency duration of a device controller for the peripheral device with a second latency duration based on the type, where the first latency duration is longer than the second latency duration.
  • the device controller for the peripheral device may be the device controller 114, 116, or 118, for example.
  • the second latency duration is indicative of a delay that is to elapse prior to servicing a signal received from the peripheral device.
  • the first latency duration is sufficiently long to allow the processor 108 to enter a low-power mode, and the second latency duration is sufficiently short to prevent the processor 108 from entering the low- power mode.
  • a host device may improve the experience for the user of a high-speed peripheral device by quickly servicing signals from the peripheral device.
  • the user experience is further improved because decreasing the latency duration of the high-speed peripheral device controller prevents the CPU from entering a low-power mode while the high-speed peripheral device is connected to and/or communicating with the host device.
  • the host device described herein preserves battery life by selectively and dynamically adjusting a latency duration.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

In some examples, a host device comprises a first controller having a first latency duration and a second controller coupled to the first controller. The second controller is to receive data from an electronic device coupled to the host device, the data indicating a type of a peripheral device coupled to the electronic device. The second controller is to replace the first latency duration with a second latency duration based on the data. The first and second latency durations are indicative of respective delays that are to elapse prior to servicing signals received from the electronic device. The second latency duration is shorter than the first latency duration.

Description

LATENCY DURATIONS OF PERIPHERAL DEVICES
BACKGROUND
[0001] A battery-operated host device may perform any of a variety of actions to preserve battery life. For example, the host device may be programmed with a particular latency duration, which determines how long the host device may wait before servicing a signal (e.g., an interrupt signal) received from a peripheral device connected to the host device. Battery life may be preserved by longer latency durations and may be diminished by shorter latency durations.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Various examples will be described below referring to the following figures:
[0003] FIG. 1 is a schematic diagram of a system for adjusting a latency duration of a peripheral device in accordance with various examples;
[0004] FIG. 2 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples;
[0005] FIG. 3 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples; and
[0006] FIG. 4 is a schematic diagram of a host device for adjusting a latency duration of a peripheral device in accordance with various examples.
DETAILED DESCRIPTION
[0007] As described above, to preserve battery life, a host device may be programmed with a relatively long latency duration. The latency duration may be a Latency Tolerance Reporting (LTR) duration, for example. Although relatively long latency durations help to preserve battery life, they can often result in a diminished user experience. For instance, when a peripheral device (e.g., a full high definition (FHD) Universal Serial Bus (USB) camera) is connected to the host device (either directly or through a docking station), the peripheral device may send signals to the host device and may expect the host device to rapidly service those signals. With a long latency duration, however, the host device may take an undesirably long time to service the signals from the peripheral device. For example, an audio controller in the host device may have been programmed with a relatively long latency duration, and in response to a user headset being connected to the host device, the audio controller may instruct a central processing unit (CPU) of the host device to wait an undesirably long time before servicing signals from the headset. As a result of this undesirable delay in servicing the signals from the peripheral device, the user experience is diminished.
[0008] Such delays may be compounded even further by latency durations that are so long that they allow the CPU to enter a low-power mode (e.g., a sleep mode) due to low activity levels. When the CPU is in such a low-power mode, signals from the peripheral device are serviced even more slowly than when the CPU is not in a low-power mode because the CPU may not be able to service the signals until it has exited the low-power mode and resumed normal operations. Attempting to improve the user experience by indiscriminately decreasing the latency duration is also disadvantageous, as this may result in a higher rate of battery drain.
[0009] This disclosure describes examples of a host device that dynamically adjusts a latency duration in response to a peripheral device, such as a highspeed peripheral device, being connected to the host device, either directly or indirectly (e.g., through an electronic device such as a docking station). In particular, in response to a peripheral device being connected to the host device, the host device may determine what type of peripheral device has been connected; store, for later use, a first latency duration present in a register of a device controller for the peripheral device; and then adjust the first latency duration in the register to a second latency duration. The type of peripheral device may indicate a function performed by the peripheral device (e.g., input device, output device, storage device), a particular form of the peripheral device (e.g., touch screen device, audio device, mouse, keyboard, display device), a method by which the peripheral device couples to another electronic device (e.g., USB, Thunderbolt), or a speed of the peripheral device (e.g., high speed). In some examples, the second latency duration may be a programmed latency duration that prevents the CPU from entering the low-power mode. After the peripheral device has been disconnected from the host device, the host device may re-write the register with the first latency duration and discard the second latency duration. [0010] By adjusting a latency duration in this manner, the experience for the user of the peripheral device is improved because signals from the peripheral device to the CPU are serviced quickly. In addition, the user experience is further improved because decreasing the latency duration of a device controller prevents the CPU from entering a low-power mode while the peripheral device is connected to and communicating with the host device. In addition to improving the user experience, the host device described herein continues to preserve battery life because it includes a selective and dynamic adjustment (e.g., reduction) to a latency duration when doing so would result in an improved user experience. By adjusting latency durations selectively and dynamically instead of indiscriminately and permanently, battery life is still preserved. For example, the host device may decrease the latency duration in the register of an audio controller but may leave the latency durations in other device controllers (e.g., USB controller, local area network (LAN) controller) unchanged, thus preserving battery life while making a temporary accommodation for a high-speed headset peripheral device. Battery life preservation is further improved by restoring the prior latency duration, as described above, in response to the peripheral device being disconnected from the host device.
[0011] In one example in accordance with the present disclosure, a host device is provided. The host device comprises a first controller having a first latency duration; and a second controller coupled to the first controller. The second controller is to receive data from an electronic device coupled to the host device. The data indicates a type of a peripheral device coupled to the electronic device. The second controller is to replace the first latency duration with a second latency duration based on the data. The first and second latency durations are indicative of respective delays that are to elapse prior to servicing signals received from the electronic device. The second latency duration is shorter than the first latency duration.
[0012] In another example, a non-transitory computer-readable medium is provided. The non-transitory computer-readable medium stores computer- readable instructions. When executed by a first controller of a host device, the computer-readable instructions cause the first controller to determine a type of a peripheral device coupled to the host device, store a first latency duration of a second controller for the peripheral device, replace the first latency duration of the second controller with a second latency duration based on the type, and, after a signal from the peripheral device has been serviced, replace the second latency duration of the second controller with the stored first latency duration.
[0013] In another example, a host device is provided. The host device comprises a first controller and a second controller coupled to the first controller. The second controller is to determine a type of a peripheral device coupled to the host device and to replace a first latency duration of the first controller with a second latency duration based on the type. The second latency duration is indicative of a delay that is to elapse prior to servicing a signal received from the peripheral device. The first latency duration is sufficiently long to allow a processor of the host device to enter a low-power mode and the second latency duration is sufficiently short to prevent the processor from entering the low-power mode.
[0014] Referring now to FIG. 1 , a schematic diagram of a system 100 for adjusting a latency duration of a peripheral device is depicted, in accordance with various examples. The system 100 comprises a host device 102, an electronic device 104, and a peripheral device 106. The host device 102 may be a notebook, laptop, tablet, smartphone, wearable electronic device, or other electronic computing device, for example. The electronic device 104 may be a docking station, a hub, a cable converter, or another suitable device for coupling a host device to a peripheral device. The electronic device 104 may facilitate communication between the host device 102 and the peripheral device 106. In some examples, the host device 102 may be communicate with the electronic device 104 or the peripheral device 106 wirelessly utilizing BLUETOOTH®, WIFI®, or utilizing any other suitable wireless technology standard. In other examples, the host device 102 may communicate with the electronic device 104 or the peripheral device 106 utilizing a cable (e.g., universal serial bus (USB), Ethernet, or any other suitable wired technology standard). [0015] In various examples, the host device 102 comprises a communication bus 126 coupled to a processor 108, a storage device 110, controllers 112, 114, 116, and 118. Ports 120 and 122 and a wireless transceiver 124 couple to the controller 112. The communication bus 126 facilitates the communication of data between components that are coupled to the communication bus 126. The communication bus 126 may be Inter-Integrated Circuit (I2C), Peripheral Component Interconnect Express (PCI-E®), or any other suitable bus that allows data transfers, for example.
[0016] The processor 108 and the controllers 112, 114, 116, 118 may each be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example. The processor 108 may be the central processing unit (CPU) of the host device 102, for example. In some examples, the controller 112 may be a controller for a communications bus. The communications bus may be the communications bus 126, for example. The bus may be I2C, PCI-E®, or any other suitable bus that allows data transfers, for example. The controller 112 may be a PCI-E controller. In other examples, the controllers 112, 114, 116, 118 may each be a device controller for a different type of peripheral device. For example, the controller 114 may control a USB device, the controller 116 may control an audio device, and the controller 118 may control a storage device. In another example, the controller 112 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 124. In another example, the controller 112 may be a USB Power Delivery (PD) controller. The wireless transceiver 124 transmits and receives signals. The wireless transceiver 124 may transmit or receive signals from the electronic device 104 or the peripheral device 106, for example.
[0017] The storage device 110 may include a hard drive, solid state drive (SSD), flash memory, random access memory (RAM), or other suitable memory. In some examples, the storage device 110 may store the computer-readable instructions 132. The computer-readable instructions 132, when executed by the processor 108, may cause the processor 108 to perform some or all of the actions attributed herein to the processor 108. In some examples, the controller 112 includes an embedded processor 128 and a storage device 130. The storage device 130 may store the computer-readable instructions 134. The computer- readable instructions 134, when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
[0018] In various examples, the electronic device 104 comprises a controller 136 coupled to a wireless transceiver 138 and ports 140, 142, and 144. The controller 136 may be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example. In some examples, the controller 136 may be a controller for a communication bus carrying data transferred to and from the ports 140, 142, 144 and the wireless transceiver 138. For example, the controller 136 may be a PCI-E controller. In other examples, the controller 136 may be a device controller for a peripheral device. For example, the controller 136 may be a USB Power Delivery (PD) controller. In another example, the controller 136 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 138. The wireless transceiver 138 transmits and receives signals. The wireless transceiver 138 may transmit or receive signals from the host device 102 or the peripheral device 106, for example. In some examples, the controller 136 includes an embedded processor 146 and a storage device 148. The storage device 148 may store the computer-readable instructions 150. The computer-readable instructions 150, when executed by the embedded processor 146, may cause the embedded processor 146 to perform some or all of the actions attributed herein to the controller 136.
[0019] As discussed above, in some examples, the host device 102 dynamically adjusts a latency duration in response to the peripheral device 106 being connected to the electronic device 104. In some examples, the peripheral device 106 may be coupled to the host device 102 utilizing the port 120, the port 122, or the wireless transceiver 124. In other examples, the peripheral device 106 may be coupled to the electronic device 104 utilizing the port 140, the port 142, the port 144, or the wireless transceiver 138, and, in turn, the electronic device 104 may be coupled to the host device 102 utilizing the port 120, the port 122, or the wireless transceiver 124. In response to the peripheral device 106 being coupled, either directly or indirectly, to the host device 102, the controller 112 of the host device 102 may determine what type of peripheral device has been connected, store a first latency duration present in a register for a device controller for the peripheral device (e.g., controller 114, controller 116, controller 118) for later use, and then adjust (e.g., decrease) the first latency duration in the register to a second latency duration. The controller 112 may determine the type based on data received from the electronic device 104, based on a port to which the peripheral device is connected, or based on a signal received from the peripheral device 106, for example. The register may be stored on the storage device 110 or a storage device of the device controller. The second latency duration may be a programmed latency duration that is sufficiently short so that it prevents the processor 108 from entering a low-power mode. In some examples, instead of saving the register value before updating the register, the controller 112 may notify the basic input/output system (BIOS) that the register is to be updated and provide the relevant value(s), and the BIOS may save the register value, update the register, and subsequently re-write the register using the saved register value. [0020] As used herein, a basic input/output system (BIOS) refers to hardware or hardware and instructions to initialize, control, or operate a computing device prior to execution of an operating system (OS) of the computing device. Instructions included within a BIOS may be software, firmware, microcode, or other programming that defines or controls functionality or operation of a BIOS. The instructions may be stored on the storage device 110, for example. In one example, a BIOS may be implemented using instructions, such as platform firmware of a computing device, executable by the processor 108. A BIOS may operate or execute prior to the execution of the OS of a computing device. A BIOS may initialize, control, or operate components such as hardware components of a computing device and may load or boot the OS of computing device. In some examples, a BIOS may provide or establish an interface between hardware devices or platform firmware of the computing device and an OS of the computing device, via which the OS of the computing device may control or operate hardware devices or platform firmware of the computing device. In some examples, a BIOS may implement the Unified Extensible Firmware Interface (UEFI) specification or another specification or standard for initializing, controlling, or operating a computing device.
[0021] In various examples, after the peripheral device 106 has been disconnected from the host device 102 (e.g., from one of the ports 120, 122, or after the peripheral device 106 has ceased communicating wirelessly with the wireless transceiver 124 for a programmed threshold amount of time), the controller 112 may re-write the register with the first latency duration and discard the second latency duration. For example, an audio controller of the host device 102 may include a register storing a latency duration of 10 milliseconds (ms), which may be too large for a high-speed peripheral such as a headset. Thus, upon connection of a headset to the host device 102, the controller 112 may store the 10 ms latency duration for later use and then re-write the audio controller register with a 2 ms latency duration. This 2 ms latency duration may cause the processor 108 to service signals from the headset more quickly, thus resulting in an improved user experience. After the headset is disconnected from the host device 102, the 2 ms latency duration is discarded from the register and the register is re-written with the 10 ms latency duration. By adjusting the latency duration as described above, the host device 102 may improve the user experience by quickly servicing signals from the peripheral device 106 and by preventing the processor 108 from entering a low-power mode while the peripheral device 106 is connected to and communicating with the host device 102. By rewriting the register value to a higher latency duration after the peripheral device 106 is disconnected, the host device 102 preserves battery life.
[0022] Referring now to FIG. 2, a schematic diagram of the host device 102 for adjusting a latency duration of a peripheral device is depicted, in accordance with various examples. The peripheral device may be the peripheral device 106, for example. As discussed above with respect to FIG. 1 , the host device 102 may include the controllers 112, 114, 116, 118 coupled to the communications bus 126. The controller 112 may include the embedded processor 128 and the storage device 130. The storage device 130 may store the computer-readable instructions 200 and 202. The computer-readable instructions 200, 202 may be the computer-readable instructions 134, for example. The computer-readable instructions 200, 202, when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
[0023] In various examples, when executed by the embedded processor 128, the computer-readable instructions 200, 202 cause the controller 112 to replace a latency duration based on a type of a peripheral device coupled to an electronic device that is coupled to the host device 102. The peripheral device may be the peripheral device 106, for example. The electronic device may be the electronic device 104, for example. For example, the computer-readable instruction 200 may cause the controller 112 to receive data from the electronic device 104, the data indicating a type of the peripheral device 106 coupled to the electronic device 104. The computer-readable instruction 202 may cause the controller 112 to replace a first latency duration of a device controller with a second latency duration based on the data. The device controller may be the controller 114, 116, or 118, for example. The first and second latency durations are indicative of respective delays that are to elapse prior to servicing signals received from the electronic device 104.
[0024] In some examples, the second latency duration is shorter than the first latency duration. For example, in response to the data indicating the peripheral device 106 is a high-speed type of peripheral device, the second latency duration may be set to a programmed latency duration that is sufficiently short to prevent the processor 108 from entering a low-power mode. In other examples, the second latency duration is longer than the first latency duration. For example, in response to the data indicating no peripheral device is coupled to the electronic device 104, the second latency duration may be set to a programmed latency duration that is sufficiently long to allow the processor 108 to enter a low-power mode.
[0025] In various examples, the electronic device 104 may transmit data indicating types for multiple peripheral devices coupled to the electronic device 104. For example, the electronic device 104 may transmit a table of data indicating a type of peripheral device for multiple peripheral devices. In response to the data, the controller 112 may replace a latency duration of a device controller associated with each type of peripheral device based on the data. For example, the electronic device 104 may transmit a table indicating that a first and a third type of peripheral devices are high-speed peripheral devices and a second type of peripheral device is not a high-speed peripheral device. In response to the data, the controller 112 may replace a latency duration of the device controller 114 and 118 with the second latency duration and may not be able to replace a latency duration of the device controller 116, for example.
[0026] In some examples, the electronic device 104 may transmit data indicating a Latency Tolerance Reporting (LTR) duration for the type of the peripheral device. In various examples, the controller 112 may utilize the LTR duration as the second latency duration. In other examples, the controller 112 may determine whether the LTR duration is less than a programmed latency duration that is sufficiently short to prevent the processor 108 from entering a low- power mode. In response to the LTR duration being less than the programmed latency duration, the controller 112 may set the second latency duration to the LTR duration. In response to the LTR duration being greater than the programmed latency duration, the controller 112 may set the second latency duration to the programmed latency duration.
[0027] By adjusting the latency duration from a first latency duration to a second latency duration that is less than the first latency duration, the controller 112 may improve the user experience by quickly servicing signals from a high-speed peripheral device and preventing the processor 108 from entering a low-power mode while the high-speed peripheral device is connected to and communicating with the electronic device 104. Additionally, by adjusting the latency duration from a first latency duration to a second latency duration that is greater than the first latency duration, the controller 112 preserves battery life.
[0028] FIG. 3 depicts a schematic diagram of a host device 300 for adjusting a latency duration of a peripheral device 302 in accordance with various examples. The host device 300 may be the host device 102, for example. The peripheral device 302 may be the peripheral device 106, for example. The host device 300 may comprise a controller 304, a storage device 306, a port 308 (e.g., for coupling to the peripheral device 302), a wireless transceiver 310 (e.g., for communicating with the peripheral device 302), and a device controller 312 coupled to a communications bus 314. The controllers 304 and 312 may each be a microprocessor, a microcomputer, a microcontroller, a programmable integrated circuit, a programmable gate array, or another suitable device for controlling operations of a component or multiple components, for example. The controller 304 may be the processor 108 or the controller 112, for example. In another example, the controller 304 may be an embedded controller of a wireless transceiver module (not expressly shown) that includes the wireless transceiver 310. In another example, the controller 312 may be a device controller for a type of peripheral device. For example, the controller 312 may be for a Thunderbolt type peripheral device, for a local area network (LAN) type peripheral device, or for a USB type peripheral device. The controller 312 may be the controller 114, 116, or 118, for example. The wireless transceiver 310 transmits and receives signals. The wireless transceiver 310 may transmit or receive signals from an electronic device (not expressly shown) or the peripheral device 302, for example. The storage device 306 may be a non-transitory computer-readable medium. The non-transitory computer-readable medium may include any electronic, magnetic, optical, or other physical storage device for storing information such as computer-readable instructions and data. The storage device 306 may be the storage device 110 or 130, for example. In some examples, the storage device 306 may store the computer-readable instructions 316, 318, 320, and 322. The computer-readable instructions 316, 318, 320, 322 may be the computer- readable instructions 132 or 134, for example. The computer-readable instructions 316, 318, 320, 322, when executed by the controller 304, may cause the controller 304 to perform some or all of the actions attributed herein to the controller 304.
[0029] In various examples, when executed by the controller 304, the computer- readable instructions 316, 318, 320, 322 cause the controller 304 to replace a latency duration based on a type of the peripheral device 302 coupled to the host device 300. For example, the computer-readable instruction 316 may cause the controller 304 to determine a type of the peripheral device 302 coupled to the host device 300 (e.g., via a physical connection to the port 308 or a wireless connection to the wireless transceiver 310). The computer-readable instruction 318 may cause the controller 304 to store a first latency duration of a device controller for the peripheral device 302. The device controller for the peripheral device 302 may be the device controller 312, for example. The controller 304 may store the first latency duration on the storage device 306 or on a storage device of the device controller for the peripheral device 302, for example. The computer- readable instruction 320 may cause the controller 304 to replace the first latency duration of the device controller with a second latency duration based on the type. The computer-readable instruction 322 may cause the controller 304 to, after a signal from the peripheral device 302 has been serviced, replace the second latency duration of the device controller with the stored first latency duration.
[0030] In various examples, the computer-readable instructions may cause the controller 304 to determine the peripheral device 302 has been removed (e.g., is no longer coupled) from the host device 300. For example, the peripheral device 302 may no longer be coupled to the port 308 or may no longer be wirelessly communicating with the wireless transceiver 310 (e.g., a lack of communication for a programmed threshold length of time). In response to the determination, the computer-readable instructions may case the controller 304 to replace the second latency duration of the device controller with the stored first latency duration. In some examples, the computer-readable instructions may cause the controller 304 to notify a BIOS of the host device 300 each time the latency duration is replaced. [0031] In various examples, the computer-readable instructions may cause the controller 304 to determine a second type of a second peripheral device (not expressly shown) coupled to the host device 300. The computer-readable instructions may cause the controller 304 to store a third latency duration of a device controller (not expressly shown) for the second peripheral device. The computer-readable instructions may cause the controller 304 to replace the third latency duration of the device controller for the second peripheral device with a fourth latency duration based on the second type. In some examples, the fourth latency duration is the same as the second latency duration. In other examples, the fourth latency duration is different than the second latency duration and the fourth and the second latency durations are sufficiently short to prevent the host device 300 from entering a low-power mode.
[0032] By adjusting the latency duration, the host device 300 may improve the user experience for a high-speed peripheral device 302 by quickly servicing signals from the peripheral device 302. The user experience is further improved because decreasing the latency duration of the high-speed peripheral device controller (e.g., controller 312) prevents the host device 300 from entering a low- power mode while the high-speed peripheral device 302 is connected to and communicating with the host device 300. Additionally, the host device 300 preserves battery life by selectively and dynamically adjusting the latency duration to enable the host device 300 to enter a low-power mode when the highspeed peripheral device 302 is no longer coupled to the host device 300.
[0033] FIG. 4 depicts a schematic diagram of the host device 102 for adjusting a latency duration of a peripheral device, in accordance with various examples. The host device 102 may be the host device 300, for example. The peripheral device may be the peripheral device 106 or 302, for example. As described above with respect to FIGS. 1 and 3, the host device 102 may include the controllers 112, 114, 116, 118 coupled to the communications bus 126. The controller 112 may also couple to the communications bus 126 and may include the embedded processor 128 and the storage device 130. The storage device 130 may be the storage device 306, for example. The storage device 130 may store the computer-readable instructions 400 and 402. The computer-readable instructions 400, 402 may be the computer-readable instructions 134, for example. The computer-readable instructions 400, 402, when executed by the embedded processor 128, may cause the embedded processor 128 to perform some or all of the actions attributed herein to the controller 112.
[0034] In various examples, when executed by the embedded processor 128, the computer-readable instructions 400, 402 cause the controller 112 to replace a latency duration based on a type of a peripheral device coupled to the host device 102. For example, the computer-readable instruction 400 may cause the controller 112 to determine a type of a peripheral device coupled to the host device 102. The computer-readable instruction 402 may cause the controller 112 to replace a first latency duration of a device controller for the peripheral device with a second latency duration based on the type, where the first latency duration is longer than the second latency duration. The device controller for the peripheral device may be the device controller 114, 116, or 118, for example. The second latency duration is indicative of a delay that is to elapse prior to servicing a signal received from the peripheral device. The first latency duration is sufficiently long to allow the processor 108 to enter a low-power mode, and the second latency duration is sufficiently short to prevent the processor 108 from entering the low- power mode.
[0035] By adjusting a latency duration as described above, a host device may improve the experience for the user of a high-speed peripheral device by quickly servicing signals from the peripheral device. The user experience is further improved because decreasing the latency duration of the high-speed peripheral device controller prevents the CPU from entering a low-power mode while the high-speed peripheral device is connected to and/or communicating with the host device. Additionally, the host device described herein preserves battery life by selectively and dynamically adjusting a latency duration.
[0036] The above discussion is meant to be illustrative of the principles and various examples of the present disclosure. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
[0037] In the figures, certain features and components disclosed herein may be shown exaggerated in scale or in somewhat schematic form, and some details of certain elements may not be shown in the interest of clarity and conciseness. In some of the figures, in order to improve clarity and conciseness, a component or an aspect of a component may be omitted. [0038] In the above discussion and in the claims, the term "comprising" is used in an open-ended fashion, and thus should be interpreted to mean "including, but not limited to...." Also, the term "couple" or "couples" is intended to be broad enough to encompass both indirect and direct connections. Thus, if a first device couples to a second device, that connection may be through a direct connection or through an indirect connection via other devices, components, and connections. As used herein, including in the claims, the word “or” is used in an inclusive manner. For example, “A or B” means any of the following: “A” alone, “B” alone, or both “A” and “B.”

Claims

What is claimed is: A host device, comprising: a first controller having a first latency duration; and a second controller coupled to the first controller, the second controller to: receive data from an electronic device coupled to the host device, the data indicating a type of a peripheral device coupled to the electronic device; and replace the first latency duration with a second latency duration based on the data, the first and second latency durations indicative of respective delays that are to elapse prior to servicing signals received from the electronic device, the second latency duration shorter than the first latency duration. The host device of claim 1 , wherein the second controller is to: receive second data from the electronic device, the second data indicating the peripheral device is removed from the electronic device; and replace the second latency duration with the first latency duration. The host device of claim 1 , comprising: a third controller having a third latency duration, and wherein the second controller is to: receive second data from the electronic device, the second data indicating a type of a second peripheral device coupled to the electronic device; and replace the third latency duration with the second latency duration based on the second data, the second latency duration shorter than the third latency duration.
4. The host device of claim 1 , wherein the data indicates a Latency Tolerance Reporting (LTR) duration for the type of the peripheral device, and wherein the LTR duration is the second latency duration.
5. The host device of claim 1 , wherein the data indicates a Latency Tolerance Reporting (LTR) duration for the type of the peripheral device, and wherein the second controller is to: determine whether the LTR duration is less than a programmed latency duration, the programmed latency duration sufficiently short to prevent a processor of the host device from entering a low-power mode; and set the second latency duration to the LTR duration in response to the LTR duration being less than the programmed latency duration and set the second latency duration to the programmed latency duration in response to the LTR duration being more than the programmed latency duration.
6. A non-transitory computer-readable medium storing computer-readable instructions which, when executed by a first controller of a host device, cause the first controller to: determine a type of a peripheral device in communication with the host device; store a first latency duration of a second controller for the peripheral device; replace the first latency duration of the second controller with a second latency duration based on the type; and after a signal from the peripheral device has been serviced, replace the second latency duration of the second controller with the stored first latency duration. 18
7. The non-transitory computer-readable medium of claim 6, wherein the computer-readable instructions, when executed by the first controller, cause the first controller to: determine that the peripheral device is disconnected from the host device; and replace the second latency duration of the second controller with the stored first latency duration.
8. The non-transitory computer-readable medium of claim 6, wherein the second latency duration is shorter than the first latency duration.
9. The non-transitory computer-readable medium of claim 6, wherein the computer-readable instructions, when executed by the first controller, cause the first controller to replace the second latency duration of the second controller with the stored first latency duration responsive to a determination that the peripheral device has not wirelessly communicated with the host device for a threshold amount of time.
10. The non-transitory computer-readable medium of claim 6, wherein the computer-readable instructions, when executed by the first controller, cause the first controller to: determine a second type of a second peripheral device coupled to the host device; store a third latency duration of a third controller for the second peripheral device; and replace the third latency duration of the third controller with a fourth latency duration based on the second type. 19
11. A host device, comprising: a first controller; and a second controller coupled to the first controller, the second controller to: determine a type of a peripheral device coupled to the host device; and replace a first latency duration of the first controller with a second latency duration based on the type, the second latency duration indicative of a delay that is to elapse prior to servicing a signal received from the peripheral device, wherein the first latency duration is longer than the second latency duration.
12. The host device of claim 11 , comprising: a third controller; and wherein the second controller is to: determine a second type of a second peripheral device coupled to the host device; and replace a third latency duration of the third controller with the second latency duration based on the second type.
13. The host device of claim 11 , comprising: a third controller; and wherein the second controller is to: determine a second type of a second peripheral device coupled to the host device; and replace a third latency duration of the third controller with a fourth latency duration based on the second type, the fourth latency duration having a different duration than the second latency duration.
14. The host device of claim 13, wherein the type of the peripheral device is different than the second type of the second peripheral device. 20
15. The host device of claim 13, wherein the fourth latency duration is sufficiently short to prevent a processor from entering a low-power mode.
PCT/US2020/048143 2020-08-27 2020-08-27 Latency durations of peripheral devices WO2022046055A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/048143 WO2022046055A1 (en) 2020-08-27 2020-08-27 Latency durations of peripheral devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/048143 WO2022046055A1 (en) 2020-08-27 2020-08-27 Latency durations of peripheral devices

Publications (1)

Publication Number Publication Date
WO2022046055A1 true WO2022046055A1 (en) 2022-03-03

Family

ID=80355493

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/048143 WO2022046055A1 (en) 2020-08-27 2020-08-27 Latency durations of peripheral devices

Country Status (1)

Country Link
WO (1) WO2022046055A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271481A1 (en) * 2006-04-11 2007-11-22 Hitachi, Ltd. Storage controller
US8060692B2 (en) * 2008-06-27 2011-11-15 Intel Corporation Memory controller using time-staggered lockstep sub-channels with buffered memory
US8862916B2 (en) * 2011-05-20 2014-10-14 Powertech Industrial Co., Ltd. Wireless control of power sockets based on host and signal quality
US9542271B2 (en) * 2012-03-30 2017-01-10 Huawei Technologies Co., Ltd. Method and apparatus for reducing read latency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271481A1 (en) * 2006-04-11 2007-11-22 Hitachi, Ltd. Storage controller
US8060692B2 (en) * 2008-06-27 2011-11-15 Intel Corporation Memory controller using time-staggered lockstep sub-channels with buffered memory
US8862916B2 (en) * 2011-05-20 2014-10-14 Powertech Industrial Co., Ltd. Wireless control of power sockets based on host and signal quality
US9542271B2 (en) * 2012-03-30 2017-01-10 Huawei Technologies Co., Ltd. Method and apparatus for reducing read latency

Similar Documents

Publication Publication Date Title
US9740645B2 (en) Reducing latency in a peripheral component interconnect express link
US10268261B2 (en) Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
WO2019104947A1 (en) System-on-chip, universal serial bus master device, system and awaking method
US7987376B2 (en) Power supply controller configured to supply power to external device and modules of computer system according to the selected power supply mode
US10817043B2 (en) System and method for entering and exiting sleep mode in a graphics subsystem
EP1356366B9 (en) Computer peripheral device that remains operable when central processor operations are suspended
US10831700B2 (en) Methods and apparatus for reducing power consumption within embedded systems
EP2778945A1 (en) Systems, methods, and apparatuses for handling timeouts
KR20130049201A (en) Storage drive management
KR20110041286A (en) Computer system and control method thereof
US10725522B2 (en) Network energy consumption reduction
US9727108B2 (en) Supply of power from one device to another device
US10841880B2 (en) Apparatus and methods for wake-limiting with an inter-device communication link
KR101707096B1 (en) Generic host-based controller latency method and apparatus
US9852097B2 (en) Flexconnect disconnect detection
US9996133B2 (en) Detection of undocking for electronic devices
US10394309B2 (en) Power gated communication controller
US20170070381A1 (en) Override subsystems for rapid recovery from serial-link errors
US9477255B2 (en) Systems and methods for suspending idle devices based on idle policies for the devices
US9201822B2 (en) Host controller apparatus, information processing apparatus, and event information output method
US10445108B2 (en) Technologies for optimizing resume time for media agnostic USB
US9628333B2 (en) Operating a dual chipset network interface controller (‘NIC’) that includes a high performance media access control chipset and a low performance media access control chipset
US10102176B2 (en) Methods and apparatus for rapid switching of hardware configurations with a speed limited bus
WO2022046055A1 (en) Latency durations of peripheral devices
US8395483B2 (en) Power controller for an electronic reader device

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: 20951780

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: 20951780

Country of ref document: EP

Kind code of ref document: A1