一种固态硬盘的写数据方法、装置、设备及存储介质与流程

文档序号:16528828发布日期:2019-01-05 10:34阅读:178来源:国知局
本发明涉及计算机
技术领域
:,特别涉及一种固态硬盘的写数据方法、装置、设备及计算机可读存储介质。
背景技术
::随着互联网、云计算、物联网等技术的快速发展,ssd(solidstatedrive,固态硬盘)作为新一代存储设备,被广泛应用。在将数据信息写入到固态硬盘前,需要先清除固态硬盘中预设的数据信息,然后再将新的数据信息写入。现有技术中,清除固态硬盘中预设的数据信息是在接收到写指令时获取trim请求,然后根据trim请求获取ssd中对应的lba(logicalblockaddress,逻辑区块地址),然后将lba中的trimbit清除,从而能够对固态硬盘执行写操作。但是lba一般设置于ddr(doubledatarate,双倍速率同步动态随机存储器)中,访问ddr需要很大的开销,现有技术中,在进行写指令时进行数据信息的清除操作将导致写操作延迟,进而可能导致数据丢失。因此,如何提高固态硬盘写数据的稳定性和可靠性是本领域技术人员目前需要解决的技术问题。技术实现要素:有鉴于此,本发明的目的在于提供一种固态硬盘的写数据方法,能够提高固态硬盘写数据的稳定性和可靠性;本发明的另一目的是提供一种固态硬盘的写数据装置、设备及计算机可读存储介质,均具有上述有益效果。为解决上述技术问题,本发明提供一种固态硬盘的写数据方法,包括:在接收到写指令之前,预先在本机ram中设置标识信息;其中,所述标识信息用于表征已清除对应的lba中trimbitmap的trimbit;当接收到所述写指令时,判断所述本机ram中是否存在与所述写指令对应的lba的目标标识信息;若是,则根据所述写指令将对应的数据信息写入到固态硬盘中。优选地,所述标识信息的设置方法包括:在接收到trim请求后,获取与所述trim请求对应的目标lba及与所述目标lba对应的目标trimbitmap;将与所述目标trimbitmap对应的物理地址设置为无效,并清除所述目标trimbitmap中的trimbit;在所述本机ram中设置与所述目标lba对应的标识信息。优选地,所述在所述本机ram中设置与所述目标lba对应的标识信息具体为:当预设时间内没有收到新的trim请求时,在所述本机ram中设置与所述目标lba对应的标识信息。优选地,所述将与所述目标trimbitmap对应的物理地址设置为无效,并清除所述目标trimbitmap中的trimbit具体包括:为所述目标trimbitmap设置第一标识信息;根据所述第一标识信息将与所述目标trimbitmap对应的物理地址设置为无效;清除所述目标trimbitmap中的所述trimbit并为所述目标trimbitmap设置第二标识信息。优选地,在所述为所述目标trimbitmap设置第一标识信息之后,进一步包括:向主机回复完成所述trim请求的反馈信息。优选地,所述在所述本机ram中设置与所述目标lba对应的标识信息之后,进一步包括:将所述目标lba的信息以及设置所述标识信息的时间记录至日志。为解决上述技术问题,本发明还提供一种固态硬盘的写数据装置,包括:预设模块,用于在接收到写指令之前,预先在本机ram中设置标识信息;其中,所述标识信息用于表征已清除对应的lba中trimbitmap的trimbit;判断模块,用于当接收到所述写指令时,判断所述本机ram中是否存在与所述写指令对应的lba的目标标识信息;写入模块,用于当本机ram中存在与所述写指令对应的lba的标识信息时,根据所述写指令将对应的数据信息写入到固态硬盘中。优选地,进一步包括:反馈模块,用于向主机回复完成所述trim请求的反馈信息。为解决上述技术问题,本发明还提供一种固态硬盘的写数据设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述任一种固态硬盘的写数据方法的步骤。为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种固态硬盘的写数据方法的步骤。本发明提供的一种固态硬盘的写数据方法,包括在接收到写指令之前,预先在本机ram中设置标识信息;标识信息用于表征已清除对应的lba中trimbitmap的trimbit以及trimbitmap对应的物理地址已设置为无效;因此,当接收到写指令时,只需要判断本机ram中是否存在与写指令中的lba对应的目标标识信息;若是,则根据写指令将对应的数据信息写入到lba中,从而不仅减少了在执行写指令时对固态硬盘的访问,而且避免了在执行写指令时的清除操作,降低了执行写指令时的开销,大大缩短了将数据信息写入到固态硬盘中的延时,因此能够提高固态硬盘写数据的稳定性和可靠性。为解决上述技术问题,本发明还提供了一种固态硬盘的写数据装置、设备及计算机可读存储介质,均具有上述有益效果。附图说明为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种固态硬盘的写数据方法的流程图;图2为本发明实施例提供的一种标识信息的设置方法的流程图;图3为本发明实施例提供的一种固态硬盘的写数据装置的结构图;图4为本发明实施例提供的一种固态硬盘的写数据设备的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例的核心是提供一种固态硬盘的写数据方法,能够提高固态硬盘写数据的稳定性和可靠性;本发明的另一核心是提供一种固态硬盘的写数据装置、设备及计算机可读存储介质,均具有上述有益效果。为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。图1为本发明实施例提供的一种固态硬盘的写数据方法的流程图。如图1所示,一种固态硬盘的写数据方法包括:s10:在接收到写指令之前,预先在本机ram中设置标识信息;其中,标识信息用于表征已清除对应的lba中trimbitmap的trimbit。需要说明的是,在本实施例中,首先是在接收到写指令之前,预先在本机ram(randomaccessmemory,随机存取存储器)中设置用于表征已清除对应的lba中trimbitmap的trimbit的标识信息。可以理解的是,ram是与cpu(centralprocessingunit,中央处理器)直接交换数据的内部存储器,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。cpu可以随时读写ram中信息。将标识信息设置于本机ram上,使得在后续接收到写操作时,通过访问本机ram并判断是否存在标识信息以确定是否执行写指令,不仅避免了对固态硬盘的访问,而且访问ram的速度快相较于固态硬盘来说更快,且开销更小。s20:当接收到写指令时,判断本机ram中是否存在与写指令对应的lba的目标标识信息;若是,则执行s30;s30:根据写指令将对应的数据信息写入到固态硬盘中。具体的,在接收到由主机发送的写指令时,首先判断本机ram中是否存在与写指令对应的lba的目标标识信息。目标标识信息为预设与本机ram中的标识信息中的一个或多个。若存在,则执行写指令对应的写操作,根据写指令将对应的数据信息写入到固态硬盘中,从而避免了直接访问固态硬盘进行数据信息的清除操作,明显降低了处理开销。可以理解的是,在具体实施中,一般是将数据信息写入到固态硬盘中的写指令对应的ddr的lba中。需要说明的是,固态硬盘是一种用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、dram芯片)组成。ddr指的是一种设置于ssd中的内存,具体为双倍速率同步动态随机存储器。lba是描述存储设备上数据所在区块的通用机制,lba指某个数据区块的地址或是某个地址所指向的数据区块。由于访问ddr时的开销比较大,将导致整个操作进程的速度减慢,从而导致写延迟,因此在本实施例中,通过减少在获取到写指令后对ddr的访问,以提高对写指令的执行速度。本发明实施例提供的一种固态硬盘的写数据方法,包括在接收到写指令之前,预先在本机ram中设置标识信息;标识信息用于表征已清除对应的lba中trimbitmap的trimbit以及trimbitmap对应的物理地址已设置为无效;因此,当接收到写指令时,只需要判断本机ram中是否存在与写指令中的lba对应的目标标识信息;若是,则根据写指令将对应的数据信息写入到lba中,从而不仅减少了在执行写指令时对固态硬盘的访问,而且避免了在执行写指令时的清除操作,降低了执行写指令时的开销,大大缩短了将数据信息写入到固态硬盘中的延时,因此能够提高固态硬盘写数据的稳定性和可靠性。图2为本发明实施例提供的一种标识信息的设置方法的流程图,如图2所示,标识信息的设置方法包括:s21:在接收到trim请求后,获取与trim请求对应的目标lba及与目标lba对应的目标trimbitmap;s22:将与目标trimbitmap对应的物理地址设置为无效,并清除目标trimbitmap中的trimbit;s23:在本机ram中设置与目标lba对应的标识信息。具体的,trim请求中至少包括目标lba,表示需要删除的固态硬盘ssd中的ddr中对应的目标lba中的数据信息。简单来说,trim请求是一种让主机告诉固态硬盘哪些数据信息是可以清除的指令,以便固态硬盘将这些可清除的数据信息删除,从而能够写入新的数据信息。因此,具体的,在接收到trim请求后,根据该trim请求中的信息,获取目标lba以及目标lba中的目标trimbitmap;根据目标trimbitmap的信息将与目标trimbitmap对应的物理地址设置为无效,然后清除目标trimbitmap中的trimbit,再在本机ram中设置与目标lba对应的标识信息。需要说明的是,在本实施例中,与目标trimbitmap对应的物理地址指的是根据l2p映射表(logicaltophysicaladdresstable)得出的与目标trimbitmap对应的物理地址。将与目标trimbitmap对应的物理地址设置为无效,则表示这些物理地址上的数据信息是可以被清除的。在上述两个操作都完成后,即表示当前trimbitmap中的trimbit已经被清除,并且对应的物理地址中的数据信息也已清除,然后在本机ram中设置与目标lba对应的标识信息。可见,通过在接收到trim请求后,获取与trim请求对应的目标lba以及目标trimbitmap;将与目标trimbitmap对应的物理地址设置为无效并清除目标trimbitmap中的trimbit;然后在本机ram中设置与目标lba对应的标识信息。因此,当接收到写指令时,只需要判断本机ram中是否存在与写指令中的lba对应的标识信息;若是,则根据写指令将对应的数据信息写入到lba中,不仅减少了在执行写指令时对固态硬盘的访问,而且避免了在在执行写指令时的清除操作,降低了执行写指令时的开销,大大缩短了将数据信息写入到固态硬盘中的延时,因此能够提高固态硬盘写数据的稳定性和可靠性。在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在本机ram中设置与目标lba对应的标识信息具体为:当预设时间内没有收到新的trim请求时,在本机ram中设置与目标lba对应的标识信息。具体的,在实施例中,是在预设时间内没有收到新的trim请求时,设置与目标lba对应的标识信息。具体的操作过程可以是:在接收到trim请求后开始计时,或者是在将与trimbitmap对应的物理地址设置为无效之后开始计时,当计时累积达到预设时间时,在本机ram中设置与目标lba对应的标识信息。预设时间的长度一般根据实际经验进行设置,本实施例对此不做具体的限定。可以理解的是,在本实施例中,是在预设时间内没有收到新的trim请求是,设置标识信息,以避免频繁接收到trim请求而频繁对固态硬盘中的lba进行操作,减少了对固态硬盘中的数据的清除次数。在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,将与目标trimbitmap对应的物理地址设置为无效,并清除目标trimbitmap中的trimbit具体包括:为目标trimbitmap设置第一标识信息;将与目标trimbitmap对应的物理地址设置为无效;将与目标trimbitmap对应的物理地址设置为无效,并清除目标trimbitmap中的trimbit。需要说明的是,在本实施例中,首先是为目标lba对应中的目标trimbitmap设置第一标识信息,通过为目标trimbitmap设置第一标识信息,以便于查找与目标trimbitmap对应的物理地址,在查找到与目标trimbitmap对应的物理地址后,将物理地址设置为无效(invalid),然后清除目标trimbitmap中的trimbit并为目标trimbitmap设置第二标识信息。本实施例中的第一标识信息和第二标识信息可以是字符信息,如第一标识信息具体为数值1,第二标识信息具体为数值0;或者第一标识信息具体为“*”,第二标识信息具体为“#”等,本实施例对第一标识信息和第二标识信息的具体类型不做限定。通过为目标trimbitmap设置第一标识信息,然后根据第一标识信息查找与目标trimbitmap对应的物理地址,提高了查找的准确度。作为优选的实施方式,在为目标trimbitmap设置第一标识信息之后,进一步包括:向主机回复完成trim请求的反馈信息。也就是说,在将在与trim请求对应的lba中的trimbitmap设置第一标识信息之后,先向主机发送反馈信息。由于在对lba中的trimbitmap设置第一标识信息之后,必然会执行将lba对应的l2p映射表对应的物理位置设置为无效并清除trimbit的操作,因此,先向主机发送反馈信息,也即在传输反馈信息的同时,能够对l2p映射表对应的物理位置设置为无效并清除trimbit的操作,相当于两个线程同时进行操作,从而节省操作时间。在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在本机ram中设置与目标lba对应的标识信息之后,进一步包括:将目标lba的信息以及设置标识信息的时间记录至日志。具体的,在将与目标lba对应的标识信息设置于本机ram中之后,进一步的将目标lba的信息以及设置标识信息的时间记录至日志。其中,目标lba的信息包括lba的位置、存储空间等信息,在本实施例中,通过将目标lba的信息以及设置标识信息的时间记录至日志,以便能够在后续的操作中通过查看日志内容了解关于各设置标识信息的lba的信息,从而进一步了解固态硬盘的运行情况。上文对于本发明提供的一种固态硬盘的写数据方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的固态硬盘的写数据装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。图3为本发明实施例提供的一种固态硬盘的写数据装置的结构图,如图2所示,一种固态硬盘的写数据装置包括:预设模块31,用于在接收到写指令之前,预先在本机ram中设置标识信息;其中,标识信息用于表征已清除对应的lba中trimbitmap的trimbit;判断模块32,用于当接收到写指令时,判断本机ram中是否存在与写指令对应的lba的目标标识信息;写入模块33,用于当本机ram中存在与写指令对应的lba的标识信息时,根据写指令将对应的数据信息写入到固态硬盘中。本发明实施例提供的固态硬盘的写数据装置,具有上述固态硬盘的写数据方法的有益效果。图4为本发明实施例提供的一种固态硬盘的写数据设备的结构图,如图4所示,一种固态硬盘的写数据设备包括:存储器41,用于存储计算机程序;处理器42,用于执行计算机程序时实现如上述固态硬盘的写数据方法的步骤。本发明实施例提供的固态硬盘的写数据设备,具有上述固态硬盘的写数据方法的有益效果。为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述固态硬盘的写数据方法的步骤。本发明实施例提供的计算机可读存储介质,具有上述固态硬盘的写数据方法的有益效果。以上对本发明所提供的固态硬盘的写数据方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1