[go: up one dir, main page]

CN116931812A - Data access method and storage medium and apparatus for responding to host discard command - Google Patents

Data access method and storage medium and apparatus for responding to host discard command Download PDF

Info

Publication number
CN116931812A
CN116931812A CN202210335258.1A CN202210335258A CN116931812A CN 116931812 A CN116931812 A CN 116931812A CN 202210335258 A CN202210335258 A CN 202210335258A CN 116931812 A CN116931812 A CN 116931812A
Authority
CN
China
Prior art keywords
discard
host
extended
address
command
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.)
Pending
Application number
CN202210335258.1A
Other languages
Chinese (zh)
Inventor
邱慎廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN202210335258.1A priority Critical patent/CN116931812A/en
Priority to US18/110,747 priority patent/US12105622B2/en
Publication of CN116931812A publication Critical patent/CN116931812A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

A data access method, computer readable storage medium and apparatus for responding to a host discard command. The method comprises the following steps: configuring a space in the random access memory to an extended discard table comprising a plurality of entries, each entry describing a logical address of the discarded user data; receiving a host discard command from the host indicating a first logical address of user data that is no longer in use; newly adding a new item containing the first logical address to the extended discard table; and setting a start address register and an end address register in the performance engine for redefining an address range of the extended discard table stored in the random access memory. By setting the performance engine and using the extended discard table, the processing unit is prevented from consuming excessive operation resources to judge whether the logic address of the user data to be written by the host write command or the logic address of the user data to be read by the host read command falls into the logic address section which has been discarded before.

Description

因应主机丢弃命令的数据存取方法和存储介质和装置Data access methods and storage media and devices in response to host discard command

技术领域Technical field

本发明涉及存储装置,特别是,本发明涉及一种因应主机丢弃命令的数据存取方法、计算机可读取存储介质及装置。The present invention relates to storage devices. In particular, the present invention relates to a data access method, computer-readable storage medium and device in response to a host discard command.

背景技术Background technique

闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可于地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用于定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。为了提升闪存控制器的执行效能,本发明提出一种因应主机丢弃命令的数据存取方法、计算机可读取存储介质及装置。Flash memory is usually divided into NOR flash memory and NAND flash memory. NOR flash memory is a random access device. The central processing unit (Host) can provide any address to access the NOR flash memory on the address pin, and obtain the data stored at the address from the data pin of the NOR flash memory in a timely manner. On the contrary, NAND flash memory is not random access, but serial access. NAND flash memory cannot access any random address like NOR flash memory. Instead, the central processor needs to write serial byte (Bytes) values to NAND flash memory to define the type of request command (Command) (such as, read, write, erase, etc.), and the address used on this command. The address can point to a page (the smallest block of data for a write operation in flash memory) or a block (the smallest block of data for an erase operation in flash memory). In order to improve the execution performance of the flash memory controller, the present invention proposes a data access method, a computer-readable storage medium and a device in response to a host discard command.

发明内容Contents of the invention

有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem that needs to be solved.

本发明涉及一种因应主机丢弃命令的数据存取方法,由处理单元执行,包含:在随机存取存储器中配置空间给扩展式丢弃表,包含多个项目,而每个所述项目记载已经丢弃的使用者数据的逻辑地址;从主机端接收主机丢弃命令,指出不再使用的使用者数据的第一逻辑地址;新增包含所述第一逻辑地址的新项目至所述扩展式丢弃表;以及设定性能引擎中的开始地址寄存器和结束地址寄存器,用于重新定义所述随机存取存储器中存储的所述扩展式丢弃表的地址范围,使得所述性能引擎通过在所述随机存取存储器中的所述地址范围搜索所述扩展式丢弃表以判断特定逻辑地址的使用者数据是否已经不再使用。The invention relates to a data access method in response to a host discard command, which is executed by a processing unit and includes: configuring space in a random access memory for an extended discard table, including a plurality of items, and each item records that it has been discarded the logical address of the user data; receiving a host discard command from the host end, indicating the first logical address of the user data that is no longer used; adding a new item containing the first logical address to the extended discard table; and setting the start address register and the end address register in the performance engine to redefine the address range of the extended discard table stored in the random access memory, so that the performance engine passes the The address range in memory searches the extended discard table to determine whether user data for a particular logical address is no longer in use.

本发明还涉及一种计算机可读取存储介质,包含计算机程序。当处理单元加载及执行计算机程序时,实施如上所示的因应主机丢弃命令的数据存取方法。The invention also relates to a computer-readable storage medium containing a computer program. When the processing unit loads and executes the computer program, the data access method in response to the host discard command as shown above is implemented.

本发明还涉及一种因应主机丢弃命令的数据存取装置,包含:随机存取存储器;性能引擎;和处理单元。随机存取存储器用于配置空间给扩展式丢弃表,其包含多个项目,而每个所述项目记载已经丢弃的使用者数据的逻辑地址。性能引擎包含开始地址寄存器和结束地址寄存器,用于定义所述随机存取存储器中存储所述扩展式丢弃表的地址范围。处理单元用于从主机端接收主机丢弃命令,其指出不再使用的使用者数据的第一逻辑地址;新增包含所述第一逻辑地址的新项目至所述扩展式丢弃表;以及设定所述性能引擎中的所述开始地址寄存器和所述结束地址寄存器,用于重新定义所述随机存取存储器中存储的所述扩展式丢弃表的地址范围,使得所述性能引擎通过在所述随机存取存储器中的所述地址范围搜索所述扩展式丢弃表以判断特定逻辑地址的使用者数据是否已经不再使用。The invention also relates to a data access device responding to a host discard command, including: a random access memory; a performance engine; and a processing unit. The random access memory is used to allocate space for the extended discard table, which contains multiple entries, and each entry records the logical address of discarded user data. The performance engine includes a start address register and an end address register, which are used to define an address range in the random access memory where the extended discard table is stored. The processing unit is configured to receive a host discard command from the host, which indicates a first logical address of user data that is no longer used; add a new entry including the first logical address to the extended discard table; and set The start address register and the end address register in the performance engine are used to redefine the address range of the extended discard table stored in the random access memory, so that the performance engine passes the The address range in the random access memory searches the extended discard table to determine whether user data at a specific logical address is no longer in use.

上述实施例的优点之一,通过性能引擎的设置和扩展式丢弃表的使用,避免处理单元耗费过多的运算资源来判断主机写入命令所要写入的使用者数据的逻辑地址或者主机读取命令所要读取的使用者数据的逻辑地址是否落入之前已经丢弃的逻辑地址区间。One of the advantages of the above embodiment is that through the setting of the performance engine and the use of the extended discard table, the processing unit is prevented from consuming too much computing resources to determine the logical address of the user data to be written by the host write command or the host read. Whether the logical address of the user data to be read by the command falls into the previously discarded logical address range.

本发明的其他优点将配合以下的说明和说明书附图进行更详细的解说。Other advantages of the present invention will be explained in more detail in conjunction with the following description and the accompanying drawings.

附图说明Description of the drawings

此处所说明的说明书附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。The description and drawings described here are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation of the present application.

图1为依据本发明实施例的电子装置的系统架构图。FIG. 1 is a system architecture diagram of an electronic device according to an embodiment of the present invention.

图2为依据本发明实施例的闪存模块的示意图。FIG. 2 is a schematic diagram of a flash memory module according to an embodiment of the present invention.

图3为依据本发明实施例的性能引擎和随机存取存储器的框图。Figure 3 is a block diagram of a performance engine and a random access memory according to an embodiment of the present invention.

图4为依据本发明实施例的执行主机丢弃命令的方法流程图。Figure 4 is a flow chart of a method for executing a host discard command according to an embodiment of the present invention.

图5为依据本发明实施例的主机写入命令执行后的扩展式丢弃表的更新方法的流程图。FIG. 5 is a flow chart of a method for updating the extended discard table after the host write command is executed according to an embodiment of the present invention.

图6为依据本发明实施例的执行主机读取命令的方法流程图。FIG. 6 is a flow chart of a method for executing a host read command according to an embodiment of the present invention.

图7为依据本发明实施例的执行主机丢弃命令的方法流程图。Figure 7 is a flow chart of a method for executing a host discard command according to an embodiment of the present invention.

图8为依据本发明实施例的主机写入命令执行后的丢弃命令和扩展式丢弃表的更新方法的流程图。FIG. 8 is a flow chart of a discard command and an update method of an extended discard table after the host write command is executed according to an embodiment of the present invention.

图9为依据本发明实施例的执行主机读取命令的方法流程图。FIG. 9 is a flow chart of a method for executing a host read command according to an embodiment of the present invention.

其中,附图标记:Among them, the reference signs are:

10 电子装置10 electronic devices

110 主机端110 Host side

130 闪存控制器130 Flash Controller

131 主机接口131 host interface

132 总线架构132 bus architecture

134 处理单元134 processing units

136 随机存取存储器136 random access memory

137 性能引擎137 Performance Engine

138 直接存储器存取控制器138 Direct Memory Access Controller

139 闪存接口139 Flash memory interface

150 闪存模块150 flash memory module

151 接口151 interface

153#0~153#15 NAND闪存单元153#0~153#15 NAND flash memory unit

CH#0~CH#3 通道CH#0~CH#3 channels

CE#0~CE#3 启动信号CE#0~CE#3 start signal

310 搜索电路310 Search circuit

322 开始地址寄存器322 Start address register

324 结束地址寄存器324 end address register

330#0~330#7 目标寄存器330#0~330#7 target register

350#0~350#7 结果寄存器350#0~350#7 result register

S410~S430 方法步骤S410~S430 method steps

S510~S540 方法步骤S510~S540 method steps

S610~S640 方法步骤S610~S640 method steps

S710~S720 方法步骤S710~S720 method steps

S810~S820 方法步骤S810~S820 method steps

S910~S924 方法步骤S910~S924 method steps

具体实施方式Detailed ways

以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。The embodiments of the present invention will be described below with reference to relevant drawings. In the drawings, the same reference numerals represent the same or similar components or method flows.

必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、元件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。It must be understood that the words "including" and "include" used in this specification are used to indicate the existence of specific technical features, numerical values, method steps, work processes, elements and/or components, but do not exclude the possibility of Plus further technical features, values, method steps, processes, components, assemblies, or any combination of the above.

本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。The use of words such as "first", "second" and "third" in the present invention are used to modify the components in the claims, and are not used to indicate a priority order or precedence relationship between them, or that one component comes first. to another component, or the time sequence when executing method steps, only used to distinguish components with the same name.

必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。It must be understood that when a component is described as being "connected" or "coupled" to another component, it may be directly connected or coupled to the other component or intervening components may be present. In contrast, when a component is described as being "directly connected" or "directly coupled" to another component, there are no intervening components present. Other words used to describe the relationship between components could be interpreted in a similar fashion, such as "between" versus "directly between," or "adjacent" versus "directly adjacent," etc.

参考图1。电子装置10包含:主机端(Host Side)110、闪存控制器130及闪存模块150,并且闪存控制器130及闪存模块150可合称为装置端(Device Side)。电子装置10可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数码相机、数码摄影机等电子产品之中。主机端110与闪存控制器130的主机接口(Host Interface)131可以通用串行总线(Universal Serial Bus,USB)、先进技术附件(Advanced TechnologyAttachment,ATA)、串行先进技术附件(Serial Advanced Technology Attachment,SATA)、快速外设组件互联(Peripheral Component Interconnect Express,PCI-E)、通用闪存存储(Universal Flash Storage,UFS)、嵌入式多媒体卡(Embedded Multi-Media Card,eMMC)等通信协议彼此通信。闪存控制器130的闪存接口(Flash Interface)139与闪存模块150可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他通信协议。闪存控制器130包含处理单元134,可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。处理单元134通过主机接口131接收主机命令,例如读取命令(Read Command)、写入命令(Write Command)、抹除命令(Erase Command)等,调度并执行这些命令。闪存控制器130还包含随机存取存储器(Random Access Memory,RAM)136,可实施为动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)或上述两者的结合,用于配置空间作为数据缓冲区,存储从主机端110读取并即将写入闪存模块150的用户数据(也可称为主机数据),以及从闪存模块150读取并即将输出给主机端110的用户数据。随机存取存储器136还可存储执行过程中需要的数据,例如,变量、数据表、主机-闪存对照表(Host-to-Flash,H2F Table)、闪存-主机对照表(Flash-to-Host,F2H Table)等。闪存接口139包含NAND闪存控制器(NAND Flash Controller,NFC),提供存取闪存模块150时需要的功能,例如命令串行器(Command Sequencer)、低密度奇偶校验(Low Density Parity Check,LDPC)等。Refer to Figure 1. The electronic device 10 includes: a host side (Host Side) 110, a flash memory controller 130 and a flash memory module 150, and the flash memory controller 130 and the flash memory module 150 can be collectively referred to as a device side (Device Side). The electronic device 10 can be implemented in electronic products such as personal computers, laptop computers (Laptop PC), tablet computers, mobile phones, digital cameras, and digital video cameras. The host interface (Host Interface) 131 between the host side 110 and the flash memory controller 130 can be a universal serial bus (Universal Serial Bus, USB), advanced technology attachment (Advanced Technology Attachment, ATA), serial advanced technology attachment (Serial Advanced Technology Attachment, SATA), Peripheral Component Interconnect Express (PCI-E), Universal Flash Storage (UFS), Embedded Multi-Media Card (eMMC) and other communication protocols communicate with each other. The flash memory interface (Flash Interface) 139 of the flash memory controller 130 and the flash memory module 150 can communicate with each other using a double data rate (Double Data Rate, DDR) communication protocol, for example, Open NAND Flash Memory Interface (Open NAND Flash Interface, ONFI), Double Data rate switch (DDR Toggle) or other communication protocols. The flash memory controller 130 includes a processing unit 134, which may be implemented in a variety of ways, such as using general-purpose hardware (eg, a single processor, a multi-processor with parallel processing capabilities, a graphics processor, or other processor with computing capabilities), and When executing software and/or firmware instructions, the functions described later are provided. The processing unit 134 receives host commands through the host interface 131, such as read commands (Read Command), write commands (Write Command), erase commands (Erase Command), etc., and schedules and executes these commands. The flash memory controller 130 also includes a random access memory (Random Access Memory, RAM) 136, which can be implemented as a dynamic random access memory (Dynamic Random Access Memory, DRAM), a static random access memory (Static Random Access Memory, SRAM) or The combination of the above two is used to configure the space as a data buffer to store user data (also called host data) read from the host 110 and about to be written to the flash memory module 150, and read from the flash memory module 150 and about to be written. User data output to the host 110. The random access memory 136 can also store data needed during execution, such as variables, data tables, host-to-Flash (H2F Table), and flash-to-host comparison table (Flash-to-Host, H2F Table). F2H Table) etc. The flash memory interface 139 includes a NAND Flash Controller (NFC), which provides functions required to access the flash memory module 150, such as a command serializer (Command Sequencer) and a low density parity check (LDPC). wait.

在一些实施例中,处理单元134可服从eMMC的规范,例如于2019年1月发表的《EMBEDDED MULTI-MEDIA CARD(e·MMC),ELECTRICAL STANDARD(5.1)》的第6.6.12节,通过主机接口131从主机端110接收丢弃命令(Discard Command)。在另一些实施例中,处理单元134可服从UFS的规范,例如于2020年1月发表的UNIVERSAL FLASH STORAGE(UFS),Version3.1的第11.3.26节,通过主机接口131从主机端110接收解除映射命令(UNMAP Command)。如果解除映射命令中的单元描述符(Unit Descriptor)的参数”bProvisioningType”设为”02h”时,代表这是一个丢弃命令。主机端110可发送如上所述的主机丢弃命令给闪存控制器130,用以指出不再使用的使用者数据的逻辑地址,例如以主页面编号(Host PageNumber)、逻辑区块地址(Logical Block Address,LBA)等方式表示。不同于主机抹除命令,闪存控制器130于执行主机丢弃命令时,不需要将用以存储指定逻辑地址的数据的存储单元进行物理的抹除,只需要标记此逻辑地址的数据已经不存在。在合适的时候,闪存控制器130执行垃圾回收程序来搜集相应于标记的逻辑地址的物理存储单元并进行抹除。In some embodiments, the processing unit 134 may comply with the specifications of eMMC, such as Section 6.6.12 of "EMBEDDED MULTI-MEDIA CARD (e·MMC), ELECTRICAL STANDARD (5.1)" published in January 2019, through the host The interface 131 receives a discard command (Discard Command) from the host 110 . In other embodiments, the processing unit 134 may comply with UFS specifications, such as Section 11.3.26 of Version 3.1 of UNIVERSAL FLASH STORAGE (UFS) published in January 2020, and receive data from the host 110 through the host interface 131 Unmap command (UNMAP Command). If the parameter "bProvisioningType" of the unit descriptor (Unit Descriptor) in the unmapping command is set to "02h", it means that this is a discard command. The host 110 can send the host discard command as described above to the flash memory controller 130 to indicate the logical address of the user data that is no longer used, such as the host page number (Host PageNumber), logical block address (Logical Block Address). , LBA) and other methods. Different from the host erase command, when executing the host discard command, the flash memory controller 130 does not need to physically erase the memory unit used to store the data at the specified logical address, but only needs to mark that the data at the logical address no longer exists. When appropriate, the flash memory controller 130 executes a garbage collection program to collect physical memory cells corresponding to the marked logical addresses and erase them.

闪存控制器130中可配置总线架构(Bus Architecture)132,用于让组件之间彼此耦接以传递数据、地址、控制信号等,这些组件包含:主机接口131、处理单元134、RAM 136、直接存储器存取(Direct Memory Access,DMA)控制器138、闪存接口139等。于一些实施例中,主机接口131、处理单元134、RAM 136、DMA控制器138与闪存接口139可通过单一总线彼此耦接。于另一些实施例中,闪存控制器130中可配置高速总线,用于让处理单元134、DMA控制器138与RAM 136彼此耦接,并且配置低速总线,用于让处理单元134、DMA控制器138、主机接口131与闪存接口139彼此耦接。DMA控制器138可依据处理单元134的指令,通过总线架构132在组件间迁移数据,例如,将主机接口131或闪存接口139中特定数据缓存器(DataBuffer)的数据搬到RAM136中的特定地址,将RAM 136中特定地址的数据搬到将主机接口131或闪存接口139中的特定数据缓存器等。The configurable bus architecture (Bus Architecture) 132 in the flash memory controller 130 is used to couple components to each other to transmit data, addresses, control signals, etc. These components include: host interface 131, processing unit 134, RAM 136, direct Memory access (Direct Memory Access, DMA) controller 138, flash memory interface 139, etc. In some embodiments, the host interface 131, the processing unit 134, the RAM 136, the DMA controller 138, and the flash memory interface 139 may be coupled to each other through a single bus. In other embodiments, the flash memory controller 130 may be configured with a high-speed bus for coupling the processing unit 134, the DMA controller 138 and the RAM 136 to each other, and a low-speed bus may be configured for the processing unit 134, the DMA controller 138. The host interface 131 and the flash memory interface 139 are coupled to each other. The DMA controller 138 can migrate data between components through the bus architecture 132 according to the instructions of the processing unit 134, for example, move the data of a specific data buffer (DataBuffer) in the host interface 131 or the flash memory interface 139 to a specific address in the RAM 136, The data at a specific address in the RAM 136 is moved to a specific data buffer in the host interface 131 or the flash memory interface 139, etc.

总线包含并行的物理线,连接闪存控制器130中两个以上的元件。总线是一种共享的传输媒体,在任意的时间上,只能有两个装置可以使用这些线来彼此通信,用于传递数据。数据及控制信号能够在元件间分别沿数据和控制线进行双向传播,但另一方面,地址信号只能沿地址线进行单向传播。例如,当处理单元134想要读取RAM 136的特定地址上的数据时,处理单元134在地址线上传送此地址给RAM 136。接着,此地址的数据会在数据线上回复给处理单元134。为了完成数据读取操作,控制信号会使用控制线进行传递。The bus includes parallel physical lines that connect two or more components in the flash memory controller 130 . The bus is a shared transmission medium. At any time, only two devices can use these lines to communicate with each other and transfer data. Data and control signals can propagate in both directions between components along the data and control lines respectively, but on the other hand, address signals can only propagate in one direction along the address lines. For example, when processing unit 134 wants to read data at a specific address of RAM 136, processing unit 134 transmits this address to RAM 136 on the address line. Then, the data at this address will be returned to the processing unit 134 on the data line. In order to complete the data read operation, control signals are transmitted using control lines.

闪存模块150提供大量的存储空间,通常是数百个千兆字节(Gigabytes,GB),甚至是多个万亿字节(Terabytes,TB),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块150中包含控制电路以及存储器数组,存储器数组中的存储单元可在抹除后配置为单层式单元(Single Level Cells,SLCs)、多层式单元(Multiple Level Cells,MLCs)、三层式单元(Triple Level Cells,TLCs)、四层式单元(Quad-Level Cells,QLCs)或上述的任意组合。处理单元134通过闪存接口139写入用户数据到闪存模块150中的指定地址(目的地址),以及从闪存模块150中的指定地址(来源地址)读取用户数据。闪存接口139使用多个电子信号来协调闪存控制器130与闪存模块150间的数据与命令传递,包含数据线(DataLine)、时钟信号(Clock Signal)与控制信号(Control Signal)。数据线可用于传递命令、地址、读出及写入的数据;控制信号线可用于传递芯片启动(Chip Enable,CE)、地址提取启动(Address Latch Enable,ALE)、命令提取启动(Command Latch Enable,CLE)、写入启动(Write Enable,WE)等控制信号。The flash memory module 150 provides a large amount of storage space, usually hundreds of gigabytes (GB) or even multiple terabytes (TB), for storing large amounts of user data, such as high resolution Pictures, videos, etc. The flash memory module 150 includes a control circuit and a memory array. The memory cells in the memory array can be configured into single-level cells (Single Level Cells, SLCs), multi-level cells (Multiple Level Cells, MLCs), or three-level cells after erasure. Triple Level Cells (TLCs), Quad-Level Cells (QLCs) or any combination of the above. The processing unit 134 writes user data to a specified address (destination address) in the flash memory module 150 through the flash memory interface 139, and reads user data from the specified address (source address) in the flash memory module 150. The flash memory interface 139 uses multiple electronic signals to coordinate data and command transmission between the flash memory controller 130 and the flash memory module 150, including data lines (DataLine), clock signals (Clock Signal) and control signals (Control Signal). The data line can be used to transmit commands, addresses, read and write data; the control signal line can be used to transmit chip enable (Chip Enable, CE), address extraction enable (Address Latch Enable, ALE), command extraction enable (Command Latch Enable) , CLE), write enable (Write Enable, WE) and other control signals.

参考图2,闪存模块150中的接口151可包含四个输入输出通道(I/Ochannels,以下简称通道)CH#0至CH#3,每一个通道连接四个NAND闪存单元,例如,信道CH#0连接NAND闪存单元153#0、153#4、153#8及153#12,依此类推。每个NAND闪存单元可封装为独立的芯片(die)。闪存接口139可通过接口151发出启动信号CE#0至CE#3中的一个来启动NAND闪存单元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接着以并行的方式从启动的NAND闪存单元读取用户数据,或者写入用户数据至启动的NAND闪存单元。Referring to Figure 2, the interface 151 in the flash memory module 150 may include four input and output channels (I/O channels, hereinafter referred to as channels) CH#0 to CH#3, each channel is connected to four NAND flash memory cells, for example, channel CH# 0 connects NAND flash memory cells 153#0, 153#4, 153#8, and 153#12, and so on. Each NAND flash memory cell can be packaged as an independent chip (die). The flash memory interface 139 may send one of the activation signals CE#0 to CE#3 through the interface 151 to activate the NAND flash memory units 153#0 to 153#3, 153#4 to 153#7, 153#8 to 153#11, or 153#12 to 153#15, and then read user data from the activated NAND flash memory unit in a parallel manner, or write user data to the activated NAND flash memory unit.

在先前的一些实施方式中,闪存控制器130可在RAM 136中配置空间给丢弃队列(Discard Queue)。丢弃队列包含多个节点,而每个节点用于存储一个主机丢弃命令所指示的丢弃使用者数据的逻辑地址区间的信息。表1显示示例的丢弃队列:In some previous implementations, the flash memory controller 130 may configure space in the RAM 136 for a discard queue (Discard Queue). The discard queue contains multiple nodes, and each node is used to store information about the logical address range of the discarded user data indicated by the host discard command. Table 1 shows the discard queue for the example:

表1Table 1

节点编号Node number 开始地址start address 长度length 00 P#100P#100 3232 11 P#200P#200 44 22 P#300P#300 6464 33 P#500P#500 88

例如,每个节点存储一个丢弃命令所指示的开始主页面编号及长度。如上所述的第0至第3个示例节点包含如下的信息,先前接收到的4个丢弃命令分别指示将主页面P#100~P#131、P#200~P#203、P#300~P#363和P#500~P#507的使用者数据丢弃。然而,当处理单元134每次通过主机接口131从主机端110接收到主机读取命令时,都需要耗费运算资源搜索丢弃队列以判断主机读取命令所要读取的使用者数据是否已经丢弃。如果读取的使用者数据已经丢弃,则处理单元134通过主机接口131回复主机端110错误信息,或者是虚假值(Dummy Value)。当处理单元134每次通过主机接口131从主机端110接收到主机写入命令时,也需要耗费运算资源搜索丢弃队列以判断主机写入命令所要写入的使用者数据的逻辑地址是否落入之前已经丢弃的逻辑地址区间。For example, each node stores the starting master page number and length indicated by a discard command. As mentioned above, the 0th to 3rd example nodes contain the following information. The four previously received discard commands respectively indicate that the main pages P#100~P#131, P#200~P#203, and P#300~ The user data of P#363 and P#500~P#507 are discarded. However, each time the processing unit 134 receives a host read command from the host terminal 110 through the host interface 131, it needs to spend computing resources searching the discard queue to determine whether the user data to be read by the host read command has been discarded. If the read user data has been discarded, the processing unit 134 replies to the host 110 with an error message or a dummy value through the host interface 131 . When the processing unit 134 receives a host write command from the host 110 through the host interface 131 each time, it also needs to expend computing resources to search the discard queue to determine whether the logical address of the user data to be written by the host write command falls within the previous The logical address range that has been discarded.

为了降低处理单元134的负担以提升闪存控制器130的整体效能,闪存控制器130可在RAM 136中配置空间给扩展式丢弃表(Expanded Discard Table),并使用专用的性能引擎137来搜索扩展式丢弃表。扩展式丢弃表可包含1024个项目,每个项目记载已经丢弃的使用者数据的逻辑地址,或者空值(NULL value)。需要注意的是,本领域技术人员可依据系统的需要在RAM 136中配置更多或更少的空间来存储扩展式丢弃表,本发明并不限于在扩展式丢弃表只能包含1024个项目。表2显示示例的扩展式丢弃表:In order to reduce the load on the processing unit 134 and improve the overall performance of the flash memory controller 130, the flash memory controller 130 can allocate space in the RAM 136 for the expanded discard table (Expanded Discard Table), and use a dedicated performance engine 137 to search for the expanded discard table. Discard table. The extended discard table can contain 1024 entries, each entry recording the logical address of discarded user data, or a NULL value. It should be noted that those skilled in the art can configure more or less space in the RAM 136 to store the extended discard table according to system requirements. The present invention is not limited to the extended discard table containing only 1024 items. Table 2 shows an example extended drop table:

表2Table 2

对比于表1,概念上来说,表1中的第0个项目的信息可扩展成为表2中的第0个到第31个项目,分别记录主页面编号P#100到P#131;表1中的第1个项目的信息可扩展成为表2中的第32个到第35个项目,分别记录主页面编号P#200到P#203,依此类推。处理单元134在依据主机放弃命令中携带的信息新增项目到扩展式丢弃表时可进行排序,让逻辑地址能够以升幂或降幂的方式排列,以利专用的性能引擎137进行搜寻。Compared with Table 1, conceptually, the information of the 0th item in Table 1 can be expanded to the 0th to 31st items in Table 2, recording the main page numbers P#100 to P#131 respectively; Table 1 The information of the first item in Table 2 can be expanded to the 32nd to 35th items in Table 2, and the main page numbers P#200 to P#203 are recorded respectively, and so on. The processing unit 134 can perform sorting when adding items to the extended discard table based on the information carried in the host discard command, so that the logical addresses can be arranged in ascending or descending order to facilitate search by the dedicated performance engine 137 .

参考图3。性能引擎137可包含开始地址寄存器322和结束地址寄存器324,用于让处理单元134定义扩展式丢弃表在RAM 136中的地址区间。由于扩展式丢弃表所存储的项目数量是可变动的,因此每当更新完扩展式丢弃表的内容,处理单元134就要重新设定开始地址寄存器322和结束地址寄存器324,用于让搜索电路310能够在开始地址寄存器322和结束地址寄存器324所规范的RAM 136的地址区间进行搜索。例如,因应表2的内容,开始地址寄存器322存储存储器地址“ExpDiscardTable_start”,结束地址寄存器324存储ExpDiscardTable_star+107。性能引擎137可包含八个目标寄存器330#0~330#7,用于让处理单元134指示搜索电路310在扩展式丢弃表中搜索最多八个主页面编号。性能引擎137可包含八个结果寄存器350#0~350#7,用于让搜索电路310可分别存储对应于目标寄存器330#0~330#7的搜索结果。例如,结果寄存器350#0存储目标寄存器330#0所指示的主页面编号的搜索结果,结果寄存器350#1存储目标寄存器330#1所指示的主页面编号的搜索结果,依此类推。举例来说,结果寄存器可为16比特的寄存器,其中的第15比特存储是否命中的信息,如果命中时,第14至第0比特存储扩展式丢弃表中命中的项目编号。处理单元134可读取结果寄存器350#0~350#7中任意一个的值来获取相应目标寄存器中的主页面编号是否出现在扩展式丢弃表中的信息,以及,如果命中的话,此主页面编号存在扩展式丢弃表中的哪个项目。需要注意的是,本领域技术人员可依据系统的需要在性能引擎137中配置更多或更少对的目标寄存器和结果寄存器,本发明并不限于在性能引擎137中只能包含八对的目标寄存器和结果寄存器。所属技术领域人员可使用习知的电路来实作搜索电路310,用于让搜索电路310在扩展式丢弃表中完成线性搜索(Linear Search)、二元搜索(BinarySearch)、指数搜索(Exponential Search)、费波南西搜索(Fibonacci Search)等。Refer to Figure 3. The performance engine 137 may include a start address register 322 and an end address register 324 for allowing the processing unit 134 to define the address range of the extended discard table in the RAM 136 . Since the number of items stored in the extended discard table is variable, whenever the contents of the extended discard table are updated, the processing unit 134 will reset the start address register 322 and the end address register 324 to allow the search circuit to 310 can search within the address range of RAM 136 specified by the start address register 322 and the end address register 324 . For example, corresponding to the contents of Table 2, the start address register 322 stores the memory address "ExpDiscardTable_start", and the end address register 324 stores ExpDiscardTable_star+107. The performance engine 137 may include eight target registers 330#0˜330#7 for allowing the processing unit 134 to instruct the search circuit 310 to search up to eight primary page numbers in the extended discard table. The performance engine 137 may include eight result registers 350#0˜350#7, allowing the search circuit 310 to store search results corresponding to the target registers 330#0˜330#7 respectively. For example, result register 350#0 stores search results for the main page number indicated by target register 330#0, result register 350#1 stores search results for the main page number indicated by target register 330#1, and so on. For example, the result register may be a 16-bit register, in which the 15th bit stores the information of whether there is a hit. If there is a hit, the 14th to 0th bits store the hit item number in the extended discard table. The processing unit 134 can read the value of any one of the result registers 350#0˜350#7 to obtain the information whether the main page number in the corresponding target register appears in the extended discard table, and, if hit, the main page The item in the extended discard table where the number exists. It should be noted that those skilled in the art can configure more or fewer pairs of target registers and result registers in the performance engine 137 according to the needs of the system. The present invention is not limited to only eight pairs of target registers in the performance engine 137. registers and result registers. Those skilled in the art can use known circuits to implement the search circuit 310, so that the search circuit 310 can complete linear search (Linear Search), binary search (Binary Search), and exponential search (Exponential Search) in the extended discard table. , Fibonacci Search, etc.

在一些实施例中,处理单元134和性能引擎137之间可使用专用导线连接,用于让处理单元134通过专用导线设定开始地址寄存器322、结束地址寄存器324和目标寄存器330#0~330#7,并且从结果寄存器350#0~350#7读取搜索结果。In some embodiments, dedicated wires may be used to connect the processing unit 134 and the performance engine 137 to allow the processing unit 134 to set the start address register 322, the end address register 324, and the target registers 330#0˜330# through the dedicated wires. 7, and read the search results from the result registers 350#0~350#7.

在另一些实施例中,处理单元134可通过共享的总线架构132设定性能引擎137中的开始地址寄存器322、结束地址寄存器324和目标寄存器330#0~330#7,并且从性能引擎137中的结果寄存器350#0~350#7读取搜索结果。In other embodiments, the processing unit 134 can set the start address register 322, the end address register 324, and the target registers 330#0˜330#7 in the performance engine 137 through the shared bus architecture 132, and obtain the data from the performance engine 137. The result registers 350#0~350#7 read the search results.

在一些实施例中,性能引擎137和RAM 136之间可使用专用导线连接,用于让性能引擎137通过专用导线读取RAM 136中特定地址的值。In some embodiments, a dedicated wire may be used to connect the performance engine 137 and the RAM 136 to allow the performance engine 137 to read the value of a specific address in the RAM 136 through the dedicated wire.

在另一些实施例中,性能引擎137可通过共享的总线架构132和DAM控制器138读取RAM 136中特定地址的值。In other embodiments, performance engine 137 may read the value of a specific address in RAM 136 through shared bus architecture 132 and DAM controller 138 .

因应扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机丢弃命令的执行方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于处理从主机端110接收到的主机丢弃命令。参考图4,详细步骤说明如下:In response to the technical solution of the extended discard table and the performance engine 137, an embodiment of the present invention proposes a method for executing a host discard command, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method is executed repeatedly to process the host discard command received from the host end 110 . Referring to Figure 4, the detailed steps are as follows:

步骤S410:通过主机接口131从主机端110接收第一个(下一个)主机丢弃命令,主机丢弃命令用以指出不再使用的使用者数据的逻辑地址。Step S410: Receive the first (next) host discard command from the host terminal 110 through the host interface 131. The host discard command is used to indicate the logical address of the user data that is no longer used.

步骤S420:根据主机丢弃命令所指示的丢弃使用者数据的逻辑地址更新RAM 136中存储的扩展式丢弃表的内容。更新后的扩展式丢弃表的项目会依据逻辑地址做升幂或降幂的排序。Step S420: Update the contents of the extended discard table stored in the RAM 136 according to the logical address of discarded user data indicated by the host discard command. The items in the updated extended discard table will be sorted in ascending or descending order according to the logical address.

步骤S430:根据更新后的扩展式丢弃表设定性能引擎137中的开始地址寄存器322和结束地址寄存器324。Step S430: Set the start address register 322 and the end address register 324 in the performance engine 137 according to the updated extended discard table.

假设在一个循环中的步骤S420执行前,扩展式丢弃表如表2所示:在处理单元134接收到指示丢弃主页面P#400~P#403的使用者数据时(步骤S410),表2的扩展式丢弃表可更新成为下表3所示(步骤S420):Assume that before step S420 in a loop is executed, the extended discard table is as shown in Table 2: When the processing unit 134 receives user data instructing to discard the main pages P#400~P#403 (step S410), Table 2 The extended discard table can be updated as shown in Table 3 below (step S420):

表3table 3

接着,处理单元134将结束地址寄存器324设定为ExpDiscardTable_star+111(步骤S430)。Next, the processing unit 134 sets the end address register 324 to ExpDiscardTable_star+111 (step S430).

因应扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机写入命令执行后的扩展式丢弃表的更新方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于在每个主机写入命令执行后适应性地更新扩展式丢弃表。参考图5,详细步骤说明如下:In response to the technical solutions of the extended discard table and the performance engine 137, embodiments of the present invention propose a method for updating the extended discard table after the host write command is executed, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. . This method is executed iteratively to adaptively update the extended discard table after each host write command. Referring to Figure 5, the detailed steps are as follows:

步骤S510:执行第一个(下一个)主机写入命令,用于将指定逻辑地址的使用者数据通过闪存接口139写入闪存模块150。Step S510: Execute the first (next) host write command, which is used to write the user data at the specified logical address into the flash memory module 150 through the flash memory interface 139.

步骤S520:判断写入使用者数据的逻辑地址是否出现在扩展式丢弃表中。如果是,则流程继续进行步骤S530的处理;否则,流程继续进行步骤S510的处理。处理单元134可将逻辑地址设定到性能引擎137中的目标寄存器330#0~330#7,并且驱动性能引擎137搜索扩展式丢弃表以判断这些逻辑地址是否出现在扩展式丢弃表中。需要注意的是,处理单元134设定目标寄存器330#0~330#7和驱动性能引擎137后,就可以接着处理其他的任务。一段默认的时间后,处理单元134检查性能引擎137中的结果寄存器350#0~350#7以判断这些逻辑地址是否出现在扩展式丢弃表中。当所有的逻辑地址都判断完成后,处理单元134才继续进行下个步骤的处理。Step S520: Determine whether the logical address where the user data is written appears in the extended discard table. If yes, the process continues to the process of step S530; otherwise, the process continues to the process of step S510. The processing unit 134 may set the logical addresses to the target registers 330#0˜330#7 in the performance engine 137, and drive the performance engine 137 to search the extended discard table to determine whether these logical addresses appear in the extended discard table. It should be noted that after the processing unit 134 sets the target registers 330#0˜330#7 and the driver performance engine 137, it can continue to process other tasks. After a default period of time, the processing unit 134 checks the result registers 350#0˜350#7 in the performance engine 137 to determine whether these logical addresses appear in the extended discard table. After all logical addresses have been judged, the processing unit 134 continues the processing of the next step.

步骤S530:删除出现在扩展式丢弃表中的逻辑地址的相应项目。Step S530: Delete the corresponding entry of the logical address appearing in the extended discard table.

步骤S540:根据更新后的扩展式丢弃表设定性能引擎137中的结束地址寄存器324。Step S540: Set the end address register 324 in the performance engine 137 according to the updated extended discard table.

假设在一个循环中的步骤S510执行前,扩展式丢弃表如表2所示:在处理单元134执行完主页面P#200~P#203的使用者数据的主机写入命令时(步骤S510),处理单元134将逻辑地址P#200~P#203设定到性能引擎137中的目标寄存器330#0~330#3,并且驱动性能引擎137搜索扩展式丢弃表以判断这些逻辑地址是否出现在扩展式丢弃表中(步骤S520)。当发现逻辑地址P#200~P#203都出现在扩展式丢弃表时(步骤S520中“是”的路径),处理单元134可更新扩展式丢弃表成为下表4所示(步骤S530):Assume that before step S510 in a loop is executed, the extended discard table is as shown in Table 2: when the processing unit 134 completes executing the host write command of the user data of the main pages P#200 to P#203 (step S510) , the processing unit 134 sets the logical addresses P#200~P#203 to the target registers 330#0~330#3 in the performance engine 137, and drives the performance engine 137 to search the extended discard table to determine whether these logical addresses appear in in the extended discard table (step S520). When it is found that the logical addresses P#200˜P#203 all appear in the extended discard table (“Yes” path in step S520), the processing unit 134 may update the extended discard table to be as shown in Table 4 below (step S530):

表4Table 4

接着,处理单元134将结束地址寄存器324设定为ExpDiscardTable_star+103(步骤S540)。Next, the processing unit 134 sets the end address register 324 to ExpDiscardTable_star+103 (step S540).

因应扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机读取命令的执行方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于在每个主机读取命令执行时根据扩展式丢弃表的内容选择性地回复虚假数据或者真实的使用者数据给主机端110。参考图6,详细步骤说明如下:In response to the technical solution of the extended discard table and the performance engine 137, an embodiment of the present invention proposes a host read command execution method, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method is executed repeatedly, and is used to selectively reply false data or real user data to the host 110 according to the contents of the extended discard table when each host read command is executed. Referring to Figure 6, the detailed steps are as follows:

步骤S610:提取第一个(下一个)主机写入命令,指示闪存控制器130读取指定逻辑地址的使用者数据。Step S610: Extract the first (next) host write command to instruct the flash memory controller 130 to read the user data at the specified logical address.

步骤S620:判断欲读取的使用者数据的任何逻辑地址是否出现在扩展式丢弃表中。如果是,则流程继续进行步骤S630的处理;否则,流程继续进行步骤S640的处理。处理单元134可将逻辑地址设定到性能引擎137中的目标寄存器330#0~330#7,并且驱动性能引擎137搜索扩展式丢弃表以判断这些逻辑地址是否出现在扩展式丢弃表中。需要注意的是,处理单元134设定目标寄存器330#0~330#7和驱动性能引擎137后,就可以接着处理其他的任务。一段默认的时间后,处理单元134检查性能引擎137中的结果寄存器350#0~350#7以判断这些逻辑地址是否出现在扩展式丢弃表中。当所有的逻辑地址都判断完成后,处理单元134才继续进行下个步骤的处理。Step S620: Determine whether any logical address of the user data to be read appears in the extended discard table. If yes, the process continues to the process of step S630; otherwise, the process continues to the process of step S640. The processing unit 134 may set the logical addresses to the target registers 330#0˜330#7 in the performance engine 137, and drive the performance engine 137 to search the extended discard table to determine whether these logical addresses appear in the extended discard table. It should be noted that after the processing unit 134 sets the target registers 330#0˜330#7 and the driver performance engine 137, it can continue to process other tasks. After a default period of time, the processing unit 134 checks the result registers 350#0˜350#7 in the performance engine 137 to determine whether these logical addresses appear in the extended discard table. After all logical addresses have been judged, the processing unit 134 continues the processing of the next step.

步骤S632:对于出现在扩展式丢弃表中的逻辑地址,驱动主机接口131回复虚假值给主机端110。Step S632: For the logical address appearing in the extended discard table, drive the host interface 131 to reply a false value to the host 110.

步骤S634:驱动闪存接口139从闪存模块150读取其他没有出现在扩展式丢弃表中的逻辑地址的使用者数据,并且驱动主机接口131回复读出的使用者数据给主机端110。Step S634: Drive the flash memory interface 139 to read user data of other logical addresses that do not appear in the extended discard table from the flash memory module 150, and drive the host interface 131 to reply the read user data to the host end 110.

步骤S640:驱动闪存接口139从闪存模块150读取指定逻辑地址的使用者数据,并且驱动主机接口131回复读出的使用者数据给主机端110。Step S640: drive the flash memory interface 139 to read the user data at the specified logical address from the flash memory module 150, and drive the host interface 131 to reply the read user data to the host end 110.

在一些实施例中,闪存控制器130可在RAM 136中配置空间给扩展式丢弃表和丢弃队列。如果一个主机丢弃命令所指示的丢弃使用者数据的逻辑地址长度超过或者等于指定数目时(例如,超过或者等于32时),将主机丢弃命令中携带的信息存储在丢弃队列中的一个节点。如果一个主机丢弃命令所指示的丢弃使用者数据的逻辑地址长度低于指定数目时,将主机丢弃命令中携带的信息存储在扩展式丢弃表中的一个或者多个连续项目。例如,当先前接收到的4个丢弃命令分别指示将主页面P#100~P#131、P#200~P#203、P#300~P#363和P#500~P#507的使用者数据丢弃时,这4个丢弃命令所指示的信息会记录在如下表5所示的丢弃队列和如下表6所示的扩展式丢弃表:In some embodiments, flash controller 130 may configure space in RAM 136 for the extended discard table and discard queue. If the logical address length of discarded user data indicated by a host discard command exceeds or is equal to a specified number (for example, exceeds or is equal to 32), the information carried in the host discard command is stored in a node in the discard queue. If the logical address length of discarded user data indicated by a host discard command is less than the specified number, the information carried in the host discard command is stored in one or more consecutive entries in the extended discard table. For example, when the four previously received discard commands respectively indicate that the users of the main pages P#100~P#131, P#200~P#203, P#300~P#363 and P#500~P#507 When data is discarded, the information indicated by these four discard commands will be recorded in the discard queue shown in Table 5 below and the extended discard table shown in Table 6 below:

表5table 5

节点编号Node number 开始地址start address 长度length 00 P#100P#100 3232 11 P#300P#300 6464

表6Table 6

因应丢弃队列、扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机丢弃命令的执行方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于处理从主机端110接收到的主机丢弃命令。参考图7,其和图4的不同在于图7在步骤S410之后插入步骤S710的判断,并且在判断成立后加上步骤S720的处理,详细说明如下:In response to the technical solutions of the discard queue, the extended discard table and the performance engine 137, an embodiment of the present invention proposes a method for executing a host discard command, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method is executed repeatedly to process the host discard command received from the host end 110 . Referring to Figure 7, the difference from Figure 4 is that Figure 7 inserts the judgment of step S710 after step S410, and adds the processing of step S720 after the judgment is established. The detailed description is as follows:

步骤S710:判断主机丢弃命令所指示丢弃的使用者数据的逻辑地址长度是否超过或者等于指定数目(例如,32)。如果是,则流程继续进行步骤S720的处理;否则,流程继续进行步骤S420的处理。Step S710: Determine whether the logical address length of the user data discarded as instructed by the host discard command exceeds or is equal to a specified number (for example, 32). If yes, the process continues to the process of step S720; otherwise, the process continues to the process of step S420.

步骤S720:根据主机丢弃命令所指示的丢弃使用者数据的逻辑地址更新RAM 136中存储的丢弃队列的内容。Step S720: Update the contents of the discard queue stored in the RAM 136 according to the logical address of the discarded user data indicated by the host discard command.

图7中的步骤S410至S430的技术细节可参考图4的相应说明,为求简明不再赘述。For technical details of steps S410 to S430 in Figure 7 , reference can be made to the corresponding description in Figure 4 , and will not be described again for the sake of simplicity.

因应丢弃队列、扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机写入命令执行后的丢弃队列和扩展式丢弃表的更新方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于在每个主机写入命令执行后适应性地更新丢弃队列和扩展式丢弃表。参考图8,其和图5的不同在于,图8在步骤S510之后新增了步骤S810的判断,并且在判断成立后加上步骤S820的处理。详细说明如下:In response to the technical solutions of the discard queue, the extended discard table and the performance engine 137, the embodiment of the present invention proposes a method for updating the discard queue and the extended discard table after the host write command is executed, and the processing unit 134 loads and executes the relevant Firmware or software instructions are implemented. This method is executed iteratively to adaptively update the drop queue and extended drop table after each host write command is executed. Referring to Figure 8, the difference from Figure 5 is that Figure 8 adds a new judgment of step S810 after step S510, and adds the processing of step S820 after the judgment is established. The details are as follows:

步骤S810:判断写入使用者数据的逻辑地址是否出现在丢弃队列中。如果是,则流程继续进行步骤S820的处理;否则,流程继续进行步骤S510的处理。Step S810: Determine whether the logical address to which user data is written appears in the discard queue. If yes, the process continues to the process of step S820; otherwise, the process continues to the process of step S510.

步骤S820:更新丢弃队列中的内容已反映主机写入命令执行结果。假设在一个循环中的步骤S510执行前,丢弃队列如表5所示:在处理单元134执行完主页面P#100~P#131的使用者数据的主机写入命令时(步骤S510),处理单元134可删除丢弃队列中的第0个节点而成为下表7所示(步骤S820):Step S820: Update the content in the discard queue to reflect the execution result of the host write command. Assume that before step S510 in a loop is executed, the discard queue is as shown in Table 5: When the processing unit 134 completes executing the host write command of the user data of the main pages P#100 to P#131 (step S510), the processing Unit 134 may delete the 0th node in the discard queue to become as shown in Table 7 below (step S820):

表7Table 7

节点编号Node number 开始地址start address 长度length 00 P#300P#300 6464

图8中的步骤S510、S530至S430的技术细节可参考图5的相应说明,为求简明不再赘述。在这里需要注意的是,在性能引擎137的协助下,步骤S520至S540的操作可与步骤S810至S820的操作并行执行。For the technical details of steps S510, S530 to S430 in Figure 8, please refer to the corresponding description in Figure 5, and will not be described again for the sake of simplicity. It should be noted here that, with the assistance of the performance engine 137, the operations of steps S520 to S540 may be performed in parallel with the operations of steps S810 to S820.

因应丢弃队列、扩展式丢弃表和性能引擎137的技术方案,本发明实施例提出一种主机读取命令的执行方法,由处理单元134载入和执行相关固件或软件指令时实施。此方法反复执行,用于在每个主机读取命令执行时根据丢弃队列和扩展式丢弃表的内容选择性地回复虚假数据或者真实的使用者数据给主机端110。参考图9,其和图6的不同在于其分别以步骤S910、S922、S924取代图6的步骤S620、S632、S634,详细说明如下:In response to the technical solutions of the discard queue, the extended discard table and the performance engine 137, an embodiment of the present invention proposes a host read command execution method, which is implemented when the processing unit 134 loads and executes relevant firmware or software instructions. This method is executed repeatedly and is used to selectively reply false data or real user data to the host 110 according to the contents of the discard queue and the extended discard table when each host read command is executed. Referring to Figure 9, the difference between it and Figure 6 is that steps S620, S632, and S634 of Figure 6 are replaced by steps S910, S922, and S924 respectively. The detailed description is as follows:

步骤S910:判断欲读取的使用者数据的逻辑地址是否出现在扩展式丢弃表和丢弃队列的至少一者之中。如果是,则流程继续进行步骤S922的处理;否则,流程继续进行步骤S640的处理。处理单元134可将逻辑地址设定到性能引擎137中的目标寄存器330#0~330#7,并且驱动性能引擎137搜索扩展式丢弃表以判断这些逻辑地址是否出现在扩展式丢弃表中。需要注意的是,处理单元134设定目标寄存器330#0~330#7和驱动性能引擎137后,就可以接着搜索丢弃队列,用于判断这些逻辑地址是否出现在丢弃队列中。一段默认的时间后,处理单元134检查性能引擎137中的结果寄存器350#0~350#7以判断这些逻辑地址是否出现在扩展式丢弃表中。当所有的逻辑地址都判断完成后,处理单元134才继续进行下个步骤的处理。Step S910: Determine whether the logical address of the user data to be read appears in at least one of the extended discard table and the discard queue. If yes, the flow continues to the processing of step S922; otherwise, the flow continues to the processing of step S640. The processing unit 134 may set the logical addresses to the target registers 330#0˜330#7 in the performance engine 137, and drive the performance engine 137 to search the extended discard table to determine whether these logical addresses appear in the extended discard table. It should be noted that after the processing unit 134 sets the target registers 330#0˜330#7 and the driver performance engine 137, it can then search the discard queue to determine whether these logical addresses appear in the discard queue. After a default period of time, the processing unit 134 checks the result registers 350#0˜350#7 in the performance engine 137 to determine whether these logical addresses appear in the extended discard table. After all logical addresses have been judged, the processing unit 134 continues the processing of the next step.

步骤S922:对于出现在扩展式丢弃表或者丢弃队列中的每个逻辑地址,驱动主机接口131回复虚假值给主机端110。Step S922: For each logical address appearing in the extended discard table or discard queue, drive the host interface 131 to reply a false value to the host end 110.

步骤S924:驱动闪存接口139从闪存模块150读取其他没有出现在扩展式丢弃表和丢弃队列中的逻辑地址的使用者数据,并且驱动主机接口131回复读出的使用者数据给主机端110。Step S924: Drive the flash memory interface 139 to read user data of other logical addresses that do not appear in the extended discard table and discard queue from the flash memory module 150, and drive the host interface 131 to reply the read user data to the host end 110.

本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如存储装置中的固件转换层(Firmware Translation Layer,FTL)、特定硬件的驱动程序等。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。All or part of the steps in the method of the present invention can be implemented by a computer program, such as a firmware translation layer (FTL) in a storage device, a driver for specific hardware, etc. In addition, it can also be implemented in other types of programs as shown above. Those skilled in the art can write the methods of the embodiments of the present invention into program codes, which will not be described again for the sake of simplicity. The computer program implemented according to the method of the embodiment of the present invention can be stored in an appropriate computer-readable storage medium, such as DVD, CD-ROM, U disk, hard disk, or can be placed through a network (for example, the Internet, or other appropriate media ) to access the network server.

虽然图1至图3中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图4至图9的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,本领域技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。Although the above-described components are included in FIGS. 1 to 3 , it does not rule out the use of more other additional components to achieve better technical effects without violating the spirit of the invention. In addition, although the flowcharts of Figures 4 to 9 are executed in a specified order, those skilled in the art can modify the order of these steps without violating the spirit of the invention and achieving the same effect, so , the present invention is not limited to using only the sequence described above. In addition, those skilled in the art can also integrate several steps into one step, or in addition to these steps, perform more steps sequentially or in parallel, and the present invention should not be limited thereby.

以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。The above are only preferred embodiments of the present invention, but they are not intended to limit the scope of the present invention. Any person skilled in the art can make further improvements and modifications on this basis without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the scope defined by the claims of this application.

Claims (15)

1. A data access method according to a host discard command, executed by a processing unit, the data access method according to a host discard command comprising:
configuring a space in a random access memory to an extended discard table, wherein the extended discard table comprises a plurality of items, and each item records a logic address of user data which is discarded;
receiving a host discard command from a host, wherein the host discard command indicates a first logical address of user data that is no longer used;
newly adding a new item containing the first logical address to the extended discard table; and
setting a start address register and an end address register in a performance engine for redefining an address range of the extended discard table stored in the random access memory such that the performance engine searches the extended discard table through the address range in the random access memory to determine whether user data of a specific logical address has been no longer used.
2. The method of claim 1, wherein a plurality of the entries of the extended discard table are arranged in an ascending or descending manner according to the logical address.
3. The data access method in response to a host discard command as recited in claim 1, comprising:
executing a host write command to write user data of the second logical address to the flash memory module; and
when the second logical address appears in the extended discard table, deleting an entry containing the second logical address from the extended discard table, and setting the end address register in the performance engine according to the updated content of the extended discard table for redefining an address range of the extended discard table stored in the random access memory.
4. The data access method in response to a host discard command as recited in claim 1, comprising:
receiving a host read command from a host, wherein the host read command indicates to read user data of a third logical address; and
and replying false data to the host side when the third logical address appears in the extended discard table.
5. The data access method in response to a host discard command as recited in claim 1, comprising:
configuring space in a random access memory to a discard queue, wherein the discard queue comprises a plurality of nodes, and each node is used for storing a logic address interval of discarded user data;
determining whether the number of the first logical addresses of the user data that are no longer used, indicated by the host discard command, exceeds or is equal to a specified number;
when the number of the first logical addresses exceeds or equals the specified number, newly adding a new entry containing the first logical address to the extended discard table, and setting the start address register and the end address register in the performance engine for redefining an address range of the extended discard table stored in the random access memory; and
when the number of the first logical addresses is lower than the specified number, a new node containing the first logical addresses is newly added to the discard queue.
6. The method for accessing data in response to a host discard command as recited in claim 5, comprising:
executing a host write command sent by the host side, wherein the host write command indicates to write user data of a fourth logical address into the flash memory module;
deleting a corresponding entry of the fourth logical address from the extended discard table when the fourth logical address appears in the extended discard table, and setting the end address register in the performance engine according to the updated contents of the extended discard table for defining a new address range in the random access memory; and
when the fourth logical address appears in the discard queue, updating contents in the discard queue to reflect the execution result of the host write command.
7. The method for accessing data in response to a host discard command as recited in claim 5, comprising:
receiving a host read command from a host, wherein the host read command indicates to read user data of a fifth logical address; and
and replying false data to the host side when the fifth logical address appears in the extended discard table or the discard queue.
8. A computer readable storage medium for storing a computer program executable by a processing unit, wherein the computer program when executed by the processing unit implements the data access method according to any one of claims 1 to 7 in response to a host discard command.
9. A data access apparatus responsive to a host discard command, comprising:
a random access memory for configuring a space to an extended discard table, wherein the extended discard table contains a plurality of entries, each of the entries recording a logical address of user data that has been discarded;
a performance engine including a start address register and an end address register for defining an address range in the random access memory in which the extended discard table is stored; and
a processing unit coupled to the random access memory and the performance engine for receiving a host discard command from a host, wherein the host discard command indicates a first logical address of user data that is no longer used; newly adding a new item containing the first logical address to the extended discard table; and setting the start address register and the end address register in the performance engine to redefine an address range of the extended discard table stored in the random access memory such that the performance engine searches the extended discard table through the address range in the random access memory to determine whether user data for a particular logical address has been no longer used.
10. The data access apparatus in response to a host discard command as recited in claim 9, wherein a plurality of the entries of the extended discard table are arranged in an ascending or descending manner depending on the logical address.
11. The data access device of claim 9, wherein the processing unit executes a host write command to write user data of the second logical address to the flash memory module; and deleting an entry containing the second logical address from the extended discard table when the second logical address is present in the extended discard table, and setting the end address register in the performance engine according to the updated contents of the extended discard table for redefining an address range of the extended discard table stored in the random access memory.
12. The data access device of claim 9, wherein the processing unit receives a host read command from a host, wherein the host read command indicates user data to read a third logical address; and replying false data to the host side when the third logical address appears in the extended discard table.
13. The data access apparatus according to claim 9, wherein the data access apparatus is configured to,
the random access memory configures a space for a discard queue, wherein the discard queue comprises a plurality of nodes, each node is used for storing a logic address interval of discarded user data,
the processing unit judges whether the number of the first logical addresses of the user data which are not used any more and indicated by the host discard command exceeds or is equal to a specified number; when the number of the first logical addresses exceeds or equals the specified number, newly adding a new entry containing the first logical address to the extended discard table, and setting the start address register and the end address register in the performance engine for redefining an address range of the extended discard table stored in the random access memory; and when the number of the first logical addresses is lower than the specified number, adding a new node containing the first logical addresses to the discard queue.
14. The data access device according to claim 13, wherein the processing unit executes a host write command sent from the host side, wherein the host write command indicates to write user data of a fourth logical address to the flash memory module; deleting a corresponding entry of the fourth logical address from the extended discard table when the fourth logical address appears in the extended discard table, and setting the end address register in the performance engine according to the updated contents of the extended discard table for defining a new address range in the random access memory; and updating contents of the discard queue to reflect an execution result of the host write command when the fourth logical address appears in the discard queue.
15. The data access device of claim 13, wherein the processing unit receives a host read command from a host, wherein the host read command indicates user data to read a fifth logical address; and replying false data to the host side when the fifth logical address appears in the extended discard table or the discard queue.
CN202210335258.1A 2022-03-31 2022-03-31 Data access method and storage medium and apparatus for responding to host discard command Pending CN116931812A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210335258.1A CN116931812A (en) 2022-03-31 2022-03-31 Data access method and storage medium and apparatus for responding to host discard command
US18/110,747 US12105622B2 (en) 2022-03-31 2023-02-16 Method and non-transitory computer-readable storage medium and apparatus for data access in response to host discard commands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210335258.1A CN116931812A (en) 2022-03-31 2022-03-31 Data access method and storage medium and apparatus for responding to host discard command

Publications (1)

Publication Number Publication Date
CN116931812A true CN116931812A (en) 2023-10-24

Family

ID=88194428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210335258.1A Pending CN116931812A (en) 2022-03-31 2022-03-31 Data access method and storage medium and apparatus for responding to host discard command

Country Status (2)

Country Link
US (1) US12105622B2 (en)
CN (1) CN116931812A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118708127A (en) * 2024-08-28 2024-09-27 山东云海国创云计算装备产业创新中心有限公司 Data block erasing method and device, storage medium, and electronic device
CN119149109A (en) * 2024-11-12 2024-12-17 杭州暖芯迦电子科技有限公司 Register expansion method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120386661B (en) * 2025-06-26 2025-08-22 苏州元脑智能科技有限公司 Fault equipment positioning method, computer equipment, storage medium and product

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235915B (en) 2003-03-13 2005-07-11 Ritek Corp Device and method for recording the status of block of a nonvolatile memory
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
JP5405513B2 (en) 2011-03-22 2014-02-05 株式会社東芝 MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD, AND PROGRAM
US9323667B2 (en) 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
US9558112B1 (en) * 2012-05-08 2017-01-31 Google Inc. Data management in a data storage device
US10282097B2 (en) * 2017-01-05 2019-05-07 Western Digital Technologies, Inc. Storage system and method for thin provisioning
TWI639920B (en) 2017-11-17 2018-11-01 財團法人工業技術研究院 Memory controller, control method for the memory controller, memory and control method for the memory
TWI692690B (en) * 2017-12-05 2020-05-01 慧榮科技股份有限公司 Method for accessing flash memory module and associated flash memory controller and electronic device
KR102656172B1 (en) * 2018-03-28 2024-04-12 삼성전자주식회사 Storage device for mapping virtual streams and physical streams and method thereof
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118708127A (en) * 2024-08-28 2024-09-27 山东云海国创云计算装备产业创新中心有限公司 Data block erasing method and device, storage medium, and electronic device
CN119149109A (en) * 2024-11-12 2024-12-17 杭州暖芯迦电子科技有限公司 Register expansion method

Also Published As

Publication number Publication date
US20230315622A1 (en) 2023-10-05
US12105622B2 (en) 2024-10-01

Similar Documents

Publication Publication Date Title
TWI660346B (en) Memory management method and storage controller
CN105893275A (en) Method for caching and reading data to be written into storage unit and device using method
CN113448487B (en) Computer-readable storage medium, method and device for writing flash memory management table
CN116931812A (en) Data access method and storage medium and apparatus for responding to host discard command
CN107818808B (en) Data writing method, memory control circuit unit and memory storage device
CN115113799B (en) Host command execution method and device
CN113778317B (en) Computer readable storage medium, method and device for scheduling host commands
CN108628754A (en) General and garbage collection data access method and device using same
CN108628543A (en) Garbage collection method and device using same
TWI749490B (en) Computer program product and method and apparatus for programming flash administration tables
CN113495850B (en) Method, apparatus and computer readable storage medium for managing garbage collection program
US12411804B2 (en) Data compaction method and device
CN114625307A (en) Computer readable storage medium, and data reading method and device of flash memory chip
CN116149540B (en) Method for updating host and flash memory address comparison table, computer readable storage medium and device
CN115878023B (en) Method and device for writing data into flash memory
TWI810876B (en) Method and computer program product and apparatus for data access in response to host discard commands
US12373104B2 (en) Method and device for data storage
TWI805505B (en) Method and computer program product and apparatus for scheduling and executing host data-update commands
KR20240110440A (en) Storage device and operating method thereof
TWI835027B (en) Method and computer program product and apparatus for updating host-to-flash address mapping table
CN117120985A (en) Persistent logging based on the NVM host controller interface specification for storage device applications
TWI758745B (en) Computer program product and method and apparatus for scheduling executions of host commands
TWI880786B (en) Method and computer program product and apparatus for accelerating execution of host read commands
TWI740446B (en) Computer program product and method and apparatus for managing garbage collection (gc) processes
TW202601395A (en) Method and computer program product and apparatus for accelerating execution of host read commands

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination