Operating System-Based Memory Compression for Embedded Systems
First Claim
Patent Images
1. A method of memory compression in an embedded system with an operating system supporting memory management, the method comprising the steps of:
- receiving a request from the operating system to swap a page of data to a swap area;
compressing the data into a compressed page of data; and
allocating space in a compressed area of memory to which the compressed page of data is swapped where, if the compressed data does not fit within the compressed area of memory, additional memory is requested from the operating system to enlarge the compressed area of memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A dynamic memory compression architecture is disclosed which allows applications with working data sets exceeding the physical memory of an embedded system to still execute correctly. The dynamic memory compression architecture provides “on-the-fly” compression and decompression of the working data in a manner which is transparent to the user and which does not require special-purpose hardware. A new compression technique is also herein disclosed which is particularly advantageous when utilized with the above-mentioned dynamic memory compression architecture.
-
Citations
15 Claims
-
1. A method of memory compression in an embedded system with an operating system supporting memory management, the method comprising the steps of:
-
receiving a request from the operating system to swap a page of data to a swap area;
compressing the data into a compressed page of data; and
allocating space in a compressed area of memory to which the compressed page of data is swapped where, if the compressed data does not fit within the compressed area of memory, additional memory is requested from the operating system to enlarge the compressed area of memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An embedded system comprising:
-
a processor;
memory partitioned into a compressed area and an uncompressed working area;
a memory management module which selects pages of data to swap out of the uncompressed working area;
a compression module which compresses the pages of data into compressed pages; and
a memory allocator which allocates space in the compressed area of memory to which the compressed pages of data can be swapped where, if the compressed data do not fit within the compressed area of memory, additional memory in the memory can be requested to enlarge the compressed area of memory.
-
- 8. The embedded system of claim 8 wherein executable code for the embedded system is stored in a compressed filesystem in memory such that the executable code need not be swapped out to the compressed area of memory.
-
11. A method of data compression comprising:
-
receiving a next word in a data sequence;
replacing the word with a first encoded data sequence if the word matches a frequently-occurring pattern;
orreplacing the word with a second encoded data sequence if the word matches or partially matches an entry in a lookup table;
orif the word neither matches the frequently-occurring nor matches or partially matches an entry in the lookup table, then adding a third encoded data sequence to the word and storing the word in the lookup table. - View Dependent Claims (12, 13, 14, 15)
-
Specification