用于在某些情况下当执行硬件表移动(hwtw)时防止对寄存器的内容进行未授权的存取的...的制作方法

文档序号:9308580阅读:405来源:国知局
用于在某些情况下当执行硬件表移动(hwtw)时防止对寄存器的内容进行未授权的存取的 ...的制作方法
【技术领域】
[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分别涉及读取S2 P⑶、页中间目录(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分别涉及读取S2 P⑶、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分别涉及读取S2 P⑶、PMD和PTE。然后,读取PA来获得相应的读数据。在查找18处读取PA为MMU提供SI PTE IPA 13。
[0010]因此,能够看出的是,在针对三级的、2-D的HffTW的最坏情况场景下,执行了 12次S2表查找和三次SI表查找,其是消耗大量时间并导致性能代偿的大量计算开销。已经使用各种各样的技术和架构来降低在执行HffTW中涉及的时间和处理开销的量,包括,例如,增加TLB的大小,使用多个TLB,使用平面嵌套的页表,使用影子分页或推测的影子分页,以及使用页移动高速缓冲存储器。虽然所有的这些技术和架构能够降低与执行HffTW相关联的处理开销,但是,它们经常导致计算机系统中别的地方的处理开销的增加。
[0011]因此,存在针对降低执行HffTW需要的时间和计算资源的量的计算机系统和方法的需求。还存在针对用于防止对在HffTW期间已经被加载到TLB中的PA的内容进行未授权的存取的方法和装置的需求。

【发明内容】

[0012]本发明针对一种用于防止对在执行HffTW期间已经被加载到计算机系统的存储元件中的PA的内容进行未授权的存取的安全装置和方法。该安全装置和方法检测某些条件,以确定是否应当防止对该内容进行存取,包括检测是否使用预测算法来基于PA预测VA。
[0013]该装置包括安全逻辑单元,其被配置为如果当针对PA的内容检查TLB时发生未中,则确定预测算法当前是否被启用,其中该预测算法将PA作为IPA的函数进行预测。该安全逻辑单元被配置为当预测算法当前被启用时,防止存储元件的内容被无特权的实体存取。
[0014]该方法包括:
[0015]提供安全逻辑单元;
[0016]如果当针对PA的内容检查TLB时发生未中,则利用安全逻辑单元确定预测算法当前是否被启用,所述预测算法将PA作为IPA的函数进行预测;以及
[0017]如果安全逻辑单元确定预测算法当前被启用,则安全逻辑单元防止存储元件的内容被无特权的实体存取。
[0018]本发明还针对非暂时性计算机可读介质(CRM),其具有存储于其上以由计算机系统的一个或多个处理器执行的用于防止对在执行HffTW期间已经被加载到计算机系统的存储元件中的PA的内容进行未授权的存取的计算机代码。该计算机代码包括第一计算机代码部分和第二计算机代码部分。如果当针对PA的内容检查TLB时发生未中,则第一计算机代码部分确定预测算法当前是否被启用,所述预测算法将PA作为IPA的函数进行预测。如果第一计算机代码部分确定预测算法当前被启用,则第二计算机代码部分防止存储元件的内容被无特权的实体存取。
[0019]根据下面的描述、附图和权利要求,这些和其它特征和优点将变得显而易见。
【附图说明】
[0020]图1是根据本发明的说明性的实施例的计算机系统的框图。
[0021]图2示出了根据被配置为执行用于降低执行HffTW需要的时间和计算资源的量的方法的说明性的、或示例性的实施例的计算机系统的框图。
[0022]图3是根据说明性的实施例来表示被图2中示出的系统管理程序执行的、以降低执行HffTW读事务需要的时间和处理开销的量的方法的流程图。
[0023]图4是根据说明性的实施例来展示在其中使用由图3中示出的流程图表示的方法来执行HffTW读事务的方式的示意图。
[0024]图5是根据说明性的实施例执行由图3中示出的流程图表示的方法的硬件预测器的框图。
[0025]图6示出在其中并入了图2中示出的计算机系统的移动智能手机的框图。
[0026]图7是根据说明性的实施例用于当图5中示出的预测器被启用时执行防止对已经被加载到TLB中的寄存器中的PA的内容进行未授权的存取的安全算法的安全逻辑单元的框图。
[0027]图8是根据说明性的实施例描述由图7中示出的安全逻辑单元执行的过程的流程图。
【具体实施方式】
[0028]根据本文描述的说明性实施例,提供了一种计算机系统和一种供在计算机系统中使用的方法,用于降低执行HffTW需要的时间和计算资源的量。如果当执行S2HWTW以查找存储SI页表的PA时发生TLB未中,则MMU执行使用IPA来预测相应的PA的预测算法,由此避免执行S2表格查找中的任一个的需求。这极大地降低了当执行这些类型的HffTW读事务时需要被执行的查找的数量,其极大地降低了与执行这些类型的事务相关联的处理开销和性能代偿。
[0029]此外,提供了用于执行防止对由于启用预测算法而已经被加载到存储元件(例如,TLB的寄存器)中
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1