一种地址转换方法、地址转换模块及系统与流程

文档序号:18257345发布日期:2019-07-24 10:22阅读:428来源:国知局
本发明实施例涉及内存访问
技术领域
:,具体涉及一种地址转换方法、地址转换模块及系统。
背景技术
::现代操作系统普遍采用虚拟内存管理(VirtualMemoryManagement)机制,以突破物理内存限制的进程运行存储空间,即利用存储空间大于物理内存的虚拟存储空间运行操作系统的进程,从而解决进程运行要求的存储空间大于物理内存时,进程难以运行的问题。在虚拟内存管理机制中,进程运行依赖于虚拟存储空间的虚拟地址(虚拟地址可以认为是虚拟存储空间为进程提供的私有地址空间),而物理内存使用物理地址,因此在现代计算机体系结构中,具有物理内存访问需求的访问单元访问物理内存时,需要先确定虚拟地址,然后通过地址转换将虚拟地址转换为物理地址,从而以转换后的物理地址访问物理内存。可见,在访问单元访问物理内存时,地址转换效率的高低至关重要,如果地址转换延时较大,极可能影响物理内存访问效率;因此如何提高地址转换效率,一直是本领域技术人员研究的问题。技术实现要素:有鉴于此,本发明实施例提供一种地址转换方法、地址转换模块及系统,以提高地址转换效率。为实现上述目的,本发明实施例提供如下技术方案:一种地址转换方法,包括:获取内存访问请求,所述内存访问请求包括目标虚拟地址;判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,所述第一类物理页映射的存储空间不小于设定存储空间大小;若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址;根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。可选的,所述地址转换方法还包括:若所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配,将所述内存访问请求转发给MMU。可选的,所述目标虚拟地址包括:目标虚拟地址基地址和偏移地址;所述预设的第一类物理页的虚拟地址包括:预设的第一类物理页的虚拟地址基地址与索引标识的对应关系;所述判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配包括:根据预设的第一类物理页的虚拟地址基地址与索引标识的对应关系,判断是否存在与所述目标虚拟地址基地址相对应的目标索引标识;其中,若存在与所述目标虚拟地址基地址相对应的目标索引标识,所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配;若不存在与所述目标虚拟地址基地址相对应的目标索引标识,所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配。可选的,所述预设的第一类物理页的虚拟地址对应的物理地址基地址包括:预设的第一类物理页的物理地址基地址与索引标识的对应关系;其中,相同第一类物理页的虚拟地址基地址和物理地址基地址通过相同的索引标识关联;所述若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址包括:若存在与所述目标虚拟地址基地址相对应的目标索引标识,根据预设的第一类物理页的物理地址基地址与索引标识的对应关系,确定所述目标索引标识对应的目标物理地址基地址。可选的,所述根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址包括:结合所述目标物理地址基地址与所述偏移地址,确定所述目标虚拟地址对应的物理地址。可选的,所述根据预设的第一类物理页的虚拟地址基地址与索引标识的对应关系,判断是否存在与所述目标虚拟地址基地址相对应的目标索引标识包括:查找第一表,判断所述目标虚拟地址基地址是否在第一表命中;所述第一表记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在第二表的索引标识;所述第二表记录第一类物理页的物理地址基地址以及物理地址基地址在第二表的索引标识;其中,所述目标虚拟地址基地址在第一表命中,则所述第一表存在与所述目标虚拟地址基地址相对应的目标索引标识;所述目标虚拟地址基地址在第一表未命中,则所述第一表未存在与所述目标虚拟地址基地址相对应的目标索引标识。可选的,所述若存在与所述目标虚拟地址基地址相对应的目标索引标识,根据预设的第一类物理页的物理地址基地址与索引标识的对应关系,确定所述目标索引标识对应的目标物理地址基地址包括:根据所述目标索引标识,查找第二表;从第二表中确定所述目标索引标识对应的目标物理地址基地址。本发明实施例还提供一种地址转换模块,包括:访问请求获取单元,用于获取内存访问请求,所述内存访问请求包括目标虚拟地址;判断单元,用于判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,所述第一类物理页映射的存储空间不小于设定存储空间大小;物理基地址确定单元,用于若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址;物理地址确定单元,用于根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。本发明实施例还提供一种地址转换系统,包括:访问单元;与所述访问单元连接的如权利要求8所述的地址转换模块;与所述地址转换模块连接的MMU;所述MMU连接总线;与所述总线连接的物理内存。本发明实施例还提供一种地址转换系统,包括:访问单元;与所述访问单元连接的选择器;分别与所述选择器连接的地址转换模块和MMU;所述地址转换模块和MMU并联连接总线;与所述总线连接的物理内存;其中,所述选择器用于:获取内存访问请求,所述内存访问请求包括目标虚拟地址;判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,所述第一类物理页映射的存储空间不小于设定存储空间大小;若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,选择由地址转换模块进行地址转换;若所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配,选择由MMU进行地址转换,将所述内存访问请求转发给MMU;地址转换模块用于:若选择器判断所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址;根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。本发明实施例可定义映射的存储空间不小于设定存储空间大小的第一类物理页,并预设第一类物理页的虚拟地址,以及第一类物理页的虚拟地址对应的物理地址基地址;从而,在获取内存访问请求后,若内存访问请求携带的目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,则可认为内存访问请求针对第一类物理页,进而,可从预设的第一类物理页的虚拟地址对应的物理地址基地址中,确定与所述目标虚拟地址对应的目标物理地址基地址,根据所述目标物理地址基地址,确定出所述目标虚拟地址对应的物理地址,实现地址转换。可见,本发明实施例可在针对第一类物理页进行地址转换时,通过第一类物理页的虚拟地址与物理地址基地址的对应关系,便捷的实现第一类物理页的虚拟地址对应的物理地址基地址的确定,即通过匹配对应关系确定第一类物理页的物理地址基地址,避免通过MMU查找多级页表实现确定第一类物理页的物理地址基地址的过程,从而,本发明实施例可极大的简化第一类物理页的物理地址基地址的确定流程,降低针对第一类物理页的地址转换延时;本发明实施例可针对不同大小的物理页,区分地址转换方式,降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为传统的地址转换系统的结构示意图;图2为传统的地址转换系统的另一结构示意图;图3为IOMMU实现地址转换的示意图;图4为本发明实施例提供的地址转换系统的结构示意图;图5为本发明实施例提供的地址转换方法的流程图;图6为本发明实施例提供的地址转换方法的示意图;图7为第一类物理页的虚拟地址基地址与物理地址基地址的对应关系示意图;图8为本发明实施例提供的地址转换方法的另一流程图;图9为本发明实施例提供的地址转换方法的另一示意图;图10为设置第一表和第二表的示意图;图11为本发明实施例提供的地址转换方法的再一流程图;图12为本发明实施例提供的地址转换方法的再一示意图;图13为本发明实施例提供的地址转换系统的另一结构示意图;图14为本发明实施例提供的地址转换模块的结构框图;图15为本发明实施例提供的地址转换模块的另一结构框图;图16为本发明实施例提供的地址转换系统的再一结构示意图。具体实施方式地址转换可以认为是将虚拟存储空间的虚拟地址,转换为物理内存的物理地址,适用于访问单元访问物理内存的场景,访问单元可以是计算机体系结构中任意的具有物理内存访问需求的器件,例如CPU(中央处理器),IO(Input/Output,输入输出)设备等。示例的,图1示出了传统的地址转换系统的结构示意图,如图1所示,访问单元访问总线连接的物理内存时,访问单元确定目标虚拟地址(访问单元访问的虚拟地址可以称为,目标虚拟地址),然后通过中间层的MMU(memorymanagementunit,内存管理单元)将目标虚拟地址转换为对应的物理地址,实现地址转换,从而基于转换后的物理地址访问总线连接的物理内存。图1所示地址转换系统可以适用于任意的具有物理内存访问需求的访问单元访问物理内存的场景,示例的,在CPU访问物理内存,IO设备访问物理内存的场景下,图2示出了传统的地址转换系统的另一结构示意图,如图2所示,访问单元可以分为CPU和IO设备,MMU可以分为CPU的MMU和IOMMU(IOmemorymanagementunit,输入输出内存管理单元);其中,CPU使用CPU的MMU将CPU访问的目标虚拟地址转换为对应的物理地址,从而基于转换后的物理地址实现CPU对物理内存的访问;IO设备使用IOMMU将IO设备访问的目标虚拟地址转换为对应的物理地址,从而基于转换后的物理地址实现IO设备对物理内存的访问。可见,传统的地址转换方式主要由MMU实现,例如由CPU的MMU实现CPU访问的虚拟地址至物理地址的转换,由IOMMU实现IO设备访问的虚拟地址至物理地址的转换;而物理内存的地址管理主要通过分页方式实现,即将物理内存连续的地址映射为物理页,并通过多级页表实现内存管理;多级页表中,末级页表中保存着虚拟地址到物理地址的映射,称为页表项,除末级页表外的其他页表中,上级页表保存着虚拟地址到下级页表的映射,称为页目录;从而,在MMU进行地址转换时,MMU可通过查找多级页表得到虚拟地址对应的物理地址基地址,将物理地址基地址结合虚拟地址的偏移地址可以转换得到对应的物理地址,虚拟地址的偏移地址可以认为是虚拟地址在物理页上的偏移量。为便于说明,以48位虚拟地址,4级页表,页表大小为512K,物理页为2M,由IOMMU实现地址转换为例,图3示出了IOMMU实现地址转换的一种可选示意,如图3所示:IOMMU中的设备表条目(devicetableentry)记录了IO设备的地址映射表,IO设备可使用IO设备标识(例如IO设备ID)进行标识;IO设备标识可以作为设备表条目的索引,从而当IO设备的内存访问请求到达IOMMU时,IOMMU可以使用相应的IO设备标识作为索引,查找到IO设备的设备表条目;结合图3所示,虚拟地址的bit[47:39]作为第四级页表(PDE)的索引,可用于查找下一级页表的基地址,同时,PDE中有指向下一级页表的指针,例如,PDE中的索引号2代表指向的下一级页表为第2级页表,即在图3中可由第四级页表直接指向第二级页表;虚拟地址的bit[29:21]作为第二级页表(PTE)的索引,PTE直接指向0,代表PTE指向的是虚拟地址对应的物理地址基地址;虚拟地址的bit[20:0]表示虚拟地址的偏移地址,该偏移地址结合第二级页表指向的物理地址基地址,可以得到虚拟地址对应的物理地址,实现地址转换。可以看出,上述地址转换过程使用了MMU的页表结构,可以通过PDE或PTE对下级页表的指针,实现直接指向下级页表并减少页表表项,同时也能够增大物理页大小;然而,上述地址转换过程存在如下问题:目前存在多种大小的物理页,例如物理页的大小可以支持4KB,2MB,1GB,512GB,1TB等;针对不同大小的物理页,上述地址转换过程并没有区分地址转换方式,而是由MMU使用相同的查找多级页表的方式实现地址转换,这将增大较大物理页的地址转换延时,导致地址转换效率较低。基于此,本发明实施例提供一种地址转换方法、地址转换模块及系统,以针对不同大小的物理页,区分地址转换方式,从而降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图4为本发明实施例提供的地址转换系统的结构示意图,如图4所示,本发明实施例提供的地址转换系统可以包括:访问单元10,地址转换模块20,MMU30,总线40和物理内存50;图4所示地址转换系统可以适用于IO设备访问物理内存和/或,CPU访问物理内存的场景;示例的,访问单元10可以为CPU或IO设备,MMU30可以为CPU的MMU或IOMMU;本发明实施例提供的地址转换系统可以应用于现代计算机体系结构,例如本发明实施例提供的地址转换系统可以应用于SOC(片上系统)芯片,或者,CPU和南桥相耦合的计算机体系结构,或者,分设南桥和北桥的计算机体系结构等。针对不同大小的物理页,本发明实施例可以至少定义两类物理页,如至少定义物理页的存储空间较大的第一类物理页,和物理页的存储空间较小的第二类物理页;例如,通过定义设定存储空间大小,将映射的存储空间不小于该设定存储空间大小的物理页称为第一类物理页,将映射的存储空间小于该设定存储空间大小的物理页称为第二类物理页;示例的,设定存储空间大小可以为32M(也可以是自定义的其他大小),映射的存储空间不小于32M的物理页认为是物理页较大的第一类物理页,映射的存储空间小于32M的物理页认为是物理页较小的第二类物理页;物理页映射的存储空间大小可由操作系统决定,操作系统可以灵活定义物理页映射的存储空间,对于操作系统定义的连续地址映射的存储空间较大的第一类物理页和存储空间较小的第二类物理页,本发明实施例可区分地址转换方式;在本发明实施例中,地址转换模块20可针对物理页较大的第一类物理页实现地址转换,MMU30可针对物理页较小的第二类物理页实现地址转换。可选的,图5示出了本发明实施例提供的地址转换方法的一种可选流程,参照图5,该流程可以包括:步骤S100、获取内存访问请求,所述内存访问请求包括目标虚拟地址。可选的,在访问单元需要访问物理内存时,访问单元可确定访问的目标虚拟地址,并发起内存访问请求;内存访问请求可传递到地址转换模块,从而地址转换模块获取内存访问请求。步骤S110、判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,若是,执行步骤S120,若否,执行步骤S140。本发明实施例可定义物理页的存储空间较大的第一类物理页,和物理页的存储空间较小的第二类物理页;示例的,第一类物理页映射的存储空间不小于设定存储空间大小,第二类物理页映射的存储空间小于设定存储空间大小;针对第一类物理页,地址转换模块可通过表项等形式记录第一类物理页的虚拟地址,从而实现预设第一类物理页的虚拟地址;进而,地址转换模块在获取内存访问请求后,可根据预设的第一类物理页的虚拟地址,判断内存访问请求的目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,实现判断内存访问请求是针对第一类物理页还是第二类物理页;若目标虚拟地址与预设的第一类物理页的虚拟地址匹配,则内存访问请求针对第一类物理页,可执行步骤S120,由地址转换模块继续进行地址转换;若目标虚拟地址与预设的第一类物理页的虚拟地址不匹配,则内存访问请求针对第二类物理页,可执行步骤S140,将内存访问请求转发给MMU,由MMU通过查找多级页表的方式,实现地址转换。可选的,在一种示例中,虚拟地址可以包括:虚拟地址基地址和偏移地址;地址转换模块可通过记录第一类物理页的虚拟地址基地址,实现预设第一类物理页的虚拟地址;从而,步骤S110的一种可选实现可以是:判断所述目标虚拟地址基地址,是否与预设的第一类物理页的虚拟地址基地址相匹配。步骤S120、根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址。可选的,针对第一类物理页,地址转换模块可通过表项等形式记录第一类物理页的虚拟地址对应的物理地址基地址;从而,在步骤S110确定目标虚拟地址与预设的第一类物理页的虚拟地址相匹配后,地址转换模块可从预设的第一类物理页的虚拟地址对应的物理地址基地址中,匹配出所述目标虚拟地址对应的目标物理地址基地址。步骤S130、根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。可选的,可将目标物理地址基地址与目标虚拟地址的偏移地址相结合,确定出目标虚拟地址对应的物理地址,实现将目标虚拟地址转换为对应的物理地址;在一种示例中,可以是将目标物理地址基地址与目标虚拟地址的偏移地址相加,从而确定出目标虚拟地址对应的物理地址。步骤S140、将所述内存访问请求转发给MMU。可选的,MMU接收内存访问请求后,可通过查找多级页表的方式,确定目标虚拟地址对应的目标物理地址基地址,进而根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址;关于MMU通过查找多级页表的方式,确定物理地址基地址的内容可参照前文相关部分描述,此处不再赘述。本发明实施例可定义映射的存储空间不小于设定存储空间大小的第一类物理页,并预设第一类物理页的虚拟地址,以及第一类物理页的虚拟地址对应的物理地址基地址;从而,在获取内存访问请求后,若内存访问请求携带的目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,则可认为内存访问请求针对第一类物理页,进而,可从预设的第一类物理页的虚拟地址对应的物理地址基地址中,确定与所述目标虚拟地址对应的目标物理地址基地址,根据所述目标物理地址基地址,确定出所述目标虚拟地址对应的物理地址,实现地址转换。可见,本发明实施例可在针对第一类物理页进行地址转换时,通过第一类物理页的虚拟地址与物理地址基地址的对应关系,便捷的实现第一类物理页的虚拟地址对应的物理地址基地址的确定,即通过匹配对应关系确定第一类物理页的物理地址基地址,避免通过MMU查找多级页表确定第一类物理页的物理地址基地址的过程,可极大的简化第一类物理页的物理地址基地址的确定流程,降低针对第一类物理页的地址转换延时;本发明实施例可针对不同大小的物理页,区分地址转换方式,降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。在一种可选实现中,预设的第一类物理页的虚拟地址可以是:预设的第一类物理页的虚拟地址基地址;预设的第一类物理页的虚拟地址对应的物理地址基地址可以是:预设的第一类物理页的虚拟地址基地址对应的物理地址基地址;示例的,如图6所示第一类物理页的虚拟地址基地址与物理地址基地址的对应关系,假设目标虚拟地址可以包括:目标虚拟地址基地址a2和偏移地址c1;则根据图6所示对应关系,本发明实施例可确定目标虚拟地址基地址a2与预设的第一类物理页的虚拟地址基地址a2相匹配,从而根据预设的第一类物理页的虚拟地址基地址对应的物理地址基地址,本发明实施例可确定第一类物理页的虚拟地址基地址a2对应的物理地址基地址b2,进而,根据物理地址基地址b2和偏移地址c1,本发明实施例可确定出目标虚拟地址对应的物理地址,实现将目标虚拟地址转换为对应的物理地址。作为本发明实施例公开内容的一种可选实现,第一类物理页的虚拟地址基地址与物理地址基地址的对应关系可通过索引标识进行关联,例如,本发明实施例可通过预设第一类物理页的虚拟地址基地址与索引标识的对应关系,实现预设第一类物理页的虚拟地址;预设第一类物理页的物理地址基地址与索引标识的对应关系,从而通过相同的索引标识关联,相同的第一类物理页的虚拟地址基地址与物理地址基地址,实现预设第一类物理页的虚拟地址基地址对应的物理地址基地址;示例的,如图7所示第一类物理页的虚拟地址基地址与物理地址基地址的对应关系,预设的第一类物理页的虚拟地址基地址a1与索引标识d1相对应,索引标识d1与第一类物理页的物理地址基地址b1相对应,从而通过索引标识d1可关联虚拟地址基地址a1与物理地址基地址b1相对应,同理,通过索引标识d2可关联虚拟地址基地址a2与物理地址基地址b2相对应,以此类推;可选的,图8示出了本发明实施例提供的地址转换方法的另一可选流程,参照图8,该流程可以包括:步骤S200、获取内存访问请求,所述内存访问请求包括目标虚拟地址;所述目标虚拟地址包括目标虚拟地址基地址和偏移地址。可选的,步骤S200的介绍可参照步骤S100,进一步的,目标虚拟地址可以包括:目标虚拟地址基地址和偏移地址。步骤S210、根据预设的第一类物理页的虚拟地址基地址与索引标识的对应关系,判断是否存在与所述目标虚拟地址基地址相对应的目标索引标识,若是,执行步骤S220,若否,执行步骤S240。可选的,针对第一类物理页,本发明实施例可通过表项等形式记录第一类物理页的虚拟地址基地址与索引标识的对应关系,本发明实施例可从该对应关系中查找是否与目标虚拟地址基地址相对应的索引标识(与目标虚拟地址基地址相对应的索引标识,可以称为目标索引标识),从而实现判断目标虚拟地址基地址是否为预设的第一类物理页的虚拟地址基地址;若该对应关系中存在与所述目标虚拟地址基地址相对应的目标索引标识,说明所述目标虚拟地址基地址为预设的第一类物理页的虚拟地址基地址,且可确定出与所述目标虚拟地址基地址相对应的目标索引标识,即此时内存访问请求是针对第一类物理页,从而本发明实施例可执行步骤S220,由地址转换模块继续进行地址转换;若该对应关系中不存在与所述目标虚拟地址基地址相对应的目标索引标识,说明所述目标虚拟地址基地址不为预设的第一类物理页的虚拟地址基地址,则此时内存访问请求针对第二类物理页,本发明实施例可执行步骤S240,将内存访问请求转发给MMU,由MMU通过查找多级页表的方式,实现地址转换。步骤S220、根据预设的第一类物理页的物理地址基地址与索引标识的对应关系,确定所述目标索引标识对应的目标物理地址基地址。可选的,针对第一类物理页,本发明实施例可通过表项等形式记录第一类物理页的物理地址基地址与索引标识的对应关系;预设的第一类物理页的虚拟地址基地址对应的物理地址基地址,可通过相同的索引标识进行关联;在确定目标虚拟地址基地址对应的目标索引标识后,本发明实施例可从预设的第一类物理页的物理地址基地址与索引标识的对应关系中,查找与目标索引标识对应的目标物理地址基地址,实现目标虚拟地址对应的目标物理地址基地址的确定。步骤S230、结合所述目标物理地址基地址与所述偏移地址,确定所述目标虚拟地址对应的物理地址。可选的,可将目标物理地址基地址与所述偏移地址相加,实现将目标虚拟地址转换为对应的物理地址。步骤S240、将所述内存访问请求转发给MMU。可选的,MMU接收内存访问请求后,可通过查找多级页表的方式,确定目标虚拟地址对应的目标物理地址基地址,进而根据所述目标物理地址基地址和目标虚拟地址的偏移地址,确定所述目标虚拟地址对应的物理地址。本发明实施例可定义映射的存储空间不小于设定存储空间大小的第一类物理页,并预设第一类物理页的虚拟地址基地址与索引标识的对应关系,以及第一类物理页的物理地址基地址与索引标识的对应关系,从而相同第一类物理页的虚拟地址基地址与物理地址基地址,可通过相同的索引标识进行关联;进而,在获取内存访问请求后,若目标虚拟地址基地址,与预设的第一类物理页的虚拟地址基地址和索引标识的对应关系相匹配,则可认为内存访问请求针对第一类物理页,本发明实施例可确定与目标虚拟地址基地址对应的目标索引标识;进而,可从预设的第一类物理页的物理地址基地址与索引标识的对应关系中,确定与所述目标索引标识对应的目标物理地址基地址,将所述目标物理地址基地址与目标虚拟地址的偏移地址相结合,确定出目标虚拟地址对应的物理地址,实现地址转换。可见,本发明实施例可在针对第一类物理页进行地址转换时,通过索引标识关联第一类物理页的虚拟地址基地址与物理地址基地址,便捷的实现第一类物理页的虚拟地址基地址对应的物理地址基地址的确定,即通过匹配对应关系实现确定第一类物理页的物理地址基地址,避免通过MMU查找多级页表确定第一类物理页的物理地址基地址的过程,可极大的简化第一类物理页的物理地址基地址的确定流程,降低针对第一类物理页的地址转换延时;本发明实施例可针对不同大小的物理页,区分地址转换方式,降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。在一种示例中,如图9所示,假设目标虚拟地址可以包括:目标虚拟地址基地址a2和偏移地址c1,根据图9所示对应关系,在预设的第一类物理页的虚拟地址基地址与索引标识的对应关系中,本发明实施例可确定目标虚拟地址基地址a2与索引标识d2相对应,从而在预设的第一类物理页的物理地址基地址与索引标识的对应关系中,本发明实施例可确定索引标识d2对应的物理地址基地址b2;进而,根据物理地址基地址b2和偏移地址c1,本发明实施例可确定出目标虚拟地址对应的物理地址,实现将目标虚拟地址转换为对应的物理地址。可选的,在进一步的实现中,本发明实施例可通过表项的形式记录第一类物理页的虚拟地址基地址与索引标识的对应关系,以及第一类物理页的物理地址基地址与索引标识的对应关系;示例的,如图10所示,本发明实施例可设置第二表,第二表可记录第一类物理页的物理地址基地址以及物理地址基地址在第二表的索引标识,第二表可称为直接映射表;本发明实施例还可设置第一表,第一表可记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在第二表的索引标识,第一表可称为索引表;可选的,第一表和第二表可设置于地址转换模块中;需要说明的是,索引表除记录第一类物理页的物理地址基地址在直接映射表的索引标识外,还记录了进行直接转换的虚拟地址基地址。进行直接转换的虚拟地址基地址可能不是连续的,因此索引表可以使用离散的地址来表示进行直接转换的虚拟地址基地址。作为一种可选实现,图11示出了本发明实施例提供的地址转换方法的再一可选流程,参照图11,该流程可以包括:步骤S300、获取内存访问请求,所述内存访问请求包括目标虚拟地址;所述目标虚拟地址包括目标虚拟地址基地址和偏移地址。可选的,步骤S300的描述可参照步骤S200。步骤S310、查找第一表,判断所述目标虚拟地址基地址是否在第一表命中,若是,执行步骤S320,若否,执行步骤S340。可选的,第一表可记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在第二表的索引标识;在获取内存访问请求后,本发明实施例可根据目标虚拟地址基地址查找第一表,判断目标虚拟地址基地址是否在第一表中命中;若是,说明目标虚拟地址基地址为第一类物理页的虚拟地址基地址,且可从第一表中确定,目标虚拟地址基地址对应的物理地址基地址在第二表的目标索引标识,从而可执行步骤S320,由地址转换模块继续进行地址转换;若否,说明目标虚拟地址基地址不为第一类物理页的虚拟地址基地址,内存访问请求针对第二类物理页,从而本发明实施例可执行步骤S340,将内存访问请求转发给MMU,由MMU通过查找多级页表的方式,实现地址转换。步骤S320、从第一表中确定所述目标虚拟地址基地址对应的物理地址基地址在第二表的目标索引标识,根据所述目标索引标识查找第二表,从第二表中确定所述目标索引标识对应的目标物理地址基地址。可选的,第二表可记录第一类物理页的物理地址基地址以及物理地址基地址在第二表的索引标识;在确定目标虚拟地址基地址在第一表中命中后,本发明实施例可从第一表中确定出目标虚拟地址基地址对应的物理地址基地址在第二表的目标索引标识,从而进一步查找第二表,从第二表中确定目标索引标识对应的目标物理地址基地址,实现确定目标虚拟地址对应的物理地址基地址。步骤S330、结合所述目标物理地址基地址与所述偏移地址,确定所述目标虚拟地址对应的物理地址。可选的,可将目标物理地址基地址与所述偏移地址相加,实现将目标虚拟地址转换为对应的物理地址。步骤S340、将所述内存访问请求转发给MMU。本发明实施例可通过第一表记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在第二表的索引标识,实现预设第一类物理页的虚拟地址基地址与索引标识的对应关系,通过第二表记录第一类物理页的物理地址基地址以及物理地址基地址在第二表的索引标识,实现预设第一类物理页的物理地址基地址与索引标识的对应关系,且第一表和第二表之间通过索引标识进行第一类物理页的虚拟地址基地址与物理地址基地址的关联;相比MMU的多级页表,本发明实施例提供的第一表和第二表是通过记录数据之间的对应关系,实现预设第一类物理页的虚拟地址基地址以及对应的物理地址基地址,第一表和第二表的表项内容相比于多级页表可大幅减小;进而,本发明实施例可通过查找第一表和第二表,以对应关系的匹配实现确定第一类物理页的物理地址基地址,避免通过MMU查找多级页表确定第一类物理页的物理地址基地址的过程,可极大的简化第一类物理页的物理地址基地址的确定流程,降低针对第一类物理页的地址转换延时;即,本发明实施例可针对不同大小的物理页,区分地址转换方式,降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。同时,由于通过第一表和第二表可实现第一类物理页的虚拟地址和物理地址之间的转换,因此MMU的多级页表可大幅减少第一类物理页的虚拟地址和物理地址之间的映射内容,即本发明实施例也可达到进一步减小MMU的多级页表的内容的效果。在一种示例中,索引号可作为索引标识的一种可选形式,索引表可作为第一表的一种可选形式,直接映射表可作为第二表的一种可选形式,如图12所示,索引表可记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在直接映射表的索引号,直接映射表可记录第一类物理页的物理地址基地址以及物理地址基地址在直接映射表的索引号,即在索引表和直接映射表中,相同物理页的虚拟地址基地址与物理地址基地址通过相同索引号关联;如图12所示,目标虚拟地址包括目标虚拟地址基地址和偏移地址;当内存访问请求针对第一类物理页时,通过查找索引表,目标虚拟地址基地址可在索引表中命中,从而可确定出与目标虚拟地址基地址对应的目标索引号;根据目标索引号查找直接映射表,可从直接映射表中确定出与目标索引号对应的目标物理地址基地址;进而,将偏移地址与目标物理地址基地址相结合,可转换得到目标虚拟地址对应的物理地址,实现地址转换。在进一步示例中,图12所示地址转换示意可适用于IO设备访问物理内存的情况,以索引表记录32M的第一类物理页映射的虚拟地址基地址与对应索引号为例,目标虚拟地址基地址可以是目标虚拟地址的bit[47:25],偏移地址可以是目标虚拟地址的bit[24:0],当然这仅是目标虚拟地址基地址和偏移地址在目标虚拟地址的结构示例,本发明实施例并不局限目标虚拟地址基地址和偏移地址在目标虚拟地址中所在的bit(字节)。在一种示例中,本发明实施例提供的地址转换方法可应用于IO设备访问物理内存的场景,相应的,图4所示地址转换系统中,访问单元可以为IO设备,MMU可以为IOMMU;可选的,图13示出了本发明实施例提供的地址转换系统的另一结构示意图,参照图13所示,该系统可以包括:IO设备11,地址转换模块20,IOMMU31,总线40和物理内存50;地址转换模块可以设置索引表,记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在直接映射表的索引号;同时,地址转换模块可设置直接映射表,记录第一类物理页的物理地址基地址以及物理地址基地址在直接映射表的索引号;IO设备发出内存访问请求后,地址转换模块可提取内存访问请求携带的目标虚拟地址,确定目标虚拟地址基地址和偏移地址;地址转换模块可判断目标虚拟地址基地址是否在索引表命中;示例的,以索引表记录32M的第一类物理页映射的虚拟地址基地址与对应索引号为例,目标虚拟地址基地址可以是目标虚拟地址的bit[47:25],可通过目标虚拟地址的bit[47:25]查找索引表,判断目标虚拟地址基地址是否在索引表命中;地址转换模块若判断目标虚拟地址基地址在索引表命中,则可确定此次内存访问可使用直接映射表进行物理地址映射,从而根据目标虚拟地址基地址在索引表中查找对应的目标索引号;进而,使用直接映射表进行物理地址映射,不需IOMMU进行地址转换,具体的,地址转换模块可根据目标索引号从直接映射表中查找对应的目标物理地址基地址,结合目标虚拟地址的偏移地址和目标物理地址基地址,将目标虚拟地址转换为对应的物理地址;示例的,目标虚拟地址的偏移地址可以是目标虚拟地址的bit[47:25],可将目标虚拟地址的偏移地址加上目标物理地址基地址,得到目标虚拟地址转换的物理地址;地址转换模块若判断目标虚拟地址基地址未在索引表命中,则可确定此处内存访问需使用多级页表进行地址转换,地址转换模块可将内存访问请求发送给IOMMU,由IOMMU通过查找多级页表确定目标虚拟地址对应的目标物理地址基地址,从而IOMMU将目标虚拟地址的偏移地址和目标物理地址基地址相结合,确定出目标虚拟地址转换的物理地址。需要说明的是,由地址转换模块实现第一类物理页的地址转换后,地址转换模块可通过MMU访问物理内存,示例的,地址转换模块传输到MMU的信号可以包括:包含bypass(旁路)信号的转换后的物理地址;从而MMU将转换后的物理地址通过总线传递到物理内存,实现访问物理内存,基于转换后的物理地址实现物理内存访问的方式本发明实施例并不局限;如果内存访问请求针对的是第二类物理页,例如,地址转换模块未在索引表中匹配到目标虚拟地址基地址,则地址转换模块可将传递到地址转换模块的内存访问请求,不变的传递到MMU,从而由MMU按照查找多级页表的方式实现地址转换和访问物理内存。可选的,图13所示地址转换系统及相应的地址转换过程说明,可以认为是本发明实施例提供的地址转换方法在IO设备访问物理内存的场景下的一种应用;本发明实施例提供的地址转换方法也可在CPU访问物理内存的场景下应用,示例的,图13所示地址转换系统中还可包括CPU,与CPU连接的另一地址转换模块,与该另一地址转换模块连接CPU的MMU,相应结构可以认为是在图2所示CPU与CPU的MMU之间连接另一地址转换模块,在CPU访问物理内存的场景下,该地址转换模块的功能可参照前文描述,此处不再赘述。在一种替代实现中,作为对图4所示地址转换系统的一种调整,地址转换模块和MMU可并联连接总线,通过设置选择器,选择器可根据访问单元发出的内存访问请求,判断内存访问请求是针对第一类物理页,还是针对第二类物理页;从而在内存访问请求针对第一类物理页时,选择器选择由地址转换模块实现地址转换,在内存访问请求针对第二类物理页时,选择器选择由MMU实现地址转换;示例的,可由选择器设置索引表,地址转换模块设置直接映射表,从而选择器可通过索引表判断目标虚拟地址基地址是否命中,若是,说明内存访问请求针对第一类物理页,可选择地址转换模块进行地址转换,地址转换模块可通过查找直接映射表确定对应的目标物理地址基地址;若否,说明内存访问请求针对第二类物理页,可选择MMU进行地址转换。需要说明的是,上述替代实现仅是可选方式,包含在本发明实施例提供的地址转换方法的范围内,例如图5所示方法中步骤S100,S110和步骤S140可由选择器替代实现,步骤S120和步骤S130可由地址转换模块实现,即本发明实施例提供的地址转换方法可由选择器和地址转换模块结合执行。上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。本发明实施例提供的地址转换方法可针对不同大小的物理页,区分地址转换方式,从而降低针对较大物理页的地址转换延时,实现提高地址转换效率。实现本发明实施例提供的地址转换方法所设置的地址转换系统中的功能器件,可以认为是计算机体系结构中的功能硬件。在由地址转换模块实现判断目标虚拟地址是否为第一类物理页的虚拟地址,且由地址转换模块实现第一类物理页的地址转换的情况下,下面对本发明实施例提供的地址转换模块的结构进行描述;下文描述的地址转换模块可以认为是,地址转换模块为实现本发明实施例提供的地址转换方法所需设置的功能硬件模块,下文描述的地址转换模块的内容可与上文描述的地址转换方法的内容相互对应参照。作为本发明实施例公开内容的一种可选实现,图14示出了本发明实施例提供的地址转换模块的一种可选结构框图,参照图14,该地址转换模块可以包括:访问请求获取单元100,用于获取内存访问请求,所述内存访问请求包括目标虚拟地址;判断单元110,用于判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,所述第一类物理页映射的存储空间不小于设定存储空间大小;物理基地址确定单元120,用于若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址;物理地址确定单元130,用于根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。可选的,图15示出了本发明实施例提供的地址转换模块的另一种可选结构框图,结合图14和图15所示,该地址转换模块还可以包括:请求转发单元140,用于若所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配,将所述内存访问请求转发给MMU。可选的,所述目标虚拟地址可以包括:目标虚拟地址基地址和偏移地址;所述预设的第一类物理页的虚拟地址可以包括:预设的第一类物理页的虚拟地址基地址与索引标识的对应关系;在一种可选实现中,判断单元110,用于判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,可以具体包括:根据预设的第一类物理页的虚拟地址基地址与索引标识的对应关系,判断是否存在与所述目标虚拟地址基地址相对应的目标索引标识;其中,若存在与所述目标虚拟地址基地址相对应的目标索引标识,所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配;若不存在与所述目标虚拟地址基地址相对应的目标索引标识,所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配。可选的,所述预设的第一类物理页的虚拟地址对应的物理地址基地址可以包括:预设的第一类物理页的物理地址基地址与索引标识的对应关系;其中,相同第一类物理页的虚拟地址基地址和物理地址基地址通过相同的索引标识关联;在一种可选实现中,物理基地址确定单元120,用于若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址,可以具体包括:若存在与所述目标虚拟地址基地址相对应的目标索引标识,根据预设的第一类物理页的物理地址基地址与索引标识的对应关系,确定所述目标索引标识对应的目标物理地址基地址。可选的,物理地址确定单元130,用于根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址,可以具体包括:结合所述目标物理地址基地址与所述偏移地址,确定所述目标虚拟地址对应的物理地址。在进一步的可选实现中,判断单元110,用于根据预设的第一类物理页的虚拟地址基地址与索引标识的对应关系,判断是否存在与所述目标虚拟地址基地址相对应的目标索引标识,可以具体包括:查找第一表,判断所述目标虚拟地址基地址是否在第一表命中;所述第一表记录第一类物理页的虚拟地址基地址以及对应的物理地址基地址在第二表的索引标识;所述第二表记录第一类物理页的物理地址基地址以及物理地址基地址在第二表的索引标识;其中,所述目标虚拟地址基地址在第一表命中,则所述第一表存在与所述目标虚拟地址基地址相对应的目标索引标识;所述目标虚拟地址基地址在第一表未命中,则所述第一表未存在与所述目标虚拟地址基地址相对应的目标索引标识。可选的,物理基地址确定单元120,用于若存在与所述目标虚拟地址基地址相对应的目标索引标识,根据预设的第一类物理页的物理地址基地址与索引标识的对应关系,确定所述目标索引标识对应的目标物理地址基地址,可以具体包括:根据所述目标索引标识,查找第二表;从第二表中确定所述目标索引标识对应的目标物理地址基地址。本发明实施例还提供一种地址转换系统,该地址转换系统的结构可以结合图4所示,包括:访问单元10,上述所述的地址转换模块20,MMU30,总线40和物理内存50;其中,访问单元与地址转换模块连接,地址转换模块与MMU连接,MMU与总线连接,物理内存与总线连接;可选的,地址转换模块可以如图14和图15所示。在一种替代实现中,本发明实施例还提供一种地址转换系统,该地址转换系统的结构可以如图16所示,包括:访问单元10,地址转换模块20,MMU30,总线40,物理内存50和选择器60;其中,访问单元与选择器连接,选择器分别与地址转换模块和MMU连接,地址转换模块与MMU并联连接总线,物理内存连接总线;可选的,选择器可用于:获取内存访问请求,所述内存访问请求包括目标虚拟地址;判断所述目标虚拟地址是否与预设的第一类物理页的虚拟地址相匹配,所述第一类物理页映射的存储空间不小于设定存储空间大小;若所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,选择由地址转换模块进行地址转换;若所述目标虚拟地址与预设的第一类物理页的虚拟地址不匹配,选择由MMU进行地址转换,从而将所述内存访问请求转发给MMU;地址转换模块可用于:若选择器判断所述目标虚拟地址与预设的第一类物理页的虚拟地址相匹配,根据预设的第一类物理页的虚拟地址对应的物理地址基地址,确定所述目标虚拟地址对应的目标物理地址基地址;根据所述目标物理地址基地址,确定所述目标虚拟地址对应的物理地址。本发明实施例提供的地址转换方法、地址转换模块及系统,可针对不同大小的物理页,区分地址转换方式,从而降低针对较大物理页的地址转换延时,实现提高地址转换效率的目的。虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1