固态硬盘空间分配方法、装置、介质及系统与流程

未命名 09-29 阅读:46 评论:0


1.本发明涉及存储技术领域,更为具体的,涉及一种固态硬盘空间分配方法、装置、介质及系统。


背景技术:

2.固态硬盘(ssd)是基于闪存芯片的数据存储设备,数据存放于闪存芯片的闪存单元中,闪存单元为浮栅晶体管组成。ssd的主要逻辑单元如图1。
3.主机与ssd盘的链路层使用pcie(高速串行总线标准)链路连接、数据传输,传输层使用nvme协议(非易失性内存主机接口规范)。ssd盘通过nvme协议将内部的物理存储空间组织为逻辑空间,映射给主机。主机通过“lba(逻辑区块地址)+length”的方式访问ssd盘的逻辑空间,ssd需要将“lba+length”的逻辑空间地址,转换为内部的闪存物理空间地址,转换的功能由ssd盘内部的ftl(闪存转换层)功能实现。ftl功能的核心为l2p表(即逻辑物理地址转换表)。l2p表每个管理单元的空间大小由ssd决定。如果以4kbyte为单位进行管理,表中的每个表项则存储一个4kbyte存储空间的物理地址,数组的下标则为逻辑地址。主机在写入数据时,会在下发给ssd盘的写命令中指定写入数据的逻辑地址和长度。ssd盘的ftl在解析出命令中的lba+length信息后,根据length确定主机需要写入数据以4kbyte为单位拆分的数量,并分配对应的4kbyte个物理空间的地址,并将物理地址写入lba对应的l2p表的表项中,最后将数据写入闪存芯片对应的位置。例如,写命令的逻辑地址信息为4kbyte+8kbyte,表示主机要在以4kbyte为起始的逻辑逻辑,写入8kbyte的数据。ssd的ftl分配2个4kbyte的物理空间,将其写入l2p表下标为1、2的表项中。
4.由于闪存芯片的物理特性,单个芯片的容量、访问速度受限,ssd的主控芯片通过多个通道连接多颗闪存芯片,以提高单个sdd盘的物理容量、并发访问的速度。例如,单个闪存芯片提供1tb的空间大小,ssd的主控芯片可以设计8个通道,如果每个通道下可以连接2个闪存芯片,则ssd盘可以最大支持16tb的物理容量。
5.现有的物理地址数据分配和排布的算法主要分为两个方向:1、横向分配物理地址时包含更多通道的闪存页;该方法优点在于可利用更多通道并发处理数据,读时延更低;缺点在于数据写入闪存时,按照写单元编程,凑齐写入的数据量更慢,因此占用盘内高速缓存时间更长,降低主机下发写操作的并发数;2、横向分配物理地址时包含较少通道的闪存页(最少为1个);该方法优点在于可以更快的补齐一个写单元数据,占用的盘内高速缓存数量较少,可提升主机写操作的并发周转;缺点在于一个大读写操作需要在一个通道上,进行多次读操作,才能够将数据全部读出,读时延较大。
6.现有技术存在如下技术问题:在ssd盘出厂时即固定了分配物理地址的方式,只能在上述两种主流算法中任选其一,不能够进行切换,必须接受其算法的缺点,在不适应的场景下,算法对应的读写时延会更大。


技术实现要素:

7.本发明的目的在于克服现有技术的不足,提供一种固态硬盘空间分配方法、装置、介质及系统,可实现针对业务场景,可动态配置调整的物理地址分配和排布的算法,从而提升固态硬盘的整体读写性能。
8.本发明的目的是通过以下方案实现的:一种固态硬盘空间分配方法,包括以下步骤:s1,主机侧获取“配置数据排布方式”命令;s2,用户通过主机发送“配置数据排布方式”命令的方式,向固态硬盘发送配置指令,进行数据排布方式配置;s3,固态硬盘的ssd控制器接收处理配置的指令,并开始切换物理地址分配和排布算法;s4,物理地址分配和排布算法切换执行完毕后,向主机侧回应参数配置结果,完成固态硬盘空间分配响应。
9.进一步地,在步骤s1中,所述主机侧获取“配置数据排布方式”命令,具体包括子步骤:通过提供固态硬盘详细使用介绍文档,从固态硬盘详细使用介绍文档中获取该固态硬盘的“配置数据排布方式”的厂商自定义命令说明及使用方式。
10.进一步地,在步骤s2中,所述通过主机发送“配置数据排布方式”命令的方式包括子步骤:填充对应的配置参数,具体包括:发送命令的参数类型、算法数据排布粒度和流id。
11.进一步地,在步骤s3中,所述切换物理地址分配算法具体包括子步骤:s31,获取解析主机下发的命令参数类型和算法数据排布粒度;s32,判断是否设置指定流,如是指定流则从命令参数中获取流id;如非指定流则按全局处理;s33,根据步骤s31和s32获取的参数信息,进行配置设置。
12.进一步地,在步骤s4中,所述向主机侧回应参数配置结果,具体包括子步骤:s41,获取参数配置的结果;s42,向主机侧发送当前主机分配算法配置结果。
13.进一步地,所述主机侧包括pc端。
14.进一步地,所述固态硬盘详细使用介绍文档通过固态硬盘厂商提供。
15.一种固态硬盘空间分配装置,包括处理器和存储器,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器加载时并执行如上任一项所述的方法。
16.一种计算机可读存储介质,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如上任一项所述的方法。
17.一种固态硬盘空间分配系统,包括上所述的固态硬盘空间分配装置。
18.本发明的有益效果包括:本发明可以根据业务的场景,灵活设置更适合的物理地址分配和排布的算法,以提高业务性能。当写操作比例较高的流时,可设置为包含较少的通道的物理地址分配和排布的算法。当读操作比例较高的流,可设置为包含较多的通道的物理地址分配和排布的算法。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1为现有ssd的主要逻辑单元示意图;图2为写操作比例较高的流的物理地址分配示意图;图3为读操作比例较高的流的物理地址分配示意图;图4为本发明实施例方法的流程图;图中,ch0、ch1和ch2均表示通道,die0表示芯片,plane0和plane1均表示平面,p0、p1和p2均表示页,wl0表示字线。
具体实施方式
21.本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
22.如图4所示,本发明实施例的方法包括如下步骤:步骤1、固态硬盘对主机侧提供厂家自定义命令,用户可通过配置命令说明文档,向固态硬盘发送命令调整物理分配和排布算法;步骤2、主机侧通过发送命令(填充好对应的配置参数:命令的参数类型,算法数据排布粒度,流id(指定流生效时)),向固态硬盘发送配置指令;步骤3、ssd控制器接收处理配置的指令,并开始切换物理地址分配算法;步骤4、算法切换后,向主机回应参数配置结果。
23.在具体实施中,以96k的主机数据读写为例:对应图2中24个单元(每个单元4k数据)。
24.当写操作量比例较高的流时,物理地址分配如图2框选所示,选择更快的凑满一个写入单元进行固态硬盘的落盘写入,提升效率,具体包括如下子步骤:步骤1、选择通过主机发送厂家自定义命令0xd7;发送命令参数类型:0000 0000b(全局进行设置-包含较少的通道的物理地址分配和排布的算法);算法数据排布粒度:0000 0005b(96k的数据排布粒度);步骤2、固态硬盘收到切换算法排布命令,解析命令类型、排布粒度;固态硬盘根据命令解析的参数,调整内部使用的排布算法;步骤3、固态硬盘向主机相应算法设置的结果。
25.当读操作比例较高的流,物理地址分配如图3框选所示,选择更多的通道进行分配,多个通道能够同时读取(例如ch0、ch1、ch2三个通道能够同时并发进行读取),读取效率更高,具体包括如下子步骤:步骤1、选择通过主机发送厂家自定义命令0xd7;发送命令参数类型:0000 0001b(全局进行设置-包含较多的通道的物理地址分配和排布的算法);算法数据排布粒度:0000 0005b(96k的数据排布粒度);步骤2、固态硬盘收到切换算法排布命令,解析命令类型、排布粒度;固态硬盘根据
命令解析的参数,调整内部使用的排布算法;步骤3、固态硬盘向主机相应算法设置的结果。
26.需要说明的是,在本发明权利要求书中所限定的保护范围内,以下实施例均可以从上述具体实施方式中,例如公开的技术原理,公开的技术特征或隐含公开的技术特征等,以合乎逻辑的任何方式进行组合和/或扩展、替换。
27.实施例1一种固态硬盘空间分配方法,包括以下步骤:s1,主机侧获取“配置数据排布方式”命令;s2,用户通过主机发送“配置数据排布方式”命令的方式,向固态硬盘发送配置指令,进行数据排布方式配置;s3,固态硬盘的ssd控制器接收处理配置的指令,并开始切换物理地址分配和排布算法;s4,物理地址分配和排布算法切换执行完毕后,向主机侧回应参数配置结果,完成固态硬盘空间分配响应。
28.实施例2在实施例1的基础上,在步骤s1中,所述主机侧获取“配置数据排布方式”命令,具体包括子步骤:通过提供固态硬盘详细使用介绍文档,从固态硬盘详细使用介绍文档中获取该固态硬盘的“配置数据排布方式”的厂商自定义命令说明及使用方式。
29.实施例3在实施例1的基础上,在步骤s2中,所述通过主机发送“配置数据排布方式”命令的方式包括子步骤:填充对应的配置参数,具体包括:发送命令的参数类型、算法数据排布粒度和流id。
30.实施例4在实施例3的基础上,在步骤s3中,所述切换物理地址分配算法具体包括子步骤:s31,获取解析主机下发的命令参数类型和算法数据排布粒度;s32,判断是否设置指定流,如是指定流则从命令参数中获取流id;如非指定流则按全局处理;s33,根据步骤s31和s32获取的参数信息,进行配置设置。
31.实施例5在实施例1的基础上,在步骤s4中,所述向主机侧回应参数配置结果,具体包括子步骤:s41,获取参数配置的结果;s42,向主机侧发送当前主机分配算法配置结果。
32.实施例6所述主机侧包括pc端。
33.实施例7在实施例2的基础上,所述固态硬盘详细使用介绍文档通过固态硬盘厂商提供。
34.实施例8一种固态硬盘空间分配装置,包括处理器和存储器,所述存储器中存储有计算机
程序,当所述计算机程序被所述处理器加载时并执行如实施例1~实施例7任一项所述的方法。
35.实施例9一种计算机可读存储介质,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如实施例1~实施例7任一项所述的方法。
36.实施例10一种固态硬盘空间分配系统,包括如实施例8所述的固态硬盘空间分配装置。
37.描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
38.根据本发明实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
39.作为另一方面,本发明实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

技术特征:
1.一种固态硬盘空间分配方法,其特征在于,包括以下步骤:s1,主机侧获取“配置数据排布方式”命令;s2,用户通过主机发送“配置数据排布方式”命令的方式,向固态硬盘发送配置指令,进行数据排布方式配置;s3,固态硬盘的ssd控制器接收处理配置的指令,并开始切换物理地址分配和排布算法;s4,物理地址分配和排布算法切换执行完毕后,向主机侧回应参数配置结果,完成固态硬盘空间分配响应。2.根据权利要求1所述的固态硬盘空间分配方法,其特征在于,在步骤s1中,所述主机侧获取“配置数据排布方式”命令,具体包括子步骤:通过提供固态硬盘详细使用介绍文档,从固态硬盘详细使用介绍文档中获取该固态硬盘的“配置数据排布方式”的厂商自定义命令说明及使用方式。3.根据权利要求1所述的固态硬盘空间分配方法,其特征在于,在步骤s2中,所述通过主机发送“配置数据排布方式”命令的方式包括子步骤:填充对应的配置参数,具体包括:发送命令的参数类型、算法数据排布粒度和流id。4.根据权利要求3所述的固态硬盘空间分配方法,其特征在于,在步骤s3中,所述切换物理地址分配算法具体包括子步骤:s31,获取解析主机下发的命令参数类型和算法数据排布粒度;s32,判断是否设置指定流,如是指定流则从命令参数中获取流id;如非指定流则按全局处理;s33,根据步骤s31和s32获取的参数信息,进行配置设置。5.根据权利要求1所述的固态硬盘空间分配方法,其特征在于,在步骤s4中,所述向主机侧回应参数配置结果,具体包括子步骤:s41,获取参数配置的结果;s42,向主机侧发送当前主机分配算法配置结果。6.根据权利要求1所述的固态硬盘空间分配方法,其特征在于,所述主机侧包括pc端。7.根据权利要求2所述的固态硬盘空间分配方法,其特征在于,所述固态硬盘详细使用介绍文档通过固态硬盘厂商提供。8.一种固态硬盘空间分配装置,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器加载时并执行如权利要求1~7任一项所述的方法。9.一种计算机可读存储介质,其特征在于,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如权利要求1~7任一项所述的方法。10.一种固态硬盘空间分配系统,其特征在于,包括如权利要求8所述的固态硬盘空间分配装置。

技术总结
本发明公开了一种固态硬盘空间分配方法、装置、介质及系统,属于存储技术领域,包括步骤:S1,主机侧获取“配置数据排布方式”命令;S2,用户通过主机发送“配置数据排布方式”命令的方式,向固态硬盘发送配置指令,进行数据排布方式配置;S3,固态硬盘的SSD控制器接收处理配置的指令,并开始切换物理地址分配和排布算法;S4,物理地址分配和排布算法切换执行完毕后,向主机侧回应参数配置结果,完成固态硬盘空间分配响应。本发明可实现针对业务场景,可动态配置调整的物理地址分配和排布的算法,从而提升固态硬盘的整体读写性能。而提升固态硬盘的整体读写性能。而提升固态硬盘的整体读写性能。


技术研发人员:刘陈诚 孙丁丁
受保护的技术使用者:四川云海芯科微电子科技有限公司
技术研发日:2023.08.23
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐