Storage device and operation method thereof

By introducing a turbo write buffer and a user storage unit in the storage device, and using a controller to write data first to the turbo write buffer according to the policy, the problem of slow writing and reading speed of existing storage devices is solved, and higher performance is achieved.

CN112306905BActive Publication Date: 2025-05-02SAMSUNG ELECTRONICS CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202010547111.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-02
Filing Date
2020-06-16
Publication Date
2025-05-02
Estimated Expiration
2040-06-16

AI Technical Summary

Technical Problem

Existing storage devices are slow to perform write and read operations, making it difficult to meet high performance requirements.

Method used

By introducing a turbo write buffer and a user storage unit in the storage device, the controller prioritizes the writing speed to the turbo write buffer according to the policy provided by the host, and the data is migrated to the user storage unit if necessary.

Benefits of technology

The write speed and read speed of the storage device are significantly improved, the overall performance is improved, and data operations can be performed more quickly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112306905B_ABST
    Figure CN112306905B_ABST
Patent Text Reader

Abstract

A storage device and an operation method thereof are disclosed. The storage device includes: a nonvolatile memory device including a first area, a second area, and a third area; a controller receiving a write command and first data from a host device, preferentially writing the first data into the first area or the second area rather than into the third area when the first data is associated with turbo writing, and writing the first data into the first area, the second area, or the third area when the first data is associated with normal writing. The controller moves second data between the first area, the second area, and the third area based on a policy received from the host device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This patent application claims the priority benefit of Korean Patent Application No. 10-2019-0094428 filed on August 2, 2019 in the Korean Intellectual Property Office, the disclosure of which is hereby incorporated by reference in its entirety. Technical Field

[0002] Embodiments of the inventive concept disclosed herein relate to a semiconductor device, and more particularly, to a memory device capable of performing write and read operations faster by using a buffer and an operating method of the memory device. Background Art

[0003] Semiconductor memories can be classified into volatile memory devices and nonvolatile memory devices. Volatile memory devices lose data stored therein when power is turned off, and include static random access memory (SRAM) and dynamic random access memory (DRAM). Nonvolatile memory devices retain data stored therein even when power is turned off, and include flash memory devices, phase change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), or ferroelectric RAM (FRAM).

[0004] Flash memory devices are widely used in computing devices for storing large amounts of data. The Universal Flash Storage (UFS) interface defined by the JEDEC standard can support higher operating speeds than conventional flash-based storage devices. Summary of the invention

[0005] At least one embodiment of the inventive concept provides a storage device capable of accelerating a writing speed and a reading speed.

[0006] According to an exemplary embodiment, a storage device includes: a nonvolatile memory device including a first area, a second area, and a third area; a controller that receives a write command and first data from a host device, preferentially writes the first data into the first area or the second area rather than into the third area when the first data is associated with turbo writing, and writes the first data into the first area, the second area, or the third area when the first data is associated with normal writing. The controller moves second data between the first area, the second area, and the third area based on a policy received from the host device.

[0007] According to an exemplary embodiment, a storage device includes: a nonvolatile memory device including a turbo write buffer divided into a fixed area and a non-fixed area and a user storage section; and a controller that receives a write command and first data from a host device, preferentially writes the first data into the turbo write buffer rather than into the user storage section when the first data is associated with turbo write, and writes the first data into the turbo write buffer or the user storage section when the first data is associated with normal write. The controller selects a priority based on a policy provided from the host device and moves second data from the turbo write buffer to the user storage section based on the selected priority.

[0008] According to an exemplary embodiment, an operating method of a storage device having a first area, a second area, and a third area includes: receiving a policy associated with the first area and the second area from a host device; transmitting a message confirming receipt of the policy to the host device; when a turbo write function is enabled, preferentially writing write data to the first area or the second area based on the policy in response to a write command from the host device; and when the turbo write function is disabled, writing the write data to the third area in response to a write command from the host device. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The inventive concept will become more apparent by describing in detail exemplary embodiments of the inventive concept with reference to the accompanying drawings.

[0010] Figure 1 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept.

[0011] Figure 2 The present invention is an exemplary embodiment of the present invention. Figure 1 Schematic diagram of the physical storage space of a storage device in .

[0012] Figure 3A and Figure 3B Is used to describe Figure 2 A diagram of the turbo write buffer types.

[0013] Figure 4A and Figure 4B Is used to describe the configuration Figure 1 Schematic diagram of an exemplary mode of a turbo write buffer of a storage device in.

[0014] Figure 5 The present invention is an exemplary embodiment of the present invention. Figure 1 A flow chart of the operation of a storage system.

[0015] Figure 6 The present invention is an exemplary embodiment of the present invention. Figure 1 A flow chart of the operation of a storage system.

[0016] Figure 7 The present invention is an exemplary embodiment of the present invention. Figure 1 Flowchart of the operation of the storage device in FIG.

[0017] Figure 8 The present invention is an exemplary embodiment of the present invention. Figure 1 A block diagram of the physical storage space of a storage device in FIG.

[0018] Fig. 9 is shown for reference Figure 8 A diagram of the logical storage space of the physical storage space of a storage device is described.

[0019] Fig. 10A and Fig. 10B is a reference diagram showing an exemplary embodiment according to the inventive concept Figure 8 A diagram describing operations in the physical storage space of a storage device.

[0020] Fig.11 It is shown Figure 1 Illustration of the hierarchical structure of a storage system.

[0021] Fig.12 Show Fig.11 Example of a logical address map for a turbo write buffer managed by the memory region attribute manager.

[0022] Fig.13 An example of an operation of setting a policy associated with a turbo write buffer according to an exemplary embodiment of the inventive concept is illustrated.

[0023] Fig.14 An example is shown in which a storage device performs a flush operation according to a host command according to an exemplary embodiment of the inventive concept.

[0024] Fig.15 An example is shown in which a storage device performs a flush operation according to a host command according to an exemplary embodiment of the inventive concept.

[0025] Fig.16 An example is shown in which a storage device automatically performs a data move / flush / migration operation without external intervention according to an exemplary embodiment of the inventive concept.

[0026] Fig.17 An example in which a storage device selects priority data according to an exemplary embodiment of the inventive concept is illustrated.

[0027] Fig.18 is a block diagram illustrating in detail a memory system according to an exemplary embodiment of the inventive concept.

[0028] Fig.19 A conceptual diagram showing that an embodiment of the inventive concept is applied to a storage system. DETAILED DESCRIPTION

[0029] Below, embodiments of the inventive concept are described in detail and clearly to the extent that a person having ordinary skill in the art can implement the inventive concept.

[0030] The components described with reference to the terms "unit", "module" or "block" in the detailed description and the functional blocks shown in the drawings may be implemented by software, hardware or a combination thereof. In an embodiment, the software may be machine code, firmware, embedded code and application software. For example, the hardware may include an integrated circuit (IC), an application specific IC (ASIC), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), a microelectromechanical system (MEMS), a processor, a passive component or a combination thereof.

[0031] Figure 1 is a block diagram illustrating a storage system according to an exemplary 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 of the inventive concept, 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.

[0032] 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 from 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.

[0033] 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).

[0034] 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 nonvolatile memory device 1220. The controller 1210, also referred to as a memory controller, may operate in response to a command received from the host 1100. For example, the controller 1210 may receive a write command and write data from the host 1100, and may store the received write data in the nonvolatile memory device 1220 in response to the received write command.

[0035] Alternatively, the controller 1210 may receive a read command from the host 1100, and may read data stored in the nonvolatile memory device 1220 in response to the received read command. Thereafter, the controller 1210 may transmit the read data to the host 1100. In an exemplary embodiment of the inventive concept, the nonvolatile memory device 1220 may be a NAND flash memory device, but the inventive concept is not limited thereto.

[0036] In an exemplary embodiment of the inventive concept, the host 1100 may communicate with the storage device 1200 based on a universal flash memory (UFS) interface or protocol defined by a JEDEC (Joint Electronic Device Engineering Council) standard. For example, the host 1100 and the storage device 1200 may exchange packets in the form of a UFS protocol information unit (UPIU). 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 inventive concept is not limited thereto. Below, for ease of description, the terms "command", "UPIU" and data may be interchangeable, and the terms may have the same meaning or different meanings according to the embodiments disclosed herein.

[0037] In an exemplary embodiment of the inventive concept, the storage device 1200 may support a turbo (enhanced) write function or a turbo write feature. 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 a single-level (level) cell (SLC) buffering scheme, but is not limited thereto, and may provide improved performance (particularly, improved write performance) of the storage device 1200. The turbo write operation will be described more fully below with reference to the accompanying drawings.

[0038] Figure 2 It is shown Figure 11 is a diagram of a physical storage space PS of a storage device 1200 in FIG. The physical storage space PS of the storage device 1200 may indicate a physical area of ​​the nonvolatile memory device 1220 that actually stores user data. In other words, the physical storage space PS may be a space identified by the host 1100 as the capacity of the storage device 1200. The host 1100 and the storage device 1200 may be implemented in accordance with a UFS protocol proposed by JEDEC for the purpose of communicating with each other, but the inventive concept is not limited thereto.

[0039] In an exemplary embodiment of the inventive concept, the storage device 1200 may further include any other storage space (e.g., space not identified 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 overprovisioning area for improving performance) and Figure 2 However, for convenience of description, additional descriptions associated with other storage spaces will be omitted (or minimized), and the description will focus on the physical storage space PS storing user data.

[0040] Reference Figure 1 and Figure 2 , the physical storage space PS of the storage device 1200 may include a turbo write buffer area (TWB) (hereinafter referred to as a "turbo write buffer") and a user storage area (UST) (hereinafter referred to as a "user storage section"). The user storage section and the turbo write buffer may be referred to as a first area, a second area, a third area, etc.

[0041] 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 storage unit UST may correspond to the remaining portion (e.g., “b”) of the physical storage space PS of the nonvolatile memory device 1220. Alternatively, the user storage unit UST may correspond to the entire physical storage space PS of the nonvolatile memory device 1220 (e.g., a+b).

[0042] In an exemplary embodiment of the inventive concept, each memory cell corresponding to the turbo write buffer TWB may be an SLC, and each memory cell corresponding to the user storage unit UST may be a TLC. Alternatively, each memory cell corresponding to the turbo write buffer TWB may store n-bit (bit) data (n is a positive integer), and each memory cell corresponding to the user storage unit UST may store m-bit data (m is a positive integer greater than n). In other words, the turbo write buffer TWB may be an area that supports a higher write speed than the user storage unit UST.

[0043] The inventive concept is not limited to the above description about the turbo write buffer TWB and the user storage unit UST. For example, the number of bits (e.g., k) stored in each memory cell corresponding to the turbo write buffer TWB may be greater than or equal to the number of bits (e.g., i) stored in each memory cell corresponding to the user storage unit UST (i.e., k≥i). In an exemplary embodiment of the inventive concept, in the turbo write buffer TWB and the user storage unit UST, the number of bits to be stored in each memory cell may be determined by various factors of the storage device 1200, such as reliability and lifespan. Alternatively, the turbo write buffer TWB and the user storage unit UST may be divided by various factors such as the reliability and lifespan of the storage device 1200, and the number of bits to be stored per memory cell.

[0044] In an exemplary embodiment of the inventive concept, each of the reference symbols "a" and "b" may be the number of memory blocks in the corresponding storage space. The values ​​of "a" and "b" may be variously changed according to the sizes of the turbo write buffer TWB and the user storage unit UST and the scheme for implementing the turbo write buffer TWB and the user storage unit UST (e.g., SLC, multi-level cell (MLC), TLC, and quad-level cell (QLC)).

[0045] As reference Figure 1 As described, the storage device 1200 may support a normal write function and a turbo write function. When the turbo write function is enabled by the host 1100, the storage device 1200 may perform a turbo write operation. When the turbo write function is disabled by the host 1100, the storage device 1200 may perform a normal write operation.

[0046] For example, when the turbo write function is enabled, the storage device 1200 may preferentially write the write data received from the host 1100 into the turbo write buffer TWB. In this case, since the write data received from the host 1100 is written into the turbo write buffer TWB (e.g., SLC programming), a fast operation speed can be ensured compared to the case where a normal write operation (e.g., TLC programming) is performed on the user storage unit UST. When the turbo write function is disabled, the storage device 1200 may not first write the write data into the turbo write buffer TWB. According to an internally allocated policy (e.g., a normal write policy), the storage device 1200 may directly write the write data into the user storage unit UST or may write the write data into the turbo write buffer TWB. According to the normal write policy, how to write the write data may be determined based on various factors such as the data share of the turbo write buffer TWB and the state of the physical storage space PS.

[0047] As another example, the normal write strategy may first write the write data into the user storage unit UST. To explain the inventive concept more clearly, in the following detailed description, the normal write strategy is a strategy in which the write data is preferentially written into the user storage unit UST. However, the inventive concept is not limited thereto.

[0048] In an exemplary embodiment of the inventive concept, data to be written in the turbo write buffer TWB may be flushed or migrated to the user storage unit UST according to an explicit command from the host 1100 or an internally assigned policy.

[0049] Figure 3A and Figure 3B Is used to describe Figure 2 Figure 1 shows a turbo write buffer. Figure 1 , Figure 2 , Figure 3A and Figure 3B , the storage device 1200 may include a first logical unit LU1, a second logical unit LU2, a third logical unit LU3, and a fourth logical unit LU4. Each of the first logical unit LU1 to the fourth logical unit LU4 may be an externally addressable, independent processing entity that processes a command from the host 1100. 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.

[0050] 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. There may be various types of logical units for various purposes. However, the first to fourth logical units LU1 to LU4 may correspond to the physical storage space PS and may be used to store data of the host 1100.

[0051] Figure 3A and Figure 3B 1 to 4 logical units LU1 to LU4 are shown in the figure, but the inventive concept is not limited thereto. For example, the storage device 1200 may further include other logical units for storing and managing user data as well as the first to fourth logical units LU1 to LU4. Optionally, the storage device 1200 may further include other logical units for supporting various functions as well as the first to fourth logical units LU1 to LU4.

[0052] The turbo write buffer TWB of the storage device 1200 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.

[0053] In the case of the LU-specific buffer type, the turbo write buffer TWB may be configured independently or individually for each logical unit LU. Figure 3A As shown in , in the LU dedicated buffer type, a first turbo write buffer TWB1 may be configured for a first logical unit LU1 among the first to fourth logical units LU1 to LU4, and a third turbo write buffer TWB3 may be configured for a third logical unit LU3 among the first to fourth logical units LU1 to LU4.

[0054] exist Figure 3A In the LU dedicated buffer type, when a write command for the first logical unit LU1 is received after the turbo write function is enabled, the write data is preferentially written into the first turbo write buffer TWB1 corresponding to the first logical unit LU1. When a write command for the third logical unit LU3 is received after the turbo write function is enabled, the write data is preferentially written into the third turbo write buffer TWB3 corresponding to the third logical unit LU3.

[0055] 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 may be written into the user storage unit 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, according to the normal write strategy, the write data may be written into the user storage unit UST of the first logical unit LU1 or the first turbo write buffer TWB1, or the write data may be written into the user storage unit UST of the third logical unit LU3 or the third turbo write buffer TWB3.

[0056] In an exemplary embodiment of the inventive concept, the capacity of the first turbo write buffer TWB1 and the capacity of the third turbo write buffer TWB3 may be set independently of each other. However, the inventive concept 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. may be changed or modified differently.

[0057] In an exemplary embodiment of the inventive concept, the size of the turbo write buffer TWB used for each logical unit may be set to a turbo write buffer size field per unit (e.g., "dLUNumTurboWriteBufferAllocUnits") of a unit descriptor. In an exemplary embodiment of the inventive concept, the turbo write buffer size field per unit (e.g., "dLUNumTurboWriteBufferAllocUnits") may be a configurable parameter.

[0058] In the case of a shared buffer type, a turbo write buffer may be configured for all logical units. Figure 3B As shown in FIG. 1 , in the shared buffer type, one turbo write buffer TWB0 shared by all the first to fourth logical units LU1 to LU4 may be configured.

[0059] In this case, when a write command for each of the first to fourth logical units LU1 to LU4 is received after the turbo write function is enabled, the write data may be first written into the shared turbo write buffer TWB0. In the case where a write command for each of the first to fourth logical units LU1 to LU4 is received after the turbo write is disabled, the write data may be written into the user storage unit UST of each of the first to fourth logical units LU1 to LU4 or into the shared turbo write buffer TWB0 according to the normal write strategy.

[0060] As described above, 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), a turbo write buffer TWB may be configured for each of a plurality of logical units, or one turbo write buffer TWB may be configured to be shared by all logical units.

[0061] Figure 4A and Figure 4B Is used to describe the configuration Figure 1 1. In the following, for ease of description, it is assumed that the physical storage space PS of the storage device 1200 is 32 GB based on TLC. In other words, in the case where each memory cell included in the storage device 1200 stores 3 bits of data, the storage device 1200 can store 32 GB of user data.

[0062] However, the inventive concept is not limited thereto. For example, the physical storage space PS of the storage device 1200 may be changed differently according to a scheme for implementing the storage device 1200 or the nonvolatile memory device 1220 (e.g., according to 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.).

[0063] Reference Figure 1 , Figure 4A and Figure 4B , the storage device 1200 may configure the physical storage space of the turbo write buffer TWB according to 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 "no user capacity reduction" mode.

[0064] The user capacity reduction mode may be a mode in which the user capacity of the user storage section USTa is reduced for the purpose of configuring the turbo write buffer TWBa. Figure 4A As shown in , the physical storage space PS of the storage device 1200 may be 32 GB based on TLC.

[0065] Before the turbo write buffer TWB is configured, 32 GB of capacity (eg, the entire capacity of the physical storage space PS) may be allocated to or available for the user storage UST. In this case, the user storage UST may be identified as 32 GB from the perspective of the host 1100.

[0066] The turbo write buffer TWB may be configured according to the user capacity reduction mode. In this case, the second physical storage space PS2a which is a part of the physical storage space PS may be allocated to the turbo write buffer TWBa or may be used for the turbo write buffer TWBa.

[0067] In addition, the first physical storage space PS1a as part of the physical storage space PS can be allocated to the user storage unit USTa or can be used for the user storage unit USTa. In this case, compared with the case where the turbo write buffer TWBa is not configured, the capacity of the user storage unit USTa can be reduced from the perspective of the host 1100 (for example, from 32GB to 26GB).

[0068] In an exemplary embodiment of the inventive concept, the first physical storage space PS1a corresponding to the user storage part USTa can be implemented using TLC, and the second physical storage space PS2a corresponding to the turbo write buffer TWBa can be implemented using SLC. The capacity ratio when using the same storage space as TLC and SLC can be "3:1".

[0069] In other words, when the size of the turbo write buffer TWBa increases by up to 1 GB, the size of the logical storage space of the user storage part USTa can be reduced by up to 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 can be allocated for the turbo write buffer TWBa, and thus, the capacity of the user storage part USTa identified by the host 1100 can be reduced.

[0070] In an exemplary embodiment of the inventive concept, the first physical storage space PS1 a corresponding to the user storage part 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.

[0071] The non-user capacity reduction mode may be a mode in which the logical storage capacity of the user storage unit USTb identified by the host 1100 is not reduced even if the turbo write buffer TWBb is configured. Figure 4B As shown in , before configuration of the turbo write buffer TWB, the user storage unit UST may have a capacity of 32 GB. In other words, the physical storage space PS of the storage device 1200 may be allocated to the user storage unit UST or may be used for the user storage unit UST.

[0072] In the case of configuring the turbo write buffer TWB based on the no user capacity reduction mode, a turbo write buffer TWBb having a specific capacity (e.g., 2GB) may be configured. A second physical storage space PS2b as part of the physical storage space PS may be allocated to or used for the turbo write buffer TWBb.

[0073] Unlike the user capacity reduction mode, the user storage unit USTb in the non-user capacity reduction mode can maintain a capacity of 32 GB. In other words, in the non-user capacity reduction mode, even if the turbo write buffer TWBb is configured, the capacity of the user storage unit UST identified from the perspective of the host 1100 can be the same as the capacity before the turbo write buffer TWBb is configured.

[0074] In an exemplary embodiment of the inventive concept, in the non-user capacity reduction mode, the size or configuration of the turbo write buffer TWBb may be changed by an internal policy of the storage device 1200 or an explicit request from the host 1100. For example, because the second physical storage space PS2b as a part of the physical storage space PS is used to configure the turbo write buffer TWBb, the first physical storage space PS1b used for the user storage part USTb may be smaller than the capacity of the user storage part USTb.

[0075] In other words, when the entire first physical storage space PS1b is 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 may be returned to the user storage unit USTb.

[0076] In other words, in the physical storage space PS, in the case where the turbo write buffer TWBb cannot be maintained due to lack of available space for the user storage unit USTb, the second physical storage space PS2b allocated to the turbo write buffer TWBb can be returned to the user storage unit USTb. The above-mentioned return operation can be performed, for example, by a user data flushing operation and an operation of setting the turbo write buffer size.

[0077] In an exemplary embodiment of the inventive concept, the host 1100 may check the current available size of the turbo write buffer TWB of the storage device 1200. For example, the storage device 1200 may set information about the current size of the turbo write buffer TWB in the current turbo write buffer size field (e.g., "dCurrentTurboWriteBufferSzie") of the properties. In addition, the storage device 1200 may set information about the ratio of the current available capacity of the turbo write buffer TWB in the available turbo write buffer size field (e.g., "dAvailableTurboWriteBufferSize") of the properties.

[0078] The host 1100 can check the current available size of the turbo write buffer TWB by checking the current turbo write buffer size field and the available turbo write buffer size field of the attribute. Based on the checked information, the host 1100 can change the strategy of using turbo write or can return the physical storage space used for the turbo write buffer TWB to the user storage unit UST.

[0079] As another example, the storage device 1200 may autonomously return the physical storage space for the turbo write buffer TWB to the user storage unit UST. For example, the storage device 1200 may periodically compare the available space of the user storage unit UST with a reference value to determine whether the physical storage space for the turbo write buffer TWB needs to be returned to the user storage unit UST. When the storage device 1200 has returned the physical storage space for the turbo write buffer TWB to the user storage unit UST, the storage device 1200 may set a status flag to indicate that the turbo write buffer TWB is no longer available. The status flag may be stored in a register in the storage device 1200. The host 1100 may check the change status of the turbo write buffer TWB through the current turbo write buffer size field. When the physical storage space for the turbo write buffer TWB is returned to the user storage unit UST, the storage device 1200 may set the current turbo write buffer size field to 0.

[0080] In an exemplary embodiment of the inventive concept, the memory device 1200 may provide information about the life of the turbo write buffer TWB based on the number of program / erase (P / E) cycles of a 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 life of the turbo write buffer TWB in a turbo write buffer life estimation field (e.g., "dTurboWriteBufferLifeTimeEst") of the attribute.

[0081] The host 1100 may estimate the life of the turbo write buffer TWB by checking the turbo write buffer life estimation field of the property of the storage device 1200 via a query request. In an exemplary embodiment of the inventive concept, in the non-user capacity reduction mode, since the user storage unit UST and the turbo write buffer TWB share the physical storage space PS, the life of the turbo write buffer TWB may be shortened in the case where a write operation is performed on the user storage unit UST.

[0082] Figure 5 It is shown Figure 1 A flowchart of the operation of the storage system. Figure 5 Describe the initialization operation of the storage system 1000. 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 HW reset operation, or an endpoint reset operation.

[0083] In operation S12, the host 1100 and the storage device 1200 may perform hardware HW reset and booting. For example, a hardware layer of each of the host 1100 and the storage device 1200 may be initialized and booted.

[0084] In operation S13, the host 1100 and the storage device 1200 may perform initialization on a specific layer (eg, 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.

[0085] In 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 a query response including the device descriptor to the host 1100 in response to the query request. The query request may include a read descriptor. For example, the read descriptor may indicate to the storage device 1200 that the external device expects the device descriptor.

[0086] In an exemplary embodiment of the inventive concept, the host 1100 may check the configuration and function of the storage device 1200 through the device descriptor. For example, the device descriptor may include an extended UFS function support field (e.g., "dExtendedUFSFeaturesSupport") including information on whether the turbo write function is supported. In an exemplary embodiment of the inventive concept, the information on whether the turbo write function is supported may be set to a specific bit (e.g., bit [8]) of the extended UFS function support field.

[0087] The device descriptor may also include a turbo write buffer no 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 no user space reduction enable field is "00h", the turbo write buffer no user space reduction enable field may be used according to the reference Figure 4A In the case where the value of the turbo write buffer no user space reduction enable field is "01h", the turbo write buffer TWB can be configured according to the user space reduction mode described in the reference Figure 4B The described no user capacity reduction mode is used to configure the turbo write buffer TWB.

[0088] The device descriptor may further include a turbo write buffer type field (eg, "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 according to the reference Figure 4A The turbo write buffer TWB is configured by the LU dedicated buffer type described in the turbo write buffer type field. In the case where the value of the turbo write buffer type field is "01h", the turbo write buffer TWB can be configured according to the reference Figure 4B Describes the shared buffer type to configure the turbo write buffer TWB.

[0089] The device descriptor may also include a shared turbo write buffer allocation number field (e.g., "dNumSharedTurboWriteBufferAllocUnits") that 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.

[0090] The above fields are exemplary only, and the inventive concept is not limited thereto. For example, the device descriptor may further include other fields as well as the above fields, wherein the other fields include information about the configuration, structure, function, etc. of the storage device 1200. Each field of the device descriptor may indicate a value set before the initialization operation. The host 1100 may identify the current state of the storage device 1200 by reading each field of the device descriptor.

[0091] In an exemplary embodiment of the inventive concept, the above-mentioned fields of the device descriptor such as "bTurboWriteBufferNoUserSpaceReductionEn", "bTurboWriteBufferType", and "dNumSharedTurboWriteBufferAllocUnits" may be changed by writing the values ​​of the corresponding fields of the configuration descriptor. In other words, the host 1100 may change information such as the turbo write buffer type, turbo write buffer no user space reduction enable, and the number of units allocated to the turbo write buffer by writing the values ​​of the respective fields of the configuration descriptor. In an exemplary embodiment of the inventive concept, the geometry descriptor of the storage device 1200 may include information such as a turbo write buffer maximum size field, a turbo write buffer maximum number field, a turbo write buffer capacity adjustment factor field, a turbo write buffer no user capacity reduction type supported field, a turbo write buffer type supported field, and the like.

[0092] 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 by 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 by the storage device 1200.

[0093] The turbo write buffer capacity adjustment factor field (e.g., "bTurboWriteBufferCapAdjFac") may include information about a capacity reduction factor according to the type of turbo write buffer memory. For example, in the case where the turbo write buffer TWB is implemented using SLC and the user storage part UST is implemented using TLC, the value of the turbo write buffer capacity adjustment factor field may be "3". In the case where the turbo write buffer TWB is implemented using SLC and the user storage part UST is implemented using MLC, the value of the turbo write buffer capacity adjustment factor field may be "2".

[0094] The supported turbo write buffer no user space reduction types field (e.g., "bSupportedTurboWriteBufferNoUserSpaceReductionTypes") may include information about whether the storage device 1200 supports any turbo write buffer modes (e.g., user space reduction mode, no user space reduction mode, or both user space reduction mode and no user space reduction mode).

[0095] 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-specific buffer type, shared buffer type, or both LU-specific buffer type and shared buffer type).

[0096] The above-mentioned fields are merely exemplary, and the inventive concept is not limited thereto.

[0097] In 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 a boot logical unit (or boot well-known LU) of the storage device 1200 is accessible based on the received status information.

[0098] 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 of the inventive concept, 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.

[0099] In 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 for setting a device initialization field (e.g., "fDeviceInit") included in the flag of the storage device 1200. In response to the query request, the device initialization field included in the flag of the storage device 1200 may be set to a specific value (e.g., "01h"). Thereafter, the storage device 1200 may transmit a query response.

[0100] In 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 (SET_FLAG_fDeviceInit) for reading the device initialization field of the flag to the storage device 1200, and the storage device 1200 may transmit a query response to the host 1100, wherein the device initialization field is included in the query response.

[0101] In an exemplary embodiment of the inventive concept, 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"). In other words, 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.

[0102] Figure 6 It is shown Figure 1 A 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 CMD UPIU (Command UPIU) including a write command WR CMD to the storage device 1200 .

[0103] In 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 a data range in which the storage device 1200 can receive data. The host 1100 may transmit a DATA OUT UPIU including write data to the storage device 1200 in response to the RTT UPIU. When the above operation is repeatedly performed, the write data may be transmitted from the host 1100 to the storage device 1200.

[0104] After all write data are received, in operation S23, the storage device 1200 may transmit a RESPONSE UPIU to the host 1100. The RESPONSE UPIU may include information indicating that an operation corresponding to the write command received in operation S21 is completed.

[0105] In an exemplary embodiment of the inventive concept, the memory device 1200 may perform a normal write operation on the write data received in operation S22. For example, in operation S21, the memory device 1200 may determine whether the turbo write function is enabled. More specifically, the memory device 1200 may determine whether the turbo write function is enabled based on a value of a turbo write enable field (e.g., "fTurboWriteEn") of a flag.

[0106] In the case where the value of the turbo write enable field is "0b", the turbo write function may be in a disabled state. In the case where the value of the turbo write enable field is "1b", the turbo write function may be in an enabled state. In an exemplary embodiment of the inventive concept, the value of the turbo write enable field of the flag may be set by a query request to set the flag of the host 1100.

[0107] 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 in the turbo write buffer TWB or the user storage unit UST according to a normal write strategy.

[0108] In operation S30, the host 1100 may set the value of the turbo write enable field to a specific 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 specific value (e.g., “1b”) to the storage device 1200. The value of the turbo write enable field may be set to a specific 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.

[0109] Thereafter, the host 1100 may perform operations S31 to S33. Operations S31 to S33 may be similar to operations S21 to S23 except that turbo write is performed according to the turbo write enable field, and thus, additional description will be omitted to avoid redundancy.

[0110] In an exemplary embodiment of the inventive concept, the write data received in operation S32 may be written in a turbo write buffer TWB. For example, in operation S30, when the value of the turbo write enable field is set to a specific 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 in the turbo write buffer TWB. For example, in operation S31, according to a specific factor value of the command UPIU, the data received from the host 1100 may be stored in a pinned turbo write buffer TWB-p or a non-pinned turbo write buffer TWB-np. Reference will be made to Figure 8 How to configure the turbo write buffer divided into the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np is described more fully.

[0111] In an exemplary embodiment of the inventive concept, even if the turbo write function is enabled, in the case where the space of the turbo write buffer TWB is insufficient, the storage device 1200 may write the received write data into the user storage unit UST.

[0112] Figure 7 It is shown Figure 1 A flowchart of the operation of the storage device in FIG. Figure 7 The flushing operation of the storage device 1200 is described. Figure 1 , Figure 2 and Figure 7 In operation S41, the storage device 1200 may determine whether the current state is an idle state, a sleep state, or a runtime state. When the storage device 1200 is in the runtime state, a separate flushing operation may not be performed.

[0113] For example, when the storage device 1200 is processing a command received from the host 1100, the storage device 1200 may be in a runtime state. When there is no command (e.g., a pending command) received from the host 1100 and being processed or to be processed, the storage device 1200 may be in an idle state. When the storage device 1200 enters a low power mode called "sleep" by the storage device 1200 or the host 1100 being started, the storage device 1200 may enter a sleep state.

[0114] When the storage device 1200 is in an idle state, in operation S42, it may be determined whether a first flush operation is enabled. The host 1100 may allow or disable the first flush operation of the storage device 1200 by setting a value of a turbo write buffer flush enable field (e.g., "fTurboWriteBufferFlushEn") of a flag. The storage device 1200 may determine whether the first flush operation is enabled by checking the value of the turbo write buffer flush enable field of the flag.

[0115] In an exemplary embodiment of the inventive concept, when the value of the turbo write buffer flush enable field of the flag is "0b", the first flush operation may be disabled or prohibited. When the value of the turbo write buffer flush enable field of the flag is "1b", the first flush operation may be enabled. In the case where the first flush operation is disabled, the storage device 1200 may not perform a separate flush operation.

[0116] In the case where the first flush operation is enabled, the storage device 1200 may perform the first flush operation during the idle state in operation S43. The first flush operation may be a flush operation performed by the storage device 1200 in the idle state. The flush operation may indicate an operation of flushing or migrating user data written in the turbo write buffer TWB to the user storage unit UST according to an internal policy or an explicit command from the host 1100.

[0117] In an exemplary embodiment of the inventive concept, even if the user data written in the turbo write buffer TWB is flushed to the user storage unit 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 of 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 storage unit UST.

[0118] When the determination result of operation S41 indicates that the storage device 1200 is in the hibernation state, in operation S44, the storage device 1200 may determine whether to enable the second flush operation. As in the above description, for example, the host 1100 may enable or disable the second flush operation of the storage device 1200 by setting the value of the turbo write buffer flush enable field (e.g., "fTurboWriteBufferFlushDuringHibernat") during hibernation of the flag.

[0119] The storage device 1200 may determine whether to enable the second flush operation by checking the value of the turbo write buffer flush enable field during sleep of the flag. In an exemplary embodiment of the inventive concept, when the value of the turbo write buffer flush enable field during sleep of the flag is "0b", the second flush operation may be disabled or prohibited. When the value of the turbo write buffer flush enable field during sleep of the flag is "1b", the second flush operation may be enabled. In the case where the second flush operation is disabled, the storage device 1200 may not perform a separate flush operation.

[0120] In case the second flush operation is enabled, the memory device 1200 may perform the second flush operation during the sleep state in operation S45. The second flush operation may indicate a flush operation performed by the memory device 1200 in the sleep state.

[0121] According to the above flushing operation, the user data written in the turbo write buffer TWB can be flushed or migrated to the user storage unit UST. In this way, the available buffer size of the turbo write buffer TWB can be ensured.

[0122] In an exemplary embodiment of the inventive concept, the above flushing operation may be suspended under certain conditions. For example, the first flushing operation performed in the idle state may be performed only in a state where the command queue of the storage device 1200 is empty. While the first flushing operation is being performed, in the case where a command is issued from the host 1100, the storage device 1200 may suspend the execution of the first flushing operation and may first process the command issued from the host 1100. In an exemplary embodiment of the inventive concept, in the case where the sleep mode is terminated, the second flushing operation performed in the sleep state may be stopped.

[0123] As described above, the flush operation being executed may be suspended according to certain conditions. In this case, the storage device 1200 may set the suspension information (or processing degree information) or current status of the flush operation in the turbo write buffer flush status field (e.g., "bTurboWriteBufferFlushStatus") of the attribute.

[0124] In an exemplary embodiment of the inventive concept, the storage device 1200 may set information indicating that a flush operation is required for the turbo write buffer TWB as a specific value (e.g., bit [5]) of an exception event status of an attribute (e.g., “dExceptionEventStatus”). The host 1100 may check the specific value (e.g., bit [5]) of the exception event status of the attribute to determine that the storage device 1200 requires a flush operation, and may set specific fields (e.g., “fTurboWriteBufferFlushEn” and “fTurboWriteBufferFlushDuringHibernate”) of a flag of the storage device 1200 according to a policy.

[0125] Since the storage device 1200 performs a flush operation based on the value of the flush enable field (ie, the value of the turbo write buffer flush enable field or the value of the turbo write buffer flush enable field during hibernation), the reference Figure 7 A description is given, but the inventive concept is not limited thereto. In an exemplary embodiment, the storage device 1200 performs a flush or migration operation according to an internal policy regardless of the value of the flush enable field (i.e., the value of the turbo write buffer flush enable field or the value of the turbo write buffer flush enable field during hibernation). In this case, the storage device 1200 may perform a flush or migration operation according to a determination result automatically made by the storage device 1200 (without external intervention or according to its own determination).

[0126] Figure 8 It is shown Figure 1 A block diagram of the physical storage space of the storage device 1200 in FIG. Figure 1 , Figure 2 and Figure 8 , the physical storage space PS of the storage device 1200 may include a turbo write buffer TWB and a user storage unit UST. The physical storage space PS, turbo write buffer TWB, and user storage unit UST of the storage device 1200 are described above, and thus, additional description may be omitted to avoid redundancy.

[0127] The turbo write buffer TWB may be divided into a fixed turbo write buffer TWB-p and a non-fixed turbo write buffer TWB-np. As in the above description, when the turbo write function of the memory device 1200 is enabled, write data may be stored in one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np.

[0128] In an embodiment, data stored in the fixed turbo write buffer TWB-p is not targeted for movement (e.g., migration or flushing) to the user storage section UST, and data stored in the non-fixed turbo write buffer TWB-np may be targeted for movement to the user storage section UST. That is, the priority of data stored in the fixed turbo write buffer TWB-p may be higher than the priority of data stored in the non-fixed turbo write buffer TWB-np. However, the inventive concept is not limited thereto, because data stored in the fixed turbo write buffer TWB-p may be targeted for movement to the non-fixed turbo write buffer TWB-np or the user storage section UST according to resources or policies of the system. In an exemplary embodiment, a migration or flushing operation is periodically performed to move data from the turbo write buffer TWB to the user storage section UST. In this embodiment, before any data of the fixed turbo write buffer TWB-p is migrated or flushed to the user storage section UST, all data present in the non-fixed turbo write buffer TWB-np is first migrated or flushed to the user storage section UST. In another embodiment, during a given migration, first data in the non-fixed turbo write buffer TWB-np is migrated to the user storage part UST during a first period of migration, and second data in the fixed turbo write buffer TWB-p is migrated to the user storage part UST during a second period after the first period.

[0129] One of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np that will store 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).

[0130] In an exemplary embodiment of the inventive concept, as described above, the size of the turbo write buffer TWB may be determined under the control of the host 1100 or according to 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 by various schemes, such as the internal policy, the change of the internal policy according to the request of the host, and the explicit request of the host.

[0131] In an exemplary embodiment of the inventive concept, 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 storage unit UST. For example, according to an explicit request of the host 1100, an internal policy of the storage device 1200, or a change in the internal policy according to a request of the host 1100, the user data may be migrated or moved between the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np.

[0132] Alternatively, user data may be migrated or moved between the non-fixed turbo write buffer TWB-np and the user storage section UST according to an explicit request of the host 1100, an internal policy of the storage device 1200, or a change of the internal policy according to a request of the host 1100. For example, user data may be flushed from the non-fixed turbo write buffer TWB-np to the user storage section UST. Alternatively, user data may be migrated or moved between the fixed turbo write buffer WB-p and the user storage section UST according to an explicit request of the host 1100, an internal policy of the storage device 1200, or a change of the internal policy according to a request of the host 1100.

[0133] In an exemplary embodiment of the inventive concept, as shown in FIG. Figure 7 As described, the storage device 1200 may perform a flush operation during an idle state or a sleep state. In this case, the storage device 1200 may perform a flush operation on the non-fixed turbo write buffer TWB-np of the turbo write buffer TWB. In other words, the storage device 1200 may flush the user data stored in the non-fixed turbo write buffer TWB-np of the turbo write buffer TWB to the user storage unit UST.

[0134] In this case, the user data written in the fixed turbo write buffer TWB-p may not be flushed to the user storage unit UST. In other words, even if the storage device 1200 performs a flush operation, the user data written in the fixed turbo write buffer TWB-p may be maintained.

[0135] As 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 according to the internal policy of the storage device 1200. Such data may be flushed from the fixed turbo write buffer TWB-p to the user storage section UST. In other words, the data stored in the fixed turbo write buffer TWB-p may not be flushed by an explicit flush request from the host 1100, but may be selectively flushed to the user storage section UST according to the internal flush policy of the storage device 1200.

[0136] In an exemplary embodiment of the inventive concept, in the case where data is flushed, migrated, or moved between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user storage unit UST, the controller 1210 may be configured to update the mapping relationship of the moved data. For example, in the case where data corresponding to a first logical block address is flushed or migrated from the fixed turbo write buffer TWB-p to the user storage unit UST, the controller 1210 may release the mapping relationship between the first logical block address and the physical address of the fixed turbo write buffer TWB-p, and may update the mapping relationship between the first logical block address and the physical address of the user storage unit UST. The release or update of the mapping relationship may be performed in a similar scheme to the above-mentioned scheme for movement between other areas, and therefore, additional description will be omitted to avoid redundancy.

[0137] Hereinafter, in order to explain the inventive concept more clearly, a description will be given under the assumption that data to be stored in the fixed turbo write buffer TWB-p needs to be stored in the fixed turbo write buffer TWB-p. However, the inventive concept is not limited thereto.

[0138] Therefore, when the host 1100 issues a read command for the first user data written 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.

[0139] For example, as described above, the fixed turbo write buffer TWB-p may store user data based on the SLC scheme, and the user storage part UST may store user data in 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.

[0140] In other words, since the specific user data is retained in the fixed turbo write buffer TWB-p, the speed of reading the specific user data can be increased. This function of the storage device 1200 can be called "turbo read".

[0141] In an exemplary embodiment of the inventive concept, a physical storage space PS of the storage device 1200 may indicate a storage space of the nonvolatile memory device 1220. In other words, the nonvolatile memory device 1220 may include a fixed turbo write buffer TWB-p, a non-fixed turbo write buffer TWB-np, or a user storage unit UST.

[0142] Fig. 9 is shown for reference Figure 8 1200. For ease of description, the following description will be made with reference to a logical unit. Fig. 9 However, the inventive concept may be equally applied to two or more logical units corresponding to a turbo write buffer TWB or a relationship between a logical unit and a shared turbo write buffer (eg, TWB0).

[0143] Reference Figure 1 , Figure 2 and Fig. 9 , the logical storage space LS of the storage device 1200 identified by the host 1100 may include a user storage unit 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.

[0144] The first logical block address range (e.g., LBA0 to LBAa, LBAb+1 to LBAc, and LBAe+1 to LBAn) may correspond to the logical storage space of the user storage unit UST. In this case, user data stored in the first logical block address range (e.g., LBA0 to LBAa, LBAb+1 to LBAc, and LBAe+1 to LBAn) may be stored in the physical storage space of the user storage unit UST.

[0145] The second logical block 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 block 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.

[0146] The third logical block 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, user data stored in the third logical block address range (e.g., LBAc+1 to LBAd) may be stored in the physical storage space of the fixed turbo write buffer TWB-p.

[0147] As described above, the user storage unit UST, the non-fixed turbo write buffer TWB-np, and the fixed turbo write buffer TWB-p may be distributed in various forms on the logical storage space LS identified by the host 1100. However, the inventive concept is not limited thereto, and the third logical block address range may correspond to the logical storage space of the non-fixed turbo write buffer TWB-np, and the second logical block address range may correspond to the logical storage space of the fixed turbo write buffer TWB-p. In an exemplary embodiment of the inventive concept, according to an explicit request of the host 1100 or an internal policy of the storage device 1200, user data may be moved / flushed / migrated between the user storage unit UST, the non-fixed turbo write buffer TWB-np, and the fixed turbo write buffer TWB-p.

[0148] 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 at the time of turbo write. As another example, the host 1100 may specify one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np as the turbo write target before turbo write. As another example, the host 1100 may not specify the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np at the time of turbo write.

[0149] The host 1100 may check the distribution status of data changed by the storage device 1200 by requesting (eg, using 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 periodically or when necessary.

[0150] Fig. 10A and Fig. 10B It shows reference Figure 8 Schematic diagram of operations in a physical storage space of a storage device described. For simplicity of illustration and convenience of description, it is assumed that a fixed turbo write buffer TWB-p includes a first memory block BLK1, a non-fixed turbo write buffer TWB-np includes a second memory block BLK2, and a user storage unit UST may include a third memory block BLK3. However, the inventive concept is not limited thereto.

[0151] Reference Figure 1 , Figure 8 and Fig. 10A, the storage device 1200 may receive the first data DT1 corresponding to the first logical block address LBA1 from the host 1100. In an exemplary embodiment of the inventive concept, the turbo write function of the storage device 1200 is in an enabled state. 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).

[0152] In other words, the memory device 1200 may perform turbo write on the first data DT1. In an exemplary embodiment of the inventive concept, when the turbo write function is enabled, whether to store data in any one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np may be determined through various schemes.

[0153] In an exemplary embodiment of the inventive concept, Fig. 10A As shown in , the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np may be filled with user data DTa, DTb, DT0, and DT1. In this case, the storage device 1200 may notify the host 1100 that a flush operation is required by setting a specific bit (e.g., bit [5]) of the exception event status field (e.g., "wExceptionEventStatus") of the attribute.

[0154] The host 1100 can check the abnormal event status field of the attribute through the query request, and can check whether the storage device 1200 needs a flush operation. The host 1100 can set Figure 7 The turbo write buffer flush enable field of the flag of the described memory device 1200 or the turbo write buffer flush enable field during hibernation is used to allow the flush operation of the memory device 1200 .

[0155] When the flush function is allowed (or enabled) under the control of the host 1100, the storage device 1200 may perform a flush operation. For example, in an idle state or a sleep state, the storage device 1200 may flush the user data DT0 and DT1 stored in the non-fixed turbo write buffer TWB-np to the third memory block BLK3 of the user storage unit UST. In an exemplary embodiment of the inventive concept, even if the flush operation is allowed under the control of the host 1100, the user data DTa and DTb stored in the fixed turbo write buffer TWB-p may not be flushed to the user storage unit UST. In other words, while the user data DT0 and DT1 stored in the non-fixed turbo write buffer TWB-np are flushed, the user data DTa and DTb stored in the fixed turbo write buffer TWB-p are maintained.

[0156] Then, the memory device 1200 may receive a read command for the first logical address LBA1 from the host 1100 . In this case, the memory device 1200 may read the first data DT1 stored in the third memory block BLK3 of the user storage unit UST and may output the read first data DT1 to the host 1100 .

[0157] In an exemplary embodiment of the inventive concept, since the first data DT1 is written (e.g., programmed by SLC) in the non-fixed turbo write buffer TWB-np, but the first data DT1 is flushed to the user storage unit UST due to the flush operation, the first data DT1 can be read by a normal read operation (e.g., a TLC read operation). In other words, the first data DT1 can be programmed by SLC but not read by TLC.

[0158] Reference Figure 1 , Figure 8 and Fig. 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, and the ath data DTa may be stored in the third memory block BLK3 of the user storage unit UST.

[0159] Then, according to an explicit request of the host 1100 or an internal policy of the storage device 1200, the ath data DTa of the user storage unit UST may be moved to the first memory block BLK1 of the fixed turbo write buffer TWB-p. For example, the storage device 1200 may read the ath data DTa from the third memory block BLK3 of the user storage unit UST, and may store the read ath data DTa in the first memory block BLK1 of the fixed turbo write buffer TWB-p. Then, the ath data DTa stored in the third memory block BLK3 of the user storage unit UST may be invalidated, deleted, or unmapped. In an exemplary embodiment of the inventive concept, even if the ath data DTa is invalidated, deleted, or unmapped, the ath logical block address LBAa corresponding to the ath data DTa may remain mapped with the first memory block BLK1 of the fixed turbo write buffer TWB-p.

[0160] Then, the storage device 1200 may receive a read command for the ath logical block address LBAa corresponding to the ath data DTa from the host 1100. In this case, the storage device 1200 may read the ath data DTa stored in the first memory block BLK1 of the fixed turbo write buffer TWB-p and may transmit the read ath data DTa to the host 1100.

[0161] In an exemplary embodiment of the inventive concept, 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 storage unit UST. In other words, the storage device 1200 according to an exemplary embodiment of the inventive concept may support a fast read operation (e.g., a turbo read operation) for specific data by storing and retaining the specific data in the turbo write buffer TWB (or the fixed turbo write buffer TWB-p).

[0162] In an exemplary embodiment of the inventive concept, in response to a request from the host 1100, the storage device 1200 may notify the host 1100 of the remaining (or free) capacity of the turbo write buffer TWB. 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 the attribute. 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., through Query UPIU).

[0163] For example, the storage device 1200 may separately 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. As another example, the storage device 1200 may record the sum of the 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 as a whole or separately may be specified by the flag setting of the host 1100.

[0164] For example, the storage 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.

[0165] Because the capacity of the turbo write buffer TWB is smaller than that of the user storage unit 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 storage unit 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 faster.

[0166] In the case where data is written intensively into the turbo write buffer TWB, the following series of operations are performed during a short time window: a first erase operation is performed on the turbo write buffer TWB, data is written into the turbo write buffer TWB, data in the turbo write buffer TWB is flushed, a second erase operation is performed on the turbo write buffer TWB, and data is written into the turbo write buffer TWB.

[0167] 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. In order to increase reliability, even if a specific memory block of the turbo write buffer TWB does not store valid data and can be reused after the erase operation, when the time elapsed after the previous erase operation of the specific memory block is less than the threshold time, the storage device 1200 may record the capacity excluding the capacity of the specific memory block in the available turbo write buffer size field.

[0168] Fig.11 It is shown Figure 1 A diagram showing the hierarchical structure of a storage system. Fig.11 , 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.

[0169] The application AP-h may include various application programs, processes, etc. driven at 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 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., a device manager DM-h or a UFS application layer UAP-h).

[0170] The file system FS-h may be configured to organize and manage various data (files) generated by the application AP-h. The file system FS-h may generate a logical address corresponding to an access request (e.g., a write request, a read request, etc.) to the storage device 1200. In an embodiment, the file system FS-h may include a file allocation table (FAT), FAT32, NT file system (NTFS), hierarchical file system (HFS), journal file system 2 (JSF2), XFS, on-disk structure-5 (ODS-5), UDF, ZFS, Unix file system (UFS), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, WinFS, etc.

[0171] 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) stream manager IOSM-h and a UFS command set UCS-h. The I / O stream manager IOSM-h is configured to manage requests from an application AP-h or a file system FS-h.

[0172] In an exemplary embodiment of the inventive concept, the I / O stream manager IOSM-h may be configured to identify a specific value of input / output from an application AP-h or a file system FS-h. The I / O stream manager IOSM-h may be configured to manage the priority of a request from an application AP-h or a file system FS-h or to support various functions according to a request from an application AP-h or a file system FS-h. In an exemplary embodiment of the inventive concept, the I / O stream manager IOSM-h may be configured to support a turbo write function or a turbo read function.

[0173] In an exemplary embodiment of the 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 a read request made by the specific application or process with respect to the storage device 1200.

[0174] In addition, specific data managed by the file system FS-h can use turbo writing or turbo reading. The I / O stream manager IOSM-h can determine whether to perform turbo writing or turbo reading in response to a write request or a read request for specific data (e.g., metadata) for the storage device 1200.

[0175] In addition, the I / O stream manager IOSM-h may direct the movement of data written in the storage device 1200. The I / O stream manager IOSM-h may adjust the read speed of data written in 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 storage unit UST.

[0176] In an exemplary embodiment of the inventive concept, the I / O flow 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 storage unit UST) in which specific data will 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.

[0177] In an exemplary embodiment of the inventive concept, the I / O stream manager IOSM-h may determine a logical block address where specific data will 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.

[0178] The UFS command set UCS-h may support various command sets supported between the host 1100 and the storage device 1200. In an exemplary embodiment of the inventive concept, the UFS command set UCS-h may include a UFS native command set and a UFS SCSI command set. The UFS command set UCS-h may configure a command to be transmitted to the storage device 1200 according to a request from an application AP-h or a file system FS-h.

[0179] In an exemplary embodiment of the inventive concept, the UFS command set UCS-h may be configured to receive various information (eg, logical block address, region information, logical block address range, or range region information) from the I / O stream manager IOSM-h and generate various commands.

[0180] The UFS application layer UAP-h may further include a task manager that processes commands to control a command queue.

[0181] The device manager DM-h may manage device-level operations and device-level configurations. In an exemplary embodiment of the inventive concept, the device manager DM-h may manage a query request for setting or checking various information of the storage device 1200.

[0182] The UFS transport protocol layer UTP-h can provide services for the upper layer. The UFS transport protocol layer UTP-h can generate a command or information provided from the UFS application layer UAP-h, or a query request provided from the device manager DM-h in the form of a UPIU (UFS Protocol Information Unit) packet.

[0183] In an exemplary embodiment of the inventive concept, the UFS transport protocol layer UTP-h and the device manager DM-h can communicate with each other through 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.

[0184] The UFS interconnect layer UIC-h may manage the connection with the storage device 1200. In an exemplary embodiment of the inventive concept, the UFS interconnect layer UIC-h may 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 may establish a communication channel with each other. In an exemplary embodiment of the inventive concept, the UFS interconnect layer UIC-h and the UFS transport protocol layer UTP-h may communicate through UIC-SAP, and the UFS interconnect layer UIC-h and the device manager DM-h may communicate through UIO-SAP.

[0185] Although not shown in the drawings, the host 1100 may further include a device driver. The device driver may control devices and / or layers included in the host 1100. The device driver may convert a request (e.g., a write request, a read request, etc.) for the storage device 1200 generated by the file system FS-h into a command that can be recognized by the storage device 1200. For example, the file system FS-h and the device driver may be included in the operating system OS, and the application layer AP-h may be installed in the OS. The device driver may control communication with the storage device 1200 while managing hardware resources.

[0186] The storage device 1200 may include a memory area manager MAM-d, a memory area attribute 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 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 the corresponding layers are allowed to logically communicate with each other, so additional description will be omitted to avoid redundancy.

[0187] The memory area attribute manager MAPM-d of the storage device 1200 may specify and manage an area where write data received from the host 1100 will be stored. For example, as described above, the write data received from the host 1100 may be written to 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 storage unit UST according to an explicit request or an internal policy of the host 1100. The memory area attribute manager MAPM-d may select a space where write data received from the host 1100 will be stored based on the above-described various schemes, and may store the write data in the selected space.

[0188] As described above, according to an explicit request or internal policy of the host 1100, the memory zone manager MAM-d of the storage device 1200 can control data movement / flushing / migration between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np and the user storage unit UST.

[0189] In an exemplary embodiment, the memory area attribute manager MAPM-d includes a policy manager PM-d and a policy check module PCM-d. The policy manager PM-d can manage policies provided by the host 1100. For example, the host 1100 can determine policies regarding various operations of the storage device 1200. The host 1100 can provide the determined policies to the storage device 1200. The policy manager PM-d can set the policies provided by the host 1100. For example, the policy manager PM-d can store the provided policies as metadata and can set and manage the policies.

[0190] The policy check module PCM-d may check the policy set by the policy manager PM-d. The operation of the storage device 1200 may be performed based on the policy checked by the policy check module PCM-d.

[0191] In an exemplary embodiment, the host 1100 may determine a policy for a fixed turbo write buffer TWB-p and a non-fixed turbo write buffer TWB-np. For example, the host 1100 may determine a detailed policy for a data move / flush / migration operation between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer WB-np, and the user storage section UST. In this case, the memory area manager MAM-d may control a data move / flush / migration operation between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user storage section UST according to the policy checked by the policy check module PCM-d.

[0192] The memory area attribute manager MAPM-d can separately manage the logical address LBA (e.g., logical block address) for data movement / flushing / migration operations between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user storage unit UST. Fig.11 As shown in , the memory area attribute manager MAPM-d can manage the logical address LBA of the turbo write buffer TWB by using a separate mapping LM. For example, the memory area attribute manager MAPM-d can manage the logical address LBA of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np separately through the logical address mapping LM. The mapping LM can be called a turbo write buffer LBA mapping.

[0193] 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.

[0194] Fig.12 An exemplary embodiment according to the inventive concept is shown Fig.11 An example of a logical address map for a turbo write buffer managed by the memory region attribute manager. Fig.12 , the memory area attribute manager MAPM-d may manage the logical address LBA corresponding to the data stored in the turbo write buffer TWB by using the mapping LM or may manage the logical address LBA corresponding to the data stored in the turbo write buffer TWB as the mapping LM. The memory area attribute manager MAPM-d may separately manage the logical address mapping LM-p corresponding to the data stored in the fixed turbo write buffer TWB-p and the logical address mapping LM-np corresponding to the data stored in the non-fixed turbo write buffer TWB-np.

[0195] In an exemplary embodiment, each of the logical address mappings LM-p and LM-np includes fields corresponding to the logical address LBA, the read hit count RHC, the write time WT, the stream identifier SID, and the cartridge size CS. However, in an optional embodiment, one or more of these fields may be omitted from the mapping LM-p or LM-np. The logical address LBA may correspond to data stored in the turbo write buffer TWB. For example, in the case where data corresponding to the first logical address LBA1 is written (or stored) in the fixed turbo write buffer TWB-p, the first logical address LBA1 may be added to the LBA field of the logical address mapping LM-p. For example, the logical address LBA of the logical address mappings LM-p and LM-np may be added according to a write operation based on a write command from the host 1100. Alternatively, the logical address LBA of the logical address mappings LM-p and LM-np may be added according to a data move / flush / migration operation based on an explicit command from the host 1100 or an internal policy. For example, in a case where data corresponding to the third logical address LBA3 is written (or stored) in the non-fixed turbo write buffer TWB-np, the third logical address LBA3 may be added to the LBA field of the logical address map LM-np.

[0196] The read hit count RHC indicates the number of read operations performed on the data corresponding to the logical address LBA. As the access to the data by the host 1100 increases, the read hit count RHC may increase. For example, in the case where the data corresponding to the first logical address LBA1 is stored in the fixed turbo write buffer TWB-p, the first read hit count RHC1 corresponding to the first logical address LBA1 may increase according to the read operation on the data.

[0197] The write time WT indicates information about the time when the data corresponding to the logical address LBA is written. For example, in the case where the data corresponding to the first logical address LBA1 is written in the fixed turbo write buffer TWB-p, the first write time WT1 corresponding to the first logical address LBA1 may be stored. For example, the memory area attribute manager MAPM-d may manage the write time WT based on the time when the write command is provided from the host 1100, but the inventive concept is not limited thereto. For example, in the case where the data corresponding to the third logical address LBA3 is written in the non-fixed turbo write buffer TWB-np, the third write time WT3 corresponding to the third logical address LBA3 may be stored.

[0198] The stream identifier SID indicates stream information about the data corresponding to the logical address LBA. For example, the stream identifier SID may vary according to the application, process or device of the host 1100 that generates the data. Alternatively, the stream identifier SID may vary according to the target device associated with the data. For example, the memory area attribute manager MAPM-d may identify the stream identifier SID based on the value of a field (e.g., "GROUP NUMBER") included in the write command. For example, all data received from a first application in a first data stream may have a first stream identifier SID, and all data received from a second other application in a second other data stream may have a second other stream identifier SID. Therefore, data from one application may be distinguished from data from another application and may be processed differently. For example, data from one application may be moved preferentially before data from another application by referencing a stream identifier.

[0199] The cartridge size CS indicates the cartridge size of the data corresponding to the logical address LBA. For example, the cartridge size may be the number of consecutive logical blocks of data to be written. For example, the memory area attribute manager MAPM-d may identify the cartridge size CS of the data based on the value of a field (e.g., "TRANSFER LENGTH") included in the write command.

[0200] As described above, the memory area attribute manager MAPM-d can manage the read hit count RHC, the write time WT, the stream identifier SID, and the cartridge size CS for the logical address LBA added to the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np. For example, the memory area attribute manager MAPM-d can store the second read hit count RHC2, the second write time WT2, the second stream identifier SID2, and the second cartridge size CS2 in the logical address map LM-p corresponding to the second logical address LBA2 corresponding to the data stored in the fixed turbo write buffer TWB-p. The memory area attribute manager MAPM-d can store the third read hit count RHC3, the third write time WT3, the third stream identifier SID3, and the third cartridge size CS3 in the logical address map LM-np corresponding to the third logical address LBA3 corresponding to the data stored in the non-fixed turbo write buffer TWB-pn.

[0201] In the case of performing a move / flush / migration of data from the turbo write buffer TWB to the user storage unit UST, the memory area attribute manager MAPM-d may update the logical address map LM. For example, in the case where data corresponding to the fourth logical address LBA4 of the non-fixed turbo write buffer TWB-np is moved to the user storage unit UST, the memory area attribute manager MAPM-d may delete the fourth logical address LBA4 from the logical address map LM-np.

[0202] In the case where a data move / flush / migration operation is performed between the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np, the memory area attribute manager MAPM-d may update the logical address map LM. For example, in the case where data corresponding to the second logical address LBA2 of the fixed turbo write buffer TWB-p is moved to the non-fixed turbo write buffer TWB-np, the memory area attribute manager MAPM-d may delete the second logical address LBA2 from the logical address map LM-p, and may add the second logical address LBA2 to the logical address map LM-np.

[0203] Fig.11 The memory area manager MAM-d can perform data move / flush / migration operations between the fixed turbo write buffer TWB-p, the non-fixed turbo write buffer TWB-np, and the user storage unit UST based on the logical address map LM. For example, when performing the data move / flush / migration operation, the memory area manager MAM-d can select priority data according to the policy set based on the logical address map LM. Fig.17 More fully describe the strategy used to select priority data.

[0204] Fig.13 An example of an operation of setting a policy associated with a turbo write buffer according to an exemplary embodiment of the inventive concept is shown. Fig.13 In operation S51, the host 1100 provides a policy for the turbo write buffer TWB to the storage device 1200 through a query request. For example, the host 1100 may determine a policy for the turbo write buffer TWB, and may provide the determined policy to the storage device 1200 through a query request. For example, the host 1100 may send a message or a signal including the policy of the turbo write buffer TWB to the storage device 1200.

[0205] In operation S52, the storage device 1200 sets a policy for the turbo write buffer TWB according to the policy provided from the host 1100. The storage device 1200 may store the provided policy as metadata and set the policy. For example, the storage device 1200 may set the policy by changing a field value according to the provided policy. After the policy is set, in operation S53, the storage device 1200 transmits a query response to the host 1100. For example, the storage device 1200 may send a message or signal to the host 1100 indicating that the storage device 1200 has set the policy or confirming that the policy has been received from the host 1100 in response to receiving the query request.

[0206] Based on the policies set through operations S51 to S53 , the storage device 1200 may perform various operations associated with the turbo write buffer TWB.

[0207] For example, according to the set policy, the storage device 1200 may fix the sizes of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np, or may change the sizes of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np. In the case where the sizes of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np are changed, the ratio of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np may be changed. In the case where the policy is set so that the sizes of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np are fixed, the size of the fixed turbo write buffer TWB-p and the size of the non-fixed turbo write buffer TWB-np set by the host 1100 may be fixed. In the case where the policy is set so that the size of the fixed turbo write buffer TWB-p and the size of the non-fixed turbo write buffer TWB-np are variable, the size of the fixed turbo write buffer TWB-p and the size of the non-fixed turbo write buffer TWB-np set by the host 1100 may be variable due to various reasons (e.g., the set policy). In this case, the storage device 1200 may transmit information about the size of the fixed turbo write buffer TWB-p and the size of the non-fixed turbo write buffer TWB-np to the host 1100 (e.g., through a query response UPIU) in response to a request of the host 1100 (e.g., a query request UPIU). For example, the storage device 1200 may send a message or signal indicating the size of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np set according to the set policy to the host 1100 in response to the query request.

[0208] For example, the storage device 1200 may write data to a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np at the time of turbo write according to a set policy. For example, a policy may indicate that turbo write should be performed using only a fixed turbo write buffer TWB-p or only a non-fixed turbo write buffer TWB-np. In the case where a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np is not specified for turbo write, the storage device 1200 may write data to a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np according to a policy.

[0209] For example, the storage device 1200 may perform a data move / flush / migration operation according to a determination result automatically made based on a set policy, or may perform a data move / flush / migration operation only in the case where a command is provided from the host 1100 (for example, in the case where a move command is provided, or in the case where the value of the turbo write buffer flush enable field of FLAG (flag) or the value of the turbo write buffer flush enable field during hibernation of FLAG (flag) indicates that a flush operation is enabled). In the case where the storage device 1200 performs a data move / flush / migration operation according to a determination result automatically made by the storage device 1200, the storage device 1200 may perform a data move / flush / migration operation without a command from the host 1100.

[0210] As described above, the storage device 1200 may perform operations associated with the turbo write buffer TWB according to various strategies provided from the host 1100. Figures 14 to 17 The policy provided from the host 1100 is further described.

[0211] Fig.14 An example in which a storage device performs a flush operation according to a host command according to an exemplary embodiment of the inventive concept is shown. Fig.14 In operation S61, the host 1100 instructs the storage device 1200 to perform a flushing operation through a query request. Figure 7 As described, the host 1100 may enable the flush operation by the value of the turbo write buffer flush enable field of FLAG (flag) or the value of the turbo write buffer flush enable field during sleep of FLAG (flag). The host 1100 may send a signal or message (e.g., UPIU) to the storage device 1200 to instruct the storage device 1200 to start performing the flush operation.

[0212] In operation S62, the storage device 1200 may transmit a query response to the host 1100 after setting the value of the flush enable field according to the query request. The storage device 1200 may perform a flush operation in an idle state or a sleep state according to the set value of the flush enable field. The storage device 1200 may send a signal or message (e.g., aa UPIU) to the host 1100 confirming that the storage device 1200 will start to perform the flush operation.

[0213] In order to perform the flushing operation, the storage device 1200 may check a policy associated with the flushing operation in operation S63. In this case, the storage device 1200 may pre-set a policy associated with the flushing operation according to a policy provided from the host 1100.

[0214] In operation S64, the storage device 1200 flushes the data based on the checked policy. For example, the storage device 1200 may flush the data according to the number of logical addresses LBA to be processed by one flush operation. For example, the storage device 1200 may return the physical storage space (e.g., physical address) of the turbo write buffer TWB from which the data is moved / flushed / migrated to the user storage unit UST according to the set policy or may not return the physical storage space of the turbo write buffer TWB to the user storage unit UST. When the storage device 1200 returns the physical storage space of the turbo write buffer TWB to the user storage unit UST, the physical storage space of the user storage unit UST may be additionally ensured. The storage device 1200 may send a signal or message (e.g., UPIU) indicating the physical address of the user storage unit UST from which the data has been flushed to the host device 1100.

[0215] The above policy may be applied to a case where the storage device 1200 automatically performs a flush operation without external intervention and a case where the storage device 1200 performs a flush operation according to a command of the host 1100 .

[0216] Fig.15 An example in which a storage device performs a move operation according to a host command according to an exemplary embodiment of the inventive concept is shown. Fig.15 In operation S71, the host 1100 may transmit a command UPIU (e.g., a packet including the command in the form of a UFS protocol information unit) to the storage device 1200. The command UPIU may include move information MV (or a move command). For example, the host 1100 may provide the storage device 1200 with a move command for moving data of a source area SRC of the storage device 1200 to a destination area DEST.

[0217] In operation S72, the storage device 1200 checks the policy associated with the move operation. In this case, the storage device 1200 may pre-set the policy associated with the move operation according to the policy provided from the host 1100.

[0218] In operation S73, the storage device 1200 moves data based on the checked policy. For example, in the case where the free capacity of the destination area DEST is less than the size of the source area SRC, the storage device 1200 does not move the data. In this case, the storage device 1200 may process the move operation as an error or failure. For example, the storage device 1200 may send a message or signal (e.g., UPIU) indicating the failure of the move to the host 1100. Alternatively, in the case where the free capacity of the destination area DEST is less than the size of the source area SRC, the storage device 1200 may move the data in a movable size (i.e., the free capacity of the destination area DEST). For example, if the data to be moved is 100 kilobytes KB and the free capacity is 50 kilobytes, the storage device 1200 may move 50 kilobytes of data from the source area SRC to the destination area DEST. Alternatively, the storage device 1200 may remove the data stored in the destination area DEST (e.g., the data may be moved / flushed / migrated to another area), and may additionally ensure free capacity. In this case, the storage device 1200 may move data of the source area SRC to an existing space and an additional safe space of the destination area DEST. For example, the storage device 1200 may delete invalid data or old data stored in the destination area DEST to free up enough space to enable the move.

[0219] After the data has been completely moved, in operation S74, the storage device 1200 transmits a response to the move command to the host 1100. For example, the storage device 1200 may send a message or signal (eg, UPIU) to the host 1100 informing the host 1100 that the move has been successfully completed.

[0220] exist Fig.15 1 shows an example in which the storage device 1200 transmits a response to the move command to the host 1100 after completely moving the data in response to the move command, but the inventive concept is not limited thereto. For example, after transmitting the response to the move command to the host 1100, the storage device 1200 may check a policy associated with the move operation and may move the data according to the policy. The response time to the move command may be pre-set as a policy by the host 1100. That is, the storage device 1200 may set the response time to the move command differently according to the policy.

[0221] Fig.16An example is shown in which a storage device automatically performs a data move / flush / migration operation without external intervention according to an exemplary embodiment of the inventive concept. Fig.16 In operation S81, the storage device 1200 automatically determines whether a data move / flush / migration operation can be performed without external intervention. The storage device 1200 may check the set policy to perform operation S81.

[0222] When the automatic determination result indicates that the data move / flush / migration operation can be performed, the storage device 1200 checks the policy associated with the data move / flush / migration operation in operation S82. In this case, the storage device 1200 may pre-set the policy associated with the data move / flush / migration operation according to the policy provided from the host 1100.

[0223] In operation S83, the storage device 1200 performs a data move / flush / migration operation based on the checked policy. For example, in the case where the free capacity of the turbo write buffer TWB is insufficient, the storage device 1200 may perform a data move / flush / migration operation according to the policy. In the case where the free capacity of the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np is a reference value or less, the storage device 1200 may move / flush / migrate the data of the fixed turbo write buffer TWB-p or the non-fixed turbo write buffer TWB-np. For example, when it is determined that the free capacity of the fixed turbo write buffer TWB-p is insufficient, the storage device 1200 may move / flush / migrate some data of the fixed turbo write buffer TWB-p to the user storage unit UST. In an optional embodiment, even if it is determined that the free capacity of the turbo write buffer TWB is insufficient, the storage device 1200 does not perform a data move / flush / migration operation according to the policy. In this case, at the time of turbo write, the storage device 1200 may preferentially write data in the user storage unit UST. For example, even if the turbo write function is enabled, when the turbo write buffer TWB is full, data is written to the user storage unit UST.

[0224] For example, the storage device 1200 may move data according to a high-performance read hit count. The high-performance read hit count may indicate a read hit count that allows data to be moved from the non-fixed turbo write buffer TWB-np or the user storage section UST to the fixed turbo write buffer TWB-p. The high-performance read hit count may be set in advance as a policy by the host 1100. In an exemplary embodiment where the read hit count for data of the non-fixed turbo write buffer TWB-np or the user storage section UST is the high-performance read hit count or greater, the storage device 1200 moves the data to the fixed turbo write buffer TWB-p.

[0225] For example, the storage device 1200 may move / flush / migrate data of the fixed turbo write buffer TWB-p having a read hit count less than or equal to a preset value to the user storage unit UST according to a policy. Alternatively, the storage device 1200 may move / flush / migrate data of the fixed turbo write buffer TWB-p having a read hit count less than or equal to a preset value to the non-fixed turbo write buffer TWB-np according to a policy. The data moved / flushed / migrated to the non-fixed turbo write buffer TWB-np or the user storage unit UST may be moved again to the fixed turbo write buffer TWB-p according to a high-performance read hit count.

[0226] As described above, the storage device 1200 may perform operation S82 and operation S83 regardless of a command from the host 1100. For example, the storage device 1200 may perform operation S82 and operation S83 in an idle state or a sleep state.

[0227] When the automatic determination result indicates that the data move / flush / migration operation cannot be performed, such as referring to Fig.14 and Fig.15 As described, the storage device 1200 may perform a data move / flush / migration operation only if a command is transmitted from the host 1100 .

[0228] Fig.17 1 shows an example of a storage device selecting priority data according to an exemplary embodiment of the inventive concept. The storage device 1200 may select priority data when performing a flush operation according to a command from the host 1100 or when performing a data move / flush / migration operation according to a determination result automatically made without external intervention. For example, the storage device 1200 may perform a flush operation when moving / flushing / migrating data from a turbo write buffer TWB to a user storage unit UST. Fig.17 operation.

[0229] Reference Fig.17In operation S91, the storage device 1200 selects a priority turbo write buffer TWB among a plurality of turbo write buffers according to a policy. Figure 2 A single turbo write buffer TWB is shown, but the inventive concept is not limited to this because there may be multiple turbo write buffers. For example, the storage device 1200 may select a priority turbo write buffer TWB based on the index of the turbo write buffer TWB. For example, each turbo write buffer may be associated with a different index. For example, there may be a table identifying each turbo write buffer and the corresponding index value. The storage device 1200 may select the turbo write buffer TWB with the smallest index as the priority turbo write buffer TWB or may select the turbo write buffer TWB with the largest index as the priority turbo write buffer TWB. In this case, the storage device 1200 may preferentially move / flush / migrate the data of the priority turbo write buffer TWB. For example, the storage device 1200 may preferentially move / flush / migrate the data of the priority turbo write buffer TWB to the user storage unit UST.

[0230] In an exemplary embodiment, the storage device 1200 performs operation S91 only if the type of the turbo write buffer TWB is the LU dedicated buffer type. That is, the storage device 1200 may omit operation S91 if the type of the turbo write buffer TWB is the shared buffer type.

[0231] In operation S92, the storage device 1200 selects a priority area from the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np according to a policy. For example, the storage device 1200 may select a priority area of ​​the priority turbo write buffer TWB selected in operation S91. For example, the storage device 1200 may first move / flush / migrate data of the fixed turbo write buffer TWB-p according to the selected priority area, or may first move / flush / migrate data of the non-fixed turbo write buffer TWB-np. For example, the storage device 1200 may select one of the fixed turbo write buffer TWB-p and the non-fixed turbo write buffer TWB-np as a priority area from among the selected priority turbo write buffers.

[0232] In operation S93, the storage device 1200 selects priority data according to the policy. For example, the storage device 1200 may select priority data from the priority area selected in operation S92. In an exemplary embodiment, the storage device 1200 selects priority data based on the policy. Fig.12The logical address mapping LM selects priority data. For example, the storage device 1200 may first move / flush / migrate data having a read hit count RHC less than or equal to a reference value. Optionally, the storage device 1200 may first move / flush / migrate data having a difference between the corresponding write time WT and the current time greater than or equal to the reference value. For example, the oldest or newest data in the turbo write buffer may be preferentially moved by reference to the write time. For example, the oldest data in the turbo write buffer may be moved first, and then the next oldest data in the turbo write buffer may be moved second, and so on. Optionally, the storage device 1200 may first move / flush / migrate data having a low (e.g., lower than a reference value) stream identifier SID, or may first move / flush / migrate data having a high (e.g., higher than a reference value) stream identifier SID. Optionally, the storage device 1200 may first move / flush / migrate data having a chuck size CS not greater than (less than) a reference value, or may first move / flush / migrate data having a chuck size CS greater than (not less than) a reference value. For example, the storage device 1200 may move data from the turbo write buffer based on the number of consecutive logical blocks of the data to be written. For example, if the turbo write buffer has first data with a cartridge size CS of 3 logical blocks, and the turbo write buffer has second data with a mapping LM with a cartridge size CS of 4 logical blocks, a move / flush / migration will be performed on the second data for a move conditional on a cartridge size CS greater than 3 logical blocks. In an exemplary embodiment, if the fixed turbo write buffer TWB-p is a priority turbo write buffer, the storage device 1200 checks the mapping LM-p to determine a candidate for a move / flush / migration. In an exemplary embodiment, if the non-fixed turbo write buffer TWB-np is a priority turbo write buffer, the storage device 1200 checks the mapping LM-np to determine a candidate for a move / flush / migration.

[0233] As described above, the storage device 1200 may select priority data for a data move / flush / migration operation based on a set policy.

[0234] Fig.18 1 is a block diagram illustrating in detail a memory system 1000 according to an exemplary embodiment of the inventive concept. Fig.11 and Fig.18 , 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 17 Operate as described.

[0235] 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 .

[0236] The application processor 1110 may execute an application AP-h and a 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 manner or wirelessly through the modem 1130. For example, the modem 1130 may be embedded in the application processor 1110.

[0237] The application processor 1110 may communicate with peripheral devices through the device driver 1140. For example, the application processor 1110 may communicate with a speaker 1150, a display 1160, a touch panel 1170, a microphone 1180, an image sensor 1190, and a storage device 1200 through the device driver 1140.

[0238] 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.

[0239] The speaker 1150 and the display 1160 may be user output interfaces for transmitting information to a user. The touch panel 1170, the microphone 1180, and the image sensor 1190 may be user input interfaces for receiving information from a user.

[0240] In an exemplary embodiment of the inventive concept, the storage device 1200 may be used as a high-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.

[0241] Fig.19 FIG. 1 is a diagram showing an exemplary embodiment of the inventive concept applied to a storage system 1000. Referring to FIG. Fig.18 and Fig.19 , 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.

[0242] The storage system 1000 may display a list of first to nth applications APP1 to APPn to which the acceleration mode is applicable through the display 1160. In addition, the storage system 1000 may display a switch through the display 1160 that allows the user to adjust the acceleration mode of the first to nth applications APP1 to APPn.

[0243] In operation S110, 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, the direction of activating the third application APP3) via the touch panel 1170. In operation S120, the information of the third application APP3 or the process of the third application APP3 may be transmitted to the I / O stream manager IOSM-h.

[0244] When receiving the information of the third application APP3 or the process of the third application APP3, in operation S130, the I / O stream manager IOSM-h may reserve the subsequent read movement operation of the third application APP3 or the process selected thereby. For example, the I / O stream manager IOSM-h may set the movement attribute MA for the data associated with the third application APP3 through the query request UPIU, and when the read operation associated with the third application APP3 is required, the I / O stream manager IOSM-h may include the movement flag as the movement information MV in the CMD UPIU.

[0245] As another example, when a read operation associated with the third application APP3 is required, the I / O flow 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 flow manager IOSM-h may specify a fixed turbo write buffer TWB-p or a non-fixed turbo write buffer TWB-np as a destination area DST of the movement attribute MA.

[0246] 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.

[0247] For example, in case the acceleration mode of the third application APP3 is disabled, the I / O flow manager IOSM-h may retain the move operation of the third application APP3, for example, the move operation to the user storage UST or the non-fixed turbo write buffer TWB-np.

[0248] In the above embodiments, the inventive concept is described with reference to the UFS protocol. However, the inventive concept is not limited to the UFS protocol, and may be applied to various other protocols.

[0249] In the above embodiments, the components according to the embodiments of the inventive concept are described by using blocks, units or modules. Blocks, units or modules 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, units or modules may include circuits implemented using semiconductor elements in integrated circuits or circuits implemented as intellectual property (IP) blocks or cores.

[0250] According to at least one embodiment of the inventive concept, a storage device provides a turbo write buffer for supporting faster writing and reading. The storage device supports priority writing to the turbo write buffer and supports moving data of a user storage unit to the turbo write buffer. Therefore, a storage device with improved writing speed and reading speed is provided.

[0251] Although the inventive concepts have been described with reference to exemplary embodiments of the inventive concepts, it will be apparent to one of ordinary skill in the art that various changes and modifications can be made thereto without departing from the spirit and scope of the inventive concepts.

Claims

1. A storage device, comprising: a non-volatile memory device; as well as A controller, the controller being configured to: When the turbo write buffer is configured: allocating a first area, a second area, and a third area on the nonvolatile memory device; receiving a write command and first data from a host device, thereby preferentially writing the first data in the first area or the second area rather than in the third area when the first data is associated with a turbo write; When the first data is associated with normal writing, the first data is written in the first area, the second area, or the third area; and the second data is moved between the first area, the second area, and the third area based on a policy received from the host device, When the turbo write buffer is not configured: allocating a third area on the nonvolatile memory device; and receiving a write command and first data from the host device to write the first data into the third area, The controller is further configured to move the second data based on a comparison between the number of consecutive logic blocks of the second data and a preset reference value.

2. The storage device according to claim 1, wherein: The controller is further configured to generate a first mapping table for managing logical addresses corresponding to data stored in the first region and a second mapping table for managing logical addresses corresponding to data stored in the second region.

3. The storage device according to claim 2, wherein: The controller is also configured to: When the third data is written into the first area, a first logical address corresponding to the third data is added to the first mapping table; and When the fourth data is written in the second area, a second logical address corresponding to the fourth data is added to the second mapping table.

4. The storage device according to claim 2, wherein: The controller is further configured to manage a read hit count, a write time, a stream identifier, and a cartridge size for each of the logical addresses of the first mapping table and the logical addresses of the second mapping table.

5. The storage device according to claim 4, wherein: The controller is also configured to: selecting the priority data from the second data based on at least one of a read hit count, a write time, a stream identifier, and a cartridge size; and The selected priority data is moved first.

6. The storage device according to claim 1, wherein: The controller is further configured to move the second data based on the policy regardless of an additional command from the host device.

7. The storage device according to claim 6, wherein: The controller is further configured to move the second data from the first area or the second area to the third area when the free capacity of the first area or the second area is less than or equal to a reference value.

8. The storage device according to claim 6, wherein: The controller is further configured to move the second data to the first region when a read hit count associated with the second data of the second region or the third region is greater than or equal to a reference value.

9. The storage device according to claim 6, wherein: The controller is further configured to move the second data to the second region or the third region when a read hit count associated with the second data of the first region is less than or equal to a reference value.

10. The storage device according to claim 1, wherein: The controller is further configured to, after moving the second data from the first area or the second area to the third area, notify the host of a location of an area in the third area where the second data is written.

11. The storage device according to claim 1, wherein: When a move command for moving the second data is provided from the host device, the controller is further configured to: transmit a message responsive to the move command to the host device after completing the movement of the second data or move the second data after transmitting the message based on the policy.

12. The storage device according to claim 1, wherein: When a move command for moving the second data of the source area to the destination area is provided from the host device, the controller is further configured to: when the free capacity of the destination area is smaller than the size of the source area, move out the third data of the destination area and move the second data of the source area to the destination area.

13. A storage device, comprising: a non-volatile memory device; as well as A controller, the controller being configured to: When the turbo write buffer is configured: allocating the turbo write buffer and the user storage section divided into the fixed area and the non-fixed area on the non-volatile memory device; receiving a write command and first data from a host device, thereby preferentially writing the first data into a turbo write buffer rather than into a user storage portion when the first data is associated with a turbo write; When the first data is associated with normal writing, writing the first data into a turbo write buffer or a user storage unit; selecting a priority based on a policy provided from the host device; and moving the second data from the turbo write buffer to the user storage portion based on the selected priority, When the turbo write buffer is not configured: allocating a user storage section on the nonvolatile memory device; and receiving a write command and first data from the host device to write the first data into the user storage section, The controller is further configured to move the second data based on a comparison between the number of consecutive logic blocks of the second data and a preset reference value.

14. The storage device according to claim 13, wherein: The controller is further configured to select a priority area from the fixed area and the non-fixed area according to a provided policy, wherein the second data is located in the priority area.

15. The storage device according to claim 13, wherein: The controller is further configured to select the priority data based on at least one of a read hit count, a write time, a stream identifier, and a cartridge size, wherein the read hit count, the write time, the stream identifier, and the cartridge size are associated with each logical address corresponding to the second data.

16. A method for operating a storage device, the method comprising: When the turbo write buffer is configured: allocating a first area, a second area, and a third area on the storage device; receiving, from a host device, policies associated with a first region and a second region; transmitting a message confirming receipt of the policy to the host device; when the turbo write function is enabled, preferentially writing the write data in the first area or the second area based on the policy in response to a write command from the host device; and when the turbo write function is disabled, writing the write data in the third area in response to a write command from the host device, When the turbo write buffer is not configured: allocating a third area on the storage device; and writing write data into the third area in response to a write command from the host device, The operation method further includes: moving the data between the first area, the second area and the third area based on a comparison between the number of continuous logic blocks of the data and a preset reference value.

17. The operating method according to claim 16, further comprising: Based on the strategy, a ratio of the size of the first region to the size of the second region is changed.

18. The operating method according to claim 17, further comprising: In response to a request from the host device, the changed size information of the first region and the changed size information of the second region are transmitted to the host device.

19. The operating method according to claim 16, further comprising: Based on the policy, the data in the second area is flushed to the third area in an idle state or a sleep state.

Citation Information

Patent Citations

  • Dust collector for gaseous fluid and method for manufacturing the same

    KR1020190094428A

  • Storage device and method of operating the same

    US20170131917A1

  • Host managed solid state drivecaching using dynamic write acceleration

    US20190056886A1

  • SLC cache management

    US20190065080A1