IP Library Granted Patent US 11,556,271
Granted Patent B2
US 11,556,271 · App. 16/844,119 · Granted Jan 17, 2023

Storage device storing data on key-value basis and operating method thereof

Inventors: Byungki Lee (Hwaseong-si, KR); Satish Kumar (Suwon-si, KR); Jaeju Kim (Suwon-si, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0655G06F3/0604G06F3/0679
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 11,556,271
App. No.
16/844,119
Granted
Jan 17, 2023
Kind
B2
Abstract

A storage device includes a controller configured to: receive, from a host, a plurality of key-value pairs, separate a key from each of the plurality of key-value pairs and a value therefrom, and generate a first key stream by merging a plurality of keys separated from the plurality of key-value pairs, and non-volatile memory configured to store the first key stream. The first key stream is stored, separately from the value separated from each of the plurality of key-value pairs, in the non-volatile memory.

Claims (47)

1. A storage device comprising:

a controller configured to:

receive, from a host, a plurality of key-value pairs,

separate a key from each of the plurality of key-value pairs and a value therefrom and store the key in a key buffer and the value in a value buffer, and

generate a first key stream by merging a plurality of keys separated from the plurality of key-value pairs; and

non-volatile memory configured to store the first key stream,

wherein the first key stream is stored, separately from the value separated from each of the plurality of key-value pairs, in the non-volatile memory,

wherein the controller, in response to a compaction command from the host, reads the first key stream and a second key stream from the non-volatile memory, generates a third key stream by merging first valid keys of the first key stream and second valid keys of the second key stream, and stores the third key stream in the non-volatile memory,

wherein the controller generates the third key stream by merging first valid keys of the first key stream and second valid keys of the second key stream, and

wherein each of the first and second valid keys correspond to a value to which an erase command is not issued by the host, among values.

2. The storage device of claim 1 ,

wherein the controller is further configured to generate the first key stream by merging a key of a corresponding one of the plurality of key-value pairs with an index corresponding to a value of the corresponding one of the plurality of key-value pairs.

3. The storage device of claim 1 , wherein

the controller is further configured to generate a value stream by merging a plurality of values separated from the plurality of key-value pairs, and to store the value stream in the non-volatile memory, and

the value stream is stored, separately from the first key stream, in the non-volatile memory.

4. The storage device of claim 1 , further comprising:

a volatile memory configured to store a hash table and a value table, the hash table comprising physical addresses of the first to third key streams in the non-volatile memory, and the value table comprising a physical address of the value stream in the non-volatile memory.

5. An operating method of a storage device which comprises non-volatile memory and a controller controlling the non-volatile memory,

the operating method comprising:

receiving, by the controller, a plurality of key-value pairs;

generating, by the controller, a first key stream by extracting a key from each of the plurality of key-value pairs, wherein the extracted key is stored in a key buffer;

storing, by the controller, the first key stream in the non-volatile memory;

generating, by the controller, a value stream by extracting a value from each of the plurality of key-value pairs, wherein the extracted value is stored in a value buffer;

storing, by the controller, the value stream in the non-volatile memory; and

performing a compaction operation, the compaction operation including:

reading, from the non-volatile memory, the first key stream and a second key stream;

generating a third key stream by merging the first key stream with the second key stream; and

storing the third key stream in the non-volatile memory,

wherein the generating of the third key stream comprises:

generating the third key stream by extracting first valid keys from the first key stream and second valid keys from the second key stream, and

wherein each of the first and second valid keys corresponds to a value to which an erase command is not issued by a host, among a plurality of values.

6. The operating method of claim 5 , wherein

the generating of the first key stream comprises:

generating an index for a value of a corresponding one of the plurality of key-value pairs; and

merging a key of the corresponding one of the plurality of key-value pairs with the index.

7. The operating method of claim 5 , further comprising:

generating, by the controller, a hash table comprising information about a storage location of at least one of the first to third key streams in the non-volatile memory; and

updating, by the controller, the hash table with invalid keys corresponding to invalid values, to which the erase command is issued by the host.

8. The operating method of claim 7 , further comprising:

generating, by the controller, a value table comprising physical addresses for the plurality of values and at least one validity bit each of which indicates whether a corresponding value is valid; and

updating, by the controller, the value table with validity bits for values corresponding to the invalid keys.

9. The operating method of claim 8 , further comprising:

performing, by the controller, garbage collection on the values corresponding to the invalid keys by using the at least one validity bit of the value table.

10. The operating method of claim 9 , further comprising:

generating, by the controller, a value table which comprises:

a physical address for at least one value comprised in the value stream; and

a plurality of validity bits indicating whether the plurality of values comprised in the value stream are valid.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2020
From: LEE, BYUNGKI; KUMAR, SATISH; KIM, JAEJU
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 052489/0359 →
Priority Claims (1)
KR 10-2019-0081522 · Jul 5, 2019 · national
Continuity (1)
Related Publication 20210004177A1 · Jan 7, 2021
Cited By (1)
US 12,335,386