Storage system, information processing system and method for controlling nonvolatile memory
AssigneeToshiba Memory Corporation
InventorShinichi Kanno
Life of this patent
Estimating the term…
Abstract
According to one embodiment, a storage system performs a first allocation operation of allocating, for a first namespace, a plurality of first blocks included in the blocks of a nonvolatile memory. The storage system performs a read operation, a write operation or an erase operation on one of the first blocks in response to a command received from a host to read, write or erase the one first block, counts the total number of erase operations performed on the first blocks, and notifies the host of the counted number of erase operations in response to a command received from the host to obtain an erase count associated with the first namespace.
Claims18
A storage system comprising:
- a nonvolatile memory including a plurality of blocks;
- and
- a controller electrically connected to the nonvolatile memory, and configured to:
- secure a first number of blocks for a first namespace in response to a command received from a host to secure the first number of blocks for the first namespace, and secure a second number of blocks for a second namespace in response to a command received from the host to secure the second number of blocks for the second namespace;
- perform a first allocation operation of allocating, for the first namespace, a plurality of first blocks included in the plurality of blocks, and a second allocation operation of allocating, for the second namespace, a plurality of second blocks included in the plurality of blocks, an upper limit of the number of first blocks, which can be allocated for the first namespace, being set to the first number or less, and an upper limit of the number of second blocks, which can be allocated for the second namespace, being set to the second number or less;
- perform a read operation, a write operation or an erase operation on one of the first blocks in response to a command received from the host to read, write or erase the one first block;
- perform a read operation, a write operation, or an erase operation on one of the second blocks in response to a command received from the host to read, write, or erase the one second block;
- count the first number of erase operations performed on the first blocks allocated for the first namespace;
- count the second number of erase operations performed on the second blocks allocated for the second namespace;
- notify the host of one of the first number of erase operations and the second number of erase operations in response to a command which is received from the host and includes one of a first identifier of the first namespace and a second identifier of the second namespace;
- and
- add a third number of blocks as blocks to be secured for the first namespace in response to a command received from the host to add the third number of blocks for the first namespace, an upper limit of the number of first blocks which can be allocated for the first namespace being increased to a sum of the first and third numbers, wherein the addition of the third number of blocks increases an over-provision area of the first namespace, the over-provision area of the first namespace being a storage capacity that is invisible to the host as an available user space of the first namespace.
An information processing system for controlling a storage system including a nonvolatile memory which includes a plurality of blocks, comprising:
- a memory;
- a processor configured to execute a program stored in the memory,
- wherein the processor is configured to:
- transmit, to the storage system, a command for securing blocks for a first namespace, to make the storage system secure a first number of blocks for the first namespace, and transmit, to the storage system, a command for securing blocks for a second namespace, to make the storage system secure a second number of blocks for the second namespace;
- transmit, to the storage system, a command to read, write or erase one of a plurality of first blocks which are included in the plurality of blocks and allocated to the first namespace, an upper limit of the number of first blocks, which can be allocated for the first namespace, being set to the first number or less;
- transmit, to the storage system, a command to read, write, or erase one of a plurality of second blocks which are included in the plurality of blocks and allocated to the second namespace, an upper limit of the number of second blocks, which can be allocated for the second namespace, being set to the second number or less;
- transmit, to the storage system, a command to acquire an erase count associated with the first namespace, to acquire, from the storage system, a count value obtained by counting the total number of erase operations executed on the plurality of first blocks;
- transmit, to the storage system, a command to acquire an erase count associated with the second namespace, to acquire, from the storage system, a count value obtained by counting the total number of erase operations executed on the plurality of second blocks;
- and
- transmit, to the storage system, a command for adding the number of blocks to be secured for the first namespace, to make the storage system add a third number of blocks as blocks to be secured for the first namespace, an upper limit of the number of first blocks which can be allocated for the first namespace being increased to a sum of the first and third numbers, wherein the addition of the third number of blocks increases an over-provision area of the first namespace, the over-provision area of the first namespace being a storage capacity that is invisible to the information processing system as an available user space of the first namespace.
A method of controlling a nonvolatile memory including a plurality of blocks, comprising:
- securing a first number of blocks for a first namespace in response to a command received from a host to secure the first number of blocks for the first namespace, and securing a second number of blocks for a second namespace in response to a command received from the host to secure the second number of blocks for the second namespace;
- performing a first allocation operation of allocating, for the first namespace, a plurality of first blocks included in the plurality of blocks, and a second allocation operation of allocating, for the second namespace, a plurality of second blocks included in the plurality of blocks, an upper limit of the number of first blocks, which can be allocated for the first namespace, being set to the first number or less and an upper limit of the number of second blocks, which can be allocated for the second namespace, being set to the second number or less;
- performing a read operation, a write operation or an erase operation on one of the first blocks in response to a command received from the host to read, write or erase the one first block;
- performing a read operation, a write operation, or an erase operation on one of the second blocks in response to a command received from the host to read, write, or erase the one second block;
- counting the first number of erase operations performed on the first blocks allocated for the first namespace;
- counting the second number of erase operations performed on the second blocks allocated for the second namespace;
- notifying the host of one of the first number of erase operations and the second number of erase operations in response to a command which is received from the host and includes one of a first identifier of the first namespace and a second identifier of the second namespace;
- and
- adding a third number of blocks as blocks to be secured for the first namespace in response to a command received from the host to add the third number of blocks for the first namespace, an upper limit of the number of first blocks which can be allocated for the first namespace being increased to a sum of the first and third numbers, wherein the addition of the third number of blocks increases an over-provision area of the first namespace, the over-provision area of the first namespace being a storage capacity that is invisible to the host as an available user space of the first namespace.
Dependencies are inferred from the claim text.