Transparent hardware-assisted memory decompression

US2016239209A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016239209-A1
Application numberUS-201615043023-A
CountryUS
Kind codeA1
Filing dateFeb 12, 2016
Priority dateFeb 13, 2015
Publication dateAug 18, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Provided are methods and systems for memory decompression using a hardware decompressor that minimizes or eliminates the involvement of software. Custom decompression hardware is added to the memory subsystem, where the decompression hardware handles read accesses caused by, for example, cache misses or requests from devices to compressed memory blocks, by reading a compressed block, decompressing it into an internal buffer, and returning the requested portion of the block. The custom hardware is designed to determine if the block is compressed, and determine the parameters of compression, by checking unused high bits of the physical address of the access. This allows compression to be implemented without additional metadata, because the necessary metadata can be stored in unused bits in the existing page table structures.

First claim

Opening claim text (preview).

1 . A hardware decompressor, the decompressor comprising: a hardware device disposed between a processing unit and a physical computer memory, wherein the hardware device is configured to: receive a memory access read request, the received request causing a cache miss or page fault; determine whether data requested by the memory access read request is in a compressed memory block; responsive to a determination that the data requested by the memory access read request is not in a compressed memory block, forward the memory access read request to the physical computer memory; responsive to a determination that the data requested by the memory access read request is in a compressed memory block, determine whether the data from the compressed memory block has been previously decompressed and stored in a dedicated storage medium local to the hardware device; responsive to a determination that the data from the compressed memory block is stored in the storage medium, return the data from the storage medium in response to the memory access read request; and responsive to a determination that the data from the compressed memory block is not stored in the storage medium, allocate storage space in the storage medium; read the data from the compressed memory block; decompress the read data from the compressed memory block into the storage medium; and return the decompressed data from the storage medium in response to the memory access read request. 2 . The hardware decompressor of claim 1 , wherein the hardware device is configured to: read the data from the compressed memory block until the data requested by the memory access read request is located; and decompress the read data from the compressed memory block into the storage medium only to the point where the requested data is fully retrieved. 3 . The hardware decompressor of claim 1 , wherein the hardware device is configured to: determine whether the data requested by the memory access read request is in the compressed memory block by checking unused bits of page table structures that store information about virtual memory pages. 4 . The hardware decompressor of claim 1 , wherein the hardware device is configured to: selectively alternate between a full memory decompression mode and a partial memory decompression mode. 5 . The hardware decompressor of claim 4 , wherein the hardware device is configured to: alternate between the full memory decompression mode and the partial memory decompression mode based on one or more performance parameters of a device or program associated with the received memory access read request. 6 . The hardware decompressor of claim 4 , wherein the hardware device is configured to: alternate between the full memory decompression mode and the partial memory decompression mode based on a signal received from a device or program associated with the received memory access read request. 7 . A method for memory decompression, the method comprising: receiving a memory access read request, the received request causing a cache miss or page fault to occur; determining whether data requested by the memory access read request is in a compressed memory block; in response to determining that the data requested by the memory access read request is not in a compressed memory block, sending the memory access read request to a physical computer memory; in response to determining that the data requested by the memory access read request is in a compressed memory block, determining whether the data from the compressed memory block has previously been decompressed by a hardware decompression device and stored in a dedicated storage medium local to the hardware decompression device; in response to determining that the data from the compressed memory block is stored in the dedicated storage medium local to the hardware decompression device, returning the data from the storage medium in response to the received memory access read request; and in response to determining that the data from the compressed memory block is not stored in the dedicated storage medium local to the hardware decompression device, allocating storage space in the storage medium local to the hardware decompression device; reading the data from the compressed memory block; decompressing the read data from the compressed memory block into the storage medium local to the hardware decompression device; and returning the decompressed data from the storage medium in response to the memory access read request. 8 . The method of claim 7 , wherein the hardware decompression device is disposed between a processing unit and the physical computer memory. 9 . The method of claim 7 , further comprising: reading the data from the compressed memory block until the data requested by the memory access read request is located; and decompressing the read data from the compressed memory block into the storage medium local to the hardware decompression device only to the point where the requested data is fully retrieved. 10 . The method of claim 7 , further comprising: determining whether the data requested by the memory access read request is in the compressed memory block by checking unused bits of page table structures that store information about virtual memory pages. 11 . The method of claim 7 , further comprising: selectively alternating between a full memory decompression mode and a partial memory decompression mode. 12 . The method of claim 11 , wherein the alternation between the full memory decompression mode and the partial memory decompression mode is based on one or more performance parameters of a device or program associated with the received memory access read request. 13 . The method of claim 11 , wherein the alternation between the full memory decompression mode and the partial memory decompression mode is based on a signal received from a device or program associated with the received memory access read request. 14 . A system for memory decompression, the system comprising: system memory; at least one processor coupled to the system memory; and a non-transitory computer-readable medium associated with the at least one processor, the non-transitory medium having instructions stored thereon that, when executed by the at least one processor, causes the at least one processor to: receive a memory access read request, the received request causing a cache miss or page fault to occur; determine whether data requested by the memory access read request is in a compressed memory block; in response to determining that the data requested by the memory access read request is not in a compressed memory block, send the memory access read request to the system memory; in response to determining that the data requested by the memory access read request is in a compressed memory block, determine whether the data from the compressed memory block has previously been decompressed and stored in a dedicated storage medium local to the at least one processor; in response to determining that the data from the compressed memory block is stored in the storage medium, return the data from the storage medium in response to the received memory access read request; and in response to determining that the data from the compressed memory block is not stored in the storage medium, allocate storage space in the storage medium; read the data from the compressed memory block; decompress the read data from the compressed memory block into the storage medium; and return the decompressed data from the storage medium in response to the memory access read request

Assignees

Inventors

Classifications

  • Single storage device · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • G06F3/064Primary

    Management of blocks · CPC title

  • by allocating resources to storage systems · CPC title

  • Data buffering arrangements · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016239209A1 cover?
Provided are methods and systems for memory decompression using a hardware decompressor that minimizes or eliminates the involvement of software. Custom decompression hardware is added to the memory subsystem, where the decompression hardware handles read accesses caused by, for example, cache misses or requests from devices to compressed memory blocks, by reading a compressed block, decompress…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/064. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 18 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).