Soft data compression for non-volatile memory
Abstract
An encoder of a storage medium encodes data subject to a read operation specified by a storage controller by generating a plurality of symbols representing a soft data stream corresponding to the data subject to the read operation, where each symbol of the plurality of symbols includes (i) a single-bit value number indicating whether the symbol counts 0s or 1s, and (ii) an N-bit count number indicating a bit count associated with the symbol, where N is greater than or equal to two, and the encoder of the storage medium is configured to convey the plurality of generated symbols to the storage controller via electrical interface circuitry connecting the storage medium and the storage controller.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A data storage system, comprising:
a storage medium including a plurality of memory cells and an encoder;
a storage controller in communication with the storage medium; and
electrical interface circuitry configured to transfer data via a channel disposed between the storage medium and the storage controller;
wherein the encoder of the storage medium is configured to:
receive data subject to a read operation specified by the storage controller;
encode the data subject to the read operation including generating a plurality of symbols representing a soft data stream corresponding to the data subject to the read operation, wherein each symbol of the plurality of symbols representing the soft data stream includes:
(i) a single-bit value number indicating whether the symbol counts 0s or 1s, and
(ii) an N-bit count number indicating a bit count associated with the symbol, where N is greater than or equal to two; and
convey the plurality of generated symbols to the storage controller via the electrical interface circuitry.
2. The data storage system of claim 1 , wherein for each symbol of the plurality of symbols:
if the value number is 1, the count number indicates a number of 0s preceding a 1; and
if the value number is 0, the count number indicates a number of is preceding a 0.
3. The data storage system of claim 1 , wherein the encoder is configured to generate symbols for a plurality of combinations of N+1 bits of the data subject to the read operation based on a lookup table stored at the storage medium.
4. The data storage system of claim 3 , wherein the lookup table respectively maps each combination of N+1 bits to two symbols.
5. The data storage system of claim 3 , wherein the lookup table maps:
at least one of the plurality of combinations of N+1 bits to an intermediate symbol and a final symbol; and
at least one of the plurality of combinations of N+1 bits to two final symbols in the lookup table.
6. The data storage system of claim 5 , wherein the encoder is configured to combine an intermediate symbol of one of the plurality of combinations of N+1 bits with a final symbol of another of the plurality of combinations of N+1 bits before conveying the plurality of generated symbols to the storage controller.
7. The data storage system of claim 1 , wherein the storage controller includes a decoder configured to:
receive the plurality of generated symbols; and
for each symbol of the plurality of generated symbols, output:
(i) a single bit specified by the value number, and
(ii) N bits specified by the count number, preceding the single bit, and having values that are complementary to that of the single bit.
8. A method of operating a data storage system, comprising:
at an encoder of a storage medium of the data storage system:
receiving data subject to a read operation specified by a storage controller of the data storage system;
encoding the data subject to the read operation including generating a plurality of symbols representing a soft data stream corresponding to the data subject to the read operation, wherein each symbol of the plurality of symbols representing the soft data stream includes:
(i) a single-bit value number indicating whether the symbol counts 0s or 1s, and
(ii) an N-bit count number indicating a bit count associated with the symbol, where N is greater than or equal to two; and
conveying the plurality of generated symbols to the storage controller.
9. The method of claim 8 , wherein for each symbol of the plurality of symbols:
if the value number is 1, the count number indicates a number of 0s preceding a 1; and
if the value number is 0, the count number indicates a number of is preceding a 0.
10. The method of claim 8 , wherein the encoder is configured to generate symbols for a plurality of combinations of N+1 bits of the data subject to the read operation based on a lookup table stored at the storage medium.
11. The method of claim 10 , wherein the lookup table respectively maps each combination of N+1 bits to two symbols.
12. The method of claim 10 , wherein the lookup table maps:
at least one of the plurality of combinations of N+1 bits to an intermediate symbol and a final symbol; and
at least one of the plurality of combinations of N+1 bits to two final symbols in the lookup table.
13. The method of claim 12 , wherein the method includes combine, at the encoder, an intermediate symbol of one of the plurality of combinations of N+1 bits with a final symbol of another of the plurality of combinations of N+1 bits before conveying the plurality of generated symbols to the storage controller.
14. The method of claim 8 , further comprising, at a decoder of the storage controller:
receiving the plurality of generated symbols; and
for each symbol of the plurality of generated symbols, outputting:
(i) a single bit specified by the value number, and
(ii) N bits specified by the count number, preceding the single bit, and having values that are complementary to that of the single bit.
15. A data storage system, comprising:
means for receiving data subject to a read operation specified by a storage controller of the data storage system;
means for encoding the data subject to the read operation including means for generating a plurality of symbols representing a soft data stream corresponding to the data subject to the read operation, wherein each symbol of the plurality of symbols representing the soft data stream includes:
(i) a single-bit value number indicating whether the symbol counts 0s or 1s, and
(ii) an N-bit count number indicating a bit count associated with the symbol, where N is greater than or equal to two; and
means for conveying the plurality of generated symbols to the storage controller.
16. The data storage system of claim 15 , wherein for each symbol of the plurality of symbols:
if the value number is 1, the count number indicates a number of 0s preceding a 1; and
if the value number is 0, the count number indicates a number of is preceding a 0.
17. The data storage system of claim 15 , wherein the means for encoding include means for generating symbols for a plurality of combinations of N+1 bits of the data subject to the read operation based on a lookup table stored at the storage medium.
18. The data storage system of claim 17 , wherein the lookup table respectively maps:
each combination of N+1 bits to two symbols;
at least one of the plurality of combinations of N+1 bits to an intermediate symbol and a final symbol; and
at least one of the plurality of combinations of N+1 bits to two final symbols in the lookup table.
19. The data storage system of claim 18 , wherein the means for encoding include means for combining an intermediate symbol of one of the plurality of combinations of N+1 bits with a final symbol of another of the plurality of combinations of N+1 bits before conveying the plurality of generated symbols to the storage controller.
20. The data storage system of claim 15 , further comprising:
means for receiving the plurality of generated symbols at the storage controller; and
means for outputting, for each symbol of the plurality of generated symbols:
(i) a single bit specified by the value number, and
(ii) N bits specified by the count number, preceding the single bit, and having values that are complementary to that of the single bit.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.