IP Library › Granted Patent US 11,757,468
Granted Patent B2
US 11,757,468 · App. 17/334,688 · Granted Sep 12, 2023

Soft data compression for non-volatile memory

Inventors: Nihal Singla (Punjab, IN); A Harihara Sravan (Karnataka, IN)
Assignee: SANDISK TECHNOLOGIES LLC
H03M7/6011G06F3/0659H03M7/42
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,757,468
App. No.
17/334,688
Granted
Sep 12, 2023
Kind
B2
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 (65)

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.

Assignments (5)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NO. 17335688 PREVIOUSLY RECORDED AT REEL: 056456 FRAME: 0109. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jul 30, 2021
From: SINGLA, NIHAL; SRAVAN, A HARIHARA
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 057037/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2021
From: SINGLA, NIHAL; SRAVAN, A HARIHARA
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 056456/0109 →
Priority Claims (1)
IN 202041041472 · Sep 24, 2020 · national
Continuity (1)
Related Publication 20220091752A1 · Mar 24, 2022
Cited By (1)
US 12,580,593