IP Library Granted Patent US 8,189,407
Granted Patent B2
US 8,189,407 · App. 12/981,394 · Granted May 29, 2012

Apparatus, system, and method for biasing 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,189,407
App. No.
12/981,394
Granted
May 29, 2012
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. The plurality of storage cells is configured such that storage cells in an empty state store initial binary values that satisfy a bias. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Bits of the source data have a source bias that is different from the bias of the plurality of storage cells. A bit biasing module biases the bits of the source data toward the bias of the plurality of storage cells. A write module writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.

Claims (47)

1. A method to improve performance in a non-volatile solid-state storage device, the method comprising:

providing non-volatile solid-state storage media comprising a plurality of storage cells, the plurality of storage cells configured such that storage cells in an empty state store initial binary values that satisfy a bias;

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

biasing the bits of the source data toward the bias of the plurality of storage cells; and

writing the biased 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 biased source data from the plurality of storage cells of the non-volatile solid-state storage media and converting the bits of the biased 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 , further comprising determining that the source bias of the source data is different from the bias of the plurality of storage cells.

4. The method of claim 1 , further comprising storing an indicator for the biased source data to indicate that the bits of the biased source data have been biased.

5. The method of claim 1 , further comprising 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 biased source data to the plurality of storage cells and writing subsequent biased source data to the plurality of storage cells.

6. The method of claim 1 , wherein the bias of 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.

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

8. The method of claim 7 , wherein the binary pattern is selected based on a state of one or more other storage cells physically adjacent to the plurality of storage cells.

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

10. The method of claim 1 , wherein biasing the bits of the source data comprises flipping binary values of the bits to satisfy the bias of the plurality of storage cells.

11. The method of claim 1 , wherein biasing the bits comprises pseudo-randomizing the values of the bits of the source data.

12. The method of claim 1 , wherein biasing the bits comprises,

retrieving a preset sequence number associated with the plurality of storage cells;

entering the preset sequence number into a pseudo-random number generator as a seed value to obtain a pseudo-random binary sequence; and

biasing the bits of the source data toward the bias of the plurality of storage cells by pseudo-randomizing the values of the bits of the source data using the pseudo-random binary sequence.

13. The method of claim 12 , wherein the preset sequence number comprises a sequence number of an erase block associated with the plurality of storage cells, the preset sequence number stored in a predefined location in the erase block during an erase procedure such that the preset sequence number for the erase block changes with each erase procedure.

14. The method of claim 1 , wherein biasing the bits comprises padding the source data with padding data having binary values that bias the source data toward the bias of the plurality of storage cells.

15. The method of claim 14 , wherein biasing 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.

16. The method of claim 1 , wherein biasing the bits of the source data comprises biasing a plurality of bits of the source data such that storage cells of the source data storing the plurality of bits change state from original-state storage cells to active storage cells.

17. The method of claim 1 , wherein biasing the bits of the source data comprises dividing the source data into a plurality of subsets of the source data and biasing the subsets of the source data, the subsets of the source data sized to fit a write data pipeline.

18. The method of claim 1 , wherein biasing the bits of the source data comprises excluding the source data from application of a bias in response to the source data prior to biasing having a bias that matches the bias of the plurality of storage cells.

19. An apparatus to improve performance in a non-volatile solid-state storage device, the apparatus comprising:

non-volatile solid-state storage media comprising a plurality of storage cells, the plurality of storage cells configured such that storage cells in an empty state store initial binary values that satisfy a bias;

an input module that receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media, bits of the source data having a source bias different from the bias of the plurality of storage cells;

a bit biasing module that biases the bits of the source data toward the bias of the plurality of storage cells; and

a write module that writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.

20. The apparatus of claim 19 , wherein the bit biasing module biases the bits by,

retrieving a preset sequence number associated with the plurality of storage cells;

entering the preset sequence number into a pseudo-random number generator as a seed value to obtain a pseudo-random binary sequence; and

biasing the bits of the source data toward the bias of the plurality of storage cells by pseudo-randomizing the values of the bits of the source data using the pseudo-random binary sequence.

21. A system to improve performance in a non-volatile solid-state storage device, the system comprising:

a processor;

one or more communications buses in communication with the processor;

non-volatile solid-state storage media comprising a plurality of storage cells, the plurality of storage cells configured such that storage cells in an empty state store initial binary values that satisfy a bias;

an input module that receives source data from the processor over the one or more communications buses for storage in the plurality of storage cells of the non-volatile solid-state storage media, bits of the source data having a source bias different from the bias of the plurality of storage cells;

a bit biasing module that biases the bits of the source data toward the bias of the plurality of storage cells; and

a write module that writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.

22. A method to improve performance in a non-volatile solid-state storage device, the method comprising:

providing non-volatile solid-state storage media comprising a plurality of storage cells;

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

shifting 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 source data to the plurality of storage cells and writing subsequent source data to the plurality of storage cells; and

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

23. The method of claim 22 , further comprising biasing the bits of the source data toward a bias of the plurality of storage cells, wherein the plurality of storage cells are configured such that storage cells in an empty state store initial binary values that satisfy the bias of the plurality of storage cells and the bits of the source data as received have a source bias different from the bias of the plurality of storage cells.

Assignments (15)
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: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
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: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2011
From: STRASSER, JOHN; THATCHER, JONATHAN; FILLINGIM, JEREMY; FLYNN, DAVID; SMITH, LANCE; WOOD, ROBERT; PETERSON, JAMES
To: FUSION, IO. INC.
Reel/Frame 027012/0623 →