Storage devices, data storage systems and methods of operating storage devices
Abstract
A storage device includes a main storage including a plurality of nonvolatile memory devices, the main storage device configured to store data; and a storage controller configured to control the main storage. The storage controller is configured to, divide a plurality of memory blocks of the plurality of nonvolatile memory devices into a plurality of banks, assign each one of the plurality of banks into one of a) a plurality of sets and b) one free bank, each of the plurality of sets including at least one bank, perform data migration operation to transfer the data among the sets by using the one free bank in response to an input/output (I/O) request from an external host device while securing a specific I/O execution time, and control the data migration operation such that the I/O request is independent of the data migration operation.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A storage device comprising:
a plurality of nonvolatile memory devices configured to store data and including a plurality of memory blocks; and a controller configured to control the plurality of nonvolatile memory devices, wherein the plurality of memory blocks are divided into a plurality of banks that include a first bank and a second bank, the controller is configured to receive a read request from an external device while migrating first data from the first bank to the second bank, and configured to execute a read command on the first bank and execute a program command or an erase command on the second bank while migrating the first data from the first bank to the second bank, when the controller applies the read command to the first bank at a first time period, applies the erase command to the second bank at a second time period and receives the read request at the second time period, the first bank accepts the read request to provide a corresponding data to the controller, and when the controller applies the read command to the first bank at a third time period, applies the program command to the second bank at a fourth time period and receives the read request at the third time period, the second bank accepts the read request to provide the corresponding data to the controller.
2 . The storage device of claim 1 , wherein the plurality of banks are assigned into a plurality of sets and one free bank, and
each of the plurality of sets includes at least one bank.
3 . The storage device of claim 2 , wherein the second bank is the free bank at the first time period, and
the controller performs a data migration operation among the plurality of sets by using the second bank in response to an input/output (I/O) request from the external device, within an I/O execution time associated with the I/O request.
4 . The storage device of claim 2 , wherein a program operation and/or an erase operation are performed only in the free bank among the plurality of banks.
5 . The storage device of claim 1 , wherein the controller is configured to perform interfacing with the external device through a nonvolatile memory express (NVMe) protocol.
6 . The storage device of claim 5 , wherein an I/O execution time is defined by the NVMe protocol.
7 . The storage device of claim 1 , wherein the controller controls a data migration operation from the first bank to the second bank such that an I/O request is independent of the data migration operation.
8 . A storage device comprising:
a plurality of nonvolatile memory devices configured to store data and including a plurality of memory blocks; and a controller configured to control the plurality of nonvolatile memory devices, wherein the plurality of memory blocks are divided into a plurality of banks that include a first bank and a second bank, the plurality of banks are assigned into a plurality of sets and one free bank,
each of the plurality of sets includes at least one bank,
the controller is configured to transfer first data from the first bank to the second bank and to perform an erase operation on the second bank, and the erase operation is performed only in the free bank among the plurality of banks.
9 . The storage device of claim 8 , wherein the plurality of sets include a first set that includes the first bank at a first time period, and
the controller maps a physical bank address of the second bank to a logical bank address of the first set when the first data is transferred to the second bank from the first bank, and assigns the first bank as the free bank at a second time period.
10 . The storage device of claim 8 , wherein when the controller applies a read command to the first bank at a first time period, applies the erase command to the second bank at a second time period and receives a read request at the second time period, the first bank accepts the read request to provide a corresponding data to the controller.
11 . The storage device of claim 8 , wherein when the controller applies a read command to the first bank at a third time period, applies a program command to the second bank at a fourth time period and receives a read request at the third time period, the second bank accepts the read request to provide a corresponding data to the controller.
12 . The storage device of claim 8 , wherein the controller is configured to perform interfacing with an external device through a nonvolatile memory express (NVMe) protocol.
13 . The storage device of claim 12 , wherein an I/O execution time is defined by the NVMe protocol.
14 . The storage device of claim 8 , wherein the controller controls a data migration operation from the first bank to the second bank such that an I/O request is independent of the data migration operation.
15 . A storage device comprising:
a plurality of nonvolatile memory devices configured to store data and including a plurality of memory blocks; and a controller configured to control the plurality of nonvolatile memory devices, wherein the plurality of memory blocks are divided into a plurality of banks that include a first bank and a second bank,
the plurality of banks are assigned into a plurality of sets and one free bank,
each of the plurality of sets includes at least one bank,
the controller is configured to receive a read request from an external device while migrating first data from the first bank to the second bank, and configured to execute a read command on the first bank and execute a program command or an erase command on the second bank while migrating the first data from the first bank to the second bank, and the controller controls a data migration operation from the first bank to the second bank such that an I/O request is independent of the data migration operation.
16 . The storage device of claim 15 , wherein when the controller applies the read command to the first bank at a first time period, applies the erase command to the second bank at a second time period and receives the read request at the second time period, the first bank accepts the read request to provide a corresponding data to the controller, and
when the controller applies the read command to the first bank at a third time period, applies the program command to the second bank at a fourth time period and receives the read request at the third time period, the second bank accepts the read request to provide the corresponding data to the controller.
17 . The storage device of claim 16 , wherein the second bank is the free bank at the first time period, and
when the first data is transferred to the second bank from the first bank, the first bank is assigned as the free bank at a fifth time period.
18 . The storage device of claim 15 , wherein a program operation and/or an erase operation are performed only in the free bank among the plurality of banks.
19 . The storage device of claim 15 , wherein the controller is configured to perform interfacing with the external device through a nonvolatile memory express (NVMe) protocol.
20 . The storage device of claim 19 , wherein an I/O execution time is defined by the NVMe protocol.Join the waitlist — get patent alerts
Track US2022261171A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.