当前位置: 首页 > 专利查询>微软公司专利>正文

转换后备缓冲器的惰性转储清除制造技术

技术编号:2862976 阅读:504 留言:0更新日期:2012-04-11 18:40
地址转换控制(ATC)限制了虚拟和物理地址之间的映射,以实现存储器访问政策。多处理器系统中的每一处理器维护高速缓存映射的转换后备缓冲器(TLB),以加速虚拟地址的转换。每一处理器也维护一计数器。每次当处理器的TLB被转储清除时,递增该处理器的计数器。当从地址转换映像移除到页的链接时,记录所有处理器的计数器值。当该页由处理器访问时,将记录的计数器值与该处理器的当前计数器值比较,以确定自从到该页的链接被从映射中移除以来该处理器的TLB是否已被转储清除。昂贵的TLB转储清除操作被延迟直到需要,但是仍足够早地出现以防止无效的TLB条目被用于违反访问政策。

【技术实现步骤摘要】

本专利技术一般涉及存储器管理领域,尤其涉及地址转换高速缓存的转储清除。
技术介绍
大多数计算机系统提供虚拟地址机制,藉此将虚拟地址映射到物理地址。当使用虚拟地址作出访问存储器位置的请求时,将该虚拟地址转换成向其寻找访问的目标存储器位置的对应的物理地址。一组地址转换表定义了虚拟地址和物理地址之间的映射。该转换表通常储存于存储器内,因此地址的转换需要存储器访问以读取该表。读该表所需要的存储器访问是在目标位置上执行的访问操作之外的访问。由此,当使用虚拟寻址时,相对于如果所有访问请求由物理地址作出将产生的访问数而言,有系统执行的存储器访问数将加倍。一些虚拟地址就其需要映射分阶段进行间接引用而言是多级的,这意味着可能花费两次或更多次存储器访问来执行地址转换(由此令实现一个基础访问请求所需要的存储器访问数变为三倍或更多)。为减少转换地址所必须发生的存储器访问数,许多虚拟地址系统采用一种称为转换后备缓冲器(TLBtranslation look-aside buffer)的高速缓存类型。由于最近被访问的存储器页可能在不久的将来再次被访问,一旦地址转换表被用于将虚拟页描述符转换成物理页位置,则将虚拟页和物理页之间的对应高速缓存在TLB中。每次需要执行地址转换时,检查TLB来确定TLB是否包含了所请求的存储器单元所处的页的高速缓存的映射。如果相关的映射被高速缓存在TLB中,则使用高速缓存的副本;否则,从转换表来转换地址。由于访问TLB要比访问存储器中的转换表快,因此当连续的存储器访问位于同一组页上时—事情往往如此—使用TLB将加快执行。当用虚拟存储器提供存储器保护时,TLB产生了其它问题。存储器保护寻求实施支配哪些软件组件可执行对哪些物理页的哪种访问(如,读、写)的安全政策;该保护可由虚拟存储器通过控制对虚拟—物理地址转换的控制来实施。(该控制可由创建映射的操作系统或将变化过滤到这一映射的地址转换控制(ATC)来行使。)然而,当修改地址转换时,旧映射仍可在TLB中存在。由此,当为某一软件组件修改地址转换表来撤回对页的某一访问权限时,组件可保留对页的访问直到从TLB转储清除(flush)这些旧映射。完成这一过程的普通方法是作为操作的一部分强制转储清除所有相关的TLB。然而,转储清除TLB是高代价的,尤其是在共享存储器的多处理器上。必须发信号通知包含违反新安全政策的过时映射的每一处理器转储清除其TLB;发这种信号通常需要相对较慢的处理器间中断(IPI)。另外,转储清除本身的开销大。鉴于以上原因,需要一种克服现有技术的缺点的机制。
技术实现思路
本专利技术提供了一种支持TLB的惰性转储清除(lazy flushing)的机制。对每一TLB,维护一计数器,并且每次当转储清除TLB时,递增该计数器。在每一处理器维护其自己的TLB的多处理器系统中,每一处理器可有其单独的计数器,其中,当一特定处理器转储清除其TLB时,递增该处理器的计数器。当触发事件出现时,在触发事件完成之后记录任一相关计数器的值。“触发事件”是以过时的TLB条目会导致政策的违反的方式影响地址转换映像或约束映射的存储器访问政策的事件;相关计数器是可包含这一过时条目的TLB的计数器。例如,在某一政策下,可将存储器的给定页声明为在界限外,并且从地址转换映像中移除到该页的所有映射;这种从映射对该页解除链接(de-link)是触发事件的一个示例,并且包含到该页的映射的任一TLB的计数器都是相关的。情况可以是执行了触发事件,并且在触发事件的效果或结果实际在地址转换过程中使用之前已经过了充分的时间。(例如,到存储器的给定页的映射可在给定的时间点上发生改变,但是在作出尝试来重新使用解除链接的页之前可能发生了上百万个操作。)当要使用触发事件的结果时,将储存的计数器值与当前计数器值向比较,以确定哪些(如果有的话)相关TLB可能自从触发事件以来尚未被转储清除。如果任一相关TLB具有匹配其记录值的计数器值,则以常规方式转储清除所有这样的TLB。应当注意,如果计数器值改变,则TLB是安全的—即,一定没有可导致违反适用的访问政策的过时TLB条目,而并且如果计数器值未改变,则TLB是不安全的。由此,在转储清除时,可以安全地使用任意大小的计数器,并以任意方式改变计数器(或甚至根本就不改变)。另一可能性是使用实时计数器来为最后一次转储清除的时间加时间戳;如果时钟被同步到某一时滞(time skew)内,则转储清除的启动方可仅记录修改转换的时间,并假定其时间戳至少超出转换修改时间该时滞的任何转储清除已完成。在高保证和非高保证环境(分别为“左侧”和“右侧”)并排存在,并且每一TLB转储清除需要到右侧的行程的系统中,本专利技术的机制可用于避免到右侧的不必要的行程。例如,在右侧和左侧之间的每一次变化可导致TLB转储清除,并且在每次处理器从右侧移到左侧时,递增每一处理器的计数器。换言之,由于右侧可靠地执行(或核实)TLB的转储清除,计数器反映出TLB包含将破坏存储器访问控制模式的条目的最后时间。每次令页变得对左侧不可访问(或不可写)时,本质上使用计数器值来对该页“加时间戳”。当由处理器访问该页时,确定处理器是否(1)当前在右侧,或(2)自从页状态改变以来可靠地转储清除了其TLB。后一确定可通过确保处理器的计数器值大于该页的保存值来执行。下文描述了本专利技术的其它特征。附图说明当结合附图阅读时,可以更好地理解上述概述以及以下较佳实施例的详细描述。为说明本专利技术的目的,附图中示出了本专利技术的示例性构造;然而,本专利技术不限于所揭示的具体方法和手段。附图中图1是可在其中实现本专利技术的各方面的示例计算环境的框图;图2是示例虚拟地址系统的框图;图3是在一个机器上共存的两个环境的框图,并且其存储器部分被遮蔽(curtained);图4所示是在地址转换过程中使用的转换后备缓冲器(TLB)的框图;图5是包括多个处理器的系统的框图,其中,每一处理器与一TLB和一计数器关联;以及图6是依照本专利技术的TLB惰性转储清除的过程的流程图。具体实施例方式综述地址转换控制(ATC)可用于通过动态地控制用于将虚拟地址转换成物理地址的映射来实现存储器访问政策。当转换后备缓冲器(TLB)用于高速缓存映射时,与访问政策的当前状态不一致的旧映射可保留在TLB中,由此向政策展现了运行计数器要使用的存储器。TLB可以被转储清除,但是转储清除TLB是昂贵的操作,优选尽可能少地执行该操作。本专利技术提供了一种惰性TLB转储清除的机制,允许推迟TLB的转储清除直到需要转储清除。该机制较佳地在每一处理器维护其自己的TLB的多处理器系统中使用,可独立于其它处理器的TLB来转储清除。示例性计算布置方案图1示出了适合在其中实现本专利技术的各方面的一个示例计算环境。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本专利技术的使用或功能的范围的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。本专利技术可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本专利技术的已知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、本文档来自技高网
...

【技术保护点】
一种从多个映射高速缓存的第一个中清除过时条目的方法,所述多个映射高速缓存的每一个与计算装置的多个处理单元的对应的一个关联,每一所述高速缓存用于将虚拟地址转换成物理地址并基于地址转换映像储存映射,其特征在于,所述方法包括:维护一计数器 ;每次当转储清除所述多个映射高速缓存的第一个时更新所述计数器;响应于所述地址转换映像中的变化记录所述计数器值;基于所述计数器值与所记录的计数器值的比较确定自从所述地址转换映像中的所述变化出现以来所述多个映射高速缓存的 第一个一定未被转储清除;以及转储清除所述多个映射高速缓存的第一个。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:ES科恩
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1