Storage device and data storage method
By introducing a turbo write buffer in the storage device and optimizing the movement of data between different areas, the problem of insufficient communication speed between UFS memory devices and new-generation UFS devices is resolved, achieving improved write and read speeds to meet the new UFS standard.
Patent Information
- Application Number
- CN202010758466.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-01
- Filing Date
- 2020-07-31
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2040-07-31
AI Technical Summary
Existing UFS memory devices have difficulty communicating with the next-generation UFS devices, resulting in insufficient write and read speeds that cannot meet the new UFS standard requirements.
By introducing a turbo write buffer in the storage device, data is written preferentially to the single-level cell (SLC) area, realizing the turbo write function and enhancing the write speed; at the same time, according to the type of read command and movement information, the movement and reading of data in different areas are optimized to improve the reading efficiency.
It achieves compatibility with the new generation of UFS devices, improves writing and reading speeds, and meets the requirements of the new UFS standard.
Smart Images

Figure CN112306401B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of Korean Patent Application No. 10-2019-0094034 filed on August 23, 2019, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] Embodiments of the inventive concept disclosed herein relate to a semiconductor device, and more particularly, to a memory device that accelerates write and read speeds by utilizing a buffer zone. Background Art
[0004] Semiconductor memory devices are used in devices such as computers, tablets, cameras, and smartphones as volatile memory to store temporary data. Volatile memory devices transfer information very quickly, but the temporarily stored data is deleted when the device loses power.
[0005] Alternatively, non-volatile memory devices, such as phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), ferroelectric RAM (FRAM), and flash memory, retain data when the device is turned off. Non-volatile memory devices typically transfer information more slowly than volatile memory devices. However, flash memory allows for non-volatile storage of data and fast operating speeds. The Universal Flash Storage (UFS) standard provides flash storage specifications. As technology advances, the UFS standard has been modified to improve memory performance.
[0006] When the UFS standard is updated, older technologies may need to adapt to meet the new specifications. Therefore, there is a need in the art for systems and methods that enable older UFS standard memory devices to communicate with the latest generation UFS devices. Summary of the Invention
[0007] Embodiments of the inventive concept provide a storage device for accelerating write and read speeds.
[0008] According to an exemplary embodiment, a storage device includes: a nonvolatile memory device, which includes a first area, a second area, and a third area; and a controller, which receives a write command and first data from an external host device, when the first data is associated with turbo write, preferentially writes the first data to the first area or the second area rather than the third area, and when the first data is associated with normal write, writes the first data to the first area, the second area, or the third area based on a normal write policy.
[0009] The controller receives a read command from an external host device, reads second data from the first area, the second area, or the third area based on the read command, and outputs the second data to the external host device. When the read command is received together with the movement information, the controller also moves the second data in response to the movement information of the read command.
[0010] According to an exemplary embodiment, a storage device includes: a nonvolatile memory device including a first region, a second region, and a third region; and a controller that receives a write command and first data from an external host device, preferentially writes the first data to the first region or the second region over the third region when the first data is associated with a turbo write, and writes the first data to the first region, the second region, or the third region based on a normal write policy when the first data is associated with a normal write. The controller receives a query request including a first group number and move information from the external host device, and sets a move attribute for the data corresponding to the first group number based on the move information. Following the query request, the controller receives a read command including a logical address and a second group number, reads second data corresponding to the logical address from the first region, the second region, or the third region, outputs the second data to the external host device, and moves the second data based on the move attribute when the second group number matches the first group number.
[0011] According to an exemplary embodiment, a storage device includes: a nonvolatile memory device including a first area, a second area, and a third area; and a controller that receives a read command from an external host device, reads data from the first area, the second area, or the third area based on the read command, outputs the data to the external host device, and moves the data to the first area, the second area, or the third area in response to the read command.
[0012] According to an exemplary embodiment, a data storage method includes: receiving a write command and first data; determining whether the write command corresponds to a normal write or a turbo write; selecting a region of a non-volatile memory device based on the determination, wherein when the write command corresponds to a turbo write, the selected region includes a turbo write buffer, and when the write command corresponds to a normal write, the selected region includes the turbo write buffer or a user storage region; and writing the first data to the selected region of the non-volatile memory device based on the write command. In some cases, the method may include: receiving a read command; reading second data from the non-volatile memory based on the read command; determining whether the read command includes shift information; and shifting the second data based on whether the read command includes the shift information. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The above and other aspects and features of the present inventive concept will become apparent by describing in detail exemplary embodiments of the present inventive concept with reference to the attached drawings.
[0014] Figure 1 is a block diagram illustrating a storage system according to an embodiment of the inventive concept;
[0015] Figure 2 It shows Figure 1 A diagram of the physical storage space of a storage device;
[0016] Figure 3A and Figure 3B is used to describe Figure 2 Figure 1 shows the turbo write buffer type.
[0017] Figure 4A and Figure 4B Is used to describe the configuration Figure 1 A diagram illustrating a mode of a turbo write buffer of a storage device;
[0018] Figure 5 It shows Figure 1 A flowchart of the operation of the storage system;
[0019] Figure 6 It shows Figure 1 A flowchart of the operation of the storage system;
[0020] Figure 7 It shows Figure 1 A flowchart of the operation of the storage device;
[0021] Figure 8 It shows Figure 1 A block diagram of the physical storage space of the storage device;
[0022] Figure 9 is shown for reference Figure 8 A diagram describing the logical storage space of a storage device's physical storage space;
[0023] Figure 10A and Figure 10B Reference Figure 8 A diagram describing operations in the physical storage space of a storage device;
[0024] Figure 11 An example of a read operation performed on a storage system that results in data movement is shown;
[0025] Figure 12 Shown Figure 11 Example of command UPIU CU shown;
[0026] Figure 13shows an example of data stored in a fixed turbo write buffer, a non-fixed turbo write buffer, and a user memory;
[0027] Figure 14 An example is shown in which a storage device moves data based on force level information;
[0028] Figure 15 An example is shown in which a storage device moves data based on activation mode information;
[0029] Figure 16 Shown Figure 11 An example of a response to UPIU;
[0030] Figure 17 and Figure 18 An example is shown in which a data movement operation is performed with a storage device in combination with a query request UPIU QU and a command UPIU;
[0031] Figure 19 It shows Figure 1 A diagram of the hierarchical structure of the storage system;
[0032] Figure 20 is a block diagram illustrating in detail a storage system according to an embodiment of the inventive concept;
[0033] Figure 21 A conceptual diagram is shown in which an embodiment of the present inventive concept is applied to a storage system. DETAILED DESCRIPTION
[0034] This disclosure describes systems and methods that enable older Universal Flash Storage (UFS) standard memory devices to communicate with newer generation UFS devices. For example, the newer UFS standard may include a turbo write specification. According to the turbo write process, a portion of the storage space of the UFS device can be used as multi-level cell (MLC) space (e.g., triple-level cell (TLC) space), while the remaining portion can be used as single-level cell (SLC) space. The host can identify the sum of the TLC capacity and the SLC capacity as the total capacity of the UFS device.
[0035] The UFS device may enable or disable the turbo write process based on a request from the host. When the turbo write process is enabled, the UFS device may accelerate the write speed by preferentially writing data received from the host in the SLC space.
[0036] Furthermore, the read speed of the SLC space can be higher than the read speed of the TLC space. Therefore, the read speed of data stored in the SLC space of a UFS device can also be accelerated. Therefore, the present invention is intended to provide a device for enabling a host to request a turbo read process from a UFS device according to the newer UFS standard that includes the turbo write specification.
[0037] Below, embodiments of the present inventive concept may be described in detail and clearly to the extent that a person having ordinary skill in the art can easily implement the present inventive concept.
[0038] Figure 1 is a block diagram illustrating a storage system according to an embodiment of the inventive concept. Figure 1 , the storage system 1000 may include a host 1100 and a storage device 1200. In an exemplary embodiment, the storage system 1000 may include one of various computing systems such as a personal computer, a notebook computer, a tablet computer, a smart phone, and a wearable device.
[0039] The host 1100 may store data in the storage device 1200 or may read data stored in the storage device 1200. For example, the host 1100 may transmit a write command and write data to the storage device 1200 to store the data in the storage device 1200. Alternatively, in order to read data stored in the storage device 1200, the host 1100 may transmit a read command to the storage device 1200 and may receive data from the storage device 1200.
[0040] The host 1100 may include a main processor such as a central processing unit (CPU) or an application processor (AP). In addition, the host 1100 may include an auxiliary processor that assists the main processor, such as a graphics processing unit (GPU) or a neural processing unit (NPU).
[0041] The storage device 1200 may operate under the control of the host 1100. For example, the storage device 1200 may include a controller 1210 and a non-volatile memory device 1220. The controller 1210 may operate in response to commands received from the host 1100. For example, the controller 1210 may receive a write command and write data from the host 1100. In addition, the controller 1210 may store the received write data in the non-volatile memory device 1220 in response to the received write command.
[0042] Alternatively, the controller 1210 may receive a read command from the host 1100. In addition, the controller 1210 may read data stored in the nonvolatile memory device 1220 in response to the received read command. The controller 1210 may then transmit the read data to the host 1100. In an exemplary embodiment, the nonvolatile memory device 1220 may be a NAND flash memory device, but the present inventive concept is not limited thereto.
[0043] In an exemplary embodiment, the host 1100 may communicate with the storage device 1200 based on a Universal Flash Storage (UFS) interface defined by a specific standard such as the JEDEC standard. For example, the host 1100 and the storage device 1200 may exchange packets in the form of UFS Protocol Information Units (UPIUs). The UPIU may include various information defined by an interface (e.g., a UFS interface) between the host 1100 and the storage device 1200. However, the present inventive concept is not limited thereto.
[0044] In an exemplary embodiment, the storage device 1200 may support a turbo write function. The turbo write function may be enabled or disabled under the control of the host 1100. When the turbo write function is enabled under the control of the host 1100, the storage device 1200 may perform a turbo write operation. The turbo write operation may be performed based on SLC writes. In addition, the turbo write operation may provide enhanced performance (e.g., enhanced write performance) of the storage device 1200. The turbo write operation will be described more fully with reference to the following description.
[0045] Figure 2 It shows Figure 1 FIG2 is a diagram of a physical storage space PS of the storage device 1200. The physical storage space PS of the storage device 1200 may represent a physical area of the nonvolatile memory device 1220 in which user data is stored. For example, the physical storage space PS may be a space recognized by the host 1100 as the capacity of the storage device 1200.
[0046] In an exemplary embodiment, except Figure 2 In addition to the physical storage space PS shown, the storage device 1200 may also include any other storage space (for example, space not recognized by the host 1100 as the capacity of the storage device 1200, such as a reserved area, a meta area for storing metadata, or an over-provisioned area for improving performance). However, for the sake of brevity, additional descriptions associated with other storage spaces will be omitted (or minimized), and the description will focus on the physical storage space PS for storing user data.
[0047] Reference Figure 1 and Figure 2The physical storage space PS of the storage device 1200 may include a turbo write buffer area (TWB) and a user storage area (UST). For the sake of brevity, the turbo write buffer area (TWB) will be referred to as the "turbo write buffer" hereinafter. Furthermore, for the sake of brevity, the user storage area (UST) will be referred to as the "user memory" hereinafter.
[0048] The turbo write buffer TWB may correspond to a portion (e.g., “a”) of the physical storage space PS of the nonvolatile memory device 1220. The user memory UST may correspond to the remaining portion (e.g., “b”) of the physical storage space PS of the nonvolatile memory device 1220 in the storage device 1200, or may correspond to the entire physical storage space PS of the nonvolatile memory device 1220 (e.g., a+b).
[0049] In an exemplary embodiment, each of the memory cells corresponding to the turbo write buffer TWB may be used as a single-level cell (SLC). In addition, each of the memory cells corresponding to the user memory UST may be used as a multi-level cell (MLC), such as a triple-level cell (TLC).
[0050] Alternatively, each of the memory cells corresponding to the turbo write buffer TWB can be configured to store n-bit data (n is a positive integer). Alternatively, each of the memory cells corresponding to the user memory UST can be configured to store m-bit data (m is a positive integer greater than n). For example, the turbo write buffer TWB can represent an area that supports a higher write speed than the user memory UST.
[0051] For another example, "n" may be a positive integer greater than "m." For example, the number of bits stored in each memory cell of the turbo write buffer TWB may be greater than the number of bits stored in each memory cell of the user memory UST. In both the turbo write buffer TWB and the user memory UST, reliability and lifespan may affect the number of bits to be stored per memory cell.
[0052] In an exemplary embodiment, each of reference numerals "a" and "b" may represent the number of memory blocks in a corresponding storage space. The values of "a" and "b" may be varied based on the sizes of the turbo write buffer TWB and the user memory UST and the schemes (e.g., SLC, MLC, TLC, and QLC) in which the turbo write buffer TWB and the user memory UST are implemented.
[0053] In an exemplary embodiment, as shown in FIG. Figure 1As described above, the memory device 1200 according to an embodiment of the present inventive concept can support a normal write function and a turbo write function. When the turbo write function is enabled by the host 1100, the memory device 1200 can perform a turbo write operation. When the turbo write function is disabled by the host 1100, the memory device 1200 can perform a normal write operation.
[0054] For example, in a case where the turbo write function is enabled, the memory device 1200 may first write write data received from the host 1100 into the turbo write buffer TWB.
[0055] In this case, since the write data received from the host 1100 is written into the turbo write buffer TWB (eg, using an SLC procedure), a fast operation speed can be ensured compared to a case where a normal write operation is performed on the user memory UST (eg, using a TLC procedure).
[0056] In the case where the turbo write function is disabled, the storage device 1200 may not initially write the write data to the turbo write buffer TWB. Based on an internally determined policy (e.g., a normal write policy), the storage device 1200 may write the write data directly to the user memory UST or may write the write data to the turbo write buffer TWB. The process of writing the write data may be determined based on various factors. These factors may depend on the normal write policy. For example, data sharing of the turbo write buffer TWB and the state of the physical storage space PS may be factors that affect the writing of the write data.
[0057] For another example, a normal write policy may be determined to first write write data to the user memory UST. In the specific description, it is assumed that the normal write policy is a policy in which write data is preferentially written to the user memory UST. The term "priority write" refers to a policy in which, if an area is available for writing data, the data is written (e.g., to the first area or the second area); otherwise, the data is written to a different area (e.g., the third area). However, the present invention is not limited thereto.
[0058] In an exemplary embodiment, based on an explicit command from the host 1100 or an internally given policy, the data written into the turbo write buffer TWB may be cleaned or migrated to the user memory UST.
[0059] According to an exemplary embodiment, a method of data storage includes: receiving a write command and first data from an external host device; determining whether the write command corresponds to normal write or turbo write; selecting an area of a non-volatile memory device based on the determination, wherein when the write command corresponds to turbo write, the selected area includes a turbo write buffer TWB, and when the write command corresponds to normal write, the selected area includes the turbo write buffer TWB or a user storage area UST; and writing the first data to the selected area of the non-volatile memory device based on the write command.
[0060] In some cases, the method may include: receiving a read command from an external host device; reading second data from the non-volatile memory based on the read command; determining whether the read command includes move information; and moving the second data based on whether the read command includes the move information. For example, the move information may include information for moving the second data from the turbo write buffer (TWB) to the user storage area (UST).
[0061] Figure 3A and Figure 3B is used to describe Figure 2 Figure 1 shows the turbo write buffer types. Figure 1 、 Figure 2 、 Figure 3A and Figure 3B The storage device 1200 may include a first logical unit LU1 to a fourth logical unit LU4. Each of the first logical unit LU1 to the fourth logical unit LU4 may indicate that a processing object for processing a command from the host 1100 is managed externally and independently. The host 1100 may manage the storage space of the storage device 1200 through the first logical unit LU1 to the fourth logical unit LU4. Each of the first logical unit LU1 to the fourth logical unit LU4 may be used to store data in the storage device 1200.
[0062] Each of the first to fourth logical units LU1 to LU4 may be associated with at least one memory block of the nonvolatile memory device 1220. Various logical units may exist for various applications. However, it is assumed that the first to fourth logical units LU1 to LU4 correspond to the physical storage space PS and are used to store data of the host 1100.
[0063] Figure 3A and Figure 3B1 to 4 logical units LU1 to LU4 are shown in FIG, but the present invention is not limited thereto. For example, in addition to the first to fourth logical units LU1 to LU4, the storage device 1200 may further include other logical units for storing and managing user data. Alternatively, in addition to the first to fourth logical units LU1 to LU4, the storage device 1200 may further include other logical units for supporting various functions.
[0064] The turbo write buffer TWB of the memory device 1200 according to an embodiment of the inventive concept may be configured in various types: The turbo write buffer TWB may be configured in one of a logical unit (LU) dedicated buffer type and a shared buffer type.
[0065] In the case of the LU-specific buffer type, the turbo write buffer TWB can be configured independently or individually for each logical unit LU. Figure 3A As shown, in the LU-specific buffer type, the first turbo write buffer TWB1 can be configured relative to the first logical unit LU1 among the first to fourth logical units LU1 to LU4, and the third turbo write buffer TWB3 can be configured relative to the third logical unit LU3.
[0066] In the LU dedicated buffer type, in the case where a write command for the first logical unit LU1 is received after turbo write is enabled, write data may be preferentially written to the first turbo write buffer TWB1 corresponding to the first logical unit LU1. In the case where a write command for the third logical unit LU3 is received after the turbo write function is enabled, write data may be preferentially written to the third turbo write buffer TWB3 corresponding to the third logical unit LU3.
[0067] In the case where a write command is received for the second logical unit LU2 and the fourth logical unit LU4 to which the turbo write buffer TWB is not allocated, the write data can be written into the user memory UST corresponding to the second logical unit LU2 and the fourth logical unit LU4. In addition, in the case where a write command is received for the first logical unit LU1 or the third logical unit LU3 after turbo write is disabled, based on the normal write policy, the write data can be written into the user memory UST of the first logical unit LU1 or the first turbo write buffer TWB1, or can be written into the user memory UST of the third logical unit LU3 or the third turbo write buffer TWB3.
[0068] In an exemplary embodiment, the capacities of the first turbo write buffer TWB1 and the third turbo write buffer TWB3 can be set independently of each other. However, the present invention is not limited thereto. For example, the number of logical units to which the turbo write buffers are respectively allocated, the capacity of each turbo write buffer, etc. can be variously changed or modified.
[0069] In an exemplary embodiment, the size of the turbo write buffer TWB for each logical unit may be set to a per-unit turbo write buffer size field (e.g., "dLUNumTurboWriteBufferAllocUnits") of the unit descriptor. In an exemplary embodiment, the per-unit turbo write buffer size field (e.g., "dLUNumTurboWriteBufferAllocUnits") may be a configurable parameter.
[0070] In the case of a shared buffer type, a turbo write buffer can be configured relative to a logical unit. For example, Figure 3B As shown, in the shared buffer type, one turbo write buffer TWB0 may be configured to be shared by the first to fourth logical units LU1 to LU4.
[0071] In this case, when a write command is received for each of the first to fourth logical units LU1 to LU4 after the turbo write function is enabled, the write data may be preferentially written to the shared turbo write buffer TWB0. In the case where a write command is received for each of the first to fourth logical units LU1 to LU4 after turbo write is disabled, the write data may be written to the user memory UST of each of the first to fourth logical units LU1 to LU4 or to the shared turbo write buffer TWB0.
[0072] As described above, according to an embodiment of the present inventive concept, the storage device 1200 may include a turbo write buffer TWB for supporting a turbo write function. Depending on the buffer type (e.g., LU-dedicated buffer type or shared buffer type), the turbo write buffer TWB may be configured for each of a plurality of logical units. Alternatively, one turbo write buffer TWB may be configured for each logical unit.
[0073] Figure 4A and Figure 4B It is used to describe the configuration Figure 1For example, regardless of the buffer type (eg, LU-specific buffer type and shared buffer type), the turbo write buffer is shown as a single space.
[0074] For simplicity of description, it is assumed that the physical storage space PS of the storage device 1200 is 32 GB based on TLC. For example, if each of the memory cells included in the storage device 1200 stores 3 bits of data, the storage device 1200 can store 32 GB of user data.
[0075] However, the present invention is not limited thereto. For example, the physical storage space PS of the storage device 1200 may be changed differently based on a scheme for implementing the storage device 1200 or the non-volatile memory device 1220 (e.g., based on a memory cell type (e.g., SLC, MLC, TLC, or QLC), the number of memory cells, a memory cell structure, an over-provisioning ratio, etc.).
[0076] Reference Figure 1 、 Figure 4A and Figure 4B According to an embodiment of the present inventive concept, the storage device 1200 may configure the physical storage space of the turbo write buffer TWB based on various modes. For example, the storage device 1200 may configure the physical storage space of the turbo write buffer based on one of a user capacity reduction mode and a non-user capacity reduction mode.
[0077] The user capacity reduction mode may indicate a mode for reducing the user capacity of the user memory USTa to configure the turbo write buffer TWBa. Figure 4A As shown, based on TLC, the physical storage space PS of the storage device 1200 may be 32 GB.
[0078] Before configuring the turbo write buffer TWB, 32 GB capacity (i.e., the entire capacity of the physical storage space PS) may be allocated to the user memory UST or may be used for the user memory UST. In this case, from the perspective of the host 1100, the user memory UST may be recognized as 32 GB in size.
[0079] The turbo write buffer TWB configuration may depend on the user capacity reduction mode. In this case, the second physical storage space PS2a may be allocated to the turbo write buffer TWBa or may be used for the turbo write buffer TWBa. The second physical storage space PS2a may be part of the physical storage space PS.
[0080] In addition, the first physical storage space PS1a, which is part of the physical storage space PS, can be allocated to the user memory USTa or used for the user memory USTa. In this case, compared with the case where the turbo write buffer TWBa is not configured, the capacity of the user memory USTa is reduced from the perspective of the host 1100 (i.e., from 32 GB to 24 GB).
[0081] In an exemplary embodiment, the first physical storage space PS1a corresponding to the user memory USTa may be implemented using TLC, and the second physical storage space PS2a corresponding to the turbo write buffer TWBa may be implemented using SLC. The ratio of the capacity when the same storage space is used as TLC and when used as SLC may be "3:1".
[0082] In other words, when the size of the turbo write buffer TWBa increases by 1 GB or less, the size of the logical storage space of the user memory USTa may be reduced by as much as 3 GB. As described above, in the case where the turbo write buffer TWBa is configured in the user capacity reduction mode, a portion of the physical storage space PS of the storage device 1200 may be allocated for the turbo write buffer TWBa. Therefore, the capacity of the user memory USTa recognized by the host 1100 may be reduced.
[0083] In exemplary embodiments, the first physical storage space PS1 a corresponding to the user storage USTa and the second physical storage space PS2 a corresponding to the turbo write buffer TWBa may be physically adjacent to each other or may be physically spaced apart from each other.
[0084] The non-user capacity reduction mode may refer to a mode in which the logical storage capacity of the user memory USTb recognized by the host 1100 is not reduced even if the turbo write buffer TWBb is configured. Figure 4B As shown, before the configuration of the turbo write buffer TWB, the user memory UST may have a capacity of 32 GB. For example, the physical storage space PS of the storage device 1200 may be allocated to the user memory UST or may be used for the user memory UST.
[0085] In the case where the turbo write buffer TWB is configured based on the non-user capacity reduction mode, the turbo write buffer TWB having a certain capacity (e.g., 2 GB) may be configured. The second physical storage space PS2b, which is part of the physical storage space PS, may be allocated to the turbo write buffer TWBb or may be used for the turbo write buffer TWBb.
[0086] Unlike the user capacity reduction mode, the user memory USTb in the non-user capacity reduction mode can maintain a capacity of 32 GB. For example, in the non-user capacity reduction mode, before configuring the turbo write buffer TWBb, the capacity of the user memory can be the same as that of the turbo write buffer TWBb. From the perspective of the host 1100, the capacity of the user memory UST can be recognized.
[0087] In an exemplary embodiment, in the non-user capacity reduction mode, the size or configuration of the turbo write buffer TWBb may vary based on an internal policy of the storage device 1200 or an explicit request of the host 1100. For example, when the second physical storage space PS2b, which is part of the physical storage space PS, is used to configure the turbo write buffer TWBb, the first physical storage space PS1b to be used for the user memory USTb may be smaller than the capacity of the user memory USTb.
[0088] For example, in a case where the first physical storage space PS1b is entirely used to store user data, or the available free capacity of the first physical storage space PS1b is equal to or less than a reference value, all or part of the second physical storage space PS2b used for the turbo write buffer TWBb can be returned to the user memory USTb.
[0089] In other words, in the case where it may be difficult to maintain the turbo write buffer TWBb in the physical storage space PS, the second physical storage space PS2b allocated for the turbo write buffer TWBb can be returned to the user memory USTb. Due to the lack of available space for the user memory USTb, it may be difficult to maintain the turbo write buffer TWBb. For example, the above-mentioned return operation can be performed through a user data cleanup operation and an operation to set the turbo write buffer size.
[0090] In an exemplary embodiment, the host 1100 may check the available size of the turbo write buffer TWB of the storage device 1200. For example, the storage device 1200 may set information about the size of the turbo write buffer TWB in a turbo write buffer size field (e.g., "dCurrentTurboWriteBufferSize") of ATTRIBUTES, and may set information about the ratio of the available capacity of the turbo write buffer TWB in an available turbo write buffer size field (e.g., "dAvailableTurboWriteBufferSize").
[0091] By checking the turbo write buffer size field and the available turbo write buffer size field of ATTRIBUTES, the host 1100 can check the available size of the turbo write buffer TWB. Based on the checked information, the host 1100 can use turbo write or return the physical storage space used for the turbo write buffer TWB to the user memory UST.
[0092] For another example, the storage device 1200 may automatically return the physical storage space used for the turbo write buffer TWB to the user memory UST. The host 1100 may check the changed status of the turbo write buffer TWB through the turbo write buffer size field.
[0093] In an exemplary embodiment, the memory device 1200 may provide information about the lifespan of the turbo write buffer TWB based on the number of P / E cycles of the physical storage space (or memory block) allocated for or used for the turbo write buffer TWB. For example, the memory device 1200 may set the information about the lifespan of the turbo write buffer TWB in the turbo write buffer lifespan estimate field (e.g., "dTurboWriteBufferLifespanEst") of ATTRIBUTES.
[0094] The host 1100 can estimate the lifespan of the turbo write buffer TWB by checking the turbo write buffer lifespan estimation field of the ATTRIBUTES of the storage device 1200 through a query request. In an exemplary embodiment, in the non-user capacity reduction mode, since the user memory UST and the turbo write buffer TWB share the physical storage space PS, in the case where a write operation is performed on the user memory UST, the lifespan of the turbo write buffer TWB may be shortened.
[0095] Figure 5 It shows Figure 1 Flowchart of the operation of the storage system 1000. Figure 5 The initialization operation of the storage system 1000 is described. Figure 1 、 Figure 2 and Figure 5 , in operation S11 , the host 1100 and the storage device 1200 may perform an operation such as a power-on reset operation, a hardware reset operation, or an endpoint reset operation.
[0096] Referring to operation S12, the host 1100 and the storage device 1200 may perform hardware reset and booting. For example, the hardware layer of each of the host 1100 and the storage device 1200 may be initialized and booted.
[0097] Referring to operation S13, the host 1100 and the storage device 1200 may initialize a layer (e.g., a UFS transport (UTP) layer). For example, the host 1100 may transmit a NOP OUT UPIU to the storage device 1200. The storage device 1200 may transmit a NOP IN UPIU to the host 1100 in response to the NOP OUT UPIU.
[0098] Referring to operation S14, the host 1100 may check the device descriptor from the storage device 1200. For example, the host 1100 may transmit a query request for reading the descriptor to the storage device 1200. The storage device 1200 may transmit the device descriptor to the host 1100 in response to the query request.
[0099] In an exemplary embodiment, the host 1100 may check the configuration and function of the storage device 1200 through a device descriptor. For example, the device descriptor may include an extended UFS function support field (e.g., "dExtendedUFSFeaturesSupport"), which includes information on whether the turbo write function is supported. In an exemplary embodiment, the information on whether the turbo write function is supported may be set as a bit (e.g., bit [8]) of the extended UFS function support field.
[0100] The device descriptor may further include a turbo write buffer non-user space reduction enable field (e.g., "bTurboWriteBufferNoUserSpaceReductionEn"), which includes information about the turbo write buffer mode. In the case where the value of the turbo write buffer non-user space reduction enable field is "00h", the turbo write buffer TWB may be based on the reference Figure 4A In the case where the value of the turbo write buffer non-user space reduction enable field is "01h", the user capacity reduction mode described in the user capacity reduction mode can be configured based on the reference Figure 4B The described non-user capacity reduction mode configures the turbo write buffer TWB.
[0101] The device descriptor may also include a turbo write buffer type field (e.g., "bTurbowriteBufferType"), which includes information about the turbo write buffer type. In the case where the value of the turbo write buffer type field is "00h", the device descriptor may be configured based on the reference Figure 3AThe LU dedicated buffer type described configures the turbo write buffer TWB. In the case where the value of the turbo write buffer type field is "01h", the turbo write buffer TWB can be configured based on the reference Figure 3B The shared buffer type described configures the turbo write buffer TWB.
[0102] The device descriptor may also include a shared turbo write buffer allocation number field (e.g., "dNumSharedTurboWriteBufferAllocUnits"), which includes information about the size of the turbo write buffer. In the case where the number of units allocated to the shared turbo write buffer is set to "0", a shared buffer type turbo write buffer may not be configured.
[0103] The above fields are exemplary, and the present invention is not limited thereto. In addition to the above fields, the device descriptor may further include other fields including information about the configuration, structure, function, etc. of the storage device 1200. Each field of the device descriptor may represent a value set before the initialization operation. The host 1100 may identify the status of the storage device 1200 by reading each field of the device descriptor.
[0104] In an exemplary embodiment, the above-mentioned fields of the device descriptor, such as "bTurboWriteBufferNoUserSpaceReductionEn," "bTurboWriteBufferType," and "dNumSharedTurboWriteBufferAllocUnits," can be changed by writing the values of the corresponding fields of the configuration descriptor. For example, by writing the values of the various fields of the configuration descriptor, the host 1100 can change the following information: such as the turbo write buffer type, the turbo write buffer non-user space reduction enable, and the number of units allocated to the turbo write buffer. In an exemplary embodiment, the geometry descriptor of the storage device 1200 can include the following information: such as the turbo write buffer maximum size field, the turbo write buffer maximum number field, the turbo write buffer capacity adjustment factor field, the supported turbo write buffer non-user space reduction types field, the supported turbo write buffer types field, etc.
[0105] For example, the turbo write buffer maximum size field (e.g., "dTurboWriteBufferMaxNAllocUnits") may include information about the maximum size of the turbo write buffer TWB supported at the storage device 1200. The turbo write buffer maximum number field (e.g., "bDeviceMaxTurboWriteLUs") may include information about the maximum number of turbo write buffers supported at the storage device 1200.
[0106] The turbo write buffer capacity adjustment factor field (e.g., "bTurboWriteBufferCapAdjFac") may include information on a capacity reduction factor according to the type of turbo write buffer memory. For example, in a case where the turbo write buffer TWB is implemented using SLC and the user memory UST is implemented using TLC, the value of the turbo write buffer capacity adjustment factor field may be "3." In a case where the turbo write buffer TWB is implemented using SLC and the user memory UST is implemented using MLC, the value of the turbo write buffer capacity adjustment factor field may be "2."
[0107] The supported turbo write buffer non-user space reduction types field (eg, “bSupportedTurboWriteBufferNoUserSpaceReductionTypes”) may include information about whether the storage device 1200 supports any turbo write buffer mode (eg, user space reduction mode, non-user space reduction mode, or both).
[0108] The supported turbo write buffer types field (eg, “bSupportedTurboWriteBufferTypes”) may include information on whether the storage device 1200 supports any turbo write buffer type (eg, LU-dedicated buffer type, shared buffer type, or both).
[0109] The above-mentioned fields are exemplary, and the present inventive concept is not limited thereto.
[0110] Referring to operation S15, the host 1100 may download the boot code from the storage device 1200. For example, the host 1100 may transmit a TEST UNIT READY UPIU to the storage device 1200. The storage device 1200 may transmit status information in response to the received TEST UNIT READY UPIU. The host 1100 may determine whether the boot logical unit (or boot well-known LU) of the storage device 1200 is accessible based on the received status information.
[0111] In the case where the boot logic unit is accessible, the host 1100 may transmit a SCSI READ command to the storage device 1200. In an exemplary embodiment, the SCSI READ command may correspond to the boot logic unit. The storage device 1200 may transmit data "DATA" and status information to the host 1100 in response to the received command.
[0112] Referring to operation S16, the host 1100 may complete the initialization operation by setting the FLAG of the storage device 1200. For example, the host 1100 may transmit a query request to the storage device 1200. The query request may be a request to set a device initialization field (e.g., "fDeviceInit") included in the FLAG of the storage device 1200. In response to the query request, a value (e.g., "01h") may be set for the device initialization field included in the FLAG of the storage device 1200. The storage device 1200 may then transmit a query response.
[0113] Referring to operation S17, the host 1100 may poll the device initialization field (e.g., "fDeviceInit") of the FLAG of the storage device 1200. For example, the host 1100 may transmit a query request for reading the device initialization field of the FLAG to the storage device 1200. In addition, the storage device 1200 may transmit a query response including the device initialization field to the host 1100.
[0114] In an exemplary embodiment, after operation S16, in the case where the initialization operation of the storage device 1200 is completed, the device initialization field may be reset to a different value (e.g., "00h"). For example, the host 1100 may repeatedly perform operation S17 to check whether the device initialization field is reset. In the case where the device initialization field is reset, the initialization operation of the host 1100 and the storage device 1200 may be completed.
[0115] Figure 6 It shows Figure 1 Flowchart of the operation of the storage system. Figure 6 The write operation of the storage system 1000 is described. Figure 1 and Figure 6 In operation S21 , the host 1100 may transmit a command UPIU (or a write command) including write information WR to the storage device 1200 .
[0116] Referring to operation S22, the host 1100 and the storage device 1200 may perform a data transaction. For example, the storage device 1200 may transmit a ready-to-transmit UPIU (RTT UPIU) to the host 1100. The RTT UPIU may include information about the data range in which the storage device 1200 can receive data. In response to the RTT UPIU, the host 1100 may transmit a DATAOUT UPIU including write data to the storage device 1200 including the write data. When performing the above operations, the write data may be transferred from the host 1100 to the storage device 1200.
[0117] After completely receiving all write data, referring to operation S23, the storage device 1200 may transmit a response UPIU to the host 1100. The response UPIU may include information indicating completion of an operation corresponding to the write command received in operation S21.
[0118] In an exemplary embodiment, the memory device 1200 may perform a normal write operation on the write data received in operation S22. For example, referring to operation S21, the memory device 1200 may determine whether the turbo write function is enabled. Specifically, the memory device 1200 may determine whether the turbo write function is enabled based on the value of the turbo write enable field (e.g., "fTurboWriteEn") of FLAG.
[0119] In the case where the value of the turbo write enable field is "0b", the turbo write function may be disabled. In the case where the value of the turbo write enable field is "1b", the turbo write function may be enabled. In an exemplary embodiment, the value of the turbo write enable field of FLAG may be set by a query request for setting FLAG to the host 1100.
[0120] The value of the turbo write enable field may not be set by the host 1100. In this case, the write data received in operation S22 may be written into the turbo write buffer TWB or the user memory UST according to a normal write policy.
[0121] Referring to operation S30, the host 1100 may set the value of the turbo write enable field to a certain value (e.g., "1b"). For example, the host 1100 may transmit a query request for setting the value of the turbo write enable field to a certain value (e.g., "1b") to the storage device 1200. The value of the turbo write enable field may be set to a certain value (e.g., "1b") in response to the query request from the host 1100, and the storage device 1200 may transmit a query response to the host 1100.
[0122] The host 1100 may then perform operations S31 to S33. Operations S31 to S33 may be similar to operations S21 to S23 except that turbo write is performed based on the turbo write enable field, and thus, additional description will be omitted to avoid redundancy.
[0123] In an exemplary embodiment, the write data received in operation S32 may be written to the turbo write buffer TWB. For example, referring to operation S30, by setting the value of the turbo write enable field to a certain value (e.g., "1b"), the turbo write function may be enabled. In this case, the write data received from the host 1100 may be written to the turbo write buffer TWB.
[0124] In an exemplary embodiment, in a case where the space of the turbo write buffer TWB is insufficient, when the turbo write function is enabled, the storage device 1200 may write the received write data into the user storage UST.
[0125] Figure 7 It shows Figure 1 Flowchart of the operation of the storage device 1200. Figure 7 Describe the cleaning operation of the storage device 1200. Figure 1 、 Figure 2 and Figure 7 In operation S41, the storage device 1200 may determine whether the state is an idle state, a sleep state, or an operating state. When the storage device 1200 is in the operating state, a separate cleaning operation may not be performed.
[0126] For example, when the storage device 1200 is processing a command received from the host 1100, the storage device 1200 may be in the running state. When a non-existent command (e.g., a pending command) is received and processed (or will be processed) from the host 1100, the storage device 1200 may be determined to be in the idle state. When the storage device 1200 enters a low power mode called "sleep" through initialization by the storage device 1200 or the host 1100, the storage device 1200 may be determined to be in the sleep state.
[0127] When the storage device 1200 is in an idle state, referring to operation S42, it can be determined whether the first flush operation is enabled. The host 1100 can enable or disable the first flush operation at the storage device 1200 by setting the turbo write buffer flush enable field (e.g., "fTurboWriteBufferFlushEn") of the FLAG of the storage device 1200. The storage device 1200 can determine whether the first flush operation is enabled by checking the value of the turbo write buffer flush enable field of the FLAG.
[0128] In an exemplary embodiment, the value of the turbo write buffer clean enable field of FLAG is "0b" which may indicate that the first clean operation is disabled or prohibited, and the value of the turbo write buffer clean enable field of FLAG is "1b" which may indicate that the first clean operation is enabled. In the case where the first clean operation is disabled, the storage device 1200 may not perform a separate clean operation.
[0129] In the case where the first scrub operation is enabled, referring to operation S43, the storage device 1200 may perform the first scrub operation during the idle state. The first scrub operation may refer to a scrub operation performed by the storage device 1200 in the idle state. The scrub operation may indicate an operation of scrubbing or migrating user data written in the turbo write buffer TWB to the user storage UST based on an internal policy or an explicit command from the host 1100.
[0130] In an exemplary embodiment, when user data written to the turbo write buffer TWB is flushed to the user memory UST, the logical address of the flushed user data may be maintained, and the physical address may be changed. In this case, the storage device 1200 may update the mapping information between the logical address and the physical address of the flushed user data. For example, the physical address may be changed from the address of the turbo write buffer TWB to the address of the user memory UST.
[0131] Referring to operation S44, when the determination result of operation S41 indicates that the storage device 1200 is in the hibernation state, the storage device 1200 may determine whether to enable the second flushing operation. As described above, for example, by setting the value of the turbo write buffer flushing enable field (e.g., "fTurboWriteBufferFlushDuringHibernat") during hibernation of FLAG, the host 1100 may enable or disable the second flushing operation of the storage device 1200.
[0132] The storage device 1200 can determine whether the second scrubbing operation is enabled by checking the value of the turbo write buffer scrubbing enable field during hibernation of the FLAG. In an exemplary embodiment, a value of "0b" in the turbo write buffer scrubbing enable field during hibernation of the FLAG can indicate that the second scrubbing operation is disabled or prohibited. A value of "1b" in the turbo write buffer scrubbing enable field during hibernation of the FLAG can indicate that the second scrubbing operation is enabled. In the case where the second scrubbing operation is disabled, the storage device 1200 may not perform a separate scrubbing operation.
[0133] In the case where the first scrubbing operation is enabled, referring to operation S45, the storage device 1200 may perform a second scrubbing operation during the hibernation state. The second scrubbing operation may indicate a scrubbing operation performed by the storage device 1200 in the hibernation state.
[0134] According to the above cleaning operation, the user data written in the turbo write buffer TWB can be cleaned or migrated to the user memory UST. In this way, the available buffer size of the turbo write buffer TWB can be ensured.
[0135] In an exemplary embodiment, the above scrubbing operations can be suspended under certain conditions. For example, the first scrubbing operation executed in the idle state can be executed when the command queue of storage device 1200 is empty. In the case where a command is issued from host 1100, storage device 1200 can suspend the execution of the first scrubbing operation while executing the first scrubbing operation. In addition, storage device 1200 can prioritize processing commands issued from host 1100. In an exemplary embodiment, in the case where sleep mode is terminated, the second scrubbing operation executed in the sleep state can be stopped.
[0136] As described above, the flushing operation being executed can be suspended based on certain conditions. In this case, the storage device 1200 can set the status of the flushing operation of the turbo write buffer flushing status field (e.g., "bTurboWriteBufferFlushStatus") of ATTRIBUTES to pause information (or processing level information) or set the status of the flushing operation.
[0137] In an exemplary embodiment, the storage device 1200 may set information regarding the use of a flushing operation for the turbo write buffer TWB as a value (e.g., bit [5]) of an exception event status (e.g., "dExceptionEventStatus") of ATTRIBUTES. The host 1100 may check the value (e.g., bit [5]) of the exception event status of the attribute, may determine that the flushing operation is used at the storage device 1200, and may set fields (e.g., "fTurboWriteBufferFlushEn" and "fTurboWriteBufferFlushDuringHibernate") of the FLAG of the storage device 1200 according to a certain policy.
[0138] Figure 8 It shows Figure 1 A block diagram of the physical storage space of the storage device 1200. Figure 1 and Figure 8, the physical storage space PS of the storage device 1200 may include a turbo write buffer TWB and a user memory UST. The physical storage space PS, turbo write buffer TWB, and user memory UST of the storage device 1200 are described above, and thus, additional description will be omitted to avoid redundancy.
[0139] The turbo write buffer TWB can be divided into a fixed turbo write buffer TWB-p and a non-fixed turbo write buffer TWB-np. As described above, when the turbo write function of the memory device 1200 is enabled, write data can be stored in one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np.
[0140] The write data may be stored in the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np.The write data may be determined by various schemes (eg, internal policy, change of internal policy according to a request of the host, and explicit request of the host).
[0141] In an exemplary embodiment, as described above, the size of the turbo write buffer TWB may be determined under the control of the host 1100 or based on the internal policy of the storage device 1200. In this case, the ratio of the fixed turbo write buffer TWB-p to the non-fixed turbo write buffer TWB-np in the turbo write buffer TWB may be determined or changed through various schemes (e.g., internal policy, change of internal policy according to a request of the host, and explicit request of the host).
[0142] In an exemplary embodiment, user data may be flushed, migrated, or moved between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user memory UST. For example, user data may be migrated or moved between the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np based on an explicit request from the host 1100, an internal policy of the storage device 1200, or a change in the internal policy based on a request from the host 1100.
[0143] Alternatively, user data may be migrated or moved between the non-fixed turbo write buffer TWB-np and the user memory UST based on an explicit request from the host 1100, an internal policy of the storage device 1200, or a change in the internal policy according to a request from the host 1100. Alternatively, user data may be migrated or moved between the fixed turbo write buffer TWB-p and the user memory UST based on an explicit request from the host 1100, an internal policy of the storage device 1200, or a change in the internal policy according to a request from the host 1100.
[0144] In an exemplary embodiment, as shown in FIG. Figure 7 As described above, the storage device 1200 may perform a scrubbing operation during an idle state or a dormant state. In this case, the storage device 1200 may perform a scrubbing operation on the non-fixed turbo write buffer TWB-np of the turbo write buffer TWB. For example, the storage device 1200 may scrub user data stored in the non-fixed turbo write buffer TWB-np of the turbo write buffer TWB to the user memory UST.
[0145] In this case, the user data written into the fixed turbo write buffer TWB-p may not be flushed to the user storage UST. For example, even if the storage device 1200 performs a flush operation, the user data written into the fixed turbo write buffer TWB-p may be maintained.
[0146] For another example, data to be stored in the non-fixed turbo write buffer TWB-np may be written to the fixed turbo write buffer TWB-p based on an internal policy of the storage device 1200. The abnormal data may be cleaned from the fixed turbo write buffer TWB-p to the user memory UST.
[0147] To clarify the present invention, the following description assumes that data to be stored in the fixed turbo write buffer TWB-p must be stored in the fixed turbo write buffer TWB-p as a rule. For example, the present invention will be described in addition to the above example of abnormal data. However, it should be understood that the present invention includes the above example of abnormal data.
[0148] Therefore, when the host 1100 issues a read command for writing the first user data in the fixed turbo write buffer TWB-p, the first user data can be read from the fixed turbo write buffer TWB-p. In this case, the first user data can be read at a high speed.
[0149] For example, as described above, the fixed turbo write buffer TWB-p can store user data based on the SLC scheme, and the user memory UST can store user data according to the TLC scheme. The time taken to read user data stored based on the SLC scheme is shorter than the time taken to read user data stored based on the TLC scheme.
[0150] For example, as user data is retained in the fixed turbo write buffer TWB-p, the speed of reading the user data can be increased. This function of the storage device 1200 can be called "turbo read".
[0151] Figure 9 is shown for reference Figure 8 FIG1 is a diagram of the logical storage space of the physical storage space PS of the storage device 1200. For the sake of simplicity, the description will be made with reference to a logical unit. Figure 9 However, the inventive concept may be applied to two or more logical units to which a turbo write buffer TWB is designated, or to a relationship between a logical unit and a shared turbo write buffer (eg, TWB0).
[0152] Reference Figure 1 and Figure 9 The logical storage space LS of the storage device 1200 recognized by the host 1100 may include a user memory UST and a turbo write buffer TWB. The turbo write buffer TWB may include a fixed turbo write buffer TWB-p and a non-fixed turbo write buffer TWB-np.
[0153] The first logical address range (e.g., LBA0 to LBAa, LBAb+1 to LBAc, and LBAe+1 to LBAn) may correspond to a logical storage space of the user storage UST. In this case, user data stored in the first logical address range (e.g., LBA0 to LBAa, LBAb+1 to LBAc, and LBAe+1 to LBAn) may be stored in a physical storage space of the user storage UST.
[0154] The second logical address range (e.g., LBAa+1 to LBAb and LBAd+1 to LBAe) may correspond to the logical storage space of the non-fixed turbo write buffer TWB-np. In this case, user data stored in the second logical address range (e.g., LBAa+1 to LBAb and LBAd+1 to LBAe) may be stored in the physical storage space of the non-fixed turbo write buffer TWB-np.
[0155] The third logical address range (e.g., LBAc+1 to LBad) may correspond to the logical storage space of the fixed turbo write buffer TWB-p. In this case, the user data stored in the third logical address range (e.g., LBAc+1 to LBad) may be stored in the physical storage space of the fixed turbo write buffer TWB-p.
[0156] As described above, the user memory UST, the non-fixed turbo write buffer TWB-np, and the fixed turbo write buffer TWB-p can be distributed in various forms on the logical storage space LS recognized by the host 1100. In an exemplary embodiment, user data can be moved, cleaned, or migrated between the user memory UST, the non-fixed turbo write buffer TWB-np, and the fixed turbo write buffer TWB-p. The movement of user data can be based on an explicit request from the host 1100 or an internal policy of the storage device 1200.
[0157] For example, the host 1100 may specify one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np in a turbo write. For another example, before a turbo write, the host 1100 may specify one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np as a turbo write target. For another example, the host 1100 may not specify either the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np in a turbo write.
[0158] By requesting (e.g., using a Query UPIU) information of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np from the storage device 1200, the host 1100 can periodically check the distribution status of data changed by the storage device 1200. For example, the periodic check of the distribution status of data changed by the storage device 1200 can be performed through a request that can be determined using a Query UPIU.
[0159] Figure 10A and Figure 10B is shown in reference Figure 8 FIG2 is a diagram illustrating operations in a physical storage space of a memory device. For simplicity of illustration and description, it is assumed that the fixed turbo write buffer TWB-p includes a first memory block BLK1. In addition, the non-fixed turbo write buffer TWB-np includes a second memory block BLK2, and the user memory UST may include a third memory block BLK3. However, the present invention is not limited thereto.
[0160] Reference Figure 1 、 Figure 8 and Figure 10A , the storage device 1200 may receive first data DT1 corresponding to the first logical address LBA1 from the host 1100. In an exemplary embodiment, the turbo write function of the storage device 1200 may be enabled. In this case, the storage device 1200 may write the received first data DT1 into a turbo write buffer TWB (e.g., a non-fixed turbo write buffer TWB-np).
[0161] For example, the memory device 1200 may perform turbo write on the first data DT1. In an exemplary embodiment, in a case where the turbo write function is enabled, it may be determined whether to store the data in any one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np.
[0162] In an exemplary embodiment, as Figure 10A As shown, the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np may be filled with data DTa, DTb, DT0, and DT1. In this case, the memory device 1200 may notify the host 1100 that the scrubbing operation is used by setting a bit (e.g., bit [5]) of the exception event status field (e.g., "wExceptionEventStatus") of ATTRIBUTES.
[0163] The host 1100 may check the abnormal event status field of ATTRIBUTES through a query request, and may check whether a cleaning operation is used at the storage device 1200. Figure 7 As described, the host 1100 may allow a scrubbing operation of the storage device 1200 by setting the turbo write buffer scrubbing enable field or the turbo write buffer scrubbing enable field during the hibernation period of the FLAG of the storage device 1200 .
[0164] When the scrubbing function is enabled (or enabled) under the control of the host 1100, the storage device 1200 may perform a scrubbing operation. For example, in an idle state or a sleep state, the storage device 1200 may scrub the data DT0 and DT1 stored in the non-fixed turbo write buffer TWB-np to the third memory block BLK3 of the user memory UST. In an exemplary embodiment, when the scrubbing operation is enabled under the control of the host 1100, the data DTa and DTb stored in the fixed turbo write buffer TWB-p may not be scrubbed to the user memory UST.
[0165] Then, the storage device 1200 may receive a read command for the first logical address LBA1 from the host 1100. In this case, the storage device 1200 may read the first data DT1 stored in the third memory block BLK3 of the user memory UST and may output the read first data DT1 to the host 1100.
[0166] In an exemplary embodiment, because the first data DT1 is written in the non-fixed turbo write buffer TWB-np (i.e., programmed by SLC), and the first data DT1 is cleaned to the user memory UST due to the clean operation, the first data DT1 can be read through a normal read operation (e.g., a TLC read operation).
[0167] Reference Figure 1 、 Figure 8 and Figure 10B , the 0th data DT0 and the first data DT1 may be stored in the second memory block BLK2 of the non-fixed turbo write buffer TWB-np. The ath data DTa may be stored in the third memory block BLK3 of the user memory UST.
[0168] Then, based on an explicit request of the host 1100 or an internal policy of the storage device 1200 , the ath data DTa of the user storage UST may be moved to the first memory block BLK1 of the fixed turbo write buffer TWB-p.
[0169] Then, the storage device 1200 may receive a read command for the a-th logical address LBAa corresponding to the a-th data DTa from the host 1100. In this case, the storage device 1200 may read the a-th data DTa stored in the first memory block BLK1 of the fixed turbo write buffer TWB-p and may transmit the read a-th data DTa to the host 1100.
[0170] In an exemplary embodiment, an operation of reading the ath data DTa stored in the first memory block BLK1 of the fixed turbo write buffer TWB-p may be faster than an operation of reading data stored in the third memory block BLK3 of the user memory UST. For example, by storing and saving data in the turbo write buffer TWB (or the fixed turbo write buffer TWB-p), the memory device 1200 according to an embodiment of the inventive concept may support a fast read operation (i.e., a turbo read operation) on the data.
[0171] In an exemplary embodiment, the storage device 1200 may notify the host 1100 of the remaining (or free) capacity of the turbo write buffer TWB in response to a request from the host 1100. The storage device 1200 may write information about the remaining free capacity of the turbo write buffer TWB into an available turbo write buffer size field (e.g., "dAvailableTurboWriteBufferSize") of ATTRIBUTES. The host 1100 may obtain the capacity information of the turbo write buffer TWB by reading the available turbo write buffer size field (e.g., by using a Query UPIU).
[0172] For example, the storage device 1200 may record the remaining capacity of the fixed turbo write buffer TWB-p and the remaining capacity of the non-fixed turbo write buffer TWB-np in the Available Turbo Write Buffer Size field. For another example, the storage device 1200 may record the entire remaining capacity of the turbo write buffer TWB in the Available Turbo Write Buffer Size field. Whether the storage device 1200 records the remaining capacity of the turbo write buffer TWB integrally or individually may be specified by a FLAG setting of the host 1100.
[0173] For example, the memory device 1200 may record a capacity smaller than the actual free capacity of the turbo write buffer TWB in the available turbo write buffer size field. In a nonvolatile memory device 1220 such as a flash memory, if the time between consecutive erase operations is less than a threshold time, data reliability may be reduced.
[0174] Because the capacity of the turbo write buffer TWB is smaller than that of the user memory UST and the turbo write buffer TWB is used in the SLC scheme, the turbo write buffer TWB can be filled with data faster than the user memory UST. In addition, in the case where the host 1100 prefers high-speed turbo write, the turbo write buffer TWB can be filled with data more quickly.
[0175] In the case where data is densely written into the turbo write buffer TWB, a series of operations are performed. These operations may include: performing a first erase operation on the turbo write buffer TWB, writing data into the turbo write buffer TWB, and clearing the data in the turbo write buffer TWB. In addition, performing a second erase operation on the turbo write buffer TWB and writing data into the turbo write buffer TWB again.
[0176] In this case, when the time between the first erase operation and the second erase operation is less than the threshold time, the reliability of the data written in the turbo write buffer TWB after the second erase operation may be reduced. To solve this problem, even if the memory block of the turbo write buffer TWB does not store valid data and is reusable after the erase operation, the storage device 1200 may record the capacity excluding the capacity of the memory block in the available turbo write buffer size field when the time elapsed after the erase operation of the memory block is less than the threshold time.
[0177] Figure 11 An example of a read operation that results in data movement is shown in the storage system 1000. Figure 1 、 Figure 8 and Figure 11 In operation S110, the host 1100 may transmit a command UPIU to the storage device 1200. The command UPIU may include read information RD (or a read command) and movement information MV.
[0178] The command UPIU may be defined as a read command by the read information RD. In addition, the command UPIU may be defined as a direct move operation by the move information MV. Referring to operation S120, the controller 1210 of the storage device 1200 may start reading data from the nonvolatile memory device 1220 in response to the command UPIU.
[0179] For example, the read information may include a logical address. The nonvolatile memory device 1220 may start reading data from a storage space indicated by the logical address (eg, a fixed turbo write buffer TWB-p, a non-fixed turbo write buffer TWB-np, or a user memory UST).
[0180] Referring to operation S130, the first portion of the data may be prepared. For example, the first portion of the data may be completely read out from the storage device 1200. Referring to operation S140, the storage device 1200 may then transmit the first portion of the data to the host 1100 via the DATA IN UPIU. While the storage device 1200 transmits the DATA IN UPIU, the data may be continuously read.
[0181] Referring to operation S150, the second portion of the data may be prepared. For example, the second portion of the data may be completely read out from the storage device 1200. Referring to operation S160, the storage device 1200 may then transmit the second portion of the data to the host 1100 via the DATA IN UPIU. While the storage device 1200 transmits the DATA IN UPIU, the data may be continuously read.
[0182] Referring to operation S170, the third portion of the data may be prepared. For example, the third portion of the data may be completely read out of the storage device 1200. With the third portion of the data completely read out, referring to operation S180, the storage device 1200 may complete the data read operation requested by the command UPIU.
[0183] Referring to operation S190, the storage device 1200 may then transmit the third portion of the data to the host 1100 through a DATA IN UPIU. Referring to operation S200, the storage device 1200 may complete the read operation by transmitting a response UPIU notifying the result of the read operation and the result of moving data to the host 1100.
[0184] Along with the operation of the memory device 1200 reading data in response to the read information RD and outputting the read data to the host 1100, the memory device 1200 may move the read data in response to the move information MV. For example, after starting to transmit DATA IN UPIU in operation S190, the controller 1210 may move the data in operation S210.
[0185] The controller 1210 may move the data to the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, or the user memory UST. For example, the controller 1210 may write the data read in operations S120 to S180 to the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, or the user memory UST, and may invalidate the original data. For example, if the data is moved to the same destination as its original location, the controller 1210 may skip the step of moving the data.
[0186] As described above, the turbo write buffer TWB can support a higher read speed than the user memory UST. By moving data to the turbo write buffer TWB via the movement information MV, the storage device 1200 can support a function of accelerating the read speed of data.
[0187] As described above, the fixed turbo write buffer TWB-p may not be subjected to a flush operation, and the non-fixed turbo write buffer TWB-np may be subjected to a flush operation. Therefore, by moving data to the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np via the move information MV, the storage device 1200 can provide an option of continuously or temporarily accelerating the read speed.
[0188] Furthermore, by moving data to the user memory UST via the migration information MV, the storage device 1200 can provide a function for moving cold data with low read frequency to the user memory UST while ensuring the capacity of the turbo write buffer TWB. For example, by supporting data movement via the migration information MV, the storage device 1200 can provide a wide range of selectivity for data read by the host 1100.
[0189] For example, the storage device 1200 may record whether the move operation is supported in the device descriptor. The storage device 1200 may notify the host 1100 whether the move operation is supported by transmitting the device descriptor to the host 1100. The host 1100 may set whether the storage device 1200 performs the move operation.
[0190] Reference Figure 11 An example is described in which a command UPIU including read information RD and movement information MV is processed. Figure 11 Unlike the example shown, the command UPIU may include the read information RD without the move information MV. When the command UPIU includes the read information RD, the storage device 1200 may perform a read operation without performing a move operation.
[0191] For example, when receiving the command UPIU including the read information RD, the storage device 1200 may perform a read operation, and when receiving the command UPIU including the read information RD and the move information MV, the storage device 1200 may perform a read operation accompanied by a move operation.
[0192] Figure 12 Shown Figure 11 The command UPIU CU is shown as an example. Figure 12 , the command UPIU CU may include a basic header BH, additional information AI describing the command, and a command descriptor block CDB.
[0193] The basic header BH may include a transaction type defined by the UFS protocol (e.g., "xx000001b"), FLAG, logical unit number (LUN), task tag, initiator ID (IID), command setting type, total EHS (Extra Header Segment) length, data segment length (e.g., "00h"), and expected data transfer length (e.g., "0000h").
[0194] The additional information AI may include a desired data transfer length.The command descriptor block CDB may include a read descriptor as read information RD, and may include a move descriptor as move information MV.
[0195] The read information RD may include a "READ(6)" command, a "READ(10)" command, or a "READ(16)" command defined by the UFS protocol. The READ(6) command may include an operation code (e.g., "08h"), a logical address, a transfer length, and a control (e.g., "00h").
[0196] The READ(10) command may include an opcode (e.g., “28h”), read protection (RDPROTECT) (e.g., “000b”), disable page output (DPO), force unit access (FUA), FUA_NV (e.g., “0b”), logical address, group number, transfer length, and control (e.g., “00h”).
[0197] The READ(16) command may include an opcode (e.g., "88h"), a read protection (e.g., "000b"), DPO, FUA, FUA_NV (e.g., "0b"), a logical address transfer length, a group number, and control (e.g., "00h"). The READ(6) command, the READ(10) command, or the READ(16) command may be modified or changed based on the UFS protocol.
[0198] The movement information MV may include a movement flag MF and a movement attribute MA when moving data. The movement flag MF may indicate the movement of the used data. The movement attribute MA may describe the method of moving the data. For example, the movement attribute MA may include at least one of the destination information DST, the force level information FL, and the activation mode information AM.
[0199] The storage device 1200 can move the data read by the read information RD based on the movement attribute MA. Each of the movement attributes MA will be described in more detail below. For example, the host 1100 can specify whether to use each of the destination information DST, the force level information FL, and the activation mode information AM as the movement attribute MA through settings.
[0200] In addition, the storage device 1200 may record whether each of the destination information DST, the force level information FL, and the activation mode information AM is supported as the mobility attribute MA in the device descriptor. By transmitting the device descriptor to the host 1100, the storage device 1200 may inform the host 1100 whether the corresponding mobility attribute MA is supported.
[0201] For example, as referenced Figure 11 As described above, the storage device 1200 may support the command UPIU using the read information RD instead of the move information MV. In this case, Figure 12The command UPIU is provided in a state where the movement information MV (shown as the movement descriptor MV) is removed.
[0202] Figure 13 An example of data stored in the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user memory UST is shown. Figure 1 、 Figure 12 and Figure 13 , the fixed turbo write buffer TWB of the physical storage space PS can store the first data D1 and the second data D2.
[0203] The non-fixed turbo write buffer TWB-np may store the third data D3. The user memory UST may store the fourth data D4 and the fifth data D5. The destination information DST may indicate a destination area of one of the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user memory UST.
[0204] For example, the host 1100 may read the third data D3 from the non-fixed turbo write buffer TWB-np using a command UPIU CU including read information RD. The command UPIU CU may also include move information MV, and the destination information DST of the move information MV may indicate the fixed turbo write buffer TWB-p as the destination area. In response to the move information MV included in the command UPIUCU, the storage device 1200 may move the third data D3 to the fixed turbo write buffer TWB-p.
[0205] According to the indication of the movement information MV, the storage device 1200 can move data from the fixed turbo write buffer TWB-p to the non-fixed turbo write buffer TWB-np, from the fixed turbo write buffer TWB-p to the user memory UST, from the non-fixed turbo write buffer TWB-np to the fixed turbo write buffer TWB-p, from the non-fixed turbo write buffer TWB-np to the user memory UST, from the user memory UST to the fixed turbo write buffer TWB-p, or from the user memory UST to the non-fixed turbo write buffer TWB-np.
[0206] As data is moved, the storage device 1200 can map the logical address of the target data to the physical address of the destination area. By maintaining the logical address of the target data, the storage device 1200 can move the data internally and support access to the host 1100 using the same logical address. Therefore, this data movement does not cause additional load on the host 1100.
[0207] For example, the destination information DST may be provided by using information of an area (e.g., a fixed turbo write buffer TWB-p, a non-fixed turbo write buffer TWB-np, or a user memory UST) instead of a logical address. The storage device 1200 can reduce the load on the host 1100 by internally moving data based on the information of the destination area.
[0208] The storage device 1200 may notify the host 1100 of whether the data belongs to any area based on a request (e.g., a query request) from the host 1100. For example, the storage device 1200 may automatically move the data to reduce the load on the host 1100. In addition, the storage device 1200 may allow the host 1100 to track the location of the data.
[0209] Figure 14 1 shows an example in which the storage device 1200 moves data based on the force level information FL. Figure 1 、 Figure 12 and Figure 14 In operation S310, the target data of the move operation (e.g., data read in response to the read information RD of the command UPIU) may be larger than the free space (or capacity) of the destination area. In this case, referring to operation S320, the storage device 1200 may check the force level information FL of the move attribute MA.
[0210] When the enforcement level is the first level, operation S330 is performed. Referring to operation S330, the storage device 1200 may move a portion of data as large as the free capacity of the destination area. The storage device 1200 may be prohibited from evicting data that may be stored in the destination area.
[0211] When the enforcement level is the second level, operation S340 is performed. Referring to operation S340, the storage device 1200 may be allowed to evict data stored in the destination area and may be allowed to move a portion of data targeted for movement and leave the remainder at the original location.
[0212] For example, the amount or ratio of data to be evicted, the amount or ratio of target data to be moved, and the amount or ratio of target data to be left can be determined based on the enforcement level policy. For example, the enforcement level information FL may also include information about the enforcement level policy. For another example, the enforcement level policy may be set or changed by a request from the host 1100 (e.g., a query request).
[0213] When the enforcement level is the third level, operation S350 is performed. Referring to operation S350, the storage device 1200 may evict data of the target area and may move the movement target data to the destination area.
[0214] As described above, based on the forcing level information FL, the storage device 1200 can move a portion of the move target data and can keep the remaining portion at the original location. The storage device 1200 can map the logical address of the thus moved portion of the data to the physical address of the destination area.
[0215] The storage device 1200 may invalidate the portion of the target data moved to the destination area, retain the remaining portion of the target data that is not moved and remains in the original location as valid data, and maintain the mapping between the logical address and the physical address of the remaining portion of the data.
[0216] As described above, based on the forcing level information FL, the storage device 1200 evicts data stored in the destination area. The evicted data may be moved to the user storage UST or the non-fixed turbo write buffer TWB-np based on a default setting. For another example, based on the forcing level policy, the forcing level information FL may include the location to which the data will be evicted.
[0217] For example, when the destination area is a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np, the Figure 14 For example, when the free space of the user storage UST is insufficient, the command may be rejected at the host 1100 or the storage device 1200 .
[0218] Figure 15 1 shows an example in which the storage device 1200 moves data based on the activation mode information AM. Figure 1 、 Figure 12 and Figure 15 , the activation mode information AM may indicate a time when the storage device 1200 moves data.
[0219] When the activation mode information AM indicates the first mode, the storage device 1200 may perform operations S410 to S425. Referring to operation S410, the storage device 1200 may receive a command UPIU including read information RD and move information MV from the host 1100.
[0220] Referring to operation S415, the storage device 1200 may transmit the read data to the host 1100 through the DATA INUPIU in response to the read information RD of the command UPIU. Referring to operation S420, the storage device 1200 may move the data in response to the move information MV of the command UPIU. Referring to operation S425, the storage device 1200 may transmit the response UPIU to the command UPIU.
[0221] For example, when the activation mode information AM indicates the first mode, the storage device 1200 may move data before transmitting the response UPIU to the host 1100. Alternatively, when the activation mode information AM indicates the first mode, the storage device 1200 may start moving data before transmitting the response UPIU to the host 1100. The storage device 1200 may transmit the response UPIU to the host 1100 while moving the data (or while moving the data).
[0222] When the activation mode information AM indicates the second mode, the storage device 1200 may perform operations S430 to S445. Referring to operation S430, the storage device 1200 may receive a command UPIU including read information RD and move information MV from the host 1100. Referring to operation S435, the storage device 1200 may transmit read data to the host 1100 through the DATA INUPIU in response to the read information RD of the command UPIU.
[0223] Referring to operation S440, the storage device 1200 may transmit the response UPIU to the command UPIU. Referring to operation S445, the storage device 1200 may move data in response to the movement information MV of the command UPIU. For example, when the activation mode information AM indicates the second mode, the storage device 1200 may move data after transmitting the response UPIU to the host 1100.
[0224] When the activation mode information AM indicates the third mode, the storage device 1200 may perform operations S450 to S470. Referring to operation S450, the storage device 1200 may receive a command UPIU including read information RD and move information MV from the host 1100.
[0225] Referring to operation S455, the storage device 1200 may transmit the read data to the host 1100 via the DATA INUPIU in response to the read information RD of the command UPIU. Referring to operation S460, the storage device 1200 may move the first portion of the data in response to the move information MV of the command UPIU. Referring to operation S465, the storage device 1200 may transmit the response UPIU to the command UPIU.
[0226] Referring to operation S470, the storage device 1200 may move the second portion of the data in response to the movement information MV of the command UPIU. For example, when the activation mode information AM indicates the third mode, the storage device 1200 may partially move the data before or after transmitting the response UPIU to the host 1100.
[0227] The active mode information AM may be determined in consideration of an operating speed of the memory device 1200 , a timeout period of a read operation between the host 1100 and the memory device 1200 , and the like.
[0228] Figure 16 Shown Figure 11 An example of a response to UPIU RU. Figure 1 and Figure 16 , the response UPIU may include at least one of a basic header BH, status information SI including a result of a read operation, and move result information MRI including a result of a move operation.
[0229] The move result information MRI may include first information I1 to sixth information I6. The first information I1 may indicate whether the move operation succeeded or failed. The second information I2 may indicate the ratio of data moved by the move operation (ie, the ratio of the move target data).
[0230] The third information I3 may include a bitmap indicating the location of the data after the move operation. The fourth information I4 may indicate all or part of the move target data that has been stored (i.e., a hit has occurred), or the move target data that has not been stored (i.e., a miss has occurred). The fifth information I5 may indicate the force level information FL applied to the move operation. The sixth information I6 may include the activation mode information AM applied to the move operation.
[0231] As reference Figure 15 As described in the second and third modes of the present invention, the data move operation may not be completed when the response UPIU RU is transmitted. In this case, the controller 1210 may include the expected result of the move operation in the response UPIU RU as the move result information MRI.
[0232] For example, the first information I1 may indicate an expected result rather than success or failure. The second information I2 and the third information I3 may include an expected result calculated (or determined) by the controller 1210 based on the movement attribute MA. The fourth information I4 may determine the time when the controller 1210 receives the logical address of the read information RD. The fifth information I5 and the sixth information I6 may be checked by the controller 1210 from the movement attribute MA.
[0233] After completing the move operation, the storage device 1200 may record at least one of the first information I1 to the sixth information I6 of the move result information MRI at the move feedback attribute. The storage device 1200 may transmit the move feedback attribute to the host 1100 in response to a request (e.g., a query request) from the host 1100.
[0234] Figure 17 and Figure 18 FIG2 shows an example in which the storage device 1200 performs a data move operation in conjunction with a query request UPIU QU and a command UPIU. Figure 17 and Figure 18 In operation S510, the storage device 1200 may receive a query request UPIU QU including movement information MV. The query request UPIU QU may include a group number GN as the movement information MV and a movement attribute MA.
[0235] Move properties can be used with reference Figure 12 The group number GN may be a number randomly assigned by the host 1100 to data during a data write operation to distinguish data with similar contexts.
[0236] In response to the query request UPIU QU, the storage device 1200 may set the movement attribute MA of the data corresponding to the group number GN. After the query request UPIU QU, referring to operation S520, the storage device 1200 may receive a command UPIU CU. The command UPIU CU may include a basic header BH, additional information AI, and a command descriptor block CDB.
[0237] The command descriptor block CDB may include a read descriptor as read information RD. The read information RD may include a group number GN. Based on the read information RD, referring to operation S530, the storage device 1200 may read data of a logical address included in the read information RD and may output the read data to the host 1100 through the DATA IN UPIU.
[0238] In the case where the movement attribute MA of the data corresponding to the received group number GN has been set, referring to operation S540, the storage device 1200 may move the data of the logical address included in the read information RD based on the movement attribute MA. Referring to operation S550, the storage device 1200 may transmit the response UPIU to the host 1100.
[0239] For example, the storage device 1200 may communicate other UPIUs with the host 1100 between operation S510 in which the query request UPIU QU is received and operation S520 in which the command UPIU CU is received. For example, after the storage device 1200 sets the move attribute MA, when there is no need to access the storage device 1200, the host 1100 may direct the move operation to the storage device 1200.
[0240] For example, the movement attribute MA for two or more group numbers may be set through two or more query request UPIUs. The storage device 1200 may compare the group number included in the read information RD of the command UPIU with each of the two or more group numbers for which the two or more movement attributes MA are set, and may selectively perform a movement operation based on the comparison result.
[0241] For example, as referenced Figure 16 As described above, the time of the data movement operation and the time of transmitting the response UPIU can be changed based on the activation mode information AM. In addition, the time of the data movement operation and the time of transmitting the response UPIU can be changed based on the activation mode information AM. Figure 16 A description is given to configure the response UPIU.
[0242] As a first scheme of moving data in response to a command UPIU including read information RD (or read command), as shown in FIG. Figure 12 As described, the storage device 1200 may receive the movement attribute MA included in the command UPIU. The movement attribute MA included in the command UPIU may be a single-use attribute and may trigger an immediate (or fast) movement operation.
[0243] As a second option, refer to Figure 18 As described above, the storage device 1200 may receive the move attribute MA included in the query request UPIU. The move attribute MA included in the query request UPIU may be applied to the data of the group number GN without triggering a move operation. The move attribute MA applied to the data of the group number GN may be applied to the move operation performed in response to the command UPIU including the read information RD having the same group number GN.
[0244] For example, after setting the mobility attribute MA for the data of the group number GN through the query request UPIU, the mobility attribute MA may be included in the mobility information MV of the command UPIU for a portion of the group numbers GN. In this case, the storage device 1200 may first apply the mobility attribute MA of the mobility information MV included in the command UPIU, or may determine that an error has occurred.
[0245] Figure 19 It shows Figure 1 FIG. 1 is a diagram of a hierarchical structure of a storage system 1000. Figure 19 , the storage system 1000 may include a host 1100 and a storage device 1200. The host 1100 may include an application AP-h, a file system FS-h, a device manager DM-h, a UFS application layer UAP-h, a UFS transport protocol layer UTP-h, and a UFS interconnect layer UIC-h.
[0246] Application AP-h may include various application programs, processes, etc. driven by the host 1100. The file system FS-h may be configured to organize and manage various data generated by the application AP-h. In an exemplary embodiment of the present inventive concept, the application AP-h or the file system FS-h may be configured to determine a logical block address range to specify a logical block address range for a specific area. Information about the determined logical block address range may be provided to a lower layer (e.g., the device manager DM-h or the UFS application layer UAP-h).
[0247] The UFS application layer UAP-h is configured to support various commands between the host 1100 and the storage device 1200. For example, the UFS application layer UAP-h may include an input / output (I / O) flow manager IOSM-h and a UFS command set UCS-h. The I / O flow manager IOSM-h is configured to manage requests from the application AP-h or the file system FS-h.
[0248] In an exemplary embodiment of the present inventive concept, the I / O flow manager (IOSM-h) may be configured to recognize specific values input / output from an application (AP-h) or a file system (FS-h). The I / O flow manager (IOSM-h) may be configured to manage the priority of requests from the application (AP-h) or the file system (FS-h), or to support various functions based on requests from the application (AP-h) or the file system (FS-h). In an exemplary embodiment of the present inventive concept, the I / O flow manager (IOSM-h) may be configured to support a turbo write function or a turbo read function.
[0249] In an exemplary embodiment of the present inventive concept, a specific application or process specified by the host 1100 or a user of the host 1100 may use turbo write or turbo read. The I / O stream manager IOSM-h may determine whether to perform turbo write or turbo read in response to a write request or read request made by the specific application or process with respect to the storage device 1200.
[0250] In addition, specific data managed by the file system FS-h can be turbo-written or turbo-read. The I / O stream manager IOSM-h can determine whether to perform turbo-write or turbo-read in response to a write request or a read request for specific data (e.g., metadata) to the storage device 1200.
[0251] In addition, the I / O stream manager IOSM-h can guide the movement of data written to the storage device 1200. The I / O stream manager IOSM-h can adjust the read speed of data written to the storage device 1200 by moving the data to the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, or the user memory UST.
[0252] In an exemplary embodiment of the present inventive concept, the I / O stream manager IOSM-h may determine an area (e.g., a fixed turbo write buffer TWB-p, a non-fixed turbo write buffer TWB-np, or a user memory UST) in which specific data is to be stored according to attributes of the specific data, and may provide information about the determination (e.g., area information ARI) to the UFS command set UCS-h.
[0253] In an exemplary embodiment of the present inventive concept, the I / O stream manager IOSM-h may determine a logical block address where specific data is to be stored based on attributes of the specific data and a predetermined logical block address range, and may provide information about the determined logical block address range to the UFS command set UCS-h.
[0254] The UFS command set UCS-h can support various command sets supported between the host 1100 and the storage device 1200. In an exemplary embodiment of the present inventive concept, the UFS command set UCS-h can include a UFS native command set and a UFS SCSI command set. The UFS command set UCS-h can configure commands to be transmitted to the storage device 1200 according to a request from the application AP-h or the file system FS-h.
[0255] In an exemplary embodiment of the inventive concept, the UFS command set UCS-h may be configured to receive various information (eg, logical block addresses, region information, logical block address ranges, or range region information) from the I / O stream manager IOSM-h and generate various commands.
[0256] The UFS application layer UAP-h may further include a task manager for processing commands for controlling a command queue.
[0257] The device manager DM-h may manage device-level operations and device-level configurations. In an exemplary embodiment of the present inventive concept, the device manager DM-h may manage query requests for setting or checking various information of the storage device 1200.
[0258] The UFS transport protocol layer UTP-h can provide services to the upper layer. The UFS transport protocol layer UTP-h can generate commands or information provided by the UFS application layer UAP-h or query requests provided by the device manager DM-h in the form of UPIU (UFS Protocol Information Unit) packets.
[0259] In an exemplary embodiment of the present inventive concept, the UFS transport protocol layer UTP-h and the device manager DM-h can communicate with each other through the UDM-SAP (UDM-Service Access Point). The UFS transport protocol layer UTP-h and the UFS application layer UAP-h can communicate with each other through UTP_CMD_SAP or UTP_TM_SAP.
[0260] The UFS interconnect layer UIC-h can manage the connection with the storage device 1200. In an exemplary embodiment of the present inventive concept, the UFS interconnect layer UIC-h can include a hardware configuration such as MIPI Unipro or MIPI M-PHY that is physically connected to the UFS interconnect layer UIC-d of the storage device 1200. In this way, the host 1100 and the storage device 1200 can establish a communication channel with each other. In an exemplary embodiment of the present inventive concept, the UFS interconnect layer UIC-h and the UFS transport protocol layer UTP-h can communicate through UIC-SAP, and the UFS interconnect layer UIC-h and the device manager DM-h can communicate through UIO-SAP.
[0261] The storage device 1200 may include a memory area manager MAM-d, a memory area performance manager MAPM-d, a device manager DM-d, a UFS application layer UAP-d, a UFS transport protocol layer UTP-d, and a UFS interconnect layer UIC-d. In an exemplary embodiment of the present inventive concept, the configuration of the UFS application layer UAP-d, the UFS transport protocol layer UTP-d, and the UFS interconnect layer UIC-d may be similar to the configuration of the UFS application layer UAP-h, the UFS transport protocol layer UTP-h, and the UFS interconnect layer UIC-h of the host 1100, and allows the corresponding layers to logically communicate with each other, and therefore, additional description will be omitted to avoid redundancy.
[0262] The memory area performance manager MAPM-d of the storage device 1200 can designate and manage an area in which write data received from the host 1100 will be stored. For example, as described above, according to an explicit request or an internal policy of the host 1100, the write data received from the host 1100 can be written in a space of at least one of the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user memory UST. The memory area performance manager MAPM-d can select a space in which the write data received from the host 1100 will be stored based on the various schemes described above, and can store the write data in the selected space.
[0263] As described above, according to an explicit request of the host 1100 or an internal policy, the memory area manager MAM-d of the storage device 1200 can control data movement / cleaning / migration between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np and the user memory UST.
[0264] The above hierarchical structure and functions of each of the host 1100 and the storage device 1200 are merely exemplary, and the inventive concept is not limited thereto.
[0265] Figure 20 1 is a block diagram illustrating in detail a memory system 1000 according to an exemplary embodiment of the present inventive concept. Figure 19 and Figure 20 , the storage system 1000 may include a host 1100 and a storage device 1200. The host 1100 and the storage device 1200 may be as described in Figures 1 to 19 Operate as described.
[0266] The host 1100 may include an application processor 1110 , a random access memory (RAM) 1120 , a modem 1130 , a device driver 1140 , a speaker 1150 , a display 1160 , a touch panel 1170 , a microphone 1180 , and an image sensor 1190 .
[0267] The application processor 1110 may execute the application AP-h and the file system FS-h. The application processor 1110 may use the RAM 1120 as a system memory. The application processor 1110 may communicate with an external device in a wired or wireless manner via the modem 1130. For example, the modem 1130 may be embedded in the application processor 1110.
[0268] The application processor 1110 may communicate with peripheral devices through the device driver 1140. For example, the application processor 1110 may communicate with the speaker 1150, the display 1160, the touch panel 1170, the microphone 1180, the image sensor 1190, and the storage device 1200 through the device driver 1140.
[0269] The device driver 1140 may include a device manager DM-h, a UFS application layer UAP-h, a UFS transport protocol layer UTP-h, and a UFS interconnect layer UIC-h. For example, the device driver 1140 may be embedded in the application processor 1110.
[0270] The speaker 1150 and the display 1160 may be user output interfaces for transmitting information to a user, and the touch panel 1170 , the microphone 1180 , and the image sensor 1190 may be user input interfaces for receiving information from a user.
[0271] In an exemplary embodiment of the present inventive concept, the storage device 1200 may be used as a large-capacity storage medium of the host 1100. The storage device 1200 may be an embedded-type UFS device or a memory card-type UFS device. The memory card-type UFS device may be inserted into or removed from a UFS slot included in the host 1100.
[0272] Figure 21 1 shows a diagram in which an exemplary embodiment of the present inventive concept is applied to a memory system 1000. Figure 20 and Figure 21 , the storage system 1000 may provide setting screens through the display 1160. One of the setting screens may provide information of the acceleration mode to the user.
[0273] The storage system 1000 may display a list of first to nth applications APP1 to APPn to which acceleration modes are applicable through the display 1160. In addition, the storage system 1000 may display a switch on the display 1160 that allows the user to adjust the acceleration modes of the first to nth applications APP1 to APPn.
[0274] In operation S610, the user may touch the activation position of the acceleration mode of the third application APP3. The storage system 1000 may sense the user's touch, in other words, sense the direction of activating the third application APP3 through the touch panel 1170. In operation S620, information about the third application APP3 or the process of the third application APP3 may be transmitted to the I / O stream manager IOSM-h.
[0275] Upon receiving the information of the third application APP3 or the process of the third application APP3, the I / O flow manager IOSM-h may retain the subsequent read movement operation of the selected third application APP3 or process in operation S630. For example, the I / O flow manager IOSM-h may set the movement attribute MA with respect to the data associated with the third application APP3 through the query request UPIU, and when a read operation associated with the third application APP3 is required, the movement flag may be included as the movement information MV in the command (CMD) UPIU.
[0276] As another example, when a read operation associated with the third application APP3 is required, the I / O stream manager IOSM-h may include a movement flag and a movement attribute MA as movement information MV in the CMD UPIU. For example, the I / O stream manager IOSM-h may specify a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np as the destination information DST of the movement attribute MA.
[0277] When data associated with the third application APP3 is moved to the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np, an operation of reading data associated with the third application APP3 is accelerated. Therefore, the performance of the third application APP3 can be accelerated.
[0278] For example, in a case where the acceleration mode of the third application APP3 is disabled, the I / O stream manager IOSM-h may retain subsequent read move operations of the third application APP3, such as move operations to the user memory UST or the non-fixed turbo write buffer TWB-np.
[0279] In the above embodiments, the present inventive concept is described with reference to the UFS protocol. However, the present inventive concept is not limited to the UFS protocol and can be applied to various protocols.
[0280] In the above embodiments, the components of the storage system 1000 are described using the terms "first," "second," "third," etc. However, the terms "first," "second," "third," etc. may be used to distinguish components from one another, rather than to limit the present inventive concept. For example, "first," "second," "third," etc. do not refer to any form of order or numerical meaning.
[0281] In the above embodiments, components according to the embodiments of the present invention are described using blocks. These blocks can be implemented using various hardware devices (such as integrated circuits, application specific ICs (ASICs), field programmable gate arrays (FPGAs), and complex programmable logic devices (CPLDs)), firmware driven in hardware devices, software (such as applications), or a combination of hardware devices and software. In addition, these blocks may include circuits implemented using semiconductor elements in integrated circuits or circuits registered as intellectual property (IP).
[0282] According to the present invention, a storage device provides a turbo write buffer that supports faster writes and reads than user memory. The storage device supports prioritizing writes to the turbo write buffer and supports moving data from the user memory to the turbo write buffer. Thus, a storage device with improved write and read speeds is provided.
[0283] While the present inventive concept has been described with reference to exemplary embodiments thereof, it will be apparent to those skilled in the art that various changes and modifications can be made thereto without departing from the spirit and scope of the present inventive concept as set forth in the appended claims.
Claims
1. A storage device comprising: a nonvolatile memory device comprising a first region, a second region, and a third region; as well as a controller configured to receive a write command and first data from an external host device, write the first data preferentially to the first area or the second area rather than the third area when the first data is associated with turbo write, and write the first data to the first area, the second area, or the third area based on a normal write policy when the first data is associated with normal write, The controller is further configured to receive a read command from the external host device, read second data from the first area, the second area, or the third area based on the read command, and output the second data to the external host device. wherein the controller is further configured to move the second data in response to the movement information of the read command when the read command is received together with the movement information, and The movement information includes information of a destination area to which the second data is to be moved among the first area, the second area, and the third area.
2. The storage device according to claim 1, wherein The controller is further configured to move a portion of the second data corresponding to the free capacity of the destination area when a free capacity of the destination area to which the second data is to be moved is smaller than a capacity of the second data.
3. The storage device according to claim 1, wherein The controller is configured to evict partial data of third data stored in a destination area to which the second data is to be moved, and to leave partial data of the second data instead of moving the partial data to the destination area when free capacity of the destination area to which the second data is to be moved is smaller than capacity of the second data. The storage device according to claim 1 , wherein: The controller is further configured to, when a free capacity of a destination area to which the second data is to be moved is smaller than a capacity of the second data, evict part of the third data stored in the destination area to ensure free capacity at the destination area corresponding to the capacity of the second data, and move the second data to the destination area. The storage device according to claim 1 , wherein: When the free capacity of the destination area to which the second data is to be moved is smaller than the capacity of the second data, the movement information further includes forcing level information including whether to evict partial data of the third data stored in the destination area or whether to leave partial data of the second data instead of moving the partial data. The storage device according to claim 1 , wherein: The controller is further configured to, when free capacity of a destination area to which the second data is to be moved is smaller than capacity of the second data, set, in response to a query request received from the external host device, whether to evict partial data of third data stored in the destination area or whether to leave partial data of the second data instead of moving the partial data.
7. The storage device according to claim 1, wherein The movement information includes activation mode information indicating a first time at which the controller enables movement of the second data and a second time at which the controller transmits a response corresponding to the read command to the external host device.
8. The storage device according to claim 1, wherein The controller is further configured to output the second data to the external host device to move the second data, and output a response corresponding to the read command to the external host device.
9. The storage device according to claim 1, wherein The controller is further configured to output the second data to the external host device, output a response corresponding to the read command to the external host device, and thereafter move the second data.
10. The storage device according to claim 1, wherein The controller is further configured to output the second data to the external host device, shift a portion of the second data, output a response corresponding to the read command to the external host device, and then shift the remaining data of the second data. The storage device according to claim 1 , wherein: The controller is further configured to output a response corresponding to the read command to the external host device, and The response includes: first information indicating whether the movement of the second data succeeded or failed; second information indicating a ratio of data of the movement of the second data; third information comprising a bitmap after the second data is shifted; fourth information indicating whether a hit or a miss occurs in the movement of the second data; fifth information indicating a force level used in moving the second data; and sixth information indicating an activation mode used in moving the second data.
12. The storage device according to claim 11, wherein The controller is further configured to record at least one of the first to sixth information at a movement feedback attribute, and transmit the movement feedback attribute to the external host device in response to a query request received from the external host device.
13. A storage device comprising: a nonvolatile memory device comprising a first region, a second region, and a third region; as well as a controller configured to receive a write command and first data from an external host device, write the first data preferentially to the first area or the second area rather than the third area when the first data is associated with turbo write, and write the first data to the first area, the second area, or the third area based on a normal write policy when the first data is associated with normal write, The controller is further configured to receive a query request including a first group number and movement information from the external host device, and set a movement attribute for data corresponding to the first group number based on the movement information. The controller is further configured to receive a read command including a logical address and a second group number after the query request, read second data corresponding to the logical address from the first area, the second area, or the third area, output the second data to the external host device, and when the second group number matches the first group number, move the second data based on the move attribute, and The movement information includes information of a destination area to which the second data is to be moved among the first area, the second area, and the third area. The storage device according to claim 13 , wherein: The write command includes a third group number assigned to the first data.
15. The storage device according to claim 13, wherein The controller is further configured to transmit a response including movement result information of the second data to the external host device in response to the read command.
16. The storage device according to claim 13, wherein: The movement information further includes at least one of the following information: When the free capacity of the destination area is smaller than the capacity of the second data, information on a plan for moving the second data; and Activation mode information indicates a first time at which the controller enables movement of the second data and a second time at which the controller transmits a response corresponding to the read command to the external host device.
17. A storage device comprising: a nonvolatile memory device comprising a first region, a second region, and a third region; as well as a controller configured to receive a write command and first data from an external host device, write the first data preferentially to the first area or the second area rather than the third area when the first data is associated with turbo write, and write the first data to the first area, the second area, or the third area based on a normal write policy when the first data is associated with normal write, The controller is further configured to receive a read command from an external host device, read second data from the first area, the second area, or the third area based on the read command, output the second data to the external host device, and move the second data to the first area, the second area, or the third area based on a move attribute in response to the read command, and The movement attribute includes information of a destination area to which the second data is to be moved among the first area, the second area, and the third area.
18. The storage device according to claim 17, wherein: The controller is further configured to set the movement attribute of the second data in response to a query request received prior to the read command, and to move the second data based on the movement attribute in response to the read command.
19. The storage device according to claim 17, wherein: The controller is further configured to move the second data based on the move attribute included in the read command.
Citation Information
Patent Citations
A Needle Heating Type of an Inhaling Device
KR1020190094034A
In-situ block folding for nonvolatile memory
US8886877B1
Hint selection of a cache policy
US9715455B1