CN115210697A - 用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索 - Google Patents
用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索 Download PDFInfo
- Publication number
- CN115210697A CN115210697A CN202080088748.5A CN202080088748A CN115210697A CN 115210697 A CN115210697 A CN 115210697A CN 202080088748 A CN202080088748 A CN 202080088748A CN 115210697 A CN115210697 A CN 115210697A
- Authority
- CN
- China
- Prior art keywords
- page size
- order
- page
- tlb
- lookup
- 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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
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
本发明公开了一种包括支持多个页面大小的统一转换后备缓冲器(TLB)的存储器管理单元(MMU)。在一个方面,所述MMU被进一步配置为存储和动态更新与所述多个页面大小中的每一个相关联的页面大小驻留元数据。所述页面大小驻留元数据可以包括最新近使用的(MRU)页面大小数据和/或用于每个页面大小的计数器,所述计数器指示有多少所述页面大小的页面驻留在所述统一TLB中。所述统一TLB被配置为基于所述页面大小驻留元数据来确定对所述多个页面大小中的至少一个页面大小子集执行TLB查找的顺序。
Description
优先权申请
本申请要求于2019年12月20日提交的题为“用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索(FLEXIBLE STORAGE AND OPTIMIZED SEARCH FOR MULTIPLEPAGE SIZES IN A TRANSLATION LOOKASIDE BUFFER)”的美国专利申请序列号16/722,974的优先权,该申请通过引用整体并入本文。
技术领域
本公开的技术总体上涉及地址转换,并且具体地涉及优化支持多个页面大小的转换后备缓冲器中的查找。
背景技术
存储器管理单元(Memory management unit,MMU)通常为处理器和其他片上系统(systems on chip,SOC)中的存储器操作提供地址转换服务。MMU可以包括转换后备缓冲器(translation lookaside buffer,TLB),该TLB可以用作虚拟地址的最新近的地址转换的高速缓冲存储器,使得可以快速检索新近使用的地址转换。否则,地址转换可能通过页表遍历来执行,这可能是长等待时间的操作并且可能不可接受地使TLB是其一部分的处理器或SoC的整体性能劣化。
TLB是其一部分的处理器或SOC可以被配置为在访问相关联的存储器层级时支持多个不同的存储器页面大小(例如,其可以由处理器的架构来指定),例如以便适应各种虚拟机(virtual machine,VM)和管理程序/虚拟机监控器(virtual machine monitor,VMM)的不同编程模型和分页方案。处理多个页面大小的一种常规方法是为每个页面大小提供单独的TLB(例如,对于每个页面大小可以有单独的物理存储体)。然而,在可以支持相对较大数量的页面大小的系统中,从硬件面积的角度来看,为每个可能的页面大小实施TLB可能是低效的,并且如果特定的工作负载使用相对较小数量的所支持的页面大小,则可能导致较大数量的TLB处于相对空闲和/或被稀疏填充,并且可能意味着每个单独的TLB可以存储更少的地址转换,从而导致更频繁的页表遍历和伴随的性能劣化。
另外的常规方法是实施统一TLB。统一TLB是其中每个TLB条目被配置为存储相关联的存储器层级的所有可能的页面大小的TLB。这减轻了对于每个页面大小具有单独的TLB的硬件面积损失和利用不足的低效率,但是以搜索操作的复杂性和等待时间为代价,因为每个TLB查找必须遍历所有可能的页面大小以便检测未命中。尽管这相比于执行页表遍历可能对性能不那么有害,但从性能的角度来看,这仍然是不期望的。
发明内容
具体实施方式中公开的各方面包括一种存储器管理单元(MMU),该MMU包括支持多个页面大小的统一转换后备缓冲器(TLB)。MMU被进一步配置为存储和动态更新与多个页面大小中的每一个相关联的页面大小驻留元数据。页面大小驻留元数据可以包括最新近使用的(most recently used,MRU)页面大小数据和/或用于每个页面大小的计数器,该计数器指示有多少该页面大小的页面驻留在统一TLB中。统一TLB被配置为基于页面大小驻留元数据来确定对多个页面大小中的至少一个页面大小子集执行TLB查找的顺序。
在这点上,在一个方面,一种设备包含存储器管理单元(MMU),该MMU包括被配置为支持多个页面大小的统一转换后备缓冲器(TLB)。MMU被进一步配置为存储和动态更新与多个页面大小中的每一个相关联的页面大小驻留元数据。TLB被进一步配置为以基于页面大小驻留元数据的顺序对多个页面大小中的至少一个页面大小子集执行查找。
在另一方面,一种设备包含用于管理存储器的装置,该用于管理存储器的装置包括用于缓存被配置为支持多个页面大小的转换的装置。用于管理存储器的装置被进一步配置为存储和动态更新与多个页面大小中的每一个相关联的页面大小驻留元数据。用于缓存转换的装置被进一步配置为以基于页面大小驻留元数据的顺序对多个页面大小中的至少一个页面大小子集执行查找。
在又一方面,一种方法包含接收对被配置为支持多个页面大小的统一TLB的查找。该方法进一步包含基于被配置为动态更新的页面大小驻留元数据来确定对多个页面大小的至少一个子集执行查找的顺序。
在又一方面,一种非暂时性计算机可读介质,其上存储有计算机可执行指令,这些计算机可执行指令在由处理器执行时使处理器接收对被配置为支持多个页面大小的统一TLB的查找。该非暂时性计算机可读介质进一步包含指令,这些指令在由处理器执行时使处理器基于被配置为动态更新的页面大小驻留元数据来确定对多个页面大小的至少一个子集执行查找的顺序。
附图说明
图1是包括支持多个页面大小的统一转换后备缓冲器(TLB)的示例性处理系统的框图;
图2是包括支持多个页面大小的统一TLB的示例性存储器管理单元(MMU)的详细框图;
图3a是示例性页面大小驻留计数器块的详细图;
图3b是示例性页面大小查找顺序块的详细图;
图3c是示出两个示例性经注释的查找请求的框图;
图4是示出在支持多个页面大小的统一TLB中执行查找的方法的流程图;以及
图5是包括支持多个页面大小的统一转换后备缓冲器(TLB)的示例性的基于处理器的系统的框图。
具体实施方式
现在参考附图,描述了本公开的若干示例性方面。单词“示例性”在本文中用于表示用作示例、实例或说明。本文中描述为“示例性”的任何方面不必解释为比其它方面优选或有利。
具体实施方式中公开的各方面包括一种存储器管理单元(MMU),该MMU包括支持多个页面大小的统一转换后备缓冲器(TLB)。MMU被进一步配置为存储和动态更新与多个页面大小中的每一个相关联的页面大小驻留元数据。页面大小驻留元数据可以包括最新近使用的(MRU)页面大小数据和/或用于每个页面大小的计数器,该计数器指示有多少该页面大小的页面驻留在统一TLB中。统一TLB被配置为基于页面大小驻留元数据来确定对多个页面大小中的至少一个页面大小子集执行TLB查找的顺序。
在这点上,图1是包括支持多个页面大小的统一转换后备缓冲器(TLB)的示例性处理系统的框图100。处理系统可以包括中央处理单元(CPU)105,该CPU可以包括一个或多个处理器核心,诸如处理器核心110。在一个方面,处理器核心110可以被配置为执行第一虚拟机120和第二虚拟机121。虚拟机120和虚拟机121可以各自被配置为在利用存储器层级140执行事务时使用多个页面大小,并且那些事务可以经由CPU 105和存储器层级140两者均耦合到的系统总线130通信传送。
为了使CPU 105执行存储器事务,CPU 105可以包括存储器管理单元(MMU)150,该MMU耦合到存储器层级140并且被配置为执行关于存储器层级140的那些存储器事务。作为例如通过虚拟机120和虚拟机121执行这些存储器事务(这些存储器事务可以各自与所使用的多个页面大小中的特定页面大小相关联)的一部分,MMU 150可以包括统一转换后备缓冲器160,该统一转换后备缓冲器可以被配置为提供与存储器事务相关的地址转换的缓冲(例如,可以采用所接收的虚拟地址,执行统一TLB 160的检查以查看虚拟地址在多个页面大小中的一个页面大小下是否具有已知的转换,并且可以提供经转换的地址,使得MMU 150可以执行存储器事务)。
MMU 150可以进一步包括页面大小驻留元数据块161,以提供与统一TLB 160相关的增强的地址转换服务。如上所讨论的那样,因为诸如统一TLB 160的统一TLB能够存储多个大小的页面的转换,所以通常此类TLB将搜索可能的页面大小中的每一个页面大小方面的转换,这可以包括搜索当前不驻留在统一TLB中的页面大小方面的转换。为了减轻该影响,页面大小驻留元数据块161跟踪与存在于统一TLB 160中的TLB事务和/或页面大小相关联的元数据,并将该信息提供给统一TLB 160,以便使在统一TLB 160中的查找更有效。在一个方面,页面大小驻留元数据块161可以包含多个计数器,每个计数器与多个页面大小中的一个页面大小相关联,并且保持在统一TLB 160中具有转换的每个页面大小的页面的数量的精确计数(范围为从0到可以驻留在统一TLB 160中的该大小的页面的最大数量)。在另一方面,页面大小驻留元数据块161可以包含页面大小查找顺序信息。例如,页面大小查找顺序信息可以是处于最新近使用顺序、最频繁使用顺序或可能与正在CPU 105上执行的特定工作负载的预期存储器访问模式相关的任何其他顺序的所有可能页面大小的列表。在一个方面,来自多个计数器的信息可以在统一TLB 160中使用,以抑制对当前不驻留在统一TLB160中的页面大小(即,与那些页面大小相关联的计数器为0)的查找。在另一方面,可以在统一TLB 160中使用多个页面大小的最新近使用顺序,以建立搜索能够存储在统一TLB 160中的多个页面大小中的页面的顺序(即,较新近使用的页面大小将在最近较少使用的页面大小之前被查找)。在又一方面,计数器(或其他类似的元数据)可以用于建立搜索能够存储在统一TLB 160中的多个页面大小中的页面的最频繁使用顺序(即,具有当前存储的较多条目的页面大小将在具有当前存储的较少条目的页面大小之前被查找)。
附加地,上述方面可以彼此组合,或者与其他与查找相关的元数据组合,以便进一步增强统一TLB 160的性能。在这点上,图2是包括支持多个页面大小的统一TLB 160和页面大小驻留元数据块161的存储器管理单元(MMU)150的详细框图200。页面大小驻留元数据块161进一步包括各自耦合到搜索协调块230的页面大小查找顺序块210和页面大小驻留计数器块220,该搜索协调块耦合到统一TLB 160。
页面大小查找顺序块210被配置为维护可以存储在统一TLB 160中的多个页面大小的列表。页面大小查找顺序块210被进一步配置为在涉及统一TLB 160的事务(例如,填充、逐出和无效等)期间跟踪与每个页面大小相关联的元数据,并确定在统一TLB 160中对多个页面大小进行查找的顺序。进行查找的顺序可以基于任何排序算法。例如,页面大小查找顺序块210可以跟踪涉及统一TLB 160的事务中的最新近使用的页面大小,并且可以以最新近使用顺序维护多个页面大小的列表。在其他方面,作为其他示例,该顺序可以是随机顺序、确切时间顺序(时间最早的页面大小到最近的页面大小)、先进先出(first-in-first-out,FIFO)顺序或最频繁使用顺序。
页面大小驻留计数器块220包括多个计数器,计数器中的每一个与能够存储在统一TLB 160中的多个页面大小中的一个页面大小相关联。每个计数器被配置为精确跟踪当前存储在统一TLB 160中的与该页面大小相关联的条目的数量,并且被配置为指示当前没有与该页面大小相关联的条目存储在统一TLB 160中。
页面大小驻留计数器块220和页面大小查找顺序块210两者均耦合到搜索协调块230,该搜索协调块在一个方面接收来自页面大小驻留计数器块220的计数器信息以及来自页面大小查找顺序块210的查找顺序信息。搜索协调块230将查找请求250与当前计数器信息和当前查找顺序信息相关联,以形成经注释的查找请求260,该请求被提供给统一TLB160以便被执行。在示例性方面,统一TLB 160可以使用当前查找顺序信息(其在一个示例中可以是最新近使用的顺序)来选择搜索多个页面大小的顺序(即,统一TLB 160将在最近较少使用的页面大小之前搜索较新近使用的页面大小),并且可以使用当前计数器信息来抑制对多个页面大小中当前未驻留在统一TLB 160中的任何页面大小的查找。附加地,如果统一TLB 160根据计数器信息确定所有页面大小或者多个页面大小中尚未被查找的所有剩余页面大小没有驻留在统一TLB 160中,则统一TLB 160可以提前终止查找。
图3a是根据一个方面的示例性页面大小驻留计数器块(诸如图2的页面大小驻留计数器块220)的详细图300。页面大小驻留计数器块220包含耦合到多个计数器311、312、313和314的计数器管理块320。多个计数器311、312、313和314中的每一个计数器与多个页面大小中的一个页面大小相关联,这些页面大小可以存储在相关联的统一TLB中,诸如图1和图2的统一TLB 161中。页面大小驻留计数器块220被配置为监控计数器管理块320中的TLB事务,诸如TLB事务330。根据相关联的统一TLB中的TLB事务330的结果,计数器管理块320可以改变存储在计数器311-314中的对应于与TLB查找330相关联的页面大小的值(即,页面大小驻留计数器块220动态地调节计数器以反映TLB的内容方面的变化)。例如,如果TLB事务330的结果是利用对应于与计数器311相关联的页面大小的转换来填充TLB,则计数器管理块320可以使存储在计数器311中的值递增。相反,如果TLB事务330的结果是逐出对应于与计数器311相关联的页面大小的转换,则计数器管理块320可以使存储在计数器311中的值递减。附加地,计数器管理块320可以监控其他类型的TLB事务,诸如无效(无论是全部TLB还是其部分的无效),并且可以相应地调节计数器(即,重置关于完全无效的所有计数器,或者调节与部分无效相关联的各个计数器)。
图3b是根据一个方面的示例性页面大小查找顺序块(诸如图2的页面大小查找顺序块210)的详细图350。页面大小查找顺序块210包含耦合到最新近使用(MRU)管理块370的多个最新近使用(MRU)条目361、362、363和364。MRU条目361-364中的每一个与可以驻留在相关联的统一TLB中的多个页面大小中的一个页面大小相关联,使得MRU条目的数量与多个页面大小的页面大小的数量相同。MRU管理块370被配置为调节MRU条目361-364,以基于诸如TLB事务375的TLB事务来维护关于页面大小的最新近使用的顺序的当前信息(即,该顺序基于TLB的变化内容而动态更新)。例如,在复位或TLB无效时,所有MRU条目361-364可以被初始化为空。在特定页面大小的TLB填充时,MRU管理块370可选地利用特定页面大小填充条目361-364中的一个,并且然后调节所有条目361-364的相对顺序,以指示与所填充的最新近页面大小相关联的条目是查找顺序中最新近条目。本领域技术人员将认识到,存在实施MRU条目361-364和MRU管理块370的许多不同的方式,以便跟踪最新近使用的查找顺序,并且所有这些都在本公开的教导的范围内。进一步,在一些方面,页面大小查找顺序块210还可以响应来自CPU 105的上下文信息(例如,CPU 105的每个异常级别可以具有相关联的MRU管理块270和MRU条目361-364,使得页面大小查找顺序块210可以包括多个MRU管理块和多组MRU条目)。
如以上参考图2所讨论的那样,存储在图3a的页面驻留计数器查找块220中的计数器信息和存储在图3b的页面大小查找顺序块210中的最新近使用的信息可以用于形成可以被提供给统一TLB 160的经注释的查找请求。在这点上,图3c是示出两个示例性经注释的查找请求的框图380。在一个方面,统一TLB 160支持4千比特(kB)、16 kB、64 kB和2兆比特(MB)的页面大小。因此,页面大小驻留计数器查找块220具有四个计数器(每个页面大小一个),并且页面大小查找顺序块210具有四个条目(同样,每个页面大小一个)。每次由MMU150接收查找请求时,搜索协调块230利用来自页面大小查找顺序块210和页面大小驻留计数器块220的当前信息来注释查找请求。
例如,第一查找请求391被注释以形成第一经注释的查找请求390。第一经注释的查找请求390包括来自MRU条目361-364的示出页面大小的当前最新近使用的顺序是2 MB、4kB、16 kB和64 kB(从最不新近到最新近)的信息。附加地,第一经注释的查找请求390进一步包括来自计数器311-314的指示每个页面大小有多少个条目驻留在统一TLB 160中的信息。例如,在第一查找请求391时,存在驻留在统一TLB 160中的0个2 MB页面、9个4 kB页面、3个16 kB页面和2个64 kB页面。第一经注释的查找请求390可以被提供给统一TLB 160,该统一TLB可以相应地通过首先查找64 kB页面、然后16 kB页面、然后4 kB页面来执行查找,并且可以抑制对2 MB页面的查找(因为没有2 MB页面驻留在统一TLB 160中),并且如果在先前的页面大小中的一个中没有找到与第一查找请求391相关联的页面转换,则可以提前终止查找。
进一步,在一段时间后,第二查找请求396被注释以形成第二经注释的查找请求395。第二经注释的查找请求395包括来自MRU条目361-364的示出页面大小的当前最新近使用的顺序是2 MB、16 kB、64 kB和4 kB(从最不新近到最新近)的信息,这指示在自第一查找请求391以来的时间内,TLB已经以4 kB页面大小进行了一次填充。附加地,第二经注释的查找请求390进一步包括来自计数器311-314的指示每个页面大小有多少个条目驻留在统一TLB 160中的信息。例如,在第二查找请求396时,存在0个2 MB页面、3个16 kB页面、2个64kB页面和10个4 kB页面(因此,自第一次查找请求391以来的时间内,又填充了一个4 kB页面)。第二经注释的查找请求395可以被提供给统一TLB 160,该统一TLB可以相应地通过首先查找4 kB页面、然后64 kB页面、然后16 kB页面来执行查找,可以抑制对2 MB页面的查找(因为,同样,没有2 MB页面驻留在统一TLB 160中),并且如果在先前的页面大小中的一个中没有找到与第二查找请求396相关联的页面转换,则可以提前终止查找。
图4是示出在支持多个页面大小的统一TLB中执行查找的方法400的流程图。方法400可以由MMU 150执行,如上面参考图1至图3c所述。方法开始于框410,在该处接收对被配置为支持多个页面大小的统一TLB的查找请求。例如,在存储器管理单元150处接收对统一TLB 160的查找请求250。
该方法在框420中继续,在该处确定对多个页面大小的至少一个子集执行查找的顺序。该顺序基于页面大小驻留元数据,该页面大小驻留元数据被配置为动态更新。例如,搜索协调块230从页面大小驻留计数器块220接收当前计数器信息,并从页面大小查找顺序块210接收当前最新近使用的顺序信息。
然后,该方法可选地继续到框430,在该处形成包括查找和页面大小驻留元数据的至少一个子集的经注释的查找请求。例如,如参考图2所讨论的那样,搜索协调块230使用查找请求250、当前计数器信息和当前最新近使用的顺序信息来形成经注释的查找请求260。
该方法然后可选地继续到框440,在该处将经注释的查找请求提供给统一TLB。例如,如参考图2所讨论的那样,搜索协调块230向统一TLB 160提供经注释的查找请求260。
该方法然后可选地继续到框450,在该处统一TLB执行经注释的查找请求。例如,如参考图3c所讨论的那样,统一TLB 160可以通过首先查找4 kB页面、然后64 kB页面、然后16kB页面来执行第二经注释的查找请求395,可以抑制对2 MB页面的查找(因为,同样,没有2MB页面驻留在统一TLB 160中),并且如果在先前的页面大小中的一个中没有找到与第二查找请求396相关联的页面转换,则可以提前终止查找。
本领域技术人员将认识到,前面的附图和所示的各方面是示例性的,并且具有不同排序算法(即,以不同的查找顺序对多个页面大小执行查找)、页面大小的数量以及与TLB查找相关联的其他元数据的其他方面是可能的。尽管图3c中示出的经注释的查找请求精确地跟踪哪些页面大小驻留在统一TLB 160中,但是其他实施方式也是可能的。例如,只要保证经注释的查找请求相对于搜索哪些页面大小是过度包含的(也就是说,它可以使不驻留在TLB中的页面大小被查找,但是无法使驻留在TLB中的页面大小的查找被抑制),不是在每个周期中提供足以更新和服务经注释的查找请求的存储,而是注释信息可能仅每N个周期更新一次,这可能牺牲某种水平的查找性能以获得与页面大小驻留元数据相关联的减少的硅面积。
被配置为在统一TLB中对统一TLB被配置为支持的多个页面大小的至少一个子集并且以基于页面大小驻留元数据的顺序执行查找的示例性存储器管理单元可以设置在或集成到任何基于处理器的装置中。示例包括但不限于服务器、计算机、便携式计算机、台式计算机、移动计算装置、机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算装置(例如,智能手表、健康或健身跟踪器、眼镜等)、个人数字助理(PDA)、监控器、计算机监控器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆部件、航空电子系统、无人驾驶飞机和多旋翼直升机。
在这点上,图5示出了基于处理器的系统500的示例,该系统可以包括示例性存储器管理单元,该示例性存储器管理单元被配置为在统一TLB中对统一TLB被配置为支持的多个页面大小的至少一个子集并且以如图1至图3c所描述的基于页面大小驻留元数据的顺序执行查找;并且可以被配置为执行图4的方法。在该示例中,基于处理器的系统500包括具有一个或多个中央处理单元(CPU)505的处理器501,每个CPU包括一个或多个处理器核心并且可以对应于图1的处理器105。处理器501可以进一步包括存储器管理单元506(其可以对应于图1的MMU 150,并且可以包括页面大小驻留元数据块161和统一TLB 16)。CPU 505可以是主装置。CPU 505可以具有耦合到CPU 505的缓冲存储器508以便快速访问临时存储的数据。CPU 505耦合到系统总线510,该系统总线可以对应于图1的系统总线130并且可以互连包括在基于处理器的系统500中的主装置和从属装置。众所周知,CPU 505通过在系统总线510上交换地址、控制和数据信息来与这些其他装置通信。例如,CPU 505可以将总线事务请求通信传送到作为从属装置的示例的存储器控制器551。尽管图5中未示出,但是可以提供多个系统总线510,其中每个系统总线510构成不同的结构。
其他主装置和从属装置可以连接到系统总线510。如图5所示,作为示例,这些装置可以包括存储器系统550(其可以对应于图1的存储器层级140)、一个或多个输入装置530、一个或多个输出装置520、一个或多个网络接口装置540以及一个或多个显示控制器560。输入装置530可以包括任何类型的输入装置,包括但不限于输入键、开关、语音处理器等。输出装置520可以包括任何类型的输出装置,包括但不限于音频、视频、其他视觉指示器等。网络接口装置540可以是被配置为允许将数据交换到网络545和从网络交换数据的任何装置。网络545可以是任何类型的网络,包括但不限于有线或无线网络、私有或公共网络、局域网(local area network,LAN)、无线局域网(wireless local area network,WLAN)、广域网(wide area network,WAN)、蓝牙网络和互联网。网络接口装置540可以被配置为支持所期望的任何类型的通信协议。存储器系统550可以包括耦合到一个或多个存储器阵列552的存储器控制器551。
CPU 505还可以被配置为通过系统总线510访问显示控制器560,以控制发送到一个或多个显示器562的信息。显示控制器560通过一个或多个视频处理器561向显示器562发送要显示的信息,该视频处理器将要显示的信息处理成适合于显示器562的格式。显示器562可以包括任何类型的显示器,包括但不限于阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子显示器、发光二极管(light emittingdiode,LED)显示器等。
本领域的技术人员将进一步理解,结合本文所公开的各方面描述的各种说明性逻辑块、模块、电路和算法可以被实施为电子硬件、存储在存储器或另一计算机可读介质中且由处理器或其他处理装置执行的指令或两者的组合。作为示例,本文描述的主装置和从属装置可以用于任何电路、硬件组件、集成电路(integrated circuit,IC)或IC芯片中。本文公开的存储器可以是任何类型和大小的存储器,并且可以被配置为存储所期望的任何类型的信息。为了清楚地示出这种可互换性,上文中已经根据它们的功能描述了各种说明性的组件、块、模块、电路和步骤。如何实施这种功能取决于特定的应用、设计选择和/或对整个系统的设计约束。熟练的技术人员可以针对每种特定的应用以不同的方式实施所描述的功能,但是此类实施方式决定不应该被解释为导致脱离本公开的范围。
结合本文公开的各方面描述的各种说明性逻辑块、模块和电路可以利用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或其他可编程逻辑装置、分立门或晶体管逻辑、分立硬件组件或被设计成执行本文描述的功能的它们的任意组合来实施或执行。处理器可以是微处理器,但是在替代性方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器、或者任何其他此类配置)。
本文公开的各方面可以以硬件和存储在硬件中的指令实现,并且可以驻留在例如随机存取存储器(Random Access Memory,RAM)、闪存存储器、只读存储器(Read OnlyMemory,ROM)、电可编程ROM(Electrically Programmable ROM,EPROM)、电可擦除可编程ROM(Electrically Erasable Programmable ROM,EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息,以及向存储介质写入信息。在替代性方案中,存储介质可以集成到处理器中。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在远程站中。在替代性方案中,处理器和存储介质可作为离散组件驻留在远程站、基站或服务器中。
还应注意,在本文中的示例性方面中的任何一个中描述的操作步骤是为了提供示例和讨论而描述的。所描述的操作可以以不同于所示的顺序的多种不同顺序来执行。另外,在单个操作步骤中描述的操作实际上可以在多个不同的步骤中执行。附加地,可以组合在示例性方面中讨论的一个或多个操作步骤。应当理解的是,流程图中示出的操作步骤可以进行多种不同的修改,这对本领域技术人员来说是显而易见的。本领域的技术人员还将理解,可以使用各种不同的技术和方法中的任何一种来表示信息和信号。例如,贯穿以上描述可能提及的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任意组合来表示。
提供本公开的前述描述是为了使本领域的任何技术人员能够制造或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中定义的一般原理可适用于其他方面。因此,本公开不旨在限于本文描述的示例和设计,而是将被赋予与本文公开的原理和新颖特征一致的最宽范围。
Claims (23)
1.一种设备,其包含:
存储器管理单元(MMU),所述MMU包括被配置为支持多个页面大小的统一转换后备缓冲器(TLB),所述MMU被进一步配置为存储和动态更新与所述多个页面大小中的每一个相关联的页面大小驻留元数据,所述TLB被进一步配置为以基于所述页面大小驻留元数据的顺序对所述多个页面大小中的至少一个页面大小子集执行查找。
2.根据权利要求1所述的设备,其中所述页面大小驻留元数据包含多个计数器,每个计数器与一个页面大小相关联并且被配置为跟踪所述TLB中存在的相关联的页面大小的页面的数量。
3.根据权利要求2所述的设备,其中所述TLB被进一步配置为当与第一页面大小相关联的计数器指示所述TLB中不存在所述第一页面大小的页面时,抑制对所述第一页面大小的查找。
4.根据权利要求2所述的设备,其中所述TLB被进一步配置为当与第二页面大小相关联的计数器指示所述TLB中存在所述第二页面大小的至少一个页面时,执行对所述第二页面大小的查找。
5.根据权利要求4所述的设备,其中所述TLB被进一步配置为当与第三页面大小相关联的计数器指示在所述TLB中存在比所述第二页面大小的页面更多的所述第三页面大小的页面时,在所述第二页面大小之前执行对所述第三页面大小的查找。
6.根据权利要求2所述的设备,其进一步包含页面大小查找顺序块,所述页面大小查找顺序块被配置为动态确定所述多个页面大小的查找顺序。
7.根据权利要求6所述的设备,其中所述查找顺序基于最新近使用的顺序、最频繁使用的顺序、确切时间顺序、先进先出顺序或随机顺序中的至少一个。
8.根据权利要求6所述的设备,其中所述查找顺序基于最新近使用的顺序和最频繁使用的顺序的组合。
9.根据权利要求6所述的设备,其中当以由所述页面大小查找顺序块确定的所述查找顺序执行查找时,所述TLB被进一步配置为当与所述多个页面大小中的第一页面大小相关联的计数器指示所述TLB中不存在所述第一页面大小的页面时,抑制对所述第一页面大小的所述查找。
10.根据权利要求1所述的设备,其集成到集成电路(IC)中。
11.根据权利要求10所述的设备,其进一步集成到选自由以下各项组成的群组的装置中:服务器、计算机、便携式计算机、台式计算机、移动计算装置、机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算装置(例如,智能手表、健康或健身跟踪器、眼镜等)、个人数字助理(PDA)、监控器、计算机监控器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆部件、航空电子系统、无人驾驶飞机和多旋翼直升机。
12.一种设备,其包含:
用于管理存储器的装置,所述用于管理存储器的装置包括用于缓存被配置为支持多个页面大小的转换的装置,所述用于管理存储器的装置被进一步配置为存储和动态更新与所述多个页面大小中的每一个相关联的页面大小驻留元数据,所述用于缓存转换的装置被进一步配置为以基于所述页面大小驻留元数据的顺序对所述多个页面大小中的至少一个页面大小子集执行查找。
13. 一种方法,其包含:
接收对被配置为支持多个页面大小的统一TLB的查找;以及
基于被配置为动态更新的页面大小驻留元数据来确定对所述多个页面大小的至少一个子集执行所述查找的顺序。
14.根据权利要求13所述的方法,其进一步包含形成经注释的查找请求,所述经注释的查找请求包括所述查找和所述页面大小驻留元数据的至少一个子集。
15. 根据权利要求14所述的方法,其进一步包含:
向所述统一TLB提供所述经注释的查找请求;以及
在所述统一TLB处执行所述经注释的查找请求。
16.根据权利要求13所述的方法,其中所述页面大小驻留元数据包括TLB事务的顺序,并且其中所述顺序基于最新近使用的顺序、最频繁使用的顺序、确切时间顺序、先进先出顺序或随机顺序中的至少一个。
17.根据权利要求16所述的方法,其中所述顺序基于最新近使用的顺序和最频繁使用的顺序的组合。
18. 根据权利要求13所述的方法,其中所述页面大小驻留元数据包括多个计数器,其中每个计数器与一个页面大小相关联并且被配置为跟踪所述TLB中存在的相关联的页面大小的页面的数量,所述方法进一步包含:
当与第一页面大小相关联的计数器指示所述TLB中不存在所述第一页面大小的页面时,抑制对所述第一页面大小的查找;以及
当与第二页面大小相关联的计数器指示所述TLB中存在所述第二页面大小的至少一个页面时,执行对所述第二页面大小的查找。
19.根据权利要求18所述的方法,其中所述页面大小驻留元数据进一步包括TLB事务的顺序,并且其中所述顺序基于最新近使用的顺序、最频繁使用的顺序、确切时间顺序、先进先出顺序或随机顺序中的至少一个。
20.根据权利要求19所述的方法,其中所述顺序基于最新近使用的顺序和最频繁使用的顺序的组合。
21. 一种非暂时性计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时使所述处理器:
接收对被配置为支持多个页面大小的统一TLB的查找;以及
基于被配置为动态更新的页面大小驻留元数据来确定对所述多个页面大小的至少一个子集执行所述查找的顺序。
22.根据权利要求21所述的非暂时性计算机可读介质,其进一步包含计算机可执行指令,所述计算机可执行指令在由所述处理器执行时使所述处理器形成经注释的查找请求,所述经注释的查找请求包括所述查找和所述页面大小驻留元数据的至少一个子集。
23. 根据权利要求22所述的非暂时性计算机可读介质,其进一步包含计算机可执行指令,所述计算机可执行指令在由所述处理器执行时使所述处理器:
向所述统一TLB提供所述经注释的查找请求;以及
在所述统一TLB处执行所述经注释的查找请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/722,974 US11386016B2 (en) | 2019-12-20 | 2019-12-20 | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer |
US16/722974 | 2019-12-20 | ||
PCT/US2020/065735 WO2021127263A1 (en) | 2019-12-20 | 2020-12-17 | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115210697A true CN115210697A (zh) | 2022-10-18 |
Family
ID=74186914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080088748.5A Pending CN115210697A (zh) | 2019-12-20 | 2020-12-17 | 用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11386016B2 (zh) |
EP (1) | EP4078386A1 (zh) |
CN (1) | CN115210697A (zh) |
WO (1) | WO2021127263A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386016B2 (en) | 2019-12-20 | 2022-07-12 | Ampere Computing Llc | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer |
US11675710B2 (en) * | 2020-09-09 | 2023-06-13 | Apple Inc. | Limiting translation lookaside buffer searches using active page size |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454219A1 (en) | 1990-04-24 | 1991-10-30 | Akzo N.V. | Polyurethane reaction mixtures and coating compositions therefrom |
US7089398B2 (en) * | 2003-07-31 | 2006-08-08 | Silicon Graphics, Inc. | Address translation using a page size tag |
US7159095B2 (en) | 2003-12-09 | 2007-01-02 | International Business Machines Corporation | Method of efficiently handling multiple page sizes in an effective to real address translation (ERAT) table |
US7543132B1 (en) * | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US8364933B2 (en) | 2009-12-18 | 2013-01-29 | International Business Machines Corporation | Software assisted translation lookaside buffer search mechanism |
JP2013073270A (ja) * | 2011-09-26 | 2013-04-22 | Fujitsu Ltd | アドレス変換装置、演算処理装置及び演算処理装置の制御方法 |
US9058284B1 (en) * | 2012-03-16 | 2015-06-16 | Applied Micro Circuits Corporation | Method and apparatus for performing table lookup |
US9086987B2 (en) * | 2012-09-07 | 2015-07-21 | International Business Machines Corporation | Detection of conflicts between transactions and page shootdowns |
US10489303B2 (en) * | 2016-03-10 | 2019-11-26 | Arm Limited | Multi-range lookup in translation lookaside buffer |
US10372618B2 (en) * | 2016-10-14 | 2019-08-06 | Arm Limited | Apparatus and method for maintaining address translation data within an address translation cache |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10846239B2 (en) * | 2018-11-29 | 2020-11-24 | Marvell Asia Pte, Ltd. | Managing translation lookaside buffer entries based on associativity and page size |
US11055232B2 (en) * | 2019-03-29 | 2021-07-06 | Intel Corporation | Valid bits of a translation lookaside buffer (TLB) for checking multiple page sizes in one probe cycle and reconfigurable sub-TLBS |
US11386016B2 (en) | 2019-12-20 | 2022-07-12 | Ampere Computing Llc | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer |
-
2019
- 2019-12-20 US US16/722,974 patent/US11386016B2/en active Active
-
2020
- 2020-12-17 CN CN202080088748.5A patent/CN115210697A/zh active Pending
- 2020-12-17 EP EP20842454.9A patent/EP4078386A1/en active Pending
- 2020-12-17 WO PCT/US2020/065735 patent/WO2021127263A1/en unknown
-
2021
- 2021-12-01 US US17/457,081 patent/US11822487B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4078386A1 (en) | 2022-10-26 |
US11386016B2 (en) | 2022-07-12 |
US20220091997A1 (en) | 2022-03-24 |
US11822487B2 (en) | 2023-11-21 |
WO2021127263A1 (en) | 2021-06-24 |
US20210191877A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102545726B1 (ko) | 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공 | |
CN107667355B (zh) | 一种用于提供分区的转换高速缓存器的方法及其设备 | |
US20180329830A1 (en) | Reducing metadata size in compressed memory systems of processor-based systems | |
US11822487B2 (en) | Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer | |
CN110998547A (zh) | 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入 | |
US10198362B2 (en) | Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems | |
EP3224727A1 (en) | Generating approximate usage measurements for shared cache memory systems | |
US10228991B2 (en) | Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems | |
KR20240054404A (ko) | 고속 메모리 액세스를 위한 시스템들 및 방법들 | |
WO2018144184A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur | |
US10754795B2 (en) | MMU assisted address sanitizer | |
US20220004501A1 (en) | Just-in-time synonym handling for a virtually-tagged cache | |
EP3256945A1 (en) | Bifurcated memory management for memory elements | |
EP4168895A1 (en) | Virtual 3-way decoupled prediction and fetch |
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 |