IP Library › Granted Patent US 10,372,541
Granted Patent B2
US 10,372,541 · App. 15/616,268 · Granted Aug 6, 2019

Storage device storing data using raid

Inventors: Jee-Seok Hyun (Hwaseong-si, KR); Keonsoo Ha (Seoul, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F11/1096G06F3/061G06F3/0619G06F3/0656G06F3/0665G06F3/0689
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,372,541
App. No.
15/616,268
Granted
Aug 6, 2019
Kind
B2
Abstract

A storage device includes a plurality of first memories, a controller, and a second memory. The controller controls the first memories such that first and second data chunks associated with target data are distributively stored in the plurality of first memories. The controller generates a first intermediate parity using the first data chunk, which is processed immediately before the second data chunk. When the second data chunk is not a data chunk which is processed last in connection with the target data and the first intermediate parity is buffered in the second memory, the controller generates a second intermediate parity using the first intermediate parity buffered in the second memory and the second data chunk, and outputs the second intermediate parity to the second memory to be buffered.

Claims (61)

1. A storage device comprising:

a plurality of first memories configured to distributively store first and second data chunks associated with target data;

a controller configured to control the plurality of first memories such that the first and second data chunks are distributively stored; and

a buffer memory configured to buffer the first and second data chunks,

wherein the controller is further configured to generate a first intermediate parity using the first data chunk, which is processed immediately before the second data chunk in connection with the target data,

wherein when the second data chunk is not a data chunk which is processed last in connection with the target data and the first intermediate parity is buffered in the buffer memory, the controller is further configured to,

generate a second intermediate parity using the buffered first intermediate parity and the second data chunk, and

output the second intermediate parity to the buffer memory to be buffered,

wherein the controller comprises a cache memory, and

wherein when the cache memory stores the second data chunk and a remaining capacity of a memory area allocated for final parity and intermediate parity in the cache memory is greater than or equal to a reference capacity, the controller does not generate the second intermediate parity and stores the second data chunk in the cache memory.

2. The storage device of claim 1 , wherein the controller comprises:

a first parity operator configured to generate the first intermediate parity using at least the first data chunk; and

a second parity operator configured to generate the second intermediate parity using the buffered first intermediate parity and the second data chunk.

3. The storage device of claim 2 , wherein an output from the first parity operator is stored in the cache memory inside the controller, and

wherein an output from the second parity operator is buffered in the buffer memory, without being stored in the cache memory.

4. The storage device of claim 1 , wherein when the cache memory stores the second data chunk and the remaining capacity becomes less than the reference capacity, the controller is further configured to generate the second intermediate parity and to output the second intermediate parity to the buffer memory.

5. The storage device of claim 1 , wherein when the second data chunk is a data chunk which is processed last in connection with the target data and the first intermediate parity is buffered in the buffer memory, the controller is further configured to generate a final parity associated with the first and second data chunks, using the buffered first intermediate parity and the second data chunk.

6. The storage device of claim 5 , wherein the controller comprises a parity operator configured to:

generate the first intermediate parity using at least the first data chunk, and

generate the final parity using the buffered first intermediate parity and the second data chunk.

7. The storage device of claim 5 , wherein the controller is further configured to store the final parity in the cache memory inside the controller.

8. The storage device of claim 7 , wherein the controller is further configured to output the final parity in the cache memory to the plurality of first memories, and

wherein the plurality of first memories is further configured to distributively store the first and second data chunks and the final parity in connection with the target data.

9. A storage device comprising:

a plurality of first memories configured to distributively store first and second data chunks associated with target data;

a controller configured to control the plurality of first memories such that the first and second data chunks are distributively stored; and

a buffer memory configured to buffer the first and second data chunks,

wherein the controller is further configured to generate a first intermediate parity using the first data chunk, which is processed immediately before the second data chunk in connection with the target data,

wherein when the first intermediate parity is buffered in the buffer memory, the controller is further configured to generate a second intermediate parity using the buffered first intermediate parity and the second data chunk,

wherein the controller comprises a cache memory, and

wherein when the cache memory stores the second data chunk and a remaining capacity of a memory area allocated for final parity and intermediate parity in the cache memory is greater than or equal to a reference capacity, the controller does not generate the second intermediate parity and stores the second data chunk in the cache memory.

10. The storage device of claim 9 , wherein the controller comprises a parity operator configured to:

generate the first intermediate parity using at least the first data chunk and,

generate the second intermediate parity using the buffered first intermediate parity and the second data chunk.

11. The storage device of claim 10 , wherein an output from the parity operator is stored in the cache memory inside the controller, and

wherein an output from the buffer memory is loaded into the parity operator, without being stored in the cache memory.

12. The storage device of claim 9 , wherein when the cache memory stores the first intermediate parity and the remaining capacity is less than the reference capacity, the controller is further configured to output the first intermediate parity to the buffer memory to be buffered.

13. The storage device of claim 9 , wherein when the first intermediate parity is stored in the cache memory inside the controller, the controller is further configured to generate the second intermediate parity using the first intermediate parity in the cache memory and the second data chunk.

14. The storage device of claim 9 , wherein when the second data chunk is a data chunk which is processed last in connection with the target data, the controller is further configured to output the second intermediate parity as a final parity associated with the first and second data chunks, to the plurality of first memories, and

wherein the plurality of first memories is further configured to distributively store the first and second data chunks and the final parity in connection with the target data.

15. A method of storing data, the method comprising:

receiving a first data chunk divided from first target data;

determining that the first data chunk is not a first processed data chunk in connection with the first target data;

determining whether a first intermediate parity associated with the first target data is stored in a cache memory;

generating a first parity using the received first data chunk and the first intermediate parity from the cache memory when it is determined that the first intermediate parity is stored in the cache memory; and

generating the first parity using the received first data chunk and a second intermediate parity associated with the first target data and buffered in a buffer memory, without loading the second intermediate parity from the buffer memory into the cache memory, when it is determined that the first intermediate parity is not stored in the cache memory,

wherein generating the first parity using the received first data chunk and the second intermediate parity comprises:

determining whether the first data chunk is a last processed data chunk in connection with the first target data;

generating the first parity using the received first data chunk and the second intermediate parity buffered in the buffer memory, when it is determined that the first data chunk is the last processed data chunk;

storing the received first data chunk in the cache memory when it is determined that the first data chunk is not the last processed data chunk;

after storing the received first data chunk in the cache memory, receiving a second data chunk divided from second target data;

determining that the cache memory is full in response to the received second data chunk being stored in the cache memory;

generating the first parity using the received first data chunk and the second intermediate parity buffered in the buffer memory; and

storing the generated first parity in the buffer memory, without storing the generated first parity in the cache memory.

16. The method of claim 15 , further comprising:

after storing the received first data chunk in the cache memory, determining that the cache memory is full;

generating a second parity not associated with the first target data using data stored in the cache memory and the buffer memory; and

storing the generated second parity in the buffer memory.

17. The method of claim 15 , further comprising:

determining that the first data chunk is the last processed data chunk in connection with the first target data; and

storing the generated first parity in a nonvolatile memory with the first data chunk.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2017
From: HYUN, JEE-SEOK; HA, KEONSOO
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 042636/0797 →
Priority Claims (1)
KR 10-2016-0132205 · Oct 12, 2016 · national
Continuity (1)
Related Publication 20180101441A1 · Apr 12, 2018