多存储器文件管理方法、装置、系统、设备及存储介质与流程

文档序号:32934149发布日期:2023-01-14 07:11阅读:64来源:国知局
多存储器文件管理方法、装置、系统、设备及存储介质与流程

1.本发明涉及嵌入式技术领域,更具体地说,涉及一种多存储器文件管理方法、装置、系统、设备及存储介质。


背景技术:

2.在工业嵌入式领域,随着智能化要求的提升,需要对设备进行全生命周期的监控,比如要求全面记录日志和故障信息便于设备故障时刻的问题定位和分析,甚至要求实时地采集状态数据记录设备的运行状况,这就要求设备具有大容量存储功能。由于嵌入式领域对成本敏感,常规的大容量存储器或者价格昂贵,或者接口复杂以至于处理器不支持。若使用多片低成本小容量存储器,如果多片存储器独立使用,采用不同分区将不便于文件的统一管理。


技术实现要素:

3.本发明的目的在于提供一种多存储器文件管理方法、装置、系统、设备及存储介质,以在提高设备的存储容量的基础上,对不同存储器进行有效管理。
4.为实现上述目的,本发明提供一种多存储器文件管理方法,包括:
5.接收文件系统发送的携带虚拟地址的访问请求;
6.对所述虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址;
7.调用与所述目标存储器对应的目标存储器驱动层,以通过所述目标存储器驱动层利用所述目标实际地址对所述目标存储器执行对应的访问操作。
8.其中,所述对所述虚拟地址进行解析,包括:
9.利用地址空间映射关系对所述虚拟地址进行解析;其中,所述地址空间映射关系用于确定不同虚拟地址与不同存储器的实际地址之间的映射关系;所述不同存储器为型号相同的存储器,或者为型号不相同的存储器。
10.其中,所述接收文件系统发送的携带虚拟地址的访问请求之前,还包括:
11.确定所述文件系统访问存储器的总容量;其中,所述总容量为所有存储器的总量之和;
12.确定所述文件系统访问存储器的目标页尺寸、目标块尺寸、目标页数量和目标块数量;
13.将所述总容量、所述目标页尺寸、所述目标块尺寸、所述目标页数量和所述目标块数量发送至所述文件系统。
14.其中,若所有存储器的型号相同,则所述确定所述文件系统访问存储器的目标页尺寸、目标块尺寸、目标页数量和目标块数量,包括:
15.将单片存储器的页尺寸作为所述目标页尺寸;
16.将单片存储器的块尺寸作为所述目标块尺寸;
17.将所有存储器的页数量之和作为所述目标页数量;
18.将所有存储器的块数量之和作为所述目标块数量。
19.其中,若存储器的型号不相同且不同型号的块尺寸和页尺寸成倍数关系时,则所述确定所述文件系统访问存储器的目标页尺寸、目标块尺寸、目标页数量和目标块数量,包括:
20.将所有存储器中的最大的页尺寸作为目标页尺寸;
21.利用所述目标页尺寸确定每个存储器的整体页,每个整体页的尺寸为所述目标页尺寸,并确定每个存储器的整体页的数量;
22.将所有存储器的整体页的数量之和作为所述目标页数量;
23.将所有存储器中的最大的块尺寸作为目标块尺寸;
24.利用所述目标块尺寸确定每个存储器的整体块,每个整体块的尺寸为所述目标块尺寸,并确定每个存储器的整体块的数量;
25.将所有存储器的整体块的数量之和作为所述目标块数量。
26.其中,若所述访问请求为读请求,则对虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址包括:
27.确定待读取的虚拟页地址;
28.对所述虚拟页地址进行解析,确定与所述虚拟页地址对应的目标存储器,以及所述目标存储器中与所述虚拟页地址对应的目标实际页地址。
29.其中,若所述访问请求为读请求,且存储器的型号不相同,则通过所述目标存储器驱动层利用所述目标实际地址对所述目标存储器执行对应的访问操作,包括:
30.通过与所述目标存储器对应的目标读驱动函数,从所述目标存储器的所述目标实际页地址读取初始数据;
31.根据所述文件系统访问存储器的目标页尺寸,将所述初始数据整合为最终读取数据,并将所述最终读取数据发送至所述文件系统。
32.其中,若所述访问请求为写请求,则对虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址,包括:
33.确定待写的虚拟页地址;
34.对所述虚拟页地址进行解析,确定与所述虚拟页地址对应的目标存储器,以及所述目标存储器中与所述虚拟页地址对应的目标实际页地址。
35.其中,若所述访问请求为写请求,且存储器的型号不相同,则通过所述目标存储器驱动层利用所述目标实际地址对所述目标存储器执行对应的访问操作,包括:
36.根据所述目标存储器的页尺寸,将待写数据拆分为与每个目标实际页地址对应的拆分数据;
37.通过与所述目标存储器对应的目标写驱动函数,将每个拆分数据写入对应的目标存储器的目标实际页地址内。
38.其中,若所述访问请求为擦除请求,则对虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址,包括:
39.确定待擦除的虚拟块地址;
40.对所述虚拟块地址进行解析,确定与所述虚拟块地址对应的目标存储器,以及所
述目标存储器中与所述虚拟块地址对应的目标实际块地址。
41.其中,若所述访问请求为擦除请求,则通过所述目标存储器驱动层利用所述目标实际地址对所述目标存储器执行对应的访问操作,包括:
42.通过与所述目标存储器对应的目标擦驱动函数,对所述目标存储器的目标实际块地址的数据进行数据擦除。
43.为实现上述目的,本发明进一步提供一种多存储器文件管理装置,包括:
44.接收模块,用于接收文件系统发送的携带虚拟地址的访问请求;
45.解析模块,用于对所述虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址;
46.调用模块,用于调用与所述目标存储器对应的目标存储器驱动层,利用所述目标实际地址对所述目标存储器执行对应的访问操作。
47.为实现上述目的,本发明进一步提供一种多存储器文件管理系统,包括:
48.文件系统、映射管理层及存储器驱动层;
49.其中,所述映射管理层用于:接收文件系统发送的携带虚拟地址的访问请求,对所述虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址,调用与所述目标存储器对应的目标存储器驱动层,以通过所述目标存储器驱动层利用所述目标实际地址对所述目标存储器执行对应的访问操作。
50.为实现上述目的,本发明进一步提供一种电子设备,包括:
51.存储器,用于存储计算机程序;
52.处理器,用于执行所述计算机程序时实现上述多存储器文件管理方法的步骤。
53.为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述多存储器文件管理方法的步骤。
54.通过以上方案可知,本发明实施例提供的一种多存储器文件管理方法,包括:接收文件系统发送的携带虚拟地址的访问请求;对虚拟地址进行解析,确定与虚拟地址对应的目标存储器,以及目标存储器中与虚拟地址对应的目标实际地址;调用与目标存储器对应的目标存储器驱动层,以通过目标存储器驱动层利用目标实际地址对目标存储器执行对应的访问操作。
55.可见,本方案接收到文件系统发送的访问请求后,需要将该访问请求中携带的虚拟地址映射为对应存储器中的实际地址进行访问,通过该方式,可以将设备的多个存储器整合为大容量的存储器使用,文件系统不需要关心存储器的实际数量及型号,只要发送携带虚拟地址的访问请求即可完成对存储器的访问,从而实现在提高存储容量的基础上,对不同存储器的文件进行有效管理,方便文件的访问。
56.本发明还公开了一种多存储器文件管理装置、系统、设备及存储介质,同样能实现上述技术效果。
附图说明
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1为本发明实施例公开的一种多存储器文件管理系统结构示意图;
59.图2为本发明实施例公开的一种多存储器文件管理方法流程示意图;
60.图3为本发明实施例公开的另一种多存储器文件管理方法流程示意图;
61.图4为本发明实施例公开的另一种多存储器文件管理方法流程示意图;
62.图5为本发明实施例公开的另一种多存储器文件管理方法流程示意图;
63.图6为本发明实施例公开的读操作流程示意图;
64.图7为本发明实施例公开的擦除操作流程示意图;
65.图8为本发明实施例公开的一种多存储器文件管理装置结构示意图;
66.图9为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
67.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
68.为了便于理解,下面对本技术的技术方案所适用的系统架构进行介绍,参见图1,为本发明实施例公开的一种多存储器文件管理系统结构示意图,该系统主要包括:文件系统11、映射管理层12及存储器驱动层13。
69.其中,文件系统11为负责进行文件管理的软件逻辑和数据结构的集合,在本实施例中,文件系统具体为嵌入式文件系统,该嵌入式文件系统可以为yaffs(yet another flash file system,一种基于日志型的专门为nand faslh存储器设计的嵌入式文件系统,适用于大容量的存储设备)、tffs(true flash file system,风河vxworks公司在系统flash设备上构造的一个基于dos的文件系统)、reliance(一种支持断电安全重启的高可靠文件系统)等任意一种,本实施例并不具体限定。需要注意的是,挂载文件系统时,存储器总容量、页信息(页尺寸和页数量)和块信息(块尺寸和块数量)指的是将多存储器虚拟为单一存储器后的总信息,使用的存储器访问接口为映射管理层接口,由映射管理层具体负责底层多片存储器的驱动调用。
70.映射管理层12负责衔接上层文件系统和存储器驱动层,目的是使文件系统可以不关心底层存储器的数量和型号而进行统一管理。具体来说,映射管理层通过虚拟页面管理,将多片存储器的页和块信息虚拟为相同尺寸的页和块信息进行统一操作,并执行后续方法实施例所述的多存储器文件管理方法的步骤。例如:映射管理层接收到文件系统发送的携带虚拟地址的访问请求后,对该虚拟地址进行解析,确定与虚拟地址对应的目标存储器,以及目标存储器中与虚拟地址对应的目标实际地址,调用与目标存储器对应的目标存储器驱动层,以通过目标存储器驱动层利用目标实际地址对目标存储器执行对应的访问操作。通过该方式,可以将设备的多个存储器整合为大容量的存储器使用,文件系统不需要关心存储器的实际数量及型号,只要发送携带虚拟地址的访问请求即可完成对存储器的访问,从
而实现在提高存储容量的基础上,对不同存储器的文件进行有效管理,方便文件的访问。
71.存储器驱动层13主要用于实现存储器基本的读、写、擦等功能,如果设备中存在多种型号的存储器,则对应有多组不同的存储器驱动层。
72.参见图2,为本发明实施例公开的一种多存储器文件管理方法流程示意图,通过图2可以看出,该方法具体包括:
73.s101、接收文件系统发送的携带虚拟地址的访问请求;
74.需要说明的是,本实施例中的嵌入式设备可具有多个存储器,每个存储器具有对应的容量、页信息和块信息;为了方便文件系统对多个存储器进行统一管理,本方案在原有的文件系统和存储器驱动层之间提供一层映射管理层,本实施例所述的多存储器文件管理方法的执行主体即为映射管理层。
75.本实施例接收文件系统发送的携带虚拟地址的访问请求之前,还包括:确定文件系统访问存储器的总容量,该总容量为所有存储器的总量之和;确定文件系统访问存储器的目标页尺寸、目标块尺寸、目标页数量和目标块数量,将总容量、目标页尺寸、目标块尺寸、目标页数量和目标块数量发送至文件系统。
76.具体来说,为了让文件系统对多个存储器进行统一管理,可将多个存储器虚拟为一个存储器,让文件系统对多个存储器的访问转换对一个存储器的访问,从而简化对多个存储器的访问操作。并且,将多个存储器虚拟为一个存储器后,还需要确定文件系统访问该存储器的总容量、块信息及页信息,以便文件系统根据虚拟后的虚拟地址对存储器进行访问。在本实施例中,映射管理层确定总容量、目标页尺寸、目标块尺寸、目标页数量和目标块数量的过程具体包括如下步骤:
77.1)初始化总容量:确定文件系统访问的存储器的总容量c,该总容量为多片存储器的容量总和,即c=c1+c2+
……
+cn,n为存储器个数。
78.2)虚拟页面管理:确定文件系统访问的存储器目标页尺寸psize、目标块尺寸bsize、目标页数量pcnt和目标块数量bcnt。
79.需要说明的是,本实施例确定上述参数时,需要根据存储器的类型来确定,如果多片存储器的类型相同,则说明不同存储器间的页尺寸、块尺寸、页数量和块数量相同,此时需要将单片存储器的页尺寸作为目标页尺寸,将单片存储器的块尺寸作为目标块尺寸,将所有存储器的页数量之和作为目标页数量,将所有存储器的块数量之和作为目标块数量。
80.若多片存储器的类型不相同,且不同型号的页和块尺寸相差整数倍时,可将所有存储器中的最大的页尺寸作为目标页尺寸,利用目标页尺寸确定每个存储器的整体页,每个整体页的尺寸为目标页尺寸,并确定每个存储器的整体页的数量,将所有存储器的整体页的数量之和作为目标页数量;将所有存储器中的最大的块尺寸作为目标块尺寸,利用目标块尺寸确定每个存储器的整体块,每个整体块的尺寸为目标块尺寸,并确定每个存储器的整体块的数量,将所有存储器的整体块的数量之和作为目标块数量。其中,本方案整合整体页及整体块时,具体是将尺寸小的多个页/块整合为一个整体页/整体块,整体页/整体块与尺寸最大的目标页尺寸/目标块尺寸相同,例如:若不同型号的页和块尺寸相差整数倍n时,将小容量存储器的n个页虚拟为一个整体页,将小容量存储器的n个块虚拟为一个整体块,通过该方式,即使不同存储器型号不同,但文件系统管理的页尺寸和块尺寸可以保持统一。
81.s102、对虚拟地址进行解析,确定与虚拟地址对应的目标存储器,以及目标存储器中与虚拟地址对应的目标实际地址;
82.其中,在本实施例中,具体利用地址空间映射关系对虚拟地址进行解析;该地址空间映射关系用于确定不同虚拟地址与不同存储器的实际地址之间的映射关系;不同存储器为型号相同的存储器,或者为型号不相同的存储器。
83.具体来说,映射管理层会为多片存储器分配不同的、唯一的虚拟地址及实际地址,虚拟地址及实际地址之间的对应关系通过地址空间映射关系来体现,上层文件系统获取总容量、页和块信息后,对虚拟后的存储器使用虚拟地址进行统一访问,映射管理层再对文件系统的页和块信息进行虚拟地址解析,映射到具体的某一片存储器的实际地址,在本实施例中,将虚拟地址映射到的存储器称为目标存储器,将虚拟地址映射到目标存储器的实际地址称为目标实际地址。
84.s103、调用与目标存储器对应的目标存储器驱动层,以通过目标存储器驱动层利用目标实际地址对目标存储器执行对应的访问操作。
85.在本实施例中,文件系统发送的访问请求可以为读请求、写请求、擦除请求等等,相对应的访问操作为:读操作、写操作、擦除操作等等,在此并不具体限定。映射管理层确定访问请求对应的目标存储器内的目标实际地址后,便会调用与目标存储器对应的目标存储器驱动层,通过目标存储器驱动层对目标实际地址执行对应的访问操作。
86.综上可见,本方案为了满足工业嵌入式领域的大容量数据存储需求,同时控制使用成本,提出一种多存储器集成的大容量存储文件系统管理方法,从而实现对存储器的访问。具体来说,本方案需要在文件系统和存储器驱动层之间提供一层映射管理层,该映射管理层根据存储器的数量和型号,进行虚拟页面管理,决定虚拟存储器的总容量以及页信息和块信息;映射管理层接收到文件系统发送的访问请求后,根据访问请求携带的虚拟地址确定对应的目标实际地址,并调用存储器驱动层完成访问操作。该方式对于上层文件系统而言,通过映射管理层的映射,可以不需要关心底层多片存储器的数量和型号,完全将其视为一片独立的大容量虚拟存储器进行管理,从而提高存储容量、降低成本的基础上,实现对不同存储器的有效管理。
87.基于上述实施例,在本实施例中,以访问请求分别为读请求、写请求及擦除请求为例,对不同访问请求下确定目标实际地址及执行访问操作的过程进行具体说明。
88.需要说明的是,嵌入式存储器中一般以页(page)为基本单位进行读和写操作,以块(block)为基本单位进行擦除操作。因此本实施例映射管理层接收到访问请求中的页地址后,解析该页地址,通过地址空间映射关系选取对应的存储器进行页读写;映射管理层接收到访问请求中的块地址后,解析该块地址,通过地址空间映射关系选取对应的存储器进行块擦除。并且,若多片存储器为同一型号,数据可以不用拆分和整合,映射管理层对文件系统和存储器驱动层之间的数据进行透明传输。若多片存储器为不同型号,则需要对数据进行拆分和整合,实现数据在不同页面的拆分存储和合并读取。例如:存在两种不同型号存储器,且不同型号的存储器的页和块尺寸相差整数倍:存储器1的页和块尺寸是存储器2的两倍,若基于地址空间映射关系将虚拟地址映射到存储器1时,数据透明传输,不需要对数据进行拆分和整合。若基于地址空间映射关系将虚拟地址映射到存储器2时,需要将文件系统的数据拆分为两份,分别两次调用存储器2的存储器驱动层进行存储;或者,需要连续两
次调用存储器2的存储器驱动层进行数据读取,然后整合成一份数据返回文件系统。
89.参见图3,为本发明实施例公开的另一种多存储器文件管理方法流程示意图,通过图3可以看出,该方法具体包括:
90.s201、接收文件系统发送的读请求;
91.s202、确定待读取的虚拟页地址;
92.s203、对虚拟页地址进行解析,确定与虚拟页地址对应的目标存储器,以及目标存储器中与虚拟页地址对应的目标实际页地址;
93.s204、调用与目标存储器对应的目标读驱动函数;
94.s205、若存储器的型号不相同,则通过与目标存储器对应的目标读驱动函数,从目标存储器的目标实际页地址读取初始数据;
95.s206、根据文件系统访问存储器的目标页尺寸,将初始数据整合为最终读取数据,并将最终读取数据发送至文件系统。
96.具体来说,映射管理层接收到读请求后,对读请求携带的虚拟页地址进行解析,确定目标存储器及目标实际页地址,并调用与目标存储器对应的目标读驱动函数从目标存储器的目标实际页地址读取初始数据,若存储器的型号相同,此时并不需要对初始数据进行整合,直接作为最终读取数据发送至文件系统,如果存储器的型号不相同,则需要按照目标页尺寸对初始数据进行整合,并将整合后的最终读取数据发送至文件系统。
97.参见图4,为本发明实施例公开的另一种多存储器文件管理方法流程示意图,通过图4可以看出,该方法具体包括:
98.s301、接收文件系统发送的写请求;
99.s302、确定待写的虚拟页地址;
100.s303、对虚拟页地址进行解析,确定与虚拟页地址对应的目标存储器,以及目标存储器中与虚拟页地址对应的目标实际页地址;
101.s304、调用与目标存储器对应的目标写驱动函数;
102.s305、若存储器的型号不相同,则根据目标存储器的页尺寸,将待写数据拆分为与每个目标实际页地址对应的拆分数据;
103.s306、通过与目标存储器对应的目标写驱动函数,将每个拆分数据写入对应的目标存储器的目标实际页地址内。
104.具体来说,映射管理层接收到写请求后,对写请求携带的虚拟页地址进行解析,确定目标存储器及目标实际页地址;若存储器的型号相同,则直接调用目标写驱动函数将待写数据写入对应的目标实际页地址;若存储器的型号不相同,此时需要根据目标存储器的页尺寸,将待写数据拆分为与目标实际页地址对应的拆分数据,并调用目标写驱动函数将每个拆分数据写入对应的目标存储器的目标实际页地址内。
105.参见图5,为本发明实施例公开的另一种多存储器文件管理方法流程示意图,通过图5可以看出,该方法具体包括:
106.s401、接收文件系统发送的擦除请求;
107.s402、确定待擦除的虚拟块地址;
108.s403、对虚拟块地址进行解析,确定与虚拟块地址对应的目标存储器,以及目标存储器中与虚拟块地址对应的目标实际块地址;
109.s404、调用与目标存储器对应的目标擦驱动函数;
110.s405、通过与目标存储器对应的目标擦驱动函数,对目标存储器的目标实际块地址的数据进行数据擦除。
111.具体来说,映射管理层接收到擦除请求后,对擦除请求携带的虚拟块地址进行解析,确定目标存储器及目标实际块地址;然后调用与目标存储器对应的目标擦驱动函数对目标存储器的目标实际块地址的数据进行数据擦除。
112.在本实施例中,为了便于理解,对存储器的读和擦除操作分别举例说明,写操作与读操作基本类似,在此便不赘述。
113.一、对存储器执行读操作过程:
114.假设设备上使用了两片不同型号的存储器,存储器1的容量为c1,存储器2的容量为c2,存储器1的页和块尺寸为存储器2的两倍,即psize1=2*psize2,bsize1=2*bsize2,而页数量和块数量分别相等,即pcnt1=pcnt2,bcnt1=bcnt2。
115.参见图6,为本发明实施例公开的读操作流程示意图,具体包括:
116.(1)初始化总容量:初始化文件系统访问的存储器总容量c=c1+c2。
117.(2)虚拟页面管理:存储器1的一个页即为整体页,存储器1的一个块即为整体块,将存储器2的两个页虚拟为一个整体页,两个块虚拟为一个整体块,虚拟后的页尺寸psize=psize1,块尺寸bsize=bsize1,页数量pcnt=pcnt1+pcnt2/2,块数量bcnt=bcnt1+bcnt2/2。
118.(3)接收文件系统下发的读指令,假设需要读第n页的数据,映射管理层根据虚拟页地址进行地址映射,决定读的是哪一片存储器的哪一页,然后调用相应的读驱动函数。例如:当n《pcnt1时,虚拟地址位于存储器1中,只需调用一次存储器1的读驱动函数,读的页尺寸为psize1=psize,即读取的是存储器1的第n页。如果n》=pcnt1时,虚拟地址位于存储器2中,需两次调用存储器2的读驱动函数,每次读的页尺寸为psize2=psize/2,即读取的是存储器2的第2*(n-pcnt1)和第2*(n-pcnt1)+1页。正常情况下,n的取值范围为0《=n《pcnt,否则页地址空间映射会有异常。
119.(4)对读取的存储器数据进行整合,并返回给文件系统管理。其中,当n《pcnt1,即读取存储器1的数据时,不需要对数据整合,数据直接返回给文件系统使用;当n》=pcnt1,即读取存储器2的数据时,需要将第2*(n-pcnt1)和第2*(n-pcnt1)+1页的数据按顺序拼接,整合为尺寸为2*psize2=psize的完整数据,再返回给文件系统使用。
120.二、对存储器执行擦除操作过程:
121.参见图7,为本发明实施例公开的擦除操作流程示意图,具体包括:
122.(1)初始化总容量:初始化文件系统访问的存储器总容量为c=c1+c2。
123.(2)虚拟页面管理:存储器1的一个页即为整体页,存储器1的一个块即为整体块,将存储器2的两个页虚拟为一个整体页,两个块虚拟为一个整体块,虚拟后的页尺寸psize=psize1,块尺寸bsize=bsize1,页数量pcnt=pcnt1+pcnt2/2,块数量bcnt=bcnt1+bcnt2/2。
124.(3)接收文件系统下发的擦除指令,如果需要擦除第m个块,映射管理层根据虚拟块地址进行地址映射,决定擦除的是哪一片存储器的哪一个块,然后调用相应的擦驱动函数。例如:当m《bcnt1时,虚拟地址位于存储器1中,只需调用一次存储器1的擦驱动函数,擦
除的块尺寸为bcnt1=bcnt,即擦的是第1片存储器的第m块。如果m》=bcnt1时,虚拟地址位于存储器2中,需调用两次存储器2的擦驱动函数,每次擦的块尺寸为bcnt2=bcnt/2,即擦的是存储器2的第2*(m-bcnt1)和第2*(m-bcnt1)+1块。正常情况下,m的取值范围为0《=m《bcnt,否则块地址空间映射会有异常。
125.综上可见,本方案原有的文件系统和存储器底层驱动软件框架之间设计一层映射管理层。该映射管理层通过虚拟页面管理,将多片存储器的页和块信息虚拟为相同尺寸的页和块信息进行统一操作;通过地址空间映射,实现文件系统对多片存储器的统一管理;通过数据调度,实现数据在多片存储器上的拆分存储和整合读取。最终实现将多片小容量存储器虚拟为单片的集成式大容量存储器进行管理。通过该方式,可实现将多片存储器虚拟为一片独立的大容量存储器进行统一管理,使文件系统不需要关心底层硬件实际使用的多存储器型号和数量。并且,本方案还具有很好的通用性和可移植性,主要进行软件协议层管理,与具体存储器以及文件系统类型无关,可方便的移植到多种嵌入式平台中。同时,本方案不仅支持多片存储器为同一型号,还支持多片不同型号的存储器同时使用。
126.下面对本发明实施例提供的访问装置、设备及存储介质进行介绍,下文描述的访问装置、设备及存储介质与上文描述的访问方法可以相互参照。
127.参见图8,本发明实施例提供的一种多存储器文件管理装置结构示意图,该装置具体包括:
128.接收模块21,用于接收文件系统发送的携带虚拟地址的访问请求;
129.解析模块22,用于对所述虚拟地址进行解析,确定与所述虚拟地址对应的目标存储器,以及所述目标存储器中与所述虚拟地址对应的目标实际地址;
130.调用模块23,用于调用与所述目标存储器对应的目标存储器驱动层,利用所述目标实际地址对所述目标存储器执行对应的访问操作。
131.其中,所述解析模块具体用于:
132.利用地址空间映射关系对所述虚拟地址进行解析;其中,所述地址空间映射关系用于确定不同虚拟地址与不同存储器的实际地址之间的映射关系;所述不同存储器为型号相同的存储器,或者为型号不相同的存储器。
133.其中,所述装置还包括:
134.第一确定模块,用于确定所述文件系统访问存储器的总容量;其中,所述总容量为所有存储器的总量之和;
135.第二确定模块,用于确定所述文件系统访问存储器的目标页尺寸、目标块尺寸、目标页数量和目标块数量;
136.发送模块,用于将所述总容量、所述目标页尺寸、所述目标块尺寸、所述目标页数量和所述目标块数量发送至所述文件系统。
137.其中,所述第二确定模块包括:
138.第一确定子单元,用于在所有存储器的型号相同时,将单片存储器的页尺寸作为所述目标页尺寸,将单片存储器的块尺寸作为所述目标块尺寸,将所有存储器的页数量之和作为所述目标页数量,将所有存储器的块数量之和作为所述目标块数量。
139.其中,所述第二确定模块包括:
140.第二确定子单元,用于在存储器的型号不相同时,将所有存储器中的最大的页尺
寸作为目标页尺寸,利用所述目标页尺寸确定每个存储器的整体页,每个整体页的尺寸为所述目标页尺寸,并确定每个存储器的整体页的数量;将所有存储器的整体页的数量之和作为所述目标页数量;
141.第三确定子单元,用于在存储器的型号不相同时,将所有存储器中的最大的块尺寸作为目标块尺寸,利用所述目标块尺寸确定每个存储器的整体块,每个整体块的尺寸为所述目标块尺寸,并确定每个存储器的整体块的数量,将所有存储器的整体块的数量之和作为所述目标块数量。
142.其中,所述解析模块包括:
143.第一解析单元,用于在所述访问请求为读请求时,确定待读取的虚拟页地址,对所述虚拟页地址进行解析,确定与所述虚拟页地址对应的目标存储器,以及所述目标存储器中与所述虚拟页地址对应的目标实际页地址。
144.其中,所述调用模块包括:
145.数据获取单元,用于通过与所述目标存储器对应的目标读驱动函数,从所述目标存储器的所述目标实际页地址读取初始数据;
146.数据整合单元,用于根据所述文件系统访问存储器的目标页尺寸,将所述初始数据整合为最终读取数据,并将所述最终读取数据发送至所述文件系统。
147.其中,所述解析模块包括:
148.第二解析单元,用于在所述访问请求为写请求时,确定待写的虚拟页地址,对所述虚拟页地址进行解析,确定与所述虚拟页地址对应的目标存储器,以及所述目标存储器中与所述虚拟页地址对应的目标实际页地址。
149.其中,所述调用模块包括:
150.数据拆分单元,用于根据所述目标存储器的页尺寸,将待写数据拆分为与每个目标实际页地址对应的拆分数据;
151.数据写入单元,用于通过与所述目标存储器对应的目标写驱动函数,将每个拆分数据写入对应的目标存储器的目标实际页地址内。
152.其中,所述解析模块包括:
153.第三解析单元,用于在所述访问请求为擦除请求时,确定待擦除的虚拟块地址,对所述虚拟块地址进行解析,确定与所述虚拟块地址对应的目标存储器,以及所述目标存储器中与所述虚拟块地址对应的目标实际块地址。
154.其中,所述调用模块包括:
155.数据擦除单元,用于通过与所述目标存储器对应的目标擦驱动函数,对所述目标存储器的目标实际块地址的数据进行数据擦除。
156.参见图9,本发明实施例提供的一种电子设备结构示意图,包括:
157.存储器31,用于存储计算机程序;
158.处理器32,用于执行所述计算机程序时实现上述任意方法实施例所述的多存储器文件管理方法的步骤。
159.在本实施例中,设备可以是pc(personal computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
160.该设备可以包括存储器31、处理器32和总线33。
161.其中,存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器31在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器31在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器31还可以既包括设备的内部存储单元也包括外部存储设备。存储器31不仅可以用于存储安装于设备的应用软件及各类数据,例如执行访问方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
162.处理器32在一些实施例中可以是一中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器31中存储的程序代码或处理数据,例如执行访问方法的程序代码等。
163.该总线33可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
164.进一步地,设备还可以包括网络接口34,网络接口34可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
165.可选地,该设备还可以包括用户接口35,用户接口35可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
166.图9仅示出了具有组件31-35的设备,本领域技术人员可以理解的是,图9示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
167.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的多存储器文件管理方法的步骤。
168.其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
169.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
170.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1