CN113742255A - 一种无效标记命令的处理方法、系统及数据存储设备 - Google Patents

一种无效标记命令的处理方法、系统及数据存储设备 Download PDF

Info

Publication number
CN113742255A
CN113742255A CN202110987345.0A CN202110987345A CN113742255A CN 113742255 A CN113742255 A CN 113742255A CN 202110987345 A CN202110987345 A CN 202110987345A CN 113742255 A CN113742255 A CN 113742255A
Authority
CN
China
Prior art keywords
command
logical address
invalid
unit
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110987345.0A
Other languages
English (en)
Other versions
CN113742255B (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.)
Hefei Kangxinwei Storage Technology Co Ltd
Original Assignee
Hefei Kangxinwei Storage Technology Co Ltd
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 Hefei Kangxinwei Storage Technology Co Ltd filed Critical Hefei Kangxinwei Storage Technology Co Ltd
Priority to CN202110987345.0A priority Critical patent/CN113742255B/zh
Publication of CN113742255A publication Critical patent/CN113742255A/zh
Application granted granted Critical
Publication of CN113742255B publication Critical patent/CN113742255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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

Abstract

本发明公开了一种无效标记命令的处理方法、系统及数据存储设备,所述无效标记命令的处理方法包括:在数据存储设备中,配置命令保存单元,所述命令保存单元保存待执行的无效标记命令;在所述命令保存单元中,配置双向链表,所述双向链表存放所述无效标记命令中的逻辑地址;当所述数据存储设备接收到主机下发的所述无效标记命令时,将所述无效标记命令保存至所述命令保存单元中,并依据所述无效标记命令中的逻辑地址更新所述双向链表;回复所述主机所述无效标记命令执行完成;当所述数据存储设备闲置时,执行所述命令保存单元中的所述无效标记命令。通过本发明提供的一种无效标记命令的处理方法,可提高无效标记命令的执行效率。

Description

一种无效标记命令的处理方法、系统及数据存储设备
技术领域
本发明属于存储技术领域,特别涉及一种无效标记命令的处理方法、系统及数据存储设备。
背景技术
当主机端将数据写入到非易失性存储器时,存储设备便会在映射表上记录逻辑与物理地址的映射关系。当主机端将数据删除,此时数据虽然已在主机端的系统中被删除,但在存储设备上的逻辑与物理地址的映射关系仍然被保存在映射表中。当设备启动垃圾回收工作时,已被删除的数据仍会被当作有效数据处理,降低设备效能。
当用户删除一个文件时,操作系统会发送无效标记命令给存储设备,告诉存储设备该文件对应的数据无效,逻辑与物理地址的映射关系不须保存。无效标记命令例如可以是ATA命令中的Trim命令,SCIS命令中的UNMA命令,或NVMe命令中的Deallocate命令。在做垃圾回收的时,就可以把这些删除掉的数据抛弃掉,不做无谓的数据搬移。但当执行范围较大的无效标记命令时,比较耗时,且响应时间较长。
发明内容
本发明的目的在于提供一种无效标记命令的处理方法、系统及数据存储设备,通过本发明提供的一种无效标记命令的处理方法、系统及数据存储设备,可提高无效标记命令的执行效率。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种无效标记命令的处理方法,其至少包括:
在数据存储设备中,配置命令保存单元,所述命令保存单元保存待执行的无效标记命令;
在所述命令保存单元中,配置双向链表,所述双向链表存放所述无效标记命令中的逻辑地址;
当所述数据存储设备接收到主机下发的所述无效标记命令时,将所述无效标记命令保存至所述命令保存单元中,并依据所述无效标记命令中的逻辑地址更新所述双向链表;
回复所述主机所述无效标记命令执行完成;
当所述数据存储设备闲置时,执行所述命令保存单元中的所述无效标记命令。
在本发明一实施例中,在将所述无效标记命令保存至所述命令保存单元前,所述无效标记命令的处理方法还包括检测所述命令保存单元中的空间是否充足。
在本发明一实施例中,当所述命令保存单元中的空间不充足时,所述无效标记命令的处理方法包括:
在所述命令保存单元中搜索逻辑地址长度最小的节点;
释放所述逻辑地址长度最小的节点所占的空间。
在本发明一实施例中,在所述命令保存单元中搜索逻辑地址长度最小的节点具体包括:
通过最小优先队列获得最小的逻辑地址长度;
设置位掩码,以忽略搜索数组中节点的起始逻辑地址;
在所述搜索数组中找到最小的逻辑地址长度对应的索引编号;
通过所述索引编号在所述双向链表中定位该索引编号对应的节点。
在本发明一实施例中,将所述无效标记命令保存至所述命令保存单元中具体包括:
将所述无效标记命令中的逻辑范围按照逻辑地址排序;
按照逻辑地址,将无效标记命令中的逻辑范围建立新的双向链表;
将新建立的双向链表与所述命令保存单元中原有的双向链表合并,且以节点的起始逻辑地址顺序排列。
在本发明一实施例中,将所述无效标记命令保存至所述命令保存单元中还包括:
检查合并后的双向链表中,相邻的节点中逻辑范围是否有连续或重叠,若有,则将具有重叠和/或连续的节点合并。
在本发明一实施例中,将所述无效标记命令保存至所述命令保存单元中还包括:
根据合并后的双向链表,更新节点搜索单元中的相关数据信息。
在本发明一实施例中,更新所述节点搜索单元中的相关数据信息包括:
更新第一优先队列中对应节点的逻辑地址长度和最大的逻辑地址长度;
更新第二优先队列中对应节点的逻辑地址长度和最小的逻辑地址长度。
在本发明一实施例中,当所述命令保存单元中有所述无效标记命令时,所述数据存储设备接收到主机发送的读请求时,所述无效标记命令的处理方法包括:
查询所述命令保存单元中是否有所述读请求中的逻辑地址;
当所述命令保存单元中有所述读请求中的所述逻辑地址时,回复所述主机特定的数据内容。
在本发明一实施例中,当所述命令保存单元中有所述无效标记命令时,所述数据存储设备接收到主机发送的写请求时,所述无效标记命令的处理方法包括:
将所述写请求中的逻辑地址移出所述命令保存单元;
将所述主机发送的数据写入所述写请求中所述逻辑地址对应的物理地址中。
在本发明一实施例中,当所述数据存储设备接收到写命令和/或读命令时,需要在所述命令保存单元中查找所述无效标记命令中的逻辑地址。
在本发明一实施例中,在所述命令保存单元中查找所述无效标记命令中的逻辑地址的具体方法包括:
通过第一优先队列获取最大的逻辑地址长度,并以所述最大的逻辑地址长度作为搜索引擎的粒度;
通过所述最大的逻辑地址长度设置搜索引擎的位掩码;
启动所述搜索引擎,在搜索数组中搜索给定的逻辑地址。
在本发明一实施例中,若所述搜索数组中存在所述给定的逻辑地址,则获取所述给定的逻辑地址对应的索引编号。
在本发明一实施例中,在所述命令保存单元中查找所述无效标记命令中的逻辑地址还包括:在所述双向链表中,以所述给定的逻辑地址对应的索引编号为中心,查找所述双向链表中是否存在所述给定的逻辑地址。
本发明还提供一种无效标记命令的处理系统,所述无效标记命令的处理系统用于执行所述无效标记命令的处理方法,且所述无效标记命令的处理系统包括:
命令保存单元,设置在所述数据存储设备中,用于保存待执行的无效标记命令;
命令执行单元,设置在所述数据存储设备中,用于执行所述无效标记命令。
在本发明一实施例中,所述无效标记命令的处理系统还包括节点搜索单元,所述节点搜索单元设置在所述数据存储设备中。
在本发明一实施例中,所述节点搜索单元内还包括搜索数组,所述搜索数组内的数组元素与所述命令保存单元中的双向链表的节点是通过索编号来相互对应。
本发明还提供一种数据存储设备,所述数据存储设备上存储有计算机程序,所述计算机程序被处理器执行所述的无效标记命令的处理方法。
如上所述本发明提供的一种无效标记命令的处理方法、系统及数据存储设备,通过将逻辑范围较大的无效标记命令存储在命令保存单元中,延后并分散至设备闲置时执行,可大幅缩短无效标记命令的响应时间。通过设置节点搜索单元,能加速读命令与写命令对已保存无效标记命令中逻辑地址范围的搜索,缩短响应时间。通过最小优先队列,能快速搜索出最小逻辑地址范围的节点,使设备能以较低执行成本释放出节点空间。本发明提供的无效标记命令的处理方法,能够加快无效标记命令的执行效率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种数据存储设备结构图。
图2为节点搜索单元结构示意图。
图3为双向链表的基础数组示意图。
图4为双向链表示意图。
图5为搜索数组示意图。
图6为一种无效标记命令的处理方法流程图。
图7为命令保存单元处理空间不足的流程图。
图8为搜索最小逻辑地址范围所在节点的流程图。
图9为保存无效标记命令的流程图。
图10为保存有无效标记命令时,处理读命令的流程图。
图11为保存有无效标记命令时,处理写命令的流程图。
图12为节点搜索单元搜索逻辑地址所在节点的流程图。
图13为以节点搜索单元为辅助,搜索逻辑地址的流程图。
图14为一种无效标记命令的执行系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,数据存储设备100经由接口及电源线与主机200(例如信息处理装置)连接。主机200例如由个人计算机、CPU核或者与网络连接的服务器等构成。主机200对数据存储设备100执行数据存取控制,例如,通过向数据存储设备100发送写请求、读请求及删除请求,对数据存储设备100执行数据的写入、读出及删除。
请参阅图1所示,在本发明一实施例中,数据存储设备100例如可以固态硬盘(Solid State Disk,SSD)。且数据存储设备100可以包括控制器110和非易失性存储单元120。非易失性存储单元120是即使切断电源也不会丢失数据的非易失性存储单元(非暂时的存储器),非易失性存储单元120可以为NAND闪存、垂直NAND(VNAND)、NOR闪存、电阻随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。非易失性存储单元120可以包括连接到字线、串选择线、地选择线和位线的存储单元阵列。非易失性存储单元120可以包括包含多个存储块的超级块。多个存储块可以包括多个页面。非易失性存储单元120可以包括二维(2D)存储器阵列或三维(3D)存储器阵列。也可以使用其他类型的非易失性存储单元120。本实施例中,以NAND型闪速存储器的结构为例进行说明,可以理解,在其他的实施例中,也可以采用其他类型的非易失性存储单元120结构。
请参阅图1,在本发明一实施例中,控制器110内配置有命令保存单元111和命令执行单元112。命令保存单元111用于保存不立即执行的无效标记命令。本发明所述的无效命令内保存有需要被无效的逻辑地址。当执行无效标记命令时,将非易失性存储单元120中,无效标记命令中逻辑地址对应的物理地址设置为无效状态。当无效标记命令的执行范围较大时,执行无效标记命令较为耗时。此时,本发明提供的无效标记命令的处理方法包括:将无效标记命令保存至命令保存单元111中,并回复主机200无效标记命令已执行完成的答复,当数据存储设备100处于闲置状态时,命令执行单元112执行命令保存单元111中的无效标记命令。具体的,命令执行单元112找出无效标记命令中的逻辑地址,并且将非易失性存储单元120中逻辑地址对应的物理地址的状态设置为无效。当数据存储设备100执行垃圾回收功能时,不会将物理地址的状态为无效的数据进行搬移。在本发明一具体实施例中,无效标记命令例如为trim命令。
请参阅图1以及图3至图4所示,在本发明一实施例中,在命令保存单元111中,配置有双向链表,无效标记命令的内容保存在双向链表内。在本实施例中,双向链表以数组为基础,以数组元素为链表的节点,以数组索引代替链表指针。具体的,双向链表中包括多个节点,且节点以数组元素的方式呈现,每个数组元素中保存无效标记命令中的一个逻辑范围。其中,每个无效标记命令包括一个或多个逻辑范围。如图3所示的基础数组,每个数组元素包括当前数组元素的索引标号、上一索引编号、下一索引编号以及当前数组元素中存放的逻辑范围。其中,上一索引编号用于记录当前数组元素在双向链表中的前一个数组元素的索引编号,下一索引编号用于记录当前数组元素在双向链表中的后一个数组元素的索引编号,逻辑范围例如以起始逻辑地址与逻辑地址长度的方式存放。在本实施例中,具体请参阅图4所示,多个数组元素以逻辑地址排序,以上一索引编号、下一索引编号将多个数组连接成双向链表。
请参阅图1至图2所示,在本发明一实施例中,当命令保存单元111接收到主机200发送的新的无效标记命令,新的无效标记命令中包括一个或多个逻辑范围。当新的无效标记命令中的逻辑范围与命令保存单元111已有的逻辑范围有重叠时,具体例如新的无效标记命令中的第一逻辑范围与命令保存单元111已有的第二逻辑范围有重叠时,则将第一逻辑范围与第二逻辑范围合并,并更改双向链表中第二逻辑范围对应的节点。具体为更新双向链表中第二逻辑范围对应的节点中的起始逻辑地址与逻辑地址长度。
请参阅图1所示,在本发明一实施例中,在控制器110内,还配置有节点搜索单元113,可在主机200在向数据存储设备100发送写请求、读请求以及无效标记命令时,加速命令保存单元111对逻辑地址的查找。
具体的,请参阅图2所示,在发明一实施例中,节点搜索单元113内配置有搜索数组1131。搜索数组1131具体请参阅图5所示,搜索数组1131内的数组元素与命令保存单元111中的双向链表的节点通过索编号来相互对应。搜索数组1131中每个数组元素存放双向链表中对应节点的起始逻辑地址,以及对应节点的节点范围长度(逻辑地址长度)。
请参阅图2所示,在发明一实施例中,节点搜索单元113内还配置有搜索引擎1130,搜索引擎1130能在搜索数组1131中快速找到一数值(逻辑地址)所在位置。且搜索引擎1130具备位掩码功能,能将待搜索数值的某些位忽略不计。
请参阅图2所示,在发明一实施例中,节点搜索单元113内还配置有第一优先队列1132和第二优先队列1133,且第一优先队列1132例如为最大优先队列,第二优先队列1133例如为最小优先队列。具体的,在本实施例中,第一优先队列1132中的元素记录当前命令保存单元111中各节点的逻辑地址长度。第一优先队列1132可获得最大的逻辑地址长度,做为搜索引擎1130的粒度,其中,第一优先队列1132中逻辑地址长度的记录方式为:将节点的起始逻辑地址和结束逻辑地址互斥或异或(XOR)后,获取其前导零数(Leading Zeros),并将逻辑地址的总位数减去前导零数,以此数为指数的二的次方数即为逻辑地址长度。因需根据第一优先队列1132中最大的逻辑地址长度设置位掩码,这种记录方式可便于设置位掩码。第二优先队列1133为最小优先队列,第二优先队列1133中的元素也记录着当前命令保存单元111中各节点的逻辑地址长度。第二优先队列1133可获得最小的逻辑地址长度,其中,第二优先队列1133中逻辑地址长度的记录方式为:直接记录节点的逻辑范围的长度。
请参阅1所示,控制器110内还设置有其他单元114,其他单元114例如可以对非易失性存储单元120执行垃圾回收等功能。在其他单元114中例如存储有逻辑地址与物理地址的映射表,以及记录每个物理块上哪个页有有效数据的有效页位图(Valid Page Bit Map,VPBM),记录每个物理块上的有效页个数的有效页数(Valid Page Count,VPC)。通常执行垃圾回收功能时,会使用有效页数进行排序,来回收有效页最少的闪存块;有效页位图则是为了在垃圾回收时只读有效的数据。
请结合图1至图2,并参阅图6所示,本发明提供的数据存储设备100为一种计算机可读存储设备,数据存储设备100上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明所述的无效标记命令的处理方法。本发明提供的无效标记命令的处理方法,包括以下步骤:
S10:在数据存储设备100中,配置命令保存单元111,命令保存单元111保存待执行的无效标记命令。
S11:在命令保存单元111中,配置双向链表,双向链表存放无效标记命令中的逻辑地址。
S12:当数据存储设备100接收到主机200下发的无效标记命令时,将无效标记命令保存至命令保存单元111中,并依据无效标记命令中的逻辑地址更新双向链表。
S13:回复主机200无效标记命令执行完成。
S14:当数据存储设备100闲置时,执行命令保存单元111中的无效标记命令。
请结合图1至图2,并参阅图6至图7所示,在本发明一实施例中,在执行步骤S12时,在数据存储设备100接收到主机200下发的无效标记命令时,且在将无效标记保存在命令保存单元111之前,还包括检测命令保存单元111的空间是否充足,当命令保存单元111的空间不足时,以较低的执行成本释放出命令保存单元111内的空间。其中,释放命令保存单元111内空间的具体步骤请参阅图7所示,具体包括步骤:
S20:检测无效标记命令所需的空间。
在本实施例中,无效标记命令所需的空间即为无效命令中的逻辑范围的数量,对应为双向链表中节点的数量。
S21:判断命令保存单元111内的空间是否充足,若是,则执行步骤S22:保存主机200下发的无效标记命令;若否,则执行步骤S23。
S23:节点搜索单元113在命令保存单元111中搜索逻辑地址长度最小的节点。
S24:将逻辑地址长度最小的节点对应的逻辑地址发送至命令执行单元112。
在执行步骤S24后,将最小逻辑地址长度对应的节点移除。
S25:命令执行单元112释放逻辑地址长度最小的节点所占的空间。
在本实施例中,释放逻辑地址长度最小的节点所占的空间具体过程包括:命令执行单元112将逻辑地址长度最小的节点中,逻辑地址对应的物理地址设置为无效。
当执行完步骤S25后,返回步骤S21,再次判断命令保存单元111内的空间是否充足。重复执行步骤S21~S25,直至命令保存单元111可存储新的无效标记命令。本发明在命令保存单元111内的空间不足时,优先释放逻辑地址长度最小的节点,在数据存储设备100运行时,以较低执行成本释放出节点空间。
请结合图1至图2,并参阅图7至图8所示,在本发明一实施例中,步骤S23具体包括:S231:命令保存单元111对节点搜索单元113发出搜索最小逻辑地址长度节点的请求。S232:通过最小优先队列获得最小的逻辑地址长度。S233:设置位掩码,以忽略搜索数组中的节点的起始逻辑地址。S234:搜索引擎1130在搜索数组1131中找到最小的逻辑地址长度(节点范围长度)对应的索引编号。S235:通过索引编号在命令保存单元111的双向链表中定位该索引编号对应的节点,即为命令保存单元111中,最小逻辑地址长度对应的节点。
请结合图1至图2,并参阅图6和图9所示,在本发明一实施例中,命令保存单元111以双向链表的形式保存无效标记命令中的逻辑地址。在步骤S12中,当命令保存单元111接收到主机200下发的无效标记命令时,命令保存单元111保存无效标记命令,并根据无效标记命令中的逻辑地址对双向链表进行更新。
请参阅图9所示,此过程具体包括:
S120:将无效标记命令中的逻辑范围按照逻辑地址排序。
S121:按照逻辑地址,将无效标记命令中的逻辑范围建立新的双向链表。
S122:判断命令保存单元111中是否已有保存无效标记命令的双向链表,若有,则执行步骤S123,若无,则执行步骤S124,将步骤S121中新建立的双向链表保存在命令保存单元111中,并执行步骤S126。
S123:将新建立的双向链表与命令保存单元111中原有的双向链表合并,且以节点的起始逻辑地址顺序排列。
S125:检查合并后的双向链表中,相邻的节点中的逻辑范围是否有连续或重叠,若有,则将具有重叠和/或连续的节点合并。
S126:更新节点搜索单元113中的相关数据信息。
在本发明一实施例中,步骤S126中更新的相关数据信息包括,与命令保存单元111中的双向链表对应的搜索数组1131、第一优先队列1132和第二优先队列1133。可根据实际情况,对于双向链表中每个有变动的节点,在搜索数组1131中新增、删除或更新对应的数组元素。以及更新第一优先队列1132中对应节点的逻辑地址长度和最大的逻辑地址长度,第二优先队列1133中对应节点的逻辑地址长度和最小的逻辑地址长度。
请结合图1至图2,并参阅图10所示,在本发明一实施例中,当数据存储设备100接收到主机200的发送的读请求时,且数据存储设备100的命令保存单元111中保存有无效标记命令时,本发明提供的无效标记命令的处理方法包括:
S30:数据存储设备100接收读请求。
S31:查询命令保存单元111中是否有读请求中的逻辑地址,若无,则执行步骤S32,按照一般读请求处理,若有,则执行步骤S33,则回复主机200特定数据内容。
请结合图1至图2,并参阅图10所示,在本发明一实施例中,当命令保存单元111中没有读请求中的逻辑地址时,则读请求中的逻辑地址对应的物理地址处于可读状态或已经被无效状态,步骤S32包括读出非易失性存储单元120中对应的数据传至主机200,或者回复主机200该读请求无效。当命令保存单元111中有读请求中的逻辑地址时,则表示读请求中逻辑地址对应的物理地址将要被无效,则回复主机200端以特定的数据,例如回复主机200端0xFF,表示无法读取读请求中逻辑地址对应的内容。
请结合图1至图2,并参阅图11所示,在本发明一实施例中,当数据存储设备100接收到主机200的发送的写请求时,且数据存储设备100的命令保存单元111中保存有无效标记命令时,本发明提供的无效标记命令的处理方法包括:
S40:数据存储设备100接收写请求。
S41:查询命令保存单元111中是否有写请求中的逻辑地址,若有,则执行步骤S42,将写请求中的逻辑地址移出命令保存单元111,并执行步骤S43。若无,则直接执行步骤S43,按照一般写请求处理。即将主机200发送的数据写入写请求中逻辑地址对应的物理地址中。
请结合图1至图2,并参阅图11所示,在本发明一实施例中,当命令保存单元111中没有写请求中的逻辑地址时,则读写请求的逻辑地址对应的物理地址处于可读状态或已经被无效状态,步骤S42包括将主机200下发的数据写入写请求中的逻辑地址对应的物理地址,并标记该物理地址的状态为有效。当命令保存单元111中有写请求中的逻辑地址时,则表示写请求中逻辑地址对应的物理地址将要被无效,则将写请求中逻辑地址移出命令保存单元111,再按照步骤S43的方法将主机200发送的数据写入。在执行步骤S42,从命令保存单元111中移出写请求中逻辑地址时,命令保存单元111中的双向链表的节点会被删减或被分割,而导致某个或多个节点被删除或分割成二节点。
请结合图1至图2,并参阅图12所示,在本发明一实施例中,本发明提供的无效标记命令的处理方法,在主机200在向数据存储设备100发送写请求、读请求以及无效标记命令时,均需要在命令保存单元111中查找命令中的逻辑地址。本发明提供的无效标记命令的处理方法可以利用节点搜索单元113中配置的搜索数组1131、第一优先队列1132与搜索引擎1130,加速命令保存单元111对逻辑地址的搜索。对逻辑地址具体的搜索方法具体包括:
S50:将命令中给定的逻辑地址发送至节点搜索单元113。
S51:通过最大优先队列获取最大的逻辑地址长度,并以最大的逻辑地址长度作为搜索引擎1130的粒度。
S52:通过最大的逻辑地址长度设置搜索引擎1130的位掩码。其中,可以通过设置位掩码,控制搜索引擎1130在搜索时比对的位数,调整搜索引擎1130对细节的忽略程度。
S53:启动搜索引擎1130,在搜索数组1131中搜索给定的逻辑地址,若搜索数组1131中存在给定的逻辑地址,则执行步骤S54,回复命令保存单元111该逻辑地址对应的索引编号,若搜索数组1131中不存在给定的逻辑地址,则执行步骤S55,回复命令保存单元111给定的逻辑地址不存在双向链表中。
请结合图1至图2,并参阅图12所示,在本发明一实施例中,命令保存单元111将命令中给定的逻辑地址发送至节点搜索单元113,节点搜索单元113由第一优先队列1132获取最大的逻辑地址长度,并以最大的逻辑地址长度作为搜索引擎1130的粒度,节点搜索单元113通过最大的逻辑地址长度设置搜索引擎1130的位掩码,以忽略不搜索的位,节点搜索单元113启动搜索引擎1130,在搜索数组1131中搜索给定的逻辑地址的位置。
请结合图1至图2,并参阅图12至图13所示,在本发明一实施例中,在执行步骤S50至步骤S55,命令保存单元111获取索引编号后,查找给定的逻辑地址的方法包括利用索引编号定位双向链表中的节点。在查找到的节点中,查找给定的逻辑地址,判断给定的逻辑地址是否落在此节点,当查找到节点中不存在给定的逻辑地址,或给查找到节点中给定的逻辑地址不全时,查找此节点的前一节点和/或后一节点,并判断给定的逻辑地址是否存在。以查找到的节点为中心,由距离查找到的节点的距离近至远,查找给定的逻辑地址,直至查找到完整的给定的逻辑地址,或直至查遍双向链表。请参阅图13所示,本发明提供的所述无效标记命令的处理方法具体包括:
S60:发送给定的逻辑地址至节点搜索单元113。
S61:在搜索数组1131中是否检索到给定的逻辑地址,若是,则执行步骤S63,否则执行步骤S62,回复给定的逻辑地址不存在命令保存单元111中。
S63:在搜索数组1131中获取逻辑地址对应的索引编号。
S64:在双向链表中,以获取的索引编号对应的节点为起点,向前或向后搜索给定的逻辑地址。
S65:判断在双向链表中是否搜索到给定的逻辑地址,若在双向链表中搜索到给定的逻辑地址,则执行步骤S66,则反馈找到给定的逻辑地址,若在双向链表中未搜索到给定的逻辑地址,则执行步骤S67,则反馈双向链表中不存在给定的逻辑地址。
请参阅图1、图2和图14所示,本发明还提供一种无效标记命令的处理系统10,无效标记命令的处理系统10包括命令保存单元构建单元115、双向链表构建单元116、命令保存单元111、命令执行单元112、节点搜索单元113以及命令回复单元117。其中,保存单元构建单元115用于在控制器110内,配置命令保存单元111,且命令保存单元111保存待执行的无效标记命令。双向链表构建单元116用于配置双向链表,并可以依据无效标记命令中的逻辑地址更新双向链表。命令执行单元112用于执行命令保存单元111中的无效标记命令。命令回复单元117用于回复主机保存在命令保存单元111的无效标记命令执行完成。节点搜索单元113用于内配置有搜索引擎1130、搜索数组1131,第一优先队列1132和第二优先队列1133,用于对已保存无效标记命令中逻辑地址范围的搜索。
综上所述,本发明提供的无效标记命令的处理方法,在接收无效标记命令后能够迅速回复主机命令完成,并将无效标记命令中的逻辑地址范围保存,延后并分散至设备闲置时执行。能持续接收多个无效标记命令,并整合多个无效标记命令中的逻辑地址范围。在执行读命令前查询,保存的无效标记命令中的逻辑地址范围,确认其是否有执行必要。通过节点搜索单元能加速读命令与写命令对已保存无效标记命令中逻辑地址范围的搜索,缩短响应间。以及能快速搜索出最小逻辑地址范围的节点,使设备能以较低执行成本释放出节点空间。本发明提供的无效标记命令的处理方法,能够加快无效标记命令的执行效率。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (18)

1.一种无效标记命令的处理方法,其特征在于,其至少包括:
在数据存储设备中,配置命令保存单元,所述命令保存单元保存待执行的无效标记命令;
在所述命令保存单元中,配置双向链表,所述双向链表存放所述无效标记命令中的逻辑地址;
当所述数据存储设备接收到主机下发的所述无效标记命令时,将所述无效标记命令保存至所述命令保存单元中,并依据所述无效标记命令中的逻辑地址更新所述双向链表;
回复所述主机所述无效标记命令执行完成;
当所述数据存储设备闲置时,执行所述命令保存单元中的所述无效标记命令。
2.根据权利要求1所述的无效标记命令的处理方法,其特征在于,在将所述无效标记命令保存至所述命令保存单元前,所述无效标记命令的处理方法还包括检测所述命令保存单元中的空间是否充足。
3.根据权利要求2所述的无效标记命令的处理方法,其特征在于,当所述命令保存单元中的空间不充足时,所述无效标记命令的处理方法包括:
在所述命令保存单元中搜索逻辑地址长度最小的节点;
释放所述逻辑地址长度最小的节点所占的空间。
4.根据权利要求3所述的无效标记命令的处理方法,其特征在于,在所述命令保存单元中搜索逻辑地址长度最小的节点具体包括:
通过最小优先队列获得最小的逻辑地址长度;
设置位掩码,以忽略搜索数组中节点的起始逻辑地址;
在所述搜索数组中找到最小的逻辑地址长度对应的索引编号;
通过所述索引编号在所述双向链表中定位该索引编号对应的节点。
5.根据权利要求1所述的无效标记命令的处理方法,其特征在于,将所述无效标记命令保存至所述命令保存单元中具体包括:
将所述无效标记命令中的逻辑范围按照逻辑地址排序;
按照逻辑地址,将无效标记命令中的逻辑范围建立新的双向链表;
将新建立的双向链表与所述命令保存单元中原有的双向链表合并,且以节点的起始逻辑地址顺序排列。
6.根据权利要求5所述的无效标记命令的处理方法,其特征在于,将所述无效标记命令保存至所述命令保存单元中还包括:
检查合并后的双向链表中,相邻的节点中逻辑范围是否有连续或重叠,若有,则将具有重叠和/或连续的节点合并。
7.根据权利要求5所述的无效标记命令的处理方法,其特征在于,将所述无效标记命令保存至所述命令保存单元中还包括:
根据合并后的双向链表,更新节点搜索单元中的相关数据信息。
8.根据权利要求7所述的无效标记命令的处理方法,其特征在于,更新所述节点搜索单元中的相关数据信息包括:
更新第一优先队列中对应节点的逻辑地址长度和最大的逻辑地址长度;
更新第二优先队列中对应节点的逻辑地址长度和最小的逻辑地址长度。
9.根据权利要求1所述的无效标记命令的处理方法,其特征在于,当所述命令保存单元中有所述无效标记命令时,所述数据存储设备接收到主机发送的读请求时,所述无效标记命令的处理方法包括:
查询所述命令保存单元中是否有所述读请求中的逻辑地址;
当所述命令保存单元中有所述读请求中的所述逻辑地址时,回复所述主机特定的数据内容。
10.根据权利要求1所述的无效标记命令的处理方法,其特征在于,当所述命令保存单元中有所述无效标记命令时,所述数据存储设备接收到主机发送的写请求时,所述无效标记命令的处理方法包括:
将所述写请求中的逻辑地址移出所述命令保存单元;
将所述主机发送的数据写入所述写请求中所述逻辑地址对应的物理地址中。
11.根据权利要求1所述的无效标记命令的处理方法,其特征在于,当所述数据存储设备接收到读请求和/或写请求时,需要在所述命令保存单元中查找所述无效标记命令中的逻辑地址。
12.根据权利要求11所述的无效标记命令的处理方法,其特征在于,在所述命令保存单元中查找所述无效标记命令中的逻辑地址的具体方法包括:
通过第一优先队列获取最大的逻辑地址长度,并以所述最大的逻辑地址长度作为搜索引擎的粒度;
通过所述最大的逻辑地址长度设置搜索引擎的位掩码;
启动所述搜索引擎,在搜索数组中搜索给定的逻辑地址。
13.根据权利要求12所述的无效标记命令的处理方法,其特征在于,若所述搜索数组中存在所述给定的逻辑地址,则获取所述给定的逻辑地址对应的索引编号。
14.根据权利要求13所述的无效标记命令的处理方法,其特征在于,在所述命令保存单元中查找所述无效标记命令中的逻辑地址还包括:在所述双向链表中,以所述给定的逻辑地址对应的索引编号为中心,查找所述双向链表中是否存在所述给定的逻辑地址。
15.一种无效标记命令的处理系统,其特征在于,所述无效标记命令的处理系统用于执行权利要求1所述的无效标记命令的处理方法,且所述无效标记命令的处理系统包括:
命令保存单元,设置在所述数据存储设备中,用于保存待执行的无效标记命令;
命令执行单元,设置在所述数据存储设备中,用于执行所述无效标记命令。
16.根据权利要求15所述的无效标记命令的处理系统,其特征在于,所述无效标记命令的处理系统还包括节点搜索单元,所述节点搜索单元设置在所述数据存储设备中。
17.根据权利要求16所述的无效标记命令的处理系统,其特征在于,所述节点搜索单元内还包括搜索数组,所述搜索数组内的数组元素与所述命令保存单元中的双向链表的节点是通过索编号来相互对应。
18.一种数据存储设备,其特征在于,所述数据存储设备上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述的无效标记命令的处理方法。
CN202110987345.0A 2021-08-26 2021-08-26 一种无效标记命令的处理方法、系统及数据存储设备 Active CN113742255B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110987345.0A CN113742255B (zh) 2021-08-26 2021-08-26 一种无效标记命令的处理方法、系统及数据存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110987345.0A CN113742255B (zh) 2021-08-26 2021-08-26 一种无效标记命令的处理方法、系统及数据存储设备

Publications (2)

Publication Number Publication Date
CN113742255A true CN113742255A (zh) 2021-12-03
CN113742255B CN113742255B (zh) 2023-08-08

Family

ID=78733041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110987345.0A Active CN113742255B (zh) 2021-08-26 2021-08-26 一种无效标记命令的处理方法、系统及数据存储设备

Country Status (1)

Country Link
CN (1) CN113742255B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116893853A (zh) * 2023-09-11 2023-10-17 合肥康芯威存储技术有限公司 一种存储设备及擦除指令的处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019971A (zh) * 2012-11-25 2013-04-03 向志华 快速响应trim命令的方法、SSD控制器及系统
US8838936B1 (en) * 2013-11-27 2014-09-16 NXGN Data, Inc. System and method for efficient flash translation layer
CN107391391A (zh) * 2017-07-19 2017-11-24 深圳大普微电子科技有限公司 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘
CN109426622A (zh) * 2017-08-31 2019-03-05 香港理工大学深圳研究院 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN110704330A (zh) * 2018-07-09 2020-01-17 慧荣科技股份有限公司 数据存取控制装置及方法
US20210004180A1 (en) * 2019-07-05 2021-01-07 SK Hynix Inc. Memory system and operating method thereof
CN112506814A (zh) * 2020-11-17 2021-03-16 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019971A (zh) * 2012-11-25 2013-04-03 向志华 快速响应trim命令的方法、SSD控制器及系统
US8838936B1 (en) * 2013-11-27 2014-09-16 NXGN Data, Inc. System and method for efficient flash translation layer
CN107391391A (zh) * 2017-07-19 2017-11-24 深圳大普微电子科技有限公司 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘
CN109426622A (zh) * 2017-08-31 2019-03-05 香港理工大学深圳研究院 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘
CN110704330A (zh) * 2018-07-09 2020-01-17 慧荣科技股份有限公司 数据存取控制装置及方法
US20210004180A1 (en) * 2019-07-05 2021-01-07 SK Hynix Inc. Memory system and operating method thereof
CN110515552A (zh) * 2019-08-22 2019-11-29 深圳市得一微电子有限责任公司 一种存储设备数据快速写入的方法及系统
CN112506814A (zh) * 2020-11-17 2021-03-16 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116893853A (zh) * 2023-09-11 2023-10-17 合肥康芯威存储技术有限公司 一种存储设备及擦除指令的处理方法
CN116893853B (zh) * 2023-09-11 2023-12-12 合肥康芯威存储技术有限公司 一种存储设备及擦除指令的处理方法

Also Published As

Publication number Publication date
CN113742255B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
KR102042643B1 (ko) 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리
US11334270B2 (en) Key-value store using journaling with selective data storage format
US20140279941A1 (en) Managing Multiple Sets of Metadata
WO2017113213A1 (zh) 访问请求处理方法、装置及计算机系统
US20150074341A1 (en) Memory system including key-value store
CN104881334A (zh) 缓存数据的防掉电保护方法及系统
US11200178B2 (en) Apparatus and method for transmitting map data in memory system
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
CN109240939B (zh) 一种快速处理固态硬盘trim的方法
KR20220129662A (ko) 순차적으로 프로그래밍하는 메모리 서브시스템의 순차 판독 최적화
US20170160940A1 (en) Data processing method and apparatus of solid state disk
KR20200030245A (ko) 메모리 시스템에서의 유효 데이터 관리 방법 및 장치
WO2017113211A1 (zh) 访问请求处理方法、装置及计算机系统
CN106776361B (zh) 一种面向大规模非易失性存储介质的缓存方法和系统
CN113742255B (zh) 一种无效标记命令的处理方法、系统及数据存储设备
CN109165321A (zh) 一种基于非易失内存的一致性哈希表构建方法和系统
WO2016206070A1 (zh) 一种文件更新方法及存储设备
US20230333779A1 (en) Memory system with controller to write data to memory based on lifetime information in write command
CN107765992B (zh) 一种处理数据的方法和装置
CN111290975A (zh) 使用统一缓存处理读命令与预读命令的方法及其存储设备
US20150067237A1 (en) Memory controller, semiconductor memory system, and memory control method
KR20190134034A (ko) 복구 가능한 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR101716348B1 (ko) 메모리 시스템, 그것의 동작 방법, 그리고 그것을 포함하는 컴퓨팅 시스템
US11880593B2 (en) Host, operating method of host and storage system
KR101426806B1 (ko) 오브젝트 아이디에 기반하여 저장 매체에서의 영속화를 제어하는 방법, 그 컴퓨터 시스템 및 스토리지 시스템

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