# US 8,543,803 B2 · Apparatus, system, and method for accurate automated scheduling of computer suspend and resume

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,803 B2
- Document ID: US8543803B2
- Status: Granted
- Kind: B2
- Application number: 12/389,892
- Filed: 2009-02-20
- Published: 2010-08-26
- Granted: 2013-09-24
- Earliest claimed: 2009-02-20
- Assignees: Lenovo (Singapore) Pte. Ltd.
- Applicants: Jeffrey Mark Estroff; Mikio Hagiwara; James Patrick Hoff; Seiichi Kawano; Randall Scott Springfield
- Inventors: Jeffrey Mark Estroff; Mikio Hagiwara; James Patrick Hoff; Seiichi Kawano; Randall Scott Springfield
- Web page: https://patentgrep.com/patent/US8543803B2

## CPC

- G06F 9/4418: {Suspend and resume; Hibernate and awake}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus, system, and method are disclosed for suspend-resume scheduling in conjunction with an operation requiring a suspend-resume cycle of a computer 200, including updating, for purposes of system configuration management, a non-volatile memory 506, such as an electrically erasable programmable read-only memory (“EEPROM”) 702. A control module 402 sends 806 a request to update the EEPROM 702. A suspend module 404 suspends 818 an operating system 204. A standby module 406 prepares 904 the computer 200 to enter a standby state, estimates 914 a sufficient amount of time to enter the standby state, places 916 the estimate into an alarm register 608, and then enters 918 the standby state. An update module 308 exits 1004 the standby state in response to an alarm signal 612, receives the request if present 1008, writes 1012 the EEPROM 702 with the updated information, and resumes 1018 the operating system 204.

## Claims

### Claim 1

An apparatus comprising:
a control module that sends a request for an operation requiring a suspend-resume cycle of a computer;
a suspend module activated by the control module that suspends an operating system of the computer; and
a standby module activated by the suspend module and responsive to the request from the control module that
prepares to enter a standby state of the computer,
estimates a sufficient amount of time for the computer to transition to the standby state,
adjusts an alarm of the computer to wake the computer out of the standby state when the sufficient amount of time elapses, and
enters the standby state
wherein the control module, the suspend module, and the standby module comprise one or more of logic hardware and executable code, the executable code stored on one or more non-transitory computer-readable media devices.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the control module comprises an application.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the suspend module comprises a utility of the operating system.

### Claim 4 (depends on 3)

The apparatus of claim 3, wherein the standby module comprises a utility of firmware.

### Claim 5 (depends on 4)

The apparatus of claim 4, further comprising a communication module that conveys the request from the operating system to the firmware.

### Claim 6 (depends on 1)

The apparatus of claim 1, further comprising an update module that
exits the standby state in response to the alarm,
receives the request,
updates a non-volatile memory of the computer, and
resumes the operating system.

### Claim 7

A system comprising:
a computer having an operating system and firmware;
a control module that sends a request to update a non-volatile memory of the computer;
a communication module that conveys the request from the operating system to the firmware;
a suspend module activated by the control module that suspends the operating system;
a standby module activated by the suspend module and responsive to the request from the control module that
prepares to enter a standby state of the computer,
estimates a sufficient amount of time for the computer to transition to the standby state,
adjusts an alarm of the computer to wake the computer out of the standby state when the sufficient amount of time elapses, and
enters the standby state; and
an update module that
exits the standby state in response to the alarm,
receives the request,
updates the non-volatile memory, and
resumes the operating system
wherein the control module, the suspend module, and the standby module comprise one or more of logic hardware and executable code, the executable code stored on one or more non-transitory computer-readable media devices.

### Claim 8 (depends on 7)

The system of claim 7, further comprising a mailbox, accessible both to the operating system and the firmware, through which the request is conveyed by the communication module.

### Claim 9 (depends on 8)

The system of claim 8, wherein the communication module utilizes a system management interrupt to access the mailbox.

### Claim 10 (depends on 7)

The system of claim 7, wherein the non-volatile memory comprises an electrically erasable programmable read-only memory.

### Claim 11 (depends on 10)

The system of claim 10, wherein the electrically erasable programmable read-only memory stores hardware configuration settings.

### Claim 12 (depends on 7)

The system of claim 7, wherein a real-time clock comprises the alarm.

### Claim 13

A computer program product comprising a non-transitory computer readable medium having computer usable program code executable to perform operations, the operations of the computer program product comprising:
sending a request to update a non-volatile memory of a computer;
suspending an operating system of the computer;
preparing to enter a standby state of the computer;
estimating a sufficient amount of time for the computer to transition to the standby state;
adjusting an alarm of the computer to wake the computer out of the standby state when the sufficient amount of time elapses;
entering the standby state;
exiting the standby state in response to the alarm;
receiving the request;
updating the non-volatile memory; and
resuming the operating system.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the request is conveyed through a mailbox.

### Claim 15 (depends on 13)

The computer program product of claim 13, further comprising an operation of presetting the alarm to a high time value having a unique signature.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the unique signature indicates the existence of the request.

### Claim 17 (depends on 13)

The computer program product of claim 13, wherein the operation of updating comprises:
unlocking the non-volatile memory;
writing the non-volatile memory as specified by the request; and
locking the non-volatile memory.

### Claim 18

A machine-implemented method comprising the steps of:
preparing to enter a standby state of a computer;
estimating a sufficient amount of time for the computer to transition to the standby state;
adjusting an alarm of the computer to wake the computer out of the standby state when the sufficient amount of time elapses; and
entering the standby state.

### Claim 19 (depends on 18)

The method of claim 18, further comprising the steps of:
sending a request to update a non-volatile memory of the computer; and
suspending an operating system of the computer.

### Claim 20 (depends on 19)

The method of claim 19, further comprising a step of presetting the alarm to a high time value having a unique signature.

### Claim 21 (depends on 20)

The method of claim 20, wherein the unique signature indicates existence of the request.

### Claim 22 (depends on 19)

The method of claim 19, wherein the step of suspending further comprises saving data and status information of the operating system.

### Claim 23 (depends on 18)

The method of claim 18, further comprising the steps of:
exiting the standby state in response to the alarm;
receiving the request;
updating the non-volatile memory; and
resuming the operating system.

### Claim 24 (depends on 23)

The method of claim 23, wherein the step of updating comprises:
unlocking the non-volatile memory;
writing the non-volatile memory as specified by the request; and
locking the non-volatile memory.

### Claim 25 (depends on 23)

The method of claim 23, wherein the step of resuming further comprises restoring data and status information of the operating system.
