IP Library Granted Patent US 10,936,247
Granted Patent B2
US 10,936,247 · App. 16/415,102 · Granted Mar 2, 2021

Memory controller, storage device including the same, and method of operating the memory controller

Inventor: Nam-wook Kang (Hwaseong-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0659G06F3/0604G06F3/0644G06F3/0656G06F3/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 10,936,247
App. No.
16/415,102
Granted
Mar 2, 2021
Kind
B2
Abstract

A memory controller may include a buffer memory configured to store a plurality of metadata groups and a journal log set for a metadata group of the plurality of metadata groups, wherein the journal log set includes a plurality of journal logs respectively indicating update information for the plurality of metadata groups. The memory controller may include control circuitry configured to identify journal times taken to execute respective journal logs of the plurality of journal logs, identify a prediction time taken to update the metadata group based on the journal log set, and control a number of journal logs included in the journal log set based on the journal times and the prediction time.

Claims (67)

1. A memory controller comprising:

a buffer memory configured to store a plurality of metadata groups and a journal log set for a metadata group of the plurality of metadata groups, wherein the journal log set includes a plurality of journal logs respectively indicating update information for ones of the plurality of metadata groups; and

control circuitry configured to,

identify journal times taken to execute respective journal logs of the plurality of journal logs,

identify a prediction time taken to update the metadata group based on the journal log set, and

control a number of journal logs included in the journal log set based on the journal times and the prediction time.

2. The memory controller of claim 1 , wherein

the control circuitry is further configured to determine a time slice corresponding to the journal log set, and

the control circuitry performs the control of the number of journal logs based on the journal times, the prediction time, and the time slice.

3. The memory controller of claim 2 , wherein the control circuitry is further configured to determine the time slice based on a number of metadata groups in the plurality of metadata groups.

4. The memory controller of claim 1 , wherein the control circuitry is further configured to sequentially generate a plurality of journal log sets corresponding to a number of metadata groups in the plurality of metadata groups.

5. The memory controller of claim 4 , wherein

the control circuitry is further configured to determine a time window corresponding to the plurality of journal log sets, and

the control circuitry performs the control of the number of journal logs included in each of the plurality of journal log sets based on the journal times, the prediction time, and the time window.

6. The memory controller of claim 5 , wherein the control circuitry is further configured to, on condition of an accumulated prediction time for previously generated journal log sets exceeding a threshold time, reduce the number of journal logs included in a next generated journal log set.

7. The memory controller of claim 4 , wherein

the control circuitry is configured to perform the identifying of the prediction time based on the journal times of the journal logs of the journal log set, and

the control circuitry is further configured to update the prediction time in a journal time table.

8. The memory controller of claim 4 , wherein

the control circuitry is configured to perform the identifying of the prediction time based on the journal times for the journal logs of the journal log set for the metadata group, and

the control circuitry is further configured to store the prediction time for the metadata group in a journal time table.

9. The memory controller of claim 8 , wherein the control circuitry is further configured to,

select, from the plurality of metadata groups, a first metadata group for which the prediction time exceeds a threshold time,

identify the first metadata group as a latest metadata group, and

program the latest metadata group to non-volatile memory.

10. The memory controller of claim 8 , wherein the control circuitry is further configured to, on condition of a total prediction time for the plurality of metadata groups exceeding a threshold time,

select a second metadata group for which the prediction time is a longest prediction time among the plurality of metadata groups,

identify the second metadata group as a longest metadata group, and

program the longest metadata group to non-volatile memory.

11. The memory controller of claim 1 , wherein the plurality of metadata groups includes a plurality of mapping tables.

12. The memory controller of claim 1 , wherein the control circuitry is further configured to,

determine a first number of journal logs included in the journal log set, and

on condition of a current number of journal logs included in the journal log set reaching the first number, program the metadata group and the journal log set for the metadata group to non-volatile memory.

13. A storage device comprising:

non-volatile memory; and

a memory controller including control circuitry that is configured to,

store a plurality of metadata groups and a journal log set for a metadata group of the plurality of metadata groups, wherein the journal log set includes a plurality of journal logs respectively indicating update information for ones of the plurality of metadata groups,

identify journal times taken to execute respective journal logs of the plurality of journal logs, and

control a number of journal logs included in the journal log set by,

identifying a first number based on the journal times, and

on condition of a current number of journal logs included in the journal log set reaching the first number, program, to the non-volatile memory, one of the plurality of the metadata groups and the journal log set for the one of the plurality of metadata groups.

14. The storage device of claim 13 , wherein

the plurality of metadata groups include a first metadata group and a second metadata group, and

the control circuitry is further configured to, on application of power to the storage device,

read the first metadata group and a first journal log set corresponding to the first metadata group from the non-volatile memory,

read the second metadata group and a second journal log set corresponding to the second metadata group from the non-volatile memory, and

update the first metadata group by using the second journal log set.

15. The storage device of claim 14 , further comprising:

a buffer memory in which the first metadata group and the second metadata group are loaded.

16. The storage device of claim 14 , wherein

the non-volatile memory includes a first memory group and a second memory group, and

the control circuitry is further configured to store the first metadata group and the first journal log set in the first memory group and store the second metadata group and the second journal log set in the second memory group.

17. The storage device of claim 13 , wherein

the control circuitry is further configured to predict, based on journal times of the respective journal logs of the journal log set, a prediction time taken to update the plurality of metadata groups based on the journal log set, and

the control circuitry performs the control of the number of journal logs included in the journal log set based on the journal times and the prediction time.

18. The storage device of claim 17 , wherein

the control circuitry is further configured to determine a time slice corresponding to the journal log set based on a number of metadata groups in the plurality of metadata groups, and

the control circuitry performs the control of the number of journal logs included in the journal log set based on the journal times, the prediction time, and the time slice.

19. The storage device of claim 17 , wherein

the control circuitry is further configured to,

sequentially generate a plurality of journal log sets corresponding to a number of metadata groups in the plurality of metadata groups, and

determine a time window corresponding to the plurality of journal log sets, and

the control of the number of journal logs included in each of the plurality of journal log sets is based on the journal times, the prediction time, and the time window.

20. A method of managing metadata for a non-volatile memory, the method comprising:

generating a journal log set of journal logs respectively indicating update information for a metadata group; and

identifying a first number of journal logs to be included in the journal log set, based on journal times for respective journal logs; and

on condition of a current number of journal logs in the journal log set reaching the first number, programming the metadata group and the journal log set to the non-volatile memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2019
From: KANG, NAM-WOOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 049237/0199 →
Priority Claims (1)
KR 10-2018-0120598 · Oct 10, 2018 · national
Continuity (1)
Related Publication 20200117389A1 · Apr 16, 2020
Cited By (3)
US 12,481,427 US 12,591,372 US 12,639,005