Jump to content

BatteryMAX

From Alfawiki
BatteryMAX
Company typeTechnology
IndustryComputer software / Power management
FoundedAugust 1989; 37 years ago (1989-08)
FounderRoger Alan Gross, John P. Constant
Headquarters
Hungerford
,
United Kingdom
ProductsIdle detection mechanism for power management in portable computers
ParentDigital Research, Inc.

BatteryMAX represents an advanced idle detection mechanism designed for managing power consumption in computers, developed by the European Development Centre (EDC) of Digital Research, Inc. located in Hungerford, UK. Tailored specifically for battery-operated portable personal computers (laptops), it also played a crucial role in Novell's PalmDOS 1.0 operating system, which was released in 1992 for early palmtop devices.

Description

Conventional power-saving methods on laptops depended on hardware inactivity timers that typically required several minutes to identify idle periods before lowering power usage. BatteryMAX revolutionized this approach by analyzing software activity within the operating system, drastically reducing idle detection latency from minutes down to microseconds. This enabled power state transitions as frequently as 18 times per second between user keystrokes. The method, known as Dynamic Idle Detection, temporarily suspends the CPU until hardware interrupts trigger its resumption.

The initial PC operating system to incorporate an idle detection feature for power management was DR DOS 5.0 (1990). British engineers Roger Alan Gross and John P. Constant originated this technology in August 1989, with a US patent application filed in 1990 and granted in 1994.

Although BatteryMAX was pioneering and secured patent protection, it achieved limited commercial adoption following Digital Research's merger into Novell, Inc. in 1991. It was not until the introduction of Advanced Power Management (APM) by Microsoft and Intel in 1992 that software-controlled power management within operating systems became broadly implemented.

Functional overview

BatteryMAX enhances battery longevity by identifying when applications are idle and transitioning the system into appropriate low-power states accordingly.

This system employs a multi-layered detection framework encapsulated within a DOS character device driver named $IDLE$, which contains hardware-specific routines for executing dynamic idle detection. The driver can either be integrated directly into the DR-DOS BIOS or dynamically loaded using the CONFIG.SYS DEVICE command, substituting the standard driver. Since DR-DOS version 5.0, dynamic idle detection functionality has been incorporated into the core OS kernel. Upon determining an application is idle, the OS invokes $IDLE$, which runs custom code from either hardware manufacturers or third parties to verify idleness and manage transitions between power states. BatteryMAX is compatible with hardware-level power management protocols such as APM or ACPI BIOS implementations.

The specific power-saving actions vary depending on the manufacturer but generally involve reducing or halting the processor clock or deactivating certain subsystems.

Prior to initiating any power state changes, $IDLE$ evaluates hardware activity—such as serial port polling or screen refreshes—and if any activity is detected, it overrides the OS request to maintain normal application execution.

In DR DOS 5.0 and later versions, COMMAND.COM includes an internal IDLE command that allows users to toggle dynamic idle detection on or off.

Detecting when an application is idle

An application is considered idle when it awaits external input events like keystrokes or mouse movements, or after a predefined time interval elapses. The DR-DOS kernel continuously monitors all DOS API calls to assess application behavior patterns indicative of idleness.

The $IDLE$ driver differentiates between truly idle programs—such as those polling the keyboard in a tight loop—and active ones that poll to detect abort signals. This distinction is made by measuring how long it takes for an application to enter an idle state: if this duration falls within a preset threshold, the program is classified as idle; if it exceeds this limit, it remains active without triggering power state changes. The threshold value is controlled by the local variable IDLE_CNTDN, which is calculated dynamically during initialization and updated periodically.

BatteryMAX Origins

The idle detection approach was originally created to improve the multi-tasking capabilities of single-task DOS programs within Digital Research's multi-tasking and multi-user environment, Concurrent DOS 386 (CDOS386).

Single-task operating systems like MS-DOS or PC DOS often run programs that continuously loop while waiting for user input, leading to inefficient CPU usage in multi-tasking systems such as CDOS386. Unlike multi-tasking software that employs API calls to enter a "sleep" state during inactivity, standard DOS applications lack this feature, making idle detection necessary.

Within its kernel, Concurrent DOS 386 featured an Idle Detection mechanism that observed DOS API calls to determine whether a program was active or idle. When processes were identified as idle, they were suspended, enabling the scheduler to allocate processor time to other tasks and thereby enhancing overall system performance.

Patent Disputes

The "idle detection" patent associated with BatteryMAX became a focal point in a notable patent infringement lawsuit concerning software-driven power management controlled by operating systems.

On May 15, 2009, St. Clair Intellectual Property Consultants initiated legal action against Acer, Dell, Gateway, and Lenovo; similar lawsuits followed on September 18, 2009, targeting Apple and Toshiba. St. Clair accused these companies of violating patents linked to software-based power management and sought royalty payments.

Microsoft entered the proceedings on behalf of the defendants, requesting rulings that the patents held by St. Clair were invalid and not infringed upon. Intel also joined the defense efforts.

During prior art investigations conducted by Seattle-based Perkins Coie, BatteryMAX and Gross’s idle detection patent surfaced. Gross’s patent had an earlier priority date than the Fung patents held by St. Clair, weakening their infringement claims. Intel retained Gross as an expert witness; he affirmed that he developed software-controlled power management predating Fung’s work, referencing BatteryMAX as supporting evidence.

St. Clair attempted to exclude Gross’s testimony regarding BatteryMAX; however, on March 29, 2013, the court permitted it after determining there was adequate proof that BatteryMAX preexisted Fung’s patents and that Gross’s insights were pertinent for evaluating obviousness.

See also

External links

  • Implementing Power Management (BatteryMAX) in DR-DOS by Caldera, Inc.