IP Library Granted Patent US 9,454,492
Granted Patent B2
US 9,454,492 · App. 13/730,602 · Granted Sep 27, 2016

Systems and methods for storage parallelism

Inventors: David Flynn (Sandy, UT); Bert Lagerstedt (Pleasant Grove, UT); John Strasser (Syracuse, UT); Jonathan Thatcher (Lehi, UT); John Walker (Riverton, UT); Michael Zappe (Arvada, CO)
Assignee: LONGITUDE ENTERPRISE FLASH S.A.R.L.
G06F12/121G06F1/183G06F3/0613G06F3/0656G06F3/0685G06F3/0688G06F9/52G06F11/108G06F12/0246G06F12/0804G06F12/0868G06F13/28G06F13/4022G06F13/426H04L67/02H05K7/1444H05K7/1487G06F2211/002G06F2211/103G06F2212/222G06F2212/69G06F2212/7205H04L67/1097Y02B60/1225Y02B60/1228Y02B60/1235
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 9,454,492
App. No.
13/730,602
Granted
Sep 27, 2016
Kind
B2
Abstract

One method includes streaming a data segment to a write buffer corresponding to a virtual page including at least two physical pages. Each physical page is defined within a respective solid-state storage element. The method also includes programming contents of the write buffer to the virtual page, such that a first portion of the data segment is programmed to a first one of the physical pages, and a second portion of the data segment is programmed to a second one of the physical pages.

Claims (30)

1. A method, comprising:

streaming a data segment to a single write buffer corresponding to a virtual page comprising at least two physical pages, each physical page defined within a respective solid-state storage element of a plurality of solid-state storage elements;

programming contents of the single write buffer to the virtual page, such that a first portion of the data i segment is programmed to a first one of the physical pages, and a second portion of the data segment is programmed to a second one of the physical pages; and

initializing a storage division comprising a plurality of virtual pages by:

relocating valid data stored on the virtual pages of the storage division to virtual pages of another storage division of the plurality of solid-state storage elements; and

erasing the storage division.

2. The method of claim 1 , wherein streaming the data segment to the single write buffer comprises interleaving data of the data segment within program buffers of two or more solid-state storage elements of the plurality of solid-state storage element.

3. The method of claim 1 , further comprising reading data from another virtual page of the plurality of solid-state storage elements concurrently with streaming the data segment.

4. The method of claim 1 , wherein relocating the valid data comprises transferring the valid data to the single write buffer with the data segment.

5. The method of claim 1 , wherein programming the virtual page comprises issuing a single write command in parallel to the plurality of solid-state storage elements comprising the virtual page.

6. An apparatus, comprising:

a storage controller configured to perform storage operations on at least two solid-state storage elements of a plurality of solid-state storage elements;

a storage bus configured to couple the at least two solid-state storage elements to the storage controller in parallel; and

a single write data module configured to store a data segment on two or more solid-state storage elements of the plurality of solid-state storage elements, wherein the single write data module is configured to stream a plurality of data segments to a virtual page, the virtual page comprises a respective page of each solid-state storage element of the plurality of solid-state storage elements, each solid-state storage element comprising respective storage divisions, each storage division comprising a respective page of the virtual page, and, in response to a failure of one of the storage divisions of the virtual page, the storage controller is configured to map a replacement storage division into the virtual page.

7. The apparatus of claim 6 , wherein the single write data module is configured to interleave data of the data segment on the two or more solid-state storage elements with data of one or more other data segments.

8. The apparatus of claim 6 , wherein one or more data segments of the plurality of data segments streamed to the virtual page comprise data segments being relocated from other storage divisions of the plurality of solid-state storage elements.

9. The apparatus of claim 6 , wherein the storage controller is configured to program data of the data segment to the two or more solid-state storage elements by use of a single write command.

10. The apparatus of claim 6 , wherein the storage controller is configured to erase respective erase blocks of the plurality of solid-state storage elements by use of a single erase command.

11. The apparatus of claim 6 , further comprising an error-correcting code (ECC) generator module configured to generate two or more ECC blocks comprising data of the data segment, and wherein the single write data module is configured to store data of each of the ECC blocks on the two or more solid-state storage elements.

12. The apparatus of claim 11 , wherein one of the two or more ECC blocks comprising data of the data segment comprises data of another, different data segment.

13. A computer-program product comprising program code configured for execution by a computing device to cause the computing device to perform operations, comprising:

transferring data of a data block from a single write buffer to at least two different storage units of respective, independent flash storage elements of a plurality of flash storage elements;

generating a single write command configured to store the data of the data block on the at least two storage units of the respective, independent flash storage elements; and

initializing a storage division comprising a plurality of virtual pages by:

relocating valid data stored on the virtual pages of the storage division to virtual pages of another storage division of the plurality of flash storage elements; and

erasing the storage division.

14. The computer-program product of claim 13 , wherein the data of the data block is interleaved with data of one or more other data blocks within the storage units of the respective, independent flash storage elements.

15. The computer-program product of claim 13 , wherein transferring the data of the data block comprises buffering a data segment within program buffers of the respective, independent flash storage elements.

16. The computer-program product of claim 13 , the operations further comprising encapsulating the data of the data block in a packet comprising a header, wherein the header indicates a logical address associated with a data segment.

17. The computer-program product of claim 13 , the operations further comprising issuing the single write command to the respective, independent flash storage elements.

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 →
Continuity (4)
Continuation 11952101 · Dec 6, 2007
Provisional Application 60873111 · Dec 6, 2006
Provisional Application 60974470 · Sep 22, 2007
Related Publication 20130124791A1 · May 16, 2013