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

文档序号:9308580阅读:来源:国知局
的PA的内容进行未授权的存取的安全算法的安全装置和方法的说明性实施例。当预测算法被启用时,对于具有系统知识的人员来说,可能配置预测算法来使被存储在主存储器的安全部分的PA处的内容被加载到TLB中的寄存器中。以这种方式,不应当使用被存储在主存储器的安全部分中的内容的人员能够间接地获得对这些内容的未授权的存取。该安全装置和方法通过在某些环境下遮掩该内容来防止这样的未授权的存取发生。在描述该安全装置和方法的说明性实施例之前,将关于图2-6描述用于执行预测算法的计算机系统和方法的说明性实施例。然后,将关于图7和8描述该安全装置和方法的说明性实施例。
[0030]图2根据被配置为执行用于降低执行S2HWTW以在存储SI页表的位置处查找PA需要的时间和计算资源的量的方法的说明性的、或示例性的实施例示出了计算机系统100的框图。图2中示出的计算机系统100的示例包括CPU集群110、主存储器120、摄像机显示器130、图形处理单元(GPU) 140、外围连接接口快速(PCIe)输入/输出(I/O)设备150、多个I。TLB (1TLB) 160以及系统总线170。计算机集群110具有多个CPU核110a,其中的每一个CPU核I1a具有MMU IlOb0每一个CPU核IlOa可以是微处理器或任意其它合适的处理器。摄像机显示器130具有系统MMU(SMMU) 130a。GPU 140具有其自己的SMMU 140a。同样地,PCIe 1设备150具有其自己的SMMU 150a。
[0031 ] 处理器核I 1a的MMU I 1b被配置为执行将VA转化成IPA以及将IPA转化成PA的任务。将页表存储在主存储器120中。MMU IlOb和SMMU130a、140a和150a中的每一个具有其自己的TLB (出于清楚的目的,未示出),所述TLB存储被存储在主存储器120中的页表的子集。根据这个说明性的实施例,在发生TLB未中之后,MMU IlOb执行处理IPA以预测PA的预测算法。在数学上,可以将该预测算法表示为:
[0032]PA = f (IPA), (等式 I)
[0033]其中,f表示数学函数。下文关于图5详细地描述可以被用于这个目的的函数f。短语“以预测”,如该短语在本文被使用的,表示“以确定”的意思,并且尽管随机的或概率的确定不必然地被排除在本发明的范围之外,但是,该短语并不意味随机的或概率的确定。由预测算法进行的预测通常是确定性的,但是,不必然地是确定性的。
[0034]CPU集群110运行系统OS 200和虚拟机监视器(VMM)或系统管理程序210。系统管理程序210管理转化任务,所述转化任务除去执行转化之外包括更新被存储在MMU IlOb和SMMU 130a、140a和150a中的页表。系统管理程序210还运行客户HLOS 220和/或客户数字版权管理器(DRM) 230。可以将HLOS 220与摄像机显示器130相关联,以及可以将DRM 230与GPU 140相关联。系统管理程序210管理HLOS 220和DRM 230。
[0035]在发生TLB未中之后,系统管理程序210配置MMU IlOb和SMMU130a、140a和150a,以执行预测算法来将IPA转变成PA。在这样的情况下,以在其中SI转化正常开始的典型方式,从CPU集群110的硬件基址寄存器(出于清楚的目的,未示出)获得针对与TLB未中相关联的VA的起始IPA。然后,如下文将更详细地描述的,预测算法根据等式I预测PA。为了管理和更新 SMMU 130a、140a 和 150a,CPU MMU IlOb 在总线 170 上向 SMMU 130a、140a 和150a发送分布式虚拟内存(DVM)消息。MMU IlOb和SMMU 130a、140a和150a访问主存储器120,以执行HWTW。
[0036]根据说明性的实施例,CPU MMU IlOb将MMU业务分成三个事务类别,S卩:(I)S2HWTW读事务,以查找存储SI页表的PA ; (2)客户端事务;以及(3)地址故障(AF)/脏标志写事务。根据这个说明性的实施例,对于类别I事务(即,HffTW读事务),预测算法针仅将IPA转变成PA。针对所有其它的事务类别,根据这个说明性的实施例,MMU IlOb和SMMU130a、140a和150a以典型的方式执行所有其它的转化(例如,SI和客户端事务S2转化)。
[0037]图3是根据说明性的实施例来表示由CPU MMU IlOb执行以降低执行HffTW读事务需要的时间和处理开销的量的方法的流程图。框301表示方法开始,通常在CPU集群110启动并开始运行系统OS 200和系统管理程序210时发生。如由框302指示的,MMU IlOb将业务分成上述的事务类别(I)、(2)和(3)。分类过程可以将事务分成比这三个类别要多或要少的类别,但是,分类中的至少一个分类将是类别(I)事务,即,S2HWTW读事务,以查找存储SI页表的PA。在由框303表示的步骤处,对在执行类别⑴的事务时是否已经发生TLB未中进行确定。如果未发生,则该方法进行到框306,在框306处,MMU IlOb或SMMU 130a、140a或150a以正常的方式执行HWTW。
[0038]如果在由框303表示的步骤处CPU MMU IlOb确定当执行类别⑴事务时发生未中,则该方法进行到由框305表示的步骤。在由框305表示的步骤处,执行上述预测算法,以将IPA转变或转化成PA。
[0039]图4是根据说明性的实施例来展示在其中执行HffTW读事务的方式的示意图。针对这个说明性的实施例,出于示例性的目的,假设页表是三级页表并且HffTW是2-D的HWTW。该示例还假设TLB未中的最坏情况场景。该过程开始于MMU接收VA,以及然后从控制寄存器(出于清楚的目的,未示出)检索SI P⑶IPA 401。然后,MMU针对与SI P⑶IPA 401的匹配来检查TLB。针对这个最坏情况场景的示例,将假设的是,当MMU针对匹配来检查TLB时发生TLB未中。因为这个未中,MMU执行预测算法,以将SI P⑶IPA 401转变成存储SIPMD IPA 403的PA 402。因此,使用单个查找来将SI PGD IPA 401转变成PA 402。
[0040]针对该最坏情况场景的示例,将假设的是,当MMU针对匹配利用SlPMD IPA 403来检查TLB时发生TLB未中。因为该未中,MMU执行预测算法,以将SI PMD IPA 403转变成存储SI PTE IPA 405的PA 404。因此,使用单个查找来将SI PMD IPA 403转变成PA 404。针对这个最坏情况场景的示例,将假设的是,当MMU针对匹配利用SI PTE IPA 405来检查TLB时发生TLB未中。因为该未中,MMU执行预测算法,以将SI PTE IPA 405转变成存储IPAl 407的PA 406。一旦已经获得IPAl 407,就执行三次查找408、409和411,以获得存储要读取的数据的最终PA 412。
[0041]因此,根据这个实施例,能够看出的是,已经将查找的总次数从十五(图1)降低到了六,其表示处理开销降低了 60%。当然,本发明不限于具有特定级数或特定数量的HffTW维度的MMU配置。本领域技术人员将理解的是,应用本发明的概念和原理,而不管页表的配置。同样地,尽管本文关于IPA-至-PA转变描述了方法和系统,但是,它们同样可应用于不使用IPA的系统中的直接的VA-至-PA的转变。
[0042]图5是执行预测算法的预测器500的说明性实施例的框图。通常在MMU IlOb中和SMMU 130a、140a和150a中实现预测器500。如上文指示的,根据说明性的实施例,仅当执行类别I的读事务时执行预测算法。图5中示出的预测器500的配置是允许针对类别I的事务启用预测器500和针对所有其它的事务类别(包括类别2和3的事务)禁用预测器500的一个配置的示例。
[0043]图5中示出的预测器500的配置还允许预测器500选择被用在上文等式I中的函数f,以基于IPA来计算PA。每一个虚拟机(VM)可以使用不同的函数f的集合,所以,重要的是,被使用的函数的集合确保在IPA的范围上的IPA与PA之间存在一一对应的映射。系统管理程序210可以管理多个HLOS或DRM,所述多个HLOS或DRM中的每一个将具有运行在系统管理程序210中的相应的VM。被使用的函数的集合确保预测的PA不与被分配给另一VM的预测的PA重叠。
[0044]函数f的示例是:
[0045]PA = IPA ;
[0046]PA = IPA+Offset_funct1n (VMID),其中,VMID 是跨越所有 VM 标识与 HffTW 读事务相关联的VM的唯一标识符,Offset_funct1n是具有基于与VMID相关联的特定的偏移值选择的输出的函数;以及
[0047]PA = IPA XOR Extended_VMID,其中,XOR 表示异或操作,以及 Extended_VMID 是扩展的VMID。系统管理程序210选择函数f,从而避免VM之间的冲突。
[0048]在图5中,假设函数f是多项式,并且系统管理程序210从多个多项式选择要被用作函数f的多项式。可以基于例如针对其执行HffTW读事务的VM的VMID来选择多项式。预测器500的配置寄存器510存储一个或多个预测使能比特510a和一个或多个多项式选择比特510b。预测器500的多项式计算硬件520包括基于从寄存器510接收的多项式选择比特510b的值来选择多项式函数的硬件。多项式计算硬件520还接收IPA-至-PA的转化请求,并根据选择的多项式函数来处理该请求,以生成预测的PA。
[0049]在与门530的输入处接收预测使能比特510a和类别I使能比特。当在执行类别I的读事务时已经发生未中时,断言类别I的使能比特。预测器500的复用器(MUX) 540在MUX540的选择器端口处接收与门530的输出,并且接收以正常方式获得的预测的PA和IPA-至PA的转化结果。当预测使能比特510a和
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1