Accessing compressed data of varying-sized quanta in non-volatile memory
US-9396104-B1 · Jul 19, 2016 · US
US10061747B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10061747-B2 |
| Application number | US-201514704128-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 5, 2015 |
| Priority date | May 7, 2014 |
| Publication date | Aug 28, 2018 |
| Grant date | Aug 28, 2018 |
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 compressed format is selected for storage of a matrix based on a computation to be performed using the matrix and architecture of a storage compute device to which the matrix is stored. Data of the matrix is stored on the storage compute device according to the compressed format. The computation is performed using the data via a computation unit that resides within the storage compute device.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: receiving a matrix from a host via a host interface of a data storage device, the host comprising a central processing unit and the data storage device comprising a local processor separate from the central processing unit of the host; selecting a compressed format for storage of the matrix based on a computation to be performed using the matrix and architectures of a computation unit of the storage compute device and the non-volatile memory to which the matrix is stored; storing data of the matrix on the non-volatile memory of the storage compute device according to the compressed format; and performing the computation using the data via a computation unit that resides within the storage compute device. 2. The method of claim 1 , wherein the compressed format is selected based on one or more of size of temporary storage buffers, page sizes of the storage compute device, and latency of the computation unit. 3. The method of claim 1 , wherein the computation comprises a multiplication, and wherein the compressed format is selected based on speed of accessing one of rows or columns of the matrix. 4. The method of claim 1 , further comprising creating an object metadata table for the matrix, the object metadata table including information about the compressed format. 5. The method of claim 1 , wherein performing the computation using the data via the computation unit comprising performing the computation in the compressed format. 6. The method of claim 1 , further comprising determining one or more additional compressed formats and storing the data of the matrix on the storage compute device according to the one or more additional compressed formats. 7. The method of claim 1 , further comprising determining a second compressed format for a results matrix of the computation, the second compressed format based on a second computation to be performed using the results matrix and the architecture of the storage compute device, and storing data of the results matrix on the storage compute device according to the second compressed format. 8. The method of claim 1 , wherein the host interface of the storage compute device receives the matrix and a command using a protocol associated with a legacy hard drive host interface, the command defining the computation to be performed on the matrix. 9. A storage compute device, comprising: a host interface; a channel interface that facilitates access to non-volatile memory; and a processing unit coupled to the host interface and the channel interface, the processing unit configured to: receive a matrix object from a host via the host interface, the host comprising a central processing unit separate from the processing unit of the storage compute device; determine a compressed format for storage of the matrix object to the non-volatile memory, the compressed format selected based on a computation to be performed using the matrix object and architecture of the non-volatile memory; receive data of the matrix object via the host interface and store the data to the non-volatile memory according to the compressed format; and perform the computation using the data. 10. The storage compute device of claim 9 , wherein the data of the matrix object is received via the host interface in an initial compressed format that is different than the compressed format, the processing unit further configured to additionally store the data in the initial compressed format. 11. The storage compute device of claim 9 , wherein the compressed format is selected based on one or more of size of temporary storage buffers, page sizes of the storage compute device, and latency of processing unit. 12. The storage compute device of claim 9 , wherein the computation comprises a multiplication, and wherein the compressed format is selected based on speed of accessing one of rows or columns of the matrix object. 13. The storage compute device of claim 9 , wherein the processing unit is further configured to create object metadata table for the matrix object, the object metadata table including information about the compressed format. 14. The storage compute device of claim 9 , wherein performing the computation comprises performing the computation in the compressed format. 15. The storage compute device of claim 9 , wherein the processing unit is further configured to determine one or more additional compressed formats and storing the data of the matrix object on the storage compute device according to the one or more additional compressed formats. 16. The storage compute device of claim 9 , wherein the processing unit is further configured to determine a second compressed format for a results matrix of the computation, the second compressed format based on a second computation to be performed using the results matrix and the architecture of the storage compute device, and storing data of the results matrix on the storage compute device according to the second compressed format. 17. A method, comprising: receiving, at a storage compute device from a host, matrix data and a computation to be performed on the matrix data by the storage compute device; selecting a format for storage of a matrix, the format selected based on the computation and known attributes of a hardware matrix computation engine of the storage compute device; storing data of the matrix on the storage compute device according to the format; and performing the computation using the stored data via the hardware matrix computation engine. 18. The method of claim 17 , wherein the attributes of the hardware matrix computation engine comprise any combination of: fetch patterns of the hardware matrix computation engine; size, speed, latency, and line size of temporary storage buffers; and width and latency of the hardware matrix computation engine. 19. The method of claim 17 , wherein the format is selected during a pre-processing step before performing the computation. 20. The method of claim 17 , wherein the format is selected adaptively as the computation is proceeding. 21. The method of claim 17 , wherein the format is determined based on any combination of density of the matrix data, locality of operands in memory, observed data access latencies, an amount of the matrix data fetched that is actually used for the computation before it is discarded from temporary storage buffers.
Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction · CPC title
Fixed length to variable length coding · CPC title
Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)} · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.