IP Library Granted Patent US 9,891,825
Granted Patent B2
US 9,891,825 · App. 14/852,182 · Granted Feb 13, 2018

Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity

Inventors: Takahiro Nango (Tokyo, JP); Yoshihisa Kojima (Kanagawa, JP); Tohru Fukuda (Tokyo, JP)
Assignee: Toshiba Memory Corporation
G06F3/0604G06F3/064G06F3/0679G06F12/0284G06F3/0644G06F12/0292G06F12/109G06F12/1036
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 9,891,825
App. No.
14/852,182
Granted
Feb 13, 2018
Kind
B2
Abstract

According to one embodiment, a memory system includes a first storage area and a controller. The first storage area configured to store therein data sent from a host. The size of the first storage area is a first size larger than a second size. The second size is a size of a logical address space which is assigned to a memory system by the host. The controller is configured to change the second size in response to a request from the host while at least a part of data in the logical address space stays valid.

Claims (86)

1. A memory system comprising:

a first storage area configured to store therein data received from a host, a size of the first storage area being a first size larger than a second size, the second size being a size of a logical address space which is assigned to the memory system by the host;

a second storage area configured to store therein first correspondence information which includes second correspondence information and one or more pieces of third correspondence information, the second correspondence information including one or more first records, each of the one or more pieces of third correspondence information indicating a physical address in the first storage area, each of the one or more first records associates a logical address in the logical address space with a pointer which points to corresponding information among the one or more pieces of third correspondence information; and

a controller configured to change the second size in response to a request from the host while at least a part of data in the logical address space stays valid, wherein

the controller adds a second record to the second correspondence information in response to a first request, and deletes a third record from the second correspondence information in response to a second request,

the first request is a request for increasing the second size,

the second request is a request for decreasing the second size,

the second record is a first record corresponding to a first logical address space which is added according to the increase of the second size, and

the third record is a first record corresponding to a second logical address space which is deleted according to the decrease of the second size.

2. The memory system according to claim 1 ,

wherein

the controller is configured to

add the second record to the second correspondence information,

set a first flag of the added second record, and

in a case of attempting to access a logical space of the first logical address space corresponding to the added second record, generate a new piece of third correspondence information which indicates a physical address of a destination of the access, records a pointer which points to the new piece of third correspondence information in the added second record, and resets the first flag of the added second record.

3. The memory system according to claim 1 , wherein

each of the one or more first records included in the second correspondence information corresponds to an area in a first unit in the logical address space,

each of the one or more pieces of third correspondence information indicates a plurality of physical addresses,

each of the plurality of physical addresses corresponds to an area in a second unit in the logical address space,

the area in the second unit is smaller than the area in the first unit,

the controller is configured to

check whether a state of an area in the second unit in the second logical address space is a first state or a second state, the first state being a state in which a logical address of the area in the second unit is associated with a physical address, the second state being a state in which the logical address of the area in the second unit is associated with no physical addresses,

in a case where the second request is received, determine whether there is a first area in the second logical address space,

and in a case where there is the first area in the second logical address space, warn the host,

the first area being an area in the second unit in the first state.

4. The memory system according to claim 3 ,

wherein the controller is configured to delete the third record after the warning to the host.

5. The memory system according to claim 3 ,

wherein the controller is configured to delete the third record in a case where a permission is received after the warning to the host.

6. The memory system according to claim 5 ,

wherein the controller does not delete the third record in a case where the permission is not received after the warning to the host.

7. The memory system according to claim 5 ,

wherein the controller is configured to

in a case where the second request is received,

set a second flag of an area in the first unit included in the second logical address space before performing the determination process to check whether there is the first area in the second logical address space, and then notify the host of a completion response to the received second request, and

after the notification of the completion response, start the determination process on the area in the first unit of which the second flag is set.

8. The memory system according to claim 1 ,

wherein

each of the one or more first records included in the second correspondence information corresponds to an area in a first unit in the logical address space,

each of the one or more pieces of third correspondence information indicates a plurality of physical addresses,

each of the plurality of physical addresses corresponds to an area in a second unit in the logical address space,

the area in the second unit is smaller than the area in the first unit, and

the controller is configured to

check whether a state of an area in the second unit in the second logical address space is a first state or a second state, the first state being a state in which a logical address of the area in the second unit is associated with a physical address, the second state being a state in which the logical address of the area in the second unit is associated with no physical addresses,

in a case where the second request is received, determine whether there is a first area in the second logical address space,

and in a case where there is the first area in the second logical address space, abort processing the second request,

the first area being an area in the second unit in the first state.

9. The memory system according to claim 1 ,

wherein

each of the one or more first records included in the second correspondence information corresponds to an area in a first unit in the logical address space,

each of the one or more pieces of third correspondence information indicates a plurality of physical addresses,

each of the plurality of physical addresses corresponds to an area in a second unit in the logical address space,

the area in the second unit is smaller than the area in the first unit, and

the controller is configured to

check whether a state of an area in the second unit in the second logical address space is a first state or a second state, the first state being a state in which a logical address of the area in the second unit is associated with a physical address, the second state being a state in which the logical address of the area in the second unit is associated with no physical addresses,

in a case where the second request is received, determine whether there is a first area in the second logical address space, the first area being an area in the second unit in the first state,

in a case where there is the first area in the second logical address space, records information indicating the second state in a piece of third correspondence information corresponding to the first area and delete the third record, and

in a case where there is no first area in the second logical address space, deletes the third record without updating a piece of third correspondence information corresponding to the first area.

10. The memory system according to claim 1 ,

wherein the first storage area includes a plurality of blocks, and

the controller is configured to

write data received from the host in an empty area of a first block, the first block being a block having the empty area among the plurality of blocks,

in a case where two pieces of data designated to a same first logical address are stored in the first storage area, and in a case where the two pieces of data are stored at locations indicated by different physical addresses, regard one of the two pieces of data stored at a location indicated by a physical address associated with the first logical address by the first correspondence information as valid data, and regard the other of the two pieces of data stored at a location indicated by a physical address not associated with the first logical address by the first correspondence information as invalid data,

perform a garbage collection in which a second block is selected from the plurality of blocks, valid data among data stored in the second block is copied to an empty area of a third block, the third block being a block having the empty area among the plurality of blocks, and the second block is set as a free block after the copying,

erase all the data stored in the free block after the garbage collection, and

control a ratio of an amount of the data to be written to the third block by the garbage collection to an amount of the data from the host to be written to the first block according to a number of free blocks, the first size and the second size.

11. The memory system according to claim 10 ,

wherein the controller is configured to

make the ratio higher in a case where the number of free blocks is a first value than the ratio in a case where the number of free blocks is a second value, the second value being larger than the first value.

12. The memory system according to claim 10 ,

wherein the controller is configured to make the ratio higher in a case where the second size is a first value than the ratio in a case where the second size is a second value, the second value being smaller than the first value.

13. The memory system according to claim 10 ,

wherein the controller is configured to

make the ratio higher in a case where a percentage of a value obtained by subtracting the second size from the first size with respect to the second size is a first value than the ratio in a case where the percentage is a second value, the second value being larger than the first value.

14. The memory system according to claim 10 ,

wherein the controller tracks an amount of valid data for each block, and selects a block having a minimum amount of valid data from among the plurality of blocks as the second block.

15. The memory system according to claim 14 ,

wherein

each of the one or more first records included in the second correspondence information corresponds to an area in a first unit in the logical address space,

each of the one or more pieces of third correspondence information indicates a plurality of physical addresses,

each of the plurality of physical addresses corresponds to an area in a second unit in the logical address space,

the area in the second unit is smaller than the area in the first unit, and

the controller is configured to

check whether a state of an area in the second unit in the second logical address space is a first state or a second state, the first state being a state in which a logical address of the area in the second unit is associated with a physical address, the second state being a state in which the logical address of the area in the second unit is associated with no physical addresses,

determine whether there is a first area in the second logical address space in a case where the second request is received, the first area being an area in the second unit in the first state, and

in a case where there is the first area in the second logical address space, acquire a physical address corresponding to a logical address indicating the first area by referring to the first correspondence information, decrease a tracked value of an amount of valid data in a block to which the acquired physical address belongs among the plurality of blocks, and delete the third record.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043066/0329 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2015
From: NANGO, TAKAHIRO; KOJIMA, YOSHIHISA; FUKUDA, TOHRU
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 036843/0864 →
Continuity (2)
Provisional Application 62106989 · Jan 23, 2015
Related Publication 20160216894A1 · Jul 28, 2016