IP Library Granted Patent US 8,482,993
Granted Patent B2
US 8,482,993 · App. 13/461,628 · Granted Jul 9, 2013

Apparatus, system, and method for managing data in a solid-state storage device

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 8,482,993
App. No.
13/461,628
Granted
Jul 9, 2013
Kind
B2
Abstract

An apparatus, system, and method are disclosed for improving performance in a non-volatile solid-state storage device. Non-volatile solid-state storage media includes a plurality of storage cells. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Some or all of the bits of the source data are transformed to take into account a voltage level of an empty state of the plurality of storage cells. A write module writes the transformed source data to the plurality of storage cells of the non-volatile solid-state storage media.

Claims (50)

1. A method for transforming data for a non-volatile solid-state storage device, the method comprising:

receiving source data for storage in a plurality of storage cells of non-volatile solid-state storage media, bits of the source data having a source bias different from a bias for the plurality of storage cells;

transforming the bits of the source data to reduce a number of storage cells to be changed during programming to represent the source data; and

writing the transformed source data to the plurality of storage cells of the non-volatile solid-state storage media.

2. The method of claim 1 , further comprising:

reading the transformed source data from the plurality of storage cells of the non-volatile solid-state storage media; and

converting the bits of the transformed source data back to original bit values for the source data such that a bias of the bits returns to the source bias.

3. The method of claim 1 , wherein the transforming comprises shifting the bits within the source data according to a reversible algorithm such that a start position for data and metadata within the source data changes between writing the transformed source data to the plurality of storage cells and writing subsequent transformed source data to the plurality of storage cells.

4. The method of claim 1 , wherein the bias for the plurality of storage cells is selected from the group consisting of a bias toward ones, a bias toward zeroes, and a bias toward a balance of ones and zeroes.

5. The method of claim 1 , wherein the bias for the plurality of storage cells comprises a bias toward a binary pattern.

6. The method of claim 5 , further comprising selecting the binary pattern based on a state of one or more other storage cells physically adjacent to the plurality of storage cells.

7. The method of claim 6 , wherein the binary pattern satisfies a predefined voltage differential threshold between the one or more other storage cells and the plurality of storage cells.

8. The method of claim 6 , further comprising selecting the binary pattern to reduce inter-cell interference between the plurality of storage cells and the one or more other storage cells physically adjacent to the plurality of storage cells.

9. The method of claim 1 , wherein transforming the bits of the source data comprises reducing transitions between different symbols in the source data, each symbol associated with a voltage level of a storage cell of the plurality of storage cells.

10. The method of claim 1 , wherein transforming the bits of the source data comprises flipping binary values of the bits to reduce the number of storage cells to be changed during programming to represent the source data.

11. The method of claim 1 , wherein transforming the bits comprises pseudo-randomizing the values of the bits of the source data to reduce the number of storage cells to be changed during programming to represent the source data.

12. The method of claim 1 , wherein transforming the bits comprises padding the source data with padding data having binary values that to reduce the number of storage cells to be changed during programming to represent the source data.

13. The method of claim 12 , wherein transforming the bits further comprises:

compressing the source data; and

selecting a size of the padding data based on an amount of space gained by the compression.

14. The method of claim 1 , wherein transforming the bits of the source data to reduce the number of storage cells to be changed during programming further comprises reducing the number of storage cells to be changed from an empty state of the plurality of the storage cells.

15. An apparatus comprising:

a bit randomization module configured to deterministically pseudo-randomize bits of source data for storage in a plurality of storage cells of non-volatile solid-state storage media, wherein the bits are pseudo-randomized to reduce a number of storage cells to be programmed to represent the source data;

a write module configured to write the pseudo-randomized source data to the plurality of storage cells of the non-volatile solid-state storage media; and

an inverse bit randomization module configured to convert the pseudo-randomized source data back to original bit values for the source data in response to reading the pseudo-randomized source data from the plurality of storage cells.

16. The apparatus of claim 15 , wherein the bit randomization module is configured to whiten pseudo-randomize the bits of the source data by transforming binary data values for the bits of the source data to shift a source bias of the source data to increase a number of the bits of the source data to correlate to an erase state of the plurality of storage cells.

17. The apparatus of claim 15 , wherein the bit randomization module is configured to pseudo-randomize the bits of the source data by reversibly pseudo-randomizing values of the bits of the source data.

18. The apparatus of claim 17 , wherein reversibly pseudo-randomizing values of the bits comprises one or more of encrypting values of the bits, scrambling values of the bits, deterministically rearranging values of the bits, XORing values of the bits with a pseudorandom binary sequence, or pseudo-randomizing values of the bits using a linear feedback shift register.

19. A system comprising:

a processor;

one or more communications buses in communication with the processor;

an input module configured to receive source data from the processor over the one or more communications buses for storage in a plurality of storage cells of non-volatile solid-state storage media;

a bit modification module configured to increase a number of binary ones of the source data to reduce wear on a plurality of storage cells; and

a write module configured to write the adjusted source data to the plurality of storage cells of the non-volatile solid-state storage media.

20. The system of claim 19 , further comprising a non-volatile solid-state storage device comprising the plurality of storage cells, the non-volatile solid-state storage device in communication with the processor over the one or more communications buses, the plurality of storage cells configured to store binary one values in response to an erase operation for the plurality of storage cells.

21. A method for transforming data for a non-volatile solid-state storage device, the method comprising:

receiving source data for storage in a plurality of storage cells of the non-volatile solid-state storage media;

changing the bits of the source data to reduce a number of storage cells to be transitioned during programming to represent the source data; and

writing the changed source data to the plurality of storage cells of the non-volatile solid-state storage media.

22. The method of claim 21 , further comprising:

reading the changed source data from the plurality of storage cells; and

reversing the read source data back to original bit values for the source data.

23. The method of claim 21 , wherein writing the changed source data to the plurality of storage cells further comprises transitioning a first number of the storage cells from an empty state to a different voltage level, wherein the first number is less than a second number of the storage cells that would be transitioned in a corresponding operation to write the unchanged source data to the plurality of storage cells.

24. An apparatus comprising:

means for receiving source data for storage in a plurality of storage cells of non-volatile solid-state storage media, bits of the source data representing a first quantity of binary ones;

means for increasing the number of binary ones of the source data to increase the life of the plurality of storage cells; and

means for writing a representation of the source data to the plurality of storage cells of the non-volatile solid-state storage media.

25. The apparatus of claim 24 , further comprising:

means for reading the representation of the source data from the plurality of storage cells; and

means for reversing the representation of the source data back to original bit values for the source data.

Assignments (14)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 053654 FRAME: 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 15, 2021
From: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 058134/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Nov 15, 2021
From: UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 058223/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT DOCUMENT FILED PREVIOUSLY RECORDED ON REEL 047702 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 16, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 048918/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES LIMITED
Reel/Frame 047702/0413 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →