数据处理方法、装置、存储介质及电子装置与流程

文档序号:32061917发布日期:2022-11-04 23:29阅读:49来源:国知局
数据处理方法、装置、存储介质及电子装置与流程

1.本发明实施例涉及数据处理技术领域,具体而言,涉及一种数据处理方法、装置、存储介质及电子装置。


背景技术:

2.随着互联网、云计算、大数据等技术的快速发展,时刻都会产生海量数据,这些数据需要进行处理和存储。固态硬盘ssd(solid state drive,又称固态驱动器)因其读写速度快、能耗低的特点,得到了广泛的应用,随之对硬盘的性能要求也会越来越高。例如,消费类固态硬盘需要优先满足读请求,这关系到客户在使用产品时的直观体验,所以固件会针对主机读请求做一些优化处理,常用的技术会有:设置读命令比其他命令具有更高的优先级;提高读命令的并行度等。例如,有采用将当前读指令顺序相邻的数据预缓存到固态缓存中,以减少后续指令读取响应时间,但是,相关技术中主机读压力较大时固件是没有时间去读逻辑地址相邻的数据的,或者如果逻辑地址相邻但是物理地址不相邻反而会导致读性能下降,相关技术中的主要缺点是都只从读方面来着手解决问题,而并未考虑从根源上解决问题,例如,如何改善数据在固态硬盘上的存储,即相关技术中存在着无法有效提高固态硬盘的读性能的问题。
3.针对相关技术中存在的无法有效提高固态硬盘的读性能的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种数据处理方法、装置、存储介质及电子装置,以至少解决相关技术中存在的无法有效提高固态硬盘的读性能的问题。
5.根据本发明的一个实施例,提供了一种数据处理方法,包括:在接收到用于请求写入第一目标数据的第一请求指令的情况下,基于所述第一请求指令确定所述第一目标数据的第一目标信息;在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,其中,所述预定规则用于指示按照与页的大小对齐的规则,所述目标标志位用于指示在当前次接收到所述第一请求指令之前所接收到的连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且所述目标请求次数所包括的每次请求所指示的目标数据的目标信息均满足所述第一预定条件。
6.在一个示例性实施例中,在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位的值为第一预定值的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中,其中,所述目标标志位的值是在确定所述目标请求次数大于或等于所述第一预定阈值的情况下,被设置为所述第一预定值的。
7.在一个示例性实施例中,在确定所述第一目标信息满足第一预定条件,且在确定目标标志位的值满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:确定所述第一目标信息中包括的第一逻辑块地址lba信息和第一目标长度信息,其中,所述第一目标长度信息用于指示所述第一目标数据的长度的信息;确定所述第一lba信息与第二lba信息是否满足连续条件,其中,第二目标信息中包括所述第二lba信息,所述第二目标信息是基于第二请求指令所确定出的第二目标数据的信息,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的指令;在确定所述第一lba信息与所述第二lba信息满足所述连续条件,且在确定所述第一目标长度信息所指示的所述第一目标数据的长度大于或等于第二预定值的情况下,确定所述第一目标信息满足所述第一预定条件;在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位满足所述第二预定条件的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中。
8.在一个示例性实施例中,确定所述第一lba信息与第二lba信息是否满足连续条件,包括:将所述第一lba信息与所述第二lba信息及第二目标长度信息进行比较,以确定所述第一lba信息与所述第二lba信息是否满足所述连续条件,其中,所述第二目标信息中还包括所述第二目标长度信息,所述第二目标长度信息用于指示所述第二目标数据的长度的信息。
9.在一个示例性实施例中,将所述第一lba信息与所述第二lba信息及第二目标长度信息进行比较,以确定所述第一lba信息与所述第二lba信息是否满足所述连续条件,包括:将所述第一lba信息与所述第二lba信息及所述第二目标长度信息进行比较,以得到比较结果;在所述比较结果指示所述第一lba信息所对应的第一lba等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息满足所述连续条件;在所述比较结果指示所述第一lba信息所对应的第一lba不等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息不满足所述连续条件。
10.在一个示例性实施例中,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:将所述第一目标数据从目标页的起始位置开始并按照与所述页的大小对齐的规则存入所述目标固态硬盘中,其中,所述目标页用于指示当前页的下一页,所述当前页用于指示第二请求指令所请求写入的第二目标数据在所述目标固态硬盘中所占据的最后一页,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的指令。
11.在一个示例性实施例中,所述方法还包括:在确定所述当前页未填满的情况下,利用无效数据填充所述当前页的剩余空间。
12.根据本发明的另一个实施例,还提供了一种数据处理装置,包括:确定模块,用于在接收到用于请求写入第一目标数据的第一请求指令的情况下,基于所述第一请求指令确定所述第一目标数据的第一目标信息;处理模块,用于在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,其中,所述预定规则用于指示按照与页的大小对齐的规则,所述目标标志位用于指示在当前次接收到所述第一请求指令之前所接收到的连续请求写入
数据的目标请求次数是否大于或等于第一预定阈值,且所述目标请求次数所包括的每次请求所指示的目标数据的目标信息均满足所述第一预定条件。
13.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
14.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
15.通过本发明,在接收到请求写入第一目标数据的第一请求指令时,基于第一请求指令确定第一目标数据的第一目标信息,当确定第一目标信息满足第一预定条件,且确定目标标志位满足第二预定条件时,将第一目标数据按照与页的大小对齐的规则存入目标固态硬盘中,其中,目标标志位用于指示在当前次接收到第一请求指令之前已接收到连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且目标请求次数中所对应的每次请求的目标数据的目标信息均满足上述第一预定条件,即,在当前次请求写入的第一目标数据的第一目标信息满足第一预定条件,且在此之前已连续有目标请求次数的数据写入请求均满足第一预定条件的情况下,将第一目标数据按照与页的大小对齐的规则存入目标固态硬盘中,这样可以实现尽可能多的将满足第一预定条件的数据按照页的大小对齐规则存储在目标固态硬盘上的目的。因此,实现了对写入目标固态硬盘的数据的物理分布情况进行了改善的目的,避免了相关技术中仅从读方面来解决读性能而未从根源上改善读性能的问题,因此,解决了相关技术中存在的无法有效提高固态硬盘的读性能的问题,达到了提高固态硬盘读性能的效果。
附图说明
16.图1是本发明实施例的数据处理方法的移动终端硬件结构框图;
17.图2是根据本发明实施例的数据处理方法的流程图;
18.图3是根据本发明具体实施例的读数据的方法示意图;
19.图4是根据本发明具体实施例的写数据的方法流程图;
20.图5是根据本发明实施例的数据处理装置的结构框图。
具体实施方式
21.下文中将参考附图并结合实施例来详细说明本发明的实施例。
22.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
23.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的数据处理方法的移动终端硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述
移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
24.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
25.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
26.在本实施例中提供了一种数据处理方法,图2是根据本发明实施例的数据处理方法的流程图,如图2所示,该流程包括如下步骤:
27.步骤s202,在接收到用于请求写入第一目标数据的第一请求指令的情况下,基于所述第一请求指令确定所述第一目标数据的第一目标信息;
28.步骤s204,在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,其中,所述预定规则用于指示按照与页的大小对齐的规则,所述目标标志位用于指示在当前次接收到所述第一请求指令之前所接收到的连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且所述目标请求次数所包括的每次请求所指示的目标数据的目标信息均满足所述第一预定条件。
29.通过上述步骤,在接收到请求写入第一目标数据的第一请求指令时,基于第一请求指令确定第一目标数据的第一目标信息,当确定第一目标信息满足第一预定条件,且确定目标标志位满足第二预定条件时,将第一目标数据按照与页的大小对齐的规则存入目标固态硬盘中,其中,目标标志位用于指示在当前次接收到第一请求指令之前已接收到连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且目标请求次数中所对应的每次请求的目标数据的目标信息均满足上述第一预定条件,即,在当前次请求写入的第一目标数据的第一目标信息满足第一预定条件,且在此之前已连续有目标请求次数的数据写入请求均满足第一预定条件的情况下,将第一目标数据按照与页的大小对齐的规则存入目标固态硬盘中,这样可以实现尽可能多的将满足第一预定条件的数据按照页的大小对齐规则存储在目标固态硬盘上的目的。因此,实现了对写入目标固态硬盘的数据的物理分布情况进行了改善的目的,避免了相关技术中仅从读方面来解决读性能而未从根源上改善读性能的问题,因此,解决了相关技术中存在的无法有效提高固态硬盘的读性能的问题,达到了提高固态硬盘读性能的效果。
30.其中,上述步骤的执行主体可以为控制器,例如,固态硬盘控制器,或终端,或服务器,或者为配置在存储设备上的具备人机交互能力的处理器,或者为具备类似处理能力的
处理设备或处理单元等,但不限于此。下面以固态硬盘控制器(以下简称为“控制器”)执行上述操作为例(仅是一种示例性说明,在实际操作中还可以是其他的设备或模块来执行上述操作)进行说明:
31.在上述实施例中,控制器在接收到用于请求写入第一目标数据的第一请求指令的情况下,基于第一请求指令确定第一目标数据的第一目标信息,例如,当控制器接收到主机的写请求指令(对应于上述第一请求指令)时,即主机请求写入第一目标数据,控制器基于第一请求指令确定第一目标数据的第一目标信息,例如,第一目标信息可包括第一目标数据的逻辑块地址lba信息,第一目标信息中还可包括第一目标数据的数据长度信息,如数据长度为32k,或64k,或128k或其它长度;在确定第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将第一目标数据按照预定规则存入目标固态硬盘中,其中,预定规则用于指示按照与页的大小对齐的规则,目标标志位用于指示在当前次接收到第一请求指令之前所接收到的连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且目标请求次数所包括的每次请求所指示的目标数据的目标信息均满足第一预定条件,例如,上述第一预定阈值为3次(或5次,或其它值),目标标志位则表示在当前次接收到第一请求指令之前所接收到的连续请求写入数据的目标请求次数是否大于或等于3次,且目标请求次数中所对应的每次请求所指示的写入的目标数据的目标信息均满足第一预定条件,例如,第一预定条件包括当前次请求写入的目标数据的lba与前一次请求写入的目标数据的lba是连续的,和/或,第一预定条件还可包括每次请求写入的目标数据的数据长度大于预设长度阈值,例如,预设长度阈值为128k(或64k,或32k,或其它),即,目标标志位用于表示在当前次之前是否有连续3次请求写入的目标数据均满足上述第一预定条件,在实际应用中,控制器通过设置上述目标标志位,例如,当该目标标志位为1(或true)时,表示连续请求写入的数据均满足上述第一预定条件的请求次数达到第一预定阈值(如上述3次),而当目标标志位为0(或false)时,表示连续请求写入的数据均满足第一预定条件的请求次数未达到第一预定阈值,这样,当控制器确定当前次请求写入的第一目标数据的第一目标信息满足上述第一预定条件,且目标标志位满足第二预定条件时,即可控制将第一目标数据按照预定规则存入目标固态硬盘中,即从固态硬盘的数据写入的根源着手,对固态硬盘上存储的数据的物理分布情况进行改善,以实现尽可能多的将满足第一预定条件的数据按照页的大小对齐规则存储在目标固态硬盘上的目的。避免了相关技术中仅从读方面来解决读性能而未从根源上改善读性能的问题,因此,解决了相关技术中存在的无法有效提高固态硬盘的读性能的问题,达到了提高固态硬盘读性能的效果。
32.在一个可选的实施例中,在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位的值为第一预定值的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中,其中,所述目标标志位的值是在确定所述目标请求次数大于或等于所述第一预定阈值的情况下,被设置为所述第一预定值的。在本实施例中,当确定第一目标信息满足第一预定条件,且当确定目标标志位的值为第一预定值时,例如,第一预定条件包括当前次请求写入的目标数据的lba与前一次请求写入的目标数据的lba是连续的,和/或,第一预定条件还可包括每次请求写入的目标数据的数据长度大于预设长度阈值,即,请求写入的目标数据
的lba地址相对于前一次写入的数据的lba地址是连续的,和/或,请求写入的目标数据为大数据,此处的大数据为相对的,可预先设置,例如,可预先设定数据长度大于或等于32k(或64k,或128k)的为大数据,此时,1k或4k的则为小数据,上述第一预定值可设置为1,即,在第一目标信息满足第一预定条件而且目标标志位的值为1时,可将第一目标数据按照预定规则写入目标固态硬盘中。通过本实施例,实现了在确定当前次请求写入的第一目标数据及目标标志位的值均满足条件的情况下,将第一目标数据按照预定规则存入目标固态硬盘中的目的。
33.在一个可选的实施例中,在确定所述第一目标信息满足第一预定条件,且在确定目标标志位的值满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:确定所述第一目标信息中包括的第一逻辑块地址lba信息和第一目标长度信息,其中,所述第一目标长度信息用于指示所述第一目标数据的长度的信息;确定所述第一lba信息与第二lba信息是否满足连续条件,其中,第二目标信息中包括所述第二lba信息,所述第二目标信息是基于第二请求指令所确定出的第二目标数据的信息,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的指令;在确定所述第一lba信息与所述第二lba信息满足所述连续条件,且在确定所述第一目标长度信息所指示的所述第一目标数据的长度大于或等于第二预定值的情况下,确定所述第一目标信息满足所述第一预定条件;在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位满足所述第二预定条件的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中。在本实施例中,可通过确定第一目标信息中包括的第一lba信息和第一目标长度信息,即主机请求写入的第一目标数据的逻辑块地址信息和第一目标数据的长度信息;再确定第一lba信息与第二lba信息是否满足连续条件,其中,第二lba信息为在第一请求指令之前所接收到的请求写入第二目标数据的逻辑块地址信息;当确定第一lba信息与第二lba信息满足连续条件,且第一目标数据的长度大于第二预定阈值时,即可确定第一目标信息满足第一预定条件,第二预定阈值对应于前述实施例中的预设长度阈值,例如,第二预定阈值为128k(或64k,或32k,或其它);然后,当确定第一目标信息满足第一预定条件,且目标标志位满足第二预定条件,例如,目标标志位的值为第一预定值,此时,可将第一目标数据按照预定规则存入目标固态硬盘中。通过本实施例,实现了确定第一目标信息是否满足第一预定条件的目的,进而实现了在第一目标信息满足第一预定条件及目标标志位满足第二预定条件的情况下将第一目标数据按照预定规则存入目标固态硬盘的目的。
34.在一个可选的实施例中,确定所述第一lba信息与第二lba信息是否满足连续条件,包括:将所述第一lba信息与所述第二lba信息及所述第二目标长度信息进行比较,以确定所述第一lba信息与所述第二lba信息是否满足所述连续条件,其中,所述第二目标信息中还包括所述第二目标长度信息,所述第二目标长度信息用于指示所述第二目标数据的长度的信息。在本实施例中,通过将第一lba信息与第二lba信息及第二目标长度信息进行比较,以确定第一lba信息与第二lba信息是否满足连续条件,例如,第二lba地址(即第二目标数据的逻辑块地址)为100,且第二目标数据的长度为64k,假设一个lba为1k(也可以是512b,或其它),如果第一lba地址为164(=100+64),则可判断出第一lba地址与第二lba地址是连续的。通过本实施例,实现了确定第一lba信息与第二lba信息是否连续的目的。
35.在一个可选的实施例中,将所述第一lba信息与所述第二lba信息及第二目标长度信息进行比较,以确定所述第一lba信息与所述第二lba信息是否满足所述连续条件,包括:将所述第一lba信息与所述第二lba信息及所述第二目标长度信息进行比较,以得到比较结果;在所述比较结果指示所述第一lba信息所对应的第一lba等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息满足所述连续条件;在所述比较结果指示所述第一lba信息所对应的第一lba不等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息不满足所述连续条件。在本实施例中,当第一lba等于第二lba与第二目标长度之和的情况下,则可确定第一lba信息与第二lba信息满足连续条件,即,若当前次的第一请求指令中的逻辑块地址(即第一lba)等于前一条指令中的逻辑块地址(即第二lba)与前一条指令中请求写入的数据长度(即第二目标数据长度)之和,则可确定前后两条指令的逻辑块地址满足连续条件,相反,如果第一lba不等于第二lba与第二目标数据长度之和的话,则可确定第一lba信息与第二lba信息不满足连续条件,需要说明的是,上述请求指令均指请求写入数据的指令。通过本实施例,实现了基于第一lba与第二lba及第二目标长度确定第一lba信息与第二lba信息是否满足连续条件的目的。
36.在一个可选的实施例中,将所述第一目标数据按照预定规则存入目标固态硬盘中,包括:将所述第一目标数据从目标页的起始位置开始并按照与所述页的大小对齐的规则存入所述目标固态硬盘中,其中,所述目标页用于指示当前页的下一页,所述当前页用于指示第二请求指令所请求写入的第二目标数据在所述目标固态硬盘中所占据的最后一页,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的指令。在本实施例中,将第一目标数据从目标页的起始位置开始并按照与页的大小(或称为size)对齐的规则存入目标固态硬盘中,上述页的大小也可称为page大小,目标页为当前页的下一页,当前页指当前次请求写入的第一请求指令的前一条指令(如前述第二请求指令)请求写入的第二目标数据在目标固态硬盘中所占据的最后一页,例如,当前页为第m页,那么上述第一目标数据将从第m+1页的起始位置开始按照与页的大小对齐的规则存入目标固态硬盘中,即,将第一目标数据从新的一页开始按照与页的大小对齐的规则存入目标固态硬盘中,当然,在第一请求指令之后的后续写入请求指令(如第三请求指令)中,只要第三请求指令中所包括的逻辑块地址信息(如第三lba信息)与第一lba信息满足连续条件,以此类推,即当前指令中的lba信息与上一条指令中的lba信息满足连续条件,且第三请求指令中包括的数据长度(如第三目标数据长度)大于或等于预设长度阈值的情况,将后续请求指令中所请求写入的数据(如第三目标数据)也按照与页的大小对齐的规则存入目标固态硬盘中。通过本实施例,实现了将第一目标数据从目标页的起始位置开始并按照与页的大小对齐的规则存入目标固态硬盘中的目的。
37.在一个可选的实施例中,所述方法还包括:在确定所述当前页未填满的情况下,利用无效数据填充所述当前页的剩余空间。在本实施例中,如果当前页未填满的话,如前述实施例中第m页(即当前页)未填满的话,可利用无效数据填充当前页的剩余空间,这样可以使得当前次的请求指令(即上述地一请求指令)所请求写入的第一目标数据可以从新的一页开始存入目标固态硬盘中。
38.显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
下面结合实施例对本发明进行具体说明。
39.本实施例中提供了一种读数据的方法,本实施例的目的是为了提高顺序数据的读,因为通过调查发现用户的数据大部分都是顺序数据,下面以nand flash固态硬盘为例进行说明。
40.为了提高顺序数据读性能固件会使用nand的cache read命令,该命令可以在完成当次page数据的传输同时下发了下一个page数据,这样当下次读的时候数据已经从nand cell读到了nand的cache register,相当于省去了一个tr的时间,提高了读的性能。如图3所示,图3是根据本发明具体实施例的读数据的方法示意图,该方法包括:1)、第一笔读数据lba=x,长度为page大小,其数据物理地址为:n,下发cache read命令,将物理page n的数据传输到nand的cache register,并同时下发对下一个page n+1的读;2)、进行page数据的传输,同时nand将page n+1的数据传输到data register。cache可以在数据传输的同时,nand将下一笔数据准备好,提高了读的性能。
41.要使用cache read需要满足逻辑地址连续的同时物理地址也连续,并且要读取的数据位于整个page。在实际的使用中如果用户在拷贝一个大文件,由于有os的存在,os需要实时保存os和文件系统的重要数据会插入到用户数据中,导致连续数据被打断,结果是逻辑连续的数据在物理上面不连续,如果用户下次读这些逻辑连续的数据的时候,由于其物理的不连续性导致读性能降低。
42.因此,本实施例中还提供了一种写数据的方法,以从根源上改善固态硬盘的读性能。该方法包括:
43.步骤1:当收到主机写请求时记录当前的lba和写请求数据长度,如果数据请求长度大于或等于我们设定的阈值(对应于前述第二预定值,或前述预设长度阈值)那么标记当前的命令为valid,否则记录为invalid;
44.步骤2:当收到下一条写请求时如果当前命令数据请求长度大于或等于我们设定的阈值并且和上一条lba具有连续性那么valid count增加1,否则标记invalid;
45.步骤3:重复步骤1-2,当valid count大于或等于我们设定的连续lba阈值(对应于前述第一预定阈值)时将会设置flag(对应于前述目标标志位)为true;
46.步骤4:当闪存转换层ftl(flash translation layer)侦测到写命令的flag为true时将会要求该条写命令按照page大小对齐,保证后续的写命令都按照page大小进行对齐写。
47.通过这样的方式可以保证尽可能多的连续数据存放在nand flash上面的数据按照page大小对齐存储。
48.图4是根据本发明具体实施例的写数据的方法流程图,该流程包括:
49.s402,接收主机写命令;
50.s404,判读数据长度是否大于或等于阈值(对应于前述第二预定值,或前述预设长度阈值);
51.s406,如果数据请求长度大于我们设定的阈值那么标记当前的命令为valid,否则记录为invalid;
52.上述s402~s406对应于前述步骤1;
53.s408,继续写命令,并对数据长度及连续性进行判断;
54.s410,计数valid count;即,在当前写请求指令中数据请求长度大于或等于设定的阈值,且与上一条指令中的lba满足连续性条件时,valid count加1;
55.需要说明的时,在上述步骤s406中可预先设置count的初始值(如0,或1,或其它值);重复执行上述s408~s410,如果在步骤s408中判断出不满足数据长度和/或连续性条件时,则回到步骤s402重新开始;
56.s412,判断valid count是否大于或等于lba阈值;
57.s414,当在上述步骤s412中判断出valid count大于或等于lba阈值时,将当前数据按整页写入;即按照与页的大小对齐的规则将当前请求写入的数据存入nand flash中。
58.相对于相关技术中仅从读方面来着手解决读性能的问题,本发明实施例中,不仅从读方面提高了读性能,还从读数据的根源(即数据在nand flash上面的物理分布情况)方面着手来改善读性能,即实现了从主机写来着手提高固态硬盘的读性能的目的。通过上述实施例,通过保证数据在nand flash按照page大小对齐存储来提高读性能。
59.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
60.在本实施例中还提供了一种数据处理装置,图5是根据本发明实施例的数据处理装置的结构框图,如图5所示,该装置包括:
61.确定模块502,用于在接收到用于请求写入第一目标数据的第一请求指令的情况下,基于所述第一请求指令确定所述第一目标数据的第一目标信息;
62.处理模块504,用于在确定所述第一目标信息满足第一预定条件,且在确定目标标志位满足第二预定条件的情况下,将所述第一目标数据按照预定规则存入目标固态硬盘中,其中,所述预定规则用于指示按照与页的大小对齐的规则,所述目标标志位用于指示在当前次接收到所述第一请求指令之前所接收到的连续请求写入数据的目标请求次数是否大于或等于第一预定阈值,且所述目标请求次数所包括的每次请求所指示的目标数据的目标信息均满足所述第一预定条件。
63.在一个可选的实施例中,上述处理模块504包括:第一处理子模块,用于在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位的值为第一预定值的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中,其中,所述目标标志位的值是在确定所述目标请求次数大于或等于所述第一预定阈值的情况下,被设置为所述第一预定值的。
64.在一个可选的实施例中,上述处理模块504包括:第一确定子模块,用于确定所述第一目标信息中包括的第一逻辑块地址lba信息和第一目标长度信息,其中,所述第一目标长度信息用于指示所述第一目标数据的长度的信息;第二确定子模块,用于确定所述第一lba信息与第二lba信息是否满足连续条件,其中,第二目标信息中包括所述第二lba信息,所述第二目标信息是基于第二请求指令所确定出的第二目标数据的信息,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的
指令;第三确定子模块,用于在确定所述第一lba信息与所述第二lba信息满足所述连续条件,且在确定所述第一目标长度信息所指示的所述第一目标数据的长度大于或等于第二预定值的情况下,确定所述第一目标信息满足所述第一预定条件;第二处理子模块,用于在确定所述第一目标信息满足所述第一预定条件,且在确定所述目标标志位满足所述第二预定条件的情况下,将所述第一目标数据按照所述预定规则存入所述目标固态硬盘中。
65.在一个可选的实施例中,上述第二确定子模块包括:比较单元,用于将所述第一lba信息与所述第二lba信息及第二目标长度信息进行比较,以确定所述第一lba信息与所述第二lba信息是否满足所述连续条件,其中,所述第二目标信息中还包括所述第二目标长度信息,所述第二目标长度信息用于指示所述第二目标数据的长度的信息。
66.在一个可选的实施例中,上述比较单元包括:比较子单元,用于将所述第一lba信息与所述第二lba信息及所述第二目标长度信息进行比较,以得到比较结果;第一确定子单元,用于在所述比较结果指示所述第一lba信息所对应的第一lba等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息满足所述连续条件;第二确定子单元,用于在所述比较结果指示所述第一lba信息所对应的第一lba不等于所述第二lba信息所对应的第二lba与所述第二目标长度之和的情况下,确定所述第一lba信息与所述第二lba信息不满足所述连续条件。
67.在一个可选的实施例中,上述处理模块504包括:第三处理子模块,用于将所述第一目标数据从目标页的起始位置开始并按照与所述页的大小对齐的规则存入所述目标固态硬盘中,其中,所述目标页用于指示当前页的下一页,所述当前页用于指示第二请求指令所请求写入的第二目标数据在所述目标固态硬盘中所占据的最后一页,所述第二请求指令用于指示在所述第一请求指令的前一次所接收到的用于请求写入所述第二目标数据的指令。
68.在一个可选的实施例中,上述装置还包括:填充模块,用于在确定所述当前页未填满的情况下,利用无效数据填充所述当前页的剩余空间。
69.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
70.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
71.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
72.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
73.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
74.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,
本实施例在此不再赘述。
75.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
76.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1