IP Library Granted Patent US 9,405,480
Granted Patent B2
US 9,405,480 · App. 14/156,693 · Granted Aug 2, 2016

Interleaving codewords over multiple flash planes

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,405,480
App. No.
14/156,693
Granted
Aug 2, 2016
Kind
B2
Abstract

An apparatus having an interface to a plurality of memories and a circuit is disclosed. Each memory generally has a plurality of planes and is nonvolatile. The circuit is configured to (i) generate a plurality of codewords by encoding a plurality of data units, (ii) generate a plurality of slices by parsing the codewords, (iii) generate a plurality of pages by interleaving the slices and (iv) write the pages in parallel into respective ones of the planes.

Claims (38)

1. An apparatus comprising:

a memory configured to store data; and

a controller configured to process a plurality of input/output requests to read/write to/from the memory, generate a plurality of codewords by encoding a plurality of data units, assemble the plurality of codewords into a plurality of batches, generate a plurality of slices by parsing the plurality of batches, generate a plurality of data pages by interleaving the slices, and write the plurality of data pages in parallel into a plurality of planes in the memory, wherein each of the plurality of planes corresponds to one of the plurality of batches, each of the plurality of planes has a plurality of physical pages, and each of the plurality of data pages has a size that matches one of the plurality of physical pages.

2. The apparatus according to claim 1 , wherein the memory includes a plurality of flash memories.

3. The apparatus according to claim 1 , wherein one or more of the plurality of data pages contain the slices from two or more of the plurality of batches.

4. The apparatus according to claim 1 , wherein the controller is further configured to regenerate the plurality of data pages by reading from the plurality of planes in the memory in parallel regenerate the plurality of slices by parsing the plurality of data pages, regenerate the plurality of codewords from the plurality of slices, and regenerate the plurality of data units by decoding the plurality of codewords.

5. The apparatus according to claim 4 , wherein the controller is further configured to regenerate the plurality of batches from the plurality of slices.

6. The apparatus according to claim 5 , wherein the plurality of codewords are regenerated by parsing the plurality of batches.

7. The apparatus according to claim 1 , wherein each of the plurality of data pages is written in a different one of a plurality of die in the memory.

8. A method for interleaving data over a plurality of planes, comprising the steps of:

processing a plurality of input/output requests to read/write to/from a memory;

generating a plurality of codewords by encoding a plurality of data units;

assembling the plurality of codewords into a plurality of batches;

generating a plurality of slices by parsing the plurality of batches;

generating a plurality of data pages by interleaving the plurality of slices; and

writing the data pages in parallel into the plurality of planes in the memory, wherein each of the plurality of planes corresponds to one of the plurality of batches, each of the plurality of planes has a plurality of physical pages, and each of the plurality of data pages has a size that matches one of the plurality of physical pages.

9. The method according to claim 8 , wherein the memory includes a plurality of flash memories.

10. The method according to claim 8 , wherein one or more of the plurality of data pages contain the slices from two or more of plurality of batches.

11. The method according to claim 8 , further comprising the steps of:

regenerating the plurality of data pages by reading from the plurality of planes in the memory in parallel;

regenerating the plurality of slices by parsing the plurality of data pages;

regenerating the plurality of codewords from the plurality of slices; and

regenerating the plurality of data units by decoding the plurality of codewords.

12. The method according to claim 11 , further comprising the step of:

regenerating the plurality of batches from the plurality of slices.

13. The method according to claim 12 , wherein the plurality of codewords are regenerated by parsing the plurality of batches.

14. The method according to claim 8 , wherein each of the plurality of pages is written in a different one of a plurality of die in the memory.

15. The method according to claim 8 , further comprising the steps of:

assembling the plurality of data pages into a redundancy block;

generating parity information for the redundancy block; and

writing the parity information into the memory.

16. The method according to claim 8 , wherein the steps are performed in a solid-state drive.

17. An apparatus comprising:

an interface configured to process a plurality of read/write operations to/from a memory; and

a control circuit configured to generate a plurality of codewords by encoding a plurality of data units, assemble the plurality of codewords into a plurality of batches, generate a plurality of slices by parsing the plurality of batches, generate a plurality of data pages by interleaving the slices, and write the plurality of data pages in parallel into a plurality of planes in the memory, wherein each of the plurality of planes corresponds to one of the plurality of batches, each of the plurality of planes has a plurality of physical pages, and each of the plurality of data pages has a size that matches one of the plurality of physical pages.

18. The apparatus according to claim 17 , wherein the interface and the control circuit form part of a solid-state drive controller.

19. The apparatus according to claim 1 , wherein the controller is further configured to assemble the plurality of data pages into a redundancy block, generate parity information for the redundancy block, and write the parity information into the memory.

20. The apparatus according to claim 1 , wherein the memory and the controller form part of a solid-state drive.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034773/0839 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: CHEN, NING; CAI, YU; WU, YUNXIANG
To: LSI CORPORATION
Reel/Frame 031983/0813 →