HOME

TheInfoList



OR:

BatteryMAX is an idle detection system used for computer power management under operating system control developed at Digital Research, Inc.'s European Development Centre (EDC) in Hungerford, UK. It was created to address the new genre of portable personal computers (
laptop A laptop, laptop computer, or notebook computer is a small, portable personal computer (PC) with a screen and alphanumeric keyboard. Laptops typically have a clam shell form factor with the screen mounted on the inside of the upper li ...
s) which ran from battery power. As such, it was also an integral part of Novell's
PalmDOS 1.0 DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-D ...
operating system tailored for early
palmtop A handheld personal computer (PC) is a miniature computer typically built around a clamshell form factor and is significantly smaller than any standard laptop computer, but based on the same principles. It is sometimes referred to as a ''palmto ...
s in 1992.


Description

Power saving in laptop computers traditionally relied on hardware inactivity timers to determine whether a computer was idle. It would typically take several minutes before the computer could identify idle behavior and switch to a lower power consumption state. By monitoring software applications from within the
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
, BatteryMAX is able to reduce the time taken to detect idle behavior from minutes to microseconds. Moreover, it can switch power states around 18 times a second between a user's keystrokes. The technique was named ''Dynamic Idle Detection'' and includes halting, or stopping the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
for periods of just a few microseconds until a hardware event occurs to restart it. DR DOS 5.0 in 1990 was the first
personal computer A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or te ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
to incorporate an idle detection system for power management. It was invented by British engineers Roger Alan Gross and John P. Constant in August 1989. A US patent describing the idle detection system was filed on 9 March 1990 and granted on 11 October 1994. Despite taking an early lead and having the protection of a patent, BatteryMAX did not enjoy significant commercial success having been sidelined after the disarray that followed the integration of Digital Research into
Novell, Inc. Novell, Inc. was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi-platform network operating system known as Novell NetWare. Under the leade ...
in 1991. It was not until 1992, some three years after the invention, that software power management under operating system control became ubiquitous following the launch of
Advanced Power Management Advanced power management (APM) is an API developed by Intel and Microsoft and released in 1992 which enables an operating system running an IBM-compatible personal computer to work with the BIOS (part of the computer's firmware) to achieve po ...
(APM) by
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washi ...
and
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 ser ...
.


Functional overview

BatteryMAX uses the technique of dynamic idle detection to provide power savings by detecting what the application is doing (whether it is idle), and switching power states (entering low power mode) therefore extending the battery life of the product. BatteryMAX employs a layered model of detection software encapsulated into an
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicat ...
character device driver called $IDLE$ that contains all the hardware-dependent code to support dynamic idle detection. It can either be linked into the DR-DOS operating system
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the b ...
or loaded dynamically using the CONFIG.SYS DEVICE directive, overloading the built-in default driver. All versions of DR-DOS since version 5.0 have contained dynamic idle detection support inside the operating system
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learn ...
. When the operating system believes an application is idle, it calls the $IDLE$ BIOS/driver layer, which executes custom code written by the computer manufacturer or third parties to verify the request and switch power states. Using the device driver concept, BatteryMAX can be integrated with hardware-related power management facilities, which might be provided by the underlying hardware, including interfacing with APM or
ACPI Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management (e.g. putting unused hardware components to sleep), auto con ...
system BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the b ...
es. Power states are computer dependent and will vary from manufacturer to manufacturer. Power savings can be made in a number of ways including slowing/stopping the processor clock speed or shutting off power to complete sub-systems. Before switching power states, the $IDLE$ driver uses any available hardware assistance to detect if the application has been accessing other components in the system. For example, the application may be polling a serial port, or updating a graphics screen. If this is the case, the device driver determines that the application is not in fact idle and overrides the kernel's call to switch power states by passing information back up the layers and allowing application execution to resume.
COMMAND.COM COMMAND.COM is the default command-line interpreter for MS-DOS, Windows 95, Windows 98 and Windows Me. In the case of DOS, it is the default user interface as well. It has an additional role as the usual first program run after boot (init proc ...
in DR DOS 5.0 and higher implements an internal command IDLE taking ON, OFF parameters to enable or disable the dynamic idle detection.


Detecting when an application is idle

An application is idle if it is waiting for some external event to occur, for example for a keystroke or a mouse movement, or for a fixed amount of time to pass. The DR-DOS kernel monitors all DOS API calls building up a profile of the applications behavior. Certain combinations of API calls suggest that the application is idle. The $IDLE$ driver is able to make the subtle distinction between a program that is genuinely idle, for instance one that is polling the keyboard in a tight loop, and one that is active but also polling the keyboard, to test for an abort key to be pressed. The driver makes this distinction by monitoring the time taken to go idle. If the time is within a specified period, the driver assumes that the program is idle, e.g. polling in a tight loop for a key to be pressed. If the time is outside the specified limit, the driver assumes that some processing has occurred in between polling the keyboard, and allows application execution to resume without switching power states. A local variable, IDLE_CNTDN, specifies the time against which the actual time taken to go idle is compared. The value for this variable is dynamically calculated at initialization and recalculated periodically.


Origins of BatteryMAX

The idle detection technique was first used to improve multi-tasking of single-tasking DOS applications in Digital Research's multi-tasking/multi-user
Concurrent DOS 386 Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
(CDOS386) operating system. Programs written for single-tasking operating systems such as MS-DOS/PC DOS can go into endless loops until interrupted; for example when waiting for a user to press a key. Whilst this is not a problem where there is no other process waiting to run, it wastes valuable processor time that could be used by other programs in a multi-tasking/multi-user environment like CDOS386. Applications designed for a multi-tasking environment use API calls to "sleep" when they are idle for a period of time but normal DOS applications do not do this so idle detection must be used. The Concurrent DOS 386 release included an Idle Detection function in the operating system kernel which monitored
DOS API The DOS API is an API which originated with 86-DOS and is used in MS-DOS/ PC DOS and other DOS-compatible operating systems. Most calls to the DOS API are invoked using software interrupt 21h ( INT 21h). By calling INT 21h with a subfunctio ...
calls to determine whether the application was doing useful work or in fact idle. If it was idle, the process was suspended allowing the dispatcher to schedule another process for execution.


Patent litigation

BatteryMAX and the "idle detection" patent played an important role in an alleged
patent infringement Patent infringement is the commission of a prohibited act with respect to a patented invention without permission from the patent holder. Permission may typically be granted in the form of a license. The definition of patent infringement may v ...
relating to software power management under operating system control. On 15 May 2009, St. Clair Intellectual Property Consultants. filed
civil action - A lawsuit is a proceeding by a party or parties against another in the civil court of law. The archaic term "suit in law" is found in only a small number of laws still in effect today. The term "lawsuit" is used in reference to a civil act ...
No. 09-354 in the United States District Court D. Delaware, against defendants Acer,
Dell Dell is an American based technology company. It develops, sells, repairs, and supports computers and related products and services. Dell is owned by its parent company, Dell Technologies. Dell sells personal computers (PCs), servers, data ...
, Gateway and
Lenovo Lenovo Group Limited, often shortened to Lenovo ( , ), is a Chinese multinational technology company specializing in designing, manufacturing, and marketing consumer electronics, personal computers, software, business solutions, and related se ...
and on 18 September 2009 filed civil action No. 09-704 against
Apple An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ancest ...
, and
Toshiba , commonly known as Toshiba and stylized as TOSHIBA, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. Its diversified products and services include power, industrial and social infrastructure systems, ...
The actions alleged infringement of several U.S. patents that they owned relating to software power management under operating system control. St. Clair asserted that Henry Fung had invented software power management under operating system control and alleged that these companies had infringed St. Clair's patents and therefore owed St. Clair
royalty payments A royalty payment is a payment made by one party to another that owns a particular asset, for the right to ongoing use of that asset. Royalties are typically agreed upon as a percentage of gross or net revenues derived from the use of an asset o ...
. Microsoft intervened on behalf of the defendants and filed a
declaratory judgment A declaratory judgment, also called a declaration, is the legal determination of a court that resolves legal uncertainty for the litigants. It is a form of legally binding preventive by which a party involved in an actual or possible legal ma ...
against St. Clair on 7 April 2010, seeking judgments of non-infringement and invalidity of the Fung patents. (D.I. 1, C.A. No. 10-282).
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 ser ...
filed an intervention on behalf of the defendants and this was granted on 4 June 2010 (D.I. 178, C.A. No. 09-354). Seattle law firm
Perkins Coie Perkins Coie is an American multinational law firm headquartered in Seattle, Washington. Founded in 1912, it is recognized as an Am Law 50 firm. It is the largest law firm headquartered in the Pacific Northwest and has 20 offices across the Un ...
, acting for the defendants, discovered BatteryMAX and Gross's idle detection patent during a
prior art Prior art (also known as state of the art or background art) is a concept in patent law used to determine the patentability of an invention, in particular whether an invention meets the novelty and the inventive step or non-obviousness criteria ...
search. Gross's patent had an earlier priority date than Fung's patents which if proven would undermine St. Clair's case. On 28 February 2011, Gross was hired by Intel as a subject matter expert to provide
expert witness An expert witness, particularly in common law countries such as the United Kingdom, Australia, and the United States, is a person whose opinion by virtue of education, training, certification, skills or experience, is accepted by the judge as ...
testimony for the defendants in the case. Gross provided evidence in his expert report that he, not Fung, had invented software power management under operating system control and sited the Idle Detection patent and the existence of BatteryMAX as proof of this. St. Clair filed a motion to exclude opinions concerning BatteryMAX, in an attempt to have Gross's expert report dismissed, but on 29 March 2013, the district court denied St. Clair's motion declaring Gross's testimony for the defendants as admissible, stating that "The Court agrees with Defendants that there is sufficient corroborating evidence that BatteryMAX was available to the public prior to the Fung patents' priority date. Further, the Court concludes that even if BatteryMAX did not predate the Fung patents, Mr. Gross's testimony ��would be relevant and helpful to the fact finder in an obviousness inquiry”.


See also

*
Advanced Power Management Advanced power management (APM) is an API developed by Intel and Microsoft and released in 1992 which enables an operating system running an IBM-compatible personal computer to work with the BIOS (part of the computer's firmware) to achieve po ...
(APM) *
Advanced Configuration and Power Interface Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management (e.g. putting unused hardware components to sleep), auto co ...
(ACPI)


References


External links

* {{Digital Research DOS technology Digital Research Battery (electricity)