IP Library Granted Patent US 8,423,711
Granted Patent B1
US 8,423,711 · App. 13/431,917 · Granted Apr 16, 2013

Compression solution for embedded devices and systems

Inventor: Binghua Duan (Shanghai, CN)
Assignee: Cambridge Silicon Radio Limited
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,423,711
App. No.
13/431,917
Granted
Apr 16, 2013
Kind
B1
Abstract

An embedded device is hibernated by storing state data of the embedded device to a non-volatile data storage medium, and powering off the embedded device. The embedded device is later woken up in response to the detection of a wakeup event. The state data stored in the RAM of the embedded device comprises one or more registers of a Central Processing Unit (CPU) of the embedded device, one or more registers of a system-on-chip (SOC) of the embedded device, and the system and applications code and data. Waking the embedded device comprises loading, from the non-volatile data storage medium, initial memory sections that are used to run a kernel of the embedded device. State data that is stored in the RAM of a system is compressed by dividing the RAM into a plurality of sections and independently choosing, for each section in the plurality of sections, a compression arithmetic.

Claims (50)

1. A method, comprising:

maintaining data needed for satellite positioning navigation in a set of volatile memory locations on a device;

compressing data in volatile memory of the device, including:

copying the data from the set of volatile memory locations to a separate RAM on the device;

after copying, dividing the RAM into a plurality of sections;

for each section in the plurality of sections, performing the steps of:

selecting a first compression arithmetic;

generating a set of compression data, the set of compression data comprising data in the each section compressed using the first compression arithmetic;

in response to determining that the set of compressed data does not meet a compression-ratio requirement, performing the steps of:

selecting a second compression arithmetic; and

regenerating the set of compression data, the set of compression data comprising data in the each section compressed using the second compression arithmetic; and

storing the set of compressed data to a non-volatile data storage medium.

2. The method of claim 1 , wherein compressing further includes storing information that indicates an association between a compression arithmetic used to generate the set of compressed data and the each section.

3. The method of claim 1 , wherein the first compression arithmetic has a higher decompression speed than the second compression arithmetic.

4. The method of claim 1 , wherein compressing the data is performed in response to a hibernation event.

5. The method of claim 4 , wherein the hibernation event includes powering off the device.

6. The method of claim 1 , further comprising, before generating the set of compressed data, copying a tiny kernel to the RAM.

7. The method of claim 1 , further comprising, before compressing, maintaining operating system code and data for the device in the RAM.

8. The method of claim 1 , further comprising, before compressing, maintaining application code and data for the device in the RAM.

9. The method of claim 1 , wherein the set of volatile memory locations includes registers in a satellite positioning chipset of the device.

10. The method of claim 1 , wherein the set of volatile memory locations includes on-chip memory in a GPS chipset of the device.

11. The method of claim 1 , further comprising, before compressing, suspending peripheral components of the device.

12. The method of claim 1 , wherein the peripheral components include one or more of an LCD display, a touch panel, and an audio player.

13. The method of claim 1 , further comprising:

waking the device, wherein waking the device comprises:

for each section in the plurality of sections, performing the steps of:

selecting, based on information that indicates an association between the compression arithmetic used to generate the set of compressed data for the each section, a decompression arithmetic; and

decompressing the set of compressed data for the each section using the decompression arithmetic.

14. The method of claim 6 , further comprising:

waking the device, wherein waking the device comprises loading the tiny kernel to the RAM.

15. The method of claim 14 , further comprising, after loading the tiny kernel:

for each section in the plurality of sections, performing the steps of:

selecting, based on information that indicates an association between the compression arithmetic used to generate the set of compressed data for the each section, a decompression arithmetic; and

decompressing the set of compressed data for the each section using the decompression arithmetic.

16. The method of claim 14 , further comprising, after decompressing each section, loading a display framebuffer section of the device.

17. The method of claim 1 , wherein the RAM is an SDRAM.

18. The method of claim 1 , wherein the non-volatile storage is one of: a hard drive, an SD card, an MMC memory, and a flash memory.

19. An embedded device comprising a RAM and a non-volatile data storage medium, the embedded device further comprising:

a set of volatile memory locations that maintain data needed for satellite positioning navigation;

a hibernation program, the hibernation program performing a method of compressing data in volatile memory of the device, including:

copying the data from the set of volatile memory locations to a separate RAM on the device;

after copying, dividing the RAM into a plurality of sections;

for each section in the plurality of sections, performing the steps of:

selecting a first compression arithmetic;

generating a set of compression data, the set of compression data comprising data in the each section compressed using the first compression arithmetic;

in response to determining that the set of compressed data does not meet a compression-ratio requirement, performing the steps of:

selecting a second compression arithmetic; and

regenerating the set of compression data, the set of compression data comprising data in the each section compressed using the second compression arithmetic; and

storing the set of compressed data to a non-volatile data storage medium.

20. The embedded device of claim 19 , wherein the embedded device comprises a GPS receiver.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: DUAN, BINGHUA
To: SIRF TECHNOLOGY HOLDINGS, INC.
Reel/Frame 037718/0665 →
CHANGE OF NAME Recorded Feb 11, 2016
From: SIRF TECHNOLOGY HOLDINGS, INC.
To: CSR TECHNOLOGY HOLDINGS, INC.
Reel/Frame 037798/0233 →
Continuity (1)
Continuation 12609560 · Oct 30, 2009