CN117851288A - 地址转换方法、可读介质、电子设备、芯片和程序产品 - Google Patents
地址转换方法、可读介质、电子设备、芯片和程序产品 Download PDFInfo
- Publication number
- CN117851288A CN117851288A CN202410033867.0A CN202410033867A CN117851288A CN 117851288 A CN117851288 A CN 117851288A CN 202410033867 A CN202410033867 A CN 202410033867A CN 117851288 A CN117851288 A CN 117851288A
- Authority
- CN
- China
- Prior art keywords
- page
- page table
- virtual address
- converted
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000013519 translation Methods 0.000 title abstract description 121
- 238000006243 chemical reaction Methods 0.000 claims abstract description 25
- 239000000872 buffer Substances 0.000 claims description 137
- 230000015654 memory Effects 0.000 claims description 85
- 238000004590 computer program Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 14
- 230000009286 beneficial effect Effects 0.000 abstract description 7
- 238000004904 shortening Methods 0.000 abstract description 6
- 230000014616 translation Effects 0.000 description 118
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及信息技术领域,公开了一种地址转换方法、可读介质、电子设备、芯片和程序产品。一方面,基于第i‑1个虚拟地址转换对应的页面尺寸确定第i个虚拟地址转换对应的预测页面尺寸,有利于缩短查找时间。另一方面,走表缓存中仅存储不同页面尺寸对应的最有效级别的页表项,不再存储其他中间页表项,同时,在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,也可以先从预测页面尺寸对应的最有效级别的页表项开始查找,有利于进一步缩短查找时间,进而提高地址转换的效率。
Description
技术领域
本申请涉及信息技术领域,特别涉及一种地址转换方法、可读介质、电子设备、芯片和程序产品。
背景技术
当前,计算机程序由电子设备的中央处理器(central processing unit,CPU)执行,计算机程序中的地址均为虚拟地址(virtual address,VA)。处理器中的内存管理单元(memory management unit,MMU)负责将虚拟地址转换为物理地址(physical address,PA),即为该计算机程序分配可用的物理内存空间,并将该物理地址发送至处理器中的处理器核,处理器核控制数据总线对该物理地址对应的内存空间进行数据的读取/写入(访存)。
计算机程序运行过程中的变量、读取的数据、存储的数据等均需要对应的物理内存空间进行存储,而开发人员在编写计算机程序时使用的是虚拟地址,计算机程序运行过程中需要将虚拟地址转换为物理地址,才能获取到程序运行过程中需要使用的数据,或者将程序运行过程中需要存储的数据写入物理内存空间内,以保证计算机程序的正常运行。
可以理解,若地址转换的时间增加,会使得对应的计算机程序的运行时间增加,进而降低运行效率,影响处理器的整体性能。
发明内容
本申请的目的在于提供一种地址转换方法、可读介质、电子设备、芯片和程序产品。
本申请的第一方面提供了一种地址转换方法,应用于电子设备,包括:获取第i个待转换的虚拟地址,确定第i个待转换的虚拟地址对应的页表项的预测页面尺寸,其中,i为正整数;在电子设备的N级缓冲区中的第j级缓冲区所存储的与预测页面尺寸对应的页表项中,查找与第i个待转换的虚拟地址对应的页表项,其中,第j级缓冲区存储有多个页面尺寸对应的页表项,预测页面尺寸为多个页面尺寸中的一个,其中,N为正整数,j为小于或等于N的正整数;对应于预测页面尺寸对应的页表项中,存在第i个待转换的虚拟地址对应的第一页表项,基于第一页表项将第i个待转换的虚拟地址转换为对应的物理地址。
在本申请实施例中,N级缓冲区可以是N级快速转换缓冲区(translationlookaside buffer,TLB),第j级缓冲区可以是N级缓冲区中的一个,例如,一级TLB、二级TLB等等。
可以理解,在各级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项时,直接先从预测页面尺寸的页表项开始查找。若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于缩短查找时间。
在上述第一方面的一种实现的可能中,确定第i个待转换的虚拟地址对应的页表项的预测页面尺寸,包括:对应于i等于1,将多个页面尺寸中的第一页面尺寸作为预测页面尺寸,其中,第一页面尺寸是预设的尺寸或者随机选择的尺寸;或者对应于i大于1,将第i-1个待转换的虚拟地址对应的页表项的第二页面尺寸作为预测页面尺寸。
在本申请实施例中,若i大于1,第i个待转换的虚拟地址对应的预测页面尺寸为第i-1个待转换的虚拟地址对应的物理地址对应的页表项的页面尺寸。若i等于1,则预测页面尺寸为电子设备100预设的页面尺寸(例如4),或者是随机选择的尺寸。
在上述第一方面的一种实现的可能中,方法还包括:对应于第j级缓冲区所存储的、预测页面尺寸对应的页表项中,不存在第i个待转换的虚拟地址对应的第一页表项,在第j级缓冲区所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项中,查找与第i个待转换的虚拟地址对应的页表项;对应于第j级缓冲区所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项中,存在第i个待转换的虚拟地址对应的第二页表项,基于第二页表项将第i个待转换的虚拟地址转换为对应的物理地址。
在本申请实施例中,若各一级快速转换缓冲区(例如一级快速转换缓冲区、二级快速转换缓冲区等)中存储的预测页面尺寸的页表项中不存在与待转换的虚拟地址对应的页表项,可能是由于预测页面尺寸不完全准确,则依次遍历一级快速转换缓冲区中其他页面尺寸的页表项;若各级快速转换缓冲区中存在对应第i个待转换的虚拟地址的页表项,利用在一级快速转换缓冲区中查找的页表项,确定物理地址。
在上述第一方面的一种实现的可能中,方法还包括:对应于第j级缓冲区所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项中,不存在第i个待转换的虚拟地址对应的第二页表项,在第j+1级缓冲区所存储的页表项中,查找与第i个待转换的虚拟地址对应的页表项;对应于第j+1级缓冲区所存储的页表项中,存在第i个待转换的虚拟地址对应的第三页表项,基于第三页表项将第i个待转换的虚拟地址转换为对应的物理地址。
在本申请实施例中,若第j级缓冲区(例如一级快速转换缓冲区)中不存在对应第i个待转换的虚拟地址的页表项,需要进一步判断第j+1级缓冲区(例如二级快速转换缓冲区)中是否存在对应第i个待转换的虚拟地址的页表项,基于预测页面尺寸在第j+1级缓冲区中查找与待转换的虚拟地址对应的页表项。
其中,在第j+1级缓冲区所存储的页表项中,查找与第i个待转换的虚拟地址对应的页表项也可以包括:在第j+1级缓冲区所存储的与预测页面尺寸对应的页表项中,查找与第i个待转换的虚拟地址对应的页表项;对应于预测页面尺寸对应的页表项中,存在第i个待转换的虚拟地址对应的第三页表项,基于第三页表项将第i个待转换的虚拟地址转换为对应的物理地址。对应于预测页面尺寸对应的页表项中,不存在第i个待转换的虚拟地址对应的第三页表项,在第j+1级缓冲区所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项中,查找与第i个待转换的虚拟地址对应的页表项。
在上述第一方面的一种实现的可能中,电子设备还包括走表缓存,走表缓存储有不同页面尺寸的页表项信息,页表项信息包括存储对应的页表项的存储单元的存储单元地址;并且,方法还包括:对应于N级缓冲区所存储的页表项信息中,都不存在第i个待转换的虚拟地址对应的页表项信息,基于预测页面尺寸在走表缓存所存储的与预测页面尺寸对应的页表项信息中,查找与第i个待转换的虚拟地址对应的页表项信息;对应于预测页面尺寸对应的页表项信息中,存在第i个待转换的虚拟地址对应的第一页表项信息,基于第一页表项信息将第i个待转换的虚拟地址转换为对应的物理地址。
在本申请实施例中,页表项信息表示最有效级别的页表项。基于第一页表项信息将第i个待转换的虚拟地址转换为对应的物理地址,包括:获取第一页表项信息对应的页表项的存储单元的存储单元地址,从第一页表项信息对应的页表项的存储单元中获取第一页表项信息对应的页表项,再基于获取到的页表项将第i个待转换的虚拟地址转换为对应的物理地址。
可以理解,走表缓存中仅存储不同页面尺寸对应的最有效级别的页表项,不再存储其他中间页表项,可以提高走表缓存的命中率,可以缩短查找时间。同时,在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,先从预测页面尺寸对应的最有效级别的页表项开始查找,可以进一步缩短查找时间。
在上述第一方面的一种实现的可能中,方法还包括:对应于走表缓所存储的、预测页面尺寸对应的页表项信息中,不存在第i个待转换的虚拟地址对应的第一页表项信息,在走表缓存所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项信息中,查找与第i个待转换的虚拟地址对应的页表项信息;对应于走表缓存所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项信息中,存在第i个待转换的虚拟地址对应的第二页表项信息,基于第二页表项信息将第i个待转换的虚拟地址转换为对应的物理地址。
在上述第一方面的一种实现的可能中,方法还包括:对应于走表缓存所存储的、多个页面尺寸中除预测页面尺寸以外的页面尺寸对应的页表项信息中,不存在第i个待转换的虚拟地址对应的第二页表项信息,在电子设备的内存所存储的页表项中,查找与第i个待转换的虚拟地址对应的第四页表项,基于第四页表项将第i个待转换的虚拟地址转换为对应的物理地址。
在上述第一方面的一种实现的可能中,方法还包括:对应于是在N级缓冲区中的第1级缓冲区以外的缓冲区查找到与第i个待转换的虚拟地址对应的页表项,将第i个待转换的虚拟地址对应的页表项写入第1级缓冲区。
在上述第一方面的一种实现的可能中,将第i个待转换的虚拟地址对应的页表项写入第1级缓冲区,包括:对应于第1级缓冲区中存在空闲的存储空间,将第i个待转换的虚拟地址对应的页表项写入第1级缓冲区的空闲的存储空间;或者对应于第1级缓冲区中不存在空闲的存储空间,基于替换策略将第i个待转换的虚拟地址对应的页表项写入第1级缓冲区。
在上述第一方面的一种实现的可能中,替换策略至少包括以下一种:随机替换策略、最近最少使用替换策略、最不经常使用替换策略、先进先出替换策略。
本申请的第二方面提供了一种计算机可读存储介质,可读存储介质上存储有指令,该指令在电子设备上执行时使电子设备执行上述第一方面中的任意一种方法。
本申请的第三方面提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于执行存储器中存储的指令以实现上述第一方面中的任意一种方法。
本申请的第四方面提供了一种芯片,包括处理电路、存储介质,存储介质中存储有计算机程序代码;计算机程序序代码被处理电路执行时实现上述第一方面中的任意一种方法。
本申请的第五方面提供了一种程序产品,该程序产品中包括指令,在该指令被电子设备执行时可以使电子设备实现上述第一方面中的任意一种方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1根据本申请的实施例示出了一种地址映射过程的示意图;
图2a根据本申请的实施例示出了一种虚拟地址的位格式的示意图;
图2b根据本申请的实施例示出了一种页表的结构示意图;
图2c根据本申请的实施例示出了一种地址转换的示意图;
图3根据本申请的实施例示出了一种快速转换缓冲区(translation lookasidebuffer,TLB)内页表的结构示意图;
图4根据本申请的实施例示出了一种处理器进行取地址操作或访存操作时,相应的虚拟地址被送入TLB的示意图;
图5根据本申请的实施例示出了一种走表缓存的结构示意图;
图6根据本申请的实施例示出了一种地址转换方法的实施流程示意图;
图7根据本申请的实施例示出了一种基于预测页面尺寸在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项的方法的示意图;
图8a根据本申请的实施例示出了一种走表缓存中存储的最有效级别的页表项的示意图;
图8b根据本申请的实施例示出了另一种走表缓存中存储的最有效级别的页表项的示意图;
图9根据本申请的实施例示出了一种第i个待转换的虚拟地址对应的转换过程的示意图;
图10根据本申请的一些实施例示出了一种电子设备的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种地址转换方法、可读介质、电子设备、芯片和程序产品。
在介绍本申请实施例涉及的技术方案之前,先对部分本申请实施例中的包含的术语进行解释。
(1)虚拟地址与物理地址
在计算机程序被执行的过程中,计算机程序使用的地址均为虚拟地址,由内存管理单元为该计算机程序分配可用的物理地址空间(物理内存空间)。
内存管理单元将计算机程序中使用的虚拟地址映射到具体的物理地址通常以页(page)为单位。在进行内存管理时,内存管理单元会将物理地址空间划分成页;同样,计算机程序的虚拟地址空间也会被划分成页,虚拟地址和物理地址对应的页均会按顺序编号称为页号。地址映射,就是将一个虚拟页映射到一个物理页。
以页面大小(或称页面尺寸)为4千字节(K byte,KB)为例,在地址映射过程中,如图1所示,虚拟地址和物理地址均为64比特位(bit,简称位),相应地,页所占的空间为4KB。虚拟地址和物理地址的低12位(即[11:0]字段)保持不变,也就是,虚拟地址的低12位和物理地址的低12位是相同的,均用来表示在页内的偏移量(offset),在虚拟地址中称之为虚拟页内偏移量(VAoffset),在物理地址中称之为物理页内偏移量(PAoffset)。虚拟地址和物理地址的高位部分(即[63:12]字段),在虚拟地址中称之为虚拟页面号(virtual pagenumber,VPN),在物理地址中称之为物理页帧号(physical frame number,PFN)。可以理解,在地址映射过程中,地址的offset部分保持不变,即VAoffset和PA offset相同。
可以理解,图1仅以页面尺寸为4KB为例对地址映射过程进行介绍,页面尺寸还可以是8KB、16KB、64KB等等,本申请对页面尺寸不做限制。
(2)页表(page table,或translation table)
在计算机程序运行过程中,电子设备通常会为该计算机程序建立完整的从虚拟地址到物理地址的映射关系并保存到页表数据结构中,其中,页表中的每个页表项(或称页表条目)包含了相应的VPN信息和PFN信息。页表存储在电子设备的内存中。
目前,一般都采用多级页表结构。下面仍以虚拟地址为64位、页面尺寸为4KB为例,对多级页表结构进行介绍。
图2a根据本申请的实施例示出了一种虚拟地址的位格式的示意图。如图2a所示,虚拟地址20的[63:48]字段是空闲位,其未被使用或可保留用于附加功能性。虚拟地址20的地址空间是48位,跨越[47:0]字段,用于支持248个虚拟存储器位置。虚拟地址20的位可以被用来对页表进行索引,[47:39]字段对应一级虚拟页号,[38:30]字段对应二级虚拟页号,[29:21]字段对应三级虚拟页号,[20:12]字段对应四级虚拟页号,[11:0]字段对应页内偏移量。
可以理解,一级虚拟页号、二级虚拟页号、三级虚拟页号和四级虚拟页号分别代表一级页表(level 0table)、二级页表(level 1table)、三级页表(level 2table)和四级页表(level 3table)的虚拟页号。
图2b根据本申请的实施例示出了一种页表的结构示意图。如图2b所示,页表21包括4个级别的分级页表:一级页表、二级页表、三级页表和四级页表,每个分级页表包含可由虚拟地址20寻址的页表项。
图2c根据本申请的实施例示出了一种地址转换的示意图。如图2c所示,电子设备确定一级页表的基址(对应的物理地址的基地址),基于一级页表的基址和虚拟地址20中的一级虚拟页号找到一级页表项地址,在一级页表中依据一级页表项地址获取对应的一级页表项,一级页表项为一级描述符(descriptor),用于指示二级页表的基址(base)。从一级页表中读取一级页表项,基于一级页表项的一级描述符(二级页表的基址)和二级虚拟页号找到二级页表项地址,在二级页表中依据二级页表项地址获取对应的页表项,二级页表项为二级描述符,用于指示三级页表的基址。从二级页表中读取二级页表项,基于二级页表项的二级描述符(三级页表的基址)和三级虚拟页号找到三级页表项地址,在三级页表中依据三级页表项地址获取对应的页表项,三级页表项为三级描述符,用于指示四级页表的基址。从三级页表中读取三级页表项,基于三级页表项的三级描述符(四级页表的基址)和四级虚拟页号找到四级页表项地址,在四级页表中依据四级页表项地址获取对应的页表项,四级页表项(page table entry,PTE)为四级描述符,用于指示物理地址的基址。基于物理地址的基址和偏移量可以确定虚拟地址20对应的物理地址。
可以理解,一级描述符、二级描述符和三级描述符均为表描述符(tabledescriptor),即一级描述符、二级描述符和三级描述符的内容均为下一级页表的基址,四级描述符为页描述符(page descriptor),即四级描述符的内容为物理地址的基址,并且指向4KB的页面。
在另一些实施例中,二级描述符和三级描述符还可以是块描述符(blockdescriptor),即二级描述符和三级描述符的内容为物理地址的基址,并且二级描述符指向1吉字节(Gbyte,GB)的巨型页,三级描述符指向2兆字节(M byte,MB)的巨型页。
(3)快速转换缓冲区(translation lookaside buffer,TLB)
由于页表存储在内存中,虚拟地址到物理地址的转换需要多次访问内存,大大降低了访问的性能,因此通常采用快速转换缓冲区(或称为转译后备缓冲器、转址旁路缓存、快表等等)在处理器片上进行缓存,通过TLB来缓存页表的部分页表项(PTE)。可以理解,TLB可以看成是页表的缓存,存储有完整的页表的一部分。
图3根据本申请的实施例示出了一种TLB内页表的结构示意图。如图3所示,TLB包含了32个表项:[VPN00:PFN00],[VPN01:PFN01],…,[VPN31:PFN31]。可以理解,TLB内每个表项的结构和页表内每个表项的结构是相似的。
下面仍以虚拟地址为64位、页面尺寸为4KB为例,对TLB的结构进行介绍。
其中,VPN是虚拟地址的高位。以64位地址宽度(即64比特位的地址)为例,一个虚拟地址可以表示为VA[63:0],当页面尺寸为4KB的时候,VPN对应为VA[63:12],即VPN不包含虚拟地址的低12位。物理地址可以表示为PA[63:0],当页面尺寸为4KB的时候,PFN对应为PA[63:12],即PFN也不包含物理地址的低12位。
如图4所示,当处理器进行取地址操作或访存操作时,相应的虚拟地址会被送入TLB。TLB会从该虚拟地址中截取出VPN,然后使用该VPN和TLB内的各个表项进行对比。如果和其中某一个表项内的VPN相同,则输出该表项内的PFN字段,这被认为是发生了TLB命中(hit)。如果没有一个表项的VPN和该待转换的VPN相同,则被认为是发生了TLB未命中(或称为丢失,miss)。
可以理解,在一些实施例中,TLB也可以是多级TLB结构,例如N级TLB结构,其中,N为正整数。例如,二级TLB结构中包括一级快速转换缓冲区(简称一级TLB,或L1 TLB)和二级快速转换缓冲区(简称二级TLB,或L2 TLB)。二级TLB相对一级TLB是包含关系,一级TLB的页表缺失会自动从二级TLB中查找并取回,硬件会自动维护包含关系,二级TLB包含有一级TLB中存储的所有页表。在一级TLB未命中的情况下,会发送请求给二级TLB,采用二级TLB对虚拟地址进行转换,如此采用多级TLB结构,可以提升整个TLB的命中率,进而提高地址转换速率。
在一些实施例中,TLB中混合储存了页面尺寸为4KB的页对应的页表项、页面尺寸为2MB的巨型页对应的页表项和页面尺寸为1GB的巨型页对应的页表项。以二级TLB为例,当一级TLB未命中时,首先以虚拟地址VA[20:12]对应的虚拟页号为索引读取二级TLB中的页表项,若命中页面尺寸为4KB的页表项,则返回物理地址;若未命中页面尺寸为4KB的页表项,则继续以虚拟地址VA[29:21]对应的虚拟页号为索引读取二级TLB中的页表项。若命中页面尺寸为2MB的页表项,则返回物理地址;若未命中页面尺寸为2MB的页表项,则以虚拟地址VA[38:30]对应的虚拟页号为索引读取二级TLB中的页表项。若访问二级TLB三次后页面尺寸为4KB、页面尺寸为2MB、页面尺寸为1GB的页面对应的页表项均未命中,则被认为产生了二级TLB缺失。
可以理解,以上仅以二级TLB为例介绍多级TLB结构进行地址转换的过程,在另一些实施例中,多级TLB结构也可以包括更多级别的TLB。
(4)走表缓存(walk cache,或MMU cache)
当TLB未命中,就会使用页表遍历器(page table walker,PTW,或称tablewalker,TW)去访问内存中的页表内容,从页表内搜索和该VPN对应的PFN,然后将这一VPN和PFN信息填充入TLB内,这个过程称为页表遍历(page table walk,PTW,或者translationtable walk,TTW)。具体地,页表遍历的过程可以参考图2c所示的地址转换的过程。
由于页表遍历过程需要多次访问内存,大大降低了访问的性能,因此,在一些实施例中,通常采用走表缓存存储中间页表项,例如图2c所示的一级页表项、二级页表项和三级页表项。示例性地,图5根据本申请的实施例示出了一种走表缓存的结构示意图。如图5所示,走表缓存中存储了多个“一级页表基址”、“一级虚拟页号”、“一级页表项”,多个“二级页表基址”、“二级虚拟页号”、“二级页表项”和多个“三级页表基址”、“三级虚拟页号”、“三级页表项”。
页表遍历器在访问内存中的每级页表前,先在走表缓存中查找,若命中则可以跳过内存中该级别的页表访问,直接进行下一级别的页表的访问,进而提高地址转换的效率。
可以理解,以地址转换过程的页面尺寸为4KB为例,虚拟地址对应的物理地址的基址在四级页表中,即可以基于四级页表项(四级描述符)和偏移量确定虚拟地址物理地址。
若走表缓存命中三级页表项(三级描述符),则可以直接从走表缓存中获取四级页表项的基址(三级页表项的内容),仅需通过四级页表项的基址在内存中访问四级页表项即可确定物理地址。即,可以跳过对内存中的一级页表、二级页表和三级页表的访问,直接对内存中的四级页表进行访问。
若走表缓存命中二级页表项(二级描述符),则可以直接从走表缓存中获取三级页表项的基址(二级页表项的内容),再通过三级页表项的基址访问内存中的三级页表项,基于三级页表项的内容(四级页表项的基址)访问内存中的四级页表项,即可确定物理地址。即,可以跳过对内存中的一级页表、二级页表的访问,直接对内存中的三级页表和四级页表进行访问。
若走表缓存命中一级页表项(一级描述符),则可以直接从走表缓存中获取二级页表项的基址(一级页表项的内容),再通过二级页表项的基址访问内存中的二级页表项,基于二级页表项的内容(三级页表项的基址)访问内存中的三级页表项,再通过三级页表项的基址访问内存中的三级页表项,基于三级页表项的内容(四级页表项的基址)访问内存中的四级页表项,即可确定物理地址。即,可以跳过对内存中的一级页表的访问,直接对内存中的二级页表、三级页表和四级页表进行访问。
可以理解,命中的走表缓存命中的页表项对应的页面级别越高,在内存中访问的页表的等级越少,即,访问效率越高。
可以理解,最有效级别的页表项为最高级别的中间页表项,即,最有效级别的页表项存储的是虚拟地址对应的存储物理地址的页表项(例如块描述符、页描述符等)的存储单元的地址。例如,在四级页表中,三级页表项为页面尺寸为4KB的页对应的最有效级别的页表项(the most efficient level);二级页表项为页面尺寸为2MB的页对应的最有效级别的页表项。
综上,以二级TLB为例,当前地址转换的过程通常包括:获取待转换的虚拟地址,在一级TLB中查找与待转换的虚拟地址对应的页表项;若一级TLB命中,则基于对应的页表项进行地址转换得到物理地址;若一级TLB未命中,则在二级TLB中查找与待转换的虚拟地址对应的页表项。若二级TLB命中,则基于对应的页表项进行地址转换得到物理地址;若二级TLB未命中,则在走表缓存中查找与待转换的虚拟地址对应的中间页表项。若走表缓存命中,则基于对应的页表项对内存中的页表进行访问,确定物理地址;若走表缓存未命中,则在内存中基于对应的页表项对内存中的页表进行访问,确定物理地址。
可以理解,上述过程仅为一个虚拟地址转换为对应的物理地址的过程,计算机程序运行过程中包括多个虚拟地址,每个虚拟地址转换为对应的物理地址均可参照上述地址转换的过程。
然而,如前所述,TLB中混合储存了页面尺寸为4KB、页面尺寸为2MB、页面尺寸为1GB的页面对应的页表项。每个虚拟地址在各级TLB中查找与待转换的虚拟地址对应的页表项时,均需要依次判断页面尺寸为4KB的页表项、页面尺寸为2MB的页表项、和页面尺寸为1GB的页表项是否命中,查找时间较长。
并且,页表缓存中存储了多个级别的中间页表项,若命中低级别(非最有效级别)的页表项(例如第一页表项),仍需要对内存进行多次访问,影响地址转换的效率。
由于计算机程序中的虚拟地址存在时间和空间的连续性,例如第一计算机程序中的第1个变量变量a对应的虚拟地址为第1个虚拟地址,则第2个变量变量b的虚拟地址为第2个虚拟地址,且变量a和变量b的虚拟地址是连续的,例如仅有偏移量不同,即存储在内存中的同一页(4KB的页或2MB的巨型页)。也就是,变量a和变量b的物理地址对应的页面尺寸是相同的。
本申请实施例提出了一种地址转换方法,在上述方法的基础上,
一方面,基于第i-1个虚拟地址转换对应的页面尺寸确定第i个虚拟地址转换对应的预测页面尺寸。在各级TLB中查找与待转换的虚拟地址对应的页表项时,直接先从预测页面尺寸的页表项开始查找。其中,i为正整数。
例如,第1个虚拟地址转换对应二级TLB的页面尺寸为2MB,则判断第2个虚拟地址转换对应二级TLB的页面尺寸也为2MB,当一级TLB未命中,在二级TLB中查找与待转换的虚拟地址对应的页表项时,直接先从页面尺寸为2MB的页表项开始查找,若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于缩短查找时间。即使预测结果不准确,也不会增加查找时间,也就是,只要有一个虚拟地址转换对应的页面尺寸的预测结果准确,便可以缩短地址转换的时间。
另一方面,走表缓存中仅存储不同页面尺寸对应的最有效级别的页表项,不再存储其他中间页表项,可以提高走表缓存的命中率,可以进一步缩短查找时间。同时,在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,也可以先从预测页面尺寸对应的最有效级别的页表项开始查找。
可以理解,最有效级别的页表项为最高级别的中间页表项。例如,在四级页表中,可以通过三级页表项的内容确定对应的页面尺寸,再基于页面尺寸确定最有效级别的页表项。若三级页表项的内容为四级页表的基址,说明页面尺寸为4KB,则三级页表项为页面尺寸为4KB的页对应的最有效级别的页表项。若三级页表项的内容为物理地址的基址,说明页面尺寸为2MB,则二级页表项为页面尺寸为2MB的页对应的最有效级别的页表项。
例如,对应于四级页表,走表缓存中仅存储4KB的页对应的三级页表项和页面尺寸为2MB的页对应的二级页表项。在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,若预测页面尺寸为2MB,则先从走表缓存中存储的页面尺寸为2MB的页对应的二级页表项开始查找,若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于进一步缩短查找时间,进而提高地址转换的效率。
可以理解,本申请实施例提供的地址转换方法,可以应用于能够进行虚拟地址和物理地址转换的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例对电子设备的具体类型不做任何限制。
具体地,图6根据本申请的实施例示出了一种地址转换方法的实施流程示意图。可以理解,图6所示流程的各步骤执行主体均为电子设备100。为了简化描述,以下在介绍图6所示流程各步骤时将不再重复描述各步骤的执行主体。如图6所示,该流程包括但不限于以下步骤:
S601:获取第i个待转换的虚拟地址。
在一些实施例中,电子设备100运行计算机程序时,获取第i个待转换的虚拟地址,其中i为正整数。
S602:基于预测页面尺寸在一级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项。
在一些实施例中,电子设备100确定第i个待转换的虚拟地址的VPN信息,基于第i个待转换的虚拟地址的VPN信息,在一级快速转换缓冲区中基于预测页面尺寸查找匹配的VPN信息,即相同的VPN信息。
可以理解,预测页面尺寸可以是电子设备100最近使用的页面尺寸(例如一级快速转换缓冲区最近命中时对应的页面尺寸或者二级快速转换缓冲区最近命中时对应的页面尺寸等),例如4KB对应的预测等级是4,或者2MB对应的预测等级是3。
也就是,若i大于1,第i个待转换的虚拟地址对应的预测页面尺寸为第i-1个待转换的虚拟地址对应的物理地址对应的页表项的页面尺寸。若i等于1,则预测页面尺寸为电子设备100预设的页面尺寸(例如4),或者是随机选择的尺寸。可以理解,预设的页面尺寸或随机选择的尺寸均为快速转换缓冲区中存储的多个页面尺寸中的一个。
可以理解,若一级快速转换缓冲区未命中预测页面尺寸的页表项,即一级快速转换缓冲区中预测页面尺寸的页表项中不存在与待转换的虚拟地址对应的页表项,可能是由于预测页面尺寸不完全准确,则依次遍历一级快速转换缓冲区中其他页面尺寸的页表项。
示例性地,图7根据本申请的实施例示出了一种基于预测页面尺寸在快速转换缓冲区中查找与待转换的虚拟地址对应的页表项的方法的示意图。
如图7所示,将全部页面尺寸存储在一个12位的寄存器中,该寄存器可以称为尺寸预测器,该寄存器中每3位编码一个唯一的页面或块大小。页面尺寸预测可以被初始化为“1GB—2MB—4KB Contig—4KB”的顺序,例如预测页面尺寸位4KB,即初始化后或者第i-1个待转换的虚拟地址对应的物理地址对应的页表尺寸为4KB,则先在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页面尺寸为4KB的页表项。若未命中,则在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页面尺寸为其他尺寸的页表项,例如4KContig,将该寄存器中的内容右移3位。若未命中,则在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页面尺寸为其他尺寸的页表项,例如2MB,将该寄存器中的内容右移3位。以此类推,直至全部页面尺寸均被遍历。
上述过程中,若命中,则将命中的页表项对应的页面尺寸作为预测页面尺寸,例如图7所示的,将该寄存器的内容更新,即选择命中的页表项对应的页面尺寸到该寄存器的最低3位,其余页面尺寸可以按照初始化的顺序填入该寄存器的高9位,或者按照随机顺序填入该寄存器的高9位,以便于第i+1次使用。
可以理解,一级快速转换缓冲区的结构可以参考上述图3所示的结构示意图,本申请在此不做赘述。
S603:判断一级快速缓冲区是否命中。
在一些实施例中,若判断结果为是,说明一级快速转换缓冲区中存在对应第i个待转换的虚拟地址的页表项,则执行步骤S604,利用在一级快速转换缓冲区中查找的页表项,确定物理地址。
在另一些实施例中,若判断结果为否,说明一级快速转换缓冲区中不存在对应第i个待转换的虚拟地址的页表项,需要进一步判断二级快速转换缓冲区中是否存在对应第i个待转换的虚拟地址的页表项,则执行步骤S606,基于预测页面尺寸在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项。
S604:利用在一级快速转换缓冲区中查找的页表项,确定物理地址。
在一些实施例中,电子设备100确定一级快速转换缓冲区中存在对应第i个待转换的虚拟地址的页表项,即确定一级快速转换缓冲区中存在与第i个待转换的虚拟地址的VPN信息相同的VPN信息,基于一级快速转换缓冲区中该VPN信息对应的物理地址的PFN信息确定物理地址。
S605:基于物理地址对应的页表信息更新预测页面尺寸。
在一些实施例中,电子设备100确定一级快速转换缓冲区中存在对应待转换的虚拟地址的页表项后,将命中的页表项对应的页面尺寸作为预测页面尺寸,例如上图7所示的,将该寄存器的内容更新,即选择命中的页表项对应的页面尺寸到该寄存器的最低3位,其余页面尺寸可以按照初始化的顺序填入该寄存器的高9位,或者按照随机顺序填入该寄存器的高9位,以便于第i+1次使用。
在一些实施例中,若当前计算机程序对应的虚拟地址并未完全转换,则进行第i+1个待转换的虚拟地址的地址转换。
可以理解,计算机程序运行过程中的变量、读取的数据、存储的数据等均需要对应的物理内存空间进行存储,而开发人员在编写计算机程序时使用的是虚拟地址,计算机程序运行过程中需要将虚拟地址依次转换为物理地址,才能获取到程序运行过程中需要使用的数据,或者将程序运行过程中需要存储的数据写入物理内存空间内,进而保证计算机程序的正常运行。若当前计算机程序对应的虚拟地址并未完全转换,即当前计算机程序中还存在未转换的虚拟地址,则需要继续对未转换的虚拟地址进行地址转换。
S606:基于预测页面尺寸在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项。
在一些实施例中,电子设备100确定一级快速转换缓冲区中不存在对应第i个待转换的虚拟地址的页表项,即确定一级快速转换缓冲区中不存在与第i个待转换的虚拟地址的VPN信息相同的VPN信息,则基于预测页面尺寸在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项。
可以理解,预测页面尺寸可以是电子设备100最近使用的页面尺寸,例如4KB对应的预测等级是4,或者2MB对应的预测等级是3,也就是,第i个待转换的虚拟地址对应的预测页面尺寸为第i-1个待转换的虚拟地址对应的物理地址对应的页表信息。若i=1,则预测页面尺寸为电子设备100预设的页面尺寸(例如4),或者是随机选择的尺寸。
可以理解,若二级快速转换缓冲区未命中预测页面尺寸的页表项,即二级快速转换缓冲区中预测页面尺寸的页表项中不存在与待转换的虚拟地址对应的页表项,可能是由于预测页面尺寸不完全准确,则依次遍历二级快速转换缓冲区中其他页面尺寸的页表项。
具体地,基于预测页面尺寸在二级快速转换缓冲区中查找与待转换的虚拟地址对应的页表项的方法可以参考图7的相关描述,本申请在此不做赘述。
S607:判断二级快速缓冲区是否命中。
在一些实施例中,若判断结果为是,说明二级快速转换缓冲区中存在对应待转换的虚拟地址的页表项,则执行步骤S608,利用在二级快速转换缓冲区中查找的页表项,确定物理地址,并将物理地址回填至一级快速转换缓冲区。
在另一些实施例中,若判断结果为否,说明二级快速转换缓冲区中不存在对应待转换的虚拟地址的页表项,需要进一步判断走表缓存中是否存在对应待转换的虚拟地址的页表项,则执行步骤S610,基于走表缓存预测尺寸在走表缓存中查找与待转换的虚拟地址对应的页表项。
S608:利用在二级快速转换缓冲区中查找的页表项,确定物理地址,并将物理地址回填至一级快速转换缓冲区。
在一些实施例中,电子设备100确定二级快速转换缓冲区中存在对应待转换的虚拟地址的页表项,即确定二级快速转换缓冲区中存在与待转换的虚拟地址的VPN信息相同的VPN信息,基于二级快速转换缓冲区中该VPN信息对应的物理地址的PFN信息确定物理地址,并将物理地址回填至一级快速转换缓冲区,以便于后续查找。
在一些实施例中,若一级快速转换缓冲区中存在空闲的存储空间,将第i个待转换的虚拟地址对应的页表项写入一级快速转换缓冲区中空闲的存储空间。
在另一些实施例中,若一级快速转换缓冲区的页表项已满且需要添加新的页表项(回填的物理地址),根据替换策略确定被替换的旧页表项,由新页表项替换旧页表项,将新页表项写入一级快速转换缓冲区中。即,若一级快速转换缓冲区中不存在空闲的存储空间,基于替换策略将第i个待转换的虚拟地址对应的页表项写入一级快速转换缓冲区中。其中,替换策略包括随机替换(random)、最近最少使用(LRU)、最不经常使用(LFU)或者先进先出(FIFO)等等策略。
可以理解,在更新完一级快速转换缓冲区的页表项后,电子设备100会自动更新二级快速转换缓冲区和走表缓存中的对应的页表项。
在一些实施例中,若当前计算机程序对应的虚拟地址并未完全转换,则进行第i+1个待转换的虚拟地址的地址转换。
S609:基于物理地址对应的页表信息更新预测页面尺寸。
在一些实施例中,电子设备100确定二级快速转换缓冲区中存在对应待转换的虚拟地址的页表项后,将命中的页表项对应的页面尺寸作为预测页面尺寸,例如上图7所示的,将该寄存器的内容更新,即选择命中的页表项对应的页面尺寸到该寄存器的最低3位,其余页面尺寸可以按照初始化的顺序填入该寄存器的高9位,或者按照随机顺序填入该寄存器的高9位,以便于第i+1次使用。
S610:基于走表缓存预测尺寸在走表缓存中查找与待转换的虚拟地址对应的页表项。
在一些实施例中,电子设备100确定二级快速转换缓冲区中不存在对应待转换的虚拟地址的页表项,则基于走表缓存预测尺寸在走表缓存中查找与待转换的虚拟地址对应的页表项。
可以理解,走表缓存预测尺寸为页面预测尺寸对应的最有效级别的页表项,即,走表缓存预测尺可以是根据页面预测尺寸(例如二级快速转换缓冲区最近命中时对应的页面尺寸)确定的,例如二级快速转换缓冲区最近命中时对应的页面尺寸是4KB,对应的预测等级是4,则走表缓存对应的预测等级为3(二级快速转换缓冲区对应的预测等级减1)。可以理解,若二级快速转换缓冲区最近命中时对应的页面尺寸是4KB,对应的预测等级是4(四级页表),则走表缓存对应的预测等级为3(三级页表,即最有效级别的页表项)。
可以理解,走表缓存中存储的页表项可以是根据二级快速转换缓冲区中的页表项的信息确定的。并且,走表缓存中存储最有效级别的页表项。
例如,参考图8a所示的一种走表缓存中存储的最有效级别的页表项的示意图。页面尺寸为2MB,电子设备100的页表遍历器确定三级页表项(三级描述符)的类型,若三级描述符为块描述符,则说明三级描述符的内容为物理地址的基址,并且三级描述符指向2MB的巨型页,电子设备100的页表遍历器将二级页表项存储至走表缓存中。
或例如,参考图8b所示的另一种走表缓存中存储的最有效级别的页表项的示意图。页面尺寸为4KB,电子设备100的页表遍历器确定三级页表项(三级描述符)的类型,若三级描述符为表描述符,则说明三级描述符的内容为四级页表的基址,电子设备100的页表遍历器将三级页表项存储至走表缓存中。
可以理解,在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,若走表缓存预测尺寸为2MB,则先从走表缓存中存储的页面尺寸为2MB的页对应的二级页表项开始查找;若走表缓存预测尺寸为4KB,则先从走表缓存中存储的页面尺寸为4KB的页对应的三级页表项开始查找。若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于进一步缩短查找时间,进而提高地址转换的效率。
S611:判断走表缓存是否命中。
在一些实施例中,若判断结果为是,说明走表缓存中存在对应待转换的虚拟地址的页表项,则执行步骤S612,利用在走表缓存中查找的页表项,访问内存中的页表并确定物理地址并将物理地址回填至一级快速转换缓冲区。
在另一些实施例中,若判断结果为否,说明走表缓存中不存在对应待转换的虚拟地址的页表项,需要进一步判断内存中的页表中是否存在对应待转换的虚拟地址的页表项,则执行步骤S613,对内存中的页表进行访问并确定物理地址并将物理地址回填至一级快速转换缓冲区。
S612:利用在走表缓存中查找的页表项,访问内存中的页表并确定物理地址并将物理地址回填至一级快速转换缓冲区。
在一些实施例中,电子设备100确定走表缓存中存在对应待转换的虚拟地址的页表项,即确定走表缓存中存在与待转换的虚拟地址的VPN信息相同的VPN信息,基于走表缓存中该VPN信息对应的物理地址的PFN信息确定物理地址,并将物理地址回填至一级快速转换缓冲区,以便于后续查找。
在一些实施例中,若一级快速转换缓冲区的页表项已满且需要添加新的页表项(回填的物理地址),根据替换策略确定被替换的旧页表项,由新页表项替换旧页表项,将新页表项写入一级快速转换缓冲区中,其中,替换策略包括随机替换、最近最少使用、最不经常使用或者先进先出等等策略。
可以理解,在更新完一级快速转换缓冲区的页表项后,电子设备100会自动更新二级快速转换缓冲区和走表缓存中的对应的页表项。
在一些实施例中,若当前计算机程序对应的虚拟地址并未完全转换,则进行第i+1个待转换的虚拟地址的地址转换。
S613:对内存中的页表进行访问并确定物理地址并将物理地址回填至一级快速转换缓冲区。
在一些实施例中,电子设备100确定走表缓存中不存在对应待转换的虚拟地址的页表项,则对内存中的页表进行访问并确定物理地址,并将物理地址回填至一级快速转换缓冲区,以便于后续查找。
在一些实施例中,若一级快速转换缓冲区的页表项已满且需要添加新的页表项(回填的物理地址),根据替换策略确定被替换的旧页表项,由新页表项替换旧页表项,将新页表项写入一级快速转换缓冲区中,其中,替换策略包括随机替换、最近最少使用、最不经常使用或者先进先出等等策略。
可以理解,在更新完一级快速转换缓冲区的页表项后,电子设备100会自动更新二级快速转换缓冲区和走表缓存中的对应的页表项。
在一些实施例中,若当前计算机程序对应的虚拟地址并未完全转换,则进行第i+1个待转换的虚拟地址的地址转换。
可以理解,在另一些实施例中,根据实际需求,上述图6所示的各步骤可以组合、删除或者替换为其他利于实现本申请目的的步骤等,例如可以将上述步骤S607与步骤S608组合为一个步骤,本申请在此不做限制。
可以理解,图6仅以二级TLB为例介绍多级TLB结构进行地址转换的过程。在另一些实施例中,多级TLB结构也可以包括更多级别的TLB。
并且,图6仅以在各级TLB中查找待转换虚拟地址对应的页表项时,均先从预测页面尺寸对应的页表项开始查找为例,介绍多级TLB结构进行地址转换的过程。在另一些实施例中,也可以只在多级TLB中的部分级别的TLB中查找待转换虚拟地址对应的页表项时,先从预测页面尺寸对应的页表项开始查找,本申请对此不做限制。
图9根据本申请的实施例示出了一种第i个待转换的虚拟地址对应的转换过程的示意图。
如图9所示,当L1 TLB发生未命中时,向尺寸预测器发送查找请求。尺寸预测器接收到查找请求后,确定预测等级,并将预测等级发送至编码器。编码器将预测等级解码,得到L2 TLB预测尺寸(预测页面尺寸),并将预测页面尺寸发送至L2 TLB。L2 TLB按照预测页面尺寸查找,若命中,则将物理地址回填至L1 TLB;若未命中,则按照预测页面尺寸的下一尺寸查找;若最终未命中,则将预测等级减1,并发送至编码器。编码器将接收到的预测等级解码,得到走表缓存预测尺寸,并将走表缓存预测尺寸发送至走遍缓存。走表缓存按照走表缓存预测尺寸查找,若命中或最终未命中,则将信息发送至页表遍历器;若未命中,则按照走表缓存预测尺寸的下一尺寸查找。
综上所述,本申请提出的地址转换方法,一方面,基于第i-1个虚拟地址转换对应的页面尺寸确定第i个虚拟地址转换对应的预测页面尺寸。在各级TLB中查找与待转换的虚拟地址对应的页表项时,直接先从预测页面尺寸的页表项开始查找。其中,i为正整数。若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于缩短查找时间。即使预测结果不准确,也不会增加查找时间,也就是,只要有一个虚拟地址转换对应的页面尺寸的预测结果准确,便可以缩短地址转换的时间。
另一方面,走表缓存中仅存储不同页面尺寸对应的最有效级别的页表项,不再存储其他中间页表项,可以提高走表缓存的命中率,可以进一步缩短查找时间。同时,在走表缓存中查找与待转换的虚拟地址对应的中间页表项时,也可以先从走表缓存预测尺寸对应的最有效级别的页表项开始查找。若预测结果完全准确,则可以直接命中,无需依次判断各个页面尺寸,有利于进一步缩短查找时间,进而提高地址转换的效率。
为便于理解本申请实施例的技术方案,以电子设备100为例说明本申请实施例提供的地址转换方法的适用的电子设备的结构。
进一步地,图10根据本申请的一些实施例示出了一种电子设备100的结构示意图。如图10所示,电子设备100包括一个或多个处理器101、总线102、存储器103以及一个或多个接口104。
处理器101为一个通用中央处理器、网络处理器(network processing,NP)、微处理器、或者为一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。可选地,上述PLD为复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
示例性地,处理器101包括物理核(或称处理器核,core)111和内存管理单元112,物理核111与内存管理单元112通过处理器101的内部总线相连。内存管理单元112为物理核111提供从VA到PA的地址转换功能。可选地,一个处理器101可以包括一个或多个物理核111,每个物理核对应一个内存管理单元112。在一些实施例中,地址转换功能包括基于内存页表的页表遍历功能,如page table walk功能。
可选地,内存管理单元112还为处理器的外设提供地址转换功能。外设包括处理器外部的物理网卡、显卡等。可选地,外设还包括处理器内部具备诸如网卡、显卡等功能的芯片或组件。
总线102用于在上述组件之间传送信息。可选地,总线102分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。可选地,总线也称为通信总线。
可选地,存储器103为只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、光盘(包括只读光盘(compact disc readonly memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器103独立存在,并通过总线102与处理器101相连接,或者,存储器103与处理器101集成在一起。
接口104使用任何收发器一类的装置,用于与其它设备或通信网络通信。可选地,接口也称为通信接口。接口104包括有线通信接口,可选地,还包括无线通信接口。其中,有线通信接口例如以太网接口等。可选地,以太网接口为光接口、电接口或其组合。无线通信接口为无线局域网(wireless local area networks,WLAN)接口、蜂窝网络通信接口或其组合等。
可选地,在一些实施例中,电子设备包括多个处理器。这些处理器中的每一个为一个单核处理器,或者一个多核处理器。可选地,这里的处理器指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还包括输出设备105和输入设备106。输出设备105和处理器101通信,能够以多种方式来显示信息。例如,输出设备105为液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备106和处理器101通信,能够以多种方式接收用户的输入。例如,输入设备106是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器103用于存储执行本申请方案的程序代码110,处理器101能够执行存储器103中存储的程序代码110。该程序代码中包括一个或多个软件模块,该计算机设备能够通过处理器101以及存储器103中的程序代码110,来实现本申请实施例提供的地址转换方法。
可以理解,电子设备100可以是能够进行虚拟地址和物理地址转换的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机、上网本,以及蜂窝电话、个人数字助理、增强现实/虚拟现实设备等,本申请实施例不做限定。
可以理解,图10所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。
本申请实施例还提供了一种芯片,芯片系统包括处理电路、存储介质,存储介质中存储有计算机程序代码;计算机程序序代码被处理电路执行时实现本申请实施例提供的指令处理方法。
本申请实施例还提供了一种程序产品,该程序产品中包括指令,在该指令被电子设备执行时可以使电子设备实现本申请实施例提供的指令处理方法。
本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,DSP)、微控制器、专用集成电路(application specific integrated circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、磁光盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (14)
1.一种地址转换方法,应用于电子设备,其特征在于,包括:
获取第i个待转换的虚拟地址,确定所述第i个待转换的虚拟地址对应的页表项的预测页面尺寸,其中,i为正整数;
在所述电子设备的N级缓冲区中的第j级缓冲区所存储的与所述预测页面尺寸对应的页表项中,查找与所述第i个待转换的虚拟地址对应的页表项,其中,所述第j级缓冲区存储有多个页面尺寸对应的页表项,所述预测页面尺寸为所述多个页面尺寸中的一个,其中,N为正整数,j为小于或等于N的正整数;
对应于所述预测页面尺寸对应的页表项中,存在所述第i个待转换的虚拟地址对应的第一页表项,基于所述第一页表项将所述第i个待转换的虚拟地址转换为对应的物理地址。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第i个待转换的虚拟地址对应的页表项的预测页面尺寸,包括:
对应于i等于1,将所述多个页面尺寸中的第一页面尺寸作为所述预测页面尺寸,其中,所述第一页面尺寸是预设的尺寸或者随机选择的尺寸;或者
对应于i大于1,将第i-1个待转换的虚拟地址对应的页表项的第二页面尺寸作为所述预测页面尺寸。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对应于所述第j级缓冲区所存储的、所述预测页面尺寸对应的页表项中,不存在所述第i个待转换的虚拟地址对应的第一页表项,在所述第j级缓冲区所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项中,查找与所述第i个待转换的虚拟地址对应的页表项;
对应于所述第j级缓冲区所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项中,存在所述第i个待转换的虚拟地址对应的第二页表项,基于所述第二页表项将所述第i个待转换的虚拟地址转换为对应的物理地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对应于所述第j级缓冲区所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项中,不存在所述第i个待转换的虚拟地址对应的第二页表项,在第j+1级缓冲区所存储的页表项中,查找与所述第i个待转换的虚拟地址对应的页表项;
对应于所述第j+1级缓冲区所存储的页表项中,存在所述第i个待转换的虚拟地址对应的第三页表项,基于所述第三页表项将所述第i个待转换的虚拟地址转换为对应的物理地址。
5.根据权利要求4所述的方法,其特征在于,所述电子设备还包括走表缓存,所述走表缓存储有不同页面尺寸的页表项信息,所述页表项信息包括存储对应的页表项的存储单元的存储单元地址;并且,所述方法还包括:
对应于所述N级缓冲区所存储的页表项信息中,都不存在所述第i个待转换的虚拟地址对应的页表项信息,基于所述预测页面尺寸在所述走表缓存所存储的与所述预测页面尺寸对应的页表项信息中,查找与所述第i个待转换的虚拟地址对应的页表项信息;
对应于所述预测页面尺寸对应的页表项信息中,存在所述第i个待转换的虚拟地址对应的第一页表项信息,基于所述第一页表项信息将所述第i个待转换的虚拟地址转换为对应的物理地址。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对应于所述走表缓所存储的、所述预测页面尺寸对应的页表项信息中,不存在所述第i个待转换的虚拟地址对应的第一页表项信息,在所述走表缓存所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项信息中,查找与所述第i个待转换的虚拟地址对应的页表项信息;
对应于所述走表缓存所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项信息中,存在所述第i个待转换的虚拟地址对应的第二页表项信息,基于所述第二页表项信息将所述第i个待转换的虚拟地址转换为对应的物理地址。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
对应于所述走表缓存所存储的、多个页面尺寸中除所述预测页面尺寸以外的页面尺寸对应的页表项信息中,不存在所述第i个待转换的虚拟地址对应的第二页表项信息,在所述电子设备的内存所存储的页表项中,查找与所述第i个待转换的虚拟地址对应的第四页表项,基于所述第四页表项将所述第i个待转换的虚拟地址转换为对应的物理地址。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
对应于是在所述N级缓冲区中的第1级缓冲区以外的缓冲区查找到与所述第i个待转换的虚拟地址对应的页表项,将所述第i个待转换的虚拟地址对应的页表项写入所述第1级缓冲区。
9.根据权利要求8所述的方法,其特征在于,所述将所述第i个待转换的虚拟地址对应的页表项写入所述第1级缓冲区,包括:
对应于所述第1级缓冲区中存在空闲的存储空间,将所述第i个待转换的虚拟地址对应的页表项写入所述第1级缓冲区的空闲的存储空间;或者
对应于所述第1级缓冲区中不存在空闲的存储空间,基于替换策略将所述第i个待转换的虚拟地址对应的页表项写入所述第1级缓冲区。
10.根据权利要求9所述的方法,其特征在于,所述替换策略至少包括以下一种:
随机替换策略、最近最少使用替换策略、最不经常使用替换策略、先进先出替换策略。
11.一种可读介质,其特征在于,所述可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行权利要求1至10中任一项所述的方法。
12.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,是电子设备的处理器之一,用于执行权利要求1至10中任一项所述的方法。
13.一种芯片,其特征在于,包括处理电路、存储介质,所述存储介质中存储有计算机程序代码;所述计算机程序序代码被所述处理电路执行时实现权利要求1至10中任一项所述的方法。
14.一种程序产品,其特征在于,所述程序产品中包括指令,所述指令在电子设备上执行时使所述电子设备实现权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410033867.0A CN117851288A (zh) | 2024-01-09 | 2024-01-09 | 地址转换方法、可读介质、电子设备、芯片和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410033867.0A CN117851288A (zh) | 2024-01-09 | 2024-01-09 | 地址转换方法、可读介质、电子设备、芯片和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851288A true CN117851288A (zh) | 2024-04-09 |
Family
ID=90528406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410033867.0A Pending CN117851288A (zh) | 2024-01-09 | 2024-01-09 | 地址转换方法、可读介质、电子设备、芯片和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851288A (zh) |
-
2024
- 2024-01-09 CN CN202410033867.0A patent/CN117851288A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210374069A1 (en) | Method, system, and apparatus for page sizing extension | |
US5956756A (en) | Virtual address to physical address translation of pages with unknown and variable sizes | |
JP3577575B2 (ja) | アドレス変換を行う装置及び方法 | |
KR101587361B1 (ko) | 다수의 순차적 어드레스 변환들을 위한 통합된 tlb 구조 | |
US9405702B2 (en) | Caching TLB translations using a unified page table walker cache | |
US7089398B2 (en) | Address translation using a page size tag | |
US20210089470A1 (en) | Address translation methods and systems | |
US20080034179A1 (en) | Guard bands in very large virtual memory pages | |
US20130326143A1 (en) | Caching Frequently Used Addresses of a Page Table Walk | |
JP2003067357A (ja) | 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 | |
CN111949572A (zh) | 页表条目合并方法、装置及电子设备 | |
US11803482B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
CN113934655B (zh) | 解决高速缓冲存储器地址二义性问题的方法和装置 | |
KR100895715B1 (ko) | 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 | |
CN113722247B (zh) | 物理内存保护单元、物理内存权限控制方法和处理器 | |
CN114637700A (zh) | 针对目标虚拟地址的地址转换方法、处理器及电子设备 | |
KR20210144656A (ko) | 비연접 백업 물리적 서브페이지에 가상 페이지를 할당하는 방법 | |
CN117851288A (zh) | 地址转换方法、可读介质、电子设备、芯片和程序产品 | |
JP5945403B2 (ja) | メモリシステム | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
US11422947B2 (en) | Determining page size via page table cache | |
CN115080464A (zh) | 数据处理方法和数据处理装置 | |
CN115061955A (zh) | 处理器、电子设备、地址翻译方法以及缓存页表项方法 | |
CN116166577A (zh) | 处理器、地址转换的方法、装置、存储介质及程序产品 | |
CN114925002A (zh) | 电子装置、电子设备和地址转换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |