Storage device and garbage collection method thereof
By counting the elapsed time of data writes in flash memory devices and triggering garbage collection when a threshold is reached, the problem of reduced reliability of flash memory devices under long-term erasure conditions is solved, achieving the effect of improving reliability and reducing costs.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-10-13
- Publication Date
- 2026-03-31
AI Technical Summary
When flash memory devices are in an erasure state for a long time, the threshold voltage decreases, leading to a decrease in reliability. Furthermore, as capacity and integration increase, the complexity of algorithms to prevent 'erase to programming interval' errors increases, affecting the reliability of the memory.
By programming the data to be written in the storage block, counting the elapsed time, triggering garbage collection when the threshold is exceeded, and programming valid data in the clean page, the storage controller and non-volatile memory device manage multi-stream data, and select the clean page as the target area for garbage collection.
This effectively prevents clean pages from being retained alone during the erase process, reducing the error rate, improving the reliability of the storage device, and lowering costs.
Smart Images

Figure CN112667524B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to Korean Patent Application No. 10-2019-0127885, filed with the Korean Intellectual Property Office on October 15, 2019, the entire contents of which are incorporated herein by reference. Technical Field
[0003] Exemplary embodiments of the present invention relate to a semiconductor memory device, and more specifically, to a storage device and a method for collecting its waste. Background Technology
[0004] Flash memory devices are non-volatile memory chips used for storage and data transfer. They are electronically reprogrammable and erasable and are widely used as data storage media for voice and image data in information devices such as computers, smartphones, personal digital assistants (PDAs), digital cameras, camcorders, recorders, MP3 players, and handheld personal computers (PCs). Currently, flash memory devices with three-dimensional array structures are being developed to improve the integration density of flash memory devices. In a flash memory device with a three-dimensional array structure, the cell strings are formed along a direction perpendicular to the substrate. In other words, the memory cells of the flash memory device are provided along rows and columns on the substrate and stacked in a direction perpendicular to the substrate to form a three-dimensional structure.
[0005] When flash memory cells are in an erase state for an extended period, the threshold voltage of the cells decreases due to their structural characteristics, thus reducing the reliability of the flash memory device. This is known as an "Erase-to-Program Interval (EPI)" error. To mitigate EPI errors, memory cells are managed to avoid being in an erase state for extended periods. Furthermore, the block size of flash memory devices increases with capacity and integration. For example, the number of stacked word lines in a memory block increases, as does the number of bits stored per memory cell. As block capacity increases, the complexity of algorithms used to prevent EPI errors also increases. Therefore, there is a need to ensure the reliability of high-capacity flash memory devices. Summary of the Invention
[0006] According to an exemplary embodiment of the present invention, a memory management method for a storage device is provided, the method comprising: programming data to be written in a storage block; counting elapsed time from the time when the last page of the storage block is programmed with the data to be written; triggering garbage collection of the storage device when the elapsed time exceeds a threshold; and programming valid data collected by garbage collection in a first clean page of the storage block.
[0007] According to an exemplary embodiment of the present invention, a storage device is provided, the storage device comprising: a storage controller configured to receive multistream data including stream identifiers from a host, and to manage the multistream data according to the stream identifiers; and a non-volatile memory device configured to provide, under the control of the storage controller, a plurality of active blocks for programming the multistream data according to the stream identifiers, wherein the storage controller controls the non-volatile memory device to program the corresponding stream data in the plurality of active blocks, and uses an active block containing clean pages among the plurality of such programmed active blocks as a destination area for garbage collection.
[0008] According to an exemplary embodiment of the present invention, a garbage collection method for a storage device is provided, the method comprising: receiving write data from a host; programming the write data in a selected storage block; detecting the presence of at least one clean page in the selected storage block; counting elapsed time from the time the write data was programmed; activating garbage collection of the storage device when the elapsed time exceeds a threshold; and using the selected storage block as a target area to which the data collected by garbage collection is programmed.
[0009] According to an exemplary embodiment of the present invention, a memory management method for a storage device is provided, the method comprising: writing data to a storage block; counting the time elapsed since the time when data writing to the storage block ceases; when the time exceeds a threshold, allocating clean pages of the storage block as target pages for garbage collection; and programming the clean pages with valid data collected through garbage collection. Attached Figure Description
[0010] The above and other features of the present invention will become more apparent from the detailed description of exemplary embodiments of the invention with reference to the accompanying drawings.
[0011] Figure 1 This is a block diagram illustrating an exemplary embodiment of a storage device according to a concept conceived in the present invention.
[0012] Figure 2 It is shown Figure 1 A block diagram of the configuration of the storage controller.
[0013] Figure 3 This is a block diagram illustrating an exemplary non-volatile memory device according to a concept of the present invention.
[0014] Figure 4 Show Figure 3 The circuit diagram of the memory block of the memory cell array.
[0015] Figure 5 It is shown Figure 1 A flowchart of memory management operations for the storage controller or flash conversion layer.
[0016] Figure 6 This is a diagram illustrating an exemplary embodiment of an active block processing method according to the present invention.
[0017] Figure 7 This is a diagram illustrating an exemplary embodiment of a waste collection method using clean pages with active blocks, according to a concept conceived in this invention.
[0018] Figure 8 This is a block diagram illustrating a storage device according to another exemplary embodiment of the present invention.
[0019] Figure 9 It is shown Figure 8 The activity block management table.
[0020] Figure 10 This is a flowchart illustrating a garbage collection method for a storage device comprising multiple active blocks, each active block having a clean page, according to an exemplary embodiment of the present invention.
[0021] Figure 11 This is a flowchart illustrating a garbage collection method for a storage device comprising multiple active blocks, each active block having a clean page, according to another exemplary embodiment of the present invention.
[0022] Figure 12 This is a block diagram illustrating an exemplary embodiment of the invention for selecting an active block, as another reference.
[0023] Figure 13 This is a block diagram illustrating an exemplary embodiment of the invention for selecting an active block, as another reference.
[0024] Figure 14 This is a diagram illustrating a waste collection method using clean pages with active blocks, according to another exemplary embodiment of the present invention.
[0025] Figure 15 It is shown Figure 14 A flowchart of the waste collection method.
[0026] Figure 16This is a block diagram used to describe another exemplary embodiment of the inventive concept.
[0027] Figure 17 This illustrates how to manage using multiple sub-blocks. Figure 16 A diagram illustrating the physical block method.
[0028] Figure 18 It is shown in Figure 16 A diagram illustrating a garbage collection method performed on a sub-block basis at the storage device. Detailed Implementation
[0029] In the following description, exemplary embodiments of the inventive concept will be described using a storage device utilizing a flash memory device. However, those skilled in the art will understand that the inventive concept is not limited thereto, and that it can be implemented or applied through other embodiments. It will be further understood that, in the accompanying drawings, the same reference numerals may refer to the same or similar elements.
[0030] Figure 1 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present invention. (Refer to...) Figure 1 The storage device 100 may include a storage controller 110 and a non-volatile memory device 120. In an exemplary embodiment of the present invention, each of the storage controller 110 and the non-volatile memory device 120 may be implemented using a chip, a package, or a module. Alternatively, the storage controller 110 and the non-volatile memory device 120 may be implemented using a chip, a package, or a module to constitute a memory system such as a memory card, a memory stick, or a solid-state drive (SSD).
[0031] The storage controller 110 can be configured to control the non-volatile memory device 120. For example, depending on a request from the host, the storage controller 110 can write data to or read data stored in the non-volatile memory device 120. To access the non-volatile memory device 120, the storage controller 110 can provide commands, addresses, and control signals to the non-volatile memory device 120.
[0032] Specifically, the storage controller 110 includes a flash translation layer (FTL) 114 that performs garbage collection according to an exemplary embodiment of the present invention. The flash translation layer 114 provides an interface between the host's file system and the non-volatile memory device 120 to hide erase operations on the non-volatile memory device 120. In the non-volatile memory device 120, mismatches may exist between erase and write units, and therefore the erase-before-write feature can be redeemed by the flash translation layer 114. Furthermore, the flash translation layer 114 can map logical addresses generated by the host's file system to physical addresses on the non-volatile memory device 120. Additionally, the flash translation layer 114 can perform wear leveling to manage the lifetime of the non-volatile memory device 120, or perform garbage collection to manage the data capacity of the non-volatile memory device 120.
[0033] During a data write operation, if there are empty pages (hereinafter referred to as "clean pages") in the selected storage block, the storage controller 110 according to an exemplary embodiment of the present invention counts the elapsed time (hereinafter referred to as "elapsed time ET") from the time when programming ends. The elapsed time ET is counted from the time when the last page of the selected storage block was programmed. Here, the last page may refer to the page of the selected storage block that was last programmed with data. The last page may not refer to a physical page at the edge of the selected storage block.
[0034] In the following text, the storage block selected for programming data and for which programming has not been terminated is referred to as an "active block". When the elapsed time ET of the count reaches a threshold TH, the storage controller 110 designates the active block corresponding to the elapsed time ET as the target block for garbage collection (GC). In another exemplary embodiment of the inventive concept, the storage controller 110 may designate the active block whose elapsed time ET has reached the threshold TH as a free block, and then designate the active block as the target block for garbage collection. The clean pages of the active block designated as the target block for garbage collection are programmed with valid data collected for garbage collection. Therefore, the time during which the clean pages of the active block are held separately in an erased state can be minimized.
[0035] Under the control of the memory controller 110, the non-volatile memory device 120 can store data received from the memory controller 110, or can send the data stored therein to the memory controller 110. The non-volatile memory device 120 may include a plurality of memory blocks BLK1 to BLKi. Each of the plurality of memory blocks BLK1 to BLKi has a three-dimensional memory structure, wherein word line layers are stacked in a direction perpendicular to the substrate. Each of the plurality of memory blocks BLK1 to BLKi can be managed by the memory controller 110 using information such as "erase count EC" for wear leveling.
[0036] According to an exemplary embodiment of the present invention, storage device 100 can utilize clean pages included in active blocks during garbage collection operations. Therefore, EPI errors occurring in clean pages can be prevented, and additional memory management operations for programming pseudo-data in clean pages are unnecessary. According to an exemplary embodiment of the present invention, storage device 100 with an increased number of active blocks can be characterized by cost reduction and improved reliability.
[0037] Figure 2 It is shown Figure 1 A block diagram illustrating the configuration of the storage controller. (Refer to...) Figure 2 The storage controller 110, according to an exemplary embodiment of the present invention, includes a processing unit 111, a working memory 113, a host interface 115, an error correction code block 117, and a memory interface 119. However, it should be understood that the components of the storage controller 110 are not limited to those described above. For example, the storage controller 110 may also include a read-only memory (ROM) storing code data required for initial startup operations. The components of the storage controller 110 may be communicatively coupled via a bus.
[0038] Processing unit 111 may include a central processing unit (CPU) or a microprocessor. Processing unit 111 can manage the overall operation of storage controller 110. Processing unit 111 is configured to drive firmware used to drive storage controller 110.
[0039] Software (or firmware) for controlling the storage controller 110 or data can be loaded onto the working memory 113. The stored software and data can be driven or processed by the processing unit 111. Specifically, according to an exemplary embodiment of the present invention, a flash memory conversion layer 114 that utilizes clean pages of active blocks as target areas for garbage collection can be loaded onto the working memory 113.
[0040] The flash memory translation layer 114, driven by the processing unit 111, performs functions such as address management, garbage collection, and wear leveling. The flash memory translation layer 114 designates clean pages of active blocks as target areas for garbage collection, referencing an elapsed time ET. Here, "target" can refer to a memory region programmed with valid data collected during the garbage collection operation. For example, a target page can refer to a page region programmed with data collected during the garbage collection operation.
[0041] During a data write operation, when a clean page exists in the active block, the flash translation layer 114 counts the elapsed time ET from the programming time of the last page. When the counted elapsed time ET reaches a threshold TH, the flash translation layer 114 can trigger garbage collection (GC) and program valid data into the clean page of the active block. Therefore, the time during which the clean page of the active block is held separately in an erased state can be reduced.
[0042] Host interface 115 provides an interface between the host and storage controller 110. The host and storage controller 110 can be connected via one of a variety of standardized interfaces. These standardized interfaces may include Advanced Technology Attachment (ATA) interface, Serial ATA (SATA) interface, External SATA (e-SATA) interface, Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnect (PCI) interface, PCI Express (PCI High Speed, PCI-E) interface, Universal Serial Bus (USB) interface, IEEE 1394 interface, Universal Flash Storage (UFS) interface, card interface, etc.
[0043] Error correction block 117 can correct errors in data corrupted due to various reasons. For example, error correction block 117 can perform operations to detect or correct errors in data read from non-volatile memory device 120. Specifically, error correction block 117 can detect the number of error bits or bit error rate (BER) of data read from memory cells in word lines depending on a request from flash translation layer 114. When using a garbage collection scheme according to an exemplary embodiment of the present invention, the number of physical pages reserved separately as clean pages is significantly reduced. Therefore, the BER of data written into memory blocks can be significantly improved.
[0044] The memory interface 119 can provide an interface between the memory controller 110 and the non-volatile memory device 120. For example, data processed by the processing unit 111 can be stored in the non-volatile memory device 120 via the memory interface 119. As another example, data stored in the non-volatile memory device 120 can be provided to the processing unit 111 via the memory interface 119.
[0045] The components of storage controller 110 have been described above as examples. According to the exemplary embodiments of the present invention, the storage controller 110 can significantly reduce the number of pages retained separately in a clean page state, even when no pseudo-data is programmed in the active block.
[0046] Figure 3 This is a block diagram illustrating an exemplary non-volatile memory device according to a concept of the present invention. (Refer to...) Figure 3 The non-volatile memory device 120 includes a cell array 121, a decoder 122, a page buffer 123, an input / output buffer 124, and control logic circuitry 125.
[0047] Cell array 121 is connected to decoder 122 via word line WL and select lines SSL and GSL. Cell array 121 is connected to page buffer 123 via bit line BL. Cell array 121 includes multiple memory cells BLK1 to BLKi. Each of the memory blocks BLK1 to BLKi includes multiple NAND cell strings. Data can be written to cell array 121 in units of pages. Erase operations can be performed in units of memory blocks.
[0048] According to an exemplary embodiment of the present invention, the cell array 121 may be a three-dimensional (3D) memory array. The 3D memory array may be monolithically formed in one or more physical layers of the memory cell array, the memory cell array having active regions disposed on a silicon substrate and circuitry associated with the operation of the memory cells.
[0049] In an exemplary embodiment of the present invention, the 3D memory array includes vertical NAND strings vertically oriented such that at least one memory cell is positioned above another memory cell. At least one memory cell includes a charge trapping layer. Each vertical NAND string may include at least one select transistor positioned above the memory cell. The at least one select transistor may have the same structure as the memory cell and may be monolithically formed together with the memory cell.
[0050] Decoder 122 can respond to address ADD selection of one of the memory blocks BLK1 to BLKi in the cell array 121. Decoder 122 can provide word line voltages corresponding to the operating mode to the word lines of the selected memory block. Decoder 122 can provide selection signals to the selection lines SSL and GSL to select the memory block. In a read operation, a read voltage Vrd can be applied to the selected word line of the memory block, and can also be provided to the unselected word lines via the read voltage Vread.
[0051] Page buffer 123 can operate as a write driver or a sense amplifier depending on the operating mode. During programming operations, page buffer 123 provides a bit line voltage corresponding to the data to be programmed to the bit lines of cell array 121. During read operations, page buffer 123 senses data stored in selected memory cells via the bit lines. Page buffer 123 latches the sensed data and outputs the latched data externally.
[0052] Input / output buffer 124 provides write data received during programming operations to page buffer 123. During read operations, input / output buffer 124 outputs data provided from page buffer 123 to the external device. Input / output buffer 124 can also send received addresses or commands to control logic circuitry 125 or decoder 122.
[0053] Control logic circuit 125 responds to command CMD or control signal CTRL to control decoder 122 and page buffer 123. Control logic circuit 125 can control decoder 122 to generate various bias voltages depending on programming commands. Specifically, control logic circuit 125 can output programming result information based on requests from memory controller 110.
[0054] The number of word lines in each of the stacked memory blocks BLK1 to BLKi is increased to achieve high-capacity memory devices. Additionally, the number of bits of data to be stored in each memory cell increases. For management, in terms of complexity and overload, programming pseudo-data into clean pages individually retained in the erase state after programming may not be suitable for high-capacity memory blocks.
[0055] Figure 4 The circuit diagram of the BLKi memory block is shown. (Refer to...) Figure 4 A cell string is formed between bit lines BL0, BL1, BL2 and BL3 and the common source line CSL.
[0056] Cell strings NS10 and NS20 are formed between bit line BL0 and common source line CSL. Similarly, multiple cell strings NS11, NS21, NS12, NS22, NS13, and NS23 are formed between bit lines BL1, BL2, and BL3 and common source line CSL. In each cell string, a string select transistor SST is connected to the corresponding bit line BL. In each cell string, a ground select transistor GST is connected to the common source line CSL. In each cell string, a memory cell is provided between the string select transistor SST and the ground select transistor GST. The memory cell can be connected to word lines WL0, WL1, WL2, WL3, WL4, and WL5.
[0057] Each cell string includes a ground select transistor GST. The ground select transistor GST of a cell string can be controlled by a ground select line GSL. Optionally, cell strings in different rows can be controlled by different ground select lines. The string select transistor SST can be controlled by different string select lines SSL1 and SSL2.
[0058] The circuit structure of a memory cell included in a memory block has been briefly described above. However, for convenience, only the following is shown. Figure 4 The circuit structure shown is therefore not limited to the actual memory block. Figure 4 The example shown is illustrated below. In other words, it should be understood that a memory block can include more semiconductor layers, more bit lines, and more string select lines.
[0059] Figure 5 It is shown Figure 1 A flowchart of memory management operations for the storage controller or flash translation layer. (Refer to...) Figure 5 The storage controller 110 can use clean pages as the target area for garbage collection depending on the elapsed time ET after programming the last page of the active block.
[0060] In operation S110, the storage controller 110 receives a write request from the host. For example, the storage controller 110 receives the address and data associated with the write request from the host. Here, the write request is provided from the host. However, the inventive concept is not limited to the case where the write request is generated from the host. The write request can be generated through memory management operations of the storage controller 110 (e.g., garbage collection operations or metadata update operations).
[0061] In operation S120, based on the address, the storage controller 110 selects the storage block where the requested data will be written. In this case, the storage controller 110 can select one of the free blocks that are in an erase state.
[0062] In operation S130, the storage controller 110 can program the data to be written in the selected storage block. In other words, the data received along with the write request can be written to the selected storage block. However, in this case, the capacity of the data to be written can be greater than or less than the capacity of the selected storage block.
[0063] In operation S140, the storage controller 110 checks the storage block where the requested data to be written is programmed. In other words, the storage controller 110 determines whether all physical pages of the storage block where the requested data to be written is programmed are in a programmed state. When all physical pages of the storage block are programmed (e.g., the entire page is programmed) (Yes), the process proceeds to operation S150. When at least one clean page exists in the storage block (No), the process proceeds to operation S160. In other words, when at least one unprogrammed page exists in the storage block, the process proceeds to operation S160.
[0064] In operation S150, the storage controller 110 determines whether the requested write data has been fully processed. In other words, when it is determined that all requested write data has been fully processed (yes), the method can terminate. However, if the size of the requested write data exceeds the capacity of a storage block or if there are additional write requests, the method can continue execution. Therefore, the process proceeds to operation S155.
[0065] In operation S155, the storage controller 110 selects a free block to which additional data with a write request is to be written. Then, the process proceeds to operation S130 to write the data to the selected free storage block.
[0066] In operation S160, the storage controller 110 counts the elapsed time ET. The time for counting the elapsed time ET can be the time when data is completely written to the active block. In other words, in an active block where clean pages exist, the elapsed time ET can be counted from the time when data is completely written to the physical pages preceding the clean pages. However, it should be understood that the starting point for counting the elapsed time ET can be the time when the active block is erased.
[0067] In operation S170, the storage controller 110 determines whether the elapsed time ET has reached the threshold TH. The threshold TH can be set to the time during which reliability degradation will not occur even if clean pages are in an erasure state. When it is determined that the elapsed time ET does not exceed the threshold TH (No), the storage controller 110 waits until the elapsed time ET reaches the threshold TH. After the elapsed time ET reaches the threshold TH (Yes), the process proceeds to operation S180.
[0068] In operation S180, the storage controller 110 triggers garbage collection (GC). In other words, the storage controller 110 initiates a garbage collection operation to collect valid data from storage blocks containing data and program the collected valid data in the target area. In this case, the collected valid data can be programmed in the clean pages of the active blocks.
[0069] As described above, exemplary embodiments of the inventive concept are used to allocate clean pages of active blocks to target areas for garbage collection, depending on the elapsed time ET. Here, the elapsed time ET can be adjusted in various ways depending on the process or design rules of the non-volatile memory device, or depending on the required level of reliability.
[0070] Figure 6 This is a diagram illustrating an exemplary embodiment of an active block processing method according to the present invention. (Refer to...) Figure 6 When the last page of active block 121a (corresponding to WL1) is fully programmed, and the threshold TH is reached after time ET, the remaining pages WL2 to WLn are used as the target area for garbage collection.
[0071] When a write request is received from the host, the storage controller 110 can select one of the free blocks that are in an erase state. For example, the storage controller 110 can select active block 121a. The data to be written is programmed in the active block 121a selected for programming. As mentioned above, because not all pages of active block 121a are programmed, clean pages may exist in active block 121a. For example, data can be programmed in the pages corresponding to word lines WL0 and WL1, and programming of active block 121a can be terminated, thereby preserving the clean pages corresponding to word lines WL2 to WLn.
[0072] If no additional write request is received after the last page (corresponding to WL1) of active block 121a has been programmed, the memory controller 110 may count the elapsed time ET. Here, the additional write request may be a write request depending on the state of the write buffer included in the memory controller 110, a write request from the host, or a write request executed as part of a memory management operation. The elapsed time ET can be counted using a timestamp used to manage active block 121a. A separate counting algorithm or circuitry can be used to count from the time when the last page (corresponding to WL1) of active block 121a has been fully programmed.
[0073] Storage controller 110 monitors the elapsed time ET. When the elapsed time ET reaches a threshold TH, similar to one of the free blocks, storage controller 110 manages the active block 121b containing clean pages. For example, the active block 121b containing clean pages is used as the target block 121b for copying data collected in a garbage collection (GC) operation. Here, in the target block 121b, besides the already programmed pages (corresponding to WL0 and WL1), only the remaining clean pages WL2 to WLn can be used as target pages to program the valid data collected through the garbage collection operation.
[0074] When data collected through garbage collection operations is programmed at clean pages (corresponding to WL2 to WLn), clean pages WL2 to WLn are maintained and managed in a programmed state rather than an erased state. This prevents EPI errors that can occur if clean pages are kept in an erased state. Additionally, it reduces the burden on the storage controller 110, which is used to program spurious data on clean pages of active blocks.
[0075] Figure 7 This is a diagram illustrating an exemplary embodiment of a waste collection method using a clean page with active blocks, according to a concept conceived in this invention. (Refer to...) Figure 7 According to an exemplary embodiment of the present invention, the storage device 100 can allocate active blocks 240 to free blocks and can use active blocks 240 as target areas in a garbage collection operation. Here, an example is provided where active blocks 240 are managed as target areas for garbage collection after being initially designated as free blocks. However, depending on the elapsed time ET, active blocks 240 can be used immediately as target areas for garbage collection without being assigned to the list of free blocks.
[0076] Erased blocks are managed as free blocks for writing data. Free blocks include blocks erased by block erase operations (Erased BLK). Figure 7 Each free block 210, 220, and 230 included in the free block list 200 corresponds to an erased memory block. Additionally, according to the memory management technology conceived in this invention, active block 240 can be included in the free block list 200. In other words, when the elapsed time ET after programming exceeds a threshold TH, some pages have been programmed and active block 240 with clean pages can be included in the free block list 200.
[0077] When the elapsed time ET after programming active block 240 exceeds the threshold TH, storage controller 110 triggers garbage collection (GC). In this case, flash translation layer 114 selects a data block that stores only invalid data INV or a data block that mixes valid data VALID and invalid data INV for garbage collection. For example, data blocks 250 and 260 that mix valid data VALID and invalid data INV can be selected for garbage collection. Valid data VALID stored in each of data blocks 250 and 260 can be collected for garbage collection. The collected valid data VALID is copied to the clean pages of active block 240a. Thus, the clean pages of active block 240a can be programmed through garbage collection. When the clean pages are programmed through garbage collection, active block 240a can then be managed as data block 240b storing data.
[0078] Additionally, data blocks 250 and 260, which were targeted by garbage collection and whose valid data VALID was copied to active block 240a, can be managed as free blocks after erasure. In other words, after data blocks 250 and 260 are erased, they can be placed in the free block list.
[0079] The characteristics of the garbage collection concept of the present invention have been briefly described above. According to the garbage collection method of the present invention, regarding active block 240, when the elapsed time ET after programming has elapsed, the clean pages of active block 240 can be used as target areas for garbage collection. When this memory management technology is applied, it is possible to prevent the clean pages of the active block from being retained separately during the erase state.
[0080] Figure 8 This is a block diagram illustrating a storage device according to another exemplary embodiment of the concept of the present invention. (Refer to...) Figure 8 Host 310 can send multi-stream data to storage device 320 depending on the attributes of the data. Thus, storage device 320 can allocate active blocks based on the stream identifier (ID) SID. In this case, storage controller 322, according to an exemplary embodiment of the present invention, can refer to active blocks that will have clean pages after programming for garbage collection. This will be described in detail below.
[0081] Depending on the attributes of the written data, host 310 can assign different stream identifiers (SIDs) to the written data and can send the written data to storage device 320. This data management technique can be referred to as a "multi-stream technique or method." Host 310's data generation block 312 can classify the written data into different streams based on attributes. Data generation block 312 can be, for example, a kernel or an application. Data generation block 312 can classify frequently updated metadata into a first stream (Stream_1) and assign stream ID (SID_1) to the metadata. Data generation block 312 can classify user data into a second stream (Stream_2) and assign stream ID (SID_2) to the user data. Data generation block 312 can classify temporary data with low importance into a third stream (Stream_3) and assign stream ID (SID_3) to the temporary data. Here, the way data is classified into streams can vary depending on the data attributes. For example, different stream identifiers can be assigned to user data for each media type.
[0082] Interface circuit 314 can send multi-stream data requested to be written from data generation block 312 to storage device 320 via data channel. In this case, stream data can be sent randomly. However, each data transmission unit (e.g., packet) can have a stream ID. Therefore, storage device 320 can identify the data attributes of received packets by using the stream identifier SID.
[0083] Storage device 320 includes storage controller 322 and non-volatile memory device 324. Storage controller 322 manages multi-stream data on a stream-by-stream basis. For example, storage controller 322 can select and allocate storage blocks for writing data on a stream ID basis. Storage controller 322 can select storage block BLK3 for storing data of stream ID SID_1. Subsequently, upon receiving data of stream ID SID_1, storage controller 322 can program the data of stream ID SID_1 in the active (or selected) storage block BLK3. Additionally, storage controller 322 can select storage block BLK9 for storing data of stream ID SID_2. Upon receiving a write request for data of stream ID SID_2, storage controller 322 can program the data of stream ID SID_2 in the active (or selected) storage block BLK9. As described above, storage controller 322 can respond to a write request for data of stream ID SID_3 by programming the data of stream ID SID_3 in storage block BLK13.
[0084] In the above method of allocating storage blocks for writing data, for each stream ID, a number of storage blocks equal to or greater than the number of stream identifiers are used as active blocks. In this case, when the stream data for stream ID SID_1 is completely written to active block BLK3, clean pages may exist in active block BLK3. Similarly, when the stream data for stream ID SID_2 is completely written to active block BLK9, multiple clean pages may exist in active block BLK9. Likewise, when the stream data for stream ID SID_3 is completely written to active block BLK13, multiple clean pages may exist in active block BLK13. As the number of multiple streams increases, the number of active blocks with clean pages may increase.
[0085] According to an exemplary embodiment of the present invention, the storage controller 322 can utilize active blocks BLK3, BLK9, and BLK13, which have terminated programming and have clean pages, as target areas for garbage collection. In other words, when a write to active block BLK3 is complete, the storage controller 322 counts the elapsed time ET. When the elapsed time ET exceeds a threshold TH, the storage controller 322 can use the clean pages of active block BLK3 as target areas for garbage collection. The storage controller 322 can count the elapsed time ET with respect to active blocks BLK9 and BLK13 in the same manner, and can program the data collected through garbage collection on the clean pages of active blocks BLK9 and BLK13 based on the counting result.
[0086] Regarding multiple active blocks, in order to count elapsed time ET and apply garbage collection, the storage controller 322 may include a flash translation layer 321 and an active block management (ABM) table 323. The flash translation layer 321 may classify randomly sent data based on the stream ID SID. The flash translation layer 321 may program data with the same stream ID SID within the same active block. The flash translation layer 321 may generate and update the active block management table 323 for the purpose of managing active blocks containing clean pages among the programmed active blocks.
[0087] Active blocks with clean pages are registered in the active block management table 323. For registered active blocks, the block address, elapsed time ET since the last page was programmed, number of clean pages, erase count EC, and any other relevant characteristics can be registered in the active block management table 323. The flash translation layer 321 can perform garbage collection on the registered active blocks by referring to the parameters in the active block management table 323. In other words, the flash translation layer 321 can monitor the active block management table 323 and can use the clean pages of active blocks as target areas for garbage collection.
[0088] Figure 9 It is shown Figure 8 The Activity Block Management (AMB) table. See reference... Figure 8 and Figure 9 The active blocks that have clean pages are listed in the active block management table 323.
[0089] Various parameters corresponding to the listed storage block BLK3 can be added and updated in the active block management table 323. For example, the elapsed time ET (=T1) since the last page of active block BLK3 was fully programmed can be written and updated. In addition, the number of clean pages included in active block BLK3 (e.g., 19), the erase count EC of active block BLK3 (e.g., 450), and the characteristic information of active block BLK3 (e.g., whether it is identified as a weak block) can be stored in the active block management table 323, and therefore the active block management table 323 can be updated.
[0090] All active blocks (e.g., BLK3, BLK9, BLK13, BLK20...) and their parameters generated at storage device 320 can be registered and managed using the active block management table 323.
[0091] Figure 10 This is a flowchart illustrating a garbage collection method for a storage device comprising multiple active blocks, each with a clean page. (See also...) Figure 8 and Figure 10 Storage controller 322 (reference) Figure 8 Multiple active blocks with clean pages can be used as target areas for waste collection.
[0092] In operation S210, the storage controller 322 receives a write request from the host. The storage controller 322 also receives a write request from the host 310. For example, the host 310 can manage write data in a multi-stream manner, assign a stream ID (SID) to write data, and send the write data to the storage device 320.
[0093] In operation S220, the storage controller 322 selects the storage block to store the data to be written. For example, the storage controller 322 can select one of the free blocks that is in an erased state.
[0094] In operation S230, the storage controller 322 can program the requested stream data to be written into selected storage blocks. For example, the storage controller 322 can write multiple streams of data into storage blocks based on the stream ID. Figure 8 For example, storage controller 322 writes the write data of stream ID SID_1 to storage block BLK3. Additionally, storage controller 322 can program the data of stream ID SID_2 in storage block BLK9.
[0095] In operation S240, the storage controller 322 checks the status of the active block where the requested data to be written is programmed. In other words, the storage controller 322 determines whether all physical pages of the active block where the requested data to be written is programmed are in a programmed state. When all physical pages of the active block are programmed (the entire page is programmed) (Yes), the process proceeds to operation S250. When at least one clean page exists in the active block (No), the process proceeds to operation S260.
[0096] In operation S250, the storage controller 322 determines whether the data to be written has been fully processed. In other words, when it is determined that the data to be written has been fully processed (yes), the method can terminate. However, if the size of the data to be written exceeds the capacity of a storage block, the write operation may not be completed. Therefore, the process proceeds to operation S255.
[0097] In operation S255, the storage controller 322 selects one of the free blocks for additional data writing. Then, the process proceeds to operation S230, where the data is written to the selected storage block.
[0098] In operation S260, the storage controller 322 registers an active block in the active block management table 323, in which at least one clean page exists after the last page has been programmed.
[0099] In operation S270, the storage controller 322 can check the elapsed time ET of the active blocks registered in the active block management table 323.
[0100] In operation S272, the storage controller 322 monitors whether the elapsed time ET has reached the threshold TH. When there is an active block among the multiple active blocks registered in the active block management table 323 whose elapsed time has reached the threshold TH, the process proceeds to operation S274. When there is no (or no detected) active block among the multiple active blocks registered in the active block management table 323 whose elapsed time has reached the threshold TH, the process proceeds to operation S272 to continue monitoring.
[0101] In operation S274, when the number of active blocks that have reached the threshold TH after time ET is 2 or more, the storage controller 322 may first select the active block with the largest number of clean pages. In other words, the active block with the largest number of clean pages can be selected.
[0102] In operation S280, the storage controller 322 triggers garbage collection (GC). In other words, the storage controller 322 initiates garbage collection (GC) to collect valid data from storage blocks and program the collected valid data in target areas. In this case, the collected valid data can be programmed into the clean pages of active blocks. Additionally, when the number of active blocks that have reached the threshold TH after time ET is 2 or more, garbage collection can be performed on active blocks with a relatively small number of clean pages.
[0103] The above briefly describes the method for determining selection priority when the number of active blocks that have reached the threshold TH after time ET is 2 or more. However, it should be understood that the selection priority of active blocks when the number of active blocks that have reached the threshold TH after time ET is 2 or more can vary depending on various circumstances.
[0104] Figure 11 This is a flowchart illustrating a garbage collection method for a storage device comprising multiple active blocks, each active block having a clean page, according to another exemplary embodiment of the present invention. (Refer to...) Figure 8 and Figure 11 Storage controller 322 (reference) Figure 8 Multiple active blocks containing clean pages can be used as target areas for garbage collection based on priority. Here, operations S310 to S370 are... Figure 10 Operations S210 to S272 are essentially the same, therefore additional descriptions will be omitted. Figure 10 The operation corresponding to operation S270 is not shown, but it can exist between operations S360 and S370.
[0105] In operation S375, when the number of active blocks that have reached the threshold TH after a time ET is two or more, the storage controller 322 selects active blocks as target areas for garbage collection based on a predetermined priority. For example, among the multiple active blocks, the active block with the longest elapsed time ET can have a higher priority. Then, after the time ET has elapsed, active blocks with a large number of clean pages and active blocks with a small erase count EC can have a higher priority. Additionally, the priority can be determined based on whether the active block is a weak block with weak characteristics.
[0106] In operation S380, the storage controller 322 triggers garbage collection (GC). In other words, the storage controller 322 initiates garbage collection (GC) to collect valid data from storage blocks containing stored data and programs the collected valid data in the target area. In this case, the collected valid data can be programmed in the clean pages of the active blocks.
[0107] The above briefly describes the method for determining the priority selection when the number of active blocks that have reached the threshold TH after time ET is 2 or more.
[0108] Figure 12 This is a block diagram illustrating an exemplary embodiment of a method for selecting an active block according to a concept conceived in this invention. (Refer to...) Figure 12 The storage device 400 may include a plurality of non-volatile memory devices NVM1 to NVM8 stacked on a printed circuit board (PCB) substrate and a storage controller 410. The priority of the plurality of non-volatile memory devices NVM1 to NVM8 may be determined based on their relative distances L0, L1, L2, and L3 to the storage controller 410. For example, the plurality of non-volatile memory devices NVM1 to NVM8 may be classified into multiple groups 420, 430, 440, and 450 based on their relative distances L0, L1, L2, and L3 to the storage controller 410.
[0109] In a memory block comprising multiple non-volatile memory devices NVM1 to NVM8, a write request can be completed during a programming operation while the presence of clean pages is active. In this case, depending on the elapsed time ET, active blocks that have all been written and contain clean pages are allocated to the target area for garbage collection. When multiple active blocks are allocated to the target area for garbage collection, the memory controller 410 may preferentially select the active blocks included in the memory devices that are relatively close to the memory controller 410.
[0110] For example, suppose that one of two active blocks with the same elapsed time ET is included in a non-volatile memory device NVM1 belonging to the first group 420, and the other is included in a non-volatile memory device NVM4 belonging to the third group 440. In this case, the memory controller 410 may preferentially allocate the active block included in the non-volatile memory device NVM1 belonging to the first group 420, which is closer to the memory controller 410 in distance than the non-volatile memory device NVM4 belonging to the third group 440, to the target area for garbage collection.
[0111] This prioritization is based on the fact that the drive temperature of the memory controller 410 is relatively high. There is a higher probability that the drive temperature of the non-volatile memory device NVM1, which is closer to the memory controller 410, is higher than that of the non-volatile memory device NVM4, which is relatively farther away from the memory controller 410. The EPI characteristics, or bit error rate (BER), of the non-volatile memory device are weaker at higher temperatures than at lower temperatures. Therefore, reliability can be improved by first selecting the active block of the non-volatile memory device NVM1, which is closer to the memory controller 410, and programming the clean pages of the active block.
[0112] Figure 13 This is a block diagram illustrating an exemplary embodiment of a method for selecting an active block according to a concept conceived in this invention. (Refer to...) Figure 13 The priority of the target used to select the target area to be designated as garbage collection can be determined based on the location of the final programming page of each activity block.
[0113] For example, priority can be determined by whether the final programming page of the active block is selected via a first string selection line SSL1 or a second string selection line SSL2. For instance, in a programming operation, the programming order of a memory block is determined on a unit basis via string selection lines SSL. If multiple unit strings (e.g., SSLP1) connected to the first string selection line SSL1 are fully programmed, then multiple unit strings (e.g., SSLP2) connected to the second string selection line SSL2 can be programmed. According to an exemplary embodiment of the invention, the priority of selecting the active block can be determined by the position of the string selection line SSL containing the last page (or the position of the unit string SSLP containing the last page).
[0114] Figure 14 This is a diagram illustrating a waste collection method using clean pages with active blocks, according to another exemplary embodiment of the invention. (Refer to...) Figure 14 According to an exemplary embodiment of the present invention, the storage device may designate an active block 510 including clean pages as a free block, and may use the clean pages of the active block 510 as a target area in a garbage collection operation.
[0115] Storage blocks that have been completely erased by a block erase operation are included in the free block list 500. Free blocks 520, 530, and 540 included in the free block list 500 correspond to storage blocks that have been completely erased. Additionally, according to an exemplary embodiment of the present invention, an active block 510 with at least one clean page may be included in the free block list 500. In other words, an active block 510 with a clean page may be included in the free block list 500 when the elapsed time ET after the last page has been programmed exceeds a threshold TH. Here, for convenience, the free block list is referred to. However, in another exemplary embodiment of the present invention, when the elapsed time ET exceeds the threshold TH, the clean pages of the active block 510 can be immediately used as a target area for garbage collection without the need for a process of designating the active block 510 as a free block.
[0116] When the elapsed time ET after programming in activity block 510 exceeds the threshold TH, storage controller 110 (refer to...) Figure 1 This triggers garbage collection (GC). The valid data VALID stored in multiple data blocks 550 and 560 is then collected by the flash translation layer 114. The collected valid data VALID is copied to a clean page 513 of the active block 510a selected as the target region, while the programmed page 511 remains untouched.
[0117] In this scenario, the size of the collected valid data VALID can be smaller than the size of the clean pages 513 of the active block 510a. Therefore, only some pages 512 of the active block 510a can be programmed with the collected valid data VALID. Even after the valid data VALID is programmed through garbage collection, some clean pages 514 may still exist.
[0118] According to an exemplary embodiment of the present invention, the storage controller 322 can program pseudo-data in an active block 510b that includes a clean page 514 that exists even after a garbage collection operation. Pseudo-data can be programmed at the clean page 514. When pseudo-data is programmed at the clean page 514, the active block 510b can be managed as a data block 510c where no clean page exists.
[0119] Another exemplary embodiment of the waste collection concept of the present invention has been briefly described above. Clean pages of an active block that remain even after the active block has been used as a target area for waste collection can be reconfigured by additionally programming pseudo-data into the clean pages. With the application of this memory management technique, it is more effective to prevent clean pages of active blocks from being retained separately in an erased state.
[0120] Figure 15 It is shown Figure 14A flowchart illustrating the waste collection method. (Refer to...) Figure 14 and Figure 15 Storage controller 110 (reference) Figure 1 Active blocks containing clean pages can be used as target areas for garbage collection. Here, we assume that the elapsed time ET of the active block is counted and a garbage collection operation is triggered.
[0121] In operation S410, the storage controller 110 can select active blocks to be used as target areas for garbage collection. Active blocks with clean pages are in a state where the elapsed time ET after the last page was programmed exceeds a threshold TH.
[0122] In operation S420, the valid data VALID collected for garbage collection is programmed on the clean page of the active block. When the collected valid data VALID is fully programmed, the process proceeds to operation S430.
[0123] In operation S430, it is checked whether all pages of the active block have been programmed. In other words, it can be checked whether there are clean pages in the active block. When it is determined that there are no clean pages in the active block, the process can proceed to operation S450. When there is at least one clean page in the active block (no), the process can proceed to operation S460.
[0124] In operation S450, it is checked whether the garbage collection operation has been completed. When it is determined that the garbage collection operation has been completed, the method can terminate. However, if the garbage collection operation has not been completed, the process proceeds to operation S455.
[0125] In operation S455, a free block or active block with clean pages can be selected for garbage collection. Once the block selection is complete, the process returns to operation S420.
[0126] In operation S460, pseudo-data can be programmed on the remaining clean pages of the active block. When pseudo-data is programmed on the remaining clean pages, the active block can be considered to be in a full-page programming state. When the pseudo-data is fully programmed, the process can proceed to operation S450.
[0127] The above describes a method for programming pseudo-data on remaining clean pages even after clean pages exist, following the programming of data collected for garbage collection. Combining this pseudo-data programming method allows clean pages that haven't been processed by garbage collection operations to be processed into a programmed state.
[0128] Figure 16 This is a block diagram illustrating another exemplary embodiment of the inventive concept. (Refer to...) Figure 16 Garbage collection according to this embodiment can be applied on a sub-block basis.
[0129] The storage controller 610 can manage the storage blocks BLK1 to BLKi of the non-volatile memory device 620 in units of sub-blocks SB. In other words, the storage controller 610 can erase and select storage blocks in units of sub-blocks, and can use the sub-blocks of the selected storage block as target areas for garbage collection. For example, the storage controller 610 can treat sub-block SB10 of storage block BLK1 as a block and can assign that block to erase and free blocks. The method of managing blocks in units of sub-blocks can be applied to the sub-blocks of each of the storage blocks BLK1 to BLKi. For example, sub-block SB20 of storage block BLK2 can be assigned to erase and free blocks. The physical logical size of storage blocks is gradually increasing. Therefore, when the size of a storage block becomes too large, the need to divide a block into multiple sub-blocks and manage them increases.
[0130] Storage controller 610 includes a flash memory conversion layer 615 for performing garbage collection, according to an exemplary embodiment of the present invention. When the flash memory conversion layer 615 is running, during a data write operation, storage controller 610, according to an exemplary embodiment of the present invention, counts elapsed time ET starting from the time when programming of an active block containing clean pages ends. The count also starts from the time when the last page of the active block is fully programmed. In this case, active blocks can be selected on a sub-block basis, which corresponds to one of the sub-blocks partitioned from a physical block.
[0131] When managing active blocks on a sub-block basis, the storage controller 610 counts the elapsed time ET after the last page of the sub-block is fully programmed, provided that a clean page exists after the programming of a sub-block. When the elapsed time ET reaches a threshold TH, the storage controller 610 can program the valid data collected for garbage collection onto the clean page of the sub-block whose last page is fully programmed. Therefore, in the storage device 600, the time that clean pages of active blocks managed on a sub-block basis are individually retained in the erase state can be minimized.
[0132] According to an exemplary embodiment of the present invention, the storage device 600 can utilize clean pages included in the active blocks corresponding to sub-blocks during garbage collection operations. Therefore, EPI errors occurring in clean pages can be prevented, and additional operations for programming pseudo-data in clean pages are unnecessary. The storage device 600 according to an exemplary embodiment of the present invention can perform memory management on a sub-block basis and can provide significant cost reduction and improved reliability under a storage strategy that increases the number of active blocks.
[0133] Figure 17 This illustrates how to manage using multiple sub-blocks. Figure 16 A diagram illustrating the physical block method. (Refer to...) Figure 16 and Figure 17 Physical block BLK2 can be managed in units of multiple sub-blocks. Here, a description of dividing and managing a physical block BLK2 into two sub-blocks SB20 and SB21 will be given. However, it should be understood that a physical block BLK2 can be divided into three or more sub-blocks and managed.
[0134] Each of sub-blocks SB20 and SB21 can be managed as a storage block. For example, the flash translation layer 615 of the storage controller 610 can select and manage targets for address management, garbage collection, and wear leveling on a sub-block basis. Furthermore, when clean pages exist in a fully programmed sub-block, the storage controller 610 counts the elapsed time ET after the last page is fully programmed. When the elapsed time ET reaches a threshold TH, the storage controller 610 can trigger garbage collection and designate the clean pages of the sub-block as the target area for garbage collection. For example, if only the pages corresponding to word lines WL0 to WL2 of sub-block SB20 are programmed and no additional write requests are received, the storage controller 610 starts counting the elapsed time ET from the time word line WL2, which is the last page, is fully programmed. When the elapsed time ET reaches the threshold TH, the storage controller 610 can use the clean pages corresponding to word lines WL3 to WL7 as the target area for garbage collection. Like sub-block SB20, sub-block SB21 can be used as a management unit for garbage collection. For example, the page corresponding to word line WL8 can be programmed, and the pages corresponding to WL8 to WL15 can be assigned as target areas for garbage collection.
[0135] Figure 18 It is shown in Figure 16 A diagram illustrating a garbage collection method performed on a sub-block basis at the storage device. (Refer to...) Figure 18 According to an exemplary embodiment of the present invention, the storage device 600 can allocate active sub-blocks 710 with clean pages to free blocks, and can use the active sub-blocks 710 as target regions. Here, a description is given of managing the active sub-blocks 710 primarily as free blocks, but... Figure 18 The management method described is merely an example. When the elapsed time ET reaches the threshold TH, the active sub-block 710 can be immediately used as a target area for garbage collection without being allocated to a free block.
[0136] The free block list 700 may include multiple free blocks 720, 730, and 740. Each of the free blocks 720, 730, and 740 corresponds to the aforementioned sub-block. Sub-blocks can be erased and then included in the free block list 700. Furthermore, according to the memory management technology conceived in this invention, active sub-blocks 710 may also be included in the free block list 700. In other words, when the elapsed time ET after programming exceeds a threshold TH, some pages are programmed and active sub-blocks 710 with clean pages may be included in the free block list 700.
[0137] When the elapsed time ET after programming of active subblock 710 exceeds the threshold TH, storage controller 610 triggers garbage collection (GC). In this case, flash translation layer 615 selects a data block that stores only invalid data INV or a data block that mixes valid data VALID and invalid data INV. For example, data blocks 750 and 760 that mix valid data VALID and invalid data INV can be targeted for garbage collection. Each of data blocks 750 and 760 can correspond to a subblock. Only the valid data VALID stored in each of data blocks 750 and 760 is collected. The collected valid data VALID is copied to the clean pages of active subblock 710a. In this way, the clean pages of active subblock 710a can be programmed through garbage collection. When the clean pages are programmed through garbage collection, active subblock 710a can then be managed as data subblock 710b storing data.
[0138] The characteristics of garbage collection according to an exemplary embodiment of the present invention have been briefly described above. The memory controller 610 of an exemplary embodiment of the present invention can use active sub-blocks 710 with clean pages present after programming as target areas for garbage collection. When this memory management technique is applied, it is possible to prevent clean pages of active sub-blocks from being retained separately during the erase state.
[0139] According to exemplary embodiments of the present invention, a storage device can be implemented that improves the EPI characteristics of a high-capacity flash memory device and has high reliability.
[0140] Although the inventive concept has been described with reference to exemplary embodiments thereof, it will be apparent to those skilled in the art that various changes and modifications may be made thereto without departing from the spirit and scope of the inventive concept as set forth in the appended claims.
Claims
1. A memory management method of a storage device, the method comprising: programming data requested to be written in a storage block; counting an elapsed time from a time when a last page of the storage block is programmed with the data requested to be written; triggering garbage collection of the storage device when the elapsed time exceeds a threshold value; programming valid data collected by the garbage collection at a first clean page of the storage block; including the storage block in a free block list when the elapsed time exceeds the threshold value; selecting one of a plurality of storage blocks included in the free block list based on a predetermined priority, wherein the selected storage block is programmed with valid data, and wherein the predetermined priority is based on the elapsed time, a number of clean pages, an erase count, a weak characteristic, or an operating temperature of each of the plurality of storage blocks. 2.The method of claim 1, further comprising: checking a second clean page after the first clean page is programmed; and programming dummy data at the second clean page. The storage block no longer includes a clean page when the dummy data is programmed.
3. The method of claim 2, wherein, The storage block corresponds to one of at least two sub-blocks divided from one physical block.
4. The method of claim 1, wherein, 5.A storage device comprising: a storage controller configured to receive multi-stream data including a stream identifier from a host and manage the multi-stream data according to the stream identifier; and a non-volatile memory device configured to provide a plurality of active blocks for programming the multi-stream data according to the stream identifier under control of the storage controller, wherein the storage controller controls the non-volatile memory device to program corresponding stream data in the plurality of active blocks and use an active block in which a clean page exists among the plurality of active blocks thus programmed as a target area of garbage collection, wherein the storage controller generates an active block management table for mapping and updating management information of each of the plurality of active blocks, and wherein the active block management table includes at least two of an elapsed time after programming, a number of clean pages, an erase count, and a weak characteristic of each of the plurality of active blocks. The stream identifier is assigned according to a property of the multi-stream data. The property is classified according to an update frequency of the data requested to be written.
6. The memory device of claim 5, wherein, When selecting one of the active blocks to be used as a target area of garbage collection, the storage controller selects an active block having a longest elapsed time.
7. The memory device of claim 6, wherein, When selecting one of the active blocks to be used as a target area of garbage collection, the storage controller selects an active block having a largest number of clean pages from a plurality of active blocks each having the same elapsed time.
8. The memory device of claim 5, wherein, Each of the plurality of active blocks corresponds to one of at least two sub-blocks divided from one physical block.
9. The memory device of claim 5, wherein, 11.A garbage collection method of a storage device, the method comprising:
10. The memory device of claim 5, wherein, receiving write data from a host; programming the write data in a selected storage block; detecting whether at least one clean page exists in the selected storage block; counting an elapsed time from a time when the write data is programmed; activating garbage collection of the storage device when the elapsed time exceeds a threshold value; using the selected storage block as a target area in which data collected by the garbage collection is programmed, wherein the host sends the write data to the storage device in a plurality of streams depending on attributes, wherein the storage device selects storage blocks respectively corresponding to the plurality of streams, wherein the storage controller generates an active block management table for managing information of each of the storage blocks, and wherein the active block management table includes at least two of elapsed time after programming, number of clean pages, erase count, and weak characteristics of each of the storage blocks.
12. The method of claim 11, further comprising: designating the storage block as a free block when the elapsed time exceeds a threshold.
13. The method of claim 11, further comprising: after programming the collected data at the first clean page of the selected storage block, checking whether a second clean page exists; and programming dummy data at the second clean page.
14. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
15. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
16. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
17. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
18. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
19. The method of claim 11, wherein the attributes include at least one of a type of data, a size of data, a priority of data, and a type of application.
20. The method of claim 11, wherein the attributes include at least one of a type
Citation Information
Patent Citations
Agent for preventing myopia, treating myopia, and / or preventing myopia progression comprising tiotropium as active ingredient
KR1020190127885A
Method of managing data and storage device performing the same
CN109840049A
Open block refresh management
US10048863B1