Storage system and information processing system for controlling nonvolatile memory
AssigneeKioxia Corporation
InventorShinichi Kanno
Life of this patent
Estimating the term…
Abstract
According to one embodiment, a storage system includes a controller. The controller receives, from a host, a write command including a block address indicating a first block in a plurality of blocks, and a page address indicating a first page of the first block. The controller writes data designated by the write command to the first page of the first block. The controller notifies the host 2 of a page address indicating a latest readable page which is included in pages of the first block, the pages containing data which was written by the host before the designated data was written to the first page, the latest readable page having become readable by writing the designated data to the first page.
Claims14
A memory system, comprising:
- a nonvolatile memory including a plurality of blocks, each of the plurality of blocks being a unit of an erase operation;
- and
- a controller electrically connected to the nonvolatile memory, the controller being configured to:
- classify the plurality of blocks into a plurality of first blocks and a plurality of second blocks;
- manage a plurality of block groups, each of the plurality of block groups including at least two of the plurality of second blocks;
- in response to receiving a first allocation command from a host, the first allocation command requesting allocation of one of the plurality of first blocks for the host, allocate the one of the plurality of first blocks for the host, and notify the host of a block identifier of the allocated one of the plurality of first blocks;
- in response to receiving a first write command from the host, the first write command specifying at least the block identifier of the one of the plurality of first blocks, select, based on the block identifier, the one of the plurality of first blocks from the plurality of first blocks, and perform a write operation on the one of the plurality of first blocks;
- in response to receiving a second allocation command from the host, the second allocation command requesting allocation of one of the plurality of block groups for the host, allocate the one of the plurality of block groups for the host, and notify the host of a group identifier of the allocated one of the plurality of block groups;
- and
- in response to receiving a second write command from the host, the second write command specifying at least the group identifier of the one of the plurality of block groups, select, based on the group identifier, the one of the plurality of block groups from the plurality of block groups, and perform a write operation on each second block included in the one of the plurality of block groups.
A method of controlling a nonvolatile memory including a plurality of blocks, each of the plurality of blocks being a unit of an erase operation, the method comprising:
- classifying the plurality of blocks into a plurality of first blocks and a plurality of second blocks;
- managing a plurality of block groups, each of the plurality of block groups including at least two of the plurality of second blocks;
- receiving a first allocation command from a host;
- in response to receiving the first allocation command from the host, the first allocation command requesting allocation of one of the plurality of first blocks for the host, allocating the one of the plurality of first blocks for the host, and notifying the host of a block identifier of the allocated one of the plurality of first blocks;
- receiving a first write command from the host;
- in response to receiving the first write command from the host, the first write command specifying at least the block identifier of the one of the plurality of first blocks, selecting, based on the block identifier, the one of the plurality of first blocks from the plurality of first blocks, and performing a write operation on the one of the plurality of first blocks;
- receiving a second allocation command from the host;
- in response to receiving the second allocation command from the host, the second allocation command requesting allocation of one of the plurality of block groups for the host, allocating the one of the plurality of block groups for the host, and notifying the host of a group identifier of the allocated one of the plurality of block groups;
- receiving a second write command from the host;
- in response to receiving the second write command from the host, the second write command specifying at least the group identifier of the one of the plurality of block groups, selecting, based on the group identifier, the one of the plurality of block groups from the plurality of block groups, and performing a write operation on each second block included in the one of the plurality of block groups.
Dependencies are inferred from the claim text.