EP2984810A1 - Energy efficient data handling for mobile devices - Google Patents

Energy efficient data handling for mobile devices

Info

Publication number
EP2984810A1
EP2984810A1 EP13881886.9A EP13881886A EP2984810A1 EP 2984810 A1 EP2984810 A1 EP 2984810A1 EP 13881886 A EP13881886 A EP 13881886A EP 2984810 A1 EP2984810 A1 EP 2984810A1
Authority
EP
European Patent Office
Prior art keywords
data
mobile device
event
persistent memory
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP13881886.9A
Other languages
German (de)
French (fr)
Other versions
EP2984810B1 (en
EP2984810A4 (en
Inventor
Yunxin Liu
Thomas Moscibroda
Ranveer Chandra
Yongguang Zhang
Fengyuan XU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of EP2984810A1 publication Critical patent/EP2984810A1/en
Publication of EP2984810A4 publication Critical patent/EP2984810A4/en
Application granted granted Critical
Publication of EP2984810B1 publication Critical patent/EP2984810B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • H04W52/0216Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave using a pre-established activity schedule, e.g. traffic indication frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • H04W52/0229Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal where the received signal is a wanted signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • a mobile device may be pre-configured with data communications applications (e.g., voice and messaging) and/or a user of the mobile device may initiate the installation of additional data communications applications such as an email client or other types of messaging clients.
  • data communications applications may be configured to receive data from network servers, process the data, and store the data on the mobile device for immediate or future user access.
  • the data may include, but is not limited to, emails, instant messages, social application messages or notifications, gaming messages or notifications, short messages, and/or other data.
  • a mobile device includes a data network interface to receive the data and an operating system to help process the data.
  • the mobile device consumes a significant amount of energy, which may drain power from a battery of the mobile device.
  • existing mobile devices couple data processing with data reception. This unnecessarily delays the mobile device from being able to place the data network interface in a lower energy consumption state after receiving data.
  • existing mobile devices fail to optimize memory management, and thus, the operating system of the mobile device operates in a high energy consumption state for longer periods of times when processing and storing received data.
  • the techniques described herein reduce a rate at which a mobile device consumes energy when receiving, processing and storing data events (e.g., emails, instant messages, social networking messages and notifications, etc.).
  • data events e.g., emails, instant messages, social networking messages and notifications, etc.
  • the techniques may be implemented in accordance with a connected standby mode of operation for the mobile device. Therefore, the techniques may decouple data reception from data processing when exchanging data events in the connected standby mode.
  • the techniques may store persistent memory operations for multiple data events in a temporary cache and process the stored persistent memory operations as a batch (e.g., perform the persistent memory operations together).
  • the techniques may partition data storage space allocated for data communications applications on the mobile device.
  • FIG. 1 illustrates an example overview of a mobile device configured with a module to handle data events in an energy-efficient manner, in accordance with various embodiments.
  • FIG. 2 illustrates additional modules to handle data events in an energy-efficient manner, in accordance with various embodiments.
  • FIG. 3 illustrates a timing diagram showing the handling of multiple data events by a mobile device that decouples data reception from data processing, in accordance with various embodiments.
  • FIG. 4. illustrates an example process that decouples data reception from data processing, in accordance with various embodiments.
  • FIG. 5 illustrates an example process that batch processes persistent memory operations for multiple data events, in accordance with various embodiments.
  • FIG. 6 illustrates an example process that separates the storage of data events between a small partition and a large partition, in accordance with various embodiments.
  • data received and processed by a mobile device may be associated with emails, instant messages, social application messages or notifications, gaming messages or notifications, short messages, and/or any other data messages or notifications that may be communicated to a mobile device.
  • Each instance of data exchanged between a data server and the mobile device may be referred to as a data event (e.g., an individual email, an individual message, an individual notification, a portion of an email, etc.).
  • the mobile device may begin to receive and process a data event after determining that data is ready to be communicated or downloaded from a network server to a mobile device (e.g., upon the receipt of a push notification, a pull event, polling a data server, etc.).
  • the mobile devices As mobile devices continue to evolve, the users of the mobile devices become more dependable on mobile device functionality. Thus, the timely exchange of data is important. For example, a user of a mobile device may rely on an email client to sync with an email exchange server to receive important messages related to work or employment. In another example, a user of a mobile device may enjoy using a social networking application to receive messages and notifications (e.g., message board posts, check-ins, personal messages, etc.). To preserve energy, the mobile device may be configured to operate in a connected standby mode.
  • the connected standby mode is an operating mode of the mobile device where a user is not interacting with the mobile device (e.g., not making a phone call, not typing a message, not browsing information, not playing a game).
  • the display screen and other mobile device functionality that generally consumes large amounts of energy may be turned off in the connected standby mode, yet the mobile device is still able to receive and process a data event in the background.
  • the mobile device is configured to maintain a persistent connection, such as a Transmission Control Protocol (TCP) connection, to a data network in the connected standby mode.
  • a persistent connection such as a Transmission Control Protocol (TCP) connection
  • the connected standby mode has a low energy consumption state and a high energy consumption state.
  • the mobile device places the data network interface in a sleep state with limited functionality.
  • the data network interface is able to receive various incoming data events (e.g., a "push" notification from a network server) when sleeping in the low energy consumption state of the connected standby mode.
  • incoming data events e.g., a "push" notification from a network server
  • the more functional data reception and processing mode is the higher energy consumption state of the connected standby mode because the data network interface is fully activated to receive data associated with the data event and the data network interface wakes up the operating system so that the data can be processed in the background even though the user is still not actively interacting or using the mobile device (e.g., the display screen is still turned off).
  • the mobile device may automatically wake up the operating system, using a pre-defmed timer, so that the operating system can instruct the data network interface to poll a network server to determine if a data event is ready to be communicated (e.g., a "pull" event) while the mobile device is operating in the low energy consumption state of the connected standby mode.
  • a data event e.g., a "pull" event
  • the techniques discussed herein preserve energy of the mobile device, or reduce the energy consumption rate of the mobile device, by decoupling data processing from data reception on the mobile device when the mobile device is operating in the connected standby mode.
  • data reception and data processing on a mobile device are coupled to one another when the mobile device is operating in the connected standby mode.
  • the mobile device receives first data (e.g., a first data event), processes the first data, and then sends a processing acknowledgment indicating successful completion of the data processing to a network server before the mobile device can begin receiving and processing the next data event.
  • the data network interface may unnecessarily be operating in the high energy consumption state of the connected standby mode even though network communications may be idle (e.g., the network data interface is not transmitting or receiving data), thereby wasting energy of a power supply operating the mobile device.
  • the mobile device may complete the network transfer after receiving all data without waiting for the data event to be fully processed and completed.
  • the mobile device may be configured to terminate the maintenance of active network connectivity immediately after downloading all relevant data, and the mobile device may keep the "unprocessed" data for later processing, after the network connection is terminated and the data network interface is placed in the low energy consumption state (e.g., the sleep state) of the connected standby mode. Then the operating system of the mobile device may complete the processing of the unprocessed data when the data network interface is operating in the sleep state.
  • This scenario improves energy efficiency of the mobile device because the data network interface is not operating in the high energy consumption state of the connected standby mode when it is not exchanging data.
  • the techniques preserve energy of the power supply operating the mobile device by temporarily storing persistent memory operations (e.g., flash disk writes) associated with data events that have been received and processed while the mobile device is operating in the connected standby mode, and then performing the persistent memory operations together at a later time (e.g., batch processing).
  • persistent memory operations e.g., flash disk writes
  • Data communications applications on existing mobile devices typically write data to persistent memory immediately after each individual data event is received and processed. That is, the existing mobile devices typically perform a write for a data event regardless of the amount of data to write (e.g., even when the write is associated with a small amount of data such as an email header and limited textual content of an email body).
  • the techniques discussed herein may temporarily store persistent memory operations and the data involved in the persistent memory operations in a cache until a trigger provides an indication to perform the persistent memory operations (e.g., commit or flush the writes to persistent memory as a group).
  • the trigger may be associated with a pre-defined data threshold (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes, etc.), a predetermined number of persistent memory operations (e.g., ten disk writes), or the trigger may identify other power consuming activities being performed on the mobile device and piggyback the batch processing of the persistent memory operations with the other activities. Accordingly, the techniques may perform the persistent memory operations for multiple data events together, thereby conserving energy of the power supply operating the mobile device. [0019] In various embodiments, the techniques preserve energy of a power supply operating the mobile device by partitioning data storage space allocated to a particular application or other communications functionality.
  • a pre-defined data threshold e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes, etc.
  • a predetermined number of persistent memory operations e.g., ten disk writes
  • the amount of data processing required to handle data events for a particular application depends on a size of the data storage space (e.g., an email inbox). For example, a mobile device may expend more energy, due to a longer processing time, storing data events in a larger email inbox (e.g., 10,000 emails) compared to a smaller email inbox (e.g., 200 emails).
  • a larger email inbox e.g. 10,000 emails
  • a smaller email inbox e.g. 200 emails.
  • One reason for this is because the operating system and application executing on the mobile device may have to analyze, search, and/or update a large amount of metadata for the data events stored (e.g., thread or conversation matching, organizational information, timing information, word searching, etc.).
  • the data network interface may be in a high energy consumption state of the connected standby mode even though no data is being exchanged on the network while the metadata is being analyzed, searched, and/or updated.
  • the techniques discussed herein mitigate this problem by enabling faster processing of data events and searching of data events by partitioning the data storage space into a small partition area for recently received data events and a large partition area for older data events.
  • the techniques discussed herein are able to reduce a rate at which a mobile device consumes energy when receiving and processing data events in the connected standby mode by decoupling the data reception from the data processing, batch processing persistent memory operations, and/or partitioning data storage space allocated for data communications applications on the mobile device (e.g., email applications, social networking applications, etc.).
  • FIG. 1 illustrates an example environment 100 where a mobile device 102 may exchange data events 104 with one or more data servers 106 (e.g., Web servers, data servers, email servers, game servers, social network servers, cloud servers, file transfer servers, etc.) over a mobile telephone network (MTN) 108.
  • data servers 106 e.g., Web servers, data servers, email servers, game servers, social network servers, cloud servers, file transfer servers, etc.
  • MTN mobile telephone network
  • each data event 104 may include unprocessed data to be received by the mobile device 102 once a data network interface is woken up from a low energy consumption state of the connected standby mode (e.g., a sleep state).
  • a low energy consumption state of the connected standby mode e.g., a sleep state
  • the mobile device 102 may include, but is not limited to, smartphones, mobile phones, cell phones, tablet computers, portable computers, laptop computers, personal digital assistants (PDAs), electronic book devices, gaming consoles, personal media player devices, or any other portable electronic devices that may exchange (e.g., receive and/or transmit) data over the MTN 108.
  • PDAs personal digital assistants
  • electronic book devices gaming consoles
  • personal media player devices or any other portable electronic devices that may exchange (e.g., receive and/or transmit) data over the MTN 108.
  • the mobile device 102 may comprise one or more processors 1 10 and memory 1 12.
  • the memory 1 12 may include an operating system 1 14 and an energy saving data exchange module 1 16.
  • the operating system 1 14 may include any known mobile operating system configured to operate the mobile device 102.
  • the energy saving data exchange module 1 16 is configured to efficiently handle the data events 104 for data communications applications on the mobile device 102 when the mobile device 102 is operating in the connected standby mode.
  • the data communications applications pre- configured on the mobile device and/or installed on the mobile device 102 may include email applications 1 18, instant messaging applications 120, social networking applications 122, gaming applications 124, and/or other data exchange applications configured to receive and/or store the data events 104 received from the data servers 106.
  • the mobile device 102 may also comprise a user interface 126 to display the data to a user associated with the mobile device 102 and functionality to receive input from the user (e.g., touch input, buttons, keys, microphones, sensors, etc.), a data network interface 128 configured to receive data from data servers 106 and/or transmit data to data servers 106, and a power supply unit 130.
  • the power supply unit 130 may be a battery or any other rechargeable power source that can be depleted during operation of the mobile device 102.
  • the processor(s) 1 10 may be a single processing unit or a number of units, all of which could include multiple computing units.
  • the processor(s) 1 10 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, system on chip (SoC), and/or any other devices that manipulate signals based on operational instructions.
  • the processors 1 10 may be configured to fetch and execute computer-readable instructions stored in the memory 1 12.
  • the memory 1 12 may comprise computer-readable media.
  • “computer-readable media” includes computer storage media and communication media.
  • Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
  • Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store information for access by a computing device.
  • communication media may embody computer- readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave.
  • computer storage media does not include communication media.
  • the MTN 108 may be configured to implement one or more of the second, third, and fourth generation (2G, 3G, and 4G) cellular-wireless access technologies, which may be cross-compatible and may operate collectively to provide data communication services.
  • Global Systems for Mobile (GSM) is an example of 2G telecommunications technologies
  • Universal Mobile Telecommunications System (UMTS) is an example of 3G telecommunications technologies
  • Long Term Evolution (LTE), including LTE Advanced is an example of 4G telecommunications technologies.
  • the infrastructure that makes up the MTN 108 may comprise multiple different components or devices (also referred to as nodes) that are configured to generate, transmit, receive, relay, and/or route data so that data services can be requested by, and provided to, the mobile device 102.
  • the mobile device 102 may be subscribed to a data plan offered by one or more service providers or network communication providers that implement the telecommunications networks.
  • Different types of MTN nodes in the GSM, UMTS, LTE, LTE Advanced, and/or HSPA+ telecommunications technologies may include, but are not limited to, a combination of: base transceiver stations BTSs (e.g., NodeBs, Enhanced-NodeBs), Radio Network Controllers (RNCs), serving GPRS support nodes (SGSNs), gateway GPRS support nodes (GGSNs), proxies, a mobile switching center (MSC), a mobility management entity (MME), a serving gateway (SGW), a packet data network (PDN) gateway (PGW), an evolved packet data gateway (e-PDG), or any other data traffic control entity configured to communicate and/or route data packets between the client device 102 and the data servers 106.
  • BTSs e.g., NodeBs, Enhanced-NodeBs
  • FIG. 1 illustrates an MTN 108
  • the techniques discussed herein may be implemented in other networking technologies, such as a wide area network (WAN), metropolitan area network (MAN), local area network (LAN), neighborhood area network (NAN), personal area network (PAN), or the like.
  • FIG. 2 further illustrates modules and components associated with the energy saving data exchange module 1 16 that may implement the techniques described herein.
  • the energy saving data exchange module 1 16 may include logic and instructions to handle data events in an energy-efficient manner. Therefore, the modules and components associated with the energy saving data exchange module 1 16 illustrated in FIG. 2 may be part of a separate module configured to handle data events for the various communications applications in FIG.
  • the energy saving data exchange module includes
  • the data event reception batching module 202 is configured to batch (e.g., hold, store, maintain, etc.) the unprocessed data for multiple data events together. That is, the data event reception batching module 202 may receive unprocessed data for subsequent data events received at the mobile device 102 even though processing of a first data event may not be completed. For example, the data event reception batching module 202 may batch multiple different emails received by the data network interface 128 from an exchange server, before the operating system 1 14 and an email application 1 18 complete processing the unprocessed data for the individual data events.
  • the data event reception batching module 202 may batch multiple different data events received by the data network interface 128 before the operating system 1 14 and an email application 1 18 begin processing the unprocessed data for the individual data events (e.g., temporarily stores the unprocessed data until the operating system 1 14 and an email application 1 18 begins batch processing the data events).
  • Some network protocols used to exchange data events may require that the mobile device 102 send a notification, e.g., to an exchange server, that a first data event (e.g., the first unprocessed data) has successfully been processed before the exchange server transmits a second data event. That is, network protocols used to exchange data events may depend on a result of the data processing before data reception can resume, and this may present an obstacle for the data event reception batching module 202 when batching multiple data events.
  • an email exchange server may require an email client to indicate that processing of a previous email or previous portion of an email (e.g., the first data event) is finished and/or is successful before the email client can start receiving the next email or the next portion of the email (e.g., the second data event).
  • the energy saving data exchange module 1 16 may include a data event result predicting module 204.
  • the data event result predicting module 204 is configured to predict a result of the data processing of an individual data event.
  • a data event notification module 206 is configured to send an indication, to a corresponding data server 106, that the data network interface 128 of the mobile device 102 is ready to receive the next data event.
  • the indication may include the predicted result of the data event.
  • the data server 106 upon receiving the indication and/or the predicted result, may then begin to transmit the second data event and the data event reception batching module 202 can then batch unprocessed data for multiple events without waiting for processing of each data event to be completed.
  • network protocols may not require notification of successful processing results for data events.
  • the data event notification module 206 may be configured to send an indication to the data server that the data network interface 128 and the mobile device 102 have received the previous data event and are ready to receive the next data event. As discussed above, the data event notification module 206 sends the indication before processing of the previous data event is completed, or before processing of the previous data event has begun.
  • the energy saving data exchange module includes
  • the data event processing module 208 is configured to process the unprocessed data for the batched data events. In various embodiments, the data event processing module 208 may wait to process the batched data events until all the data events are received at the mobile device 102 (e.g., all emails or all portions of a large email have been pushed to the mobile device 102 by the data server 106 or pulled from the data server 106 by the mobile device 102). In other embodiments, the data event processing module 208 may begin processing the data events as they are received even though the reception of subsequent data events is not dependent upon, or coupled to, the completion of processing the previous data event.
  • the data event reception batching module 202, the data event result predicting module 204, the data event notification module 206, and the data event processing module 208 are further discussed herein with respect to FIG. 4.
  • the energy saving data exchange module includes
  • the persistent memory operation batching module 210 is configured to batch (e.g., temporarily store or hold) persistent memory operations, such as persistent memory writes, and data 212 in a non-persistent memory cache 214 until a trigger provides an indication to perform the batched persistent memory operations together (e.g., commit or flush the data to persistent memory as a batch).
  • a trigger provides an indication to perform the batched persistent memory operations together (e.g., commit or flush the data to persistent memory as a batch).
  • the email application 1 18 may batch the multiple small writes and the data together in the non-persistent memory cache 214, and then commit or flush the batch as a group to the persistent memory 216 at a later time.
  • Examples of persistent memory 216 may include flash-based or other solid-state storage devices, disks, or memory cards.
  • the trigger provides the indication to perform the batched persistent memory operations when a predefined data threshold is satisfied.
  • the predefined data threshold may be a number of writes (e.g., three, five, seven, ten, etc.) or a total amount of data to write (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes, etc.).
  • the trigger may provide the indication to perform the batched persistent memory operations when an application performs an automatic update of a data storage space (e.g., update an email inbox) or a user initiates an update of a data storage space by interacting with the application or requesting an update.
  • the persistent memory operation batching module 210 is able to conserve energy (e.g., extend the life of the power supply unit 130) because it is energy-efficient to batch persistent memory operations and data 212 in a non-persistent memory cache 214 instead of write individual data events to persistent memory 216 immediately after each data event is received and processed (which is time consuming and energy expensive).
  • the batching of persistent memory operations is particularly useful when an individual persistent memory operation involves a small amount of data to write (e.g., an email header and a small portion of text from the body of the email).
  • the persistent memory operation batching module 210 is further discussed herein with respect to FIG. 5.
  • the energy saving data exchange module includes
  • the 1 16 may include a data storage partitioning module 218.
  • the data storage partitioning module 218 is configured to separate data storage space allocated to an application into a small partition 220 and a large partition 222.
  • the data storage space is allocated to a particular communications application, such as those illustrated in FIG. 1, and the data storage space may be located in the persistent memory 216.
  • each application may have its own allocated data storage space (e.g., message or notification inbox).
  • an amount of energy used by the mobile device 102 to receive a data event or search for a data event increases significantly when an amount of allocated data storage space (e.g., an email inbox) has a large size.
  • an amount of allocated data storage space e.g., an email inbox
  • One reason the mobile device 102 uses more energy is because existing mobile devices are capable of storing a large number of emails (e.g., 10,000 emails), and it takes more time for the operating system and other device resources to update or search metadata information associated with the large number of emails.
  • an email client may search the entire email inbox to ensure that a recently received email is associated with the correct conversation thread or string of emails.
  • the mobile device 102 when the allocated data storage space stores a large amount of data (e.g., 10,000 emails), the mobile device 102 expends a large amount of energy to appropriately store new emails and update the metadata for the large data storage space. Moreover, when the allocated data storage space stores a large amount of data, the mobile device 102 may expend more energy when a user searches the email inbox for a particular email.
  • a large amount of data e.g. 10,000 emails
  • the mobile device 102 when the allocated data storage space stores a large amount of data, the mobile device 102 may expend more energy when a user searches the email inbox for a particular email.
  • the data storage partitioning module 218 uses a small partition 220 to store data events received within a predetermined time period (e.g., "recent" emails received in the last two days, last week, last two weeks, and so forth) and a large partition 222 to store the older data events that are not received in the predetermined time period.
  • a predetermined time period e.g., "recent" emails received in the last two days, last week, last two weeks, and so forth
  • a large partition 222 to store the older data events that are not received in the predetermined time period.
  • the data storage partitioning module 218 may use the small partition 220 to store a threshold number of more recent data events (e.g., the fifty most recent emails).
  • the data storage partitioning module 218 uses the small partition 220 to handle data events recently received.
  • an email application 1 18 may insert a just received email into the small partition 220 and update the metadata in the small partition 220 without having to update the metadata associated with the older emails stored in the large partition 222.
  • the mobile device 102 can preserve energy even if the mobile device 102 is configured to store a large number of emails (e.g., 10,000 emails).
  • the partitioning of the data storage space provides an efficient way of preserving energy because users are more likely to use the mobile device 102 to access (e.g., read) recently received data events. Therefore, the mobile device 102 may not need to update the metadata for the older data events as often. If a user desires to access an older data event (e.g., search an email inbox for an older email), the applications on the mobile device 102 can search both the small partition 220 and the large partition 222 and return the combined results. Moreover, the data storage partition module 218 may determine or identify an opportunity (e.g., a time) to move data events in the small partition 220 to the large partition 222 and update the metadata accordingly. As users typically access (e.g., search for) older data events less frequently than recently received data events, the data partitioning is able to preserve energy of the power supply unit 130.
  • an opportunity e.g., a time
  • the data storage partitioning module 218 is further discussed herein with respect to FIG. 6.
  • the data server 106 may then begin sending a second data event.
  • a notification e.g., a processing acknowledgement or a PING packet
  • This process may be repeated for additional data events ready to be communicated from the data server 106 to the existing mobile device.
  • the data network interface on an existing mobile device unnecessarily operates in a high energy consumption state and consumes large amounts of energy even when network communications are idle, and this amount of time increases as a number of data events to be communicated from the data server 106 to the mobile device increases.
  • the data network interface may be configured to remain in the high energy consumption state during network idles times because the data network interface is configured to operate in accordance with a tail stage (e.g., 3G tail timer) to reduce or avoid network latency associated with an amount of time it takes to wake the data network interface up from a sleep state to begin receiving data.
  • a tail stage e.g., 3G tail timer
  • FIG. 3 illustrates an example timing diagram 300 of how the mobile device 102 configured with the energy saving data exchange module 1 16 discussed herein receives and processes multiple data events 104 in the connected standby mode. Moreover, FIG. 3 illustrates how decoupling the data processing from data reception allows the mobile device 102 to place the data network interface 128 in the low energy consumption state (e.g., sleep state) more quickly, and thus, eliminate some of the network idle times when the data network interface is unnecessarily operating in the high energy consumption state.
  • the low energy consumption state e.g., sleep state
  • the mobile device 102 and the data server 106 may determine that there is at least one data event to be exchanged 302.
  • the determination of data events to be exchanged 302 may involve, a push notification sent from the data server 106 to the mobile device 102, a pull request sent from the mobile device 102 to the data server 106 (e.g., an email sync request), Secure Sockets Layer (SSL) and/or TCP handshaking, or any other communications protocol to establish a connection or identify an existing connection.
  • SSL Secure Sockets Layer
  • a second time period tj to the mobile device 102 may fully activate the data network interface 128 and receive a first data event 304 or fetch the first data event, and conversely, the data server 106 sends the first data event 306.
  • the mobile device 102 sends a next data indication 308 to the data server 106 so that the data server 106 knows the mobile device 102 is ready to receive the next data event even though the first data event may not yet be completely processed at the mobile device 102.
  • the data server 106 can immediately begin sending the second data event 310 to the mobile device 102, and conversely, the mobile device 102 receives the second data event 312 and then sends another next data indication 314 after receiving the second data event. If the second data event is the last data event waiting to be communicated, the mobile device 102 can place the data network interface 128 into the sleep state, as illustrated (e.g., switch from the high energy consumption state of the connected standby mode to the low energy consumptions state of the connected standby mode). After placing the data network interface 128 in the sleep state, the mobile device 102 works to complete the processing of the multiple data events 316 during a fourth time period t 3 to t 4 .
  • next data indications in FIG. 3 may communicate an indication that the mobile device 102 is ready to receive next data event.
  • the indication may include a predicted processing result, as discussed above.
  • the operating system 1 14, the various applications illustrated in FIG. 1, and/or the modules and components associated with the energy saving data exchange module 1 16 may communicate using remote procedure calls (RPCs), e.g., to process, store and manage a data event.
  • RPCs remote procedure calls
  • FIGS. 4-6 The processes are illustrated as logical flow graphs, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof.
  • the operations represent computer-executable instructions that, when executed by one or more processors, perform the recited operations.
  • computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types.
  • the order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes.
  • the example operations in FIGS. 4-6 may be described with reference to the features and/or elements illustrated in FIGS. 1-3.
  • FIG. 4 illustrates an example process 400 that decouples data reception from data processing in the connected standby mode.
  • the mobile device 102 determines that data is ready or waiting to be exchanged for one or more of the various communications applications configured or installed on the mobile device 102. For example, the determination may be made in response to a push notification received from a data server 106, a periodic email sync request (e.g., a pull request), a user initiated email sync request, and so forth.
  • a push notification received from a data server 106
  • a periodic email sync request e.g., a pull request
  • a user initiated email sync request e.g., a user initiated email sync request
  • the mobile device 102 wakes up the data network interface 128 and/or the operating system 1 14 from the sleep state. To this end, the mobile device 102 is activated to a functional state capable of receiving and processing data events 104.
  • the data network interface 128 and/or a communications application establish or identify a connection for exchanging the data with the data server.
  • the data network interface 128 and/or a communications application may implement a particular data communications protocol directed to securing a connection for the transfer of the data event 104.
  • the data network interface 128 and the data event reception batching module 202 begin receiving a data event (e.g., unprocessed data of an email).
  • a data event e.g., unprocessed data of an email.
  • the data event may be an email, a first portion of an email, an instant message, a social networking message or notification, a gaming message or notification, and so forth.
  • the data event reception batching module 202 batches (e.g., temporarily stores, holds, maintains, etc.) the unprocessed data as the data event is received or after the data event is received.
  • the operating system 1 14 and the communications application may begin actual processing of the unprocessed data at this time.
  • the reception of the next data event is not dependent upon, or coupled to, the successful completion of the processing of the unprocessed data.
  • the data event reception batching module 202 may batch the unprocessed data until all data events ready to be communicated by the data server 106 have been received at the mobile device 102. Then, the actual processing of the batched unprocessed data (e.g., associated with one or multiple data events) may begin.
  • the data event notification module 206 may send the indication immediately after the first data event is received and the unprocessed data for the first data event is batched. Thus, the mobile device 102 does not have to wait for the processing of the first data event to be completed before it begins to receive the next data event.
  • the mobile device 102 may poll the data server after receiving each data event to determine if another data event is waiting to be communicated. In yet another implementation, the mobile device 102 may determine that no additional data events are to be communicated after a predetermined amount of time expires and there are no additional data events communicated by the data server 106. [0063] If the answer to block 416 is "No", the process moves to block 418 where the mobile device 102 places the data network interface 128 into the sleep state because there is no more data to be exchanged with the data server 106 (e.g., the mobile device switches from the high energy consumption state of the connected standby mode to the low energy consumption state of the connected standby mode).
  • the techniques discussed herein implement an approach that decouples data processing from data reception so that the mobile device 102 can place the data network interface 128 in the sleep state faster and energy can be preserved.
  • the data event processing module 208 may complete processing of the batched data events (e.g., batch process the unprocessed data of multiple data events). As mentioned above, in some implementations, the processing of the batched data events may begin while the data network interface 128 is still receiving subsequent data events, but the processing may not be completed. In alternative implementations, the processing of the batched data events begins after all the data events are received and batched.
  • the example process 400 may be executed on the mobile device 102 each time data events for a communications application on the mobile device 102 are queued at a corresponding data server 106, and ready to be transmitted by the corresponding data server 106 to the mobile device 102 while the mobile device is operating in the connected standby mode.
  • FIG. 5 illustrates an example process 500 that batches (e.g., temporarily stores, holds, or maintains) persistent memory operations for multiple data events.
  • the persistent memory operations are persistent memory writes that occur after a data event is received and/or processed in the connected standby mode with respect to FIG. 4.
  • performing individual persistent memory writes for each data event consumes a significant amount of energy (e.g., processor and operating system use).
  • the example process 500 conserves energy by batching multiple writes, and then committing or flushing them to persistent memory in a single operation at a later time.
  • a persistent memory operation associated with a data event determines that a persistent memory operation associated with a data event is ready to be performed. For example, an email message may have been received and processed at the mobile device, as discussed above with respect to FIG. 4. Thus, the email message may be ready to write to persistent memory 216 (e.g., to be stored by the mobile device 102).
  • non-persistent memory cache 214 e.g., a temporary cache, etc.
  • the persistent memory operation batching module 210 determines whether a trigger to commit or flush the batched persistent memory operations and data to persistent memory is received.
  • the trigger may be a predefined data threshold (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes).
  • the trigger may be a predetermined number of persistent memory operations (e.g., ten writes for ten data events).
  • the trigger may by the identification or other power consuming activities being performed on the mobile device 102.
  • the persistent memory operation batching module 210 may perform the batched persistent memory operations when a user powers on, or interacts with, the mobile device 102 to access emails. Performing the persistent memory operations at the same time as such other activities may have no or very minimal impact on the baseline power consumption, as the mobile device 102 may already be in a high energy consumption state.
  • the persistent memory operation batching module 510 performs the batched persistent memory operations together (e.g., batch process multiple persistent memory writes). For example, the persistent memory operation batching module 510 may write multiple data events from the non-persistent memory cache 214 to persistent memory 216 together or as a group (e.g., commit or flush the batch).
  • FIG. 6 illustrates an example process 600 that separates the storage of data events between a small partition and a large partition.
  • the data events are stored after the data events are received and processed in the connected standby mode of FIG. 4, and/or in association with the memory operation batching as discussed with respect to FIG. 5.
  • the example process 600 conserves energy because a large amount of metadata does not need to be updated and/or searched.
  • the partitioning may apply to data events for multiple communications applications.
  • the data storage partitioning module 218 creates a small partition 220 and a large partition 222.
  • the small partition 220 and the large partition 222 are each storage space in persistent memory 216 that is allocated to, or associated with, a particular communications application or multiple communications applications.
  • the small partition 220 and the large partition 222 may comprise an email inbox or multiple email inboxes merged together, for example.
  • the data storage partitioning module 218 may create the small partition 220 and the large partition 222 by separating the data events based on a time when they were received at the mobile device 102 from the data server 106.
  • the small partition 220 is storage space for recent data events (e.g., recently received emails) and the large partition 222 is storage space for older data events.
  • the data storage partitioning module 218 may configure the small partition 220 to store a threshold number of data events (e.g., the twenty most recent emails, the fifty most recent emails, the one hundred most recent emails) or to store a threshold amount of data (e.g., 500 kilobytes for any number of recent data events). Accordingly, the large partition 222 may store the rest of the data events, which is likely a much larger amount of data events (e.g., 10,000 emails) compared to an amount of data events in the small partition 220.
  • a threshold number of data events e.g., the twenty most recent emails, the fifty most recent emails, the one hundred most recent emails
  • a threshold amount of data e.g. 500 kilobytes for any number of recent data events.
  • the large partition 222 may store the rest of the data events, which is likely a much larger amount of data events (e.g., 10,000 emails) compared to an amount of data events in the small partition 220.
  • the data storage partitioning module 218 receives an indication to store information for a new data event (e.g., a data event recently received at the mobile device 102).
  • the data storage partitioning module 218 stores the new data event in the small partition 220 and updates metadata information for the small partition 220 based on the new data event without having to access the large partition 222 and/or update the metadata information for the large partition 222.
  • Metadata information may include identification of a sender of a message, a size range of a message, flagged messages such as 'high' importance, whether or not there is an attachment, or any other information that may be used to organize or group data events in the partitions.
  • the mobile device 102 is able to preserve energy when storing a new data event because it does not have to deal with the large partition 222.
  • the data storage partitioning module 218 determines an opportunity to move data events in the small partition 220 to the large partition 222. For example, the data storage partitioning module 218 may periodically (e.g., each day, each week, etc.) move the data events in the small partition 220 to the large partition. In another example, the data storage partitioning module 218 may move data events when the user initiates a search for a data event on the mobile device 102.
  • the data storage partitioning module 218 updates the information (e.g., metadata, data events) in the large partition 222 with at least some of the data events in the small partition 220 after an opportunity is determined.
  • information e.g., metadata, data events

Abstract

The techniques described herein reduce a rate at which a mobile device consumes energy when receiving, processing and storing data events (e.g., emails, instant messages, social networking messages and notifications, etc.). In various embodiments, the techniques may be implemented in accordance with a connected standby mode of operation for the mobile device. Therefore, the techniques may decouple data reception from data processing when exchanging data events in the connected standby mode. In various embodiments, the techniques may store persistent memory operations for multiple data events in a temporary cache and process the stored persistent memory operations as a batch (e.g., perform the persistent memory operations together). In various embodiments, the techniques may partition data storage space allocated for data communications applications on the mobile device.

Description

ENERGY EFFICIENT DATA HANDLING FOR
MOBILE DEVICES
BACKGROUND
[0001] Today, mobile devices such as smartphones are used to exchange a large amount of data over networks. A mobile device may be pre-configured with data communications applications (e.g., voice and messaging) and/or a user of the mobile device may initiate the installation of additional data communications applications such as an email client or other types of messaging clients. Certain types of data communications applications may be configured to receive data from network servers, process the data, and store the data on the mobile device for immediate or future user access. The data may include, but is not limited to, emails, instant messages, social application messages or notifications, gaming messages or notifications, short messages, and/or other data.
[0002] However, existing mobile devices consume large amounts of energy to receive and process incoming data. A mobile device includes a data network interface to receive the data and an operating system to help process the data. When the data network interface and/or the operating system are working to receive and process the data, the mobile device consumes a significant amount of energy, which may drain power from a battery of the mobile device. For example, existing mobile devices couple data processing with data reception. This unnecessarily delays the mobile device from being able to place the data network interface in a lower energy consumption state after receiving data. In another example, existing mobile devices fail to optimize memory management, and thus, the operating system of the mobile device operates in a high energy consumption state for longer periods of times when processing and storing received data.
SUMMARY
[0003] The techniques described herein reduce a rate at which a mobile device consumes energy when receiving, processing and storing data events (e.g., emails, instant messages, social networking messages and notifications, etc.). In various embodiments, the techniques may be implemented in accordance with a connected standby mode of operation for the mobile device. Therefore, the techniques may decouple data reception from data processing when exchanging data events in the connected standby mode. In various embodiments, the techniques may store persistent memory operations for multiple data events in a temporary cache and process the stored persistent memory operations as a batch (e.g., perform the persistent memory operations together). In various embodiments, the techniques may partition data storage space allocated for data communications applications on the mobile device.
[0004] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The term "techniques," for instance, may refer to system(s), method(s), computer-readable instructions, algorithms, components, modules, and/or technique(s) as permitted by the context above and throughout the document.
BRIEF DESCRIPTION OF THE CONTENTS
[0005] The detailed description is presented with reference to accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
[0006] FIG. 1 illustrates an example overview of a mobile device configured with a module to handle data events in an energy-efficient manner, in accordance with various embodiments.
[0007] FIG. 2 illustrates additional modules to handle data events in an energy-efficient manner, in accordance with various embodiments.
[0008] FIG. 3 illustrates a timing diagram showing the handling of multiple data events by a mobile device that decouples data reception from data processing, in accordance with various embodiments.
[0009] FIG. 4. illustrates an example process that decouples data reception from data processing, in accordance with various embodiments. [0010] FIG. 5 illustrates an example process that batch processes persistent memory operations for multiple data events, in accordance with various embodiments.
[001 1] FIG. 6 illustrates an example process that separates the storage of data events between a small partition and a large partition, in accordance with various embodiments.
DETAILED DESCRIPTION
[0012] The techniques described herein implement energy-efficient data handling on mobile devices operating in a connected standby mode. As used herein, data received and processed by a mobile device may be associated with emails, instant messages, social application messages or notifications, gaming messages or notifications, short messages, and/or any other data messages or notifications that may be communicated to a mobile device. Each instance of data exchanged between a data server and the mobile device may be referred to as a data event (e.g., an individual email, an individual message, an individual notification, a portion of an email, etc.). The mobile device may begin to receive and process a data event after determining that data is ready to be communicated or downloaded from a network server to a mobile device (e.g., upon the receipt of a push notification, a pull event, polling a data server, etc.).
[0013] As mobile devices continue to evolve, the users of the mobile devices become more dependable on mobile device functionality. Thus, the timely exchange of data is important. For example, a user of a mobile device may rely on an email client to sync with an email exchange server to receive important messages related to work or employment. In another example, a user of a mobile device may enjoy using a social networking application to receive messages and notifications (e.g., message board posts, check-ins, personal messages, etc.). To preserve energy, the mobile device may be configured to operate in a connected standby mode. The connected standby mode is an operating mode of the mobile device where a user is not interacting with the mobile device (e.g., not making a phone call, not typing a message, not browsing information, not playing a game). Thus, the display screen and other mobile device functionality that generally consumes large amounts of energy may be turned off in the connected standby mode, yet the mobile device is still able to receive and process a data event in the background.
[0014] The mobile device is configured to maintain a persistent connection, such as a Transmission Control Protocol (TCP) connection, to a data network in the connected standby mode. Moreover, the connected standby mode has a low energy consumption state and a high energy consumption state. In the low energy consumption state of the connected standby mode, the mobile device places the data network interface in a sleep state with limited functionality. However, the data network interface is able to receive various incoming data events (e.g., a "push" notification from a network server) when sleeping in the low energy consumption state of the connected standby mode. When the mobile device receives a notification of a data event to be communicated while operating in the low energy consumption state of the connected standby mode, it switches to a more functional data reception and processing mode. The more functional data reception and processing mode is the higher energy consumption state of the connected standby mode because the data network interface is fully activated to receive data associated with the data event and the data network interface wakes up the operating system so that the data can be processed in the background even though the user is still not actively interacting or using the mobile device (e.g., the display screen is still turned off).
[0015] In some embodiments, the mobile device may automatically wake up the operating system, using a pre-defmed timer, so that the operating system can instruct the data network interface to poll a network server to determine if a data event is ready to be communicated (e.g., a "pull" event) while the mobile device is operating in the low energy consumption state of the connected standby mode.
[0016] In various embodiments, the techniques discussed herein preserve energy of the mobile device, or reduce the energy consumption rate of the mobile device, by decoupling data processing from data reception on the mobile device when the mobile device is operating in the connected standby mode. Conventionally, data reception and data processing on a mobile device are coupled to one another when the mobile device is operating in the connected standby mode. For example, the mobile device receives first data (e.g., a first data event), processes the first data, and then sends a processing acknowledgment indicating successful completion of the data processing to a network server before the mobile device can begin receiving and processing the next data event. During the processing of the first data, the data network interface may unnecessarily be operating in the high energy consumption state of the connected standby mode even though network communications may be idle (e.g., the network data interface is not transmitting or receiving data), thereby wasting energy of a power supply operating the mobile device.
[0017] By decoupling the data reception from the data processing, the mobile device may complete the network transfer after receiving all data without waiting for the data event to be fully processed and completed. Thus, the mobile device may be configured to terminate the maintenance of active network connectivity immediately after downloading all relevant data, and the mobile device may keep the "unprocessed" data for later processing, after the network connection is terminated and the data network interface is placed in the low energy consumption state (e.g., the sleep state) of the connected standby mode. Then the operating system of the mobile device may complete the processing of the unprocessed data when the data network interface is operating in the sleep state. This scenario improves energy efficiency of the mobile device because the data network interface is not operating in the high energy consumption state of the connected standby mode when it is not exchanging data.
[0018] In various embodiments, the techniques preserve energy of the power supply operating the mobile device by temporarily storing persistent memory operations (e.g., flash disk writes) associated with data events that have been received and processed while the mobile device is operating in the connected standby mode, and then performing the persistent memory operations together at a later time (e.g., batch processing). Data communications applications on existing mobile devices typically write data to persistent memory immediately after each individual data event is received and processed. That is, the existing mobile devices typically perform a write for a data event regardless of the amount of data to write (e.g., even when the write is associated with a small amount of data such as an email header and limited textual content of an email body). Experiments have shown that each of these individual persistent memory operations consume a large amount of energy due to the extended use of the operating system and/or other device resources. Accordingly, the techniques discussed herein may temporarily store persistent memory operations and the data involved in the persistent memory operations in a cache until a trigger provides an indication to perform the persistent memory operations (e.g., commit or flush the writes to persistent memory as a group). The trigger may be associated with a pre-defined data threshold (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes, etc.), a predetermined number of persistent memory operations (e.g., ten disk writes), or the trigger may identify other power consuming activities being performed on the mobile device and piggyback the batch processing of the persistent memory operations with the other activities. Accordingly, the techniques may perform the persistent memory operations for multiple data events together, thereby conserving energy of the power supply operating the mobile device. [0019] In various embodiments, the techniques preserve energy of a power supply operating the mobile device by partitioning data storage space allocated to a particular application or other communications functionality. Experiments have shown that the amount of data processing required to handle data events for a particular application (e.g., an email application) depends on a size of the data storage space (e.g., an email inbox). For example, a mobile device may expend more energy, due to a longer processing time, storing data events in a larger email inbox (e.g., 10,000 emails) compared to a smaller email inbox (e.g., 200 emails). One reason for this is because the operating system and application executing on the mobile device may have to analyze, search, and/or update a large amount of metadata for the data events stored (e.g., thread or conversation matching, organizational information, timing information, word searching, etc.). In some embodiments, the data network interface may be in a high energy consumption state of the connected standby mode even though no data is being exchanged on the network while the metadata is being analyzed, searched, and/or updated. The techniques discussed herein mitigate this problem by enabling faster processing of data events and searching of data events by partitioning the data storage space into a small partition area for recently received data events and a large partition area for older data events.
[0020] Accordingly, the techniques discussed herein are able to reduce a rate at which a mobile device consumes energy when receiving and processing data events in the connected standby mode by decoupling the data reception from the data processing, batch processing persistent memory operations, and/or partitioning data storage space allocated for data communications applications on the mobile device (e.g., email applications, social networking applications, etc.).
[0021] FIG. 1 illustrates an example environment 100 where a mobile device 102 may exchange data events 104 with one or more data servers 106 (e.g., Web servers, data servers, email servers, game servers, social network servers, cloud servers, file transfer servers, etc.) over a mobile telephone network (MTN) 108. As discussed above, each data event 104 may include unprocessed data to be received by the mobile device 102 once a data network interface is woken up from a low energy consumption state of the connected standby mode (e.g., a sleep state). The mobile device 102 may include, but is not limited to, smartphones, mobile phones, cell phones, tablet computers, portable computers, laptop computers, personal digital assistants (PDAs), electronic book devices, gaming consoles, personal media player devices, or any other portable electronic devices that may exchange (e.g., receive and/or transmit) data over the MTN 108.
[0022] In various embodiments, the mobile device 102 may comprise one or more processors 1 10 and memory 1 12. The memory 1 12 may include an operating system 1 14 and an energy saving data exchange module 1 16. The operating system 1 14 may include any known mobile operating system configured to operate the mobile device 102.
[0023] The energy saving data exchange module 1 16 is configured to efficiently handle the data events 104 for data communications applications on the mobile device 102 when the mobile device 102 is operating in the connected standby mode. The data communications applications pre- configured on the mobile device and/or installed on the mobile device 102 may include email applications 1 18, instant messaging applications 120, social networking applications 122, gaming applications 124, and/or other data exchange applications configured to receive and/or store the data events 104 received from the data servers 106.
[0024] In various embodiments, the mobile device 102 may also comprise a user interface 126 to display the data to a user associated with the mobile device 102 and functionality to receive input from the user (e.g., touch input, buttons, keys, microphones, sensors, etc.), a data network interface 128 configured to receive data from data servers 106 and/or transmit data to data servers 106, and a power supply unit 130. The power supply unit 130 may be a battery or any other rechargeable power source that can be depleted during operation of the mobile device 102.
[0025] The processor(s) 1 10 may be a single processing unit or a number of units, all of which could include multiple computing units. The processor(s) 1 10 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, system on chip (SoC), and/or any other devices that manipulate signals based on operational instructions. Among other capabilities, the processors 1 10 may be configured to fetch and execute computer-readable instructions stored in the memory 1 12. [0026] The memory 1 12 may comprise computer-readable media. As used herein, "computer-readable media" includes computer storage media and communication media.
[0027] Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store information for access by a computing device.
[0028] In contrast, communication media may embody computer- readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave. As defined herein, computer storage media does not include communication media.
[0029] The MTN 108 may be configured to implement one or more of the second, third, and fourth generation (2G, 3G, and 4G) cellular-wireless access technologies, which may be cross-compatible and may operate collectively to provide data communication services. Global Systems for Mobile (GSM) is an example of 2G telecommunications technologies; Universal Mobile Telecommunications System (UMTS) is an example of 3G telecommunications technologies; and Long Term Evolution (LTE), including LTE Advanced, is an example of 4G telecommunications technologies. The infrastructure that makes up the MTN 108 may comprise multiple different components or devices (also referred to as nodes) that are configured to generate, transmit, receive, relay, and/or route data so that data services can be requested by, and provided to, the mobile device 102. Moreover, the mobile device 102 may be subscribed to a data plan offered by one or more service providers or network communication providers that implement the telecommunications networks. Different types of MTN nodes in the GSM, UMTS, LTE, LTE Advanced, and/or HSPA+ telecommunications technologies may include, but are not limited to, a combination of: base transceiver stations BTSs (e.g., NodeBs, Enhanced-NodeBs), Radio Network Controllers (RNCs), serving GPRS support nodes (SGSNs), gateway GPRS support nodes (GGSNs), proxies, a mobile switching center (MSC), a mobility management entity (MME), a serving gateway (SGW), a packet data network (PDN) gateway (PGW), an evolved packet data gateway (e-PDG), or any other data traffic control entity configured to communicate and/or route data packets between the client device 102 and the data servers 106. While FIG. 1 illustrates an MTN 108, it is understood in the context of this document, that in other embodiments, the techniques discussed herein may be implemented in other networking technologies, such as a wide area network (WAN), metropolitan area network (MAN), local area network (LAN), neighborhood area network (NAN), personal area network (PAN), or the like. [0030] FIG. 2 further illustrates modules and components associated with the energy saving data exchange module 1 16 that may implement the techniques described herein. As mentioned above, the energy saving data exchange module 1 16 may include logic and instructions to handle data events in an energy-efficient manner. Therefore, the modules and components associated with the energy saving data exchange module 1 16 illustrated in FIG. 2 may be part of a separate module configured to handle data events for the various communications applications in FIG. 1, may be part of the operating system 1 14, may be part of individual ones of the various communications applications (e.g., modify source code of an application), or a combination thereof. To this end, the functionality performed by the energy saving data exchange module 1 16 may be implemented with respect to different network communications protocols and/or for each of the various communications applications on the mobile device 102. Moreover, the functionality performed by the energy saving data exchange module 1 16 may be implemented in association with a database manager configured to manage the storage of the received data events.
[0031] In various embodiments, the energy saving data exchange module
1 16 may include a data event reception batching module 202. The data event reception batching module 202 is configured to batch (e.g., hold, store, maintain, etc.) the unprocessed data for multiple data events together. That is, the data event reception batching module 202 may receive unprocessed data for subsequent data events received at the mobile device 102 even though processing of a first data event may not be completed. For example, the data event reception batching module 202 may batch multiple different emails received by the data network interface 128 from an exchange server, before the operating system 1 14 and an email application 1 18 complete processing the unprocessed data for the individual data events. In some embodiments, the data event reception batching module 202 may batch multiple different data events received by the data network interface 128 before the operating system 1 14 and an email application 1 18 begin processing the unprocessed data for the individual data events (e.g., temporarily stores the unprocessed data until the operating system 1 14 and an email application 1 18 begins batch processing the data events).
[0032] Some network protocols used to exchange data events may require that the mobile device 102 send a notification, e.g., to an exchange server, that a first data event (e.g., the first unprocessed data) has successfully been processed before the exchange server transmits a second data event. That is, network protocols used to exchange data events may depend on a result of the data processing before data reception can resume, and this may present an obstacle for the data event reception batching module 202 when batching multiple data events. For example, an email exchange server may require an email client to indicate that processing of a previous email or previous portion of an email (e.g., the first data event) is finished and/or is successful before the email client can start receiving the next email or the next portion of the email (e.g., the second data event). [0033] Therefore, in various embodiments, the energy saving data exchange module 1 16 may include a data event result predicting module 204. The data event result predicting module 204 is configured to predict a result of the data processing of an individual data event. Once the data event result predicting module 204 predicts the successful processing result, a data event notification module 206 is configured to send an indication, to a corresponding data server 106, that the data network interface 128 of the mobile device 102 is ready to receive the next data event. The indication may include the predicted result of the data event. The data server 106, upon receiving the indication and/or the predicted result, may then begin to transmit the second data event and the data event reception batching module 202 can then batch unprocessed data for multiple events without waiting for processing of each data event to be completed.
[0034] In some embodiments, network protocols may not require notification of successful processing results for data events. Thus, the data event notification module 206 may be configured to send an indication to the data server that the data network interface 128 and the mobile device 102 have received the previous data event and are ready to receive the next data event. As discussed above, the data event notification module 206 sends the indication before processing of the previous data event is completed, or before processing of the previous data event has begun.
[0035] In various embodiments, the energy saving data exchange module
1 16 may include a data event processing module 208. The data event processing module 208 is configured to process the unprocessed data for the batched data events. In various embodiments, the data event processing module 208 may wait to process the batched data events until all the data events are received at the mobile device 102 (e.g., all emails or all portions of a large email have been pushed to the mobile device 102 by the data server 106 or pulled from the data server 106 by the mobile device 102). In other embodiments, the data event processing module 208 may begin processing the data events as they are received even though the reception of subsequent data events is not dependent upon, or coupled to, the completion of processing the previous data event.
[0036] The data event reception batching module 202, the data event result predicting module 204, the data event notification module 206, and the data event processing module 208 are further discussed herein with respect to FIG. 4.
[0037] In various embodiments, the energy saving data exchange module
1 16 may include a persistent memory operation batching module 210. The persistent memory operation batching module 210 is configured to batch (e.g., temporarily store or hold) persistent memory operations, such as persistent memory writes, and data 212 in a non-persistent memory cache 214 until a trigger provides an indication to perform the batched persistent memory operations together (e.g., commit or flush the data to persistent memory as a batch). For example, instead of an email application 1 18 issuing individual small write operations to persistent memory 216 after each individual email is received and processed, the email application 1 18 may batch the multiple small writes and the data together in the non-persistent memory cache 214, and then commit or flush the batch as a group to the persistent memory 216 at a later time. Examples of persistent memory 216 may include flash-based or other solid-state storage devices, disks, or memory cards.
[0038] In at least one implementation, the trigger provides the indication to perform the batched persistent memory operations when a predefined data threshold is satisfied. The predefined data threshold may be a number of writes (e.g., three, five, seven, ten, etc.) or a total amount of data to write (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes, etc.). In an alternative implementation, the trigger may provide the indication to perform the batched persistent memory operations when an application performs an automatic update of a data storage space (e.g., update an email inbox) or a user initiates an update of a data storage space by interacting with the application or requesting an update.
[0039] The persistent memory operation batching module 210 is able to conserve energy (e.g., extend the life of the power supply unit 130) because it is energy-efficient to batch persistent memory operations and data 212 in a non-persistent memory cache 214 instead of write individual data events to persistent memory 216 immediately after each data event is received and processed (which is time consuming and energy expensive). The batching of persistent memory operations is particularly useful when an individual persistent memory operation involves a small amount of data to write (e.g., an email header and a small portion of text from the body of the email). Moreover, experiments have shown that an individual persistent memory operation associated with a small amount of data (e.g., a single data event write) and batched persistent memory operations associated with a large amount of data (e.g., multiple data event writes) have similar energy consumption rates.
[0040] The persistent memory operation batching module 210 is further discussed herein with respect to FIG. 5.
[0041] In various embodiments, the energy saving data exchange module
1 16 may include a data storage partitioning module 218. The data storage partitioning module 218 is configured to separate data storage space allocated to an application into a small partition 220 and a large partition 222. In various embodiments, the data storage space is allocated to a particular communications application, such as those illustrated in FIG. 1, and the data storage space may be located in the persistent memory 216. Accordingly, in various embodiments, each application may have its own allocated data storage space (e.g., message or notification inbox).
[0042] As mentioned above, an amount of energy used by the mobile device 102 to receive a data event or search for a data event (e.g., an email) increases significantly when an amount of allocated data storage space (e.g., an email inbox) has a large size. One reason the mobile device 102 uses more energy is because existing mobile devices are capable of storing a large number of emails (e.g., 10,000 emails), and it takes more time for the operating system and other device resources to update or search metadata information associated with the large number of emails. For example, an email client may search the entire email inbox to ensure that a recently received email is associated with the correct conversation thread or string of emails. Accordingly, when the allocated data storage space stores a large amount of data (e.g., 10,000 emails), the mobile device 102 expends a large amount of energy to appropriately store new emails and update the metadata for the large data storage space. Moreover, when the allocated data storage space stores a large amount of data, the mobile device 102 may expend more energy when a user searches the email inbox for a particular email.
[0043] Therefore, to reduce the energy consumption associated with receiving and storing a new data event, or searching for a data event, the data storage partitioning module 218 uses a small partition 220 to store data events received within a predetermined time period (e.g., "recent" emails received in the last two days, last week, last two weeks, and so forth) and a large partition 222 to store the older data events that are not received in the predetermined time period. In one implementation, the data storage partitioning module 218 may use the small partition 220 to store a threshold number of more recent data events (e.g., the fifty most recent emails).
[0044] Thus, the data storage partitioning module 218 uses the small partition 220 to handle data events recently received. For example, an email application 1 18 may insert a just received email into the small partition 220 and update the metadata in the small partition 220 without having to update the metadata associated with the older emails stored in the large partition 222. Thus, the mobile device 102 can preserve energy even if the mobile device 102 is configured to store a large number of emails (e.g., 10,000 emails).
[0045] The partitioning of the data storage space provides an efficient way of preserving energy because users are more likely to use the mobile device 102 to access (e.g., read) recently received data events. Therefore, the mobile device 102 may not need to update the metadata for the older data events as often. If a user desires to access an older data event (e.g., search an email inbox for an older email), the applications on the mobile device 102 can search both the small partition 220 and the large partition 222 and return the combined results. Moreover, the data storage partition module 218 may determine or identify an opportunity (e.g., a time) to move data events in the small partition 220 to the large partition 222 and update the metadata accordingly. As users typically access (e.g., search for) older data events less frequently than recently received data events, the data partitioning is able to preserve energy of the power supply unit 130.
[0046] The data storage partitioning module 218 is further discussed herein with respect to FIG. 6.
[0047] As discussed above, existing mobile devices, when operating in the connected standby mode, wait for processing of a first data event to be completed before initiating reception of the next data event (e.g., data processing is coupled to data reception). However, during the time period when the mobile device is processing the data event, the data network interface is in a high energy consumption state waiting for completion of the processing even though no data is being exchanged (e.g., the network is idle). There is no data being exchanged because the data server 106 is waiting for the existing mobile device to process the first data event before sending the next data event. Once the data server 106 receives a notification (e.g., a processing acknowledgement or a PING packet) indicating that the first data event has been processed and the mobile device is ready to receive the next data event in the connected standby mode, the data server 106 may then begin sending a second data event.
[0048] This process may be repeated for additional data events ready to be communicated from the data server 106 to the existing mobile device. Accordingly, the data network interface on an existing mobile device unnecessarily operates in a high energy consumption state and consumes large amounts of energy even when network communications are idle, and this amount of time increases as a number of data events to be communicated from the data server 106 to the mobile device increases. In some instances, the data network interface may be configured to remain in the high energy consumption state during network idles times because the data network interface is configured to operate in accordance with a tail stage (e.g., 3G tail timer) to reduce or avoid network latency associated with an amount of time it takes to wake the data network interface up from a sleep state to begin receiving data. The second or subsequent data event transmissions may reset the tail timer each time, which keeps the data network interface in the high power consumption state for longer periods of times and thus, consumes more energy. [0049] FIG. 3 illustrates an example timing diagram 300 of how the mobile device 102 configured with the energy saving data exchange module 1 16 discussed herein receives and processes multiple data events 104 in the connected standby mode. Moreover, FIG. 3 illustrates how decoupling the data processing from data reception allows the mobile device 102 to place the data network interface 128 in the low energy consumption state (e.g., sleep state) more quickly, and thus, eliminate some of the network idle times when the data network interface is unnecessarily operating in the high energy consumption state. Thus, FIG. 3 illustrates a time axis for the mobile device 102 and a data server 106. FIG. 3 shows the communication of two data events as an example. However, the techniques discussed herein are applicable to scenarios where there is more data events to be communicated from the data server 106 to the mobile device 102 (e.g., three, four, five, ten, twenty, and so forth).
[0050] During a first period from to to t/ the mobile device 102 and the data server 106 may determine that there is at least one data event to be exchanged 302. In various embodiments, the determination of data events to be exchanged 302 may involve, a push notification sent from the data server 106 to the mobile device 102, a pull request sent from the mobile device 102 to the data server 106 (e.g., an email sync request), Secure Sockets Layer (SSL) and/or TCP handshaking, or any other communications protocol to establish a connection or identify an existing connection.
[0051] During a second time period tj to the mobile device 102 may fully activate the data network interface 128 and receive a first data event 304 or fetch the first data event, and conversely, the data server 106 sends the first data event 306. At time ¾ (approximately), the mobile device 102 sends a next data indication 308 to the data server 106 so that the data server 106 knows the mobile device 102 is ready to receive the next data event even though the first data event may not yet be completely processed at the mobile device 102. Thus, during a third time period ¾ to t?, the data server 106 can immediately begin sending the second data event 310 to the mobile device 102, and conversely, the mobile device 102 receives the second data event 312 and then sends another next data indication 314 after receiving the second data event. If the second data event is the last data event waiting to be communicated, the mobile device 102 can place the data network interface 128 into the sleep state, as illustrated (e.g., switch from the high energy consumption state of the connected standby mode to the low energy consumptions state of the connected standby mode). After placing the data network interface 128 in the sleep state, the mobile device 102 works to complete the processing of the multiple data events 316 during a fourth time period t3 to t4.
[0052] The differences between existing mobile devices that couple data reception with data processing and the illustration in FIG. 3, is that the mobile device 102 in FIG. 3 is able to place the data network interface 128 in a sleep state faster if the data reception is not dependent upon, or coupled to, the completed processing of the previous data event. Rather, as shown in FIG. 3, the mobile device 102 is able to fetch and download multiple or all data events without waiting for the processing of individual data events to be finished or completed. Therefore, the mobile device 102 configured with the energy saving data exchange module 1 16 is able to receive and/or process data events more energy-efficiently by eliminating multiple network idle times while the mobile device is processing individual events, and instead, receive and/or process data events more energy-efficiently.
[0053] In various embodiments, the next data indications in FIG. 3 may communicate an indication that the mobile device 102 is ready to receive next data event. The indication may include a predicted processing result, as discussed above. Moreover, in various embodiments, the operating system 1 14, the various applications illustrated in FIG. 1, and/or the modules and components associated with the energy saving data exchange module 1 16 may communicate using remote procedure calls (RPCs), e.g., to process, store and manage a data event.
[0054] Example operations are described herein with reference to
FIGS. 4-6. The processes are illustrated as logical flow graphs, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes. Moreover, the example operations in FIGS. 4-6 may be described with reference to the features and/or elements illustrated in FIGS. 1-3.
[0055] FIG. 4 illustrates an example process 400 that decouples data reception from data processing in the connected standby mode. At block 402, the mobile device 102 determines that data is ready or waiting to be exchanged for one or more of the various communications applications configured or installed on the mobile device 102. For example, the determination may be made in response to a push notification received from a data server 106, a periodic email sync request (e.g., a pull request), a user initiated email sync request, and so forth.
[0056] At block 404, the mobile device 102 wakes up the data network interface 128 and/or the operating system 1 14 from the sleep state. To this end, the mobile device 102 is activated to a functional state capable of receiving and processing data events 104.
[0057] At block 406, the data network interface 128 and/or a communications application establish or identify a connection for exchanging the data with the data server. For example, the data network interface 128 and/or a communications application may implement a particular data communications protocol directed to securing a connection for the transfer of the data event 104.
[0058] At block 408, the data network interface 128 and the data event reception batching module 202 begin receiving a data event (e.g., unprocessed data of an email). For example, the data event may be an email, a first portion of an email, an instant message, a social networking message or notification, a gaming message or notification, and so forth.
[0059] At block 410, the data event reception batching module 202 batches (e.g., temporarily stores, holds, maintains, etc.) the unprocessed data as the data event is received or after the data event is received. In various embodiments, the operating system 1 14 and the communications application may begin actual processing of the unprocessed data at this time. However, as discussed herein, the reception of the next data event is not dependent upon, or coupled to, the successful completion of the processing of the unprocessed data. In alternative embodiments, the data event reception batching module 202 may batch the unprocessed data until all data events ready to be communicated by the data server 106 have been received at the mobile device 102. Then, the actual processing of the batched unprocessed data (e.g., associated with one or multiple data events) may begin.
[0060] In various embodiments, at block 412, the data event result predicting module 204 may predict a processing result of the data event. The data event result predicting module 204 may predict the processing result in a faster and more energy-efficient way compared to the actual processing of the unprocessed data. Thus, the energy saving data exchange module 1 16 may use the data event result predicting module 204 when the communications application and/or a corresponding data server 106 require a "successful" processing notification before communicating a next data event. [0061] At block 414, the data event notification module 206 may send, to the data server 106, an indication that the mobile device 102 is ready to receive the next data event. As discussed above, the data event notification module 206 may send the indication immediately after the first data event is received and the unprocessed data for the first data event is batched. Thus, the mobile device 102 does not have to wait for the processing of the first data event to be completed before it begins to receive the next data event.
[0062] At block 416, the data event reception batching module 202 may communicate with the data sever 106 to determine whether or not the data server 106 has another data event to be communicated to the mobile device 102 over the established connection. If the answer to block 416 is "Yes", the process returns to block 408 and the data event reception batching module 202 receives the next data event, batches the data event, and so forth. In one implementation, the data event reception batching module 202 may determine whether or not the data server 106 has another data event to be communicated based on an initial notification communicated (e.g., the data server 106 tells the mobile device 102 of a number of data events that are queued and ready to be communicated). In another implementation, the mobile device 102 may poll the data server after receiving each data event to determine if another data event is waiting to be communicated. In yet another implementation, the mobile device 102 may determine that no additional data events are to be communicated after a predetermined amount of time expires and there are no additional data events communicated by the data server 106. [0063] If the answer to block 416 is "No", the process moves to block 418 where the mobile device 102 places the data network interface 128 into the sleep state because there is no more data to be exchanged with the data server 106 (e.g., the mobile device switches from the high energy consumption state of the connected standby mode to the low energy consumption state of the connected standby mode). As discussed above, at the time the data network interface 128 switches to the sleep state, the processing of one or multiple data events may not be completed. Thus, the techniques discussed herein implement an approach that decouples data processing from data reception so that the mobile device 102 can place the data network interface 128 in the sleep state faster and energy can be preserved.
[0064] After the data network interface 128 is placed in the sleep state, at block 420, the data event processing module 208 may complete processing of the batched data events (e.g., batch process the unprocessed data of multiple data events). As mentioned above, in some implementations, the processing of the batched data events may begin while the data network interface 128 is still receiving subsequent data events, but the processing may not be completed. In alternative implementations, the processing of the batched data events begins after all the data events are received and batched.
[0065] The example process 400 may be executed on the mobile device 102 each time data events for a communications application on the mobile device 102 are queued at a corresponding data server 106, and ready to be transmitted by the corresponding data server 106 to the mobile device 102 while the mobile device is operating in the connected standby mode.
[0066] FIG. 5 illustrates an example process 500 that batches (e.g., temporarily stores, holds, or maintains) persistent memory operations for multiple data events. In at least one implementation the persistent memory operations are persistent memory writes that occur after a data event is received and/or processed in the connected standby mode with respect to FIG. 4. As discussed above, performing individual persistent memory writes for each data event consumes a significant amount of energy (e.g., processor and operating system use). Thus, the example process 500 conserves energy by batching multiple writes, and then committing or flushing them to persistent memory in a single operation at a later time.
[0067] At block 502, the persistent memory operation batching module
210 determines that a persistent memory operation associated with a data event is ready to be performed. For example, an email message may have been received and processed at the mobile device, as discussed above with respect to FIG. 4. Thus, the email message may be ready to write to persistent memory 216 (e.g., to be stored by the mobile device 102).
[0068] At block 504, the persistent memory operation batching module
210 batches the persistent memory operation (e.g., the write) and the data to be written in non-persistent memory cache 214 (e.g., a temporary cache, etc.).
[0069] After the memory operation is batched, at block 506, the persistent memory operation batching module 210 determines whether a trigger to commit or flush the batched persistent memory operations and data to persistent memory is received. In one embodiment, the trigger may be a predefined data threshold (e.g., 50 kilobytes, 100 kilobytes, 500 kilobytes). In another embodiment, the trigger may be a predetermined number of persistent memory operations (e.g., ten writes for ten data events). In yet another embodiment, the trigger may by the identification or other power consuming activities being performed on the mobile device 102. For example, the persistent memory operation batching module 210 may perform the batched persistent memory operations when a user powers on, or interacts with, the mobile device 102 to access emails. Performing the persistent memory operations at the same time as such other activities may have no or very minimal impact on the baseline power consumption, as the mobile device 102 may already be in a high energy consumption state.
[0070] If the answer at block 506 is "No", the process returns to block 502 where the persistent memory operation batching module 510 determines that another persistent memory operation associated with another data event is ready to be performed, and then the persistent memory operation batching module 510 will add the persistent memory operation to the current batch in the non-persistent memory cache 214.
[0071] If the answer at block 506 is "Yes", then the process moves to block 508 where the persistent memory operation batching module 510 performs the batched persistent memory operations together (e.g., batch process multiple persistent memory writes). For example, the persistent memory operation batching module 510 may write multiple data events from the non-persistent memory cache 214 to persistent memory 216 together or as a group (e.g., commit or flush the batch).
[0072] FIG. 6 illustrates an example process 600 that separates the storage of data events between a small partition and a large partition. In at least one implementation the data events are stored after the data events are received and processed in the connected standby mode of FIG. 4, and/or in association with the memory operation batching as discussed with respect to FIG. 5. As discussed above, by separating storage space for a particular communications application into a small partition and a large partition, the example process 600 conserves energy because a large amount of metadata does not need to be updated and/or searched. In some embodiments, the partitioning may apply to data events for multiple communications applications.
[0073] At block 602, the data storage partitioning module 218 creates a small partition 220 and a large partition 222. In various embodiments, the small partition 220 and the large partition 222 are each storage space in persistent memory 216 that is allocated to, or associated with, a particular communications application or multiple communications applications. Thus, the small partition 220 and the large partition 222 may comprise an email inbox or multiple email inboxes merged together, for example. The data storage partitioning module 218 may create the small partition 220 and the large partition 222 by separating the data events based on a time when they were received at the mobile device 102 from the data server 106. Thus, the small partition 220 is storage space for recent data events (e.g., recently received emails) and the large partition 222 is storage space for older data events.
[0074] In various embodiments, the data storage partitioning module 218 may configure the small partition 220 to store a threshold number of data events (e.g., the twenty most recent emails, the fifty most recent emails, the one hundred most recent emails) or to store a threshold amount of data (e.g., 500 kilobytes for any number of recent data events). Accordingly, the large partition 222 may store the rest of the data events, which is likely a much larger amount of data events (e.g., 10,000 emails) compared to an amount of data events in the small partition 220.
[0075] At block 604, the data storage partitioning module 218 receives an indication to store information for a new data event (e.g., a data event recently received at the mobile device 102).
[0076] At block 606, the data storage partitioning module 218 stores the new data event in the small partition 220 and updates metadata information for the small partition 220 based on the new data event without having to access the large partition 222 and/or update the metadata information for the large partition 222. Metadata information may include identification of a sender of a message, a size range of a message, flagged messages such as 'high' importance, whether or not there is an attachment, or any other information that may be used to organize or group data events in the partitions. As discussed above, the mobile device 102 is able to preserve energy when storing a new data event because it does not have to deal with the large partition 222.
[0077] At block 608, the data storage partitioning module 218 determines an opportunity to move data events in the small partition 220 to the large partition 222. For example, the data storage partitioning module 218 may periodically (e.g., each day, each week, etc.) move the data events in the small partition 220 to the large partition. In another example, the data storage partitioning module 218 may move data events when the user initiates a search for a data event on the mobile device 102.
[0078] At block 610, the data storage partitioning module 218 updates the information (e.g., metadata, data events) in the large partition 222 with at least some of the data events in the small partition 220 after an opportunity is determined.
Conclusion
[0079] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are described as example forms of implementing the claims.

Claims

CLAIMS What is claimed is:
1. A method comprising:
determining that first data associated with a first data event is waiting to be communicated from a data server to a mobile device operating in a connected standby mode;
switching a network interface on the mobile device from a low energy consumption state of the connected standby mode to a high energy consumption state of the connected standby mode;
receiving, by the network interface on the mobile device and from the data server, the first data associated with the first data event;
sending, from the mobile device to the data server, an indication that the mobile device is ready to receive a second data event from the data server, wherein the mobile device sends the indication prior to completing processing of the first data;
receiving, by the network interface on the mobile device and from the data server, second data associated with the second data event;
switching the network interface from the high energy consumption state of the connected standby mode to the low energy consumption state of the connected standby mode after receiving the second data associated with the second data event; and
completing the processing of at least the first data after the network interface is switched from the high energy consumption state of the connected standby mode to the low energy consumption state of the connected standby mode.
2. The method as recited in claim 1, wherein the first data event and the second data event each comprise at least one of an electronic mail message, an instant message, a social networking message or notification, or a gaming message or notification.
3. The method as recited in claim 1, further comprising:
predicting a processing result for the first data; and
sending the predicted processing result with the indication to the data server to cause the data server to transmit the second data.
4. The method as recited in claim 1, wherein the determining is based on at least one of a push notification, a pull request or a sync request.
5. The method as recited in claim 1, further comprising beginning batch processing of the first data and the second data after switching the network interface from the high energy consumption state of the connected standby mode to the low energy consumption state of the connected standby mode.
6. The method as recited in claim 1, further comprising: storing persistent memory write operations associated with each of the first data event and the second data event in a temporary cache;
receiving a trigger to perform the persistent memory write operations, wherein the trigger is received after a pre-defmed data threshold has been reached or exceeded or after a predetermined number of persistent memory write operations has been reached or exceeded; and
writing the first data and the second data to persistent memory after receiving the trigger.
7. The method as recited in claim 1, further comprising:
storing the first data and the second data in a first portion of persistent memory that stores a first portion of data events for a communications application; and
updating metadata for the first portion of the persistent memory that stores the first portion of data events without updating metadata for a second portion of the persistent memory that stores a second portion of data events for the communications application.
8. The method as recited in claim 7, wherein the first portion of the persistent memory stores data events received within a threshold amount of time at the mobile device, and the second portion of persistent memory stores older data events that are received prior to the threshold amount of time at the mobile device.
9. One or more computer storage media storing computer executable instructions that, when executed, perform operations comprising: receiving, at a mobile device operating in a connected standby mode and from a data server, first data associated with a first data event;
sending an indication that the mobile device is ready to receive a second data event from the data server, wherein the mobile device sends the indication prior to completing processing of the first data;
receiving, at the mobile device and from the data server, second data associated with the second data event;
placing a network interface of the mobile device in a sleep state after receiving the second data associated with the second data event; and
completing the processing of at least the first data after the network interface is placed in the sleep state.
10. A system comprising:
one or more processors;
one or more computer memories:
a network interface;
a data event reception batching module, stored on the one or more memories and operable on the one or more processors, to batch unprocessed data for multiple data events received via the network interface in a connected standby mode; a data event notification module, stored on the one or more memories and operable on the one or more processors, to send, after the data event reception module batches unprocessed data of a previous data event, an indication to a data server that communicates that the network interface is ready to receive a next data event, wherein the data event notification module sends the indication before processing of the unprocessed data of the previous data event is completed; and
a data event processing module, stored on the one or more memories and operable on the one or more processors, to complete the processing the unprocessed data of the previous data event after the network interface is placed in a low energy consumption state.
EP13881886.9A 2013-04-12 2013-04-12 Energy efficient data handling for mobile devices Active EP2984810B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/074133 WO2014166103A1 (en) 2013-04-12 2013-04-12 Energy efficient data handling for mobile devices

Publications (3)

Publication Number Publication Date
EP2984810A1 true EP2984810A1 (en) 2016-02-17
EP2984810A4 EP2984810A4 (en) 2016-03-23
EP2984810B1 EP2984810B1 (en) 2018-10-17

Family

ID=51688874

Family Applications (1)

Application Number Title Priority Date Filing Date
EP13881886.9A Active EP2984810B1 (en) 2013-04-12 2013-04-12 Energy efficient data handling for mobile devices

Country Status (4)

Country Link
US (2) US9681378B2 (en)
EP (1) EP2984810B1 (en)
CN (1) CN105229989B (en)
WO (1) WO2014166103A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9681378B2 (en) 2013-04-12 2017-06-13 Microsoft Technology Licensing, Llc Energy efficient data handling for mobile devices
US10089458B2 (en) * 2013-09-26 2018-10-02 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content
CN109324833B (en) * 2014-09-19 2020-07-07 华为技术有限公司 Method and device for running application program
US9819560B2 (en) * 2014-12-24 2017-11-14 Mediatek Inc. Dynamic data distribution method in private network and associated electronic device
CN105844532A (en) * 2016-03-23 2016-08-10 努比亚技术有限公司 Method and server for processing subscription information
US10025625B2 (en) 2016-03-31 2018-07-17 Microsoft Technology Licensing, Llc Batched tasks
CN108260191A (en) * 2016-12-29 2018-07-06 展讯通信(上海)有限公司 Mobile terminal and its dormant control method
WO2019109557A1 (en) * 2017-12-06 2019-06-13 华为技术有限公司 Method and device for reducing power consumption
CN109918352B (en) * 2019-03-04 2021-11-05 北京百度网讯科技有限公司 Memory system and method of storing data
US20230128077A1 (en) * 2021-10-22 2023-04-27 EMC IP Holding Company, LLC System and Method for Aggregation of Write Commits To Control Written Block Size

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260150B1 (en) 1998-03-10 2001-07-10 Agere Systems Guardian Corp. Foreground and background context controller setting processor to power saving mode when all contexts are inactive
JP3394509B2 (en) * 1999-08-06 2003-04-07 株式会社リコー Constant voltage power supply
US6901481B2 (en) * 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US7408506B2 (en) 2004-11-19 2008-08-05 Intel Corporation Method and apparatus for conserving power on a mobile device through motion awareness
EP1841142A1 (en) * 2006-03-27 2007-10-03 Matsushita Electric Industries Co., Ltd. Sleep-state and service initiation for mobile terminal
KR100797121B1 (en) 2006-10-02 2008-01-22 삼성전자주식회사 Method and apparatus for power saving of multi standby portable terminal
KR101264805B1 (en) * 2008-11-20 2013-05-15 삼성전자주식회사 Method and System for providing presence service
WO2011043755A1 (en) * 2009-10-06 2011-04-14 Thomson Licensing A method and apparatus for hop-by hop reliable multicast in wireless networks
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
JP5470590B2 (en) 2011-04-14 2014-04-16 株式会社日立製作所 Communication apparatus and handover control method
US8935697B2 (en) 2011-08-10 2015-01-13 Microsoft Corporation Suspension and/or throttling of processes for connected standby
US8788863B2 (en) 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
US8713256B2 (en) 2011-12-23 2014-04-29 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance
US8230247B2 (en) * 2011-12-30 2012-07-24 Intel Corporation Transferring architectural functions of a processor to a platform control hub responsive to the processor entering a deep sleep state
US9204378B2 (en) * 2012-02-17 2015-12-01 Intel Corporation Wireless network connectivity enhancements
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
US9037799B2 (en) 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache
US9681378B2 (en) * 2013-04-12 2017-06-13 Microsoft Technology Licensing, Llc Energy efficient data handling for mobile devices

Also Published As

Publication number Publication date
EP2984810B1 (en) 2018-10-17
CN105229989B (en) 2019-01-22
US20160021614A1 (en) 2016-01-21
WO2014166103A1 (en) 2014-10-16
US9681378B2 (en) 2017-06-13
EP2984810A4 (en) 2016-03-23
US20170245214A1 (en) 2017-08-24
US10455509B2 (en) 2019-10-22
CN105229989A (en) 2016-01-06

Similar Documents

Publication Publication Date Title
US10455509B2 (en) Energy efficient data handling for mobile devices
EP2966913B1 (en) Wake-up control method, device and terminal equipment
EP2871809B1 (en) Message processing method, device and system for internet of things
US9538468B2 (en) Power saving in Wi-Fi devices utilizing bluetooth
EP2864899B1 (en) Systems and methods for managing message delivery based on message priority
US20140237476A1 (en) Centralized task scheduling
EP2896168B1 (en) Apparatus and method for delivery control of application data to a mobile device in a communication network
US9811374B1 (en) Partial resume for operating system modules
KR20110076954A (en) Optimized polling in low resource devices
CN108632309B (en) Method and device for upgrading narrow-band Internet of things terminal
CN107743137B (en) File uploading method and device
EP3926467B1 (en) Application control method and apparatus, terminal, and computer-readable storage medium
CN109982355B (en) Method for saving and restoring network path, apparatus, terminal and storage medium thereof
JP2019537387A (en) Operation mode switching method and user equipment
WO2019128574A1 (en) Information processing method and device, computer device and computer readable storage medium
CN109992425B (en) Information processing method, information processing device, computer equipment and computer readable storage medium
US20200403850A1 (en) Facilitating resilient and fault tolerant asynchronous messaging
TWI572231B (en) Mobile device and method for managing network connection and storage medium
US8719371B1 (en) Systems and methods for managing message delivery based on device activity, user behavior, or usage patterns
CN115378989B (en) MQTT theme subscription system, method, terminal and medium based on wake-up channel
EP2867790B1 (en) Systems and methods for automatic modification of device configuration values
US8706155B1 (en) Transmission protocol modification to maximize mobile device battery life
CN115529654A (en) Method, apparatus, storage medium, and relay device for standby communication
WO2017142773A1 (en) User presence prediction driven device management
CN110139320B (en) Method, device, medium and terminal for processing service conflict of multi-card communication terminal

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20151012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

A4 Supplementary search report drawn up and despatched

Effective date: 20160219

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 1/32 20060101ALI20160215BHEP

Ipc: H04W 88/02 20090101ALI20160215BHEP

Ipc: H04L 29/08 20060101AFI20160215BHEP

Ipc: G06F 3/06 20060101ALI20160215BHEP

Ipc: H04W 4/12 20090101ALI20160215BHEP

Ipc: H04W 52/02 20090101ALI20160215BHEP

17Q First examination report despatched

Effective date: 20160309

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602013045400

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0029080000

Ipc: H04L0012580000

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 12/58 20060101AFI20180504BHEP

Ipc: G06F 3/06 20060101ALI20180504BHEP

Ipc: H04W 88/02 20090101ALI20180504BHEP

Ipc: H04W 4/12 20090101ALI20180504BHEP

Ipc: H04L 29/08 20060101ALI20180504BHEP

Ipc: G06F 1/32 20060101ALI20180504BHEP

Ipc: H04W 52/02 20090101ALI20180504BHEP

INTG Intention to grant announced

Effective date: 20180525

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602013045400

Country of ref document: DE

Ref country code: AT

Ref legal event code: REF

Ref document number: 1055321

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181115

REG Reference to a national code

Ref country code: NL

Ref legal event code: FP

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1055321

Country of ref document: AT

Kind code of ref document: T

Effective date: 20181017

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190117

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190117

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190217

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190118

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20190217

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602013045400

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

26N No opposition filed

Effective date: 20190718

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 602013045400

Country of ref document: DE

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20190430

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190412

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190430

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190430

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190430

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20190412

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20130412

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602013045400

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0012580000

Ipc: H04L0051000000

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20181017

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230309

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230302

Year of fee payment: 11

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230501

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20230314

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20230307

Year of fee payment: 11