IP Library Granted Patent US 11,962,335
Granted Patent B2
US 11,962,335 · App. 18/144,524 · Granted Apr 16, 2024

Compression and decompression in hardware for data processing

Inventor: Reiner Alwyn Pope (Sunnyvale, CA)
Assignee: Google LLC
H03M7/42H03M7/005H03M7/6011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,962,335
App. No.
18/144,524
Granted
Apr 16, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer-readable storage media for hardware compression and decompression. A system can include a decompressor device coupled to a memory device and a processor. The decompressor device can be configured to receive, from the memory device, compressed data that has been compressed using an entropy encoding, process the compressed data using the entropy encoding to generate uncompressed data, and send the uncompressed data to the processor. The system can also include a compressor device configured to generate, from uncompressed data, a probability distribution of codewords, generate a code table from the probability distribution, and compress incoming data using the generated code table.

Claims (72)

1. A system, comprising:

one or more memory devices including a first memory device;

one or more processors including a first processor, wherein the one or more processors are coupled to the one or more memory devices; and

a decompressor device coupled at least to the first memory device and the first processor, wherein the decompressor device is configured to:

receive, from the first memory device, compressed data that has been compressed using an entropy encoding,

process the compressed data using the entropy encoding to generate uncompressed data, and

send the uncompressed data to the first processor,

wherein the one or more processors are configured to generate the compressed data from input data comprising model parameter values by processing the input data to generate a probability distribution of codewords in the input data, and to generate a code table based on the probability distribution of the codewords in the input data.

2. The system of claim 1 ,

wherein the model parameter values are associated with a plurality of operation layers; and

wherein the one or more processors are further configured to:

generate, for each layer, a respective probability distribution of codewords for respective model parameter values in the layer, and

generate, for each layer and from the respective probability distribution of codewords for the layer, a respective layer code table.

3. The system of claim 2 , wherein the decompressor device is further configured to:

identify first compressed model parameter values corresponding to a first layer of the plurality of layers, and

process the first compressed model parameter values using the entropy encoding and a first layer code table corresponding to the first layer.

4. The system of claim 1 ,

wherein the model parameter values are each represented in a floating point format comprising at least an exponent, and

wherein the one or more processors are further configured to generate the probability distribution of codewords using exponents of the model parameter values as codewords.

5. The system of claim 1 ,

wherein the model parameter values are associated with a plurality of operation layers and are each represented in a floating point format comprising at least an exponent; and

wherein the one or more processors are further configured to:

generate, for each layer, a respective probability distribution of codewords for respective model parameter values in the layer using exponents of the model parameter values of the layer, and

generate, for each layer and from the respective probability distribution for the layer, a respective layer code table.

6. The system of claim 1 ,

wherein the compressed data is first compressed data and the uncompressed data is first uncompressed data, and

wherein the system further comprises a compressor device coupled at least to the first memory device and the first processor, wherein the compressor device is configured to:

receive second uncompressed data from the first processor;

process the second uncompressed data using the entropy encoding to generate second compressed data; and

send the second compressed data to the first memory device.

7. The system of claim 6 , wherein at least one of the compressor device and the decompressor device is implemented as one or more integrated circuits coupled to the first memory device and the first processor by one or more circuit interconnects.

8. The system of claim 6 ,

wherein the code table corresponding to the entropy encoding is stored on the first memory device, and

wherein at least one of the decompressor device and the compressor device is configured to process data using the entropy encoding by accessing the code table from the first memory device.

9. The system of claim 6 , wherein the compressor device is further configured to:

receive third uncompressed data from the first memory device;

generate, from the third uncompressed data, a probability distribution of codewords from the third uncompressed data;

generate a code table from the probability distribution of the codewords;

process the third uncompressed data using the generated code table to generate third compressed data; and

send the third compressed data and the generated code table to the first memory device.

10. The system of claim 9 , wherein the decompressor device is further configured to:

receive, from the first memory device, the generated code table; and

process the third compressed data using the entropy encoding and the code table.

11. The system of claim 1 , wherein the one or more processors are configured to:

store the code table in the first memory device; and

wherein the decompressor device is configured to process the compressed data by accessing the code table stored in the first memory device.

12. The system of claim 1 ,

wherein the decompressor device comprises a plurality of entropy coders configured to decompress data using the entropy encoding, and

wherein in processing the data using the entropy coding, the decompressor device is configured to:

distribute the compressed data across each of the plurality of entropy coders;

process the compressed data across each of the plurality of entropy coders to generate respective output decompressed data; and

generate the decompressed data corresponding to the compressed data from the respective output decompressed data of each of the plurality of entropy coders.

13. The system of claim 12 , wherein the number of entropy coders that the decompressor device comprises depends at least on (i) the maximum bandwidth between the first memory device and the first processor, and (ii) the maximum bandwidth of each entropy coder.

14. A decompressor device for data decompression, wherein the decompression device is configured to:

receive, from a first memory device, compressed data, wherein the compressed data has been compressed using an entropy encoding;

process the compressed data to generate uncompressed data; and

send the uncompressed data to a first processor,

wherein the compressed data is data compressed from input data comprising model parameter values, the compressed data being generated by processing the input data to generate a probability distribution of codewords from the input data, and wherein a code table is generated from the probability distribution of the codewords in the input data.

15. The decompressor device of claim 14 , wherein the decompressor device is an integrated circuit coupled to the first memory device and the first processor by one or more circuit interconnects.

16. The decompressor device of claim 14 , wherein the decompressor device is further configured to process the compressed data using the code table.

17. The decompressor device of claim 16 , wherein the code table comprises a plurality of layer code tables, each layer code table corresponding to codewords from a plurality of model parameter values of a respective layer of a plurality of operation layers.

18. The decompressor device of claim 14 ,

wherein the plurality of model parameter values are each represented in a floating point format comprising at least an exponent; and

wherein the probability distribution of codewords is generated using exponents of the model parameter values as codewords.

19. A method for data decompression performed by a decompressor device, the method comprising:

receiving, by the decompressor device and from a first memory device, compressed data, wherein the compressed data has been compressed using an entropy encoding;

processing, by the decompressor device, the compressed data to generate uncompressed data; and

sending, by the decompressor device, the uncompressed data to a first processor,

wherein the compressed data is data compressed from input data comprising model parameter values, the compressed data being generated by processing the input data to generate a probability distribution of codewords from the input data, and wherein a code table is generated from the probability distribution of the codewords in the input data.

20. The method of claim 19 ,

wherein the model parameter values are each represented in a floating point format comprising at least an exponent, and

wherein the one or more processors are further configured to generate the probability distribution of codewords using exponents of the model parameter values as codewords.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2023
From: POPE, REINER ALWYN
To: GOOGLE LLC
Reel/Frame 063624/0455 →
Continuity (2)
Continuation 17328452 · May 24, 2021
Related Publication 20230318621A1 · Oct 5, 2023
Cited By (1)
US 12,537,541