IP Library Granted Patent US 10,949,090
Granted Patent B2
US 10,949,090 · App. 15/693,411 · Granted Mar 16, 2021

Memory system that stores data designated by a deletion request in nonvolatile memory

Inventor: Shinji Yonezawa (Machida Tokyo, JP)
Assignee: TOSHIBA MEMORY CORPORATION
G06F3/061G06F3/0626G06F3/0652G06F3/0655G06F3/0658G06F3/0659G06F3/0679G06F3/0688G06F12/0246G06F2212/1016G06F2212/7201G06F2212/7205G06F2212/7208
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,949,090
App. No.
15/693,411
Granted
Mar 16, 2021
Kind
B2
Abstract

A memory system which is accessible to a host device includes a volatile memory, a nonvolatile memory, and a memory controller that controls the volatile memory and the nonvolatile memory. The memory controller stores first data, which is stored in the volatile memory, in the nonvolatile memory, each time the memory controller stores second data, which is stored in the volatile memory, in the nonvolatile memory. The first data indicates a logical address and a deletion range designated by a deletion request received from the host device, and the second data is designated by a write request received from the host device.

Claims (57)

1. A method of protecting volatile data in a memory system connected to a host device, the memory system including a volatile memory and a nonvolatile memory, said method comprising:

temporarily storing, in the volatile memory, management data including mapping information that associates a logical address managed by the host device with a physical address of the nonvolatile memory using one or more of a plurality of entries, each of the entries corresponding to data of a page and including a logical address managed by the host device, a logical address of the nonvolatile memory, a first flag indicating whether or not the page is valid, and a second flag indicating whether or not the page is designated to be deleted;

upon receiving a deletion request from the host device, temporarily storing, in the volatile memory, first data including a logical address and a deletion range designated by the deletion request and updating the management data to specify data that are designated to be deleted by the deletion request, the first data being different from the management data and not including the mapping information;

upon receiving a write request from the host device, temporarily store, in the volatile memory, temporarily storing, in the volatile memory, second data designated by the write request and updating the management data;

when a first predetermined timing comes, saving the first data and the second data temporarily stored in the volatile memory in a first area of the nonvolatile memory;

when a second predetermined timing that is different from the first predetermined timing comes, saving the management data temporarily stored in the volatile memory, in a second area of the nonvolatile memory; and

when the memory system is powered off before the management data is stored in the second area of the nonvolatile memory, at a time of start of the memory system after the memory system is powered off, using the first data in the first area of the nonvolatile memory to restore the management data, and storing the restored management data in the volatile memory.

2. The method according to claim 1 , further comprising:

when storing the first data in the first area of the nonvolatile memory at the first predetermined timing, also storing a first log in the nonvolatile memory, the first log including first information corresponding to a time of reception of the deletion request, and

when storing the second data in the second area of the nonvolatile memory at the second predetermined timing, also storing a second log in the nonvolatile memory, the second log including a logical address corresponding to the second data and second information corresponding to a time of reception of the write request.

3. The method according to claim 2 , further comprising:

at the time of start of the memory system, retrieving the first log and the second log stored in the nonvolatile memory, and also using the first and second logs to restore the management data.

4. The method according to claim 1 , wherein the nonvolatile memory is a nonvolatile semiconductor memory.

5. The method according to claim 1 , wherein

the volatile memory includes a data storage area that temporarily stores the first data and the second data, and not the management data, and a management data storage area that temporarily stores the management data, and not the first data and the second data,

the first predetermined timing includes a timing when a size of non-saved data in the data storage area that have not been saved in the first area of the nonvolatile memory reaches a first predetermined threshold, and

the second predetermined timing includes a timing when a size of non-saved data in the management data storage area that have not been saved in the second area of the nonvolatile memory reaches a second predetermined threshold.

6. A computing device comprising:

a host; and

a memory system including a host interface configured to communicate with the host, a volatile memory, a nonvolatile memory including a first area and a second area different from the first area, and a memory controller configured to control the host interface, the volatile memory, and the nonvolatile memory, wherein

the memory controller is configured to:

temporarily store, in the volatile memory, management data including mapping information that associates a logical address managed by the host device with a physical address of the nonvolatile memory using one or more of a plurality of entries, each of the entries corresponding to data of a page and including a logical address managed by the host device, a logical address of the nonvolatile memory, a first flag indicating whether or not the page is valid, and a second flag indicating whether or not the page is designated to be deleted,

upon receiving a deletion request from the host device, temporarily store, in the volatile memory, first data including a logical address and a deletion range designated by the deletion request and update the management data to specify data that are designated to be deleted by the deletion request, the first data being different from the management data and not including the mapping information,

upon receiving a write request from the host device, temporarily store, in the volatile memory, second data designated by the write request and update the management data,

control the volatile memory and the nonvolatile memory to save the first data temporarily stored in the volatile memory and the second data temporarily stored in the volatile memory, in the first area the nonvolatile memory at a first predetermined timing,

control the volatile memory and the nonvolatile memory to save the management data temporarily stored in the volatile memory, in the second area of the nonvolatile memory at a second predetermined timing that is different from the first predetermined timing, and

in case of power-off before the management data is stored in the second area of the nonvolatile memory, at a time of start of the memory system after the power-off, use the first data in the first area of the nonvolatile memory to restore the management data, and store the restored management data in the volatile memory.

7. The computing device according to claim 6 , wherein the memory controller

when storing the first data in the first area of the nonvolatile memory at the first predetermined timing, also stores a first log in the nonvolatile memory, the first log including first information corresponding to a time of reception of the deletion request, and

when storing the second data in the first area of the nonvolatile memory at the second predetermined timing, the memory controller stores a second log in the nonvolatile memory, the second log including a logical address corresponding to the second data and second information corresponding to a time of reception of the write request.

8. The computing device according to claim 7 , wherein

at the time of start of the memory system, the memory controller also uses the first log and the second log stored in the nonvolatile memory to restore the management data.

9. The computing device according to claim 6 , wherein the nonvolatile memory is a nonvolatile semiconductor memory.

10. The computing device according to claim 6 , wherein

the volatile memory includes a data storage area that temporarily stores the first data and the second data, and not the management data, and a management data storage area that temporarily stores the management data, and not the first data and the second data,

the first predetermined timing includes a timing when a size of non-saved data in the data storage area that have not been saved in the first area of the nonvolatile memory reaches a first predetermined threshold, and

the second predetermined timing includes a timing when a size of non-saved data in the management data storage area that have not been saved in the second area of the nonvolatile memory reaches a second predetermined threshold.

11. A memory system which is accessible from a host device, comprising:

a volatile memory;

a nonvolatile memory including a first area and a second area different from the first area; and

a memory controller configured to:

temporarily store, in the volatile memory, management data including mapping information that associates a logical address managed by the host device with a physical address of the nonvolatile memory using one or more of a plurality of entries, each of the entries corresponding to data of a page and including a logical address managed by the host device, a logical address of the nonvolatile memory, a first flag indicating whether or not the page is valid, and a second flag indicating whether or not the page is designated to be deleted,

upon receiving a deletion request from the host device, temporarily store, in the volatile memory, first data including a logical address and a deletion range designated by the deletion request and update the management data to specify data that are designated to be deleted by the deletion request, the first data being different from the management data and not including the mapping information,

upon receiving a write request from the host device, temporarily store, in the volatile memory, second data designated by the write request and update the management data,

control the volatile memory and the nonvolatile memory to save the first data temporarily stored in the volatile memory and the second data temporarily stored in the volatile memory, in the first area of the nonvolatile memory at a first predetermined timing,

control the volatile memory and the nonvolatile memory to save the management data temporarily stored in the volatile memory, in the second area of the nonvolatile memory at a second predetermined timing that is different from the first predetermined timing, and

in case of power-off before the management data is stored in the second area of the nonvolatile memory, at a time of start of the memory system after the power-off, use the first data stored in the first area of the nonvolatile memory to restore the management data, and store the restored management data in the volatile memory.

12. The memory system according to claim 11 , wherein

when storing the first data in the first area of the nonvolatile memory at the first predetermined timing, the memory controller stores a first log in the nonvolatile memory, the first log including first information corresponding to a time of reception of the deletion request, and

when storing the second data in the first area of the nonvolatile memory at the second predetermined timing, the memory controller stores a second log in the nonvolatile memory, the second log including a logical address corresponding to the second data and second information corresponding to a time of reception of the write request.

13. The memory system according to claim 12 , wherein

at the time of start of the memory system, the memory controller also uses the first log and the second log stored in the nonvolatile memory to restore the management data.

14. The memory system according to claim 11 , wherein the nonvolatile memory is a nonvolatile semiconductor memory.

15. The memory system according to claim 11 , wherein

the volatile memory includes a data storage area that temporarily stores the first data and the second data, and not the management data, and a management data storage area that temporarily stores the management data, and not the first data and the second data,

the first predetermined timing includes a timing when a size of non-saved data in the data storage area that have not been saved in the first area of the nonvolatile memory reaches a first predetermined threshold, and

the second predetermined timing includes a timing when a size of non-saved data in the management data storage area that have not been saved in the second area of the nonvolatile memory reaches a second predetermined threshold.

Assignments (4)
CHANGE OF NAME AND ADDRESS Recorded Feb 4, 2022
From: K.K PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 058957/0124 →
CHANGE OF NAME AND ADDRESS Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058905/0582 →
MERGER Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: K.K PANGEA
Reel/Frame 058946/0675 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: YONEZAWA, SHINJI
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 044112/0036 →
Priority Claims (1)
JP JP2017-057713 · Mar 23, 2017 · national
Continuity (1)
Related Publication 20180275875A1 · Sep 27, 2018