一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文件管理方法及相关设备与流程

2022-06-29 16:58:54 来源:中国专利 TAG:


1.本发明涉及闪存存储器存储技术领域,尤其涉及一种文件管理方法及相关设备。


背景技术:

2.随着存储技术的不断发展,以快闪记忆体(nand flash)为存储介质的闪存存储器逐渐成为主流存储形态。nand flash的存储机理是通过栅极电压控制晶体管中电子的数量实现数据的存储。通常,nand flash以页(page)为单位进行读写,以块(block)为单位进行擦除(erase)。由于flash存储原理的原因,必须先擦除块中的数据,才能对擦除后的块中的页进行编程。
3.在一种情况下,指定一个块用来存储某文件的数据,若更新该块中的部分数据,而其他数据不做改变。一种方法是,通过将该块中的所有数据(包含已经修改后的数据)搬入到一个新的块中,实现数据的物理地址(physical block address,pba)连续,便于后续读取这些数据,但这种方法会导致大量的额外编程,同时也会减少存储器件的使用寿命。另一种方法是,引入闪存转换层(flash translation layer,ftl),ftl表示数据的逻辑地址和实际存储在存储器件中的物理地址的映射关系,主机侧只需管理数据的逻辑地址(logical block address,lba),而物理地址由存储器件内部的固件所管理。当数据内容更改时,逻辑地址不变,只改变其在存储器件中的物理地址,也就是将更改后的数据存储在一个新的块中,实现数据的异地更新,但是这种异地更新不仅导致了文件碎片化,而且还使得存储器件被无效虚占。
4.为了解决上述数据异地更新带来的问题,在现有技术中,存储器件会定期做垃圾回收(garbage collection)操作,将无效数据比例高的块中的有效数据集中搬移到新的块中,以此得到新的空块,从而可利用的有效块增多。在实际垃圾回收操作过程中,是按照当前块中有效数据的顺序将数据依次搬移到新块中,这会导致垃圾回收后的文件所对应的数据在物理地址上的分布是无序的,在读取文件时数据只能以离散读取的方式获得,从而降低了存储器件读性能。
5.因此如何对存储器件上存储的文件进行有效的管理是亟待解决的问题。


技术实现要素:

6.本发明实施例提供了一种文件管理方法及相关设备,以有效的管理存储器件上存储的文件。
7.第一方面,本发明实施例提供了一种文件管理方法,其特征在于,应用于主机,所述方法包括:确定目标文件集合的第一逻辑地址范围;所述目标文件集合包括m个目标文件;所述m为大于0的整数;向存储设备发送第一指令;所述第一指令包括所述第一逻辑地址范围;接收所述存储设备发送的逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系;根据所述映射关系计算所述m个目标文件的物理地址离散程度,基于所述m个目标文件的物理地址离散程度确定待整理文件。
8.现有技术中,一方面由于主机的文件系统只能感知文件的逻辑地址,而无法感知逻辑地址对应的物理地址在存储设备中的分布,所以主机无法计算出文件的物理地址离散程度,导致主机无法主动地去管理文件的物理地址;另一方面,由于存储设备只能感知到某个逻辑地址和物理地址的映射关系,但无法感知到某个文件其所对应的逻辑地址范围,也因此无法感知该文件的逻辑地址范围所对应的和物理地址,所以在存储设备侧做垃圾回收操作后,无法保证该文件的数据在存储设备中以连续的物理地址存在,这会降低存储设备的读性能。而通过实施本发明提供的方法,使得主机能够获取到文件或文件片段的逻辑地址与物理地址的映射关系,然后根据每个文件或文件片段的逻辑地址与物理地址的映射关系计算出该文件或文件片段的物理地址离散程度,从而确定出需要进行碎片化整理的待整理文件,进而实现对文件或文件片段的物理地址进行管理。具体地,主机获取高频访问文件或文件片段作为目标文件,并将目标文件添加到目标文件集合中,该目标文件集合中可以包括一个或多个目标文件。接下来主机根据目标文件集合确定第一逻辑地址范围,然后主机会向存储设备发送一个包括该第一逻辑地址范围的指令,这个指令用于指示存储设备发送目标文件集合的逻辑地址和物理地址的映射关系。主机在接收到存储设备发送的目标文件集合的逻辑地址和物理地址的映射关系后,可根据该映射关系去分别计算目标文件的物理地址离散程度,从而确定出需要进行碎片化整理的待整理文件,进而对待整理文件的物理地址进行相应的管理。由于主机的计算能力远比存储设备的计算能力强,所以主机计算目标文件的物理地址离散程度速度较快,并且主机可以同时处理多个任务但存储设备一次只能处理一个任务(如存储设备在进行运算时无法接收主机发送的消息),因此实施本发明提供的方法当主机获取到文件或文件片段的逻辑地址与物理地址的映射关系后,可以更快的计算出文件或文件片段的物理地址离散程度,实现主机主动对文件或文件片段的物理地址进行管理同时也不会影响存储设备的正常工作。
9.在一种可能的实现方式中,所述m大于1;所述确定目标文件集合的第一逻辑地址范围,包括:根据所述m个目标文件中的每个目标文件的节点信息,分别得到所述每个目标文件的逻辑地址范围;将所述每个目标文件的逻辑地址范围合并得到所述第一逻辑地址范围;所述节点信息包括对应目标文件的逻辑地址信息。
10.在本发明实施例中,当目标文件集合中包括多个目标文件时,主机可根据每个目标文件对应的节点信息获取到相应的逻辑地址范围,然后主机可将多个逻辑地址范围合并得到第一逻辑地址范围。在这种情况下,主机只用向存储设备发送一次包括第一逻辑地址范围的指令,就能获得多个目标文件的逻辑地址与物理地址的映射关系,而不用逐个发送每个目标文件的逻辑地址范围,这样做可以减少主机和存储设备之间的通信次数,提高主机工作效率。同时,由于存储设备一次只能执行一个任务(如存储设备在进行运算时无法接收主机发送的消息),如果主机向存储设备逐个发送包括目标文件的逻辑地址范围的指令,在目标文件的数量过多的情况下,会占用存储设备较多的工作时间来接收主机发送的逻辑地址范围,这可能会导致存储设备工作出现异常,因此通过实施本发明提供的方法也能提高存储设备的工作效率避免存储设备出现工作异常。
11.在一种可能的实现方式中,所述第一指令为hpb read buffer指令;所述向存储设备发送第一指令,包括:当所述m大于预设目标文件数量的阈值时,向所述存储设备发送所述hpb read buffer指令。
12.在本发明实施例中,上述阈值为提前预设的,当目标文件集合中的文件数量达到该阈值后,主机在向存储设备发送hpb read buffer指令,该指令中包括了上述提及的第一逻辑地址范围。与现有技术不同的是,主机通过向存储设备发送该指令,能够让存储设备去查找第一逻辑地址范围与其物理地址的映射关系,也能指示存储设备向主机发送该映射关系。这样既可以提高主机的工作效率同时主机也可以通过这个指令从存储设备获取到多个目标文件的逻辑地址与物理地址的映射关系,便于后续主机计算每个目标文件的物理地址离散程度。
13.在一种可能的实现方式中,所述方法还包括:将所述待整理文件的逻辑地址添加到更新列表中;所述待整理文件为所述m个目标文件中所述物理地址离散程度超过阈值的目标文件。
14.在本发明实施例中,当主机接收到由存储设备发送的逻辑物理地址映射信息后,由于该信息中包括第一逻辑地址范围与第一物理地址的映射关系,主机根据该映射关系分别计算出每个目标文件的物理地址离散程度。与此同时可预设一个物理地址离散程度阈值,若一个目标文件的物理地址离散程度超过该阈值时,则将该目标文件添加到更新列表中作为待整理文件,表示该目标文件物理地址离散程度较高需要重新整理其物理地址,若一个目标文件的物理地址离散程度未超过该阈值,则代表该目标文件的物理地址离散程度不够高可以暂时不用整理其物理地址,这样可以提高主机和存储设备的工作效率。
15.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述方法还包括:当所述n大于所述待整理文件数量的最小阈值l时,从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,l为大于0的整数;将所述n个待整理文件的数据按照每个所述待整理文件的逻辑地址重新写入所述存储设备。
16.在本发明实施例中,当更新列表中积累了一定数量的待整理文件后,主机可从存储设备中分别读取出每个待整理文件的数据,然后再根据每个待整理文件的逻辑地址将对应的待整理文件数据重新写入到存储设备中,此时重新写入的数据会按顺序存储在存储设备的block中,例如,一种情况是一个文件的数据只存储在一个block里,则这个文件的物理地址是连续的,另一种情况是若一个文件的数据需要存储在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址减少了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能,同时可以减少因过于频繁的文件整理(数据搬移)带来的存储器件磨损增加。
17.在一种可能的实现方式中,所述从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,包括:向所述存储设备发送hpb read命令;所述hpb read命令包括所述n个待整理文件的逻辑地址和物理地址;或者,向所述存储设备发送read命令;所述read命令包括所述n个待整理文件的逻辑地址。
18.在本发明实施例中,当主机需要从存储设备中读取待整理文件的数据时,在一种可能的实现方式中,主机可通过向存储设备发送hpb read命令可进行数据读取。由于该命令中包括了需要读取的待整理文件的逻辑地址和物理地址,所以存储设备在接收到该指令后,可以根据该指令中的物理地址去读取数据,而无需先根据待读取文件的逻辑地址去存储设备中查找逻辑地址和物理地址对应表,再根据该对应表中的物理地址去读取数据,这
样可以减少加载对应表带来的时延。需要说明的是,由于当主机接收到上述提到的逻辑物理地址映射信息后,在存储设备中待整理文件的物理地址有可能会发生变化,所以hpb read命令中可以同时包括待整理文件的逻辑地址和物理地址。若待整理文件的物理地址未发生改变时,存储设备可根据hpb read命令中的物理地址直接进行读取;若待整理文件的物理地址发生改变时,则存储设备可以根据hpb read命令中的逻辑地址查找到修改后的物理地址,然后再基于修改后的物理地址读取相应的待整理文件的数据。在另一种可能的实现方式中,主机可向存储设备发送read命令读取待整理文件的数据,需要说明的是在read命令中包括了待整理文件的逻辑地址范围,存储设备在接收到read命令后,根据命令中的逻辑地址范围查找该逻辑地址范围对应的物理地址所存储的数据,然后将数据发送给主机。
19.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述方法还包括:当所述n大于所述待整理文件数量的最小阈值l时,向所述存储设备发送第一信息;所述第一信息包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种。
20.在本发明实施例中,在主机完成了对目标文件的物理地址离散程度的计算后,主机将物理地址离散程度较高的目标文件作为待整理文件添加更新列表中,当更新列表中积累了一定数量的待整理文件后,主机再向存储设备发送第一信息,由于这个信息中包括了待整理文件的文件数量、每个待整理文件对应的逻辑地址段的段数、以及逻辑地址段的起始地址和长度,所以当存储设备处于空闲的时候,会根据这个第一信息,将待整理文件的数据进行搬移。例如,一种情况是文件的数据可搬移在一个block中,则这个文件的物理地址是连续的,另一种情况是文件的数据需要搬移在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能,同时可以减少因过于频繁的文件整理(数据搬移)带来的存储器件磨损增加。
21.第二方面,本发明实施例提供了一种文件管理方法,其特征在于,应用于存储设备,所述方法包括:接收主机发送的第一指令;所述第一指令包括所述第一逻辑地址范围;根据所述第一逻辑地址范围向主机发送逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系。
22.在本发明实施例中,当主机获取高频访问文件或文件片段作为目标文件,并将目标文件添加到目标文件集合中,该目标文件集合中可以包括一个或多个目标文件,然后主机根据目标文件集合确定第一逻辑地址范围后,主机会向存储设备发送包括该第一逻辑地址范围的指令。当存储设备接收到主机发送的上述指令后,会根据该指令中的第一逻辑地址范围,查找第一逻辑地址范围与其物理地址的映射关系,然后向主机发送该映射关系,使得主机可根据该映射关系分别去计算目标文件的物理地址离散程度,进而主机可根据目标文件的物理地址离散程度对文件的物理地址进行相应的管理。
23.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述第一指令为hpb read buffer指令。
24.在本发明实施例中,存储设备接收主机发送的hpb read buffer指令后,存储设备
会根据该指令中的第一逻辑地址范围,查找第一逻辑地址范围与其物理地址的映射关系,然后向主机发送该映射关系,便于后续主机计算每个目标文件的物理地址离散程度,这样既可以提高存储设备的工作效率同时也能提高主机的工作效率。
25.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述方法还包括:接收所述主机发送的hpb read命令,所述hpb read命令包括n个待整理文件的逻辑地址和物理地址;根据所述hpb read命令中的所述物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据;或者,接收所述主机发送的read命令,所述read命令包括所述n个待整理文件的逻辑地址,根据所述read命令中所述n个待整理文件的逻辑地址查找对应的物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据。
26.在本发明实施例中,当主机要从存储设备读取待整理文件的数据时,在一种可能的情况下,主机可通过向存储设备发送hpb read命令进行数据读取。由于该命令中包括了需要读取的待整理文件的逻辑地址和逻辑地址和物理地址,所以存储设备在接收到该指令后,可以根据该指令中的物理地址去读取数据,而不用再根据待读取文件的逻辑地址在存储设备中查找逻辑地址和物理地址对应表,再根据该对应表中的物理地址去读取数据,这样可以减少加载对应表带来的时延。需要说明的是,由于当主机接收到上述提到的逻辑物理地址映射信息后,在存储设备中待整理文件的物理地址有可能会发生变化,所以hpb read命令中可以同时包括待整理文件的逻辑地址和物理地址。若待整理文件的物理地址未发生改变时,存储设备可根据hpb read命令中的物理地址直接进行读取;若待整理文件的物理地址发生改变时,则存储设备可以根据hpb read命令中的逻辑地址查找到修改后的物理地址,然后再基于修改后的物理地址读取相应的待整理文件的数据。在另一种可能的情况下,主机可向存储设备发送read命令读取待整理文件的数据,需要说明的是在read命令中包括了待整理文件的逻辑地址范围,存储设备在接收到read命令后,根据命令中的逻辑地址范围查找该逻辑地址范围对应的物理地址所存储的数据,然后将数据发送给主机。
27.在一种可能的实现方式中,所述方法还包括:接收所述主机发送的第一信息;所述第一信息中包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种;根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
28.在本发明实施例中,在主机完成了对目标文件的离散程度计算,将物理地址离散程度较高的目标文件作为待整理文件添加更新列表中,当更新列表中积累到了一定数量的待整理文件后,主机可向存储设备发送第一信息,由于这个信息中包括了待整理文件的文件数量、每个待整理文件对应的逻辑地址段的段数、以及逻辑地址段的起始地址和长度。当存储设备接收这个第一信息后,会根据这个第一信息,将待整理文件的数据进行搬移。例如,一种情况是文件的数据可搬移在一个block中,则这个文件的物理地址是连续的,另一种情况是文件的数据需要搬移在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。
29.在一种可能的实现方式中,所述根据所述第一信息将所述待整理文件的数据进行
搬移操作,包括:当所述存储设备处于工作状态时,将所述第一信息存储在存储介质中,当所述存储设备处于空闲状态时,根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
30.在本发明实施例中,当存储设备在接收到主机发送的第一信息后,如果此时存储设备正在执行其他任务,则会将该第一信息先存储在存储设备中,当存储设备结束任务处于空闲状态时,在根据该信息对待整理文件的数据进行搬移,实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。
31.第三方面,本技术提供一种文件管理设备,其特征在于,应用于主机,所述设备包括:第一处理单元,用于确定目标文件集合的第一逻辑地址范围;所述目标文件集合包括m个目标文件;所述m为大于0的整数;第一发送单元,用于向存储设备发送第一指令;所述第一指令包括所述第一逻辑地址范围;第一接收单元,用于接收所述存储设备发送的逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系;第一计算单元,用于根据所述映射关系计算所述m个目标文件的物理地址离散程度,第二处理单元,用于基于所述m个目标文件的物理地址离散程度确定待整理文件。
32.在一种可能的实现方式中,所述m大于1;所述第一处理单元,具体用于:根据所述m个目标文件中的每个目标文件的节点信息,分别得到所述每个目标文件的逻辑地址范围;将所述每个目标文件的逻辑地址范围合并得到所述第一逻辑地址范围;所述节点信息包括对应目标文件的逻辑地址信息。
33.在一种可能的实现方式中,所述第一指令为hpb read buffer指令;所述第一发送单元,具体用于:当所述m大于预设目标文件数量的阈值时,向所述存储设备发送所述hpb read buffer指令。
34.在一种可能的实现方式中,所述设备还包括:第三处理单元,用于将所述待整理文件的逻辑地址添加到更新列表中;所述待整理文件为所述m个目标文件中所述物理地址离散程度超过阈值的目标文件。
35.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述设备还包括:第一读取单元,用于当所述n大于所述待整理文件数量的最小阈值l时,从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,l为大于0的整数;将所述n个待整理文件的数据按照每个所述待整理文件的逻辑地址重新写入所述存储设备。
36.在一种可能的实现方式中,所述第一读取单元,具体用于:向所述存储设备发送hpb read命令;所述hpb read命令包括所述n个待整理文件的逻辑地址和物理地址;或者,向所述存储设备发送read命令;所述read命令包括所述n个待整理文件的逻辑地址。
37.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述设备还包括:第二发送单元,用于当所述n大于所述待整理文件数量的最小阈值l时,向所述存储设备发送第一信息;所述第一信息包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种。
38.第四方面,本技术提供一种文件管理设备,其特征在于,应用于存储设备,所述设
备包括:第一接收单元,用于接收主机发送的第一指令;所述第一指令包括所述第一逻辑地址范围;第一发送单元,用于根据所述第一逻辑地址范围向主机发送逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系。
39.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述第一指令为hpb read buffer指令。
40.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述设备还包括:第二接收单元,用于接收所述主机发送的hpb read命令,所述hpb read命令包括n个待整理文件的逻辑地址和物理地址;根据所述hpb read命令中的所述物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据;或者,接收所述主机发送的read命令,所述read命令包括所述n个待整理文件的逻辑地址,根据所述read命令中所述n个待整理文件的逻辑地址查找对应的物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据。
41.在一种可能的实现方式中,所述设备还包括:第三接收单元,用于接收所述主机发送的第一信息;所述第一信息中包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种;第一处理单元,用于根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
42.在一种可能的实现方式中,所述第一处理单元,具体用于:当所述存储设备处于工作状态时,将所述第一信息存储在存储介质中,当所述存储设备处于空闲状态时,根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
43.第五方面,本技术提供一种文件管理方法,其特征在于,应用于电子设备,所述电子设备包括主机和存储设备,所述方法包括:所述电子设备运行目标应用程序,所述目标应用程序的第一文件的第一数据存储于所述存储设备中的第一存储块中;响应于对所述目标应用程序的所述第一文件的数据更新操作,所述主机将所述第一文件的第二数据更新至所述存储设备的第二存储块中;所述主机确定目标文件集合的第一逻辑地址范围;所述目标文件集合包括m个目标文件,所述第一文件为所述m个目标文件中的其中一个;所述m为大于0的整数;所述主机向存储设备发送第一指令;所述第一指令包括所述第一逻辑地址范围;所述主机接收所述存储设备发送的逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系;所述主机根据所述映射关系计算所述m个目标文件的物理地址离散程度,基于所述m个目标文件的物理地址离散程度确定待整理文件;当所述待整理文件包括所述第一文件,且所述第一数据和所述第二数据被整理到所述存储设备的第三存储块中,响应于对所述目标应用程序的所述第一文件的读操作,所述主机从所述存储设备的所述第三存储块中读取所述第一数据和所述第二数据。
44.第六方面,本发明实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码来执行上述第五方面中的任意一种实现方式所涉及的存储设备。
45.第七方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被存储设备执行时,使得存储设备可以执行上述第一方面中任意一项所述的数据存储方法的流程。
46.第八方面,本发明实施例提供了一种计算机程序,该计算机程序包括指令,当该计
算机程序被主机执行时,使得主机可以执行上述第二方面中任意一项所述的数据存储方法的流程。
附图说明
47.为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
48.图1a为现有技术中的nand存储阵列示意图。
49.图1b为现有技术中的nand存储阵列中每个块的结构示意图。
50.图1c为现有技术中的文件写操作时逻辑地址和物理地址变化示意图。
51.图1d为现有技术中的垃圾回收过程示意图。
52.图1e为现有技术中的一种文件碎片化整理示意图。
53.图2a为本发明实施例提供的一种主机和存储设备的结构示意图。
54.图2b为本发明实施例提供的一种存储设备的结构示意图。
55.图2c为本发明实施例提供的一种存储芯片和主芯片间通信示意图。
56.图2d为本发明实施例提供的一种电子设备的结构示意图。
57.图3a为本技术实施例提供的一种文件管理方法的流程示意图。
58.图3b为本发明实施例提供的目标文件示意图。
59.图3c为本发明实施例提供的一种文件逻辑地址和物理地址映射关系示意图。
60.图3d为本发明实施例提供的一种hpb初始化流程图。
61.图4a为本发明实施例提供的一种文件管理方法的具体流程示意图。
62.图4b为本发明实施例提供的一种碎片化整理后的文件数据存储示意图。
63.图4c为本发明实施例提供的一种文件管理方法主机侧流程示意图。
64.图4d为本发明实施例提供的一种hpb read指令示意图。
65.图5a为本发明实施例提供的另一种文件管理方法的具体流程示意图。
66.图5b为本发明实施例提供的一种第一信息格式示意图。
67.图5c为本发明实施例提供的另一种文件管理方的流程示意图。
68.图6a为本发明实施例提供的一种应用于电子设备的文件管理方法的流程。
69.图6b为本发明实施例提供的一种目标应用程序示意图。
70.图6c为本发明实施例提供的一种数据更新界面示意图。
71.图6d为本发明实施例提供的一种目标文件设置界面示意图。
72.图6e为本发明实施例提供的一种用户界面示意图。
73.图7a为本发明实施例提供的一种文件管理设备的结构示意图。
74.图7b为本发明实施例提供的另一种文件管理设备的结构示意图。
具体实施方式
75.下面将结合本发明实施例中的附图,对本发明实施例进行描述。
76.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系
统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
77.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
78.在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
79.首先,对本技术中的部分用语进行解释说明,以便于本领域技术人员理解。
80.(1)与非闪存(not and flash,nand flash)是一种非易失性存储介质,即断电后仍能保存数据。它的发展目标就是降低每比特存储成本、提高存储容量。通常,nand flash以页(page)为单位读写,以块(block)为单位擦除(erase)。由于flash存储原理的原因,向flash中写入数据,只能把数据(bit)从1改为0;而擦除只能把所有数据(bit)从0改为1。所以修改数据或者新写入数据,都必须写到已经擦除过的空闲页,否则数据会乱掉。
81.(2)通用闪存存储(universal flash storage,ufs),是用固态电子存储芯片阵列而制成的硬盘。ufs由控制单元(控制器和sram)和存储单元(flash芯片)组成。其中,ufs中的flash芯片通常采用上述nand flash芯片作为其存储单元。ufs在被广泛应用于手机,平板等移动设备。
82.(3)闪存文件系统(flash friendly file system,f2fs),是文件在操作系统上的一种存储架构,是专门为基于nand的存储设备设计的新型开源flash文件系统。f2fs支持linux操作系统。适合用于nand一类的闪存设备(例如固态硬盘、ufs、emmc和sd卡等),也就是更加适合现在的移动端设备。
83.(4)主机性能增强技术(host performance booster,hpb),hpb技术是用来提高器件随机读取性能的技术,使得主机可以感知逻辑地址对应的物理地址,从而提高器件读取性能。
84.首先,进一步分析并提出本技术所具体要解决的技术问题。在闪存存储器存储技术领域中,nand flash以页(page)为单位进行读写,以块(block)为单位进行擦除(erase)。例如,如图1a和图1b所示,图1a为现有技术中的nand存储阵列示意图,图1a中一个nand存储阵列可以由多个block组成,nand flash只能以图中的block作为单位进行擦除操作。图1b为现有技术中的nand存储阵列中每个块的结构示意图,图1b中每个块由字线和位线的交点处的器件单元组成,字线和页一一对应,一般情况下一个页(16kb)可以存储4个逻辑地址对应的数据(每个4kb),nand flash只能以页作为单位进行读写操作。由于flash存储原理的原因,必须先擦除块,才能对擦除后的块中的页进行编程。与本技术相关的现有技术如下:
85.技术一:数据异地更新技术。
86.如果只更新一个block中的部分数据,而该block中的其他数据不做改变。可以引入闪存转化层(flash translation layer,ftl),ftl表示的是数据的逻辑地址和实际存储在存储器件中的物理地址的映射关系(logical to physical address mapping,l2p),主机侧只需要管理数据的逻辑地址,而实际存储在存储器件中的物理地址则由存储器件内部的固件(firmware,fw)所管理。当数据内容更改时,逻辑地址不变,只改变其在存储器件的物理地址,也就是将更改后的数据存储在一个新的位置(如新的page或block)中。所以基于nand flash设备的编程与擦除最小单元不一致导致了的数据存储必须是异地更新。
87.例如,如图1c所示,图1c为现有技术中的文件写操作时逻辑地址和物理地址变化示意图,图中以a文件和b文件为例说明文件的写操作流程。首先,主机侧的文件系统通过查找节点信息找到a文件对应逻辑地址范围为lba 0,lba 1,lba 2,同时b文件对应逻辑地址lba 3,lba 4,lba 5,初始时a文件与b文件数据在存储器件中所对应的物理地址是连续的,如图1c中的state1所示,lba0,lba 1,lba 2,lba 3,lba4,lba 5按顺序存储在block1中。当对a文件的lba2和lba0以及b文件的lba4数据内容更改时,主机侧文件系统所维护的逻辑地址不变,而对于存储器件,首先将lba2,lba4,lba0对应的新数据写入新的物理页,如图1c中的state2所示,将更改后的lba2,lba4,lba0存在block2中的page0,page1,page2里,然后将原来的block1中的page2,page4,page0所映射的物理地址无效。如果在a文件之后追加新的数据,并将其逻辑地址记为lba6,那么新写入的数据将存在block2中的page3中。随着文件数据的不断更改,一个文件在闪存存储器件中原本以连续方式存储,可能会逐渐转变成在物理空间上离散存储,如图1c中的state 3所示,a文件中lba 1,lba0,lba 2,lba 6存储在block1中page 1以及block2中page2,page0,page3,即a文件的物理地址碎片化程度增加。而读取离散的数据(如图1c中state3所示的数据)所需要的时间大于读取连续存储的数据(如图1c中state1所示的数据)所需要的时间,且随着离散程度的增加而导致性能差异变大。
88.技术一缺点:异地更新的方法不仅导致了文件碎片化,而且还使得存储器件被无效虚占,随着虚占空间的比例增加,可用于编程的有效物理空间逐渐减小。
89.技术二:垃圾回收技术。
90.为了解决数据异地更新造成的存储器件被无效虚占。存储器件会定期做垃圾回收操作,其原理是将无效数据比例高的块中的有效数据搬移到新的块中,以此得到新的空块,从而可利用的有效块增多,垃圾回收是当前闪存普遍采用的技术。
91.例如,如图1d所示,图1d为现有技术中的垃圾回收过程示意图,图1d中state1,block0中page1、page3、page5存储的数据为有效数据,page0、page2、page4存储的数据为无效数据。block1中page3、page4、page5存储的数据为有效数据,page0、page1、page2存储的数据为无效数据,block2为空块。接下来如图1d中的state2所示,进行垃圾回收操作,将block0中的有效数据按照有效数据出现的顺序进行搬移,如将page1存的lba1、page3存的lba3、page5存的lba5,按照lba1、lba3、lba5的顺序将数据搬移到block2中的page0、page1、page2中,然后再将block0中的所有数据擦除得到一个新的可进行编程的block0。同理,可以将block1中的lba2、lba4、lba0搬移到block2中并按顺序将其分别存储在page3、page4、page5中,然后将block1中的所有数据擦除,得到一个新的可进行编程的block1。由此可以
得出,通过垃圾回收操作后可以将不同块中的有效数据搬移到一个新块中,并且可以回收不含有数据的块,从而减少存储器件被无效虚占。
92.技术二缺点:垃圾回收操作虽然可以将有效的数据搬移到一起,并且回收不含有效数据的block,但是可以发现其无法从根本上解决文件离散的问题,这是由于存储介质只能感知到某个逻辑地址和物理地址的映射关系,但无法感知到某个文件的其所对应的逻辑地址范围,也因此无法感知该文件的逻辑地址范围所对应的和物理地址,所以只是按照当前block中有效数据的顺序搬移到新的block,从而导致最终垃圾回收后的文件所对应的数据在物理地址上的分布是无序的。因此当读取数据时,如读取图1d中state1中的lba 0-lba 3数据,由于数据在存储器件侧上的物理地址的离散性,数据只能以离散读取的方式获得,而无法使用高性能的顺序读取数据,最终导致存储器件读性能降低。
93.技术三:主机将文件对应的数据读取到主机侧内存中,然后再重新写入到存储器件中,以此达到文件碎片化整理的目的。
94.例如,如图1e所示,图1e为现有技术中的一种文件碎片化整理示意图,图1e中block0中存放了a文件、b文件、c文件和d文件的数据,通过使用技术三的方法,主机可按照文件顺序a、b、c、d将block0中所有的文件数据加载到主机内存中,然后再依次将文件重新写入到存储器件的block1中,从而使得文件的逻辑地址和物理地址都是连续的。然后将block0中的所有数据进行无效处理,并对block0进行擦除操作,可以得到一个新的可编程的block0。
95.技术三缺点:通过使用技术三的方法可以使得文件离散程度降低(数据的逻辑地址连续且物理地址连续),但是由于a文件和b文件在block 0中连续,没有重新搬移的必要,所以会造成一定额外的开销,加速器件磨损,缩短器件寿命。
96.技术四:主机将文件对应的逻辑地址范围发送给存储器件,然后存储器件根据逻辑地址对应的物理地址计算该文件的碎片化程度,并将结果返回给主机,主机根据碎片化程度决定是否需要对该文件做碎片化整理。整理方式可以是将文件读取到主机内存中,然后再写入到存储器件中,也可以是将文件信息发送给存储器件,等特定时机存储器件自行做碎片化整理。
97.技术四缺点:一方面,由于存储器件的中央处理器(central processing unit,cpu)计算性能远低于当前主机的cpu,因此文件碎片化程度的计算放在存储器件做所需时间相对较长。并且由于存储器件在做文件碎片化运算时,无法处理主机侧发来的命令,会影响系统的相应时间。另一方面,该技术计算的文件碎片化程度是基于整个文件得来的,无法反映文件中片段的离散程度。比如,一个碎片化程度较高的文件可能只是由一部分逻辑地址对应的数据的碎片化造成的,然而该技术是无法感知得到离散化程度较高的区域,所以只能对文件所对应的所有数据都采取覆盖写的操作,会造成很大的写入量,降低器件寿命。
98.综上所述,本技术实际要解决的技术问题包括如下方面:针对现有存储技术的局限性,提供一种文件碎片化整理的方案,且可以把方案建立在主流技术趋势(即包括hpb技术)之上,实现降低文件碎片化程度并提高存储器件的读性能。
99.基于上述,本发明实施例提供一种主机和存储设备。请参见图2a,图2a为本发明实施例提供的一种主机和存储设备的结构示意图,该主机10可以为任何产生数据的计算设备,如服务器、个人计算机、平板电脑、手机、个人数字助理、智能穿戴设备等各类设备;存储
设备103可以是任何为主机10提供存储/读取数据功能的非易失性存储器。在本发明实施例中,存储设备103可以内置于主机10中,也可与主机10分别为独立的设备,还可以是存储设备103和主机10共同位于一个电子设备中,本技术对此不做具体限定。主机10或存储设备103具体可以是芯片或芯片组或搭载有芯片或者芯片组的电路板,该芯片或芯片组或搭载有芯片或芯片组的电路板可在必要的软件驱动下工作。具体地,
100.主机10,可包括主机内存储器101和主机控制器102。可选的,还可以包括处理器100,进一步地,还可以包括图2a中未示出的电源、其他输入输出控制器和接口等应用处理侧的所有物理器件。其中,
101.主机内存储器101,通常为掉电易失性存储器,断电时会丢失其上存储的内容,也可称为内存(memory)或主存储器。本技术中的主机内存储器101包括可读可写的运行内存,其作用是用于暂时存放处理器中的运算数据,以及与存储设备103或其他外部存储器交互数据,可作为操作系统或其他正在运行中的程序的临时数据的存储媒介。例如,在本技术中,主机内存储器101中可存储由存储设备103发送的逻辑物理地址信息,且运行于处理器上的操作系统把逻辑物理地址信息从主机内存储器101调到处理器中进行目标文件的物理地址离散程度运算,当运算完成后处理器再将结果传送出来。
102.主机内存储器101可以包括,动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)等中的一种或多种。其中,dram又包括双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)简称ddr、二代双倍速率同步动态随机存储器(ddr2)、三代双倍速率同步动态随机存储器(ddr3)、四代低功耗双倍数据率同步动态随机存储器(low power double data rate 4,lpddr4)和五代低功耗双倍数据率同步动态随机存储器(low power double data rate 5,lpddr5)等。
103.主机控制器102,用于管理并控制主机10与存储设备103之间的通信,并为主机10和存储设备103之间的通信提供标准化(例如支持scsi标准)的接口。具体地,主机控制器102可以根据处理器发出的读/写等请求,向存储设备103传递命令(例如,写入、读取、擦除等命令)及数据,以及根据存储设备103读/写数据等结果向主机10反馈事件(如命令完成事件、命令状态事件、硬件出错事件等)。对于从处理器发出的命令或数据,主机控制器102可将命令或数据通过封装的方式转换为支持某个协议的数据包,而对于主机10接收的数据主机控制器102则进行反向操作。可选的,一个主机可以支持多个主机控制器(host controller),以支持与不同协议的存储设备之间的通信。在本发明实施例中,主机控制器102根据主机10与存储设备103之间所支持的协议(例如ufs协议)生成本技术中所涉及的hpb read buffer命令、写命令、read/hpb read命令,擦除命令等。可选的,该主机控制102的功能也可以集成在处理器中,即由处理器完成主机控制102的上述功能,此处不作具体限定。
104.可选的,主机10还可以包括处理器100。处理器100可运行操作系统、文件系统(如闪存文件系统f2fs)或应用程序等,以控制连接到处理器100的多个硬件或软件元件,并且可处理各种数据并执行操作。处理器100可将存储设备103中存储的指令或数据加载到主机内存储器101中,并把需要运算的指令或数据调到处理器100中进行运算,当运算完成后处理器100再将结果临时存储在主机内存储器101中,并将需要长期存储的指令或数据通过主
机控制器102存储至存储设备103中。处理器100可以包括一个或多个处理单元(也可称处理核),例如:处理器100可以包括中央处理单元(cpu)、应用处理单元(application processor,ap)、调制解调处理单元、图形处理单元(graphics processing unit,gpu)、图像信号处理单元(image signal processor,isp)、视频编解码单元、数字信号处理单元(digital signal processor,dsp)、基带处理单元和神经网络处理单元(neural-network processing unit,npu)等中的一个或多个。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个器件中。可选的,处理器100中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器100中的存储器为高速缓冲存储器(cache)。所述cache可以保存处理器100刚用过或循环使用的指令或数据。如果处理器100需要再次使用该指令或数据,可从所述cache中直接调用。避免了重复存取,减少了处理器100的等待时间,因而提高了系统的效率。进一步地,处理器100还可被实现为片上系统(system on chip,soc)。例如,在本发明实施例中,主机控制器102可将存储在主机内存储器101中的逻辑物理地址信息加载到处理器100中,进行文件的物理地址离散程度计算。
105.存储设备103,为非易失性存储器,断电后其存储的内容不会丢失。存储设备103(包括存储控制器1031、存储设备内存储器1032、存储介质阵列1033)可用于长期存储主机10运行所涉及的指令和数据,如启动程序、操作系统、应用程序和数据等。由于主机10中的处理器不能直接读取存储设备103中的指令和数据也不能直接向存储设备103写入指令或数据,因此,处理器在执行读(或加载)命令时,实际上是通过主机控制器102将存储在存储设备103中的待读内容(包括指令和/或数据)先临时加载至主机内存储器101中,然后再由处理器从主机内存储器101中读出;而在执行写(即存储)命令时,实际上是由处理器100先将待存储数据(包括指令和/或数据)临时写入至主机内存储器101中,然后再通过主机控制器102从主机内存储器101存储至存储设备103中。所以,存储设备103的性能如读速率、写速率、擦除速率、擦写次数、数据保持能力等,对主机10的性能影响非常大,决定了主机10或主机10所在的电子设备是否能正常、稳定、高效的运行。
106.存储设备103可以包括flash闪存(例如,nand闪存、nor闪存等)、通用闪存存储器(universal flash storage,ufs)、嵌入式多媒体卡emmc、通用闪存存储多芯片封装umcp存储器、嵌入式多媒体卡多芯片封装emcp存储器、固态驱动器(ssd)等中的一个或多个。进一步地,存储设备103还可以包括其他存储介质如机械硬盘(hard disk drive,hdd)等。需要说明的是,page是nand flash中最小的寻址单位,即读/写的最小单位。一个block中的page数量根据不同的厂家不同的规格,数量是不一样的,page本身的大小也不一样。
107.存储控制器1031,是主机10与存储设备103的接口设备,其作用主要就是进行接口的转换,将主机10(例如主机10中的主机控制器)发出的读、写、删除等命令转换成存储设备103能够识别的信号,还可以完成主机10与存储设备103之间地址译码(例如,主机10逻辑地址和存储设备103中物理地址之间的映射)、数据格式的转换(比如数据位宽)等。总之,存储控制器1031可以按照一定的时序规则对其所在的存储设备103的访问进行必要控制的设备,包括地址信号、数据信号以及各种命令信号的控制,使主机10能够根据需求使用存储设备103上的存储资源。例如,在本发明实施例的一种情况下,当主机10完成对文件的物理地址离散程度计算后,主机10可将物理地址离散程度较高的文件确定为待整理文件,接下来主机10可向存储设备103发送待整理文件的信息,然后存储控制器1031可根据待整理文件
的信息对待整理文件的数据进行数据搬移,从而降低待整理文件的文件碎片化程度。
108.存储设备内存储器1032,通常为掉电易失性存储器,断电时会丢失其上存储的内容,也可称为内存(memory)或主存储器。本技术中的存储设备内存储器1032包括可读可写的运行内存,其作用是用于暂时存放存储设备103的处理器中的运算数据,以及与主机10或其他外部存储器交互数据,可作为操作系统或其他正在运行中的程序的临时数据的存储媒介。例如,在存储设备内存储器1032中,可以存储部分文件的逻辑地址与物理地址的映射表,当存储设备103接收到主机发送的逻辑地址范围后,若存储设备内存储器1032中的逻辑地址与物理地址的映射表包括上述主机10发送的逻辑地址范围,则可以在存储设备内存储器1032中查到该逻辑地址范围对应的物理地址。
109.存储设备内存储器1032可以包括,动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)等中的一种或多种。其中,dram又包括双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)简称ddr、二代双倍速率同步动态随机存储器(ddr2)、三代双倍速率同步动态随机存储器(ddr3)、四代低功耗双倍数据率同步动态随机存储器(low power double data rate 4,lpddr4)和五代低功耗双倍数据率同步动态随机存储器(low power double data rate 5,lpddr5)等。可选的,存储设备内存储器1032可以集成在存储控制器1031中,此处不作具体限定。
110.存储介质阵列1033可以包括多个用于存储数据的存储单元,可用于长期存储主机10运行所涉及的指令和数据,如启动程序、操作系统、应用程序和数据等。其中每一个存储单元可包括单层单元slc存储区域、快速与非fast nand存储器、多层单元mlc存储区域、三层单元tlc存储区域、四层单元qlc存储区域、五层单元plc存储区域的一种或多种。例如,如图2b所示,图2b为本发明实施例提供的一种存储设备的结构示意图,其中,存储介质阵列1033可包括l个块(block),每个block包括n个页(page),该存储介质阵列1033中的所有block中的所有page都可用于存储数据。
111.例如,如图2c所示,图2c为本发明实施例提供的一种存储芯片和主芯片间通信示意图,图中主芯片为上述提及的主机10的一种,存储芯片为上述提及的存储设备103的一种,主芯片中的主控制器为上述主机控制器102,dram为上述主机内存储器101,存储芯片中的控制器为上述存储控制器1031,sram为上述存储设备内存储器1032,nand存储阵列为上述存储介质阵列1033。
112.可以理解的是,图2a中的主机10或存储设备103的结构只是本发明实施例提供的一些示例性的实施方式,本发明实施例中的主机10和存储设备103的结构包括但不仅限于以上实现方式。
113.还可以理解的是,处理器100与主机内存储器101、主机控制器102和存储设备103之间可以通过系统总线的方式相互通信,也可以通过其他连接方式进行通信,本发明实施例对此不作具体限定。本发明实施例示意的结构并不构成主机10或存储设备103的具体限定。在本技术另一些实施例中,主机10或存储设备103可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
114.进一步地,当上述主机10和存储设备103均作为电子设备20的一部分(即共同位于
同一个电子设备20)时,请参见图2d,图2d为本发明实施例提供的一种电子设备的结构示意图,该电子设备20或者说该电子设备20中的主机10部分还可以包括如下功能模块:
115.外部存储器接口104,可以用于连接外部存储卡,例如,tf(transflash)卡又称t-flash卡、闪存驱动器、紧凑型闪存(cf)、安全数字卡(sd)、微型sd、迷你sd、极速卡(xd)、多媒体卡(mmc)、记忆棒等。外部存储卡通过外部存储器接口104被可操作地和/或物理地连接到电子设备20,以扩展电子设备20的存储能力。例如将音乐,视频等文件保存在外部存储卡中。
116.sim卡接口105,用于连接sim卡。sim卡可以通过插入sim卡接口105,或从sim卡接口105拔出,实现和电子设备20的接触和分离。电子设备20可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口105可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口105可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口105也可以兼容不同类型的sim卡。sim卡接口105也可以兼容外部存储卡。电子设备20通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备20采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备20中,不能和电子设备20分离。
117.显示屏106,用于显示文本、图像、频等。显示屏106包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。进一步地,显示屏106可包括触摸屏,并且可接收从电子笔或用户身体的一部分输入的触摸、手势、接近或悬停等。在一些实施例中,电子设备20可以包括1个或n个显示屏106,n为大于1的正整数。
118.音频系统107,可以包括扬声器,受话器,麦克风,耳机接口等。电子设备20可以通过音频系统107以及处理器100中的ap等实现音频功能。例如通话、音乐播放、录音等。
119.摄像系统108,可以包括一个摄像头(camera)或者多个摄像头(例如,一个前置摄像头和一个后置摄像头,或者多个前置摄像头和多个后置摄像头),该摄像头还可以是一组摄像头模组。摄像头用于捕获静态图像或视频。电子设备20可以通过摄像头、处理器100中的isp、视频编解码器、gpu和ap、以及显示屏106等实现拍摄功能。
120.传感器系统109,可以包括四合一(加速度计、角速度计、陀螺仪、指南针)运动传感器、压力传感器、温度传感器、光线传感器、接近光传感器、3d结构光传感器等。不同的传感器用于传感不同的信号,使得处理器100根据不同的传感信号进行运算处理,以实现电子设备20的不同功能。例如,四合一运动传感器可以用于确定电子设备20的运动姿态和方位信息等;光线传感器用于感知环境光亮度,电子设备20可以根据感知的环境光亮度自适应调节显示屏106的亮度,或者,也可用于拍摄系统108拍照时自动调节白平衡。
121.通信系统,电子设备20的无线通信功能可以通过天线1,天线2,移动通信模块110,无线通信模块111,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块110可以提供应用在电子设备20上的包括2g/3g/4g/5g等无线通信的解决方案。无线通信模块111可以提供应用在电子设备20上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),
蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。
122.电源管理模块(pmu)112,可管理电子设备20的电源。电源管理模块112接收电池113和/或充电管理模块114的输入,为处理器100、主机内存储器101、主机控制器102、存储设备103、显示屏106、音频系统107、摄像系统108、传感器系统109、移动通信模块110和无线通信模块111等供电。充电管理模块114可采用有线和/或无线充电方法。无线充电方法可包括例如磁共振方法、磁感应方法、电磁方法等。电池113可包括再充电电池和/或太阳能电池等。
123.可以理解的是,本发明实施例示意的结构并不构成对电子设备20的具体限定。在本技术另一些实施例中,电子设备20可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
124.在本发明实施例提供的文件整理方法中,涉及主机10向存储设备103中存储数据,以及从存储设备103中读取数据的相关流程。
125.下面结合图2a-图2c示出的主机10和存储设备103的结构,以及图2d所示出的电子设备20的结构,具体介绍本发明实施例提供的文件整理方法。参见图3a,图3a是本技术实施例中的一种文件管理方法的流程示意图,下面将结合附图3a对本技术实施例中的文件整理方法进行描述。需要说明的是,为了更详细的描述本技术实施例中的业务管理方法,本技术在各个流程步骤中描述了相应的执行主体为主机10和存储设备103,但不代表本技术实施例只能通过所描述的执行主体进行对应的方法流程。
126.步骤s301:主机确定目标文件集合的第一逻辑地址范围。
127.具体地,所述目标文件集合包括m个目标文件;所述m为大于0的整数。例如,当主机系统处于空闲状态时,在一种情况下主机可获取高频访问文件或文件片段作为目标文件,并将这些目标文件添加到目标文件集合中,目标文件集合中可包括一个或多个目标文件。需要说明的是,在该情况下,上述提及的高频访问文件或文件片段可以是用户主动设置的,然后主机将用户设置的高频访问文件或文件片段作为目标文件,生成目标文件集合。可选的,也可以是主机的操作系统根据一定预设规则主动识别确定的,本发明实施例对此不作具体限定。在主机确定了目标文件集合之后,会根据该目标集合中的目标文件的逻辑地址范围得到第一逻辑地址范围,该第一逻辑地址范围可包括了上述m个目标文件的逻辑地址范围。例如,如图3b所示,图3b为本发明实施例提供的目标文件示意图,图中在存储设备的block0中存储了a文件、b文件、c文件、d文件这四个文件的数据,且a文件的逻辑地址范围为lba0-lba3,b文件的逻辑地址范围为lba4-lba9,c文件的逻辑地址范围为lba10-lba14,d文件的逻辑地址范围为lba16-lba19。主机可将这四个文件作为目标文件添加到目标文件集合中,然后根据每一个目标文件的逻辑地址范围确定第一逻辑地址范围,可为lba0-lba19。
128.在一种可能的实现方式中,所述m大于1;所述确定目标文件集合的第一逻辑地址范围,包括:根据所述m个目标文件中的每个目标文件的节点信息,分别得到所述每个目标文件的逻辑地址范围;将所述每个目标文件的逻辑地址范围合并得到所述第一逻辑地址范围;所述节点信息包括对应目标文件的逻辑地址信息。具体地,当目标文件集合中包括多个
目标文件时,主机可根据每个目标文件对应的节点信息获取到相应的逻辑地址范围,然后主机可将多个逻辑地址范围合并得到第一逻辑地址范围。在这种情况下,主机只用向存储设备发送一次包括第一逻辑地址范围的指令,就能获得多个目标文件的逻辑地址与物理地址的映射关系,而不用逐个发送每个目标文件的逻辑地址范围,这样做可以减少主机和存储设备之间的通信次数,提高主机工作效率。同时,由于存储设备一次只能执行一个任务(如存储设备在进行运算时无法接收主机发送的消息),如果主机向存储设备逐个发送包括目标文件的逻辑地址范围的指令,在目标文件的数量过多的情况下,会占用存储设备较多的工作时间来接收主机发送的逻辑地址范围,这可能会导致存储设备工作出现异常,因此通过实施本发明提供的方法也能提高存储设备的工作效率避免存储设备出现工作异常。例如,如图3b所示,主机将图中的a文件、b文件、c文件、d文件四个高频访问文件作为目标文件添加到目标文件集合中,且a文件的逻辑地址范围为lba0-lba3,b文件的逻辑地址范围为lba4-lba9,c文件的逻辑地址范围为lba10-lba15,d文件的逻辑地址范围为lba16-lba19,然后主机将这四个逻辑地址范围进行合并得到第一逻辑地址范围为lba0-lba19。
129.步骤s302:主机向存储设备发送第一指令。
130.具体地,所述第一指令包括所述第一逻辑地址范围。当主机根据目标文件集合得到第一逻辑地址后,会向存储设备发送第一指令,该指令用于指示存储设备发送目标文件集合的逻辑地址和物理地址的映射关系。例如,如图3b所示,根据图中4个文件的逻辑地址信息,可以得到第一逻辑地址范围为lba0-lba19,然后主机向存储设备发送第一指令,在该指令中包括第一逻辑地址范围lba0-lba19。需要说明的是,第一指令每次可以加载固定长度的逻辑地址范围,例如第一指令每次可以读取1000个逻辑地址对应的物理地址信息,但在这1000个逻辑地址中包括了上述提及的第一逻辑地址范围(lba0-lba19)。接下来存储设备可根据该逻辑地址范围,在存储设备中查找该逻辑地址范围与其物理地址的映射关系,然后将该映射关系发送给主机,便于主机后续计算a文件、b文件、c文件、d文件的物理地址离散程度。
131.在一种可能的实现方式中,存储设备接收主机发送的第一指令;所述第一指令包括所述第一逻辑地址范围。具体地,当存储设备接收主机发送的第一指令,会根据该指令中的第一逻辑地址范围,查找第一逻辑地址范围与其物理地址的映射关系。
132.在一种可能的实现方式中,所述第一指令为hpb read buffer指令;所述主机向存储设备发送第一指令,包括:当所述m大于预设目标文件数量的阈值时,向所述存储设备发送所述hpb read buffer指令。具体地,上述阈值为提前预设的,当目标文件集合中的文件数量达到该阈值后,主机在向存储设备发送hpb read buffer指令,该指令中包括了上述提及的第一逻辑地址范围。与现有技术不同的是,主机通过向存储设备发送该指令,能够让存储设备去查找第一逻辑地址范围与其物理地址的映射关系,也能指示存储设备向主机发送该映射关系。这样既可以提高主机的工作效率同时主机也可以通过这个指令从存储设备获取到多个目标文件的逻辑地址与物理地址的映射关系,便于后续主机计算每个目标文件的物理地址离散程度。
133.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述第一指令为hpb read buffer指令。具体地,存储设备接收主机发送的hpb read buffer指令后,存储设备会根据该指令中的第一逻辑地址范围,查找第一逻辑地址范围与其物理地址的映射
关系,然后向主机发送该映射关系,便于后续主机计算每个目标文件的物理地址离散程度,这样既可以提高存储设备的工作效率同时也能提高主机的工作效率。
134.步骤s303:存储设备根据所述第一逻辑地址范围向主机发送逻辑物理地址映射信息。
135.具体地,所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系。当存储设备根据主机发送的指令查找到第一逻辑地址范围对应的物理页号码(physical page number,ppn)得到第一逻辑地址范围与第一物理地址范围的映射关系,然后将该映射关系发送给主机,便于主机后续对目标文件的物理地址离散程度进行相应的计算。例如,如图3c所示,图3c为本发明实施例提供的一种文件逻辑地址和物理地址映射关系示意图,图中在存储设备的block0中a文件的逻辑地址范围为lba0-lba3与其对应的物理地址为ppn0-ppn3,b文件的逻辑地址范围为lba4-lba9与其对应的物理地址为ppn4-ppn9,c文件的逻辑地址范围为lba10-lba15与其对应的物理地址为ppn10-ppn13、ppn16、ppn18,d文件的逻辑地址范围为lba16-lba19与其对应的物理地址为ppn14、ppn15、ppn17、ppn19。当存储设备接收到主机发送上述提及的第一指令后,存储设备可以根据上述提及的第一逻辑地址范围lba0-lba19,查到到该逻辑地址范围对应的物理地址范围为ppn0-ppn19,同时可以得到逻辑地址与物理地址的映射关系,然后将该映射关系通过逻辑物理地址信息发送给主机。
136.步骤s304:主机根据所述映射关系计算所述m个目标文件的物理地址离散程度。
137.具体地,在现有技术由于主机的文件系统只能感知文件的逻辑地址,而无法感知逻辑地址对应的物理地址在存储设备中的分布,所以主机无法计算出文件的物理地址离散程度,但是本发明实施例提供的方法,主机从存储设备侧能够得到目标文件集合的逻辑地址与物理地址的映射关系,则主机可根据该映射关系分别去计算每个目标文件的物理地址离散程度。例如,如图3c所示,图中在存储设备的block0中a文件的逻辑地址范围为lba0-lba3与其对应的物理地址为ppn0-ppn3,b文件的逻辑地址范围为lba4-lba9与其对应的物理地址为ppn4-ppn9,c文件的逻辑地址范围为lba10-lba15与其对应的物理地址为ppn10-ppn13、ppn16、ppn18,d文件的逻辑地址范围为lba16-lba19与其对应的物理地址为ppn14、ppn15、ppn17、ppn19。当主机接收到存储设备发送的包括上述提及的第一逻辑地址与其物理地址映射关系后,主机就可以根据该映射关系分别计算出每个文件的物理地址离散程度,进一步得到a文件的物理地址离散程度为0,b文件的物理地址离散程度为0,c文件的物理地址离散程度较高,d文件的物理地址离散程度较高。
138.步骤s305:主机基于所述m个目标文件的物理地址离散程度确定待整理文件。
139.具体地,当主机计算出每个目标文件的物理地址离散程度后,存在部分文件的物理地址离散程度不够高则无需对这些文件进行文件整理,而物理地址离散程度较高的文件将其确定为待整理文件,便于后续对其物理地址进行相应的管理。
140.具体地,如图4a所示,图4a为本发明实施例提供的一种文件管理方法的具体流程示意图,图中步骤406主机将待整理文件的逻辑地址添加到更新列表中;所述待整理文件为所述m个目标文件中所述物理地址离散程度超过阈值的目标文件。具体地,当主机接收到由存储设备发送的逻辑物理地址映射信息后,由于该信息中包括第一逻辑地址范围与第一物理地址的映射关系,主机根据该映射关系分别计算出每个目标文件的物理地址离散程度。
与此同时可预设一个物理地址离散程度阈值,若一个目标文件的物理地址离散程度超过该阈值时,则将该目标文件添加到更新列表中作为待整理文件,代表该目标文件物理地址离散程度较高需要重新整理其物理地址,若一个目标文件的物理地址离散程度未超过该阈值,则代表该目标文件的物理地址离散程度不够高可以暂时不用整理其物理地址,这样可以提高主机和存储设备的工作效率,同时可以减少因过于频繁的文件整理(数据搬移)带来的存储器件磨损增加。例如,如图3c所示,由于图中的a文件、b文件的物理地址离散程度较低,所以这两个文件可以不用进行文件整理,不用添加到更新列表中。但c文件的逻辑地址范围为lba10-lba15与其对应的物理地址为ppn10-ppn13、ppn16、ppn18,d文件的逻辑地址范围为lba16-lba19与其对应的物理地址为ppn14、ppn15、ppn17、ppn19,导致c文件和d文件的物理地址的离散程度较高,需要进行文件整理操作,所以将这两个文件添加到更新列表中。
141.可选的,所述更新列表中包括n个所述待整理文件,n为大于0的整数。如图4a所示,在经过步骤401确定目标文件集合的第一逻辑地址范围;步骤402向存储设备发送第一指令;步骤403根据所述第一逻辑地址范围向主机发送逻辑物理地址映射信息;步骤404根据所述映射关系计算所述m个目标文件的物理地址离散程度;步骤405基于所述m个目标文件的物理地址离散程度确定待整理文件;步骤406将所述待整理文件的逻辑地址添加到更新列表中之后,可在进行图中步骤407从所述存储设备中分别读取所述n个待整理文件的数据到主机内存;步骤408向所述主机发送所述n个待整理文件的数据;步骤409将所述n个待整理文件的数据按照每个所述待整理文件的逻辑地址重新写入所述存储设备所示,所述方法还包括:当所述n大于所述待整理文件数量的最小阈值l时,从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,l为大于0的整数;将所述n个待整理文件的数据按照每个所述待整理文件的逻辑地址重新写入所述存储设备。具体地,当更新列表中积累了一定数量的待整理文件后,主机可从存储设备中分别读取出每个待整理文件的数据,然后再根据每个待整理文件的逻辑地址将对应的待整理文件数据重新写入到存储设备中,此时重新写入的数据会按顺序存储在存储设备的block中,例如,一种情况是一个文件的数据只存储在一个block里,则这个文件的物理地址是连续的,另一种情况是若一个文件的数据需要存储在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址减少了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。例如,如图4b所示,图4b为本发明实施例提供的一种碎片化整理后的文件数据存储示意图,图中主机从存储设备的block0中分别读取c文件和d文件的数据,然后将block0中原来用于存储c文件和d文件数据的页进行数据无效处理,然后再将c文件和d文件,分别按照各自的逻辑地址将文件数据重新写入到block1中,在block1中c文件的逻辑地址是lba10-lba11与其对应的物理地址为ppn0-ppn5,d文件的逻辑地址是lba16-lba19与其对应的物理地址为ppn6-ppn9,通过重新写入c文件和d文件的数据,使得两个文件的物理地址是连续的,通过实施本发明提供的方法,可将减低c文件和d文件的文件碎片化程度,提高存储设备读数据性能。又例如,图4c所示,图4c为本发明实施例提供的一种文件管理方法主机侧流程示意图,图中包括s4101主机系统处于空闲状态;s4102主机获取高频访问文件列表;s4103主机将文件对应的逻辑地址-物理地址的映射表加载到主机内存中;s4104逐个判断文件对应的物理地址离散程度
是否超过阈值;s4105主机读取文件数据到主机侧内存,重新顺序写入到存储器件中。具体地,首先当主机的文件系统处于空闲状态时获取高频访问文件列表(为上述提及的目标文件集合),接下来主机将高频访问文件列表中的文件对应的逻辑地址与物理地址的映射关系加载到主机内存中,然后对每一个高频访问文件进行物理地址离散程度计算,进而逐个判断文件对应的物理地址离散程度是否超过阈值,如果某个高频访问文件的物理地址离散程度超过阈值,则主机会从存储器器件读取该文件数据到主机侧内存,然后在根据该文件的逻辑地址将文件数据重新按顺序写入到存储器件中,最终实现降低文件碎片化程度并提高存储器件的可读性。
142.可选的,所述从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,包括:向所述存储设备发送hpb read命令;所述hpb read命令包括所述n个待整理文件的逻辑地址和物理地址;或者,向所述存储设备发送read命令;所述read命令包括所述n个待整理文件的逻辑地址。具体地,当主机需要从存储设备中读取待整理文件的数据时,在一种可能的情况下,主机可通过向存储设备发送hpb read命令可进行数据读取,由于该命令中包括了需要读取的待整理文件的逻辑地址和物理地址,所以存储设备在接收到该指令后,可以根据该指令中的物理地址去读取数据,而无需先根据待读取文件的逻辑地址去存储设备中查找逻辑地址和物理地址对应表,再根据该对应表中的物理地址去读取数据,这样可以减少加载对应表带来的时延。需要说明的是,由于当主机接收到上述提到的逻辑物理地址映射信息后,在存储设备中待整理文件的物理地址有可能会发生变化,所以hpb read命令中可以同时包括待整理文件的逻辑地址和物理地址。若待整理文件的物理地址未发生改变时,存储设备可根据hpb read命令中的物理地址直接进行读取;若待整理文件的物理地址发生改变时,则存储设备可以根据hpb read命令中的逻辑地址查找到修改后的物理地址,然后再基于修改后的物理地址读取相应的待整理文件的数据。例如,如图4d所示,图4d为本实施例提供的一种hpb read指令示意图,从图中可以得知该指令包括4bytes逻辑地址和4bytes的物理地址,当存储设备接收到该指令后可根据该指令中的4bytes的物理地址去读取相应的文件数据。在另一种可能的情况下,主机可向存储设备发送read命令读取待整理文件的数据,需要说明的是在read命令中包括了待整理文件的逻辑地址范围,存储设备在接收到read命令后,根据命令中的逻辑地址范围查找该逻辑地址范围对应的物理地址所存储的数据,然后将数据发送给主机。
143.需要说明的是,由于ufs器件内部内存(sram)空间较少,只能存储少量的逻辑地址和物理地址的表项映射关系。因此在数据读取时,特别是随机读取时,由于映射表大概率不在ufs的sram中,使得存储器件需要花费大量的时间去存储介质中读取所需要的映射表至ufs存储器件sram中,通过逻辑地址找到物理地址之后才能实现数据的读取操作。而去存储介质中读取映射表的时间较长,会显著减少存储器件的读取性能。为了解决存储器件内存不足的问题,减少存储器从介质中加载映射表的频率,同时提高读取速度,ufs3.1协议引入了hpb技术:将一部分逻辑地址和物理地址的映射表加载到主机内存中,需要说明的是,在ufs3.1协议中定义了hpb entry大小为8byte,但没有具体说明这8byte的具体形式,可选的,在本发明实施中可以将这8byte拆解为:前4byte物理地址和后4byte验证信息,或者,前4byte验证信息和后4byte物理地址,因此一个lba对应一个hpb entry,而hpb entry中包含了当前lba对应的物理地址。例如,如图3d所示,图3d为本发明实施例提供的一种hpb初始化
流程图,图中包括步骤1初始化操作:配置ufs器件的hpb特征,主机内存分配;步骤2主机使用hpb read buffer命令读取表项信息;步骤3ufs器件读取表项信息;步骤4ufs器件将表项信息传输给主机;步骤5主机将表项信息存储在主机内存中;步骤6主机将带有物理地址的信息随着hpb read命令下发,读数据,减少加载表项带来的时延。具体地,图中当存储器件接收主机发送的hpb read buffer指令后,会在存储设备中读取表项信息,然后将该表项信息发送给主机。这样在读取数据时,可以将数据的逻辑地址对应的物理地址一起随着hpb read命令下发到存储器件中,使得存储器件可以直接用收到的物理地址读取数据,从而可以实现读取速度的提升。具体地,使用hpb read buffer指令读取一段表项信息时,比如读取lba0-lba1000对应的表项信息,存储器件会返回1000个hpb entry这里面就包含ppn0-ppn1000,以及相应的校验信息(防止物理地址信息被篡改),然后将这些信息存放在主机的内存中。由于主机侧存储了这1000个8byte信息,并且这1000个8byte信息是顺序存储的,所以逻辑地址也可以通过内存地址进行相应计算,比如lba1001-2000放在内存地址8000-16000中,内存地址8000-8007存储的是lba1001对应的hpb entry,而内存地址8008-8015存储lba1002对应的hpb entry。在一种情况下,当使用hpb read读取lba1002时,根据lba1002计算出lba1002对应的hpb entry所在的内存地址,从而获取这8byte数据。因此也就获得了图4d中byte2-byte13的信息,从而可以发送读请求给存储器件。在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述方法还包括:接收所述主机发送的hpb read命令,所述hpb read命令包括n个待整理文件的逻辑地址和物理地址;根据所述hpb read命令中的所述物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据;或者,接收所述主机发送的read命令,所述read命令包括所述n个待整理文件的逻辑地址,根据所述read命令中所述n个待整理文件的逻辑地址查找对应的物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据。具体地,当主机要从存储设备读取待整理文件的数据时,在一种可能的情况下,主机可通过向存储设备发送hpb read命令进行数据读取。由于该命令中包括了需要读取的待整理文件的逻辑地址和物理地址,所以存储设备在接收到该指令后,可以根据该指令中的物理地址去读取数据,而不用在根据待读取文件的逻辑地址在存储设备中查找逻辑地址和物理地址对应表,再根据该对应表中的物理地址去读取数据,这样可以减少加载对应表带来的时延。需要说明的是,由于当主机接收到上述提到的逻辑物理地址映射信息后,在存储设备中待整理文件的物理地址有可能会发生变化,所以hpb read命令中可以同时包括待整理文件的逻辑地址和物理地址。若待整理文件的物理地址未发生改变时,存储设备可根据hpb read命令中的物理地址直接进行读取;若待整理文件的物理地址发生改变时,则存储设备可以根据hpb read命令中的逻辑地址查找到修改后的物理地址,然后再基于修改后的物理地址读取相应的待整理文件的数据。在另一种可能的情况下,主机可向存储设备发送read命令读取待整理文件的数据,需要说明的是在read命令中包括了待整理文件的逻辑地址范围,存储设备在接收到read命令后,根据命令中的逻辑地址范围查找该逻辑地址范围对应的物理地址所存储的数据,然后将数据发送给主机。
144.可选的,所述更新列表中包括n个所述待整理文件,n为大于0的整数,如图5a所示,图5a为本发明实施例提供的另一种文件管理方法的具体流程示意图,在经过步骤501确定目标文件集合的第一逻辑地址范围;步骤502向存储设备发送第一指令;步骤503根据所述
第一逻辑地址范围向主机发送逻辑物理地址映射信息;步骤504根据所述映射关系计算所述m个目标文件的物理地址离散程度;步骤505基于所述m个目标文件的物理地址离散程度确定待整理文件;步骤506将所述待整理文件的逻辑地址添加到更新列表中之后,如图中步骤507向所述存储设备发送第一信息所示,所述方法还包括:当所述n大于所述待整理文件数量的最小阈值l时,向所述存储设备发送第一信息;所述第一信息包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种。具体地,在主机完成了对目标文件的物理地址离散程度的计算后,主机将物理地址离散程度较高的目标文件作为待整理文件添加更新列表中,当更新列表中积累了一定数量的待整理文件后,主机再向存储设备发送第一信息,由于这个信息中包括了待整理文件的文件数量、每个待整理文件对应的逻辑地址段的段数、以及逻辑地址段的起始地址和长度,所以当存储设备处于空闲的时候,会根据这个第一信息,将待整理文件的数据进行搬移。例如,一种情况是文件的数据可搬移在一个block中,则这个文件的物理地址是连续的,另一种情况是文件的数据需要搬移在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。例如,如图5b所示,图5b为本发明实施例提供的一种第一信息格式示意图,图中第一信息中包括了传输文件个数n,这里的传输文件为上述提及的待整理文件,以及每一个文件的逻辑地址段的段数,每段逻辑地址段的起始地址和长度,存储设备可根据该信息对待整理文件的数据进行搬移。如文件1包含的逻辑地址段的段数为m1,以及文件1的第一段逻辑地址段的起始地址和第一段的逻辑地址长度到文件1的第m1段逻辑地址段的起始地址和第m1段的逻辑地址长度信息,存储设备会根据该信息对文件1进行相应的数据搬移,从而实现对物理地址离散程度较高的文件进行文件整理,降低文件的碎片化程度,并提高存储设备读取文件的性能。
145.可选的,存储设备接收所述主机发送的第一信息;所述第一信息中包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种;根据所述第一信息将所述n个待整理文件的数据进行搬移操作。例如,如图5a中的步骤508根据第一信息将所述n个待整理文件的数据进行搬移操作所示。具体地,在主机完成了对目标文件的离散程度计算,将物理地址离散程度较高的目标文件作为待整理文件添加更新列表中,当更新列表中积累到了一定数量的待整理文件后,主机可向存储设备发送第一信息,由于这个信息中包括了待整理文件的文件数量、每个待整理文件对应的逻辑地址段的段数、以及逻辑地址段的起始地址和长度。当存储设备接收这个第一信息后,会根据这个第一信息,将待整理文件的数据进行搬移。例如,一种情况是文件的数据可搬移在一个block中,则这个文件的物理地址是连续的,另一种情况是文件的数据需要搬移在不同block中,但每一个block中的该文件的数据是连续的。通过实施本发明提供的方法,可实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。例如,如图4b所示,存储设备可在空闲状态,根据第一信息将c文件和d文件的数据从block0中搬移到block1中,在未进行数据搬移前,c文件在block0的逻辑地址范围为lba10-lba15与其对应的物理地址为ppn10-ppn13、ppn16、ppn18,d文件的逻辑地址范围为lba16-lba19与其对应
的物理地址为ppn14、ppn15、ppn17、ppn19,当进行数据搬移后c文件在block1中的逻辑地址是lba10-lba11与其对应的物理地址为ppn0-ppn5,d文件在block1中的逻辑地址是lba16-lba19与其对应的物理地址为ppn6-ppn9,实现了对c文件和d文件都进行相应的文件整理,将原来物理地址离散程度较高的文件按照其逻辑地址重新进行数据搬移,降低文件的碎片化程度,并提高存储设备读取文件的性能。
146.在一种可能的实现方式中,所述根据所述第一信息将所述待整理文件的数据进行搬移操作,包括:当所述存储设备处于工作状态时,将所述第一信息存储在存储介质中,当所述存储设备处于空闲状态时,根据所述第一信息将所述n个待整理文件的数据进行搬移操作。具体地,当存储设备在接收到主机发送的第一信息后,如果此时存储设备正在执行其他任务,则会将该第一信息先存储在存储设备中,当存储设备结束任务处于空闲状态时,再根据该信息对待整理文件的数据进行搬移,实现将待整理文件离散的物理地址整理成连续的物理地址降低了文件碎片化程度,当再次读取这些文件时可更加快速读取提高存储器件的读性能。需要说明的是,在此情况下,存储设备在特定时刻按照主机的分析结果做垃圾回收操作,借助主机cpu较高的运算能力,文件碎片化分析由主机完成,而文件碎片化整理的操作交给存储设备在空闲时做,这样可以保证在不打断存储设备的正常输入输出口(input\output,io)的情况下实现碎片整理,同样相比于传统的垃圾回收,可以减少写放大。例如,如图5c所示,图5c为本发明实施例提供的另一种文件管理方的流程示意图,图中包括步骤s5101主机系统处于空闲状态;步骤s5102主机获取高频访问文件列表;步骤s5103主机将文件对应的逻辑地址-物理地址的映射表加载到主机内存中;步骤s5104逐个判断文件对应的物理地址离散程度是否超过阈值;步骤s5105主机将文件所对应的所有逻辑地址范围发送给存储器件;步骤s5106存储器件接收到主机侧发来的离散程度高的文件对应的起始逻辑地址,并将其存入到特定区域;步骤s5107存储器件按照主机侧分析的离散程度高的文件做碎片化整理;步骤s5108结束。具体地,首先当主机的文件系统处于空闲状态时获取高频访问文件列表(为上述提及的目标文件集合),接下来主机将高频访问文件列表中的文件对应的逻辑地址与物理地址的映射关系加载到主机内存中,然后对每一个高频访问文件进行物理地址离散程度计算,进而逐个判断文件对应的物理地址离散程度是否超过阈值,如果某个高频访问文件的物理地址离散程度超过阈值,则主机将该文件所对应的逻辑地址范围发送给存储器件,存储器件接收到主机侧发来的离散程度高的文件对应的起始逻辑地址,并将其存入到特定区域,然后存储器件按照主机侧分析的离散程度高的文件做碎片化整理,最终实现降低文件碎片化程度并提高存储器件的可读性。
147.通过实施本发明提供的文件管理方法,主机获取到文件或文件片段的逻辑地址与物理地址的映射关系后,可以更快的计算出文件或文件片段的物理地址离散程度,实现主机主动对文件或文件片段的物理地址进行管理,降低了文件碎片化程度并提高了存储设备读取文件的性能,同时可以减少因过于频繁的文件整理(数据搬移)带来的存储器件磨损增加。
148.图6a示出了本发明实施例提供的一种应用于电子设备的文件管理方法的流程,该方法应用于电子设备,电子设备可包括主机、存储设备。关于主机和存储设备的相关描述可以参见上述图2a-图2c中相关主机10和存储设备103的描述,此处不再赘述。该方法流程主要描述了电子设备侧的方法步骤,该方法可包括:
149.步骤s601:所述电子设备运行目标应用程序。
150.具体地,所述目标应用程序的第一文件的第一数据存储于所述存储设备中的第一存储块中。例如,假设电子设备上当前运行目标应用程序(比如用户打开了手机上的淘宝、微信、qq、视频、阅读等应用程序的一个),该目标应用程序的第一文件(如微信的聊天记录文件)被加载到存储设备的一个存储块中。如图6b所示,图6b为本发明实施例提供的一种目标应用程序示意图,图中当用户想运行安装于电子设备上的某个社交应用,如应用程序,请参见用户界面71,此时用户可通过电子设备的输入设备如显示屏106点击的图标701。接下来请参见用户界面72,此时通过账号输入框702和密码输入框703,提示用户通过填写账号和密码登录进入应用界面即用户界面73。假设用户点击了与用户arvin的聊天窗口,则进入用户界面74所示的聊天界面,此时用户与arvin的聊天记录作为第一数据被存储在存储设备的第一存储块中。需要说明的是,第一数据包括此时用户与其他用户的所有聊天记录。
151.步骤s602:响应于对所述目标应用程序的所述第一文件的数据更新操作。
152.具体地,所述主机将所述第一文件的第二数据更新至所述存储设备的第二存储块中。需要说明的是,在对目标应用程序的第一文件进行数据更新操作时,可以将第一文件的第二数据储存在存储第一数据的存储块中,也可以将该数据存储在其他存储块中,但在本发明实施例中主要是针对第一文件的第一数据与更新过后的第二数据存储在不同的存储块中的情况,在这种情况下会导致第一文件碎片化程度增加,更能体现本发明实施例提供的文件管理方法的优势。例如,如图6c所示,图6c为本发明实施例提供的一种数据更新界面示意图,图中用户界面75用户与arvin的聊天记录相较与图6b的用户界面74,用户向arvin发送了新的信息706,若此时将更新的聊天记录数据作为第二数据存储在存储设备的第二存储块中,则第一文件的第一数据与第二数据存储在存储设备的不同存储块里。需要说明的是,第二数据包括用户与其他用户的更新的聊天记录数据。又例如,在一种应用场景中,随着聊天应用使用时间越来越长,可能存储聊天记录文件的物理地址离散程度较高,当再次查看历史聊天记录的时候,可能因为历史聊天记录分布在存储器多个物理块中而导致读取缓慢。通过使用本发明实施例提供的方法,可以对聊天记录文件进行文件整理,便于用户更加快速查看聊天记录。
153.步骤s603:所述主机确定目标文件集合的第一逻辑地址范围。
154.具体地,所述目标文件集合包括m个目标文件,所述第一文件为所述m个目标文件中的其中一个;所述m为大于0的整数。当主机文件系统处于空闲状态时,主机会获取高频访问文件或文件片段作为目标文件,并将这些目标文件添加到目标文件集合中,目标文件集合中可包括一个或多个目标文件。需要说明的是,这些高频访问文件或文件片段可以是用户主动设置的,然后主机将用户设置的高频访问文件或文件片段作为目标文件,生成目标文件集合。例如,如图6d所示,图6d为本发明实施例提供的一种目标文件设置界面示意图,图中用户通过点击设置按钮801,进入到系统设备功能的用户界面82,用户进一步点击文件管理设置802,从而进入目标应用设置的用户界面83。用户可以通过针对各个应用的开关控件,如图库的开关控件803、的开关控件804、的开关控件805、音乐的开关控件806等,对各个应用进行“目标应用设置”的开启或关闭。并通过提示信息807提醒用户:“当目标应用设置模式开启(on)之后,则可以将应用的文件数据作为目标文件,便于主动管理
该文件的存储地址”,此时图库开关控件803和开关控件805开启,用户主动将这两个应用的文件数据设置为高频访问的目标文件,并将这两个目标文件添加到目标文件集合中。可选的,主机侧可以主动筛选出目标文件。在主机确定了目标文件集合之后,会根据该目标集合中的目标文件的逻辑地址范围得到第一逻辑地址范围,该第一逻辑地址范围包括了所有目标文件的逻辑地址范围。
155.步骤s604:所述主机向存储设备发送第一指令。
156.具体地,所述第一指令包括所述第一逻辑地址范围。当主机根据目标文件集合得到第一逻辑地址后,会向存储设备发送第一指令,该指令用于指示存储设备发送目标文件集合的逻辑地址和物理地址的映射关系。
157.步骤s605:所述主机接收所述存储设备发送的逻辑物理地址映射信息。
158.具体地,所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系。当存储设备根据主机发送的指令查找到第一逻辑地址范围对应的物理页号码(physical page number,ppn)得到第一逻辑地址范围与第一物理地址范围的映射关系,然后将该映射关系发送给主机,便于主机后续对目标文件的物理地址离散程度进行相应的计算。
159.步骤s606:所述主机根据所述映射关系计算所述m个目标文件的物理地址离散程度,基于所述m个目标文件的物理地址离散程度确定待整理文件。
160.具体地,在现有技术由于主机的文件系统只能感知文件的逻辑地址,而无法感知逻辑地址对应的物理地址在存储设备中的分布,所以主机无法计算出文件的物理地址离散程度,但是本发明实施例提供的方法,主机从存储设备侧能够得到目标文件集合的逻辑地址与物理地址的映射关系,则主机可根据该映射关系分别去计算每个目标文件的物理地址离散程度。当主机计算出每个目标文件的物理地址离散程度后,存在部分文件的物理地址离散程度不够高则无需对这些文件进行文件整理,而物理地址离散程度较高的文件将其确定为待整理文件,便于后续对其物理地址进行相应的管理。
161.步骤s607:所述电子设备响应于对所述目标应用程序的所述第一文件的读操作。
162.当所述待整理文件包括所述第一文件,且所述第一数据和所述第二数据被整理到第三存储块中,所述电子设备响应于对所述目标应用程序的所述第一文件的读操作,所述主机从所述存储设备的所述第三存储块中读取所述第一数据和所述第二数据。需要说明的是,第三存储块可以是第一存储块,可以是第二存储块,也可以是除第一存储块和第二存储块的存储块。例如,如图6e所示,图6e为本发明实施例提供的一种用户界面示意图,图中,在电子设备实施完上述步骤后,当用户再次进入的用户界面93后,用户进一步点击选项904,查看与好友avrin的聊天记录,通过实施本发明提供的方法后,用户可以更加快速的加载出所有聊天记录。
163.上述详细阐述了本发明实施例的方法,下面提供了本发明实施例的相关设备。
164.请参见图7a,图7a是本发明实施例提供的一种文件管理设备的结构示意图,该文件管理设备71可以包括第一处理单元7101、第一发送单元7102、第一接收单元7103、第一计算单元7104、第二处理单元7105、第三处理单元7106、第一读取单元7107、第二发送单元7108,其中各个单元的详细描述如下。
165.第一处理单元7101,用于确定目标文件集合的第一逻辑地址范围;所述目标文件
集合包括m个目标文件;所述m为大于0的整数;
166.第一发送单元7102,用于向存储设备发送第一指令;所述第一指令包括所述第一逻辑地址范围;
167.第一接收单元7103,用于接收所述存储设备发送的逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系;
168.第一计算单元7104,用于根据所述映射关系计算所述m个目标文件的物理地址离散程度;
169.第二处理单元7105,用于基于所述m个目标文件的物理地址离散程度确定待整理文件。
170.在一种可能的实现方式中,所述m大于1;所述第一处理单元7101,具体用于:根据所述m个目标文件中的每个目标文件的节点信息,分别得到所述每个目标文件的逻辑地址范围;将所述每个目标文件的逻辑地址范围合并得到所述第一逻辑地址范围;所述节点信息包括对应目标文件的逻辑地址信息。
171.在一种可能的实现方式中,所述第一指令为hpb read buffer指令;所述第一发送单元7102,具体用于:当所述m大于预设目标文件数量的阈值时,向所述存储设备发送所述hpb read buffer指令。
172.在一种可能的实现方式中,所述设备还包括:第三处理单元7106,用于将所述待整理文件的逻辑地址添加到更新列表中;所述待整理文件为所述m个目标文件中所述物理地址离散程度超过阈值的目标文件。
173.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述设备还包括:第一读取单元7107,用于当所述n大于所述待整理文件数量的最小阈值l时,从所述存储设备中分别读取所述n个待整理文件的数据到主机内存,l为大于0的整数;将所述n个待整理文件的数据按照每个所述待整理文件的逻辑地址重新写入所述存储设备。
174.在一种可能的实现方式中,所述第一读取单元7107,具体用于:向所述存储设备发送hpb read命令;所述hpb read命令包括所述n个待整理文件的逻辑地址和物理地址;或者,向所述存储设备发送read命令;所述read命令包括所述n个待整理文件的逻辑地址。
175.在一种可能的实现方式中,所述更新列表中包括n个所述待整理文件,n为大于0的整数;所述设备还包括:第二发送单元7108,用于当所述n大于所述待整理文件数量的最小阈值l时,向所述存储设备发送第一信息;所述第一信息包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种。
176.需要说明的是,本发明实施例中所描述的文件管理设备71中各功能模块能参见上述图3a所述的方法实施例中步骤s301-步骤s302、步骤s304-步骤s305的相关描述,此处不再赘述。
177.请参见图7b,图7b是本发明实施例提供的另一种文件管理设备的结构示意图,该文件管理设备72可以包括第一接收单元7201、第一发送单元7202、第二接收单元7203、第三接收单元7204、第一处理单元7205,其中各个单元的详细描述如下。
178.第一接收单元7201,用于接收主机发送的第一指令;所述第一指令包括所述第一
逻辑地址范围;
179.第一发送单元7202,用于根据所述第一逻辑地址范围向主机发送逻辑物理地址映射信息;所述逻辑物理地址映射信息包括所述第一逻辑地址范围与第一物理地址的映射关系。
180.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述第一指令为hpb read buffer指令。
181.在一种可能的实现方式中,所述存储设备支持主机性能增强技术hpb;所述设备还包括:第二接收单元7203,用于接收所述主机发送的hpb read命令,所述hpb read命令包括n个待整理文件的逻辑地址和物理地址;根据所述hpb read命令中的所述物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据;或者,接收所述主机发送的read命令,所述read命令包括所述n个待整理文件的逻辑地址,根据所述read命令中所述n个待整理文件的逻辑地址查找对应的物理地址读取所述n个待整理文件的数据,向所述主机发送所述n个待整理文件的数据。
182.在一种可能的实现方式中,所述设备还包括:第三接收单元7204,用于接收所述主机发送的第一信息;所述第一信息中包括所述n个待整理文件的文件数量n、每个所述待整理文件对应的逻辑地址段的段数、所述逻辑地址段的起始地址和长度中的一种或多种;第一处理单元7205,用于根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
183.在一种可能的实现方式中,所述第一处理单元7205,具体用于:当所述存储设备处于工作状态时,将所述第一信息存储在存储介质中,当所述存储设备处于空闲状态时,根据所述第一信息将所述n个待整理文件的数据进行搬移操作。
184.需要说明的是,本发明实施例中所描述的文件管理设备72中各功能模块能参见上述图3a所述的方法实施例中步骤s303的相关描述,此处不再赘述。
185.本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序被主机或存储设备执行时,实现包括上述方法实施例中记载的任意一种文件管理方法的部分或全部步骤。
186.本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被主机或存储设备执行时,使得主机或存储设备可以执行任意一种文件管理方法的部分或全部步骤。
187.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
188.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
189.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间
的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
190.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
191.另外,在本技术各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
192.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务端或者网络设备等,具体可以是计算机设备中的处理器)执行本技术各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:u盘、移动硬盘、磁碟、光盘、只读存储器(read-onlymemory,缩写:rom)或者随机存取存储器(randomaccessmemory,缩写:ram)等各种可以存储程序代码的介质。
193.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献