用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备技术

技术编号:10914755 阅读:103 留言:1更新日期:2015-01-14 20:38
本发明专利技术揭示用于维持指令高速缓冲存储器的系统和方法,所述指令高速缓冲存储器包含:扩展高速缓冲存储行和所述扩展高速缓冲存储行的主高速缓冲存储行部分的页属性;以及至少对于一或多个预定义潜在跨页指令位置,所述对应扩展高速缓冲存储行的附加数据部分的额外页属性。此外,揭示用于处理从具有扩展高速缓冲存储行的指令高速缓冲存储器提取的跨页指令的系统和方法。

【技术实现步骤摘要】
【国外来华专利技术】用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备优先权主张本申请案主张2012年5月9日申请且标题为“用于跟踪指令高速缓冲存储器中的附加数据权限的方法及装置(METHODANDAPPARATUSFORTRACKINGEXTRADATAPERMISSIONSINANINSTRUCTIONCACHE)”的第61/644,622号美国临时专利申请案的优先权,所述申请案以全文引用的方式并入本文中。
本专利技术的技术大体上涉及用于处理器的指令高速缓冲存储器。
技术介绍
共同拥有且经转让的第7,337,272号美国专利尤其教示一种用于处理器的指令高速缓冲存储器10,其中指令高速缓冲存储器10包含扩展高速缓冲存储行12-0到12-NUMECL,如图1中所示。扩展高速缓冲存储行12-0到12-NUMECL在本文中大体统称为扩展高速缓冲存储行12且个别地称为扩展高速缓冲存储行12。如所说明,扩展高速缓冲存储行12中的每一者包含主高速缓冲存储行部分14和附加数据部分16。主高速缓冲存储行部分14存储预定义数目个字(例如,16个字或64个字节),且操作以从存储器行高速缓存指令数据。每一扩展高速缓冲存储行12的附加数据部分16位于扩展高速缓冲存储行12的末端,且为下一存储器行的开始处的指令数据的副本,其还可为下一扩展高速缓冲存储行12的开始的副本。因此,举例而言,假定扩展高速缓冲存储行12-0的主高速缓冲存储行部分14从第一存储器行高速缓冲存储指令数据且扩展高速缓冲存储行12-1的主高速缓冲存储行部分14从紧随第一存储器行之后的第二存储器行高速缓冲存储指令数据。在此实例中,扩展高速缓冲存储行12-0的附加数据部分16存储扩展高速缓冲存储行12-1的主高速缓冲存储行部分14的开始处的指令数据的副本。值得注意的是,主高速缓冲存储行部分14与扩展高速缓冲存储行12的附加数据部分16可实施在相同物理资源(即,相同物理高速缓冲存储器的部分)内或实施在单独物理资源内。具有扩展高速缓冲存储行12的指令高速缓冲存储器10尤其有益于允许可变长度指令的处理器(例如,允许16位和32位指令两者的处理器)。可变长度指令导致字不对准的指令(即,非字对准指令)。另外,可变长度指令导致在指令高速缓冲存储器中跨越行边界的指令,所述指令在本文中被称为跨行指令(line-crossinginstruction)。对于常规指令高速缓冲存储器,从指令高速缓冲存储器提取跨行指令需要两个单独非提取操作,即,从第一高速缓冲存储行获得指令的第一部分的第一提取和从第二高速缓冲存储行获得指令的第二部分的第二提取。相比之下,具有扩展高速缓冲存储行12的指令高速缓冲存储器10实现使用单个提取操作从单个扩展高速缓冲存储行12提取跨行指令。作为一实例,考虑如下实施方案:指令可为16位指令或32位指令,且存储器行且因而扩展高速缓冲存储行的主高速缓冲存储行部分14为16字(即,64字节)。归因于可变长度指令,将存在如下情境:32位指令的第一16位驻留在一个存储器行中,且32位指令的第二16位驻留在下一存储器行中。当将指令高速缓冲存储于指令高速缓冲存储器10中时,指令的前16位被高速缓冲存储为扩展高速缓冲存储行12中的一者的主高速缓冲存储行部分14的最末16位,且32位指令的最末16位的副本被高速缓冲存储于相同扩展高速缓冲存储行12的附加数据部分16中。通过将32位指令的最末16位的副本存储为扩展高速缓冲存储行12的附加数据部分16中的附加数据,可使用对扩展高速缓冲存储行12的单个提取而提取完整的32位指令。指令高速缓冲存储器10的一个问题是跨页指令可能横跨存储器的具有不同转译信息(例如,不同执行权限)的两个页。更具体来说,指令高速缓冲存储器10用以高速缓冲存储驻留在组织成数个存储器页的存储器中的指令数据。从一个存储器页中的最末行跨越到另一存储器页中的第一行的跨行指令在本文中被称为跨页指令。当跨页指令被高速缓冲存储于指令高速缓冲存储器10中时,跨页指令的第一部分高速缓冲存储于扩展高速缓冲存储行12中的一者的主高速缓冲存储行部分14的末端处,且跨页指令的最末部分的副本高速缓冲存储为相同扩展高速缓冲存储行12的附加数据部分16中的附加数据。结果,可使用从一个扩展高速缓冲存储行12的单个提取从指令高速缓冲存储器10提取跨页指令。作为一实例,图1说明第一部分(PCI(1))驻留在一个存储器页中的最末存储器行的末端处且高速缓冲存储于扩展高速缓冲存储行12-X的主高速缓冲存储行部分14的末端处,且第二部分(PCI(2))驻留在另一存储器页中的第一存储器行的开始处且高速缓冲存储于扩展高速缓冲存储行12-(X+1)的主高速缓冲存储行部分14的开始处的跨页指令。所述跨页指令的第二部分(PCI(2))的副本存储为扩展高速缓冲存储行12-X的附加数据部分16中的附加数据。由此,可接着通过提取扩展高速缓冲存储行12-X而提取跨页指令。处置跨页指令时出现的一个问题是,从单个扩展高速缓冲存储行12提取的跨页指令可能具有驻留在具有某些页属性(例如,某些执行权限)的一个存储器页中的第一部分与驻留在具有不同页属性(例如,不同执行权限)的不同存储器页中的第二部分。举例来说,高速缓冲存储于扩展高速缓冲存储行12-×中的跨页指令的第一部分(PCI(1))可驻留在与第二部分(PCI(2))所驻留的存储器页具有不同执行权限的存储器页中。因此,需要处理从具有扩展高速缓冲存储行的指令高速缓冲存储器获得的跨页指令的系统和方法。
技术实现思路
本专利技术揭示用于维持指令高速缓冲存储器的系统和方法,所述指令高速缓冲存储器包含:扩展高速缓冲存储行和所述扩展高速缓冲存储行的主高速缓冲存储行部分的页属性;以及至少对于一或多个预定义潜在跨页指令位置,所述对应扩展高速缓冲存储行的附加数据部分的额外页属性。此外,揭示用于处理从具有扩展高速缓冲存储行的指令高速缓冲存储器提取的跨页指令的系统和方法。在一个实施例中,处理器从指令高速缓冲存储器中的单个扩展高速缓冲存储行提取跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的主高速缓冲存储行部分的末端处,且所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储为所述扩展高速缓冲存储行的附加数据部分中的附加数据。所述处理器检测到基于与所述第二存储器页相关联的一或多个页属性(例如,对于一或多个处理模式的执行权限)而禁止所述跨页指令执行。在一个特定实施例中,如果所述第一存储器页的一或多个页属性(例如,对于一或多个处理模式的执行权限)允许执行且所述第二存储器页的所述一或多个页属性禁止执行,那么所述处理器检测到所述跨页指令被禁止执行。在一个实施例中,响应于检测到所述跨页指令被禁止执行,所述处理器报告所述跨页指令的执行被禁止。在一个实施例中,处理器包含具有扩展高速缓冲存储行的指令高速缓冲存储器。当高速缓冲存储第一存储器页中的最末存储器行时,所述处理器高速缓冲存储扩展高速缓冲存储行的主高速缓冲存储行部分中的最末存储器行且在所述指令高速缓冲存储器的资源中高速缓冲存储所述第一存储器页的一或多个页属性。此外,所述处理器高速缓冲存储驻留在第二或下一存储器页中的第一存储器行的开始处的本文档来自技高网
...
用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备

【技术保护点】
一种操作包括指令高速缓冲存储器的处理器的方法,所述指令高速缓冲存储器包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述方法包括:从所述指令高速缓冲存储器的单个扩展高速缓冲存储行提取跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中;以及基于所述扩展高速缓冲存储行的所述附加数据部分的一或多个存储器页属性而检测所述跨页指令被禁止执行。

【技术特征摘要】
【国外来华专利技术】2012.05.09 US 61/644,622;2012.06.28 US 13/535,3981.一种操作包括指令高速缓冲存储器的处理器的方法,所述指令高速缓冲存储器包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分,所述方法包括:在所述指令高速缓冲存储器的单个扩展高速缓冲存储行中高速缓冲存储跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中以及所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述附加数据部分中;高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;从所述扩展高速缓冲存储行中提取所述跨页指令;以及基于所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。2.根据权利要求1所述的方法,其中检测所述跨页指令被禁止执行包括基于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性以及所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。3.根据权利要求1所述的方法,其进一步包括报告所述跨页指令被禁止执行。4.根据权利要求1所述的方法,其中高速缓冲存储所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括:响应于请求所述跨页指令的所述第二部分的一或多个存储器页属性而获得基于非权限的错误信息;以及响应于获得所述基于非权限的错误信息,将表示在一或多个执行模式中的任一者中不准许执行的一或多个经过载执行权限高速缓冲存储为所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个执行权限。5.根据权利要求4所述的方法,其进一步包括响应于检测到所述跨页指令被禁止执行而:获得由所述一或多个经过载执行权限表示的错误类型;以及报告所述错误类型。6.根据权利要求1所述的方法,其进一步包括:将多个指令高速缓冲存储于所述指令高速缓冲存储器中,所述多个指令包括包含所述跨页指令的一或多个跨页指令;以及对于所述指令高速缓冲存储器中的一或多个跨页指令位置中的每一个且仅每一个跨页指令位置,响应于将指令数据高速缓冲存储于对应于所述跨页指令位置的扩展高速缓冲存储行中,高速缓冲存储所述扩展高速缓冲存储行的所述主高速缓冲存储行部分和所述扩展高速缓冲存储行的所述附加数据部分两者的所述一或多个存储器页属性。7.根据权利要求1所述的方法,其进一步包括响应于检测到所述跨页指令被禁止执行而无效化含有所述跨页指令的所述单个扩展高速缓冲存储行。8.一种处理器,其包括:指令高速缓冲存储器,其包括扩展高速缓冲存储行,其中每一扩展高速缓冲存储行包括主高速缓冲存储行部分和附加数据部分;所述处理器经配置以在所述指令高速缓冲存储器的单个扩展高速缓冲存储行中高速缓冲存储跨页指令,其中所述跨页指令的第一部分驻留在第一存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分中以及所述跨页指令的第二部分驻留在第二存储器页中且高速缓冲存储于所述扩展高速缓冲存储行的所述附加数据部分中;所述指令高速缓冲存储器经配置以:高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性包括所述第一存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;以及高速缓冲存储与所述扩展高速缓冲存储行相关联的所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,其中所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性包括所述第二存储器页的一或多个执行权限,所述一或多个执行权限各自包括表示对于多个处理模式中的对应一者是否准许执行的多个执行权限位;提取选择逻辑,其经配置以从所述扩展高速缓冲存储行中提取所述跨页指令;以及解码逻辑的检测逻辑,其经配置以基于所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。9.根据权利要求8所述的处理器,其中所述检测逻辑经配置以基于所述扩展高速缓冲存储行的所述主高速缓冲存储行部分的所述一或多个存储器页属性以及所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性而检测所述跨页指令被禁止执行。10.根据权利要求8所述的处理器,其中所述处理器报告检测到所述跨页指令被禁止执行。11.根据权利要求8所述的处理器,其中为了高速缓冲存储所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个存储器页属性,所述指令高速缓冲存储器进一步经配置以进行以下操作:响应于请求所述跨页指令的所述第二部分的一或多个存储器页属性而获得基于非权限的错误信息;以及响应于获得所述基于非权限的错误信息,将表示在一或多个执行模式中的任一者中不准许执行的一或多个经过载执行权限高速缓冲存储为所述扩展高速缓冲存储行的所述附加数据部分的所述一或多个执行权限。12.根据权利要求11所述的处理器,其中响应于检测到所述跨页指令被禁止执行,所述处理器进一步经配置以进行以下操作:获得由所述一或多个经过载执行权限表示的错误类型;以及报告所述错误类型。13.根据权利要求8所述的处理器,其中所述指令高速缓冲存储器进一步经配置以进行以下操作:将多个指令高速缓冲存储于所述指令高速缓冲存储器中,所述多个指令包括包含所述跨页指令的一或多个跨页指令;以及对于所述指令高速缓冲存储器中的一或多个跨页指令位置中的每一个且仅每一个跨页指令位置,响应于将指令数据高速缓冲存储于对应于所述跨页指令位置的扩展高速缓冲存储行中,高速缓冲存储所述扩展高速缓冲存储行的所述主高速缓冲存储行部分和所述扩展高速缓冲存储行的所述附加数据部分两者的所述一或多个存储器页属性。14.根据权利要求8所述的处理器,其中所...

【专利技术属性】
技术研发人员:莱斯利·马克·德布鲁因詹姆斯·诺里斯·迪芬德尔费尔迈克尔·斯科特·麦基尔文布莱恩·迈克尔·斯坦普尔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2015年01月14日 20:56
    加数是数学术语之一,加法算式中,相加的两个数称为加数。
    0
1