Memory system and method for controlling nonvolatile memory
AssigneeKioxia Corporation
InventorShinichi Kanno
Life of this patent
Estimating the term…
Abstract
According to one embodiment, a memory system classifies a plurality of nonvolatile memory dies connected to a plurality of channels, into a plurality of die groups such that each of the plurality of nonvolatile memory dies belongs to only one die group. The memory system performs a data write/read operation for one die group of the plurality of die groups in accordance with an I/O command from a host designating one of a plurality of regions including at least one region corresponding to each die group. The memory system manages a group of free blocks in the nonvolatile memory for each of the plurality of die group by using a plurality of free block pools corresponding to the plurality of die groups.
Claims40
A memory system connectable to a host, the memory system comprising:
- a nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the nonvolatile memory dies including a plurality of blocks;
- and
- a controller configured to control the nonvolatile memory via the plurality of channels, wherein
- the controller is configured to:
- classify the plurality of nonvolatile memory dies into a first die group including a plurality of first nonvolatile memory dies and a second die group including a plurality of second nonvolatile memory dies different from the first nonvolatile memory dies;
- in response to receiving, from the host, a first write command designating a first region corresponding to the first die group, write first data to be written to the first region to a first write destination block which is selected from one of the first nonvolatile memory dies;
- and
- in response to receiving, from the host, a second write command designating a second region corresponding to the second die group, write second data to be written to the second region to a second write destination block which is selected from one of the second nonvolatile memory dies,
- a group of free blocks belonging to the first die group is managed by a first free block pool corresponding to the first die group,
- a group of free blocks belonging to the second die group is managed by a second free block pool corresponding to the second die group,
- the first write destination block is allocated from the first free block pool,
- the second write destination block is allocated from the second free block pool,
- the first free block pool is a free block pool dedicated to a first data block pool managing each of blocks which belongs to the first die group and which holds valid data, and
- the second free block pool is a shared free block pool shared by a plurality of second data block pools managing respective blocks which belong to the second die group and which hold valid data.
A method of controlling a nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the nonvolatile memory dies including a plurality of blocks, the method comprising:
- classifying the plurality of nonvolatile memory dies into a first die group including a plurality of first nonvolatile memory dies and a second die group including a plurality of second nonvolatile memory dies different from the first nonvolatile memory dies;
- in response to receiving, from a host, a first write command designating a first region corresponding to the first die group, writing first data to be written to the first region to a first write destination block which is selected from one of the first nonvolatile memory dies;
- and
- in response to receiving, from the host, a second write command designating a second region corresponding to the second die group, writing second data to be written to the second region to a second write destination block which is selected from one of the second nonvolatile memory dies, wherein
- a group of free blocks belonging to the first die group is managed by a first free block pool corresponding to the first die group,
- a group of free blocks belonging to the second die group is managed by a second free block pool corresponding to the second die group,
- the first write destination block is allocated from the first free block pool,
- the second write destination block is allocated from the second free block pool,
- the first free block pool is a free block pool dedicated to a first data block pool managing each of blocks which belongs to the first die group and which holds valid data, and
- the second free block pool is a shared free block pool shared by a plurality of second data block pools managing respective blocks which belong to the second die group and which hold valid data.
A memory system connectable to a host, the memory system comprising:
- a nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the plurality of nonvolatile memory dies including a plurality of blocks;
- and
- a controller configured to control the nonvolatile memory via the plurality of channels, wherein
- the controller is configured to:
- classify the plurality of nonvolatile memory dies into a first die group and a second die group such that each of the plurality of nonvolatile memory dies belongs to only one die group;
- in response to receiving, from the host, a first write command designating a first region corresponding to the first die group, write first data to be written to the first region to a first write destination block which is selected from the first die group;
- and
- in response to receiving, from the host, a second write command designating a second region corresponding to the second die group, write second data to be written to the second region to a second write destination block which is selected from the second die group,
- free blocks belonging to the first die group are managed by a first free block pool corresponding to the first die group,
- free blocks belonging to the second die group are managed by a second free block pool corresponding to the second die group,
- the first write destination block is allocated from the first free block pool,
- the second write destination block is allocated from the second free block pool,
- the first free block pool is a free block pool dedicated to a first data block pool, the first data block pool managing each of blocks which belongs to the first die group and which stores valid data, and
- the second free block pool is a shared free block pool shared by a plurality of second data block pools, the plurality of second data block pools managing respective blocks which belong to the second die group and which store valid data.
A memory system connectable to a host, the memory system comprising:
- a nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the plurality of nonvolatile memory dies including a plurality of blocks;
- and
- a controller configured to control the nonvolatile memory via the plurality of channels, wherein
- the controller is configured to:
- classify the plurality of nonvolatile memory dies into a first die group and a second die group such that each of the plurality of nonvolatile memory dies belongs to only one die group;
- and
- in response to receiving, from the host, a copy command designating the first die group as a copy source and designating the second die group as a copy destination,
- (1) read valid data from a first block which is selected from the first die group;
- and
- (2) write the read valid data to a second block which is selected from the second die group.
A memory system connectable to a host, the memory system comprising:
- a nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the plurality of nonvolatile memory dies including a plurality of blocks;
- and
- a controller configured to control the nonvolatile memory via the plurality of channels, wherein
- the controller is configured to:
- classify the plurality of nonvolatile memory dies into a first die group and a second die group such that each of the plurality of nonvolatile memory dies belongs to only one die group;
- in response to receiving, from the host, a first write command designating a first region corresponding to the first die group, write first data to be written to the first region to a first write destination block which is selected from the first die group;
- and
- in response to receiving, from the host, a second write command designating a second region corresponding to the second die group, write second data to be written to the second region to a second write destination block which is selected from the second die group, wherein
- free blocks belonging to the first die group are managed by a first free block pool corresponding to the first die group,
- free blocks belonging to the second die group are managed by a second free block pool corresponding to the second die group,
- the first write destination block is allocated from the first free block pool,
- the second write destination block is allocated from the second free block pool,
- the first free block pool is a shared free block pool shared by a plurality of first data block pools, the plurality of first data block pools managing respective blocks which belong to the first die group and which store valid data, and
- the second free block pool is a shared free block pool shared by a plurality of second data block pools, the plurality of second data block pools managing respective blocks which belong to the second die group and which store valid data.
A method of controlling a nonvolatile memory, the nonvolatile memory including a plurality of nonvolatile memory dies connected to a plurality of channels, each of the plurality of nonvolatile memory dies including a plurality of blocks, said method comprising:
- classifying the plurality of nonvolatile memory dies into a first die group and a second die group such that each of the plurality of nonvolatile memory dies belongs to only one die group;
- and
- in response to receiving, from a host, a copy command designating the first die group as a copy source and designating the second die group as a copy destination,
- (1) reading valid data from a first block which is selected from the first die group;
- and
- (2) writing the read valid data to a second block which is selected from the second die group.
Dependencies are inferred from the claim text.