CN115292214A - 页表预测方法、存储访问操作方法、电子装置和电子设备 - Google Patents
页表预测方法、存储访问操作方法、电子装置和电子设备 Download PDFInfo
- Publication number
- CN115292214A CN115292214A CN202210966927.5A CN202210966927A CN115292214A CN 115292214 A CN115292214 A CN 115292214A CN 202210966927 A CN202210966927 A CN 202210966927A CN 115292214 A CN115292214 A CN 115292214A
- Authority
- CN
- China
- Prior art keywords
- page
- address
- granularity
- physical
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种页表预测方法、存储访问操作方法、电子装置和电子设备。该页表预测方法包括:获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;响应于至少一个第二表项包括被标记为可用于预测的参考合并表项且目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于目标虚拟地址以及参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到目标虚拟页号对应的预测物理页地址,参考合并表项由依次连续的X个子表项合并得到,按照依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的。该方法提高了地址预测的准确性,提高了TLB的利用率。
Description
技术领域
本公开的实施例涉及一种页表预测方法、存储访问操作方法、电子装置和电子设备。
背景技术
在计算机技术领域,程序设计人员可以使用系统规定范围内的任意虚拟地址(Virtual Address,VA)而非物理地址来编写程序,中央处理器(Central ProcessingUnit,CPU)执行应用程序时所使用的地址是虚拟地址。通常系统中运行不同的进程被赋予不同的虚拟地址空间,每个进程的虚拟地址空间覆盖了一个较大的范围。例如,在给进程分配内存、进程访问内存时,需要把虚拟地址映射到物理地址(Physical Address,PA),物理地址才是真正的物理内存访问地址。
虚拟地址和物理地址是通过页表(Page Table)来进行管理的。CPU会先基于程序传来的虚拟地址确定虚拟页号(Virtual Page Number,VPN)到物理内存中读取页表,在页表里找到与虚拟页号对应的物理页号(Physical Page Number,PPN),然后才能根据物理页号访问实际的物理内存地址。也就是说整个过程中CPU必须访问至少两次物理内存。为了减少CPU访问物理内存的次数,在处理器核中引入了翻译后备缓冲器(TranslationLookaside Buffer,TLB),也可以称之为页表缓存、转址旁路缓存等。
发明内容
本公开至少一实施例提供一种页表预测方法,该方法基于页表合并技术完成虚拟地址到物理地址转换关系的预测,提高了地址预测的准确性,从而降低了由于TLB容量限制而导致的页表遍历带来的延迟。
本公开至少一实施例提供一种页表预测方法,用于翻译后备缓冲器,其中,所述翻译后备缓冲器包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到,所述方法包括:获取需要进行所述页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,其中,所述参考合并表项由依次连续的X个子表项合并得到,按照所述依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
例如,在本公开至少一实施例提供的页表预测方法中,所述第二粒度为所述第一粒度的2n倍,所述第三粒度为所述第二粒度的2m倍,m和n为正整数。
例如,本公开至少一实施例提供的页表预测方法,还包括判断所述至少一个第二表项中是否包括所述被标记为可用于预测的所述参考合并表项。
例如,本公开至少一实施例提供的页表预测方法,还包括判断所述目标虚拟页面与所述参考合并表项对应的所述第二粒度的参考虚拟页面是否位于同一所述第三粒度的扩展虚拟页面内。
例如,在本公开至少一实施例提供的页表预测方法中,所述多个子表项的每个表示一个第一粒度的虚拟页面与一个第一粒度的物理页面的对应关系,所述至少一个第二表项的每个表示一个第二粒度的虚拟页面与一个第二粒度的物理页面的对应关系,所述方法还包括:响应于多个所述第一粒度的虚拟页面位于同一所述第二粒度的虚拟页面内且多个所述第一粒度的物理页面位于同一所述第二粒度的物理页面内,将所述多个子表项合并为一个所述第二表项。
例如,在本公开至少一实施例提供的页表预测方法中,所述第三粒度为2k位,k为大于1的整数,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,包括:由所述参考虚拟页号对应的物理页地址的最高位到第k位得到所述预测物理页地址的最高位到第k位;将所述目标虚拟页号对应的物理页地址的第k-1位到第0位设置为所述预测物理页地址的k-1位到第0位。
本公开至少一实施例提供一种存储访问操作方法,该方法包括获取访存指令使用的对象数据的目标虚拟地址;使用所述目标虚拟地址查询翻译后备缓冲器;响应于所述目标虚拟地址查询所述翻译后备缓冲器缺失,使用所述目标虚拟地址执行页表预测,获得预测物理页地址;使用所述预测物理页地址,获得所述目标虚拟地址对应的预测目标物理地址;使用所述预测目标物理地址进行所述访存指令所需的后续操作,其中,所述翻译后备缓冲器包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到,使用所述目标虚拟地址执行页表预测,包括:获取所述目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的所述预测物理页地址,其中,所述参考合并表项由依次连续的X个子表项合并得到,按照所述依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
例如,在本公开至少一实施例提供的存储访问操作方法中,使用所述预测目标物理地址进行所述访存指令所需的后续操作,包括使用所述预测目标物理地址查询至少一级私有缓存;响应于查询所述至少一级私有缓存命中,从所述至少一级私有缓存获取所述预测目标物理地址对应的数据;或者响应于查询所述至少一级私有缓存失败,将所述后续操作暂停。
例如,在本公开至少一实施例提供的存储访问操作方法中,所述至少一级私有缓存包括L1缓存,或者,包括所述L1缓存和L2缓存的组合。
例如,本公开至少一实施例提供的存储访问操作方法,还包括在使用所述预测目标物理地址进行所述后续操作的过程中,并行地使用所述目标虚拟地址进行页表浏览操作并获取所述目标虚拟地址对应的实际目标物理页地址;响应于所述预测物理页地址和所述实际目标物理页地址相同,确认页表预测成功;或者响应于所述预测物理页地址和所述实际目标物理页地址不同,确认页表预测失败,撤销已经使用所述预测目标物理地址进行的所述后续操作。
例如,在本公开至少一实施例提供的存储访问操作方法中,响应于所述确认页表预测成功,将所述访存指令标注为所述确认页表预测成功。
例如,本公开至少一实施例提供的存储访问操作方法,在获得所述目标虚拟地址对应的所述预测目标物理地址之后,还包括对于所述访存指令,保存所述目标虚拟地址和所述预测目标物理地址,并且在所述后续操作中,将所述访存指令标注为使用所述预测目标物理地址。
例如,在本公开至少一实施例提供的存储访问操作方法中,对于所述访存指令,设置如下参数中的至少一项:第一参数,用于标识是否使用所述预测目标物理地址;第二参数,用于标识所进行所述后续操作所使用的物理地址是否合法;第三参数,用于标识是否确认页表预测成功。
本公开至少一实施例提供一种存储管理装置,该存储管理装置包括管理单元和翻译后备缓冲器,其中,所述翻译后备缓冲器配置为管理多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到;所述管理单元配置为,获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;并且,所述管理单元还配置为,响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,其中,所述参考合并表项由包依次连续的X个子表项合并得到,按照所述依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
本公开至少一实施例还提供一种电子装置,该电子装置包括控制单元;以及如本公开任一实施例的存储管理装置;其中,所述控制单元配置为获取访存指令使用的对象数据的所述目标虚拟地址,使用所述目标虚拟地址查询所述翻译后备缓冲器,并且响应于所述目标虚拟地址查询所述翻译后备缓冲器缺失,获取所述存储管理装置通过所述目标虚拟地址进行页表预测得到的所述预测物理页地址,使用所述预测物理页地址,获得所述目标虚拟地址对应的预测目标物理地址,使用所述预测目标物理地址进行所述访存指令所需的后续操作。
例如,本公开至少一实施例提供的电子装置,还包括至少一级私有缓存;其中,所述控制单元还配置为,使用所述预测目标物理地址查询所述至少一级私有缓存;响应于查询所述至少一级私有缓存命中,从所述至少一级私有缓存获取所述预测目标物理地址对应的数据;或者,响应于查询所述至少一级私有缓存失败,将所述后续操作暂停。
例如,在本公开至少一实施例提供的电子装置中,所述存储管理装置还包括页表查询单元,所述存储管理装置配置为,允许所述页表查询单元使用所述目标虚拟地址进行页表浏览操作并获取所述目标虚拟地址对应的实际目标物理页地址,所述控制单元还配置为,响应于所述预测物理页地址和所述实际目标物理页地址相同,确认页表预测成功,或者,响应于所述预测物理页地址和所述实际目标物理页地址不同,确认页表预测失败,撤销已经使用所述预测目标物理地址进行的所述后续操作。
本公开至少一实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的电子装置。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种页表预测方法的流程示意图;
图2A为本公开至少一实施例提供的可用于页表预测的第二表项中VPN与PPN的对应情况的示意图;
图2B为本公开至少一实施例提供的不可用于页表预测的第二表项中VPN与PPN的对应情况的示意图;
图3为本公开至少一实施例提供的一种TLB内第一表项和第二表项结构的示意图;
图4为本公开至少一实施例提供的对于具有第二表项的TLB查询时的情形的示意图;
图5为本公开至少一实施例提供的一种存储访问操作方法的流程示意图;
图6为本公开至少一实施例提供的一种访存指令的示意图;
图7为图5中步骤S240获得的预测目标物理地址的确认过程的示意图;
图8为图5中步骤S250的示例性流程图;
图9为本公开至少一实施例提供的一种存储管理装置的示意框图;
图10为本公开至少一实施例提供的一种电子装置的示意框图;
图11为本公开至少一实施例提供的一种电子设备的示意框图;以及
图12为本公开至少一实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,可省略已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
存储管理单元(Memory Management Unit,MMU)在计算机系统中介于执行单元(例如CPU或CPU的处理器核)和存储器之间,提供从虚拟地址向物理地址的转换。系统存储管理单元(System Memory Management Unit,SMMU)广泛应用于各种片上系统(System onChip,SoC)中,介于I/O外设与例如总线之间,作为一种存储管理单元,同样主要用于执行针对外设的从虚拟地址到物理地址的转换。
TLB是MMU或SMMU内部集成的一种用于页表的缓存,用于改进虚拟地址到物理地址的转译速度。TLB通常具有固定数目的空间槽,用于存放将虚拟地址映射至物理地址的标签页表条目,其搜索关键字为虚拟地址,其搜索结果为物理地址。例如,CPU在收到应用程序发来的虚拟地址后,首先到TLB中查找是否存在相应的页表数据。如果请求的虚拟地址在TLB中存在(称为TLB命中(hit)),则会快捷地从TLB得到与请求的虚拟地址对应的物理地址,由此给出一个非常快速的匹配结果,之后就可以直接使用该得到的物理地址访问物理内存。反之,如果请求的虚拟地址不在TLB中(称为TLB缺失(miss)),则需要到物理内存中遍历页表以进行虚拟地址到物理地址的转换,这会花费较长的时间。
如果TLB的命中率很高,那么因为遍历页表引起的物理内存访问次数大大减少,甚至可以忽略不计。但是随着大数据、云计算等应用访问的数据越来越多,数据之间的局域性降低,因此相对于传统应用程序,TLB的命中率在降低。而TLB作为虚拟地址和物理地址的高速缓存,一般不会保存很多表项,一般为64项。虽然用大页表(例如,2M/1G)可以提高TLB的命中率,但是大页表会造成物理内存的浪费,以及更多的I/O访问。此外,各种操作系统(Operating System,OS)并未完全支持大页表。
在TLB缺失情况下,为了提升地址转换效率,通常采用页表预测的方法。本公开的发明人注意到,页表预测方式有以下两种。一种方式是在TLB外增加一个用于预测虚拟地址和物理地址转换关系的高速缓存,以在TLB缺失时使用该高速缓存预测缺失虚拟地址对应的物理地址。然而,这种方式需要增加额外的缓存空间,会明显增加芯片的面积和功耗,最终会增加芯片的成本。另一种方式是利用现有TLB结构,在查找TLB时放松命中条件。即使虚拟页号不匹配,如果能在TLB中匹配一个与该虚拟页号最邻近的页号,也判定TLB命中。虽然这种方式无需增加额外的缓存,但是预测条件过于简单,大大增加了预测失败的风险。
本公开至少一实施例提供一种页表预测方法,用于翻译后备缓冲器,其中,翻译后备缓冲器包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,至少一个第二表项的每个由多个第一粒度的子表项合并得到,该方法包括:获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;响应于至少一个第二表项包括被标记为可用于预测的参考合并表项且目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于目标虚拟地址以及参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到目标虚拟页号对应的预测物理页地址,其中,参考合并表项由依次连续的X个子表项合并得到,按照依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,第三粒度为第二粒度的Y倍,X、Y为大于1的整数。
本公开至少一实施例还提供一种在TLB缺失情况下执行上述页表预测方法的存储访问操作方法。
本公开的多个实施例还提供一种对应于执行上述页表预测方法的存储管理装置、电子装置或电子设备。
本公开至少一实施例提供的页表预测方法、存储访问操作方法、电子装置和电子设备,基于页表合并技术完成虚拟地址到物理地址转换关系的预测。该方法提高了地址预测的准确性,从而降低了由于TLB容量限制而导致的页表遍历带来的延迟。例如,在至少一个实施例中,无需更改TLB结构或增加额外结构,还提高了TLB的利用率。
下面,将参考附图详细地说明本公开至少一实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
图1为本公开至少一实施例提供的一种页表预测方法的流程示意图。
例如,如图1所示的页表预测方法,用于在TLB中执行需要进行页表预测的目标虚拟地址到预测物理页地址的转换。例如,TLB包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,每个第二表项由第一粒度的多个子表项合并得到。如图1所示,该页表预测方法包括以下步骤S110~S150。
在步骤S110,获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号。
在步骤S120,判断至少一个第二表项中是否包括被标记为可用于预测的参考合并表项。
仅在步骤S120中确定在TLB中的至少一个第二表项中包括被标记为可用于预测的参考合并表项的情况下,才执行步骤S130,否则前进到步骤S150,不进行页表预测。
在步骤S130,判断目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面是否位于同一第三粒度的扩展虚拟页面内。
仅在步骤S130中确定目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内的情况下,才执行步骤S140,否则前进到步骤S150,而不进行页表预测。
步骤S140:基于目标虚拟地址以及参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到目标虚拟页号对应的预测物理页地址。
需要说明的是,上述页表预测方法例如是在TLB缺失的情况下被执行的。在TLB命中的情况下,直接在TLB中查找获得目标虚拟地址对应的实际目标物理页地址而不执行上述页表预测方法。
例如,每个第二表项由第一粒度的多个子表项合并得到。每个第二表项包括的子表项的数量上限由第二粒度相对于第一粒度的倍数决定,例如,如果第二粒度为第一粒度的Z倍,则每个第二表项包括的子表项的数量可以为2到Z个,Z为大于1的整数;第三粒度为第二粒度的Y倍,Y为大于1的整数。例如,在一些示例中,第二粒度为第一粒度的2n倍,第三粒度为第二粒度的2m倍,m和n为正整数。
例如,在一些示例中,当m=6,n=3且第一粒度为4K时,第二粒度为32K,第三粒度为2M。此时,需要进行页表预测的目标虚拟地址所在的目标虚拟页面尺寸(大小)为4K,第一表项以及第二表项的子表项中每个对应的页面尺寸也为4K;将位于同一个32K虚拟页面中的2~8个第一表项作为子表项合并得到的一个第二表项,该第二表项对应的页面尺寸为32K;扩展虚拟页面的尺寸为2M,或者可以为128K、512K或1M,本公开的实施例对此不作限制。
图2A为本公开至少一实施例提供的可用于页表预测的第二表项中VPN与PPN的对应情况的示意图;图2B为本公开至少一实施例提供的不可用于页表预测的第二表项中VPN与PPN的对应情况的示意图。
例如,在图1的步骤S120中,被标记为可用于预测的参考合并表项由依次连续的X个子表项合并得到,且按照依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,对于该参考合并表项,对应的虚拟页和物理页是彼此对齐的。
例如,如图2A和图2B所示,TLB中存储的某一32K粒度的第二表项是由8个4K粒度的子表项合并得到。VPN 0~VPN 7为该第二表项包括的8个虚拟页号,PPN 0~PPN 7为该第二表项中8个虚拟页号所涉及的8个物理页号。
例如,如图2A所示,该第二表项中的虚拟页号VPN 0~VPN 7依次连续(即在虚拟内存空间的一个32K虚拟页中它们是依次连续的,例如虚拟页号是从小到大依次连续的),且按照依次连续的虚拟页号VPN 0~VPN 7的顺序依次对应的物理页号PPN 0~PPN 7也是对应依次连续的(即在物理内存空间的一个32K物理页中它们是依次连续的,例如这些物理页号对应的物理地址是从小到大依次连续的),即VPN 0对应于PPN 0、VPN 1对应于PPN1、……、VPN 7对应于PPN 7,此时虚拟页号VPN 0~VPN 7对应的虚拟页与物理页号PPN0~PPN 7对应的物理页彼此对齐,该第二表项被标记为可用于预测,即该第二表项被标记为可用于预测的参考合并表项。
例如,如图2B所示,虽然第二表项包括的8个虚拟页号VPN 0~VPN 7依次连续,但是依次连续的虚拟页号VPN 0~VPN 7的顺序依次对应的物理页号则不是依次连续的,如图2B所示,例如VPN 0对应于PPN 2、……、VPN 2对应于PPN 0、……、VPN 7对应于PPN 4,按照依次连续的虚拟页号VPN 0~VPN 7的顺序依次对应的物理页号的顺序则是PPN 2、……、PPN0、……、PPN 6、……、PPN 4,此时虚拟页号VPN 0~VPN 7对应的虚拟页与物理页号PPN0~PPN 7对应的物理页彼此非对齐,则该第二表项不能用于预测。
例如,在系统初始化时,操作系统倾向于给连续的虚拟页面分配连续的物理页面,使得虚拟页与对应的物理页是彼此对齐的,虽然随着系统运行时间增加或系统内运行程序增加,这种对齐关系将会在大粒度范围内减少,但是仍然可能在一定粒度范围内较大概率得以保留,从而可以在这样的粒度内利用上述对齐关系进行页表预测。因此,TLB中通常可以有多个第二表项中依次连续的虚拟页号对应的物理页号也是按照顺序依次连续的,即TLB中可以有多个可被标记为可用于预测的参考合并表项,进而可以用于本公开实施例提供的页表预测方法。
图3为本公开至少一实施例提供的一种TLB内第一表项和第二表项结构的示意图。
例如,如图3所示,该TLB配置为允许包括第一表项和/或第二表项,例如,根据系统运行的状态,该TLB可以仅包括第一表项,或可以同时包括第一表项和第二表项,或可以仅包括第二表项;例如,通常系统开始运行时,TLB中填入的内容较少,例如仅有第一表项;随着系统运行时间增加,TLB中填入的内容增加并可能被填满,则可以将满足合并条件的多个第一表项作为子表项合并得到第二表项,在合并之后,将作为子表项的多个第一表项从TLB中删除而存储在专用于存储子表项的位置,在个别时间点,由于合并,TLB中可以仅有第二表项。例如,每个第二粒度的第二表项是由多个第一粒度的子表项合并得到后存储在TLB中。每个子表项表示一个第一粒度的虚拟页面与一个第一粒度的物理页面的对应关系,每个第二粒度的第二表项表示一个第二粒度的虚拟页面与一个第二粒度的物理页面的对应关系。例如,如果多个第一粒度的虚拟页面位于同一第二粒度的虚拟页面内,且对应的多个第一粒度的物理页面位于同一第二粒度的物理页面内,则可以将多个子表项合并为一个第二表项,并将合并得到的第二表项替换多个子表项而存储在TLB中。
例如,在64位系统架构中,如图3所示,在系统运行的某个时刻,TLB中包括多个第一粒度为4K的第一表项和至少一个第二粒度为32K的第二表项,且页面尺寸信息作为辅助信息被标记在对应的第一表项或第二表项中。此时,需要进行页表预测的目标虚拟地址所在的目标虚拟页面尺寸为4K,第一表项和每个子表项对应的页面尺寸也为4K,例如,8个子表项合并得到的第二表项对应的页面尺寸为32K。
需要说明的是,本公开至少一实施例同样适用于除64位系统架构之外的其他类型的系统架构,并且TLB中第一表项和第二表项对应的页面尺寸还可以包括所采用的系统架构所支持的其他页面尺寸,例如,第一粒度可以为1KB、32KB、64KB、1M或2M等,第二粒度可以为1KB、4KB、64KB、1M或2M等,本公开的实施例对此不作限制。
例如,如图3所示,子表项表示4K粒度的虚拟页面与4K粒度的物理页面的对应映射关系,第二表项表示32K粒度的虚拟页面与32K粒度的物理页面的对应映射关系。例如,如果8个相邻4K粒度的虚拟页面位于同一32K粒度的虚拟页面内,且对应的8个4K粒度的物理页面位于同一32K粒度的物理页面内,则可以将这8个子表项合并为一个第二表项。进一步地,如果某一第二表项的多个子表项对应的多个虚拟页面和多个物理页面是彼此对齐的,则该第二表项被标注为可用于预测的参考合并表项。
例如,如图3所示的第一表项和第二表项中记录着对应的页面尺寸信息。因此,在进行TLB查询时,例如,可以依据当前所查询的TLB表项所对应的页面尺寸,确定所需比对虚拟地址中的VPN的位数。例如,当第一表项所对应的页面尺寸为4K时,可确定所需比对的VPN为最高位至第12位(对应地,第0位到第11位作为每个4K页面内的偏移(Offset));而当第二表项所对应的页面尺寸为32K时,即可确定所需比对的VPN为最高位至第15位(对应地,第0位到第14位作为32K页面内的偏移)。
例如,在一些示例中,对于待查询的目标虚拟地址,首先使用对应于4K粒度的第一表项的VPN(即目标虚拟地址最高位至第12位),在TLB中逐条与4K粒度的第一表项比对,如果目标虚拟地址的该VPN在TLB中与某一第一表项匹配成功,则判定TLB命中;如果目标虚拟地址VPN的最高位至12位在TLB中第一表项匹配失败,并将该目标虚拟地址的最高位至15位与32K粒度的第二表项比对,如果目标虚拟地址的最高位至第15位在TLB中与某一第二表项匹配成功,则使用该目标虚拟地址的第14位至第12位在该第二表项包括的多个子表项中进一步查询,如果与其中的某一子表项匹配成功,判定TLB命中,否则判定TLB缺失。通过采用图3所示的TLB配置方式,可以实质上扩展TLB的容量,减少TLB查询过程中比对次数,尤其是在TLB缺失的情况下的比对次数,提供了系统的效率。
例如,第三粒度为2k位,k为大于1的整数。在图1的步骤S130中,判断目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面是否位于同一第三粒度的扩展虚拟页面内,即,为判断目标虚拟页面对应的虚拟地址的最高位至第k位以及参考虚拟页面对应的虚拟地址的最高位至第k位是否匹配,如果是,则目标虚拟页面和参考虚拟页面位于同一2k粒度的扩展虚拟页面内。
例如,在一些示例中,k=21,目标虚拟页面尺寸为4K,参考虚拟页面尺寸为32K。如果目标虚拟页面对应的虚拟地址的最高位至第21位与参考虚拟页面对应的虚拟地址的最高位至第21位匹配,则4K的目标虚拟页面与32K的参考虚拟页面位于同一2M扩展虚拟页面内。
例如,在图1的步骤S140中,为了得到预测物理页地址,由参考虚拟页面的参考虚拟页号对应的物理页地址的最高位到第k位得到预测物理页地址的最高位到第k位;将目标虚拟页号对应的物理页地址的第k-1位到第0位设置为预测物理页地址的k-1位到第0位。
例如,在一些示例中,k=21,目标虚拟页面尺寸为4K,参考虚拟页面尺寸为32K。预测物理页地址的最高位到第21位为参考虚拟页号对应的物理页地址的最高位到第21位,预测物理页地址的第20位到第0位为目标虚拟页号对应的物理页地址的第20位到第0位。
图4为本公开至少一实施例提供的对于具有第二表项的TLB查询时的情形的示意图。
例如,如图4所示,在例如图1的步骤S110中,获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号。如图4所示,以48位的目标虚拟地址为例,对于4K粒度的页面大小,目标虚拟地址的第11位至第0位为页内偏移(offset)部分;目标虚拟地址的第47位至第12位为索引(index)部分,即用于页表查询的虚拟页号VPN。
需要说明的是,页表预测是在TLB缺失的情况下被执行的,即在将VPN的第47位至第12位在TLB中逐条与4K粒度的第一表项(以及第二表项的4K粒度的子表项,如果存在的话)都比对后均匹配失败时,如果在例如图1的步骤S120中确定TLB包括的至少一个第二表项中进一步包括被标记为可用于预测的参考合并表项,则如图4所示将VPN的第47位至第15位与32K粒度的参考合并表项比对。
例如,如图4所示,第二页表项的子表项表示4K粒度的虚拟页面与4K粒度的物理页面的对应映射关系,32K粒度的参考合并表项是由2~8个子表项合并得到(例如具体子表项的数量根据实际情况而定)。在查询VPN与第二页表项是否匹配时,将VPN的第47位至第15位与32K粒度的第二表项比对,如果匹配,则将该VPN的第14位至第12位与该第二表项包括的多个子表项进行比对。
在TLB缺失的情况下,将VPN的第47位至第21位与32K粒度的参考合并表项比对。例如,如图4所示,在例如图1的步骤S130中,如果VPN包括的第47位至第21位与参考虚拟页面对应的VPN包括的最高位至第21位匹配成功,即4K的目标虚拟页面与32K的参考虚拟页面位于同一2M的扩展虚拟页面内,则可以假设该2M的扩展虚拟页面内虚拟页号和物理页号是彼此对齐的,由此进行例如图1的步骤S140中的预测物理页地址的预测。
例如,如图4所示,在例如图1的步骤S140中,由参考虚拟页号对应的物理页地址的最高位到第21位可以得到预测物理页地址的最高位到第21位;由目标虚拟页号包括的第20位到第12位可以得到预测物理页地址的第20位到第12位;由于实际目标物理页地址的页内偏移部分与目标虚拟地址的页内偏移部分相同,由目标虚拟地址的第11位到第0位(页内偏移部分)可以得到预测物理页地址的第11位到第0位(页内偏移部分)。
在本公开至少一实施例提供的页表预测方法中,基于页表合并技术进行虚拟地址到物理地址转换关系的预测。该页表预测方法提高了地址预测的准确性,例如,在至少一个示例中,无需更改TLB结构或增加额外结构即可得到预测物理页地址,提高了TLB的利用率。
图5为本公开至少一实施例提供的一种存储访问操作方法的流程示意图。
例如,如图5所示的存储访问操作方法,用于在计算机系统中进行目标虚拟地址到预测目标物理地址的转换,并使用预测得到的预测目标物理地址对物理地址进行访问,该物理地址可以指向例如存储装置中的存储地址,可以指向该计算机系统内的某个功能电路模块,例如直接存储访问(DMA)单元、PCIE设备、I/O设备等。如图5所示,该存储访问操作方法包括以下步骤S210~S250。
步骤S210:获取访存指令使用的对象数据的目标虚拟地址;
步骤S220:使用目标虚拟地址查询翻译后备缓冲器;
步骤S230:响应于目标虚拟地址查询翻译后备缓冲器缺失,使用目标虚拟地址执行页表预测,获得预测物理页地址;
步骤S240:使用预测物理页地址,获得目标虚拟地址对应的预测目标物理地址;
步骤S250:使用预测目标物理地址进行访存指令所需的后续操作。
例如,在步骤S210中,访存指令使用的对象数据的目标虚拟地址可以为例如图1的步骤S110中的目标虚拟地址。例如,被运行的计算机程序包括的访存指令可以是load指令或store指令等,该访存指令包括一个或多个对象数据,这些对象数据在计算机程序中使用的是虚拟地址,在本公开的实施例的描述中,将其称为“目标虚拟地址”,为了对这些对象数据进行访问则需要使用这些对象数据的物理地址,因此需要进行虚拟地址到物理地址的虚实转换。
例如,在步骤S220中,使用目标虚拟地址查询TLB,以判断目标虚拟地址查询结果为TLB命中或TLB缺失。如果查询结果为TLB缺失,则执行步骤S230的操作。
例如,在步骤S230中,使用目标虚拟地址执行页表预测,即执行例如图1中步骤S110~S150的页表预测方法,通过页表预测得到预测物理页地址。页表预测过程与图1中基本相同,重复之处不再赘述。
例如,预测物理页地址是由目标虚拟页号VPN预测得到的预测物理页号PPN指代的预测物理页的首地址,因此需要在步骤S240中,使用该预测物理页地址和目标虚拟地址的页内偏移部分,获得目标虚拟地址对应的预测目标物理地址。在步骤S250中,使用该预测目标物理地址进行访存指令所需的后续操作,在该使用预测目标物理地址执行访存指令的过程中,由于尚未确认预测是否成功,虽然访存指令可以继续执行,但是执行过程中不能将该访存指令标注为已经结束或完成(retire)以退出流水线,而是要等待确认预测是否成功并根据确认结果确定如何进一步操作(例如如下所述)。
图6为本公开至少一实施例提供的一种访存指令的示意图。
例如,如图6所示,对于使用目标虚拟地址的访存指令,在处理器核的指令处理流水线中,设置如下参数中的至少一项:
(1)第一参数(PaSpec),用于标识是否使用预测目标物理地址,例如,PaSpec=1时表示使用预测目标物理地址,PaSpec=0时表示不使用预测目标物理地址;
(2)第二参数(PaVal),用于标识所进行后续操作所使用的物理地址是否合法,例如,PaVal=1时表示所进行后续操作所使用的物理地址合法(即为实际目标物理页地址),PaVal=0时表示所进行后续操作所使用的物理地址不合法(即非实际目标物理页地址);
(3)第三参数(PaConfirmVal),用于标识是否确认页表预测成功,例如,PaConfirmVal=1时表示预测目标物理地址正确(即确认预测目标物理地址与实际目标物理页地址相同,由此确认之前的页表预测成功),PaConfirmVal=0时表示预测目标物理地址不正确(即确认预测目标物理地址与实际目标物理页地址不同,由此确认之前的页表预测失败)。
上述参数例如可以记录在寄存器中,供处理器核中的指令处理流水线访问。例如,如图6所示,通过例如图5中步骤S210~S240得到预测目标物理地址后,还需将预测目标物理地址(PA)单独保存在访存指令的队列表项中,且预测目标物理地址(PA)不能覆盖原有的目标虚拟地址(VA)。此外,标记访存指令的第一参数PaSpec=1,第二参数PaVal=0,第三参数PaConfirmVal=0,以将访存指令标注为使用预测目标物理地址进行操作。
例如,如果在例如图5的步骤S220中,如果查询结果为TLB命中,则不需要执行例如图5中步骤S230或例如图1中步骤S110~S150的页表预测方法,那么标记访存指令的第一参数PaSpec=0,第二参数PaVal=1,第三参数PaConfirmVal=1,以将访存指令标注为使用合法的实际目标物理页地址进行操作。
图7为图5中步骤S240获得的预测目标物理地址的确认过程的示意图。
例如,如图7所示,在执行例如图5的存储访问操作方法的过程中,并行地到物理内存中进行页表浏览(Page Table Walking)操作以获取实际目标物理页地址,之后将预测目标物理地址与实际目标物理页地址比较,以确认页表预测得到的预测目标物理地址是否正确,并将确认结果标记在例如图6所示的访存指令的第三参数(PaConfirmVal)中。例如,在确认预测成功的情况下,标记对应的访存指令的第一参数PaSpec=0,第二参数PaVal=1,第三参数PaConfirmVal=(1:正确,0:不正确)。
如图7所示,在至少一个示例中,预测目标物理地址的确认过程包括以下的步骤S261~S263。
步骤S261:在使用预测目标物理地址进行后续操作的过程中,并行地使用目标虚拟地址进行页表浏览操作并获取目标虚拟地址对应的实际目标物理页地址;
步骤S262:响应于预测物理页地址和实际目标物理页地址相同,确认页表预测成功;或者
步骤S263:响应于预测物理页地址和实际目标物理页地址不同,确认页表预测失败,撤销已经使用预测目标物理地址进行的后续操作。
例如,如图7所示,当在例如图5的步骤220中使用目标虚拟地址查询TLB的查询结果为TLB缺失时,在执行例如图5的步骤230中的页表预测的同时,执行例如图7的步骤S261中到物理内存中进行页表浏览的操作以获取实际目标物理页地址。
例如,如图7所示,在步骤S261中获取实际目标物理页地址后,将预测目标物理地址与实际目标物理页地址比较,以确认页表预测得到的预测目标物理地址是否正确。例如,在步骤S262中,如果预测物理页地址和实际目标物理页地址相同,确认页表预测成功,此时标记访存指令的第一参数PaSpec=0,第二参数PaVal=1,第三参数PaConfirmVal=1,即认为此时指令处理流水线中的访存指令使用的是实际目标物理页地址,并继续后续操作,直至正常结束对于访存指令的执行操作。反之,在步骤S263中,如果预测物理页地址和实际目标物理页地址不同,确认页表预测失败,并标记访存指令的第一参数PaSpec=0,第二参数PaVal=1,第三参数PaConfirmVal=0,且由于确认预测失败,那么之前使用预测物理页地址获得的数据无效,由此撤销例如图5的步骤250中已经使用预测目标物理地址进行的后续操作;之后,在指令处理流水线中,将使用实际目标物理页地址来再次执行对应的访存指令,并且标记访存指令的第一参数PaSpec=0,第二参数PaVal=1,第三参数PaConfirmVal=1,该执行访存指令的过程与通常的正常操作相同,这里不再赘述。
在本公开的至少实施例中,在TLB缺失的情形,存储管理单元(MMU)单元开始启动遍历页表的操作,并且MMU单元遍历页表结束,获得了与目标虚拟页号对应的实际物理页号对应的实际物理页地址,则使用该结果填充TLB,并且重新唤醒对应的访存指令,再次访问TLB。由于此访存指令被标记为使用预测目标物理地址(即PaSpec=1),那么将此访存指令对应的预测物理页地址和目标虚拟地址一起送到TLB。使用目标虚拟地址查询TLB,如果查询TLB命中,用从TLB获得的实际物理页地址和预测物理页地址比较,将比较结果和实际物理页地址一起送到访存指令队列,并且将此指令的地址标记为[PaVal=1,PaSpec=0,PaConfirmVal=(1:正确,0:不正确)]。如果在该再次访问TLB过程中查询不命中,则系统报错,或者MMU单元重新启动遍历页表的操作,重复上述操作。
在本公开至少一实施例提供的存储访问操作方法中,经过例如图7所示的预测目标物理地址的确认过程,可以确认页表预测得到的预测目标物理地址是否正确,从而可以有效防止页表预测失败导致的误操作。此外,在TLB缺失的场景下,使用预测目标物理地址进行数据访问和页表遍历查找实际目标物理页地址可以同时进行,有效隐藏了因为页表遍历导致的开销。
图8为图5中步骤S250的示例性流程图。例如,如图8所示,在至少一个示例中,使用预测目标物理地址进行访存指令所需的后续操作,包括以下步骤S251~S253。
步骤S251:使用预测目标物理地址查询至少一级私有缓存;
步骤S252:响应于查询至少一级私有缓存命中,从至少一级私有缓存获取预测目标物理地址对应的数据;或者
步骤S253:响应于查询至少一级私有缓存失败,将后续操作暂停。
例如,在多核处理器中,在每个处理器核中,私有缓存可以包括一级或多级缓存,例如在一个示例中,私有缓存仅包括L1缓存,则对应地公有(或共享)缓存则包括L2缓存、L3缓存等,或者,私有缓存包括L1缓存和L2缓存的组合,则对应地公有(或共享)缓存则包括L3缓存等。
此外,L1缓存可以进一步分为数据L1缓存(L1D缓存)和指令L1缓存(L1I缓存),在本公开的至少一个实施例中,目前虚拟地址为目标数据的虚拟地址,则在操作中如果访问L1缓存,实际上访问的是L1D缓存,在本公开中,为了简便起见,不再具体说明对于L1D缓存的访问操作。
本公开的至少一个实施例中,以私有缓存包括L1缓存和L2缓存的组合为例,在步骤S251中,在对应的访存指令获得预测目标物理地址后,即使用预测目标物理地址查询L1缓存(L1 Cache)。如果预测目标物理地址查询L1缓存命中,则如步骤S252中从L1缓存获取预测目标物理地址对应的数据以进行进一步处理,该进一步与通常的正常操作相同,这里不再赘述;如果预测目标物理地址查询L1缓存缺失,则将缺失请求发送到L2缓存(L2Cache),同时标记此缺失请求使用了预测目标物理地址,由此对应的访存指令在访存队列中休眠,且休眠类型被标注为“预测地址L1缺失”。进一步地,如果L2缓存命中,则如步骤S252中从L2缓存获取预测目标物理地址对应的数据以进行进一步处理,该进一步也与通常的正常操作相同,这里不再赘述;然而,如果L2缓存也缺失,那么L2缓存无需发送缺失请求给例如L3缓存(L3 Cache)的共享缓存,即如步骤S253中将后续操作暂停,同时L2缓存还需要告知L1缓存,当前使用预测目标物理地址的访问已经结束但未拿到有效数据。此时如果该访存指令对应的页表预测获得的预测目标物理地址还未被确认,那么继续等待MMU单元完成页表遍历,直到预测目标物理地址被确认是否正确;相反,此时如果该访存指令对应的页表预测获得的预测目标物理地址已确认正确,那么就可以用实际物理页地址重新开始访问数据,该新的访问数据的过程与通常的正常流程一样,这里不再赘述。
例如,如果在例如步骤S253中查询至少一级私有缓存失败,则等待例如图7的步骤S261中的到物理内存中进行的页表浏览操作完成,然后使用页表浏览获取的实际目标物理页地址重新开始数据访问,该重新开始的数据访问过程与没有进行页表预测的正常流程相同,这里不再赘述。
在本公开至少一实施例提供的存储访问操作方法中,在例如图8所示的数据访问操作中,将使用预测目标物理地址的操作限制在一级或多级私有缓存中,在此情况下,由于L2缓存不会将缺失请求送给之后的公有缓存(L3缓存),从而不会访问到I/O接口,因而有效解决了I/O接口因为页表预测而被推测执行的问题,并且可以有效防止错误的预测目标物理地址访问物理内存而无效占用带宽的问题。
图9为本公开至少一实施例提供的一种存储管理装置的示意框图。
例如,如图9所示,本公开至少一实施例提供了一种存储管理装置100,用于在计算机系统中进行地址转换,例如将虚拟地址转换为物理地址,由此可以使用转换得到的物理地址对目标地址进行访问,该目标地址可以指向例如存储装置中的存储地址,可以指向该计算机系统内的某个功能电路模块,例如直接存储访问(DMA)单元、PCIE设备等。
例如,如图9所示,该存储管理装置100包括管理单元101和翻译后备缓冲器(TLB)102。翻译后备缓冲器102可以用于例如图1所示的页表预测方法。例如,翻译后备缓冲器102配置为可管理多个第一粒度的第一表项和至少一个第二粒度的第二表项,每个第二表项由第一粒度的X个子表项合并得到,X为大于1的整数。
例如,管理单元配置101为执行例如图1所示的页表预测方法:获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;响应于至少一个第二表项包括被标记为可用于预测的参考合并表项且目标虚拟页面与参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于目标虚拟地址以及参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到目标虚拟页号对应的预测物理页地址。
例如,被标记为可用于预测的参考合并表项由依次连续的X个子表项合并得到,且按照依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的。
例如,每个第二表项由第一粒度的多个子表项合并得到,例如,第二粒度为第一粒度的Z倍,则单个第二表项包括的子表项的数量为2~Z个;第三粒度为第二粒度的Y倍,Y为大于1的整数。在一些示例中,第二粒度为第一粒度的2n倍,第三粒度为第二粒度的2m倍,m和n为正整数。本公开的实施例对此不作限制。
例如,如图9所示,在一些示例中,存储管理装置100还包括页表查询单元(PageWalker Unit,PWU)103。例如,存储管理装置100允许页表查询单元103使用目标虚拟地址在物理内存中进行页表浏览操作并获取目标虚拟地址对应的实际目标物理页地址。
例如,存储管理装置100可以为存储管理单元(Memory Management Unit,MMU)或系统存储管理单元(System Memory Management Unit,SMMU),也可以为其他能够实现地址转换功能的电子元件,本公开的实施例对此不作限制。
本公开至少一实施例提供的存储管理装置基于页表合并技术完成虚拟地址到物理地址转换关系的预测,提高了地址预测的准确性,降低了由于TLB容量限制而导致的页表遍历带来的延迟,例如,在至少一个示例中,无需更改TLB结构或增加额外结构,提高了TLB的利用率。此外,在TLB缺失的场景下,使用预测目标物理地址进行数据访问和页表遍历查找实际目标物理页地址可以同时进行,有效隐藏了因为页表遍历导致的开销。
图10为本公开至少一实施例提供的一种电子装置的示意框图。
例如,如图10所示,该电子装置200例如为处理器核,包括存储管理装置100和控制单元202,例如,该处理器核可以是复杂指令集计算机(CISC)或精简指令集计算机(RISC),可以用于单核处理器或多核处理器,本公开的实施例对此不作限制。存储管理装置100为本公开任一实施例提供的存储管理装置,例如为图9所示的存储管理装置100。
例如,再次参考图10,本公开至少一实施例提供一种计算机系统,该计算机系统包括多个电子装置200以及公用于这些电子装置200的L3缓存300,例如该计算机系统为多核处理器。
例如,控制单元202配置为执行例如图5所示的存储访问操作方法:获取访存指令使用的对象数据的目标虚拟地址;使用目标虚拟地址查询翻译后备缓冲器102;响应于目标虚拟地址查询翻译后备缓冲器102缺失,获取存储管理装置通过目标虚拟地址进行页表预测得到的预测物理页地址;使用预测物理页地址,获得目标虚拟地址对应的预测目标物理地址;使用预测目标物理地址进行访存指令所需的后续操作。
例如,如图10所示,在一些示例中,电子装置200还包括一级或多级私有缓存,例如,该私有缓存仅包括L1缓存,或者,包括L1缓存和L2缓存的组合。例如,如图10所示以私有缓存包括L1缓存和L2缓存的组合为例,即电子装置200包括L1/L2缓存203。
例如,控制单元202还配置为执行如图8所示的使用预测目标物理地址进行访存指令所需的后续操作:使用预测目标物理地址查询L1/L2缓存203;响应于查询L1/L2缓存203命中,从L1/L2缓存203获取预测目标物理地址对应的数据;或者,响应于查询L1/L2缓存203失败,将后续操作暂停。
例如,在控制单元202查询L1/L2缓存203的具体过程中,首先使用预测目标物理地址查询L1缓存(L1 Cache)。如果预测目标物理地址查询L1缓存命中,则从L1缓存获取预测目标物理地址对应的数据以进行进一步处理;如果预测目标物理地址查询L1缓存缺失,则将缺失请求发送到L2缓存(L2 Cache),并标记此缺失请求使用了预测目标物理地址。如果L2缓存命中,则从L2缓存获取预测目标物理地址对应的数据以进行进一步处理;如果L2缓存也缺失,那么L2缓存无需发送缺失请求给L3缓存300,即将后续操作暂停。
本公开至少一实施例提供的电子装置在执行数据访问操作时,由于L2缓存不会将缺失请求送给L3缓存,从而不会访问到I/O接口,因而有效解决了I/O接口因为页表预测而被推测执行的问题,并且可以有效防止错误的预测目标物理地址访问物理内存而无效占用带宽的问题。
图11为本公开至少一实施例提供的一种电子设备的示意框图。
例如,如图11所示,该电子设备10为上述计算机系统,包括电子装置200。电子装置200为本公开任一实施例提供的电子装置,例如为图10所示的电子装置200。电子设备200可以为任意的具有计算功能的设备,例如为计算机、服务器、智能手机、平板电脑等,本公开的实施例对此不作限制。
图12为本公开至少一实施例提供的另一种电子设备的示意框图。
例如,如图12所示,该电子设备400例如适于用来实施本公开实施例提供的存储访问操作方法。电子设备400可以是终端设备或服务器等。需要注意的是,图12示出的电子设备400仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
例如,如图12所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)41,该处理装置例如包括根据本公开任一实施例的存储管理装置,并且其可以根据存储在只读存储器(ROM)42中的程序或者从存储装置48加载到随机访问存储器(RAM)43中的程序而执行各种适当的动作和处理。在RAM 43中,还存储有电子设备400操作所需的各种程序和数据。处理装置41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。通常,以下装置可以连接至I/O接口45:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置46;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置37;包括例如磁带、硬盘等的存储装置48;以及通信装置49。通信装置49可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。
虽然图10示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
关于电子设备10/400的详细说明和技术效果,可以参考上文中关于处理器的描述,此处不再赘述。
对于本公开,有以下几点需要说明:
(1)本公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开同一实施例及不同实施例中的特征可以相互组合。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种页表预测方法,用于翻译后备缓冲器,其中,所述翻译后备缓冲器包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到,
所述方法包括:
获取需要进行所述页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;
响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,
其中,所述参考合并表项由依次连续的X个子表项合并得到,按照所述依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
2.根据权利要求1所述的页表预测方法,其中,所述第二粒度为所述第一粒度的2n倍,所述第三粒度为所述第二粒度的2m倍,m和n为正整数。
3.根据权利要求1所述的页表预测方法,还包括:
判断所述至少一个第二表项中是否包括所述被标记为可用于预测的所述参考合并表项。
4.根据权利要求1所述的页表预测方法,还包括:
判断所述目标虚拟页面与所述参考合并表项对应的所述第二粒度的参考虚拟页面是否位于同一所述第三粒度的扩展虚拟页面内。
5.根据权利要求1所述的页表预测方法,其中,所述多个子表项的每个表示一个第一粒度的虚拟页面与一个第一粒度的物理页面的对应关系,所述至少一个第二表项的每个表示一个第二粒度的虚拟页面与一个第二粒度的物理页面的对应关系,
所述方法还包括:
响应于多个所述第一粒度的虚拟页面位于同一所述第二粒度的虚拟页面内且多个所述第一粒度的物理页面位于同一所述第二粒度的物理页面内,将所述多个子表项合并为一个所述第二表项。
6.根据权利要求1所述的页表预测方法,其中,所述第三粒度为2k位,k为大于1的整数,
基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,包括:
由所述参考虚拟页号对应的物理页地址的最高位到第k位得到所述预测物理页地址的最高位到第k位;
将所述目标虚拟页号对应的物理页地址的第k-1位到第0位设置为所述预测物理页地址的k-1位到第0位。
7.一种存储访问操作方法,包括:
获取访存指令使用的对象数据的目标虚拟地址;
使用所述目标虚拟地址查询翻译后备缓冲器;
响应于所述目标虚拟地址查询所述翻译后备缓冲器缺失,使用所述目标虚拟地址执行页表预测,获得预测物理页地址;
使用所述预测物理页地址,获得所述目标虚拟地址对应的预测目标物理地址;
使用所述预测目标物理地址进行所述访存指令所需的后续操作,
其中,所述翻译后备缓冲器包括多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到,
使用所述目标虚拟地址执行页表预测,包括:
获取所述目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;
响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的所述预测物理页地址,
其中,所述参考合并表项由依次连续的X个子表项合并得到,按照所述依次连续的X个子表项的顺序所对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
8.根据权利要求7所述的存储访问操作方法,其中,使用所述预测目标物理地址进行所述访存指令所需的后续操作,包括:
使用所述预测目标物理地址查询至少一级私有缓存;
响应于查询所述至少一级私有缓存命中,从所述至少一级私有缓存获取所述预测目标物理地址对应的数据;或者
响应于查询所述至少一级私有缓存失败,将所述后续操作暂停。
9.根据权利要求8所述的存储访问操作方法,其中,所述至少一级私有缓存包括L1缓存,或者,包括所述L1缓存和L2缓存的组合。
10.根据权利要求7所述的存储访问操作方法,还包括:
在使用所述预测目标物理地址进行所述后续操作的过程中,并行地使用所述目标虚拟地址进行页表浏览操作并获取所述目标虚拟地址对应的实际目标物理页地址;
响应于所述预测物理页地址和所述实际目标物理页地址相同,确认页表预测成功;或者
响应于所述预测物理页地址和所述实际目标物理页地址不同,确认页表预测失败,撤销已经使用所述预测目标物理地址进行的所述后续操作。
11.根据权利要求10所述的存储访问操作方法,其中,响应于所述确认页表预测成功,将所述访存指令标注为所述确认页表预测成功。
12.根据权利要求7所述的存储访问操作方法,在获得所述目标虚拟地址对应的所述预测目标物理地址之后,还包括:
对于所述访存指令,保存所述目标虚拟地址和所述预测目标物理地址,并且在所述后续操作中,将所述访存指令标注为使用所述预测目标物理地址。
13.根据权利要求12所述的存储访问操作方法,其中,对于所述访存指令,设置如下参数中的至少一项:
第一参数,用于标识是否使用所述预测目标物理地址;
第二参数,用于标识所进行所述后续操作所使用的物理地址是否合法;
第三参数,用于标识是否确认页表预测成功。
14.一种存储管理装置,包括:
管理单元和翻译后备缓冲器,
其中,所述翻译后备缓冲器配置为管理多个第一粒度的第一表项和至少一个第二粒度的第二表项,所述至少一个第二表项的每个由多个第一粒度的子表项合并得到;
所述管理单元配置为,获取需要进行页表预测的目标虚拟地址所在的第一粒度的目标虚拟页面的目标虚拟页号;并且,
所述管理单元还配置为,响应于所述至少一个第二表项包括被标记为可用于预测的参考合并表项且所述目标虚拟页面与所述参考合并表项对应的第二粒度的参考虚拟页面位于同一第三粒度的扩展虚拟页面内,基于所述目标虚拟地址以及所述参考虚拟页面的参考虚拟页号对应的物理页地址,预测得到所述目标虚拟页号对应的预测物理页地址,
其中,所述参考合并表项由依次连续的X个子表项所合并得到,按照所述依次连续的X个子表项的顺序对应的X个物理页面也是对应依次连续的,所述第三粒度为所述第二粒度的Y倍,X、Y为大于1的整数。
15.一种电子装置,包括:
控制单元;以及
如权利要求14所述的存储管理装置;
其中,所述控制单元配置为获取访存指令使用的对象数据的所述目标虚拟地址,使用所述目标虚拟地址查询所述翻译后备缓冲器,并且响应于所述目标虚拟地址查询所述翻译后备缓冲器缺失,获取所述存储管理装置通过所述目标虚拟地址进行页表预测得到的所述预测物理页地址,使用所述预测物理页地址,获得所述目标虚拟地址对应的预测目标物理地址,使用所述预测目标物理地址进行所述访存指令所需的后续操作。
16.根据权利要求15所述的电子装置,还包括:
至少一级私有缓存;
其中,所述控制单元还配置为,使用所述预测目标物理地址查询所述至少一级私有缓存;响应于查询所述至少一级私有缓存命中,从所述至少一级私有缓存获取所述预测目标物理地址对应的数据;或者,响应于查询所述至少一级私有缓存失败,将所述后续操作暂停。
17.根据权利要求15所述的电子装置,其中,所述存储管理装置还包括页表查询单元,
所述存储管理装置配置为,允许所述页表查询单元使用所述目标虚拟地址进行页表浏览操作并获取所述目标虚拟地址对应的实际目标物理页地址,
所述控制单元还配置为,响应于所述预测物理页地址和所述实际目标物理页地址相同,确认页表预测成功,或者,响应于所述预测物理页地址和所述实际目标物理页地址不同,确认页表预测失败,撤销已经使用所述预测目标物理地址进行的所述后续操作。
18.一种电子设备,包括:
如权利要求15-17所述的电子装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210966927.5A CN115292214A (zh) | 2022-08-11 | 2022-08-11 | 页表预测方法、存储访问操作方法、电子装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210966927.5A CN115292214A (zh) | 2022-08-11 | 2022-08-11 | 页表预测方法、存储访问操作方法、电子装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115292214A true CN115292214A (zh) | 2022-11-04 |
Family
ID=83828716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210966927.5A Pending CN115292214A (zh) | 2022-08-11 | 2022-08-11 | 页表预测方法、存储访问操作方法、电子装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292214A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185902A (zh) * | 2023-04-13 | 2023-05-30 | 阿里云计算有限公司 | 一种表切分方法、系统、电子设备及可读介质 |
CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
CN117472806A (zh) * | 2023-12-26 | 2024-01-30 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
CN117472807A (zh) * | 2023-12-28 | 2024-01-30 | 北京微核芯科技有限公司 | 虚拟地址的转换方法、装置和电子设备 |
CN117891751A (zh) * | 2024-03-14 | 2024-04-16 | 北京壁仞科技开发有限公司 | 内存数据访存方法及装置、电子设备与存储介质 |
WO2024139790A1 (zh) * | 2022-12-26 | 2024-07-04 | 华为技术有限公司 | 一种页表缓存方法以及存储系统 |
-
2022
- 2022-08-11 CN CN202210966927.5A patent/CN115292214A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024139790A1 (zh) * | 2022-12-26 | 2024-07-04 | 华为技术有限公司 | 一种页表缓存方法以及存储系统 |
CN116185902A (zh) * | 2023-04-13 | 2023-05-30 | 阿里云计算有限公司 | 一种表切分方法、系统、电子设备及可读介质 |
CN116681578A (zh) * | 2023-08-02 | 2023-09-01 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
CN116681578B (zh) * | 2023-08-02 | 2023-12-19 | 南京砺算科技有限公司 | 内存管理方法、图形处理单元、存储介质、终端设备 |
CN117472806A (zh) * | 2023-12-26 | 2024-01-30 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
CN117472806B (zh) * | 2023-12-26 | 2024-04-02 | 芯瞳半导体技术(山东)有限公司 | 一种地址翻译方法、装置及计算机存储介质 |
CN117472807A (zh) * | 2023-12-28 | 2024-01-30 | 北京微核芯科技有限公司 | 虚拟地址的转换方法、装置和电子设备 |
CN117472807B (zh) * | 2023-12-28 | 2024-03-29 | 北京微核芯科技有限公司 | 虚拟地址的转换方法、装置和电子设备 |
CN117891751A (zh) * | 2024-03-14 | 2024-04-16 | 北京壁仞科技开发有限公司 | 内存数据访存方法及装置、电子设备与存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
KR102290464B1 (ko) | 시스템 온 칩 및 그것의 주소 변환 방법 | |
US20080086599A1 (en) | Method to retain critical data in a cache in order to increase application performance | |
US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
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 | |
JP2017033584A (ja) | マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法 | |
US20160140042A1 (en) | Instruction cache translation management | |
US20180157601A1 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US10108553B2 (en) | Memory management method and device and memory controller | |
US6973547B2 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
CN115481054A (zh) | 数据处理方法、装置及系统、系统级soc芯片及计算机设备 | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
US9507729B2 (en) | Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor | |
US10754791B2 (en) | Software translation prefetch instructions | |
US9058270B2 (en) | False sharing detection logic for performance monitoring | |
US20140201447A1 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
US11003591B2 (en) | Arithmetic processor, information processing device and control method of arithmetic processor | |
US10977176B2 (en) | Prefetching data to reduce cache misses | |
US8117393B2 (en) | Selectively performing lookups for cache lines | |
US10521346B2 (en) | Arithmetic processing apparatus and control method for arithmetic processing apparatus | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
WO2008043670A1 (en) | Managing cache data |
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 |