Reduced power consumption based on system communication requirements for applications

By adjusting hardware components' operating modes based on system communication requests and feedback, the method addresses excessive power consumption in mobile devices, optimizing power usage and extending battery life.

DE112023006281T5Pending Publication Date: 2026-04-30GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
GOOGLE LLC
Filing Date
2023-05-09
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Mobile devices consume excessive power due to hardware components operating at high frequencies and power levels, particularly modems, which reduces battery life.

Method used

An operating system adjusts the operating mode of hardware components like modems and SoC hardware based on system communication requests and feedback, using dynamic voltage and frequency scaling (DVFS) and PCIe interface power states to meet application requirements while reducing unnecessary power consumption.

Benefits of technology

This approach reduces power consumption by optimizing hardware operation to match application needs, thereby extending battery life and conserving energy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method comprises accessing, by an operating system running on the mobile device, initial system communication requests associated with the execution of an initial application on the mobile device. The method also comprises sending, by the operating system, the initial system communication requests to a modulator-demodulator (modem) of the mobile device. The method further comprises adjusting an operating mode of the hardware component based on the initial system communication requests and based on a response received from the modem in reply to the sending of the initial system communication requests to the modem.
Need to check novelty before this filing date? Find Prior Art

Description

GENERAL STATE OF THE ART

[0001] Mobile devices, such as smartphones, can consume a relatively large amount of power in a relatively short time. Typically, the power consumption of a mobile device is at least partially attributable to the activity of hardware components. As a non-limiting example, a hardware component integrated into a mobile device, such as a modulator-demodulator (modem), may operate at excessively high frequencies and power levels, which can significantly increase the device's power consumption and reduce its remaining battery life. SUMMARY

[0002] A mobile device's operating system can receive system communication requests (e.g., application requests, target application parameters, etc.) from one or more applications running on the mobile device. In some scenarios, a particular application might send various system communication requests to the operating system. These requests might include a throughput request for running the application on the mobile device, a latency request for running the application on the mobile device, and so on. The operating system can then forward these system communication requests to another hardware component of the mobile device that facilitates the operation of the application, such as a modulator-demodulator (modem).In response to the operating system sending system communication requests to the modem, the modem can provide feedback to the operating system. This feedback can identify available modem resources capable of fulfilling the system communication requests, different modem operating modes, whether the modem's operating mode can be adjusted to meet the system communication requests, the modem's current operating mode, and so on.

[0003] Based on feedback and system communication requirements, the operating system can initiate adjustments to the modem's operating mode to ensure these requirements are met. Non-restrictive examples include adjusting (or instructing the modem to adjust) the modem's operating voltage / frequency, a Peripheral Component Interconnect Express (PCIe) interface power state, or a PCIe interface lane configuration. These adjustments can reduce unnecessary power consumption at the mobile device, particularly if, prior to the adjustments, modem resources were operating at unnecessarily high voltages and / or power states.

[0004] In a first embodiment, a method for reducing the power consumption of a mobile device comprises accessing, by an operating system running on the mobile device, first system communication requests associated with the execution of a first application on the mobile device. The method also comprises the operating system sending the first system communication requests to a modem of the mobile device. The method further comprises adjusting an operating mode of the modem based on the first system communication requests and on feedback received by the modem in response to the sending of the first system communication requests.

[0005] In a second embodiment, a mobile device comprises a system memory that stores a set of instructions and a processor coupled to the system memory. The processor can execute the set of instructions to run an operating system. The operating system is configured to access initial system communication requests associated with running an initial application on the mobile device. The operating system is also configured to send the initial system communication requests to a modem of the mobile device. Furthermore, the operating system is configured to initiate the adjustment of an operating mode of the modem based on the initial system communication requests and on feedback received by the modem in response to the transmission of the initial system communication requests.

[0006] In a third embodiment, a non-volatile, computer-readable medium comprises instructions corresponding to an operating system. When executed, these instructions cause the processor to access initial system communication requests associated with the execution of an initial application on a mobile device. Furthermore, when executed, the instructions cause the processor to send these initial system communication requests to a modem of the mobile device. Finally, when executed, the instructions cause the processor to initiate the adjustment of the modem's operating mode based on these initial system communication requests and on feedback received from the modem in response to the transmission of these requests.

[0007] In a fourth embodiment, a system can comprise different means for performing each of the operations of the first embodiment.

[0008] These and other embodiments, aspects, advantages, and alternatives will become apparent to those skilled in the art by reading the following detailed description, possibly with reference to the accompanying drawings. Furthermore, this summary and other descriptions and figures provided herein are intended to illustrate embodiments only by way of example, and therefore numerous variations are possible. For instance, structural elements and process steps can be rearranged, combined, distributed, eliminated, or otherwise modified while remaining within the scope of protection of the claimed embodiments. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 illustrates a calculating device, in accordance with the examples described here. Fig. Figure 2 illustrates a computing system, in accordance with the examples described here. Fig. Figure 3 illustrates a system that can be operated to reduce electricity consumption, in accordance with the examples described here. Fig. Figure 4 illustrates another system that can be operated to reduce electricity consumption, in accordance with the examples described here. Fig. Figure 5 illustrates a process for training a machine learning model, in accordance with the examples described here. Fig. Figure 6 is a diagram illustrating the training and inference phases of a machine learning model, in accordance with the examples described here. Fig. Figure 7 illustrates a flowchart, in accordance with the examples described here. DETAILED DESCRIPTION

[0009] Exemplary methods, devices, and systems are described herein. It is understood that the words "example" and "exemplary" are used herein to mean "serving as an example, instance, or illustration." An embodiment described in this document as an "example," "exemplary," and / or "illustrative," or a feature described as exemplary, is not necessarily to be construed as preferable or advantageous over other embodiments or features unless otherwise stated. Thus, other embodiments may be used and other modifications may be made without departing from the scope of protection of the subject matter presented herein.

[0010] Accordingly, the exemplary implementations described herein are not to be understood as restrictive. It is readily apparent that the aspects of this revelation, as generally described here and illustrated in the figures, can be arranged, replaced, combined, separated, and designed in a multitude of different configurations.

[0011] Unless the context suggests otherwise, the features illustrated in the individual figures can also be used in combination with one another. Therefore, the figures should generally be viewed as component aspects of one or more overall implementations, bearing in mind that not all depicted features are required for every implementation.

[0012] Particular embodiments are described herein with reference to the drawings. In the description, common features are designated by common reference numbers throughout the drawings. In some figures, several instances of a particular feature type are used. Although these features are physically and / or logically separate, the same reference number is used for each, and the different instances are distinguished by adding a letter to the reference number. When the features are referred to herein as a group or type (e.g., when no specific feature is referenced), the reference number without the distinguishing letter is used. However, when a specific feature of several features of the same type is referred to herein, the reference number with the distinguishing letter is used. For example, in Fig. Three system communication requirements are illustrated and associated with reference numbers 304A and 304B. When referring to a specific one of these system communication requirements, such as system communication requirement 304A, the distinguishing letter "A" is used. However, when referring to any of these system communication requirements, or to these system communication requirements as a group, reference number 304 is used without a distinguishing letter.

[0013] Furthermore, any enumeration of elements, blocks, or steps in this specification or for the purposes of clarity is provided for informational purposes only. Therefore, such enumeration should not be interpreted as requiring or implying that these elements, blocks, or steps follow a specific arrangement or are performed in a specific sequence. Unless otherwise stated, the figures are not to scale. I. Overview

[0014] A mobile device's operating system can be configured to receive system communication requests (e.g., application requests, target application parameters, etc.) from one or more applications running on the mobile device. For a given application, the system communication requests might include, among other things, a latency request for running that specific application on the mobile device or a throughput request for running that specific application on the mobile device. In response to receiving the system communication requests from the one or more applications, the operating system can send (e.g., forward) the system communication requests to one or more different hardware components, such as a modem and / or another system-on-a-chip (SoC) hardware component (e.g., a microprocessor, memory, an analog-to-digital converter (ADC), an audio receiver, etc.).In response to receiving system communication requests from the operating system, the hardware component, such as the modem and / or another SoC hardware component, can provide feedback to the operating system indicating whether there is sufficient capacity to fulfill the system communication requests, the current operating mode, processing capabilities in different operating modes, etc. Based on this feedback and the system communication requests, the operating mode of the hardware component(s) can be adjusted to meet the system communication requirements.

[0015] In some examples, if the system communication requirements indicate that a particular application requires relatively high throughput, the modem and / or another SoC hardware component can select an associated PCIe interface for the application that can meet the throughput requirement and does not have excess throughput capacity that could unnecessarily consume power. As a non-restrictive example, the particular application might require a PCIe interface with a throughput of 750 megabytes per second (MB / s). The modem could have a first PCIe interface with a throughput of approximately 2 gigabytes per second (GB / s), a second PCIe interface with a throughput of 1 GB / s, a third PCIe interface with a throughput of 500 MB / s, and a fourth PCIe interface with a throughput of 250 MB / s.In this scenario, the modem can select the second PCIe interface because it meets the throughput requirement for the specific application and does not have excess throughput capacity, like the first PCIe interface, which could consume unnecessary power.

[0016] In some cases, dynamic voltage and frequency scaling (DVFS) can be implemented at the modem to meet the system communication requirements of a specific application. For example, if a speed test application is running and the system communication requirements specify a high throughput requirement, a higher operating voltage and frequency can be implemented at the modem to ensure that the modem's throughput capabilities meet the high throughput requirement. However, if a media streaming application is running and the system communication requirements specify a lower throughput requirement, a lower operating voltage and frequency can be implemented at the modem. By reducing the operating voltage and frequency implemented at the modem for applications that do not require high modem operating voltages and frequencies (e.g.,Media streaming applications) can achieve a reduction in power consumption compared to operating the modem with higher operating voltages and frequencies.

[0017] In some cases, the power state of a PCIe interface can be adjusted based on system communication requirements. For example, if the system communication requirements indicate that the application is latency-insensitive (e.g., has a relatively high latency requirement), the hardware component (e.g., the modem or another SoC hardware component) can transition the power state of a PCIe interface from a first power state (e.g., a high power state) to a second power state (e.g., a low power state). In this case, the first power state might have an initial exit latency that is higher than the second exit latency of the second power state. However, if the second exit latency meets the latency requirement of the application, a reduction in power consumption can be achieved compared to operating the PCIe interface in the first power state.

[0018] In some examples, the operating system can use a trained machine learning model to predict system communication requirements. For instance, based on a task assigned to a specific application running on the mobile device, the operating system can predict the throughput and / or latency required to perform that task. The prediction can be based on an aggregation of historical data associated with performing similar tasks. The operating system can then pass the prediction to a hardware component (such as the modem and / or another SoC hardware component) and initiate the adjustment of the hardware component(s), as described above, to reduce unnecessary power consumption. II. Exemplary computing devices and systems

[0019] Fig. Figure 1 illustrates an example of a computing device 100. The computing device 100 is shown in the form factor of a mobile phone. However, the computing device 100 can alternatively be implemented as a laptop, tablet computer, and / or portable computing device, among other possibilities. The computing device 100 can include various elements, such as a body 102, a display 106, and keys 108, 110. The computing device 100 can also include one or more cameras, such as a front-facing camera 104 and a rear-facing camera 112.

[0020] The forward-facing camera 104 can be positioned on a side of the body 102 that is typically facing a user during operation (e.g., on the same side as the display 106). The rear-facing camera 112 can be positioned on a side of the body 102 opposite the forward-facing camera 104. The designation of the cameras as forward-facing and rear-facing is arbitrary, and the computing device 100 can contain multiple cameras positioned on different sides of the body 102.

[0021] The display 106 could be a cathode ray tube (CRT) display, a light-emitting diode (LED) display, a liquid crystal display (LCD) display, a plasma display, an organic light-emitting diode (OLED) display, or any other type of display known in the art. In some examples, the display 106 can show a digital representation of the current image being captured by the forward-facing camera 104 and / or the rear-facing camera 112, an image that could be captured by one or more of these cameras, an image recently captured by one or more of these cameras, and / or a modified version of one or more of these images. Thus, the display 106 can serve as a viewfinder for the cameras. The display 106 can also support touchscreen functions that can adjust the settings and / or configuration of one or more aspects of the computing device 100.

[0022] The forward-facing camera 104 may include an image sensor and associated optical elements such as lenses. The forward-facing camera 104 may offer zoom capabilities or have a fixed focal length. In other examples, interchangeable lenses could be used with the forward-facing camera 104. The forward-facing camera 104 may have a variable mechanical aperture and a mechanical and / or electronic shutter. The forward-facing camera 104 could also be configured to capture still images, video images, or both. Furthermore, the forward-facing camera 104 could, for example, be a monoscopic camera, a stereoscopic camera, or a multiscopic camera. The rear-facing camera 112 may be arranged similarly or differently.Additionally, one or more of the forward-facing camera 104 and / or the rear-facing camera 112 can be an array of one or more cameras.

[0023] The computing device 100 can contain an operating system 222, a modem 310, and at least one additional SoC hardware component 312. The SoC hardware component 312 can correspond to a microprocessor, a memory, an analog-to-digital converter (ADC), an audio receiver, etc. Fig. The operating system 222, the modem 310, and the SoC hardware component 312 are integrated into the internal circuitry of the computing device 100 and are not readily visible to the user. As with regard to Fig. As described in more detail in section 2, the operating system 222 can correspond to a set of program instructions that are executable by a processor. As in relation to Fig. As described in more detail in Section 3, the operating system 222 can be configured to access application requirements such as throughput and latency for different applications and adjust the operating mode of the modem 310 and / or the SoC hardware component 312 to meet the application requirements in a way that reduces the power consumption to the computing device 100.

[0024] Fig. Figure 2 is a simplified block diagram showing some of the components of an example computing system 200. For example, and without limitation, computing system 200 could be a mobile phone (e.g., a smartphone), a computer (such as a desktop, notebook, tablet, server, or handheld computer), a home automation component, a digital video recorder (DVR), a digital television device, a remote control, a portable computing device, a game console, a robotic device, a vehicle, or any other type of device. Computing device 200 could, for example, represent aspects of computing device 100.

[0025] As in Fig. As shown in Figure 2, the computing system 200 can include a communication interface 202, a user interface 204, a processor 206, the modem 310, the SoC hardware component 312, a data storage device 208, all of which can be communicatively connected to each other by a system bus, a network or another connection mechanism 210.

[0026] The Communication Interface 202 enables the Computing System 200 to communicate with other devices, access networks, and / or transport networks using analog or digital modulation. Thus, the Communication Interface 202 can facilitate circuit-switched and / or packet-switched communication, such as Plain Old Telephone Service (POTS) communication and / or Internet Protocol (IP), or other packet-based communication. For example, the Communication Interface 202 can include a chipset and antenna arranged for wireless communication with a radio access network or access point. The Communication Interface 202 can also take the form of, or include, a wired interface, such as an Ethernet, Universal Serial Bus (USB), or High-Definition Multimedia Interface (HDMI) connector, among other possibilities.The Communication Interface 202 can also take the form of, or include, a wireless interface, such as a Wi-Fi, Bluetooth®, Global Positioning System (GPS), or long-range radio interface (e.g., WiMAX or 3GPP Long-Term Evolution (LTE)), among other possibilities. However, other forms of physical layer interfaces and other types of standard or proprietary communication protocols can also be used via the Communication Interface 202. Furthermore, the Communication Interface 202 can include multiple physical communication interfaces (e.g., a Wi-Fi interface, a Bluetooth® interface, and a wide-area wireless interface).

[0027] The user interface 204 can enable the computing system 200 to interact with a human or non-human user, for example, to receive input from a user and provide output to the user. Thus, the user interface 204 can include input components such as a keyboard, keypad, touch-sensitive panel, computer mouse, trackball, joystick, microphone, etc. The user interface 204 can also include one or more output components, such as a display screen, which may be combined with a touch-sensitive panel. The display screen can be based on CRT, LCD, LED, and / or OLED technologies, or other technologies known today or developed in the future.The user interface 204 can also be configured to produce audible output(s) via a loudspeaker, speaker jack, audio output port, audio output device, headphones, and / or other similar devices. The user interface 204 can also be configured to receive and / or capture audible utterance(s), noise(s), and / or signal(s) by means of a microphone and / or other similar devices.

[0028] In some examples, the user interface 204 may include a display that serves as a viewfinder for still camera and / or video camera functions supported by the Computing System 200. Additionally, the user interface 204 may include one or more buttons, switches, knobs, and / or dials that facilitate the configuration and focusing of a camera function and the acquisition of images. It is possible that some or all of these buttons, switches, knobs, and / or dials are implemented by means of a touch-sensitive panel.

[0029] The Processor 206 may comprise one or more general-purpose processors—e.g., microprocessors—and / or one or more specialized processors—e.g., digital signal processors (DSPs), graphics processing units (GPUs), floating-point units (FPUs), network processors, or application-specific integrated circuits (ASICs). In some cases, specialized processors may be capable of image processing, image alignment, and image stitching, among other capabilities. The Data Memory 208 may comprise one or more volatile and / or non-volatile memory components, such as magnetic, optical, flash, or organic memory, and may be wholly or partially integrated with the Processor 206. The Data Memory 208 may include removable and / or non-removable components.

[0030] The processor 206 may be capable of executing program instructions 218 (e.g., compiled or uncompiled program logic and / or machine code) stored in the data memory 208 to perform the various functions described herein. Therefore, the data memory 208 may comprise a non-volatile, computer-readable medium on which program instructions are stored that, when executed by the computer system 200, cause the computer system 200 to perform one of the methods, processes, or operations disclosed in this specification and / or the accompanying drawings. The execution of the program instructions 218 by the processor 206 may cause the processor 206 to use the data 212.

[0031] For example, the program instructions 218 may include the operating system 222 (e.g., an operating system kernel, device drivers, and / or other modules) and one or more application programs 220 (e.g., camera functions, address book, email, web browsing, social networks, audio-to-text functions, text translation functions, and / or game applications) installed on the computer system 200. Similarly, the data 212 may include the operating system data 216 and the application data 214. The operating system data 216 may be primarily accessible to the operating system 222, and the application data 214 may be primarily accessible to one or more of the application programs 220. The application data 214 may be arranged in a file system that is visible or hidden from a user of the computer system 200.

[0032] The application programs 220 can communicate with the operating system 222 via one or more application programming interfaces (APIs). These APIs can, for example, facilitate the application programs 220 reading and / or writing the application data 214, sending or receiving information via the communication interface 202, receiving and / or displaying information on the user interface 204, etc.

[0033] In some cases, the application programs for the 220 may be referred to as "applications" or simply "apps." Additionally, the application programs for the 220 can be downloaded to the computer system 200 via one or more online application stores or marketplaces. However, the application programs for the 220 can also be installed on the computer system 200 in other ways, such as via a web browser or via a physical interface (e.g., a USB port) on the computer system 200.

[0034] The Modem 310 can be operational to convert data from a digital format to a format suitable for analog transmission. The Modem 310 can transmit data by modulating one or more carrier wave signals to encode digital information. As per the above Fig. As described in more detail in Section 3, the Modem 310 can include one or more PCIe interfaces that can operate in different states (e.g., a low-energy state or a high-energy state). Additionally, the Modem 310 can operate at different voltages and frequencies, based on the requirements of the Application Programs 220.

[0035] The SoC hardware component 312 can correspond to a microprocessor, memory, an analog-to-digital converter (ADC), an audio receiver, etc. Similar to the modem 310, the SoC hardware component 312 can include one or more PCIe interfaces that can operate in different states (e.g., a low-power state or a high-power state).

[0036] As described below, the operating system 222 can initiate the adaptation of an operating mode of the modem 310 and / or the SoC hardware component 312 based on the requirements (e.g., throughput and latency requirements) of the application programs 220 running on the computing system 200. III. Exemplary systems for reducing electricity consumption

[0037] Fig. Figure 3 illustrates an example System 300 that is operational to reduce the power consumption of mobile devices based on application information. According to one implementation, one or more components of the Computing System 200 can consist of Fig. 2 are integrated into the System 300. As a non-restrictive example, the operating system 222 from Fig. 2, the modem 310 from Fig. 2 and the SoC hardware component 312 from Fig. 2 is integrated into System 300. According to another implementation, System 300 can be integrated into Computing Device 100. Fig. 1. As described below, the system 300 can be operational to reduce power consumption at the computing device 100 (e.g., a mobile device).

[0038] The System 300 comprises the operating system 222, the modem 310, and at least one additional SoC hardware component 312. The SoC hardware component 312 can correspond to a microprocessor, memory, an analog-to-digital converter (ADC), an audio receiver, etc. The operating system 222 can be implemented by a processor, such as the processor 206, which executes a set of instructions (e.g., the program instructions 218). As described below, to facilitate energy savings in a mobile device, the operating system 222 can analyze application information (e.g., application requirements), send the application information to the modem 310 and / or the SoC hardware component 312, receive feedback with information about available resources at the modem 310 and / or the SoC hardware component 312, and allocate energy-efficient resources to meet the application requirements.

[0039] In the embodiment of Fig. 3. The system 300 can support one or more applications 220A, 220B running on a mobile device, such as the computing device 100. The applications 220A, 220B can correspond to the application programs 220. Each application 220A, 220B can have one or more system communication requirements 304, 306. For example, in Fig. As illustrated in Figure 3, application 220A can have a system communication requirement 304A and a system communication requirement 306A, and application 220B can have a system communication requirement 304B and a system communication requirement 306B. System communication requirements 304 and 306 can correspond to the target application requirements for running the respective applications 220A and 220B on the mobile device. As non-restrictive examples, system communication requirement 304A can correspond to a target throughput parameter (e.g., a throughput requirement) for running application 220A on the mobile device, and system communication requirement 306A can correspond to a target latency parameter (e.g., a latency requirement) for running application 220A. Similarly, system communication requirement 304B can correspond to a target throughput parameter (e.g., a throughput requirement) for running application 220A on the mobile device.The system communication requirement 306B may correspond to a throughput requirement for running application 220B on the mobile device, and the system communication requirement 306B may correspond to a target latency parameter (e.g., a latency requirement) for running application 220B. It is understood that throughput and latency are non-limiting examples of system communication requirements (e.g., target parameters) and should not be interpreted as limiting examples. In other implementations, applications 220A and 220B may have different communication requirements.

[0040] Although two applications, 220A and 220B, are illustrated, it is understood that System 300 and the corresponding mobile device can support additional (or fewer) applications. As a non-restrictive example, System 300 can support ten applications in one implementation. As another non-restrictive example, System 300 can support a single application in one implementation. Additionally, it is understood that each application, 220A or 220B, can have additional (or fewer) system communication requirements. As a non-restrictive example, application 220A can have five system communication requirements according to one implementation. As another non-restrictive example, application 220B can have a single system communication requirement according to one implementation.

[0041] Operating system 222 can be configured to access system communication requests 304A and 306A associated with running application 220A on the mobile device. According to one implementation, application 220A can send system communication requests 304A and 306A to operating system 222, as described in the following section: Fig. 2 described such that the operating system 222 receives the system communication requests 304A, 306A directly from the application 220A. Similarly, the operating system 222 can be configured to access the system communication requests 304B, 306B associated with running the application 220B on the mobile device.

[0042] According to some implementations, accessing system communication requests 304, 306 can involve predicting system communication requests 304, 306 based on one or more specific tasks associated with applications 220. For example, the operating system 222 can identify tasks associated with various applications 220A, 220B. A task might include media streaming operations, speed test operations, and so on. Based on the identified task, the operating system 222 can use a trained machine learning model 360 to predict system communication requests 304, 306 based on historical parameters (e.g., requests) associated with performing a similar task, or based on training data, such as in relation to Fig. 5 is described in more detail. For illustration, if the operating system 222 identifies the application 220A as a media streaming application, it can use the machine learning model 360 to predict a throughput requirement for media streaming applications and assign the predicted throughput requirement as a system communication requirement 304A. Similarly, the operating system 222 can use the machine learning model 360 to predict a latency requirement for media streaming applications and assign the predicted latency requirement as a system communication requirement 306A.

[0043] In response to accessing system communication requests 304 and 306, the operating system 222 can forward (e.g., forward) these requests to a hardware component. For example, the operating system 222 can send one or more of the system communication requests 304 and 306 to the modem 310, and the operating system 222 can send one or more of the system communication requests 304 and 306 to the SoC hardware component 312. As described below, an operating mode of the modem 310 and / or an operating mode of the SoC hardware component 312 can be adjusted to ensure that the system communication requests 304 and 306 are met while conserving battery power by limiting operation with unnecessarily high voltages and / or energy states.

[0044] As in Fig. As illustrated in Figure 3, the Modem 310 includes a PCIe 320A interface and a PCIe 320B interface. Although in Fig. Figure 3 shows two PCIe interfaces 320; however, in other implementations, the modem 310 may include additional PCIe interfaces or other bus interfaces. In the embodiment of Fig. 3. The PCIe interface 320A can operate in an energy state 322A (e.g., a low energy state) or an energy state 322B (e.g., a high energy state). Each energy state 322A, 322B can have a different exit latency. For example, energy state 322A can have a first exit latency that differs from the second exit latency of energy state 322B (e.g., is lower). Similarly, in the embodiment of Fig. 3. The PCIe 320B interface can operate in a power state 322C (e.g., a low power state) or a power state 322D (e.g., a high power state). Each power state 322C and 322D can have a different exit latency. For example, power state 322C can have a first exit latency that differs from (e.g., is lower than) the second exit latency of power state 322D.

[0045] According to some implementations, PCIe 320 interfaces can have different throughput limitations, latency limitations, lane configurations, and so on. As a non-restrictive example, PCIe 320A interface can have a throughput of approximately 2 GB / s while operating in power state 322B (e.g., the high power state) and approximately 1.5 GB / s while operating in power state 322A (e.g., the low power state). As another non-restrictive example, PCIe 320B interface can have a throughput of approximately 1 GB / s while operating in power state 322D (e.g., the high power state) and approximately 500 MB / s while operating in power state 322C (e.g., the low power state).It is understood that the above examples are not intended to be limiting and merely illustrate that the throughput of PCIe 320 interfaces can vary based on power states, lane configurations, and other characteristics.

[0046] The Modem 310 can also have a variable operating voltage 324 and operating frequency 326. For example, DVFS can be implemented on the Modem 310 to dynamically adjust the operating voltage 324 and the operating frequency 326. Adjusting the operating voltage and frequency 324, 326 can cause the Modem 310 to operate in different modes. For example, by reducing the voltage and frequency 324, 326, the Modem 310 can operate in a power-saving mode. Conversely, by increasing the voltage and frequency 324, 326, the Modem 310 can operate in a high-performance mode.

[0047] As in Fig. As illustrated in Figure 3, the SoC hardware component 312 includes a PCIe interface 330A and a PCIe interface 330B. Although in Fig. Figure 3 shows two PCIe interfaces 330; however, in other implementations, the SoC hardware component 312 may include additional PCIe interfaces or other bus interfaces. In the embodiment of Fig. 3. The PCIe interface 330A can operate in an energy state 332A (e.g., a low energy state) or an energy state 332B (e.g., a high energy state). Each energy state 332A, 332B can have a different exit latency. For example, energy state 332A can have a first exit latency that differs from the second exit latency of energy state 332B (e.g., is lower). Similarly, in the embodiment of Fig. 3. The PCIe 330B interface can operate in a power state 332C (e.g., a low power state) or a power state 332D (e.g., a high power state). Each power state 332C and 332D can have a different exit latency. For example, power state 332C can have a first exit latency that differs from (e.g., is lower than) the second exit latency of power state 332D.

[0048] According to some implementations, PCIe 330 interfaces can have different throughput limitations, latency limitations, lane configurations, and so on. As a non-restrictive example, PCIe 330A interfaces can have a throughput of approximately 500 MB / s while operating in power state 332B (e.g., the high power state) and approximately 425 MB / s while operating in power state 332A (e.g., the low power state). As another non-restrictive example, PCIe 330B interfaces can have a throughput of approximately 250 MB / s while operating in power state 332D (e.g., the high power state) and approximately 100 MB / s while operating in power state 332C (e.g., the low power state).It is understood that the above examples are not intended to be limiting and merely illustrate that the throughput of PCIe 330 interfaces can vary based on power states, lane configurations, and other characteristics.

[0049] The modem 310 and / or the SoC hardware component 312 can be configured to provide feedback to the operating system 222 in response to receiving system communication requests 304 and 306. This feedback can include resource information for the relevant hardware (e.g., available resources, power consumption associated with the available resources, latency limitations of the available resources, throughput limitations of the available resources, power state configuration of the available resources, etc.). For example, in response to receiving one or more system communication requests 304 and 306, the modem 310 can send feedback to the operating system 222 indicating whether the modem 310 is capable of fulfilling parameters 304 and 306, different operating modes for the modem 310, processing capabilities for the modem 310 in each operating mode, and so on.Similarly, in response to receiving one or more of the system communication requests 304, 306, the SoC hardware component 312 can send a response to the operating system 222 indicating whether the SoC hardware component 312 has the capability to fulfill the parameters 304, 306, different operating modes for the SoC hardware component 312, processing capabilities for the SoC hardware component 312 in each operating mode, etc.

[0050] Based on the system communication requirements 304, 306 and the feedback (e.g., feedback from the modem 310 and / or feedback from the SoC hardware component 312), the operating system 222 can be configured to initiate an adaptation of an operating mode for the modem 310 and / or the SoC hardware component 312. For illustration, the operating system 222 includes a hardware operating mode adaptation model 350, which can be configured to initiate an adaptation of an operating mode for the modem 310 and / or the SoC hardware component 312.

[0051] An example of adapting the operating mode of a hardware component involves transitioning a PCIe interface 320, 330 from a first power state to a second power state. As a non-restrictive example, the hardware operating mode adaptation model 350 can send a command to the modem 310 to transition (e.g., change) the power state 322 of one of the PCIe interfaces 320. The hardware operating mode adaptation model 350 can initiate the adaptation of the power state 322 of one of the PCIe interfaces 320 based on one or more system communication requests 304, 306. As a non-restrictive example, the system communication request 306A can specify that the application 220A has a latency requirement of 20 ms. The feedback from modem 310 (to operating system 222) can indicate that the PCIe interface 320A has an exit latency of 20 milliseconds (ms) in power state 322A (e.g.the low energy state) and has an exit latency of 10 ms in energy state 322B (e.g., the high energy state). Based on this feedback, the hardware operating mode adaptation model 350 can send a command to the modem 310 to transition the PCI interface 320A from energy state 322B to energy state 322A, since the low energy state 322A supports the system communication requirement 306A while reducing power consumption (compared to operating the PCIe interface 320A in the high energy state 322B). Therefore, if the application 220A is latency-insensitive (e.g., has a latency requirement between 20 ms and 30 ms), the operating system 222 can, in order to save power, instruct the modem 310 to transfer the power state of the PCIe interface 320A to the lowest power state (e.g., power state 322A) that meets the latency requirement.

[0052] Although the above example was aimed at transitioning from power state 322 of a PCIe interface 320 of modem 310, the operating system 222 can perform similar operations to transition from power state 332 of a PCIe interface 330 of SoC hardware component 312 based on application information. As a non-restrictive example, system communication request 306B may indicate that application 220B has a latency request of 15 ms. The response from SoC hardware component 312 (to the operating system 222) may indicate that PCIe interface 330A has an exit latency of 20 ms in power state 332A (e.g., the low power state) and an exit latency of 10 ms in power state 332B (e.g., the high power state).Based on this feedback, the hardware operating mode adaptation model 350 can send a command to the SoC hardware component to transition the PCI interface 330A from power state 332A to power state 322B, because the low power state 332A does not support the system communication request 306B.

[0053] However, if there are additional PCIe 330 interfaces that meet the system communication requirement 306B and consume a smaller amount of power, the operating system 222 can instruct the SoC hardware component to select one of the additional PCIe 330 interfaces. As a non-restrictive example, the hardware operating mode adaptation model, if the feedback from the SoC hardware component 312 indicates that the PCIe interface 330B has an exit latency of 15 ms in power state 332C (e.g., the low power state), can send a command to the SoC hardware component to use the PCIe interface 330B in the low power state 332C, since the low power state 332C of the PCIe interface 330B supports the system communication requirement 306B while reducing power consumption (compared to operating the PCIe interface 330A in the high power state 332B).

[0054] According to some implementations, the hardware operating mode adaptation model 350 can be configured to select PCIe interfaces 320 and 330 based on the throughput requirements for applications 220A and 220B. For example, the operating system 222 can determine a throughput parameter associated with running application 220A on the mobile device based on system communication requirement 304A. Based on this throughput parameter, the operating system 222 can select at least one PCIe interface 320 or 330 from a variety of PCIe interfaces for use by application 220A. As a non-restrictive example, the operating system 222 can select a single PCIe interface for use with application 220A to reduce power consumption in response to the throughput parameter not meeting a throughput threshold (e.g., not exceeding the threshold).To illustrate, the operating system can select 222 for modem 310, use PCIe interface 320A for application 220A, and bypass PCIe interface 320B to reduce power consumption. Similarly, the operating system can select 222 for SoC hardware component 312, use PCIe interface 330A for application 220A, and bypass PCIe interface 330B to reduce power consumption. Thus, system 300 can reduce power consumption by selectively reducing the number of PCIe interfaces used by modem 310 and SoC hardware component 312 when there is a relatively low throughput requirement.

[0055] However, in response to the throughput parameter meeting the throughput threshold (e.g., exceeding the throughput threshold), the operating system 222 can select multiple PCIe interfaces for application 220A. For example, the operating system 222 for modem 310 can select PCIe interface 320A and PCIe interface 320B for application 220A if using a single PCIe interface (e.g., PCIe interface 320A) would not meet the throughput requirement for application 220A. Similarly, the operating system 222 can select the SoC hardware component 312 to use PCIe interface 330A and PCIe interface 330B for application 220A if using a single PCIe interface (e.g., PCIe interface 330A) would not meet the throughput requirement for application 220A.

[0056] Another example of adapting the operating mode of a hardware component involves using DVFS to adjust the operating voltage 324 and operating frequency 326 of modem 310. As a non-restrictive example, system communication request 304A can specify a throughput requirement for application 220A, and operating system 222 can send (e.g., forward) the throughput requirement to modem 310. The response from modem 310 (to operating system 222) can specify one or more operating voltages and frequencies 324, 326 for modem 310 that would allow modem 310 to meet the throughput requirement for application 220A. Based on the response, hardware operating mode adaptation model 350 can select a target operating voltage and frequency 324, 326 for modem 310.According to some examples, the target operating voltage and frequency 324, 326 can correspond to the lowest operating voltage and frequency 324, 326 at which the throughput requirement for the application 220A is met.

[0057] The selected operating voltage and frequency 324, 326 can be based on the types of applications 220A, 220B running on the mobile device. For example, if application 220A is a speed test application and system communication requirement 304A specifies a high throughput requirement, a higher operating voltage and frequency 324, 326 can be implemented at modem 310 to ensure that modem 310's throughput capabilities meet the high throughput requirement. However, if application 220A is a media streaming application and system communication requirement 304A specifies a lower throughput requirement, a lower operating voltage and frequency 324, 326 can be implemented at modem 310. By reducing the operating voltage and frequency 324, 326 implemented at modem 310 for applications that do not require high operating voltages and frequencies (e.g.,Media streaming applications), a reduction in power consumption can be achieved compared to operating the Modem 310 with higher operating voltages and frequencies.

[0058] In scenarios where additional applications are running on the mobile device, such as application 220B, the hardware operating mode adaptation model 350 can select a target operating voltage and frequency 324, 326 for modem 310 that allows modem 310 to meet the throughput requirements of each application. For example, if system communication requirement 304B indicates that application 220B also has a relatively high throughput requirement, the hardware operating mode adaptation model 350 can select the lowest operating voltage and frequency 324, 326 for modem 310 that allows modem 310 to meet the throughput requirements of both applications 220A and 220B.

[0059] Thus, in some implementations, the operating system 222 can be configured to adapt the operating modes of the hardware components (e.g., the modem 310 and the SoC hardware component 312) to simultaneously meet the system communication requirements 304, 306 of multiple applications 220. In these implementations, the operating system 222 can use feedback from the hardware components to allocate available hardware resources in such a way as to ensure that the system communication requirements 304, 306 for each application 220 are met using the most energy-efficient resources.

[0060] The one relating to system 300 from Fig. The techniques described in section 3 can reduce unnecessary power consumption in a mobile device based on application information. In particular, the System 300 uses the operating system 222 to analyze application requirements (e.g., the system communication requirements 304, 306) and to adjust the operating modes of hardware components (e.g., the modem 310 and / or the SoC hardware component 312) to meet the application requirements while operating with relatively high efficiency.

[0061] Fig. Figure 4 illustrates another example System 400, which is operational to reduce the power consumption of mobile devices based on application information. System 400 includes the operating system 222 and the modem 310. Application 220A can send system communication requests 304A, 306A (e.g., throughput and latency requirements) to the operating system 222, and application 220B can send system communication requests 304B, 306B (e.g., throughput and latency requirements) to the operating system 222.

[0062] Based on system communication requirements 304, 306, the operating system 222 can determine a PCIe generation and lane configuration to meet the throughput and latency requirements of applications 220. For example, the operating system 222 can include a PCIe generation and lane configurator 402 to determine, based on system communication requirements 304, 306, whether to use a Generation 4 PCIe configuration, a Generation 3 PCIe configuration, a Generation 2 PCIe configuration, or a Generation 1 PCIe configuration. Additionally, the PCIe generation and lane configurator 402 can determine whether to use a single-lane or a multiple-lane configuration.

[0063] According to some implementations, the operating system 222 can send system communication requests 304A, 306A to the modem 310, and the modem 310 can determine a PCIe generation and lane configuration to meet the throughput and latency requirements of the applications 220. For example, the modem 310 can include a PCIe generation and lane selector 402 to determine, based on system communication requests 304, 306, whether to use a Generation 4 PCIe configuration, a Generation 3 PCIe configuration, a Generation 2 PCIe configuration, or a Generation 1 PCIe configuration. Additionally, the PCIe generation and lane selector 402 can determine whether to use a single-lane or multiple-lane configuration.

[0064] Additionally, the modem 310 can include a DVFS adjuster 406. The DVFS adjuster 406 can be configured to dynamically adjust the operating voltage 324 and the operating frequency 326 of the modem 310 based on the system communication requirements 304, 306. Adjusting the operating voltage and frequency 324, 326 can cause the modem 310 to operate in different modes. For example, the modem 310 can operate in a power-saving mode by scaling down the voltage and frequency 324, 326 when one or more applications 220 have a low throughput requirement, in order to conserve energy. Conversely, the modem 310 can operate in a high-performance mode by scaling up the voltage and frequency 324, 326 when one or more applications 220 have a high throughput requirement. IV. Exemplary machine learning process for predicting system communication requirements

[0065] Fig. Figure 5 presents an example process 500 for predicting system communication requirements based on the tasks assigned to the applications.

[0066] According to process 500, training datasets 502 can be compiled and provided to the machine learning model 360. For illustration, a training dataset 502A includes a task 510A and a corresponding system communication request 520A associated with performing task 510A. For example, if task 510A is streaming media, the corresponding system communication request 520A might specify a required throughput or latency for streaming media. Additionally, a training dataset 502B includes a task 510B and a corresponding system communication request 520B associated with performing task 510B, and a training dataset 502C includes a task 510C and a corresponding system communication request 520C associated with performing task 510C.Although three training datasets are illustrated, it is understood that the machine learning model can be generated using additional training datasets. As non-limiting examples, hundreds or thousands of training datasets can be compiled to generate the machine learning model.

[0067] An algorithm 550 can be generated (e.g., created) based on the training datasets 502. The algorithm 550 can be used to predict a system communication request 520 for a given task 510 based on the training dataset 502. The machine learning model 360 can use the algorithm 550 to predict the system communication requests 304, 306 based on the task associated with the applications 220.

[0068] Fig. Figure 6 shows a diagram 600 illustrating a training phase 602 and an inference phase 604 of trained machine learning models 632, in accordance with example implementation forms. According to some examples, the trained machine learning model(s) 632 may correspond to the machine learning model 360. Some machine learning techniques involve training one or more machine learning algorithms with an input set of training data to detect patterns in the training data and provide output inferences and / or predictions about (patterns in) the training data. The resulting trained machine learning algorithm may be referred to as a trained machine learning model. For example, Figure 6 shows Fig. 6. The training phase 602, in which machine learning algorithm(s) 620 are trained with training data 610 to become trained machine learning models 632. Then, during the inference phase 604, the trained machine learning model(s) 632 can receive input data 630 and one or more inference / prediction requests 640 (perhaps as part of the input data 630) and provide one or more inference(s) and / or prediction(s) 650 as output.

[0069] As such, the trained machine learning model(s) 632 may comprise one or more models of machine learning algorithm(s) 620. The machine learning algorithm(s) 620 may include, but are not limited to: an artificial neural network (e.g., a convolutional neural network described herein, a recurrent neural network, a Bayesian network, a hidden Markov model, a Markov decision process, a logistic regression function, a support vector machine, a suitable statistical machine learning algorithm, and / or a heuristic machine learning system). The machine learning algorithm(s) 620 may be supervised or unsupervised and may implement any suitable combination of online and offline learning.

[0070] In some examples, the machine learning algorithm(s) 620 and / or the trained machine learning model(s) 632 can be accelerated using on-device coprocessors such as graphics processing units (GPUs), tensor processing units (TPUs), digital signal processors (DSPs), and / or application-specific integrated circuits (ASICs). Such on-device coprocessors can be used to accelerate the machine learning algorithm(s) 620 and / or the trained machine learning model(s). In some examples, the trained machine learning model(s) 632 can be trained, reside on a specific computing device, and run to provide inferences and / or otherwise perform inferences for that specific computing device.

[0071] During training phase 602, the machine learning algorithm(s) 620 can be trained by providing at least the training data 610 as training input using unsupervised, supervised, semi-supervised, and / or reinforcement learning techniques. Unsupervised learning involves providing some (or all) of the training data 610 to the machine learning algorithm(s) 620, and the machine learning algorithm(s) 620 determine one or more output inferences based on the provided part (or all) of the training data 610.Supervised learning involves providing a portion of the training data 610 to the machine learning algorithm(s) 620, where the machine learning algorithm(s) 620 determine one or more output inferences based on the provided portion of the training data 610, and the output inference(s) are either accepted or corrected based on correct results associated with the training data 610. In some examples, the supervised learning of the machine learning algorithm(s) 620 can be controlled by a set of rules and / or a set of labels for the training input, and the set of rules and / or the set of labels can be used to correct inferences of the machine learning algorithm(s) 620.

[0072] Semi-supervised learning involves obtaining correct results for some, but not all, of the training data. During semi-supervised learning, supervised learning is used for a portion of the training data with correct results, and unsupervised learning is used for a portion of the training data without correct results. Reinforcement learning involves the machine learning algorithm(s) receiving a reward signal based on a previous inference, which can be a numerical value. During reinforcement learning, the machine learning algorithm(s) can issue an inference and receive a reward signal in response, and the machine learning algorithm(s) are configured to attempt to maximize the numerical value of the reward signal.In some examples, reinforcement learning also uses a value function that provides a numerical value representing an expected total sum of the numerical values ​​provided by the reward signal over time. In some examples, the machine learning algorithm(s) 620 and / or the trained machine learning model(s) 632 may be trained using other machine learning techniques, including, but not limited to, incremental learning and curriculum learning.

[0073] In some examples, the machine learning algorithm(s) 620 and / or the trained machine learning model(s) 632 may employ transfer learning techniques. For example, transfer learning techniques may involve pre-training the trained machine learning model(s) 632 on a set of data and additionally training it using the training data 610. In particular, the machine learning algorithm(s) 620 may be pre-trained on data from one or more computing devices, and a resulting trained machine learning model may be provided to a specific computing device, which is designated to execute the trained machine learning model during the inference phase 604.Then, during training phase 602, the pre-trained machine learning model can be further trained using training data 610, which can be derived from kernel and non-kernel data of the specific computing device. This further training of the machine learning algorithm(s) 620 and / or the pre-trained machine learning model using the training data 610 from the specific computing device can be performed using either supervised or unsupervised learning. Once the machine learning algorithm(s) 620 and / or the pre-trained machine learning model has been trained on at least the training data 610, training phase 602 can be completed. The resulting trained machine learning model can be used as at least one of the trained machine learning models 632.

[0074] In particular, once the training phase 602 is completed, the trained machine learning model(s) 632 can be made available to a computing device if it is not already on the computing device. The inference phase 604 can begin after the trained machine learning model(s) 632 has been made available to the specific computing device.

[0075] During the inference phase 604, the trained machine learning model(s) 632 can receive the input data 630 and generate and output one or more corresponding inferences and / or predictions 650 about the input data 630. As such, the input data 630 can be used as input for the trained machine learning model(s) 632 to provide corresponding inferences and / or predictions 650 to kernel and non-kernel components. For example, the trained machine learning model(s) 632 can generate inferences and / or predictions 650 in response to one or more inference / prediction requests 640. In some examples, the trained machine learning model(s) 632 can be executed by a part of other software.For example, the trained machine learning model(s) 632 can be executed by an inference or prediction daemon to be readily available to provide inferences and / or predictions on demand. The input data 630 can include data from the specific computing device that executes the trained machine learning model(s) 632, and / or input data from one or more computing devices other than the specific computing device.

[0076] The input data 630 can include various tasks, such as the tasks 510. Other types of input data are also possible. Inference(s) and / or prediction(s) 650 can include one or more system communication requests 520 for a given task 510. Inference(s) and / or prediction(s) 650 can include other output data generated by the trained machine learning model(s) 632, which operate on the input data 630 (and the training data 610). In some examples, the trained machine learning model(s) 632 can use output inference(s) and / or prediction(s) 650 as input feedback 660. The trained machine learning model(s) 632 can also rely on past inferences as input for generating new inferences.

[0077] Convolutional neural networks and / or deep neural networks used herein can be an example of the machine learning algorithm(s) 620. After training, the trained version of a convolutional neural network can be an example of the trained machine learning model(s) 632. In this approach, an example of the one or more inference / prediction queries 640 can be a query to predict one or more system communication requirements 520. V. Additional Example Operations

[0078] Fig. Figure 7 illustrates a flowchart of a process 700 relating to a new technology. The process 700 can be carried out, among other things, by the computing device 100, the computing system 200, and / or the system 300. The embodiments of Fig. Figure 7 can be simplified by removing one or more of the features shown therein. Furthermore, these embodiments can be combined with features, aspects and / or implementations of any of the preceding figures or otherwise described herein.

[0079] Method 700 comprises accessing, by an operating system running on a mobile device, to initial system communication requests associated with running an initial application on the mobile device, as described in Block 702. For example, the operating system 222, referring to Fig. 3, access the system communication requirements 304A, 306A, which are associated with running application 220A on computing device 100.

[0080] Procedure 700 also includes the sending, by the operating system, of the first system communication requests to a modem of the mobile device, at block 704. For example, the operating system 222, referring to Fig. 3, send the system communication requests 304A, 306A to the modem 310.

[0081] Procedure 700 further includes adjusting the modem's operating mode based on the initial system communication requests and on feedback received by the modem in response to the sending of the initial system communication requests to the modem, as described in block 706. For example, the modem's operating mode 310, with reference to Fig. 3, based on the system communication requirements 304A, 306A and based on feedback received by the operating system 222 from the modem 310.

[0082] In some embodiments, adjusting the modem's operating mode involves transitioning a PCIe interface for the first application from a first energy state to a second energy state. The first energy state may have a first exit latency that differs from the second exit latency of the second energy state. As a non-limiting example, PCIe interface 320A may transition from energy state 322B (e.g., the high energy state) to energy state 322A (e.g., the low energy state). Energy state 322B has an exit latency that differs from (e.g., is greater than) the exit latency of energy state 322A.

[0083] In some embodiments, the PCIe interface is associated with a modem or other SoC hardware component. For example, PCIe interfaces 320A and 320B refer to... Fig. 3, associated with the modem 310, and the PCIe interfaces 330A, 330B are associated with the SoC hardware component 312.

[0084] In some embodiments, adjusting the modem's operating mode involves determining, based on the initial system communication requirements, a throughput parameter associated with running the first application on the mobile device. For example, the operating system 222, referring to Fig. 3. Determine the throughput parameter (e.g., the throughput requirement) associated with running application 220A on the mobile device, based on system communication requirement 304A. In these embodiments, adjusting the operating mode may further include selecting, for the first application, at least one PCIe interface from a plurality of PCIe interfaces based on the throughput parameter. For example, at least one PCIe interface 320, 330, referring to Fig. 3, for application 220A based on the throughput parameter (e.g. the system communication requirement 304A).

[0085] In some embodiments, a single PCIe interface is selected from the multitude of PCIe interfaces in response to the fact that the throughput parameter does not meet a throughput threshold. As a non-restrictive example, a single PCIe 320A interface, referring to Fig. 3, selected from the multitude of PCIe interfaces 320, in response to the fact that the throughput parameter (e.g., the system communication requirement 304A) for application 220A does not meet (e.g., does not exceed) a throughput threshold.

[0086] In some embodiments, multiple PCIe interfaces are selected from the multitude of PCIe interfaces in response to the throughput parameter meeting a throughput threshold. For example, multiple PCIe interfaces 320A, 320B, etc., may be selected based on... Fig. 3, selected from the multitude of PCIe interfaces 320, in response to the fact that the throughput parameter (e.g., the system communication requirement 304A) for application 220A meets (e.g., exceeds) a throughput threshold.

[0087] In some embodiments, adjusting the modem's operating mode may involve determining, based on the initial system communication requirements, a latency parameter associated with running the first application on the mobile device, and transitioning a PCIe interface of the modem to a low-power state for that first application. The low-power state may have an exit latency that satisfies the latency parameter. For example, the operating system 222, referring to Fig. 3. Based on the system communication requirement 306A, determine a latency parameter associated with the execution of the application 220A on the mobile device. The PCIe interface 320A of the modem 310 can be transitioned to the energy state 322A (e.g., the low energy state) if the energy state 322A has an exit latency that satisfies the latency parameter.

[0088] In some embodiments, adjusting the modem's operating mode includes adjusting the modem's operating voltage and operating frequency. For example, the operating voltage and frequency 324, 326 of modem 310, with reference to Fig. 3, scaled to meet the application operating parameters 304, 306 of application 220A.

[0089] In some embodiments, accessing the first system communication requests includes receiving the first system communication requests from the first application. For example, the operating system 222, referring to Fig. 3. The system communication requests 304A, 306A are received from the application 220A. In some embodiments, the application 220A can communicate with the operating system 222 via one or more APIs.

[0090] In some embodiments, the method 700 includes the operating system accessing second application parameters associated with the execution of a second application on the mobile device. For example, the operating system 222, referring to Fig. 3. Access the system communication requests 304B and 306B associated with the execution of application 220B on the mobile device. Procedure 700 may also include the operating system sending the second system communication requests to the modem. For example, operating system 222, referring to Fig. 3. The system communication requests 304B, 306B are sent to the modem 310 and / or the SoC hardware component 312. In these embodiments, the operating mode for the hardware component can further be adapted based on the second system communication requests 304B, 306B.

[0091] In some embodiments, the operating system predicts the initial system communication requests based on a specific task assigned to the first application. In some embodiments, the operating system uses machine learning to predict the initial system communication requests based on the specific task associated with the first application. VI. Conclusion

[0092] The present disclosure is not limited to the particular embodiments described in this application, which are intended to illustrate various aspects. Many modifications and variations can be made without altering its scope of protection, as is apparent to the person skilled in the art. Functionally equivalent methods and apparatuses within the scope of protection of the disclosure, in addition to those described herein, are apparent to the person skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of protection of the appended claims.

[0093] The above detailed description outlines various features and operations of the disclosed systems, devices, and methods with reference to the accompanying figures. In the figures, similar symbols typically identify similar components unless the context specifies otherwise. The exemplary embodiments described herein and in the figures are not to be understood as limiting. Other embodiments may be used and other modifications may be made without altering the scope of protection of the subject matter presented here. It is readily understood that the aspects of the present disclosure, as generally described herein and illustrated in the figures, may be arranged, substituted, combined, separated, and designed in a multitude of different configurations.

[0094] With respect to all or some of the message flow diagrams, scenarios, and flowcharts in the figures and as discussed herein, each step, block, and / or communication may represent processing and / or transmitting information according to the example implementations. Alternative implementations are included within the scope of protection of these example implementations. In these alternative implementations, operations described as steps, blocks, transmissions, communications, requests, responses, and / or messages may, for example, be performed in a different order than that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.Furthermore, more or fewer blocks and / or operations can be used with each of the message flow diagrams, scenarios and flowcharts discussed herein, and these message flow diagrams, scenarios and flowcharts can be partially or completely combined with each other.

[0095] A step or block representing information processing may correspond to a circuit that can be configured to perform the specific logical functions of a procedure or technique described herein. Alternatively or additionally, a block representing information processing may correspond to a module, segment, or portion of program code (including associated data). The program code may contain one or more instructions executable by a processor to implement specific logical operations or actions in the procedure or technique. The program code and / or associated data may be stored on any type of computer-readable medium, such as a storage device, including random-access memory (RAM), a hard disk drive, a solid-state drive, or other storage medium.

[0096] Computer-readable media can also include non-volatile computer-readable media, such as those that store data for short periods, like register memory, processor cache, and RAM. Computer-readable media can also include non-volatile computer-readable media that store program code and / or data for longer periods. Thus, computer-readable media can include secondary or persistent long-term storage, such as read-only memory (ROM), optical or magnetic disks, solid-state drives, and compact disc read-only storage (CD-ROM). Computer-readable media can also be any other volatile or non-volatile storage system. A computer-readable medium can, for example, be considered a computer-readable storage device or a physical storage device.

[0097] Furthermore, a step or block representing one or more information transfers can correspond to information transfers between software and / or hardware modules in the same physical device. However, other information transfers can occur between software modules and / or hardware modules in different physical devices.

[0098] The specific arrangements shown in the figures should not be considered restrictive. It is understood that other embodiments may contain more or less of each element shown in a given figure. Furthermore, some of the depicted elements may be combined or omitted. Additionally, an exemplary embodiment may contain elements not shown in the figures.

[0099] While various aspects and embodiments have been disclosed herein, other aspects and embodiments are obvious to those skilled in the art. The various disclosed examples and embodiments serve only for illustration and are not intended to be limiting, the true scope of protection being specified by the following claims.

Claims

[1] Procedure, encompassing: Accessing, by an operating system running on a mobile device, initial system communication requests associated with running an initial application on the mobile device; Sending, via the operating system, the first system communication requests to a modulator-demodulator (modem) of the mobile device; and Adapting the modem's operating mode based on the initial system communication requests and based on feedback received by the modem in response to the sending of the initial system communication requests to the modem. [2] Method according to claim 1, wherein the adjustment of the modem's operating mode comprises: For the first application, transitioning a Peripheral Component Interconnect Express (PCIe) interface from a first energy state to a second energy state, where the first energy state has a first exit latency that differs from a second exit latency of the second energy state. [3] Method according to claim 2, wherein the PCIe interface is associated with the modem. [4] Method according to claim 1, wherein the adjustment of the modem's operating mode comprises: Determine, based on the initial system communication requirements, a throughput parameter associated with running the first application on the mobile device; and Select, for the first application, at least one Peripheral Component Interconnect Express (PCIe) interface from a variety of PCIe interfaces based on the throughput parameter. [5] Method according to claim 4, wherein a single PCIe interface is selected from the plurality of PCIe interfaces in response to the fact that the throughput parameter does not meet a throughput threshold. [6] Method according to claim 4, wherein several PCIe interfaces are selected from the plurality of PCIe interfaces in response to the throughput parameter meeting a throughput threshold. [7] Method according to claim 1, wherein the adjustment of the modem's operating mode comprises: Determine, based on the initial system communication requests, a latency parameter associated with running the first application on the mobile device; and For the first application, transition a modem's Peripheral Component Interconnect Express (PCIe) interface into a low-energy state, where the low-energy state has an exit latency that satisfies the latency parameter. [8] Method according to claim 1, wherein the adjustment of the modem's operating mode comprises: Adjusting the modem's operating voltage and operating frequency. [9] Method according to claim 1, wherein accessing the first system communication requests comprises receiving the first system communication requests from the first application. [10] Method according to claim 1, further comprising: Access, through the operating system, to secondary system communication requests associated with running a secondary application on the mobile device; and Sending, through the operating system, the second system communication requirements to the modem, the operating mode for the modem is further adapted based on the second system communication requirements. [11] Method according to claim 1, wherein the first system communication requirements are predicted by the operating system based on a specific task assigned to the first application. [12] Method according to claim 11, wherein the operating system uses a trained machine learning model to predict the first system communication requirements based on the specific task associated with the first application. [13] Mobile device comprising: a system memory that stores a set of instructions; and at least one processor coupled to system memory, wherein the set of instructions is executable by the at least one processor to run an operating system, and wherein the operating system is configured to: to access initial system communication requests associated with running an initial application on the mobile device; to send the first system communication requests to a modulator-demodulator (modem) of the mobile device; and to initiate the adaptation of an operating mode of the modem, based on the first system communication requests and based on a response received by the modem in response to the sending of the first system communication requests to the modem. [14] Mobile device according to claim 13, wherein the operating system is configured to initiate the adjustment of the modem's operating mode: to initiate the transition of a Peripheral Component Interconnect Express (PCIe) interface for the first application from a first energy state to a second energy state, wherein the first energy state has a first exit latency that differs from a second exit latency of the second energy state. [15] Mobile device according to claim 14, wherein the PCIe interface is associated with the modem. [16] Mobile device according to claim 13, wherein the operating system is configured to initiate the adjustment of the modem's operating mode: to determine a throughput parameter associated with running the first application on the mobile device based on the initial system communication requirements; and to initiate the selection of at least one Peripheral Component Interconnect Express (PCIe) interface from a variety of PCIe interfaces based on the throughput parameter. [17] Mobile device according to claim 16, wherein a single PCIe interface is selected from the plurality of PCIe interfaces in response to the fact that the throughput parameter does not meet a throughput threshold. [18] Mobile device according to claim 16, wherein several PCIe interfaces are selected from the plurality of PCIe interfaces in response to the throughput parameter meeting a throughput threshold. [19] Non-volatile, computer-readable medium comprising instructions of an operating system, wherein the instructions, when executed by at least one processor, cause the at least one processor to: to access initial system communication requests associated with running an initial application on a mobile device; to send the first system communication requests to a modulator-demodulator (modem) of the mobile device; and to initiate the adaptation of an operating mode of the modem, based on the first system communication requests and based on a response received by the modem in response to the sending of the first system communication requests to the modem. [20] Non-volatile computer-readable medium according to claim 19, wherein the instructions to initiate the adjustment of the modem's operating mode, when executed by the processor, cause the processor to: to initiate the transition of a Peripheral Component Interconnect Express (PCIe) interface for the first application from a first energy state to a second energy state, wherein the first energy state has a first exit latency that differs from a second exit latency of the second energy state.