US20230205451A1 - Multi-channel memory storage device, memory control circuit unit and data reading method - Google Patents
Multi-channel memory storage device, memory control circuit unit and data reading method Download PDFInfo
- Publication number
- US20230205451A1 US20230205451A1 US17/579,537 US202217579537A US2023205451A1 US 20230205451 A1 US20230205451 A1 US 20230205451A1 US 202217579537 A US202217579537 A US 202217579537A US 2023205451 A1 US2023205451 A1 US 2023205451A1
- Authority
- US
- United States
- Prior art keywords
- data
- memory
- buffer memory
- channel
- rewritable non
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Definitions
- the invention relates to a memory data reading technique, and more particularly to a multi-channel memory storage device, a control circuit unit, and a data reading method thereof.
- rewritable non-volatile memory for example, flash memory
- flash memory has characteristics such as non-volatile data, power saving, small size, no mechanical structure, and fast read and write speed
- rewritable non-volatile memory is very suitable for being built into the various portable electronic devices above.
- a solid-state disc is a memory storage device adopting a flash memory module as storage medium. Therefore, the flash memory industry has become a relatively important part in the electronic industry in recent years.
- the memory storage device is configured with static random-access memory (SRAM) or dynamic random-access memory (DRAM) as a buffer memory for accessing data.
- SRAM static random-access memory
- DRAM dynamic random-access memory
- the capacity of the configured buffer memory is usually limited.
- the capacity of the buffer memory is usually insufficient to temporarily store the accessed data when the host system continuously reads data. Therefore, the efficient use of the allocated buffer memory to manage and access data is a technical necessity.
- the invention provides a multi-channel memory storage device, a control circuit unit, and a data reading method thereof that may sufficiently achieve the advantage of fast reading when data is read by multi-channel access.
- the invention provides a data reading method suitable for a multi-channel memory storage device including a memory control circuit unit and a rewritable non-volatile memory module.
- the memory control circuit unit includes a buffer memory
- the rewritable non-volatile memory module includes a data cache area and a data storage area.
- the method includes: determining whether a storage space of a buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system; issuing a data read command corresponding to each of a plurality of multi-channels to a rewritable non-volatile memory module according to a logical address in a host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of multi-channels from the data storage area to the data cache area via the plurality of multi-channels; and allocating the storage space of the buffer memory to the rewritable non-volatile memory module after the storage space of the buffer memory is released and issuing a cache read command to the rewritable non-volatile memory module to move first data in data temporarily stored in the data cache area to the buffer memory.
- a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- the step of determining whether the storage space of the buffer memory is insufficient includes: determining whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels.
- the step of issuing the data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module to read the data corresponding to each of the plurality of channels from the data storage area to the data cache area via the plurality of channels includes: issuing the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- the cache read command is a direct memory access transfer.
- the method further includes: issuing a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
- the invention provides a multi-channel memory storage device including a connection interface unit, a rewritable non-volatile memory module, and a memory control circuit unit.
- the connection interface unit is configured to be coupled to a host system.
- the rewritable non-volatile memory module includes a data cache area and a data storage area.
- the memory control circuit unit is coupled to the connection interface unit and the rewritable non-volatile memory module.
- the memory control circuit unit includes a buffer memory. In particular, the memory control circuit unit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system.
- the memory control circuit unit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area.
- the memory control circuit unit is further configured to allocate the storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory.
- a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- the memory control circuit unit in the operation of determining whether the storage space of the buffer memory is insufficient, is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels.
- the memory control circuit unit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- the cache read command is a direct memory access transfer.
- the invention provides a memory control circuit unit configured to control a rewritable non-volatile memory module including a data cache area and a data storage area.
- the memory control circuit unit includes a host interface, a memory interface, a buffer memory, and a memory management circuit.
- the host interface is configured to be coupled to a host system.
- the memory interface is configured to be coupled to the rewritable non-volatile memory module.
- the memory management circuit is coupled to the host interface, the memory interface, and the buffer memory. In particular, the memory management circuit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system.
- the memory management circuit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area.
- the memory management circuit is further configured to allocate the storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory.
- a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- the memory management circuit in the operation of determining whether the storage space of the buffer memory is insufficient, is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels.
- the memory management circuit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- the cache read command is a direct memory access transfer.
- the memory management circuit is further configured to issue a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
- the multi-channel memory storage device, the control circuit unit, and the data reading method provided by the invention may first stack the busy time of data upload by reading data to the data cache area when the multi-channel access is continuously performed.
- the available space of the buffer memory in the memory control circuit unit is sufficient, the storage space is allocated to the data cache area for internal data transfer. In this way, the time for performing data upload may be reduced, so that even when the buffer space is limited during the operation of the memory storage device, the advantage of fast reading during data reading by multi-channel access may still be sufficiently achieved.
- FIG. 1 is a schematic diagram of a host system, a memory storage device, and an input/output (I/O) device shown according to an exemplary embodiment of the invention.
- FIG. 2 is a schematic diagram of a host system, a memory storage device, and an I/O device shown according to another exemplary embodiment of the invention.
- FIG. 3 is a schematic diagram of a host system and a memory storage device shown according to another exemplary embodiment of the invention.
- FIG. 4 is a schematic block diagram of a memory storage device shown according to an exemplary embodiment of the invention.
- FIG. 5 is a schematic block diagram of a memory control circuit unit shown according to an exemplary embodiment of the invention.
- FIG. 6 is a schematic diagram of the management of a rewritable non-volatile memory module shown according to an exemplary embodiment of the invention.
- FIG. 7 A and FIG. 7 B are schematic diagrams of a multi-channel memory storage device shown according to an exemplary embodiment of the invention.
- FIG. 9 is a flowchart of a data reading method shown according to an exemplary embodiment of the invention.
- a memory storage device (also referred to as a memory storage system or a multi-channel memory storage device) includes a rewritable non-volatile memory module and a controller (also referred to as a control circuit).
- the memory storage device is generally used with a host system, such that the host system may write data into the memory storage device or read data from the memory storage device.
- FIG. 1 is a schematic diagram of a host system, a memory storage device, and an input/output (I/O) device shown according to an exemplary embodiment of the invention.
- FIG. 2 is a schematic diagram of a host system, a memory storage device, and an I/O device shown according to another exemplary embodiment of the invention.
- a host system 11 generally includes a processor 111 , a random-access memory (RAM) 112 , a read-only memory (ROM) 113 , and a data transmission interface 114 .
- the processor 111 , the RAM 112 , the ROM 113 , and the data transmission interface 114 are all coupled to a system bus 110 .
- the host system 11 is coupled to the memory storage device 10 via the data transmission interface 114 .
- the host system 11 may store data into the memory storage device 10 or read data from the memory storage device 10 via the data transmission interface 114 .
- the host system 11 is coupled to the I/O device 12 via the system bus 110 .
- the host system 11 may send an output signal to the I/O device 12 or receive an input signal from the I/O device 12 via the system bus 110 .
- the processor 111 , the RAM 112 , the ROM 113 , and the data transmission interface 114 may be disposed on a motherboard 20 of the host system 11 .
- the quantity of the data transmission interface 114 may be one or a plurality.
- the motherboard 20 may be coupled to the memory storage device 10 in a wired or wireless method via the data transmission interface 114 .
- the memory storage device 10 may be, for example, a flash drive 201 , a memory card 202 , a solid-state drive (SSD) 203 , or a wireless memory storage device 204 .
- the wireless memory storage device 204 may be, for example, a memory storage device based on various wireless communication techniques such as a near-field communication (NFC) memory storage device, a wireless fax (WiFi) memory storage device, a Bluetooth memory storage device, or a low-power Bluetooth memory storage device (such as iBeacon).
- the motherboard 20 may also be coupled to various I/O devices such as a global positioning system (GPS) module 205 , a network interface card 206 , a wireless transmission device 207 , a keyboard 208 , a screen 209 , or a speaker 210 via the system bus 110 .
- GPS global positioning system
- the motherboard 20 may access the wireless memory storage device 204 via the wireless transmission device 207 .
- FIG. 3 is a schematic diagram of a host system and a memory storage device shown according to another exemplary embodiment of the invention.
- a host system 31 may also be a system such as a digital camera, a camcorder, a communication device, an audio player, a video player, or a tablet computer
- the memory storage device 30 may be various non-volatile memory storage devices used thereby such as an SD card 32 , a CF card 33 , or an embedded storage device 34
- the embedded storage device 34 includes various types of embedded storage devices for which a memory module is directly coupled on the substrate of the host system, such as an embedded multimedia card (eMMC) 341 and/or an embedded multi-chip package (eMCP) storage device 342 .
- eMMC embedded multimedia card
- eMCP embedded multi-chip package
- FIG. 4 is a schematic block diagram of a memory storage device shown according to an exemplary embodiment of the invention.
- the memory storage device 10 includes a connection interface unit 402 , a memory control circuit unit 404 , and a rewritable non-volatile memory module 406 .
- connection interface unit 402 is configured to couple the memory storage device 10 to the host system 11 .
- the memory storage device 10 may communicate with the host system 11 via the connection interface unit 402 .
- the connection interface unit 402 is compatible with the serial advanced technology attachment (SATA) standard.
- connection interface unit 402 may also comply with the Parallel Advanced Technology Attachment (PATA) standard, Institute of Electrical and Electronic Engineers (IEEE) 1394 standard, Peripheral Component Interconnect Express (PCI Express) standard, Universal Serial Bus (USB) standard, SD interface standard, Ultra High Speed-I (UHS-I) interface standard, Ultra High Speed-II (UHS-II) interface standard, Memory Stick (MS) interface standard, MCP interface standard, MMC interface standard, eMMC interface standard, Universal Flash Storage (UFS) interface standard, eMCP interface standard, CF interface standard, Integrated
- PATA Parallel Advanced Technology Attachment
- IEEE 1394 Institute of Electrical and Electronic Engineers 1394 standard
- PCI Express Peripheral Component Interconnect Express
- USB Universal Serial Bus
- SD interface standard Secure High Speed-I (UHS-I) interface standard
- Ultra High Speed-II (UHS-II) interface standard Ultra High Speed-II) interface standard
- MS Memory Stick
- MCP interface standard MMC interface standard
- connection interface unit 402 may be sealed in a chip with the memory control circuit unit 404 .
- the connection interface unit 402 is disposed outside of a chip containing the memory control circuit unit 404 .
- the memory control circuit unit 404 is configured to execute a plurality of logic gates or control commands implemented in a hardware form or in a firmware form.
- the memory control circuit unit 404 also performs operations such as writing, reading, and erasing data in the rewritable non-volatile memory storage module 406 according to the commands of the host system 11 .
- the rewritable non-volatile memory module 406 is coupled to the memory control circuit unit 404 and configured to store data written by the host system 11 .
- the rewritable non-volatile memory module 406 includes a data cache area 4061 and a data storage area 4062 .
- the data cache area 4061 and the data storage area 4062 are packaged in the same memory chip.
- the data cache area 4061 and the data storage area 4062 belong to the same memory die.
- the data cache area 4061 and the data storage area 4062 may also belong to different memory dies, and the invention is not limited thereto.
- the rewritable non-volatile memory module 406 may be a single-level cell (SLC) NAND-type flash memory module (that is, a flash memory module that may store 1 bit in one memory cell), a multi-level cell (MLC) NAND-type flash memory module (that is, a flash memory module that may store 2 bits in one memory cell), a triple-level cell (TLC) NAND-type flash memory module (i.e., a flash memory module that may store 3 bits in one memory cell), a quad-level cell (QLC) NAND-type flash memory module (that is, a flash memory module that may store 4 bits in one memory cell), other flash memory modules, or other memory modules with the same characteristics.
- SLC single-level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- the rewritable non-volatile memory module 406 includes a plurality of memory cells arranged in a matrix. Each of the memory cells in the rewritable non-volatile memory module 406 stores one or a plurality of bits via the change in voltage (also referred to as threshold voltage hereinafter). Specifically, a charge-trapping layer is disposed between the control gate and the channel of each of the memory cells. By applying a write voltage to the control gate, the number of electrons of the charge-trapping layer may be changed, and therefore the threshold voltage of the memory cells may be changed. This operation of changing the threshold voltage of the memory cells is also referred to as “writing data to the memory cells” or “programming the memory cells”.
- each of the memory cells in the rewritable non-volatile memory module 406 has a plurality of storage statuses. Which storage status one memory cell belongs to may be determined via the application of a read voltage, so as to obtain one or a plurality of bits stored by the memory cell.
- the memory cells of the rewritable non-volatile memory module 406 may form a plurality of physical programming units, and these physical programming units may form a plurality of physical erasing units.
- the memory cells on the same word line may form one or a plurality of physical programming units. If each memory cell may store two or more bits, the physical programming units on the same word line may at least be classified into lower physical programming units and upper physical programming units. For example, the least significant bit (LSB) of a memory cell belongs to the lower physical programming units, and the most significant bit (MSB) of a memory cell belongs to the upper physical programming units.
- the data write speed of the lower physical programming units is greater than the data write speed of the upper physical programming units, and/or the reliability of the lower physical programming units is greater than the reliability of the upper physical programming units.
- the physical programming unit is the smallest unit of programming. That is, the physical programming unit is the smallest unit of data writing.
- the physical programming unit may be a physical page or a physical sector. If the physical programming unit is a physical page, then the physical programming unit may include a data bit area and a redundant bit area.
- the data bit area contains a plurality of physical pages configured to store user data, and the redundant bit area is configured to store system data (for example, management data such as an error correction code).
- the data bit area contains 32 physical pages, and the size of one physical sector is 512 bytes (B).
- the data bit area may also contain 8, 16, or a greater or lesser number of physical pages, and the size of each of the physical pages may also be greater or smaller.
- the physical erasing unit is the smallest unit of erasing. That is, each of the physical erasing units contains the smallest number of memory cells erased together.
- the physical erasing unit is a physical block.
- FIG. 5 is a schematic block diagram of a memory control circuit unit shown according to an exemplary embodiment of the invention.
- the memory control circuit unit 404 includes a memory management circuit 502 , a host interface 504 , and a memory interface 506 .
- the memory management circuit 502 is configured to control the overall operation of the memory control circuit unit 404 .
- the memory management circuit 502 has a plurality of control commands.
- the control commands are executed to perform operations such as writing, reading, and erasing data.
- descriptions relating to the operation of the memory management circuit 502 are equivalent to the descriptions of the operation of the memory control circuit unit 404 .
- control commands of the memory management circuit 502 are implemented in a firmware form.
- the memory management circuit 502 has a microprocessor unit (not shown) and a read-only memory (not shown), and the control commands are burned into the ROM.
- the control commands are executed by the microprocessor unit to perform operations such as writing, reading, and erasing data.
- control commands of the memory management circuit 502 may also be stored in the form of program codes in a specific area (for example, the system area in a memory module exclusively configured to store system data) of the rewritable non-volatile memory module 406 .
- the memory management circuit 502 has a microprocessor unit (not shown), a ROM (not shown), and a RAM (not shown).
- the ROM has a boot code, and when the memory control circuit unit 404 is enabled, the microprocessor unit first executes the boot code to load the control commands stored in the rewritable non-volatile memory module 406 into the RAM of the memory management circuit 502 . Next, the microprocessor unit runs the control commands to perform operations such as writing, reading, and erasing data.
- control commands of the memory management circuit 502 may also be implemented in a hardware form.
- the memory management circuit 502 includes a microcontroller, a memory cell management circuit, a memory write circuit, a memory read circuit, a memory erase circuit, and a data processing circuit.
- the memory cell management circuit, the memory write circuit, the memory read circuit, the memory erase circuit, and the data processing circuit are coupled to the microcontroller.
- the memory cell management circuit is configured to manage the memory cells or memory cell groups of the rewritable non-volatile memory module 406 .
- the memory write circuit is configured to issue a write command sequence to the rewritable non-volatile memory module 406 to write data into the rewritable non-volatile memory module 406 .
- the memory read circuit is configured to issue a read command sequence to the rewritable non-volatile memory module 406 to read data from the rewritable non-volatile memory module 406 .
- the memory erase circuit is configured to issue an erase command sequence to the rewritable non-volatile memory module 406 to erase data from the rewritable non-volatile memory module 406 .
- the data processing circuit is configured to process data to be written into the rewritable non-volatile memory module 406 and data read from the rewritable non-volatile memory module 406 .
- the write command sequence, the read command sequence, and the erase command sequence may independently include one or a plurality of program codes or command codes and be configured to instruct the rewritable non-volatile memory module 406 to perform corresponding operations such as writing, reading, and erasing.
- the memory management circuit 502 may also issue other types of command sequences to the rewritable non-volatile memory module 406 to instruct the performance of corresponding operations.
- the host interface 504 is coupled to the memory management circuit 502 .
- the memory management circuit 502 may communicate with the host system 11 via the host interface 504 .
- the host interface 504 may be used to receive and identify commands and data sent by the host system 11 .
- the commands and data sent by the host system 11 may be sent to the memory management circuit 502 via the host interface 504 .
- the memory management circuit 502 may send data to the host system 11 via the host interface 504 .
- the host interface 504 is compatible with the SATA standard.
- the host interface 504 may also be compatible with the PATA standard, IEEE 1394 standard, PCI Express standard, USB standard, SD standard, UHS-I standard, UHS-II standard, MS standard, MMC standard, eMMC standard, UFS standard, CF standard, IDE standard, or other suitable standards for data transmission.
- the memory interface 506 is coupled to the memory management circuit 502 and configured to access the rewritable non-volatile memory module 406 .
- data to be written into the rewritable non-volatile memory module 406 is converted to a format acceptable to the rewritable non-volatile memory module 406 via the memory interface 506 .
- the memory interface 506 sends a corresponding command sequence.
- the command sequence may include a write command sequence instructing data writing, a read command sequence instructing data reading, an erase command sequence instructing data erasing, and a corresponding command sequence configured to instruct various memory operations (such as changing read voltage level or executing a garbage collection operation).
- the command sequence is generated by, for example, the memory management circuit 502 and sent to the rewritable non-volatile memory module 406 via the memory interface 506 .
- the command sequence may include one or a plurality of signals or data on a bus.
- the signals or data may include a command code or a program code. For example, when reading a command sequence, information such as read identification code or memory address is included.
- the memory control circuit unit 404 further includes an error detecting and correcting circuit 508 , a buffer memory 510 , and a power management circuit 512 .
- the error detecting and correcting circuit 508 is coupled to the memory management circuit 502 and configured to execute an error detecting and correcting operation to ensure the correctness of data. Specifically, when the memory management circuit 502 receives a write command from the host system 11 , the error detecting and correcting circuit 508 generates a corresponding error correcting code (ECC) and/or an error detecting code (EDC) for data corresponding to the write command, and the memory management circuit 502 writes the data corresponding to the write command and the corresponding ECC and/or EDC into the rewritable non-volatile memory module 406 .
- ECC error correcting code
- EDC error detecting code
- the memory management circuit 502 reads the ECC and/or the EDC corresponding to the data at the same time, and the error detecting and correcting circuit 508 executes an error detecting and correcting operation on the read data based on the ECC and/or the EDC.
- the buffer 510 is coupled to the memory management circuit 502 and configured to temporarily store data and commands from the host system 11 or data from the rewritable non-volatile memory module 406 .
- the buffer memory 510 may be a static random-access memory (SRAM), a dynamic random-access memory (DRAM), etc., and the invention is not limited in this regard.
- the power management circuit 512 is coupled to the memory management circuit 502 and configured to control the power of the memory storage device 10 .
- the rewritable non-volatile memory module 406 of FIG. 4 is also referred to as a flash memory module
- the memory control circuit unit 404 is also referred to as a flash memory controller configured to control the flash memory module.
- the memory management circuit 502 of FIG. 5 is also referred to as a flash memory management circuit.
- FIG. 6 is a schematic diagram of the management of a rewritable non-volatile memory module shown according to an exemplary embodiment of the invention.
- the memory management circuit 502 may logically group physical units 610 ( 0 ) to 610 (B) of the rewritable non-volatile memory module 406 into a storage area 601 and a free area 602 .
- the physical units 610 ( 0 ) to 610 (A) in the storage area 601 and the physical units 610 (A+1) to 610 (B) in the free area 602 are configured to store data from the host system 11 .
- the physical units of the storage area 601 are regarded as physical units in which data is stored, and the physical units of the free area 602 are configured to substitute the physical units of the storage area 601 . That is to say, when receiving the write command and the data to be written from the host system 11 , the memory management circuit 502 uses the physical units extracted from the free area 602 to write the data to replace the physical units in the storage area 601 .
- each physical unit refers to one physical erasing unit. However, in another exemplary embodiment, one physical unit may also refer to one physical address, one physical programming unit, or be formed by a plurality of continuous or discontinuous physical addresses.
- the memory management circuit 502 configures logical units 612 ( 0 ) to 612 (C) to map the physical units 610 ( 0 ) to 610 (A) in the storage area 601 .
- each of the logical units refers to one logical address.
- one logical unit may also refer to one logic programming unit, one logic erasing unit, or formed by a plurality of continuous or discontinuous logical addresses.
- each of the logical units 612 ( 0 ) to 612 (C) may be mapped to one or a plurality of physical units.
- the memory management circuit 502 may record the mapping relationship between the logical units and the physical units (also referred to as a logical-physical address mapping relationship) in at least one logical-physical address mapping table.
- the memory management circuit 502 may execute a data access operation on the memory storage device 10 according to the logical-physical address mapping table.
- the memory management circuit 502 divides the storage space of the buffer memory 510 into a plurality of areas to store data.
- the memory management circuit 502 may divide the buffer memory 510 into a mapping table temporary storage area, a firmware code temporary storage area, a write data temporary storage area, a read data temporary storage area, and other areas.
- the mapping table temporary storage area is, for example, configured to store at least a portion of a mapping table (for example, a logical-physical address mapping table).
- the firmware code temporary storage area is configured to store a program code executed by the memory management circuit 502 .
- the write data temporary storage area is configured to temporarily store the data to be written to the rewritable non-volatile memory module 406
- the read data temporary storage area is configured to temporarily store the data read from the rewritable non-volatile memory module 406 .
- the division of the buffer memory 510 area is not limited thereto.
- the storage space of the buffer memory 510 is planned in advance to store the program or data that needs to be temporarily stored during the operation of the memory storage device 10 . Due to the limited space of each area in the buffer memory 510 , when a data read operation is performed, the memory management circuit 502 needs to release the storage space of the read data temporary storage area in the buffer memory 510 to receive more data read from the rewritable non-volatile memory module 406 .
- FIG. 7 A and FIG. 7 B are schematic diagrams of a multi-channel memory storage device shown according to an exemplary embodiment of the invention.
- the rewritable non-volatile memory module 406 may include a plurality of memory dies, and each memory die is the smallest independent unit in the rewritable non-volatile memory module 406 that may execute a command and report its own state, and therefore may be used as a unit for parallel operation.
- the memory dies with the same corresponding address in each channel may form a bank that may perform an interleaving operation, and the interleaving operation may simultaneously access different banks.
- the eight memory dies D 0 to D 7 connected to the channels CH# 0 to CH# 3 may form banks Bank# 0 and Bank# 1 .
- the memory dies in the same bank may share the chip enable (CE). It is assumed that each memory die in the present embodiment is divided into two planes and it is assumed that the capacity of each of the plurality of physical pages included in the plane is 16K, wherein each plane contains its own page register and cache register to allow parallel operation.
- the rewritable non-volatile memory module 406 is expanded to eight memory dies connected to the same channel.
- the rewritable non-volatile memory module 406 includes 32 memory dies D 0 to D 31 . In this situation, since a parallel operation is performed by four channels, bank interleaving is performed by four banks, and a parallel operation is performed by two planes of each memory die.
- the data reading method may make the memory storage device 10 sufficiently utilize the advantage of data reading by multi-channel access during operation.
- the memory management circuit 502 issues a data read command and a cache read command to the rewritable non-volatile memory module 406 via the memory interface 506 to read the data according to the logical address in the host read command from the host system 11 .
- the cache read command is a direct memory access (DMA) transfer.
- the rewritable non-volatile memory module 406 first moves the data to be read from the data storage area 4062 to the data cache area 4061 in the rewritable non-volatile memory module 406 according to the data read command.
- This process may be called data upload.
- the data in the data cache area 4061 is moved to the memory control circuit unit 404 (for example, the buffer memory 510 in the memory control circuit unit 404 ) according to the cache read command.
- This process may be called internal data transfer.
- the host system 11 may read the data from the buffer memory 510 .
- This process may be referred to as external data transfer.
- the data cache area 4061 configured to receive data from the data storage area 4062 may include a cache register contained in each plane in the memory dies. In particular, the cache register may temporarily store data of at least one page to correspond to the reading unit (for example, one page).
- FIG. 8 A to FIG. 8 C are schematic diagrams of performing data buffer in a read data temporary storage area in a buffer memory shown according to an exemplary embodiment of the invention.
- the buffer memory 510 includes four pages in the read data temporary storage area, and the capacity of each page is 16K.
- the host system 11 and the memory storage device 10 of FIG. 4 are used as an example to describe data buffering, wherein the memory control circuit unit 404 includes the buffer memory 510 shown in FIG. 8 A , and the rewritable non-volatile memory module 406 is implemented as the rewritable non-volatile memory module 406 in FIG. 7 B .
- the memory management circuit 50 first allocates the storage space of the buffer memory 510 to the rewritable non-volatile memory module 406 as a read data temporary storage area according to the host read command from the host system 11 , and issues the data read command and the cache read command to the rewritable non-volatile memory module 406 via the memory interface 506 . It is assumed that this data read command instructs to continuously read data of four physical pages from the memory dies D 0 to D 3 by multi-channel access.
- the rewritable non-volatile memory module 406 performs the above data upload according to the data read command to first move the data to be read (for example, data DATA 0 _ 0 in the memory die D 0 , data DATA 1 _ 0 in the memory die D 1 , data DATA 2 _ 0 in the memory die D 2 , and data DATA 3 _ 0 in the memory die D 3 ) from the memory dies D 0 to D 3 to the data cache area 4061 in the rewritable non-volatile memory module 406 .
- the data to be read for example, data DATA 0 _ 0 in the memory die D 0 , data DATA 1 _ 0 in the memory die D 1 , data DATA 2 _ 0 in the memory die D 2 , and data DATA 3 _ 0 in the memory die D 3
- the internal data transfer above is performed to move the data DATA 0 _ 0 to DATA 3 _ 0 in the data cache area 4061 to the read data temporary storage area in the buffer memory 510 according to the cache read command.
- the buffer memory 510 prepares the data DATA 0 _ 0 to DATA 3 _ 0 to be read (as shown in FIG. 8 B )
- the external data transfer above is performed, and the host system 11 may read the data DATA 0 _ 0 to DATA 3 _ 0 from the read data temporary storage area.
- the buffer memory 510 may release the storage space of the read data temporary storage area, as shown in FIG.
- the memory storage device 10 receives the host read command and executes data upload, internal data transfer, and external data transfer in order to read data from the rewritable non-volatile memory module 406 .
- the memory storage device 10 needs to first perform one round of data upload, internal data transfer, and external data transfer before performing the next round of data upload, internal data transfer, and external data transfer to complete the reading of the data. For example, it is assumed that the data read command instructs to continuously read data of a total of eight physical pages from the memory dies D 0 to D 7 by multi-channel access. At this time, the memory storage device 10 performs the operations corresponding to FIG. 8 A to FIG.
- the rewritable non-volatile memory module 406 performs the data upload above to first move the data to be read (for example, data DATA 0 _ 1 to DATA 3 _ 1 stored in the memory dies D 4 to D 7 ) from the memory dies D 4 to D 7 to the data cache area 4061 in the rewritable non-volatile memory module 406 .
- the internal data transfer above is executed to transfer the data DATA 0 _ 1 to DATA 3 _ 1 in the data cache area 4061 to the buffer memory 510 .
- the buffer memory 510 prepares the data DATA 0 _ 1 to DATA 3 _ 1 to be read (as shown in FIG. 8 C )
- the external data transfer above is performed, and the host system 11 may read the data DATA 0 _ 1 to DATA 3 _ 1 from the buffer memory 510 .
- the buffer memory 510 may have no stored data as shown in FIG. 8 A or FIG. 8 C .
- the memory management circuit 502 may determine whether the storage space of the buffer memory 510 is insufficient when performing multi-channel access according to the host read command from the host system 11 , that is, whether the storage space of the buffer memory 510 is full. For example, in addition, when determining whether the storage space of the buffer memory 510 is insufficient, the memory management circuit 502 determines whether the storage space configured in the buffer memory 510 configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module 406 is insufficient.
- the memory management circuit 502 issues a data read command corresponding to each channel to the rewritable non-volatile memory module 406 via the memory interface 506 according to the logical address in the host read command to read the data corresponding to each channel from the data storage area 4062 to the data cache area 4061 via each channel.
- the data read command includes the physical address mapped by the logical address in the host read command.
- the rewritable non-volatile memory module 406 may read the data corresponding to each channel from the data storage area 4062 to the data cache area 4061 according to the physical address in the data read command.
- the data volume of the first data matches the capacity of the storage space released by the buffer memory 510 .
- the memory management circuit 502 issues a cache read command to the rewritable non-volatile memory module 406 to move the second data in the data temporarily stored in the data cache area 4061 from the data cache area 4061 to the buffer memory 510 .
- the data volume of the second data matches the capacity of the storage space released by the buffer memory 510 .
- the memory management circuit 502 since the memory dies D 0 to D 7 storing the data to be read correspond to the plurality of channels CH# 0 to CH# 3 , the memory management circuit 502 performs multi-channel access. At this time, it is assumed that the storage space of the buffer memory 510 is insufficient, and the memory management circuit 502 issues a data read command corresponding to each of the channels CH# 0 to CH# 3 to the rewritable non-volatile memory module 406 .
- the rewritable non-volatile memory module 406 reads the data DATA 0 _ 0 to DATA 3 _ 0 corresponding to the data read command from the memory dies D 0 to D 3 included in the Bank# 0 and reads the data DATA 0 _ 1 to DATA 3 _ 1 corresponding to the data read command from the memory dies D 4 to D 7 included in the Bank# 1 to the data cache area 4061 at the same time according to the data read command.
- the memory management circuit 502 waits for the buffer memory 510 to release storage space.
- the memory management circuit 502 After the memory management circuit 502 releases the storage space of the buffer memory 510 , the memory management circuit 502 allocates the storage space of the buffer memory 510 to the data cache area 4061 , and issues a cache read command to the data cache area 4061 to move the data DATA 0 _ 0 to DATA 3 _ 0 in the data temporarily stored in the data cache area 4061 from the data cache area 4061 to the buffer memory 510 .
- the data volume of the data DATA 0 _ 0 to DATA 3 _ 0 matches the capacity of the storage space released by the buffer memory 510 .
- the memory management circuit 502 issues a cache read command to the data cache area 4061 to move the DATA 0 _ 1 to DATA 3 _ 1 in the data temporarily stored in the data cache area 4061 from the data cache area 4061 to the buffer memory 510 .
- the total time needed to read the data DATA 0 _ 0 to DATA 3 _ 0 and the data DATA 0 _ 1 to DATA 3 _ 1 from the rewritable non-volatile memory module 406 according to the host read command is as follows:
- the data reading method provided in the present exemplary embodiment may save more time tR for performing data upload.
- FIG. 9 is a flowchart of a data reading method shown according to an exemplary embodiment of the invention.
- step S 906 the storage space of the buffer memory is allocated to the rewritable non-volatile memory module and a cache read command is issued to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory.
- each step in FIG. 9 is as described in detail above, and is not repeated herein. It should be mentioned that, each step in FIG. 9 may be implemented as a plurality of program codes or circuits, and the invention is not limited thereto. Moreover, the method of FIG. 9 may be used with the above exemplary embodiments, and may also be used alone, and the invention is not limited thereto.
- the multi-channel memory storage device, the control circuit unit, and the data reading method provided by the invention may first stack the busy time of data upload by reading data to the data cache area when the multi-channel access is continuously performed.
- the available space of the buffer memory in the memory control circuit unit is sufficient, the storage space is allocated to the data cache area for internal data transfer. In this way, the time for performing data upload may be reduced, so that even when the buffer space is limited during operation of the memory storage device, the advantage of fast reading during data reading by multi-channel access may still be sufficiently achieved.
Abstract
A multi-channel memory storage device, a memory control circuit unit, and a data reading method are provided. The method includes: determining whether a storage space of a buffer memory is insufficient when a multi-channel access is performed; issuing a data read command corresponding to each of a plurality of multi-channels to a rewritable non-volatile memory module according to a logical address in a host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of multi-channels from a data storage area to a data cache area via the plurality of multi-channels; and allocating the storage space of the buffer memory to the rewritable non-volatile memory module after the storage space of the buffer memory is released and issuing a cache read command to move first data in data temporarily stored in the data cache area to the buffer memory.
Description
- This application claims the priority benefit of China application serial no. 202111595367.9, filed on Dec. 23, 2021. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
- The invention relates to a memory data reading technique, and more particularly to a multi-channel memory storage device, a control circuit unit, and a data reading method thereof.
- Portable electronic devices such as notebook computers and mobile phones have grown rapidly over the past few years, which has led to a rapid increase in consumer demand for storage media. Because rewritable non-volatile memory (for example, flash memory) has characteristics such as non-volatile data, power saving, small size, no mechanical structure, and fast read and write speed, rewritable non-volatile memory is very suitable for being built into the various portable electronic devices above. A solid-state disc is a memory storage device adopting a flash memory module as storage medium. Therefore, the flash memory industry has become a relatively important part in the electronic industry in recent years.
- In general, the memory storage device is configured with static random-access memory (SRAM) or dynamic random-access memory (DRAM) as a buffer memory for accessing data. The capacity of the configured buffer memory is usually limited. For a multi-channel memory storage device, the capacity of the buffer memory is usually insufficient to temporarily store the accessed data when the host system continuously reads data. Therefore, the efficient use of the allocated buffer memory to manage and access data is a technical necessity.
- The invention provides a multi-channel memory storage device, a control circuit unit, and a data reading method thereof that may sufficiently achieve the advantage of fast reading when data is read by multi-channel access.
- The invention provides a data reading method suitable for a multi-channel memory storage device including a memory control circuit unit and a rewritable non-volatile memory module. The memory control circuit unit includes a buffer memory, and the rewritable non-volatile memory module includes a data cache area and a data storage area. The method includes: determining whether a storage space of a buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system; issuing a data read command corresponding to each of a plurality of multi-channels to a rewritable non-volatile memory module according to a logical address in a host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of multi-channels from the data storage area to the data cache area via the plurality of multi-channels; and allocating the storage space of the buffer memory to the rewritable non-volatile memory module after the storage space of the buffer memory is released and issuing a cache read command to the rewritable non-volatile memory module to move first data in data temporarily stored in the data cache area to the buffer memory. In particular, a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- In an embodiment of the invention, the step of determining whether the storage space of the buffer memory is insufficient includes: determining whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- In an embodiment of the invention, the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels. In particular, the step of issuing the data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module to read the data corresponding to each of the plurality of channels from the data storage area to the data cache area via the plurality of channels includes: issuing the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- In an embodiment of the invention, the cache read command is a direct memory access transfer.
- In an embodiment of the invention, the method further includes: issuing a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
- The invention provides a multi-channel memory storage device including a connection interface unit, a rewritable non-volatile memory module, and a memory control circuit unit. The connection interface unit is configured to be coupled to a host system. The rewritable non-volatile memory module includes a data cache area and a data storage area. The memory control circuit unit is coupled to the connection interface unit and the rewritable non-volatile memory module. The memory control circuit unit includes a buffer memory. In particular, the memory control circuit unit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system. The memory control circuit unit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area. Moreover, the memory control circuit unit is further configured to allocate the storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory. In particular, a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- In an embodiment of the invention, in the operation of determining whether the storage space of the buffer memory is insufficient, the memory control circuit unit is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- In an embodiment of the invention, the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels. In particular, the memory control circuit unit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- In an embodiment of the invention, the cache read command is a direct memory access transfer.
- In an embodiment of the invention, the memory control circuit unit is further configured to issue a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
- The invention provides a memory control circuit unit configured to control a rewritable non-volatile memory module including a data cache area and a data storage area. The memory control circuit unit includes a host interface, a memory interface, a buffer memory, and a memory management circuit. The host interface is configured to be coupled to a host system. The memory interface is configured to be coupled to the rewritable non-volatile memory module. The memory management circuit is coupled to the host interface, the memory interface, and the buffer memory. In particular, the memory management circuit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system. The memory management circuit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area. Moreover, the memory management circuit is further configured to allocate the storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory. In particular, a data volume of the first data matches a capacity of the storage space released by the buffer memory.
- In an embodiment of the invention, in the operation of determining whether the storage space of the buffer memory is insufficient, the memory management circuit is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store the read data temporary storage area from the rewritable non-volatile memory module is insufficient.
- In an embodiment of the invention, the data storage area includes a plurality of memory dies, and a plurality of first memory dies in the plurality of memory dies are connected to a first channel in the plurality of channels, and a plurality of second memory dies in the plurality of memory dies are connected to a second channel in the plurality of channels. In particular, the memory management circuit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
- In an embodiment of the invention, the cache read command is a direct memory access transfer.
- In an embodiment of the invention, the memory management circuit is further configured to issue a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
- Based on the above, the multi-channel memory storage device, the control circuit unit, and the data reading method provided by the invention may first stack the busy time of data upload by reading data to the data cache area when the multi-channel access is continuously performed. When the available space of the buffer memory in the memory control circuit unit is sufficient, the storage space is allocated to the data cache area for internal data transfer. In this way, the time for performing data upload may be reduced, so that even when the buffer space is limited during the operation of the memory storage device, the advantage of fast reading during data reading by multi-channel access may still be sufficiently achieved.
- In order to make the aforementioned features and advantages of the disclosure more comprehensible, embodiments accompanied with figures are described in detail below.
- The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
-
FIG. 1 is a schematic diagram of a host system, a memory storage device, and an input/output (I/O) device shown according to an exemplary embodiment of the invention. -
FIG. 2 is a schematic diagram of a host system, a memory storage device, and an I/O device shown according to another exemplary embodiment of the invention. -
FIG. 3 is a schematic diagram of a host system and a memory storage device shown according to another exemplary embodiment of the invention. -
FIG. 4 is a schematic block diagram of a memory storage device shown according to an exemplary embodiment of the invention. -
FIG. 5 is a schematic block diagram of a memory control circuit unit shown according to an exemplary embodiment of the invention. -
FIG. 6 is a schematic diagram of the management of a rewritable non-volatile memory module shown according to an exemplary embodiment of the invention. -
FIG. 7A andFIG. 7B are schematic diagrams of a multi-channel memory storage device shown according to an exemplary embodiment of the invention. -
FIG. 8A toFIG. 8C are schematic diagrams of performing data buffer in a read data temporary storage area in a buffer memory shown according to an exemplary embodiment of the invention. -
FIG. 9 is a flowchart of a data reading method shown according to an exemplary embodiment of the invention. - In general, a memory storage device (also referred to as a memory storage system or a multi-channel memory storage device) includes a rewritable non-volatile memory module and a controller (also referred to as a control circuit). The memory storage device is generally used with a host system, such that the host system may write data into the memory storage device or read data from the memory storage device.
-
FIG. 1 is a schematic diagram of a host system, a memory storage device, and an input/output (I/O) device shown according to an exemplary embodiment of the invention.FIG. 2 is a schematic diagram of a host system, a memory storage device, and an I/O device shown according to another exemplary embodiment of the invention. - Referring to
FIG. 1 andFIG. 2 , ahost system 11 generally includes aprocessor 111, a random-access memory (RAM) 112, a read-only memory (ROM) 113, and adata transmission interface 114. Theprocessor 111, theRAM 112, theROM 113, and thedata transmission interface 114 are all coupled to asystem bus 110. - In the present exemplary embodiment, the
host system 11 is coupled to thememory storage device 10 via thedata transmission interface 114. For example, thehost system 11 may store data into thememory storage device 10 or read data from thememory storage device 10 via thedata transmission interface 114. Moreover, thehost system 11 is coupled to the I/O device 12 via thesystem bus 110. For example, thehost system 11 may send an output signal to the I/O device 12 or receive an input signal from the I/O device 12 via thesystem bus 110. - In the present exemplary embodiment, the
processor 111, theRAM 112, theROM 113, and thedata transmission interface 114 may be disposed on amotherboard 20 of thehost system 11. The quantity of thedata transmission interface 114 may be one or a plurality. Themotherboard 20 may be coupled to thememory storage device 10 in a wired or wireless method via thedata transmission interface 114. Thememory storage device 10 may be, for example, aflash drive 201, amemory card 202, a solid-state drive (SSD) 203, or a wirelessmemory storage device 204. The wirelessmemory storage device 204 may be, for example, a memory storage device based on various wireless communication techniques such as a near-field communication (NFC) memory storage device, a wireless fax (WiFi) memory storage device, a Bluetooth memory storage device, or a low-power Bluetooth memory storage device (such as iBeacon). Moreover, themotherboard 20 may also be coupled to various I/O devices such as a global positioning system (GPS)module 205, anetwork interface card 206, awireless transmission device 207, akeyboard 208, ascreen 209, or aspeaker 210 via thesystem bus 110. For example, in an exemplary embodiment, themotherboard 20 may access the wirelessmemory storage device 204 via thewireless transmission device 207. - In an exemplary embodiment, the mentioned host system is any system that may substantially store data with the memory storage device. Although in the above exemplary embodiments, the host system is exemplified by a computer system,
FIG. 3 is a schematic diagram of a host system and a memory storage device shown according to another exemplary embodiment of the invention. Referring toFIG. 3 , in another exemplary embodiment, ahost system 31 may also be a system such as a digital camera, a camcorder, a communication device, an audio player, a video player, or a tablet computer, and thememory storage device 30 may be various non-volatile memory storage devices used thereby such as anSD card 32, aCF card 33, or an embeddedstorage device 34. The embeddedstorage device 34 includes various types of embedded storage devices for which a memory module is directly coupled on the substrate of the host system, such as an embedded multimedia card (eMMC) 341 and/or an embedded multi-chip package (eMCP)storage device 342. -
FIG. 4 is a schematic block diagram of a memory storage device shown according to an exemplary embodiment of the invention. Referring toFIG. 4 , thememory storage device 10 includes aconnection interface unit 402, a memorycontrol circuit unit 404, and a rewritablenon-volatile memory module 406. - The
connection interface unit 402 is configured to couple thememory storage device 10 to thehost system 11. Thememory storage device 10 may communicate with thehost system 11 via theconnection interface unit 402. In the present exemplary embodiment, theconnection interface unit 402 is compatible with the serial advanced technology attachment (SATA) standard. However, it should be understood that the invention is not limited thereto, and theconnection interface unit 402 may also comply with the Parallel Advanced Technology Attachment (PATA) standard, Institute of Electrical and Electronic Engineers (IEEE) 1394 standard, Peripheral Component Interconnect Express (PCI Express) standard, Universal Serial Bus (USB) standard, SD interface standard, Ultra High Speed-I (UHS-I) interface standard, Ultra High Speed-II (UHS-II) interface standard, Memory Stick (MS) interface standard, MCP interface standard, MMC interface standard, eMMC interface standard, Universal Flash Storage (UFS) interface standard, eMCP interface standard, CF interface standard, Integrated - Device Electronics (IDE) standard, or other suitable standards. The
connection interface unit 402 may be sealed in a chip with the memorycontrol circuit unit 404. Alternatively, theconnection interface unit 402 is disposed outside of a chip containing the memorycontrol circuit unit 404. - The memory
control circuit unit 404 is configured to execute a plurality of logic gates or control commands implemented in a hardware form or in a firmware form. The memorycontrol circuit unit 404 also performs operations such as writing, reading, and erasing data in the rewritable non-volatilememory storage module 406 according to the commands of thehost system 11. - The rewritable
non-volatile memory module 406 is coupled to the memorycontrol circuit unit 404 and configured to store data written by thehost system 11. The rewritablenon-volatile memory module 406 includes adata cache area 4061 and adata storage area 4062. In the present exemplary embodiment, thedata cache area 4061 and thedata storage area 4062 are packaged in the same memory chip. In an exemplary embodiment, thedata cache area 4061 and thedata storage area 4062 belong to the same memory die. In other exemplary embodiments, thedata cache area 4061 and thedata storage area 4062 may also belong to different memory dies, and the invention is not limited thereto. - The rewritable
non-volatile memory module 406 may be a single-level cell (SLC) NAND-type flash memory module (that is, a flash memory module that may store 1 bit in one memory cell), a multi-level cell (MLC) NAND-type flash memory module (that is, a flash memory module that may store 2 bits in one memory cell), a triple-level cell (TLC) NAND-type flash memory module (i.e., a flash memory module that may store 3 bits in one memory cell), a quad-level cell (QLC) NAND-type flash memory module (that is, a flash memory module that may store 4 bits in one memory cell), other flash memory modules, or other memory modules with the same characteristics. - The rewritable
non-volatile memory module 406 includes a plurality of memory cells arranged in a matrix. Each of the memory cells in the rewritablenon-volatile memory module 406 stores one or a plurality of bits via the change in voltage (also referred to as threshold voltage hereinafter). Specifically, a charge-trapping layer is disposed between the control gate and the channel of each of the memory cells. By applying a write voltage to the control gate, the number of electrons of the charge-trapping layer may be changed, and therefore the threshold voltage of the memory cells may be changed. This operation of changing the threshold voltage of the memory cells is also referred to as “writing data to the memory cells” or “programming the memory cells”. As the threshold voltage is changed, each of the memory cells in the rewritablenon-volatile memory module 406 has a plurality of storage statuses. Which storage status one memory cell belongs to may be determined via the application of a read voltage, so as to obtain one or a plurality of bits stored by the memory cell. - In the present exemplary embodiment, the memory cells of the rewritable
non-volatile memory module 406 may form a plurality of physical programming units, and these physical programming units may form a plurality of physical erasing units. Specifically, the memory cells on the same word line may form one or a plurality of physical programming units. If each memory cell may store two or more bits, the physical programming units on the same word line may at least be classified into lower physical programming units and upper physical programming units. For example, the least significant bit (LSB) of a memory cell belongs to the lower physical programming units, and the most significant bit (MSB) of a memory cell belongs to the upper physical programming units. Generally, in an MLC NAND-type flash memory, the data write speed of the lower physical programming units is greater than the data write speed of the upper physical programming units, and/or the reliability of the lower physical programming units is greater than the reliability of the upper physical programming units. - In the present exemplary embodiment, the physical programming unit is the smallest unit of programming. That is, the physical programming unit is the smallest unit of data writing. For example, the physical programming unit may be a physical page or a physical sector. If the physical programming unit is a physical page, then the physical programming unit may include a data bit area and a redundant bit area. The data bit area contains a plurality of physical pages configured to store user data, and the redundant bit area is configured to store system data (for example, management data such as an error correction code). In the present exemplary embodiment, the data bit area contains 32 physical pages, and the size of one physical sector is 512 bytes (B). However, in other exemplary embodiments, the data bit area may also contain 8, 16, or a greater or lesser number of physical pages, and the size of each of the physical pages may also be greater or smaller. Moreover, the physical erasing unit is the smallest unit of erasing. That is, each of the physical erasing units contains the smallest number of memory cells erased together. For example, the physical erasing unit is a physical block.
-
FIG. 5 is a schematic block diagram of a memory control circuit unit shown according to an exemplary embodiment of the invention. Referring toFIG. 5 , the memorycontrol circuit unit 404 includes amemory management circuit 502, ahost interface 504, and amemory interface 506. - The
memory management circuit 502 is configured to control the overall operation of the memorycontrol circuit unit 404. Specifically, thememory management circuit 502 has a plurality of control commands. During operation of thememory storage device 10, the control commands are executed to perform operations such as writing, reading, and erasing data. In the following, descriptions relating to the operation of thememory management circuit 502 are equivalent to the descriptions of the operation of the memorycontrol circuit unit 404. - In the present exemplary embodiment, the control commands of the
memory management circuit 502 are implemented in a firmware form. For example, thememory management circuit 502 has a microprocessor unit (not shown) and a read-only memory (not shown), and the control commands are burned into the ROM. During the operation of thememory storage device 10, the control commands are executed by the microprocessor unit to perform operations such as writing, reading, and erasing data. - In another exemplary embodiment, the control commands of the
memory management circuit 502 may also be stored in the form of program codes in a specific area (for example, the system area in a memory module exclusively configured to store system data) of the rewritablenon-volatile memory module 406. Moreover, thememory management circuit 502 has a microprocessor unit (not shown), a ROM (not shown), and a RAM (not shown). In particular, the ROM has a boot code, and when the memorycontrol circuit unit 404 is enabled, the microprocessor unit first executes the boot code to load the control commands stored in the rewritablenon-volatile memory module 406 into the RAM of thememory management circuit 502. Next, the microprocessor unit runs the control commands to perform operations such as writing, reading, and erasing data. - Further, in another exemplary embodiment, the control commands of the
memory management circuit 502 may also be implemented in a hardware form. For example, thememory management circuit 502 includes a microcontroller, a memory cell management circuit, a memory write circuit, a memory read circuit, a memory erase circuit, and a data processing circuit. The memory cell management circuit, the memory write circuit, the memory read circuit, the memory erase circuit, and the data processing circuit are coupled to the microcontroller. The memory cell management circuit is configured to manage the memory cells or memory cell groups of the rewritablenon-volatile memory module 406. The memory write circuit is configured to issue a write command sequence to the rewritablenon-volatile memory module 406 to write data into the rewritablenon-volatile memory module 406. The memory read circuit is configured to issue a read command sequence to the rewritablenon-volatile memory module 406 to read data from the rewritablenon-volatile memory module 406. The memory erase circuit is configured to issue an erase command sequence to the rewritablenon-volatile memory module 406 to erase data from the rewritablenon-volatile memory module 406. The data processing circuit is configured to process data to be written into the rewritablenon-volatile memory module 406 and data read from the rewritablenon-volatile memory module 406. The write command sequence, the read command sequence, and the erase command sequence may independently include one or a plurality of program codes or command codes and be configured to instruct the rewritablenon-volatile memory module 406 to perform corresponding operations such as writing, reading, and erasing. In an exemplary embodiment, thememory management circuit 502 may also issue other types of command sequences to the rewritablenon-volatile memory module 406 to instruct the performance of corresponding operations. - The
host interface 504 is coupled to thememory management circuit 502. Thememory management circuit 502 may communicate with thehost system 11 via thehost interface 504. Thehost interface 504 may be used to receive and identify commands and data sent by thehost system 11. For example, the commands and data sent by thehost system 11 may be sent to thememory management circuit 502 via thehost interface 504. In addition, thememory management circuit 502 may send data to thehost system 11 via thehost interface 504. In the present exemplary embodiment, thehost interface 504 is compatible with the SATA standard. However, it should be understood that the invention is not limited thereto, and thehost interface 504 may also be compatible with the PATA standard, IEEE 1394 standard, PCI Express standard, USB standard, SD standard, UHS-I standard, UHS-II standard, MS standard, MMC standard, eMMC standard, UFS standard, CF standard, IDE standard, or other suitable standards for data transmission. - The
memory interface 506 is coupled to thememory management circuit 502 and configured to access the rewritablenon-volatile memory module 406. In other words, data to be written into the rewritablenon-volatile memory module 406 is converted to a format acceptable to the rewritablenon-volatile memory module 406 via thememory interface 506. Specifically, if thememory management circuit 502 is to access the rewritablenon-volatile memory module 406, thememory interface 506 sends a corresponding command sequence. For example, the command sequence may include a write command sequence instructing data writing, a read command sequence instructing data reading, an erase command sequence instructing data erasing, and a corresponding command sequence configured to instruct various memory operations (such as changing read voltage level or executing a garbage collection operation). The command sequence is generated by, for example, thememory management circuit 502 and sent to the rewritablenon-volatile memory module 406 via thememory interface 506. The command sequence may include one or a plurality of signals or data on a bus. The signals or data may include a command code or a program code. For example, when reading a command sequence, information such as read identification code or memory address is included. - In an exemplary embodiment, the memory
control circuit unit 404 further includes an error detecting and correctingcircuit 508, abuffer memory 510, and apower management circuit 512. - The error detecting and correcting
circuit 508 is coupled to thememory management circuit 502 and configured to execute an error detecting and correcting operation to ensure the correctness of data. Specifically, when thememory management circuit 502 receives a write command from thehost system 11, the error detecting and correctingcircuit 508 generates a corresponding error correcting code (ECC) and/or an error detecting code (EDC) for data corresponding to the write command, and thememory management circuit 502 writes the data corresponding to the write command and the corresponding ECC and/or EDC into the rewritablenon-volatile memory module 406. Next, when reading data from the rewritablenon-volatile memory module 406, thememory management circuit 502 reads the ECC and/or the EDC corresponding to the data at the same time, and the error detecting and correctingcircuit 508 executes an error detecting and correcting operation on the read data based on the ECC and/or the EDC. - The
buffer 510 is coupled to thememory management circuit 502 and configured to temporarily store data and commands from thehost system 11 or data from the rewritablenon-volatile memory module 406. Thebuffer memory 510 may be a static random-access memory (SRAM), a dynamic random-access memory (DRAM), etc., and the invention is not limited in this regard. Thepower management circuit 512 is coupled to thememory management circuit 502 and configured to control the power of thememory storage device 10. - In an exemplary embodiment, the rewritable
non-volatile memory module 406 ofFIG. 4 is also referred to as a flash memory module, and the memorycontrol circuit unit 404 is also referred to as a flash memory controller configured to control the flash memory module. In an exemplary embodiment, thememory management circuit 502 ofFIG. 5 is also referred to as a flash memory management circuit. -
FIG. 6 is a schematic diagram of the management of a rewritable non-volatile memory module shown according to an exemplary embodiment of the invention. - Referring to
FIG. 6 , thememory management circuit 502 may logically group physical units 610(0) to 610(B) of the rewritablenon-volatile memory module 406 into astorage area 601 and afree area 602. The physical units 610(0) to 610(A) in thestorage area 601 and the physical units 610(A+1) to 610(B) in thefree area 602 are configured to store data from thehost system 11. Specifically, the physical units of thestorage area 601 are regarded as physical units in which data is stored, and the physical units of thefree area 602 are configured to substitute the physical units of thestorage area 601. That is to say, when receiving the write command and the data to be written from thehost system 11, thememory management circuit 502 uses the physical units extracted from thefree area 602 to write the data to replace the physical units in thestorage area 601. - In the present exemplary embodiment, each physical unit refers to one physical erasing unit. However, in another exemplary embodiment, one physical unit may also refer to one physical address, one physical programming unit, or be formed by a plurality of continuous or discontinuous physical addresses. The
memory management circuit 502 configures logical units 612(0) to 612(C) to map the physical units 610(0) to 610(A) in thestorage area 601. In the present exemplary embodiment, each of the logical units refers to one logical address. However, in another exemplary embodiment, one logical unit may also refer to one logic programming unit, one logic erasing unit, or formed by a plurality of continuous or discontinuous logical addresses. In addition, each of the logical units 612(0) to 612(C) may be mapped to one or a plurality of physical units. - The
memory management circuit 502 may record the mapping relationship between the logical units and the physical units (also referred to as a logical-physical address mapping relationship) in at least one logical-physical address mapping table. When thehost system 11 is to read data from thememory storage device 10 or write data to thememory storage device 10, thememory management circuit 502 may execute a data access operation on thememory storage device 10 according to the logical-physical address mapping table. - Generally, the
memory management circuit 502 divides the storage space of thebuffer memory 510 into a plurality of areas to store data. For example, thememory management circuit 502 may divide thebuffer memory 510 into a mapping table temporary storage area, a firmware code temporary storage area, a write data temporary storage area, a read data temporary storage area, and other areas. The mapping table temporary storage area is, for example, configured to store at least a portion of a mapping table (for example, a logical-physical address mapping table). The firmware code temporary storage area is configured to store a program code executed by thememory management circuit 502. The write data temporary storage area is configured to temporarily store the data to be written to the rewritablenon-volatile memory module 406, and the read data temporary storage area is configured to temporarily store the data read from the rewritablenon-volatile memory module 406. However, the division of thebuffer memory 510 area is not limited thereto. - As described above, the storage space of the
buffer memory 510 is planned in advance to store the program or data that needs to be temporarily stored during the operation of thememory storage device 10. Due to the limited space of each area in thebuffer memory 510, when a data read operation is performed, thememory management circuit 502 needs to release the storage space of the read data temporary storage area in thebuffer memory 510 to receive more data read from the rewritablenon-volatile memory module 406. -
FIG. 7A andFIG. 7B are schematic diagrams of a multi-channel memory storage device shown according to an exemplary embodiment of the invention. The rewritablenon-volatile memory module 406 may include a plurality of memory dies, and each memory die is the smallest independent unit in the rewritablenon-volatile memory module 406 that may execute a command and report its own state, and therefore may be used as a unit for parallel operation. It should be mentioned that, thememory management circuit 502 may perform different operation modes according to the anticipated execution of single channel access or multi-channel access, wherein single-channel access means that only one input/output bus is activated at the same time to access the memory die, and multi-channel access means that a plurality of input/output buses are activated at the same time to access the memory die. -
FIG. 7A takes four channels as an example for illustration, but the invention does not limit the number of channels of thememory interface 506 here, which may be two, eight, or more channels. As shown in the embodiment ofFIG. 7A , thememory interface 506 includes fourchannels CH# 0 toCH# 3, and each channel is connected with two memory dies. Therefore, the rewritablenon-volatile memory module 406 of the present embodiment includes eight memory dies D0 to D7. In other words, a plurality of memory dies may share one channel, and memory dies between a plurality of channels may be accessed by using multi-channel access to increase the efficacy of data access. - The memory dies with the same corresponding address in each channel may form a bank that may perform an interleaving operation, and the interleaving operation may simultaneously access different banks. In the present exemplary embodiment, the eight memory dies D0 to D7 connected to the
channels CH# 0 toCH# 3 may formbanks Bank# 0 andBank# 1. The memory dies in the same bank may share the chip enable (CE). It is assumed that each memory die in the present embodiment is divided into two planes and it is assumed that the capacity of each of the plurality of physical pages included in the plane is 16K, wherein each plane contains its own page register and cache register to allow parallel operation. In this situation, since a parallel operation is performed by four channels, bank interleaving is performed by two banks, and a parallel operation is performed by two planes of each memory die. When thememory management circuit 502 satisfies the multi-channel simultaneous reading situation, up to 256K (4×4×16K) of data may be read at the same time. Therefore, in order to achieve the maximum performance of multi-channel simultaneous reading, the read data temporary storage area in thebuffer memory 510 needs to be planned to have a storage space of 256K in advance. - However, if the capacity of the rewritable
non-volatile memory module 406 is expanded, when the available storage space of thebuffer memory 510 is limited, the performance of data reading by multi-channel access may not be fully realized. For example, referring toFIG. 7B , the rewritablenon-volatile memory module 406 is expanded to eight memory dies connected to the same channel. The rewritablenon-volatile memory module 406 includes 32 memory dies D0 to D31. In this situation, since a parallel operation is performed by four channels, bank interleaving is performed by four banks, and a parallel operation is performed by two planes of each memory die. When thememory management circuit 502 satisfies the multi-channel simultaneous reading situation, up to 512K (4×8×16K) of data may be read at the same time. However, since the read data temporary storage area of thebuffer memory 510 is only planned to have a storage space of 256K, thebuffer memory 510 may not accommodate the maximum data volume that may be read simultaneously when the data is read by multi-channel access. Thememory management circuit 502 needs to release the storage space of the read data temporary storage area in thebuffer memory 510 to receive more data read from the rewritablenon-volatile memory module 406. Therefore, when the resources of thebuffer memory 510 are insufficient and when the host system continuously reads a lot of data, the advantage of data reading by multi-channel access may not be achieved. - Accordingly, the data reading method provided by an exemplary embodiment of the invention may make the
memory storage device 10 sufficiently utilize the advantage of data reading by multi-channel access during operation. In an exemplary embodiment, thememory management circuit 502 issues a data read command and a cache read command to the rewritablenon-volatile memory module 406 via thememory interface 506 to read the data according to the logical address in the host read command from thehost system 11. For example, the cache read command is a direct memory access (DMA) transfer. - Referring to
FIG. 4 , thedata cache area 4061 is configured to temporarily store the data transferred between the memorycontrol circuit unit 404 and the rewritablenon-volatile memory module 406. Referring toFIG. 4 andFIG. 5 , when thehost system 11 is to read data from the rewritablenon-volatile memory module 406 of thememory storage device 10, thememory management circuit 502 may issue a data read command and a cache read command to the rewritablenon-volatile memory module 406 via thememory interface 506 according to the host read command from thehost system 11. At this time, the rewritablenon-volatile memory module 406 first moves the data to be read from thedata storage area 4062 to thedata cache area 4061 in the rewritablenon-volatile memory module 406 according to the data read command. This process may be called data upload. After data upload is complete, the data in thedata cache area 4061 is moved to the memory control circuit unit 404 (for example, thebuffer memory 510 in the memory control circuit unit 404) according to the cache read command. This process may be called internal data transfer. Once thebuffer memory 510 prepares the data to be read, thehost system 11 may read the data from thebuffer memory 510. This process may be referred to as external data transfer. Thedata cache area 4061 configured to receive data from thedata storage area 4062 may include a cache register contained in each plane in the memory dies. In particular, the cache register may temporarily store data of at least one page to correspond to the reading unit (for example, one page). - It should be mentioned that, during the data upload process, after the
memory management circuit 502 issues a data read command, the rewritablenon-volatile memory module 406 moves at least one page of data from thedata storage area 4062 to thedata cache area 4061 according to the data read command. During this period, the rewritablenon-volatile memory module 406 is in a busy state. At this time, thememory management circuit 502 may not issue any command to the rewritablenon-volatile memory module 406 in busy state. The rewritablenon-volatile memory module 406 returns to ready state after the data temporarily stored in thedata cache area 4061 is moved to thebuffer memory 510. -
FIG. 8A toFIG. 8C are schematic diagrams of performing data buffer in a read data temporary storage area in a buffer memory shown according to an exemplary embodiment of the invention. Referring toFIG. 8A , it is assumed that thebuffer memory 510 includes four pages in the read data temporary storage area, and the capacity of each page is 16K. In the present exemplary embodiment, thehost system 11 and thememory storage device 10 ofFIG. 4 are used as an example to describe data buffering, wherein the memorycontrol circuit unit 404 includes thebuffer memory 510 shown inFIG. 8A , and the rewritablenon-volatile memory module 406 is implemented as the rewritablenon-volatile memory module 406 inFIG. 7B . - In the present exemplary embodiment, the memory management circuit 50 first allocates the storage space of the
buffer memory 510 to the rewritablenon-volatile memory module 406 as a read data temporary storage area according to the host read command from thehost system 11, and issues the data read command and the cache read command to the rewritablenon-volatile memory module 406 via thememory interface 506. It is assumed that this data read command instructs to continuously read data of four physical pages from the memory dies D0 to D3 by multi-channel access. At this time, the rewritablenon-volatile memory module 406 performs the above data upload according to the data read command to first move the data to be read (for example, data DATA0_0 in the memory die D0, data DATA1_0 in the memory die D1, data DATA2_0 in the memory die D2, and data DATA3_0 in the memory die D3) from the memory dies D0 to D3 to thedata cache area 4061 in the rewritablenon-volatile memory module 406. After the data upload is complete, the internal data transfer above is performed to move the data DATA0_0 to DATA3_0 in thedata cache area 4061 to the read data temporary storage area in thebuffer memory 510 according to the cache read command. Once thebuffer memory 510 prepares the data DATA0_0 to DATA3_0 to be read (as shown inFIG. 8B ), the external data transfer above is performed, and thehost system 11 may read the data DATA0_0 to DATA3_0 from the read data temporary storage area. After the data DATA0_0 to DATA3_0 are read, thebuffer memory 510 may release the storage space of the read data temporary storage area, as shown inFIG. 8A , and the read data temporary storage area in thebuffer memory 510 does not temporarily store data and is in ready state. Therefore, in the present exemplary embodiment, thememory storage device 10 receives the host read command and executes data upload, internal data transfer, and external data transfer in order to read data from the rewritablenon-volatile memory module 406. - However, only four pages are configured in the
buffer memory 510 of the present exemplary embodiment as a read data temporary storage area. If the data read command instructs to continuously read data of more than four physical pages by multi-channel access, thememory storage device 10 needs to first perform one round of data upload, internal data transfer, and external data transfer before performing the next round of data upload, internal data transfer, and external data transfer to complete the reading of the data. For example, it is assumed that the data read command instructs to continuously read data of a total of eight physical pages from the memory dies D0 to D7 by multi-channel access. At this time, thememory storage device 10 performs the operations corresponding toFIG. 8A toFIG. 8B , and releases the storage space of the read data temporary storage area after the data DATA0_0 to DATA3_0 in thebuffer memory 510 are read by thehost system 11. Then, the rewritablenon-volatile memory module 406 performs the data upload above to first move the data to be read (for example, data DATA0_1 to DATA3_1 stored in the memory dies D4 to D7) from the memory dies D4 to D7 to thedata cache area 4061 in the rewritablenon-volatile memory module 406. After the data upload is complete, the internal data transfer above is executed to transfer the data DATA0_1 to DATA3_1 in thedata cache area 4061 to thebuffer memory 510. Once thebuffer memory 510 prepares the data DATA0_1 to DATA3_1 to be read (as shown inFIG. 8C ), the external data transfer above is performed, and thehost system 11 may read the data DATA0_1 to DATA3_1 from thebuffer memory 510. After the data DATA0_1 to DATA3_1 are read, thebuffer memory 510 may have no stored data as shown inFIG. 8A orFIG. 8C . - Therefore, in the present exemplary embodiment, when the
memory management circuit 502 is to read more than the capacity of the read data temporary storage area configured in thebuffer memory 510, thememory management circuit 502 needs to wait for thebuffer memory 510 to be released (that is, after the data is transferred to the host system 11) before sending the next data read command and the cache read command to the rewritablenon-volatile memory module 406. Therefore, in the present exemplary embodiment, the total time needed to read the data DATA0_0 to DATA3_0 and the data DATA0_1 to DATA3_1 from the rewritablenon-volatile memory module 406 according to the host read command is as follows: -
Total time_1=(tR+tDMA+tHost)×2 - In particular, Total time_1 is the total time for reading data, tR is the time for performing data upload, tDMA is the time for performing internal data transfer, and tHost is the time for performing external data transfer. In other words, when the present exemplary embodiment performs multi-channel access to continuously read data of a total of eight physical pages from the memory dies D0 to D7, even though the
memory management circuit 502 may simultaneously read the stored data DATA0_0 to DATA3_0 from the memory dies D0 to D3 and read the stored data DATA0_1 to DATA3_1 from the memory dies D4 to D7 via the fourchannels CH# 0 toCH# 3, it is necessary to wait for the storage space of the read data temporary storage area to be released before the next round of data upload, internal data transfer, and external data transfer of the data DATA0_1 to DATA3_1 stored in the memory dies D4 to D7 due to the limited storage space of the read data temporary storage area configured in thebuffer memory 510 of the present embodiment. As a result, the advantage of reading a plurality of data at the same time during multi-channel access cannot be achieved, and therefore the performance of data reading by multi-channel access may not be fully realized. - Therefore, in an exemplary embodiment, the
memory management circuit 502 may determine whether the storage space of thebuffer memory 510 is insufficient when performing multi-channel access according to the host read command from thehost system 11, that is, whether the storage space of thebuffer memory 510 is full. For example, in addition, when determining whether the storage space of thebuffer memory 510 is insufficient, thememory management circuit 502 determines whether the storage space configured in thebuffer memory 510 configured to temporarily store the read data temporary storage area from the rewritablenon-volatile memory module 406 is insufficient. - In the present exemplary embodiment, in response to insufficient storage space of the
buffer memory 510, thememory management circuit 502 issues a data read command corresponding to each channel to the rewritablenon-volatile memory module 406 via thememory interface 506 according to the logical address in the host read command to read the data corresponding to each channel from thedata storage area 4062 to thedata cache area 4061 via each channel. Specifically, the data read command includes the physical address mapped by the logical address in the host read command. The rewritablenon-volatile memory module 406 may read the data corresponding to each channel from thedata storage area 4062 to thedata cache area 4061 according to the physical address in the data read command. - After all the data corresponding to the data read command is read to the
data cache area 4061, thememory management circuit 502 waits for thebuffer memory 510 to release storage space. After the storage space of thebuffer memory 510 is released, thememory management circuit 502 allocates the storage space of thebuffer memory 510 to the rewritablenon-volatile memory module 406 and issues a cache read command to the rewritablenon-volatile memory module 406 to move the data temporarily stored in thedata cache area 4061 from thedata cache area 4061 to thebuffer memory 510. Specifically, the cache read command instructs to move the first data in the data temporarily stored in thedata cache area 4061 from thedata cache area 4061 to thebuffer memory 510. The data volume of the first data matches the capacity of the storage space released by thebuffer memory 510. Moreover, after transferring the first data to thehost system 11 to release the storage space of thebuffer memory 510, thememory management circuit 502 issues a cache read command to the rewritablenon-volatile memory module 406 to move the second data in the data temporarily stored in thedata cache area 4061 from thedata cache area 4061 to thebuffer memory 510. The data volume of the second data matches the capacity of the storage space released by thebuffer memory 510. - For example, it is assumed that a plurality of host read commands instruct to continuously read data of a total of eight physical pages from the memory dies D0 to D7 of
FIG. 7B . In the present exemplary embodiment, thehost system 11 and thememory storage device 10 ofFIG. 4 are taken as an example to describe the data buffering, wherein the memorycontrol circuit unit 404 includes thebuffer memory 510 shown inFIG. 8A . - In the present exemplary embodiment, since the memory dies D0 to D7 storing the data to be read correspond to the plurality of
channels CH# 0 toCH# 3, thememory management circuit 502 performs multi-channel access. At this time, it is assumed that the storage space of thebuffer memory 510 is insufficient, and thememory management circuit 502 issues a data read command corresponding to each of thechannels CH# 0 toCH# 3 to the rewritablenon-volatile memory module 406. The rewritablenon-volatile memory module 406 reads the data DATA0_0 to DATA3_0 corresponding to the data read command from the memory dies D0 to D3 included in theBank# 0 and reads the data DATA0_1 to DATA3_1 corresponding to the data read command from the memory dies D4 to D7 included in theBank# 1 to thedata cache area 4061 at the same time according to the data read command. When reading all data to thedata cache area 4061, thememory management circuit 502 waits for thebuffer memory 510 to release storage space. - After the
memory management circuit 502 releases the storage space of thebuffer memory 510, thememory management circuit 502 allocates the storage space of thebuffer memory 510 to thedata cache area 4061, and issues a cache read command to thedata cache area 4061 to move the data DATA0_0 to DATA3_0 in the data temporarily stored in thedata cache area 4061 from thedata cache area 4061 to thebuffer memory 510. The data volume of the data DATA0_0 to DATA3_0 matches the capacity of the storage space released by thebuffer memory 510. Moreover, after transferring the data DATA0_0 to DATA3_0 to thehost system 11 to release the storage space of thebuffer memory 510, thememory management circuit 502 issues a cache read command to thedata cache area 4061 to move the DATA0_1 to DATA3_1 in the data temporarily stored in thedata cache area 4061 from thedata cache area 4061 to thebuffer memory 510. - Therefore, in the present exemplary embodiment, the total time needed to read the data DATA0_0 to DATA3_0 and the data DATA0_1 to DATA3_1 from the rewritable
non-volatile memory module 406 according to the host read command is as follows: -
Total time_2=tR+(tDMA+tHost)×2 - In particular, Total time_2 is the total time for reading data, tR is the time for performing data upload, tDMA is the time for performing internal data transfer, and tHost is the time for performing external data transfer. Here, the total time Total time_2 for reading data in the present exemplary embodiment reduces the time tR for performing data upload compared with the total time Total time_1 for reading data in the above embodiment.
- It should be mentioned that, if the host read command intends to read more data in the memory dies included in the bank by multi-channel access at the same time, the data reading method provided in the present exemplary embodiment may save more time tR for performing data upload.
-
FIG. 9 is a flowchart of a data reading method shown according to an exemplary embodiment of the invention. - In step S902, when the multi-channel access is performed according to the host read command from the host system, whether the storage space of the buffer memory is insufficient is determined. In step S904, a data read command corresponding to each of the plurality of channels is issued to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area. In step S906, the storage space of the buffer memory is allocated to the rewritable non-volatile memory module and a cache read command is issued to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory.
- However, each step in
FIG. 9 is as described in detail above, and is not repeated herein. It should be mentioned that, each step inFIG. 9 may be implemented as a plurality of program codes or circuits, and the invention is not limited thereto. Moreover, the method ofFIG. 9 may be used with the above exemplary embodiments, and may also be used alone, and the invention is not limited thereto. - Based on the above, the multi-channel memory storage device, the control circuit unit, and the data reading method provided by the invention may first stack the busy time of data upload by reading data to the data cache area when the multi-channel access is continuously performed. When the available space of the buffer memory in the memory control circuit unit is sufficient, the storage space is allocated to the data cache area for internal data transfer. In this way, the time for performing data upload may be reduced, so that even when the buffer space is limited during operation of the memory storage device, the advantage of fast reading during data reading by multi-channel access may still be sufficiently achieved.
- Although the invention has been described with reference to the above embodiments, it will be apparent to one of ordinary skill in the art that modifications to the described embodiments may be made without departing from the spirit of the disclosure. Accordingly, the scope of the disclosure is defined by the attached claims not by the above detailed descriptions.
Claims (15)
1. A data reading method, suitable for a multi-channel memory storage device comprising a memory control circuit unit and a rewritable non-volatile memory module, wherein the memory control circuit unit comprises a buffer memory, the rewritable non-volatile memory module comprises a data cache area and a data storage area, and the method comprises:
determining whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system;
issuing a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area; and
allocating the storage space of the buffer memory to the rewritable non-volatile memory module and issuing a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory,
wherein a data volume of the first data matches a capacity of the storage space released by the buffer memory.
2. The data reading method of claim 1 , wherein the step of determining whether the storage space of the buffer memory is insufficient comprises:
determining whether a storage space configured in the buffer memory for temporarily storing a read data temporary storage area from the rewritable non-volatile memory module is insufficient.
3. The data reading method of claim 1 , wherein the data storage area comprises a plurality of memory dies, a plurality of first memory dies of the plurality of memory dies are connected to a first channel of the plurality of channels, and a plurality of second memory dies of the plurality of memory dies are connected to a second channel in the plurality of channels, wherein the step of issuing the data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module to read the data corresponding to each of the plurality of channels from the data storage area to the data cache area via the plurality of channels comprises:
issuing the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
4. The data reading method of claim 1 , wherein the cache reading command is a direct memory access transfer.
5. The data reading method of claim 1 , wherein the method further comprises:
issuing a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
6. A multi-channel memory storage device, comprising:
a connection interface unit configured to be coupled to a host system;
a rewritable non-volatile memory module comprising a data cache area and a data storage area; and
a memory control circuit unit coupled to the connection interface unit and the rewritable non-volatile memory module, wherein the memory control circuit unit comprises a buffer memory,
wherein the memory control circuit unit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from the host system,
the memory control circuit unit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area, and
the memory control circuit unit is further configured to allocate a storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory,
wherein a data volume of the first data matches a capacity of the storage space released by the buffer memory.
7. The multi-channel memory storage device of claim 6 , wherein in the operation of determining whether the storage space of the buffer memory is insufficient, the memory control circuit unit is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store a read data temporary storage area from the rewritable non-volatile memory module is insufficient.
8. The multi-channel memory storage device of claim 6 , wherein the data storage area comprises a plurality of memory dies, a plurality of first memory dies of the plurality of memory dies are connected to a first channel of the plurality of channels, and a plurality of second memory dies of the plurality of memory dies are connected to a second channel in the plurality of channels, wherein the memory control circuit unit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
9. The multi-channel memory storage device of claim 6 , wherein the cache reading command is a direct memory access transfer.
10. The multi-channel memory storage device of claim 6 , wherein the memory control circuit unit is further configured to issue a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
11. A memory control circuit unit, configured to control a rewritable non-volatile memory module comprising a data cache area and a data storage area, wherein the memory control circuit unit comprises:
a host interface configured to be coupled to a host system;
a memory interface configured to be coupled to the rewritable non-volatile memory module;
a buffer memory; and
a memory management circuit coupled to the host interface, the memory interface, and the buffer memory,
wherein the memory management circuit is configured to determine whether a storage space of the buffer memory is insufficient when a multi-channel access is performed according to a host read command from a host system,
the memory management circuit is further configured to issue a data read command corresponding to each of the plurality of channels to the rewritable non-volatile memory module according to a logical address in the host read command in response to insufficient storage space of the buffer memory to read data corresponding to each of the plurality of channels from the data storage area via the plurality of channels to the data cache area, and
the memory management circuit is further configured to allocate a storage space of the buffer memory to the rewritable non-volatile memory module and issue a cache read command to the rewritable non-volatile memory module after the storage space of the buffer memory is released to move first data in data temporarily stored in the data cache area to the buffer memory,
wherein a data volume of the first data matches a capacity of the storage space released by the buffer memory.
12. The memory control circuit unit of claim 11 , wherein in the operation of determining whether the storage space of the buffer memory is insufficient, the memory management circuit is further configured to determine whether the storage space configured in the buffer memory configured to temporarily store a read data temporary storage area from the rewritable non-volatile memory module is insufficient.
13. The memory control circuit unit of claim 11 , wherein the data storage area comprises a plurality of memory dies, a plurality of first memory dies of the plurality of memory dies are connected to a first channel of the plurality of channels, and a plurality of second memory dies of the plurality of memory dies are connected to a second channel in the plurality of channels, wherein the memory management circuit is further configured to issue the data read command corresponding to the first channel and the second channel to read data corresponding to the data read command from the plurality of first memory dies and the plurality of second memory dies to the data cache area via the first channel and the second channel at the same time.
14. The memory control circuit unit of claim 11 , wherein the cache reading command is a direct memory access transfer.
15. The memory control circuit unit of claim 11 , wherein the memory management circuit is further configured to issue a next cache read command to the rewritable non-volatile memory module after the first data temporarily stored in the buffer memory is transferred to the host system to release the storage space of the buffer memory to move second data in the data temporarily stored in the data cache area to the buffer memory.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595367.9 | 2021-12-23 | ||
CN202111595367.9A CN114333930B (en) | 2021-12-23 | 2021-12-23 | Multi-channel memory storage device, control circuit unit and data reading method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
US11669270B1 US11669270B1 (en) | 2023-06-06 |
US20230205451A1 true US20230205451A1 (en) | 2023-06-29 |
Family
ID=81012865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/579,537 Active 2042-02-01 US11669270B1 (en) | 2021-12-23 | 2022-01-19 | Multi-channel memory storage device, memory control circuit unit and data reading method |
Country Status (3)
Country | Link |
---|---|
US (1) | US11669270B1 (en) |
CN (1) | CN114333930B (en) |
TW (1) | TWI825551B (en) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150242A1 (en) * | 2016-11-30 | 2018-05-31 | Samsung Electronics Co., Ltd. | Controller and storage device for efficient buffer allocation, and operating method of the storage device |
US20180173655A1 (en) * | 2016-12-20 | 2018-06-21 | Sandisk Technologies Llc | Multi-channel memory operations based on bit error rates |
US20180330467A1 (en) * | 2017-05-12 | 2018-11-15 | Google Inc. | Determination of per line buffer unit memory allocation |
US20190095365A1 (en) * | 2017-09-22 | 2019-03-28 | Vinodh Gopal | Techniques for reducing accelerator-memory access costs in platforms with multiple memory channels |
US20200242055A1 (en) * | 2019-01-25 | 2020-07-30 | Microchip Technology Incorporated | Data samples transport scheme, and related systems, methods and devices |
US20210191625A1 (en) * | 2019-12-20 | 2021-06-24 | SK Hynix Inc. | Apparatus and method for improving input/output throughput of memory system |
US20220157353A1 (en) * | 2020-11-16 | 2022-05-19 | Samsung Electronics Co., Ltd. | Memory package and storage device including the same |
US20220155992A1 (en) * | 2020-11-13 | 2022-05-19 | Argo AI, LLC | Methods and systems for memory management in a publish and subscribe system |
US20220197562A1 (en) * | 2020-12-17 | 2022-06-23 | Kioxia Corporation | Memory system and control method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827348B2 (en) * | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US7191291B2 (en) * | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US9122631B2 (en) * | 2011-11-07 | 2015-09-01 | Peking University | Buffer management strategies for flash-based storage systems |
CN103218308B (en) * | 2012-01-20 | 2016-06-29 | 群联电子股份有限公司 | Buffer storage supervisory method, Memory Controller and memorizer memory devices |
CN104423888B (en) * | 2013-08-23 | 2017-10-03 | 群联电子股份有限公司 | Method for writing data, memorizer control circuit unit and memory storage apparatus |
TWI554885B (en) * | 2015-08-18 | 2016-10-21 | 群聯電子股份有限公司 | Memory management method, memory control circuit unit and memory storage device |
US10642535B2 (en) * | 2018-01-23 | 2020-05-05 | International Business Machines Corporation | Register access in a distributed memory buffer system |
TWI745986B (en) * | 2019-11-29 | 2021-11-11 | 慧榮科技股份有限公司 | Data storage device and non-volatile memory control method |
-
2021
- 2021-12-23 CN CN202111595367.9A patent/CN114333930B/en active Active
-
2022
- 2022-01-11 TW TW111101062A patent/TWI825551B/en active
- 2022-01-19 US US17/579,537 patent/US11669270B1/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180150242A1 (en) * | 2016-11-30 | 2018-05-31 | Samsung Electronics Co., Ltd. | Controller and storage device for efficient buffer allocation, and operating method of the storage device |
US20180173655A1 (en) * | 2016-12-20 | 2018-06-21 | Sandisk Technologies Llc | Multi-channel memory operations based on bit error rates |
US20180330467A1 (en) * | 2017-05-12 | 2018-11-15 | Google Inc. | Determination of per line buffer unit memory allocation |
US20190095365A1 (en) * | 2017-09-22 | 2019-03-28 | Vinodh Gopal | Techniques for reducing accelerator-memory access costs in platforms with multiple memory channels |
US20200242055A1 (en) * | 2019-01-25 | 2020-07-30 | Microchip Technology Incorporated | Data samples transport scheme, and related systems, methods and devices |
US20210191625A1 (en) * | 2019-12-20 | 2021-06-24 | SK Hynix Inc. | Apparatus and method for improving input/output throughput of memory system |
US20220155992A1 (en) * | 2020-11-13 | 2022-05-19 | Argo AI, LLC | Methods and systems for memory management in a publish and subscribe system |
US20220157353A1 (en) * | 2020-11-16 | 2022-05-19 | Samsung Electronics Co., Ltd. | Memory package and storage device including the same |
US20220197562A1 (en) * | 2020-12-17 | 2022-06-23 | Kioxia Corporation | Memory system and control method |
Also Published As
Publication number | Publication date |
---|---|
TW202326392A (en) | 2023-07-01 |
CN114333930B (en) | 2024-03-08 |
US11669270B1 (en) | 2023-06-06 |
TWI825551B (en) | 2023-12-11 |
CN114333930A (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10402318B2 (en) | Mapping table updating method, memory control circuit unit and memory storage device | |
US9952806B2 (en) | Mapping table loading method and memory storage apparatus | |
CN106681932B (en) | Memory management method, memory control circuit unit and memory storage device | |
US10001928B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN110837339A (en) | Data merging method, memory storage device and memory control circuit unit | |
CN107103930B (en) | Data writing method, memory control circuit unit and memory storage device | |
US11609822B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
US11347635B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
US11669270B1 (en) | Multi-channel memory storage device, memory control circuit unit and data reading method | |
US11822798B2 (en) | Data storing allocation method, memory storage apparatus and memory control circuit unit | |
US11573908B1 (en) | Mapping table management method, memory control circuit unit and memory storage device | |
TWI823792B (en) | Mapping table updating method, memory storage device and memory control circuit unit | |
US11907529B2 (en) | Memory management method, memory storage device, and memory control circuit unit | |
US11960761B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
CN111435287B (en) | Memory control method, memory storage device and memory control circuit unit | |
US10942680B2 (en) | Data writing method, memory storage device and memory control circuit unit | |
US11954329B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
TWI780003B (en) | Memory control method, memory storage device and memory control circuit unit | |
US20220164133A1 (en) | Memory control method, memory storage device and memory control circuit unit | |
US11144244B2 (en) | Command transmitting method with temporary storing commands by memory interfaces for rewritable non-volatile memory modules, memory control circuit unit and memory storage device | |
CN112015327B (en) | Data writing method, memory storage device and memory control circuit unit | |
CN112114737A (en) | Memory control method, memory storage device and memory control circuit unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEFEI CORE STORAGE ELECTRONIC LIMITED, CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HONG, WAN-JUN;ZHU, QI-AO;WANG, XIN;AND OTHERS;REEL/FRAME:058701/0044 Effective date: 20220112 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |