Memory system and data processing system including the same

By adopting partition namespace technology in memory systems, the performance degradation caused by multi-application operation conflicts and garbage collection is solved, partition utilization and system life are improved, and write operations are optimized.

CN120335709APending Publication Date: 2025-07-18SK HYNIX INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411481009.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-17
Filing Date
2024-10-23
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

Existing memory systems are prone to conflicts and performance degradation between operations of multiple applications, especially due to high write amplification factors and insufficient reserved space areas due to garbage collection.

Method used

The partition namespace (ZNS) technology is used to divide the namespace of the memory system into multiple partitions, each partition corresponds to an application. Through the synchronous management of logical write pointers and physical write pointers, avoid garbage collection and optimize write operations.

Benefits of technology

It improves the partition utilization rate of the memory system, reduces the write amplification factor, extends the service life of the memory system, reduces the demand for reserved space areas, and improves system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120335709A_ABST
    Figure CN120335709A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a memory system and a data processing system including the same, the memory system may include: a memory device including a plurality of physical regions corresponding to each of a plurality of partitions; and a memory controller configured to control the memory device to perform a write operation on the physical region, in which, when a write request is received from a host device, the memory controller determines a size of a physical clear region, which does not store data, included in a target partition of the write request, and controls the memory device to perform a write operation on the physical region. A size of the physical clear area is compared with a size of the user data requested to be written, and whether to transmit clear area information on an additional clear area required for performing a write operation on the user data in the target partition to the host device is determined according to a result of the comparison.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This patent application claims the benefit of priority of a Korean patent application No. 10 - 2024 - 0007362, filed with the Korean Intellectual Property Office on January 17, 2024, the entire disclosure of which is incorporated herein by reference. Technical Field

[0003] Exemplary embodiments relate to a memory system and a data processing system including the memory system, and more particularly, to a memory system using a partitioned namespace and a data processing system including the memory system. Background Art

[0004] The computer environment paradigm is shifting to ubiquitous computing that enables computing to occur anytime and anywhere. Recently, the use of ubiquitous computing has increased, leading to an increase in the use of portable electronic devices such as mobile phones, digital cameras, and laptop computers. Generally, such portable electronic devices use a memory system or a data storage device including a memory device such as a semiconductor memory device as their data storage medium. The memory system serves as the main memory device or the secondary memory device of the portable electronic device.

[0005] Such semiconductor - based memory systems have advantages over traditional hard disk drives because semiconductor memory devices have no mechanical moving parts, and thus have excellent stability and durability, high data rates, and low power consumption. Examples of semiconductor - based memory systems include Universal Serial Bus (USB) memory devices, memory cards, and Solid - State Drives (SSDs). Summary of the Invention

[0006] Embodiments of the disclosed technology relate to a memory system having improved operational stability of a partitioned namespace.

[0007] Embodiments of the present disclosure may provide a memory device, a memory system, a memory controller included in the memory system, a data processing system including the memory system or the memory device, or a communication system for transmitting data.

[0008] Various embodiments of the present disclosure are directed to a memory system having improved partition utilization of a partitioned namespace and a data processing system including the memory system.

[0009] Various embodiments of the present disclosure are directed to a memory system capable of synchronizing write pointers respectively managed by a host device and a memory system and a data processing system including the memory system.

[0010] A memory system according to an embodiment of the present disclosure and a data processing system including the memory system can improve the partition utilization rate of a partitioned namespace.

[0011] A memory system according to an embodiment of the present disclosure and a data processing system including the memory system can synchronize write pointers respectively managed by a host device and the memory system so that the write pointers are the same as each other.

[0012] In an embodiment of the present disclosure, a memory system employing a partitioned namespace includes: a memory device including a plurality of physical regions corresponding to each of a plurality of partitions; and a memory controller configured to control the memory device to perform a write operation on the physical regions. When a write request is received from a host device, the memory controller determines the size of a physical free region including no stored data in a target partition of the write request, compares the size of the physical free region with the size of user data to be written, and determines whether to send free region information about an additional free region required for performing the write operation on the user data in the target partition to the host device according to a comparison result.

[0013] In another embodiment of the present disclosure, a data processing system includes: a host device including a plurality of logical regions corresponding to each of a plurality of partitions, configured to allocate user data to a logical free region of a target partition and generate a write request for the allocated user data; and a memory system configured to send a response indicating whether a write operation corresponding to the write request fails to the host device. When the host device allocates user data, the host device determines whether to invalidate at least some valid logical regions included in the target partition according to a comparison result between the size of the logical free region and the size of the user data. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figures 1A to 1C is a diagram illustrating a storage method of a memory system.

[0015] Figure 2 is a diagram illustrating a storage method of a data processing system using a partitioned namespace.

[0016] Figure 3 is a diagram for explaining a partition state according to an embodiment of the present disclosure.

[0017] Figure 4 is a block diagram for explaining a data processing system according to an embodiment of the present disclosure.

[0018] Figure 5A and Figure 5B is a diagram illustrating a write pointer when data is written to a zoned name space (ZNS).

[0019] Figure 6 is a flowchart showing a method of updating a logical write pointer and a physical write pointer according to an embodiment of the present disclosure.

[0020] Figure 7 is a diagram showing a ZNS operation using a logical write pointer and a physical write pointer according to an embodiment of the present disclosure.

[0021] Figure 8 is shown when according to Figure 6 is a diagram showing a process of updating a logical write pointer and a physical write pointer when writing internal data according to the method shown.

[0022] Figure 9 is according to Figure 6 is a diagram showing a process of updating a logical write pointer and a physical write pointer when writing user data according to the method shown.

[0023] Figure 10 is a flowchart showing an operation of a memory controller according to an embodiment of the present disclosure.

[0024] Figure 11 is a flowchart showing an operation of a host device generating a write request according to an embodiment of the present disclosure.

[0025] Figure 12 is a flowchart showing an operation of a memory system determining whether to perform a write operation according to another embodiment of the present disclosure.

[0026] Figure 13 is a flowchart showing a method of a host device performing subsequent operations in response to a write request received from a memory system according to an embodiment of the present disclosure.

[0027] Figures 14A to 14E is shown performing Figures 11 to 13 is a diagram showing a process of the write operation described in. DETAILED DESCRIPTION

[0028] Various embodiments of the present disclosure are described below with reference to the accompanying drawings. However, the elements and features of the present disclosure may be configured or arranged differently to form other embodiments that may be variations of any of the disclosed embodiments.

[0029] Figures 1A to 1C is a diagram showing a data storage method of a memory system.

[0030] Technologies such as artificial intelligence, big data, and cloud computing run through data centers. The data center includes a memory system implemented in the form of flash memory, and multiple application programs can be used with the memory system. Multiple application programs can run on a host device such as a computer or a mobile phone. Each of the multiple application programs stores data at a logical block address (LBA), and the memory system stores the data stored at the logical block address in a physical block. After storing multiple pieces of data provided by different application programs in a physical block, the memory system can map the logical block address to the physical address (PBA) of the physical block.

[0031] Figure 1A Three application programs used with the memory system are shown by way of example.

[0032] The multiple logical block addresses are divided into regions corresponding to multiple application programs respectively, and the multiple application programs store data at the logical block addresses included in the regions corresponding to them. As Figure 1A shown, the first application program APP1 stores data at three logical block addresses, the second application program APP2 stores data at two logical block addresses, and the third application program APP3 stores data at three logical block addresses. The memory system programs multiple pieces of data stored in the regions corresponding to the first application program APP1 to the third application program APP3 into one physical block. Therefore, one physical block BLOCK includes all multiple pieces of data of the first application program APP1 to the third application program APP3.

[0033] Figure 1B Shows the erase operation performed in the memory system when the first application program erases data.

[0034] The memory system performs read operations and write operations in units of pages, but performs erase operations in units of physical blocks. When the first application program APP1 issues an erase command for the programmed data and multiple pieces of data of multiple application programs are stored in one physical block BLOCK, the memory system can invalidate the data corresponding to the first application program APP1. As Figure 1B shown, among the multiple pieces of data included in the physical block BLOCK, the data corresponding to the first application program APP1 is invalidated, while the multiple pieces of data corresponding to the second application program APP2 and the third application program APP3 remain valid. When the size of the invalid data included in the physical block increases, the available capacity of the memory system decreases. Therefore, the memory system can switch the area storing the invalid data to an area available for data storage by performing garbage collection (GC).

[0035] Figure 1C Is a diagram showing the performance of garbage collection on the physical block BLK.

[0036] The memory system copies the valid data stored in a physical block BLK to an idle physical block. Refer to Figure 1C , the memory system copies multiple pieces of data (i.e., multiple pieces of valid data) of the second application APP2 and the third application APP3 to an idle physical block. After copying the multiple pieces of valid data to the idle physical block, the memory system invalidates all the valid data stored in the physical block, and then performs an erase operation on the physical block. Therefore, the memory system performs garbage collection by copying the valid data existing in the physical block including invalid data to an idle physical block, and then performing an erase operation on the physical block.

[0037] When the issued erase command is related to only one application, the size of the invalid data included in the physical block increases, and garbage collection may be required. When performing garbage collection for removing invalid data, the currently executing read operation and write operation are temporarily aborted, so the performance of the memory system may decrease. A data processing system using a zone namespace (ZNS) can solve the problems caused by the performance degradation due to conflicts between operations of multiple applications and garbage collection.

[0038] Figure 2 is a diagram showing a data storage method of a data processing system using a zone namespace.

[0039] In some embodiments, the memory system may include a data storage space divided into multiple data storage zones. For example, the memory system may include a newer type of solid-state drive (SSD) such as a zone namespace (ZNS) drive, enabling the host device of the SSD to allocate a smaller SSD section (e.g., an aggregation of one zone or multiple zones) for a specific requester application to achieve a finer-grained distinction from other applications. The zone namespace (ZNS) represents a technique for utilizing a namespace by dividing the namespace into smaller sections or units such as zones. The namespace represents the size of the non-volatile memory that can be formatted as logical blocks. In a data processing system using a zone namespace, multiple applications can sequentially store multiple pieces of data at the logical block addresses of their own specified zones. Not only are multiple logical block addresses divided into zones, but the physical area of the memory system is also divided into zones. Since one zone stores data of the same application, the attributes of the multiple pieces of data stored in one zone are similar to each other. Moreover, the logical block addresses included in one zone are consecutive, and in a memory system applying a zone namespace, the physical blocks corresponding to each zone are always programmed sequentially.

[0040] Refer to Figure 2, a namespace can be composed of multiple partitions ZONE_1 to ZONE_N. The sizes of the multiple partitions ZONE_1 to ZONE_N are equal to each other. An application can correspond to one partition, and in some cases, it can also correspond to multiple partitions. A partition includes multiple consecutive logical block addresses. The internal area of the memory device is also divided into units such as partitions, and the partitions in the logical area respectively correspond to the partitions in the physical area. The sizes of the individual partitions in the physical area are equal to each other, and the size of each partition can be an integer multiple of the erase unit. For example, a partition can correspond to a physical block that is the erase unit, Figure 2 The first physical block BLK_1 to the Nth physical block BLK_N shown in Figure 2 can respectively correspond to the first partition ZONE_1 to the Nth partition ZONE_N.

[0041] In the example, the first application APP1 to the third application APP3 correspond to the first partition ZONE_1 to the third partition ZONE_3. Therefore, the first application APP1 stores data in the logical block addresses included in the first partition ZONE_1. The logical block addresses included in the first partition ZONE_1 are consecutive. The host device provides the identification information of the corresponding partition, the programming data, and the write command to the memory system. The memory system sequentially programs the multiple pieces of data stored in the logical block addresses included in the first partition ZONE_1 into the first physical block BLK_1 corresponding to the first partition ZONE_1.

[0042] Similarly, the multiple pieces of data in the second partition ZONE_2 and the third partition ZONE_3 can be respectively stored in the second physical block BLK_2 and the third physical block BLK_3. When the memory system uses the partitioned namespace, the multiple pieces of data provided from different applications are stored in different areas divided into partitions in the internal area of the memory device. Therefore, an erase operation limited to a single application does not affect the data of other applications.

[0043] When the memory system uses the partitioned namespace, the multiple pieces of data are sequentially stored in the physical blocks corresponding to the partitions, and then the multiple pieces of data are deleted in units of partitions. Therefore, garbage collection is not required. Therefore, the memory system using the partitioned namespace has a very low write amplification factor (WAF) value. WAF represents how many additional programming operations (e.g., garbage collection) should be performed in the memory system in addition to the regular write operation, and is obtained by dividing the actual programmed data size (quantity) in the memory device by the data size programmed in response to the host device request. When garbage collection is not performed, the value of WAF can approach the value "1".

[0044] A memory system can only perform a limited number of write operations. Since write operations attributed to garbage collection do not occur in a memory system using a partitioned namespace, the service life of the memory system is increased. In addition, the size of the reserved space area is reduced. The reserved space area is a spare area in the memory device that is not recognized by the host device and includes areas for background operations such as garbage collection for the memory system. In an example implementation, the memory system stores a table including mapping information between logical block addresses and physical addresses in volatile memory provided in the memory controller. In contrast, in a memory system using a partitioned namespace, the memory device is used after being divided into partitions of the same size, and write operations are sequentially performed in each partition, so a separate mapping table is not required. Therefore, a memory system using a partitioned namespace uses volatile memory more efficiently.

[0045] The size of the data provided by the host device to the memory system at any given time is different from the size of the programming unit of the memory system. For example, in a three-level cell (TLC) memory device, the size of the programming unit can be the value obtained by adding the sizes of the least significant bit (LSB) page, the middle significant bit (CSB) page, and the most significant bit (MSB) page, and this size can be larger than the size of the data provided by the host device to the memory system at that time. Therefore, the memory system temporarily stores the programmed data in a write buffer provided in the memory controller disposed between the host device and the memory device, and when the size of the stored data satisfies the size of the programming unit, programs the data into a physical block. For example, the programming unit can include pages of a physical block. The memory system can allocate an area of the write buffer for each partition, and the size of the area allocated to one partition can be the size of the programming unit. An open partition indicates a partition for which an area of the write buffer has been allocated, and the memory system only performs write operations on physical blocks corresponding to the open partition. In one example, the open partition can include erased memory cells available for the host device to write. In another example, the open partition can include partially programmed memory cells available for the host device to write further.

[0046] Since the write buffer is implemented as volatile memory, there is a concern that when a power failure occurs in the memory system, the data stored in the write buffer will be lost. Therefore, the memory system is provided with an emergency power supply and, when a power failure occurs, uses the power supplied by the emergency power supply to back up the data stored in the write buffer to non-volatile memory. Since the time during which the emergency power supply can supply power is limited, the size of the data that the memory system can back up from the write buffer to non-volatile memory within the limited time is also limited. Therefore, the size of the write buffer is defined as the size of the data that can be backed up during the time the emergency power supply supplies power. Since the size of the write buffer is limited, the number of partitions in the area where the write buffer is allocated is also limited. Therefore, the number of open partitions that can coexist or be available is limited, and when the number of open partitions that can coexist or be available is limited, the number of applications that can run simultaneously is also limited. If a data center communicating with a server can only execute a small number of applications simultaneously, its performance will be negatively affected.

[0047] Figure 3 is a diagram showing the partition status.

[0048] According to the states that each partition can have, partitions can be classified into active zones and inactive zones. In Figure 3 active zones include open zones and closed zones, and inactive zones include free zones and full zones. As described above, the number of open zones is limited by the capacity of the write buffer. In addition, the number of closed zones is limited, so the number of active zones is also limited.

[0049] The above open zones can be classified into explicit open zones and implicit open zones. When the host device explicitly provides a command to the memory system instructing a certain partition to switch to an open zone, the open zone switched in response to the command can be an explicit open zone OPENED_EXP. When the host device only provides a write command and identification information corresponding to the partition to the memory system without explicitly providing a command instructing a switch to an open zone, the memory system autonomously switches the partition to an open zone and performs a write operation. The open zone autonomously switched by the memory system is an implicit open zone OPENED_IMP. When a write command is issued for a partition other than an open zone in a state where all areas of the write buffer are allocated to open zones, the memory system switches any one of the open zones to a closed zone (CLOSED). A closed zone can be switched from an open zone. When a write command is issued for the closed zone switched for the above reason, the corresponding closed zone (CLOSED) can be switched back to an open zone.

[0050] When multiple data are programmed in all physical blocks corresponding to an open partition, the memory system switches the open partition to a closed partition, and then switches the closed partition to a full partition. This full partition (FULL) represents a partition in which there is no free area in the corresponding physical block. When an application provides an erase command for a full partition or an active partition to the memory system, the memory system performs an erase operation on the physical block corresponding to the partition for the erase command, and then switches the partition to a free partition. A free partition (FREE) represents a partition in which the corresponding physical block is a free physical block.

[0051] As described above, the number of partitions included in an active partition is limited. In a case where all areas in the write buffer are allocated to open partitions and the number of closed partitions cannot be further increased, if a new application runs and generates an open partition, the memory system cannot further allocate a new open partition. Therefore, when the number of partitions included in an active partition reaches a threshold, there is a problem that the number of applications that can run simultaneously cannot be further increased.

[0052] Figure 4 is a block diagram for explaining a data processing system according to an embodiment of the present disclosure. Referring to Figure 4 , the data processing system 100 includes a host device 102 and a memory system 110.

[0053] The host device 102 may be a device such as a mobile phone, an MP3 player, a laptop computer, a desktop computer, a game console, a TV, and an in-vehicle infotainment system. The host device 102 may include a host device memory controller 103. Although not shown in FIG. 1, the host device 102 may include a processing unit (e.g., a central processing unit) and a driving unit. The processing unit may control the overall operation of the host device 102, and the driving unit may drive the memory system 110 under the control of the processing unit. In an embodiment, the driving unit of the host device 102 may include an application (not shown), a host device memory controller Host Controller 103, and a host device memory Host Memory 106.

[0054] The memory system 110 may include a memory device 150 and a memory controller 130. The memory system 110 may communicate with the host device 102. The memory device 150 may be a non-volatile memory device. As an example, the memory device 150 may be a NAND flash memory device. The memory device 150 may operate under the control of the memory controller 130. More specifically, the memory device 150 may operate in response to a command received from the memory controller 130.

[0055] The memory controller 130 may include a data processing unit 210 and a memory unit 230. The data processing unit 210 may include a host device interface layer (HIL) 211 and a flash translation layer (FTL) 213. The memory unit 230 may include a write buffer 231.

[0056] The HIL 211 of the data processing unit 210 may perform operations related to communication between the memory controller 130 and the host device 102. More specifically, the HIL 211 may receive a write request from the host device 102. When the HIL 211 receives a write request from the host device 102, the HIL 211 may receive user data U_DAT from the host device 102. The received user data U_DAT may be stored in the write buffer 231 of the memory unit 230.

[0057] The FTL 213 of the data processing unit 210 may control the operation of the memory device 150 in response to a request received from the host device 102. For example, when the HIL 211 receives a write request and user data U_DAT from the host device 102, the FTL 213 may generate corresponding write commands and programming data corresponding to the write request and the user data U_DAT, and send the generated write commands and programming data to the memory device 150.

[0058] In an embodiment, the HIL 211 and the FTL 213 may be configured as one processing unit. In this case, the data processing unit 210 may be implemented as one processing unit. In another embodiment, the HIL 211 and the FTL 213 may be configured as separate processing units.

[0059] The write buffer 231 included in the memory unit 230 may temporarily store user data U_DAT received from the host device 102. The user data U_DAT temporarily stored in the write buffer 231 may be converted into programming data and sent to the memory device 150. In this process, programming data may be generated by performing a data randomization operation and an ECC encoding operation on the user data U_DAT.

[0060] In the following description, the area for allocating and storing the user data U_DAT is represented by a fine shaded pattern. The area for allocating and storing the internal data IN_DAT is represented by a thick shaded pattern. The free area where no data is allocated and stored is shown as a blank pattern.

[0061] Figure 5A and Figure 5B is a diagram showing a write pointer when data is written to a zone namespace (ZNS).

[0062] Refer to Figure 5A, multiple physical blocks included in a partition of the memory device 150 are exemplarily shown. For ease of description, in Figure 5A and Figure 5B , a partition is shown as including eight physical blocks.

[0063] Whenever a write operation is performed in the partition, the area indicated by the write pointer WP moves by one physical block. When running a command, the memory controller 130 may write data within the indicated partition, but in some embodiments, data may be written based on the write pointer position. In one example, each partition may have a write pointer WP maintained by the memory controller 130 or the memory system, which tracks the starting position of the next write operation. Figure 5A It is shown that multiple data are written into the physical blocks within the range from physical block #1 to physical block #7 in the partition, and are not written into physical block #8.

[0064] Referring to Figure 5B , internal data IN_DAT is shown being written during data writing. In the memory system 110 using the partition namespace, it may occur that internal data IN_DAT is written into some of the multiple physical blocks included in the partition. For example, the internal data IN_DAT may include valid data migrated from a sacrificed block to a target block through internal background operations (such as garbage collection, wear leveling, etc.) performed by the memory system 110. The internal data IN_DAT may also include metadata related to the write operation of the user data U_DAT. The internal data IN_DAT may be generated by the memory system 110 rather than the user data U_DAT requested to be written by the host device 102. That is, the internal data IN_DAT may be data unrelated to the user data U_DAT transmitted from the host device 102 to the memory system 110, and the internal data IN_DAT may be data autonomously generated by the memory system 110.

[0065] In Figure 5B , the area where the internal data IN_DAT is written is shown as a thick shaded pattern. That is, the internal data IN_DAT is written into physical block #8 in the partition. During the writing of the internal data IN_DAT, the write pointer WP does not move because the internal data IN_DAT is not user data received from the host device 102. Therefore, even though the write pointer WP still indicates physical block #7, all the physical blocks in the partition (from physical block #1 to physical block #8) are actually written with data. That is, although the partition is full, the write pointer WP still indicates physical block #8 as if physical block #8 were an idle physical block.

[0066] According to the memory system 110 based on the disclosed technology and the method of operating the memory system 110, the write pointer WP in a partition may include a logical write pointer LWP and a physical write pointer PWP. The logical write pointer LWP may indicate, from the perspective of the host device 102, the logical position of the last user data U_DAT allocated to the partition. Moreover, the logical write pointer LWP may indicate, from the perspective of the memory controller 130, the physical position of the last user data U_DAT written to the partition. The logical write pointer LWP may be managed by the host device 102 and the memory controller 130.

[0067] The physical write pointer PWP may indicate, from the perspective of the memory controller 130, the physical position of the last data (including internal data IN_DAT and user data U_DAT) written to the partition of the memory device 150. The physical write pointer PWP may be managed by the memory controller 130. That is, the physical write pointer PWP may indicate the position of the last data actually written to the memory device 150 by the write operation performed by the memory controller 130.

[0068] Figure 6 It is a flowchart showing a method by which a memory controller updates a logical write pointer and a physical write pointer according to an embodiment of the present disclosure. Figures 7 to 9 Illustrated based on Figure 6 A method of updating the logical write pointer LWP and the physical write pointer PWP according to the shown method.

[0069] Referring to Figure 6 , in step S710, the memory controller 130 performs a write operation on the memory device 150. In step S710, the memory controller 130 may generate a write command for the memory device 150. The memory device 150 may perform a write operation in response to the write command received from the memory controller 130.

[0070] In step S730, it is determined whether the write operation performed on the memory device 150 corresponds to a write request received from the host device 102. When it is determined that the write operation performed on the memory device 150 corresponds to a write request received from the host device 102 (i.e., "Yes" in step S730), the data stored in the memory device 150 is the user data U_DAT received from the host device 102. Therefore, in step S750, the memory controller 130 updates the logical write pointer LWP and the physical write pointer PWP of the partition corresponding to the write operation.

[0071] When it is determined that the write operation performed on the memory device 150 does not correspond to the write request received from the host device 102 (i.e., "No" in step S730), this means that the data stored in the memory device 150 is internal data IN_DAT, rather than the user data U_DAT received from the host device 102. Therefore, in step S770, the memory controller 130 updates the physical write pointer PWP of the partition corresponding to the write operation. In step S770, the logical write pointer LWP is not updated.

[0072] Figure 7 is a diagram showing a ZNS operation using a logical write pointer and a physical write pointer according to an embodiment of the present disclosure. Refer to Figure 7 , in the memory controller 130, the write pointer WP in the partition is managed such that it is divided into a logical write pointer LWP and a physical write pointer PWP. The logical write pointer LWP can represent the write pointer WP recognized from the perspective of the host device 102. Therefore, when the user data U_DAT received from the host device 102 is written, the logical write pointer LWP is updated. The physical write pointer PWP can be a value indicating the position of the last data actually written to the memory device 150 and including the internal data IN_DAT. Therefore, when the data received from the host device 102 is written, the physical write pointer PWP is updated, and even when the internal data IN_DAT is written through the memory controller 130, the physical write pointer PWP is also updated. Refer to Figure 7 , the user data U_DAT received from the host device 102 is written to physical blocks #1 to #3. Since the internal data IN_DAT is not written, the logical write pointer LWP and the physical write pointer PWP indicate the same position.

[0073] Figure 8 is a diagram showing the process of updating the logical write pointer and the physical write pointer when internal data is written according to the Figure 6 shown method. Refer to Figure 8 , when the internal data IN_DAT is written in the partition state shown in Figure 6 , the write pointer WP update method is executed. In Figure 7 , the user data U_DAT is written to physical blocks #1 to #3, while the internal data IN_DAT is not written. Therefore, the physical write pointer PWP and the logical write pointer LWP indicate the same position. However, next, the internal data IN_DAT can be written to physical block #4. As Figure 8As shown, although the memory controller 130 performs a write operation on the internal data IN_DAT, from the perspective of the host device 102, the position indicated by the logical write pointer LWP is not updated. When the memory controller 130 performs a write operation on the internal data IN_DAT, the memory controller 130 updates the position indicated by the physical write pointer PWP when performing the corresponding write operation. Therefore, the positions indicated by the physical write pointer PWP and the logical write pointer LWP can be different from each other.

[0074] Referring to Figure 8 , the data written to physical block #4 is the internal data IN_DAT, so step S770 based on the determination in step S730 is performed. Figure 6 That is, when writing the internal data IN_DAT, the position indicated by the logical write pointer LWP is not updated, but the position indicated by the physical write pointer PWP is updated.

[0075] Figure 9 is a diagram of the process of updating the logical write pointer and the physical write pointer when writing user data according to the Figure 6 shown method.

[0076] Figure 9 shows how the write pointer WP is updated when the host device 102 newly requests to write four new user data U_DAT in the Figure 8 shown partition state.

[0077] In the Figure 8 shown partition state, the data (U_DAT, IN_DAT) is written to physical blocks #1 to #4. The host device 102 can newly request to write four user data U_DAT. Since the internal data IN_DAT is written to the corresponding partition, the positions indicated by the physical write pointer PWP and the logical write pointer LWP are different from each other.

[0078] As Figure 9 shown, from the perspective of the host 102, the position indicated by the logical write pointer LWP is updated to four logical blocks #4 to #7. The updated logical write pointer LWP indicates logical block #7.

[0079] The memory controller 130 can perform an operation of writing four user data U_DAT to four physical blocks #5 to #8. The memory controller 130 can update the physical write pointer PWP. The updated physical write pointer PWP indicates physical block #8. That is, when writing the user data U_DAT, the logical write pointer LWP is updated by the host device 102 and the memory controller 130. In contrast, when writing the internal data IN_DAT, only the memory controller 130 updates the physical write pointer PWP.

[0080] Reference Figure 9 , the physical write pointer PWP has reached the size of the partition (i.e., eight physical blocks), which means that the corresponding partition is full. In contrast, reference Figure 9 , from the perspective of the host device 102, the logical write pointer LWP indicates logical block #7. Therefore, the host device 102 can determine that it can further request to write user data U_DAT corresponding to one logical block #8. To avoid this problem, when a write request and user data U_DAT are received from the host device 102, the memory controller 130 determines the logical write pointer LWP of the host device 102 by using the logical block address of the user data U_DAT or the size of the user data U_DAT. The write request can be received from the host device 102 together with the logical write pointer LWP.

[0081] The memory controller 130 can determine whether the positions indicated by the logical write pointer LWP and the physical write pointer PWP corresponding to the received write request match each other.

[0082] When it is determined that the addresses indicated by the logical write pointer LWP and the physical write pointer PWP match each other, this means that the internal data IN_DAT has not been written to the corresponding partition. Therefore, the memory controller 130 can determine whether there is an available area in the corresponding partition for writing the user data U_DAT received from the host device 102 based on the position indicated by the logical write pointer LWP. When there is an available area in the corresponding partition for writing the user data U_DAT, the memory controller 130 can temporarily store the received user data U_DAT in the write buffer 231 and can send a normal response message corresponding to the write request to the host device 102. When there is no available area in the corresponding partition for writing the user data U_DAT received from the host device 102, the memory controller 130 can send a failure message to the host device 102. In this case, as Figure 3 shown, the state of the partition can be changed to a full partition (FULL), and another partition can be selected to write the corresponding data.

[0083] When it is determined that the logical write pointer LWP and the physical write pointer PWP do not match each other, this means that the internal data IN_DAT is written to the corresponding partition. Therefore, the memory controller 130 can determine whether there is an available area in the corresponding partition for writing the user data U_DAT received from the host device 102 based on the position indicated by the physical write pointer PWP. When there is an available area in the corresponding partition for writing the user data U_DAT received from the host device 102, the memory controller 130 can notify the host device 102 that there is an available area in the corresponding partition. In this case, the host device 102 can temporarily store the received user data U_DAT in the write buffer 231 and can transmit a normal response message corresponding to the write request to the host device 102. When there is no available area in the corresponding partition for writing the user data U_DAT received from the host device 102, the memory controller 130 can notify the host device 102 that there is no available area in the corresponding partition. In this case, the host device 102 can transmit failure information to the host device 102, and as Figure 3 shown, the partition status can be changed to a full partition (FULL). Another partition can be selected to write the corresponding data.

[0084] Figure 10 is a flowchart showing the operation of the memory controller according to an embodiment of the present disclosure. More specifically, Figure 10 is a flowchart showing the operation of the memory controller 130 when a write request is received from the host device 102.

[0085] Referring to Figure 10 , in step S1010, the memory controller 130 receives a write request from the host device 102. In step S1020, the memory controller 130 compares the logical write pointer LWP and the physical write pointer PWP of the partition corresponding to the write request with each other. Step S1020 can be executed by the memory controller 130.

[0086] In step S1030, it is determined whether the positions indicated by the logical write pointer LWP and the physical write pointer PWP are the same as each other. When the positions indicated by the logical write pointer LWP and the physical write pointer PWP are the same as each other (i.e., "Yes" in step S1030), this means that the internal data IN_DAT is not stored in the corresponding partition. Therefore, in step S1040, it is determined whether the logical write pointer LWP has reached the size of the partition. When the logical write pointer LWP has reached the size of the partition (i.e., "Yes" in step S1040), in step S1060, a message indicating that the corresponding partition (i.e., the selected partition) is full is sent to the host device 102. When the logical write pointer LWP has not reached the size of the partition (i.e., "No" in step S1040), in step S1070, a data write operation corresponding to the write request received from the host device 102 is performed. In step S1070, the write command and the programming data corresponding to the received write request and the received data, respectively, may be transmitted to the memory device 150. The memory device 150 may perform a write operation based on the received write command and the received programming data. In step S1080, the logical write pointer LWP and the physical write pointer PWP of the partition corresponding to the write operation are updated. Step S1080 may correspond to Figure 6 step S750 of

[0087] When the positions indicated by the logical write pointer LWP and the physical write pointer PWP are not the same as each other (i.e., "No" in step S1030), this means that the internal data IN_DAT is stored in the corresponding partition. Therefore, in step S1050, it is determined whether the physical write pointer PWP has reached the size of the partition. When it is determined that the physical write pointer PWP has reached the size of the partition (i.e., "Yes" in step S1050), in step S1060, a message indicating that the corresponding partition (selected partition) is full is sent to the host device 102. When the physical write pointer PWP has not reached the size of the partition (i.e., "No" in step S1050), in step S1070, a data write operation corresponding to the write request received from the host device 102 is performed. In step S1070, the write command and the programming data corresponding to the received write request and the received data, respectively, may be transmitted to the memory device 150. The memory device 150 may perform a write operation based on the received write command and the received programming data. In step S1080, the logical write pointer LWP and the physical write pointer PWP of the partition corresponding to the write operation are updated. Step S1080 may correspond to Figure 6 step S750 of

[0088] Hereinafter, referring to Figure 11 、 Figure 12 、 Figure 13 and Figures 14A to 14E, a method for synchronizing different logical write pointers LWP and physical write pointers PWP by the host device 102 and the memory system 110 in combination with internal data IN_DAT is described.

[0089] In the following description, the data DAT may include user data U_DAT and internal data IN_DAT. The partition corresponding to the above write request WT_REQ is referred to as the "target partition". In an embodiment of the present disclosure, the available area included in the target partition is referred to as the "free area FR1". The free area FR1 refers to an area where data is not allocated or stored. The free area FR1 determined by the host device 102 is referred to as the "logical free area FR1_L", and the free area FR1 determined by the memory controller 130 is referred to as the "physical free area FR1_P".

[0090] The sum of the "size of the data allocated or stored in the target partition" and the "size of the free area FR1" may correspond to the "size of the target partition". For the write operation of the user data U_DAT, the available area that needs to be additionally ensured in the target partition is referred to as the "additional free area FR2".

[0091] Figure 11 is a flowchart showing the operation of the host device generating a write request according to an embodiment of the present disclosure. In particular, Figure 11 a method for effectively using the target partition without opening a new partition when the "logical free area FR1_L" of the target partition is insufficient is described.

[0092] According to an embodiment of the present disclosure, the host device 102 applying the partition namespace may send a write request WT_REQ to the memory system 110 to request a write operation WT_OP of the user data U_DAT. When receiving a normal response message indicating that the write operation WT_OP corresponding to the write request WT_REQ has been completed from the memory system 110, the host device 102 may update the index of the physical write pointer PWP included in the normal response message to the index of the logical write pointer LWP. The host device 102 may also map the physical write pointer PWP received from the memory system 110 to the logical write pointer LWP.

[0093] The logical write pointer LWP may indicate the range of the valid logical area in which the user data U_DAT is allocated among the multiple logical areas included in the target partition. The logical write pointer LWP may distinguish the multiple logical areas into the valid logical area and the logical free area FR1_L where the user data U_DAT is not allocated. The logical area may correspond to a logical block.

[0094] The physical write pointer PWP may indicate the range of valid physical regions for storing data (U_DAT, IN_DAT) among multiple physical regions included in the target partition. The physical write pointer PWP may distinguish multiple physical regions into valid physical regions and physical free regions FR1_P where no data is stored. The physical regions may correspond to physical blocks.

[0095] To generate a write request WT_REQ, the host device 102 may calculate the size of the logical free region FR1_L of the target partition (S1110). The size of the logical free region FR1_L is managed by the host device 102 and may be calculated based on Figure 4 the logical write pointer LWP stored in the host device memory Host Memory 106 in

[0096] The logical free region FR1_L included in the target partition refers to the logical free region FR1_L where no data is allocated. The host device 102 may calculate the size of the logical free region FR1_L by subtracting the logical write pointer LWP from the size of the target partition.

[0097] The host device 102 may compare the size of the user data U_DAT with the size of the logical free region FR1_L (S1120).

[0098] When the size of the user data U_DAT is not greater than the size of the logical free region FR1_L (i.e., "No" in S1120), the host device 102 may determine that the sizes of the logical free region FR1_L and the physical free region FR1_P are sufficient to store the user data U_DAT. Accordingly, the host device 102 may send a normal type write request WT_REQ to the memory system 110 (S1130). In an embodiment of the present disclosure, the normal type write request WT_REQ may be a write request for user data DAT allocated to an idle logical block. That is, the normal type write request WT_REQ may be a write request that does not reallocate the user data U_DAT to an invalid logical block.

[0099] When the size of the user data U_DAT is greater than the size of the logical free area FR1_L (i.e., S1120 is "Yes"), the host device 102 may determine that the sizes of the logical free area FR1_L and the physical free area FR1_P are insufficient to store the user data U_DAT. Accordingly, the host device 102 may invalidate at least some of the valid logical blocks of the allocated data included in the target partition (S1140). Invalidating a logical block may mean deallocating the data assigned to the logical block. The host device 102 may reallocate the user data U_DAT to the invalidated logical blocks and the logical free area FR1_L. At this time, if there are free logical blocks in the target partition, the host device 102 may also allocate the user data U_DAT to the free logical blocks.

[0100] Subsequently, the host device 102 may send an overwrite type write request WT_REQ to the memory system 110 (S1150). In an embodiment of the present disclosure, the overwrite type write request WT_REQ may be a write request for the user data U_DAT allocated to the invalidated logical blocks and the free logical blocks.

[0101] In this way, when the "logical free area FR1_L" of the target partition is insufficient, the host device 102 may effectively use the target partition ZONE_1 by using the overwrite type write request WT_REQ.

[0102] Figure 12 is a flowchart showing an operation of a memory system according to another embodiment of the present disclosure for determining whether to perform a write operation. Specifically, in Figure 12 the memory system 110 may notify the host device 102 that the logical write pointer LWP and the physical write pointer PWP are different through a response corresponding to the write request WT_REQ. In Figure 12 the description of steps overlapping with Figure 10 is omitted, but the present disclosure may also include an embodiment combining Figure 10 and Figure 12 together.

[0103] The memory system 110 applying a partition namespace may include a memory device 150 including a plurality of partitions. The memory system 110 may include a memory controller 130 that controls the memory device 150 to perform a write operation WT_OP on a plurality of physical blocks included in each of the plurality of partitions.

[0104] Refer to Figure 12, the memory system 110 may receive a write request WT_REQ for a target partition from the host device 102 (S1210). The write request WT_REQ may include user data U_DAT and a logical block address LBA assigned to the user data U_DAT.

[0105] When receiving the write request WT_REQ, the memory system 110 may determine whether a write operation WT_OP can be performed in the target partition. Based on the size of the physical free region FR1_P of the target partition and the size of the user data U_DAT, the memory system 110 may determine whether the write operation WT_OP can be performed.

[0106] To this end, the memory system 110 may calculate the size of the physical free region FR1_P included in the target partition (S1220). The size of the physical free region FR1_P may be managed by the memory system 110 and may be calculated based on Figure 4 the physical write pointer PWP stored in the memory cells 230. The physical free region FR1_P being included in the target partition means the size of the physical region where no data is stored. The physical free region FR1_P may correspond to the physical blocks where no data is stored.

[0107] When the write request WT_REQ is of the normal type, the memory system 110 may calculate the size of the physical free region FR1_P by subtracting the physical write pointer PWP from the size of the target partition. When the write request WT_REQ is of the overwrite type, the memory system 110 may calculate the size of the physical free region FR1_P by subtracting the size of the physical block to be overwritten from the physical write pointer PWP.

[0108] When the size of the user data U_DAT requested to be written by the host device 102 is greater than the size of the physical free region FR1_P (i.e., "yes" in S1230), the memory system 110 may determine that the write operation WT_OP cannot be performed because the size of the physical free region FR1_P is not sufficient to store the user data U_DAT.

[0109] Accordingly, the memory system 110 may generate free region information INF_FR2 about an additional free region FR2 that needs to be additionally ensured in the target partition to perform the write operation WT_OP (S1260).

[0110] The free area information INF_FR2 may include information required for the host device 102 to calculate the size of the additional free area FR2. The free area information INF_FR2 may include the "size of the physical free area FR1_P", the "physical write pointer PWP of the target partition", and the "sum of the physical write pointer PWP and the length LENGTH of the user data U_DAT to be written upon request". Since the host device 102 has information about the size of the target partition and the size of the user data U_DAT, the host device 102 can calculate the size of the additional free area FR2 that needs to be additionally ensured by using the free area information INF_FR2 received from the memory system 110. The free area information INF_FR2 may also include the size of the additional free area FR2 calculated by the memory system 110.

[0111] The memory system 110 may put the free area information INF_FR2 into the first response R1 to the write request WT_REQ and send the first response R1 to the host device 102 (S1270). The first response R1 may further include a message indicating that the execution of the write operation WT_OP has failed FAIL.

[0112] The fact that the size of the user data U_DAT requested to be written by the host device 102 is larger than the size of the physical free area FR1_P may indicate that the positions of the logical write pointer LWP and the physical write pointer PWP are different from each other. Therefore, the memory system 110 according to an embodiment of the present disclosure may notify the host device 102 through the operation of S1270 that the positions of the logical write pointer LWP and the physical write pointer PWP are not the same. Thus, the host device 102 may use the overwrite type write request WT_REQ to synchronize the logical write pointer LWP and the physical write pointer PWP of the target partition ZONE_1.

[0113] When the size of the user data U_DAT requested to be written by the host device 102 is not larger than the size of the physical free area FR1_P (NO in S1230), the memory system 110 may determine that the write operation WT_OP can be performed because the positions of the logical write pointer LWP and the physical write pointer PWP are the same and the size of the physical free area FR1_P is sufficient to store the user data U_DAT.

[0114] Therefore, the memory system 110 may sequentially perform the write operation WT_OP on a plurality of physical blocks included in the target partition (S1280). Subsequently, the memory system 110 may update the address PBA of the last physical block on which the write operation WT_OP is performed to the physical write pointer PWP of the target partition (S1280). Thus, the logical write pointer LWP and the physical write pointer PWP may be synchronized.

[0115] The memory system 110 may place the updated physical write pointer PWP in the second response R2 to the write request WT_REQ and send the second response R2 to the host device 102 (S1290). The second response R2 may further include a message indicating that the write operation WT_OP is successful SUCCESS.

[0116] Thus, according to an embodiment of the present disclosure, the memory system 110 may determine whether the logical write pointer LWP and the physical write pointer PWP are in the same position and whether a write operation WT_OP can be performed based on the comparison result of the sizes of the physical free area FR1_P and the user data U_DAT. According to the comparison result, the memory system 110 may send the free area information INF_FR2 of the additional free area FR2 that needs to be additionally ensured in the target partition to the host device 102 as the first response R1 to the write request WT_REQ.

[0117] Figure 13 FIG. is a flowchart of a method for a host device according to an embodiment of the present disclosure to perform subsequent operations in response to a write request received from a memory system.

[0118] When receiving a response to the write request WT_REQ from the memory system 110 (S1310), the host device 102 may determine the type of the received response (S1320).

[0119] When the type of the received response is the first response R1 including the free area information INF_FR2, the host device 102 may determine that the area of the target partition of the memory system 110 is insufficient to store the user data U_DAT. Therefore, based on the free area information INF_FR2 received from the memory system 110, the host device 102 may invalidate at least some of the valid logical blocks included in the target partition (S1330).

[0120] The host device 102 may reallocate the user data U_DAT to the invalid logical blocks and resend the overwrite type write request WT_REQ to the memory system 110 (S1340).

[0121] When receiving the overwrite type write request WT_REQ from the host device 102, the memory system 110 may perform an erase and write operation on the corresponding physical block, thereby synchronizing the logical write pointer LWP and the physical write pointer PWP. This will be described in detail with reference to Figures 14A to 14E This will be described in detail.

[0122] When the type of the received response is the second response R2 including the updated physical write pointer PWP, the host device 102 may determine that the memory system 110 has successfully completed a write operation. Accordingly, the host device 102 may update the logical write pointer LWP by using the physical write pointer PWP received from the memory system 110 (S1350). Accordingly, the logical write pointer LWP and the physical write pointer PWP may be synchronized.

[0123] Figures 14A to 14E is a diagram showing the process of performing Figures 11 to 13 the write operation described in. Hereinafter, with reference to Figures 14A to 14E , the write operation according to an embodiment of the present disclosure described in Figures 11 to 13 will be described in detail.

[0124] Figure 14A is a flowchart showing a method in which the host device 102 generates a write request WT_REQ based on the size of a logical free area included in a target partition according to an embodiment of the present disclosure.

[0125] Figure 14A Exemplarily shows Figure 11 the operations of the host device 102 described in S1110, S1120, and S1130 of

[0126] The host device 102 according to an embodiment of the present disclosure may generate a write request WT_REQ for user data U_DAT having a size corresponding to two logical blocks. To this end, the host device 102 may calculate the size of the logical free area FR1_L included in the target partition ZONE_1.

[0127] As Figure 14A shown, the size of the target partition ZONE_1 corresponds to eight logical blocks LBA1 to LBA8, and the logical write pointer LWP may be "LBA6". Accordingly, the host device 102 may determine that data has been allocated to six of the eight logical blocks included in the target partition ZONE_1, and two logical blocks LBA7 and LBA8 are in the logical free area FR1_L.

[0128] Since the size of the user data U_DAT is the same as the size of the logical free area FR1_L, the host device 102 may determine that the size of the logical free area FR1_L is sufficient to store the user data U_DAT. Accordingly, the host device 102 may allocate the data DAT to the free logical blocks LBA7 and LBA8 and send a normal type write request WT_REQ to the memory system 110.

[0129] As Figure 14AAs shown, the write request WT_REQ may include request information WT_INF and user data U_DAT. The request information WT_INF may include identification information ZONE_ID of the target partition ZONE_1, a logical block address LBA_START and LENGTH assigned to the user data U_DAT, and the type TYPE of the write request WT_REQ. The logical block address may include a starting logical block address LBA_START and a data length LENGTH, where the data length LENGTH is the number of consecutive logical blocks after the starting logical block address LBA_START. For example, when the starting logical block address LBA_START is "LBA7" and the data length LENGTH is "2", this may refer to user data U_DAT assigned to two logical blocks corresponding to "LBA7 to LBA8".

[0130] In an embodiment, the host device 102 may set a bit indicating the type of the write request WT_REQ to a reset state (e.g., a first value) or a set state (e.g., a second value) to indicate the type of the write request WT_REQ. In an embodiment of the present disclosure, when the type TYPE of the write request WT_REQ is "0", it may indicate a normal type, and when the type TYPE of the write request WT_REQ is "1", it may indicate an overwrite type; however, the embodiment is not particularly limited thereto.

[0131] Figure 14B Exemplarily shown Figure 12 the operations of the memory system 110 described in S1230, S1260, and S1270.

[0132] When receiving a normal type write request WT_REQ for user data U_DAT corresponding to two logical blocks LBA7 and LBA8 from the host device 102, the memory system 110 may calculate the size of the physical free area FR1_P of the target partition ZONE_1 based on the physical write pointer PWP.

[0133] As Figure 14B shown, the size of the target partition ZONE_1 corresponds to eight physical blocks PBA1 to PBA8, and the physical write pointer PWP may be "PBA7". Therefore, the memory system 110 may determine that the data has been stored in seven of the eight physical blocks included in the target partition ZONE_1, and one physical block PBA8 is the physical free area FR1_P.

[0134] Since the size of the user data U_DAT requested to be written by the host device 102 is larger than the size of the physical free area FR1_P, the memory system 110 can determine that the write operation WT_OP cannot be performed. Subsequently, the memory system 110 can determine that the physical write pointer PWP managed by the memory system 110 and the logical write pointer LWP managed by the host device 102 are different from each other.

[0135] Therefore, the memory system 110 can generate free area information INF_FR2 related to the additional free area FR2 required in the target partition ZONE_1. Subsequently, the memory system 110 can put the free area information INF_FR2 into the first response R1 to the write request WT_REQ and send the first response R1 to the host device 102. The first response R1 can further include a message indicating that the execution of the write operation WT_OP has failed FAIL.

[0136] As Figure 14B shown, the free area information INF_FR2 included in the first response R1 can include "PBA7" indicating the physical write pointer PWP of the target partition ZONE_1. Although Figure 14B not shown in the figure, the free area information INF_FR2 can include "9EA", which represents the sum of the physical write pointer PWP and the size of the data DAT. The free area information INF_FR2 can further include "1EA", which represents the size of the additional free area FR2 calculated by the memory system 110.

[0137] Figure 14C Exemplarily shown Figure 13 are the operations of the host device 102 described in S1320, S1330, and S1340.

[0138] When the response received from the memory system 110 is the first response R1, the host device 102 can determine that the write operation has not been performed because the physical area included in the target partition ZONE_1 is not sufficient to store the user data U_DAT. Subsequently, the host device 102 can determine that the logical write pointer LWP and the physical write pointer PWP are different from each other based on the free area information INF_FR2 included in the first response R1. Subsequently, the host device 102 can determine that the size of the additional free area FR2 that needs to be additionally ensured in the target partition ZONE_1 of the memory system 110 is 1EA.

[0139] At this time, the host device 102 may open a new partition for unallocated data (e.g., ZONE_2) and allocate the user data U_DAT to the new partition ZONE_2. However, in this case, since the LBA8 indicating the free logical blocks included in the target partition ZONE_1 is not used for data allocation, there may be a problem of reducing the efficiency of the target partition ZONE_1.

[0140] To solve the above problem, the host device 102 according to an embodiment of the present disclosure may invalidate at least one valid logical block (e.g., LBA7) included in the target partition ZONE_1, re-allocate the user data U_DAT to the invalidated LBA7 and the "LBA8" indicating the free logical block, and re-transmit the overwrite type write request WT_REQ to the memory system 110.

[0141] Figure 14D Exemplarily shown Figure 12 The operations of the memory system 110 described in S1230, S1280, and S1290.

[0142] When receiving the overwrite type write request WT_REQ from the host device 102, the memory system 110 may perform an erase operation ER_OP on the "PBA7" corresponding to "7".

[0143] Subsequently, the memory system 110 may perform a write operation WT_OP of the user data U_DAT to be written on the "PBA7" on which the erase operation ER_OP has been performed and the "PBA8" indicating the free physical block. Subsequently, the memory system 110 may update the physical write pointer PWP from the existing "PBA7" to "PBA8".

[0144] The memory system 110 may put the "PBA8" indicating the updated physical write pointer PWP into the second response R2 to the write request WT_REQ and send the second response R2 to the host device 102. The second response R2 may further include a message indicating that the write operation WT_OP is successful SUCCESS.

[0145] Figure 14E Exemplarily shown Figure 13 The operations of the host device 102 described in S1320 and S1350.

[0146] When the response received from the memory system 110 is the second response R2, the host device 102 may determine that the write operation for the write request WT_REQ has been successfully completed. Accordingly, the host device 102 may update the logical write pointer LWP by using the updated physical write pointer PWP included in the second response R2. That is, "LBA6" indicating the existing logical write pointer LWP may be updated to "LBA8" indicating the logical block address corresponding to the updated physical write pointer PWP "PBA8".

[0147] The above description is only intended to exemplarily describe the technical spirit of the present disclosure, and those skilled in the art can make various changes and modifications without departing from the basic features of the present disclosure. Therefore, the embodiments disclosed in the present disclosure are not intended to limit the technical spirit of the present disclosure, but to describe the present disclosure. The scope of the technical spirit of the present disclosure is not limited by these embodiments. The scope of the present disclosure should be interpreted by the appended claims, and all technical spirits falling within the equivalent scope thereof should be construed as being included within the scope of the present disclosure.

Claims

1. A memory system adopting a partitioned namespace, comprising: A memory device, including a plurality of physical regions corresponding to each of a plurality of partitions; And A memory controller, controlling the memory device to perform a write operation on the physical region, Wherein, when a write request is received from a host device, the memory controller: Determine the size of a physical free region in the target partition of the write request that does not store data, Compare the size of the physical free region with the size of user data to be written, and Determine whether to send free region information about an additional free region required for performing the write operation on the user data in the target partition to the host device according to the comparison result.

2. The memory system according to claim 1, wherein, When the size of the user data is greater than the size of the physical free region, the memory controller sends a first response corresponding to the write request to the host device, and the first response includes the free region information.

3. The memory system according to claim 2, wherein, The first response further includes a failure message indicating that the write operation has not been performed on the user data.

4. The memory system according to claim 1, wherein, The free region information includes a physical write pointer, and the physical write pointer indicates the size of the physical region storing data in the target partition.

5. The memory system according to claim 4, wherein, The free region information includes the sum of the physical write pointer and the size of the user data.

6. The memory system according to claim 1, wherein, The free region information includes the size of the physical free region.

7. The memory system according to claim 1, wherein, The free region information includes the size of the additional free region.

8. The memory system according to claim 4, wherein, When the write request is of a normal type, the memory controller calculates the size of the physical free region by subtracting the physical write pointer from the size of the target partition.

9. The memory system according to claim 4, wherein, When the write request is of an overwrite type, the memory controller calculates the size of the physical free region by subtracting the size of the physical block to be overwritten from the physical write pointer.

10. The memory system according to claim 1, wherein, When the size of the user data is not greater than the size of the physical free region, the memory controller sequentially performs a write operation on the physical free region for the user data and updates the physical write pointer of the target partition.

11. The memory system according to claim 10, wherein, The physical write pointer includes the address of the last physical region among the physical regions in the target partition where the write operation is performed.

12. The memory system according to claim 10, wherein, The memory controller sends a second response corresponding to the write request to the host device, and the second response includes the updated physical write pointer.

13. The memory system according to claim 12, wherein, The second response further includes a success message indicating that the write operation on the user data has been successfully executed.

14. A data processing system, comprising: A host device, including a plurality of logical regions corresponding to each of a plurality of partitions, allocating user data to a logical free region of a target partition and generating a write request for the allocated user data; And A memory system, sending a response indicating whether a write operation corresponding to the write request fails to the host device. Wherein, when the host device allocates the user data, the host device determines whether to invalidate at least some of the valid logical regions included in the target partition according to a comparison result between the size of the logical free region and the size of the user data.

15. The data processing system according to claim 14, wherein, When the size of the user data is greater than the size of the logical free region, the host device invalidates at least some of the valid logical regions of the target partition and allocates the user data to the invalidated logical regions and the logical free region.

16. The data processing system according to claim 14, wherein, When the size of the user data is not greater than the size of the logical free region, the host device allocates the user data to the logical free region.

17. The data processing system according to claim 14, wherein, when the response received from the memory system includes free region information, the host device invalidates at least some of the valid logical regions of the target partition based on the free region information, re-allocates the user data to the invalidated logical regions and the logical free region, and re-sends the write request to the memory system, the free region information indicates an additional free region required for performing the write operation on the user data in the target partition.

18. The data processing system according to claim 17, wherein, The response further includes a failure message indicating that the write operation has not been performed.

19. The data processing system according to claim 14, wherein When the response received from the memory system includes a physical write pointer reflecting the write operation, the host device updates the logical write pointer of the target partition based on the physical write pointer.

20. The data processing system according to claim 14, wherein The host device calculates the size of the logical free region based on the logical write pointer indicating the logical region where the data is allocated and the size of the target partition.

21. The data processing system according to claim 17, wherein, The free region information includes a physical write pointer indicating the size of the physical region storing data in the target partition.

22. The data processing system according to claim 21, wherein, The free region information includes the sum of the physical write pointer and the size of the user data.

23. The data processing system according to claim 17, wherein, The free region information includes the size of the physical free region.

24. The data processing system according to claim 17, wherein, The free region information includes the size of the additional free region.