Memory system and host device
US-2024394189-A1 · Nov 28, 2024 · US
US9319489B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9319489-B2 |
| Application number | US-201314026726-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 13, 2013 |
| Priority date | Apr 27, 2009 |
| Publication date | Apr 19, 2016 |
| Grant date | Apr 19, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A network adapter receives a request to store a data block. The data block is sent from the network adapter to a compression module. The compression module generates a compressed data block from the data block. The compressed data block or a reference to the compressed data block is stored in a buffer cache. The compressed data block is stored in nonvolatile memory. It is determined that the compressed data block should be flushed a storage device. In response to determining that the compressed data block should be flushed to the storage device, the compressed data block is flushed from the nonvolatile memory to the storage device.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: receiving, at a network adapter of a storage controller, a data block to store; sending, from the network adapter to a compression module of the storage controller, the data block; in response to receiving the data block from the network adapter, generating, by the compression module, a compressed data block from the data block; storing, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the storage controller comprises the buffer cache; storing, by the compression module, the compressed data block in nonvolatile memory, wherein the storage controller comprises the nonvolatile memory; determining, by the storage controller, that the compressed data block should be flushed to a physical storage device coupled with the storage controller; and in response to determining that the compressed data block should be flushed to the physical storage device, flushing the compressed data block from the nonvolatile memory to the physical storage device. 2. The computer-implemented method of claim 1 , wherein generating the compressed data block comprises: generating a compression group comprising a plurality of logically related compressed data blocks, wherein the plurality of logically related compressed data blocks comprise the compressed data block. 3. The computer-implemented method of claim 2 , wherein storing the compressed data block in the nonvolatile memory comprises storing the compression group in the nonvolatile memory. 4. The computer-implemented method of claim 1 , further comprising, in response to a request to perform an operation on the data block, reading, by the compression module, the compressed data block from the nonvolatile memory; decompressing, by the compression module, the compressed data block; and performing the operation on the data block. 5. The computer-implemented method of claim 1 , wherein determining that the compressed data block should be flushed to the physical storage device comprises determining that a consistency point has been reached. 6. The computer-implemented method of claim 2 , wherein flushing the compressed data block from the nonvolatile memory to the physical storage device comprises storing the compression group adjacent to an uncompressed data block on the physical storage device. 7. The computer-implemented method of claim 1 , further comprising: receiving a request for the data block; determining that the compressed data block is in the nonvolatile memory; in response to determining that the compressed data block is in the nonvolatile memory, reading, by the compression module, the compressed data block from the nonvolatile memory; decompressing, by the compression module, the compressed data block; and sending, by the compression module, the compressed data block to the network adapter. 8. A device comprising: a processor; nonvolatile memory; and a computer readable storage medium coupled with the processor, wherein the computer readable storage medium includes instructions which, when executed by the processor, cause the device to: receive, from a network adapter, a data block to store; in response to receiving the data block, generating, by a compression module, a compressed data block from the data block; store, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the device comprises the buffer cache; store, by the compression module, the compressed data block in nonvolatile memory; determine that the compressed data block should be flushed to a storage device coupled with the device; and in response to a determination that the compressed data block should be flushed to the storage device, flush the compressed data block from the nonvolatile memory to the storage device. 9. The device of claim 8 , wherein instructions which, when executed by the processor, cause the device to generate the compressed data block comprise instructions which, when executed by the processor, cause the device to generate a compression group comprising a plurality of logically related compressed data blocks, wherein the plurality of logically related compressed data blocks comprise the compressed data block. 10. The device of claim 9 , wherein the instructions which, when executed by the processor, cause the device to store the compressed data block in the nonvolatile memory comprise instructions which, when executed by the processor, cause the device to: store the compression group in the nonvolatile memory. 11. The device of claim 8 , wherein the instructions which, when executed by the processor, cause the device to determine that the compressed data block should be flushed to the storage device comprise instructions which, when executed by the processor, cause the device to: determine that a consistency point has been reached. 12. The device of claim 9 , wherein the instructions which, when executed by the processor, cause the device to flush the compressed data block from the nonvolatile memory to the storage device comprise instructions which, when executed by the processor, cause the device to store the compression group adjacent to an uncompressed data block on the storage device. 13. The device of claim 9 , wherein the computer readable storage medium further includes instructions which, when executed by the processor, cause the device to: in response to a request to perform an operation on the data block, read, by the compression module, the compressed data block from the nonvolatile memory; decompress, by the compression module, the compressed data block; and perform the operation on the data block. 14. A non-transitory computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising computer usable program code to: receive, from a network adapter of a storage controller, a data block to store; in response to receiving the data block, generate, by a compression module of the storage controller, a compressed data block from the data block; store, by the compression module, the compressed data block or a reference to the compressed data block in a buffer cache, wherein the storage controller comprises the buffer cache; store, by the compression module, the compressed data block in nonvolatile memory, wherein the storage controller comprises the nonvolatile memory; determine that the compressed data block should be flushed to a storage device coupled with the device; and in response to a determination that the compressed data block should be flushed to the storage device, flush the compressed data block from the nonvolatile memory to the storage device. 15. The computer readable storage medium of claim 14 , wherein the computer usable program code to generate the compressed data block comprises computer usable program code to: generate a compression group comprising a plurality of compressed data blocks, wherein the plurality of compressed data blocks comprise the compressed data block. 16. The computer readable storage medium of claim 15 , wherein the computer usable program code to store the compressed data block in the nonvolatile memory comprises computer usable program code to: store the compression group in the nonvolatile memory. 17. The computer readable storage medium of claim 14 , wherein the computer usable program code to determine that the compressed data block should be flushed to the storage devic
Flash memory · CPC title
Solid state disk · CPC title
Compressed data · CPC title
Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title
Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.