Storage device using dynamic log and operating method thereof

By dynamically adjusting the ratio of logging and metadata, the problem of solid-state drives taking a long time during initialization is solved, improving input/output performance and extending device life.

CN120179154APending Publication Date: 2025-06-20SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411571401.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-19
Filing Date
2024-11-06
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

Solid-state drives (SSDs) take a long time during initialization, mainly because the storage controller needs to read metadata from NAND flash memory and load it into DRAM, and update log records during log playback, resulting in limited input/output performance.

Method used

By dynamically adjusting the ratio of log records and metadata, the composition ratio of metawrite data is dynamically adjusted according to the number of valid log records, thereby optimizing metadata writing operations.

Benefits of technology

Reduces the number of metadata write operations, improves the input/output performance of the storage device, and extends the life of the nonvolatile memory device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120179154A_ABST
    Figure CN120179154A_ABST
Patent Text Reader

Abstract

A method of operating a storage device is provided. The method comprises: updating metadata to a metadata buffer; writing log data corresponding to the metadata into a log buffer; determining a composition ratio between the log data and the metadata based on a number of valid logs involved in playback of the metadata among the log data; composing meta-write data in a meta-write buffer according to the determined composition ratio, the meta-write data including metadata from a metadata buffer and log data from a log buffer; and programming the meta write data composed in the meta write buffer into the non-volatile memory device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This application claims priority to Korean Patent Application No. 10 - 2023 - 0185922, filed with the Korean Intellectual Property Office on December 19, 2023, the disclosure of which is incorporated herein by reference in its entirety. Technical field

[0003] One or more example embodiments of the present disclosure described herein relate to a storage device, and more particularly, to a storage device using dynamic journaling technology and an operation method thereof. Background art

[0004] The time taken from boot until the state where input / output (I / O) can be processed is called the initialization time or turn - on time in a solid - state drive (SSD). Most of the total initialization time is taken by the storage controller to read metadata from the NAND flash memory and load the metadata into the dynamic random - access memory (DRAM). In particular, when using journaling technology, the metadata loaded into the DRAM must be updated again using a journal log. This process is called journal replay. The journal replay process takes the longest time among the initialization processes of the solid - state drive (SSD).

[0005] Generally, in a solid - state drive (SSD), metadata is written to the NAND flash memory, assuming the worst - case scenario where there is the most journal data (or journal records) to update during initialization. In other words, the metadata write operation is performed under the condition that the ratio of journal records to metadata is fixed at a constant level. However, the method of writing journal records and metadata at a fixed rate is a limiting factor in improving the input / output performance of the solid - state drive. Summary of the invention

[0006] One or more example embodiments of the present disclosure provide a storage device and an operation method thereof, where the storage device can perform metadata writing by dynamically adjusting the ratio of journal records to metadata according to the number of valid journal records.

[0007] According to an aspect of an exemplary embodiment of the present disclosure, a method of operating a storage device is provided, including: updating metadata to a metadata buffer; writing log data corresponding to the metadata into a log buffer; determining a composition ratio between the log data and the metadata based on the number of valid logs involved in the playback of the metadata among the log data; composing metadata write data in a metadata write buffer according to the determined composition ratio, the metadata write data including metadata from the metadata buffer and log data from the log buffer; and programming the metadata write data composed in the metadata write buffer into a non-volatile memory device.

[0008] According to an aspect of an exemplary embodiment of the present disclosure, a storage device is provided, including: a non-volatile memory device including a metadata area and a user area; a buffer memory including a metadata buffer in which metadata is updated, a log buffer in which log data is stored, and a metadata write buffer in which metadata write data to be programmed in the metadata area is composed; and a storage controller configured to update the metadata in the metadata buffer and the log data in the log buffer, and determine a composition ratio between the log data and the metadata in the metadata write buffer based on the fact that the log buffer is in a full state and based on the number of valid logs involved in the playback of the metadata among the log data.

[0009] According to an aspect of an exemplary embodiment of the present disclosure, a method of operating a storage device that manages metadata according to a logging technique is provided, the method including: writing log data into a log buffer; determining the number of valid logs involved in the playback of the metadata among the log data written into the log buffer; and determining a composition ratio of a metadata write buffer according to the determined number of valid logs. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The above and other objects and features of the present disclosure will become apparent by referring to the drawings in which certain exemplary embodiments of the present disclosure are described in detail.

[0011] Figure 1 is a block diagram showing a storage system including a storage device according to one or more exemplary embodiments of the present disclosure.

[0012] Figure 2 is a diagram showing Figure 1 an example of the configuration of the storage device.

[0013] Figure 3 is a diagram showing Figure 2 an example of the configuration of the non-volatile memory device shown in

[0014] Figure 4It is a diagram for explaining a method of adjusting a composition ratio of log data and metadata in a metadata write buffer according to one or more exemplary embodiments of the present disclosure.

[0015] Figure 5 It is a block diagram showing an example of a configuration of an open time predictor according to one or more exemplary embodiments of the present disclosure.

[0016] Figure 6 It is a diagram showing a dynamic logging technique according to one or more exemplary embodiments of the present disclosure.

[0017] Figure 7 It is a flowchart showing a method of applying a dynamic logging technique according to one or more exemplary embodiments of the present disclosure.

[0018] Figure 8 It shows Figure 2 Another example of the configuration of the storage controller shown in

[0019] Figure 9 It is a block diagram showing a storage system according to one or more exemplary embodiments of the present disclosure. Detailed Description

[0020] It will be understood that both the foregoing general description and the following detailed description are for illustrative purposes only. In the embodiments of the present disclosure, reference numerals are specifically indicated, and examples thereof are indicated in the reference drawings. Wherever possible, the same reference numerals are used in the specification and the drawings to refer to the same or similar parts.

[0021] Figure 1 It is a block diagram showing a storage system including a storage device according to one or more exemplary embodiments of the present disclosure. The storage system 1000 may include a host 1100 and a storage device 1200. The storage device 1200 may include a storage controller 1210, a non-volatile memory device (NVM) 1230, and a buffer memory 1250.

[0022] The host 1100 may manage and process the overall operation of the storage system 1000. The host 1100 may send a read request and / or a write request W_REQ to the storage device 1200. The host 1100 may perform various arithmetic and / or logical operations to access the storage device 1200. For example, the host 1100 may include one or more processor cores. The host 1100 may be implemented using a dedicated circuit such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC), or may be implemented as a system on a chip (SoC). The host 1100 may include at least one of a general purpose processor, a dedicated processor, and an application processor. The host 1100 may be a processor itself or an electronic device or system including a processor.

[0023] The storage device 1200 may include a storage controller 1210, a non-volatile memory device 1230, and a buffer memory 1250. The storage controller 1210 may program data in the non-volatile memory device 1230 according to a write request W_REQ from the host 1100. Additionally or alternatively, the storage controller 1210 may read data stored in the non-volatile memory device 1230 according to a read request from the host 1100. For these features, the storage controller 1210 may use a mapping table that defines the correspondence between the logical address and the physical address of the data stored (or to be stored) in the non-volatile memory device 1230. The mapping table may be mainly stored and managed in the buffer memory 1250, and the buffer memory 1250 may be provided as a dynamic random access memory (DRAM).

[0024] The storage controller 1210 may control the non-volatile memory device 1230 and the buffer memory 1250. For example, the storage controller 1210 may write the requested data to the non-volatile memory device 1230 in response to a write request W_REQ received from the host 1100. For example, the storage controller 1210 may provide an address ADDR, a command CMD, and a control signal to the non-volatile memory device 1230 to perform write, read, and / or erase operations of the non-volatile memory device 1230.

[0025] The storage controller 1210 may process metadata generated for memory management operations according to a logging technique. That is, the storage controller 1210 may accumulate metadata and store information about the part to be changed in the accumulated metadata as a log record or log data. The storage controller 1210 may use the log data and the metadata to form a meta-write buffer at a specific time point, and program the data of the meta-write buffer in the non-volatile memory device 1230 in units of the meta-write buffer. The ratio between the log data and the metadata that make up the meta-write buffer may be flexibly adjusted. This technique will be referred to as dynamic logging. By applying dynamic logging to manage metadata, the number of times of performing metadata write operations may be reduced, thereby improving the input / output performance of the storage device 1200.

[0026] Here, metadata refers to data for managing user data and / or data generated by the storage system 1000 to manage the non-volatile memory device 1230. For example, the metadata may include at least one of the following: mapping information for converting a logical address into a physical address in the non-volatile memory device 1230, physical block information indicating data on a memory page included in a physical block of the non-volatile memory device 1230, and trim data information indicating data deleted from the host 1100, as well as various other information for managing the memory space of the non-volatile memory device 1230.

[0027] In addition, the log data may represent data including record information corresponding to changes in the user data and / or metadata. For this purpose, the log data may include a plurality of record entry information. For example, the log data may include information about change points (or checkpoints) in the user data and / or metadata. In some embodiments, the record entry information may include information about the type of operation indicating that a metadata change has occurred and the data required to repair (or restore) the metadata change. The information about the type of operation indicating where the metadata change occurs may include information defining the types of all operations that can change the metadata (such as write operations, block allocation operations, and page copy operations). The information about the data for restoring the metadata change may include a logical address, an old physical address, and a new physical address.

[0028] To apply the above dynamic log, the storage controller 1210 according to one or more example embodiments of the present disclosure may include a dynamic metadata manager 1212. The dynamic metadata manager 1212 may determine the ratio of the log data and the metadata by using an open time (OT) predictor 1216. The dynamic metadata manager 1212 may use dynamic log technology to form a metadata write buffer while flexibly changing the ratio or size of the log data and the metadata at runtime. In other words, when forming the metadata write buffer, the dynamic metadata manager 1212 may adjust the ratio of the log data and the metadata to a range that can satisfy the open time.

[0029] Here, the open time refers to the time period from the time when power is applied during the startup or initialization of the storage device 1200 to the time when it reaches a state capable of processing input and / or output functions. The open time may also be referred to as the initialization time. Most of the open time is taken by the time spent reading the metadata from the non-volatile memory device 1230 and moving the read metadata to the buffer memory 1250 (or volatile memory). In particular, when using log technology, the time required for playback takes up most of the open time. Playback refers to the function or operation of re-updating the metadata loaded (or updated) into the buffer memory 1250 using the log records.

[0030] The open time predictor 1216 can determine whether the status of the log data and metadata can meet the open time at the initialization of the storage device 1200. Here, meeting the open time can mean that the open time can be unaffected or delayed. Whenever a log record is added, the open time predictor 1216 can use the valid log table to manage which metadata the log is added to. The valid log table can be used to monitor and manage multiple log records that need to be replayed for each meta-region during initialization. Additionally, the open time predictor 1216 can refer to the valid log table during the meta write operation to select and provide the composition ratio of the log data and metadata in the meta write buffer. These features will be explained in more detail with reference to the accompanying drawings later.

[0031] The non-volatile memory device 1230 can store data received from the storage controller 1210 and / or send the stored data to the storage controller 1210 under the control of the storage controller 1210. The non-volatile memory device 1230 can include multiple chips or dies implemented as NAND-type flash memories. Each chip can include multiple memory blocks. In the non-volatile memory device 1230, only one memory block can be selected from one chip during a write operation. Therefore, selecting one chip during a write operation can be used in the same sense as selecting one memory block. In an embodiment, each of the multiple memory blocks can have a three-dimensional memory structure in which word line layers are stacked on a substrate in a vertical direction. Each of the memory blocks can be managed by the storage controller 1210 through information for wear leveling, such as the erase count.

[0032] The buffer memory 1250 can provide the buffer function and / or the metadata storage function of the storage device 1200. Additionally, the buffer memory 1250 can support the direct memory access (DMA) function of the data exchanged between the non-volatile memory device 1230 and the host 1100. In other words, the buffer memory 1250 can provide a buffer function to temporarily store the data programmed in the non-volatile memory device 1230 and / or the data output from the non-volatile memory device 1230. In particular, the buffer memory 1250 can store various metadata, such as the mapping table generated by the storage controller 1210. The buffer memory 1250 of the present disclosure can include a metadata buffer configured to store metadata, a log buffer configured to store log data, and a meta write buffer configured to store the log data and metadata to be programmed in the non-volatile memory device 1230.

[0033] According to the above configuration, the storage device 1200 of one or more example embodiments of the present disclosure may manage metadata according to a dynamic logging technique. That is, when a composition metadata is written to the buffer, the storage controller 1210 may vary a ratio of log data and metadata within a range where an opening time can be satisfied. Accordingly, the number of times of writing metadata to the non-volatile memory device 1230 may be reduced, and the input / output performance of the storage device 1200 may be improved. In addition, as the number of write operations to the metadata area of the non-volatile memory device 1230 is reduced, the lifespan of the storage device 1200 may be extended.

[0034] Figure 2 is a block diagram showing an example of a configuration of a storage device. Refer to Figure 1 for the storage device. Figure 2 The storage device 1200 may include a storage controller 1210, a non-volatile memory device 1230, and a buffer memory 1250. As an example, the storage controller 1210, the non-volatile memory device 1230, and the buffer memory 1250 may each be provided as one chip, one package, or one module. Alternatively, the storage controller 1210, the non-volatile memory device 1230, and the buffer memory 1250 may be included in one chip, one package, or one module. In other words, the storage controller 1210, the non-volatile memory device 1230, and the buffer memory 1250 may include storage devices such as embedded memories, memory cards, memory sticks, and solid state drives (SSDs).

[0035] The storage controller 1210 may be configured to control the non-volatile memory device 1230 and the buffer memory 1250. For example, the storage controller 1210 may write data to the non-volatile memory device 1230 and / or read data stored in the non-volatile memory device 1230 in response to a request from the host 1100 (see Figure 1 ). To access the non-volatile memory device 1230, the storage controller 1210 may receive I / O requests such as read commands or write commands. The I / O requests from the host 1100 may include logical addresses (e.g., logical block addresses (LBAs) or logical page numbers (LPNs)).

[0036] In particular, the storage controller 1210 may write the requested data to the user area 1231b of the non-volatile memory device 1230 in response to a write request W_REQ from the host 1100. The storage controller 1210 may generate metadata to execute the write request W_REQ and / or perform various memory management operations. Additionally, the storage controller 1210 may manage the metadata by applying a logging technique to form a metadata write buffer 1256 by adding log records during the metadata write operation. When forming the metadata write buffer, the storage controller 1210 of the present disclosure may use a dynamic logging technique to vary the ratio of log data and metadata within a range where the opening time can be satisfied.

[0037] To manage the metadata according to the dynamic logging technique, the storage controller 1210 may include a dynamic metadata manager 1212. The dynamic metadata manager 1212 may include a metadata updater 1214, an opening time predictor 1216, and a metadata write logic 1218.

[0038] The metadata updater 1214 may manage the metadata MD and / or the log data JD. For example, the metadata updater 1214 may accumulate the metadata MD in the metadata buffer 1254 and the log data JD in the log buffer 1252. Additionally, the metadata updater 1214 may perform initialization based on the metadata MD read from the non-volatile memory device 1230 when the storage device 1200 is reset or powered on.

[0039] The metadata updater 1214 may be implemented in various forms within the storage controller 1210. According to an embodiment, the metadata updater 1214 may be implemented in hardware or software. For example, when the metadata updater 1214 is implemented in hardware, the metadata updater 1214 may include a circuit for managing the metadata MD and / or the log data JD. Additionally, for example, if the metadata updater 1214 is implemented in software, a program (or instruction) stored in the storage controller 1210 may be executed by a processor (not shown) to perform data management operations. However, it is not limited to the above embodiments, and the metadata updater 1214 may be implemented in a form combining software and hardware (such as firmware). In one embodiment, all or part of the metadata updater 1214 may be included in the flash translation layer (FTL).

[0040] The open time predictor 1216 can manage a valid log table, which includes the amount of valid logs for each metadata unit updated by the metadata updater 1214. A valid diary refers to diary data that actually needs to replay the metadata. In other words, among the log records generated for each metadata unit, there may be log data for which metadata replay does not occur. That is, relative to the log records first generated and written to the log buffer 1252, there may be additional updated log records. In this case, the first generated log records become invalid logs, and the log records later generated and actually participating in the replay can be considered valid logs.

[0041] The open time predictor 1216 can determine the composition ratio of the metadata write buffer 1256 based on the number of valid logs corresponding to each metadata unit. The open time predictor 1216 can use the valid log table to determine the composition ratio of the log data JD and the metadata MD in the metadata write buffer 1256 based on the number or amount of valid logs that may affect the open time of the storage device 1200. For example, when the number of valid logs for each metadata unit to be written is less than a reference value, the ratio of the log data in the metadata write buffer 1256 can be increased. Even if the ratio of the log data in the metadata write buffer 1256 increases, as long as the number of valid logs that may affect the open time is at a level that satisfies the allowed open time condition, it will not cause any problems. On the contrary, when the number of valid logs becomes relatively greater than the reference value, the open time predictor 1216 can maintain the ratio of the log data JD in the metadata write buffer 1256 at the existing ratio, or decrease the ratio of the log data in the metadata write buffer 1256.

[0042] The metadata write logic 1218 can program the data in the metadata write buffer 1256 composed by the open time predictor 1216 into the metadata area 1231a of the non-volatile memory device 1230. In particular, based on the log buffer 1252 being in a full state, the metadata write logic 1218 can receive the composition ratio of the log data and the metadata in the metadata write buffer 1256 calculated based on the number of valid logs from the open time predictor 1216. When the metadata write buffer 1256 needs to be programmed into the non-volatile memory device 1230, the metadata write logic 1218 can program the data from the metadata write buffer 1256 into the metadata area 1231a of the non-volatile memory device 1230 at a determined write ratio.

[0043] The non-volatile memory device 1230 may include a metadata area 1231a that stores metadata and log data, and a user area 1231b that stores user data. The user data requested to be written by the storage controller 1210 may be stored in the user area 1231b. On the other hand, the metadata and log data whose composition ratio is dynamically adjusted in the metadata write buffer 1256 may be programmed in the metadata area 1231a in stripe units.

[0044] The data requested to be written may be temporarily stored in the buffer memory 1250. The data read from the non-volatile memory device 1230 and sent to the host 1100 may be temporarily stored in the buffer memory 1250. In particular, the buffer memory 1250 may include a log buffer 1252 and a metadata buffer 1254 managed by the metadata updater 1214. In addition, the metadata write buffer 1256 managed by the metadata write logic 1218 may be formed in the buffer memory 1250.

[0045] The log data corresponding to the change or update information of the metadata may be recorded in the log buffer 1252 in real time. The metadata generated through the memory management operation may be stored in the metadata buffer 1254. The metadata write buffer 1256 may be composed of the metadata and log data with a dynamically adjusted ratio programmed into the non-volatile memory device 1230. Although the log buffer 1252, the metadata buffer 1254, and the metadata write buffer 1256 have been described as being included in the buffer memory 1250, the present disclosure is not limited thereto. It should be understood that these buffers may be configured in the internal memory or cache memory of the storage controller 1210. In addition, a mapping table for mapping the logical address and physical address of the data requested to be written may be stored and managed in the buffer memory 1250. The buffer memory 1250 may include, for example, a synchronous dynamic random access memory (DRAM).

[0046] According to the above storage device 1200, the composition ratio of the metadata write buffer 1256 may vary according to the number of valid logs, so that the number of times the metadata is written to the non-volatile memory device 1230 may be significantly reduced. Therefore, when the dynamic log technology of the present disclosure is used, the performance of the storage device 1200 may be improved. In addition, as the number of metadata write operations decreases, the lifespan of the non-volatile memory device 1230 may be extended.

[0047] Figure 3 is a diagram showing Figure 2 an example of the configuration of the non-volatile memory device shown in. Refer to Figure 3, shows a configuration of a non-volatile memory device 1230 implemented as a flash memory device. The non-volatile memory device 1230 may include a cell array 1231, a row decoder 1232, a page buffer circuit 1233, a control logic circuit 1234, and a voltage generator 1235. Although not shown in Figure 3 , the non-volatile memory device 1230 may further include a data input / output circuit and / or an input / output interface. Additionally, the non-volatile memory device 1230 may further include components such as column logic, a pre-decoder, a temperature sensor, a command decoder, and an address decoder.

[0048] The cell array 1231 may include a plurality of memory blocks. Each of the plurality of memory blocks may include a plurality of memory cells. The plurality of memory blocks may be included in one memory plane, but the present invention is not limited thereto. The cell array 1231 may be connected to the page buffer circuit 1233 through bit lines BL, and may be connected to the row decoder 1232 through word lines WL, string select lines SSL, and ground select lines GSL. In an exemplary embodiment, the cell array 1231 may include a three-dimensional memory cell array. The cell array 1231 may include a meta area 1231a for storing metadata and log data and a user area 1231b for storing user data. The user data requested to be written by the storage controller 1210 may be stored in the user area 1231b. On the other hand, the metadata and log data whose composition ratio is dynamically adjusted in the meta write buffer 1256 may be programmed in the meta area 1231a in stripe units.

[0049] The row decoder 1232 may select one of the memory blocks of the cell array 1231 in response to an address ADDR. The row decoder 1232 may select one of the word lines of the selected memory block in response to the address ADDR. The row decoder 1232 may deliver a voltage VWL corresponding to an operation mode to the word line of the selected memory block. During a programming operation, the row decoder 1232 may send a programming voltage and a verification voltage to the selected word line, and send a pass voltage to the unselected word lines. During a read operation, the row decoder 1232 may deliver a read voltage to the selected word line and deliver a read pass voltage to the unselected word lines.

[0050] The page buffer circuit 1233 may include a plurality of page buffers PB0 to PBn-1. The plurality of page buffers PB0 to PBn-1 may be respectively connected to memory cells through a plurality of bit lines BL. The page buffer circuit 1233 may select at least one bit line among the plurality of bit lines BL in response to a column address. The page buffer circuit 1233 may operate as a write driver or a sense amplifier depending on an operation mode. For example, during a programming operation, the page buffer circuit 1233 may apply a bit line voltage corresponding to data to be programmed to the selected bit line. During a read operation, the page buffer circuit 1233 may detect data stored in the memory cell by detecting a current or a voltage of the selected bit line.

[0051] The control logic circuit 1234 may generally control various operations within the non-volatile memory device 1230. The control logic circuit 1234 may program data in or read data from the cell array 1231 in response to a control signal CTRL, a command CMD, and / or an address ADDR. Alternatively, the control logic circuit 1234 may generate various control signals for erasing data stored in the cell array 1231. For example, the control logic circuit 1234 may output a voltage control signal VTG_C, an address ADDR, etc. In an exemplary embodiment, the control logic circuit 1234 may output a control signal for programming multi-bit data according to a received control signal CTRL, a command CMD, and / or an address ADDR.

[0052] The voltage generator 1235 may generate various types of voltages based on the voltage control signal VTG_C to perform programming, reading, and / or erasing operations. For example, the voltage generator 1235 may generate a programming voltage, a reading voltage, and / or a program verification voltage as a word line voltage VWL. For example, an incremental step pulse programming (ISPP) method may be used to generate the programming voltage.

[0053] A finite number of write operations may be utilized to manage the cell array 1231 of the non-volatile memory device 1230. Accordingly, when the number of write operations increases, the lifespan of the non-volatile memory device 1230 decreases. In particular, metadata that occurs during memory management operations may be updated frequently. When using a dynamic logging technique according to one or more exemplary embodiments of the present disclosure, the number of times the metadata is written to the non-volatile memory device 1230 may be reduced, and thus the lifespan of the metadata area 1231a may be extended. Accordingly, the lifespan of the non-volatile memory device 1230 may be extended, and the lifespan of the storage device 1200 including the non-volatile memory device 1230 may also be extended.

[0054] Figure 4It is a diagram for explaining a method of adjusting the composition ratio of log data and metadata in a metadata write buffer according to one or more exemplary embodiments of the present disclosure. Refer to Figure 4 , when it is determined that the log buffer 1252 (refer to Figure 2 ) configured to store log data added (or updated) by the metadata updater 1214 (refer to Figure 2 ) is in a full state, the open time predictor 1216 may calculate the composition ratio of log data and metadata based on the number of valid logs. Then, the log data JD and the metadata MD may be programmed into the metadata area 1231a of the non-volatile memory device 1230 according to the calculated composition ratio.

[0055] In the case where the log buffer 1252 is in a full state due to the writing of log data, the open time predictor 1216 may calculate the composition ratio of log data and metadata. The composition ratio may be determined by the number of valid logs among the log data that actually affect the replay of the metadata and thus affect the open time. For example, assuming that the number of valid logs affecting the open time is 3000, the composition ratio may be adjusted whenever the number of valid logs changes relative to a standard value (or reference value) of 1000. For example, when the number of valid logs is less than 1000, the composition ratio of log data and metadata may be set to 3:1.

[0056] On the other hand, when the number of valid logs is 2500, the composition ratio of log data and metadata may be determined to be 1:3. However, it will be understood that the conditions for setting the composition ratio of log data and metadata in the metadata write buffer 1256 may vary according to embodiments. The metadata write data constituting the metadata write buffer 1256 may be programmed into the metadata area 1231a of the non-volatile memory device 1230 by the metadata write logic 1218.

[0057] In the above manner, when the log buffer 1252 is in a full state, the composition ratio of log data and metadata may be determined based on the number of valid logs. Through this metadata write process, the number of metadata write operations may be reduced in the case where the number of valid logs is relatively small.

[0058] Figure 5 It is a block diagram showing an example of the configuration of an open time predictor according to one or more exemplary embodiments of the present disclosure. Refer to Figure 5 , the open time predictor 1216 may include a table updater 1216a, an open time checker 1216b, a metadata write ratio selector 1216c, and a valid log table 1216d.

[0059] When the log data is added to the log buffer 1252 by the metadata updater 1214, the table updater 1216a can update the number of logs (e.g., the number of valid logs) of each metadata unit. For example, when a log entry of the metadata unit MU_0 is generated by the metadata updater 1214, the number of logs (e.g., the number of valid logs) of the metadata unit MU_0 can be updated by adding "1" to the previous number of logs of the metadata unit MU_0.

[0060] The open time checker 1216b can compare the sum of the number of valid logs of each updated metadata unit in the valid log table 1216d with a reference value. Based on the comparison result, it can be determined whether the logs accumulated in the current log buffer 1252 satisfy the open time. For example, assume that the number of valid logs that satisfy the open time is 6000 or less, and the composition ratio of the metadata write buffer 1256 is variable based on a unit of 2000 valid logs (which is the reference value). Then, the sum of the valid logs can be compared with the reference value 2000. The ratio of the metadata and log data in the metadata write buffer 1256 can vary according to the number of valid logs compared to the unit of 2000 valid logs. The comparison result of the open time checker 1216b can be provided to the metadata write ratio selector 1216c.

[0061] The metadata write ratio selector 1216c can determine the composition ratio of the metadata write buffer 1256 according to the comparison result between the number of valid logs performed by the open time checker 1216b and the reference value. When the ratio of the metadata write buffer 1256 changes with respect to the unit of the reference value of 2000 valid logs, that is, if the number of valid logs is less than 2000, the ratio of the log data to the metadata can increase from the current ratio. For example, if the current composition ratio of the log data and the metadata is 2:2, and the number of valid logs is determined to be 1500, the metadata write ratio selector 1216c can set the composition ratio of the log data and the metadata to 3:1 (i.e., increase the ratio of the log data). On the other hand, if it is detected that the number of valid logs is 5000, the ratio of the log data can be changed from the current 2:2 to 1:3 (i.e., decrease the ratio of the log data). The data in the metadata write buffer 1256 can be composed according to the composition ratio determined by the metadata write ratio selector 1216c.

[0062] The valid log table 1216d can manage the number of valid logs for each of the metadata units MU_0 to MU_k updated in the metadata buffer 1254. The number of valid logs can be updated according to the generation of log entries for the metadata units MU_0 to MU_k generated and updated in the metadata buffer 1254. The sum of the number of valid logs for each of the metadata units MU_0 to MU_k can be included in the valid log table 1216d.

[0063] Figure 6 is a diagram showing a dynamic logging technique according to one or more example embodiments of the present disclosure. Refer to Figure 6 , the composition ratio of the log data and the metadata in the metadata write buffer 1256 (see Figure 2 ) can be dynamically adjusted according to the number of valid logs.

[0064] The metadata updater 1214 can store the generated metadata in the metadata buffer 1254. For example, the metadata can be stored in the metadata buffer 1254 according to each of the metadata units MU_0 to MU_k. When any of the metadata units MU_0 to MU_k in the metadata buffer 1254 changes or is updated, log data for the corresponding metadata units MU_0 to MU_k can be generated. The log data can be added to the log buffer 1252.

[0065] Based on the full state of the log buffer 1252, the open time predictor 1216 can select the composition ratio of the metadata write buffer 1256 based on the number of valid logs. For example, assume that the number of valid logs that can satisfy the open time is 6000 or less, and the number of valid logs as a reference value for determining whether to change the composition ratio is 2000. When it is determined from the valid log table 1216d that the number of valid logs generated in the current log buffer 1252 is 800, the open time predictor 1216 can update the composition ratio from the current composition ratio to 3:1 (for example, log data:metadata = 3:1).

[0066] Figure 7 is a flowchart showing a method of applying a dynamic logging technique according to one or more example embodiments of the present disclosure. Refer to Figure 7 , the storage device 1200 (see Figure 2 ) can significantly reduce the number of metadata write operations by dynamically adjusting the composition ratio of the metadata and the log data according to the number of valid logs.

[0067] In operation S110, the metadata updater 1214 (see Figure 2 ) of the storage controller 1210 (see Figure 2) can generate metadata and update the metadata buffer 1254 (see Figure 2 ) the metadata in. Metadata can be generated from the address mapping of user data or various memory management operations for wear leveling.

[0068] In operation S120, the metadata updater 1214 of the storage controller 1210 can generate log data corresponding to the metadata stored in the metadata buffer 1254. The metadata updater 1214 can write the generated log data into the log buffer 1252.

[0069] In operation S130, the metadata updater 1214 can update the valid log table 1216d for managing the number of valid logs among the log data generated according to the metadata update. The valid log table 1216d can be used to monitor the number of valid logs in the open time predictor 1216.

[0070] In operation S140, it can be determined whether the log data of the size allocated to the log buffer 1252 has been accumulated. If there is no more space in the log buffer 1252 to write log data (for example, the log buffer 1252 is in a full state), the metadata write buffer 1256 needs to be composed of the log data accumulated in the log buffer 1252. If the log buffer 1252 is determined to be full ("yes" in S140), the process moves to operation S150. On the other hand, if it is determined that the log buffer 1252 is not full ("no" in S140), the process can return to operation S110 and continue the process of accumulating metadata and log data.

[0071] In operation S150, the open time predictor 1216 can determine the composition ratio of the log data and metadata in the metadata write buffer 1256 based on the number of valid logs provided in the valid log table 1216d. For example, if the number of valid logs of the written metadata unit is less than the reference value, the ratio of the log data in the metadata write buffer 1256 can be increased.

[0072] In operation S160, the open time predictor 1216 can determine whether to write log data to the non-volatile memory device 1230 based on the number of valid logs, using the calculated composition ratio of the log data and metadata in the meta write buffer 1256. If it is determined that the log data and metadata need to be programmed in the meta area 1231a (e.g., the number of valid logs is high), the process moves to operation S170. On the other hand, if the number of valid logs is relatively small and the log data can be additionally accumulated in the log buffer 1252, the process can return to operation S110. In this case, since the log buffer 1252 was determined to be full in operation S140, new log data can be accumulated by deleting old data (e.g., invalid logs) in the log buffer 1252. In an example, new log data can be accumulated by deleting old data stored in the log buffer 1252 for a predetermined period or longer.

[0073] In operation S170, the meta write logic 1218 can compose the meta write buffer 1256 according to the determined composition ratio of the log data and metadata. The meta write logic 1218 can combine the corresponding log data and metadata from the log buffer 1252 and the metadata buffer 1254 according to the determined composition ratio to compose the meta write buffer 1256.

[0074] In operation S180, the meta write logic 1218 can program the meta write data composed in the meta write buffer 1256 into the meta area 1231a of the non-volatile memory device 1230. In an embodiment, based on the meta write data being written to the non-volatile memory device 1230 (or based on the determination to write the meta write data to the non-volatile memory device 1230), the number of valid logs in the valid log table 1216d can be initialized. In an embodiment, the table updater 1216a can initialize the valid log table 1216d including the number of valid logs after composing the meta write buffer.

[0075] Above, a meta management method according to a dynamic log technique executed in the storage device 1200 in one or more example embodiments of the present disclosure has been described. By applying the above dynamic log technique, the ratio of metadata in the meta write buffer can be varied based on the number of valid logs, and the number of metadata write operations can be significantly reduced. Therefore, the performance of the storage device 1200 can be improved. Additionally, the lifespan of the non-volatile memory device 1230 can be extended by reducing the number of metadata write operations.

[0076] Figure 8 is a block diagram showing Figure 2 another example of the configuration of the storage controller shown in. Refer to Figure 8, the storage controller 1210' may include a processing unit 1211, a working memory 1213, a host interface 1215, a buffer manager 1217, and a flash memory interface 1219. However, it will be understood that the components of the storage controller 1210' are not limited to the above components. For example, the storage controller 1210 may further include additional components, such as a read-only memory (ROM) that stores code data required for a storage startup operation or an error correction code (ECC) block.

[0077] The processing unit 1211 may include a central processing unit or a microprocessor. The processing unit 1211 may run software or firmware for driving the storage controller 1210'. In particular, the processing unit 1211 may drive software modules loaded into the working memory 1213. Additionally, the processing unit 1211 may execute core functions of the storage device 1200, such as a flash translation layer (FTL). Additionally, the processing unit 1211 may be provided in a multi-core form composed of multiple CPUs.

[0078] Software modules or data for controlling the storage controller 1210 may be loaded into the working memory 1213. The software and data loaded into the working memory 1213 may be driven or processed by the processing unit 1211. In particular, according to one or more example embodiments of the present disclosure, the working memory 1213 may include a metadata updater module 1214', an open time predictor module 1216', and a metadata writer module 1218', and may perform the functions of the dynamic metadata manager 1212 (see Figure 1 ). The working memory 1213 may be implemented using, for example, static random access memory (SRAM).

[0079] The metadata updater module 1214' driven by the processing unit 1211 may manage metadata MD and / or log data JD. The metadata updater module 1214' may accumulate log data JD in a log buffer 1252 configured in the buffer memory 1250 and accumulate metadata MD in a metadata buffer 1254. Additionally, the metadata updater module 1214' may perform initialization based on the metadata MD read from the non-volatile memory device 1230 when the storage device 1200 is reset or powered on. In particular, the metadata updater 1214 may use the log data read from the non-volatile memory device 1230 to perform playback to update the metadata.

[0080] The open time predictor module 1216' driven by the processing unit 1211 can use the valid log table to manage the amount of valid logs of each metadata unit updated by the metadata updater module 1214'. When the log buffer 1252 is full, the open time predictor module 1216' can determine the data composition ratio of the metadata write buffer 1256 based on the number of valid logs corresponding to each metadata unit. The open time predictor module 1216' can adjust the composition ratio of the log data and metadata in the metadata write buffer 1256 based on the amount of valid log data affecting the open time of the storage device 1200 through the valid log table.

[0081] The metadata writer module 1218' can configure the metadata write buffer 1256 according to the composition ratio of the log data and metadata determined by the open time predictor module 1216'. The metadata writer module 1218' can program the metadata and log data composed in the metadata write buffer 1256 into the metadata area 1231a of the non-volatile memory device 1230.

[0082] The host interface 1215 can provide an interface between the host 1100 and the storage controller 1210'. The host and the storage controller 1210' can be connected through one of various standard interfaces. Here, the standard interfaces include at least one of ATA (Advanced Technology Attachment), SATA (Serial ATA), e-SATA (External SATA), SCSI (Small Computer System Interface), SAS (Serial Attached SCSI), PCI (Peripheral Component Interconnect), and PCIe (PCI Express), USB (Universal Serial Bus), IEEE1394, UFS (Universal Flash Storage), eMMC (Embedded Multimedia Card), NVMe, NVMe-of, NVMe-MI, etc.

[0083] The buffer manager 1217 can provide a buffer function for moving data read or written between the host interface 1215 and the flash interface 1219. The buffer manager 1217 controls the buffer memory 1250 implemented with high-capacity dynamic random access memory DRAM and can provide a DMA function or a buffer function between the non-volatile memory device 1230 and the host 1100.

[0084] The flash interface 1219 can provide an interface between the storage controller 1210' and the non-volatile memory device 1230. For example, the data processed by the processing unit 1211 is stored in the non-volatile memory device 1230 through the flash interface 1219. As another example, the data stored in the non-volatile memory device 1230 can be exchanged with the storage controller 1210' through the flash interface 1219.

[0085] The configuration of the storage controller 1210’ described above by way of example has been described. According to the functions of the storage controller 1210’ of the present disclosure, the metadata updater module 1214’, the open time predictor module 1216’, and the metadata writer module 1218’ may be provided as software modules. These components may perform Figure 2 the functions of the dynamic metadata manager 1212. By operating the dynamic metadata manager 1212, the storage device 1200 of the present disclosure may manage metadata according to the dynamic logging technique. Accordingly, the data ratio of the metadata write buffer may vary based on the number of valid logs, and the number of metadata writes may be significantly reduced. Additionally, the lifespan of the non-volatile memory device 1230 may be extended by reducing the number of metadata write operations.

[0086] Figure 9 is a block diagram showing a storage system according to one or more example embodiments of the present disclosure. Referring to Figure 9 , the storage system 2000 may include a host 2100 and a storage device 2200 implemented as a solid state drive. In an example embodiment, the host 2100 and the storage device 2200 may respectively correspond to the host 1100 and the storage device 1200 described with reference to Figures 1 to 8 . Alternatively, the host 2100 and the storage device 2200 may operate based on the operation method described with reference to Figures 1 to 8 .

[0087] The storage device 2200 may exchange signals SIG with the host 2100 through a signal connector 2201 and receive power PWR through a power connector 2202. The storage device 2200 may include an SSD controller 2210, a plurality of non-volatile memories 2230, a buffer memory 2250, and an auxiliary power supply 2270.

[0088] The SSD controller 2210 may control the plurality of non-volatile memories 2230 in response to signals SIG received from the host 2100. The plurality of non-volatile memories 2230 may operate under the control of the SSD controller 2210. The auxiliary power device 2270 may be connected to the host 2100 through the power connector 2202. The auxiliary power supply device 2270 may receive power PWR from the host 2100 and be charged. When the power supply from the host 2100 is not smooth, the auxiliary power device 2270 may supply power to the storage device 2200. The buffer memory 2250 may be used as a buffer memory of the storage device 2200.

[0089] In an example embodiment, the storage device 2200 may use a dynamic logging technique, which varies the write ratio of metadata and log data through a dynamic metadata manager 2220. When the dynamic metadata manager 2220 operates, the storage device 2200 of the present disclosure may manage metadata according to the dynamic logging technique. Accordingly, the data ratio of the metadata write buffer may vary depending on the number of valid logs, and the number of times the metadata is written may be significantly reduced. Additionally, the life of the non-volatile memory device 2230 may be extended by reducing the number of metadata write operations.

[0090] According to an example embodiment, at least one of the components, elements, modules, or units described herein may be embodied as various numbers of hardware, software, and / or firmware structures that perform the corresponding functions described above. For example, at least one of these components, elements, or units may use a direct circuit structure such as a memory, a processor, a logic circuit, a look-up table, etc., which may perform the corresponding functions under the control of one or more microprocessors or other control devices. Additionally, at least one of these components, elements, or units may be embodied as a part of a module, program, or code that includes one or more executable instructions for performing the specified logical function and is executed by one or more microprocessors or other control devices. Further, at least one of these components, elements, or units may also include or be implemented by a processor, such as a central processing unit (CPU), a microprocessor, etc., that performs the corresponding functions. Two or more of these components, elements, or units may be combined into a single component, element, or unit that performs all of the operations or functions of the combined two or more components, elements, or units. Additionally, at least a portion of the functions of at least one of these components, elements, or units may be performed by another of these components, elements, or units. Further, although a bus is not shown in the block diagrams, communication between the components, elements, or units may be performed via a bus. The functional aspects of the above example embodiments may be implemented in an algorithm executed on one or more processors. Additionally, the components, elements, or units represented by blocks or processing operations may employ any number of related technologies for electronic configuration, signal processing, and / or control, data processing, etc.

[0091] It should be understood that the example embodiments described herein should be considered only in a descriptive sense and not for purposes of limitation. The description of features or aspects within each embodiment should generally be considered available for other similar features or aspects in other embodiments. Although one or more example embodiments have been described with reference to the drawings, those of ordinary skill in the art will understand that various changes in form and detail may be made therein without departing from the spirit and scope defined by the appended claims and their equivalents.

Claims

1. A method for operating a storage device, the method comprising: updating metadata into a metadata buffer; Writing log data corresponding to the metadata into a log buffer; determining a composition ratio between the log data and the metadata based on the number of valid logs involved in the playback of the metadata among the log data; composing meta-write data in a meta-write buffer according to the determined composition ratio, the meta-write data comprising the metadata from the metadata buffer and the log data from the log buffer; as well as The meta-write data composed in the meta-write buffer is programmed into a nonvolatile memory device.

2. The method according to claim 1, further comprising: A valid log table is configured, the valid log table including the number of valid logs corresponding to each unit of the metadata.

3. The method according to claim 2, further comprising: Based on the number of valid logs included in the valid log table being smaller than a reference value, a ratio of the log data is increased in the composition ratio.

4. The method according to claim 1, wherein: The determining the composition ratio includes determining the composition ratio based on determining that the log buffer is in a full state.

5. The method according to claim 4, further comprising, before composing the meta-write data: Based on the number of valid logs, it is determined whether to write the meta-write data stored in the meta-write buffer to the nonvolatile memory device.

6. The method according to claim 5, wherein: Based on a determination to write the meta-write data to the non-volatile memory device, the number of valid logs is initialized.

7. The method according to claim 6, wherein: The programming the meta-write data includes programming the meta-write data in a meta area of ​​the non-volatile memory device.

8. The method according to claim 1, wherein: The determining the composition ratio includes adjusting the composition ratio in a range satisfying an open time allowed in the storage device.

9. A storage device comprising: a non-volatile memory device including a meta area and a user area; a buffer memory including a metadata buffer in which metadata is updated, a log buffer in which log data is stored, and a meta-write buffer in which meta-write data to be programmed in the meta-area is composed; as well as A storage controller is configured to update the metadata in the metadata buffer and the log data in the log buffer, and based on the log buffer being in a full state, determine the composition ratio between the log data and the metadata in the meta write buffer based on the number of valid logs involved in the playback of the metadata among the log data.

10. The storage device according to claim 9, wherein: The storage controller is further configured to compose the meta write buffer by adjusting the composition ratio based on the number of valid logs to increase or decrease a ratio of the log data in the meta write buffer.

11. The storage device according to claim 10, wherein: The storage controller is further configured to: The log data updated in the log buffer is monitored, the number of valid logs is managed, and the composition ratio is determined based on the number of valid logs.

12. The storage device according to claim 11, wherein: The storage controller includes a valid log table to manage the number of valid logs in units of the metadata.

13. The storage device according to claim 12, wherein: The storage controller is further configured to, when managing the number of valid logs: monitoring the number of valid logs among the log data, and recording the number in the valid log table; as well as Based on a comparison between the number of valid logs and a reference value, the composition ratio of the meta write buffer is determined.

14. The storage device according to claim 13, wherein: The storage controller is further configured to initialize the valid log table after constituting the meta-write buffer.

15. The storage device according to claim 14, wherein: The storage controller is further configured to adjust the composition ratio of the meta write buffer within a range satisfying an open time allowed in the storage device.

16. A method of operating a storage device that manages metadata based on a journaling technique, the method comprising: Write log data into the log buffer; determining the number of valid logs involved in the playback of metadata among the log data written in the log buffer; as well as According to the determined number of valid logs, a composition ratio of the meta write buffer is determined.

17. The method according to claim 16, further comprising: The meta write buffer including the meta data and the log data is composed according to the composition ratio.

18. The method according to claim 17, further comprising: The meta-write data composed of the meta-write buffer is programmed into a meta area of ​​a nonvolatile memory device.

19. The method according to claim 16, further comprising: A valid log table is configured to monitor the number of valid logs.

20. The method according to claim 19, wherein: The determining the composition ratio includes adjusting the composition ratio in a range satisfying an open time allowed in the storage device.