IP Library Granted Patent US 10,346,039
Granted Patent B2
US 10,346,039 · App. 15/065,244 · Granted Jul 9, 2019

Memory system

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,346,039
App. No.
15/065,244
Granted
Jul 9, 2019
Kind
B2
Abstract

According to one embodiment, a memory system includes a memory and a controller. The memory includes a plurality of blocks. The controller receives a first data group and a second data group from a host. The controller stores the first data group to a first block group, and stores the second data group to a second block group. The first block group includes one or more first blocks among the plurality of blocks. The second block group includes one or more second blocks among the plurality of blocks. The controller controls the number of first blocks so that the number of the first blocks is not more than a first value, and the controller controls the number of second blocks so that the number of the second blocks is not more than a second value.

Claims (60)

1. A memory system, comprising:

a memory that includes a plurality of blocks; and

a controller configured to:

receive a first data group and a second data group from a host;

store the first data group dedicatedly to a first block group and store the second data group dedicatedly to a second block group, the first block group including one or more first blocks among the plurality of blocks, the second block group including one or more second blocks among the plurality of blocks, the first block group being different from the second block group, the first data group being a group of data requested by the host to be written to a first name space, the second data group being a group of data requested by the host to be written to a second name space different from the first name space;

calculate a first value on the basis of a first over-provisioning capacity, the first over-provisioning capacity being an over-provisioning capacity allocated to the first block group from a total over-provisioning capacity of the memory system;

control the storing of the first data group so that a number of the first blocks does not exceed the first value;

calculate a second value on the basis of a second over-provisioning capacity, the second over-provisioning capacity being an over-provisioning capacity allocated to the second block group from the total over-provisioning capacity of the memory system; and

control the storing of the second data group so that a number of the second blocks does not exceed the second value.

2. The memory system according to claim 1 , wherein the controller sets the first over-provisioning capacity and the second over-provisioning capacity on the basis of a command given from the host.

3. The memory system according to claim 2 , wherein

the command includes an input quantity of the first data group and an input quantity of the second data group, and

the controller calculates a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the input quantity of the first data group and the input quantity of the second data group.

4. The memory system according to claim 1 , wherein the controller controls the number of the first blocks by performing garbage collection on the first block group, and controls the number of the second blocks by performing garbage collection on the second block group.

5. The memory system according to claim 4 , wherein the controller calculates a first quantity on the basis of the input quantity of the first data group, the first quantity being a quantity of data copied to the first block group in the garbage collection, calculates a second quantity on the basis of the input quantity of the second data group, the second quantity being a quantity of data copied to the second block group in the garbage collection, and determines a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the first quantity and the second quantity.

6. The memory system according to claim 5 , wherein the controller stores at least one relation between an over-provisioning percentage and a write ratio, the write ratio being a ratio between a quantity of data copied in garbage collection and an input quantity of data from the host, and calculates the first quantity and the second quantity by using the at least one relation, the over-provisioning percentage being a value obtained by dividing an over-provisioning capacity by a size of a name space.

7. The memory system according to claim 6 , wherein

the at least one relation comprises a plurality of second relations,

the controller sets the first over-provisioning capacity and the second over-provisioning capacity on the basis of a command given from the host,

the command including first information regarding randomness of addresses of the first data group and second information regarding randomness of addresses of the second data group, and

the controller selects a third relation according to the first information among the plurality of second relations, selects a fourth relation according to the second information among the plurality of second relations, calculates the first quantity by using the third relation and calculates the second quantity by using the fourth relation.

8. The memory system according to claim 1 , wherein the controller:

calculates, on the basis of a size of the first name space and a candidate value of the first over-provisioning capacity, an over-provisioning percentage of the first block group;

calculates, on the basis of a first relation and the over-provisioning percentage of the first block group, the first quantity;

calculates, on the basis of a size of the second name space and a candidate value of the second over-provisioning capacity, an over-provisioning percentage of the second block group; and

calculates, on the basis of a second relation and the over-provisioning percentage of the second block group, the second quantity,

the first relation being a relation between an over-provisioning percentage and a first write ratio, the second relation being a relation between an over-provisioning percentage and a second write ratio, the first write ratio and the second write ratio each being a ratio between a quantity of data copied in garbage collection and an input quantity of data from the host.

9. The memory system according to claim 2 , wherein

the command includes first information regarding randomness of addresses of the first data group and second information regarding randomness of addresses of the second data group, and

the controller calculates a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the first information and the second information.

10. The memory system according to claim 2 , wherein

the command includes a ratio between the first over-provisioning capacity and the second over-provisioning capacity, and

the controller calculates a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the ratio.

11. The memory system according to claim 1 , wherein

the controller determines whether data received from the host belongs to the first data group or the second data group on the basis of an address of the data received from the host.

12. The memory system according to claim 1 , wherein the controller measures an input quantity of the first data group and an input quantity of the second data group, and calculates a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the input quantity of the first data group and the input quantity of the second data group.

13. The memory system according to claim 12 , wherein the controller controls the number of first blocks by performing garbage collection on the first block group, and controls the number of second blocks by performing garbage collection on the second block group.

14. The memory system according to claim 13 , wherein the controller calculates a first quantity on the basis of the input quantity of the first data group, the first quantity being a quantity of data copied to the first block group in the garbage collection, calculates a second quantity on the basis of the input quantity of the second data group, the second quantity being a quantity of data copied to the second block group in the garbage collection, and determines a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the first quantity and the second quantity.

15. The memory system according to claim 14 , wherein the controller stores at least one relation between an over-provisioning percentage and a write ratio, the write ratio being a ratio between a quantity of data copied in garbage collection and an input quantity of data from the host, and calculates the first quantity and the second quantity by using the at least one relation, the over-provisioning percentage being obtained by dividing an over-provisioning capacity by a size of a name space.

16. The memory system according to claim 15 , wherein

the at least one relation comprises a plurality of second relations, and

the controller further

measures first randomness of addresses of the first data group and second randomness of addresses of the second data group,

selects a third relation according to the first randomness among the plurality of second relations,

selects a fourth relation according to the second randomness among the plurality of second relations,

calculates the first quantity by using the third relation, and

calculates the second quantity by using the fourth relation.

17. The memory system according to claim 1 , wherein the controller measures first randomness of addresses of the first data group and second randomness of addresses of the second data group, and calculates a setting value of the first over-provisioning capacity and a setting value of the second over-provisioning capacity on the basis of the first randomness and the second randomness.

18. The memory system according to claim 1 , wherein the controller dynamically adjusts the first value and the second value.

19. The memory system according to claim 1 , wherein the first over-provisioning capacity and the second over-provisioning capacity are respectively distributed from the total over-provisioning capacity of the memory system.

20. A memory system, comprising:

a memory that includes a plurality of blocks; and

a controller configured to:

receive a first data group and a second data group from host;

store the first data group dedicatedly to a first block group and store the second data group dedicatedly to a second block group, the first block group including one or more first blocks among the plurality of blocks, the second block group including one or more second blocks among the plurality of blocks, the first block group being different from the second block group, the first data group being a group of data requested by the host to be written to a first range of a logical address, the second data group being a group of data requested by the host to be written to a second range of a logical address, the first range being different from the second range;

calculate a first value on the basis of a first over-provisioning capacity, the first over-provisioning capacity being an over-provisioning capacity allocated to the first block group from a total over-provisioning capacity of the memory system;

control the storing of the first data group so that a number of the first blocks does not exceed the first value;

calculate a second value on the basis of a second over-provisioning capacity, the second over-provisioning capacity being an over-provisioning capacity allocated to the second block group from the total over-provisioning capacity of the memory system; and

control the storing of the first data group so that a number of the second blocks does not exceed a second value.

21. The memory system according to claim 20 , wherein the first over-provisioning capacity and the second over-provisioning capacity are respectively distributed from the total over-provisioning capacity of the memory system.

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 5, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043088/0620 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2016
From: KOJIMA, YOSHIHISA
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 038549/0297 →