CN111399750B - 闪存数据写入方法及计算机可读取存储介质 - Google Patents

闪存数据写入方法及计算机可读取存储介质 Download PDF

Info

Publication number
CN111399750B
CN111399750B CN201910220318.3A CN201910220318A CN111399750B CN 111399750 B CN111399750 B CN 111399750B CN 201910220318 A CN201910220318 A CN 201910220318A CN 111399750 B CN111399750 B CN 111399750B
Authority
CN
China
Prior art keywords
host write
host
queue
write instruction
user data
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.)
Active
Application number
CN201910220318.3A
Other languages
English (en)
Other versions
CN111399750A (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 US16/445,702 priority Critical patent/US11288185B2/en
Publication of CN111399750A publication Critical patent/CN111399750A/zh
Priority to US17/667,801 priority patent/US11960396B2/en
Application granted granted Critical
Publication of CN111399750B publication Critical patent/CN111399750B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种闪存的数据写入方法,由处理单元执行,包含:在执行一部分的逻辑‑物理对照表更新或垃圾回收程序前,判断递交队列中是否存在需要立即处理的主机写指令;以及当存在需要立即处理的该主机写指令时,先以一个批次执行该主机写指令,接着再执行该部分的逻辑‑物理对照表更新或垃圾回收程序。

Description

闪存数据写入方法及计算机可读取存储介质
技术领域
本发明涉及存储装置,尤指一种闪存的数据写入方法及计算机可读取存储介质。
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,主装置(Host)可在地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储在该地址上的数据。相反地,NAND闪存并非随机存取,而是序列存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,主装置反而需要写入序列的字节(Bytes)的值到NAND闪存中,用以定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
数据写入的延迟时间(Latency)是服务质量(Quality of Service QoS)的重要测项之一。此测试可先用4K的数据随机写入存储单元数小时,让存储单元处于脏乱模式(Dirty Mode),再用QD1/QD128的指令深度随机写入4K的数据180秒,并测量延迟时间。由于存储单元处于脏乱模式时,NAND闪存还需要安排时间写入静态随机存取存储器或动态随机存取存储器中的更新后逻辑-物理对照表(Host-Flash H2F Table)至存储单元,用以减少突然断电(Sudden Power Off SPO)后执行突然断电恢复(SPO Recovery SPOR)的时间。此外,NAND闪存于脏乱模式时还需要安排时间执行垃圾回收(Garbage Collection GC)操作,避免存储单元因空间不足而无法写入用户数据。本发明提出一种闪存的数据写入方法及计算器程序产品,用于当存储单元处于脏乱模式时还可以满足延迟时间的测项要求。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提出一种闪存的数据写入方法,该方法由处理单元在加载并执行软件或固件模块的程序码时实施,包含:在执行一部分的逻辑-物理对照表更新或垃圾回收程序前,判断递交队列中是否存在需要立即处理的主机写指令;以及当存在需要立即处理的该主机写指令时,先以一个批次执行该主机写指令,接着再执行该部分的逻辑-物理对照表更新或垃圾回收程序。
本发明另提出一种闪存数据写入的计算机可读取存储介质,用于存储能够被处理单元执行的计算机程序,该计算机程序被该处理单元执行时实现以下步骤:在执行一部分的逻辑-物理对照表更新或垃圾回收程序前,判断递交队列中是否存在需要立即处理的主机写指令;以及当存在需要立即处理的该主机写指令时,先以一个批次执行该主机写指令,接着再执行该部分的逻辑-物理对照表更新或垃圾回收程序。
上述实施例的优点之一,通过如上所述的判断,可避免因逻辑-物理对照表更新或垃圾回收程序的执行而造成递交队列中的部分主机写指令的等待时间过长。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的闪存存储器的***架构示意图。
图2为闪存接口与LUN的连接示意图。
图3为指令队列的示意图。
图4为闪存转换层(Flash Translation Layer FTL)架构的示意图。
图5为一些实施方式的数据写入方法的流程图。
图6为依据本发明实施例的主机写指令的处理方法流程图。
图7为依据本发明实施例的主机写指令的到达及处理示意图。
图8为依据本发明实施例的逻辑-物理对照表(Host-Flash H2F Table)的更新方法流程图。
图9为物理存储对照示意图。
图10为依据本发明实施例的垃圾回收(Garbage Collection GC)程序的执行方法流程图。
【附图标记列表】
100 电子装置
110 主装置
120、131 随机存取存储器
130 存储装置
132 主机接口
133 处理单元
135 闪存控制器
137 闪存接口
139 LUN
139#0~139#11 LUN
CH#0~CH#3 输出输入通道
CE#0~CE#2 使能信号
310 递交队列
330 完成队列
CQH、CQT、SQH、SQT 指针
410、430、450、470 软件或固件模块
S510~S590、S611~S635、S810~S870、S1010~S1070 方法步骤
70 一个批次的主机写指令的执行
70a 开始运行时间点
70b、T0、T1、T2、T3 结束运行时间点
W0~W12 主机写指令
910 H2F表
930 物理地址信息
930-0 (物理)区块编号
930-1 (物理)页面编号及偏移量
930-2 (物理)平面编号
930-3 逻辑单元编号
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
参考图1。电子装置100包含主装置110、随机存取存储器(Random Access MemoryRAM)120及存储装置130。主装置110操作时可依据其需求而建立队列(Queue)。电子装置100例如是个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品。随机存取存储器120中的特定部分可配置作为数据缓冲器及队列等。存储装置130可包含处理单元133,也可以还包括随机存取存储器131以提高存储装置130的效能。处理单元133可通过主机接口(Host Interface)132从主装置110接收命令,并据此指示闪存控制器135执行数据读取、写入、抹除等操作。主装置110及处理单元133间可采用通用闪存存储(Universal Flash Storage UFS)、快速非易失存储器(Non-Volatile MemoryExpress NVMe)、通用序列总线(Universal Serial Bus USB)、先进技术附件(advancedtechnology attachment ATA)、序列先进技术附件(serial advanced technologyattachment SATA)、快速周边组件互联(peripheral component interconnect expressPCI-E)等通信协议以进行通信。主装置110及处理单元133中的任一个可使用多种方式实施,如使用通用硬件(例如,单处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行软件和/或固件指令时,提供之后描述的功能。随机存取存储器120及131可存储执行过程中需要的数据,例如,变量、数据表等。
逻辑单元号(Logical Unit Number LUN)139提供大量的存储空间,通常是数百Gigabytes,甚至是Terabytes,可用于存储大量的用户数据,例如高分辨率图片、影片等。LUN139中包含控制电路以及存储器数组(Memory Array),存储器数组中的存储单元(Memory Cells)可为三层式单元(Triple Level Cells,TLCs)或四层式单元(Quad-LevelCells QLCs)。随机存取存储器131可用于缓存主装置110即将写入LUN139的用户数据,从LUN139读取并即将敲出给主装置110的用户数据,以及查找时所需的逻辑-物理对照表(Logical-Physical Mapping Table,L2P表)。随机存取存储器131还可存储在执行软件及固件指令的过程中所需要的数据,例如,变量、数据表等。随机存取存储器131可包含静态随机存取存储器(State Random Access Memory SRAM)、动态随机存取存储器(DynamicRandom Access Memory DRAM),或以上两者。
存储装置130还包含闪存控制器135、闪存接口137及LUN139,并且闪存控制器135通过闪存接口137与LUN139通信,详细来说,可采用双倍数据率(Double Data Rate DDR)通信协议,例如,开放NAND闪存(Open NAND Flash Interface ONFI)、双倍数据率开关(DDRToggle)或其他接口。存储装置130的闪存控制器135通过闪存接口137写入用户数据到LUN139中的指定地址(目的地址),以及从LUN139中的指定地址(来源地址)读取用户数据。闪存接口137使用多个电子信号来协调闪存控制器135与LUN139间的数据与命令传递,包含数据线(Data Line)、时钟信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片使能(Chip EnableCE)、地址提取使能(Address Latch Enable ALE)、命令提取使能(Command Latch EnableCLE)、写入使能(Write Enable WE)等控制信号。处理单元133与闪存控制器135可分开存在或整合于同一芯片中。
参考图2,闪存接口137可包含四个输出输入通道(I/O channels,以下简称通道)CH#0至CH#3,每一个通道连接三个LUN,例如,通道CH#0连接LUN139#0、139#4及139#8。需注意的是,为满足不同的***需求,本领域技术人员可在闪存接口137中设置多个通道,并且将每个通道连接上至少一个LUN,本发明并不因此局限。闪存控制器135可驱动闪存接口137发出使能信号CE#0至CE#2中的一个来使能LUN139#0至139#3、139#4至139#7、或139#8至139#11,接着以并行的方式从使能的LUN读取用户数据,或者写入用户数据至使能的LUN。
参考图3,指令队列可包含递交队列(Submission Queue SQ)310及完成队列(Completion Queue CQ)330,分别用以暂存主装置指令以及完成组件(CompletionElement CE)。递交队列310及完成队列330较佳建立在同一装置中,例如,递交队列310及完成队列330较佳建立在主机端(Host Side)的随机存取存储器120中,亦可建立在存储装置130的随机存取存储器131中。递交队列310及完成队列330亦可建立在不同的装置中。递交队列310及完成队列330中的每一者包含多笔项目(Entry)的集合。递交队列310中的每一笔项目可存储一个输出输入指令(I/O Command),如抹除、读取、写入指令等。集合中的项目依序存放。集合的操作基本原则是由结束位置(如指针SQT或CQT所指的位置)新增条目(可称为入列),并且由开始位置(如指针SQH或CQH所指的位置)移除条目(可称为出列)。也就是说,第一个新增至递交队列310的指令,也将会是第一个被移出的。主装置110可写入多个写指令至递交队列310,并且处理单元133从递交队列310读取(或称为提取Fetch)最早到达的写指令并执行。在写指令执行完成后,处理单元133写入完成组件至完成队列330,主装置110可读取或提取完成组件而判断写指令的执行结果。
参考图4,闪存转换层(Flash Translation Layer FTL)架构包含写指令读取模块410、写指令执行模块430、H2F表写入模块450及垃圾回收(Garbage Collection GC)操作模块470。函数HW_PushIOCmdInfoPrdInfo()可包含写指令读取模块410的程序码,并且当处理单元133加载并执行时从递交队列读取指定数目的主机写指令(Host Write Commands),并且将写主机指令欲写入的特定逻辑地址(Logical Address)的用户数据暂存至随机存取存储器131。函数FTL_HandlePrdInfo()可包含写指令执行模块430的程序码,并且当处理单元133加载并执行时依据主机写指令将随机存取存储器131暂存的用户数据通过闪存控制器135及闪存接口137写入LUN139,从闪存控制器135恢复的信息中取得物理地址(Physical Address),接着将逻辑地址及物理地址间的对应关系更新至随机存取存储器131中H2F表的适当位置。函数SaveMap()可包含H2F表写入模块450的程序码,并且当处理单元133加载并执行时将更新过的H2F表通过闪存控制器135及闪存接口137写入LUN139。处理单元133加载并执行GC操作模块470时,将多个物理页面中破碎的用户数据搜集起来,并通过闪存控制器135及闪存接口137将搜集的用户数据写入LUN139中新的物理页面,用以让这些释放出来的物理页面可于抹除后被其他用户数据使用。
在一些实施方式中,处理单元133可于加载并执行控制模块的程序码时实施如图5所示的方法流程。当处理单元133侦测到主装置110开始将主机写指令写入递交队列310时,可反复执行循环(步骤S510至S590),直到递交队列310中不存在任何主机写指令为止(步骤S590中“否”的路径)。在每一回合(Iteration)中,处理单元133可依序执行写指令读取模块410、写指令执行模块430、H2F表写入模块450及GC操作模块470。然而,当H2F表写入模块450或GC操作模块470的运行时间过长,可能使得递交队列310中的主机写指令的等待时间过长,因而造成无法满足服务质量(Quality of Service QoS)的延迟时间测项的要求。此外,由于主装置110可在任意时间点写入任意数目的主机写指令至递交队列310,而主机接口132(可简称为硬件Hardware HW)最多只能读取上限数目的主机写指令。如果主装置110一次发出超过上限数目的主机写指令,主机接口132也只能读取上限数目的主机写指令来让写指令读取模块410处理。剩余的主机写指令只能由指令读取模块410在下一回合处理。由于缺乏每个主机写指令到达递交队列310的时间信息,以至于控制模块(可简称为固件Firmware FW)无法知道从硬件取得的主机写指令已经延迟了多久。
为了补足主机写指令到达于递交队列310的时间信息,在一些实施例中,写指令读取模块410可修改为在处理主机写指令的期间附加时间戳到新到达递交队列310的主机写指令。参考图6所示的主机写指令的处理方法的实施例,此方法由处理单元133加载并执行写指令读取模块410的程序码时实施。首先,反复执行一个循环(步骤S611至S613),用于以一个批次(Batch)读取递交队列310中所有需要立即处理的主机写指令。因为硬件的限制,处理单元133每回合读取不超过上限数目的主机写指令。在首次进入循环的步骤S611,处理单元133可从随机存取存储器131读取主机写指令到达递交队列310的时间信息,并且依据时间信息决定需要立即处理的主机写指令。到达递交队列310的时间信息可使用下表1实施:
表1
指令集编号 主机写指令编号 到达时间戳
S0 W0-W4 T0
S1 W5-W9 T1
表1中的每个项目可关联于一个指令集,包含指令集编号、此数据集包含的主机写指令的编号以及关联于所有主机写指令的到达时间戳。例如,指令集“S0”包含主机写指令“W0”至“W4”,并且它们到达递交队列310的时间为“T0”。“W0”至“W4”亦可代表递交队列310中第0至4个项目的主机写指令。处理单元133可使用公式(1)来判断一个指令集中的主机写指令是否需要立即处理:
Tnow-Ti>Ttr
其中,Tnow代表目前时间,i代表正整数,Ti代表递交队列310中第i个主机写指令的到达时间点,Tr代表阀值。阀值的设定可参考延迟时间测项的需求,例如,如果延迟时间测项要求99%的主机写指令的延迟时间需要小于5毫秒(ms),则阀值可设为介于4~5毫秒间的值。当公式(1)的条件满足时,代表递交队列310中第i个主机写指令需要立即处理。
在缓存模式(Cache Mode),处理单元133可通过主机接口132从递交队列310取得每个主机写指令,并且依据主机写指令中的地址信息通过主机接口132从随机存取存储器120读取待写入LUN139的用户数据,并存储用户数据至随机存取存储器131。由于用户数据存储至随机存取存储器131的时候即执行完成主机写指令,处理单元133可通过主机接口132写入对应此主机写指令的完成组件(Completion Element CE)至完成队列330。之后,处理单元133可安排时间执行写指令执行模块430的程序码,用于通过闪存控制器135及闪存接口137将随机存取存储器131中暂存的用户数据写入LUN139。
在非缓存模式(Non-cache Mode)或存储装置130不配置暂存用户数据的存储空间,处理单元133通过主机接口132取得一个或多个主机写指令及待写入的用户数据后,可直接跳到执行写指令执行模块430的程序码,用于通过闪存接口137将用户数据写入LUN139。在成功写入LUN139后,处理单元133可转回执行写指令执行模块430的程序码,用于写入对应该(些)主机写指令的完成组件至完成队列330。在一些实施例中,写指令执行模块430及写指令执行模块430可整合为单一模块,而不受限于FTL架构。
在循环执行完毕,处理单元133从随机存取存储器131取得代表上一批次的主机写指令的读取结束的时间戳Tpre(步骤S631),更新随机存取存储器131中的到达时间信息,用于删除处理完的主机写指令的记录,以及附加Tpre到递交队列310中的新进主机写指令的记录(步骤S633),及更新Tpre为代表目前时间的时间戳,供下一个批次的主机写指令的执行参考(步骤S635)。
以下举实例辅助说明图6所述的方法流程。参考图7,上一个批次的写指令读取模块410的执行结束于时间点T2且这一个批次的写指令读取模块410的执行70开始于时间点70a并结束于时间点T3(70b)。在时间点70a,随机存取存储器131存储上一个批次的主机写指令的执行结束时间戳Tpre为时间点T2,以及如表1所述的主机写指令“W0”至“W9”到达递交队列310的时间信息。假设指令集“S0”(也就是主机写指令“W0”至“W4”)满足公式(1)的条件,需要立即被处理。于是,处理单元133读取递交队列310中的主机写指令“W0”至“W4”(步骤S631)。在接近时间点T3时,主机写指令“W0”至“W4”的读取操作结束。操作结束后,处理单元133从随机存取存储器131读取上一个批次的主机写指令的执行结束时间戳Tpre(=T2)(步骤S633)。假设在时间点T2至T3间,主装置110写入主机写指令“W10”至“W12”至递交队列310,并改变指针SQT,用于指向递交队列310中的第13个项目。借由比较随机存取存储器131中的到达时间信息以及指针SQT目前所指的地址,处理单元131可知道主装置110新写入主机写指令“W10”至“W12”至递交队列310。接着,处理单元131更新到达时间信息如表2所示(步骤S633):
表2
指令集编号 主机写指令编号 到达时间戳
S1 W5-W9 T1
S2 W10-W12 T2
虽然主机写指令“W10”至“W12”的实际到达时间晚于时间点T2,但由于写指令读取模块410不知道任何主机写指令的实际到达时间,使用最早可能到达时间T2当作时间戳,可降低主机写指令的实际延迟时间超出时间测项需求的可能性。
虽然图3只显示两个队列310及330,但主机端可依据不同应用需求建立更多数量的递交子队列(Submission Sub-queues)及完成子队列(Completion Sub-queues)。表1可修改为包含不同递交子队列中的主机写指令的到达时间信息,并针对所有递交子队列中的主机写指令是否需要立即处理做总合性的判断,本发明并不因此受限。
为解决LUN139处于脏乱模式时产生的技术问题,图8及图10所示的方法流程为一种闪存的数据写入方法,此方法由处理单元133加载并执行相关软件或固件模块的程序码时实施,包含以下步骤:在执行一部分的H2F表更新或GC操作前,判断递交队列310中是否存在至少一个需要立即处理的主机写指令;以及当存在需要立即处理的主机写指令时,先以一个批次执行该(些)主机写指令,接着再执行此部分的H2F表更新或GC操作;以及当不存在需要立即处理的主机写指令时,直接执行此部分的H2F表的更新或GC操作。所属技术领域人员理解H2F表更新及GC操作为存储装置130自己启动用以优化存储装置130效能的操作,而不是像主机写指令由主装置110发动。详细说明如下:
为避免频繁更新LUN139中的H2F表,处理单元133可暂存全部或部分的H2F表于随机存取存储器131(通常是DRAM),并于写入操作完成后更新暂存H2F表中的内容。为缩短突然断电(Sudden Power Off SPO)后执行突然断电后恢复(SPO Recovery SPOR)的时间,处理单元133每更新一定数目的记录后就要将暂存H2F表的更新后内容写入LUN139。当存储装置130处于脏乱模式时,这样的H2F表的写入操作可能会更频繁。然而,处理单元133及闪存接口137需要一段时间完成整个需要更新部分的写入操作,可能造成递交队列310中的部分主机写指令的等待时间过长而无法满足QoS的延迟时间测项的要求。为了避免如上所述问题,在一些实施例中,H2F表写入模块450可修改为将H2F表中所有更新后的内容分成数段,并且在写入一段更新后内容前先判断是否存在需要立即处理的主机写指令。当存在需要立即处理的主机写指令时,优先处理这些主机写指令。
参考图9,H2F表910较佳依照顺序存储对应于每一逻辑地址(或逻辑区块地址Logical Block Address LBA)的物理地址信息。H2F表910所需的空间较佳与逻辑地址的总数成正比。逻辑地址可以逻辑区块地址表示,每一个LBA对应到一个固定大小的逻辑区块,例如512字节(Bytes),并存储至物理地址。举例来说,H2F表910依序存储从LBA#0至LBA#65535的物理地址信息。数个连续逻辑地址(例如LBA#0至LBA#7)的数据可形成一个主页面(Host Page)。物理地址信息330例如包括四个字节,其中,930-0记录(物理)区块编号((Physical)Block Number)),930-1记录(物理)页面编号及偏移量(offset);930-2记录(物理)平面编号,930-3记录逻辑单元编号以及输出输入通道编号等等。例如,对应于LBA#2的物理地址信息930可指向区块950中的一个局部951。
参考图8所示的H2F表的更新方法的实施例,此方法由处理单元133加载并执行H2F表写入模块450的程序码时实施。处理单元133可反复执行一个循环(步骤S810至S870),用于分段写入H2F表中所有更新后的内容至LUN139。例如,暂存H2F表中关于LBA#0至LBA#2047中的物理地址信息被更新时,处理单元133可于一个批次先写入关于LBA#0至LBA#1023(也就是第一段)的物理地址信息,并且于下一个批次写入关于LBA#1028至LBA#2047(也就是第二段)的物理地址信息。在每一回合,处理单元133先判断是否存在需要立即处理的主机写指令(步骤S810)。主机写指令的判断可参考如上所述表1、步骤S613及公式(1)的说明,为求简明不再赘述。当存在需要立即处理的主机写指令时(步骤S810中“是”的路径),处理单元133先读取需要立即处理的主机写指令(步骤S830),接着再存储H2F表中一段更新后的内容至LUN139(步骤S850)。当不存在需要立即处理的主机写指令时(步骤S810中“否”的路径),直接存储H2F表中一段更新后的内容至LUN139(步骤S850)。
当存储装置130处于脏乱模式时,LUN139中的许多物理页面可能包含有效及无效区段(又称为过期区段),其中,有效区段存储有效的用户数据,无效区段存储无效的(旧的)用户数据。当处理单元133侦测到LUN139的可用空间不足时,可指示闪存控制器135读取并搜集来源区块中有效区段中的用户数据,接着,指示闪存控制器135重新写入搜集起来的有效的用户数据至主动区块(或目的区块)的空物理页面,使得这些包含无效的用户数据的数据区块(来源区块)可变更成为闲置区块。之后,闲置区块于抹除后,可作为主动区块以提供数据存储空间。如上所述的程序称为垃圾回收。
然而,处理单元133及闪存接口137需要一段时间完成整个GC程序,可能造成递交队列310中的部分主机写指令的等待时间过长而无法满足QoS的延迟时间测项的要求。为了避免如上所述问题,在一些实施例中,GC操作模块470可修改为将整个垃圾回收程序分成数个阶段,并且在执行一个阶段的工作前先判断是否存在需要立即处理的主机写指令。当存在需要立即处理的主机写指令时,优先处理这些主机写指令。
在一些实施例中,整个GC程序可分为五个阶段的操作:处理单元133可在第一阶段决定有效的用户数据在来源区块的来源地址,以及目的区块的目的地址。在第二阶段,处理单元133可指示闪存控制器135从LUN139的来源地址读取用户数据,并且指示闪存控制器135将读取的用户数据写入LUN139的目的地址。在第三及第四阶段,处理单元133可分别更新H2F表及物理-逻辑对照表(Physical-Logical Mapping Table,P2L表)。处理单元133可于第五阶段将目的区块变更为闲置区块。以上的五个阶段仅为示例,本领域技术人员可依据处理单元133、闪存控制器135及闪存接口137的工作速度在GC操作模块470中将几个阶段合并成单一阶段,或者将一个阶段拆成数个子阶段。此外,GC操作模块470可根据处理状态优化这五个阶段的执行顺序,例如,将第一至第二阶段安排成一个循环,直到目的区块无法再写入来自来源区块的用户数据后,再执行第三至第五阶段。
参考图10所示的GC程序的执行方法的实施例,此方法由处理单元133加载并执行GC操作模块470的程序码时实施。处理单元133可反复执行一个循环(步骤S1010至S1070),用于分阶段执行GC程序。在每一批次,处理单元133先判断是否存在需要立即处理的主机写指令(步骤S1010)。主机写指令的判断可参考如上所述表1、步骤S613及公式(1)的说明,为求简明不再赘述。当存在需要立即处理的主机写指令时(步骤S1010中“是”的路径),处理单元133先读取需要立即处理的主机写指令(步骤S1030),接着再执行第一个或下一个阶段的GC操作(步骤S1050)。当不存在需要立即处理的主机写指令时(步骤S1010中“否”的路径),直接执行第一个或下一个阶段的GC操作(步骤S1050)。
在步骤S830或S1030的一些实施例,处理单元133可调用并执行函数HW_PushIOCmdInfoPrdInfo(),用于完成如图6所述的方法步骤。在步骤S830或S1030的另一些实施例,H2F表写入模块450或GC操作模块470可嵌入如图6所述的方法步骤的程序码,以供处理单元133执行。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作***、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现在如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储在适当的计算机可读取数据载体,例如DVD、CD-ROM、USB、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载体)存取的网络服务器。
虽然图1中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图6、图8及图10的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (14)

1.一种闪存数据写入方法,由处理单元在加载并执行软件或固件模块的程序码时实施,包含:
在执行一部分的逻辑-物理对照表更新或垃圾回收程序前,判断递交队列中是否存在需要立即处理的主机写指令;以及
当存在需要立即处理的该主机写指令时,先以一个批次执行该主机写指令,接着再执行该部分的逻辑-物理对照表更新或垃圾回收程序,
其中,执行每一该主机写指令的操作包含通过主机接口从该递交队列取得该主机写指令;依据该主机写指令中的地址信息通过该主机接口从随机存取存储器读取待写入存储单元的用户数据;存储该用户数据至随机存取存储器;以及通过该主机接口写入对应该主机写指令的完成组件至完成队列。
2.如权利要求1所述的闪存数据写入方法,其特征在于,包含:
当不存在需要立即处理的主机写指令时,执行该部分的逻辑-物理对照表更新或垃圾回收程序。
3.如权利要求1至2中任一项所述的闪存数据写入方法,其特征在于,使用以下公式判断该递交队列中是否存在需要立即处理的该主机写指令:
Tnow-Ti>Ttr
其中,Tnow代表目前时间,i代表正整数,Ti代表该递交队列中第i个主机写指令的到达时间点,Ttr代表阀值;当该公式的条件满足时,代表该递交队列中第i个主机写指令需要立即处理。
4.如权利要求3所述的闪存数据写入方法,其特征在于,该递交队列中每一个主机写指令的到达时间点为该处理单元侦测到该主机写指令进入该递交队列时的上一个批次的主机写指令的执行结束的时间点。
5.如权利要求1至2中任一项所述的闪存数据写入方法,其特征在于,该部分的逻辑-物理对照表更新包含通过闪存接口写入关联于一段连续逻辑地址的物理地址信息至存储单元。
6.如权利要求1至2中任一项所述的闪存数据写入方法,其特征在于,该垃圾回收程序分为多个阶段,以及该部分的垃圾回收程序包含一个阶段的操作。
7.如权利要求6所述的闪存数据写入方法,其特征在于,该多个阶段的操作包含:决定包含有效的用户数据的区段的来源地址,以及闲置区块或主动区块的空物理页面的目的地址;指示闪存控制器从存储单元的该来源地址读取用户数据,并且指示该闪存控制器将该读取的用户数据写入该存储单元的该目的地址;更新逻辑-物理对照表;或指示该闪存控制器抹除该存储单元中包含该来源地址的数据区块。
8.如权利要求1至2中任一项所述的闪存数据写入方法,其特征在于,执行每一该主机写指令的操作包含通过主机接口从该递交队列取得该主机写指令;依据该主机写指令中的地址信息通过该主机接口从随机存取存储器读取待写入存储单元的用户数据;通过闪存接口将该用户数据写入至该存储单元;以及通过该主机接口写入对应该主机写指令的完成组件至完成队列。
9.一种闪存数据写入的计算机可读取存储介质,用于存储能够被处理单元执行的计算机程序,其特征在于,该计算机程序被该处理单元执行时实现以下步骤:
在执行一部分的逻辑-物理对照表更新或垃圾回收程序前,判断递交队列中是否存在需要立即处理的主机写指令;以及
当存在需要立即处理的该主机写指令时,先以一个批次执行该主机写指令,接着再执行该部分的逻辑-物理对照表更新或垃圾回收程序,
其中,执行每一该主机写指令的操作包含通过主机接口从该递交队列取得该主机写指令;依据该主机写指令中的地址信息通过该主机接口从随机存取存储器读取待写入存储单元的用户数据;存储该用户数据至随机存取存储器;以及通过该主机接口写入对应该主机写指令的完成组件至完成队列。
10.如权利要求9所述的闪存数据写入的计算机可读取存储介质,其特征在于,使用以下公式判断该递交队列中是否存在需要立即处理的该主机写指令:
Tnow-Ti>Ttr
其中,Tnow代表目前时间,i代表正整数,Ti代表该递交队列中第i个主机写指令的到达时间点,Ttr代表阀值;当该公式的条件满足时,代表该递交队列中第i个主机写指令需要立即处理。
11.如权利要求10所述的闪存数据写入的计算机可读取存储介质,其特征在于,该递交队列中每一个主机写指令的到达时间点为该处理单元侦测到该主机写指令进入该递交队列时的上一个批次的主机写指令的执行结束的时间点。
12.如权利要求9所述的闪存数据写入的计算机可读取存储介质,其特征在于,该部分的逻辑-物理对照表更新包含通过闪存接口写入关联于一段连续逻辑地址的物理地址信息至存储单元。
13.如权利要求9中所述的闪存数据写入的计算机可读取存储介质,其特征在于,该垃圾回收程序分为多个阶段,以及该部分的垃圾回收程序包含一个阶段的操作。
14.如权利要求9至13中任一项所述的闪存数据写入的计算机可读取存储介质,其特征在于,执行每一该主机写指令的操作包含通过主机接口从该递交队列取得该主机写指令;依据该主机写指令中的地址信息通过该主机接口从随机存取存储器读取待写入存储单元的用户数据;通过闪存接口将该用户数据写入至该存储单元;以及通过该主机接口写入对应该主机写指令的完成组件至完成队列。
CN201910220318.3A 2019-01-03 2019-03-22 闪存数据写入方法及计算机可读取存储介质 Active CN111399750B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/445,702 US11288185B2 (en) 2019-01-03 2019-06-19 Method and computer program product for performing data writes into a flash memory
US17/667,801 US11960396B2 (en) 2019-01-03 2022-02-09 Method and computer program product for performing data writes into a flash memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962787810P 2019-01-03 2019-01-03
US62/787,810 2019-01-03

Publications (2)

Publication Number Publication Date
CN111399750A CN111399750A (zh) 2020-07-10
CN111399750B true CN111399750B (zh) 2023-05-26

Family

ID=71428322

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910220318.3A Active CN111399750B (zh) 2019-01-03 2019-03-22 闪存数据写入方法及计算机可读取存储介质
CN201910486615.2A Active CN111399752B (zh) 2019-01-03 2019-06-05 不同类型存储单元的控制装置及方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910486615.2A Active CN111399752B (zh) 2019-01-03 2019-06-05 不同类型存储单元的控制装置及方法

Country Status (2)

Country Link
CN (2) CN111399750B (zh)
TW (3) TWI739075B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949580B (zh) * 2020-08-12 2021-11-12 深圳安捷丽新技术有限公司 多频率内存接口及其配置方法
TWI754396B (zh) * 2020-09-29 2022-02-01 慧榮科技股份有限公司 快閃記憶體的資料儲存方法及裝置以及電腦程式產品
CN114327240A (zh) 2020-09-29 2022-04-12 慧荣科技股份有限公司 计算机可读存储介质、闪存存储器的数据存储方法及装置
CN112379830B (zh) * 2020-11-03 2022-07-26 成都佰维存储科技有限公司 有效数据位图的创建方法、装置、存储介质及电子设备
CN115617706A (zh) * 2021-07-13 2023-01-17 美光科技公司 优化使用逻辑到物理表搜索的垃圾回收

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375779A (zh) * 2010-08-16 2012-03-14 深圳市朗科科技股份有限公司 一种数据处理方法以及数据处理模块
CN102799534A (zh) * 2012-07-18 2012-11-28 上海宝存信息科技有限公司 基于固态存储介质的存储***及方法、冷热数据识别方法
CN107844431A (zh) * 2017-11-03 2018-03-27 合肥兆芯电子有限公司 映射表更新方法、存储器控制电路单元与存储器存储装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
US6973554B2 (en) * 2003-04-23 2005-12-06 Microsoft Corporation Systems and methods for multiprocessor scalable write barrier
KR101404083B1 (ko) * 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US7441071B2 (en) * 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
CN101599295B (zh) * 2008-06-02 2011-12-07 联阳半导体股份有限公司 整合型储存装置及其控制方法
TWI442222B (zh) * 2010-07-21 2014-06-21 Silicon Motion Inc 快閃記憶裝置與快閃記憶裝置管理方法
US9146690B2 (en) * 2012-01-27 2015-09-29 Marvell World Trade Ltd. Systems and methods for dynamic priority control
US9417820B2 (en) * 2012-12-06 2016-08-16 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive
US9348747B2 (en) * 2013-10-29 2016-05-24 Seagate Technology Llc Solid state memory command queue in hybrid device
US9645896B2 (en) * 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
US9471254B2 (en) * 2014-04-16 2016-10-18 Sandisk Technologies Llc Storage module and method for adaptive burst mode
CN104361113B (zh) * 2014-12-01 2017-06-06 中国人民大学 一种内存‑闪存混合存储模式下的olap查询优化方法
CN106326136A (zh) * 2015-07-02 2017-01-11 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
US20170060434A1 (en) * 2015-08-27 2017-03-02 Samsung Electronics Co., Ltd. Transaction-based hybrid memory module
US10409719B2 (en) * 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
TWI595412B (zh) * 2016-09-09 2017-08-11 大心電子(英屬維京群島)股份有限公司 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10359953B2 (en) * 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
CN108959108B (zh) * 2017-05-26 2021-08-24 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375779A (zh) * 2010-08-16 2012-03-14 深圳市朗科科技股份有限公司 一种数据处理方法以及数据处理模块
CN102799534A (zh) * 2012-07-18 2012-11-28 上海宝存信息科技有限公司 基于固态存储介质的存储***及方法、冷热数据识别方法
CN107844431A (zh) * 2017-11-03 2018-03-27 合肥兆芯电子有限公司 映射表更新方法、存储器控制电路单元与存储器存储装置

Also Published As

Publication number Publication date
CN111399752B (zh) 2023-11-28
TW202026891A (zh) 2020-07-16
TWI828963B (zh) 2024-01-11
TW202026893A (zh) 2020-07-16
CN111399750A (zh) 2020-07-10
TW202137017A (zh) 2021-10-01
CN111399752A (zh) 2020-07-10
TWI719494B (zh) 2021-02-21
TWI739075B (zh) 2021-09-11

Similar Documents

Publication Publication Date Title
CN111399750B (zh) 闪存数据写入方法及计算机可读取存储介质
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US9183136B2 (en) Storage control apparatus and storage control method
US20190095123A1 (en) Methods for internal data movements of a flash memory device and apparatuses using the same
CN110633048B (zh) 闪存存储装置的命名空间操作方法
TWI592865B (zh) 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器
US10101914B2 (en) Memory management method, memory control circuit unit and memory storage device
US9448946B2 (en) Data storage system with stale data mechanism and method of operation thereof
KR101301840B1 (ko) 비휘발성 메모리 장치의 데이터 처리 방법
US9176865B2 (en) Data writing method, memory controller, and memory storage device
CN103999060A (zh) 固态存储管理
US11960396B2 (en) Method and computer program product for performing data writes into a flash memory
US11675698B2 (en) Apparatus and method and computer program product for handling flash physical-resource sets
CN1658171A (zh) 通过控制频繁受访问扇区对非易失性存储器的更快写操作
TWI726314B (zh) 資料儲存裝置與資料處理方法
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
CN110895449A (zh) 用于在存储器***中管理有效数据的装置和方法
TWI629590B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN113885808A (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
US11494113B2 (en) Computer program product and method and apparatus for scheduling execution of host commands
TWI758745B (zh) 排程主機命令執行的電腦程式產品及方法及裝置
US20240143226A1 (en) Data storage device and method for managing a write buffer
US20240126473A1 (en) Data storage device and method for managing a write buffer
CN116149540A (zh) 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置
CN111159065A (zh) 带有关键字的硬件缓存管理单元(bmu)

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
GR01 Patent grant
GR01 Patent grant