CPC G06F 3/0622 (2013.01) [G06F 3/0659 (2013.01); G06F 3/0661 (2013.01); G06F 3/0673 (2013.01); G06F 21/57 (2013.01)] | 20 Claims |
1. A system, comprising:
a system memory comprising an uncompressed region and a compressed region; and
a memory manager configured to:
receive a request for a compressed memory page of a plurality of compressed memory pages in the compressed region of the system memory, wherein different pages of the plurality of compressed memory pages require different amounts of time to decompress;
read the requested compressed memory page from the compressed region;
start a decompression timer for a constant decompression time for the plurality of compressed memory pages, wherein the constant decompression time is based on an analysis of decompression times of a plurality of memory pages to be less than a worst-case decompression time for the plurality of memory pages;
after starting the decompression timer, generate a decompressed memory page based on decompression of the entire requested compressed memory page, wherein generation of the decompressed memory page is completed prior to the decompression timer reaching the constant decompression time; and
in response to the decompression timer reaching the constant decompression time, fulfill the request and write the decompressed memory page to the uncompressed region of the system memory.
|