Storage device that compresses data received from a host before writing therein
US-2018088811-A1 · Mar 29, 2018 · US
US10496312B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10496312-B2 |
| Application number | US-201715497258-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 26, 2017 |
| Priority date | Sep 27, 2016 |
| Publication date | Dec 3, 2019 |
| Grant date | Dec 3, 2019 |
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 method of operating a storage device including at least one nonvolatile storage and a storage controller configured to control the nonvolatile storage. A first type of request, original data and a first request information associated with the original data are received, in the storage controller, from an external host device, a compression operation to compress the original data to generate compressed data is performed in the storage controller, in response to the first type of request, and a write operation to write the compressed data in a data storage area of the nonvolatile storage is performed in the storage controller. The data storage area of the nonvolatile storage may store the first request information associated with the original data. The external host may manage mapping information in the form of a mapping table associated with compression/decompression at the storage device.
Opening claim text (preview).
What is claimed is: 1. A method of operating a storage device, comprising: receiving from an external host device, a first type of request, original data and first request information associated with the original data based on mapping information managed by the external host device, the first request information including a sector offset, a first stripe identifier that identifies a first stripe of a plurality of stripes of the nonvolatile storage device, and a sector number; performing, by a storage controller, a compression operation on the original data to generate compressed data, in response to receiving the first type of request; writing the compressed data in a data storage area of a nonvolatile storage device using the sector offset and the sector number, wherein the nonvolatile storage device is controlled by the storage controller; outputting, by the storage controller, a size of the compressed data to the host device; and updating, by the host device, the mapping information using the received size; wherein the first request information associated with the original data is stored in the data storage area of the nonvolatile storage, and wherein in response to the storage controller determining that available sectors of the first stripe are insufficient to store all of the compressed data, the storage controller stores the compressed data in a second stripe of the plurality different from the first stripe, and the storage controller transmits to the external host device, a second stripe identifier of the second stripe and information of the available sectors of the first stripe. 2. The method of claim 1 , further comprising: transmitting, by the storage controller, a return information associated with the writing of the compressed data to the external host device after the writing of the compressed data in the nonvolatile storage is completed. 3. The method of claim 2 , wherein the first request information includes a size of the original data, and wherein the return information includes a size information of the compressed data in the data storage area and a status signal indicating a status of the writing of the compressed data. 4. The method of claim 3 , wherein the first request information further includes a starting logical block address of the first stripe of the nonvolatile storage in which the compressed data is to be stored based on the mapping information in the external host device, and wherein the return information further includes the compressed data. 5. The method of claim 3 , wherein the first request information further includes a first stripe identifier that identifies an engine identifier that identifies a selected compression engine of a plurality of compression engines, wherein the selected compression engine performs the compression operation on the original data to generate the compressed data, and wherein the return information further includes a starting logical block address of the stripe of the nonvolatile storage in which the compressed data is stored. 6. The method of claim 1 , wherein the storage controller includes at least one compression/decompression engine, and the compression operation on the original data to generate the compressed data is performed by at least one compression engine of the at least one compression/decompression engine. 7. The method of claim 1 , wherein the storage controller includes a compression/decompression engine including a plurality of compression engines, and the compression operation on the original data to generate the compressed data is performed by a compression engine of the plurality of compression engines, and wherein the compression engine is selected according to a compression engine identifier that identifies one of the plurality of compression engines. 8. The method of claim 1 , wherein the storage controller includes at least one compression/decompression engine including a plurality of compression engines, the compression operation on the original data to generate the compressed data is performed in each of a plurality of compression engines in the at least one compression/decompression engine, and the storage controller transmits the compressed data output from one compression engine of the plurality of compression engines to the nonvolatile storage, wherein the one compression engine is selected based on a compression ratio of each of the plurality of compression engines. 9. The method of claim 1 , wherein after the writing of the compressed data is completed, the method further comprises: receiving, by the storage controller, a second type of request, and a second request information associated with the compressed data from the external host device; reading, by the storage controller, the compressed data from the data storage area in response to the second type of request; decompressing, by the storage controller, the compressed data to recover the original data; and transmitting, by the storage controller, the recovered original data to the external host device. 10. The method of claim 1 , further comprising: monitoring, by the external host device, an amount of a data stream transmitted between the external host device and the storage device; determining, by the external host device, whether the monitored amount of the data stream is greater than a threshold value; and adjusting, by the external host device, a number of issuances of the first type of request adaptively based on the determining whether the monitored amount of the data stream is greater than a threshold value. 11. The method of claim 10 , wherein the number of issuances of the first type of request is decreased in response to determining the monitored amount of the data stream is greater than the threshold value. 12. The method of claim 10 , wherein the number of issuances of the first type of request is increased in response to determining the monitored amount of the data stream is less than the threshold value. 13. The method of claim 9 , wherein the first type of request corresponds to a write after compression command (WACCMD) to direct that the original data is compressed into the compressed data and then the compressed data is written, and wherein the second type of request corresponds to a decompression after read command (DACCMD) to direct that the compressed data is read and then the read compressed data is decompressed. 14. The method of claim 1 , wherein the mapping information maps a logical address of the data storage area to the sector offset and the sector number, and the updating changes the sector number based on the received size. 15. A data storage system comprising: a host device including mapping information and generating first request information based on the mapping information; a storage device external to the host device, the storage device including a processor and a nonvolatile storage device, wherein the storage device is configured to: perform a compression operation on original data received from the host device to generate compressed data, in response to receipt of a first type of request from the host device, perform a write operation to write the compressed data in a data storage area of the nonvolatile storage, device using a sector offset, a first stripe identifier that identifies a first stripe of a plurality of stripes of the nonvolatile storage device, and a sector number included in the first request information received from the host device along with the request, and output a size of the compressed data to the host device; and a host interface configured to interface the storage device to the host device, wherein the host devic
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Improving I/O performance · CPC title
Data buffering arrangements · CPC title
Monitoring storage devices or systems · CPC title
in block erasable memory, e.g. flash memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.