Managing operations in a memory system

The data transfer interrupt mechanism in memory systems addresses the latency issue by preempting lower priority program operations for higher priority read operations, enhancing QoS and throughput.

JP2026012430APending Publication Date: 2026-01-23YANGTZE MEMORY TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025187490
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-11-06
Publication Date
2026-01-23

AI Technical Summary

Technical Problem

Long program times in MLC memory systems, particularly when a read operation is received during an ongoing program operation, lead to delayed read operations, adversely affecting QoS latency and throughput targets.

Method used

Implementing a data transfer interrupt mechanism in the memory controller and device to preempt lower priority operations, such as program operations, by pausing them earlier to perform higher priority operations like read operations, without waiting for complete data transfer.

Benefits of technology

Improves QoS and user experience by reducing latency and increasing throughput by allowing higher priority operations to interrupt lower priority operations during data transfer, without causing logical disruptions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026012430000001_ABST
    Figure 2026012430000001_ABST
Patent Text Reader

Abstract

Management of suspend and resume operations in a memory system is described.SOLUTION: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for managing pause and resume operations in a memory system are described. An example system includes a memory device and a controller. The controller is configured to check whether a second command is received while performing the data transfer to the memory device for a first operation corresponding to the first command, wherein performing the data transfer to the memory device includes performing the data transfer in units of allocation units (AUs). In response to determining that the second command is received and the data transfer in the current AU is completed, the controller sends a pause command to the memory device.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] FIELD OF THE DISCLOSURE The present disclosure relates generally to memory systems, and more particularly to managing suspend and resume operations of memory systems. [Background technology]

[0002] A memory system may include one or more memory components that store data. The memory components may be, for example, non-volatile and volatile memory components. Generally, a host system may utilize a memory system to store data in and retrieve data from the memory components. Summary of the Invention [Means for solving the problem]

[0003] This disclosure describes managing suspend and resume operations in a memory system.

[0004] In one aspect, for example, this disclosure describes a system including a memory device and a controller. The controller is configured to: check whether a second command is received while performing a data transfer to the memory device for a first operation corresponding to the first command, where performing the data transfer to the memory device includes performing the data transfer in units of allocation units (AUs); and, in response to determining that the second command has been received and the data transfer in the current AU has been completed, send a pause command to the memory device. In response to receiving the pause command from the controller, the memory device is configured to pause data reception for the first operation, allocate buffer space for a second operation corresponding to the second command, perform the second operation using the buffer space allocated for the second operation, and return a result of the execution of the second operation to the controller.

[0005] In another aspect, the present disclosure describes a method performed by a system including a memory device and a controller, the method including: checking, by the controller, whether a second command has been received while performing a data transfer to the memory device for a first operation corresponding to the first command, where performing the data transfer to the memory device includes performing the data transfer in units of AUs; sending, by the controller, a pause command to the memory device in response to determining that the second command has been received and the data transfer in the current AU has been completed; pausing, by the memory device, data reception for the first operation in response to receiving the pause command from the controller; allocating, by the memory device, buffer space for a second operation corresponding to the second command; performing, by the memory device, the second operation using the buffer space allocated for the second operation; and returning, by the memory device, a result of the execution of the second operation to the controller.

[0006] In another aspect, the present disclosure describes a controller for controlling a memory device, the controller including at least one processor coupled to at least one memory that stores programming instructions that, when executed by the at least one processor, cause the controller to perform operations including: checking whether a second command is received while performing a data transfer to the memory device for a first operation corresponding to the first command, where performing the data transfer to the memory device includes performing the data transfer in units of AUs; and sending a pause command to the memory device in response to determining that the second command has been received and the data transfer in the current AU has been completed.

[0007] In yet another aspect, the present disclosure describes a memory device including at least one processor coupled to at least one memory that stores programming instructions, at least one internal memory, at least one buffer space, and an array of memory cells, the programming instructions, when executed by the at least one processor, cause the memory device to perform operations including receiving a pause command from the controller to pause data reception while performing data reception from the controller for a first operation corresponding to the first command, pausing data reception for the first operation in response to receiving the pause command from the controller, allocating one buffer space among the at least one buffer spaces for a second operation corresponding to a second command, performing the second operation using the buffer space allocated for the second operation, and returning a result of the execution of the second operation to the controller.

[0008] The details of one or more implementations of the subject matter of this disclosure are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a block diagram of an exemplary system having a memory device in accordance with some aspects of the present disclosure. [Figure 2A] FIG. 1 is a diagram of an exemplary memory card having a memory device in accordance with some aspects of the present disclosure. [Figure 2B] FIG. 1 is a diagram of an exemplary solid-state drive (SSD) having a memory device in accordance with some aspects of the present disclosure. [Figure 3] FIG. 1 is a block diagram of an exemplary memory in accordance with some aspects of the present disclosure. [Figure 4] FIG. 2 is a block diagram of an exemplary memory controller in accordance with some aspects of the present disclosure. [Figure 5]FIG. 1 is a schematic diagram of an exemplary memory device according to some aspects of the present disclosure. [Figure 6] FIG. 2 illustrates an example graph for managing suspend and resume operations associated with a memory system in accordance with some aspects of the present disclosure. [Figure 7] FIG. 10 illustrates another example graph for managing suspend and resume operations associated with a memory system in accordance with some aspects of the present disclosure. [Figure 8] FIG. 2 is a swimlane diagram of an exemplary process performed by a memory controller and a memory device in accordance with some aspects of the present disclosure. [Figure 9] 1 is a flowchart of an exemplary process performed by a memory controller in accordance with some aspects of the present disclosure. [Figure 10] 1 is a flowchart of an exemplary process performed by a memory device in accordance with some aspects of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0010] Like reference numbers and designations in the various drawings indicate like elements.

[0011] A memory system can be a storage device, a memory module, or a hybrid of a storage device and a memory module. Examples of storage devices and memory modules are described below in conjunction with Figures 1, 2A, and 2B. In general, a host system can utilize a memory system that includes one or more memory components, such as a memory device that stores data. The host system can provide data to be stored in the memory device and can request data to be retrieved from the memory device.

[0012] A memory device can include multiple memory cells. Each memory cell can be configured with a different storage mode or state, such as a single-level cell (SLC) or a multi-level cell (MLC). While an SLC can store only one bit per memory element, an MLC can store more than a single bit of information. For example, a triple-level cell (TLC) can store three bits of data, a quad-level cell (QLC) can store four bits of data, and a penta-level cell (PLC) can store five bits of data. TLC, QLC, PLC, and other cells capable of storing more than a single bit of information are collectively referred to herein as MLC. The state of a memory cell can be programmed, and the state of a memory cell can be determined by comparing the read voltage of the memory cell to one or more read level thresholds.

[0013] QoS (Quality of Service) is a key evaluation factor for memory systems. QoS metrics can include, for example, latency / response time, system throughput, and other measurements. Different QoS latency metrics or numbers can be established for various applications. For example, a mixed write and read (or mixed input and output (I / O)) workload environment can include, for example, a random write / read workload and a sequential write / read workload. In one example, a memory system can have a QoS target of 99.9% for a mixed workload having a drive capacity with a 70% write / 30% write / read ratio, a 4K page size, and a queue depth=1. In another example, a memory system can have a QoS target of 99.999% for a mixed workload having a drive capacity with a 70% write / 30% write / read ratio, a 4K page size, and a queue depth=32.

[0014] Each programming pass performed on a memory system takes a duration (e.g., program time) to complete. The long program times associated with memory systems, especially MLC memory systems where three or more bits of information are stored per memory element, can adversely affect the achievement of associated QoS targets.

[0015] In a memory system operating with a mixed workload, if a read operation request is received while a previous program operation is in progress, the read operation is forced to wait until the program operation is completed. Due to the longer program times associated with MLC memory systems in which more than two bits of information are stored per memory element, read operations are delayed for the longer program times, thereby adversely affecting QoS latency and throughput targets.

[0016] Particular implementations of the subject matter described in this disclosure can be implemented to help achieve one or more of the following advantages: In some implementations, the QoS and user experience (e.g., with respect to system response time) of a memory system for read operations (or other operations having a higher execution priority) may be improved because an ongoing lower execution priority operation (e.g., a program operation or a write operation) may be preempted by a higher execution priority operation. For example, a data transfer interrupt mechanism may be introduced in both the memory controller and the memory device of the memory system, such that a lower execution priority operation (e.g., a program operation) may be paused earlier than in other memory systems that do not implement the disclosed features in order to perform a higher execution priority operation (e.g., a read operation). Furthermore, unlike a write pause command, which in some cases may pause an ongoing program operation only after data transfer from the controller to the memory device is complete but before, for example, the data is actually stored within the memory device, the techniques described in this disclosure may pause an ongoing program operation while data is still being transferred from the memory controller without the memory device having to wait until all data has been received from the controller.

[0017] In some implementations, the described techniques allow a pre-check method to be implemented on the memory controller side to ensure that processing of a read operation preempts the program data transfer process of a program operation. In some implementations, on the memory controller side, hardware can handle the pre-check or determination without the need for firmware to involve additional control operations. The read handle can pause data transfer to automatically reduce latency.

[0018] On the memory device, a page buffer dynamic switching method can be implemented to ensure that read and write operations can be mixed and processed appropriately. In some implementations, in the described technique, a command-based preemption interaction mechanism is designed to avoid logical disruption of internal processing on the memory device side. For example, using this feature, the memory device can automatically identify the type of operation and switch read / program context without corrupting the internal state machine of the memory device.

[0019] In some implementations, the described techniques may avoid waiting for data transfers for ongoing program operations to complete, thereby reducing holding up other memory operations, improving the efficiency of processing read commands, and / or increasing the throughput of the memory system.

[0020] FIG. 1 illustrates a block diagram of an exemplary system 100 having a memory device according to some aspects of the present disclosure. The system 100 may be a mobile phone, a desktop computer, a laptop computer, a tablet computer, a vehicle computer, a game console, a printer, a positioning device, a wearable electronic device, a smart sensor, a virtual reality (VR) device, an augmented reality (AR) device, or any other suitable electronic device having a storage device therein. As shown in FIG. 1 , the system 100 may include a host 108 and a memory system 102, the memory system 102 having one or more memory devices 104 and a memory controller 106. For example, the host 108 may be a processor (e.g., a central processing unit (CPU)) or a system-on-chip (SoC) (e.g., an application processor (AP)) of an electronic device. The host 108 may be configured to transmit data to or receive data from the memory device 104. To transmit data to or receive data from the memory device 104, the host 108 may transmit instructions to the memory system 102 in addition to the data.

[0021] The memory device 104 may be any memory device disclosed in this disclosure. As disclosed in detail below, the memory device 104 (e.g., a NAND flash memory device) may support an interrupt-triggered program operation pause.

[0022] In some implementations, the memory controller 106 is coupled to the memory device 104 and the host 108 and is configured to control the memory device 104. The memory controller 106 can manage data stored in the memory device 104 and communicate with the host 108. In some implementations, the memory controller 106 is designed to operate in a low-duty-cycle environment, such as a Secure Digital (SD) card, a CompactFlash (CF) card, a Universal Serial Bus (USB) flash drive, or other media for use in electronic devices such as personal computers, digital cameras, mobile phones, etc. In some implementations, the memory controller 106 is designed to operate in a high-duty-cycle environment, such as an SSD or an embedded multimedia card (eMMC) used as a data storage device and enterprise storage array for mobile devices such as smartphones, tablet computers, and laptop computers.

[0023] The memory controller 106 may be configured to control operations (e.g., read, erase, and program operations) of the memory device 104. For example, based on instructions received from the host 108, the memory controller 106 may send various commands (e.g., program commands, read commands, erase commands, etc.) to the memory device 104 to control operations of the memory device 104. Consistent with the scope of the present disclosure, in some implementations, the memory controller 106 sends a program command to the memory device 104 to initiate a program operation performed by the memory device 104. During an ongoing program operation, an interrupt (e.g., a read operation to another page) may occur, for example, from the host 108. The memory controller 106 may be configured to send an interrupt command to the memory device 104 to pause the program operation. In some implementations, once the other operation triggered by the interrupt is completed, the memory controller 106 may also be configured to send a resume command to the memory device 104 to resume and complete the paused program operation.

[0024] The memory controller 106 may also be configured to manage various functions related to data stored or to be stored in the memory device 104, including, but not limited to, bad block management, garbage collection, logical to physical address translation, wear leveling, etc. In some implementations, the memory controller 106 is further configured to process error correction codes (ECC) related to data read from or written to the memory device 104. The memory controller 106 may also perform any other suitable functions, such as formatting the memory device 104. The memory controller 106 may communicate with an external device (e.g., a host 108) according to a particular communication protocol. For example, the memory controller 106 may communicate with external devices via at least one of a variety of interface protocols, such as a USB protocol, an MMC protocol, a peripheral component interconnection (PCI) protocol, a PCI Express (PCI-E) protocol, an advanced technology attachment (ATA) protocol, a serial ATA protocol, a parallel ATA protocol, a small computer system interface (SCSI) protocol, an enhanced small disk interface (ESDI) protocol, an integrated drive electronics (IDE) protocol, a Firewire protocol, and the like.

[0025] The memory controller 106 and one or more memory devices 104 may be integrated into various types of storage devices, e.g., included in the same package (e.g., a universal flash storage (UFS) package or an eMMC package). That is, the memory system 102 may be implemented and packaged in different types of final electronic products. In one example shown in FIG. 2A , the memory controller 106 and a single memory device 104 may be integrated into a memory card 202. The memory card 202 may include a PC card (PCMCIA), a CF card, a SmartMedia (SM) card, a memory stick, a multimedia card (MMC, RS-MMC, MMC micro), an SD card (SD, miniSD, microSD, SDHC), UFS, etc. The memory card 202 may also include a memory card connector 204 configured to couple the memory card 202 to a host (e.g., the host 108 of FIG. 1 ). In another example shown in FIG. 2B , the memory controller 106 and multiple memory devices 104 may be integrated into an SSD 206. The SSD 206 may also include an SSD connector 208 configured to couple the SSD 206 to a host (e.g., the host 108 in FIG. 1 ). In some implementations, the storage capacity and / or operating speed of the SSD 206 may be greater than the storage capacity and / or operating speed of each of the memory cards 202.

[0026] 3 illustrates a block diagram of an exemplary memory system 302 according to some aspects of the present disclosure. As shown, the memory system 302 includes a memory controller 306 and a memory device 304. The memory controller 306 and the memory device 304 may be exemplary implementations of the memory controller 106 and the memory device 104 described with respect to FIGS. 1, 2A, and 2B.

[0027] The memory controller 306 may, for example, exchange data with the memory device 304 in response to a request from a host (e.g., the host 108 of FIG. 1). As one example, the memory controller 306 may read data from the memory device 304 in response to a request from the host and may provide the read data to the host. As another example, the memory controller 306 may write or program data into the memory device 304 in response to a program request from the host.

[0028] In some implementations, to perform the above operations, the memory controller 306 can provide signals such as addresses (ADDR), commands (CMD), and control signals (CTRL) to the memory device 304 and can exchange data (DATA) with the memory device 304. The memory device 304 can output data or program received data in response to signals received from the memory controller 306.

[0029] The memory controller 306 can provide commands such as a read command, a program command, and an erase command to the memory device 304. For example, the memory controller 306 can request a word-line-by-word-line program operation of the memory device 304 via a program command. The memory controller 306 can transmit one or more addresses representing one or more word lines on which the program operation is to be performed, thereby causing programming to be performed on memory cells on one or more word lines of a memory block of the memory device 304 indicated by one or more addresses ADDR. As another example, the memory controller 306 can request a read operation to read data stored in memory cells on one or more word lines of the memory device 304 via a read command. As another example, the memory controller 306 can request an erase operation to erase data programmed in memory cells of one or more memory blocks or sub-block units of the memory device 304 via an erase command.

[0030] FIG. 4 shows a block diagram of an exemplary memory controller 406 according to some aspects of the present disclosure. The memory controller 406 may include one or more processors 422 and one or more memories, including one or more of a cache 424 and / or another type of data storage device. While FIG. 4 shows a dynamic random access memory (DRAM) 426 separate from the memory controller 406, in some other implementations, the DRAM 426 may be included as part of the memory contained within the memory controller 406. In some implementations, the memory controller 406 may include a DRAM controller 425 for the DRAM 426. The memory controller 406 may also include an interface (I / F) 428 (also referred to as a “front-end interface”) to the host 408 and an interface (I / F) 430 (also referred to as a “back-end interface”) to the memory device 404. In some implementations, the interface 428 may receive instructions and data from the host 408 and transfer the instructions and data to the processor 422 and the DRAM 426, respectively. In some implementations, the interface 430 can transfer control signals and data from the processor 422 and the DRAM 426, respectively, to the memory device 404.

[0031] In some implementations, the processor 422 may include an arithmetic logic unit (ALU) configured to perform arithmetic and / or logical operations. One or more memories of the memory device 404, the memory controller 406, such as the cache 424, or a combination thereof, may store programming instructions that, when loaded into the processor 422, may be executed by the processor 422 to perform various functions of the memory controller 406, such as those described in this disclosure. As an example, the memory controller 406 is configured to perform functions such as repeatedly checking whether a second command has been received from the host 408 while performing a data transfer to the memory device 404 for a first operation corresponding to the first command, and, if the data transfer in the current allocation unit is completed, sending a pause command to the memory device 404 as soon as the second command is received.

[0032] 5 shows a schematic diagram of an exemplary memory device 502 according to some aspects of the present disclosure. The memory device 502 may be an exemplary implementation of the memory device 104 or 304 described with respect to FIGS. 1, 2A, 2B, and 3. As shown, in some implementations, the memory device 404 includes a microcontroller unit (MCU) 510, an internal memory 520, a page pool 530, and a memory cell array 540.

[0033] Generally, memory cell array 540 includes one or more memory planes, each including multiple memory blocks. In some implementations, a memory block is the basic or smallest unit for performing erase operations. In some implementations, each memory block includes multiple pages, each including multiple memory planes. In some implementations, a page is the basic or smallest unit for performing program operations. In some implementations, the memory cells of a page can share word lines.

[0034] In some implementations, memory cell array 540 is a flash memory array and is implemented using three-dimensional (3D) NAND flash memory technology. In these implementations, each of the memory blocks includes multiple strings of memory cells arranged vertically (e.g., perpendicular to the major surface of the die). Each string of memory cells includes multiple memory cells connected in series.

[0035] In some implementations, the MCU 510, the internal memory 520, and the page pool 530 operate as peripheral circuits that drive the memory cell array 540. That is, the MCU 510, the internal memory 520, and the page pool 530 can function to perform read, write, and erase operations on the memory cell array 540. These components perform read, write, and erase operations on the memory cell array 540 under the control of the MCU 510.

[0036] The MCU 510 may include one or more processing cores capable of executing the MCU's respective control software, firmware, or both to perform the MCU's functions. The MCU 510 may receive commands CMD and / or control signals CTRL, for example, via input / output buffers of the memory device 502. The MCU 510 is configured to control the overall operation of the memory device 502 in response to the commands CMD and / or control signals CTRL. In one example, in response to a read command, the MCU 510 may generate control parameters for generating control signals to read data from the memory cell array 540. In another example, in response to a write command or a program command, the MCU 510 may generate control parameters for generating control signals to write or program data to the memory cell array 540. In another example, in response to an erase command, the MCU 510 may generate control parameters for generating control signals to erase one or more blocks of the memory cell array 540.

[0037] The internal memory 520 operates as a cache or buffer memory for the memory device 502. The internal memory 520 may be implemented, for example, as a cache buffer, a page cache, or in another manner for fast data access. For example, the internal memory 520 may temporarily store data received from a memory controller or a host, or may temporarily store metadata (e.g., a mapping table) of the memory cell array 540. Alternatively or additionally, the internal memory 520 may temporarily store various information required for the MCU 510 to operate. For example, the MCU 510 may search for an open memory block by using data stored in the internal memory 520.

[0038] The page pool 530 includes multiple page buffers (or page registers). The page pool 530 operates under the control of the MCU 510. In some implementations, the page pool 530 is connected to the memory cell array 540 via bit lines. In some implementations, the page pool 530 is connected to the internal memory 520 via multiple data lines. The page pool 530 can store data to be programmed into memory cells of the memory cell array 540 or data read from memory cells. During a program operation, the page pool 530 receives data to be programmed into memory cells from the internal memory 520 of the memory device 502 and stores the received data. During a read operation, the page pool 530 temporarily stores data read from memory cells and outputs the read data to the internal memory 520 of the memory device 502. In some implementations, the page pool 530 may include a column select circuit and the like in addition to the page buffer.

[0039] 6 illustrates an example graph for managing suspend and resume operations associated with a memory system, according to some aspects of the present disclosure. From left to right, FIG. 6 illustrates a timeline of operations including operations performed by a memory controller of the memory system (e.g., memory controller 106 of memory system 102). For example, the memory controller may perform these operations within a mixed write and read workload environment.

[0040] FIG. 6 uses CMD1-CMD5 to refer to each command for different operations, where CMD1 refers to the data transfer pause command, CMD2 refers to the read command, CMD3 refers to the program command, CMD4 refers to the final program data transfer resume command, and CMD5 refers to the final program operation abort command.

[0041] 6, a program command for programming a memory device is issued by a memory controller, for example, in accordance with a program command from a host. In addition, one or more addresses representing one or more word lines of a memory block of the memory device on which the program operation is to be performed are issued, for example, in accordance with a command from the same host that also provided the program command. In response to receiving the program command and addresses, the program operation of the program command is performed.

[0042] In some implementations, the program operation of a program command on a memory device includes a memory controller sending or transferring data to be programmed to the memory device. In some implementations, the memory controller performs data transfers to the memory device in units of allocation units. That is, to transfer data to be programmed to the memory device, the memory controller partitions the data into a sequence of allocation units (AUs) and sends the AUs one by one in order according to the sequence of the AUs. For example, as shown in FIG. 6, the memory controller sends data to the memory device in the sequence of AU0, AU1, AU2, and AU3.

[0043] An AU is the basic unit or smallest amount of data that can be separately retrieved from or written to a memory system. In some implementations, AUs are of equal size within a memory system. In some other implementations, the size of an AU can vary within a memory system or can vary from memory system to memory system. In some implementations, each AU has a size that is smaller than the size of a page. As a non-limiting example, each AU can have a size equal to 1 / 2, 1 / 4, or 1 / 8 of the page size.

[0044] Program operations (including data transfers from a memory controller to a memory device) take a duration to complete. In general, different operations may have different characteristics, such as execution priority, and may take or be associated with different durations to complete. To improve the overall execution efficiency or response time of the memory system, one program operation having a higher execution priority than another program operation may preempt or interrupt the execution of another program operation, even if the other program operation is already executing or the command for the program operation having the higher execution priority is received after the command for the other program operation having a lower execution priority.

[0045] During execution of a program operation, the memory controller may, for example, repeatedly check whether another command associated with the memory system has been received while executing a data transfer to the memory device for the program operation of the program command, which may require yet another command having a higher execution priority than the current program operation.

[0046] In some cases, no other commands are received and the memory controller continues transferring the current AU or moves on to transfer the next AU in the sequence to the memory device. In other cases, another command related to the memory system is received, for example, from the same or a different host.

[0047] While FIG. 6 illustrates the other command as a read command, more generally, the other command may be any command requesting an operation that has a higher execution priority than the current program operation of the program command. In some implementations, the execution priority of different operations may be determined based on the duration to complete the different operations. For example, an operation that requires a shorter duration to complete may have a higher execution priority. In the example shown in FIG. 6, the other command may be an operation that takes a shorter duration to complete than the program operation of the program command. As an example, the other command may be a read operation that takes a shorter duration to complete than the program operation. As another example, the other command may be another program operation to write a smaller amount of data to a memory device that takes a shorter duration to complete than the current program operation to write a larger amount of data to a memory device. In some other implementations, the execution priority of different operations may be determined by, or in some cases based on, the importance of the operation or other factors or preferences.

[0048] In the example shown in FIG. 6, in response to receiving or detecting a read command, a data transfer pause command is issued by the memory controller to pause the ongoing data transfer process for the program operation. In some cases, the data transfer pause command is sent as soon as the read command is detected to limit the delay in servicing the read command. Thus, in some implementations, the memory controller can send the data transfer pause immediately after the transfer of the current AU is completed and before the transfer of a subsequent AU in the sequence of AUs begins. In some implementations, if the transfer of the current AU (e.g., AU0 shown in FIG. 6) is not yet complete, the memory controller can wait until the transfer of the current AU is completed and then proceed to process the handover to perform the operation associated with the received read command.

[0049] Following the data transfer pause command, a read command corresponding to the received read command (e.g., from the host) is issued by the memory controller to perform the read operation of the read command. As shown in FIG. 6, the read operation is performed during the program pause phase. The read operation of the read command on the memory device includes the memory device sending read data to the memory controller. In some implementations, the memory device similarly performs read data transfers to the memory controller in units of AUs, such as when program data is transferred for a program operation.

[0050] In some cases, once the read operation is completed, a final program data transfer resume command is issued by the memory controller. The final program data transfer resume command resumes the previously paused program operation of the memory device, and more particularly, resumes the data transfer process to allow the data transfer of the previously paused program operation to continue. In some implementations, the data transfer process may be resumed from the next AU (e.g., AU1) in the sequence of AUs at which the data transfer process was paused so that the transfer of data to be programmed into the memory device from the memory controller may be completed.

[0051] In some cases, when the read operation is completed, a final program operation abort command is additionally or alternatively issued by the memory controller. The final program operation abort command instructs the memory device to abort the previously paused program operation. Upon receiving the final program operation abort command, the memory device can discard the already received AUs of data to be programmed during the final program operation.

[0052] 7 illustrates another exemplary graph for managing suspend and resume operations associated with a memory system in accordance with some aspects of the present disclosure. FIG. 7 illustrates several operations, including operations performed by a memory device of the memory system (e.g., memory device 104 or memory device 502 of memory system 102), for example, in a mixed write and read workload environment. The operations of FIG. 7 may correspond to operations performed by a memory controller of the memory system, as described in FIG. 6. The memory device may include an MCU, an internal memory, a page pool, and a memory cell array similar to MCU 510, internal memory 520, page pool 530, and memory cell array 540, respectively, of memory device 502.

[0053] As shown in FIG. 7, an AU (or simply referred to as an AU) of data is received by a memory device, for example, from a memory controller. In some implementations, the AU may be an intermediate AU in a sequence of AUs being transferred for a program operation. The AU is referred to as an “intermediate” AU because it is not the last AU in the sequence of AUs and the transfer of data to be programmed into memory cells of the memory device is not yet complete with the receipt of this AU by the memory device. In some implementations, while performing the program operation, the AU may be temporarily stored in an internal memory of the memory device (e.g., internal memory 520) and then transferred for storage in a buffer space allocated for the program operation in a page pool of the memory device.

[0054] After the AU is received, a command is received by the memory device, for example, from a memory controller. In some implementations, the memory device may include a command arbiter. In some implementations, the command arbiter may be implemented as an integrated or separate part of the MCU of the memory device. In some implementations, the command arbiter may receive and process commands from the memory controller, for example, to determine the type of command. In some implementations, the command type may include, for example, a data transfer pause command, a read command, a last program data transfer resume command, etc. A corresponding operation may be configured for each command. The MCU may perform the corresponding operation according to the command type, for example, based on an MCU control signal. In some implementations, by using the command arbiter, the memory device can automatically identify commands and switch read / program contexts without corrupting the internal state machine of the memory device. In some implementations, command-based preemptive interaction between the memory controller and the memory device may avoid disruption or malfunction of the internal processing logic of the memory device.

[0055] In general, the command arbiter may be implemented by hardware, firmware, software, or a combination of these components within the memory device. In some implementations, the command arbiter may be implemented using hardware to handle arbitration or decisions, without burdening the firmware of the memory device with additional control actions. In some implementations, such an implementation can further reduce latency and improve the response speed of the memory device.

[0056] In some cases where the command is a data transfer pause command, the memory device pauses receiving data for the program operation, stores the data (including already received AUs in the sequence of AUs for the program operation), and stores an execution status context for the program command in an internal memory of the memory device. For example, the context for the program command can include function, variable, and other object data and / or metadata data that describes the current execution status of the program command, so that the program command can be resumed after a pause. As an example, the context for the program command can include information including the programming page, program path, and program / verify cycle at which the program operation was paused, which can be used to resume the paused program operation.

[0057] In some of these cases, the data transfer pause command may be followed by a read command. Accordingly, the memory device also allocates buffer space within its page pool for the read operation of the read command. In some implementations, the memory device can dynamically allocate respective buffer spaces within the page pool for read operations and program operations. In some implementations, the buffer space allocated for read operations may differ from the buffer space allocated for program operations. For example, the respective buffer spaces may correspond to different page buffers (or page registers) within the page pool, different spaces within the same page buffer, or different spaces within different page buffers. In some implementations, the memory device can dynamically switch between the respective buffer spaces within the page pool for read operations and program operations without inadvertently overwriting data or causing other malfunctions. In some implementations, such a page buffer dynamic switching method on the memory device side can help ensure that read and write operations can be properly processed, for example, in mixed IO applications. Execution of a read operation performed while a program operation is paused can use this allocated buffer space to temporarily store data read from memory cells of the memory device. Upon completing execution of the read operation, the memory device returns the results of the execution of the read operation to the memory controller, including providing the memory controller with the read data stored in the allocated buffer space.

[0058] In some cases where the command is the last program data transfer resume command, the memory device resumes the previously paused program operation of the memory device. In some implementations, the memory device restores the context from its internal memory and continues receiving data from the memory controller for the program operation. In particular, the memory device can resume the data reception process at an AU in the sequence of AUs where the data reception process was paused so that the memory device can complete its reception of the data to be programmed.

[0059] In some implementations, such as when a program operation was performed before the pause, these subsequently received AUs may be temporarily stored in the internal memory of the memory device and then transferred for storage in a buffer space allocated for the program operation in the page pool of the memory device. Once the memory device receives the entire sequence of AUs, the memory device can map the buffer space allocated for the program operation to memory cells of the memory device. That is, the memory device programs the AUs stored in the buffer space into the memory cells. AUs may be mapped or unmapped. AUs can be switched between being mapped and unmapped. A mapped AU may refer, for example, to an AU assigned to a logical address space used by the host, whereas an unmapped AU may refer, for example, to an AU not currently assigned to a logical address space used by the host, even though the mapped AU may currently be used to store and retrieve data for the host.

[0060] In some cases where the command is the final program operation abort command, the memory device aborts the program operation (the data reception process that was paused to allow the read operation to be performed). The memory device can reset its internal memory and release buffer space allocated for the program operation in the page pool, thereby discarding all data (including AUs already received in the sequence of AUs) stored for the program operation currently directed by the memory controller in order to abort.

[0061] FIG. 8 is a swim-lane diagram of an example process 800 for managing suspend and resume operations in accordance with some aspects of the present disclosure. The example process 800 may be performed by a memory system (e.g., memory system 102). The example process 800 is described as being performed by a memory system having a memory controller and memory devices appropriately programmed in accordance with the present disclosure. In some implementations, some or all of the operations in the example process 800 may be implemented based on the techniques described with respect to FIGS. 3-7. The operations shown in process 800 may not be inclusive, and other operations may be performed before, after, or between any of the described operations. Furthermore, some of the operations may be performed simultaneously or in a different order than that shown in FIG. 8.

[0062] The memory controller sends a first command to perform a first operation on the memory device (802). The first operation may be, for example, a program operation, an erase operation, or another operation performed by the memory device. For example, a program operation may be used to store data from a host in the memory system.

[0063] In response to the first command, the memory device begins executing a first operation on the memory device (804). In exemplary process 800, if the first operation is a program operation, execution of the program operation begins with receiving data to be programmed into the memory device from the memory controller. The memory device may receive the data AU by AU in a sequence of AUs. To execute the program command, the memory device may allocate buffer space for the program operation, which is used to temporarily store the data to be programmed into the memory device.

[0064] While executing the data transfer to the memory device for the program operation corresponding to the program command, the memory controller monitors and determines whether a second command has been received from the host and whether the data transfer in the current AU has been completed (806). The second command may be associated with a second operation having a higher execution priority than the first operation, for example, so that the first operation may be paused and preempted by the second operation. As an example, the second command may be a read command that includes an identification of the memory device that is being processed or is under the influence of the first operation in progress and requests the memory device to read data from the memory device. As another example, the second command may be another program command that requests the memory device to write some data (e.g., a smaller amount of data or data of a higher priority) before the first program operation is completed.

[0065] In some implementations, the memory controller can perform a check whether the second command has been received from the host once, periodically, or occasionally. As an example, the memory controller can perform the check repeatedly at a predetermined frequency, for example, every 1 μs, every 10 μs, or every 50 μs. As another example, the memory controller can perform the check before or between transfers of each AU in a sequence of AUs from the memory controller to the memory device.

[0066] In response to determining that a second command (or a command having a higher execution priority than the current first operation) is not received from the host, the data transfer continues and the next AU in the sequence of AUs is transferred from the memory controller to the memory device.

[0067] In response to receiving a second command and determining that the data transfer in the current AU (i.e., the AU currently being transferred in at the time the second command is received) is not complete, the memory controller may wait until the data transfer in the current AU is complete.

[0068] In response to determining that the second command has been received and the data transfer in the current AU is complete, the memory controller sends a pause command to the memory device to pause the first operation (808).

[0069] In response to receiving a pause command from the controller, the memory device executes a data transfer pause operation. Execution of the pause operation interrupts or stops programming of the memory device (810). In some implementations, the memory device pauses receiving data from the memory controller. In conjunction with pausing data reception, the memory device stores already received data for the first operation (including already received AUs) and an execution status context for the first operation in an internal memory of the memory device.

[0070] By stopping or interrupting a first operation in progress, even before the data transfer of the first operation from the memory controller to the memory device is completed, the memory system can react more quickly to a second command (e.g., a read command) having a higher execution priority. Advantageously, in some implementations, the first operation may be paused substantially simultaneously with the identification of the second command to reduce or limit the operational latency of the second operation, e.g., taking into account applicable QoS metrics in a mixed write and read workload environment.

[0071] The memory controller sends a second command to the memory device to perform the second operation (812). Using the above example, the second command may be a read command, and the second operation may be a read operation to read data from the memory device. In some implementations, the second command sent by the memory controller to the memory device may have a different format than the second command received by the memory controller from the host. For example, the second command sent by the memory controller to the memory device may be generated by the memory controller based on information included in the second command received by the memory controller from the host, e.g., to indicate a read operation to read data from the memory device. The second command sent by the memory controller to the memory device may include, for example, additional or different data fields, control information, or may have a different format than the second command received by the memory controller from the host.

[0072] In response to receiving the second command from the memory controller, the memory device proceeds to execute the second operation immediately after pausing the first operation (e.g., a program operation), resulting in servicing the second command with little or no delay. Advantageously, in a memory system operating with a mixed workload, pausing the data transfer of the first operation allows the second operation to be serviced without having to wait for the transfer of remaining AUs in a sequence of AUs to complete the first operation in progress. As a result, in some examples, the latency of the memory system may be significantly reduced.

[0073] In some implementations, the memory device allocates buffer space in the page pool for a read operation corresponding to the second command (814). The memory device performs the second operation using the buffer space in the page pool allocated for the second operation (816). For example, the memory device may use the buffer space to temporarily store read data from memory cells and output the data to an internal memory of the memory device. The memory device returns a result of executing the second operation to the controller (818). For example, if the second operation is a read operation, the memory device may provide the read data stored in its internal memory to the memory controller. Additionally, in some cases, the memory device may release the buffer space allocated for the second operation following completion of the second operation.

[0074] The memory controller receives from the memory device a result of performing the second operation 820. For example, the memory controller may receive data retrieved from memory cells of the memory device as a result of performing the second operation.

[0075] In some implementations, the memory controller sends a resume command to the memory device to resume the first operation performed in step 802 and paused in step 808 (822).

[0076] In response to receiving the resume command from the controller, the memory device restores the context for the first operation from the memory device's internal memory and continues to perform the first operation. For example, if the first operation is a program operation, the resume command may resume the data transfer process to enable resumption of the data transfer of the previously paused program operation (824). In particular, the data transfer process may be resumed from an AU in the sequence of AUs at which the data transfer process was paused so that the transfer from the memory controller to the memory device can be completed.

[0077] The memory device can store the later received AUs in the buffer space allocated for the program operation so that the memory device can perform the program operation before the pause. Once the data transfer is complete, the memory device maps the buffer space allocated for the program operation to memory cells of the memory device (826). That is, the memory device can program the AUs stored in the buffer space into the memory cells.

[0078] In some implementations, the memory controller sends an abort command to abort the first operation (828). The first operation may or may not be completed by the time the abort command is sent. In some implementations, the memory controller may proceed directly to perform step 828 after step 820 (omitting step 822). In some other implementations, the memory controller may perform step 822 first, followed by step 828.

[0079] In response to receiving the abort command from the memory controller, the memory device aborts the first operation, which may still be in progress. In some implementations, aborting the first operation may include freeing buffer space or any other resources in a page pool previously allocated for the first operation (830).

[0080] FIG. 9 is a flowchart of an example process 900 for managing suspend and resume operations in accordance with some aspects of the present disclosure. The example process 900 may be performed by any suitable memory device disclosed herein, such as memory controller 106 of FIGS. 1, 2A, and 2B, memory controller 306 of FIG. 3, or memory controller 406 of FIG. 4. The example process 900 is described as being performed by a memory controller of a memory system having a memory controller and memory device appropriately programmed in accordance with the present disclosure. In some implementations, some or all of the operations in the example process 900 may be implemented based on the techniques described with respect to FIGS. 3-7. The operations illustrated in method 900 may not be inclusive, and other operations may be performed before, after, or between any of the described operations. Furthermore, some of the operations may be performed simultaneously or in a different order than that illustrated in FIG. 9.

[0081] While performing a data transfer to the memory device for a first operation corresponding to the first command, the memory controller monitors and checks whether a second command is received (902). In some cases, the first command may be a program command to perform a program operation. The program operation may be used to store data from a host in the memory system. In some cases, the second command may be a read command to perform a read operation. The read operation may be used by the host to read data from the memory system. In some other cases, the second command may be another command to perform another read operation to store (e.g., a smaller amount of) data from the host in the memory system.

[0082] Data transfer to the memory device may be performed in units of AUs, i.e., to transfer data for a first operation (e.g., to transfer data to be programmed into the memory device), the memory controller partitions the data into a sequence of AUs and transmits the AUs one by one in order according to the sequence of AUs.

[0083] The memory controller may, for example, repeatedly check whether a second command has been received while performing a data transfer to the memory device for the first operation, i.e., at each of a plurality of time points. For example, the memory controller may perform the check at a predetermined frequency, for example, every 1 μs, every 10 μs, or every 50 μs. As another example, the memory controller may perform the check before or during the transfer of each AU in a sequence of AUs from the memory controller to the memory device.

[0084] In response to determining that a second command is received and the data transfer in the current AU is not complete, the memory controller waits until the data transfer in the current AU is complete.

[0085] In response to determining that the second command has been received and the data transfer in the current AU is complete, the memory controller sends a pause command to the memory device 904. The pause command can interrupt or stop the data transfer in progress for the first operation immediately after the current AU is transferred.

[0086] FIG. 10 is a flowchart of an example process 1000 for managing suspend and resume operations in accordance with some aspects of the present disclosure. The example process 1000 may be performed by any suitable memory device disclosed herein, such as memory device 104 of FIGS. 1, 2A, and 2B, memory device 304 of FIG. 3, or memory device 502 of FIG. 5. The example process 1000 is described as being performed by a memory device of a memory system having a memory controller and memory device appropriately programmed in accordance with the present disclosure. In some implementations, some or all of the operations in the example process 1000 may be implemented based on the techniques described with respect to FIGS. 3-7. The operations illustrated in method 1000 may not be inclusive, and other operations may be performed before, after, or between any of the described operations. Furthermore, some of the operations may be performed simultaneously or in a different order than that illustrated in FIG. 10.

[0087] While performing data reception from the memory controller for a first operation corresponding to the first command, the memory device receives a pause command from the controller to pause data reception (1002). Performing the data reception may include storing already received AUs in a first buffer space in a page pool of the memory device allocated for the first operation. For example, the first buffer space may be one or more page buffers in page pool 530 of memory device 502 of FIG. 5.

[0088] In response to receiving a pause command from the controller, the memory device pauses data reception for the first operation (1004). Data reception may be paused when a current AU in the sequence of AUs is received. In some cases, pausing data reception from the controller includes saving a context of an execution status of the first operation in an internal memory of the memory device.

[0089] The memory device allocates second buffer space within the memory device's page pool for a second operation corresponding to the second command (1006). For example, the second buffer space may be one or more page buffers within page pool 530 of memory device 502 of FIG. 5. In some cases, the second buffer space may be a different buffer space than the first buffer space allocated for the first operation within the page pool. For example, the first and second buffer spaces may correspond to different page buffers within the page pool (e.g., different page buffers within page pool 530 of memory device 502 of FIG. 5), different spaces within the same page buffer (e.g., different spaces within the top row of page buffers in page pool 530 of memory device 502 of FIG. 5), or different spaces within different page buffers.

[0090] The memory device performs the second operation using the second buffer space allocated for the second operation (1008). In particular, the memory device can perform the second operation immediately after pausing the first operation. If the second operation is a read operation, the memory device can store data read from memory cells of the memory device in the second buffer space.

[0091] The memory device returns the results of executing the second operation to the memory controller 1010. If the second operation is a read operation, the memory device may provide read data to the memory controller.

[0092] According to one aspect of the present disclosure, a system is disclosed that includes a memory device and a controller. The controller is configured to: check whether a second command is received while performing a data transfer to the memory device for a first operation corresponding to the first command, where performing the data transfer to the memory device includes performing the data transfer in units of AUs; and, in response to determining that the second command has been received and the data transfer in the current AU has been completed, send a pause command to the memory device. In response to receiving the pause command from the controller, the memory device is configured to pause data reception for the first operation, allocate buffer space for a second operation corresponding to the second command, perform the second operation using the buffer space allocated for the second operation, and return a result of the execution of the second operation to the controller.

[0093] In some implementations, in response to determining that the second command is received and the data transfer in the current AU is not complete, the controller waits until the data transfer in the current AU is complete.

[0094] In some implementations, the controller is configured to repeatedly check whether a second command is received while performing a data transfer to the memory device for the first operation.

[0095] In some implementations, performing the first operation includes transferring a plurality of AUs of data from the controller to the memory device, and the current AU is not the last AU of the plurality of AUs of data.

[0096] In some implementations, each AU has a size smaller than the page size.

[0097] In some implementations, each AU has a size equal to 1 / 4 of the page size.

[0098] In some implementations, the controller is configured to send a resume command to the memory device to resume the first operation in response to receiving a result of execution of the second operation from the memory device, and the memory device is configured to continue receiving data for the first operation in response to receiving the resume command from the controller.

[0099] In some implementations, the memory device restores the context of the first operation from the first buffer space in response to receiving a resume command from the controller.

[0100] In some implementations, the controller is configured to send an abort command to the memory device to abort the first operation in response to receiving a result of execution of the second operation from the memory device, and the memory device is configured to release a first buffer space previously allocated for the first operation in response to receiving the abort command from the controller, wherein the first buffer space is different from the buffer space allocated for the second operation.

[0101] In some implementations, the controller is configured to release the buffer space allocated for the second operation in response to completing the second operation.

[0102] According to another aspect of the present disclosure, a method executed by a system including a memory device and a controller is disclosed, the method including: checking, by the controller, whether a second command has been received while executing a data transfer to the memory device for a first operation corresponding to the first command, where executing the data transfer to the memory device includes executing the data transfer in units of AUs; sending, by the controller, a pause command to the memory device in response to determining that the second command has been received and the data transfer in the current AU has been completed; pausing, by the memory device, data reception for the first operation in response to receiving the pause command from the controller; allocating, by the memory device, buffer space for a second operation corresponding to the second command; executing, by the memory device, the second operation using the buffer space allocated for the second operation; and returning, by the memory device, a result of executing the second operation to the controller.

[0103] In some implementations, the method further includes, in response to determining that the second command is received and the data transfer in the current AU is not complete, waiting until the data transfer in the current AU is complete.

[0104] In some implementations, the method further includes repeatedly checking whether a second command is received while performing a data transfer to the memory device for the first operation.

[0105] In some implementations, the method further includes sending a resume command by the controller to the memory device to resume the first operation in response to receiving a result of execution of the second command from the memory device, and continuing data reception for the first operation by the memory device in response to receiving the resume command from the controller.

[0106] In some implementations, the method further includes restoring a context of the first operation from the internal memory in response to receiving a resume command from the controller.

[0107] In some implementations, the method further includes, in response to receiving a result of execution of the second operation from the memory device, sending an abort command by the controller to the memory device to abort the first operation, and, in response to receiving the abort command from the controller, releasing, by the memory device, a first buffer space previously allocated for the first operation, wherein the first buffer space is different from the buffer space allocated for the second operation.

[0108] In some implementations, the method further includes, in response to completing the second operation, releasing buffer space allocated for the second operation.

[0109] According to another aspect of the present disclosure, a controller for controlling a memory device is disclosed, the controller including at least one processor coupled to at least one memory that stores programming instructions that, when executed by the at least one processor, cause the controller to perform operations including: checking whether a second command is received while performing a data transfer to the memory device for a first operation corresponding to the first command, where performing the data transfer to the memory device includes performing the data transfer in units of AUs; and sending a pause command to the memory device in response to determining that the second command has been received and the data transfer in the current AU has been completed.

[0110] In some implementations, the operation includes waiting until the data transfer in the current AU is complete in response to determining that the second command is received and the data transfer in the current AU is not complete.

[0111] In some implementations, the operation includes repeatedly checking whether a second command is received while performing a data transfer to the memory device for the first operation.

[0112] In some implementations, the operation includes sending a resume command to the memory device to resume the first operation in response to receiving a result of execution of the second operation from the memory device.

[0113] In some implementations, the operation includes sending an abort command to the memory device to abort the first operation in response to receiving a result of execution of the second operation from the memory device.

[0114] According to yet another aspect of the present disclosure, a memory device is disclosed, the memory device including: at least one processor coupled to at least one memory that stores programming instructions, at least one internal memory, at least one buffer space, and an array of memory cells, the programming instructions, when executed by the at least one processor, cause the memory device to perform operations including receiving a pause command from the controller to pause data reception while performing data reception from the controller for a first operation corresponding to the first command, pausing data reception for the first operation in response to receiving the pause command from the controller, allocating one buffer space among the at least one buffer spaces for a second operation corresponding to a second command, performing the second operation using the buffer space allocated for the second operation, and returning a result of the execution of the second operation to the controller.

[0115] In some implementations, causing the first operation to suspend receiving data from the controller includes saving a context of an execution status of the first operation in at least one internal memory.

[0116] In some implementations, performing data reception from the controller for the first operation includes allocating a first buffer space of the at least one buffer space for the first operation, the first buffer space being different from the buffer space allocated for the second operation.

[0117] In some implementations, the operations include, in response to receiving a resume command from the controller to resume the first operation, restoring a context of the first operation from at least one internal memory; continuing to receive data from the controller for the first operation; storing the data in a first buffer space allocated for the first operation; and mapping the first buffer space allocated for the first operation to an array of memory cells.

[0118] The foregoing description of specific implementations may be readily modified and / or adapted for various applications. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed implementations based on the teaching and guidance presented herein.

[0119] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary implementations, but should be defined only in accordance with the following claims and their equivalents. Accordingly, other embodiments are within the scope of the following claims. [Explanation of symbols]

[0120] 100 systems 102 Memory System 104 Memory Devices 106 Memory Controller 108 Host 202 Memory Card 204 memory card connector 206 Solid State Drive (SSD) 208 SSD connector 302 Memory System 304 Memory Devices 306 Memory Controller 404 Memory Devices 406 Memory Controller 408 Host 422 processor 424 Cache 425 DRAM controller 426 Dynamic Random Access Memory (DRAM) 428 Interface (I / F), Front-end Interface 430 Interface (I / F), Backend Interface 502 Memory Devices 510 Microcontroller Unit (MCU) 520 internal memory 530 Page Pool 540 Memory Cell Array

Claims

1. a memory device; a controller; The controller checking whether a second command has been received while performing a data transfer to the memory device for a first operation corresponding to a first command, wherein performing the data transfer to the memory device includes performing the data transfer in units of allocation units; and in response to determining that the second command is received and that the data transfer in the current allocation unit is complete, sending a pause command to the memory device; The memory device is suspending data reception for the first operation in response to receiving the pause command from the controller; and allocating buffer space for a second operation corresponding to the second command; performing the second operation using the buffer space allocated for the second operation; and and returning a result of performing the second operation to the controller.

2. The controller 2. The system of claim 1, wherein the second command is received and, in response to determining that the data transfer in the current allocation unit is not complete, is configured to wait until the data transfer in the current allocation unit is complete.

3. The controller 3. The system of claim 1, configured to repeatedly check whether the second command has been received while performing the data transfer to the memory device for the first operation.

4. 4. The system of claim 1, wherein performing the first operation includes transferring multiple allocation units of data from the controller to the memory device, and the current allocation unit is not the last allocation unit of the multiple AUs of data.

5. The system of claim 1 , wherein each allocation unit has a size smaller than a page size.

6. 6. The system of claim 1, wherein each allocation unit has a size equal to one-quarter of a page size.

7. The controller configured to, in response to receiving the execution result of the second operation from the memory device, send a resume command to the memory device to resume the first operation; The memory device is The system of claim 1 , configured to continue the data reception for the first operation in response to receiving the resume command from the controller.

8. The memory device is The system of claim 7 , further configured to restore a context of the first operation from a first buffer space in response to receiving the resume command from the controller.

9. The controller configured to, in response to receiving the execution result of the second operation from the memory device, send an abort command to the memory device to abort the first operation; The memory device is 9. The system of claim 8, further configured to, in response to receiving the abort command from the controller, free the first buffer space previously allocated for the first operation, the first buffer space being different from the buffer space allocated for the second operation.

10. The controller 10. The system of claim 1, configured to release the buffer space allocated for the second operation in response to completing the second operation.

11. 1. A method performed by a system including a memory device and a controller, comprising: checking by the controller whether a second command has been received while performing a data transfer to the memory device for a first operation corresponding to a first command, wherein performing the data transfer to the memory device includes performing the data transfer in units of allocation units; sending, by the controller, a pause command to the memory device in response to determining that the second command has been received and that data transfer in the current allocation unit has completed; suspending data reception for the first operation by the memory device in response to receiving the pause command from the controller; allocating, by the memory device, buffer space for a second operation corresponding to the second command; performing, by the memory device, the second operation using the buffer space allocated for the second operation; and returning a result of the execution of the second operation to the controller by the memory device.

12. 12. The method of claim 11, further comprising, in response to determining that the second command is received and the data transfer in the current allocation unit is not complete, waiting until the data transfer in the current allocation unit is complete.

13. 13. The method of claim 11 or 12, further comprising the step of repeatedly checking whether the second command is received while performing the data transfer to the memory device for the first operation.

14. sending, by the controller, a resume command to the memory device to resume the first operation in response to receiving the execution result of the second command from the memory device; 14. The method of claim 11, further comprising: continuing, by the memory device, the data reception for the first operation in response to receiving the resume command from the controller.

15. The method of claim 14 , further comprising the step of restoring the context of the first operation from an internal memory in response to receiving the resume command from the controller.

16. sending, by the controller, an abort command to the memory device to abort the first operation in response to receiving the execution result of the second operation from the memory device; and in response to receiving the abort command from the controller, freeing, by the memory device, a first buffer space previously allocated for the first operation, wherein the first buffer space is different from the buffer space allocated for the second operation.

17. 17. The method of claim 11, further comprising the step of freeing the buffer space allocated for the second operation in response to completing the second operation.

18. 1. A controller for controlling a memory device, the controller comprising: at least one processor coupled to at least one memory storing programming instructions, the programming instructions, when executed by the at least one processor, causing the controller to: checking whether a second command has been received while performing a data transfer to the memory device for a first operation corresponding to a first command, wherein performing the data transfer to the memory device includes performing the data transfer in units of allocation units; and in response to determining that the second command has been received and that data transfer in the current allocation unit has completed, sending a pause command to the memory device.

19. The operation is 20. The controller of claim 18, further comprising, in response to determining that the second command is received and the data transfer in the current allocation unit is not complete, waiting until the data transfer in the current allocation unit is complete.

20. 20. The controller of claim 18 or 19, wherein the operation includes repeatedly checking whether the second command is received while performing the data transfer to the memory device for the first operation.

21. The operation is 21. The controller of claim 18, further comprising: in response to receiving the execution result of the second operation from the memory device, sending a resume command to the memory device to resume the first operation.

22. The operation is 22. The controller of claim 18, further comprising: in response to receiving the execution result of the second operation from the memory device, sending an abort command to the memory device to abort the first operation.

23. 1. A memory device comprising: at least one processor coupled to at least one memory storing programming instructions; at least one internal memory; at least one buffer space; an array of memory cells; The programming instructions, when executed by the at least one processor, cause the memory device to: receiving a pause command from the controller to pause data reception while performing data reception from the controller for a first operation corresponding to the first command; suspending the data reception for the first operation in response to receiving the pause command from the controller; and allocating one of the at least one buffer spaces for a second operation corresponding to a second command; performing the second operation using the buffer space allocated for the second operation; and and returning a result of the execution of the second operation to the controller.

24. 24. The memory device of claim 23, wherein causing the first operation to suspend receiving data from the controller includes saving a context of an execution status of the first operation in the at least one internal memory.

25. 25. The memory device of claim 23 or 24, wherein performing the data reception from the controller for the first operation includes allocating a first buffer space of the at least one buffer space for the first operation, the first buffer space being different from the buffer space allocated for the second operation.

26. The operation is in response to receiving a resume command from the controller to resume the first operation; Restoring the context of the first operation from the at least one internal memory; continuing to receive the data from the controller for the first operation; storing data in the first buffer space allocated for the first operation; and mapping the first buffer space allocated for the first operation to the array of memory cells.