IP Library Granted Patent US 10,133,625
Granted Patent B2
US 10,133,625 · App. 14/823,796 · Granted Nov 20, 2018

Storing parity data separate from protected data

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 10,133,625
App. No.
14/823,796
Granted
Nov 20, 2018
Kind
B2
Abstract

A storage device may include a primary storage array comprising a plurality of memory devices, one or more parity memory devices, and a controller configured to store a block of data. The controller may be configured to store the block of data by at least: writing the block of data to the primary storage array, determining parity data for the block of data, and writing at least a portion of the determined parity data to the one or more parity memory devices.

Claims (64)

1. A non-transitory storage device comprising:

a primary storage array comprising a plurality of non-volatile memory devices;

one or more parity memory devices; and

a controller configured to store a block of data by at least:

writing the block of data to the primary storage array;

determining parity data for the block of data; and

selecting a size of parity data to determine for the block of data; and

when a combined size of the selected size of parity data and the block of data is larger than a size of a page of the primary storage array,

writing at least a portion of the determined parity data to the one or more parity memory devices; and

when the combined size of the selected size of parity data and the block of data is smaller than or equal to the size of a page of the primary storage array,

writing the at least a portion of the determined parity data to the primary storage array.

2. The non-transitory storage device of claim 1 , wherein:

to determine the parity data, the controller is configured to determine first parity data and second parity data for the block of data,

to write the block of data to the primary storage array, the controller is configured to write the block of data and the first parity data to a page of the primary storage array, and

to write the portion of the parity data to the one or more parity devices, the controller is configured to write the second parity data to the one or more parity devices.

3. The non-transitory storage device of claim 1 , wherein the controller is further configured to retrieve the block of data by at least:

reading the block of data from the primary storage array;

reading the parity data from the one or more parity devices; and

verifying the block of data based on the parity data.

4. The non-transitory storage device of claim 1 , wherein the plurality of non-volatile memory devices of the primary storage array comprise a plurality of flash memory devices, and wherein the one or more parity memory devices comprise one or more magnetoresisitve random-access memory (MRAM), phase-change random-access memory (PRAM), or resistive random-access memory (ReRAM) memory devices.

5. A method comprising:

writing, by a controller of a storage device, a block of data to a primary storage array comprising a plurality of non-volatile memory devices;

determining, by the controller, parity data for the block of data;

selecting a size of parity data to determine for the block of data; and

when a combined size of the selected size of parity data and the block of data is larger than a size of a page of the primary storage array,

writing, by the controller, at least a portion of the determined parity data to one or more parity memory devices; and

when the combined size of the selected size of parity data and the block of data is smaller than or equal to the size of a page of the primary storage array,

writing, by the controller, the at least a portion of the determined parity data to the primary storage array.

6. The method of claim 5 , wherein:

determining the parity data comprises determining first parity data and second parity data for the block of data,

writing the block of data to the primary storage array comprises writing the block of data and the first parity data to a page of the primary storage array, and

writing the portion of the parity data to the one or more parity devices comprises writing the second parity data to the one or more parity devices.

7. The method of claim 5 , further comprising retrieving the block of data by at least:

reading the block of data from the primary storage array;

reading the parity data from the one or more parity devices; and

verifying the block of data based on the parity data.

8. The method of claim 5 , wherein the plurality of non-volatile memory devices of the primary storage array comprise a plurality of flash memory devices, and wherein the one or more parity memory devices comprise one or more magnetoresisitve random-access memory (MRAM), phase-change random-access memory (PRAM), or resistive random-access memory (ReRAM) memory devices.

9. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors of a storage device to:

write a block of data to a primary storage array comprising a plurality of non-volatile memory devices;

determine parity data for the block of data;

select a size of parity data to determine for the block of data;

when a combined size of the selected size of parity data and the block of data is larger than a size of a page of the primary storage array,

write at least a portion of the determined parity data to one or more parity memory devices; and

when the combined size of the selected size of parity data and the block of data is smaller than or equal to the size of a page of the primary storage array,

write the at least a portion of the determined parity data to the primary storage array.

10. The non-transitory computer-readable storage medium of claim 9 , wherein:

the instructions that cause the one or more processors to determine the parity data comprise instructions that cause the one or more processors to determine first parity data and second parity data for the block of data,

the instructions that cause the one or more processors to write the block of data to the primary storage array comprise instructions that cause the one or more processors to write the block of data and the first parity data to a page of the primary storage array, and

the instructions that cause the one or more processors to write the portion of the parity data to the one or more parity devices comprise instructions that cause the one or more processors to write the second parity data to the one or more parity devices.

11. A system comprising:

a primary storage array comprising a plurality of non-volatile memory devices;

one or more parity memory devices, wherein the one or more parity memory devices are a different type of non-volatile memory device than the plurality of memory devices of the primary storage array;

means for writing a block of data to the primary storage array;

means for determining parity data for the block of data;

means for selecting a size of parity data to determine for the block of data;

means for, when a combined size of the selected size of parity data and the block of data is larger than a size of a page of the primary storage array, writing at least a portion of the determined parity data to one or more parity memory devices; and

means for, when the combined size of the selected size of parity data and the block of data is smaller than or equal to the size of a page of the primary storage array, writing at least a portion of the determined parity data to the primary storage array.

12. The system of claim 11 , wherein:

the means for determining the parity data comprise means for determining first parity data and second parity data for the block of data,

the means for writing the block of data to the primary storage array comprise means for writing the block of data and the first parity data to a page of the primary storage array, and

the means for writing the portion of the parity data to the one or more parity devices comprise means for writing the second parity data to the one or more parity devices.

13. The non-transitory storage device of claim 1 , wherein the plurality of non-volatile memory devices of the primary storage array comprise a plurality of flash memory devices, and wherein the one or more parity memory devices comprise one or more magnetoresisitve random-access memory (MRAM) memory devices.

14. The non-transitory computer-readable storage medium of claim 9 , wherein the plurality of non-volatile memory devices of the primary storage array comprise a plurality of flash memory devices, and wherein the one or more parity memory devices comprise one or more magnetoresisitve random-access memory (MRAM), or phase-change random-access memory (PRAM) memory devices.

15. The system of claim 11 , wherein the plurality of non-volatile memory devices of the primary storage array comprise a plurality of flash memory devices, and wherein the one or more parity memory devices comprise one or more phase-change random-access memory (PRAM) memory devices.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2015
From: BANDIC, ZVONIMIR Z.; MATEESCU, ROBERT E.; SONG, SEUNG-HWAN
To: HGST NETHERLANDS B.V.
Reel/Frame 036301/0779 →