CN109902033B - 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 - Google Patents

应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 Download PDF

Info

Publication number
CN109902033B
CN109902033B CN201910115695.0A CN201910115695A CN109902033B CN 109902033 B CN109902033 B CN 109902033B CN 201910115695 A CN201910115695 A CN 201910115695A CN 109902033 B CN109902033 B CN 109902033B
Authority
CN
China
Prior art keywords
lba
namespace
controller
node
lmu
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
CN201910115695.0A
Other languages
English (en)
Other versions
CN109902033A (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.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors 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 Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN201910115695.0A priority Critical patent/CN109902033B/zh
Publication of CN109902033A publication Critical patent/CN109902033A/zh
Priority to PCT/CN2019/094355 priority patent/WO2020164216A1/zh
Application granted granted Critical
Publication of CN109902033B publication Critical patent/CN109902033B/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
    • 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

本发明公开一种应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法,基于LMU的方式对SSD控制器中的controller进行组织管理管理,同时基于变体B+树结构对namespace进行LMU分配。在创建namespace时执行controller LBA的分配。在controller LBA分配方法时,将所有controller LBA划分为若干个LBA管理单元LMU,每个LMU包含相同数量的controller LBA,SSD控制器会以LMU为单位为namespace分配controller LBA。为了有效利用分配后的controller LBA,本方法创建度为M的变体B+树数据结构,将可用的LMU ID分配给变体B+树叶子结点中的关键字,即完成了本实施例所述的分配方法。本发明可以提升controller LBA利用率、提高SSD控制器前端读写处理速度。

Description

应用于NVMe SSD控制器的namespace的LBA分配方法和映射 方法
技术领域
本发明涉及基于NVMe(Non-Volatile Memory express)协议的SSD(solid statedisk,固态硬盘)控制器领域,尤其涉及NVMe协议中多namespace(命名空间)的LBA(logicblock address,逻辑块地址)分配方法和LBA映射方法。
背景技术
一个NVMe SSD主要由SSD控制器、闪存空间和PCIe接口组成。NVMe协议支持主机使用若干独立的逻辑空间经由SSD控制器来管理闪存空间,这样划分出来的每一个逻辑空间称为namespace。每个namespace由若干LBA组成,LBA范围是0到N-1(N是namespace包含的LBA个数),一个LBA大小则通常指定为4KB,这里将这类LBA称之为namespace LBA。每个namespace都有其特定ID,主机在发送读写SSD命令时,通过指定namespace ID和namespaceLBA对闪存相关位置进行操作。在企业级SSD中,客户可以根据不同需求创建不同特征的namespace,即在一个SSD上创建出若干个不同特征的磁盘供不同客户使用。Namespace的另外一个重要使用场合为SR-IOV(Single Root-IO Virtualization)。SR-IOV技术允许在虚拟机之间高效共享PCIe设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的IO性能。单个SSD可由许多虚拟机共享,共享SSD不仅要为每个虚拟机提供专用资源(专用namespace),并且还要提供通用资源(公有namespace)。因此,在NVMe SSD设备中实现多namespace支持符合企业级SSD的发展趋势。
主机在对SSD设备执行读写操作时,SSD控制器会根据所接收的namespace ID将namespace LBA转换为controller LBA。Controller LBA是SSD管理闪存空间的基本单元,大小通常也为4K。在主机申请创建namespace时,SSD控制器会将指定数目的可用controller LBA分配到新的namespace中,这些被分配的controller LBA通常情况下不会从0开始,有时甚至不会彼此连续。主机对于此类情况无法感知,因为controller LBA对于主机是透明的,主机只知道新创建的namespace所包含的namespace LBA是连续的。因此,设计并实现合理高效的controller LBA分配方案和namespace LBA到controller LBA的映射方案,对于提升controller LBA利用率、提高SSD控制器前端读写处理速度是非常具有现实意义的。
发明内容
本发明要解决的技术问题是提供一种应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法,提升controller LBA利用率、提高SSD控制器前端读写处理速度。
为了解决所述技术问题,本发明采用的技术方案是:一种应用于NVMe SSD控制器的namespace的LBA分配方法,namespace指NVMe协议主机中划分的逻辑空间,LBA指逻辑块地址,所述方法包括以下步骤:S01)、SSD控制器将所有controller LBA等分为NL个LBA管理单元LMU,除最后一个LMU外,每个LMU包括NCL个controller LBA,controller LBA指SSD控制器内部的LBA;S02)、使用数组结构记录每个LMU的ID和起始controller LBA,起始controller LBA记为CLBALMUID-start,;S03)、SSD控制器控制器接收并解析NVMe协议主机下发的namespace创建请求,获得创建所需要的LBA个数NLBA;S04)、通过NLBA和NCL计算需要分配的LMU个数NNL
Figure BDA0001968994610000021
Figure BDA0001968994610000022
代表向上取整;S05)、以集合S={NCL,2NCL,3NCL,…,NNL*NCL}中的所有元素为关键字创建度为M的变体B+树数据结构,创建流程为:S51)、新建结点,并将其作为当前结点;S52)、将集合S中的首个元素作为关键字插入当前接点中,并从S中删除该元素;S53)、判断当前结点包含的关键字个数,如果关键字个数小于或者等于M-1,则执行步骤S54,否则执行步骤S55;S54)、判断S中元素是否为空,是则结束,否则返回步骤S52;S55)、以当前结点中第
Figure BDA0001968994610000023
个关键字为中心,
Figure BDA0001968994610000024
代表向下取整,将当前结点分裂为两个结点;S56)、将第
Figure BDA0001968994610000025
个关键字按从大到小的顺序插入父结点,该关键字的左边指针指向当前结点分裂后的左边结点,右边指针指向分裂后的右边结点,并将父结点作为当前结点;返回步骤c;S06)、为变体B+树的叶子节点中的每个关键字分配可用的LMU ID,变体B+树数据结构创建完成,对namespace的LBA的分配也完成。
进一步的,步骤S55中,第
Figure BDA0001968994610000026
个关键字包含在右边结点内。
进一步的,步骤S56中,将关键字插入父结点时,若无父结点则新建父结点。
进一步的,新创建的度为M的变体B+树具有以下特性:任意非叶子结点最多只有M个儿子,且M>2;根结点的儿子数为[2,M];除根结点以外的非叶子结点的儿子数为[M/2,M];每个结点存放至少
Figure BDA0001968994610000027
至多M-1个关键字,且关键字为LMU所包含controller LBA数目的整数倍;非叶子结点的关键字个数比指向儿子的指针个数小1;非叶子结点的关键字为K[1],K[2],…,K[M-1],且K[i]<K[i+1];非叶子结点的指针为P[1],P[2],…,P[M],其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于等于K[M-1]的子树,其它P[i]指向关键字属于[K[i-1],K[i])的子树;所有叶子结点位于同一层,叶子结点中每个关键字关联一个LMU,所有关键字有序排列。
本发明还公开了一种应用于NVMe SSD控制器的namespace的LBA映射方法,namespace指NVMe协议主机中划分的逻辑空间,LBA指逻辑块地址,本映射方法实现namespace LBA到controller LBA的转换,所述namespace LBA经过权利要求1分配产生,包括以下步骤:S01)、SSD控制器解析主机下发的读写请求,获得namespace ID和namespaceLBA,namespace ID记为NLBAnamespaceID;S02)、以namespace ID对应的变体B+树根结点作为当前结点;S03)、在当前结点中遍历其关键字,找到关键字Ki-1,若满足Ki-1≤NLBAnamespaceID,将大于Ki-1的子结点作为当前结点;S04)、判断当前结点是否为叶子结点,是则继续,否则返回步骤S03;S05)、在当前叶子结点遍历其关键字,找到关键字Kj,如果满足NLBAnamespaceID≤Kj,找到Kj所关联的LMU;S06)、计算namespaceLBA对应的controllerLBA,计算方式为:
CLBAnamespaceID_NLBA=NLBAnamespaceID-Kj-1+CLBALMUID_start,CLBAnamespaceID_NLBA就是namespaceLBA对应的controllerLBA,至此,映射流程结束。
进一步的,步骤S03中遍历当前结点关键字时,同时寻找关键字Ki,并且满足Ki-1≤NLBAnamespaceID≤Ki时,将Ki-1和Ki之间的子节点作为当前结点。
进一步的,步骤步骤S03中遍历当前结点关键字时,同时寻找关键字Kj-1,并且满足Kj-1≤NLBAnamespaceID≤Kj时,找到Kj所关联的LMU。
有益效果:本发明提出的一种应用于NVMe SSD控制器中的LBA分配方法和映射方法,针对SSD设备multi-namespace特性进行了controller LBA的分配优化和存储优化。基于B+树变体数据结构对namespace所包含的controller LBA进行管理,减少了SSD设备对controller LBA的管理成本,同时提高了namespace LBA的映射效率,进而完成了SSD设备读写操作的速度优化。
附图说明
图1为将controller LBA等分成多个LMU的示意图;
图2为本发明创建的变体B+树数据结构图;
图3为LBA分配方法的流程图;
图4为LBA映射方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种应用于NVMe SSD控制器的针对namespace的LBA分配方法,基于LMU的方式对SSD控制器中的controller进行组织管理管理,同时基于变体B+树结构对namespace进行LMU分配。在创建namespace时执行controller LBA的分配。
在设计针对namespace创建的controller LBA分配方法时,需要考虑controllerLBA的组织管理方式。这里的组织管理方式指的是,将所有controller LBA划分为若干个LBA管理单元(LBA management unit,LMU),每个LMU包含相同数量的controller LBA(最后一个LMU可以不符合此要求),SSD控制器会以LMU为单位为namespace分配controller LBA。这种设计方案可以避免整段controller LBA在执行多次namespace创建和删除操作后造成的LBA碎片化,提高了SSD设备中数据的可维护性。该方案的不足在于会造成controllerLBA的浪费,考虑到主机创建namespace时,申请的namespace LBA数量一般不会是LMU的整数倍,SSD控制器会用LMU除namespace LBA数量并向上取整,得到需要分配的LMU数量,此时分配的controller LBA对于主机来说是不可见的,因此无法有效利用。适当的对LMU进行细化操作可以提高controller LBA利用率,即增加LMU数量,减少每个LMU所包含的controller LBA个数。
上述分配的controller LBA对于主机来说是不可见的,为了有效利用分配后的controller LBA,本方法创建度为M的变体B+树数据结构,将可用的LMU ID分配给变体B+树叶子结点中的关键字,即完成了本实施例所述的分配方法。
具体如图3所示,本实施例所述分配方法包括以下步骤:
S01)、SSD控制器将所有controller LBA等分为NL个LBA管理单元LMU,除最后一个LMU外,每个LMU包括NCL个controller LBA,controller LBA指SSD控制器内部的LBA;
S02)、使用数组结构记录每个LMU的ID和起始controller LBA,起始controllerLBA记为CLBALMUID-start
S03)、SSD控制器控制器接收并解析NVMe协议主机下发的namespace创建请求,获得创建所需要的LBA个数NLBA
S04)、通过NLBA和NCL计算需要分配的LMU个数NNL
Figure BDA0001968994610000051
Figure BDA0001968994610000052
代表向上取整;
S05)、以集合S={NCL,2NCL,3NCL,…,NNL*NCL}中的所有元素为关键字创建度为M的变体B+树数据结构,
创建流程为:
S51)、新建结点,并将其作为当前结点;
S52)、将集合S中的首个元素作为关键字插入当前接点中,并从S中删除该元素;
S53)、判断当前结点包含的关键字个数,如果关键字个数小于或者等于M-1,则执行步骤S54,否则执行步骤S55;
S54)、判断S中元素是否为空,是则结束,否则返回步骤S52;
S55)、以当前结点中第
Figure BDA0001968994610000053
个关键字为中心,
Figure BDA0001968994610000054
代表向下取整,将当前结点分裂为两个结点;
S56)、将第
Figure BDA0001968994610000055
个关键字按从大到小的顺序插入父结点,该关键字的左边指针指向当前结点分裂后的左边结点,右边指针指向分裂后的右边结点,并将父结点作为当前结点;返回步骤c;
S06)、为变体B+树的叶子节点中的每个关键字分配可用的LMU ID,变体B+树数据结构创建完成,对namespace的LBA的分配也完成。
具体的,步骤S55中,第
Figure BDA0001968994610000056
个关键字包含在右边结点内。步骤S56中,将关键字插入父结点时,若无父结点则新建父结点。
本实施例新创建的度为M的变体B+树具有以下特性:任意非叶子结点最多只有M个儿子,且M>2;根结点的儿子数为[2,M];除根结点以外的非叶子结点的儿子数为[M/2,M];每个结点存放至少
Figure BDA0001968994610000057
至多M-1个关键字,且关键字为LMU所包含controller LBA数目的整数倍;非叶子结点的关键字个数比指向儿子的指针个数小1;非叶子结点的关键字为K[1],K[2],…,K[M-1],且K[i]<K[i+1];非叶子结点的指针为P[1],P[2],…,P[M],其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于等于K[M-1]的子树,其它P[i]指向关键字属于[K[i-1],K[i])的子树;所有叶子结点位于同一层,叶子结点中每个关键字关联一个LMU,所有关键字有序排列。
如图1所示,为本实施例中对controller LBA进行等分的示意图,其中NC表示SSD控制器中controller LBA总个数,NL表示SSD控制器中LMU总个数,NCL表示每个LMU所包含的controller LBA个数,LMU从0开始计数。由图可知,每个LMU都有其特定的起始controllerLBA和终止controller LBA。除最后一个LMU之外,所有LMU所包含的controller LBA个数均为NCL,最后一个LMU则包含NC-(NL-1)*NCL个controller LBA。主机下发namespace创建请求时,SSD控制器会根据请求指定的空间大小为新的namespace分配可用的LMU。如果指定空间大小(指定的LBA个数)NLBA不是NCL的整数倍,则为其分配
Figure BDA0001968994610000061
个LMU。在主机对namespace执行读写操作时,SSD设备通过解析namespace ID和namespace LBA来对LMU ID进行定位,进而计算出实际要操作的controller LBA。
如图2所示,为本实施例创建的度为M的变体B+树数据结构的示意图,图中所示的叶子结点共分配了9个LMU,该树就是LBA分配的结果。
实施例2
本实施例公开一种应用于NVMe SSD控制器的针对namespace的LBA映射方法,本映射方法实现namespace LBA到controller LBA的转换,所述namespace LBA经过实施例1分配产生,如图4所示,包括以下步骤:
S01)、SSD控制器解析主机下发的读写请求,获得namespace ID和namespace LBA,namespace ID记为NLBAnamespaceID
S02)、以namespace ID对应的变体B+树根结点作为当前结点;
S03)、在当前结点中遍历其关键字,找到关键字Ki-1,若满足Ki-1≤NLBAnamespaceID,将大于Ki-1的子结点作为当前结点;
S04)、判断当前结点是否为叶子结点,是则继续,否则返回步骤S03;
S05)、在当前叶子结点遍历其关键字,找到关键字Kj,如果满足NLBAnamespaceID≤Kj,找到Kj所关联的LMU;
S06)、计算namespaceLBA对应的controllerLBA,计算方式为:CLBAnamespaceID_NLBA=NLBAnamespaceID-Kj-1+CLBALMUID_start,CLBAnamespaceID_NLBA就是namespaceLBA对应的controllerLBA,至此,映射流程结束。
本实施例中,步骤S03中遍历当前结点关键字时,同时寻找关键字Ki,并且满足Ki-1≤NLBAnamespaceID≤Ki时,将Ki-1和Ki之间的子节点作为当前结点。
本实施例中,步骤步骤S03中遍历当前结点关键字时,同时寻找关键字Kj-1,并且满足Kj-1≤NLBAnamespaceID≤Kj时,找到Kj所关联的LMU。
如图2所述,namespace共分配了9个LMU,这些LMU并不连续,即namespace中所包含的controller LBA无法保证完全连续。在主机对某个namespace执行读写操作时,namespace LBA的值可能会跨越多个LMU,此时需要计算namespace LBA在namespace中所对应的LMU索引,再根据LMU索引找到controller LBA。在不采取任何优化方案的情况下,通过除法运算(namespace LBA)/LMU可以计算出namespace LBA在namespace中所对应的LMU索引,然而这种方式在随机读写操作中严重影响执行效率。由于无法保证每个LMU所包含的controller LBA数目为2的幂次方,因此无法使用位运算代替除法运算。基于此,本实施例所述的LBA映射方法采用度为4的变体B+树数据结构来存储和管理namespace中的LMU,其中关键字Ki用于索引namespace LBA范围,NCL仍表示每个LMU所包含的controller LBA个数。根结点和非叶子结点中,Ki左边的子结点所包含的namespace LBA均小于Ki,Ki右边的子结点所包含的namespace LBA则大于等于Ki。叶子结点中,每个Ki指向所对应的LMU ID,该Ki描述了namespace LBA的范围,范围为[Ki-NCL,Ki-1];LMU ID描述了namespace LBA对应的controller LBA的范围,该范围为[LMU_ID*NCL,(LMU_ID+1)*NCL-1]。例如,如果叶子结点中的关键字为5NCL,那么当一个namespace LBA通过树结构进行查找并定位找到叶子结点中的该关键字时,即表示该namespace LBA值的范围是[4NCL,5NCL-1],它所对应的controllerLBA位于LMU21中,controller LBA的范围是[21NCL,22NCL-1].基于该变体B+树索引结构,在输入namespace LBA后最多执行logM-1*N~logM/2*N次查找即可定位namespace LBA所对应的LMU,相较于除法运算更为高效。
本发明提出的一种应用于NVMe SSD控制器中的LBA分配方法和映射方法,针对SSD设备multi-namespace特性进行了controller LBA的分配优化和存储优化。基于B+树变体数据结构对namespace所包含的controller LBA进行管理,减少了SSD设备对controllerLBA的管理成本,同时提高了namespace LBA的映射效率,进而完成了SSD设备读写操作的速度优化。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

Claims (7)

1.一种应用于NVMe SSD控制器的namespace的LBA分配方法,namespace指NVMe协议内主机所使用的逻辑空间,LBA指逻辑块地址,其特征在于:所述方法包括以下步骤:
S01)、SSD控制器将所有controller LBA等分为NL个LBA管理单元LMU,除最后一个LMU外,每个LMU包括NCL个controller LBA,controller LBA指SSD控制器内部的LBA;
S02)、使用数组结构记录每个LMU的ID和起始controller LBA,起始controller LBA记为CLBALMUID-start
S03)、SSD控制器接收并解析NVMe协议主机下发的namespace创建请求,获得创建所需要的LBA个数NLBA
S04)、通过NLBA和NCL计算需要分配的LMU个数NNL
Figure QLYQS_1
Figure QLYQS_2
代表向上取整;
S05)、以集合S={NCL,2NCL,3NCL,…,NNL*NCL}中的所有元素为关键字创建度为M的变体B+树数据结构,创建流程为:
S51)、新建结点,并将其作为当前结点;
S52)、将集合S中的首个元素作为关键字插入当前接点中,并从S中删除该元素;
S53)、判断当前结点包含的关键字个数,如果关键字个数小于或者等于M-1,则执行步骤S54,否则执行步骤S55;
S54)、判断S中元素是否为空,是则结束,否则返回步骤S52;
S55)、以当前结点中第
Figure QLYQS_3
个关键字为中心,
Figure QLYQS_4
代表向下取整,将当前结点分裂为两个结点;
S56)、将第
Figure QLYQS_5
个关键字按从大到小的顺序插入父结点,该关键字的左边指针指向当前结点分裂后的左边结点,右边指针指向分裂后的右边结点,并将父结点作为当前结点;返回步骤S53;
S06)、为变体B+树的叶子节点中的每个关键字分配可用的LMU ID,变体B+树数据结构创建完成,对namespace的LBA的分配也完成。
2.根据权利要求1所述的NVMe SSD控制器的namespace的LBA分配方法,其特征在于:步骤S55中,第
Figure QLYQS_6
个关键字包含在右边结点内。
3.根据权利要求1所述的NVMe SSD控制器的namespace的LBA分配方法,其特征在于:步骤S56中,将关键字插入父结点时,若无父结点则新建父结点。
4.根据权利要求1所述的NVMe SSD控制器的namespace的LBA分配方法,其特征在于,新创建的度为M的变体B+树相比一般B+树具有以下特性:
结点中关键字K[i]的值应为LMU所包含controller LBA数目的整数倍;
非叶子结点的指针为P[1],P[2],…,P[M],其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于等于K[M-1]的子树,其它P[i]指向关键字属于[K[i-1],K[i])的子树;
叶子结点中每个关键字关联一个LMU ID。
5.一种应用于NVMe SSD控制器的namespace的LBA映射方法,namespace指NVMe协议主机中划分的逻辑空间,LBA指逻辑块地址,其特征在于,本映射方法实现namespace LBA到controller LBA的转换,所述namespace LBA经过如权利要求1所述方法分配产生,包括以下步骤:
S01)、SSD控制器解析主机下发的读写请求,获得namespace ID和namespace LBA,namespace ID记为NLBAnamespaceID
S02)、以namespace ID对应的变体B+树根结点作为当前结点;
S03)、在当前结点中遍历其关键字,找到关键字Ki-1和Ki,若满足Ki-1≤NLBAnamespaceID≤Ki,将Ki-1和Ki间的子结点作为当前结点;
S04)、判断当前结点是否为叶子结点,是则继续,否则返回步骤S03;
S05)、在当前叶子结点遍历其关键字,找到关键字Kj-1和Kj,如果满足Kj-1≤NLBAnamespaceID≤Kj,找到Kj所关联的LMU;
S06)、计算namespaceLBA对应的controllerLBA,计算方式为:
CLBAnamespaceID_NLBA=NLBAnamespaceID-Kj-1+CLBALMUID_start,CLBAnamespaceID_NLBA
就是namespaceLBA对应的controllerLBA,至此,映射流程结束。
6.根据权利要求5所述的应用于NVMe SSD控制器的namespace的LBA映射方法,其特征在于:步骤S03中遍历当前结点关键字时,如果不存在NLBAnamespaceID≤Ki,仅满足Ki-1≤NLBAnamespaceID,则将大于Ki-1的子节点作为当前结点。
7.根据权利要求5所述的应用于NVMe SSD控制器的namespace的LBA映射方法,其特征在于:步骤S05中遍历当前结点关键字时,如果不存在Kj-1≤NLBAnamespaceID,仅满足NLBAnamespaceID≤Kj时,找到Kj所关联的LMU。
CN201910115695.0A 2019-02-13 2019-02-13 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 Active CN109902033B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910115695.0A CN109902033B (zh) 2019-02-13 2019-02-13 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法
PCT/CN2019/094355 WO2020164216A1 (zh) 2019-02-13 2019-07-02 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910115695.0A CN109902033B (zh) 2019-02-13 2019-02-13 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法

Publications (2)

Publication Number Publication Date
CN109902033A CN109902033A (zh) 2019-06-18
CN109902033B true CN109902033B (zh) 2023-03-14

Family

ID=66944759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910115695.0A Active CN109902033B (zh) 2019-02-13 2019-02-13 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法

Country Status (2)

Country Link
CN (1) CN109902033B (zh)
WO (1) WO2020164216A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902033B (zh) * 2019-02-13 2023-03-14 山东华芯半导体有限公司 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法
CN110442531B (zh) * 2019-08-08 2021-10-26 深圳忆联信息系统有限公司 基于固态硬盘的读性能提升方法、装置和计算机设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587484A (zh) * 2009-06-19 2009-11-25 南京航空航天大学 一种基于T-lt树的主存数据库的索引方法
CN104461958A (zh) * 2014-10-31 2015-03-25 杭州华为数字技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
CN106095329A (zh) * 2016-05-27 2016-11-09 浪潮电子信息产业股份有限公司 一种基于NVME接口的Intel SSD硬盘的管理方法
CN107273061A (zh) * 2017-07-12 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘创建多namespace的方法及系统
CN107526548A (zh) * 2017-08-31 2017-12-29 郑州云海信息技术有限公司 多namespace的固态硬盘及数据删除方法与装置
CN107957959A (zh) * 2016-10-17 2018-04-24 爱思开海力士有限公司 具有文件级安全擦除的存储器系统及其操作方法
CN108108133A (zh) * 2018-01-03 2018-06-01 郑州云海信息技术有限公司 一种改变nvme SSD硬盘用户可使用容量的方法及设备
CN108509145A (zh) * 2017-02-28 2018-09-07 东芝存储器株式会社 存储系统和控制方法
CN108549610A (zh) * 2018-03-27 2018-09-18 深圳忆联信息系统有限公司 一种NVMe扩展的实现方法及固态硬盘
CN108694135A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备
CN108959108A (zh) * 2017-05-26 2018-12-07 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880755B2 (en) * 2015-02-25 2018-01-30 Western Digital Technologies, Inc. System and method for copy on write on an SSD
US20180239697A1 (en) * 2017-02-22 2018-08-23 CNEXLABS, Inc. a Delaware Corporation Method and apparatus for providing multi-namespace using mapping memory
CN107391394A (zh) * 2017-08-03 2017-11-24 郑州云海信息技术有限公司 一种处理多命名空间lba的方法及装置
US10877691B2 (en) * 2017-12-29 2020-12-29 Intel Corporation Stream classification based on logical regions
CN108153907B (zh) * 2018-01-18 2021-01-22 中国计量大学 通过16位Trie树实现空间优化的词典存储管理方法
CN109902033B (zh) * 2019-02-13 2023-03-14 山东华芯半导体有限公司 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587484A (zh) * 2009-06-19 2009-11-25 南京航空航天大学 一种基于T-lt树的主存数据库的索引方法
CN104461958A (zh) * 2014-10-31 2015-03-25 杭州华为数字技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
CN106095329A (zh) * 2016-05-27 2016-11-09 浪潮电子信息产业股份有限公司 一种基于NVME接口的Intel SSD硬盘的管理方法
CN107957959A (zh) * 2016-10-17 2018-04-24 爱思开海力士有限公司 具有文件级安全擦除的存储器系统及其操作方法
CN108509145A (zh) * 2017-02-28 2018-09-07 东芝存储器株式会社 存储系统和控制方法
CN108694135A (zh) * 2017-03-31 2018-10-23 英特尔公司 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备
CN108959108A (zh) * 2017-05-26 2018-12-07 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
CN107273061A (zh) * 2017-07-12 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘创建多namespace的方法及系统
CN107526548A (zh) * 2017-08-31 2017-12-29 郑州云海信息技术有限公司 多namespace的固态硬盘及数据删除方法与装置
CN108108133A (zh) * 2018-01-03 2018-06-01 郑州云海信息技术有限公司 一种改变nvme SSD硬盘用户可使用容量的方法及设备
CN108549610A (zh) * 2018-03-27 2018-09-18 深圳忆联信息系统有限公司 一种NVMe扩展的实现方法及固态硬盘

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的NVMe接口设计;陈思扬;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20170315;I137-237 *

Also Published As

Publication number Publication date
WO2020164216A1 (zh) 2020-08-20
CN109902033A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
TWI710900B (zh) 儲存裝置及方法
US20230315290A1 (en) Namespaces allocation in non-volatile memory devices
US10768857B2 (en) Storage system having a controller that selects a die of a solid state disk to store data
US11928332B2 (en) Namespace size adjustment in non-volatile memory devices
JP6971542B2 (ja) 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法
KR20170008153A (ko) 비휘발성 장치에서 데이터 속성 기반 데이터 배치를 활용하기 위해 컴퓨터를 구동하는 경험적 인터페이스
JP2018518733A (ja) ファイル操作方法及び装置
US20140181455A1 (en) Category based space allocation for multiple storage devices
KR101579941B1 (ko) 가상머신 i/o 관리 방법 및 장치
WO2024078429A1 (zh) 内存管理方法、装置、计算机设备及存储介质
JP2012504295A (ja) データベースサーバシステムのためのストレージ階層
CN109902033B (zh) 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法
US10102267B2 (en) Method and apparatus for access control
US11287996B2 (en) Method, device and computer program product for storing data
JP6253752B1 (ja) 階層化ストレージシステム
JP5730446B1 (ja) トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
CN116662019B (zh) 请求的分配方法、装置、存储介质及电子装置
US11119703B2 (en) Utilizing a set of virtual storage units distributed across physical storage units
US20210132843A1 (en) Method, electronic device and computer program product for managing disk array
US20210392087A1 (en) Computer system and operation management method for computer system
CN111104435B (zh) 一种元数据组织方法、装置、设备及计算机可读存储介质
CN104360956A (zh) 一种数据拷贝方法及装置
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
US20160335198A1 (en) Methods and system for maintaining an indirection system for a mass storage device
CN111026890A (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
GR01 Patent grant
GR01 Patent grant