Information processing system and host

The information processing system optimally allocates data in nonvolatile memory by using different write methods and managing garbage collection, addressing inefficiencies and fragmentation in data management.

JP2025133381APending Publication Date: 2025-09-11KIOXIA CORP

Patent Information

Application Number
JP2024031294
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-01
Publication Date
2025-09-11

AI Technical Summary

Technical Problem

Existing systems fail to optimally allocate data in nonvolatile memory, leading to inefficiencies in data management and fragmentation.

Method used

An information processing system with a host and a storage device connected via UFS standard, utilizing a nonvolatile memory with a controller that manages data allocation using different write methods and tags, performs garbage collection, and communicates progress to the host.

Benefits of technology

Optimizes data allocation by prioritizing swap data in SLC mode and managing garbage collection effectively, reducing fragmentation and improving data access speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025133381000001_ABST
    Figure 2025133381000001_ABST
Patent Text Reader

Abstract

To provide an information processing system capable of optimally arranging data in a non-volatile memory.SOLUTION: A non-volatile memory includes a swap area for storing data, which is written using a first write method, is not selected as a target for garbage collection spontaneously executed by a controller, and corresponds to a first tag included in a write command received from a host. The host transmits a first command instructing the execution of garbage collection (GC) to a storage device. The controller, in response to the received first command, initiates the GC. The controller records a progress of the GC according to the advance of the GC. The host transmits a second command for checking the progress to the storage device. In response to the received second command, the controller notifies the host of the progress.SELECTED DRAWING: Figure 12B
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD Embodiments of the present invention relate to an information processing system and a host. [Background technology]

[0002] In recent years, storage devices equipped with nonvolatile memory have become widespread. The storage device is connected to, for example, a host. Data received from the host is written to the nonvolatile memory. The storage device performs garbage collection to improve data fragmentation in the storage area of ​​the nonvolatile memory. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] US Patent Application Publication No. 2023 / 0082139 [Patent Document 2] US Patent Application Publication No. 2023 / 0205460 [Patent Document 3] U.S. Patent Application Publication No. 2021 / 0011845 [Patent Document 4] U.S. Patent Application Publication No. 2017 / 0300410 [Patent Document 5] Japanese Patent Application Publication No. 2019-106056 Summary of the Invention [Problem to be solved by the invention]

[0004] An object of the present invention is to provide an information processing system and a host that can optimally allocate data in a nonvolatile memory. [Means for solving the problem]

[0005] According to an embodiment, an information processing system includes a host and a storage device connected to the host and capable of communicating with the host based on the UFS (Universal Flash Storage) standard. The storage device includes a nonvolatile memory and a controller. The nonvolatile memory includes a plurality of memory cells, each storing one or more bits of data. The controller writes one bit of data to each of the plurality of memory cells using a first write method. The controller writes multiple bits of data to each of the plurality of memory cells using a second write method. The controller manages a correspondence between each piece of data stored in the nonvolatile memory and one tag among a plurality of tags indicating characteristics of the data. The nonvolatile memory includes a swap area for storing data that is not selected as a target for garbage collection actively performed by the controller, that is written using the first write method, and that corresponds to a first tag included in a write command received from the host. The host transmits a first command to the storage device instructing it to perform garbage collection. The controller starts the garbage collection in response to the received first command. The controller records the progress of the garbage collection in response to the progress of the garbage collection. The host sends a second command to the storage device to check the progress. The controller notifies the host of the progress in response to the received second command to check the progress. [Brief explanation of the drawings]

[0006] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of an information processing system according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing an example of the configuration of a nonvolatile memory of a storage device according to the embodiment. [Figure 3] 2 is a diagram showing an example of the configuration of each of a plurality of blocks included in a memory cell array of the nonvolatile memory according to the embodiment; [Figure 4] FIG. 2 is a diagram showing an example of the circuit configuration of a block of a nonvolatile memory according to the embodiment. [Figure 5] FIG. 2 is a diagram showing an example of a plurality of blocks included in the nonvolatile memory according to the embodiment; [Figure 6] 3A and 3B are diagrams showing examples of storage areas included in a nonvolatile memory according to an embodiment; [Figure 7] FIG. 2 is a diagram showing an example of the functional configuration of a CPU of the storage device according to the embodiment. [Figure 8A] 10 is a flowchart showing a procedure for writing data to an SLC block executed in a storage device according to the embodiment. [Figure 8B] 10 is a flowchart showing a procedure for writing data to a TLC block executed in a storage device according to the embodiment. [Figure 8C] 10 is a flowchart showing a procedure for writing data to a QLC block executed in a storage device according to an embodiment. [Figure 9] 10A and 10B are diagrams showing examples of items specified by a garbage collection analysis command used in the information processing system according to the embodiment. [Figure 10] 10A and 10B are diagrams showing examples of items specified by a garbage collection execution command used in the information processing system according to the embodiment. [Figure 11] 10A and 10B are diagrams showing examples of items specified by a garbage collection suppression command used in the information processing system according to the embodiment. [Figure 12A] FIG. 10 is a sequence diagram showing the procedure of a garbage collection analysis process executed by the information processing system according to the embodiment. [Figure 12B] FIG. 4 is a sequence diagram showing the procedure of a garbage collection execution process executed by the information processing system according to the embodiment. [Figure 12C] FIG. 10 is a sequence diagram showing the procedure of a garbage collection stop process executed by the information processing system according to the embodiment. [Figure 13A]FIG. 1 is a first diagram showing a first specific example of garbage collection processing executed by the information processing system according to the embodiment. [Figure 13B] FIG. 2 is a second diagram showing a first specific example of the garbage collection process executed by the information processing system according to the embodiment. [Figure 13C] FIG. 3 is a third diagram showing a first specific example of garbage collection processing executed by the information processing system according to the embodiment. [Figure 13D] FIG. 4 is a fourth diagram showing a first specific example of garbage collection processing executed by the information processing system according to the embodiment. [Figure 14A] FIG. 10 is a first diagram showing a second specific example of garbage collection processing executed by the information processing system according to the embodiment. [Figure 14B] FIG. 2 is a second diagram showing a second specific example of the garbage collection process executed by the information processing system according to the embodiment. [Figure 14C] FIG. 3 is a third diagram showing a second specific example of the garbage collection process executed by the information processing system according to the embodiment. [Figure 14D] FIG. 4 is a fourth diagram showing a second specific example of the garbage collection process executed by the information processing system according to the embodiment. [Figure 15] 10 is a flowchart showing the procedure of a garbage collection process executed in a host according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0007] Hereinafter, an embodiment will be described with reference to the drawings.

[0008] In the following, it is assumed that the storage device of the information processing system according to the embodiment is realized as a Universal Flash Storage (UFS) device.

[0009] Fig. 1 is a block diagram showing an example of the configuration of an information processing system 1 according to an embodiment. Although some of the connections between blocks are indicated by arrows in Fig. 1, the connections between blocks are not limited to this.

[0010] The information processing system 1 includes a UFS device 2 and a host (host device) 3. The UFS device 2 and the host 3 can be connected via a bus.

[0011] The UFS device 2 is a storage device that is connected to the host 3 and can communicate with the host 3 based on the UFS standard. The UFS device 2 includes a nonvolatile memory 11. The UFS device 2 writes data to the nonvolatile memory 11. The UFS device 2 also reads data from the nonvolatile memory 11.

[0012] The host 3 is an information processing device. The host 3 is a device that supports a UFS device. The host 3 is, for example, a System-on-a-chip (SoC) device, and can be realized by a device installed in a smartphone, a personal computer, a mobile terminal, or the like. The host 3 accesses the UFS device 2. Specifically, the host 3 sends a write command, which is a command for writing data, to the UFS device 2. The host 3 also sends a read command, which is a command for reading data, to the UFS device 2.

[0013] Communication between the UFS device 2 and the host 3 is carried out via a bus, such as a Mobile Industry Processor Interface (MIPI). TM (MIPI TM) standard. Communication between the UFS device 2 and the host 3 is carried out, for example, in accordance with the initiator / target method. In this case, the UFS device 2 is also called the target. The host 3 is also called the initiator. In the initiator / target method, the host 3 mainly sends commands containing instructions to the UFS device 2, and the UFS device 2 sends a response corresponding to the command received from the host 3. In other words, communication between the UFS device 2, which is the target, and the host 3, which is the initiator, is initiated by the host 3.

[0014] Next, we will explain the configuration of the UFS device 2. The UFS device 2 includes a nonvolatile memory 11 and a controller 12.

[0015] The nonvolatile memory 11 is a nonvolatile semiconductor memory. The nonvolatile memory 11 is, for example, composed of one or more NAND flash memories. The nonvolatile memory 11 is, for example, a two-dimensional flash memory or a three-dimensional flash memory. The nonvolatile memory 11 includes, for example, a memory cell array. The memory cell array includes a plurality of memory cells, each of which stores one or more bits of data.

[0016] The controller 12 is a memory controller that controls the nonvolatile memory 11. The controller 12 is electrically connected to the nonvolatile memory 11. The controller 12 writes data to the nonvolatile memory 11 and reads data from the nonvolatile memory 11. As a physical interface connecting the controller 12 and the nonvolatile memory 11, for example, a Toggle NAND interface or an Open NAND Flash Interface (ONFI) is used. The functions of each part of the controller 12 can be realized by dedicated hardware, a processor that executes a program, or a combination of these. The controller 12 also communicates with the host 3.

[0017] The controller 12 includes an Input / Output (I / O) 21, a core logic unit 22, and an I / O 23.

[0018] The I / O 21 includes a hardware configuration for connecting the UFS device 2 to the host 3. Signals transmitted and received between the UFS device 2 and the host 3 include RESET, REF_CLK, DOUT, DOUT_c, DIN, and DIN_c. RESET, REF_CLK, DOUT, DOUT_c, DIN, and DIN_c are transmitted and received between the host 3 and the UFS device 2 via the bus. RESET is a hardware reset signal. REF_CLK is a reference clock signal. DOUT and DOUT_c form a differential signal pair and are signals transmitted from the host 3 to the UFS device 2. DIN and DIN_c form a differential signal pair and are signals transmitted from the UFS device 2 to the host 3.

[0019] The core logic unit 22 is the main part of the components of the controller 12 excluding the I / O 21 and I / O 23 .

[0020] The I / O 23 includes a hardware configuration for connecting the controller 12 to the nonvolatile memory 11 .

[0021] Next, we will explain the configuration of the core logic unit 22. The core logic unit 22 includes a host interface (I / F) 31, a buffer 32, a data bus 33, a memory interface (I / F) 34, an ECC circuit 36, a control bus 41, a central processing unit (CPU) 42, a read only memory (ROM) 43, a random access memory (RAM) 44, and a register 45.

[0022] The host I / F 31 is a hardware interface circuit. The host I / F 31 is connected to the I / O 21 and executes the processing required for communication between the UFS device 2 and the host 3. The host I / F 31 is responsible for communication between the UFS device 2 and the host 3 in accordance with a communication protocol that the UFS device 2 and the host 3 comply with. For example, the host I / F 31 is a UFS interface, and the physical layer is realized by M-PHY that complies with the MIPI standard, and the link layer is realized by UniPro that also complies with the MIPI standard.

[0023] The buffer 32 is a volatile memory. The buffer 32 is realized by a RAM such as an SRAM (Static RAM) or a DRAM (Dynamic RAM). The buffer 32 is connected to the host I / F 31, the data bus 33, the memory I / F 34, the data bus 33, and the ECC 36. The buffer 32 receives data transmitted from the host 3 to the UFS device 2 via the host I / F 31 and temporarily stores this data. The buffer 32 also temporarily holds data to be transmitted from the controller 12 to the nonvolatile memory 11. The buffer 32 receives data transmitted from the nonvolatile memory 11 to the controller 12 via the memory I / F 34 and temporarily stores this data. The buffer 32 also temporarily holds data to be transmitted from the UFS device 2 to the host 3.

[0024] The data bus 33 is a bus that is responsible for sending and receiving data within the core logic unit 22 .

[0025] The memory I / F 34 is a circuit that controls the nonvolatile memory 11. The memory I / F 34 is connected to the I / O 23 and executes processing required for the controller 12 to communicate with the nonvolatile memory 11. The memory I / F 34 transmits instructions (control signals) from the core logic unit 22 to the nonvolatile memory 11 in a format that can be recognized by the nonvolatile memory 11. Furthermore, the memory I / F 34 transmits and receives a signal DQ to and from the nonvolatile memory 11 and receives a ready / busy signal R / Bn from the nonvolatile memory 11. The signal DQ includes, for example, data, an address, and a command. The ready / busy signal R / Bn is a signal that indicates whether the nonvolatile memory 11 is busy or not.

[0026] The ECC circuit 36 ​​is an error correction circuit. The ECC circuit 36 ​​is connected to the memory I / F 34, the buffer 32, and the data bus 33. The ECC circuit 36 ​​performs encoding processing to add an error correction code to data based on an instruction from the memory I / F 34. Specifically, the ECC circuit 36 ​​receives data received from the host 3 via the data bus 33 and adds an error correction code (hereinafter referred to as parity) to the write data. The ECC circuit 36 ​​transmits the data with the parity added to the buffer 32. Furthermore, the ECC circuit 36 ​​performs decoding processing to perform error correction on the data based on an instruction from the memory I / F 34. Specifically, the ECC circuit 36 ​​receives data read from the nonvolatile memory 11 via the buffer 32 and performs error correction using the parity added to the read data. The ECC circuit transmits the error-corrected data to the data bus 33.

[0027] The control bus 41 is a bus that handles communication between the components of the core logic unit 22. The control bus 41 is connected to a CPU 42, a ROM 43, a RAM 44, and a register 45. The CPU 42, the ROM 43, the RAM 44, and the register 45 communicate with each other via the control bus 41. The control bus 41 is also connected to a host I / F 31, a buffer 32, a memory I / F 34, and a buffer 32. The CPU 42 controls the host I / F 31, the buffer 32, the memory I / F 34, and the buffer 32 based on a control program (firmware) and instructions from the host 3.

[0028] The CPU 42 is a processor. The CPU 42 loads firmware from the ROM 43 or the nonvolatile memory 11 into the RAM 44. The CPU 42 performs various processes by executing the firmware. The firmware may also be loaded into a DRAM (not shown) provided in the UFS device 2.

[0029] The CPU 42, for example, as a flash translation layer (FTL), manages data stored in the nonvolatile memory 11 and manages blocks included in the nonvolatile memory 11. The management of data stored in the nonvolatile memory 11 includes, for example, management of mapping information indicating the correspondence between each logical address and each physical address. The CPU 42 manages the mapping information using an L2P (Logical to Physical translation) table, which will be described later. Furthermore, the management of blocks included in the nonvolatile memory 11 includes garbage collection, wear leveling, and management of defective blocks (bad blocks) included in the nonvolatile memory 11.

[0030] The ROM 43 is a volatile memory that stores firmware executed by the CPU 42.

[0031] The RAM 44 is a volatile memory that is used as a work area for the CPU 42 and temporarily stores variables and the like required for the CPU 42's operations.

[0032] The register 45 holds various values ​​necessary for the operation of the UFS device 2. The register 45 also holds values ​​necessary for the host 3 to control the UFS device 2.

[0033] Next, we will explain the configuration of the host 3. The host 3 includes an interface unit 51, a host controller 52, and a memory 53.

[0034] The interface unit 51 is a hardware interface circuit that handles communication between the host 3 and the UFS device 2 in accordance with a communication protocol that the host 3 and the UFS device 2 comply with.

[0035] The host controller 52 executes the processing required for communication between the UFS device 2 and the host 3 through the interface unit 51. The processing contents of the host controller 52 are realized by a processor. The processor is, for example, a Central Processing Unit (CPU). The processor also executes software (host software) loaded into the memory 53. The host software is loaded into the memory 53 from the UFS device 2 or another storage device provided in or connected to the host 3. The host software includes an operating system, a file system, a device driver, an application program, etc.

[0036] The memory 53 is, for example, a volatile memory. The memory 53 is also referred to as a main memory, a system memory, or a host memory. The memory 53 is, for example, a random access memory such as a DRAM. A part of the storage area of ​​the memory 53 is used as a data buffer. The data buffer stores write data to be written to the UFS device 2 by the host controller 52 or read data transferred from the UFS device 2.

[0037] Next, we will explain an example of the internal configuration of the nonvolatile memory 11. Fig. 2 is a block diagram showing an example of the configuration of the nonvolatile memory 11 of the UFS device 2 according to this embodiment.

[0038] The nonvolatile memory 11 includes a plurality of blocks BLK0 to BLKx-1. Each of the blocks BLK0 to BLKx-1 functions as a unit of data erase operation. Each of the blocks BLK0 to BLKx-1 is called a physical block, a flash block, or a memory block.

[0039] Each of blocks BLK0 to BLKx-1 includes pages P0 to Py-1. Each of pages P0 to Py-1 is a unit of data write and read operations. Each of pages P0 to Py-1 includes, for example, multiple memory cells connected to the same word line.

[0040] Next, a configuration example of the blocks will be described. Fig. 3 is a diagram showing a configuration example of each of a plurality of blocks included in the memory cell array of the nonvolatile memory 11 according to the embodiment.

[0041] In FIG. 3, the block configuration will be described focusing on block BLK0. Other blocks also have the same configuration as block BLK0, for example. Block BLK0 includes four string units (SU0, SU1, SU2, and SU3). Note that each block BLK may include any number of string units SU. The four string units (SU0, SU1, SU2, and SU3) are arranged in a direction (horizontal direction) perpendicular to the direction (vertical direction) in which the word lines WL0 to WL7 are stacked. Each string unit SU includes multiple strings NS. One end of each string NS is connected to a corresponding bit line among the multiple bit lines (BL0 to BLn). Each string NS extends in the vertical direction. The control gates of the multiple memory cell transistors included in each string NS are respectively connected to the multiple word lines (WL0, WL1, ..., WL7).

[0042] Next, the circuit configuration of the block will be described. Fig. 4 is a diagram showing an example of the circuit configuration of the block of the nonvolatile memory 11 according to the embodiment. Fig. 4 shows a plan view of the example of the configuration of the block shown in Fig. 3.

[0043] A string unit SU is a set of multiple strings NS that are selected collectively in a program operation or a read operation, for example. Each string unit SU includes multiple strings NS.

[0044] Each string NS is a set of multiple memory cells MC connected in series. The multiple strings NS in a string unit SU are connected to any of bit lines BL0 to BLn (n is an integer equal to or greater than 1). The string NS includes multiple memory cells MC and select transistors ST1 and ST2. In the example of FIG. 4, the string NS includes eight memory cells MC0 to MC7 and two select transistors ST1 and ST2. The number of memory cells MC in a string NS is not limited to eight.

[0045] The memory cell MC is a memory element that stores data nonvolatilely. The memory cell MC includes a control gate and a charge storage layer. The memory cell MC may be of the MONOS (Metal-Oxide-Nitride-Oxide-Silicon) type or the FG (Floating Gate) type. The MONOS type uses an insulating layer for the charge storage layer. The FG type uses a conductive layer for the charge storage layer.

[0046] The selection transistors ST1 and ST2 are switching elements and are used to select the string units SU during various operations.

[0047] The gate of each select transistor ST1 in the string unit SU0 is connected to the select gate line SGD0 corresponding to the string unit SU0. The gate of each select transistor ST1 in the string unit SU1 is connected to the select gate line SGD1 corresponding to the string unit SU1. The gate of each select transistor ST1 in the string unit SU2 is connected to the select gate line SGD2 corresponding to the string unit SU2. The gate of each select transistor ST1 in the string unit SU3 is connected to the select gate line SGD3 corresponding to the string unit SU3. In contrast, the gates of the select transistors ST2 in the string units SU0 to SU3 are commonly connected to the select gate line SGS. Note that the gates of the select transistors ST2 in the string units SU0 to SU3 may be connected to different select gate lines for each string unit. The control gates of the memory cells MC0 to MC7 in the same block BLK are commonly connected to the word lines WL0 to WL7, respectively.

[0048] Programming and reading operations in the nonvolatile memory 11 can be performed collectively on multiple memory cells MC connected to one word line in one string unit SU. A set of memory cells MC selected collectively during programming and reading operations is called a memory cell group MG. A memory cell group MG is the unit of programming and reading operations and is treated as a storage location. When each memory cell MC is configured to store one bit of data, the size of data stored per memory cell group MG is called a page. When each memory cell MC is configured to store three bits of data, the size of data stored per memory cell group MG is three pages. When each memory cell MC is configured to store four bits of data, the size of data stored per memory cell group MG is four pages.

[0049] Next, a plurality of blocks will be described. Fig. 5 is a diagram showing an example of a plurality of blocks included in the nonvolatile memory 11 according to the embodiment.

[0050] The plurality of blocks includes a plurality of SLC (Single Level Cell) blocks, a plurality of TLC (Triple Level Cell) blocks, and a plurality of QLC (Quadruple Level Cell) blocks.

[0051] Each of the multiple SLC blocks is a block in which a program operation is performed in a write mode (SLC mode) in which one bit of data is stored per memory cell. The SLC blocks may also be implemented as pSLC blocks. A pSLC block is a block capable of storing two or more bits of data per memory cell, but is used as an SLC block in which one bit of data is stored per memory cell. The time required to write and read data to an SLC block is shorter than the time required to write and read data to a block in which two or more bits of data are stored per memory cell. For example, once a block has been used as an SLC block, data will not be written to it in any write mode other than SLC mode.

[0052] For example, when the Write Booster mode is on in the write mode between the host 3 and the UFS device 2, the SLC block is preferentially allocated as the write destination block.

[0053] The write booster mode is set to ON between the host 3 and the UFS device 2, for example, when it is desired that data be written / read at high speed.

[0054] Furthermore, if swap data is associated with a write command received from the host 3, the UFS device 2 specifies the SLC block as the write destination block. Swap data is data to be stored in the memory 53 of the host 3 and is temporarily stored in a storage area of ​​the UFS device 2. In other words, swap data is data stored in a storage area of ​​the UFS device 2 that is used as an expansion area for the memory 53. A write command associated with swap data includes a group number that indicates the swap data. The group number is a tag associated with data and indicates the characteristics of the corresponding data. Data characteristics include, for example, swap data, hot data, worm data, and cold data. Hot data is data that is accessed more frequently by the host 3 than worm data and cold data. Cold data is data that is accessed less frequently by the host 3 than hot data and cold data. Furthermore, the group number associated with swap data may indicate whether the corresponding swap data is swap hot data or swap cold data. The correspondence between data and group numbers can be managed by the controller 12.

[0055] Each of the plurality of TLC blocks is a block in which a program operation is performed in a write mode (TLC mode) in which 3 bits of data are stored per memory cell, and the time required to write and read data to and from a TLC block is longer than the time required to write and read data to and from an SLC block, but shorter than the time required to write and read data to and from a QLC block.

[0056] For example, a TLC block is allocated as a destination block when the write mode between the host 3 and the UFS device 2 is normal, that is, when the write booster mode is off. A TLC block is also allocated as a destination block when the write booster mode is on and there is no block available as a destination block in the SLC block. A TLC block can also be used as a destination block for data copying during garbage collection. For example, during garbage collection, warm data and cold data are moved to a TLC block.

[0057] Each of the multiple QLC blocks is a block in which a program operation is performed in a write mode (QLC mode) in which 4 bits of data are stored per memory cell, and the time required to write and read data to and from a QLC block is longer than the time required to write and read data to and from a block in which 3 bits or less of data are stored per memory cell.

[0058] The QLC block may be used as a block to which data is copied, for example, during garbage collection, where cold data is moved to the QLC block.

[0059] 5 shows a case where nonvolatile memory 11 includes a plurality of SLC blocks, a plurality of TLC blocks, and a plurality of QLC blocks, nonvolatile memory 11 may include only a plurality of SLC blocks and a plurality of TLC blocks. Alternatively, nonvolatile memory 11 may include only a plurality of SLC blocks and a plurality of QLC blocks. Furthermore, instead of SLC blocks, TLC blocks, and QLC blocks, MLC blocks, in which two bits of data are written per memory cell, may be used.

[0060] Next, a description will be given of storage areas in the nonvolatile memory 11. Fig. 6 is a diagram showing an example of storage areas in the nonvolatile memory 11 according to the embodiment.

[0061] The non-volatile memory 11 has a storage area for storing user data 111 and a storage area for storing management data 112. The user data 111 is data received from the host 3. The management data 112 is data used for managing the UFS device 2. The management data 112 is also called system data.

[0062] The area for storing the user data 111 includes an SLC area 1111 , a TLC area 1112 , and a QLC area 1113 .

[0063] The SLC area 1111 is a storage area made up of a plurality of SLC blocks.

[0064] The TLC area 1112 is a storage area made up of a plurality of TLC blocks.

[0065] The QLC area 1113 is a storage area made up of multiple QLC blocks.

[0066] The SLC area 1111 also includes a swap area 11111. The swap area 11111 is a storage area used to store swap data. The swap area 11111 may also be a storage area configured by a storage area storing swap data. The swap data is data corresponding to a tag that indicates the swap data. The swap data may be controlled so that it is not selected as data to be garbage collected in garbage collection that is performed by the UFS device 2 independently of instructions from the host 3. Because the swap area 11111 is included in the SLC area 1111, the swap data is data that is written to the non-volatile memory 11 in SLC mode.

[0067] The management data 112 also includes a block management table 1121, an L2P table 1122, a data management table 1123, an SLC active block list 1124, an SLC free block list 1125, a TLC active block list 1126, a TLC free block list 1127, and a QLC free block list 1129.

[0068] The block management table 1121 is a table used to manage multiple blocks included in the nonvolatile memory 11. For example, the block management table 1121 manages the write mode in which data is written to each of the multiple blocks. That is, the block management table 1121 includes information indicating whether each of the multiple blocks is an SLC block, a TLC block, or a QLC block. The block management table 1121 may also include information indicating defective blocks.

[0069] The L2P table 1122 is a table used to manage mapping information. In the L2P table 1122, data stored in a storage location indicated by a physical address that has a correspondence relationship with a logical address is called valid data. In other words, valid data is accessible by the host 3. In addition, in the L2P table 1122, data stored in a storage location indicated by a physical address that is not associated with a logical address is called invalid data. Invalid data is data that has no possibility of being accessed by the host 3.

[0070] The data management table 1123 is a table that manages the characteristics of data stored in the nonvolatile memory 11. Specifically, the data management table 1123 manages the correspondence between data stored in the nonvolatile memory 11 and group numbers (tags) that indicate the characteristics of that data. The characteristics of data include, for example, the temperature of the data. The temperature of the data corresponds to the frequency with which the data is accessed. Data that is accessed frequently is called hot data. Data that is accessed infrequently is called cold data. Data that is accessed intermediate between hot data and cold data is called warm data. Furthermore, the characteristics of data include information that indicates whether the data is swap data. In other words, the group number indicates the temperature of the corresponding data and whether it is swap data.

[0071] The SLC active block list 1124 is a list that manages active blocks among the SLC blocks. An active block is a block that stores at least valid data.

[0072] The SLC free block list 1125 is a list that manages free blocks among SLC blocks. A free block is a block that does not store valid data. The blocks managed in the SLC free block list 1125 are blocks that can be allocated as new blocks to which data is written in SLC mode.

[0073] The TLC active block list 1126 is a list that manages active blocks among the TLC blocks.

[0074] The TLC free block list 1127 is a list for managing free blocks among the TLC blocks. The blocks managed in the TLC free block list 1127 are blocks that can be allocated as new blocks to which data is written in TLC mode.

[0075] The QLC active block list 1128 is a list that manages active blocks among the QLC blocks.

[0076] The QLC free block list 1129 is a list that manages free blocks among QLC blocks. The blocks managed in the QLC free block list 1129 are blocks that can be allocated as new data write destination blocks in QLC mode. Note that the free block lists may be shared among SLC, TLC, and QLC instead of being managed separately. In this case, the number of blocks in the shared free block list increases or decreases in accordance with the increase or decrease in the number of blocks in each of the SLC active block list, TLC active block list, and QLC active list.

[0077] Next, the function of the CPU 42 will be described. Fig. 7 is a diagram showing an example of the functional configuration of the CPU 42 of the UFS device 2 according to the embodiment. The CPU 42 includes a write control unit 421, a garbage collection (GC) analysis unit 422, and a garbage collection (GC) execution unit 423. Some or all of the components of the CPU 42 may be realized by separate hardware of the controller 12.

[0078] In garbage collection, the CPU 42 selects only valid data from the data stored in the garbage collection (GC) target block. The CPU 42 then copies only the selected valid data to the garbage collection (GC) destination block. By copying the data, all valid data stored in the GC target block becomes invalid data, and the GC target block becomes a free block. This allows the CPU 42 to generate free blocks. For example, the CPU 42 initiates garbage collection when the number of free blocks in the storage device decreases. At this time, the CPU 42 prioritizes selecting, as the GC target block, a block with a low percentage of valid data among the active blocks. Note that in this embodiment, even when the data is not fragmented, the movement of data from SLC blocks to SLC blocks, from SLC blocks to TLC blocks, from SLC blocks to QLC blocks, from TLC blocks to SLC blocks, from TLC blocks to TLC blocks, from TLC blocks to QLC blocks, from QLC blocks to SLC blocks, from QLC blocks to TLC blocks, and from QLC blocks to QLC blocks is also referred to as garbage collection. When such data is moved, only a portion of the data stored in the original block may be moved to another block, in which case some of the data will remain in the original block before and after the data move.

[0079] The write control unit 421 executes a process of writing data to the nonvolatile memory 11. The write control unit 421 executes the write process based on a write command received from the host 3. The write command is associated with data to be written to the nonvolatile memory 11. The write command includes a start LBA, a length, and a group number. The start LBA is the first LBA among multiple LBAs corresponding to the data associated with the write command. The length indicates the number of multiple LBAs corresponding to the data associated with the write command. The length corresponds to the size of the data associated with the write command. The group number is a tag corresponding to the characteristics of the data associated with the write command. The write control unit 421 may, for example, perform control so that data with different characteristics do not coexist in the same block. In this case, the write control unit 421 performs control so that data with different group numbers are written to different blocks.

[0080] When the write control unit 421 receives a write command, it determines a storage location where the data associated with the write command should be written. Then, the write control unit 421 updates the L2P table 1122 so that a physical address indicating the determined storage location is associated with the LBA specified by the write command. Alternatively, instead of the write control unit 421 determining the storage location where the data should be written, the write control unit 421 may receive a physical address indicating the storage location where the data has been written from the nonvolatile memory 11, and update the L2P table 1122 using the received physical address.

[0081] Here, the write control unit 421 determines the storage location where the data is to be written based on the write mode between the UFS device 2 and the host 3 and the group number specified by the write command. For example, if the write booster is on and a storage area large enough to store the data associated with the write command can be secured in the SLC area 1111, the write control unit 421 determines the storage location where the data is to be written from the SLC area 1111. If the write booster is not on, the write control unit 421 determines the storage location where the data is to be written from the TLC area 1112. Furthermore, if the group number indicates swap data, the write control unit 421 determines the storage location where the data is to be written from the SLC area 1111.

[0082] The write control unit 421 then updates the data management table 1123 so that the data associated with the received write command corresponds to the group number specified by the write command.

[0083] The GC analysis unit 422 executes GC analysis processing. The GC analysis unit 422 executes GC analysis processing in response to receiving a garbage collection (GC) analysis command from the host 3. The GC analysis command is a command that instructs the execution of an analysis related to garbage collection. The GC analysis command is, for example, a type of command UPIU. Details of the GC analysis command will be described later with reference to FIG. 9. The GC analysis unit 422 creates an analysis result that includes the dirty status of the memory area that is the target of garbage collection and the total size of data that will be copied when garbage collection is executed. The dirty status indicates the proportion of the memory area that is to be analyzed based on the GC analysis command, to which data should be copied by garbage collection. The total size of data that will be copied when garbage collection is executed indicates the total size of valid data stored in the memory area that is the target of garbage collection, in the memory area that is to be analyzed based on the GC analysis command.

[0084] For example, the GC analysis unit 422 updates the attribute information (Attribute) to indicate that the analysis has been completed and the created analysis results. The attribute information is information that indicates the attributes of the UFS device 2, and is handled between the host 3 and the UFS device 2.

[0085] In response to receiving a command for obtaining the analysis results from the host 3, the GC analysis unit 422 notifies the host 3 of the analysis results. Specifically, in response to receiving a command (QUERY REQUEST UPIU) for obtaining the attribute information, the GC analysis unit 422 sends the attribute information to the host 3. As a result, the host 3 obtains the analysis results and information indicating that the analysis has been completed, which is included in the attribute information. The host 3 transmits a garbage collection execution command to the UFS device 2 based on the obtained analysis results.

[0086] The GC execution unit 423 executes garbage collection. The GC execution unit 423 executes garbage collection in response to receiving a garbage collection execution command from the host 3. The garbage collection (GC) execution command is, for example, a type of command UPIU. The GC execution unit 423 executes garbage collection based on information specified by the GC execution command. Details of the GC execution command will be described later with reference to FIG. 10.

[0087] The GC execution unit 423 executes garbage collection by copying valid data stored in a storage area that is the target of garbage collection, determined based on a GC execution command, to another storage area.

[0088] Furthermore, when a garbage collection (GC) suppression command received from the host 3 specifies a tag indicating the characteristics of a specified specific area or data, the GC execution unit 423 performs garbage collection so that even if the valid data is stored in the storage area targeted for garbage collection, if the data is determined based on the GC suppression command, it is not copied to another storage area.

[0089] When the GC execution unit 423 executes garbage collection, it records the progress of the garbage collection. The progress of the garbage collection is, for example, the ratio of the data that has already been copied to the size of the data that should be copied in the current garbage collection. For example, the GC execution unit 423 updates the progress of the garbage collection in the attribute information in response to the progress of the garbage collection. In response to receiving a command (QUERY REQUEST UPIU) for obtaining the progress of the garbage collection, the GC execution unit 423 sends the attribute information to the host 3.

[0090] Furthermore, the GC execution unit 423 stops the garbage collection that is currently being performed in response to receiving a garbage collection stop command from the host 3. When the GC execution unit 423 stops the garbage collection, it updates the attribute information with information indicating that the garbage collection has been stopped. In response to receiving a command (QUERY REQUEST UPIU) for confirming that the garbage collection has been stopped, the GC execution unit 423 sends the attribute information to the host 3.

[0091] Next, block management in the UFS device 2 will be described.

[0092] In SLC mode, the controller 12 writes data to the SLC write destination block. For example, when the write booster is on or when swap data or hot data is written, the controller 12 writes data in SLC mode. When there is no more writable storage space in the SLC write destination block, the controller 12 selects any free block from the SLC free block list 1125, assigns it to the SLC write destination block, and writes the data therein. When writing is complete, the controller 12 deallocates the block to which writing has been completed from the write destination block. The block assigned to the SLC write destination is added to the SLC active block list 1124.

[0093] If a block that stores only invalid data is found among the blocks allocated to the SLC active block list 1124 , that block is released from the SLC active block list 1124 and allocated to the SLC free block list 1125 .

[0094] Furthermore, when garbage collection targeting the SLC area 1111 is started, the controller 12 selects an arbitrary block from the SLC active block list 1124 and allocates it as a GC target block. For example, the controller 12 preferentially allocates, as a GC target block, a block with a low ratio of valid data from among the blocks registered in the SLC active block list 1124.

[0095] In garbage collection, the controller 12 selects a write mode for copying based on the characteristics of the copied data. For example, if the SLC mode is selected, the controller 12 selects an SLC block (GC destination SLC block) as the GC destination. Then, when garbage collection is completed, the controller 12 registers the GC target block that no longer contains valid data in the SLC free block list 1125. Furthermore, when copying of data to the GC destination SLC block is completed, this GC destination SLC block is registered in the SLC active block list 1124.

[0096] For example, when TLC mode is selected, the controller 12 selects a TLC block to be GC-destined (GC-destined TLC block). When there is no more writable storage space in the TLC write destination block, the controller 12 selects an arbitrary free block from the TLC free block list 1125, newly allocates it to the TLC write destination block, and writes the data into it. When writing is complete, the block to which writing has been completed is deallocated from the write destination block. The block allocated to the TLC write destination is added to the SLC active block list 1124.

[0097] For example, when QLC mode is selected, the controller 12 selects a QLC block to be GC-destined (GC-destined QLC block). When there is no more writable storage space in the QLC write destination block, the controller 12 selects an arbitrary free block from the QLC free block list 1125, newly allocates it as the QLC write destination block, and writes the data into it. When the write is complete, the block to which the write has been completed is deallocated from the write destination block. The block allocated as the TLC write destination is added to the SLC active block list 1124.

[0098] Next, writing data in the TLC mode will be described.

[0099] In TLC mode, the controller 12 writes data to a TLC write destination block. For example, when the write booster is off or when warm or cold data is to be written, the controller 12 writes data in TLC mode. When there is no more writable storage space in the TLC write destination block, the controller 12 selects any free block from the TLC free block list 1127, assigns it to the TLC write destination block, and writes the data therein. When the writing is complete, the controller 12 deallocates the block to which the writing has been completed from the destination block. The block assigned to the TLC write destination is added to the TLC active block list 1126.

[0100] If a block that stores only invalid data occurs among the blocks allocated to the TLC active block list 1126 , that block is allocated to the TLC free block list 1127 .

[0101] Furthermore, when garbage collection targeting the TLC area 1112 starts, the controller 12 selects a TLC write block destination, but may select any block from the TLC active block list 1126 and assign it as a GC target block. For example, the controller 12 may preferentially assign, as a GC target block, a block with a low ratio of valid data from among the blocks registered in the TLC active block list 1126.

[0102] During garbage collection, the controller 12 selects a write mode for copying based on the characteristics of the copied data. Then, the controller 12 selects one of a GC target SLC block, a GC target TLC block, or a GC target QLC block as the GC target block according to the selected write mode. When garbage collection is completed, the controller 12 registers the GC target block that no longer contains valid data in the TLC free block list 1127.

[0103] Although the above description deals with cases in which data is written based on a write command in SLC mode or TLC mode, data may also be written based on a write command in QLC mode. In this case, the controller 12 uses an arbitrary QLC block selected from the QLC free block list 1129 as the QLC write destination block. At this time, for example, cold data is associated with the write command as data to be written to the QLC write destination block in QLC mode.

[0104] Furthermore, although the garbage collection has been described in which GC target blocks are selected from the SLC active block list 1124 or the TLC active block list 1126, any block may be selected from the QLC active block list 1128 and assigned as a GC target block based on the storage area targeted for garbage collection. Blocks that no longer contain valid data as a result of this garbage collection are registered in the QLC free block list 1129.

[0105] The above block management will be described with reference to the flowcharts of FIGS. 8A to 8C.

[0106] FIG. 8A is a flowchart showing a procedure for writing data to an SLC block executed in a storage device according to this embodiment.

[0107] First, the controller 12 receives a write command in the SLC mode, or selects an SLC block as a GC destination block in garbage collection (step S11).

[0108] The controller 12 writes data to the SLC write destination block (or the GC destination SLC block) in the SLC mode (step S12).

[0109] The controller 12 determines whether or not there is no more storage area available to write data in the SLC write destination block (step S13).

[0110] If there is no more writable storage area in the SLC write destination block (Yes in S13), the controller 12 selects an arbitrary SLC free block from the SLC free block list 1125 and assigns it as the SLC write destination block (step S14).

[0111] Then, the controller 12 adds the block assigned as the SLC write destination block to the SLC active block list 1124 (step S15).

[0112] If there is still a writable storage area in the SLC write destination block (No in S13), the controller 12 ends the data write.

[0113] FIG. 8B is a flowchart showing the procedure for writing data to a TLC block executed in the storage device according to this embodiment.

[0114] First, the controller 12 receives a write command in the TLC mode, or selects a TLC block as a GC destination block in garbage collection (step S21).

[0115] The controller 12 writes data to the TLC write destination block (or GC destination TLC block) in the TLC mode (step S22).

[0116] The controller 12 determines whether or not there is no storage area available to write data in the TLC write destination block (step S23).

[0117] If there is no more writable storage area in the TLC write destination block (Yes in S23), the controller 12 selects an arbitrary TLC free block from the TLC free block list 1127 and assigns it as the TLC write destination block (step S24).

[0118] Then, the controller 12 adds the block assigned as the TLC write destination block to the TLC active block list 1126 (step S25).

[0119] If there is still a writable area in the TLC write destination block (No in S23), the controller 12 ends the data write.

[0120] FIG. 8C is a flowchart showing a procedure for writing data to a QLC block executed in the storage device according to the embodiment.

[0121] First, the controller 12 selects a QLC block as a GC destination block in garbage collection (step S31).

[0122] The controller 12 writes the data to the GC destination QLC block in QLC mode (step S32).

[0123] The controller 12 determines whether or not there is no storage area available to write data in the QLC write destination block (step S33).

[0124] If there is no more writable storage area in the QLC write destination block (Yes in S33), the controller 12 selects an arbitrary QLC free block from the QLC free block list 1129 and assigns it as the QLC write destination block (step S34).

[0125] Then, the controller 12 adds the block assigned as the QLC write destination block to the QLC active block list 1128 (step S35).

[0126] If there is still a writable storage area in the QLC write destination block (No in S33), the controller 12 ends the data write.

[0127] Next, the GC analysis command will be described. Fig. 9 is a diagram showing an example of items specified by the garbage collection analysis command used in the information processing system 1 according to the embodiment.

[0128] The GC analysis command includes information specifying a specific area, information specifying a group number, and information specifying a garbage collection method.

[0129] The information specifying a specific area indicates a specific storage area in the UFS device 2. Examples of the information specifying a specific area include information specifying a swap area, information specifying an SLC area, information specifying a TLC area, or information specifying a QLC area. The information specifying a specific area may also logically specify a storage area using an LBA. In this case, the information specifying a specific area is information specifying a start LBA and a length. Furthermore, if the GC analysis command does not include information specifying a specific area, the controller 12 performs garbage collection analysis on the entire storage area for storing user data 111.

[0130] The information specifying the group number indicates the characteristics of the data. For example, the group number specifies one of swap data, hot data, worm data, and cold data. The controller 12 performs garbage collection analysis so that each block storing data corresponding to the specified group number is subject to garbage collection. Furthermore, if the GC analysis command does not include information specifying a group number, the controller 12 performs garbage collection analysis so that blocks with a percentage of valid data lower than a threshold are subject to garbage collection. The threshold is, for example, a value determined by the size of the free storage area of ​​the UFS device 2.

[0131] The information specifying the garbage collection method is information specifying either normal garbage collection or File Based Optimization (FBO) garbage collection. In FBO garbage collection, the host 3 and the UFS device 2 work together to copy data so that logically contiguous data managed in the file system of the host software is also contiguous in the storage area of ​​the nonvolatile memory 11. When the FBO method is specified, storage areas in which logically non-contiguous data is stored are also determined to be storage areas subject to garbage collection. Furthermore, if the GC analysis command does not include information specifying the garbage collection method, the controller 12 performs garbage collection analysis assuming that normal garbage collection will be performed. In normal garbage collection without specifying the FBO method, blocks with a low proportion of valid data are simply selected as GC target blocks, without considering whether data is logically contiguous in the storage area of ​​the nonvolatile memory 11.

[0132] Furthermore, the GC analysis command does not have to include any of the information specifying a specific area, information specifying a group number, and information specifying a garbage collection method. When a GC analysis command that does not include any of these pieces of information is received, the GC analysis unit 422 performs garbage collection analysis, assuming that normal garbage collection will be performed on blocks with a low proportion of valid data in the entire memory area for storing the user data 111. In other words, the GC analysis unit 422 performs garbage collection analysis using default settings.

[0133] Next, the garbage collection execution command will be described. Fig. 10 is a diagram showing an example of items specified by the garbage collection execution command used in the information processing system 1 according to the embodiment.

[0134] The GC execution command includes information specifying a specific area, information specifying a group number, information specifying the garbage collection method, information specifying the timing of garbage collection execution, information specifying the GC amount, information specifying the GC destination write mode, and information specifying the GC destination temperature.

[0135] The information specifying a specific area indicates a specific storage area in the UFS device 2. Examples of the information specifying a specific area include information specifying a swap area, information specifying an SLC area, information specifying a TLC area, or information specifying a QLC area. The information specifying a specific area may also logically specify a storage area using an LBA. In this case, the information specifying a specific area is information specifying a start LBA and a length. Furthermore, if the GC execution command does not include information specifying a specific area, the controller 12 executes garbage collection on the entire storage area for storing user data 111.

[0136] The information specifying the group number indicates the characteristics of the data. For example, the group number specifies one of swap data, hot data, worm data, and cold data. The controller 12 performs garbage collection so that each block storing data corresponding to the specified group number is subject to garbage collection. Furthermore, if the GC execution command does not include information specifying a group number, the controller 12 performs garbage collection so that blocks with a percentage of valid data lower than a threshold are subject to garbage collection. The threshold is, for example, a value determined by the size of the free storage area of ​​the UFS device 2.

[0137] The information specifying the garbage collection method is information specifying either normal garbage collection or FBO-based garbage collection. If the GC execution command does not include information specifying the garbage collection method, the controller 12 executes normal garbage collection.

[0138] The information specifying the execution timing of garbage collection is information that specifies the timing at which the controller 12 executes garbage collection based on the received garbage collection execution command. The information that specifies the execution timing is either information that specifies immediate execution or information that specifies execution at the next hibernation. Hibernation is, for example, a period when there is no access from the host 3 to the UFS device 2 for a certain period of time or more. If the execution timing is immediate execution, the controller 12 starts GC based on the received GC execution command in response to receiving the GC execution command. Furthermore, if the execution timing is at the next hibernation, the controller 12 starts garbage collection when it transitions to hibernation after receiving the GC execution command. Furthermore, if the GC execution command does not include information that specifies the execution timing, the controller 12 starts GC based on the received GC execution command in response to receiving the GC execution command.

[0139] The information specifying the GC amount is information that specifies the amount of data to be copied in garbage collection that is executed based on a GC execution command. When creating a GC execution command, the host 3 specifies the size of the data to be copied by garbage collection using the GC amount included in the GC execution command. For example, the host 3 determines the GC amount based on the analysis results. The host 3 can also specify the GC amount in read units (e.g., 4 KB). If the GC execution command does not include information specifying the GC amount, the controller 12 executes garbage collection with the maximum garbage collection (GC) possible amount. The maximum GC possible amount is the total size of data to be copied in garbage collection that is executed based on the received GC execution command.

[0140] The information specifying the GC destination write mode specifies the write mode of data at the copy destination in garbage collection executed based on a GC execution command. That is, when creating a GC execution command, the host 3 specifies the destination storage area for data copied by garbage collection from the SLC area 1111, the TLC area 1112, or the QLC area 1113. If the GC execution command does not include information specifying the GC destination write mode, the controller 12 executes garbage collection by specifying the TLC area 1112 as the destination storage area for data copied by garbage collection. Alternatively, instead of specifying the TLC area 1112, the controller 12 may be set by default to select a destination storage area so that the write mode when the source data was written is maintained.

[0141] The information specifying the GC destination temperature specifies the temperature of data after it has been copied in garbage collection executed based on the GC execution command. The GC destination temperature specifies either hot data, warm data, or cold data. When creating a GC execution command, the host 3 can specify the temperature characteristics of the data copied by garbage collection after it has been copied. If the GC execution command does not include information specifying the GC destination temperature, the controller 12 executes garbage collection so that the temperature of the data to be copied is maintained before and after the garbage collection.

[0142] In addition, the GC execution command does not have to include any of the following information: information specifying a specific area, information specifying a group number, information specifying a garbage collection method, information specifying the timing of garbage collection execution, information specifying the GC amount, information specifying a GC destination write mode, and information specifying a GC destination temperature.

[0143] Next, the GC suppression command will be described. Fig. 11 is a diagram showing an example of items specified by the garbage collection suppression command used in the information processing system 1 according to the embodiment.

[0144] The GC suppression command includes information specifying a specific area, information specifying a group number, and information specifying a priority.

[0145] The information specifying a specific area indicates a specific storage area in the UFS device 2 (also referred to as a GC suppression area) where garbage collection is to be suppressed. Examples of the information specifying a specific area include information specifying a swap area, information specifying an SLC area, information specifying a TLC area, or information specifying a QLC area. The information specifying a storage area may also logically specify the specific area using an LBA. In this case, the information specifying the specific area is information specifying a start LBA and a length. Furthermore, if the GC suppression command does not include information specifying a storage area, the controller 12 suppresses garbage collection from being performed on the entire storage area for storing user data 111.

[0146] The information specifying the group number indicates the characteristics of the data. For example, the group number specifies one of swap data, hot data, worm data, and cold data. The controller 12 controls each block storing data corresponding to the specified group number so that it is not selected as a target for garbage collection. Furthermore, if the GC analysis command does not include information specifying a group number, the controller 12 treats the characteristics of the data not selected as a target for garbage collection as if no specific characteristics were specified.

[0147] The information specifying the priority specifies the priority for excluding multiple storage areas or group numbers from GC targets when a GC suppression command specifies them. For example, assume that the GC suppression command specifies cold data in an SLC area and cold data in a TLC area, with the priority of the cold data in the SLC area being 1 (high priority) and the priority of the cold data in the TLC area being 0 (low priority). Here, if there is insufficient free space and GC needs to be performed on the area specified by the GC suppression command, the controller 12 first performs GC on the cold data in the TLC area with a low priority. Then, if GC needs to be performed again, the controller 12 performs GC on the cold data in the SLC area. In other words, the higher the priority set for a GC suppression area, the less likely GC is to be performed on that storage area. Furthermore, if the GC suppression command does not include information specifying the priority, the controller 12 assigns a priority of 1 to the storage area specified by the GC suppression command.

[0148] Next, we will explain the garbage collection analysis process, garbage collection execution process, garbage collection stop process, and garbage collection suppression process executed in the information processing system 1. Fig. 12A is a sequence diagram showing the procedure of the garbage collection analysis process executed by the information processing system 1 according to the embodiment.

[0149] First, the host 3 sends a GC analysis command to the UFS device 2 (step S101). Here, the GC analysis command may include information specifying a specific area, a group number, and a GC method. The GC analysis command is, for example, COMMAND UPIU.

[0150] The UFS device 2 executes the analysis based on the GC analysis command received in step S101 (step S102). Then, the UFS device 2 updates the attribute information (Attribute) based on the analysis results. As a result, the attribute information stores information indicating that the analysis has been completed and the analysis results.

[0151] The procedures of steps S101 and S102 are optional, and therefore the information processing system 1 may omit the procedures of steps S101 and S102.

[0152] The host 3 sends a command to check the analysis status to the UFS device 2 (step S103). This command is, for example, a QUERY REQUEST UPIU.

[0153] The UFS device 2 notifies the host 3 that the analysis has been completed and the analysis results based on the command received in step S103 (step S104). Specifically, the UFS device 2 sends attribute information (Attribute) to the host 3 in response to the QUERY REQUEST UPIU received in step S103. Furthermore, if steps S101 and S102 were skipped, the UFS device 2 sends information to the host 3 in step S104 indicating that the analysis has not been performed.

[0154] The procedures of steps S103 and S104 are optional, and therefore the information processing system 1 may omit the procedures of steps S103 and S104.

[0155] The processes from steps S101 to S104 are the GC analysis process, and the information processing system 1 may skip the GC analysis process and execute the garbage collection execution process.

[0156] FIG. 12B is a sequence diagram showing the procedure of the garbage collection execution process executed by the information processing system 1 according to the embodiment.

[0157] The host 3 sends a GC execution command to the UFS device 2 (step S105). The GC execution command is a command created by the host 3 based on the analysis results acquired in step 104. Here, the GC execution command may include information specifying a specific area, group number, GC method, execution timing, GC amount, GC destination write mode, and GC destination temperature. The GC execution command is, for example, COMMAND UPIU.

[0158] The UFS device 2 executes garbage collection based on the GC execution command received in step S105 (step S106). At this time, if the GC analysis processing from steps S101 to S1054 was skipped, the UFS device 2 executes analysis based on the information included in the GC execution command, updates the attribute information with the analysis results, and then starts garbage collection. Then, as the garbage collection progresses, the UFS device 2 updates the attribute information (Attribute) with the progress of the garbage collection. As a result, the attribute information stores the ratio of copied data to the size of data to be copied as the progress of the garbage collection.

[0159] Furthermore, if the GC analysis process (steps S101 to S104) has been skipped, the UFS device 2 performs a garbage collection analysis before executing the garbage collection in response to receiving a GC execution command.

[0160] The host 3 sends a command to the UFS device 2 to check the progress of the garbage collection (step S107). This command is, for example, a QUERY REQUEST UPIU.

[0161] The UFS device 2 notifies the host 3 of the progress of the garbage collection based on the command received in step S107 (step S108). Specifically, the UFS device 2 transmits attribute information (Attribute) to the host 3 in response to the QUERY REQUEST UPIU received in step S107.

[0162] The information processing system 1 may execute a garbage collection stop process while the UFS device 2 is executing garbage collection. Fig. 12C is a sequence diagram showing the procedure of the garbage collection stop process executed by the information processing system 1 according to the embodiment.

[0163] The host 3 sends a garbage collection (GC) stop command to the UFS device 2 (step S109). The host 3 can send the GC stop command, for example, when a new access occurs while the UFS device 2 is performing garbage collection. The GC stop command is, for example, COMMAND UPIU.

[0164] In response to receiving the GC stop command in step S109, the UFS device 2 stops the garbage collection that is currently being performed (step S110). Then, the UFS device 2 updates the attribute information (Attribute) based on the fact that the garbage collection has been stopped. As a result, information indicating that the garbage collection has been stopped is stored in the attribute information.

[0165] The host 3 sends a command to the UFS device 2 to confirm that garbage collection has stopped (step S111). This command is, for example, a QUERY REQUEST UPIU.

[0166] The UFS device 2 notifies the host 3 that garbage collection has stopped based on the command received in step S111 (step S112). Specifically, the UFS device 2 transmits attribute information (Attribute) to the host 3 in response to the QUERY REQUEST UPIU received in step S111.

[0167] The garbage collection abort process is not necessarily executed. Therefore, steps S109 to S112 may be skipped. For example, the host 3 sends a garbage collection abort command to the UFS device 2 when a process that should take priority over garbage collection (for example, a data write / read process) occurs.

[0168] The host 3 sends a GC suppression command to the UFS device 2 at any timing. The UFS device 2 executes garbage collection based on the GC execution command received in step S105 (step S106). At this time, the GC execution unit 423 of the UFS device 2 excludes from the GC execution targets the specific area specified in the GC suppression command or the storage area in which data corresponding to the specified group number is stored. This suppresses GC for the storage area specified by the GC suppression command. However, if the required write area cannot be secured without executing GC, the GC execution unit 423 also executes GC for the storage area specified in the GC suppression command.

[0169] 13A to 13D, a first specific example of garbage collection processing will be described. Here, it is assumed that garbage collection is performed to move worm data stored in the SLC area 1111 to the QLC area 1113 as cold data.

[0170] First, we will explain the initial state, which is the state before garbage collection of the storage area of ​​the nonvolatile memory 11 is performed. Fig. 13A is a first diagram showing a first specific example of garbage collection processing performed by the information processing system 1 according to the embodiment. Fig. 13A shows an SLC area 1111, a TLC area 1112, and a QLC area 1113 in the initial state. Here, each area is assumed to be 25 (5 x 5) blocks.

[0171] Each block stores data with the same characteristics, so data with different characteristics are not mixed in one block. In other words, each piece of data stored in one block corresponds to the same group number.

[0172] The SLC area 1111 includes blocks that store hot data, blocks that store worm data, and free blocks. In Figure 13A, the SLC area 1111 includes 11 blocks that store hot data, 13 blocks that store worm data, and one free block.

[0173] TLC area 1112 includes blocks that store worm data and blocks that store cold data. In Figure 13A, TLC area 1112 includes 10 blocks that store worm data, 7 blocks that store cold data, and 8 free blocks.

[0174] The QLC area 1113 includes blocks for storing cold data and free blocks. In Figure 13A, the QLC area 1113 includes five blocks for storing cold data and 20 free blocks.

[0175] Next, the host 3 sends a GC analysis command to the UFS device 2. Fig. 13B is a second diagram showing a first specific example of the garbage collection process executed by the information processing system 1 according to the embodiment.

[0176] The host 3 generates a GC analysis command that specifies the SLC area 1111 and the worm data. The information specifying the storage area included in the GC analysis command is information that specifies the SLC area 1111. For example, if the SLC area 1111 is specified by an LBA range, the GC analysis command includes information that specifies the start LBA and length of the SLC area 1111 as the LBA range. Here, the length is, for example, the number of LBAs that correspond to this LBA range. Furthermore, the information that indicates a tag corresponding to the characteristics of the data included in the GC analysis command is information that specifies the worm data. For example, the GC analysis command includes a group number that corresponds to the worm data.

[0177] Next, the UFS device 2 performs the analysis based on the received GC analysis command. Figure 13C is a third diagram showing a first specific example of the garbage collection process executed by the information processing system 1 according to the embodiment.

[0178] Based on the received GC analysis command, the UFS device 2 identifies blocks that store worm data included in the SLC area 1111 as blocks that can be GC'ed. Then, the UFS device 2 updates the attribute information of the identified blocks that can be GC'ed with the dirty status and GC possible size as the analysis results.

[0179] Here, the dirty status indicates the ratio of the number of blocks contained in the SLC area 1111 that are used to store worm data to the total number of blocks contained in the SLC area 1111. Also, the GC available size indicates the total size of valid data among the worm data stored in the SLC area 1111.

[0180] 13C, UFS device 2 updates the attribute information to indicate a dirty status of 52% because 13 of the 25 blocks that make up SLC area 1111 are being used to store worm data. Furthermore, if no invalid data is stored in the blocks that store worm data, UFS device 2 updates the attribute information to indicate the size of data equivalent to 13 blocks as the GC possible size.

[0181] In response to receiving the command to obtain the analysis results, the UFS device 2 notifies the host 3 of the attribute information including the analysis results. In response to this, the host 3 obtains the analysis results from the UFS device 2.

[0182] Next, the host 3 sends a GC execution command based on the acquired analysis results to the UFS device 2. Fig. 13D is a fourth diagram showing a first specific example of garbage collection processing executed by the information processing system 1 according to the embodiment.

[0183] The host 3 generates a GC execution command based on the acquired analysis results. In the generated GC execution command, the information specifying the storage area to be garbage collected indicates the SLC area 1111, and the information specifying the characteristics of the data to be garbage collected indicates worm data. This GC execution command also includes information specifying the GC possible size as the GC amount, information specifying immediate execution as the GC execution timing, information specifying the QLC area 1113 as the storage area to be GC-determined, and information specifying cold data as the temperature to be GC-determined.

[0184] As a result, UFS device 2 starts garbage collection in response to receiving the GC execution command. Because the GC possible size has been specified, UFS device 2 determines the data size corresponding to all 13 blocks in SLC area 1111, which are all blocks that are subject to GC, as the total size of data to be copied in this garbage collection. Furthermore, because QLC area 1113 has been specified as the GC destination storage area, UFS device 2 allocates free blocks included in QLC area 1113 as GC destination QLC blocks. Then, UFS device 2 updates the data management table 1123 so that the copied data is managed as cold data.

[0185] The size of data that can be stored in one block in the QLC area 1113 corresponds to the total size of data that can be stored in four blocks in the SLC area 1111. Therefore, the data stored in 13 blocks in the SLC area 1111 is copied to four blocks in the QLC area 1113. One of the four blocks has 1 / 4 of its storage area used.

[0186] While garbage collection is being performed, the UFS device 2 periodically updates the garbage collection progress in attribute information (Attribute). The garbage collection progress indicates the ratio of the total size of data that has currently been copied to the total size of data that needs to be copied in this garbage collection (GC). In response to receiving a command from the host 3 to obtain the GC progress, the UFS device 2 sends attribute information including the GC progress to the host 3.

[0187] 14A to 14D, a second specific example of garbage collection processing will be described. Here, it is assumed that garbage collection is performed to move part of the worm data stored in the TLC area 1112 to the SLC area 1111.

[0188] 14A is a first diagram showing a second specific example of the garbage collection process executed by the information processing system 1 according to the embodiment. In FIG. 14A, an SLC area 1111, a TLC area 1112, and a QLC area 1113 in the initial state are shown. Here, each area is assumed to have 25 (5×5) blocks.

[0189] Each block stores data with the same characteristics, so data with different characteristics are not mixed in one block. In other words, each piece of data stored in one block corresponds to the same group number.

[0190] The SLC area 1111 includes blocks that store hot data and free blocks. In Figure 14A, the SLC area 1111 includes 16 blocks that store hot data and 9 free blocks.

[0191] The TLC area 1112 includes blocks that store worm data and free blocks. In Figure 14A, the TLC area 1112 includes 17 blocks that store worm data and 8 free blocks.

[0192] The QLC area 1113 includes blocks for storing cold data and free blocks. In Figure 14A, the QLC area 1113 includes five blocks for storing cold data and 20 free blocks.

[0193] Next, the host 3 sends a GC analysis command to the UFS device 2. Fig. 14B is a second diagram showing a second specific example of the garbage collection process executed by the information processing system 1 according to the embodiment.

[0194] The host 3 generates a GC analysis command that specifies the TLC area 1112 and a specific LBA range. The information specifying the storage area included in the GC analysis command is information specifying the TLC area 1112. In this case, the GC analysis command includes information indicating the start LBA and length of the LBA range in the TLC area 1112. Here, the length is, for example, the number of LBAs corresponding to this LBA range. Furthermore, the GC analysis command does not specify information indicating a tag corresponding to the characteristics of the data.

[0195] Next, the UFS device 2 performs the analysis based on the received GC analysis command. Figure 14C is a third diagram showing a second specific example of the garbage collection process performed by the information processing system 1 according to the embodiment.

[0196] Based on the received GC analysis command, the UFS device 2 identifies blocks of LBAs corresponding to the specified length contained in the TLC area 1112 as blocks that can be GC'ed. Then, the UFS device 2 updates the attribute information of the identified blocks that can be GC'ed with the dirty status and GC possible size as the analysis results.

[0197] Here, the dirty status indicates the ratio of the number of blocks of LBAs corresponding to the specified length contained in the TLC area 1112 to the number of blocks contained in the TLC area 1112. Also, the GC possible size indicates the total size of valid data in the specified LBA range stored in the TLC area 1112.

[0198] 14C, five of the 25 blocks that make up the TLC area 1112 have been specified, so the UFS device 2 updates the attribute information to indicate a dirty status of 20%. Furthermore, if no invalid data is stored in the five specified blocks, the UFS device 2 updates the attribute information to indicate the size of five blocks' worth of data as the GC possible size.

[0199] In response to receiving the command to obtain the analysis results, the UFS device 2 notifies the host 3 of the attribute information including the analysis results. In response to this, the host 3 obtains the analysis results from the UFS device 2.

[0200] Next, the host 3 sends a GC execution command based on the acquired analysis results to the UFS device 2. Fig. 14D is a fourth diagram showing a second example of garbage collection processing executed by the information processing system 1 according to the embodiment.

[0201] The host 3 generates a GC execution command based on the acquired analysis results. In the generated GC execution command, the information specifying the storage area to be garbage collected indicates the TLC area 1112, and the characteristics of the data to be garbage collected are not specified. This GC execution command also includes information specifying the GC possible size as the GC amount, information specifying immediate execution as the GC execution timing, information specifying the SLC area 1111 as the GC destination storage area, and information specifying that the GC source temperature should be maintained as the GC destination temperature.

[0202] As a result, the UFS device 2 starts garbage collection in response to receiving the GC execution command.

[0203] The size of data that can be stored in one block in the TLC area 1112 corresponds to the total size of data that can be stored in three blocks in the SLC area 1111. Therefore, 15 free blocks are required to copy the data stored in five blocks in the TLC area 1112 to the SLC area 1111. However, because there are nine free blocks in the SLC area 1111, only data equivalent to the size of three blocks in the TLC area 1112 can be copied. Therefore, the data size corresponding to the three blocks in the TLC area 1112 is determined as the total size of data to be copied in this garbage collection. Furthermore, because the SLC area 1111 is specified as the GC destination storage area, the UFS device 2 allocates the free blocks included in the SLC area 1111 as GC destination SLC blocks. The UFS device 2 then updates the data management table 1123 so that the copied data is managed as worm data.

[0204] Also, for example, the UFS device 2 reserves a new SLC area 1111 and copies the data stored in the two blocks of the remaining TLC area 1112 to the six free blocks in the reserved SLC area 1111.

[0205] The size of data that can be stored in one block in the TLC area 1112 corresponds to the total size of data that can be stored in three blocks in the SLC area 1111. Therefore, the data stored in five blocks in the TLC area 1112 will be copied to 20 blocks in the SLC area 1111.

[0206] While garbage collection is being performed, the UFS device 2 periodically updates the garbage collection progress in attribute information (Attribute). The garbage collection progress indicates the ratio of the total size of data that has currently been copied to the total size of data that needs to be copied in this garbage collection (GC). In response to receiving a command from the host 3 to obtain the GC progress, the UFS device 2 sends attribute information including the GC progress to the host 3.

[0207] Next, we will explain the procedure of garbage collection processing in the host 3. Fig. 15 is a flowchart showing the procedure of garbage collection processing executed in the host 3 according to this embodiment.

[0208] First, the host 3 sends a GC analysis command to the UFS device 2 (step S1).

[0209] The host 3 transmits a command for acquiring GC analysis results based on the GC analysis command transmitted in step S1 to the UFS device 2. The host 3 then acquires the GC analysis results from the UFS device 2 (step S2). The host 3 generates a GC execution command based on the acquired GC analysis results.

[0210] The host 3 sends the generated GC execution command to the UFS device 2 (step S3). The host 3 can control the garbage collection executed in the UFS device 2 by determining the information included in the GC execution command.

[0211] This allows the host 3 to control the garbage collection performed in the UFS device 2 so that it is suitable for the host 3.

[0212] As described above, according to the embodiment, in the information processing system 1, the UFS device 2 executes garbage collection based on a garbage collection execution command received from the host 3. This garbage collection execution command can specify, for example, a specific area, a group number, a GC method, execution timing, a GC amount, and a GC destination write mode.

[0213] This allows the host 3 to cause the UFS device 2 to perform garbage collection, which moves data in the UFS device 2 so that the data is stored in the most optimal storage area.

[0214] For example, by moving data stored in an SLC area to a TLC area or a QLC area, or by moving data stored in a TLC area to a QLC area, data written at high speed to the UFS device 2 can be moved to a storage area with a slower data writing / reading speed. Also, by moving data stored in a TLC area to an SLC area, or by moving data stored in a QLC area to an SLC area or a TLC area, data can be moved to a storage area with a faster writing / reading speed.

[0215] This allows the host 3 to manage data so that data that is desired to be used at high speed is stored in a storage area with a faster data write / read speed, and data that is accessed less frequently is stored in a storage area with a slower data write / read speed.

[0216] The host 3 also issues a GC suppression command to suppress the movement of specific data due to spontaneous garbage collection of the UFS device 2. As a result, when data that is desired to be used quickly is stored in an SLC area, for example, the host 3 can suppress the movement of this data from the SLC area to other storage areas by issuing a GC suppression command that specifies the SLC area. Also, because hot data is likely to be rewritten soon, the host 3 can suppress GC that is expected to be wasted by issuing a GC suppression command that specifies the hot data.

[0217] Furthermore, suppose that the host 3 sends a write command to the UFS device 2 to write swap data when there is a shortage of free storage space in the swap area 11111 in the UFS device 2. In an information processing system that does not have a garbage collection execution command according to this embodiment, the UFS device 2 that receives the write command will secure free space in the swap area 11111 by temporarily saving the data stored in the swap area 11111, for example, and then process the write command. This results in latency in the processing of the write command.

[0218] In contrast to this, in this embodiment, when there is a shortage of free storage area in the swap area 11111, the host 3 can send a garbage collection execution command specifying the swap area 11111 in advance to the UFS device 2. Upon receiving this garbage collection execution command, the UFS device 2 executes garbage collection targeting the swap area 11111. As a result, the host 3 can prevent in advance the occurrence of latency in write commands for writing swap data.

[0219] The storage device of the information processing system according to the embodiment has been described assuming a UFS device 2. However, the storage device may be an SD TMThe storage device may be a memory card such as a card, or an SSD (Solid State Drive). In addition, when the storage device is a memory card or an SSD, the host I / F 31 may be an SD TM Interface: SAS (Serial Attached SCSI (Small Computer System Interface)), SATA (Serial ATA (Advanced Technology Attachment)), or PCIe TM It may communicate with the host 3 in accordance with standards conforming to the Peripheral Component Interconnect express (PCI).

[0220] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]

[0221] 1...information processing system, 2...UFS device, 3...host, 11...non-volatile memory, 12...controller, 21...I / O, 22...core logic unit, 23...I / O, 31...host I / F, 32...buffer, 33...data bus, 34...memory I / F, 36...ECC circuit, 41...control bus, 42...CPU, 43...ROM, 44...RAM, 45...register, 51...interface unit, 52...host controller, 53...memory, 111...user data, 112...management data, 1111...SLC area, 1112... TLC area, 1113...QLC area, 11111...swap area, 1121...block management table, 1122...L2P table, 1123...data management table, 1124...SLC active block list, 1125...SLC free block list, 1126...TLC active block list, 1127...TLC free block list, 1128...QLC active block list, 1129...QLC free block list, 421...write control unit, 422...GC analysis unit, 423...GC execution unit.

Claims

1. a host; and a storage device connected to the host and capable of communicating with the host based on the UFS (Universal Flash Storage) standard; the storage device includes a non-volatile memory and a controller; the nonvolatile memory includes a plurality of memory cells each storing one or more bits of data; the controller writes one bit of data to each of the plurality of memory cells in a first write method, and writes multiple bits of data to each of the plurality of memory cells in a second write method; managing a correspondence between each piece of data stored in the nonvolatile memory and one of a plurality of tags indicating characteristics of the data; the nonvolatile memory includes a swap area for storing data that is not selected as a target for garbage collection that is voluntarily performed by the controller, that is written in the first writing method, and that corresponds to a first tag included in a write command received from the host; The host sends a first command to the storage device to instruct it to perform garbage collection; The controller Initiating the garbage collection in response to the received first command; recording the progress of the garbage collection as the garbage collection progresses; the host sends a second command to the storage device to check the progress; the controller is configured to notify the host of the progress in response to the received second command for checking the progress; Information processing system.

2. the host sends a third command to the storage device instructing the storage device to perform an analysis related to garbage collection at the host; the controller performs an analysis on the received third command; the host sends a second command to the storage device to obtain the results of the analysis; the controller notifies the host of the results of the analysis in response to the received second command to obtain the results of the analysis; the host is configured to send the first command to the storage device based on the notified result of the analysis; The information processing system according to claim 1 .

3. the result is attribute information, the result includes a ratio of a storage area where the garbage collection should be performed to a storage area that is the target of the garbage collection performed based on the first command, and a total size of data to be copied in the garbage collection performed based on the first command. The information processing system according to claim 2 .

4. The first command is including information specifying one or more storage areas among a plurality of storage areas included in the nonvolatile memory; The information processing system according to claim 1 .

5. The first command is including information indicating one tag among the plurality of tags, The information processing system according to claim 1 .

6. The first command is including information specifying a timing at which the garbage collection based on the first command is to be performed; The information processing system according to claim 1 .

7. The first command is including information specifying a total size of data to be copied by the garbage collection based on the first command; The information processing system according to claim 1 .

8. The first command is the information specifying a write method for copying data by the garbage collection based on the first command; The information processing system according to claim 1 .

9. The first command is the data includes information specifying a temperature of the copied data in the data copy performed by the garbage collection based on the first command; The information processing system according to claim 1 .

10. The first command is including information specifying a garbage collection method to be performed based on the first command; The information processing system according to claim 1 .

11. The third command is including information specifying one or more storage areas among a plurality of storage areas included in the nonvolatile memory; The information processing system according to claim 2 .

12. The third command is including information indicating one tag among the plurality of tags, The information processing system according to claim 2 .

13. The third command is and information specifying a garbage collection method for the first command sent based on the results of the analysis performed in response to the third command. The information processing system according to claim 2 .

14. the host sends a fourth command to the storage device to instruct it to suppress garbage collection of data stored in the corresponding storage area; the controller prioritizes execution of garbage collection on storage areas not specified by the received fourth command; It is configured as follows: The information processing system according to claim 1 .

15. The fourth command is information specifying one or more storage areas among a plurality of storage areas included in the nonvolatile memory; information indicating one tag among the plurality of tags; and and information specifying a priority of the one or more storage areas specified by the fourth command when the storage areas are selected as targets for the garbage collection. The information processing system according to claim 14.

16. A storage device can be connected to the Sending a command to the storage device to perform an analysis related to garbage collection; Retrieving the results of the analysis from the storage device; sending a first command to the storage device to perform garbage collection based on the results of the obtained analysis; It is configured as follows: host.

17. the result is attribute information, the result includes a ratio of a storage area where the garbage collection should be performed to a storage area that is the target of the garbage collection performed based on the first command, and a total size of data to be copied in the garbage collection performed based on the first command. The host of claim 16.

18. The host is capable of communicating with the storage device based on the UFS (Universal Flash Storage) standard. The host of claim 16.

Citation Information

Patent Citations

  • Memory system and memory device

    JP2019106056A

  • Method and System for Optimizing Deterministic Garbage Collection in Nand Flash Storage Systems

    US20170300410A1

  • Capturing time-varying storage of data in memory device for data recovery purposes

    US20210011845A1

  • Storage device that secures a block for a stream or namespace and system having the storage device

    US20230082139A1

  • Storage system and method

    US20230205460A1

Cited By

  • Low latency partition for memory swap operations

    US20260003503A1