Power saving techniques within a computing device via communication bus control

A timer-based data accumulation technique on communication buses in computing devices addresses power consumption issues by minimizing transitions, thereby extending low-power mode duration and improving battery life.

JP7731977B2Active Publication Date: 2025-09-01QUALCOMM INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023512405
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2020-09-02
Publication Date
2025-09-01
Estimated Expiration
2040-09-02

Smart Images

  • Figure 0007731977000001
    Figure 0007731977000001
  • Figure 0007731977000002
    Figure 0007731977000002
  • Figure 0007731977000003
    Figure 0007731977000003
Patent Text Reader

Abstract

A power saving technique in a computing device via communication bus control starts a timer when data is ready to be transmitted across the communication bus from a first end to a second end. While the timer is running, any data from any channel ready to be transmitted across the communication bus from the first end to the second end is accumulated. Upon expiration of the timer, all data is transmitted across the communication bus. By holding or accumulating data in this manner, unnecessary transitions between low-power and active states on the communication bus are reduced, thereby saving power. The timer may be set based on the latency requirements of the data ready to be transmitted.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The techniques of this disclosure generally relate to power saving techniques within computing devices via communication bus control. [Background technology]

[0002] Computing devices pervade modern society. Ranging from small mobile computing devices such as smartphones or tablets to large server farms with numerous blades and memory banks, these devices are expected to communicate across a myriad of networks while providing a variety of other basic functions. While desktop devices and servers are generally not subject to power consumption concerns, mobile devices are always striving to find the right balance between available functionality and battery life. That is, as more functionality is provided, power consumption increases and battery life decreases. Servers may similarly have power consumption concerns when installed within large server farms. Accordingly, there is always room for power conservation. Summary of the Invention [Means for solving the problem]

[0003] Aspects disclosed in the detailed description include power saving techniques in a computing device via communication bus control. In particular, when data is ready to be transmitted across a communication bus from a first end to a second end, a timer is started. While the timer is running, any data from any channel ready to be transmitted across the communication bus from the first end to the second end is accumulated. Upon expiration of the timer, all data is transmitted across the communication bus. By holding or accumulating data in this manner, unnecessary transitions between low-power and active states on the communication bus are reduced, thereby conserving power. The timer may be set based on the latency requirements of the data ready to be transmitted.

[0004] In this regard, in one aspect, an integrated circuit (IC) is disclosed. The IC includes a timer. The IC also includes at least one data source circuit. The IC also includes an interconnect bus interface. The IC also includes a control circuit. The control circuit is configured to receive an indication that the at least one data source circuit has data or a command to transmit to a second IC. The control circuit is also configured to start the timer upon receiving the indication. The control circuit is also configured to accumulate data across multiple channels until expiration of the timer. The control circuit is also configured to transmit the accumulated data to the second IC via the interconnect bus interface upon expiration of the timer.

[0005] In another aspect, a communication system is disclosed. The communication system includes an interconnect bus. The communication system also includes a first IC. The first IC includes a first timer. The first IC also includes at least one first data source circuit. The first IC also includes a first interconnect bus interface coupled to the interconnect bus. The first IC also includes a first control circuit. The first control circuit is configured to receive an indication that the at least one first data source circuit has first data to transmit to a second IC. The first control circuit is also configured to start the first timer upon receiving the indication. The first control circuit is also configured to accumulate data across multiple channels until expiration of the first timer. The first control circuit is also configured to transmit the accumulated data to the second IC via the first interconnect bus interface upon expiration of the first timer. The communication system also includes a second IC. The second IC includes a second interconnect bus interface coupled to the interconnect bus. The second IC also includes a second control circuit. The second control circuit is configured to receive the stored data, and the second control circuit is also configured to initiate transmitting second data to the first IC in response to initially receiving the stored data.

[0006] In another aspect, a method for controlling an interconnect bus is disclosed. The method includes receiving an indication that at least one first data source circuit has first data to transmit to a remote IC over the interconnect bus. The method also includes starting a first timer upon receiving the indication. The method also includes accumulating data across multiple channels until expiration of the first timer. The method also includes transmitting the accumulated data to the remote IC via the interconnect bus interface upon expiration of the first timer. [Brief explanation of the drawings]

[0007] [Figure 1A] 1 is a simplified diagram of a computing device operating with a remote network. [Figure 1B] 1 is a simplified diagram of a mobile terminal operating with a remote network. [Figure 1C] FIG. 1C is an expanded block diagram of the mobile terminal of FIG. 1B showing the internal interconnect bus. [Figure 1D] FIG. 1C is a block diagram of the mobile terminal of FIG. 1B. [Figure 2] FIG. 1 is a diagram of a protocol stack that may be transmitted on an internal interconnect bus where channels originate within the protocol stack. [Figure 3A] 1 is an exemplary graph of link power versus time for a conventional computing device for a single channel. [Figure 3B] 1 is an exemplary graph of link power versus time in a conventional computing device for multiple channels. [Figure 4] FIG. 1 is a block diagram of a peripheral component interconnect (PCI) express (PCIE) system within a computing device that can benefit from the power saving techniques of the present disclosure. [Figure 5] FIG. 1 is a block diagram of an application processor having PCIE root complex circuitry therein. [Figure 6]FIG. 1 is a block diagram of a modem having PCIE endpoint circuitry therein. [Figure 7A] 4 is a flowchart illustrating an exemplary process for reducing power consumption via communication bus control. [Figure 7B] 7B is a second flowchart more clearly illustrating decision points in the process of FIG. 7A. [Figure 8] 10 is a graph of link power versus time for a PCIE system operating in accordance with an exemplary aspect of the present disclosure. [Figure 9] FIG. 7C is a block diagram of an example processor-based system that may include a PCIE system such as the PCIE system of FIG. 4 including the power reduction process of FIGS. 7A and 7B. DETAILED DESCRIPTION OF THE INVENTION

[0008] Some exemplary aspects of the present disclosure will now be described with reference to the drawings. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any aspect described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects.

[0009] Aspects disclosed in the detailed description include power saving techniques in a computing device via communication bus control. In particular, when data is ready to be transmitted across a communication bus from a first end to a second end, a timer is started. While the timer is running, any data from any channel ready to be transmitted across the communication bus from the first end to the second end is accumulated. Upon expiration of the timer, all data is transmitted across the communication bus. By holding or accumulating data in this manner, unnecessary transitions between low-power and active states on the communication bus are reduced, thereby conserving power. The timer may be set based on the latency requirements of the data ready to be transmitted.

[0010] In a particularly contemplated aspect, the present disclosure is suitable for use with Peripheral Component Interconnect (PCI) Express (PCIE) systems in mobile terminals. By aggregating or aggregating all channels on a PCIE link, ends of the link can remain in low power mode for longer periods of time, with little power consumed going in and out of low power mode.

[0011] While it is contemplated that the power saving techniques of the present disclosure may be used within a PCIE link within a mobile terminal such as a smartphone or tablet, the present disclosure is not so limited. Accordingly, FIGS. 1A and 1B illustrate a computing device coupled to a remote network via a modem that may implement exemplary aspects of the power saving techniques of the present disclosure, while FIGS. 1C and 1D provide additional details regarding an internal communication link for the modem to other processors within the computing device. In this regard, FIG. 1A illustrates a computing device 100 coupled to a network 102, which in an exemplary aspect is the Internet. Computing device 100 may include a housing 104 having a central processing unit (CPU) (not shown) therein. A user may interact with computing device 100 through a user interface formed from input / output elements such as a monitor 106 (sometimes referred to as a display), a keyboard 108, and / or a mouse 110. In some aspects, monitor 106 may be incorporated into housing 104. Although keyboard 108 and mouse 110 are shown as input devices, monitor 106 may be a touchscreen that may complement or replace keyboard 108 and mouse 110 as input devices. Other input / output devices may be present, as is well understood in connection with desktop or laptop-style computing devices. Although not shown in FIG. 1A , housing 104 may also include a modem therein. As is well understood, a modem may be located on a network interface card (NIC). Similarly, a router and / or additional modem may be external to housing 104. As is well understood, for example, computing device 100 may couple to network 102 through a router and a cable modem. However, even if such external routers and modems are present, computing device 100 may have an internal modem to achieve communication with such external routers and modems.

[0012] In addition to computing device 100, exemplary aspects of the present disclosure may also be implemented on a mobile terminal, the term being a form of computing device as used herein. In this regard, an exemplary aspect of a mobile terminal 120 is shown in FIG. 1B. Instead of a smartphone, mobile terminal 120 may be a cellular phone, a tablet, a laptop, or other mobile computing device. Mobile terminal 120 may communicate with a remote antenna 122 associated with a base station (BS) 124. BS 124 may communicate with a public land mobile network (PLMN) 126, a public switched telephone network (PSTN, not shown), or network 102 (e.g., the Internet). PLMN 126 may also communicate with the Internet (e.g., network 102) directly or via an intervening network (e.g., PSTN). It should be appreciated that most modern mobile terminals 120 enable various types of communication with elements of network 102. For example, streaming audio, streaming video, and / or web browsing are all common features on most modern mobile terminals 120. Such functionality is enabled through applications stored in the memory of the mobile terminal 120 and using the wireless transceiver of the mobile terminal 120.

[0013] 1C , data arrives from a remote antenna 122 at an antenna 130 of the mobile terminal 120. The data is first processed in a mobile device modem (MDM) 132 of the mobile terminal 120 and sent to an application processor 134 by an interconnect bus 136. In this context, the application processor 134 is generally an integrated circuit (IC) and may be a host, and the MDM 132 is also an IC and may be a device as those terms are used in the PCIE standard. While the exemplary embodiment discusses operation over a PCIE-compliant interconnect bus 136, it is possible that the interconnect bus 136 may be compliant with a high-speed interconnect (HSIC), a universal asynchronous receiver / transmitter (UART), a universal serial bus (USB), etc.

[0014] A more detailed description of some of the components of mobile terminal 120 is provided with respect to Figure 1D. Mobile terminal 120 may include receiver path 138, transmitter path 140, antenna 130 (described above with respect to Figure 1C), switch 142, modem processor 144, and application processor 134 (also described above with reference to Figure 1C). Optionally, separate control circuitry (not shown) may be present along with the CPU, which is also well understood. Application processor 134 and modem processor 144 are connected by interconnection bus 136. Application processor 134 and / or control circuitry (if present) may interoperate with user interface 146 and memory 148 having software 150 stored therein.

[0015] The receiver path 138 receives information carrying radio frequency (RF) signals from one or more remote transmitters provided by a base station (e.g., BS 124 in FIG. 1B). A low-noise amplifier (not shown) amplifies the signal. A filter (not shown) minimizes wideband interference in the received signal. A downconversion and digitization circuit (not shown) downconverts the filtered received signal to an intermediate frequency or baseband frequency signal. The baseband frequency signal is then digitized into one or more digital streams. The receiver path 138 typically uses one or more mixed frequencies generated by a frequency synthesizer. The modem processor 144 may include a baseband processor (BBP) (not shown) that processes the digitized received signal to extract information or data bits carried in the signal. As such, the BBP is typically implemented within one or more digital signal processors (DSPs) within the modem processor 144 or as a separate IC as needed or desired. In an exemplary aspect, the receiver path 138 may include a data source circuit involved with data arriving from a remote network. Additionally, there may be circuitry (not shown) within modem processor 144 that acts as data source circuitry. For example, control circuitry may generate control data, BIOS data, etc. for transmission to application processor 134.

[0016] 1D , on the transmit side, modem processor 144 receives digitized data, which may represent voice, data, or control information, from application processor 134, which modem processor 144 encodes for transmission. The encoded data is output to transmitter path 140, where it is used by a modulator (not shown) to modulate a carrier signal at a desired transmit frequency. An RF power amplifier (not shown) amplifies the modulated carrier signal to a level suitable for transmission and delivers the amplified, modulated carrier signal to antenna 130 through switch 142. Collectively, modem processor 144, receiver path 138, and transmitter path 140 form MDM 132 (sometimes referred to as a wireless modem) of FIG. 1C . MDM 132 is described particularly with respect to RF signals associated with cellular signals such as those provided under 5G, although the disclosure is not so limited. For example, wireless modems using other wireless protocols may also benefit from the inclusion of aspects of the disclosure. Thus, modems operating according to standards such as Bluetooth, various IEEE 802.11 standards, Universal Mobile Telecommunications System (UMTS), High Speed ​​Packet Access (HSPA), Long Term Evolution (LTE), and other wireless protocols may all use aspects of the present disclosure.

[0017] 1D , a user may interact with mobile terminal 120 through user interface 146, such as a microphone, speaker, keypad, and display. Audio information encoded in the received signal is recovered by the BBP and converted into an analog signal suitable for driving a speaker. The keypad and display allow the user to interact with mobile terminal 120. For example, the keypad and display may allow the user to enter numbers to dial, access address book information, etc., and monitor call progress information. Memory 148 may have software 150 therein, as described above, which may accomplish exemplary aspects of the present disclosure.

[0018] In conventional mobile terminals having a PCIE interconnect bus (i.e., interconnect bus 136), the PCIE standard allows the interconnect bus 136 to be placed in a sleep mode or low-power mode. While placing the interconnect bus 136 in a sleep mode or low-power mode generally conserves power, such sleep modes have the drawback of consuming a relatively large amount of power when the interconnect bus 136 transitions out of the sleep mode. This power consumption is exacerbated by the asynchronous nature of the PCIE interconnect bus 136. That is, first data may arrive at the modem processor 144 for transmission to the application processor 134 at a different time than when second data is ready to pass from the application processor 134 to the modem processor 144. This problem is not unique to the PCIE interconnect bus 136. Furthermore, this data may reside on different channels within the interconnect bus 136.

[0019] 2 illustrates protocol stacks that may exist within application processor 134 and modem processor 144 to provide a general overview of the different types of channels and data sources that may exist. In particular, there may be an upper layer protocol 200 on which respective application-specific software 202A and 202B operate. Within the protocol stack below upper layer protocol 200 is a modem host interface (MHI) protocol layer 204 on which drivers 206A and 206B operate. Within the protocol stack below MHI protocol layer 204 is a PCIE-specific protocol layer 208 having a root complex driver 210 and an endpoint driver 212 that send and receive signals over bus 136 through respective bus interfaces 214 and 216. Circuits may exist at each level of the protocol stack that act as data source circuits that generate data to be sent to the other end (e.g., from application processor 134 to modem processor 144, or vice versa).

[0020] FIG. 3A shows a graph 300A of link (e.g., PCIE link) power versus time, highlighting how downlink data 302 may have a different transmission time than uplink data 304 for a given channel within a given time slot 306. In particular, the interconnect bus 136 (FIG. 1C or FIG. 1D) starts in a sleep or low power mode and transitions to an active power state via transition 308, whereby downlink data 302 may be transmitted to the application processor 134. However, the downlink data 302 may not occupy the entire time slot 306, and the interconnect bus 136 may return to the low power state. However, subsequently, but still within the same time slot 306, uplink data 304 from the application processor 134 is transmitted to the modem processor 144. In response, the interconnect bus 136 is transitioned from the low power state back to the active power state via a second transition 310. In one exemplary aspect, the time slot 306 is approximately one millisecond (1 ms) long. Thus, if two transitions (i.e., 308, 310) from low power to active power occur per time slot 306, then thousands of transitions 308, 310 occur per second. Thousands of transitions 308, 310 consume a significant amount of power and reduce the battery life of the mobile terminal 120.

[0021] The number of transitions in a single second may be even worse than presented by graph 300A because graph 300A represents only a single channel on interconnect bus 136. If interconnect bus 136 is a PCIE bus, there may be many channels, as shown by graph 300B of link power versus time in FIG. 3B. For example, there may be a BIOS channel 350, an MHI channel 352, a network traffic channel 354, and / or a control channel 356. Each channel 350, 352, 354, 356 may have its respective rising transitions 358 for uplink and downlink data along with a low-power window in between. The accumulating number of transitions 358 causes even greater drain on the battery life of mobile terminal 120.

[0022] Exemplary aspects of the present disclosure help reduce the number of transitions on the interconnect bus by aggregating or consolidating data across all channels from various data source circuits and transmitting the consolidated data within a single active window, thereby allowing ends of the bus to remain in a lower power state longer and have fewer interruptions. Before providing details about this aggregation, a more detailed discussion of a PCIE system is provided with respect to Figures 4-6.

[0023] In this regard, FIG. 4 illustrates a computing environment 400 having a host 402 coupled directly to a plurality of devices 404(1)-404(N) and to a second plurality of devices 406(1)-406(M) through a switch 408. The host 402 may include a PCIE root complex (RC) 410 that includes a bus interface (not shown directly) configured to couple to a plurality of PCIE buses 412(1)-412(N+1). The switch 408 communicates with the devices 406(1)-406(M) through PCIE buses 414(1)-414(M). The devices 404(1)-404(N) and 406(1)-406(M) may be or may include PCIE endpoints. In a first exemplary aspect, computing environment 400 may be a single computing device, such as a computer, having host 402, which is a CPU, and devices 404(1)-404(N) and 406(1)-406(M), which are internal components such as hard drives, disk drives, etc. In a second exemplary aspect, computing environment 400 may be a computing device in which host 402 is an on-board IC and devices 404(1)-404(N) and 406(1)-406(M) are other ICs within the computing device. In a third exemplary aspect, computing environment 400 may be a computing device having an internal host 402 coupled to external devices 404(1)-404(N) and 406(1)-406(M), such as a server, which is coupled to one or more external memory drives. Note that these aspects are not necessarily mutually exclusive in that different ones of the devices may be ICs internal or external to a single host 402.

[0024] FIG. 5 provides a block diagram of a device 500, which may be one of devices 404(1)-404(N) or devices 406(1)-406(M). In particular, device 500 serves as an endpoint within a PCIE system and may be, for example, a memory device including a memory element 502 and a control circuit 504. Furthermore, device 500 includes a PCIE hardware element 506 including a bus interface configured to couple to a PCIE bus. PCIE hardware element 506 may include a physical layer (PHY) 508 that is or works with the bus interface to communicate over the PCIE bus. Control circuit 504 communicates with PCIE hardware element 506 through a system bus 510. PCIE hardware element 506 may further include multiple registers 512. Registers 512 may be conceptually separated into configuration registers and capability registers. Additionally, control circuit 504 may work with a timer 514 to achieve aspects of the present disclosure.

[0025] Similarly, FIG. 6 illustrates a host 600, which may be host 402 of FIG. 4. The host 600 may include an application processor 602 or other processor core in communication with a memory element 604 having an operating system 606 running thereon. A system bus 608 interconnects the application processor 602 with the memory element 604 and a PCIE hardware (HW) or PCIE RC 610. The PCIE RC 610 may include a PHY 612 that works with or is a bus interface configured to couple to a PCIE bus. The PCIE RC 610 further includes multiple registers 614 that track the configuration and capabilities of connected endpoints. The application processor 602 or PCIE RC 610 may work with a timer 616 according to aspects of the present disclosure.

[0026] It should be appreciated that both device 500 and host 600 may have multiple data source circuits therein. For example, a transmit path (not shown) may be a data source circuit within device 500 and may be control circuit 504 or actual PHY 508. Similarly, host 600 may have multiple data source circuits therein. For example, a transmit path (not shown) sending data to a modem to be sent out to a remote network may be a data source circuit and may be control circuit, actual PHY 612, etc. Each of these data source circuits may have a dedicated channel within the PCIE link or may share a channel with another data source circuit (e.g., all data source circuits in the MHI layer of the protocol stack may share one channel).

[0027] A high-level flowchart of a signal accumulation process is provided in FIG. 7A for process 700. In particular, process 700 begins by receiving an indication that at least one first data source circuit has first data to transmit to a remote IC over the interconnect bus (block 702). For example, if the modem processor receives data from a remote network, the transmit path may indicate that there is data to transmit to the application processor over the PCIE bus. Process 700 continues by starting a first timer upon receiving that indication (block 704). Continuing with this example, the first timer is within the modem processor and is started upon receiving data from the remote network. Process 700 continues by accumulating data across multiple channels until expiration of the first timer (block 706). That is, any additional data or commands generated within the modem are accumulated along with the data from the remote network while the timer is running. Process 700 continues by transmitting the accumulated data to the remote IC over the interconnect bus interface upon expiration of the first timer (block 708). All data across all channels accumulated while the timer is running is transmitted to the application processor. Because the data is transmitted in accumulated bursts, there are fewer transitions from low power on the PCIE bus, allowing endpoints to remain in a low power state for a longer period of time. The reduced transitions reduce power consumption. Note that as data begins to flow from the modem to the application processor, the application processor may react such that the data is held or accumulated in the application processor. In a first aspect, the application processor transmits data to the initiating modem processor. In a second aspect, upon initiating a low power state, the application processor transmits any pending data to any possible endpoints (e.g., all of devices 404(1)-404(N) and devices 406(1)-406(M)).By transmitting all pending data, the application processor can maximize the productivity of the active state and prevent subsequent transitions from and to the low power state. The data can be interleaved with data from the modem or can be transmitted after the modem has finished transmitting but before transitioning to the low power state.

[0028] A more detailed description of power saving via the communication bus control process is provided by process 750 illustrated in FIG. 7B. Specifically, a service data transfer request exists (block 752). That is, the data source circuit has provided an indication that there is data or a command to be transferred. The control circuit, having received the data transfer request, determines whether the PCIE link is active (i.e., in state D0) (block 753). If the answer to block 753 is yes, the PCIE link is active, and data is transmitted by writing (e.g., dequeuing) pending data to the target (block 754). That is, data or a command is transmitted over the PCIE link to the remote IC. However, if the answer to block 753 is no, the PCIE link is not active (e.g., the PCIE link is in a low-power mode or a sleep mode), and the control circuit determines whether a buffer is unavailable or whether the data is time-critical (block 756). If the answer to either question at block 756 is yes, the control circuit wakes up the PCIE link to D0 (block 758) and the data is written (block 754).

[0029] However, if the answer to block 756 is no (i.e., there is buffer space and the data is not time-critical), the control circuit adds the data to the queue if it is not already there (block 760). Additionally, the control circuit determines whether there is an active PCIE wake-up timer already scheduled (i.e., running) (block 762). If the answer to block 762 is yes, the control circuit compares the timeout value associated with the current data with the buffer tolerance value (block 764). That is, whether the new data has a latency requirement that is shorter than the amount of time remaining on the currently running timer. If the answer is no, the data is simply accumulated with the previous data and transmitted along with the previous data. However, if the new data has a shorter latency (or there is no previous data from block 762), the control circuit schedules (or adjusts / reschedules) the timer to wake up the PCIE link (block 766).

[0030] Continuing to refer to FIG. 7B, upon timer timeout, a PCIE link wakeup is initiated (block 768), the PCIE link wakes up (block 758), and data is transmitted (block 754).

[0031] The end result of data accumulation according to an exemplary aspect of the present disclosure is presented as a graph 800 of link power versus time in FIG. 8 , where data is initially accumulated (e.g., queued) while the PCIE link remains in a low power state (e.g., L1.2) (overall time window 802). At time 804, a timer expires and the PCIE link wakes up to an active state beginning at time 806. While in the active state, all pending data is transferred. At time 808, the data completes transfer and, after a period of inactivity, the PCIE link transitions to a lower power state (e.g., L0s). After being idle until time 810, the PCIE link returns to low power state L1.2. A latency tolerance report (LTR) is reported and updated.

[0032] LTR is defined and detailed in section 6.18 of the PCIE standard: "The LTR mechanism allows Endpoints to report their service latency requirements for memory reads and writes to the Root Complex so that power management policies for central platform resources (such as main memory, RC internal interconnect, and snoop resources) can be implemented to take into account Endpoint service requirements."

[0033] Exemplary aspects of the present disclosure enable a PCIE endpoint (e.g., device 500) to send an LTR message to a host or root complex (e.g., host 600) according to several guidelines. In particular, the acceptable latency indicated by the LTR message from the PCIE endpoint is the lowest acceptable latency value associated with all PCIE MHI channels or services. The latency value in exemplary aspects may generally be between tens and hundreds of milliseconds per MHI channel. Conversely, the threshold for a low power state (e.g., the L1.2 threshold) may be hundreds of microseconds. Thus, it is sufficient for the PCIE link to enter low power mode L1.2 when CLKREQ# is deasserted. In exemplary aspects, the LTR message may be sent after all data transfers to the root complex are completed. Alternatively, the LTR message may be sent at power-on initialization. Sending after the data transfer may be appropriate if there is a change to the lowest acceptable latency value for the MHI channel.

[0034] In response to the LTR report, the host 600 may schedule an appropriate timer for waking up the MHI transport. In particular, the timeout setting needs to be no longer than the LTR value reported by the endpoint to help ensure that all endpoint service latency constraints are met.

[0035] Power saving techniques in computing devices via communication bus control according to aspects disclosed herein may be provided within or incorporated into any processor-based device, including, but not limited to, set-top boxes, entertainment units, navigation devices, communication devices, fixed location data units, mobile location data units, global positioning system (GPS) devices, mobile phones, cellular phones, smartphones, session initiation protocol (SIP) phones, tablets, phablets, servers, computers, portable computers, mobile computing devices, wearable computing devices (e.g., smart watches, health or fitness trackers, eyewear, etc.), desktop computers, personal digital assistants (PDAs), monitors, computer monitors, televisions, tuners, radios, satellite radios, music players, digital music players, portable music players, digital video players, video players, digital video disc (DVD) players, portable digital video players, automobiles, vehicle components, avionics systems, drones, and multicopters.

[0036] 9 is a system-level block diagram of an exemplary mobile terminal 900, such as a smartphone, mobile computing device tablet, etc. While mobile terminals having a PCIE bus are particularly contemplated as being able to benefit from exemplary aspects of the present disclosure, it should be appreciated that the present disclosure is not so limited and may be useful in any system having an interconnect bus.

[0037] 9 , the mobile terminal 900 includes an application processor 904 (sometimes referred to as a host) that communicates with a mass storage element 906 through a universal flash storage (UFS) bus 908. The application processor 904 may be further connected to a display 910 through a display serial interface (DSI) bus 912 and to a camera 914 through a camera serial interface (CSI) bus 916. Various audio elements, such as a microphone 918, a speaker 920, and an audio codec 922, may be coupled to the application processor 904 through a serial low-power interchip multimedia bus (SLIMbus) 924. Additionally, the audio elements may communicate with each other through a SOUNDWIRE bus 926. A modem 928 may also be coupled to the SLIMbus 924 and / or the SOUNDWIRE bus 926. The modem 928 may further be connected to the application processor 904 through a PCI or PCIE bus 930 and / or a system power management interface (SPMI) bus 932.

[0038] 9 , the SPMI bus 932 may also be coupled to a local area network (LAN or WLAN) IC (LAN IC or WLAN IC) 934, a power management integrated circuit (PMIC) 936, a companion IC (sometimes referred to as a bridge chip) 938, and a radio frequency IC (RFIC) 940. It should be appreciated that separate PCI buses 942 and 944 may also couple the application processor 904 to the companion IC 938 and the WLAN IC 934. The application processor 904 may be further connected to sensors 946 through a sensor bus 948. The modem 928 and the RFIC 940 may communicate using a bus 950.

[0039] 9, RFIC 940 may couple to one or more RFFE elements, such as antenna tuner 952, switch 954, and power amplifier 956, through a radio frequency front end (RFFE) bus 958. Additionally, RFIC 940 may couple to envelope tracking power supply (ETPS) 960 through bus 962, which may communicate with power amplifier 956. Collectively, the RFFE elements including RFIC 940 may be considered to be an RFFE system 964. It should be appreciated that RFFE bus 958 may be formed from clock and data lines (not shown).

[0040] Those skilled in the art will further appreciate that the various illustrative logic blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or a combination of both. The devices described herein may be utilized in circuits, hardware components, ICs, or IC chips, by way of example. The memories disclosed herein may be of any type and size and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented will depend on the particular application, design choices, and / or design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

[0041] The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed using a processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).

[0042] Aspects disclosed herein may be embodied in hardware and in instructions stored within the hardware, which may reside in, for example, a random access memory (RAM), flash memory, read-only memory (ROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. Alternatively, the processor and the storage medium may reside as discrete components in a remote station, a base station, or a server.

[0043] It should also be noted that the operational steps described in any of the exemplary aspects herein are set forth for purposes of illustration and description. The described operations may be performed in many different sequences other than the sequence shown. Furthermore, an operation described in a single operational step may actually be performed in several different steps. Furthermore, one or more operational steps described in an exemplary aspect may be combined. It should be understood that the operational steps shown in the flowcharts may be subject to numerous different variations, as will be readily apparent to those skilled in the art. Those skilled in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0044] The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other examples. Thus, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. [Explanation of symbols]

[0045] 100 computing devices 102 Network 104 Case 106 monitors 108 keyboards 110 Mouse 120 mobile devices 122 Remote Antenna 124 Base Station (BS) 126 Public Land Mobile Network (PLMN) 130 Antenna 132 Mobile Device Modem (MDM) 134 Application Processors 136 Interconnect Bus 138 Receiver Path 140 Transmitter Path 142 Switch 144 Modem Processor 146 User Interface 148 memory 150 Software 200 Upper Layer Protocol 202A Special Purpose Software 202B Special Purpose Software 204 Modem Host Interface (MHI) Protocol Layer 206A Driver 206B Driver 208 PCIE specific protocol layer 210 Root Complex Driver 212 Endpoint Driver 214 Bus Interface 216 bus interface 300A Link Power vs. Time Graph 300B Link Power vs. Time Graph 302 Downlink Data 304 Uplink Data 306 time slots 308 Transition 310 Second Transition 350 BIOS channels 352 MHI Channel 354 Network Traffic Channel 356 Control Channel 358 Transition 400 Computing Environments 402 Host 404 Device 406 Device 408 Switch 410 PCIE Root Complex (RC) 412 PCIE bus 414 PCIE bus 500 devices 502 memory elements 504 Control circuit 506 PCIE hardware elements 508 Physical layer (PHY) 510 System Bus 512 registers 514 Timer 600 hosts 602 Application Processor 604 memory elements 606 Operating Systems 608 System Bus 610 PCIE Hardware (HW) or PCIE RC 612 PHY 614 registers 616 Timer Graph of link power vs. 800 time 802 time windows 804 hours 806 hours 808 hours 810 hours 900 mobile devices 904 Application Processor 906 Mass Storage Elements 908 Universal Flash Storage (UFS) Bus 910 Display 912 Display Serial Interface (DSI) bus 914 Camera 916 Camera Serial Interface (CSI) bus 918 Microphone 920 speaker 922 Audio Codec 924 Serial Low-Power Inter-Chip Multimedia Bus (SLIMbus) 926 SOUNDWIRE Bus 928 modem 930 PCI or PCI bus 932 System Power Management Interface (SPMI) bus 934 Local Area Network (LAN or WLAN) IC (LAN IC or WLAN IC) 936 Power Management Integrated Circuit (PMIC) 938 Companion IC 940 Radio Frequency IC (RFIC) 942 PCI bus 944 PCI bus 946 Sensors 948 Sensor Bus 950 Bus 952 Antenna Tuner 954 Switch 956 Power Amplifier 958 Radio Frequency Front End (RFFE) Bus 960 Envelope Tracking Power Supply (ETPS) 962 Bus 964 RFFE System

Claims

1. A timer and at least one data source circuit; an interconnect bus interface; a control circuit, the control circuit comprising: receiving an indication that the at least one data source circuit has data or commands to send to a second IC; initiating the timer in response to receiving the indication from the at least one data source circuit; accumulating data across multiple channels until expiration of said timer; transmitting the accumulated data to the second IC via the interconnect bus interface upon the expiration of the timer; selecting an amount of time for the timer based on a first latency requirement associated with a channel associated with the at least one data source circuit; An integrated circuit (IC) configured to:

2. 10. The IC of claim 1, wherein the IC includes a modem and the second IC includes an application processor.

3. The IC of claim 2 , wherein the at least one data source circuit includes a wireless transceiver.

4. 10. The IC of claim 1, wherein the IC includes an application processor and the second IC includes a modem.

5. 10. The IC of claim 1, wherein the interconnect bus interface comprises a Peripheral Component Interconnect (PCI) Express (PCIE) bus interface.

6. 10. The IC of claim 1, wherein the at least one data source circuit comprises one of a BIOS circuit, a modem hardware interface (MHI) circuit, or a packet creation circuit.

7. 10. The IC of claim 1, wherein the plurality of channels includes at least two of a control channel, an MHI control channel, a BIOS channel, and a network traffic channel.

8. 10. The IC of claim 1, further comprising a buffer, wherein the control circuitry is configured to transmit the accumulated data in response to the buffer becoming full.

9. The IC of claim 1 , wherein the control circuitry is configured to turn off the timer after transmitting the accumulated data.

10. The control circuit receiving a second indication that a second data source circuit has second data for transmission to the second IC, the second data having a second latency requirement that is shorter than the first latency requirement; and adjusting the timer based on the second latency requirement.

11. 10. The IC of claim 1, wherein the control circuitry is configured to initiate the timer having a timer duration that exceeds a single time slot of any of the multiple channels.

12. The control circuit calculating a latency tolerance report (LTR) based on the lowest acceptable latency value; and transmitting an LTR update to the second IC.

13. The IC of claim 1 , wherein the control circuitry is further configured to receive second data from the second IC during or after transmitting the stored data.

14. 10. The IC of claim 1 incorporated into a device selected from the group consisting of a set-top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smartphone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device, a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, an avionics system, a drone, and a multicopter.

15. an interconnect bus; a first integrated circuit (IC), First timer, at least one first data source circuit; a first interconnect bus interface coupled to the interconnect bus; and a first control circuit, the first control circuit comprising: receiving an indication that the at least one first data source circuit has first data for transmission to a second IC; initiating the first timer in response to receiving the indication from the at least one first data source circuit; accumulating data across a plurality of channels until expiration of the first timer; transmitting the accumulated data to the second IC via the first interconnect bus interface upon the expiration of the first timer; selecting an amount of time for the first timer based on a first latency requirement associated with a channel associated with the at least one first data source circuit; a first integrated circuit (IC) configured to: and the second IC, wherein the second IC comprises: a second interconnect bus interface coupled to the interconnect bus; and a second control circuit, the second control circuit comprising: receiving the stored data; and and a communication system configured to initiate transmitting second data to the first IC in response to first receiving the accumulated data.

16. 16. The communication system of claim 15, wherein the interconnect bus comprises a Peripheral Component Interconnect (PCI) Express (PCIE) bus.

17. 16. The communication system of claim 15, wherein the first IC includes a modem.

18. 20. The communication system of claim 17, wherein the second IC includes an application processor.

19. 16. The communication system of claim 15, wherein the first IC further includes a buffer, and the first control circuit is configured to transmit the accumulated data in response to the buffer becoming full.

20. 16. The communication system of claim 15, wherein the second IC further includes a second timer.

21. The second control circuit includes: receiving a second indication that there is second data to transmit to the first IC; starting the second timer upon receiving the second indication; 21. The communication system of claim 20, further configured to: upon the expiration of the second timer, transmit the second data to the first IC via the interconnect bus interface.

22. 16. The communication system of claim 15, wherein the second control circuitry is further configured to initiate transmitting additional data to a plurality of other ICs in response to initially receiving the accumulated data.

23. The first control circuit includes: calculating a latency tolerance report (LTR) based on the lowest acceptable latency value; 16. The communication system of claim 15, further configured to:

24. 24. The communication system of claim 23, wherein the first control circuitry is configured to transmit the LTR update after transmitting the accumulated data.

25. 24. The communication system of claim 23, wherein the second control circuitry is configured to set the first timer based on the LTR update.

26. 1. A method for controlling an interconnect bus, comprising: receiving an indication that at least one first data source circuit has first data for transmission over the interconnect bus to a remote integrated circuit (IC); initiating a first timer in response to receiving the indication from the at least one first data source circuit; accumulating data across multiple channels until expiration of the first timer; transmitting the accumulated data to the remote IC via an interconnect bus interface upon the expiration of the first timer; selecting an amount of time for the first timer based on a first latency requirement associated with a channel associated with the at least one first data source circuit; A method comprising:

Citation Information

Patent Citations

  • Plant controller

    JP2002157216A

  • Method, apparatus, and system for delaying packets during the execution period of a network-driven wake-up operation on a computing device.

    JP2015517254A

  • Power Saving Techniques in Computing Devices

    JP2017502400A

  • Mechanism to save system power using packet filtering by network interface

    US20130019042A1