IP Library Granted Patent US 10,459,840
Granted Patent B2
US 10,459,840 · App. 13/879,122 · Granted Oct 29, 2019

Methods and devices for reducing compressed page loading time on page fault

Inventors: Vijaya Kumar Kilari (Bangalore, IN); Saugata Das Purkayastha (Bangalore, IN)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (publ)
G06F12/08G06F3/0608G06F3/0638G06F3/0679G06F12/0246G11B20/00007G11B20/12G06F2212/401G06F2212/7203G11B2020/1288
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 10,459,840
App. No.
13/879,122
Granted
Oct 29, 2019
Kind
B2
Abstract

Exemplary embodiments provide for compressing, storing, retrieving and decompressing paged code from mass storage devices. By evaluating the size of compressed virtual pages relative to the storage page (read unit) of the mass storage device into which the compressed virtual pages are to be stored, decisions can be made which facilitate later read out and decompression of those compressed virtual pages. According to exemplary embodiments, a virtual page can be stored uncompressed, compressed but undivided or compressed and subdivided into a plurality of parts based on an evaluation.

Claims (48)

1. A method for storing a plurality of virtual pages in a mass storage device, the method comprising:

compressing each virtual page to generate a corresponding compressed virtual page having a corresponding compressed size;

evaluating said compressed size of each of said compressed virtual pages relative to a page size of said mass storage device; and

selectively storing each of the plurality of virtual pages in said mass storage device uncompressed, compressed but without subdividing, or subdivided with compressed subparts, in a manner that is based on at least one of: an uncompressed size of the respective virtual page and said compressed size of the respective virtual page, selected based on said evaluating,

wherein, for each one of the plurality of virtual pages that is stored in said mass storage device subdivided with compressed subparts, said storing comprises:

concluding that said compressed size of the one of the plurality of virtual pages will not fit within one page of said mass storage device;

in response to said concluding, dividing the one of the plurality of virtual pages into a plurality of subdivided uncompressed parts of the one of the plurality of virtual pages;

independently performing said compressing, said evaluating, and said selectively storing for each of said plurality of subdivided uncompressed parts of the one of the plurality of virtual pages.

2. The method of claim 1 , further comprising:

padding one of said compressed virtual pages, if needed, to reach a next highest predefined chunk size relative to said compressed size of the one of said compressed virtual pages, to generate a compressed virtual page at said next highest predefined chunk size.

3. The method of claim 1 , further comprising:

storing one or more of the compressed virtual pages in a page of said mass storage device, said compressed virtual pages fitting within said page of said mass storage device, and

padding a remaining storage space in said page of said mass storage device.

4. The method of claim 1 , wherein said storing further comprises:

storing, as uncompressed, said compressed virtual pages for which said corresponding compressed size is equal to said page size of said mass storage device.

5. The method of claim 1 , wherein said storing further comprises:

storing, as compressed but without subdividing, said compressed virtual pages for which said corresponding compressed size is less than or equal to said page size of said mass storage device.

6. The method of claim 1 , further comprising:

storing, in compressed subparts, said compressed virtual pages for which said corresponding compressed size is greater than said page size of said mass storage device.

7. The method of claim 1 , further comprising:

reordering, prior to storing, said uncompressed virtual pages, said compressed virtual pages and said compressed subparts of said virtual pages based on the uncompressed size of the uncompressed virtual pages and the compressed size of the compressed virtual pages and the compressed subparts of said virtual pages.

8. The method of claim 1 , further comprising:

storing, in said mass storage device, a mapping table which includes information regarding where said uncompressed virtual pages, said compressed virtual pages and said compressed subparts of said virtual pages are stored in said mass storage device.

9. An electronic device comprising:

a first memory interface configured to connect at least one mass storage device, a second memory interface configured to connect at least one random access memory (RAM);

a processor configured to execute a memory management function, the memory management function comprising storing a plurality of virtual pages into the at least one mass storage device when said at least one mass storage device is connected to the first memory interface,

wherein said memory management function is configured to: compress each virtual page to generate a corresponding compressed virtual page having a corresponding compressed size;

evaluate said compressed size of each of said compressed virtual pages relative to a page size of said mass storage device; and

selectively store each of the plurality of virtual pages in said mass storage device uncompressed, compressed but without subdividing, or subdivided with compressed subparts, in a manner that is based on at least one of: an uncompressed size of the respective virtual page and said compressed size of the respective virtual page, selected based on said evaluating,

wherein, for each one of the plurality of virtual pages that is stored in said mass storage device subdivided with compressed subparts, said storing comprises:

concluding that said compressed size of the one of the plurality of virtual pages will not fit within one page of said mass storage device;

in response to said concluding, dividing the one of the plurality of virtual pages into a plurality of subdivided uncompressed parts of the one of the plurality of virtual pages;

independently performing said compressing, said evaluating, and said selectively storing for each of said plurality of subdivided uncompressed parts of the one of the plurality of virtual pages.

10. The electronic device of claim 9 , wherein said memory management function is further configured to:

pad one of said compressed virtual pages, if needed, to reach a next highest predefined chunk size relative to said compressed size of the one of said compressed virtual pages, to generate a compressed virtual page at said next highest predefined chunk size.

11. The electronic device of claim 9 , wherein said memory management function is further configured to:

store one or more of the compressed virtual pages in a page of said mass storage device, said compressed virtual pages fitting within said page of said mass storage device, and

pad a remaining storage space in said page of said mass storage device.

12. The electronic device of claim 9 , wherein said storing further comprises:

storing, as uncompressed, said compressed virtual pages for which said corresponding compressed size is equal to said page size of said mass storage device.

13. The electronic device of claim 9 , wherein said storing further comprises:

storing, as compressed but without subdividing, said compressed virtual pages for which said corresponding compressed size is less than or equal to said page size of said mass storage device.

14. The electronic device of claim 9 , wherein said memory management function is further configured to:

store, in compressed subparts, said compressed virtual pages for which said corresponding compressed size is greater than said page size of said mass storage device.

15. The electronic device of claim 9 , wherein said memory management function is further configured to:

reorder, prior to storing, said uncompressed virtual pages, said compressed virtual pages and said compressed subparts of said virtual pages based on the uncompressed size of the uncompressed virtual pages and the compressed size of the compressed virtual pages and the compressed subparts of said virtual pages.

16. The electronic device of claim 9 , wherein said memory management function is further configured to:

store, in said mass storage device, a mapping table which includes information regarding where said uncompressed virtual pages, said compressed virtual pages and said compressed subparts of said virtual pages are stored in said mass storage device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2019
From: OPTIS CIRCUIT TECHNOLOGY, LLC,
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 048501/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2016
From: ST-ERICSSON SA, EN LIQUIDATION
To: OPTIS CIRCUIT TECHNOLOGY, LLC
Reel/Frame 041175/0110 →
STATUS CHANGE-ENTITY IN LIQUIDATION Recorded Feb 2, 2016
From: ST-ERICSSON SA
To: ST-ERICSSON SA, EN LIQUIDATION
Reel/Frame 037739/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2013
From: KILARI, VIJAYA KUMAR; DAS PURKAYASTHA, SAUGATA
To: ST-ERICSSON SA
Reel/Frame 031071/0745 →
Priority Claims (1)
IN 2533/DEL/2010 · Oct 22, 2010 · national
Continuity (1)
Related Publication 20130326170A1 · Dec 5, 2013
Cited By (1)
US 12,608,315