IP Library Granted Patent US 10,324,639
Granted Patent B2
US 10,324,639 · App. 15/425,587 · Granted Jun 18, 2019

Data storage device having multiple solid state drives for data duplication, and data processing system including the same

Inventor: Jung Min Seo (Seongnam-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0619G06F3/065G06F3/0665G06F3/0688G11C16/10G11C16/26
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,324,639
App. No.
15/425,587
Granted
Jun 18, 2019
Kind
B2
Abstract

A data storage device includes a plurality of solid state disks (SSDs) and a controller configured to control the SSDs. The controller respectively writes a first data segment and duplicated data of the first data segment to first-type memories of two respective SSDs among the plurality of SSDs in response to a first write request of a host, respectively writes a second data segment and duplicated data of the second data segment to first-type memories of two respective SSDs among the plurality of SSDs in response to a second write request of the host, and writes parity data generated based on the duplicated data to a first-type memory or a second-type memory of a parity SSD. The data storage device may be included in a data processing system.

Claims (45)

1. A data processing system comprising:

a host; and

a data storage device connected to the host, the data storage device comprising:

first through N-th solid state disks (SSDs), where N is an integer of at least 2, wherein each of the first through N-th SSDs include a first-type memory and a second-type memory different from the first-type memory, wherein an access time for accessing the first-type memory is faster than an access time for accessing the second-type memory, and

a controller configured to control the first through N-th SSDs,

wherein the controller is configured to store each of data segments corresponding to a plurality of write requests received from the host in the first-type memory of a corresponding one of the first through (N−1)-th SSDs, to store duplicated data based on at least some of the data segments in the first-type memory of the N-th SSD, and to store parity data based on all of the data segments in either of the first-type memory and the second-type memory of the N-th SSD,

wherein the controller is configured to write a first data segment to the first SSD and the same data as the first data segment to the N-th SSD in response to a first write request, and to write a second data segment to the second SSD and the same data as the second data segment to the N-th SSD in response to a second write request, and

wherein the N-th SSD is configured to generate the parity data using first through (N−1)-th data segments stored in the first-type memory of the N-th SSD in response to a parity generation and store command received from the controller, to store the parity data in its second-type memory, and to delete the first through (N−1)-th data segments from its first-type memory.

2. The data processing system of claim 1 , wherein the duplicated data is first partial parity data calculated using a first data segment and a second data segment.

3. The data processing system of claim 2 , wherein the N-th SSD is configured to store the first data segment in its first-type memory, to generate the first partial parity data using the second data segment received from the controller and the first data segment stored in its first-type memory, to store the first partial parity data in its first-type memory, and then to delete the first data segment from its first-type memory.

4. The data processing system of claim 1 , wherein the N-th SSD is configured to receive from the controller the duplicated data generated based on a first data segment and a second data segment, and to store the duplicated data in its first-type memory.

5. The data processing system of claim 1 , wherein the first-type memory of each of the SSDs is non-volatile random access memory (NVRAM) and second-type memory of each of the SSDs is NAND flash memory.

6. A method of operating a data storage device which includes a controller, a buffer, and a plurality of solid state disks (SSDs), the method comprising:

receiving a first write request from a host;

writing a first data segment to the buffer in response to the first write request;

writing the first data segment to a first SSD among the plurality of SSDs;

writing the first data segment to an N-th SSD among the plurality of SSDs;

sending a response to the first write request to the host;

receiving a second write request from the host;

writing a second data segment to the buffer in response to the second write request;

writing the second data segment to a second SSD among the plurality of SSDs;

writing duplicated data based on the second data segment to the N-th SSD;

sending a response to the second write request to the host; and

storing parity data based on first through (N−1)-th data segments in the N-th SSD,

wherein storing the parity data in the N-th SSD comprises:

generating the parity data using the first data segment and the second data segment which are stored in first-type memory of the N-th SSD,

storing the parity data in second-type memory of the N-th SSD, and

deleting the first data segment and the second data segment from the first-type memory of the N-th SSD.

7. The method of claim 6 , wherein the duplicated data based on the second data segment is the same as the second data segment.

8. The method of claim 6 , wherein the duplicated data based on the second data segment is first partial parity data calculated using the first data segment and the second data segment.

9. The method of claim 8 , wherein the writing the duplicated data based on the second data segment to the N-th SSD comprises:

receiving the second data segment from the controller;

generating the duplicated data based on the second data segment using the second data segment and the first data segment stored in first-type memory of the N-th SSD;

storing the duplicated data based on the second data segment in the first-type memory of the N-th SSD; and

deleting the first data segment from the first-type memory of the N-th SSD.

10. A data storage device, comprising:

a plurality of solid state drives (SSDs), including at least a first SSD, a second SSD and a parity SSD, wherein each of the SSDs includes at least one first-type memory and at least one second-type memory different from the first-type memory, wherein an access time for accessing the first-type memory is faster than an access time for accessing the second-type memory; and

a controller configured to control operations of the plurality of SSDs,

wherein the controller is configured to write a first data segment to the first-type memory of the first SSD in response to a first write command received from a host, and to write a second data segment to the first-type memory of the second SSD in response to a second write command received from the host, and further in response to the at least one of the first and second write commands received from the host to write data based on the first data segment and the second data segment to the first-type memory of the parity SSD, and subsequently to write parity data generated from at least the first data segment and the second data segment to at least one of the first-type memory and the second-type memory of the parity SSD,

wherein the data based on the first data segment and the second data segment comprises the first data segment and partial parity data for the first data segment and second data segment, and wherein the controller is configured to write the first data segment to the first-type memory of the parity SSD in response to the first write command and to write the partial parity data for the first data segment and second data segment to the first-type memory of the parity SSD in response to the second write command.

11. The data storage device of claim 10 , wherein the first-type memory is a non-volatile random access memory (NVRAM).

12. The data storage device of claim 11 , wherein the second-type memory is a NAND flash memory.

13. The data storage device of claim 10 , wherein the data based on the first data segment and the second data segment comprises the first data segment and the second data segment, and wherein the controller is configured to write the first data segment to the first-type memory of the parity SSD in response to the first write command and to write the second data segment to the first-type memory of the parity SSD in response to the second write command.

14. The data storage device of claim 10 , wherein the data based on the first data segment and the second data segment comprises the first data segment and partial parity data for the first data segment and second data segment, and wherein the controller is configured to write the partial parity data for the first data segment and second data segment to the first-type memory of the parity SSD in response to the second write command.

15. The data storage device of claim 10 , wherein the first data segment and the second data segment belong to a predetermined data group comprising k data segments, where k>2, and wherein the parity data generated from the first data segment and the second data segment comprises parity data generated from all k data segments, and wherein the controller writes the parity data to the at least one of the first-type memory and the second-type memory of the parity SSD after receiving a k-th write command from the host for writing the k-th data segment to the first-type memory of a k-th one of the SSDs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2017
From: SEO, JUNG MIN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 041197/0018 →
Priority Claims (1)
KR 10-2016-0030241 · Mar 14, 2016 · national
Continuity (1)
Related Publication 20170262202A1 · Sep 14, 2017
Cited By (161)
US 12,189,975 US 12,197,274 US 12,204,657 US 12,204,768 US 12,204,778 US 12,204,787 US 12,204,788 US 12,210,417 US 12,210,762 US 12,210,778 US 12,212,624 US 12,216,524 US 12,216,615 US 12,223,183 US 12,229,402 US 12,229,428 US 12,229,430 US 12,231,413 US 12,235,807 US 12,236,117 US 12,236,121 US 12,236,122 US 12,242,425 US 12,242,896 US 12,248,379 US 12,248,566 US 12,253,922 US 12,253,941 US 12,253,990 US 12,271,264 US 12,271,359 US 12,277,106 US 12,282,399 US 12,282,686 US 12,287,990 US 12,293,111 US 12,314,131 US 12,314,134 US 12,314,165 US 12,314,170 US 12,314,183 US 12,314,194 US 12,323,437 US 12,332,747 US 12,339,750 US 12,340,107 US 12,346,201 US 12,346,743 US 12,348,583 US 12,353,321 US 12,353,364 US 12,353,746 US 12,360,865 US 12,360,866 US 12,366,972 US 12,367,178 US 12,373,126 US 12,373,224 US 12,373,289 US 12,373,339 US 12,373,340 US 12,373,428 US 12,380,127 US 12,381,934 US 12,386,505 US 12,386,530 US 12,386,782 US 12,393,340 US 12,393,353 US 12,393,485 US 12,394,477 US 12,399,640 US 12,399,825 US 12,399,908 US 12,411,629 US 12,411,812 US 12,411,867 US 12,411,962 US 12,422,984 US 12,430,047 US 12,430,053 US 12,430,059 US 12,430,213 US 12,430,217 US 12,430,245 US 12,438,944 US 12,443,359 US 12,443,763 US 12,450,126 US 12,455,685 US 12,455,705 US 12,457,214 US 12,464,043 US 12,468,488 US 12,481,442 US 12,481,531 US 12,481,607 US 12,481,675 US 12,483,518 US 12,487,920 US 12,488,018 US 12,488,133 US 12,489,813 US 12,493,428 US 12,498,861 US 12,498,888 US 12,499,085 US 12,499,165 US 12,505,079 US 12,511,062 US 12,511,068 US 12,511,239 US 12,517,827 US 12,524,309 US 12,536,192 US 12,536,195 US 12,541,313 US 12,541,315 US 12,554,442 US 12,554,587 US 12,561,068 US 12,561,093 US 12,561,125 US 12,572,296 US 12,572,421 US 12,574,220 US 12,578,858 US 12,578,878 US 12,578,903 US 12,578,971 US 12,579,040 US 12,585,385 US 12,585,401 US 12,585,621 US 12,596,498 US 12,596,816 US 12,602,294 US 12,608,346 US 12,609,934 US 12,613,638 US 12,619,469 US 12,632,300 US 12,639,171 US 12,639,172 US 12,639,176 US 12,645,383 US 12,645,576 US 12,645,606 US 12,650,784 US 12,656,951 US 12,669,950 US 12,669,965 US 12,670,179 US 12,675,368 US 12,682,949 US 12,699,509 US 12,699,512 US 12,705,149 US 12,711,099 US 12,717,689 US 12,717,709