IP Library Granted Patent US 9,081,713
Granted Patent B1
US 9,081,713 · App. 14/642,910 · Granted Jul 14, 2015

Memory management system and method

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,713
App. No.
14/642,910
Granted
Jul 14, 2015
Kind
B1
Abstract

A memory system and method of operating the same is described, where the memory system is used to store data in a RAIDed manner. The stored data may be retrieved, including the parity data so that the stored data is recovered when the first of either the stored data without the parity data, or the stored data from all but one memory module and the parity data, has been received. The writing of data, for low write data loads, is managed such that only one of the memory modules of a RAID stripe is being written to, or erased, during a time interval.

Claims (52)

1. A method of storing digital data, the method comprising:

providing a controller;

providing a plurality of NAND flash modules;

configuring a group of NAND flash modules of the plurality of NAND flash modules as a RAID group;

receiving data from a user using the controller;

writing the data to a RAID group, including an error correcting code (ECC) data computed for the data being written;

configuring the step of writing the data such that data stored in the RAID group or data and ECC stored in the RAID group data sufficient to reconstruct the data stored in the RAID group can be read when subsequent data is being written to the RAID group;

responsive to a user request for previously stored data:

determining, using the controller, whether data requested by the user can be read from the RAID group and returned to the user in a time interval less than an erase time of a NAND flash module; and,

if data can be read in the time interval less than an erase time, reading the data and returning data requested by the user to the user; or,

if data requested by the user cannot be read in the time interval less than an erase time, reading the data that can be read during the time interval and the ECC data and recovering data requested by the user using the ECC; and

returning data requested by the user to the user.

2. The method of claim 1 , wherein the ECC is a parity code.

3. The method of claim 1 , wherein the ECC is a dual parity code.

4. The method of claim 1 , wherein the NAND flash modules are solid state disks (SSD).

5. A method of storing digital data, the method comprising:

providing a controller;

providing a plurality of NAND flash modules;

configuring a group of NAND flash modules of the plurality of NAND flash modules as a RAID group;

receiving data from a user using the controller;

writing the data to a RAID group, including error correcting code (ECC) computed for the data being written;

configuring the step of writing the data such that data stored in the RAID group or data and ECC stored in the RAID group data sufficient to reconstruct the data stored in the RAID group can be read when subsequent data is being written to the RAID group; and,

responsive to a user request:

determining, using the controller, whether the NAND flash module on which the data requested by the user is stored is being written to: and,

if data requested by the user can be read in the time interval less than an erase time, reading the data and returning data requested by the user to the user; or,

if the requested data cannot be read in the time interval less than an erase time, reading the data that can be read during the time interval and the ECC and recovering data requested by the user using the ECC; and,

returning data requested by the user to the user.

6. The method of claim 1 , wherein, responsive to the user request for previously stored data:

determining, using the controller, whether the NAND flash module on which the data requested by the user is stored is being written to: and,

if the data requested by the user can be read in the time interval less than an write time interval, reading data requested by the user and returning the data requested by the user to the user; or,

if the requested data cannot be read in the time interval less than the write time interval, reading the data requested by the user that can be read and the ECC and recovering the data requested using the ECC; and, returning the data requested by the user to the user.

7. The method of claim 5 , wherein the ECC is a parity code.

8. The method of claim 5 , wherein the ECC is a dual parity code.

9. The method of claim 5 , wherein the NAND flash modules are solid state disks (SSD).

10. A memory system, comprising:

means for storing data in a RAID (redundant array of independent disks) group of a plurality of RAID groups including error correcting code (ECC) for the data;

wherein the means for storing data comprises:

a plurality of NAND flash memory modules configured as the RAID group; and

a controller in communication with the plurality of NAND flash memory modules, configured to write at least one of data or ECC for the data to the NAND flash memory modules of the RAID group;

means for reading data and ECC from the RAID group of the plurality of RAID groups,

wherein the means for reading data comprises:

the controller configured to read at least one of data or the ECC for the data previously stored in the NAND flash memory modules; and

wherein, responsive to a request for data previously stored in the RAID group, data previously stored on any memory module of the RAID group is returned to the user during a same time interval that data is being stored to the to the RAID group by the means for storing data, and;

the controller further configured to determine if user requested data can be read from the RAID group within a predetermined time period,

wherein the predetermined time period has a value equal to the time to complete an erase operation on a NAND flash module of the RAID group; and,

if the requested data can be read from the RAID group within the predetermined time period, the controller requests the read of the previously stored data from the memory modules of the RAID group; or

if the requested data cannot be read from the memory modules RAID group within the predetermined time period, the controller requests the read of the previously stored data of the RAID group that can be read from the RAID group, including the ECC data and reconstructs the requested data.

11. The memory system of claim 10 , wherein the predetermined time is a time to write a page of data to a block of NAND flash memory, and the time to write a page is less than the time to erase a block.

12. The memory system of claim 10 , wherein a NAND flash memory module of the plurality of NAND flash memory modules further comprises a plurality of flash memory circuits in communication with a controller of the NAND flash memory module.

13. The memory system of claim 10 , wherein the ECC comprises a parity code for the data stored to a same RAID group of the plurality of RAID groups.

14. The memory system of claim 10 , wherein the ECC comprises a dual parity code.

15. The memory system of claim 10 , wherein the NAND flash memory modules are comprised of solid state disks (SSD).

Assignments (5)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2017
From: BENNETT, JON C.R.
To: VIOLIN MEMORY, INC
Reel/Frame 043979/0637 →