Non-Timer Callback API for Power Efficient Web Browsers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web platform and scripting programming models are power inefficient due to increased callback frequencies, which lead to higher CPU usage and reduced power conservation, as system components do not have adequate time to enter sleep or idle modes, resulting in increased power consumption.

Innovation Solution

An application program interface (API) that allows entities to register for immediate callbacks without specifying a time constraint, utilizing a non-timer based queue such as a scheduler or message queue, enabling callbacks to be processed during normal message and event processing, thereby maintaining responsiveness and improving power efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If callback frequencies are increased by specifying small time values (0-4 ms), then responsiveness and performance are improved, but power consumption increases and CPU cannot enter sleep modes

Engineering Contradiction:
Improvecallback frequencyVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent extracts the timer-based callback mechanism from the system and replaces it with an event-driven approach. By removing the continuous timer polling and using event-triggered callbacks instead, the system achieves responsiveness without the constant CPU wake-ups that consume power. The event-driven model allows CPU to enter sleep modes between events while maintaining responsive callback execution when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If small callback intervals (0-4 ms) are specified, then callback responsiveness is improved, but CPU cycles are over-utilized and power efficiency deteriorates

Engineering Contradiction:
Improvecallback responsivenessVSAvoidCPU cycle utilization efficiency
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements periodic action through event-driven callbacks rather than continuous timer intervals. Instead of forcing periodic wake-ups at fixed small intervals, the system performs periodic actions only when actual events occur. This maintains productivity by executing callbacks at appropriate moments while avoiding unnecessary CPU cycles during idle periods, thereby improving power efficiency.

Inventive Principle:
Principle #19Periodic action

3Speed

If timer-based callbacks are used with small intervals, then immediate response is achieved, but system components cannot enter sleep or idle modes

Engineering Contradiction:
Improveresponse timeVSAvoidpower conservation capability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies self-service by allowing the system to automatically enter sleep modes when no events are pending, without requiring external intervention. The event-driven architecture enables the system to self-regulate its power state by naturally transitioning to idle modes when callback queues are empty, while maintaining the ability to respond immediately when events occur. This self-service approach achieves both fast response and power conservation simultaneously.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9507650B2Power efficient callback patterns
Publication Date: 2016.11.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9507650B2 patent drawing
  • US9507650B2 patent drawing
  • US9507650B2 patent drawing

AI summary

In one or more embodiments, an application program interface (API) is provided and enables an entity, such as an application, script, or other computing object to register to receive callbacks immediately and, without specifying a time constraint. In this approach, the API does not rely on a timer, such as a system timer. Rather, a non-timer based queue, such as a message queue-type approach is utilized. Specifically, callbacks that are registered through this API can be placed on the message queue and work associated with the registered callback can be performed through the normal course of processing messages and events in the message queue. Over time, such results in a callback pattern that allows an associated web browser and applications such as web applications to remain responsive, while increasing performance and power efficiencies.