Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same
Disclosed is an operating method of a storage controller which communicates with a host and a non-volatile memory device. The method includes receiving a first request indicating a first zone of a plurality of zones from the host, setting a state of the first zone to an active state in response to the first request, assigning a first memory block of a plurality of memory blocks of the non-volatile memory device to the first zone updated to the active state, and storing user data corresponding to the first request in the first memory block. The first memory block is higher in reliability than a second memory block assigned to a second zone having a non-active state from among the plurality of zones, and the storage controller supports a zoned namespace (ZNS) standard of a NVM express.
1 . An operating method of a storage controller which communicates with a host and a non-volatile memory (NVM) device, the method comprising:
receiving a first request from the host, the first request including
an address indicating a first zone of a plurality of zones of a zoned namespace (ZNS) of a non-volatile memory of the non-volatile memory device, and
a command to transition to an implicitly opened (ZSIO) state or an explicitly opened (ZSEO) state of the ZNS;
setting a state of the first zone from an empty state with no assigned memory blocks to an active state in response to the first request;
assigning a first memory block of a plurality of memory blocks of the non-volatile memory device to the first zone updated to the active state; and
storing user data corresponding to the first request in the first memory block,
wherein the first memory block is higher in reliability than a second memory block assigned to a second zone having a non-active state from among the plurality of zones.
2 . The method of claim 1 , further comprising:
after storing the user data in the first memory block, receiving a second request indicating the first zone from the host;
setting the state of the first zone to a full state in response to the second request;
assigning the second memory block to the first zone updated to the full state; and
copying the user data stored in the first memory block to the second memory block.
3 . The method of claim 2 , further comprising:
discarding the first memory block in response to copying the user data of the first memory block in the first zone to the second memory block.
4 . The method of claim 1 , further comprising:
receiving, from the host, a second request indicating the first zone after storing the user data in the first memory block;
setting the state of the first zone to the empty state in response to the second request;
de-assigning the first memory block assigned to the first zone; and
deleting the user data stored in the first memory block.
5 . The method of claim 1 , wherein the assigning the first memory block includes:
assigning a third memory block, a fourth memory block, and a fifth memory block of the plurality of memory blocks to the first zone.
6 . The method of claim 5 , wherein a number of data bits to be stored per cell of each of the first memory block, the third memory block, the fourth memory block, and the fifth memory block is less than a number of data bits to be stored per cell of the second memory block.
7 . The method of claim 6 , wherein each of the first memory block, the third memory block, the fourth memory block, and the fifth memory block is a single level cell (SLC) memory block, and the second memory block is a quadruple level cell (QLC) memory block.
8 . The method of claim 5 , wherein the storing the user data includes:
storing the user data sequentially in the first memory block, the third memory block, the fourth memory block, and the fifth memory block.
9 . The method of claim 7 , further comprising:
determining whether an available capacity is present in the first memory block, the third memory block, the fourth memory block, and the fifth memory block after storing the user data sequentially in the first memory block, the third memory block, the fourth memory block, and the fifth memory block;
assigning the second memory block to the first zone in response to determining that the available capacity is absent from the first memory block, the third memory block, the fourth memory block, and the fifth memory block; and
copying the user data stored in the first memory block, the third memory block, the fourth memory block, and the fifth memory block sequentially to the second memory block.
10 . The method of claim 1 ,
wherein the active state includes the ZSIO state, the ZSEO state, or a close (ZSC) state of the ZNS, and
wherein the non-active state indicates the empty (ZSE) state of the ZNS.
11 . A storage controller comprising:
processing circuitry configured to
change a state of a target zone of a plurality of zones of a zoned namespace (ZNS) depending on a request of a host, the request including
an address indicating the target zone, and
a command to transition from an empty state with no assigned memory blocks to an implicitly opened (ZSIO) state or an explicitly opened (ZSEO) state of the ZNS,
assign a first memory block of a plurality of memory blocks in a non-volatile memory device to the target zone in response to the changed state of the target zone being an active state; and
a buffer memory configured to store target data corresponding to the request of the host in the first memory block,
wherein the first memory block is higher in reliability than a second memory block assigned to a zone having a non-active state from among the plurality of zones.
12 . The storage controller of claim 11 , wherein the processing circuitry is further configured to:
assign the second memory block to the target zone in response to the changed state of the target zone being a full state, and
wherein the buffer memory is further configured to:
copy the target data stored in the first memory block to the second memory block.
13 . The storage controller of claim 11 , wherein the processing circuitry is further configured to:
de-assign the first memory block assigned to the target zone in response to the changed state of the target zone being the empty state, and
wherein the buffer memory is further configured to:
delete the target data stored in the first memory block.
14 . The storage controller of claim 11 , wherein the processing circuitry is further configured to:
assign a third memory block, a fourth memory block, and a fifth memory block of the plurality of memory blocks to the target zone in response to the changed state of the target zone being the active state.
15 . The storage controller of claim 14 , wherein a number of data bits to be stored per cell of each of the first memory block, the third memory block, the fourth memory block, and the fifth memory block is less than a number of data bits to be stored per cell of the second memory block.
16 . The storage controller of claim 15 , wherein each of the first memory block, the third memory block, the fourth memory block, and the fifth memory block is a single level cell (SLC) memory block, and the second memory block is a quadruple level cell (QLC) memory block.
17 . The storage controller of claim 11 , wherein the processing circuitry is further configured to:
manage, via a zone table, state information of each of the plurality of zones and a plurality of block assignment information each indicating blocks assigned to each of the plurality of zones.
18 . An operating method of a storage device which communicates with a host, the method comprising,
receiving a first request from the host, the first request including
an address indicating a first zone of a plurality of zones of a zoned namespace (ZNS), and
a command to transition to an implicitly opened (ZSIO) state or an explicitly opened (ZSEO) state of the ZNS;
setting a state of the first zone from an empty state with no assigned memory blocks to an active state in response to the first request;
assigning a first memory block of a plurality of memory blocks of a non-volatile memory device to the first zone updated to the active state; and
storing user data corresponding to the first request in the first memory block,
wherein the first memory block is higher in reliability than a second memory block assigned to a second zone having a non-active state from among the plurality of zones.
19 . The method of claim 18 , further comprising:
receiving, from the host, a second request indicating the first zone after storing the user data in the first memory block;
setting the state of the first zone to a full state in response to the second request;
assigning the second memory block to the first zone updated to the full state; and
copying the user data stored in the first memory block to the second memory block.
20 . The method of claim 1 , wherein a first zone of the ZNS including the first memory block includes more assigned memory blocks than a second zone of the ZNS including the second memory block.