CN106649131B - 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 - Google Patents
一种固态硬盘及其逻辑地址范围冲突监控方法、系统 Download PDFInfo
- Publication number
- CN106649131B CN106649131B CN201611245562.8A CN201611245562A CN106649131B CN 106649131 B CN106649131 B CN 106649131B CN 201611245562 A CN201611245562 A CN 201611245562A CN 106649131 B CN106649131 B CN 106649131B
- Authority
- CN
- China
- Prior art keywords
- node
- binary tree
- new node
- new
- conflict
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012544 monitoring process Methods 0.000 title claims abstract description 24
- 239000007787 solid Substances 0.000 title claims abstract description 16
- 238000010276 construction Methods 0.000 claims abstract description 34
- 238000000605 extraction Methods 0.000 claims description 6
- 230000005012 migration Effects 0.000 claims description 4
- 238000013508 migration Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种固态硬盘及其逻辑地址范围冲突监控方法、系统,该方法包括:获取主机端发送的数据操作命令;提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点;按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。本申请提高了逻辑地址访问冲突检测过程中的检测效率。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种固态硬盘及其逻辑地址范围冲突监控方法、系统。
背景技术
SSD(即Solid State Disk,固态硬盘)是基于Nand Flash技术的新型存储器件,具有读写速度快,存储密度大,功耗低等特点,目前已得到越来越广泛的应用。SSD主要包括存储单元和控制单元。其中,SSD的存储单元是指Nand Flash芯片,Nand Flash是一种新型的非易失存储介质,每个Nand Flash由多个target构成,每个target由多个LUN组成,每个LUN包含多个block,每个block包含多个page。另外,SSD的控制单元是指Nand Flash控制器芯片,负责对Nand Flash的读写操作和控制。Nand Flash控制器有多个Flash channel,每个Flash channel可以控制多个Nand Flash芯片。
通常来说,SSD固件将主机端发下的读写命令拆分成多个独立的Flash page操作,并发送给Nand Flash控制器,Nand Flash控制器根据磨损均衡算法,将Flash page操作转发到某一个Flash channel的某一个Flash target。
为了提高SSD读写性能,SSD固件支持主机端多个读写命令的并发操作,由于NandFlash控制器会跨多个Flash channel和多个Flash target调度,主机端的并发读写命令会乱序处理。考虑上述情况,假设主机下发一个读命令和一个写命令,并且它们的逻辑地址范围有重叠,如果不做冲突检测处理,读命令返回的数据会混合部分先写入的旧数据和部分后写入的新数据,从而影响SSD的数据正确性。为了保证SSD的数据正确性,需要在Flash控制器上对主机端的读写命令进行逻辑地址范围冲突检测,避免出现混合新旧数据的情况。
目前,不同的SSD厂商有不同的逻辑地址范围冲突检测方法,有采用遍历逻辑地址范围,依次判断的方法;也有采用计算逻辑地址哈希值,构建哈希队列,然后再依次判断的方法。然而,总体来说,上述每种检测方法均需要消耗较长的时间,检测效率较低。
综上所述可以看出,如何提高逻辑地址访问冲突检测过程中的检测效率是目前还有待进一步解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种固态硬盘及其逻辑地址范围冲突监控方法、系统,提高了逻辑地址访问冲突检测过程中的检测效率。其具体方案如下:
一种逻辑地址范围冲突监控方法,应用于固态硬盘,包括:
获取主机端发送的数据操作命令;
提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点;
按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
可选的,所述主机端发送的数据操作命令包括读取命令和/或写入命令。
可选的,所述二叉树构造规则包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;
若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
可选的,所述二叉树构造规则包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;
若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的右分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的左分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
可选的,所述方法,还包括:
若新节点添加失败,则将新节点保存至与冲突节点对应的目标链表中。
可选的,所述方法,还包括:
若新节点添加失败,则对冲突节点对应的数据操作命令进行优先响应;
若冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树,然后按照所述二叉树构造规则,将所述目标链表中保存的节点迁移至变更后的二叉树。
本发明还公开了一种逻辑地址范围冲突监控系统,应用于固态硬盘,包括:
命令获取模块,用于获取主机端发送的数据操作命令;
地址提取模块,用于提取每个数据操作命令所对应的逻辑地址范围;
地址抽象模块,用于将所述地址提取模块提取到的逻辑地址范围抽象成节点,以得到相应的新节点;
二叉树构造模块,用于按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
可选的,所述二叉树构造模块所使用的二叉树构造规则,具体包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;
若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
可选的,所述系统,还包括:
节点保存模块,用于当新节点添加失败,则将新节点保存至与冲突节点对应的目标链表中;
优先响应模块,用于对冲突节点对应的数据操作命令进行优先响应;
节点剔除模块,用于当冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树;
节点迁移模块,用于按照所述二叉树构造规则,将所述目标链表中保存的节点迁移至变更后的二叉树。
本发明进一步公开了一种固态硬盘,包括前述公开的逻辑地址范围冲突监控系统。
本发明中,逻辑地址范围冲突监控方法,包括:获取主机端发送的数据操作命令;提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点;按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
可见,本发明在获取到主机端发送的数据操作命令之后,将会提取出每个数据操作命令所对应的逻辑地址范围,然后将提取到的逻辑地址范围抽象成节点,然后按照预先基于逻辑地址大小顺序来设定得到的二叉树构造规则,尝试将上述经过抽象后得到的节点添加至当前现有二叉树中,如果能够添加成功,则可直接判定上述节点与现有二叉树中的节点之间不存在逻辑地址范围冲突,如果添加失败,则可直接判定上述节点与现有二叉树中的节点之间存在逻辑地址范围冲突,由上可见,本发明将数据操作命令所对应的逻辑地址范围抽象成节点,然后根据该节点是否能够按照预设的规则添加至现有二叉树中,便可快速地完成逻辑地址范围冲突检测,也即,本发明提高了逻辑地址访问冲突检测过程中的检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种逻辑地址范围冲突监控方法流程图;
图2为本发明实施例公开的一种具体的逻辑地址范围冲突监控方法流程图;
图3为本发明实施例公开的一种现有二叉树结构示意图;
图4为新节点与现有二叉树发生冲突的示意图;
图5为在对冲突节点进行优先响应后得到的二叉树示意图;
图6为在冲突节点删除后新节点的添加示意图;
图7为本发明实施例公开的一种逻辑地址范围冲突监控系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种逻辑地址范围冲突监控方法,应用于固态硬盘,参见图1所示,该方法包括:
步骤S11:获取主机端发送的数据操作命令。
可以理解的是,本实施例中,主机端发送的数据操作命令具体可以包括读取命令和/或写入命令。其中,每个读取命令和每个写入命令均存在各自所对应的逻辑地址范围。
步骤S12:提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点。
本实施例中,将提取到的逻辑地址范围抽象成节点是指将提取到的逻辑地址范围抽象成二叉树的节点。
步骤S13:按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作。
步骤S14:若上述新节点添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突。
步骤S15:若上述新节点添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
可见,本发明实施例在获取到主机端发送的数据操作命令之后,将会提取出每个数据操作命令所对应的逻辑地址范围,然后将提取到的逻辑地址范围抽象成节点,然后按照预先基于逻辑地址大小顺序来设定得到的二叉树构造规则,尝试将上述经过抽象后得到的节点添加至当前现有二叉树中,如果能够添加成功,则可直接判定上述节点与现有二叉树中的节点之间不存在逻辑地址范围冲突,如果添加失败,则可直接判定上述节点与现有二叉树中的节点之间存在逻辑地址范围冲突,由上可见,本发明实施例将数据操作命令所对应的逻辑地址范围抽象成节点,然后根据该节点是否能够按照预设的规则添加至现有二叉树中,便可快速地完成逻辑地址范围冲突检测,也即,本发明实施例提高了逻辑地址访问冲突检测过程中的检测效率。
参见图2所示,本发明实施例公开了一种具体的逻辑地址范围冲突监控方法,包括下面步骤:
步骤S21:获取主机端发送的数据操作命令。
步骤S22:提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点。
步骤S23:按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作。
本实施例中,上述二叉树构造规则具体可以包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点,若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
具体的,本实施例在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
步骤S24:若上述新节点添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
步骤S25:若上述新节点添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,然后进入步骤S26。
步骤S26:将新节点保存至与冲突节点对应的目标链表中。
步骤S27:对冲突节点对应的数据操作命令进行优先响应。
步骤S28:若冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树,然后按照二叉树构造规则,将上述目标链表中保存的节点迁移至变更后的二叉树。
例如,假设现有二叉树的具体构造如图3所示,如果此时获取到一个新的数据操作命令,该命令对应的逻辑地址范围从1200至1280,则将该逻辑地址范围抽象成一个新节点“1200-1280”,按照上述二叉树构造规则,可以检测出上述新节点“1200-1280”与现有二叉树中的已有节点“1200-1300”之间存在逻辑地址范围冲突,参见图4所示,此时可以把上述新节点“1200-1280”保存至已有节点“1200-1300”对应的目标链表中。接着可以对上述已有节点“1200-1300”对应的数据操作命令进行优先响应,也即提高其处理优先级,当响应结束后,便可将上述已有节点“1200-1300”从现有二叉树中删除,并按照二叉树构造规则重新构造二叉树,得到如图5所示的变更后的二叉树。紧接着,按照上述二叉树构造规则,将上述目标链表中保存的新节点“1200-1280”迁移至上述变更后的二叉树,得到如图6所示的二叉树。
本发明实施例公开了另一种具体的逻辑地址范围冲突监控方法,包括下面步骤:
步骤S31:获取主机端发送的数据操作命令。
步骤S32:提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点。
步骤S33:按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作。
本实施例中,上述二叉树构造规则具体可以包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点,若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的右分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的左分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
步骤S34:若上述新节点添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
步骤S35:若上述新节点添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,然后进入步骤S36。
步骤S36:将新节点保存至与冲突节点对应的目标链表中。
步骤S37:对冲突节点对应的数据操作命令进行优先响应。
步骤S38:冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树,然后按照二叉树构造规则,将上述目标链表中保存的节点迁移至变更后的二叉树。
相应的,本发明实施例还公开了一种逻辑地址范围冲突监控系统,应用于固态硬盘,参见图7所示,该系统包括:
命令获取模块11,用于获取主机端发送的数据操作命令;
地址提取模块12,用于提取每个数据操作命令所对应的逻辑地址范围;
地址抽象模块13,用于将地址提取模块13提取到的逻辑地址范围抽象成节点,以得到相应的新节点;
二叉树构造模块14,用于按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突。
具体的,上述二叉树构造模块所使用的二叉树构造规则,可以包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;
其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
进一步的,本发明实施例中的逻辑地址范围冲突监控系统,还可以包括节点保存模块、优先响应模块、节点剔除模块和节点迁移模块;其中,
节点保存模块,用于当新节点添加失败,则将新节点保存至与冲突节点对应的目标链表中;
优先响应模块,用于对冲突节点对应的数据操作命令进行优先响应;
节点剔除模块,用于当冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树;
节点迁移模块,用于按照二叉树构造规则,将目标链表中保存的节点迁移至变更后的二叉树。
另外,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本发明实施例在获取到主机端发送的数据操作命令之后,将会提取出每个数据操作命令所对应的逻辑地址范围,然后将提取到的逻辑地址范围抽象成节点,然后按照预先基于逻辑地址大小顺序来设定得到的二叉树构造规则,尝试将上述经过抽象后得到的节点添加至当前现有二叉树中,如果能够添加成功,则可直接判定上述节点与现有二叉树中的节点之间不存在逻辑地址范围冲突,如果添加失败,则可直接判定上述节点与现有二叉树中的节点之间存在逻辑地址范围冲突,由上可见,本发明实施例将数据操作命令所对应的逻辑地址范围抽象成节点,然后根据该节点是否能够按照预设的规则添加至现有二叉树中,便可快速地完成逻辑地址范围冲突检测,也即,本发明实施例提高了逻辑地址访问冲突检测过程中的检测效率。
进一步的,本发明还公开了一种固态硬盘,包括前述公开的逻辑地址范围冲突监控系统。关于该系统的具体构造可以参考前述实施例中公开的相应内容,在此不再进行赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种固态硬盘及其逻辑地址范围冲突监控方法、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种逻辑地址范围冲突监控方法,其特征在于,应用于固态硬盘,包括:
获取主机端发送的数据操作命令;
提取每个数据操作命令所对应的逻辑地址范围,并将提取到的逻辑地址范围抽象成节点,以得到相应的新节点;
按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突;
其中,所述二叉树构造规则包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败;
或,若现有二叉树中的根节点还未存在,则将新节点确定为根节点;若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的右分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的左分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
2.根据权利要求1所述的逻辑地址范围冲突监控方法,其特征在于,所述主机端发送的数据操作命令包括读取命令和/或写入命令。
3.根据权利要求1所述的逻辑地址范围冲突监控方法,其特征在于,还包括:
若新节点添加失败,则将新节点保存至与冲突节点对应的目标链表中。
4.根据权利要求3所述的逻辑地址范围冲突监控方法,其特征在于,还包括:
若新节点添加失败,则对冲突节点对应的数据操作命令进行优先响应;
若冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树,然后按照所述二叉树构造规则,将所述目标链表中保存的节点迁移至变更后的二叉树。
5.一种逻辑地址范围冲突监控系统,其特征在于,应用于固态硬盘,包括:
命令获取模块,用于获取主机端发送的数据操作命令;
地址提取模块,用于提取每个数据操作命令所对应的逻辑地址范围;
地址抽象模块,用于将所述地址提取模块提取到的逻辑地址范围抽象成节点,以得到相应的新节点;
二叉树构造模块,用于按照预先基于逻辑地址大小顺序设定的二叉树构造规则,将新节点向当前的现有二叉树中进行添加操作,若添加失败,则判定该新节点与现有二叉树中的节点之间存在逻辑地址范围冲突,若添加成功,则判定该新节点与现有二叉树中的节点之间不存在逻辑地址范围冲突;
其中,所述二叉树构造模块所使用的二叉树构造规则包括:
若现有二叉树中的根节点还未存在,则将新节点确定为根节点;若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的左分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的右分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败;
或,若现有二叉树中的根节点还未存在,则将新节点确定为根节点;若现有二叉树中的根节点已经存在,则按照节点深度由浅至深的顺序,将新节点分别与现有二叉树中的节点进行依次比较,以试图从现有二叉树中确定出适合新节点的添加位置;其中,在将新节点与现有二叉树中的任一节点进行比较的过程中,若新节点的逻辑结束地址小于该节点的逻辑起始地址,则判定该节点的右分支为新节点的潜在添加区域,若新节点的逻辑起始地址大于该节点的逻辑结束地址,则判定该节点的左分支为新节点的潜在添加区域,否则,将该节点确定为新节点对应的冲突节点,并判定新节点添加失败。
6.根据权利要求5所述的逻辑地址范围冲突监控系统,其特征在于,还包括:
节点保存模块,用于当新节点添加失败,则将新节点保存至与冲突节点对应的目标链表中;
优先响应模块,用于对冲突节点对应的数据操作命令进行优先响应;
节点剔除模块,用于当冲突节点所对应的数据操作命令已响应完毕,则将该冲突节点从现有二叉树中删除,得到变更后的二叉树;
节点迁移模块,用于按照所述二叉树构造规则,将所述目标链表中保存的节点迁移至变更后的二叉树。
7.一种固态硬盘,其特征在于,包括如权利要求5或6所述的逻辑地址范围冲突监控系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611245562.8A CN106649131B (zh) | 2016-12-29 | 2016-12-29 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611245562.8A CN106649131B (zh) | 2016-12-29 | 2016-12-29 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106649131A CN106649131A (zh) | 2017-05-10 |
CN106649131B true CN106649131B (zh) | 2019-12-31 |
Family
ID=58835889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611245562.8A Active CN106649131B (zh) | 2016-12-29 | 2016-12-29 | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649131B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831575A (zh) * | 2019-04-16 | 2020-10-27 | 武汉海康存储技术有限公司 | 逻辑地址范围的存储方法、装置及存储设备 |
CN112527196B (zh) * | 2020-12-07 | 2023-02-14 | 成都佰维存储科技有限公司 | Cache读写方法、装置、计算机可读存储介质及电子设备 |
CN113138719B (zh) * | 2021-04-29 | 2022-11-01 | 山东华芯半导体有限公司 | 一种实现ssd快速随机写并避免写重复的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452422A (zh) * | 2007-11-29 | 2009-06-10 | 大唐移动通信设备有限公司 | 一种芯片的数据读写方法、相应装置和系统 |
CN101452517A (zh) * | 2008-12-29 | 2009-06-10 | 浙江大学 | 无线无源射频传感系统的防冲突数据传输方法 |
CN102811227A (zh) * | 2012-08-30 | 2012-12-05 | 重庆大学 | IPsec协议下标准方式ACL规则的一种管理机制 |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
CN104240747A (zh) * | 2013-06-07 | 2014-12-24 | 炬力集成电路设计有限公司 | 一种多媒体数据获取的方法及装置 |
CN105808155A (zh) * | 2014-12-31 | 2016-07-27 | 北京神州云科数据技术有限公司 | 基于双控制器的读写锁方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618755B1 (en) * | 1999-12-07 | 2003-09-09 | Watchguard Technologies, Inc. | Automatically identifying subnetworks in a network |
-
2016
- 2016-12-29 CN CN201611245562.8A patent/CN106649131B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452422A (zh) * | 2007-11-29 | 2009-06-10 | 大唐移动通信设备有限公司 | 一种芯片的数据读写方法、相应装置和系统 |
CN101452517A (zh) * | 2008-12-29 | 2009-06-10 | 浙江大学 | 无线无源射频传感系统的防冲突数据传输方法 |
CN102811227A (zh) * | 2012-08-30 | 2012-12-05 | 重庆大学 | IPsec协议下标准方式ACL规则的一种管理机制 |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
CN104240747A (zh) * | 2013-06-07 | 2014-12-24 | 炬力集成电路设计有限公司 | 一种多媒体数据获取的方法及装置 |
CN105808155A (zh) * | 2014-12-31 | 2016-07-27 | 北京神州云科数据技术有限公司 | 基于双控制器的读写锁方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106649131A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647151B (zh) | 一种全闪系统元数据落盘方法、装置、设备及存储介质 | |
EP2940691B1 (en) | Storage controller, storage device, storage system and method of operating the storage controller | |
TWI467371B (zh) | 記憶體模組及其利用方法、電腦程式與電腦可讀式媒體 | |
CN107729558B (zh) | 文件系统碎片整理的方法、系统、装置及计算机存储介质 | |
CN106649131B (zh) | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 | |
CN107957852B (zh) | 一种提升固态硬盘性能一致性的方法 | |
CN103995855A (zh) | 存储数据的方法和装置 | |
KR20180133982A (ko) | 저장 장치 및 그것의 동작 방법 | |
CN103942009A (zh) | 扩展终端中存储器的设备和方法 | |
KR20170098900A (ko) | 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템 | |
CN103955433A (zh) | 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置 | |
CN103198122A (zh) | 重启内存数据库的方法和装置 | |
CN109491592B (zh) | 存储设备及其数据写入方法、存储装置 | |
CN107329836B (zh) | 多系统的内存管理方法、管理装置以及移动终端 | |
CN105468538A (zh) | 一种内存迁移方法及设备 | |
CN110504002B (zh) | 一种硬盘数据一致性测试方法与装置 | |
US10528116B2 (en) | Fast resume from hibernate | |
CN108877858B (zh) | 储存装置以及刷新方法 | |
CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
CN107430546A (zh) | 一种文件更新方法及存储设备 | |
US20150067192A1 (en) | System and method for adjusting sas addresses of sas expanders | |
CN109086001B (zh) | 一种NAND Flash垃圾回收方法及系统 | |
CN111897489B (zh) | 数据写入方法、装置、设备及计算机可读存储介质 | |
CN109508151A (zh) | 一种提升固态硬盘性能的方法 | |
CN113971001B (zh) | 存储器装置中的存储流量模式检测 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191125 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: Suzhou Wave Intelligent Technology Co., Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: Zhengzhou Yunhai Information Technology Co. Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |