CN114047886A - 一种nvme命令处理方法、系统、电子设备及存储介质 - Google Patents
一种nvme命令处理方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114047886A CN114047886A CN202210034536.XA CN202210034536A CN114047886A CN 114047886 A CN114047886 A CN 114047886A CN 202210034536 A CN202210034536 A CN 202210034536A CN 114047886 A CN114047886 A CN 114047886A
- Authority
- CN
- China
- Prior art keywords
- address
- target
- nand
- nvme command
- solid state
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000005192 partition Methods 0.000 claims abstract description 82
- 239000007787 solid Substances 0.000 claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 37
- 238000000638 solvent extraction Methods 0.000 claims description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000000875 corresponding effect Effects 0.000 description 23
- 238000007726 management method Methods 0.000 description 20
- 238000013403 standard screening design Methods 0.000 description 10
- 238000012005 ligant binding assay Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种NVME命令处理方法,包括:按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作,本申请能够降低NAND空间损耗。本申请还公开了一种NVME命令处理系统、一种存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种NVME命令处理方法、系统、一种存储介质及一种电子设备。
背景技术
主流企业级固态硬盘SSD(Solid State Disk)的存储介质是NAND FLASH,一般容量是2T/4T/8T/16T/32T,都属于大容量系列的固态硬盘,小容量系列的固态硬盘指的是小于等于1TB。固件如果直接管理这么多的NAND资源,将会被映射表最大位宽,CPU饱和度等条件制约,所以可以用分区管理的方法,即将所有NAND平均分成大于等于2个的区域,固件独立公平的对每个分区管理。NAND的基本操作单位是LUN,所以目前主流分区做法是根据平分LUN的方式进行分区,这样可以将NAND资源绝对物理隔离。但是上述分区方式将会带来较多的NAND空间损耗。
因此,如何降低NAND空间损耗是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种NVME命令处理方法、系统、一种存储介质及一种电子设备,能够降低NAND空间损耗。
为解决上述技术问题,本申请提供一种NVME命令处理方法,该NVME命令处理方法包括:
按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;
接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
可选的,对所述目标NAND地址执行所述NVME命令的数据读写操作,包括:
若所述目标逻辑地址是为奇数,则利用第一FTL算法模块将所述目标NAND地址发送至第一NAND管理模块,以便所述第一NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作;
若所述目标逻辑地址是为偶数,则利用第二FTL算法模块将所述目标NAND地址发送至第二NAND管理模块,以便所述第二NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作。
可选的,按照平分Block块的方式将固态硬盘划分为多个硬盘分区,包括:
确定所述固态硬盘的目标分区数N;
根据所述目标分区数将每一所述LUN的Block块平均划分为N个Block块集合,并根据所述Block块集合在所述LUN中的位置分配序号;
将所述序号相同的Block块集合设置为一个所述硬盘分区,得到N个所述硬盘分区。
可选的,将所述序号相同的Block块集合设置为一个所述硬盘分区之后,还包括:
为每一所述硬盘分区设置对应的Parity LUN;其中,所述Parity LUN为存储RAID校验数据的单元,所述Parity LUN的大小为一个所述Block块集合中的Block块的数量。
可选的,还包括:
获取所述固态硬盘的配置参数;其中,所述配置参数包括channel总数、CE总数、LUN总数和每一LUN包含的Block数;
根据所述硬盘参数确定所述固态硬盘的Block总数;
根据所述固态硬盘的Block总数和所述Parity LUN的数量计算所述固态硬盘的空间损耗率。
可选的,确定所述固态硬盘的目标分区数N,包括:
根据所述硬盘参数确定所述固态硬盘的所述目标分区数N。
可选的,还包括:
判断所述固态硬盘中是否存在坏块;
若是,则根据所述坏块的位置更新所述地址映射表。
本申请还提供了一种NVME命令处理系统,该系统包括:
分区模块,用于按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;
地址确定模块,用于接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
读写模块,用于根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述NVME命令处理方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述NVME命令处理方法执行的步骤。
本申请提供了一种NVME命令处理方法,包括:按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
本申请按照平分Block块的方式将固态硬盘划分为多个硬盘分区,即以Block块为粒度划分硬盘分区,进而得到以Block块为粒度的址映射表。在接收到NVME命令后,确定对应的目标逻辑地址,进而按照地址映射表确定对应的目标NAND地址,以便完成相应的数据读写操作。由于本申请按照Block块划分硬盘分区,能够降低NAND空间损耗。本申请同时还提供了一种NVME命令处理系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种NVME命令处理方法的流程图;
图2为本申请实施例所提供的一种固态硬盘数据流的实现流程图;
图3为本申请实施例所提供的一种前端数据模块处理流程图;
图4为本申请实施例所提供的一种NVME命令处理系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种NVME命令处理方法的流程图。
具体步骤可以包括:
S101:按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;
其中,上述地址映射表包括逻辑地址LBA(Logical Block Address)与NAND(计算机闪存设备)地址的映射关系,本实施例可以通过以下方式将固态硬盘划分为多个硬盘分区Partition:确定所述固态硬盘的目标分区数N;根据所述目标分区数将每一所述LUN(Logical Unit Number,逻辑单元号)的Block块平均划分为N个Block块集合,并根据所述Block块集合在所述LUN中的位置分配序号;将所述序号相同的Block块集合设置为一个所述硬盘分区,得到N个所述硬盘分区。本实施例中的固态硬盘的容量可以小于1TB。
进一步的,在将所述序号相同的Block块集合设置为一个所述硬盘分区之后,还可以为每一所述硬盘分区设置对应的Parity LUN;其中,所述Parity LUN为存储RAID校验数据的单元,所述Parity LUN的大小为一个所述Block块集合中的Block块的数量。
作为一种可行的实施方式,本实施例可以获取所述固态硬盘的配置参数;其中,所述配置参数包括channel(用于传输命令和数据的NAND总线)总数、CE(NAND内部的片选,也叫 target)总数、LUN总数和每一LUN包含的Block数;根据所述硬盘参数确定所述固态硬盘的Block总数;根据所述固态硬盘的Block总数和所述Parity LUN的数量计算所述固态硬盘的空间损耗率。相应的,本实施例可以根据所述硬盘参数确定所述固态硬盘的所述目标分区数N。进一步的,本实施例还可以判断所述固态硬盘中是否存在坏块;若是,则根据所述坏块的位置更新所述地址映射表。
S102:接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
S103:根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
具体的,若所述目标逻辑地址是为奇数,则利用第一FTL(Flash translationlayer,闪存转换层)算法模块将所述目标NAND地址发送至第一NAND管理模块,以便所述第一NAND管理模块对所述目标NAND地址执行所述NVME(NVM Express,非易失性内存主机控制器接口规范)命令的数据读写操作;若所述目标逻辑地址是为偶数,则利用第二FTL算法模块将所述目标NAND地址发送至第二NAND管理模块,以便所述第二NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作。
本实施例按照平分Block块的方式将固态硬盘划分为多个硬盘分区,即以Block块为粒度划分硬盘分区,进而得到以Block块为粒度的址映射表。在接收到NVME命令后,确定对应的目标逻辑地址,进而按照地址映射表确定对应的目标NAND地址,以便完成相应的数据读写操作。由于本实施例按照Block块划分硬盘分区,能够降低NAND空间损耗。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
NAND的基本操作单位是LUN,目前主流分区做法是根据平分LUN的方式进行分区,这样可以将NAND资源绝对物理隔离,但是这种方式在小容量SSD分区中存在浪费固态硬盘预留空间OP,降低随机写性能的弊端。
本实施例提出一种针对小容量盘的数据分区方法,在不影响其他性能的前提下,可以有效提升整盘预留空间OP,进而提升随机写性能。
大容量固态硬盘按照评分LUN总数的方法进行分区。
假设存在2T大小的固态硬盘,NAND资源配置是8 Channel(用于传输命令和数据的NAND总线)、4 CE(NAND内部的片选,也叫 target)、 2 LUN(NAND最小操作单位)、1980BLOCK(SSD内部存储单元);即整盘有8个channel,每个channel下面挂4个CE(片选,同一时刻只有一个CE工作),每个CE下面有2个LUN,每个LUN包含1980个物理BLOCK,所以整盘共有8*4*2=64个LUN;假设系统有2个分区,那么按照LUN分区的理念就是每个分区分担 64/2=32个LUN。请参见表1,表1为大容量SSD 平分LUN方式的分区结果表。
表 1 大容量SSD 平分LUN方式的分区结果表
表1中channel 0、CE 0、LUN 0、BLOCK 0至1989称为logical LUN 0;channel 1、CE0、LUN 0、BLOCK 0至1989称为logical LUN 1;……;channel 7、CE 1、LUN 0、BLOCK 0至1989称为logical LUN 15。由表1可知,分区 0总共有32个logical LUN,其中有1个LUN作为Parity LUN使用,不存储用户数据。企业级SSD数据稳定性很重要,一般采用RAID5保护数据,所以需要parity LUN存在。表1对应的例子中只有31个LUN存储用户数据,相当于浪费1个LUN的NAND存储空间,即Parity LUN带来的NAND空间损耗为1/32LUN。sLUN指super LUN,一个分区对应一个sLUN。
假设小容量盘(即NAND配置为:8 channel、 4 CE、1 LUN)还是按照以上大容量盘LUN分区的方式。请参见表2,表2为小容量SSD 平分LUN方式的分区结果表。
表 2 小容量SSD 平分LUN方式的分区结果表
如表2所示,小容量盘每个分区只能有16个LUN,同样Parity LUN也会浪费1个LUN的存储空间,即Parity LUN带来的NAND空间损耗为1/16。比起上面分析的大容量盘的NAND空间损耗要多 1/16–1/32LUN,由此损失了OP空间,因为SSD的随机写性能与OP空间成正相关,所以直接降低了随机写性能。
为了降低空间损耗,本实施例提供一种小容量固态硬盘数据分区方案,具体内容如下:
小容量盘采用平分BLOCK总数的方法,即按照BLOCK分区。如上文NAND配置所示,每个LUN上面有1980个物理BLOCK,那么可以将所有LUN的BLOCK 0 至 989称为分区0, 所有LUN的BLOCK 990 至 1989称为分区1。例如:可以将channel 0、CE 0、LUN 0、BLOCK 0–989称为logical LUN 0 (属于分区0);将channel 1、CE 0、LUN 0、BLOCK 0–989称为logical LUN1 (属于分区0);……;将channel 7、CE 3、 LUN 0、BLOCK 0–989称为logical LUN 31 (属于分区0)。将channel 0、CE 0、LUN 0、BLOCK 990–1989称为logical LUN 0 (属于分区1);将channel 1、CE 0、LUN 0、BLOCK 990–1989称为logical LUN 1 (属于分区1) ;……;channel 7、CE 3、LUN 0、BLOCK 990–1989称为logical LUN 31 (属于分区1)。由此可见,以上分区方式中每个分区都保持了整盘系统32个logical LUN,相对于上文小容量盘平分LUN的方式,节省了1/16 –1/32LUN的NAND空间。
下面通过表3和表4呈现大容量盘与小容量盘数据分区方式的不同,大容量盘采用平分所有LUN的方式(NAND阵列竖切),小容量盘采用平分所有Block(NAND阵列横切)。
表3大容量盘分区结果表
表4小容量盘分区结果表
综上,小容量盘分区方法采用平分Block的方式,可以充分利用所有的LUN资源,1/16–1/32的NAND空间,大幅提升随机写性能。
请参见图2,图2为本申请实施例所提供的一种固态硬盘数据流的实现流程图。如图2所示,HOST主机与两个数据交互模块Data Manager 0和Data Manager 1连接;数据交互模块分别与FTL算法模块FTL Manager 0和FTL Manager 1连接;FTL算法模块FTL Manager0与NAND管理模块NAND Manager 0连接,FTL算法模块FTL Manager1与NAND管理模块NANDManager 1连接,NAND管理模块NAND Manager 0和NAND Manager 0连接NAND阵列。固态硬盘数据流主要涉及前端数据交互,FTL算法,后端NAND管理三个模块。前端数据交互模块主要负责解析NVME命令,接收/发送HOST数据,属于承接HOST与FTL算法的作用。FTL算法负责接收来自前端的数据,映射到具体的NAND位置,属于承接前端和后端的作用。NAND管理模块负责将数据写入到NAND位置,特殊情况进行NAND数据的错误处理,主要与FTL算法模块交互。
本实施例提出的数据分区方法需要实现前端数据模块与FTL模块数据分区和FTL模块管理NAND阵列数据分区两个步骤。
前端数据模块与FTL模块数据分区过程(平分HOST LBA)如下:如图2所示,前端数据模块公平的接收HOST下发的NVME命令,解析出LBA(Logical Block Address,逻辑地址),进而判定发送给某个FTL算法模块,这里的判定机制即是前端的数据分区方法。假设HOST下发的LBA是均衡的,系统有2个前端模块和2个FTL模块,为了让FTL模块均衡的分担HOSTLBA,可以将所有LBA空间平均切成2份,FTL Manager 0管理 LBA总数/ 2的LBA空间, FTLManager 1管理LBA总数 / 2的LBA空间。所以前端数据模块下发HOST LBA到具体FTL模块的算法是:
If ( 0 == LBA_index % 2) {
FTL_Manager_index = 0;
} else {
FTL_Manager_index = 1;
}
在上述实施例中,偶数LBA下发给FTL Manager 0管理, 奇数LBA下发给FTLManager 1管理。请参见图3,图3为本申请实施例所提供的一种前端数据模块处理流程图。接收HOST命令后,解析HOST命令得到LBA;通过(LBA_INDEX % 2) == 0判断LBA是否为偶数,若为偶数则将LBA发送至FTL Manager 0,若为奇数则将LBA发送至FTL Manager 1。
FTL模块管理NAND阵列数据分区方法如下:实现了前端数据模块与FTL模块数据分区方法,也就保证了FTL模块分担到的LBA总数是均衡的,下一步需要实现LBA到NAND物理地址映射的均衡。
请参见表5,表5为逻辑地址LBA与NAND地址的地址映射表;
表 5 地址映射表
以上表5示出了一个分区partition上的一个31+1 Super Lun时,LBA数据在各个Channel 和 lun上的排布,假如CH0 lun0为Parity,CH1 lun0 plane0 为坏块bad Block。
表5中一个方格位置代表连续的四个LBA,即LBA0~LBA3 16K数据,实际发送给每个parttion上lba是按照上文前端模块分发lba的原则,小容量盘的PBA具体格式为:
typedef union {
struct {
u32 lockbit: 1;
u32 df : 2;
u32 plane : 1;
u32 lun : 5;
u32 pg_blk : 21;
} buf;
u32 pba;
} pba_t;
本实施例提出了采用数据分区方式管理SSD 后端NAND资源,先解决前端数据交互模块与FTL算法模块的数据均衡问题,进而解决FTL模块管理的NAND阵列数据分区问题。本实施例通过提出的创新性的分区切Block方式,有效提升了整盘OP空间,大幅提升随机写性能。本实施例提出的小容量盘数据分区方案,可以做到在不影响SSD其他性能情况下,有效提升整盘NAND可用空间,进而提升随机写性能,满足客户更高的性能需求。
请参见表6,表6为分区方式对照表,表6示出了按照LUN划分区间和按照Block划分区间的结果。
表 6 分区方式对照表
由以上结果可以看到,本实施例提出的数据分区方式可以提升随机写性能23%。
请参见图4,图4为本申请实施例所提供的一种NVME命令处理系统的结构示意图;
该系统可以包括:
分区模块401,用于按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;
地址确定模块402,用于接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
读写模块403,用于根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
本实施例按照平分Block块的方式将固态硬盘划分为多个硬盘分区,即以Block块为粒度划分硬盘分区,进而得到以Block块为粒度的址映射表。在接收到NVME命令后,确定对应的目标逻辑地址,进而按照地址映射表确定对应的目标NAND地址,以便完成相应的数据读写操作。由于本实施例按照Block块划分硬盘分区,能够降低NAND空间损耗。
进一步的,读写模块403用于若所述目标逻辑地址是为奇数,则利用第一FTL算法模块将所述目标NAND地址发送至第一NAND管理模块,以便所述第一NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作;还用于若所述目标逻辑地址是为偶数,则利用第二FTL算法模块将所述目标NAND地址发送至第二NAND管理模块,以便所述第二NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作。
进一步的,分区模块401用于确定所述固态硬盘的目标分区数N;还用于根据所述目标分区数将每一所述LUN的Block块平均划分为N个Block块集合,并根据所述Block块集合在所述LUN中的位置分配序号;还用于将所述序号相同的Block块集合设置为一个所述硬盘分区,得到N个所述硬盘分区。
进一步的,还包括:
Parity LUN设置单元,用于将所述序号相同的Block块集合设置为一个所述硬盘分区之后,为每一所述硬盘分区设置对应的Parity LUN;其中,所述Parity LUN为存储RAID校验数据的单元,所述Parity LUN的大小为一个所述Block块集合中的Block块的数量。
进一步的,还包括:
损耗率计算模块,用于获取所述固态硬盘的配置参数;其中,所述配置参数包括channel总数、CE总数、LUN总数和每一LUN包含的Block数;还用于根据所述硬盘参数确定所述固态硬盘的Block总数;还用于根据所述固态硬盘的Block总数和所述Parity LUN的数量计算所述固态硬盘的空间损耗率。
进一步的,分区模块401确定所述固态硬盘的目标分区数N的过程包括:根据所述硬盘参数确定所述固态硬盘的所述目标分区数N。
进一步的,还包括:
映射表更新模块,用于判断所述固态硬盘中是否存在坏块;若是,则根据所述坏块的位置更新所述地址映射表。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种NVME命令处理方法,其特征在于,包括:
按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;
接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
2.根据权利要求1所述NVME命令处理方法,其特征在于,对所述目标NAND地址执行所述NVME命令的数据读写操作,包括:
若所述目标逻辑地址是为奇数,则利用第一FTL算法模块将所述目标NAND地址发送至第一NAND管理模块,以便所述第一NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作;
若所述目标逻辑地址是为偶数,则利用第二FTL算法模块将所述目标NAND地址发送至第二NAND管理模块,以便所述第二NAND管理模块对所述目标NAND地址执行所述NVME命令的数据读写操作。
3.根据权利要求1所述NVME命令处理方法,其特征在于,所述按照平分Block块的方式将固态硬盘划分为多个硬盘分区,包括:
确定所述固态硬盘的目标分区数N;
根据所述目标分区数将每一LUN的Block块平均划分为N个Block块集合,并根据所述Block块集合在所述LUN中的位置分配序号;
将所述序号相同的Block块集合设置为一个所述硬盘分区,得到N个所述硬盘分区。
4.根据权利要求3所述NVME命令处理方法,其特征在于,将所述序号相同的Block块集合设置为一个所述硬盘分区之后,还包括:
为每一所述硬盘分区设置对应的Parity LUN;其中,所述Parity LUN为存储RAID校验数据的单元,所述Parity LUN的大小为一个所述Block块集合中的Block块的数量。
5.根据权利要求4所述NVME命令处理方法,其特征在于,还包括:
获取所述固态硬盘的配置参数;其中,所述配置参数包括channel总数、CE总数、LUN总数和每一LUN包含的Block数;
根据所述硬盘参数确定所述固态硬盘的Block总数;
根据所述固态硬盘的Block总数和所述Parity LUN的数量计算所述固态硬盘的空间损耗率。
6.根据权利要求5所述NVME命令处理方法,其特征在于,确定所述固态硬盘的目标分区数N,包括:
根据所述硬盘参数确定所述固态硬盘的所述目标分区数N。
7.根据权利要求1至6任一项所述NVME命令处理方法,其特征在于,还包括:
判断所述固态硬盘中是否存在坏块;
若是,则根据所述坏块的位置更新所述地址映射表。
8.一种NVME命令处理系统,其特征在于,包括:
分区模块,用于按照平分Block块的方式将固态硬盘划分为多个硬盘分区,并根据所述固态硬盘的分区结果生成地址映射表;其中,所述地址映射表包括逻辑地址LBA与NAND地址的映射关系;
地址确定模块,用于接收NVME命令,并确定所述NVME命令对应的目标逻辑地址;
读写模块,用于根据所述地址映射表确定所述目标逻辑地址对应的目标NAND地址,并对所述目标NAND地址执行所述NVME命令的数据读写操作。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述NVME命令处理方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述NVME命令处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210034536.XA CN114047886A (zh) | 2022-01-13 | 2022-01-13 | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210034536.XA CN114047886A (zh) | 2022-01-13 | 2022-01-13 | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114047886A true CN114047886A (zh) | 2022-02-15 |
Family
ID=80196421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210034536.XA Pending CN114047886A (zh) | 2022-01-13 | 2022-01-13 | 一种nvme命令处理方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047886A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202288A1 (zh) * | 2022-04-22 | 2023-10-26 | 苏州浪潮智能科技有限公司 | 一种固态硬盘读方法、系统、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450852A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种存储空间处理方法、装置和设备 |
CN109840048A (zh) * | 2017-11-29 | 2019-06-04 | 北京忆恒创源科技有限公司 | 存储命令处理方法及其存储设备 |
CN111143235A (zh) * | 2018-11-06 | 2020-05-12 | 爱思开海力士有限公司 | 多内核存储器系统中的逻辑地址分配 |
-
2022
- 2022-01-13 CN CN202210034536.XA patent/CN114047886A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450852A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种存储空间处理方法、装置和设备 |
CN109840048A (zh) * | 2017-11-29 | 2019-06-04 | 北京忆恒创源科技有限公司 | 存储命令处理方法及其存储设备 |
CN111143235A (zh) * | 2018-11-06 | 2020-05-12 | 爱思开海力士有限公司 | 多内核存储器系统中的逻辑地址分配 |
Non-Patent Citations (1)
Title |
---|
托尼虎: "SSD学习笔记-NOR,NAND,FTL,GC基本概念", 《HTTP://WWW.360DOC.COM/CONTENT/20/0703/12/60086591_922033511.SHTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202288A1 (zh) * | 2022-04-22 | 2023-10-26 | 苏州浪潮智能科技有限公司 | 一种固态硬盘读方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230315290A1 (en) | Namespaces allocation in non-volatile memory devices | |
US8706962B2 (en) | Multi-tier storage system configuration adviser | |
US9817768B2 (en) | Storage system and data storing method | |
US10528268B2 (en) | System and method for channel time management in solid state memory drives | |
US9632702B2 (en) | Efficient initialization of a thinly provisioned storage array | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20110066823A1 (en) | Computer system performing capacity virtualization based on thin provisioning technology in both storage system and server computer | |
CN109358809B (zh) | 一种raid数据存储系统及方法 | |
CN104636080A (zh) | 存储系统及用于其的方法 | |
US11747984B2 (en) | Memory system that constructs virtual storage regions for virtual machines | |
WO2017107015A1 (zh) | 存储空间的分配方法及存储设备 | |
CN114127677B (zh) | 用于写高速缓存架构中的数据放置的方法和系统 | |
US20220229787A1 (en) | Dynamic allocation of storage resources based on connection type | |
CN116457885A (zh) | 一种数据处理方法、装置及系统 | |
CN104216660A (zh) | 提高磁盘阵列性能的方法及装置 | |
CN114047886A (zh) | 一种nvme命令处理方法、系统、电子设备及存储介质 | |
CN112346658B (zh) | 在具有高速缓存体系结构的存储设备中提高数据热量跟踪分辨率 | |
CN103645995B (zh) | 写数据的方法及装置 | |
US8296530B1 (en) | Methods, systems, and computer readable media for optimizing the number of client write requests to virtually provisioned logical units of a physical data storage array | |
US11971771B2 (en) | Peer storage device messaging for power management | |
WO2022252063A1 (zh) | 数据存取方法、存储控制器和存储设备 | |
US8949553B2 (en) | System and method for retention of historical data in storage resources | |
US20240303114A1 (en) | Dynamic allocation of capacity to namespaces in a data storage device | |
CN117389485B (zh) | 存储性能优化方法、装置、存储系统、电子设备和介质 | |
US11288204B2 (en) | Logical and physical address field size reduction by alignment-constrained writing technique |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220215 |