用于降低执行硬件表移动需要的时间和计算资源的量的方法和系统的制作方法

文档序号:9308578阅读:388来源:国知局
用于降低执行硬件表移动需要的时间和计算资源的量的方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机系统,而更具体地说,涉及计算机系统和供计算机系统中使用以降低执行硬件表移动(HffTW)需要的时间和计算资源的量的方法。
【背景技术】
[0002]现代计算机系统使用内存管理单元(MMU)来管理向一个或多个物理存储设备(诸如例如固态存储设备)写数据以及从一个或多个物理存储设备读取数据。计算机系统的MMU向计算机系统的中央处理单元(CPU)提供虚拟内存,其允许CPU在其自己专用的、连续的虚拟内存地址空间上运行每一个应用程序,而不是使所有的应用程序共享物理内存地址空间,所述物理内存地址空间经常是成碎片的或非连续的。MMU的目的是针对CPU将虚拟内存地址(VA)转化成物理内存地址(PA)。CPU通过直接地对MMU读和写VA来间接地读和写PA,所述MMU将VA转化成PA,并且然后写或读PA。
[0003]为了执行该转化,MMU存取被存储在系统主存储器中的页表。该页表由页表的条目组成。该页表的条目是由MMU使用来将VA映射成PA的信息。MMU通常包括转换旁路缓冲器(TLB),其是被用于缓存最近使用的映射的高速缓冲存储器单元。当MMU需要将VA转化成PA时,MMU首先检查TLB以确定是否存在针对该VA的匹配。如果有,则MMU使用在TLB中找到的映射来计算PA,并且然后存取PA(即,读或写PA)。这被称为TLB “命中”。如果MMU没有在TLB中找到匹配,则这被称为TLB “未中”。
[0004]在TLB未中事件中,MMU执行被称为硬件表移动(HffTW)的操作。HffTW是耗时的且计算上开销很高的过程,所述过程涉及执行“表移动”,以在MMU中查找相应的页表,并且在页表中读取多个位置,以查找相应的VA-至-PA的地址映射。然后,MMU使用该映射来计算相应的PA,并且将该映射写回到TLB。
[0005]在实现操作系统(OS)虚拟化的计算机系统中,将虚拟内存监视器(VMM)(通常还被称为系统管理程序)插入到计算机系统的硬件与计算机系统的系统OS之间。系统管理程序在特权模式下执行,并且能够主管一个或多个客户高级OS。在这样的系统中,运行在OS上的应用程序使用虚拟内存的第一层的VA来对内存寻址,以及运行在系统管理程序上的OS使用虚拟内存的第二层的中间物理地址(IPA)来对内存寻址。在MMU中,执行阶段I (SI)转化,以将每一个VA转化成IPA,以及执行阶段2 (S2)转化,以将每一个IPA转化成PA0
[0006]如果在执行这样的转化时发生TLB未中,则执行多级的、二维(2-D)的HWTW,以获得计算相应的IPA和PA需要的表条目。执行这些多级的、2-D的HWTW,能够引起MMU的大量计算开销,其通常导致性能代偿。
[0007]图1是当执行读事务时发生TLB未中时执行已知的、三级的、2-D的HffTW的插图。图1中示出的HffTW表示针对三级的、2-D的HffTW的最坏情况的场景,需要十五次表查找的执行来在数据被存储在物理内存中的地方获得PA。针对这个示例,计算机系统的MMU正在运行主管至少一个客户高级OS(HLOS)的系统管理程序,继而,其正运行至少一个应用程序。在这样的配置中,正被客户HLOS分配的内存不是系统的真实的物理内存,而是上述的中间物理内存。系统管理程序分配真实的物理内存。因此,将每一个VA转化成IPA,然后,将IPA转化成读取的数据实际被存储的地方的真实物理内存的PA。
[0008]该过程开始于MMU接收SI页全局目录(P⑶)IPA 2。针对这个最坏情况场景的示例,将假设的是,在MMU针对匹配检查TLB时发生TLB未中。因为该未中,MMU必须执行HWTW。HffTW涉及执行三次S2表查找3、4和5,以获得将IPA 2转变成PA所需的映射,以及一次额外的查找6来读取PA。表查找3、4和5分别涉及读取S2P⑶、页中间目录(PMD)和页表条目(PTE)。在查找6处读取PA为MMU提供SI PMD IPA 7。针对这个最坏情况场景的示例,将假设的是,当MMU针对匹配利用SI PMD IPA 7来检查TLB时发生TLB未中。因为该文中,所以MMU必须执行另一 HWTW。该HffTW涉及执行三次S2表查找8、9和11,以获得将SI PMD IPA 7转变成PA所需的映射,以及一次额外的查找12来读取PA。表查找8、9和11分别涉及读取S2P⑶、PMD和PTE。在查找12处读取PA为MMU提供SI PET IPA 13。
[0009]针对这个最坏情况场景的示例,将假设的是,当MMU针对匹配利用SI PTE IPA 13来检查TLB时发生TLB未中。因为该未中,MMU必须执行另一 HWTW。该HffTW涉及执行三次S2表查找14、15和16,以获得将SI PTE IPA 13转变成PA所需的映射,以及一次额外的查找17来读取PA。表查找14、15和16分别涉及读取S2 PGff,PMD和PTE。在查找17处读取PA为MMU提供真实的IPA 18。针对这个最坏情况场景的示例,将假设的是,当MMU针对匹配利用真实的IPA 18来检查TLB时发生TLB未中。因为该未中,MMU必须执行另一 HWTW。该HffTW涉及执行三次S2表查找19、21和22,以获得将真实的IPA 18转变成PA所需的映射。表查找19、21和22分别涉及读取S2P⑶、PMD和PTE。然后,读取PA来获得相应的读数据。在查找18处读取PA为MMU提供SI PTE IPA 13。
[0010]因此,能够看出的是,在针对三级的、2-D的HffTW的最坏情况场景下,执行了 12次S2表查找和三次SI表查找,其是消耗大量时间并导致性能代偿的大量计算开销。已经使用各种各样的技术和架构来降低在执行HffTW中涉及的时间和处理开销的量,包括,例如,增加TLB的大小,使用多个TLB,使用平面嵌套的页表,使用影子分页或推测的影子分页,以及使用页移动高速缓冲存储器。虽然所有的这些技术和架构能够降低与执行HffTW相关联的处理开销,但是,它们经常导致计算机系统中别的地方的处理开销的增加。
[0011]因此,存在针对降低执行HffTW需要的时间和计算资源的量的计算机系统和方法的需求。

【发明内容】

[0012]本发明针对一种计算机系统和一种供在计算机系统中使用的方法,用于降低执行HffTW需要的时间和计算资源的量。该计算机系统包括至少一个中央处理单元(CPU)、至少一个物理内存、至少一个TLB和至少一个MMU。CPU运行主机OS和系统管理程序。系统管理程序控制CPU上的至少第一客户OS的执行。系统管理程序运行与第一客户OS相关联的至少第一 VM。物理内存具有可由PA寻址的物理内存位置。将至少一个页表存储在物理内存的物理内存位置处。页表包括与用于将IPA映射成物理内存的真实PA的映射相对应的页表条目。TLB存储页表条目的子集。当执行内存访问时,MMU确定与IPA相关联的页表条目是否被存储在TLB中。如果与IPA相关联的页表条目未被存储在TLB中,则已经发生TLB未中。如果发生TLB未中,则预测存储与IPA相关联的数据处的物理内存的PA,由此避免通过执行HffTW来计算PA的需求。
[0013]该方法包括:
[0014]在MMU 中:
[0015]确定与IPA相关联的页表条目是否被存储在TLB中;
[0016]如果作出与IPA相关联的页表条目未被存储在TLB中的确定,则判定已经发生TLB未中;以及
[0017]如果作出已经发生TLB未中的判定,则预测存储与所述IPA相关联的数据处的物理内存的PA。
[0018]本发明还提供了一种计算机可读介质(CRM),所述计算机可读介质存储用于由一个或多个处理器执行以降低与执行HffTW相关联的处理开销的计算机代码。该计算机代码包括第一代码部分和第二代码部分。第一代码部分确定与IPA相关联的页表条目是否被存储在TLB中。如果作出与IPA相关联的页表条目未被存储在TLB中的确定,则第一代码部分判定已经发生TLB未中。如果第一代码部分判定已经发生TLB未中,则第二代码部分预测存储与所述IPA相关联的数据处的物理内存的PA。
[0019]根据下面的描述、附图和权利要求,这些和其它特征和优点将变得显而易见。
【附图说明】
[0020]图1是根据本发明的说明性的实施例的计算机系统的框图。
[0021]图2示出了根据被配置为执行用于降低执行HffTW需要的时间和计算资源的量的方法的说明性的、或示例性的实施例的计算机系统的框图。
[0022]
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1