一种内存访问系统、方法及介质与流程

文档序号:33551791发布日期:2023-03-22 10:47阅读:28来源:国知局
1.本技术涉及数据处理
技术领域
:,尤其涉及一种内存访问系统、方法及介质。
背景技术
::2.系统级芯片(systemonchip,soc)作为一种由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其空间中32位中央处理器(centralprocessingunit,cpu)与64位cpu共存,并且内存空间通常大于4g。其中,64位cpu可以使用物理地址访问所有内存空间,但32位cpu仅可以使用物理地址访问4g大小的内存空间。3.现有技术中针对上述问题的解决方法,仅能解决部分32位cpu访问高于4g的内存空间的问题,无法适用于全部32位cpu。因此,目前部分特定架构的32位cpu仍无法访问高于4g的内存空间。技术实现要素:4.本技术提供了一种内存访问系统、方法及介质,通过将内存管理器挂载在处理器下,利用内存管理器将处理器的虚拟地址转换为待访问内存的物理地址,使上述特定架构的32位cpu能够访问高于4g内存空间。5.第一方面,本技术实施例提供一种内存访问系统,包括:至少一个处理器,用于发送内存访问请求以访问大于上述处理器可访问的物理地址空间的内存,上述内存访问请求中包括虚拟地址以及与上述处理器对应的标识信息;内存管理器,与上述至少一个处理器相连接,用于根据任一处理器发送的内存访问请求中的标识信息,确定与上述任一处理器对应的目标翻译页表,根据上述目标翻译页表将接收的内存访问请求中的虚拟地址转换为对应的待访问内存的物理地址,其中上述处理器的虚拟地址对应虚拟地址空间小于待访问内存的物理地址对应的物理地址空间;存储系统,通过总线与上述内存管理器相连接,用于接收上述内存管理器发送的携带物理地址的内存访问请求,从待访问内存中获取与上述物理地址对应的数据,并发送给上述内存管理器。6.上述内存访问系统,通过内存管理器将内存访问请求中的虚拟地址转换为与待访问内存对应的物理地址,实现了利用32位处理器访问高于4g的内存空间的效果。7.一种可选的实施方式为,上述内存管理器包括翻译控制单元(translationlookasidebuffer,简称tcu)、至少一个翻译缓冲单元(translationbufferunit,简称tbu)以及与每个翻译缓冲单元对应的连接翻译缓冲单元和上述翻译控制单元的分布式传输接口(distributedtranslationinterface,简称dti);其中,每个处理器与至少一个上述翻译缓冲单元相连接,每个翻译缓冲单元连接唯一的处理器;每个翻译缓冲单元,用于接收与上述翻译缓冲单元连接的处理器发送的内存访问请求,确定页表缓冲区(translationlookasidebuffer,简称tlb)中存在于上述处理器对应的流表项(streamtableentry,简称ste)时,根据上述流表项中的目标翻译页表,将上述处理器发送的内存访问请求中的虚拟地址转换为与上述存储系统中待访问内存对应的物理地址,并发送给上述存储系统;上述翻译控制单元,用于在任一翻译缓冲单元确定页表缓冲区中不存在于上述处理器对应的流表项时,从上述存储系统的流表项存储区域中查找与上述处理器对应的流表项,并将查找到的流表项发送给上述任一翻译控制单元。8.一种可选的实施方式为,上述标识信息中包含用于标识发送上述内存访问请求的处理器的第一标识信息;上述翻译缓冲单元用于:接收与上述翻译缓冲单元连接的处理器发送的内存访问请求,从页表缓冲区查找与上述处理器对应的流表项;其中,确定从上述页表缓冲区中未查找与上述处理器对应的流表项时,从上述翻译控制单元中获取与上述处理器对应的流表项;确定从上述页表缓冲区中查找到与上述处理器对应的流表项时,根据查找到的流表项确定与上述处理器对应的地址转换模式,并根据上述地址转换模式,确定与上述处理器对应目标翻译页表。9.一种可选的实施方式为,上述翻译控制单元用于:接收上述任一翻译缓存单元发送的流表项获取请求,根据上述流表项获取请求中携带的第一标识信息,从上述存储系统的流表项存储区域中查找与上述处理器对应的流表项;查找到与上述处理器对应的流表项时,将查找到的流表项发送给上述任一翻译缓存单元。10.一种可选的实施方式为,上述地址转换模式为第一转换模式时,上述标识信息中还包括用于确定上述处理器对应的目标上下文描述符(contextdescriptor,简称cd)的第二标识信息,上述翻译缓冲单元具体用于:根据上述第二标识信息,从上述流表项存储的多个上下文描述符中,确定与上述处理器对应的目标上下文描述符;根据上述目标上下文描述符中的指针确定与上述处理器对应的目标翻译页表。11.一种可选的实施方式为,上述地址转换模式为第二转换模式时,上述翻译缓冲单元具体用于:从上述流表项中确定与上述处理器对应的目标翻译页表的目标基地址;根据上述目标基地址确定上述处理器对应的目标翻译页表。12.一种可选的实施方式为,上述地址转换模式为第三转换模式时,上述标识信息中还包括用于确定上述处理器对应的目标上下文描述符的第二标识信息,上述目标翻译页表包括用于将上述处理器的虚拟地址转换为中间地址的第一翻译页表和用于将上述处理器对应的中间地址转换为待访问内存的物理地址的第二翻译页表;上述翻译缓冲单元具体用于:根据上述第二标识信息,从上述流表项存储的多个上下文描述符中,确定与上述处理器对应的目标上下文描述符;根据上述目标上下文描述符中的指针确定与上述处理器对应的第一翻译页表;从上述流表项中确定与上述处理器对应的第二翻译页表的目标基地址;根据上述目标基地址确定上述处理器对应的第二翻译页表。13.第二方面,本技术实施例提供一种内存访问方法,应用于上述内存访问系统中的内存管理器,该方法包括:接收目标处理器发送的内存访问请求,上述内存访问请求中包括虚拟地址以及与上述目标处理器对应的标识信息;根据上述标识信息,从翻译页表集合中查找与上述目标处理器对应的目标翻译页表;上述翻译页表集合中存储有至少一个处理器的虚拟地址与对应的待访问内存的物理地址之间的映射关系,其中上述至少一个处理器的虚拟地址对应虚拟地址空间小于对应的待访问内存的物理地址对应的物理地址空间;根据上述目标翻译页表中的映射关系,将上述内存访问请求中的虚拟地址转换为待访问内存的物理地址;将携带上述待访问内存的物理地址的内存访问请求发送给上述存储系统,以使上述存储系统根据上述待访问内存的物理地址,获取待访问内存中与上述物理地址对应的数据,并发送给上述内存管理器。14.上述方法,针对目前部分特定架构的32位cpu无法访问高于4g的空间问题,将内存管理器挂载在处理器下,通过配置虚拟地址和物理地址的映射关系,将高位物理地址映射到低于4gb的虚拟地址上,将该部分32位处理器内存访问请求中的虚拟地址转换为与待访问内存对应的物理地址,处理器仅对虚拟地址进行访问即可实现对高位地址进行访问,使该特定架构的32位处理器能够访问高于4g内存空间。15.一种可选的实施方式为,接收目标处理器发送的内存访问请求前,还包括:接收对上述目标处理器对应的目标翻译页表进行刷新的指示,上述指示中包括上述目标处理器对应的虚拟地址与对应的待访问内存的物理地址之间的第一映射关系;利用上述第一映射关系,对上述翻译页表集合中与上述处理器对应的目标翻译页表中的映射关系进行刷新。16.上述方法,在接受内存访问请求前,根据目标处理器对应的目标翻译页表刷新指示携带的映射关系,对当前目标翻译页表进行刷新,保证了后续内存访问过程中地址转换结果的准确性。17.第三方面,本技术实施例提供一种内存访问装置,该装置包括:接收单元,用于接收目标处理器发送的内存访问请求,上述内存访问请求中包括虚拟地址以及与上述目标处理器对应的标识信息;确定单元,用于根据上述标识信息,从翻译页表集合中查找与上述目标处理器对应的目标翻译页表;上述翻译页表集合中存储有至少一个处理器的虚拟地址与对应的待访问内存的物理地址之间的映射关系,其中上述至少一个处理器的虚拟地址对应虚拟地址空间小于对应的待访问内存的物理地址对应的物理地址空间;转换单元,用于根据上述目标翻译页表中的映射关系,将上述内存访问请求中的虚拟地址转换为待访问内存的物理地址;发送单元,用于将携带上述待访问内存的物理地址的内存访问请求发送给上述存储系统,以使上述存储系统根据上述待访问内存的物理地址,获取待访问内存中与上述物理地址对应的数据,并发送给上述内存管理器。18.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述第二方面中内存访问方法的任一步骤。19.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,计算机程序存储在计算机可读存储介质中;当内存访问设备的处理器从计算机可读存储介质读取计算机程序时,处理器执行计算机程序,使得内存访问设备执行上述第二方面中内存访问方法中的任一步骤。附图说明20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。21.图1为本技术实施例提供的一种处理器访问范围的示意图;22.图2为本技术实施例提供的一种内存访问系统的示意图;23.图3为本技术实施例提供的一种内存访问方法效果的示意图;24.图4为本技术实施例提供的一种内存访问方法的流程示意图;25.图5为本技术实施例提供的一种内存管理器预先配置过程的示意图;26.图6为本技术实施例提供的一种页表刷新方法的流程示意图;27.图7为本技术实施例提供的一种内存访问装置的示意图;28.图8为本技术实施例提供的一种电子设备的示意图。具体实施方式29.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。30.本技术实施例描述的应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。31.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。32.图1为本技术实施例提供的一种处理器访问范围的示意图。如图1所示,在soc空间中32位cpu与64位cpu共存,64位cpu可以使用物理地址访问36g大小的空间,而32位cpu仅可以使用物理地址访问4g大小的内存空间。由于内存空间通常大于4g,因此32位cpu通常无法使用物理地址访问全部内存空间。33.而在芯片设计中,bootrom作为引导程序,一般以固件的形式烧录在rom中,并运行在一个32位的cpu中。由于运行该bootrom引导程序的cpu仅能访问与32位地址宽度对应的4g空间,无法访问内存空间中的其他空间,因此需要一种新的设计方案来重新规划地址的映射。34.基于上述问题,本技术的至少一个实施例提出了一种内存访问系统、方法及介质,针对特定架构的cpu,例如不具有内存管理单元(memorymanagementunit,mmu)的32位cpu,通过将额外设置的内存管理器挂载在处理器下,重建虚拟地址和物理地址的映射关系,那么就能够利用新增加的内存管理器从虚拟地址到物理地址的地址转换功能,将处理器发送的内存访问请求中携带的虚拟地址转换为待访问内存的物理地址,达到利用低位处理器访问高位内存空间的效果。35.图2为本技术实施例提供的一种内存访问系统的示意图,如图2所示,本技术实施例中提供的内存访问系统,包括至少一个处理器201、内存管理器202和存储系统203。36.至少一个处理器201,用于发送内存访问请求以访问大于该处理器201可访问的物理地址空间的内存,内存访问请求中包括虚拟地址以及与该处理器201对应的标识信息。上述处理器包括但不限于cpu。37.内存管理器202,与至少一个处理器201相连接,用于根据任一处理器201发送的内存访问请求中的标识信息,确定与任一处理器对应的目标翻译页表,根据目标翻译页表将接收的内存访问请求中的虚拟地址转换为对应的待访问内存的物理地址,其中,处理器的虚拟地址对应虚拟地址空间小于待访问内存的物理地址对应的物理地址空间。38.一种可选实施方式中,上述内存管理器202部署于处理器与总线之间,实现虚拟地址到物理地址的转换。在进行地址转换过程中,从输入地址到输出地址的地址转换被描述为地址转换的一个阶段(stage),其具体可配置以下几种地址转换模式:旁路(bypass)模式:该模式下不做任何转换,输入地址直接作为物理地址访问。阶段一(stage1)模式:将输入的虚拟地址转化为物理地址或中间物理地址(ipa)。阶段二(stage2)模式:将输入的虚拟地址或者中间物理地址转化为物理地址。阶段一和阶段二(stage1andstage2)模式:在stage1将虚拟地址转化为中间物理地址,然后中间物理地址作为stage2的输入,再转化为实际物理地址。39.存储系统203,通过总线204与内存管理器202相连接,用于接收内存管理器202发送的携带物理地址的内存访问请求,从待访问内存中获取与物理地址对应的数据,并发送给内存管理器202。40.以下以一种可能的内存管理器的形式为例,对本技术实施例中上述内存访问系统的工作原理进行阐述。41.在一些可选的实施方式中,如图2所示,上述内存管理器202包括翻译控制单元2023、至少一个翻译缓冲单元2021以及与每个翻译缓冲单元2021对应的连接翻译缓冲单元2021和上述翻译控制单元2023的分布式传输接口2022;42.其中,每个处理器201与至少一个上述翻译缓冲单元2021相连接,每个翻译缓冲单元2021连接唯一的处理器201;即,每个翻译缓冲单元2021对应由唯一的处理器201,但一个处理器201可以与多个翻译缓冲单元2021相连接。43.每个翻译缓冲单元2021,用于接收与上述翻译缓冲单元2021连接的处理器201发送的内存访问请求,确定页表缓冲区中存在于上述处理器201对应的流表项(用于存储用于存放页表文件,即虚拟地址va到物理地址pa的转换表)时,根据上述流表项中的目标翻译页表,将上述处理器201发送的内存访问请求中的虚拟地址转换为与上述存储系统中待访问内存对应的物理地址,并通过总线204发送给上述存储系统203。44.具体地,上述内存管理器202中的每个翻译缓冲单元2021与处理器中的总线接口,如图2所示的总线接口sp1(systemport1,系统总线接口1)相连接,上述内存管理器202中的每个翻译缓冲单元2021以及翻译控制单元2023分别与总线相连接,同时总线与存储系统相连接,在具体实施中,处理器通过直接内存访问(directmemoryaccess,dma)请求将虚拟地址发送给内存管理器202,通过内存管理器202将虚拟地址转换为待访问内存的物理地址,并通过总线访问存储系统中与物理地址对应的内存空间。45.上述直接内存访问是一种不通过处理器而直接与系统内存交换数据的接口技术,由于dma不能实现虚拟地址的转换,因此dma需要真实的物理地址,当需要连续内存时,对应的也是实际的连续物理地址。46.当处理器201存在访问内存的需求时,向上述内存管理器202发送内存访问请求,在一些可能的实施方式中,该内存访问请求可以为dma请求,并在请求中携带与待访问内存的物理地址对应的虚拟地址,以及该处理器对应的标识信息。47.在一些可选的实施方式中,上述标识信息中包含用于标识发送上述内存访问请求的处理器的第一标识信息,在一些可选的实施方式中,上述第一标识信息为sid(streamid,流的id号)。48.在内存管理器202接收到上述内存访问请求后,可根据上述第一标识信息确定该内存访问请求所对应的处理器,例如,假设存在3个处理器,即处理器1、处理器2以及处理器3,当内存管理器202接受到处理器1发送的内存访问请求后,可根据该内存访问请求中的标识信息确定发送该请求的处理器为处理器1。49.上述翻译缓冲单元2021用于接收与之连接的处理器201发送的内存访问请求,确定页表缓冲区中是否存在与上述处理器201对应的流表项,并根据流表项确定目标翻译页表。具体的,接收与上述翻译缓冲单元连接的处理器发送的内存访问请求,从页表缓冲区查找与上述处理器对应的流表项;确定从上述页表缓冲区中未查找与上述处理器对应的流表项时,从上述翻译控制单元中获取与上述处理器对应的流表项;确定从上述页表缓冲区中查找到与上述处理器对应的流表项时,根据查找到的流表项确定与上述处理器对应的地址转换模式,并根据上述地址转换模式,确定与上述处理器对应目标翻译页表。50.上述翻译缓冲单元2021的页表缓冲区用于缓存页表文件,其中缓存有与翻译缓冲单元2021连接的处理器对应的流表项,因此,当翻译缓冲单元2021接收到内存访问请求后,首先从该tlb中确定是否存在与该第一标识信息对应的ste,在查找到该ste时,即可从中确定与处理器对应的地址转换模式。51.翻译控制单元2023通过总线204与存储系统203相连接,用于在任一翻译缓存单元2021确定页表缓冲区中不存在于处理器对应的流表项时,从存储系统203的流表项存储区域中查找与处理器对应的流表项,并将查找到的流表项发送给任一翻译控制单元2023。具体的,接收任一翻译缓存单元2021发送的流表项获取请求,根据流表项获取请求中携带的第一标识信息,从存储系统203的流表项存储区域中查找与处理器201对应的流表项;查找到与处理器201对应的流表项时,将查找到的流表项发送给任一翻译缓存单元2021。52.在一些实施例中,当翻译缓存单元从该页表缓冲区中确定是否存在与该处理器对应的流表项时,确定从页表缓冲区中未查找与该处理器对应的流表项时,向翻译控制单元发送流表项获取请求,请求中携带的第一标识信息,翻译控制单元接收到该流表项获取请求中,从存储系统中的流表项存储区域查找与第一标识信息对应的流表项;其中,上述存储系统中流表项存储区域中存储有预先设置的各个处理器对应的流表项。查找到与第一标识信息对应的流表项后,将流表项发送给翻译缓存单元,使翻译缓存单元将其存储到页表缓冲区中,并根据该流表项确定与处理器对应的地址转换模式。53.需要说明的是,上述与处理器对应的地址转换模式为内存管理器202初始化配置过程中预先定义的,具体的,通过对流表项中config字段的定义规定了与目标处理器对应的地址转换模式。54.本技术实施例中,上述地址转换模式包括四种,分别为第一地址转换模式(即stage1模式),第二地址转换模式(即stage2模式)第三地址转换模式(即stage1andstage2模式)以及第四地址转换模式(即bypass模式)。55.在具体实施中,上述处理器对应的地址转换模式根据待访问内存的地址空间确定,当处理器访问的内存空间在处理器的物理地址对应的范围外时,设置其对应的地址转换模式为第一地址转换模式、第二转换模式或第三转换模式(具体可根据需求进行设置),需要说明的是,上述第四地址转换模式仅用于在处理器访问的内存空间在处理器的物理地址对应的范围内时,即无需进行地址转换时。56.例如,在32位处理器访问大于4g地址空间以内的地址空间时,如64位地址,可采用第一地址转换模式、第二转换模式或第三转换模式,通过配置内存管理器202将高地址映射到低于4gb的虚拟地址上,使处理器通过虚拟地址进行访问,如图3所示。当32位处理器访问采用小于4g的地址空间时,可采用第一四转换模式,无需通过内存管理器202进行页表查找以及地址转换。57.上述系统,针对特定架构的32位处理器无法访问高于4g的空间的问题,通过将内存管理器挂载在处理器下,使用内存管理器来重建地址映射关系,通过配置该内存管理器将高地址映射到低于上述特定架构的32位处理器4gb的虚拟地址上,处理器仅对虚拟地址进行访问;内存管理器接收到来自处理器的内存访问请求后,针对虚拟地址进行页表查找及转化,完成对高地址空间的访问,从而实现了利用上述特定架构的32位处理器访问高于4g的空间的效果。58.以下对本技术实施例中上述第一转换模式、第二转换模式、第三转换模式以及第四转换模式时,翻译缓冲单元将内存访问请求中虚拟地址转换为待访问内存物理地址的过程进行详细阐述。59.当上述地址转换模式为第一转换模式时,标识信息中还包括用于确定处理器对应的目标上下文描述符的第二标识信息,在一些可选的实施方式中,上述第二标识信息可以为ssid(substreamid,子流的id),用于当ste中存储的多个cd中确定与处理器对应的cd。60.实施中,翻译缓冲单元应用根据地址转换模式,确定与处理器对应目标翻译页表,具体地:根据第二标识信息,从流表项存储的多个上下文描述符中,确定与处理器对应的目标上下文描述符;根据目标上下文描述符中的指针确定与处理器对应的目标翻译页表。61.需要说明的是,上述ste中可能存在一个cd,也可能存在多个cd,当仅存在一个cd时,直接将该cd确定为与对应的cd,而无需利用第二标识信息确定。62.根据确定的cd中的指针确定与处理器对应的目标翻译页表,并根据目标翻译页表中存储的处理器的虚拟地址与待访问内存的物理地址的映射关系,确定与虚拟地址对应的物理地址。63.上述cd是一个特定格式的数据结构,包含了指向stage1地址翻译页表的基地址指针,根据该基地址指针,可与确定与处理器对应的目标翻译页表,目标翻译页表中存储有虚拟地址与物理地址的映射关系。64.具体实施中,在stage1(第一转换模式)地址翻译阶段,首先通过sid索引到ste,然后用ssid索引到cd,cd里面包含了stage1地址翻译过程中需要的页表基地址信息等。在stage1翻译的过程中,多个cd对应着多个stage1的地址翻译,通过ssid确定对应的stage1地址翻译页表,再根据翻译页表中存储的虚拟地址与物理地址的映射关系,进行地址的转换。65.当地址转换模式为第二转换模式时,翻译缓冲单元用于根据地址转换模式,确定与处理器对应目标翻译页表。具体的,从流表项中确定与处理器对应的目标翻译页表的目标基地址;根据目标基地址确定处理器对应的目标翻译页表。66.在确定目标翻译页表后,根据翻译页表中存储的处理器的虚拟地址与待访问内存的物理地址的映射关系,确定与虚拟地址对应的物理地址。67.具体实施中,在stage2(第二转换模式)地址翻译阶段,ste中包含了stage2地址翻译的翻译页表基地址等信息,在确定与处理器对应的ste后,根据其中的翻译页表基地址的信息确定与之对应的翻译页表,再根据翻译页表中存储的虚拟地址与物理地址的映射关系,进行地址的转换。68.在地址转换模式为第三转换模式时,标识信息中还包括用于确定处理器对应的目标上下文描述符的第二标识信息,目标翻译页表包括用于将处理器的虚拟地址转换为中间地址的第一翻译页表和用于将处理器对应的中间地址转换为待访问内存的物理地址的第二翻译页表。69.实施中,翻译缓冲单元用于根据地址转换模式,确定与处理器对应目标翻译页表,具体的,根据第二标识信息,从流表项存储的多个上下文描述符中,确定与处理器对应的目标上下文描述符;根据目标上下文描述符中的指针确定与处理器对应的第一翻译页表;从流表项中确定与处理器对应的第二翻译页表的目标基地址;根据目标基地址确定处理器对应的第二翻译页表。70.具体实施中,在stage1andstage2(第三转换模式)地址翻译阶段,首先利用stage1方式将虚拟地址转换为中间地址,再利用stage2方式将中间地址转换为物理地址,具体的转换过程可参见上述stage1(第一转换模式)以及stage2(第二转换模式)的转换过程,此处不再赘述。71.当上述地址转换模式为第四转换模式时,上述翻译缓冲单元用于根据地址转换模式,将内存访问请求中的虚拟地址转换为待访问内存的物理地址,具体地,上述翻译缓冲单元将内存访问请求中的虚拟地址直接确定为待访问内存的物理地址。72.即采用bypass方式直通,无需通过内存管理器202进行页表查找以及地址转换,直接将虚拟地址作为待访问内存的物理地址,对待访问内存进行访问。73.需要说明的是,当采用上述第四转化模式时,无需确定与目标处理器对应的目标翻译页表,即无需对目标处理器的虚拟地址进行转换,直接将其作为待访问内存的物理地址。74.图4为本技术实施例提供的一种内存访问方法的流程示意图;如图4所示,本技术实施例提供了一种内存访问方法,应用于上述内存访问系统的内存管理器,具体包括:75.步骤401,接收目标处理器发送的内存访问请求,上述内存访问请求中包括虚拟地址以及与上述目标处理器对应的标识信息;76.步骤402,根据上述标识信息,从翻译页表集合中查找与上述目标处理器对应的目标翻译页表;上述翻译页表集合中存储有至少一个处理器的虚拟地址与对应的待访问内存的物理地址之间的映射关系,其中上述至少一个处理器的虚拟地址对应虚拟地址空间小于对应的待访问内存的物理地址对应的物理地址空间;77.步骤403,根据上述目标翻译页表中的映射关系,将上述内存访问请求中的虚拟地址转换为待访问内存的物理地址;78.步骤404,将携带上述待访问内存的物理地址的内存访问请求发送给上述存储系统,以使上述存储系统根据上述待访问内存的物理地址,获取待访问内存中与上述物理地址对应的数据,并发送给上述内存管理器。79.上述内存访问方法的具体步骤请参见上述对内存访问系统的工作原理的描述,此处不再赘述。80.本技术实施例提供的内存访问方法,在使用内存管理器202进行地址转换之前,还需要进行如图5所示的过程,具体包括:定义软件接口501、进行内存管理器配置502以及页表更新503三部分。81.对于定义软件接口501部分,首先需要声明一些数据结构,以及一些函数接口;在内存管理器配置阶段,需要根据用户需求来配置寄存器,包括内存管理器基地址,页表空间基地址,streamid,安全性等;页表更新则是针对内存管理器的配置以及处理器的地址转换需求,来对用于实现虚拟地址到物理地址转换的页表中的映射关系进行更新过程,下面分别进行相关操作的详细方案介绍。82.在定义软件接口时,首先要声明相关数据结构,包括:非安全寄存器与安全寄存器,命令与事件队列,页表空间等,其中寄存器用于配置内存管理器,ste(ste中包含一个指向stage2地址翻译表的指针,并且同时还包含一个指向cd的指针)和cd则是与页表查找过程相关,其中保存有页表基地址以及翻译流程的配置(stage1与stage2是否使能);其次定义一系列配置函数接口,用于后续对内存管理器进行配置时调用,主要包括对相关寄存器的读写操作,ste与cd的初始化,命令与事件队列的操作、页表创建过程等。83.在对内存管理器配置时,配置阶段的目的为对内存管理器进行初始化,具体包括前文软件接口定义的数据结构的基地址与范围的设置,以及开辟的内存属性设置,最后使能内存管理器。84.以下以一个具体实例对上述内存管理器的配置过程进行介绍。85.在开始配置内存管理器时,首先设置内存管理器的基地址,然后中断初始化;然后设置ste、事件队列、命令队列的基地址与大小;然后设置表和队列的缓存属性,包括:共享属性,内部缓存属性以及外部缓存属性;发送命令使内存管理器中全部tlb失效;然后使能事件队列和命令队列;最后使能内存管理器为非安全模式。86.上述页表更新执行在内存管理器接收目标处理器发送的内存访问请求前,如图6所示,具体包括:87.步骤601,接收对目标处理器对应的目标翻译页表进行刷新的指示,指示中包括目标处理器对应的虚拟地址与对应的待访问内存的物理地址之间的第一映射关系;88.上述指示中包含的映射关系的具体内容由设置的地址转换模式确定,如果设置的地址转换模式为第一地址转换模式或第二地址转换模式时,则该映射关系为目标处理器的虚拟地址与待访问内存的物理地址的映射关系;如果设置的地址转换模式为第三地址转换模式时,该映射关系包括:目标处理器的虚拟地址与中间地址的映射关系以及目标处理器的中间地址与待访问内存的物理地址的映射关系。89.步骤602,利用第一映射关系,对翻译页表集合中与处理器对应的目标翻译页表中的映射关系进行刷新。90.以下以32位处理器映射8g空间地址为例,对上述页表刷新过程进行详细阐述,其中页表地址映射方案如下表1所示:91.表1页表映射[0092][0093]src(source)表示源操作数,由上表可以看出,src0与src1中虚拟地址范围是一致的,但所对应的实际物理地址确是完全不同。在实际使用时,在访问src0或src1的数据时,需预先将对应的页表加载到tlb,才能保证正确访问,例如:在访问src0对应的数据时,预先利用src0中的映射关系对当前翻译页表中的映射关系进行替换,以保证后续地址转换的正确性,即相当于一个页表刷新的过程。[0094]通过上述内存访问方法,理论上使用32位虚拟地址,可以完成对任意物理空间的访问,在系统中,32位处理器对于内存的访问均可通过内存管理器来进行映射,设置虚拟地址变量src0~src15,每个变量作为起始虚拟地址分别映射1g的实际物理地址,在访问目标区域之前,刷新对应的页表,则实现32位处理器同64位处理器一样可以对16g内存空间的访问。[0095]基于相同的公开构思,本技术实施例还提供一种内存访问装置,由于该装置即是本技术实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。[0096]图7为本技术实施例提供的一种内存访问装置的示意图,请参考图8,本技术实施例提供一种内存访问装置,该装置包括:[0097]接收单元701,用于接收目标处理器发送的内存访问请求,上述内存访问请求中包括虚拟地址以及与上述目标处理器对应的标识信息;[0098]确定单元702,用于根据上述标识信息,从翻译页表集合中查找与上述目标处理器对应的目标翻译页表;上述翻译页表集合中存储有至少一个处理器的虚拟地址与对应的待访问内存的物理地址之间的映射关系,其中上述至少一个处理器的虚拟地址对应虚拟地址空间小于对应的待访问内存的物理地址对应的物理地址空间;[0099]转换单元703,用于根据上述目标翻译页表中的映射关系,将上述内存访问请求中的虚拟地址转换为待访问内存的物理地址;[0100]发送单元704,用于将携带上述待访问内存的物理地址的内存访问请求发送给上述存储系统,以使上述存储系统根据上述待访问内存的物理地址,获取待访问内存中与上述物理地址对应的数据,并发送给上述内存管理器。[0101]可选的,上述接收单元701用于接收目标处理器发送的内存访问请求前,还用于:接收对目标处理器对应的目标翻译页表进行刷新的指示,指示中包括目标处理器对应的虚拟地址与对应的待访问内存的物理地址之间的第一映射关系;利用第一映射关系,对翻译页表集合中与处理器对应的目标翻译页表中的映射关系进行刷新。[0102]基于相同的公开构思,本技术实施例中还提供了一种内存管理器,由于该设备即是本技术实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。[0103]所属
技术领域
:的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。[0104]在一些可能的实施方式中,根据本技术的设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本技术各种示例性实施方式的内存访问方法中的步骤。[0105]下面参照图8来描述根据本技术的这种实施方式的电子设备800。图8显示的设备800仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。[0106]如图8所示,设备800以通用设备的形式表现。设备800的组件可以包括但不限于:上述至少一个处理器801、上述至少一个存储器802、连接不同系统组件(包括存储器802和处理器801)的总线803,其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行以下步骤:[0107]接收目标处理器发送的内存访问请求,上述内存访问请求中包括虚拟地址以及与上述目标处理器对应的标识信息;[0108]根据上述标识信息,从翻译页表集合中查找与上述目标处理器对应的目标翻译页表;上述翻译页表集合中存储有至少一个处理器的虚拟地址与对应的待访问内存的物理地址之间的映射关系,其中上述至少一个处理器的虚拟地址对应虚拟地址空间小于对应的待访问内存的物理地址对应的物理地址空间;[0109]根据上述目标翻译页表中的映射关系,将上述内存访问请求中的虚拟地址转换为待访问内存的物理地址;[0110]将携带上述待访问内存的物理地址的内存访问请求发送给上述存储系统,以使上述存储系统根据上述待访问内存的物理地址,获取待访问内存中与上述物理地址对应的数据,并发送给上述内存管理器。[0111]总线803表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。[0112]存储器802可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)8021和/或高速缓存存储器8022,还可以进一步包括只读存储器(rom)8023。[0113]存储器802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。[0114]设备800也可以与一个或多个外部设备804(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与设备800交互的设备通信,和/或与使得该设备800能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口805进行。并且,设备800还可以通过网络适配器806与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器806通过总线803与用于设备800的其它模块通信。应当理解,尽管图中未示出,可以结合设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。[0115]可选的,上述处理器还用于:接收对目标处理器对应的目标翻译页表进行刷新的指示,指示中包括目标处理器对应的虚拟地址与对应的待访问内存的物理地址之间的第一映射关系;利用第一映射关系,对翻译页表集合中与处理器对应的目标翻译页表中的映射关系进行刷新。[0116]在一些可能的实施方式中,本技术提供的一种内存访问方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的一种内存访问方法中的步骤。[0117]程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。[0118]本技术的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0119]可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0120]可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。[0121]可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行、或者完全在远程设备或服务端上执行。在涉及远程设备的情形中,远程设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户设备,或者,可以连接到外部设备(例如利用因特网服务提供商来通过因特网连接)。[0122]应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。[0123]此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。[0124]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0125]本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。[0126]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。[0127]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。[0128]尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。[0129]显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1