# US 2021/0242880 A1 · Mixed-precision compression with random access

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0242880 A1
- Document ID: US20210242880A1
- Status: Published application
- Kind: A1
- Application number: 17/237,038
- Filed: 2021-04-21
- Published: 2021-08-05
- Earliest claimed: 2019-04-17
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Ilia OVSIANNIKOV
- Web page: https://patentgrep.com/patent/US20210242880A1

## CPC

- H03M 7/3066: {by means of a mask or a bit-map}
- H03M 7/6011: {Encoder aspects}
- G06F 9/30018: {Bit or string instructions}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/30038: {using a mask}
- G06F 9/30145: {Instruction analysis, e.g. decoding, instruction word fields}
- G06F 9/3818: {Decoding for concurrent execution}
- H03M 7/00: Conversion of a code where information is represented by a given sequence or number of digits to a code where the same {, similar or subset of} information is represented by a different sequence or number of digits
- H03M 7/6005: {Decoder aspects}
- H04L 5/023: {Multiplexing of multicarrier modulation signals, e.g. multi-user orthogonal frequency division multiple access [OFDMA] (multicarrier modulation H04L27/2601)}
- G06F 17/11: for solving equations {, e.g. nonlinear equations, general mathematical optimization problems (optimization specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06N 3/042: Knowledge-based neural networks; Logical representations of neural networks
- G06N 3/084: Backpropagation, e.g. using gradient descent
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A data compressor includes a zero-value remover, a zero bit mask generator and a non-zero values packer. The zero-value remover receives 2N bit streams of values and outputs 2N non-zero-value bit streams having zero values removed from each respective bit stream based on a selected granularity of compression for values contained in the bit streams. The zero bit mask generator receives the 2N bit streams of values and generates a zero bit mask corresponding to the selected granularity of compression. Each zero bit mask indicates a location of a zero value based on the selected granularity of compression. The non-zero values packer receives the 2N non-zero-value bit streams and forms at least one first group of packed non-zero values.

## Claims

### Claim 1

A data compressor, comprising:
a plurality of first multiplexers arranged in 2N rows and N columns in which N is an integer greater than 1, each first multiplexer comprising a two-input multiplexer, each input of a first multiplexer in a first column of the plurality of first multiplexers respectively receiving a bit stream of 2N bit streams of non-zero values, each respective bit stream of non-zero values having zero values removed from the bit stream based on a selected granularity of compression for values contained in the 2N bit streams, each respective non-zero-value bit stream comprising a bit-stream length based on data in the non-zero-value bit stream, and the first multiplexers in a last column of the plurality of first multiplexers outputting 2N bit streams of values as a first group of packed non-zero values in which each bit stream output from the plurality of first multiplexers comprises a same bit-stream length.

### Claim 2 (depends on 1)

The data compressor or claim 1, further comprising:
a zero-value remover that receives 2N bit streams of values, and that outputs the 2N non-zero-value bit streams having zero values removed from each respective bit stream based on the selected granularity of compression for values contained in the bit streams; and
a zero bit mask generator that receives the 2N bit streams of values and generates a zero bit mask corresponding to the selected granularity of compression, each zero bit mask indicating a location of a zero value based on the selected granularity of compression.

### Claim 3 (depends on 2)

The data compressor of claim 2, wherein the zero-value remover comprises a plurality of second multiplexers arranged in 2N rows and N columns, each second multiplexer comprising a two-input multiplexer, each input of a second multiplexer in a first column of the plurality of second multiplexers receiving a respective bit stream of 2N channels of bit streams, each respective bit stream comprising a bit-stream length based on data in the bit stream, and the second multiplexers in a last column outputting the 2N bit streams of non-zero-values.

### Claim 4 (depends on 2)

The data compressor of claim 2, further comprising a write arbiter that receives the first group of packed non-zero values and zero bit masks corresponding to the first group of packed non-zero values, the write arbiter transmitting at least one of the first group of packed non-zero values, and the zero bit masks corresponding to the first group of packed non-zero values.

### Claim 5 (depends on 4)

The data compressor of claim 4, wherein the write arbiter transmits over a bus the first group of packed non-zero values or the zero bit masks corresponding to the first group of packed non-zero values based on an accumulated length of the first group of packed non-zero values or an accumulated length of the zero bit masks corresponding to the first group of packed non-zero values.

### Claim 6 (depends on 2)

The data compressor of claim 2, wherein the selected granularity of compression comprises a nibble of a bit stream, a byte of a bit stream, or a plurality of bytes of a bit stream.

### Claim 7 (depends on 2)

The data compressor of claim 2, wherein each zero bit mask indicates a location of a zero value based on a nibble of a bit stream, a byte of a bit stream, or a plurality of bytes of a bit stream.

### Claim 8 (depends on 1)

The data compressor of claim 1, further comprising a data decompressor, the data decompressor comprising:
a non-zero values unpacker that receives a second group of packed non-zero values and forms 2N bit streams of second packed non-zero values based on the selected granularity of compression;
a zero-value mask unpacker that receives zero bit masks corresponding to the second group of packed non-zero values; and
a zero-value inserter that inserts zero values into each bit stream of second packed non-zero values based on the zero bit masks corresponding to the bit stream of second packed non-zero values and the selected granularity of compression.

### Claim 9 (depends on 8)

The data compressor of claim 8, wherein the non-zero values unpacker comprises a plurality of second multiplexers arranged in 2N rows and N columns, each second multiplexer comprising a two-input multiplexer, each input of a second multiplexer in a first column of the plurality of second multiplexers receiving a respective bit stream of the 2N bit streams of second packed non-zero values, each respective bit stream of second packed non-zero values comprising a same bit-stream length, the second multiplexers in a last column of the plurality of second multiplexers outputting 2N bits streams each having a bit stream length corresponding to unpacked data of the bit stream.

### Claim 10

A data compressor, comprising:
a zero-value remover that receives 2N bit streams of values in which N is an integer greater than 1, and that outputs 2N non-zero-value bit streams having zero values removed from each respective bit stream based on a selected granularity of compression for values contained in the bit streams, the selected granularity of compression comprising a nibble of a bit stream, a byte of a bit stream, or a plurality of bytes of a bit stream; and
a non-zero values packer that receives the 2N non-zero-value bit streams and forms a first group of packed non-zero values, the non-zero values packer comprising a plurality of first multiplexers arranged in 2N rows and N columns, each first multiplexer comprising a two-input multiplexer, each input of a first multiplexer in a first column of the plurality of first multiplexers receiving a respective bit stream of the 2N bit streams of non-zero values, each respective non-zero-value bit stream comprising a bit-stream length based on data in the non-zero-value bit stream, and the first multiplexers in a last column of the first multiplexers outputting 2N bit streams of values as the first group of packed non-zero values, each output bit stream having a same bit-stream length.

### Claim 11 (depends on 10)

The data compressor of claim 10, further comprising a zero bit mask generator that receives the 2N bit streams of values and generates a zero bit mask corresponding to the selected granularity of compression, each zero bit mask indicating a location of a zero value based on the selected granularity of compression.

### Claim 12 (depends on 11)

The data compressor of claim 11, wherein the zero-value remover comprises a plurality of second multiplexers arranged in 2N rows and N columns, each second multiplexer comprising a two-input multiplexer, each input of a second multiplexer in a first column of the plurality of second multiplexers receiving a respective bit stream of 2N channels of bit streams, each respective bit stream comprising a bit-stream length based on data in the bit stream, and the second multiplexers in a last column outputting the 2N non-zero-value bit streams.

### Claim 13 (depends on 12)

The data compressor of claim 12, further comprising a write arbiter that receives the first group of packed non-zero values and zero bit masks corresponding to the first group of packed non-zero values, the write arbiter transmitting for storage at least one of the first group of packed non-zero values and the zero bit masks corresponding to the first group of packed non-zero values.

### Claim 14 (depends on 10)

The data compressor of claim 10, further comprising a data decompressor, the data decompressor comprising:
a read arbiter that receives a second group of packed non-zero values and zero bit masks corresponding to the second group of packed non-zero values;
a non-zero values unpacker that receives the second group of packed non-zero values received and forms 2N bit streams of second packed non-zero values based on the selected granularity of compression;
a zero-value mask unpacker that receives the zero bit masks corresponding to the second group of packed non-zero values; and
a zero-value inserter that inserts zero values into each bit stream of second packed non-zero values based on the zero bit masks corresponding to the bit stream of second packed non-zero values and the selected granularity of compression.

### Claim 15 (depends on 14)

The data compressor of claim 14, wherein the non-zero values unpacker comprises a plurality of second multiplexers arranged in 2N rows and N columns, each second multiplexer comprising a two-input multiplexer, each input of a second multiplexer in a first column of the plurality of second multiplexers receiving a respective bit stream of the 2N bit streams of second packed non-zero values, each respective bit stream of second packed non-zero values comprising a same bit-stream length, the second multiplexers in a last column of the plurality of second multiplexers outputting 2N bits streams each having a bit stream length corresponding to unpacked data of the bit stream.

### Claim 16

A data decompressor, comprising:
a plurality of first multiplexers arranged in 2N rows and N columns in which N is greater than 1, each first multiplexer comprising a two-input multiplexer, each input of a first multiplexer in a first column of the plurality of first multiplexers respectively receiving a bit stream of 2N bit-streams of first packed non-zero values, each respective bit stream of first packed non-zero values having zero values removed from the bit stream based on a selected granularity of compression for values contained in the 2N bit streams, each respective bit stream of first packed non-zero values comprising a same bit-stream length, and the first multiplexers in a last column of the first plurality of multiplexers outputting 2N bits streams each comprising a bit stream length corresponding to unpacked data of the bit stream.

### Claim 17 (depends on 16)

The data decompressor of claim 16, further comprising:
a zero-value mask unpacker that receives zero bit masks corresponding to the first packed non-zero values; and
a zero-value inserter that inserts zero values into each bit stream of first packed non-zero values based on the zero bit masks corresponding to the bit stream of first packed non-zero values.

### Claim 18 (depends on 16)

The data decompressor of claim 16, wherein the selected granularity of compression comprises a nibble of a bit stream, a byte of a bit stream, or a plurality of bytes of a bit stream.

### Claim 19 (depends on 18)

The data decompressor of claim 18, further comprising a data compressor, the data compressor comprising:
a plurality of second multiplexers arranged in 2N rows and N columns, each second multiplexer comprising a two-input multiplexer, each input of a second multiplexer in a first column of the plurality of second multiplexers respectively receiving a bit stream of 2N bit streams of non-zero values, each respective bit stream of non-zero values having zero values removed from the bit stream based on the selected granularity of compression for values contained in the 2N bit streams, each respective non-zero-value bit stream comprising a bit-stream length based on data in the non-zero-value bit stream, and the second multiplexers in a last column of the plurality of first multiplexers outputting 2N bit streams of values as a second group of packed non-zero values in which each bit stream output from the plurality of second multiplexers comprises a same bit-stream length.

### Claim 20 (depends on 19)

The data decompressor of claim 19, wherein the data compressor further comprises:
a zero-value remover that receives 2N second bit streams of values and that outputs the 2N non-zero-value second bit streams having zero values removed from each respective bit stream based on the selected granularity of compression for values contained in the bit streams; and
a zero bit mask generator that receives the 2N second bit streams of values and generates a zero bit mask corresponding to the selected granularity of compression, each zero bit mask indicating a location of a zero value in a second bit stream based on the selected granularity of compression.
