IP Library › Granted Patent US 12,566,696
Granted Patent B2
US 12,566,696 · App. 18/593,215 · Granted Mar 3, 2026

Memory system that updates address mapping table based on writing of compressed data

Inventors: Takashi Takemoto (Yokohama Kanagawa, JP); Kensaku Yamaguchi (Kawasaki Kanagawa, JP); Keiri Nakanishi (Kawasaki Kanagawa, JP); Kohei Oikawa (Kawasaki Kanagawa, JP); Sho Kodama (Yokohama Kanagawa, JP)
Assignee: Kioxia Corporation
G06F12/0246G06F12/0253G06F2212/7201
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 12,566,696
App. No.
18/593,215
Filed
Mar 1, 2024
Granted
Mar 3, 2026
Kind
B2
Art Unit
2135
USPC
711/202
Abstract

A memory system includes a nonvolatile memory and a controller. The controller is configured to maintain an address mapping table including first mapping information indicating correspondence between logical addresses and physical addresses of the nonvolatile memory in units of physical regions each having a predetermined size. The controller, during a write operation compresses write data of the predetermined size into a compressed write data, determines a physical address range in which the compressed write data is to be written, writes the compressed write data into the physical address range and also second mapping information into an area in one or more physical regions spanned by the physical address range, and updates the address mapping table. The second mapping information indicates a logical address of the write data, an information capable of specifying an offset, and a size of the compressed write data.

Claims (49)

1 . A memory system comprising:

a nonvolatile memory; and

a controller configured to:

maintain an address mapping table including first mapping information indicating correspondence between logical addresses and physical addresses of the nonvolatile memory in units of physical regions each having a predetermined size; and

perform a write operation in response to a write command, wherein the controller, during the write operation:

compresses write data of the predetermined size corresponding to the write command into a compressed write data;

determines a physical address range of the nonvolatile memory in which the compressed write data is to be written;

writes the compressed write data into the physical address range of the nonvolatile memory and also second mapping information into an area in one or more physical regions spanned by the physical address range, the second mapping information including a first entry that indicates a logical address of the write data, an information capable of specifying an offset, and a size of the compressed write data, the offset indicating a starting point of the physical address range from which the compressed write data is written; and

updates the address mapping table, such that the first mapping information corresponding to the write data indicates that the logical address of the write data is mapped to one of the one or more physical regions.

2 . The memory system according to claim 1 , wherein when the physical address range in which the compressed write data is written spans a plurality of physical regions, the first mapping information corresponding to the write data also indicates a number of physical regions spanned by the physical address range.

3 . The memory system according to claim 1 , wherein the controller is configured to perform a read operation to read the compressed data, wherein the controller, during the read operation, reads entirety of data stored in the one more physical regions spanned by the physical address range.

4 . The memory system according to claim 1 , wherein the address mapping table includes no information about the offset and the size of the compressed write data.

5 . The memory system according to claim 1 , wherein the controller is further configured to:

determine a block of the nonvolatile memory to be a target block to be subjected to a garbage collection, the block corresponding to a group of physical regions; and

perform the garbage collection with respect to the target block,

wherein the controller determines the target block in accordance with an evaluation value, which is obtained with a number of physical regions in a block in which valid data is stored divided by an average compression ratio of data stored in the block.

6 . The memory system according to claim 5 , wherein the controller determines a block of the nonvolatile memory that has a minimum evaluation value to be the target block to be subjected to the garbage collection.

7 . The memory system according to claim 5 , wherein the controller is further configured to:

maintain the average compression ratio for each of a plurality of blocks of the nonvolatile memory; and

at a predetermined timing, determine a second target block for which the average compression ratio is to be updated and calculate the average compression ratio of data stored in the second target block.

8 . The memory system according to claim 7 , wherein the predetermined timing is during the garbage collection.

9 . The memory system according to claim 7 , wherein the predetermined timing is when the controller detects a block in which invalid data increased by more than a predetermined amount from a last update of the average compression ratio.

10 . The memory system according to claim 7 , wherein the controller determines a block of the nonvolatile memory for which the average compression ratio has not been updated for a longest period of time, to be the second target block.

11 . The memory system according to claim 7 , wherein the controller determines a block of the nonvolatile memory having a largest amount of increase in invalid data from a last update of the average compression ratio, to be the second target block.

12 . The memory system according to claim 1 , wherein the controller is further configured to:

maintain a log indicating a write history with respect to each of a plurality of blocks of the nonvolatile memory, each of the blocks corresponding to a group of physical regions, the log including one or more entries, which indicate chronologically logical address of compressed data which has been written.

13 . The memory system according to claim 12 , wherein the controller is further configured to:

when overwrite data of the compressed write data is written in a same physical region in which the compressed write data has been written, invalidate an entry of the log corresponding to the compressed write data.

14 . The memory system according to claim 13 , wherein the controller is configured to update the logical address in the entry of the log corresponding to the compressed write data to an invalid value, to invalidate the entry of the log.

15 . The memory system according to claim 12 , wherein the controller is further configured to:

determine a block of the nonvolatile memory to be a target block to be subjected to a garbage collection; and

perform a garbage collection with respect to the target block, wherein the controller, during the garbage collection, searches the log corresponding to the target block for multiple entries that indicate correspondence between the same physical address and the same logical address and determines data corresponding to one or more of the multiple entries except for a newest one thereof to be invalid.

16 . The memory system according to claim 1 , wherein the controller is further configured to:

retrieve whether there are a plurality of entries, which include the same logical address, in the second mapping information; and

invalidate one or more entries other than a chronologically final entry among the plurality of entries when there are the plurality of entries.

17 . The memory system according to claim 1 , wherein the controller is further configured to:

when overwrite data of the compressed write data is written in a same physical region in which the compressed write data has been written, update the second mapping information in the area in the one or more physical regions spanned by the physical address range,

said update of the second mapping information includes:

adding a second entry that indicates a logical address of the overwrite data and an offset indicating a starting point of the physical address range from which the overwrite data is written; and

invalidating the first entry.

18 . The memory system according to claim 16 , wherein the controller is configured to update the logical address in the first entry to an invalid value, to invalidate the first entry.

19 . A method for controlling a memory system including a nonvolatile memory, the method comprising:

maintaining an address mapping table including first mapping information indicating correspondence between logical addresses and physical addresses of the nonvolatile memory in units of physical regions each having a predetermined size; and

performing a write operation in response to a write command, wherein the write operation includes:

compressing write data of the predetermined size corresponding to the write command into a compressed write data;

determining a physical address range of the nonvolatile memory in which the compressed write data is to be written;

writing the compressed write data into the physical address range of the nonvolatile memory and also second mapping information into an area in one or more physical regions spanned by the physical address range, the second mapping information including a first entry that indicates a logical address of the write data, an information capable of specifying an offset, and a size of the compressed write data, the offset indicating a starting point of the physical address range from which the compressed write data is written; and

updating the address mapping table, such that the first mapping information corresponding to the write data indicates that the logical address of the write data is mapped to one of the one or more physical regions.

20 . The method according to claim 19 , wherein when the physical address range in which the compressed write data is written spans a plurality of physical regions, the first mapping information corresponding to the write data also indicates a number of physical regions spanned by the physical address range.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2024
From: TAKEMOTO, TAKASHI; YAMAGUCHI, KENSAKU; NAKANISHI, KEIRI; OIKAWA, KOHEI; KODAMA, SHO
To: KIOXIA CORPORATION
Reel/Frame 067119/0984 →
Priority Claims (1)
JP 2023-037805 · Mar 10, 2023 · national
Continuity (1)
Related Publication 20240303188A1 · Sep 12, 2024
References Cited (11)
US 9898404B2 · Huang et al. · 2018 [cited by applicant]
US 10013170B1 · Sahin · 2018 [cited by examiner]
US 10120793B2 · Kanno · 2018 [cited by applicant]
US 10635310B2 · Kanno · 2020 [cited by applicant]
US 20160110128A1 · Tomlin · 2016 [cited by examiner]
US 20160313943A1 · Hashimoto · 2016 [cited by examiner]
US 20180088811A1 · Kanno · 2018 [cited by examiner]
US 20210073128A1 · Fukunaga · 2021 [cited by examiner]
US 20230142767A1 · Nakanishi · 2023 [cited by examiner]
JP 6482322B2 · 2019 [cited by applicant]
JP 6553566B2 · 2019 [cited by applicant]