存储空间访问方法、装置、设备及存储介质与流程
未命名
09-08
阅读:110
评论:0

1.本技术属于计算机固件开发技术领域,具体涉及一种存储空间访问方法、装置、设备及存储介质。
背景技术:
2.在先技术中,在bios启动和运行的过程中,往往采用固定位数类型(64位)的虚拟地址与物理地址的映射关系,以访问物理地址对应的存储空间。
3.在实现本技术过程中,发明人发现在先技术中至少存在如下问题:由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限,无法支持多种位数类型的芯片。
技术实现要素:
4.本技术旨在提供一种存储空间访问方法、装置、设备及存储介质,至少解决在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
5.为了解决上述技术问题,本技术是这样实现的:
6.第一方面,本技术实施例提供了一种存储空间访问方法,所述方法包括:
7.在bios启动以及运行的情况下,获取表项集合,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;
8.响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;
9.在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;
10.根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
11.第二方面,本技术实施例还提供了一种存储空间访问装置,所述装置包括:
12.第一获取模块,用于在bios启动以及运行的情况下,获取表项集合,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;
13.第二获取模块,用于响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;
14.第三获取模块,用于在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;
15.访问模块,用于根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
16.第三方面,本技术实施例还提供了一种电子设备,该电子设备包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处
理器执行时实现如第一方面所述的方法的步骤。
17.第四方面,本技术实施例还提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
18.在本技术实施例中,通过在bios启动以及运行的情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型的情况下,从与目标虚拟地址对应的目标表项中,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于bios的存储空间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
附图说明
19.图1是本技术实施例提供的一种存储空间访问方法的步骤流程图;
20.图2是本技术实施例提供的一种存储空间访问方法的具体步骤流程图;
21.图3是本技术实施例提供的一种表项类型为动态表项的表项的组成示意图;
22.图4是本技术实施例提供的一种存储空间访问流程示意图;
23.图5是本技术实施例提供的一种存储空间访问装置的框图;
24.图6是本技术实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的存储空间访问方法进行详细地说明。
27.图1是本技术实施例提供的一种存储空间访问方法的步骤流程图,如图1所示,该方法可以包括:
28.步骤101、在bios启动以及运行的情况下,获取表项集合。
29.其中,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型。
30.需要说明的是,bios即基本输入输出系统,是一组固化到计算机内主板上一个rom(read-only memory,只读存储器)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从cmos(一种保存计算机基本启动信息的芯片)中读写系统设置的具体信息,它的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,bios还向作业系统提供一些系统参数。
31.在bios启动以及运行时需要执行程序,这就需要访问程序对应的存储空间,而访问存储空间需要一种虚拟地址映射至物理地址的存储空间访问方法。因此,在bios启动时,需要先创建表项集合,以便bios启动以及运行时获取已创建的表项集合,进而根据表项集合中记录的虚拟地址与物理地址的映射关系,访问运行的程序对应的存储空间。
32.为了方便编译器和操作系统安排程序的地址分布,即程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区,也为了方便进程之间隔离,即使得不同进程使用的虚拟地址彼此隔离,一个进程中的代码无法更改正在由另一进程使用的物理内存,因此,需要使用虚拟地址与物理地址的映射关系,通过mmu(memory management unit,内存管理单元)来完成虚拟地址和物理地址之间的映射。
33.其中,物理地址对应的存储空间是实际存在于计算机中的一个实体,在每一台计算机中保持唯一独立性,即物理内存;如在32位的机器上,物理空间的大小理论上可以达到2的32次方字节(4gb)。虚拟地址并不真实存在于计算机中。每个进程都分配有自己的虚拟空间,而且只能访问自己被分配使用的空间。理论上,虚拟地址对应的存储空间受物理内存大小的限制,如为虚拟地址对应的存储空间设置4gb内存,那么虚拟地址对应的存储空间的地址范围就应该是0x00000000~0xffffffff。
34.页表是一种特殊的数据结构,记录虚拟地址与物理地址的映射关系,每一个进程都拥有对应一个页表,页表包括多个表项(即页表项),每个表项记录一个虚拟地址与一个物理地址的映射关系。
35.tlb(translation lookaside buffer,转换后备缓冲区,简称为“快表”)是页表的缓存,tlb存储了当前最可能被访问到的表项,即部分表项的副本。在tlb无法完成地址翻译任务的情况下,即在tlb中找不到目标虚拟地址对应的目标表项的情况下,在内存中去寻找目标虚拟地址对应的目标表项。
36.表项集合可以为页表或者页表中的部分表项。
37.虚拟地址的位数类型即虚拟地址使用二进制表示的位数,例如虚拟地址的位数类型为16位,即虚拟地址使用一个16位二进制表示(转化为十六进制的形式范围为0x0000-0xffff),占2个字节。虚拟地址的位数类型包括多种第一位数类型,即虚拟地址的位数类型有多种,例如虚拟地址的位数类型可以为16位、32位、64位等;同理,物理地址的位数类型的说明类似,此处不再赘述。
38.在本技术实施例中,通过在bios启动以及运行的情况下,为了访问物理地址对应的存储空间,需要先获取到虚拟地址与物理地址的映射关系,而表项中记录有虚拟地址与物理地址的映射关系,则需要先获取表项集合,以便进一步获取表项,进而访问存储空间。此外,由于虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型,则对于一个物理地址,可以使用多种位数类型的虚拟地址与该物理地址建立映射关系,对于一种位数类型的虚拟地址,可以适应多种位数类型的物理地址,即与虚拟地址建立映射关系的物理地址的位数类型可以有多种,从而可以实现多种位数类型的虚拟地址与物理地址的映射关系,进而实现访问存储空间的多种方式,且支持虚拟地址与多种位数类型的物理地址的映射,进而支持使用不同位数类型的物理地址的外接设备,增加了对外接设备支持的多样性和兼容性。
39.例如,对于一个物理地址0x1000,该物理地址的位数类型为16位,可以使用多种位
数类型的虚拟地址与该物理地址建立映射关系,如创建位数类型为16位的虚拟地址0x1000与物理地址0x1000的映射关系,或创建位数类型为32位的虚拟地址0x10000000与物理地址0x1000的映射关系,或创建位数类型为64位的虚拟地址0x1000000000000000与物理地址0x1000的映射关系。
40.对于一个虚拟地址0x1000,该虚拟地址的位数类型为16位,可以使用多种位数类型的物理地址与该虚拟地址建立映射关系,如创建位数类型为16位的物理地址0x1000与虚拟地址0x1000的映射关系,或创建位数类型为32位的物理地址0x10000000与虚拟地址0x1000的映射关系,或创建位数类型为64位的物理地址0x1000000000000000与虚拟地址0x1000的映射关系。
41.步骤102、响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址。
42.在本技术实施例中,在中央处理器(central processing unit,即cpu)需要访问存储空间的情况下,中央处理器会发出访问请求,访问请求包括了需要访问的目标虚拟地址,则可以获取到目标虚拟地址,以便根据目标虚拟地址,通过目标虚拟地址与对应的目标物理地址之间的映射关系,可以找寻到目标物理地址,并根据目标物理地址访问对应的存储空间,从而完成访问请求。
43.步骤103、在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址。
44.在本技术实施例中,在目标虚拟地址为第一位数类型的情况下,需要从所有的第一位数类型的表项中找到与目标虚拟地址对应的目标表项,然后读取与目标虚拟地址对应的第一位数类型的目标表项中的内容,由于表项中记录有虚拟地址与物理地址的映射关系,则可以根据目标虚拟地址,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址,以便根据目标物理地址访问对应的存储空间,从而完成访问请求。
45.需要说明的是,第一位数类型的目标表项中记录有第一位数类型的虚拟地址与第二位数类型的物理地址的映射关系。
46.例如,在目标虚拟地址(0x1000)的位数类型为16位的情况下,从与目标虚拟地址对应的16位的目标表项(记录着虚拟地址0x1000与物理地址0x10000000的映射关系)中,获取与目标虚拟地址对应的32位的目标物理地址0x10000000。
47.步骤104、根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
48.在本技术实施例中,在获取到目标物理地址之后,可以根据目标物理地址访问与目标物理地址对应的存储空间,以实现基于bios的存储空间的访问。
49.例如,与目标虚拟地址对应的目标物理地址为0x10000000,则访问目标物理地址0x10000000对应的存储空间。
50.通过本技术实施例可以实现,在bios启动以及运行的情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型的情况下,从与目标虚拟地址对应的目标表项中,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于bios的存储空
间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
51.图2是本技术实施例提供的一种存储空间访问方法的具体步骤流程图,如图2示,该方法可以包括:
52.步骤201、在bios启动以及运行的情况下,获取表项集合。
53.其中,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型。
54.本步骤的实现方式与上述步骤101实现过程类似,此处不再赘述。
55.可选地,在一些实施例中,在所述bios启动的情况下,获取所述表项集合的步骤,包括如下子步骤(子步骤2011、子步骤2012)
56.子步骤2011、在所述bios启动的情况下,根据每个所述虚拟地址和对应的一个所述物理地址,创建每个所述虚拟地址对应的表项,并将每个所述表项存储于所述数据库中。
57.在本技术实施例中,在bios启动的情况下,需要创建所有的表项,即根据每个虚拟地址和对应的一个物理地址,创建每个虚拟地址对应的表项,并将所有的表项存储至数据库中,以供需要访问存储空间时,从数据库中获取表项集合,进而获取与目标虚拟地址对应的目标表项,根据目标表项中的与目标虚拟地址对应的目标物理地址,访问对应的存储空间。
58.例如,服务器共有n个物理地址对应的存储空间,则在在bios启动的情况下,创建虚拟地址1对应的表项1,表项1记录有虚拟地址1和物理地址1的映射关系;创建虚拟地址2对应的表项2,表项2记录有虚拟地址2和物理地址2的映射关系;创建虚拟地址3对应的表项3,表项3记录有虚拟地址3和物理地址3的映射关系,以此类推,
……
,创建虚拟地址n对应的表项n,表项n记录有虚拟地址n和物理地址n的映射关系,共创建n个表项(包括表项1,表项2,表项3,
……
,表项n),将n个表项存储于数据库中。
59.子步骤2012、根据所述数据库中所有的表项,构建获得所述表项集合。
60.在本技术实施例中,在获取表项集合之前,需要根据数据库中所有的表项,构建获得表项集合,然后从表项集合中获取与目标虚拟地址对应的目标表项,根据目标表项中的与目标虚拟地址对应的目标物理地址,访问对应的存储空间。
61.通过执行子步骤2011至子步骤2012可以实现,在bios启动的情况下,创建所有的表项并存储至数据库中,以供在bios启动和运行的过程中,从数据库中获取所有的表项,构建表项集合,然后从表项集合中获取与目标虚拟地址对应的目标表项,进而根据目标表项中的与目标虚拟地址对应的目标物理地址,访问对应的存储空间,以完成存储空间的访问过程。
62.步骤202、响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址。
63.本步骤的实现方式与上述步骤102实现过程类似,此处不再赘述。
64.步骤203、在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址。
65.本步骤的实现方式与上述步骤103实现过程类似,此处不再赘述。
66.可选地,在一些实施例中,所述表项中的虚拟地址具有对应的虚拟地址范围;步骤203包括如下子步骤(子步骤2031、子步骤2032):
67.子步骤2031、在所述目标虚拟地址为所述第一位数类型的情况下,将所述目标虚拟地址与所述目标表项中的虚拟地址范围进行匹配,获取匹配结果。
68.在本技术实施例中,为了找到与目标虚拟地址对应的第一位数类型的目标表项,需要将目标虚拟地址与第一位数类型的目标表项中的虚拟地址范围进行匹配,即判断目标虚拟地址是否落入目标表项中的虚拟地址范围,以获取匹配结果,进而在匹配结果为目标虚拟地址落入目标表项中的虚拟地址范围的情况下,从与目标虚拟地址对应的目标表项中获取目标物理地址。
69.其中,由于表项中的虚拟地址范围可以包括多个虚拟地址,因此,在创建表项中的虚拟地址与物理地址的映射关系时,映射关系中的虚拟地址可以有多种选择,即可以选择表项中的虚拟地址范围内的任意一种虚拟地址,从而提高了创建表项中的虚拟地址与物理地址的映射关系的选择自由度。
70.例如,表项中的虚拟地址范围为0x10000000至0x14000000,则与该表项的虚拟地址与物理地址的映射关系中的虚拟地址可以选择设置为0x10000000至0x14000000中任一个地址,例如虚拟地址可以设置为0x10000000,又例如虚拟地址可以设置为0x11000000。
71.子步骤2032、从所述目标表项中,获取所述匹配结果关联映射的第二位数类型的目标物理地址。
72.在本技术实施例中,匹配结果为目标虚拟地址落入目标表项中的虚拟地址范围,即第一位数类型的目标表项是与目标虚拟地址对应的表项,目标表项中的物理地址即目标物理地址,通过读取目标表项的内容,获取目标物理地址,以便根据目标物理地址访问与目标物理地址对应的存储空间。
73.针对子步骤2031至子步骤2032进行举例,例如,第一位数类型的目标虚拟地址为0x10000000,目标虚拟地址的第一位数类型为32位,第一位数类型的目标表项中的虚拟地址范围为0x10000000至0x14000000,则匹配结果为目标虚拟地址落入目标表项中的虚拟地址范围,目标表项中第二位数类型的物理地址为0x10000000,则将0x10000000作为目标物理地址,访问目标物理地址0x10000000对应的存储空间。
74.通过本技术实施例可以实现,根据第一位数类型的目标虚拟地址,确定与目标虚拟地址对应的第一位数类型的目标表项,在目标虚拟地址落入目标表项的虚拟地址范围的情况下,可以判断目标表项是与目标虚拟地址对应的表项,然后从目标表项中获取与目标虚拟地址对应映射的第二位数类型的目标物理地址,以便根据目标物理地址访问对应的存储空间,从而完成访问请求,实现对存储空间的访问过程。
75.需要说明的是,第一位数类型与第二位数类型可以为相同的位数类型,第一位数类型与第二位数类型也可以为不同的位数类型,二者之间并不存在关联关系,从而可以自由地选择第一位数类型的虚拟地址与第二位数类型的物理地址建立映射关系,提高了中央处理器访问存储空间的方式多样性。
76.可选地,在一些实施例中,在所述表项为动态表项的情况下,所述表项包括动态设定的虚拟页号和页规模,所述方法还包括:
77.步骤205、根据所述表项中的虚拟页号和页规模,确定所述虚拟地址范围。
78.在本技术实施例中,表项中设置有虚拟页号和页规模,根据虚拟页号和页规模,可以确定表项中对应的虚拟地址范围,即表项中的虚拟地址范围由表项中的虚拟页号和页规模确定,在确定虚拟地址范围之后,可以判断目标虚拟地址是否落入目标表项的虚拟地址范围。
79.具体地,在一些实施例中,动态表项即mtlb(multiple-page-size tra nslation lookaside buffer,多页大小的翻译后备缓冲区),在表项为动态表项的情况下,表项中包括虚拟页号(即virtual page number)和页规模(即page size),虚拟页号和页规模均支持设置,表项中的虚拟地址范围为虚拟页号至虚拟页号与页规模相加后的页号,该虚拟地址范围包括两个端点的页号(即虚拟页号、虚拟页号与页规模相加后的页号),例如,表项中的虚拟页号为0x10000000,页规模为0x4000000,则所确定的表项中对应的虚拟地址范围为0x10000000至0x14000000(0x10000000加上0x4000000),该虚拟地址范围包括0x10000000和0x14000000。
80.可选地,在一些实施例中,在所述目标表项为静态表项的情况下,所述表项包括动态设定的虚拟页号,所述方法还包括:
81.步骤206、根据预设的固定页规模和所述表项中的虚拟页号,确定所述表项中对应的虚拟地址范围。
82.在本技术实施例中,所有表项类型为静态表项的表项的页规模均为预设的固定页规模,表项中设置有虚拟页号,根据虚拟页号和固定页规模,可以确定表项中对应的虚拟地址范围,即表项中的虚拟地址范围由固定页规模和表项中的虚拟页号确定,在确定虚拟地址范围之后,可以判断目标虚拟地址是否落入目标表项的虚拟地址范围。
83.具体地,在一些实施例中,静态表项即mtlb(singular-page-size translation lookaside buffer,单一页大小转换后备缓冲区),在表项为静态表项的情况下,固定页规模通过预先设置,表项中包括虚拟页号(即virtual page number),虚拟页号支持设置,表项中的虚拟地址范围为虚拟页号至虚拟页号与固定页规模相加后的页号,该虚拟地址范围包括两个端点的页号(即虚拟页号、虚拟页号与固定页规模相加后的页号),例如,表项中的虚拟页号为0x10000000,固定页规模为0x4000000,则所确定的表项中对应的虚拟地址范围为0x10000000至0x14000000(0x10000000加上0x4000000),该虚拟地址范围包括0x10000000和0x14000000。
84.步骤204、根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
85.本步骤的实现方式与上述步骤104实现过程类似,此处不再赘述。
86.可选地,在一些实施例中,步骤204包括如下子步骤(子步骤2041、子步骤2042、子步骤2043):
87.子步骤2041、获取所述目标物理地址的地址类型。
88.在本技术实施例中,为了访问目标物理地址对应的存储空间,需要线获取目标物理地址的地址类型,以便根据目标物理地址的地址类型,访问对应的存储空间。
89.具体地,在一些实施例中,表项包括物理地址的类型,通过读取目标表项的内容,来获取目标表项中的目标物理地址的地址类型。目标物理地址的地址类型可以包括缓存地址(cached地址)和非缓存地址(uncached地址)。
90.子步骤2042、在所述目标物理地址的地址类型为缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的内部存储空间。
91.在本技术实施例中,在目标物理地址的地址类型为缓存地址的情况下,需要根据目标物理地址,访问目标物理地址对应的服务器的内部存储空间,以完成存空间的访问过程。
92.子步骤2043、在所述目标物理地址的地址类型为非缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的外接设备的存储空间。
93.在本技术实施例中,在目标物理地址的地址类型为非缓存地址的情况下,需要根据目标物理地址,访问目标物理地址对应的服务器的外接设备的存储空间,以完成存空间的访问过程。
94.需要说明的是,服务器的外接设备可以包括硬盘(如pci接口硬盘)、usb(universal serial bus,通用串行总线)设备、网卡等。
95.通过执行子步骤2041至子步骤2043可以实现,根据目标物理地址的地址类型,访问目标物理地址对应的存储空间,即在目标物理地址的地址类型为缓存地址的情况下,需要根据目标物理地址,访问目标物理地址对应的服务器的内部存储空间,在目标物理地址的地址类型为非缓存地址的情况下,需要根据目标物理地址,访问目标物理地址对应的服务器的外接设备的存储空间。
96.需要说明的是,地址类型为缓存地址的物理地址对应的存储空间为服务器的内部存储空间,即服务器的内存,地址类型为非缓存地址的物理地址对应的存储空间为服务器的外接设备的存储空间。
97.可选地,在一些实施例中,服务器的内部存储空间也可以根据地址类型为非缓存地址的物理地址进行访问。
98.可选地,在一些实施例中,所述表项中的虚拟地址具有对应的虚拟地址范围;所述方法还包括:
99.步骤207、在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,获取与所述目标虚拟地址对应的新增物理地址。
100.在本技术实施例中,在获取到目标虚拟地址之后,需要先从数据库中寻找与目标虚拟地址对应的表项,在目标虚拟地址与表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,即在目标虚拟地址不在数据库中任何一个表项的虚拟地址范围的情况下,可以判断数据库中没有与目标虚拟地址对应的表项,则需要进行tlb重填例外,首先需要获取与目标虚拟地址对应的新增物理地址。
101.需要说明的是,新增物理地址可以为多种位数类型的地址,例如新增物理地址为48位物理地址。
102.步骤208、根据所述目标虚拟地址和所述新增物理地址,创建与所述目标虚拟地址对应的新增表项并存储至所述数据库中。
103.在本技术实施例中,在获取到目标虚拟地址对应的新增物理地址之后,可以根据目标虚拟地址和新增物理地址,创建与目标虚拟地址对应的新增表项,然后将新增表项存储至数据库中,以根据新增表项,获取目标物理地址。
104.步骤209、将所述新增表项中的新增物理地址作为所述目标物理地址,并根据所述
目标物理地址访问对应的存储空间。
105.在本技术实施例中,在创建新增表项之后,从数据库中获取新增表项,读取新增表项的内容,以获得新增表项的新增物理地址,将新增物理地址作为目标物理地址,然后访问目标物理地址对应的存储空间,以实现存储空间的访问过程。
106.针对步骤207至步骤209进行举例,例如,目标虚拟地址0x10000000不在数据库中任何一个表项的虚拟地址范围,即目标虚拟地址与表项集合中任何一个表项的虚拟地址范围匹配均未成功,那么进行tlb重填例外,需要先获得与目标虚拟地址0x10000000对应的新增物理地址0x10000000,然后根据目标虚拟地址0x10000000和新增物理地址0x10000000,创建新增表项,在新增表项是动态表项的情况下,新增表项中的虚拟页号设置为0x10000000(即虚拟地址范围包括了0x10000000),页规模可以设置为0x4000000,表项中的新增物理地址设置为0x10000000,则将新增物理地址0x10000000作为目标物理地址,访问目标物理地址0x10000000对应的存储空间。
107.通过本技术实施例可以实现,在目标虚拟地址与表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,需要进行tlb重填例外,以获取到目标物理地址,并根据目标物理地址访问对应的存储空间,从而完成访问请求。
108.可选地,在一些实施例中,所述第一位数类型为64位和64位以下的位数中的任意一种;所述第二位数类型为48位和48位以下的位数中的任意一种。
109.在本技术实施例中,第一位数类型可以为64位和64位以下的位数中的任意一种,例如64位、32位、16位等;第二位数类型可以为48位和48位以下的位数中的任意一种,例如48位、32位、16位等,以形成多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性。
110.可选地,在一些实施例中,表项可以包括第一子表项和第二子表项、第三子表项;参照图3,在表项为动态表项的情况下,第一子表项可以包括虚拟页号(vppn)、页规模(ps)、全局标志位(g)、存在位(asid)、地址空间标识(e)等部分,第二子表项可以包括第一物理页号(ppn0)、第一受限特权等级使能(rplv0)、第一特权等级(plv0)、第一物理地址的类型(mat0)、第一不可执行位(nx0)、第一不可读位(nr0)、第一脏位(d0)、第一有效位(v0)等部分,第三子表项可以包括第二物理页号(ppn1)、第二受限特权等级使能(rplv1)、第二特权等级(plv1)、第二物理地址的类型(mat1)、第二不可执行位(nx1)、第二不可读位(nr1)、第二脏位(d1)、第二有效位(v1)等部分;在表项为静态表项的情况下,第一子表项可以包括虚拟页号(vppn)、全局标志位(g)、存在位(asid)、地址空间标识(e)等部分,第二子表项可以包括第一物理页号(ppn0)、第一受限特权等级使能(rplv0)、第一特权等级(plv0)、第一物理地址的类型(mat0)、第一不可执行位(nx0)、第一不可读位(nr0)、第一脏位(d0)、第一有效位(v0)等部分,第三子表项可以包括第二物理页号(ppn1)、第二受限特权等级使能(rplv1)、第二特权等级(plv1)、第二物理地址的类型(mat1)、第二不可执行位(nx1)、第二不可读位(nr1)、第二脏位(d1)、第二有效位(v1)等部分。
111.其中,在表项为动态表项的情况下,虚拟页号和页规模用于确定表项的虚拟地址范围;在表项为静态表项的情况下,虚拟页号和预设的固定页规模用于确定表项的虚拟地址范围;在表项类型为动态表项或静态表项的表项中,将第一物理页号作为目标物理地址。
112.具体地,在一些实施例中,在表项类型为动态表项的表项中,存在位的大小为1比
特,表示所在tlb表项非空,可以参与和目标虚拟地址的匹配;地址空间标识的大小为10比特,地址空间标识用于区分不同进程中的相同的虚拟地址,如果不设置地址空间标识,则不能对不同进程中的相同的虚拟地址作以区分,例如对于具有相同的虚拟地址的进程a和进程b,进程a和进程b具有不同的物理地址,从进程a切换至进程b时,需要将进程a对应的tlb进行清空,以避免因进程a和进程b具有相同的虚拟地址,而导致运行进程b时根据该虚拟地址使用进程a的tlb表映射到进程a的物理地址的错误情况发生;且在下一次运行进程a时需要重新建立进程a的tlb,因此,设置地址空间标识,可以避免进程切换时清空被切换进程的tlb造成的资源损失,以及再次运行被切换进程时需要重新建立被切换进程的tlb造成的运行效率下降。
113.服务器的操作系统为每个进程分配唯一的地址空间标识,在进行目标虚拟地址与目标表项中的虚拟地址范围匹配的同时,还需要将目标虚拟地址对应的地址空间标识与目标表项中的地址空间标识进行匹配,在目标虚拟地址落入目标表项中的虚拟地址范围,且目标虚拟地址对应的地址空间标识与目标表项中的地址空间标识相同的情况下,根据目标表项中的目标物理地址访问对应的存储空间;其余部分说明如下表(表1)所示:
[0114][0115]
表1
[0116]
在表项类型为静态表项的表项中,各个部分的说明类似,此处不再赘述。
[0117]
可选地,参照图4,在一些实施例中,存储空间访问流程包括:
[0118]
x1、bios启动;
[0119]
x2、创建表项,即根据每个虚拟地址和对应的一个所述物理地址,创建每个虚拟地址对应的表项,并将每个表项存储于数据库中;
[0120]
x3、获取目标虚拟地址,即响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;
[0121]
x4、判断转换后备缓冲区是否命中;
[0122]
x5、在转换后备缓冲区没有命中的情况下,进入异常入口处理,即在目标虚拟地址
不在数据库中任何一个表项的虚拟地址范围的情况下,进入异常处理函数处理,进行tlb重填例外;
[0123]
x6、新增表项,即创建与目标虚拟地址对应的新增表项并存储至数据库中;
[0124]
x7、在转换后备缓冲区命中的情况下,判断目标物理地址的地址类型是缓存地址还是非缓存地址;
[0125]
x8、在目标物理地址的地址类型为非缓存地址的情况下,访问服务器的外接设备的存储空间;
[0126]
x9、在目标物理地址的地址类型为缓存地址的情况下,访问服务器的内部存储空间。
[0127]
综上所述,在本技术实施例中,通过在bios启动以及运行的情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型的情况下,从与目标虚拟地址对应的目标表项中,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于bios的存储空间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
[0128]
图5是本技术实施例提供的一种存储空间访问装置的框图,如图5所示,该装置300包括:
[0129]
第一获取模块301,用于在bios启动以及运行的情况下,获取表项集合,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;
[0130]
第二获取模块302,用于响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;
[0131]
第三获取模块303,用于在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;
[0132]
访问模块304,用于根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
[0133]
可选地,所述表项中的虚拟地址具有对应的虚拟地址范围;
[0134]
第三获取模块303,具体包括:
[0135]
第一获取子模块,用于在所述目标虚拟地址为所述第一位数类型的情况下,将所述目标虚拟地址与所述目标表项中的虚拟地址范围进行匹配,获取匹配结果;
[0136]
第二获取子模块,用于从所述目标表项中,获取所述匹配结果关联映射的第二位数类型的目标物理地址。
[0137]
可选地,在所述表项为动态表项的情况下,所述表项包括动态设定的虚拟页号和页规模,该装置300还包括:
[0138]
第一虚拟地址范围模块,用于根据所述表项中的虚拟页号和页规模,确定所述虚拟地址范围。
[0139]
可选地,在所述目标表项为静态表项的情况下,所述表项包括动态设定的虚拟页号,该装置300还包括:
[0140]
第二虚拟地址范围模块,用于根据预设的固定页规模和所述表项中的虚拟页号,确定所述表项中对应的虚拟地址范围。
[0141]
可选地,该装置300还包括:
[0142]
第四获取模块,用于在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,获取与所述目标虚拟地址对应的新增物理地址;
[0143]
第一创建模块,用于根据所述目标虚拟地址和所述新增物理地址,创建与所述目标虚拟地址对应的新增表项并存储至所述数据库中;
[0144]
新增物理地址访问模块,用于将所述新增表项中的新增物理地址作为所述目标物理地址,并根据所述目标物理地址访问对应的存储空间。
[0145]
可选地,访问模块304,具体包括:
[0146]
第三获取子模块,用于获取所述目标物理地址的地址类型;
[0147]
第一访问子模块,用于在所述目标物理地址的地址类型为缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的内部存储空间;
[0148]
第二访问子模块,用于在所述目标物理地址的地址类型为非缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的外接设备的存储空间。
[0149]
可选地,该装置300还包括:
[0150]
第二创建模块,用于在所述bios启动的情况下,根据每个所述虚拟地址和对应的一个所述物理地址,创建每个所述虚拟地址对应的表项,并将每个所述表项存储于所述数据库中;
[0151]
构建模块,用于根据所述数据库中所有的表项,构建获得所述表项集合。
[0152]
可选地,所述第一位数类型为64位和64位以下的位数中的任意一种;所述第二位数类型为48位和48位以下的位数中的任意一种。
[0153]
本技术实施例中的存储空间访问装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
[0154]
本技术实施例中的存储空间访问装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
[0155]
本技术实施例提供的存储空间访问装置能够实现图1的方法实施例中存储空间访问装置实现的各个过程,为避免重复,这里不再赘述。
[0156]
通过本技术实施例可以实现基于bios的存储空间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
[0157]
可选地,本技术实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述存储空间访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0158]
需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
[0159]
图6为实现本技术实施例的一种电子设备的硬件结构示意图。
[0160]
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、以及处理器410等部件。
[0161]
本领域技术人员可以理解,电子设备400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
[0162]
其中,处理器410,用于在bios启动以及运行的情况下,获取表项集合,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;
[0163]
响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;
[0164]
在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;
[0165]
根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。
[0166]
在本技术实施例中,通过在bios启动以及运行的情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型的情况下,从与目标虚拟地址对应的目标表项中,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于bios的存储空间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
[0167]
可选地,所述表项中的虚拟地址具有对应的虚拟地址范围;处理器410,还用于在所述目标虚拟地址为所述第一位数类型的情况下,将所述目标虚拟地址与所述目标表项中的虚拟地址范围进行匹配,获取匹配结果;从所述目标表项中,获取所述匹配结果关联映射的第二位数类型的目标物理地址。
[0168]
可选地,在所述表项为动态表项的情况下,所述表项包括动态设定的虚拟页号和
页规模,处理器410,还用于根据所述表项中的虚拟页号和页规模,确定所述虚拟地址范围。
[0169]
可选地,在所述目标表项为静态表项的情况下,所述表项包括动态设定的虚拟页号,处理器410,还用于根据预设的固定页规模和所述表项中的虚拟页号,确定所述表项中对应的虚拟地址范围。
[0170]
可选地,所述表项中的虚拟地址具有对应的虚拟地址范围;处理器410,还用于在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,获取与所述目标虚拟地址对应的新增物理地址;根据所述目标虚拟地址和所述新增物理地址,创建与所述目标虚拟地址对应的新增表项并存储至所述数据库中;将所述新增表项中的新增物理地址作为所述目标物理地址,并根据所述目标物理地址访问对应的存储空间。
[0171]
可选地,处理器410,还用于获取所述目标物理地址的地址类型;在所述目标物理地址的地址类型为缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的内部存储空间;在所述目标物理地址的地址类型为非缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的外接设备的存储空间。
[0172]
可选地,处理器410,还用于在所述bios启动的情况下,根据每个所述虚拟地址和对应的一个所述物理地址,创建每个所述虚拟地址对应的表项,并将每个所述表项存储于所述数据库中;根据所述数据库中所有的表项,构建获得所述表项集合。
[0173]
可选地,所述第一位数类型为64位和64位以下的位数中的任意一种;所述第二位数类型为48位和48位以下的位数中的任意一种。
[0174]
在本技术实施例中,通过在bios启动以及运行的情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型的情况下,从与目标虚拟地址对应的目标表项中,获取与目标虚拟地址对应映射的第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于bios的存储空间访问,且由于虚拟地址的位数类型包括多种第一位数类型,可支持多种位数类型的虚拟地址和物理地址的映射关系,提高了访问存储空间的方式的多样性,解决了在先技术中由于映射关系中的虚拟地址的位数类型固定,导致访问存储空间的方式受限的问题。
[0175]
应理解的是,本技术实施例中,输入单元404可以包括图形处理器(graphics processing unit,gpu)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元406可包括显示面板4061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板4061。用户输入单元407包括触控面板4071以及其他输入设备4072中的至少一种。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0176]
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个
功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器409可以包括易失性存储器或非易失性存储器,或者,存储器409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本技术实施例中的存储器409包括但不限于这些和任意其它适合类型的存储器。
[0177]
处理器410可包括一个或多个处理单元;可选的,处理器410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
[0178]
本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述存储空间访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0179]
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0180]
本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述存储空间访问方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0181]
应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
[0182]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0183]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
技术特征:
1.一种存储空间访问方法,其特征在于,所述方法包括:在bios启动以及运行的情况下,获取表项集合;所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。2.根据权利要求1所述的方法,其特征在于,所述表项中的虚拟地址具有对应的虚拟地址范围;所述在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址,包括:在所述目标虚拟地址为所述第一位数类型的情况下,将所述目标虚拟地址与所述目标表项中的虚拟地址范围进行匹配,获取匹配结果;从所述目标表项中,获取所述匹配结果关联映射的所述第二位数类型的目标物理地址。3.根据权利要求2所述的方法,其特征在于,在所述表项为动态表项的情况下,所述表项包括动态设定的虚拟页号和页规模,所述方法还包括:根据所述表项中的虚拟页号和页规模,确定所述虚拟地址范围。4.根据权利要求2所述的方法,其特征在于,在所述目标表项为静态表项的情况下,所述表项包括动态设定的虚拟页号,所述方法还包括:根据预设的固定页规模和所述表项中的虚拟页号,确定所述虚拟地址范围。5.根据权利要求1所述的方法,其特征在于,在所述bios启动的情况下,获取所述表项集合的步骤,包括:在所述bios启动的情况下,根据每个所述虚拟地址和对应的一个所述物理地址,创建每个所述虚拟地址对应的表项,并将每个所述表项存储于既定的数据库中;根据所述数据库中所有的表项,构建获得所述表项集合。6.根据权利要求5所述的方法,其特征在于,所述表项中的虚拟地址具有对应的虚拟地址范围;所述方法还包括:在所述目标虚拟地址与所述表项集合中任何一个表项的虚拟地址范围匹配均未成功的情况下,获取与所述目标虚拟地址对应的新增物理地址;根据所述目标虚拟地址和所述新增物理地址,创建与所述目标虚拟地址对应的新增表项并存储至所述数据库中;将所述新增表项中的新增物理地址作为所述目标物理地址,并根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。7.根据权利要求1所述的方法,其特征在于,所述根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求,包括:获取所述目标物理地址的地址类型;在所述目标物理地址的地址类型为缓存地址的情况下,根据所述目标物理地址,访问
所述目标物理地址对应的服务器的内部存储空间;在所述目标物理地址的地址类型为非缓存地址的情况下,根据所述目标物理地址,访问所述目标物理地址对应的服务器的外接设备的存储空间。8.一种存储空间访问装置,其特征在于,所述装置包括:第一获取模块,用于在bios启动以及运行的情况下,获取表项集合,所述表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,所述虚拟地址的位数类型包括多种第一位数类型,所述物理地址的位数类型包括多种第二位数类型;第二获取模块,用于响应于中央处理器的访问请求,获取所述访问请求中的目标虚拟地址;第三获取模块,用于在所述目标虚拟地址为所述第一位数类型的情况下,从与所述目标虚拟地址对应的目标表项中,获取与所述目标虚拟地址对应映射的第二位数类型的目标物理地址;访问模块,用于根据所述目标物理地址访问对应的存储空间,从而完成所述访问请求。9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至7中任一项所述的存储空间访问方法的步骤。10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至7中任一项所述的存储空间访问方法的步骤。
技术总结
本申请公开了一种存储空间访问方法、装置、设备及存储介质,涉及计算机固件开发技术领域,包括:在BIOS启动及运行情况下,获取表项集合,表项集合中的各表项用于记录虚拟地址与物理地址的映射关系,虚拟地址的位数类型包括多种第一位数类型,物理地址的位数类型包括多种第二位数类型;响应于访问请求,获取访问请求中的目标虚拟地址;在目标虚拟地址为第一位数类型情况下,从第一位数类型的目标表项中,获取第二位数类型的目标物理地址;根据目标物理地址访问对应的存储空间,从而完成访问请求,以实现基于BIOS的存储空间访问,且支持多种位数类型虚拟地址和物理地址的映射关系,解决了在先技术中访问存储空间的方式受限的问题。题。题。
技术研发人员:钱东彦 王玉龙 李超
受保护的技术使用者:龙芯中科(辽宁)技术有限公司
技术研发日:2023.05.17
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:基于拖曳线列阵的流噪声数值分析方法及系统 下一篇:一种快捷密封圈粘接装置的制作方法