WO2016195242A1 - Non-volatile memory system - Google Patents

Non-volatile memory system Download PDF

Info

Publication number
WO2016195242A1
WO2016195242A1 PCT/KR2016/004272 KR2016004272W WO2016195242A1 WO 2016195242 A1 WO2016195242 A1 WO 2016195242A1 KR 2016004272 W KR2016004272 W KR 2016004272W WO 2016195242 A1 WO2016195242 A1 WO 2016195242A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
file system
nonvolatile memory
memory device
logical address
Prior art date
Application number
PCT/KR2016/004272
Other languages
French (fr)
Korean (ko)
Inventor
이성우
Original Assignee
주식회사 이에프텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이에프텍 filed Critical 주식회사 이에프텍
Publication of WO2016195242A1 publication Critical patent/WO2016195242A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Definitions

  • the present invention relates to a semiconductor memory system. More specifically, the present invention relates to a nonvolatile memory system including a nonvolatile memory device (eg, a NAND flash memory device, etc.).
  • a nonvolatile memory device eg, a NAND flash memory device, etc.
  • the semiconductor memory device may be classified into a volatile memory device and a nonvolatile memory device according to whether data can be stored in a state where power is not supplied.
  • NAND flash memory devices are widely used in nonvolatile memory devices because they are suitable for miniaturization, large capacity, and low cost.
  • a NAND flash memory device performs a write operation and a read operation in units of pages, and performs an erase operation in units of blocks.
  • a flash translation layer (FTL) is provided in the NAND controller to support a file system, and a write operation, a read operation, an erase operation, a merge operation, and a copyback are performed using the flash translation layer.
  • the flash translation layer performs an address mapping operation by using a mapping table in which mapping information between a logical address and a physical address is stored.
  • data information recognized by the file system for example, information about valid data and invalid data, etc.
  • the data information recognized by the layer and the data information recognized by the file system become inconsistent.
  • a dirty status that causes a lack of free blocks for garbage collection operation, etc. is deepened, and the physical state of the NAND flash memory device is increased.
  • the frequency of garbage collection increases as hot data with high usage access and cold data with low usage access are mixed on the address, the operation performance of the NAND flash memory device decreases (eg, For example, a decrease in writing speed and the like have occurred.
  • One object of the present invention is to allow a file system of a host device to effectively eliminate a dirty state of a nonvolatile memory device (eg, a NAND flash memory device) and to reduce the frequency of garbage collection operations performed in the nonvolatile memory device.
  • a nonvolatile memory device eg, a NAND flash memory device
  • garbage collection operations performed in the nonvolatile memory device.
  • the object of the present invention is not limited to the above-described object, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
  • the nonvolatile memory system according to the embodiments of the present invention and the nonvolatile memory device and file system having at least one NAND flash memory and a NAND controller for controlling the NAND flash memory;
  • the host device may include a host device including a host controller that receives a command from the file system and provides the command to the nonvolatile memory device.
  • the file system divides data into valid data and invalid data on a logical address recognized by the file system, collects the valid data, and continuously writes the data into a new logical address area.
  • a file system driven defragmentation operation of arranging the valid data on the physical address of the nonvolatile memory device may be performed.
  • the file system may issue an erase command or a trim command to ensure an unmapping state for the invalid data in a mapping table of the host controller. It can be provided to the nonvolatile memory device through.
  • the file system divides the valid data into hot data and cold data on the logical address, and then collects the hot data.
  • the data may be continuously written to the first new logical address area, and the cold data may be collected and continuously written to the second new logical address area.
  • the file system may classify the valid data into the hot data and the cold data based on a file type.
  • the file system may classify the valid data into the hot data and the cold data based on a usage access frequency.
  • the file system may divide the valid data into the hot data and the cold data based on a file capacity.
  • the file system-driven fragmentation may be performed every predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. have.
  • the nonvolatile memory system according to the embodiments of the present invention and the nonvolatile memory device and file system having at least one NAND flash memory and a NAND controller for controlling the NAND flash memory;
  • the host device may include a host device including a host controller that receives a command from the file system and provides the command to the nonvolatile memory device.
  • the file system divides the data into hot data and cold data on a logical address recognized by the file system, collects the hot data, and writes the hot data continuously into a first new logical address area.
  • the file system divides the hot data into valid hot data and invalid hot data on the logical address, and then only the valid hot data are stored in the first new data. It can be written to the logical address area.
  • the file system when performing the rewrite operation, divides the cold data into valid cold data and invalid cold data on the logical address, and then only the valid cold data is the second new. It can be written to the logical address area.
  • the file system may perform an erase command or trim to guarantee an unmapping state for the invalid hot data and the invalid cold data in a mapping table. trim) command to the nonvolatile memory device through the host controller.
  • the file system may classify the data into the hot data and the cold data based on a file type.
  • the file system may classify the data into the hot data and the cold data based on a usage access frequency.
  • the file system may classify the data into the hot data and the cold data based on a file capacity.
  • the file system-driven fragmentation may be performed every predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. have.
  • a nonvolatile memory system divides data into valid data and invalid data on a logical address recognized by a file system of a host device, and collects valid data into a new logical address area continuously.
  • valid data i.e., actual valid data accurately determined by the file system of the host device
  • the dirty state of the nonvolatile memory device for example, NAND flash memory device, etc.
  • a nonvolatile memory system divides data into hot data and cold data on a logical address recognized by a file system of a host device, and collects the hot data continuously in a first new logical address area.
  • a file system driven fragmentation operation in which hot data and cold data are adjacent to each other on a physical address of the nonvolatile memory device by performing a rewrite operation that writes and collects cold data and continuously writes the second new logical address area. Can be performed.
  • the frequency of garbage collection operations performed in the nonvolatile memory device can be reduced, so that the overall operating performance of the nonvolatile memory device can be improved.
  • FIG. 1 is a block diagram illustrating a nonvolatile memory system according to example embodiments.
  • FIG. 2 is a diagram illustrating an example in which target data is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
  • FIG. 3 is a diagram illustrating an example in which target data are disposed adjacent to a physical address of a nonvolatile memory device as target data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1.
  • FIG. 4 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device adjacently places valid data on a physical address of a nonvolatile memory device in the nonvolatile memory system of FIG. 1.
  • FIG. 5 is a diagram illustrating an example in which valid data are continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
  • FIG. 6 is a diagram illustrating an example in which valid data are adjacently disposed on a physical address of a nonvolatile memory device as valid data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1.
  • FIG. 7 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device arranges hot data and cold data adjacently on a physical address of a nonvolatile memory device in FIG. 1.
  • FIG. 8 is a diagram illustrating an example in which hot data (or cold data) is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
  • FIG. 9 illustrates that hot data and cold data are adjacent to each other on a physical address of a nonvolatile memory device as hot data (or cold data) is continuously written to a new logical address area in the nonvolatile memory system of FIG. 1. It is a figure which shows an example arrange
  • FIG. 10 and 11 illustrate another example of a file system driven fragmentation operation performed by the nonvolatile memory system of FIG. 1.
  • FIG. 12 is a flowchart illustrating a process of determining whether a file system driven fragmentation operation is performed by the nonvolatile memory system of FIG. 1.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component.
  • first component may be referred to as the second component, and similarly, the second component may be referred to as the first component.
  • FIG. 1 is a block diagram illustrating a nonvolatile memory system according to embodiments of the present invention
  • FIG. 2 illustrates that target data is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
  • 3 is a diagram illustrating an example in which target data are disposed adjacent to a physical address of a nonvolatile memory device as target data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1. It is a figure which shows.
  • the nonvolatile memory system 100 may include a nonvolatile memory device 120 and a host device 140.
  • the nonvolatile memory device 120 may be a NAND flash memory device.
  • the nonvolatile memory device 120 may include a solid state drive (SSD), a secure digital card (SDCARD), universal flash storage (UFS), and an embedded multimedia card. card (EMMC), a compact flash card (CF), a memory stick (memory stick), an XD picture card (XD picture card), etc., but is not limited thereto.
  • the nonvolatile memory device 120 may include a NAND flash memory 122 and a NAND controller that controls the NAND flash memory 122.
  • the nonvolatile memory device 120 includes one NAND flash memory 122, but for convenience of description, the nonvolatile memory device 120 may include a plurality of NAND flash memories 122. ) May be included.
  • the host device 140 may include a host controller 144 that receives a command from the file system 142 and the file system 142 and provides the command to the nonvolatile memory device 120.
  • the nonvolatile memory device 120 may perform a read operation and a write operation on a page basis, and an erase operation may be performed on a block basis due to the physical structure of the NAND flash memories 122. Perform in units. Accordingly, the nonvolatile memory device 120 has many limitations in performing a write operation, a read operation, and an erase operation as compared with a random access memory device (eg, a dynamic random access memory (DRAM) device). . Therefore, the nonvolatile memory device 120 includes a flash translation layer (FTL) in the NAND controller 124 to support a file system, and uses the flash translation layer (FTL) to read, write, and erase operations.
  • FTL flash translation layer
  • a merge operation, a copyback operation, a compaction operation, a garbage collection operation (or a reclaim operation), and a wear leveling operation are performed.
  • the NAND controller 124 performs the above operations by executing a software implemented flash conversion layer (FTL).
  • the flash translation layer FTL uses a mapping table in which mapping information between the logical address and the physical address is stored, and the flash translation layer FTL decrements the logical address recognized by the host device 140.
  • An address mapping operation of converting a physical address (PHYSICAL ADDRESS) of the volatile memory device 120 is performed.
  • the data information (for example, valid data and invalid data, etc.) recognized by the file system 142 may be accurately represented in the mapping table. Since it is not reflected, the data information recognized by the flash conversion layer FTL and the data information recognized by the file system 142 do not coincide. For example, for some commands, such as a discard command, under certain conditions of the file system 142, the file system 142 may not transmit the discard information to the nonvolatile memory device 120. The card information may not be filtered and transmitted to the nonvolatile memory device 120, and the power off may be performed while the card information transmitted to the nonvolatile memory device 120 is temporarily stored in the random access memory. Or the like may be lost.
  • the data information for example, valid data and invalid data, etc.
  • the flash conversion layer FTL
  • Recognizing data information eg, information about valid data and invalid data, etc.
  • the erase operation is very slow compared to the read operation or the write operation due to the characteristics of the nonvolatile memory device 120
  • the user may experience a decrease in performance during the data update operation of the nonvolatile memory device 120 (eg, freezing).
  • the updated data is written to a free block (e.g., a log block) so as not to feel the phenomenon, but a block containing previous data (i.e. invalid data) is not erased in many cases.
  • Such a scheme includes data information recognized by the file system 142 (eg, information about valid data and invalid data) and data information recognized by the flash conversion layer FTL (eg, Mismatch between valid data and invalid data).
  • a dirty state in which a free block for the garbage collection operation of the nonvolatile memory device 120 is insufficient may be deepened.
  • the host device 140 that is, the file system 142 of the host device 140.
  • the data information recognized by the file system 142 is only about 30% of the data, whereas the data information recognized by the flash conversion layer (FTL) is 90% of the data. Things can happen.
  • the host device 140 which identifies only about 30% of the data as valid data, cannot effectively eliminate the dirty state of the nonvolatile memory device 120, which determines that 90% of the data is valid data.
  • the valid data that the file system 142 grasps is the actual valid data (that is, the real valid data).
  • Data, and a significant portion of the valid data grasped by the flash conversion layer FTL are invalid data.
  • the flash conversion layer FTL may cause inefficiency in the overall operation of the nonvolatile memory device 120 as well as the garbage collection operation.
  • the flash translation layer FTL recognizes an invalid block composed only of invalid pages on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 as a valid block including at least one valid page, the invalid block is invalid.
  • Garbage collection operations for invalid blocks consisting only of pages can only be delayed (even moving the invalid blocks consisting only of invalid pages insignificantly when performing a wear leveling operation).
  • the nonvolatile memory device 120 In order for the nonvolatile memory device 120 to operate quickly, Considering that the structure requires a large number of free blocks, the dirty state of the nonvolatile memory device 120 is inevitably deepened.
  • nonvolatile memory device 120 for example, NAND flash memory device
  • hot access with a high frequency of use may be performed.
  • the data e.g., system file data, etc.
  • cold data e.g., video file data, photo file data, music file data, etc.
  • garbage collection operations for the block may not be frequently performed when the cold data are collected in one block.
  • hot data and cold data may be disposed adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120.
  • PHYSICAL ADDRESS physical address
  • the flash conversion layer FTL may display hot data and cold data of the nonvolatile memory device 120. There is a limit to placing each adjacent on the physical address (PHYSICAL ADDRESS).
  • the file system 142 of the host device 140 may store target data (that is, a logical address) on a logical address (LOGICAL ADDRESS).
  • target data that is, a logical address
  • LOGICAL ADDRESS On the physical address (PHYSICAL ADDRESS) of the non-volatile memory device 120 in a manner of collecting (indicated by TLAB-1, ..., TLAB-m) and writing continuously to a new logical address area (i.e., indicated as REWRITE).
  • Target data i.e., denoted by PAGE-1, ..., PAGE-n
  • file system driven fragmentation operation i.e., denoted by PAGE-1, ..., PAGE-n
  • the data block size on the logical address (LOGICAL ADDRESS) and the page size on the physical address (PHYSICAL ADDRESS) may be the same (that is, m and n are the same) or different (that is, m and n are different).
  • the data block size on the logical address may be 4 KB
  • the page size on the physical address may be 4 KB or 8 KB
  • the block size on the physical address may be 512 KB. have.
  • the data block size on the logical address, the page size on the physical address, and the block size on the physical address may be variously determined according to a required condition.
  • the file system driven fragmentation operation may be performed every preset period (eg, a period in which the user does not use the nonvolatile memory system 100), or a user-specified time (eg, the user may perform a file system driven fragmentation operation).
  • the background operation including the garbage collection operation is performed when the write operation, the read operation, and the erase operation are not performed in the nonvolatile memory device 120. Can be performed).
  • the file system 142 divides the data into valid data and invalid data on a logical address (LOGICAL ADDRESS) recognized by the file system 142, and collects the valid data into a new logical address area in succession.
  • a rewrite operation that is, denoted as REWRITE
  • REWRITE a rewrite operation
  • a file system-driven fragmentation operation of arranging valid data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 may be performed.
  • the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other.
  • the data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL.
  • the nonvolatile memory system 100 may arrange valid data adjacent to the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 based on the data information recognized by the file system 142. That is, if only valid data on the logical address LOGICAL ADDRESS recognized by the file system 142 is continuously written to the new logical address area, a free block (eg, the physical address PHYSICAL ADDRESS) of the nonvolatile memory device 120 may be stored. For example, actual valid data are written continuously in a log block.
  • the file system 142 may substantially achieve the same effect as garbage collection operations performed by the flash translation layer (FTL).
  • the file system 142 since the file system 142 more accurately recognizes valid data and invalid data than the flash translation layer FTL, the file system 142 performs a file system-driven fragmentation operation so that only actual valid data is stored in the nonvolatile memory device. It may be disposed adjacent to the physical address (PHYSICAL ADDRESS) of 120.
  • the file system 142 may provide an erase command or a trim command for invalid data to the nonvolatile memory device 120 through the host controller 144.
  • the erase command or the trim command may guarantee an unmapping state of invalid data in the mapping table.
  • the flash translation layer FTL may recognize only actual valid data as valid data on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120.
  • the file system 142 performs a rewrite operation that divides the data into valid data and invalid data on a logical address and collects the valid data in a new logical address area in succession (i.e., , REWRITE), the valid data on the logical address (LOGICAL ADDRESS) is divided into hot data and cold data, the hot data are collected and continuously written in the first new logical address area, and the cold data are collected It is possible to continuously write to the second new logical address area.
  • the file system 142 may classify valid data into hot data and cold data based on the file type.
  • the file system 142 may divide the valid data into hot data and cold data based on the usage access frequency.
  • the file system 142 may divide the valid data into hot data and cold data based on the file capacity.
  • this is merely an example, and the division of the hot data and the cold data may be performed in various ways.
  • the file system 142 divides the data into hot data and cold data on a logical address (LOGICAL ADDRESS) recognized by the file system 142 and collects the hot data consecutively in the first new logical address area.
  • Hot data on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120 by performing a rewrite operation (that is, denoted as REWRITE) to collect cold data and continuously write the cold data to the second new logical address area.
  • REWRITE rewrite operation
  • file system-driven fragmentation operations for arranging the adjacent and cold data, respectively.
  • the file system 142 may classify the data into hot data and cold data based on a file type.
  • the file system 142 may divide the data into hot data and cold data based on the usage access frequency.
  • the file system 142 may classify the data into hot data and cold data based on the file capacity.
  • the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other.
  • the data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL.
  • the nonvolatile memory system 100 may arrange hot data and cold data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 based on the data information recognized by the file system 142. Can be.
  • a free block on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 may be used.
  • the nonvolatile memory device may be used.
  • Cold data are continuously written to a free block (eg, a log block) on the physical address PHYSICAL ADDRESS of 120.
  • the file system 142 may arrange hot data and cold data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 through a file system driven fragmentation operation.
  • the file system 142 divides the data into hot data and cold data on the logical address, collects the hot data and writes them continuously into the first new logical address area, and collects the cold data. 2
  • the hot data on the logical address LOGICAL ADDRESS
  • the file system 142 divides cold data into valid cold data and invalid cold data on a logical address, and then removes only valid cold data.
  • the file system 142 sends an erase command or a trim command for the invalid hot data and the invalid cold data to the nonvolatile memory device 120 through the host controller 144. Can provide.
  • the erase command or the trim command may guarantee an unmapping state for invalid hot data and invalid cold data in the mapping table. Accordingly, the hot data and the cold data are divided and disposed adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, and only the actual valid data are physical addresses PHYSICAL ADDRESS of the nonvolatile memory device 120. May be adjacent to each other.
  • the nonvolatile memory system 100 may effectively reduce the frequency of garbage collection operations performed in the nonvolatile memory device 120 by performing a file system driven fragmentation operation for hot data and cold data.
  • FIG. 4 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device adjacently places valid data on a physical address of a nonvolatile memory device in the nonvolatile memory system of FIG. 1
  • FIG. 5 is a nonvolatile memory of FIG. 1.
  • FIG. 6 is a diagram illustrating an example in which valid data are continuously written to a new logical address area by a file system of a host device in a memory system.
  • FIG. 6 is a diagram illustrating valid data being continuously written to a new logical address area in the nonvolatile memory system of FIG. 1.
  • FIG. 1 is a diagram illustrating an example in which valid data are disposed adjacent to physical addresses of a nonvolatile memory device as they are written.
  • the file system 142 of the host device 140 stores valid data (VALID, V) and invalid data on a logical address (LOGICAL ADDRESS) recognized by the file system 142.
  • a logical address (LOGICAL ADDRESS) recognized by the file system 142.
  • the valid data (VALID, V) are collected and continuously written in a new logical address area (Step S140), and the erase command for invalid data (INVALID, I) is performed.
  • the trim command may be provided to the nonvolatile memory device 120 (Step S160).
  • the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other.
  • the data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Therefore, the valid data VALID and V grasped by the file system 142 are actual valid data, and a large part of the valid data VALID and V grasped by the flash conversion layer FTL are invalid data. Since (INVALID, I), it is effective that the file system 142 takes the initiative to perform the fragmentation operation. Accordingly, as shown in FIG.
  • the file is mixed.
  • the system 142 collects only valid data (VALID, V) and continuously writes (ie, denotes REWRITE) to a new logical address area, thereby freeing a block on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120.
  • VALID, V may be continuously written to the log block.
  • valid data VALID and V may be adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. For example, as shown in FIG.
  • the valid data VALID on the logical address. , V) is successively written to the new logical address area, so that the valid data VALID and V, which are distributed in various blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, are free blocks (eg, For example, it may be disposed adjacent to a log block.
  • the valid data VALID and V are disposed adjacent to the free block, another valid page may be additionally written to the free page F in the free block.
  • the mapping table The unmapping of the invalid data INVALID and I is completed, and thus, the flash translation layer FTL of the nonvolatile memory device 120 is located on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Only actual valid data VALID and V may be recognized as valid data VALID and V.
  • the file system 142 divides the data into valid data VALID and V and invalid data INVALID and I on a logical address LOGICAL ADDRESS.
  • REWRITE a rewrite operation
  • the hot data may be collected and continuously written in the first new logical address area
  • the cold data may be collected and continuously written in the second new logical address area.
  • the actual valid data (VALID, V) is disposed adjacent to the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120, at the same time, the hot data and the cold data is divided into the nonvolatile memory device 120 It may be disposed adjacent to each other on the physical address (PHYSICAL ADDRESS).
  • the nonvolatile memory system 100 may perform the file system driven fragmentation.
  • the operation may be performed at predetermined intervals, only at a user-specified time, or only when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120.
  • FIG. 7 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device in the nonvolatile memory system of FIG. 1 places hot data and cold data adjacently on a physical address of the nonvolatile memory device.
  • hot data or cold data
  • FIG. 9 is a nonvolatile memory of FIG. 1.
  • hot data and cold data are arranged adjacent to each other on a physical address of a nonvolatile memory device. .
  • the file system 142 of the host device 140 may display data on the logical address LOGICAL ADDRESS recognized by the file system 142 and the hot data HOT and H and the cold data.
  • the hot data (HOT, H) is collected and continuously written in the first new logical address area (Step S240), and the cold data (COLD, C) are collected.
  • the second new logical address area may be continuously written (Step S260).
  • the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other.
  • the data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Therefore, as shown in FIG. 8, in the state where hot data HOT and H and cold data COLD and C are mixed on a logical address LOGICAL ADDRESS recognized by the file system 142, the file is mixed.
  • the system 142 collects only the hot data (HOT, H) and continuously writes (ie, denotes REWRITE) to the first new logical address area, thereby resetting the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120.
  • Hot data HOT and H may be continuously written to one free block.
  • the file system 142 collects only the cold data COLD and C and continuously writes them to the second new logical address area, thereby allowing the file system 142 to write on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120.
  • Cold data COLD and C may be continuously written to the second free block.
  • the hot data HOT and H and the cold data COLD and C may be adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. For example, as shown in FIG. 9, assuming that the data block size on the logical address and the page size on the physical address are the same, the valid data VALID on the logical address.
  • V) is continuously written in the new logical address area, so that the hot data HOT and H, which have been distributed in several blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, are first free block.
  • Cold data COLD and C which are distributed in various blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, may be disposed adjacent to the second free block. .
  • hot data HOT and H with high usage access and cold data COLD and C with low usage access are separately disposed on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Therefore, the frequency of garbage collection operations performed in the nonvolatile memory device 120 can be reduced.
  • hot data HOT and H with high usage access and cold data COLD and C with low usage access are mixed on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Since unnecessary garbage collection operations that have been performed are prevented, the overall operating performance of the nonvolatile memory device 120 may be improved.
  • the hot data HOT and H and the cold data COLD and C may be distinguished in various ways.
  • the file system 142 may divide the data into hot data HOT and H and cold data COLD and C based on the file type. For example, the file system 142 may classify multimedia file data such as mpeg, jpeg, and mp3 into cold data COLD and C, and divide the remaining file data into hot data HOT and H.
  • the file system 142 may divide the data into hot data (HOT, H) and cold data (COLD, C) based on the frequency of use access.
  • file system 142 is written once based on access statistics through monitoring, and when read only is repeated, the file system 142 is divided into cold data COLD and C, and the remaining file data is hot data HOT and H.
  • file system 142 may divide the valid data into hot data and cold data based on file capacity.
  • the file system 142 may be classified into cold data COLD and C when the file size is 1MB or more, and the remaining file data may be classified into hot data HOT and H.
  • the file system 142 divides the data into hot data (HOT, H) and cold data (COLD, C) on a logical address (LOGICAL ADDRESS), and collects the hot data (HOT, H).
  • the logical address After the hot data HOT and H are divided into valid hot data and invalid hot data on the LOGICAL ADDRESS, only the valid hot data may be written in the first new logical address area.
  • the file system 142 performs the rewrite operation (ie, REWRITE)
  • the file system 142 divides the cold data COLD and C into valid cold data and invalid cold data on a logical address LOGICAL. Only valid cold data can be written to the second new logical address area.
  • the file system 142 may provide an erase command or a trim command for invalid hot data and invalid cold data to the nonvolatile memory device 120 through the host controller 144.
  • a clear command or a trim command for the invalid hot data and the invalid cold data is provided to the nonvolatile memory device 120 to guarantee an unmapping state for the invalid hot data and the invalid cold data in the mapping table.
  • the flash translation layer (FTL) of the nonvolatile memory device 120 may be configured to have a physical address (eg, a physical address) of the nonvolatile memory device 120. Only actual valid hot data and actual valid cold data on the PHYSICAL ADDRESS may be recognized as valid hot data and valid cold data.
  • the nonvolatile memory system 100 performs garbage collection performed on the nonvolatile memory device 120 by performing a file system driven fragmentation operation for the hot data HOT and H and the cold data COLD and C.
  • the frequency of operation can be reduced.
  • one hot page (HOT, H) ie, hot data
  • a plurality of cold pages in one block on a physical address (PHYSICAL ADDRESS) of the nonvolatile memory device COLD, C) i.e., cold data
  • the nonvolatile memory system 100 may display hot data HOT and H with high usage access and cold data COLD with low usage access on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120.
  • hot data (HOT, H) with high usage access and cold data (COLD, C) with low usage access on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120 It is possible to effectively solve the problem of deepening of the dirty state caused by the mixed arrangement.
  • the nonvolatile memory system 100 uses hot data HOT and H with high usage access and cold data COLD with low usage access on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120.
  • the nonvolatile memory system 100 may perform the file system driven fragmentation. The operation may be performed at predetermined intervals, only at a user-specified time, or only when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120.
  • FIG. 10 and 11 illustrate another example of a file system driven fragmentation operation performed by the nonvolatile memory system of FIG. 1.
  • the data block size on the logical address may be 4 KB
  • the page size on the physical address may be 8 KB.
  • the write request sequence is B1, B3, B5, Assuming a B7, B2, B4, B6, B8, B9, B11, B13, B15, B10, B12, B14, B16 order, a 4KB data block can be written to an 8KB page in a block on a physical address. .
  • target data i.e., indicated by B1, ..., B16
  • logical address LOGICAL ADDRESS
  • target data ie, denoted by B1,..., B16
  • PHYSICAL ADDRESS the physical address of the nonvolatile memory device 120.
  • the file system 142 collects the target data (ie, indicated by B1, ..., B16) on the logical address LOGICAL in order and continuously writes them to the new logical address area, the nonvolatile memory device.
  • target data ie, indicated by B1,..., B16
  • target data may be sequentially arranged adjacently.
  • the nonvolatile memory system 100 not only enables the file system 142 to effectively remove the dirty state of the nonvolatile memory device 120, but also operates the nonvolatile memory device 100 in operation of the nonvolatile memory system 100.
  • Data scattered in various places on the physical address (PHYSICAL ADDRESS) of 120 may be arranged adjacent to each other in order.
  • the nonvolatile memory system 100 may greatly improve the overall operating performance of the nonvolatile memory device 120 (eg, increase an operation speed and increase a space utilization rate).
  • FIG. 12 is a flowchart illustrating a process of determining whether a file system driven fragmentation operation is performed by the nonvolatile memory system of FIG. 1.
  • Step S310 After driving the nonvolatile memory device 120 (Step S310), the nonvolatile memory system 100 checks whether a predetermined condition for performing a file system-driven fragmentation operation is satisfied (Step S320). Can be. At this time, if a predetermined condition for performing the file system driven fragmentation operation is satisfied, the nonvolatile memory system 100 may perform the file system driven fragmentation operation (Step S330). On the other hand, if a predetermined condition for performing the file system driven fragmentation operation is not satisfied, the nonvolatile memory system 100 may perform the file system driven fragmentation operation (Step S340).
  • the preset condition may include a condition in which a preset period arrives, a condition in which a user specified time arrives, a condition in which a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120.
  • the file system driven fragmentation operation since the file system driven fragmentation operation causes the write operation and the erase operation to the nonvolatile memory device 120, it requires a relatively long time.
  • the file system driven fragmentation operation is performed in the nonvolatile memory system 100 regardless of the user's intention, the user may experience a performance degradation of the nonvolatile memory device 120.
  • the file system driven fragmentation operation can put a significant burden on the nonvolatile memory system 100 in terms of operation.
  • the nonvolatile memory system 100 performs the file system-driven fragmentation operation at predetermined intervals, only at a user-specified time, or at the nonvolatile memory device 120 to perform a write operation, a read operation, and an erase operation. Only when it does not.
  • the above-described conditions ie, a condition in which a predetermined period arrives, a condition in which a user-specified time arrives, and a condition in which a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120
  • the preset condition for performing the file system driven fragmentation operation is not limited thereto.
  • nonvolatile memory system As mentioned above, although the nonvolatile memory system according to the embodiments of the present invention has been described with reference to the drawings, the above description is merely an example, and one of ordinary skill in the art without departing from the technical spirit of the present invention. It may be modified and changed by. For example, the present invention may be variously applied to a nonvolatile memory system having a semiconductor memory device having structural characteristics and / or operational characteristics similar to those of a NAND flash memory device.
  • the present invention can be applied to a nonvolatile memory system including a NAND flash memory device. Accordingly, the present invention can be applied to a solid state drive (SSD), a secure digital card (SDCARD), a universal flash storage (UFS), an embedded multimedia card (EMMC), a CF card, a memory stick, an XD picture card, and the like.
  • SSD solid state drive
  • SDCARD secure digital card
  • UFS universal flash storage
  • EMMC embedded multimedia card
  • CF card CF card
  • memory stick a memory stick
  • XD picture card and the like.
  • nonvolatile memory system 120 nonvolatile memory device
  • NAND flash memory 124 NAND controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A non-volatile memory system comprises: a non-volatile memory device comprising a NAND flash memory and a NAND controller for controlling the NAND flash memory; and a host device comprising a file system and a host controller for receiving an input of a command from the file system and provides the command to the non-volatile memory device. Here, the file system divides data into valid data and invalid data on a logical address recognized by the file system, and performs a rewriting operation for collecting the valid data and continuously writing the same in a new logical address area, thereby performing a file system-initiated fragmentation operation for arranging the valid data adjacent to each other on a physical address of the non-volatile memory device.

Description

비휘발성 메모리 시스템Non-volatile memory system
본 발명은 반도체 메모리 시스템에 관한 것이다. 보다 상세하게는, 본 발명은 비휘발성 메모리 장치(예를 들어, 낸드 플래시 메모리(NAND flash memory) 장치 등)를 포함하는 비휘발성 메모리 시스템에 관한 것이다.The present invention relates to a semiconductor memory system. More specifically, the present invention relates to a nonvolatile memory system including a nonvolatile memory device (eg, a NAND flash memory device, etc.).
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화, 대용량화 및 저비용화 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치가 소형화, 대용량화 및 저비용화에 적합하여 널리 사용되고 있다. 일반적으로, 낸드 플래시 메모리 장치는 페이지(page) 단위로 기입(write) 동작과 독출(read) 동작을 수행하고, 블록(block) 단위로 소거(erase) 동작을 수행하기 때문에, 호스트 장치의 파일 시스템(file system)을 지원하기 위한 플래시 변환 레이어(flash translation layer; FTL)를 낸드 컨트롤러에 구비하고, 플래시 변환 레이어를 이용하여 기입 동작, 독출 동작, 소거 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작, 가비지 콜렉션(garbage collection) 동작(또는, 리클레임(reclaim) 동작), 웨어 레벨링(wear leveling) 동작 등을 수행한다.The semiconductor memory device may be classified into a volatile memory device and a nonvolatile memory device according to whether data can be stored in a state where power is not supplied. Recently, with the trend of miniaturization, large capacity, and low cost of semiconductor memory devices, NAND flash memory devices are widely used in nonvolatile memory devices because they are suitable for miniaturization, large capacity, and low cost. In general, a NAND flash memory device performs a write operation and a read operation in units of pages, and performs an erase operation in units of blocks. A flash translation layer (FTL) is provided in the NAND controller to support a file system, and a write operation, a read operation, an erase operation, a merge operation, and a copyback are performed using the flash translation layer. ) Operations, compaction operations, garbage collection operations (or reclaim operations), wear leveling operations, and the like.
한편, 플래시 변환 레이어는 논리적 어드레스(logical address)와 물리적 어드레스(physical address) 사이의 맵핑 정보가 저장된 맵핑 테이블(mapping table)을 이용하여 어드레스 맵핑(address mapping) 동작을 수행한다. 그러나, 낸드 플래시 메모리 장치가 오랜 시간 동안 동작함에 따라 파일 시스템이 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)가 맵핑 테이블에 정확하게 반영되지 않아서(즉, 플래시 변환 레이어가 인식하는 데이터 정보와 파일 시스템이 인식하는 데이터 정보가 불일치하게 됨) 가비지 콜렉션 동작 등을 위한 프리 블록(free block)이 부족해지는 더티 상태(dirty status)가 심화되고, 낸드 플래시 메모리 장치의 물리적 어드레스 상에서 사용 접근 빈도가 높은 핫(hot) 데이터들과 사용 접근 빈도가 낮은 콜드(cold) 데이터들이 혼재되어 기입됨에 따라 가비지 콜렉션 동작의 빈도가 증가하기 때문에, 낸드 플래시 메모리 장치의 동작 성능 저하(예를 들어, 기입 속도 저하 등)가 발생하고 있다.Meanwhile, the flash translation layer performs an address mapping operation by using a mapping table in which mapping information between a logical address and a physical address is stored. However, as the NAND flash memory device operates for a long time, data information recognized by the file system (for example, information about valid data and invalid data, etc.) is not accurately reflected in the mapping table (ie, flash conversion). The data information recognized by the layer and the data information recognized by the file system become inconsistent. A dirty status that causes a lack of free blocks for garbage collection operation, etc. is deepened, and the physical state of the NAND flash memory device is increased. As the frequency of garbage collection increases as hot data with high usage access and cold data with low usage access are mixed on the address, the operation performance of the NAND flash memory device decreases (eg, For example, a decrease in writing speed and the like have occurred.
본 발명의 일 목적은 호스트 장치의 파일 시스템으로 하여금 비휘발성 메모리 장치(예를 들어, 낸드 플래시 메모리 장치 등)의 더티 상태를 효과적으로 해소하고, 비휘발성 메모리 장치에서 수행되는 가비지 콜렉션 동작의 빈도를 감소시킴으로써 비휘발성 메모리 장치의 전반적인 동작 성능을 향상시키는 비휘발성 메모리 시스템을 제공하는 것이다. 다만, 본 발명의 목적은 상술한 목적으로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.One object of the present invention is to allow a file system of a host device to effectively eliminate a dirty state of a nonvolatile memory device (eg, a NAND flash memory device) and to reduce the frequency of garbage collection operations performed in the nonvolatile memory device. By providing a nonvolatile memory system that improves the overall operating performance of the nonvolatile memory device. However, the object of the present invention is not limited to the above-described object, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리와 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 비휘발성 메모리 장치 및 파일 시스템과 상기 파일 시스템으로부터 커맨드를 입력받아 상기 비휘발성 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함할 수 있다. 이 때, 상기 파일 시스템은 상기 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 유효 데이터들과 무효 데이터들로 구분하고 상기 유효 데이터들을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입(rewrite) 동작을 수행함으로써, 상기 비휘발성 메모리 장치의 물리적 어드레스 상에서 상기 유효 데이터들을 인접하게 배치시키는 파일 시스템 주도 단편화(defragmentation) 동작을 수행할 수 있다.In order to achieve the object of the present invention, the nonvolatile memory system according to the embodiments of the present invention and the nonvolatile memory device and file system having at least one NAND flash memory and a NAND controller for controlling the NAND flash memory; The host device may include a host device including a host controller that receives a command from the file system and provides the command to the nonvolatile memory device. At this time, the file system divides data into valid data and invalid data on a logical address recognized by the file system, collects the valid data, and continuously writes the data into a new logical address area. As a result, a file system driven defragmentation operation of arranging the valid data on the physical address of the nonvolatile memory device may be performed.
일 실시예에 의하면, 상기 파일 시스템 주도 단편화 동작이 수행되면, 상기 파일 시스템은 맵핑 테이블에서 상기 무효 데이터들에 대한 언맵핑 상태를 보장하는 소거(erase) 커맨드 또는 트림(trim) 커맨드를 상기 호스트 컨트롤러를 통해 상기 비휘발성 메모리 장치에 제공할 수 있다.According to an embodiment, when the file system driven fragmentation operation is performed, the file system may issue an erase command or a trim command to ensure an unmapping state for the invalid data in a mapping table of the host controller. It can be provided to the nonvolatile memory device through.
일 실시예에 의하면, 상기 재기입 동작이 수행될 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 유효 데이터들을 핫(hot) 데이터들과 콜드(cold) 데이터들로 구분한 후, 상기 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하고, 상기 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입할 수 있다.According to an embodiment, when the rewrite operation is performed, the file system divides the valid data into hot data and cold data on the logical address, and then collects the hot data. The data may be continuously written to the first new logical address area, and the cold data may be collected and continuously written to the second new logical address area.
일 실시예에 의하면, 상기 파일 시스템은 상기 유효 데이터들을 파일 종류에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may classify the valid data into the hot data and the cold data based on a file type.
일 실시예에 의하면, 상기 파일 시스템은 상기 유효 데이터들을 사용 접근 빈도에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may classify the valid data into the hot data and the cold data based on a usage access frequency.
일 실시예에 의하면, 상기 파일 시스템은 상기 유효 데이터들을 파일 용량에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may divide the valid data into the hot data and the cold data based on a file capacity.
일 실시예에 의하면, 상기 파일 시스템 주도 단편화 동작은 기 설정된 주기마다 수행되거나, 사용자 지정 시간에 수행되거나, 또는 상기 비휘발성 메모리 장치에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때 수행될 수 있다.In example embodiments, the file system-driven fragmentation may be performed every predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. have.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리와 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 비휘발성 메모리 장치 및 파일 시스템과 상기 파일 시스템으로부터 커맨드를 입력받아 상기 비휘발성 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함할 수 있다. 이 때, 상기 파일 시스템은 상기 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 핫(hot) 데이터들과 콜드(cold) 데이터들로 구분하고 상기 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며 상기 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입(rewrite) 동작을 수행함으로써, 상기 비휘발성 메모리 장치의 물리적 어드레스 상에서 상기 핫 데이터들과 상기 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화(defragmentation) 동작을 수행할 수 있다.In order to achieve the object of the present invention, the nonvolatile memory system according to the embodiments of the present invention and the nonvolatile memory device and file system having at least one NAND flash memory and a NAND controller for controlling the NAND flash memory; The host device may include a host device including a host controller that receives a command from the file system and provides the command to the nonvolatile memory device. At this time, the file system divides the data into hot data and cold data on a logical address recognized by the file system, collects the hot data, and writes the hot data continuously into a first new logical address area. A file for arranging the hot data and the cold data adjacent to each other on a physical address of the nonvolatile memory device by performing a rewrite operation of collecting the cold data and continuously writing the cold data to a second new logical address area; System driven defragmentation operations may be performed.
일 실시예에 의하면, 상기 재기입 동작이 수행될 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 핫 데이터들을 유효 핫 데이터들과 무효 핫 데이터들로 구분한 후, 상기 유효 핫 데이터들만 상기 제1 새로운 논리적 어드레스 영역에 기입할 수 있다.According to an embodiment, when the rewrite operation is performed, the file system divides the hot data into valid hot data and invalid hot data on the logical address, and then only the valid hot data are stored in the first new data. It can be written to the logical address area.
일 실시예에 의하면, 상기 재기입 동작을 수행할 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 콜드 데이터들을 유효 콜드 데이터들과 무효 콜드 데이터들로 구분한 후, 상기 유효 콜드 데이터들만 상기 제2 새로운 논리적 어드레스 영역에 기입할 수 있다.According to one embodiment, when performing the rewrite operation, the file system divides the cold data into valid cold data and invalid cold data on the logical address, and then only the valid cold data is the second new. It can be written to the logical address area.
일 실시예에 의하면, 상기 파일 시스템 주도 단편화 동작이 수행되면, 상기 파일 시스템은 맵핑 테이블에서 상기 무효 핫 데이터들과 상기 무효 콜드 데이터들에 대한 언맵핑 상태를 보장하는 소거(erase) 커맨드 또는 트림(trim) 커맨드를 상기 호스트 컨트롤러를 통해 상기 비휘발성 메모리 장치에 제공할 수 있다.According to an embodiment of the present disclosure, when the file system driven fragmentation operation is performed, the file system may perform an erase command or trim to guarantee an unmapping state for the invalid hot data and the invalid cold data in a mapping table. trim) command to the nonvolatile memory device through the host controller.
일 실시예에 의하면, 상기 파일 시스템은 상기 데이터들을 파일 종류에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may classify the data into the hot data and the cold data based on a file type.
일 실시예에 의하면, 상기 파일 시스템은 상기 데이터들을 사용 접근 빈도에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may classify the data into the hot data and the cold data based on a usage access frequency.
일 실시예에 의하면, 상기 파일 시스템은 상기 데이터들을 파일 용량에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분할 수 있다.In example embodiments, the file system may classify the data into the hot data and the cold data based on a file capacity.
일 실시예에 의하면, 상기 파일 시스템 주도 단편화 동작은 기 설정된 주기마다 수행되거나, 사용자 지정 시간에 수행되거나, 또는 상기 비휘발성 메모리 장치에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때 수행될 수 있다.In example embodiments, the file system-driven fragmentation may be performed every predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. have.
본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 호스트 장치의 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 유효 데이터들과 무효 데이터들로 구분하고, 유효 데이터들을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행함으로써, 비휘발성 메모리 장치의 물리적 어드레스 상에서 유효 데이터들(즉, 호스트 장치의 파일 시스템에 의해 정확하게 판단된 실제 유효 데이터들)을 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 수행할 수 있다. 그 결과, 비휘발성 메모리 장치(예를 들어, 낸드 플래시 메모리 장치 등)의 더티 상태가 효과적으로 해소되어 비휘발성 메모리 장치의 전반적인 동작 성능이 향상될 수 있다.A nonvolatile memory system according to an embodiment of the present invention divides data into valid data and invalid data on a logical address recognized by a file system of a host device, and collects valid data into a new logical address area continuously. By performing the rewrite operation, it is possible to perform a file system driven fragmentation operation in which valid data (i.e., actual valid data accurately determined by the file system of the host device) is adjacently placed on the physical address of the nonvolatile memory device. have. As a result, the dirty state of the nonvolatile memory device (for example, NAND flash memory device, etc.) can be effectively eliminated, thereby improving the overall operating performance of the nonvolatile memory device.
본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 호스트 장치의 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 핫 데이터들과 콜드 데이터들로 구분하고, 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며, 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행함으로써, 비휘발성 메모리 장치의 물리적 어드레스 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 수행할 수 있다. 그 결과, 비휘발성 메모리 장치에서 수행되는 가비지 콜렉션 동작의 빈도가 감소되어 비휘발성 메모리 장치의 전반적인 동작 성능이 향상될 수 있다.A nonvolatile memory system according to embodiments of the present invention divides data into hot data and cold data on a logical address recognized by a file system of a host device, and collects the hot data continuously in a first new logical address area. A file system driven fragmentation operation in which hot data and cold data are adjacent to each other on a physical address of the nonvolatile memory device by performing a rewrite operation that writes and collects cold data and continuously writes the second new logical address area. Can be performed. As a result, the frequency of garbage collection operations performed in the nonvolatile memory device can be reduced, so that the overall operating performance of the nonvolatile memory device can be improved.
다만, 본 발명의 효과는 상술한 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.However, the effects of the present invention are not limited to the above-described effects, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a nonvolatile memory system according to example embodiments.
도 2는 도 1의 비휘발성 메모리 시스템에서 대상 데이터들이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이다. FIG. 2 is a diagram illustrating an example in which target data is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
도 3은 도 1의 비휘발성 메모리 시스템에서 대상 데이터들이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 대상 데이터들이 인접하게 배치되는 일 예를 나타내는 도면이다.3 is a diagram illustrating an example in which target data are disposed adjacent to a physical address of a nonvolatile memory device as target data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1.
도 4는 도 1의 비휘발성 메모리 시스템에서 호스트 장치의 파일 시스템이 비휘발성 메모리 장치의 물리적 어드레스 상에서 유효 데이터들을 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 나타내는 순서도이다.FIG. 4 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device adjacently places valid data on a physical address of a nonvolatile memory device in the nonvolatile memory system of FIG. 1.
도 5는 도 1의 비휘발성 메모리 시스템에서 유효 데이터들이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이다.FIG. 5 is a diagram illustrating an example in which valid data are continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
도 6은 도 1의 비휘발성 메모리 시스템에서 유효 데이터들이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 유효 데이터들이 인접하게 배치되는 일 예를 나타내는 도면이다.FIG. 6 is a diagram illustrating an example in which valid data are adjacently disposed on a physical address of a nonvolatile memory device as valid data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1.
도 7은 도 1의 비휘발성 메모리 시스템에서 호스트 장치의 파일 시스템이 비휘발성 메모리 장치의 물리적 어드레스 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 나타내는 순서도이다.FIG. 7 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device arranges hot data and cold data adjacently on a physical address of a nonvolatile memory device in FIG. 1.
도 8은 도 1의 비휘발성 메모리 시스템에서 핫 데이터들(또는, 콜드 데이터들)이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이다.8 is a diagram illustrating an example in which hot data (or cold data) is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1.
도 9는 도 1의 비휘발성 메모리 시스템에서 핫 데이터들(또는, 콜드 데이터들)이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 핫 데이터들과 콜드 데이터들이 각각 인접하게 배치되는 일 예를 나타내는 도면이다.FIG. 9 illustrates that hot data and cold data are adjacent to each other on a physical address of a nonvolatile memory device as hot data (or cold data) is continuously written to a new logical address area in the nonvolatile memory system of FIG. 1. It is a figure which shows an example arrange | positioned.
도 10 및 도 11은 도 1의 비휘발성 메모리 시스템에 의해 수행되는 파일 시스템 주도 단편화 동작의 다른 예를 나타내는 도면들이다.10 and 11 illustrate another example of a file system driven fragmentation operation performed by the nonvolatile memory system of FIG. 1.
도 12는 도 1의 비휘발성 메모리 시스템이 파일 시스템 주도 단편화 동작의 수행 여부를 결정하는 과정을 나타내는 순서도이다.FIG. 12 is a flowchart illustrating a process of determining whether a file system driven fragmentation operation is performed by the nonvolatile memory system of FIG. 1.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the embodiments of the present invention disclosed in the text, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms and It should not be construed as limited to the embodiments described in.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.As the inventive concept allows for various changes and numerous modifications, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may be referred to as the first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. .
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions of the same elements are omitted.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이고, 도 2는 도 1의 비휘발성 메모리 시스템에서 대상 데이터들이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이며, 도 3은 도 1의 비휘발성 메모리 시스템에서 대상 데이터들이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 대상 데이터들이 인접하게 배치되는 일 예를 나타내는 도면이다.FIG. 1 is a block diagram illustrating a nonvolatile memory system according to embodiments of the present invention, and FIG. 2 illustrates that target data is continuously written to a new logical address area by a file system of a host device in the nonvolatile memory system of FIG. 1. 3 is a diagram illustrating an example in which target data are disposed adjacent to a physical address of a nonvolatile memory device as target data are continuously written to a new logical address area in the nonvolatile memory system of FIG. 1. It is a figure which shows.
도 1 내지 도 3을 참조하면, 비휘발성 메모리 시스템(100)은 비휘발성 메모리 장치(120) 및 호스트 장치(140)를 포함할 수 있다. 예를 들어, 비휘발성 메모리 장치(120)는 낸드 플래시 메모리 장치일 수 있다. 한편, 비휘발성 메모리 장치(120)는 솔리드 스테이트 드라이브(solid state drive; SSD), 시큐어 디지털 카드(secure digital card; SDCARD), 유니버셜 플래시 스토리지(universal flash storage; UFS), 임베디드 멀티미디어 카드(embedded multi media card; EMMC), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 구현될 수 있으나 그에 한정되지는 않는다.1 to 3, the nonvolatile memory system 100 may include a nonvolatile memory device 120 and a host device 140. For example, the nonvolatile memory device 120 may be a NAND flash memory device. The nonvolatile memory device 120 may include a solid state drive (SSD), a secure digital card (SDCARD), universal flash storage (UFS), and an embedded multimedia card. card (EMMC), a compact flash card (CF), a memory stick (memory stick), an XD picture card (XD picture card), etc., but is not limited thereto.
비휘발성 메모리 장치(120)는 낸드 플래시 메모리(122) 및 낸드 플래시 메모리(122)를 제어하는 낸드 컨트롤러를 포함할 수 있다. 도 1에서는 비휘발성 메모리 장치(120)가 1개의 낸드 플래시 메모리(122)를 포함하는 것으로 도시되어 있으나, 이것은 설명의 편의를 위한 것으로서, 비휘발성 메모리 장치(120)는 복수 개의 낸드 플래시 메모리(122)들을 포함할 수 있다. 호스트 장치(140)는 파일 시스템(142) 및 파일 시스템(142)로부터 커맨드를 입력받아 비휘발성 메모리 장치(120)에 제공하는 호스트 컨트롤러(144)를 구비할 수 있다. 일반적으로, 비휘발성 메모리 장치(120)(예를 들어, 낸드 플래시 메모리 장치)는 낸드 플래시 메모리들(122)의 물리적인 구조에 기인하여 독출 동작과 기입 동작은 페이지 단위로 수행하고 소거 동작은 블록 단위로 수행한다. 따라서, 비휘발성 메모리 장치(120)는 랜덤 액세스 메모리 장치(예를 들어, 디램(dynamic random access memory; DRAM) 장치 등)에 비해 기입 동작, 독출 동작 및 소거 동작을 수행함에 있어 많은 제약을 가지고 있다. 그러므로, 비휘발성 메모리 장치(120)는 파일 시스템을 지원하기 위해 플래시 변환 레이어(FTL)를 낸드 컨트롤러(124)에 구비하고, 플래시 변환 레이어(FTL)를 이용하여 독출 동작, 기입 동작, 소거 동작, 병합 동작, 카피백 동작, 컴팩션 동작, 가비지 콜렉션 동작(또는, 리클레임 동작), 웨어 레벨링 동작 등을 수행한다. 다시 말하면, 낸드 컨트롤러(124)는 소프트웨어적으로 구현된 플래시 변환 레이어(FTL)를 실행함으로써 상기 동작들을 수행한다. 이 때, 플래시 변환 레이어(FTL)는 논리적 어드레스(LOGICAL ADDRESS)와 물리적 어드레스(PHYSICAL ADDRESS) 사이의 맵핑 정보가 저장된 맵핑 테이블을 이용하여 호스트 장치(140)가 인식하는 논리적 어드레스(LOGICAL ADDRESS)를 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS)로 변환하는 어드레스 맵핑 동작을 수행한다.The nonvolatile memory device 120 may include a NAND flash memory 122 and a NAND controller that controls the NAND flash memory 122. In FIG. 1, the nonvolatile memory device 120 includes one NAND flash memory 122, but for convenience of description, the nonvolatile memory device 120 may include a plurality of NAND flash memories 122. ) May be included. The host device 140 may include a host controller 144 that receives a command from the file system 142 and the file system 142 and provides the command to the nonvolatile memory device 120. In general, the nonvolatile memory device 120 (eg, a NAND flash memory device) may perform a read operation and a write operation on a page basis, and an erase operation may be performed on a block basis due to the physical structure of the NAND flash memories 122. Perform in units. Accordingly, the nonvolatile memory device 120 has many limitations in performing a write operation, a read operation, and an erase operation as compared with a random access memory device (eg, a dynamic random access memory (DRAM) device). . Therefore, the nonvolatile memory device 120 includes a flash translation layer (FTL) in the NAND controller 124 to support a file system, and uses the flash translation layer (FTL) to read, write, and erase operations. A merge operation, a copyback operation, a compaction operation, a garbage collection operation (or a reclaim operation), and a wear leveling operation are performed. In other words, the NAND controller 124 performs the above operations by executing a software implemented flash conversion layer (FTL). In this case, the flash translation layer FTL uses a mapping table in which mapping information between the logical address and the physical address is stored, and the flash translation layer FTL decrements the logical address recognized by the host device 140. An address mapping operation of converting a physical address (PHYSICAL ADDRESS) of the volatile memory device 120 is performed.
일반적으로, 비휘발성 메모리 장치(120)가 오랜 시간 동안 동작함에 따라, 파일 시스템(142)이 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)가 맵핑 테이블에 정확하게 반영되지 않기 때문에, 플래시 변환 레이어(FTL)가 인식하는 데이터 정보와 파일 시스템(142)이 인식하는 데이터 정보는 일치하지 않게 된다. 예를 들어, 디스카드(discard) 커맨드와 같은 일부 커맨드의 경우, 파일 시스템(142)의 소정의 조건 하에서 파일 시스템(142)이 디스카드 정보를 비휘발성 메모리 장치(120)에 전달하지 않을 수도 있고, 디스카드 정보가 필터링되어 비휘발성 메모리 장치(120)에 전달되지 않을 수도 있으며, 비휘발성 메모리 장치(120)에 전달된 디스카드 정보가 랜덤 액세스 메모리에 임시 저장되어 있는 도중에 파워 오프(power off) 등에 의해 유실될 수도 있다. 이러한 경우, 디스카드 정보가 맵핑 테이블에 반영되지 않기 때문에, 파일 시스템(142)이 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)는 서로 불일치할 수 있다. 또한, 비휘발성 메모리 장치(120)의 특성상 독출 동작이나 기입 동작에 비해 소거 동작이 매우 느리기 때문에, 사용자로 하여금 비휘발성 메모리 장치(120)의 데이터 갱신 동작 시에 성능 저하(예를 들어, 프리징 현상 등)를 느끼지 못하도록, 갱신된 데이터들은 프리 블록(예를 들어, 로그(log) 블록)에 기입하지만, 이전 데이터들(즉, 무효 데이터들)을 포함하고 있는 블록은 소거하지 않는 경우가 많다. 이러한 스킴(scheme)은 파일 시스템(142)이 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보(예를 들어, 유효 데이터들과 무효 데이터들에 대한 정보 등)의 불일치를 가중시킬 수 있다. In general, as the nonvolatile memory device 120 operates for a long time, the data information (for example, valid data and invalid data, etc.) recognized by the file system 142 may be accurately represented in the mapping table. Since it is not reflected, the data information recognized by the flash conversion layer FTL and the data information recognized by the file system 142 do not coincide. For example, for some commands, such as a discard command, under certain conditions of the file system 142, the file system 142 may not transmit the discard information to the nonvolatile memory device 120. The card information may not be filtered and transmitted to the nonvolatile memory device 120, and the power off may be performed while the card information transmitted to the nonvolatile memory device 120 is temporarily stored in the random access memory. Or the like may be lost. In this case, since the diskette information is not reflected in the mapping table, the data information (for example, valid data and invalid data, etc.) recognized by the file system 142 and the flash conversion layer (FTL) are stored. Recognizing data information (eg, information about valid data and invalid data, etc.) may be inconsistent with each other. In addition, since the erase operation is very slow compared to the read operation or the write operation due to the characteristics of the nonvolatile memory device 120, the user may experience a decrease in performance during the data update operation of the nonvolatile memory device 120 (eg, freezing). The updated data is written to a free block (e.g., a log block) so as not to feel the phenomenon, but a block containing previous data (i.e. invalid data) is not erased in many cases. . Such a scheme includes data information recognized by the file system 142 (eg, information about valid data and invalid data) and data information recognized by the flash conversion layer FTL (eg, Mismatch between valid data and invalid data).
이러한 이유로, 비휘발성 메모리 장치(120)의 가비지 콜렉션 동작 등을 위한 프리 블록이 부족해지는 더티 상태가 심화될 수 있다. 특히, 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보가 서로 불일치하기 때문에, 호스트 장치(140)(즉, 호스트 장치(140)의 파일 시스템(142))가 파악하고 있는 유효 데이터들과 무효 데이터들에 기초하여 비휘발성 메모리 장치(120)의 더티 상태를 해소하는 데에는 한계가 있다. 예를 들어, 파일 시스템(142)이 인식하는 데이터 정보에 의해서는 전체의 30% 정도만 유효 데이터들인데 반해, 플래시 변환 레이어(FTL)가 인식하는 데이터 정보에 의해서는 전체의 90%가 유효 데이터들인 상황이 발생할 수 있다. 이러한 경우, 전체의 30% 정도만 유효 데이터들이라고 파악하고 있는 호스트 장치(140)는 전체의 90%가 유효 데이터들이라고 파악하고 있는 비휘발성 메모리 장치(120)의 더티 상태를 효과적으로 해소할 수 없다. 그러나, 파일 시스템(142)이 인식하는 데이터 정보가 플래시 변환 레이어(FTL)가 인식하는 데이터 정보보다 정확하기 때문에, 파일 시스템(142)이 파악하고 있는 유효 데이터들이 실제 유효 데이터들(즉, 진짜 유효 데이터들)이고, 플래시 변환 레이어(FTL)가 파악하고 있는 유효 데이터들 중에서 상당 부분은 무효 데이터들이다. 특히, 플래시 변환 레이어(FTL)가 무효 데이터들을 유효 데이터들로 파악하는 경우, 가비지 콜렉션 동작뿐 만 아니라 비휘발성 메모리 장치(120)의 전반적인 동작에 있어 비효율을 야기시킬 수 있다. 예를 들어, 플래시 변환 레이어(FTL)가 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 무효 페이지들로만 구성된 무효 블록을 적어도 하나 이상의 유효 페이지를 포함하는 유효 블록으로 파악하고 있는 경우, 무효 페이지들로만 구성된 무효 블록에 대한 가비지 콜렉션 동작은 지연(심지어, 웨어 레벨링 동작을 수행할 때 무효 페이지들로만 구성된 무효 블록을 무의미하게 이동시킴)될 수밖에 없는데, 비휘발성 메모리 장치(120)가 빠르게 동작하기 위해서는 그 구조적인 특성상 프리 블록을 많이 확보해야 함을 고려하면, 비휘발성 메모리 장치(120)의 더티 상태는 심화될 수밖에 없는 것이다.For this reason, a dirty state in which a free block for the garbage collection operation of the nonvolatile memory device 120 is insufficient may be deepened. In particular, since the data information recognized by the file system 142 and the data information recognized by the flash conversion layer (FTL) are inconsistent with each other, the host device 140 (that is, the file system 142 of the host device 140). There is a limit to eliminating the dirty state of the nonvolatile memory device 120 based on the valid data and the invalid data that are known by the. For example, the data information recognized by the file system 142 is only about 30% of the data, whereas the data information recognized by the flash conversion layer (FTL) is 90% of the data. Things can happen. In this case, the host device 140, which identifies only about 30% of the data as valid data, cannot effectively eliminate the dirty state of the nonvolatile memory device 120, which determines that 90% of the data is valid data. However, since the data information that the file system 142 recognizes is more accurate than the data information that the flash translation layer FTL recognizes, the valid data that the file system 142 grasps is the actual valid data (that is, the real valid data). Data, and a significant portion of the valid data grasped by the flash conversion layer FTL are invalid data. In particular, when the flash conversion layer FTL identifies invalid data as valid data, the flash conversion layer FTL may cause inefficiency in the overall operation of the nonvolatile memory device 120 as well as the garbage collection operation. For example, when the flash translation layer FTL recognizes an invalid block composed only of invalid pages on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 as a valid block including at least one valid page, the invalid block is invalid. Garbage collection operations for invalid blocks consisting only of pages can only be delayed (even moving the invalid blocks consisting only of invalid pages insignificantly when performing a wear leveling operation). In order for the nonvolatile memory device 120 to operate quickly, Considering that the structure requires a large number of free blocks, the dirty state of the nonvolatile memory device 120 is inevitably deepened.
나아가, 독출 동작과 기입 동작은 페이지 단위로 수행하고 소거 동작은 블록 단위로 수행하는 비휘발성 메모리 장치(120)(예를 들어, 낸드 플래시 메모리 장치)의 특성을 고려할 때, 사용 접근 빈도가 높은 핫 데이터들(예를 들어, 시스템 파일 데이터 등)과 사용 접근 빈도가 낮은 콜드 데이터들(예를 들어, 동영상 파일 데이터, 사진 파일 데이터, 음악 파일 데이터 등)이 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 혼재되는 것은 비휘발성 메모리 장치(120)에 빈번한 가비지 콜렉션 동작을 야기시킬 수 있다. 다시 말하면, 콜드 데이터들은 갱신될 가능성이 상대적으로 낮기 때문에, 콜드 데이터들이 하나의 블록에 모여 있는 경우에는 해당 블록에 대한 가비지 콜렉션 동작은 자주 수행되지 않을 수 있다. 반면에, 핫 데이터들은 갱신될 가능성이 상대적으로 높기 때문에, 핫 데이터들과 콜드 데이터들이 하나의 블록에 혼재되어 있는 경우에는 해당 블록에 대한 가비지 콜렉션 동작은 핫 데이터들 때문에 자주 수행될 수 있다. 그러므로, 핫 데이터들과 콜드 데이터들이 하나의 블록에 혼재되어 있는 상황에서는 핫 데이터들과 콜드 데이터들이 서로 다른 블록에 각각 모여 있는 상황에 비해서 가비지 콜렉션 동작이 자주 수행될 수밖에 없다. 따라서, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시키는 것이 요구된다. 그러나, 상술한 바와 같이, 비휘발성 메모리 장치(120)의 데이터 갱신 동작이 반복됨에 따라 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보 사이의 불일치가 심화되고, 플래시 변환 레이어(FTL)가 인식하는 데이터 정보는 파일 시스템(142)이 인식하는 데이터 정보보다 부정확하기 때문에, 플래시 변환 레이어(FTL)가 핫 데이터들과 콜드 데이터들을 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 각각 인접하게 배치시키는 데에는 한계가 있다.Furthermore, considering the characteristics of the nonvolatile memory device 120 (for example, NAND flash memory device) in which read and write operations are performed in units of pages, and erase operations are performed in units of blocks, hot access with a high frequency of use may be performed. The data (e.g., system file data, etc.) and cold data (e.g., video file data, photo file data, music file data, etc.) with low usage access are stored in the physical address of the nonvolatile memory device 120. Mixed on the PHYSICAL ADDRESS may cause frequent garbage collection operations in the nonvolatile memory device 120. In other words, since cold data is relatively unlikely to be updated, garbage collection operations for the block may not be frequently performed when the cold data are collected in one block. On the other hand, since hot data is more likely to be updated, when hot data and cold data are mixed in one block, garbage collection operation for the block may be frequently performed because of the hot data. Therefore, in a situation where hot data and cold data are mixed in one block, garbage collection operation is inevitably performed as compared to a situation where hot data and cold data are collected in different blocks. Accordingly, hot data and cold data may be disposed adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. However, as described above, as the data update operation of the nonvolatile memory device 120 is repeated, a discrepancy between data information recognized by the file system 142 and data information recognized by the flash translation layer FTL is intensified. Since the data information recognized by the flash conversion layer FTL is inaccurate than the data information recognized by the file system 142, the flash conversion layer FTL may display hot data and cold data of the nonvolatile memory device 120. There is a limit to placing each adjacent on the physical address (PHYSICAL ADDRESS).
이러한 문제점을 해결하기 위하여, 도 2 및 도 3에 도시된 바와 같이, 비휘발성 메모리 시스템(100)에서는 호스트 장치(140)의 파일 시스템(142)이 논리적 어드레스(LOGICAL ADDRESS) 상에서 대상 데이터들(즉, TLAB-1, ..., TLAB-m로 표시)을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 방식(즉, REWRITE로 표시)으로 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 대상 데이터들(즉, PAGE-1, ..., PAGE-n로 표시)을 인접하게 배치(이하, 파일 시스템 주도 단편화 동작으로 명명)시킬 수 있다. 이 때, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈와 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈는 동일(즉, m과 n이 동일)하거나 상이(즉, m과 n이 상이)할 수 있다. 예를 들어, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈는 4KB일 수 있고, 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈는 4KB 또는 8KB일 수 있으며, 물리적 어드레스(PHYSICAL ADDRESS) 상의 블록 사이즈는 512KB일 수 있다. 다만, 이것은 예시적인 것으로서, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈, 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈 및 물리적 어드레스(PHYSICAL ADDRESS) 상의 블록 사이즈는 요구되는 조건에 따라 다양하게 결정될 수 있다. 한편, 파일 시스템 주도 단편화 동작은 상대적으로 많은 시간을 필요로 하기 때문에(즉, 레이턴시(latency)가 큼), 사용자의 의사와 상관없이 비휘발성 메모리 시스템(100)에서 수행되는 경우, 사용자로 하여금 비휘발성 메모리 장치(120)의 성능 저하를 경험하게 만든다. 따라서, 파일 시스템 주도 단편화 동작은 기 설정된 주기(예를 들어, 사용자가 비휘발성 메모리 시스템(100)을 사용하지 않는 주기)마다 수행되거나, 사용자 지정 시간(예를 들어, 사용자가 파일 시스템 주도 단편화 동작을 수행하고자 할 때)에 수행되거나, 또는 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때(예를 들어, 가비지 콜렉션 동작을 포함하는 백그라운드(background) 동작이 수행될 때) 수행될 수 있다. 다만, 이것은 예시적인 것으로서, 파일 시스템 주도 단편화 동작이 수행되는 시간은 요구되는 조건에 따라 다양하게 설정될 수 있다.To solve this problem, as illustrated in FIGS. 2 and 3, in the nonvolatile memory system 100, the file system 142 of the host device 140 may store target data (that is, a logical address) on a logical address (LOGICAL ADDRESS). On the physical address (PHYSICAL ADDRESS) of the non-volatile memory device 120 in a manner of collecting (indicated by TLAB-1, ..., TLAB-m) and writing continuously to a new logical address area (i.e., indicated as REWRITE). Target data (i.e., denoted by PAGE-1, ..., PAGE-n) can be placed adjacently (hereinafter referred to as file system driven fragmentation operation). At this time, the data block size on the logical address (LOGICAL ADDRESS) and the page size on the physical address (PHYSICAL ADDRESS) may be the same (that is, m and n are the same) or different (that is, m and n are different). For example, the data block size on the logical address may be 4 KB, the page size on the physical address may be 4 KB or 8 KB, and the block size on the physical address may be 512 KB. have. However, as an example, the data block size on the logical address, the page size on the physical address, and the block size on the physical address may be variously determined according to a required condition. On the other hand, since file system driven fragmentation operations require a relatively large amount of time (i.e., a high latency), when performed in the nonvolatile memory system 100 regardless of the user's intention, It causes a performance degradation of the volatile memory device 120. Therefore, the file system driven fragmentation operation may be performed every preset period (eg, a period in which the user does not use the nonvolatile memory system 100), or a user-specified time (eg, the user may perform a file system driven fragmentation operation). The background operation including the garbage collection operation is performed when the write operation, the read operation, and the erase operation are not performed in the nonvolatile memory device 120. Can be performed). However, this is merely an example, and the time for which the file system driven fragmentation operation is performed may be variously set according to a required condition.
일 실시예에서, 파일 시스템(142)은 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 유효 데이터들과 무효 데이터들로 구분하고 유효 데이터들을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 유효 데이터들을 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 수행할 수 있다. 상술한 바와 같이, 비휘발성 메모리 장치(120)가 오랜 시간 동안 동작함에 따라, 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보는 일치하지 않게 되고, 파일 시스템(142)이 인식하는 데이터 정보가 플래시 변환 레이어(FTL)가 인식하는 데이터 정보보다 정확하다. 따라서, 파일 시스템(142)이 파악하고 있는 유효 데이터들이 실제 유효 데이터들이고, 플래시 변환 레이어(FTL)가 파악하고 있는 유효 데이터들 중에서 상당 부분은 무효 데이터들이다. 이에, 비휘발성 메모리 시스템(100)은 파일 시스템(142)이 인식하는 데이터 정보에 기초하여 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 유효 데이터들을 인접하게 배치시킬 수 있다. 즉, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들만 새로운 논리적 어드레스 영역에 연속적으로 기입되면, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 프리 블록(예를 들어, 로그 블록)에 실제 유효 데이터들이 연속적으로 기입되는 것이다. 이것은 실질적으로 플래시 변환 레이어(FTL)이 수행하는 가비지 콜렉션 동작과 같은 효과를 달성할 수 있다. 이와 같이, 파일 시스템(142)이 플래시 변환 레이어(FTL)보다 유효 데이터들과 무효 데이터들을 보다 정확하게 파악하고 있으므로, 파일 시스템(142)은 파일 시스템 주도 단편화 동작을 통해 실제 유효 데이터들만 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 인접하게 배치시킬 수 있다.In one embodiment, the file system 142 divides the data into valid data and invalid data on a logical address (LOGICAL ADDRESS) recognized by the file system 142, and collects the valid data into a new logical address area in succession. By performing a rewrite operation (that is, denoted as REWRITE), a file system-driven fragmentation operation of arranging valid data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 may be performed. As described above, as the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other. The data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Therefore, the valid data grasped by the file system 142 are actual valid data, and a large part of the valid data grasped by the flash conversion layer FTL is invalid data. Accordingly, the nonvolatile memory system 100 may arrange valid data adjacent to the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 based on the data information recognized by the file system 142. That is, if only valid data on the logical address LOGICAL ADDRESS recognized by the file system 142 is continuously written to the new logical address area, a free block (eg, the physical address PHYSICAL ADDRESS) of the nonvolatile memory device 120 may be stored. For example, actual valid data are written continuously in a log block. This may substantially achieve the same effect as garbage collection operations performed by the flash translation layer (FTL). As such, since the file system 142 more accurately recognizes valid data and invalid data than the flash translation layer FTL, the file system 142 performs a file system-driven fragmentation operation so that only actual valid data is stored in the nonvolatile memory device. It may be disposed adjacent to the physical address (PHYSICAL ADDRESS) of 120.
한편, 상기 파일 시스템 주도 단편화 동작이 수행되면, 파일 시스템(142)은 무효 데이터들에 대한 소거 커맨드 또는 트림 커맨드를 호스트 컨트롤러(144)를 통해 비휘발성 메모리 장치(120)에 제공할 수 있다. 이 때, 소거 커맨드 또는 트림 커맨드는 디스카드 커맨드와는 달리 맵핑 테이블에서 무효 데이터들에 대한 언맵핑(unmapping) 상태를 보장할 수 있다. 그 결과, 플래시 변환 레이어(FTL)는 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 실제 유효 데이터들만 유효 데이터들로 인식하게 될 수 있다. 실시예에 따라, 파일 시스템(142)은 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 유효 데이터들과 무효 데이터들로 구분하고 유효 데이터들을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)할 때, 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들을 핫 데이터들과 콜드 데이터들로 구분한 후, 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하고, 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입할 수 있다. 이 경우, 실제 유효 데이터들만 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 인접하게 배치됨과 동시에, 핫 데이터들과 콜드 데이터들이 구분되어 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 각각 인접하게 배치될 수 있다. 예를 들어, 파일 시스템(142)은 유효 데이터들을 파일 종류에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 다른 예를 들어, 파일 시스템(142)은 유효 데이터들을 사용 접근 빈도에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 또 다른 예를 들어, 파일 시스템(142)은 유효 데이터들을 파일 용량에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 다만, 이것은 예시적인 것으로서, 핫 데이터들과 콜드 데이터들의 구분은 다양한 방식으로 이루어질 수 있다.Meanwhile, when the file system driven fragmentation operation is performed, the file system 142 may provide an erase command or a trim command for invalid data to the nonvolatile memory device 120 through the host controller 144. In this case, unlike the discard command, the erase command or the trim command may guarantee an unmapping state of invalid data in the mapping table. As a result, the flash translation layer FTL may recognize only actual valid data as valid data on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. According to an embodiment, the file system 142 performs a rewrite operation that divides the data into valid data and invalid data on a logical address and collects the valid data in a new logical address area in succession (i.e., , REWRITE), the valid data on the logical address (LOGICAL ADDRESS) is divided into hot data and cold data, the hot data are collected and continuously written in the first new logical address area, and the cold data are collected It is possible to continuously write to the second new logical address area. In this case, only actual valid data is disposed adjacent to the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120, and at the same time, the hot data and the cold data are divided so that the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120 is separated. May be disposed adjacent to each other. For example, the file system 142 may classify valid data into hot data and cold data based on the file type. As another example, the file system 142 may divide the valid data into hot data and cold data based on the usage access frequency. As another example, the file system 142 may divide the valid data into hot data and cold data based on the file capacity. However, this is merely an example, and the division of the hot data and the cold data may be performed in various ways.
다른 실시예에서, 파일 시스템(142)은 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 핫 데이터들과 콜드 데이터들로 구분하고 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 수행할 수 있다. 예를 들어, 파일 시스템(142)은 데이터들을 파일(file) 종류에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 다른 예를 들어, 파일 시스템(142)은 데이터들을 사용 접근 빈도에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 또 다른 예를 들어, 파일 시스템(142)은 데이터들을 파일 용량에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 다만, 이것은 예시적인 것으로서, 핫 데이터들과 콜드 데이터들의 구분은 다양한 방식으로 이루어질 수 있다. 상술한 바와 같이, 비휘발성 메모리 장치(120)가 오랜 시간 동안 동작함에 따라, 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보는 일치하지 않게 되고, 파일 시스템(142)이 인식하는 데이터 정보가 플래시 변환 레이어(FTL)가 인식하는 데이터 정보보다 정확하다. 이에, 비휘발성 메모리 시스템(100)은 파일 시스템(142)이 인식하는 데이터 정보에 기초하여 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시킬 수 있다. 즉, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 핫 데이터들이 제1 새로운 논리적 어드레스 영역에 연속적으로 기입되면, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 프리 블록(예를 들어, 로그 블록)에 핫 데이터들이 연속적으로 기입되고, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 콜드 데이터들이 제2 새로운 논리적 어드레스 영역에 연속적으로 기입되면, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 프리 블록(예를 들어, 로그 블록)에 콜드 데이터들이 연속적으로 기입되는 것이다. 이와 같이, 파일 시스템(142)은 파일 시스템 주도 단편화 동작을 통해 핫 데이터들과 콜드 데이터들을 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 각각 인접하게 배치시킬 수 있다.In another embodiment, the file system 142 divides the data into hot data and cold data on a logical address (LOGICAL ADDRESS) recognized by the file system 142 and collects the hot data consecutively in the first new logical address area. Hot data on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120 by performing a rewrite operation (that is, denoted as REWRITE) to collect cold data and continuously write the cold data to the second new logical address area. And file system-driven fragmentation operations for arranging the adjacent and cold data, respectively. For example, the file system 142 may classify the data into hot data and cold data based on a file type. For another example, the file system 142 may divide the data into hot data and cold data based on the usage access frequency. As another example, the file system 142 may classify the data into hot data and cold data based on the file capacity. However, this is merely an example, and the division of the hot data and the cold data may be performed in various ways. As described above, as the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other. The data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Accordingly, the nonvolatile memory system 100 may arrange hot data and cold data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 based on the data information recognized by the file system 142. Can be. That is, when hot data are continuously written in the first new logical address area on the logical address LOGICAL ADDRESS recognized by the file system 142, a free block on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 may be used. For example, if hot data is continuously written to a log block, and cold data are continuously written to a second new logical address area on a logical address recognized by the file system 142, the nonvolatile memory device may be used. Cold data are continuously written to a free block (eg, a log block) on the physical address PHYSICAL ADDRESS of 120. As described above, the file system 142 may arrange hot data and cold data adjacently on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 through a file system driven fragmentation operation.
실시예에 따라, 파일 시스템(142)은 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 핫 데이터들과 콜드 데이터들로 구분하고 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)할 때, 논리적 어드레스(LOGICAL ADDRESS) 상에서 핫 데이터들을 유효 핫 데이터들과 무효 핫 데이터들로 구분한 후, 유효 핫 데이터들만 제1 새로운 논리적 어드레스 영역에 기입할 수 있다. 마찬가지로, 파일 시스템(142)은 상기 재기입 동작을 수행(즉, REWRITE)할 때, 논리적 어드레스(LOGICAL) 상에서 콜드 데이터들을 유효 콜드 데이터들과 무효 콜드 데이터들로 구분한 후, 유효 콜드 데이터들만 제2 새로운 논리적 어드레스 영역에 기입할 수 있다. 한편, 상기 파일 시스템 주도 단편화 동작이 수행되면, 파일 시스템(142)은 무효 핫 데이터들과 무효 콜드 데이터들에 대한 소거 커맨드 또는 트림 커맨드를 호스트 컨트롤러(144)를 통해 비휘발성 메모리 장치(120)에 제공할 수 있다. 이 때, 소거 커맨드 또는 트림 커맨드는 디스카드 커맨드와는 달리 맵핑 테이블에서 무효 핫 데이터들 및 무효 콜드 데이터들에 대한 언맵핑 상태를 보장할 수 있다. 따라서, 핫 데이터들과 콜드 데이터들이 구분되어 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 각각 인접하게 배치됨과 동시에, 실제 유효 데이터들만 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 인접하게 배치될 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 핫 데이터들과 콜드 데이터들을 위한 파일 시스템 주도 단편화 동작을 수행함으로써 비휘발성 메모리 장치(120)에서 수행되는 가비지 콜렉션 동작의 빈도를 효과적으로 감소시킬 수 있다.According to an embodiment, the file system 142 divides the data into hot data and cold data on the logical address, collects the hot data and writes them continuously into the first new logical address area, and collects the cold data. 2 When performing a rewrite operation that continuously writes to a new logical address area (ie, denoted as REWRITE), the hot data on the logical address (LOGICAL ADDRESS) are divided into valid hot data and invalid hot data, and then valid. Only hot data can be written to the first new logical address area. Similarly, when the file system 142 performs the rewrite operation (ie, REWRITE), the file system 142 divides cold data into valid cold data and invalid cold data on a logical address, and then removes only valid cold data. 2 Write to a new logical address area. Meanwhile, when the file system driven fragmentation operation is performed, the file system 142 sends an erase command or a trim command for the invalid hot data and the invalid cold data to the nonvolatile memory device 120 through the host controller 144. Can provide. In this case, unlike the discard command, the erase command or the trim command may guarantee an unmapping state for invalid hot data and invalid cold data in the mapping table. Accordingly, the hot data and the cold data are divided and disposed adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, and only the actual valid data are physical addresses PHYSICAL ADDRESS of the nonvolatile memory device 120. May be adjacent to each other. As such, the nonvolatile memory system 100 may effectively reduce the frequency of garbage collection operations performed in the nonvolatile memory device 120 by performing a file system driven fragmentation operation for hot data and cold data.
도 4는 도 1의 비휘발성 메모리 시스템에서 호스트 장치의 파일 시스템이 비휘발성 메모리 장치의 물리적 어드레스 상에서 유효 데이터들을 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 나타내는 순서도이고, 도 5는 도 1의 비휘발성 메모리 시스템에서 유효 데이터들이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이며, 도 6은 도 1의 비휘발성 메모리 시스템에서 유효 데이터들이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 유효 데이터들이 인접하게 배치되는 일 예를 나타내는 도면이다.4 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device adjacently places valid data on a physical address of a nonvolatile memory device in the nonvolatile memory system of FIG. 1, and FIG. 5 is a nonvolatile memory of FIG. 1. FIG. 6 is a diagram illustrating an example in which valid data are continuously written to a new logical address area by a file system of a host device in a memory system. FIG. 6 is a diagram illustrating valid data being continuously written to a new logical address area in the nonvolatile memory system of FIG. 1. FIG. 1 is a diagram illustrating an example in which valid data are disposed adjacent to physical addresses of a nonvolatile memory device as they are written.
도 4 내지 도 6을 참조하면, 호스트 장치(140)의 파일 시스템(142)은 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 유효 데이터들(VALID, V)과 무효 데이터들(INVALID, I)로 구분(Step S120)한 후, 유효 데이터들(VALID, V)을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입(Step S140)하고, 무효 데이터들(INVALID, I)에 대한 소거 커맨드 또는 트림 커맨드를 비휘발성 메모리 장치(120)에 제공(Step S160)할 수 있다.4 to 6, the file system 142 of the host device 140 stores valid data (VALID, V) and invalid data on a logical address (LOGICAL ADDRESS) recognized by the file system 142. After dividing by (INVALID, I) (Step S120), the valid data (VALID, V) are collected and continuously written in a new logical address area (Step S140), and the erase command for invalid data (INVALID, I) is performed. Alternatively, the trim command may be provided to the nonvolatile memory device 120 (Step S160).
상술한 바와 같이, 비휘발성 메모리 장치(120)가 오랜 시간 동안 동작함에 따라, 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보는 일치하지 않게 되고, 파일 시스템(142)이 인식하는 데이터 정보가 플래시 변환 레이어(FTL)가 인식하는 데이터 정보보다 정확하다. 따라서, 파일 시스템(142)이 파악하고 있는 유효 데이터들(VALID, V)이 실제 유효 데이터들이고, 플래시 변환 레이어(FTL)가 파악하고 있는 유효 데이터들(VALID, V) 중에서 상당 부분은 무효 데이터들(INVALID, I)이므로, 파일 시스템(142)이 주도하여 단편화 동작을 수행하는 것이 효과적이다. 따라서, 도 5에 도시된 바와 같이, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들(VALID, V)와 무효 데이터들(INVALID, I)이 혼재되어 있는 상태에서, 파일 시스템(142)은 유효 데이터들(VALID, V)만을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입(즉, REWRITE로 표시)함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 프리 블록(예를 들어, 로그 블록)에 유효 데이터들(VALID, V)이 연속적으로 기입되도록 할 수 있다. 그 결과, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 유효 데이터들(VALID, V)은 인접하게 배치될 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈와 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈가 동일하다고 가정하면, 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들(VALID, V)이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 여러 블록들에 분산되어 있던 유효 데이터들(VALID, V)이 프리 블록(예를 들어, 로그 블록)에 인접하여 배치될 수 있다. 그 결과, 실질적으로 플래시 변환 레이어(FTL)이 수행하는 가비지 콜렉션 동작과 같은 효과가 달성될 수 있고, 논리적 어드레스(LOGICAL ADDRESS) 상에서 뿐만 아니라 물리적 어드레스(PHYSICAL ADDRESS) 상에서도 데이터 관리가 용이해질 수 있다. 이후, 프리 블록에 유효 데이터들(VALID, V)이 인접하여 배치됨에 따라 프리 블록 내 프리 페이지(F)에는 추가적으로 다른 유효 페이지가 기입될 수 있다.As described above, as the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other. The data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Therefore, the valid data VALID and V grasped by the file system 142 are actual valid data, and a large part of the valid data VALID and V grasped by the flash conversion layer FTL are invalid data. Since (INVALID, I), it is effective that the file system 142 takes the initiative to perform the fragmentation operation. Accordingly, as shown in FIG. 5, in a state where valid data VALID and V and invalid data INVALID and I are mixed on a logical address LOGICAL ADDRESS recognized by the file system 142, the file is mixed. The system 142 collects only valid data (VALID, V) and continuously writes (ie, denotes REWRITE) to a new logical address area, thereby freeing a block on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120. For example, the valid data VALID and V may be continuously written to the log block. As a result, valid data VALID and V may be adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. For example, as shown in FIG. 6, assuming that the data block size on the logical address and the page size on the physical address are the same, the valid data VALID on the logical address. , V) is successively written to the new logical address area, so that the valid data VALID and V, which are distributed in various blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, are free blocks (eg, For example, it may be disposed adjacent to a log block. As a result, substantially the same effect as the garbage collection operation performed by the flash translation layer FTL can be achieved, and data management can be facilitated not only on the logical address, but also on the physical address. Subsequently, as valid data VALID and V are disposed adjacent to the free block, another valid page may be additionally written to the free page F in the free block.
예를 들어, 논리적 어드레스(LOGICAL ADDRESS) 상에서 4KB 데이터 블록들(L0, ..., L100)이 연속적으로 기입되어 있고, 홀수 데이터 블록들(L1, L3, ..., L99)만 삭제(또는, 디스카드)되어 있다고 가정하면, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 해당 블록은 유효 데이터들(VALID, V)(예를 들어, 유효 페이지들)과 무효 데이터들(INVALID, I)(예를 들어, 무효 페이지들)이 번갈아 가면서 존재할 수 있다. 이 때, 파일 시스템(142)이 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들(VALID, V)만을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하면, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 새로운 로그 블록에 유효 데이터들(VALID, V)(예를 들어, 유효 페이지들)만 다시 기입되므로, 실질적으로 플래시 변환 레이어(FTL)이 수행하는 가비지 콜렉션 동작과 같은 효과가 달성되는 것이다. 이후, 맵핑 테이블에서 무효 데이터들(INVALID, I)에 대한 언맵핑 상태를 보장하는 무효 데이터들(INVALID, I)에 대한 소거 커맨드 또는 트림 커맨드가 비휘발성 메모리 장치(120)에 제공되면, 맵핑 테이블에서 무효 데이터들(INVALID, I)에 대한 언맵핑이 완료되고, 그에 따라, 비휘발성 메모리 장치(120)의 플래시 변환 레이어(FTL)는 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 실제 유효 데이터들(VALID, V)만 유효 데이터들(VALID, V)로 인식하게 될 수 있다. 한편, 실시예에 따라, 파일 시스템(142)은 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 유효 데이터들(VALID, V)과 무효 데이터들(INVALID, I)로 구분하고 유효 데이터들(VALID, V)을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)할 때, 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들(VALID, V)을 핫 데이터들과 콜드 데이터들로 구분한 후, 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하고, 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입할 수 있다. 이 경우, 실제 유효 데이터들(VALID, V)만 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 인접하게 배치됨과 동시에, 핫 데이터들과 콜드 데이터들이 구분되어 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 각각 인접하게 배치될 수 있다. 한편, 상기 파일 시스템 주도 단편화 동작은 동작적인 측면에서 비휘발성 메모리 시스템(100)에 상당한 부담(즉, 레이턴시가 상대적으로 큼)을 줄 수 있으므로, 비휘발성 메모리 시스템(100)은 상기 파일 시스템 주도 단편화 동작을 기 설정된 주기마다 수행하거나, 사용자 지정 시간에만 수행하거나, 또는 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때에만 수행할 수 있다.For example, 4 KB data blocks L0, ..., L100 are successively written on a logical address LOGICAL ADDRESS, and only odd data blocks L1, L3, ..., L99 are deleted (or Assuming that the data is discarded, the block on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120 includes valid data VALID and V (eg, valid pages) and invalid data INVALID. , I) (eg, invalid pages) may be present alternately. At this time, if the file system 142 collects only valid data (VALID, V) on a logical address (LOGICAL ADDRESS) and continuously writes the data to a new logical address area, the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120 is generated. Since only valid data VALID, V (e.g., valid pages) are rewritten in a new log block on the above, substantially the same effect as the garbage collection operation performed by the flash translation layer FTL is achieved. Thereafter, when the erase command or the trim command for the invalid data INVALID, I for guaranteeing the unmapping state for the invalid data INVALID, I is provided to the nonvolatile memory device 120, the mapping table The unmapping of the invalid data INVALID and I is completed, and thus, the flash translation layer FTL of the nonvolatile memory device 120 is located on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Only actual valid data VALID and V may be recognized as valid data VALID and V. FIG. Meanwhile, according to an embodiment, the file system 142 divides the data into valid data VALID and V and invalid data INVALID and I on a logical address LOGICAL ADDRESS. The valid data (VALID, V) on the logical address (LOGICAL ADDRESS) as hot data and cold data when performing a rewrite operation (that is, denoted as REWRITE) to collect and continuously write to the new logical address area. After the classification, the hot data may be collected and continuously written in the first new logical address area, and the cold data may be collected and continuously written in the second new logical address area. In this case, only the actual valid data (VALID, V) is disposed adjacent to the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120, at the same time, the hot data and the cold data is divided into the nonvolatile memory device 120 It may be disposed adjacent to each other on the physical address (PHYSICAL ADDRESS). On the other hand, since the file system driven fragmentation operation may put a significant burden on the nonvolatile memory system 100 in operation (ie, the latency is relatively large), the nonvolatile memory system 100 may perform the file system driven fragmentation. The operation may be performed at predetermined intervals, only at a user-specified time, or only when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120.
도 7은 도 1의 비휘발성 메모리 시스템에서 호스트 장치의 파일 시스템이 비휘발성 메모리 장치의 물리적 어드레스 상에서 핫 데이터들과 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화 동작을 나타내는 순서도이고, 도 8은 도 1의 비휘발성 메모리 시스템에서 핫 데이터들(또는, 콜드 데이터들)이 호스트 장치의 파일 시스템에 의해 새로운 논리적 어드레스 영역에 연속적으로 기입되는 일 예를 나타내는 도면이며, 도 9는 도 1의 비휘발성 메모리 시스템에서 핫 데이터들(또는, 콜드 데이터들)이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라 비휘발성 메모리 장치의 물리적 어드레스 상에서 핫 데이터들과 콜드 데이터들이 각각 인접하게 배치되는 일 예를 나타내는 도면이다.FIG. 7 is a flowchart illustrating a file system driven fragmentation operation in which a file system of a host device in the nonvolatile memory system of FIG. 1 places hot data and cold data adjacently on a physical address of the nonvolatile memory device. In the nonvolatile memory system of FIG. 1, hot data (or cold data) is continuously written to a new logical address area by a file system of a host device, and FIG. 9 is a nonvolatile memory of FIG. 1. As hot data (or cold data) are continuously written to a new logical address area in a memory system, hot data and cold data are arranged adjacent to each other on a physical address of a nonvolatile memory device. .
도 7 내지 도 9를 참조하면, 호스트 장치(140)의 파일 시스템(142)은 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)로 구분(Step S220)한 후, 핫 데이터들(HOT, H)을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입(Step S240)하고, 콜드 데이터들(COLD, C)을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입(Step S260)할 수 있다.Referring to FIGS. 7 to 9, the file system 142 of the host device 140 may display data on the logical address LOGICAL ADDRESS recognized by the file system 142 and the hot data HOT and H and the cold data. After dividing by (COLD, C) (Step S220), the hot data (HOT, H) is collected and continuously written in the first new logical address area (Step S240), and the cold data (COLD, C) are collected. The second new logical address area may be continuously written (Step S260).
상술한 바와 같이, 비휘발성 메모리 장치(120)가 오랜 시간 동안 동작함에 따라, 파일 시스템(142)이 인식하는 데이터 정보와 플래시 변환 레이어(FTL)가 인식하는 데이터 정보는 일치하지 않게 되고, 파일 시스템(142)이 인식하는 데이터 정보가 플래시 변환 레이어(FTL)가 인식하는 데이터 정보보다 정확하다. 따라서, 도 8에 도시된 바와 같이, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 핫 데이터들(HOT, H)와 콜드 데이터들(COLD, C)이 혼재되어 있는 상태에서, 파일 시스템(142)은 핫 데이터들(HOT, H)만을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입(즉, REWRITE로 표시)함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 제1 프리 블록에 핫 데이터들(HOT, H)이 연속적으로 기입되도록 할 수 있다. 마찬가지로, 도시되지는 않았지만, 파일 시스템(142)은 콜드 데이터들(COLD, C)만을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 제2 프리 블록에 콜드 데이터들(COLD, C)이 연속적으로 기입되도록 할 수 있다. 그 결과, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)은 각각 인접하게 배치될 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈와 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈가 동일하다고 가정하면, 논리적 어드레스(LOGICAL ADDRESS) 상에서 유효 데이터들(VALID, V)이 새로운 논리적 어드레스 영역에 연속적으로 기입됨에 따라, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 여러 블록들에 분산되어 있던 핫 데이터들(HOT, H)이 제1 프리 블록에 인접하여 배치될 수 있고, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 여러 블록들에 분산되어 있던 콜드 데이터들(COLD, C)이 제2 프리 블록에 인접하여 배치될 수 있다. 그 결과, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 사용 접근 빈도가 높은 핫 데이터들(HOT, H)과 사용 접근 빈도가 낮은 콜드 데이터들(COLD, C)이 분리되어 배치되기 때문에, 비휘발성 메모리 장치(120)에서 수행되는 가비지 콜렉션 동작의 빈도가 감소될 수 있다. 즉, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 사용 접근 빈도가 높은 핫 데이터들(HOT, H)과 사용 접근 빈도가 낮은 콜드 데이터들(COLD, C)이 혼재되어 있음에 따라 수행되었던 불필요한 가비지 콜렉션 동작이 방지되기 때문에 비휘발성 메모리 장치(120)의 전반적인 동작 성능은 향상될 수 있다.As described above, as the nonvolatile memory device 120 operates for a long time, the data information recognized by the file system 142 and the data information recognized by the flash translation layer FTL do not coincide with each other. The data information recognized by 142 is more accurate than the data information recognized by the flash conversion layer FTL. Therefore, as shown in FIG. 8, in the state where hot data HOT and H and cold data COLD and C are mixed on a logical address LOGICAL ADDRESS recognized by the file system 142, the file is mixed. The system 142 collects only the hot data (HOT, H) and continuously writes (ie, denotes REWRITE) to the first new logical address area, thereby resetting the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120. Hot data HOT and H may be continuously written to one free block. Similarly, although not shown, the file system 142 collects only the cold data COLD and C and continuously writes them to the second new logical address area, thereby allowing the file system 142 to write on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Cold data COLD and C may be continuously written to the second free block. As a result, the hot data HOT and H and the cold data COLD and C may be adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. For example, as shown in FIG. 9, assuming that the data block size on the logical address and the page size on the physical address are the same, the valid data VALID on the logical address. , V) is continuously written in the new logical address area, so that the hot data HOT and H, which have been distributed in several blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, are first free block. Cold data COLD and C, which are distributed in various blocks on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120, may be disposed adjacent to the second free block. . As a result, hot data HOT and H with high usage access and cold data COLD and C with low usage access are separately disposed on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Therefore, the frequency of garbage collection operations performed in the nonvolatile memory device 120 can be reduced. That is, hot data HOT and H with high usage access and cold data COLD and C with low usage access are mixed on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. Since unnecessary garbage collection operations that have been performed are prevented, the overall operating performance of the nonvolatile memory device 120 may be improved.
한편, 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)의 구분은 다양한 방식으로 이루어질 수 있다. 일 실시예에서, 파일 시스템(142)은 데이터들을 파일 종류에 기초하여 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)로 구분할 수 있다. 예를 들어, 파일 시스템(142)은 mpeg, jpeg, mp3 등의 멀티미디어 파일 데이터는 콜드 데이터들(COLD, C)로 구분하고, 나머지 파일 데이터는 핫 데이터들(HOT, H)로 구분할 수 있다. 다른 실시예에서, 파일 시스템(142)은 데이터들을 사용 접근 빈도에 기초하여 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)로 구분할 수 있다. 예를 들어, 파일 시스템(142)은 모니터링을 통한 접근 통계에 기초하여 한번 기입되어 독출만이 반복되면 콜드 데이터들(COLD, C)로 구분하고, 나머지 파일 데이터는 핫 데이터들(HOT, H)로 구분할 수 있다. 또 다른 실시예에서, 파일 시스템(142)은 유효 데이터들을 파일 용량에 기초하여 핫 데이터들과 콜드 데이터들로 구분할 수 있다. 예를 들어, 파일 시스템(142)은 파일 사이즈가 1MB 이상이면 콜드 데이터들(COLD, C)로 구분하고, 나머지 파일 데이터는 핫 데이터들(HOT, H)로 구분할 수 있다. 실시예에 따라, 파일 시스템(142)은 논리적 어드레스(LOGICAL ADDRESS) 상에서 데이터들을 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)로 구분하고 핫 데이터들(HOT, H)을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며 콜드 데이터들(COLD, C)을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입 동작을 수행(즉, REWRITE로 표시)할 때, 논리적 어드레스(LOGICAL ADDRESS) 상에서 핫 데이터들(HOT, H)을 유효 핫 데이터들과 무효 핫 데이터들로 구분한 후, 유효 핫 데이터들만 제1 새로운 논리적 어드레스 영역에 기입할 수 있다. 마찬가지로, 파일 시스템(142)은 상기 재기입 동작을 수행(즉, REWRITE)할 때, 논리적 어드레스(LOGICAL) 상에서 콜드 데이터들(COLD, C)을 유효 콜드 데이터들과 무효 콜드 데이터들로 구분한 후, 유효 콜드 데이터들만 제2 새로운 논리적 어드레스 영역에 기입할 수 있다. 한편, 파일 시스템(142)은 무효 핫 데이터들과 무효 콜드 데이터들에 대한 소거 커맨드 또는 트림 커맨드를 호스트 컨트롤러(144)를 통해 비휘발성 메모리 장치(120)에 제공할 수 있다. 이 때, 맵핑 테이블에서 무효 핫 데이터들 및 무효 콜드 데이터들에 대한 언맵핑 상태를 보장하는 무효 핫 데이터들 및 무효 콜드 데이터들에 대한 소거 커맨드 또는 트림 커맨드가 비휘발성 메모리 장치(120)에 제공되면, 맵핑 테이블에서 무효 핫 데이터들 및 무효 콜드 데이터들에 대한 언맵핑이 완료되고, 그에 따라, 비휘발성 메모리 장치(120)의 플래시 변환 레이어(FTL)는 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 실제 유효 핫 데이터들 및 실제 유효 콜드 데이터들만 유효 핫 데이터들과 유효 콜드 데이터들로 인식하게 될 수 있다. The hot data HOT and H and the cold data COLD and C may be distinguished in various ways. In an embodiment, the file system 142 may divide the data into hot data HOT and H and cold data COLD and C based on the file type. For example, the file system 142 may classify multimedia file data such as mpeg, jpeg, and mp3 into cold data COLD and C, and divide the remaining file data into hot data HOT and H. In another embodiment, the file system 142 may divide the data into hot data (HOT, H) and cold data (COLD, C) based on the frequency of use access. For example, the file system 142 is written once based on access statistics through monitoring, and when read only is repeated, the file system 142 is divided into cold data COLD and C, and the remaining file data is hot data HOT and H. Can be divided into In another embodiment, file system 142 may divide the valid data into hot data and cold data based on file capacity. For example, the file system 142 may be classified into cold data COLD and C when the file size is 1MB or more, and the remaining file data may be classified into hot data HOT and H. According to an embodiment, the file system 142 divides the data into hot data (HOT, H) and cold data (COLD, C) on a logical address (LOGICAL ADDRESS), and collects the hot data (HOT, H). When performing a rewrite operation (that is, denoted as REWRITE) that writes continuously to the first new logical address area and collects cold data COLD and C and writes continuously to the second new logical address area, the logical address ( After the hot data HOT and H are divided into valid hot data and invalid hot data on the LOGICAL ADDRESS, only the valid hot data may be written in the first new logical address area. Similarly, when the file system 142 performs the rewrite operation (ie, REWRITE), the file system 142 divides the cold data COLD and C into valid cold data and invalid cold data on a logical address LOGICAL. Only valid cold data can be written to the second new logical address area. The file system 142 may provide an erase command or a trim command for invalid hot data and invalid cold data to the nonvolatile memory device 120 through the host controller 144. At this time, if a clear command or a trim command for the invalid hot data and the invalid cold data is provided to the nonvolatile memory device 120 to guarantee an unmapping state for the invalid hot data and the invalid cold data in the mapping table. After the unmapping of the invalid hot data and the invalid cold data in the mapping table is completed, the flash translation layer (FTL) of the nonvolatile memory device 120 may be configured to have a physical address (eg, a physical address) of the nonvolatile memory device 120. Only actual valid hot data and actual valid cold data on the PHYSICAL ADDRESS may be recognized as valid hot data and valid cold data.
이와 같이, 비휘발성 메모리 시스템(100)은 핫 데이터들(HOT, H)과 콜드 데이터들(COLD, C)을 위한 파일 시스템 주도 단편화 동작을 수행함으로써 비휘발성 메모리 장치(120)에서 수행되는 가비지 콜렉션 동작의 빈도를 감소시킬 수 있다. 예를 들어, 종래의 비휘발성 메모리 시스템에서는, 비휘발성 메모리 장치의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 하나의 블록에 하나의 핫 페이지(HOT, H)(즉, 핫 데이터)와 복수 개의 콜드 페이지들(COLD, C)(즉, 콜드 데이터)인 경우, 핫 페이지(HOT, H)가 덮어쓰기(overwrite)에 의해 무효 페이지가 되고 해당 블록이 가비지 콜렉션 동작의 대상 블록이 되면, 나머지 복수 개의 콜드 페이지들(COLD, C)에 대한 카피 동작을 수행해야 하는 극단적인 상황까지 발생하였다. 따라서, 비휘발성 메모리 시스템(100)은 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 사용 접근 빈도가 높은 핫 데이터들(HOT, H)과 사용 접근 빈도가 낮은 콜드 데이터들(COLD, C)을 분리하여 배치함으로써, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 사용 접근 빈도가 높은 핫 데이터들(HOT, H)과 사용 접근 빈도가 낮은 콜드 데이터들(COLD, C)이 혼재되어 배치됨에 따라 발생했던 더티 상태의 심화 문제를 효과적으로 해결할 수 있다. 뿐만 아니라, 비휘발성 메모리 시스템(100)은 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 사용 접근 빈도가 높은 핫 데이터들(HOT, H)과 사용 접근 빈도가 낮은 콜드 데이터들(COLD, C)을 분리하여 배치함으로써, 비휘발성 메모리 장치(120)에서 수행되는 가비지 콜렉션 동작의 빈도(즉, 가비지 콜렉션 동작의 수행 횟수, 카피 동작의 수행 횟수 등)를 감소시킬 수 있고, 그에 따라, 비휘발성 메모리 장치(120)의 전반적인 동작 성능, 수명 등을 개선할 수 있다. 한편, 상기 파일 시스템 주도 단편화 동작은 동작적인 측면에서 비휘발성 메모리 시스템(100)에 상당한 부담(즉, 레이턴시가 상대적으로 큼)을 줄 수 있으므로, 비휘발성 메모리 시스템(100)은 상기 파일 시스템 주도 단편화 동작을 기 설정된 주기마다 수행하거나, 사용자 지정 시간에만 수행하거나, 또는 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때에만 수행할 수 있다.As such, the nonvolatile memory system 100 performs garbage collection performed on the nonvolatile memory device 120 by performing a file system driven fragmentation operation for the hot data HOT and H and the cold data COLD and C. The frequency of operation can be reduced. For example, in a conventional nonvolatile memory system, one hot page (HOT, H) (ie, hot data) and a plurality of cold pages in one block on a physical address (PHYSICAL ADDRESS) of the nonvolatile memory device COLD, C) (i.e., cold data), if the hot page (HOT, H) becomes invalid by overwriting and the block becomes the target block of garbage collection operation, the remaining plurality of cold pages There was even an extreme situation where a copy operation for (COLD, C) had to be performed. Accordingly, the nonvolatile memory system 100 may display hot data HOT and H with high usage access and cold data COLD with low usage access on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. By separating and disposing C), hot data (HOT, H) with high usage access and cold data (COLD, C) with low usage access on the physical address (PHYSICAL ADDRESS) of the nonvolatile memory device 120. It is possible to effectively solve the problem of deepening of the dirty state caused by the mixed arrangement. In addition, the nonvolatile memory system 100 uses hot data HOT and H with high usage access and cold data COLD with low usage access on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. By separating and arranging C), it is possible to reduce the frequency of garbage collection operations performed in the nonvolatile memory device 120 (ie, the number of garbage collection operations, the number of copy operations, etc.). Overall operating performance, lifespan, etc. of the nonvolatile memory device 120 may be improved. On the other hand, since the file system driven fragmentation operation may put a significant burden on the nonvolatile memory system 100 in operation (ie, the latency is relatively large), the nonvolatile memory system 100 may perform the file system driven fragmentation. The operation may be performed at predetermined intervals, only at a user-specified time, or only when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120.
도 10 및 도 11은 도 1의 비휘발성 메모리 시스템에 의해 수행되는 파일 시스템 주도 단편화 동작의 다른 예를 나타내는 도면들이다.10 and 11 illustrate another example of a file system driven fragmentation operation performed by the nonvolatile memory system of FIG. 1.
도 10 및 도 11을 참조하면, 비휘발성 메모리 시스템(100)에 의해 수행되는 시스템 주도 단편화 동작의 다른 효과가 도시되어 있다. 예를 들어, 도 10에 도시된 바와 같이, 논리적 어드레스(LOGICAL ADDRESS) 상의 데이터 블록 사이즈는 4KB일 수 있고, 물리적 어드레스(PHYSICAL ADDRESS) 상의 페이지 사이즈는 8KB일 수 있다. 이 때, 파일 시스템(142)이 인식하는 논리적 어드레스(LOGICAL ADDRESS) 상에서 4KB 데이터 블록들(B1, ..., B16)에 대한 기입 동작이 수행될 때, 기입 요청 시퀀스가 B1, B3, B5, B7, B2, B4, B6, B8, B9, B11, B13, B15, B10, B12, B14, B16 순이라고 가정하면, 물리적 어드레스(PHYSICAL ADDRESS) 상에서 블록 내 8KB 페이지에 4KB 데이터 블록이 기입될 수 있다. 즉, 8KB 페이지 내에서 데이터가 4KB 영역만 채워지는 것이다. 이 때, 파일 시스템(142)이 논리적 어드레스(LOGICAL ADDRESS) 상에서 대상 데이터들(즉, B1, ..., B16으로 표시)을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하면, 도 11에 도시된 바와 같이, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 대상 데이터들(즉, B1, ..., B16으로 표시)이 인접하게 배치될 수 있다. 특히, 파일 시스템(142)이 논리적 어드레스(LOGICAL ADDRESS) 상에서 대상 데이터들(즉, B1, ..., B16으로 표시)이 순서대로 모아져 새로운 논리적 어드레스 영역에 연속적으로 기입되는 경우, 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 대상 데이터들(즉, B1, ..., B16으로 표시)이 순서대로 인접하게 배치될 수 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 파일 시스템(142)로 하여금 비휘발성 메모리 장치(120)의 더티 상태를 효과적으로 해소하게 할 뿐만 아니라, 비휘발성 메모리 시스템(100)의 운용 상 비휘발성 메모리 장치(120)의 물리적 어드레스(PHYSICAL ADDRESS) 상에서 여러 곳에 흩어져 있는 데이터들이 순서대로 인접하게 배치되도록 할 수 있다. 그 결과, 비휘발성 메모리 시스템(100)은 비휘발성 메모리 장치(120)의 전반적인 동작 성능을 크게 향상(예를 들어, 동작 속도 향상, 공간 활용률 증대 등)시킬 수 있다.10 and 11, another effect of the system driven fragmentation operation performed by the nonvolatile memory system 100 is shown. For example, as shown in FIG. 10, the data block size on the logical address may be 4 KB, and the page size on the physical address may be 8 KB. At this time, when a write operation is performed on the 4 KB data blocks B1, ..., B16 on the logical address (LOGICAL ADDRESS) recognized by the file system 142, the write request sequence is B1, B3, B5, Assuming a B7, B2, B4, B6, B8, B9, B11, B13, B15, B10, B12, B14, B16 order, a 4KB data block can be written to an 8KB page in a block on a physical address. . In other words, within a 4-KB page, only 4 KB of data is filled. At this time, if the file system 142 collects the target data (i.e., indicated by B1, ..., B16) on the logical address (LOGICAL ADDRESS) and continuously writes them in the new logical address area, as shown in FIG. Likewise, target data (ie, denoted by B1,..., B16) may be adjacent to each other on the physical address PHYSICAL ADDRESS of the nonvolatile memory device 120. In particular, in the case where the file system 142 collects the target data (ie, indicated by B1, ..., B16) on the logical address LOGICAL in order and continuously writes them to the new logical address area, the nonvolatile memory device. On the physical address PHYSICAL ADDRESS of 120, target data (ie, indicated by B1,..., B16) may be sequentially arranged adjacently. As described above, the nonvolatile memory system 100 not only enables the file system 142 to effectively remove the dirty state of the nonvolatile memory device 120, but also operates the nonvolatile memory device 100 in operation of the nonvolatile memory system 100. Data scattered in various places on the physical address (PHYSICAL ADDRESS) of 120 may be arranged adjacent to each other in order. As a result, the nonvolatile memory system 100 may greatly improve the overall operating performance of the nonvolatile memory device 120 (eg, increase an operation speed and increase a space utilization rate).
도 12는 도 1의 비휘발성 메모리 시스템이 파일 시스템 주도 단편화 동작의 수행 여부를 결정하는 과정을 나타내는 순서도이다.FIG. 12 is a flowchart illustrating a process of determining whether a file system driven fragmentation operation is performed by the nonvolatile memory system of FIG. 1.
도 12를 참조하면, 비휘발성 메모리 시스템(100)이 파일 시스템 주도 단편화 동작의 수행 여부를 결정하는 과정이 도시되어 있다. 구체적으로, 비휘발성 메모리 시스템(100)은 비휘발성 메모리 장치(120)를 구동(Step S310)한 후, 파일 시스템 주도 단편화 동작을 수행하기 위한 기 설정된 조건이 만족되었는지 여부를 확인(Step S320)할 수 있다. 이 때, 파일 시스템 주도 단편화 동작을 수행하기 위한 기 설정된 조건이 만족되면, 비휘발성 메모리 시스템(100)은 파일 시스템 주도 단편화 동작을 수행(Step S330)할 수 있다. 반면에, 파일 시스템 주도 단편화 동작을 수행하기 위한 기 설정된 조건이 만족되지 않으면, 비휘발성 메모리 시스템(100)은 파일 시스템 주도 단편화 동작을 비수행(Step S340)할 수 있다. 이 때, 기 설정된 조건은 기 설정된 주기가 도래한 조건, 사용자 지정 시간이 도래한 조건, 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않는 조건 등을 포함할 수 있다. 상술한 바와 같이, 파일 시스템 주도 단편화 동작은 비휘발성 메모리 장치(120)에 기입 동작 및 소거 동작을 야기시키기 때문에, 상대적으로 많은 시간을 필요로 한다. 따라서, 파일 시스템 주도 단편화 동작이 사용자의 의사와 상관없이 비휘발성 메모리 시스템(100)에서 수행되는 경우, 사용자로 하여금 비휘발성 메모리 장치(120)의 성능 저하를 경험하게 만들 수 있다. 다시 말하면, 파일 시스템 주도 단편화 동작은 동작적인 측면에서 비휘발성 메모리 시스템(100)에 상당한 부담을 줄 수 있다. 이에, 비휘발성 메모리 시스템(100)은 상기 파일 시스템 주도 단편화 동작을 기 설정된 주기마다 수행하거나, 사용자 지정 시간에만 수행하거나, 또는 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때에만 수행하는 것이다. 다만, 상술한 조건들(즉, 기 설정된 주기가 도래한 조건, 사용자 지정 시간이 도래한 조건, 비휘발성 메모리 장치(120)에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않는 조건)은 예시적인 것으로서, 파일 시스템 주도 단편화 동작을 수행하기 위한 기 설정된 조건은 그에 한정되지는 않는다. 이상, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템에 대해 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 해당 기술 분야에서 통상의 지식을 가진 자에 의해 수정 및 변경될 수 있을 것이다. 예를 들어, 본 발명은 낸드 플래시 메모리 장치와 유사한 구조적 특성 및/또는 동작적 특성을 갖는 반도체 메모리 장치를 구비하는 비휘발성 메모리 시스템에 다양하게 적용될 수 있다.Referring to FIG. 12, a process of determining whether the nonvolatile memory system 100 performs a file system driven fragmentation operation is illustrated. In detail, after driving the nonvolatile memory device 120 (Step S310), the nonvolatile memory system 100 checks whether a predetermined condition for performing a file system-driven fragmentation operation is satisfied (Step S320). Can be. At this time, if a predetermined condition for performing the file system driven fragmentation operation is satisfied, the nonvolatile memory system 100 may perform the file system driven fragmentation operation (Step S330). On the other hand, if a predetermined condition for performing the file system driven fragmentation operation is not satisfied, the nonvolatile memory system 100 may perform the file system driven fragmentation operation (Step S340). In this case, the preset condition may include a condition in which a preset period arrives, a condition in which a user specified time arrives, a condition in which a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120. . As described above, since the file system driven fragmentation operation causes the write operation and the erase operation to the nonvolatile memory device 120, it requires a relatively long time. Thus, when the file system driven fragmentation operation is performed in the nonvolatile memory system 100 regardless of the user's intention, the user may experience a performance degradation of the nonvolatile memory device 120. In other words, the file system driven fragmentation operation can put a significant burden on the nonvolatile memory system 100 in terms of operation. Accordingly, the nonvolatile memory system 100 performs the file system-driven fragmentation operation at predetermined intervals, only at a user-specified time, or at the nonvolatile memory device 120 to perform a write operation, a read operation, and an erase operation. Only when it does not. However, the above-described conditions (ie, a condition in which a predetermined period arrives, a condition in which a user-specified time arrives, and a condition in which a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device 120) are exemplary. As such, the preset condition for performing the file system driven fragmentation operation is not limited thereto. As mentioned above, although the nonvolatile memory system according to the embodiments of the present invention has been described with reference to the drawings, the above description is merely an example, and one of ordinary skill in the art without departing from the technical spirit of the present invention. It may be modified and changed by. For example, the present invention may be variously applied to a nonvolatile memory system having a semiconductor memory device having structural characteristics and / or operational characteristics similar to those of a NAND flash memory device.
본 발명은 낸드 플래시 메모리 장치를 포함하는 비휘발성 메모리 시스템에 적용될 수 있다. 따라서, 본 발명은 솔리드 스테이트 드라이브(SSD), 시큐어 디지털 카드(SDCARD), 유니버셜 플래시 스토리지(UFS), 임베디드 멀티미디어 카드(EMMC), CF 카드, 메모리 스틱, XD 픽쳐 카드 등에 적용될 수 있다.The present invention can be applied to a nonvolatile memory system including a NAND flash memory device. Accordingly, the present invention can be applied to a solid state drive (SSD), a secure digital card (SDCARD), a universal flash storage (UFS), an embedded multimedia card (EMMC), a CF card, a memory stick, an XD picture card, and the like.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to the embodiments of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. It will be appreciated.
<부호의 설명><Description of the code>
100: 비휘발성 메모리 시스템 120: 비휘발성 메모리 장치100: nonvolatile memory system 120: nonvolatile memory device
122: 낸드 플래시 메모리 124: 낸드 컨트롤러122: NAND flash memory 124: NAND controller
140: 호스트 장치 142: 파일 시스템140: host device 142: file system
144: 호스트 컨트롤러144: host controller

Claims (15)

  1. 적어도 하나 이상의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 비휘발성 메모리 장치; 및A nonvolatile memory device having at least one NAND flash memory and a NAND controller controlling the NAND flash memory; And
    파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 상기 비휘발성 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함하고,A host device having a file system and a host controller for receiving a command from the file system and providing the command to the nonvolatile memory device;
    상기 파일 시스템은 상기 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 유효 데이터들과 무효 데이터들로 구분하고 상기 유효 데이터들을 모아 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입(rewrite) 동작을 수행함으로써, 상기 비휘발성 메모리 장치의 물리적 어드레스 상에서 상기 유효 데이터들을 인접하게 배치시키는 파일 시스템 주도 단편화(defragmentation) 동작을 수행하는 것을 특징으로 하는 비휘발성 메모리 시스템.The file system divides data into valid data and invalid data on a logical address recognized by the file system, and performs a rewrite operation of collecting the valid data and continuously writing the data into a new logical address area. And a file system driven defragmentation operation of arranging the valid data adjacently on a physical address of the nonvolatile memory device.
  2. 제 1 항에 있어서, 상기 파일 시스템 주도 단편화 동작이 수행되면, 상기 파일 시스템은 맵핑 테이블에서 상기 무효 데이터들에 대한 언맵핑 상태를 보장하는 소거(erase) 커맨드 또는 트림(trim) 커맨드를 상기 호스트 컨트롤러를 통해 상기 비휘발성 메모리 장치에 제공하는 것을 특징으로 하는 비휘발성 메모리 시스템.The host controller of claim 1, wherein when the file system driven fragmentation operation is performed, the file system generates an erase command or a trim command to ensure an unmapping state for the invalid data in a mapping table. And providing the nonvolatile memory device through the nonvolatile memory device.
  3. 제 2 항에 있어서, 상기 재기입 동작이 수행될 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 유효 데이터들을 핫(hot) 데이터들과 콜드(cold) 데이터들로 구분한 후, 상기 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하고, 상기 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 것을 특징으로 하는 비휘발성 메모리 시스템.The method of claim 2, wherein when the rewrite operation is performed, the file system divides the valid data into hot data and cold data on the logical address, and then collects the hot data. And writing continuously to the first new logical address area, and collecting the cold data into the second new logical address area continuously.
  4. 제 3 항에 있어서, 상기 파일 시스템은 상기 유효 데이터들을 파일 종류에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 3, wherein the file system divides the valid data into the hot data and the cold data based on a file type.
  5. 제 3 항에 있어서, 상기 파일 시스템은 상기 유효 데이터들을 사용 접근 빈도에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 3, wherein the file system divides the valid data into the hot data and the cold data based on a usage access frequency.
  6. 제 3 항에 있어서, 상기 파일 시스템은 상기 유효 데이터들을 파일 용량에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 3, wherein the file system divides the valid data into the hot data and the cold data based on a file capacity.
  7. 제 1 항에 있어서, 상기 파일 시스템 주도 단편화 동작은 기 설정된 주기마다 수행되거나, 사용자 지정 시간에 수행되거나, 또는 상기 비휘발성 메모리 장치에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때 수행되는 것을 특징으로 하는 비휘발성 메모리 시스템.The method of claim 1, wherein the file system driven fragmentation operation is performed at a predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. Non-volatile memory system characterized by.
  8. 적어도 하나 이상의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 낸드 컨트롤러를 구비한 비휘발성 메모리 장치; 및A nonvolatile memory device having at least one NAND flash memory and a NAND controller controlling the NAND flash memory; And
    파일 시스템 및 상기 파일 시스템으로부터 커맨드를 입력받아 상기 비휘발성 메모리 장치에 제공하는 호스트 컨트롤러를 구비한 호스트 장치를 포함하고,A host device having a file system and a host controller for receiving a command from the file system and providing the command to the nonvolatile memory device;
    상기 파일 시스템은 상기 파일 시스템이 인식하는 논리적 어드레스 상에서 데이터들을 핫(hot) 데이터들과 콜드(cold) 데이터들로 구분하고 상기 핫 데이터들을 모아 제1 새로운 논리적 어드레스 영역에 연속적으로 기입하며 상기 콜드 데이터들을 모아 제2 새로운 논리적 어드레스 영역에 연속적으로 기입하는 재기입(rewrite) 동작을 수행함으로써, 상기 비휘발성 메모리 장치의 물리적 어드레스 상에서 상기 핫 데이터들과 상기 콜드 데이터들을 각각 인접하게 배치시키는 파일 시스템 주도 단편화(defragmentation) 동작을 수행하는 것을 특징으로 하는 비휘발성 메모리 시스템.The file system divides the data into hot data and cold data on a logical address recognized by the file system, collects the hot data, continuously writes the data into a first new logical address area, and the cold data. File system-driven fragmentation for contiguously placing the hot data and the cold data on a physical address of the nonvolatile memory device by performing a rewrite operation to collect the data and continuously write the second new logical address area. and a defragmentation operation.
  9. 제 8 항에 있어서, 상기 재기입 동작이 수행될 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 핫 데이터들을 유효 핫 데이터들과 무효 핫 데이터들로 구분한 후, 상기 유효 핫 데이터들만 상기 제1 새로운 논리적 어드레스 영역에 기입하는 것을 특징으로 하는 비휘발성 메모리 시스템.10. The method of claim 8, wherein when the rewrite operation is performed, the file system divides the hot data into valid hot data and invalid hot data on the logical address, and then only the valid hot data is used for the first new data. A nonvolatile memory system characterized by writing to a logical address area.
  10. 제 9 항에 있어서, 상기 재기입 동작이 수행될 때, 상기 파일 시스템은 상기 논리적 어드레스 상에서 상기 콜드 데이터들을 유효 콜드 데이터들과 무효 콜드 데이터들로 구분한 후, 상기 유효 콜드 데이터들만 상기 제2 새로운 논리적 어드레스 영역에 기입하는 것을 특징으로 하는 비휘발성 메모리 시스템.10. The method of claim 9, wherein when the rewrite operation is performed, the file system divides the cold data into valid cold data and invalid cold data on the logical address, and then only the valid cold data is the second new. A nonvolatile memory system characterized by writing to a logical address area.
  11. 제 10 항에 있어서, 상기 파일 시스템 주도 단편화 동작이 수행되면, 상기 파일 시스템은 맵핑 테이블에서 상기 무효 핫 데이터들과 상기 무효 콜드 데이터들에 대한 언맵핑 상태를 보장하는 소거(erase) 커맨드 또는 트림(trim) 커맨드를 상기 호스트 컨트롤러를 통해 상기 비휘발성 메모리 장치에 제공하는 것을 특징으로 하는 비휘발성 메모리 시스템.12. The method of claim 10, wherein when the file system driven fragmentation operation is performed, the file system performs an erase command or trim to guarantee an unmapping state for the invalid hot data and the invalid cold data in a mapping table. and a trim) command to the nonvolatile memory device through the host controller.
  12. 제 8 항에 있어서, 상기 파일 시스템은 상기 데이터들을 파일 종류에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 8, wherein the file system divides the data into the hot data and the cold data based on a file type.
  13. 제 8 항에 있어서, 상기 파일 시스템은 상기 데이터들을 사용 접근 빈도에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 8, wherein the file system divides the data into the hot data and the cold data based on a usage access frequency.
  14. 제 8 항에 있어서, 상기 파일 시스템은 상기 데이터들을 파일 용량에 기초하여 상기 핫 데이터들과 상기 콜드 데이터들로 구분하는 것을 특징으로 하는 비휘발성 메모리 시스템.The nonvolatile memory system of claim 8, wherein the file system divides the data into the hot data and the cold data based on a file capacity.
  15. 제 8 항에 있어서, 상기 파일 시스템 주도 단편화 동작은 기 설정된 주기마다 수행되거나, 사용자 지정 시간에 수행되거나, 또는 상기 비휘발성 메모리 장치에서 기입 동작, 독출 동작 및 소거 동작이 수행되지 않을 때 수행되는 것을 특징으로 하는 비휘발성 메모리 시스템.The method of claim 8, wherein the file system driven fragmentation operation is performed at a predetermined period, at a user-specified time, or when a write operation, a read operation, and an erase operation are not performed in the nonvolatile memory device. Non-volatile memory system characterized by.
PCT/KR2016/004272 2015-05-29 2016-04-25 Non-volatile memory system WO2016195242A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0075693 2015-05-29
KR1020150075693A KR101718713B1 (en) 2015-05-29 2015-05-29 Non-volatile memory system

Publications (1)

Publication Number Publication Date
WO2016195242A1 true WO2016195242A1 (en) 2016-12-08

Family

ID=57440645

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/004272 WO2016195242A1 (en) 2015-05-29 2016-04-25 Non-volatile memory system

Country Status (2)

Country Link
KR (1) KR101718713B1 (en)
WO (1) WO2016195242A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558075A (en) * 2018-10-29 2019-04-02 珠海妙存科技有限公司 A kind of method and device using the cold and hot attribute storing data of data
CN110045913A (en) * 2018-01-15 2019-07-23 慧荣科技股份有限公司 Method, memory storage and its controller and electronic device of garbage collection
CN117539692A (en) * 2024-01-09 2024-02-09 武汉麓谷科技有限公司 ZNS solid state disk data set management command implementation method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102434343B1 (en) 2018-04-23 2022-08-22 에스케이하이닉스 주식회사 Memory controller and memory system having the same
KR20200125216A (en) 2019-04-26 2020-11-04 에스케이하이닉스 주식회사 Data storage device, electronic device including the same and operating method of data storage device
US12014772B2 (en) 2021-11-17 2024-06-18 Samsung Electronics Co., Ltd. Storage controller and storage device including the same
KR102545465B1 (en) * 2021-11-17 2023-06-21 삼성전자주식회사 Storage controller and storage device comprising the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080030756A (en) * 2006-10-02 2008-04-07 삼성전자주식회사 Device driver and method for effectively managing a flash memory file system
KR20090117935A (en) * 2008-03-01 2009-11-16 가부시끼가이샤 도시바 Memory system
KR101023013B1 (en) * 2009-03-19 2011-03-24 주식회사 에이텍 Method for data saving of file system based nand flash memory
KR20120063734A (en) * 2010-12-08 2012-06-18 삼성전자주식회사 Non-volatile memory device, devices having the same, method of operating the same
KR20140065856A (en) * 2012-11-22 2014-05-30 주식회사 이에프텍 Non-volatile memory system and method of managing a mapping table for the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080030756A (en) * 2006-10-02 2008-04-07 삼성전자주식회사 Device driver and method for effectively managing a flash memory file system
KR20090117935A (en) * 2008-03-01 2009-11-16 가부시끼가이샤 도시바 Memory system
KR101023013B1 (en) * 2009-03-19 2011-03-24 주식회사 에이텍 Method for data saving of file system based nand flash memory
KR20120063734A (en) * 2010-12-08 2012-06-18 삼성전자주식회사 Non-volatile memory device, devices having the same, method of operating the same
KR20140065856A (en) * 2012-11-22 2014-05-30 주식회사 이에프텍 Non-volatile memory system and method of managing a mapping table for the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110045913A (en) * 2018-01-15 2019-07-23 慧荣科技股份有限公司 Method, memory storage and its controller and electronic device of garbage collection
CN110045913B (en) * 2018-01-15 2022-05-13 慧荣科技股份有限公司 Garbage collection method, memory device, controller thereof and electronic device
CN109558075A (en) * 2018-10-29 2019-04-02 珠海妙存科技有限公司 A kind of method and device using the cold and hot attribute storing data of data
CN117539692A (en) * 2024-01-09 2024-02-09 武汉麓谷科技有限公司 ZNS solid state disk data set management command implementation method
CN117539692B (en) * 2024-01-09 2024-03-15 武汉麓谷科技有限公司 ZNS solid state disk data set management command implementation method

Also Published As

Publication number Publication date
KR20160139864A (en) 2016-12-07
KR101718713B1 (en) 2017-03-22

Similar Documents

Publication Publication Date Title
WO2016195242A1 (en) Non-volatile memory system
WO2014171618A1 (en) Storage system and method for processing writing data of storage system
KR102421075B1 (en) Memory device comprising stream detector and operating method thereof
KR100939145B1 (en) Memory device
US20120110239A1 (en) Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
EP1920335B1 (en) Reclaiming data storage capacity in flash memory systems
US7558905B2 (en) Reclaiming data storage capacity in flash memory systems
WO2013171792A1 (en) Storage control apparatus and storage control method
US20140089564A1 (en) Method of data collection in a non-volatile memory
US20080155175A1 (en) Host System That Manages a LBA Interface With Flash Memory
JP4977703B2 (en) Non-volatile memory with scheduled playback operation
KR20140099737A (en) Zone-based defragmentation method and user device using the same
US20130238838A1 (en) Controller, storage device, and computer program product
KR20130075018A (en) Data update apparatus for flash memory file system and method thereof
CN1713160A (en) Method of writing data into flash memory
WO2013176376A1 (en) Method and device for identifying information for chip-level parallel flash memory
WO2007019197A2 (en) Management of memory blocks that directly store data files
US20140281132A1 (en) Method and system for ram cache coalescing
KR20150142583A (en) A method of organizing an address mapping table in a flash storage device
US20230153236A1 (en) Data writing method and apparatus
JP2009512066A (en) Conversion data unit storage in memory system with fixed size storage block
CN110389712A (en) Method for writing data and its device, solid state hard disk and computer readable storage medium
TW201835766A (en) Methods for regular and garbage-collection data access and apparatuses using the same
WO2017195928A1 (en) Flash-based storage device and computing device comprising same
WO2014142427A1 (en) Storage system and data transmitting method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16803597

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16803597

Country of ref document: EP

Kind code of ref document: A1