存储设备及其数据写入方法、存储装置与流程

文档序号:17160338发布日期:2019-03-20 00:36阅读:238来源:国知局
存储设备及其数据写入方法、存储装置与流程

本申请涉及存储技术领域,特别是涉及一种存储设备及其数据写入方法、存储装置。



背景技术:

随着存储技术的不断发展,人们在追求更大容量的同时,对存储设备的其他性能指标也越来越关注。例如,存储设备的突发性能近些年一直是受到人们的专注。

以快闪记忆体nandflash为例来说,nandflash有两种写入模式,单层单元slc高速写入模式以及多层单元mlc/三层单元tlc等低速写入模式,这两种不同的数据写入模式对应的写入读取性能和存储密度都是不同的。例如,通过快速写入slc写入模式进行数据写入时,数据的处理速度为mlc/tlc操作方式的5~10倍。

由于快速写入slc操作模式下的存储密度会下降,比如,完全采用slc操作模式进行数据存储时,存储密度相当于mlc操作模式下存储密度的1/2,或者相当于tlc操作模式下存储密度的2/3。因此,slc这种通过以空间换时间的操作模式也并非适合任何场合。



技术实现要素:

本申请提供一种存储设备及其数据写入方法、存储装置,能够根据存储设备当前的存储条件选择合适的数据写入方式,在不影响存储设备存储量的前提下加快数据的写入速度。

为解决上述技术问题,本申请提供的第一技术方案是提供一种存储设备的数据写入方法,数据写入方法包括:

s101,接收待写入数据;

s102,判断存储设备是否符合第一模式写入条件;

s103,若存储设备符合加速第一模式写入条件,第一模式写入写入模式将待写入数据写入到存储设备中;反之,则采用第二模式写入所述待写入数据。

为解决上述技术问题,本申请的提供的第二个技术方案是提供一种存储设备,所述存储设备包括存储器、与所述存储器通信连接的处理器、所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施方式的数据写入方法的步骤。

为解决上述技术问题,本申请提供的第三个技术方案是提供一种存储装置,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据写入方法的步骤。

区别于现有技术,本申请的存储设备在接收到待写入数据时,先判断存储设备是否符合第一模式写入条件,若符合,采用第一模式写入待写入数据,否则,第二模式写入所述待写入数据。通过上述先判断是否符合第一模式写入条件的方式能够在不影响存储设备存储量的前提下加快数据的写入速度,提升了存储设备的突发写入性能,且方便移植,实用性广,能够使低性能的存储性能的存储设备获得较好的突发写入性能指标,提高用户体验。

附图说明

图1是本申请数据写入方法的第一实施方式的流程示意图;

图2是本申请数据写入方法的第二实施方式的流程示意图;

图3是本申请数据写入方法的第三实施方式的流程示意图;

图4是本申请存储设备一实施方式的结构示意图;

图5是本申请存储装置一实施方式的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。

随着存储技术的不断发展,存储设备成为人们日常生活中必不可少的生活工作用品。而以快闪记忆体nandflash为存储介质的固态硬盘ssd是一种非易失性随机访问介质,具有断电后数据不消失、容量大、读写速度快以及适合大容量数据存储等特点,更是逐渐成为主流存储形态。相比于传统磁介质的硬盘驱动器的性能有来了质的飞越。

本申请的存储设备包括usb闪存盘(usbflashdisk)、sd卡(安全数据卡,securedigitalmemorycard)、ssd(固态硬盘,solidstatedrives)、emmc(嵌入式存储卡,embeddedmultimediacard)及emcp(嵌入式多晶片封装,embeddedmultichippackage)、cf卡(compactflash)以及其他带有存储设备的服务器以及处理器等。

为了保证存储空间的前提下,加快写入速度,本实施方式提出如下数据写入方法,如图1所示。图1是本申请数据写入方法包括如下步骤:

s101:接收待写入数据的写入命令。

当host主机下发待写入数据的写入命令,要求存储设备写入数据时,相应地,存储设备接收该写入命令。该写入命令包括待写入数据的长度、待写入数据的逻辑地址、待写入数据的写入类型例如随机地址写入。

s102:判断存储设备是否符合第一模式写入条件。

该第一模式为快速写入模式,即slc(单层单元、single-levelcell)写入模式,第一模式写入条件为快速写入条件。

其中,该第一模式写入条件为待写入数据为设定写入类型;或待写入数据为非设定写入类型,但存储设备的空闲容量大于第一阈值;或待写入数据为非设定写入类型,但存储设备的空闲时间大于第二阈值,同时空闲容量大于第一阈值。

其中,该设定写入类型为随机地址写入。

具体地,在固态硬盘数据读取或写入过程中,随机地址写入的速度是衡量固态硬盘处理能力的一项重要指标,而每秒进行读写操作的次数,即iops性能却是衡量存储设备随机地址写入速度的一项指标。通常情况下iops指标越高,说明固态硬盘ssd的数据处理能力越强。因而提高iops性能,能够提高随机地址写入速度。而采用第一模式即快速写入模式写入上述待写入数据,能够提高每秒写操作的次数以提高iops指标,进一步提高存储设备的写入速度。因此,若待写入数据的写入类型为随机地址写入时,确定该待写入数据符合快速写入条件。

另外,由于快速写入slc写入模式是以牺牲存储空间换取写入速度的,为了保证存储空间和写入空间同时兼顾,并非完全使用第一模式slc快速写入模式来写入待写入数据。因此,对存储设备的空闲容量设置一第一阈值,例如,存储空间为100g时,将该第一阈值设置为70g。在空闲容量大于该第一阈值时,上述待写入数据符合快速写入条件。例如空闲容量大于70g时,符合快速写入条件。

另外,由于存储设备在处于空闲状态即没有数据读写时,会对其内部的数据进行整理。如数据转移、垃圾回收、空闲扫描等,如果处理空闲任务与通过快速写入数据同时进行的话,会严重影响数据的写入速度。因此,本实施方式中为了避免时间上的冲突,对空闲时间的时长进行限制。如设定第二阈值为1分钟或者30秒等。如果存储设备的空闲时间大于该第二阈值,为了保证快速写入的可实施性,需进一步判断存储设备的空闲容量是否大于第一阈值,若空闲容量大于该第一阈值,则该待写入数据符合快速写入条件。

s103:若存储设备符合第一模式写入条件,采用第一写入模式写入待写入数据;反之,采用第二模式写入待写入数据。

其中,该第二模式为mlc(多层单元、multi-levelcell)写入模式、tlc(三层单元、trinary-levelcell)写入模式或qlc(四层单元、quad-levelcell)写入模式中的任一种。

具体地,当待写入数据的写入类型为随机地址写入,或者写入类型为非随机地址写入但存储设备的空闲容量大于第一阈值,或者写入类型为非随机地址写入但存储设备的空闲时间大于第二阈值,且空闲容量大于第一阈值时,存储设备开启采用快速写入模式slc写入模式写入上述待写入数据。通过快速写入模式写入数据能够加快数据写入的速率,有效提高存储设备的写入性能。

若上述条件均不满足,存储设备切换到第二模式即低速写入模式写入上述待写入数据。

在本实施方式的任一实施例中,由于对存储设备是否符合第一模式写入条件的判断并不仅仅局限于存储设备空闲时的判断,而是在整个写入数据过程的实时的动态检测过程,即存储设备在某一时间段满足第一模式写入条件后,并不意味着全部整个写入数据的过程都符合第一模式的写入条件。因此在存储设备写入数据的全程均需要对是否符合该第一模式写入条件进行判断。

例如存储设备实时检测当前的空闲容量是否大于第一阈值,如果大于该第一阈值,可继续通过快速写入slc写入模式写入数据,如果不符合,切换到第二模式如tlc写入模式或者mlc写入模式继续写入剩余数据。直至待写入数据全部写入到存储设备中。

通过上述先判断是否符合第一模式写入条件的方式能够在不影响存储设备存储量的前提下加快数据的写入速度,提升了存储设备的突发写入性能,且方便移植,实用性广,能够使低端性能的存储设备获得较好的突发写入性能指标,提高用户体验。

在另一个具体的实施方式中,如图2所示,图2是本申请数据写入方法的第二实施方式的流程示意图。包括如下步骤:

s201:接收待写入数据的写入命令。

当host主机下发待写入数据的写入命令,要求存储设备写入数据时,相应地,存储设备接收该写入命令。该写入命令包括待写入数据的长度、待写入数据的逻辑地址、待写入数据的写入类型例如随机地址写入。

s202:判断待写入数据的写入类型是否为设定写入类型。

存储设备在获取到待写入数据的写入类型后,判断该待写入数据的写入类型是否为设定写入类型。

其中,该设定写入模式为随机地址写入。

如果待写入数据为随机地址写入,该待写入数据符合快速写入条件,执行s205。

具体地,在固态硬盘数据读取或写入过程中,随机地址写入的速度是衡量固态硬盘处理能力的一项重要指标,而每秒进行读写操作的次数,即iops性能却是衡量存储设备随机地址写入的性能的一项指标。通常情况下iops指标越高,说明固态硬盘ssd的数据处理能力越强。因而提高iops性能,能够提高随机地址写入速度。而采用第一模式即快速写入模式写入上述待写入数据,能够提高每秒写操作的次数以提高iops指标,进一步提高存储设备的写入速度。因此,若待写入数据的写入类型为随机地址写入时,确定该待写入数据符合快速写入条件。

如果待写入数据的写入类型为非设定写入类型,即不是随机地址写入时,则执行s203或s204。

s203:判断存储设备的空闲容量是否大于第一阈值。

如果空闲容量大于第一阈值,则该待写入数据符合第一模式写入条件即快速写入条件。

具体地,由于快速写入slc写入模式是以牺牲存储空间换取写入速度的,为了保证存储空间和写入空间同时兼顾,并非完全使用第一模式slc快速写入模式来写入待写入数据。因此,对存储设备的空闲容量设置一第一阈值,例如,存储空间为100g时,将该第一阈值设置为70g。在空闲容量大于该第一阈值时,上述待写入数据符合快速写入条件。例如空闲容量大于70g时,符合快速写入条件,执行s205。

如果空闲容量不大于该第一阈值,执行s206。

其中,快闪记忆体nandflash都是以块为单位组成,每一个也能够存储若干页,每一页能够存储若干字节的数据。因此,本实施方式中中存储设备的空闲容量为空闲逻辑数据块的数量。

s204:判断存储设备的空闲时间是否大于第二阈值。

如果空闲时间大于第二阈值,执行s203,判断所述空闲容量是否大于第一阈值。

如果存储设备的空闲容量大于第一阈值,则该待写入数据符合快速写入条件。

具体地,由于存储设备在处于空闲状态即没有数据读写时,会对其内部的数据进行整理,如垃圾回收、空闲扫描,将采用第一模式写入的数据块的数据重现采用第二模式写入空闲数据块,写完后,擦除采用第一模式写入的数据块的数据等,如果处理空闲任务与通过快速写入数据同时进行的话,会严重影响数据的写入速度。因此,本实施方式中为了避免时间上的冲突,对空闲时间的时长进行限制。如设定第二阈值为1分钟或者30秒等。

如果该空闲时间不大于第二阈值,执行s206。

如果存储设备的空闲时间大于该第二阈值,为了保证快速写入的可实施性,需进一步判断存储设备的空闲容量是否大于第一阈值,若空闲容量大于该第一阈值,则该待写入数据符合快速写入条件,执行步骤205。如果空闲容量不大于该第一阈值,执行s206。

s205:采用第一模式写入待写入数据。

该第一模式为快速写入模式,即单层单元(single-levelcell)slc写入模式,第一模式写入条件为快速写入条件。能够加快写入该待写入数据的速率,有效提高存储设备的写入性能。

s206:采用第二模式写入待写入数据。

其中,该第二模式为mlc(多层单元、multi-levelcell)写入模式、tlc(三层单元、trinary-levelcell)写入模式或qlc(四层单元、quad-levelcell)写入模式中的任一种。

在上述任一实施方式中,由于对存储设备是否符合第一模式写入条件的判断过程并不仅仅局限于某一时刻的判断,而是实时的持续动态检测过程,即存储设备在某一时间段满足第一模式写入条件后,并不意味着整个写入数据的过程都符合第一模式的写入条件。或者某一时刻不满足,并不意味着整个写入数据过程均不满足,因此在存储设备写入数据的全程均需要对是否符合该第一模式写入条件进行判断。

例如存储设备实时检测当前的空闲容量是否大于第一阈值,如果大于可继续通过快速写入slc写入模式写入数据,如果不符合,切换到第二模式如tlc写入模式或者mlc写入模式继续写入剩余数据。直至待写入数据全部写入到存储设备中。

在另一个具体的实施方式中,如图3所示,图3是本申请数据写入方法的第三实施方式的流程示意图,包括如下步骤:

s301:接收待写入数据的写入命令。

当host主机下发待写入数据的写入命令,要求存储设备写入数据时,相应地,存储设备接收该写入命令。该写入命令包括待写入数据的长度、待写入数据的逻辑地址、待写入数据的写入类型例如随机地址写入。

s302:判断存储设备是否符合第一模式写入条件。如果符合,则执行s303。如果不符合,则执行s305。

该第一模式为快速写入模式,即单层单元(single-levelcell)slc写入模式,第一模式写入条件为快速写入条件。

其中,该第一模式写入条件为待写入数据为设定写入类型;或待写入数据为非设定写入类型,但存储设备的空闲容量大于第一阈值;或待写入数据为非设定写入类型,但存储设备的空闲时间大于第二阈值,同时空闲容量大于第一阈值。

其中,该设定写入类型为随机地址写入。

s303:采用第一模式写入所述待写入数据。

s304:判断当前是否仍然符合第一模式写入条件。

在写入过程中,存储设备进一步判断当前是否仍然第一模式写入开启条件,如判断当前存储设备的空闲容量是否大于第一阈值。如果符合则执行s303,如果不符合,则执行s305。

s305:采用第二模式写入待写入数据。

其中,该第二模式为mlc(多层单元、multi-levelcell)写入模式、tlc(三层单元、trinary-levelcell)写入模式或qlc(四层单元、quad-levelcell)写入模式中的任一种。

s306:判断是否有新的写入命令。

存储设备在写完当前的待写入数据后,进一步判断是否接收到新的写入命令,如果接收到新的写入命令,则执行s302。如果未接收到新的写入命令,则执行s307。

s307:进入空闲状态,执行空闲任务,并判断是否有新的写入命令。

其中,该空闲任务包括数据转移,具体包括将采用第一模式写入的数据块的数据,重新采用第二模式写入空闲数据块;写入完成后,擦除采用第一模式写入的数据块的数据。空闲任务还包括对存储设备进行空闲扫描,清理回收写入待写入数据产生的垃圾等操作任务。

进一步地,存储设备判断空闲任务是否执行完成,如果未执行完成,在空闲任务的执行过程中,每隔预定时间判断是否有新的命令写入。

其中,该预定时间一般为几毫秒,其也可以根据不同需求调整预定时间。

如果该存储设备在执行空闲任务期间接收到新的写入命令,则执行s302。循环上述写入过程。如果在执行空闲任务期间未接收到新的写入命令,执行s308。

s308:存储设备进入休眠状态。

存储设备在进入休眠状态后,等待下一次的host唤醒。

区别于现有技术,本实施方式中的存储设备在接收到待写入数据时,先判断存储设备是否符合第一模式写入条件,如果符合,采用第一模式写入待写入数据,否则,采用第二模式写入所述待写入数据。通过上述先判断是否符合第一模式写入条件的方式能够在不影响存储设备存储量的前提下加快数据的写入速度,提升了存储设备的突发写入性能,且方便移植,实用性广,能够使低性能的存储设备获得较好的突发写入性能指标,提高用户体验。

在硬件架构方面,本申请则提出了存储设备,请参阅图4,本实施方式的存储设备包括存储器41,与存储器41通信连接的处理器42。存储器41中存储有可在所述处理器上运行的计算机程序,处理器42在执行计算机程序时能够实现上述图1~图3任一实施方式数据写入方法。

存储器41作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据写入方法对应的程序指令/模块。处理器42通过运行存储在存储器41中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例数据写入的方法。

存储器41可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据垃圾回收的装置的使用所创建的数据等。

所述一个或者多个模块存储在所述存储器41中,当被所述一个或者多个处理器42执行时,执行上述任意方法实施例中数据写入方法。

具体地,处理器42在执行计算机程序时实现接收待写入数据的写入命令,判断存储设备是否符合第一模式写入条件。如果存储设备符合第一模式写入条件,采用第一模式写入待写入数据;反之,采用第二模式写入所述待写入数据。

该第一模式为快速写入模式,即slc(单层单元、single-levelcell)写入模式,第一模式写入条件为快速写入条件。

其中,该第二模式为mlc(多层单元、multi-levelcell)写入模式、tlc(三层单元、trinary-levelcell)写入模式或qlc(四层单元、quad-levelcell)写入模式中的任一种。

处理器42在获取到待写入数据的写入类型后,判断该待写入数据的写入类型是否为设定写入类型。

其中,该设定写入模式包括随机地址写入。

如果待写入数据为设定写入类型,处理器42确定待写入数据符合第一模式写入条件即快速写入条件。

具体地,在固态硬盘数据读取或写入过程中,随机地址写入的速度是衡量固态硬盘处理能力的一项重要指标,而每秒进行读写操作的次数,即iops性能却是衡量存储设备随机地址写入速度的一项指标。通常情况下iops指标越高,说明固态硬盘ssd的数据处理能力越强,因而提高iops性能,能够提高随机地址写入速度。而采用第一模式即快速写入模式写入上述待写入数据,能够提高每秒写操作的次数以提高iops指标,进一步提高存储设备的写入速度。因此,若待写入数据的写入类型为设定写入类型即快速写入时,确定该待写入数据符合第一模式写入条件即快速写入条件。

如果待写入数据的写入类型为非设定写入类型时,处理器42判断存储设备的空闲容量是否大于第一阈值。如果空闲容量大于第一阈值,则该待写入数据符合第一模式写入条件即快速写入条件。具体地,由于快速写入slc写入模式是以牺牲存储空间换取写入速度的,为了保证存储空间和写入空间同时兼顾,并非完全使用第一模式slc快速写入模式来写入待写入数据。因此,对存储设备的空闲容量设置一第一阈值,例如,存储空间为100g时,将该第一阈值设置为70g。在空闲容量大于该第一阈值时,上述待写入数据符合第一写入条件即快速写入条件。例如空闲容量大于70g时,符合快速写入条件。

其中,快闪记忆体nandflash都是以块为单位组成,每一个也能够存储若干页,每一页能够存储若干字节的数据。因此,本实施方式中中存储设备的空闲容量为空闲逻辑数据块的数量。

或者,在待写入数据的写入类型为非设定写入类型时,处理器42判断存储设备的空闲时间是否大于第二阈值。如果空间之间大于第二阈值,处理器42判断所述空闲容量是否大于第一阈值。如果存储设备的空闲容量大于第一阈值,则该待写入数据符合第一模式写入条件即快速写入条件。

具体地,由于存储设备在处于空闲状态即没有数据读写时,会对其内部的数据进行整理,如垃圾回收、空闲扫描等,如果这些处理任务与通过快速写入模式即slc写入模式写入数据同时进行的话,会严重影响数据的写入速度。因此,本实施方式中为了避免时间上的冲突,对空闲时间的时长进行限制。如设定第二阈值为1分钟或者30秒等。如果存储设备的空闲时间大于该第二阈值,为了保证快速写入的可实施性,需进一步判断存储设备的空闲容量是否大于第一阈值,若空闲容量大于该第一阈值,则该待写入数据符合即快速写入条件。

处理器42在存储设备符合第一模式写入条件时,采用第一写入模式写入待写入数据;反之,采用第二模式写入待写入数据。

若上述条件均不满足,存储设备切换到第二模式即低速写入模式写入上述待写入数据。

在上述实施方式的任一实施例中,由于对存储设备是否符合第一模式写入条件的判断并不仅仅局限于存储设备空闲时的判断,而是在整个写入数据过程的实时的动态检测过程,即存储设备在某一时间段满足第一模式写入条件后,并不意味着全部整个写入数据的过程都符合第一模式的写入条件。因此在处理器42写入数据的全程均需要对是否符合该第一模式写入条件进行判断。

例如在写入过程中,处理器42实时检测当前的空闲容量是否大于第一阈值,如果大于可继续通过快速写入slc写入模式写入数据,如果不符合,切换到第二模式如tlc写入模式或者mlc写入模式继续写入剩余数据。直至待写入数据全部写入到存储设备中。

在一个具体实施方式中,处理器42在采用快速写入slc写入模式写入数据后,判断当前是否仍然符合第一模式写入条件。如判断当前存储设备的空闲空间是否大于第一阈值。如果符合继续保持第一模式写入待写入数据。如果不符合,处理器42转为第二模式继续写入剩余数据。处理器42在写完当前的待写入数据后,进一步判断是否接收到新的写入命令,如果接收到新的写入命令,则再次判断是否符合第一模式写入条件,如果未接收到新的写入命令,进入空闲状态,执行空闲任务。

其中,该空闲任务包括数据转移,还包括对存储设备进行空闲扫描,清理回收写入待写入数据产生的垃圾等操作任务。当空闲任务全部执行完成后,存储设备进行空闲状态。

在空闲任务执行的过程中,处理器42每隔预定时间判断是否有新的命令写入。其中,该预定时间一般为几毫秒,其也可以根据不同需求调整预定时间。

如果该存储设备在执行空闲任务期间接收到新的写入命令,则再次判断是否符合第一模式写入条件。如果在执行空闲任务期间未接收到新的写入命令,处理器42控制存储设备进入休眠状态。

区别于现有技术,本实施方式中的存储设备的处理器42在接收到待写入数据时,先判断存储设备是否符合第一模式写入条件,如果符合,采用第一模式写入待写入数据,反之,采用第二模式写入所述待写入数据。通过上述先判断是否符合第一模式写入条件的方式能够在不影响存储设备存储量的前提下加快数据的写入速度,提升了存储设备的突发写入性能,且方便移植,实用性广,能够使低端性能的存储设备获得较好的突发写入性能指标,提高用户体验。

请参阅图5,图5是本申请存储装置一实施例的结构示意图,本实施例存储装置50中存储有计算机程序51,计算机程序51被处理器执行时实现上述数据写入方法。

该存储装置50具体可以为u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory,)、磁碟或者光盘等可以存储计算机程序51的介质,或者也可以为存储有该计算机程序51的服务器,该服务器可将存储的计算机程序51发送给其他设备运行,或者也可以自运行该存储的计算机程序51。该存储装置50从物理实体上来看,可以为多个实体的组合,例如多个服务器、服务器加存储器、或存储器加移动硬盘等多种组合方式。

以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1