IP Library Granted Patent US 9,081,668
Granted Patent B2
US 9,081,668 · App. 13/804,099 · Granted Jul 14, 2015

Architecture to allow efficient storage of data on NAND flash memory

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,081,668
App. No.
13/804,099
Granted
Jul 14, 2015
Kind
B2
Abstract

Systems, methods, apparatus, and techniques are provided for writing data to a storage medium. A stripe of the storage medium is interfaced via one or more data transfer channels, where the stripe comprises a plurality of pages of the storage medium. A data stream is received and the data stream is portioned into a plurality of allocation units (AUs), where each AU in the plurality of AUs has a pre-determined byte length. A first portion of a selected AU from the plurality of AUs is written to a first page of the plurality of pages and a second portion of the selected AU is written to a second page of the plurality of pages by consecutively writing bytes of the selected AU from a starting byte on the first page to an ending byte on the second page.

Claims (39)

1. A system for writing data to a storage medium, the system comprising:

interface circuitry configured to interface with a stripe of the storage medium via one or more data transfer channels, the stripe comprising a plurality of pages of the storage medium;

partition circuitry configured to receive a data stream and partition the data stream into a plurality of allocation units (AUs), each AU in the plurality of AUs having a same pre-determined byte length; and

write circuitry configured to write a first portion of a selected AU from the plurality of AUs to a first page of the plurality of pages and a second portion of the selected AU to a second page of the plurality of pages by consecutively writing bytes of the selected AU from a starting byte on the first page to an ending byte on the second page.

2. The system of claim 1 , wherein the write circuitry is configured to write the plurality of AUs to the stripe based on an ordered sequence of the pages.

3. The system of claim 1 , wherein the write circuitry comprises a write buffer and wherein the write circuitry is configured to write to the storage medium after an amount of data equal to a length of the stripe accumulates in the write buffer.

4. The system of claim 1 , wherein the plurality of pages are located on a plurality of storage devices.

5. The system of claim 1 , wherein the write circuitry is configured to access a first of the plurality of pages using a first of the one or more data transfer channels and access a second of the plurality of pages using a second of the one or more data transfer channels.

6. The system of claim 1 , wherein each AU in the plurality of AUs is associated with at most two data transfer channels from the one or more data transfer channels, and wherein the two data transfer channels are adjacent.

7. The system of claim 1 , further comprising collection circuitry configured to:

read data stored in the storage medium;

detect bytes among the read data that are not written to; and

rewrite the read data to the storage medium, wherein the rewriting writes over the unwritten bytes.

8. The system of claim 1 , further comprising error correction (ECC) circuitry configured to:

read data stored in the stripe of the storage medium; and

calculate an error correction sequence corresponding to the read data.

9. The system of claim 8 , wherein the write circuitry is configured to:

receive the error correction sequence; and

write the error correction sequence to a last page of the stripe of the storage medium.

10. The system of claim 1 , wherein the write circuitry is configured to write the plurality of AUs to a first portion of the stripe while leaving a second portion of the stripe unwritten to.

11. A method for writing data to a storage medium, the method comprising:

interfacing with a stripe of the storage medium via one or more data transfer channels, the stripe comprising a plurality of pages of the storage medium;

receiving a data stream and partitioning the data stream into a plurality of allocation units (AUs), each AU in the plurality of AUs having a same pre-determined byte length; and

writing a first portion of a selected AU from the plurality of AUs to a first page of the plurality of pages and a second portion of the selected AU to a second page of the plurality of pages by consecutively writing bytes of the selected AU from a starting byte on the first page to an ending byte on the second page.

12. The method of claim 11 , further comprising writing the plurality of AUs to the stripe based on an ordered sequence of the pages.

13. The method of claim 11 , further comprising writing the storage medium in response to a determination that an amount of data equal to a length of the stripe accumulates in a write buffer.

14. The method of claim 11 , wherein the plurality of pages are located on a plurality of storage devices.

15. The method of claim 11 , further comprising accessing a first of the plurality of pages using a first of the one or more data transfer channels and accessing a second of the plurality of pages using a second of the one or more data transfer channels.

16. The method of claim 11 , wherein each AU in the plurality of AUs is associated with at most two data transfer channels from the one or more data transfer channels, and wherein the two data transfer channels are adjacent.

17. The method of claim 11 , further comprising:

reading data stored in the storage medium;

detecting bytes among the read data that are not written to; and

rewriting the read data to the storage medium, wherein the rewriting writes over the unwritten bytes.

18. The method of claim 11 , further comprising: reading data stored in the stripe of the storage medium; and

calculating an error correction sequence corresponding to the read data.

19. The method of claim 18 , further comprising:

receiving the error correction sequence; and

writing the error correction sequence to a last page of the stripe of the storage medium.

20. The method of claim 11 , further comprising writing the plurality of AUs to a first portion of the stripe while leaving a second portion of the stripe unwritten to.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 030271/0933 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: AU, SIU-HUNG FREDERICK; SUN, FEI; SHIN, HYUNSUK; LEE, CHI KONG
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 030271/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD
Reel/Frame 030263/0022 →
LICENSE Recorded Apr 22, 2013
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 030265/0165 →