转换后备缓冲器中的条目的租约的自适应延期制造技术

技术编号:19878281 阅读:15 留言:0更新日期:2018-12-22 17:56
所描述的实施方案包括具有两个或更多个转换后备缓冲器(TLB)的计算装置。在操作期间,所述计算装置基于来自页表条目的在页表寻访期间所获取的虚拟地址到物理地址转换和元数据来更新所述TLB中的条目。然后,所述计算装置基于租约长度表达式来计算所述TLB中的所述条目的租约长度。接下来,针对所述TLB中的所述条目,所述计算装置将租约值设置为所述租约长度,其中所述租约值表示直到所述TLB中的所述条目的租约到期时为止的时间,其中当相关联的租约已经到期时,所述TLB中的所述条目无效。然后,所述计算装置使用所述租约值来控制允许使用来自所述TLB中的所述条目的信息执行的操作。

【技术实现步骤摘要】
【国外来华专利技术】转换后备缓冲器中的条目的租约的自适应延期
所描述的实施方案涉及计算装置。更具体地,所描述的实施方案涉及转换后备缓冲器中条目的租约的自适应延期。相关技术许多现代计算装置使用虚拟存储器技术来处理由在计算装置中执行的程序(例如,应用程序、操作系统、装置驱动程序等)进行的数据访问。在这种计算装置中,当程序访问数据时,将包括数据的给定大小(例如,4kB)的存储器块(其被称为存储器的“页”)从大容量存储装置(例如,硬盘驱动器或半导体存储器)复制到计算装置中的主存储器中的可用物理位置,或者在存储器中新创建所述存储器块(例如,用于存储从计算操作生成的结果等)。为了避免程序需要跟踪存储器中页的物理位置,计算装置中的处理器替程序跟踪页的物理位置。在这种计算装置中,程序使用“虚拟地址空间”(其是特定于对应程序的本地地址空间)中的“虚拟地址”访问存储器,而不是使用基于页的物理位置的地址(或“物理地址”)访问存储器。从程序的角度来看,虚拟地址指示存储器中的页内存储数据的实际物理位置,并且因此程序使用虚拟地址进行存储器访问。然而,虚拟地址可能不直接映射到存储器中的页中存储数据的物理位置的物理地址。作为管理页的物理位置的一部分,处理器将存储器访问请求中由程序使用的虚拟地址转换为数据实际所在的物理地址。然后,处理器使用所述物理地址来替程序执行存储器访问。为了能够实现上述虚拟地址到物理地址转换,计算装置包括“页表”。页表是存储在计算装置的存储器中的记录(或记录的层级),所述记录包括条目或“页表条目”,具有用于存储在主存储器中的数据页的虚拟地址到物理地址转换信息。在从程序接收到访问给定虚拟地址处的存储器的请求时,处理器通过执行“页表寻访”从页表获取对应的物理地址信息,在此期间可能逐个条目地在页表中搜索提供与虚拟地址关联的物理地址的页表条目。由于上述页表寻访相对较慢,因此希望避免执行页表寻访。因此,计算装置包括转换后备缓冲器(“TLB”),其是每个处理器中的本地高速缓存,所述本地高速缓存由处理器用于存储基于在页表寻访期间获取的页表条目的有限数量的信息副本。在操作期间,处理器首先尝试从对应的TLB获取高速缓存的页表条目,以执行虚拟地址到物理地址转换。当TLB中不存在对应页表条目的副本时,即,当发生“TLB未命中”时,处理器执行页表寻访以获取期望的页表条目,并且然后可以将所获取的页表条目的副本高速缓存在TLB中。在操作期间,上述计算装置中的处理器可以修改页表中的页表条目(例如,改变页表条目的虚拟地址到物理地址转换信息、改变页表条目的读取/写入属性等)。为了避免页表与计算装置中的其他处理器中的TLB中保存的页表条目的副本之间的不一致,发起页表条目修改的“发起处理器”可以执行称为“TLB击落”的操作。一般来说,在TLB击落期间,用于修改页表条目的处理器导致保存页表条目的高速缓存副本的其他处理器使高速缓存的副本无效,从而避免不一致。当执行TLB击落以使得能够修改页表条目时,发起处理器(例如,发起处理器中的存储器管理单元、在发起处理器上执行的操作系统等)修改页表条目。发起处理器还确定可以具有来自高速缓存在其TLB中的页表条目的信息的副本的其他处理器,并向每个其他处理器发送指示页表条目正被修改的进程间中断(IPI)。在接收到IPI时,如果在对应的TLB中存在所述页表条目,则每个其他处理器使包含这种条目的对应TLB中的条目无效。每个其他处理器还向发起处理器传回确认。发起处理器收集确认,并且当已经从每个其他处理器接收到确认时,继续进行后续操作。在这些操作期间,一些处理器在内核模式与用户模式之间切换一次或多次。由于用于执行TLB击落的上述操作是长等待时间,因此执行TLB击落通常需要大量时间来完成(例如,处理器中的数万个时钟周期)。使这个问题更加复杂的是,这些操作的等待时间随着计算装置中处理器数量的增加而增加。例如,当中央处理单元(CPU)和图形处理单元(GPU)共享计算装置中的地址空间时,CPU和GPU两者都可能需要参与TLB击落。因此,等待TLB击落完成可能使处理器延迟,并且更一般地,使计算装置延迟执行其他操作。附图说明图1呈现示出根据一些实施方案的计算装置的框图。图2呈现示出根据一些实施方案的页表的框图。图3呈现示出根据一些实施方案的用于页表条目的元数据的框图。图4呈现示出根据一些实施方案的TLB的框图。图5呈现示出根据一些实施方案的用于TLB中条目的元数据的框图。图6呈现示出根据一些实施方案的用于为TLB中的条目设置租约值以及为对应的页表条目设置最新租约值的过程的流程图。图7呈现示出根据一些实施方案的用于使用TLB中的条目的租约值的过程的流程图。图8呈现示出根据一些实施方案的用于使用页表中的页表条目的最新租约的过程的流程图。图9呈现示出根据一些实施方案的用于使用页表中的页表条目的最新租约的过程的流程图。图10呈现示出根据一些实施方案的用于动态地设置租约值的过程的流程图。图11呈现根据一些实施方案的动态地设置租约值的伪代码示例。图12呈现示出根据一些实施方案的使用多个表实现的页表的框图。在整个附图和描述中,相同的附图标记指代相同的附图元件。具体实施方式呈现以下描述以使得本领域技术人员能够制造和使用所描述的实施方案,并且在特定应用及其要求的背景下提供以下描述。对所描述的实施方案的各种修改对于本领域技术人员来说将是显而易见的,并且在本文中定义的一般原理可以应用于其他实施方案和应用。因此,所描述的实施方案不限于示出的实施方案,而是与符合本文公开的原理和特征的最宽范围相一致。概况所描述的实施方案包括位于处理器中的两个或更多个处理器核心中的每一个中的单独的转换后备缓冲器(TLB)。每个TLB具有多个条目,每个条目被配置成用于存储(即,高速缓存)基于页表条目的信息(例如,虚拟地址到物理地址转换和对应的元数据)。在所描述的实施方案中,处理器可以在修改页表中的页表条目时执行上述TLB击落。然而,由于TLB击落相对较慢,因此所描述的实施方案使用租约值和最新租约值来在可能的情况下避免执行TLB击落。在所描述的实施方案中,租约值与TLB中包含基于页表条目的信息的每个条目相关联。例如,租约值可以存储在与TLB中的条目相关联的元数据中或存储在单独的位置中。每个条目的租约值表示条目有效的时间。例如,租约值可以是特定的绝对或相对时间,在所述时间之前,TLB中的对应条目被认为是有效的。当租约“到期”时,对应的条目被认为是无效的,并且条目中的页表条目信息不能再用于指定的操作(例如,虚拟地址到物理地址转换等)。例如,当租约值是已经过去的特定时间时,条目被视为过期,并且因此无效且不能再用于指定的操作。在所描述的实施方案中,处理器中的多个TLB可以保存基于具有不同租约值并且因此具有不同到期时间的相同页表条目的信息的高速缓存副本。为了跟踪最新/最后的租约到期时间,所描述的实施方案存储页表中的页表条目的最新租约值。例如,最新的租约值可以存储在与页表条目相关联的元数据中,或者存储在存储器中的单独位置中。每个页表条目的最新租约值包含这样一个值:其表示基于保存在TLB中的页表条目的信息的副本的最长租约值。例如,如果第一核心中的TLB保存基于页表条目的信息的副本,其租约值为时间X,并本文档来自技高网...

【技术保护点】
1.一种用于处理计算装置中的转换后备缓冲器(TLB)中的条目的方法,所述方法包括:基于来自页表条目的在页表寻访期间所获取的虚拟地址到物理地址转换和元数据来更新所述TLB中的条目;基于租约长度表达式来计算所述TLB中的所述条目的租约长度;针对所述TLB中的所述条目,将租约值设置为所述租约长度,其中所述租约值表示直到所述TLB中的所述条目的租约到期时为止的时间,其中当相关联的租约已经到期时,所述TLB中的所述条目无效;以及使用所述租约值来控制允许使用来自所述TLB中的所述条目的信息执行的操作。

【技术特征摘要】
【国外来华专利技术】2016.03.25 US 15/081,379;2016.11.25 US 15/361,3351.一种用于处理计算装置中的转换后备缓冲器(TLB)中的条目的方法,所述方法包括:基于来自页表条目的在页表寻访期间所获取的虚拟地址到物理地址转换和元数据来更新所述TLB中的条目;基于租约长度表达式来计算所述TLB中的所述条目的租约长度;针对所述TLB中的所述条目,将租约值设置为所述租约长度,其中所述租约值表示直到所述TLB中的所述条目的租约到期时为止的时间,其中当相关联的租约已经到期时,所述TLB中的所述条目无效;以及使用所述租约值来控制允许使用来自所述TLB中的所述条目的信息执行的操作。2.如权利要求1所述的方法,所述方法还包括:保存用于所述TLB条目的延期计数器,所述延期计数器存储表示所述TLB中的所述条目的租约延期次数的值,其中当所述租约到期并且为所述TLB条目建立另一个租约时,租约被延期;其中所述租约长度表达式是至少所述延期计数器的函数。3.如权利要求2所述的方法,其中所述租约长度表达式包括所述延期计数器和基准租约值的乘法。4.如权利要求2所述的方法,其中所述租约长度表达式包括所述延期计数器的指数函数或线性函数。5.如权利要求2所述的方法,所述方法还包括:从所述计算装置中的实体接收将所述延期计数器设置为指定值的请求;以及将所述延期计数器设置为所述指定值,从而使得所述计算装置中的所述实体能够指定基于所述租约长度表达式计算出的所述租约长度。6.如权利要求2所述的方法,其中保存所述延期计数器包括将所述延期计数器保存在页表中。7.如权利要求1所述的方法,所述方法还包括:基于一个或多个运行时条件来确定要计算所述租约长度,所述运行时条件包括租约长度长于或短于期望租约长度的一个或多个指示。8.如权利要求7所述的方法,其中租约长度长于或短于期望租约长度的所述指示包括以下各项中的一个或多个:由基于过期的TLB条目的TLB未命中导致的页表寻访的次数;以及TLB击落的次数。9.如权利要求1所述的方法,所述方法还包括:确定要在所述页表中修改所述页表条目;确定与所述页表条目相关联的TLB条目的所有租约都已经到期,并且因此与所述页表条目相关联的任何TLB条目都不再有效;以及在不执行TLB击落的情况下修改所述页表中的所述页表条目,所述TLB击落包括导致所述计算装置中的一个或多个TLB使与所述页表条目相关联的对应TLB条目无效。10.如权利要求1所述的方法,所述方法还包括:确定要在所述页表中修改所述页表条目;确定与所述页表条目相关联的TLB条目的至少一个租约尚未到期,并且因此至少一个TLB目前具有带有基于所述页表条目的信息的有效条目;执行TLB击落,所述TLB击落包括导致所述计算装置中的一个或多个TLB使与所述页表条目相关联的对应TLB条目无效;以及修改所述页表中的所述页表条目。11.如权利要求1所述的方法,其中使用所述租约值来控制允许使用来自所述TLB中的所述条目的信息执行的所述操作包括:获取要转换成物理地址的虚拟地址;确定所述TLB中的所述条目包括对应的虚拟地址到物理地址转换;检查所述TLB中的所述条目的所述租约值以确定所述条目的所述租约是否已经到期;当所述租约已经到期时,执行页表寻访以获取所述虚拟地址到物理地址转换或所述元数据;以及当所述租约尚未到期时,从所述TLB中的所述条目获取所述虚拟地址到物理地址转换或所述元数据。12.一种计算...

【专利技术属性】
技术研发人员:阿姆鲁·阿瓦德谢尔盖·布拉戈杜罗夫阿尔卡普拉瓦·巴苏马克·H·奥斯丁加布里埃尔·H·洛安德鲁·G·克格尔大卫·S·克里斯蒂凯文·J·麦格拉斯
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1