一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用多个物理地址空间的装置和方法与流程

2022-11-14 03:21:20 来源:中国专利 TAG:

使用多个物理地址空间的装置和方法
1.本技术涉及数据处理领域。
2.数据处理系统可以具有地址转换电路,用于将存储器访问请求的虚拟地址转换为对应于存储器系统中要访问的位置的物理地址。
3.至少一些示例提供了一种设备,该设备包括:处理电路,用于在至少三个域中的一个域中执行处理;以及地址转换电路,用于将从当前域执行的存储器访问的虚拟地址转换为至少基于该当前域选择的多个物理地址空间中的一个中的物理地址;其中:该至少三个域包括用于管理该至少三个域中的多个其他域之间的切换的根域;并且多个物理地址空间包括与根域相关联的根物理地址空间,该根物理地址空间和与多个其他域相关联的物理地址空间分离。
4.至少一些示例提供了一种数据处理方法,包括:在至少三个域中的一个域中执行处理;以及将从当前域执行的存储器访问的虚拟地址转换为至少基于该当前域选择的多个物理地址空间中的一个中的物理地址;其中:该至少三个域包括用于管理该至少三个域中的多个其他域之间的切换的根域;并且多个物理地址空间包括与根域相关联的根物理地址空间,该根物理地址空间和与多个其他域相关联的物理地址空间分离。
5.至少一些示例提供了一种计算机程序,该计算机程序用于控制主机数据处理装置来提供用于执行目标代码的指令执行环境;该计算机程序包括:处理程序逻辑,用于模拟目标代码在至少三个域中的一个域中的处理;以及地址转换程序逻辑,用于将从当前域执行的存储器访问的虚拟地址转换为至少基于该当前域选择的多个模拟物理地址空间中的一个中的物理地址;其中:该至少三个域包括用于管理该至少三个域中的多个其他域之间的切换的根域;并且多个模拟物理地址空间包括与根域相关联的根模拟物理地址空间,该根模拟物理地址空间和与多个其他域相关联的模拟物理地址空间分离。
6.至少一些示例提供了一种计算机可读存储介质,该计算机可读存储介质存储上述计算机程序。该计算机可读存储介质可以是非暂态存储介质或暂态存储介质。
7.本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见,在这些附图中:
8.图1示出了数据处理装置的示例;
9.图2示出了处理电路可在其中操作的多个域;
10.图3示出了支持颗粒保护查找的处理系统的示例;
11.图4示意性地示出了多个物理地址空间向识别存储器系统中的位置的系统物理地址空间上的别名;
12.图5示出了对有效硬件物理地址空间进行分区以使得不同架构物理地址空间有权访问系统物理地址空间的相应部分的示例;
13.图6是示出确定处理电路的当前操作域的方法的流程图;
14.图7示出了用于将虚拟地址转换为物理地址的页表条目的页表条目格式的示例;
15.图8是示出通过给定存储器访问请求来选择要访问的物理地址空间的方法的流程图;
16.图9示出了用于提供颗粒保护信息的颗粒保护表的条目的示例,该颗粒保护信息指示允许哪些物理地址空间访问给定物理地址;
17.图10是示出执行颗粒保护查找的方法的流程图;
18.图11示出了地址转换和颗粒保护信息滤波的多个阶段;
19.图12是示出高速缓存无效指令的处理的流程图;
20.图13是示出高速缓存无效到popa(物理别名点)(cache-invalidate-to-popa)指令的处理的流程图;
21.图14示出了数据处理系统的示例;并且
22.图15示出了可以使用的模拟器示例。
23.控制对物理地址空间的访问
24.数据处理系统可支持虚拟存储器的使用,其中提供地址转换电路以将存储器访问请求所指定的虚拟地址转换成与要访问的存储器系统中的位置相关联的物理地址。可在一个或多个页表结构中定义虚拟地址与物理地址之间的映射。页表结构内的页表条目还可定义一些访问权限信息,这些访问权限信息可控制是否允许在处理电路上执行的给定软件过程访问特定虚拟地址。
25.在一些处理系统中,可由地址转换电路将所有虚拟地址映射到单个物理地址空间上,存储器系统使用该单个物理地址空间来识别要访问的存储器中的位置。在这种系统中,仅仅基于用于提供虚拟至物理地址转换映射的页表结构来提供对特定软件过程是否可访问特定地址的控制。然而,通常可由操作系统和/或管理程序来定义此类页表结构。如果操作系统或管理程序受损,则这可引起安全漏洞,在这种情况下,敏感信息可被攻击者访问。
26.因此,对于需要某些过程在与其他过程分离的情况下安全地执行的一些系统而言,该系统可支持多个域中的操作并可支持多个不同物理地址空间,其中对于存储器系统的至少一些部件而言,即使相应物理地址空间中的物理地址实际上对应于存储器中的相同位置,也将其虚拟地址被转换成不同物理地址空间中的物理地址的存储器访问请求看作是它们正在访问存储器中的完全单独的地址。通过将从处理电路的不同操作域的访问隔离到一些存储器系统部件所视为的相应不同物理地址空间中,这可提供不依赖于操作系统或管理程序所设定的页表权限信息的更强安全保证。
27.处理电路可以支持根域中的处理,根域负责管理处理电路可以在其中操作的其他域之间的切换。通过提供用于控制切换的专用根域,这可以通过限制在一个域中执行的代码可以触发切换到另一个域的程度来帮助保持安全性。例如,当请求域切换时,根域可以执行各种安全检查。
28.因此,处理电路可以支持在至少三个域中的一个域中执行的处理:根域和至少两个其他域。地址转换电路可以将从当前域执行的存储器访问的虚拟地址转换为至少基于当前域选择的多个物理地址空间中的一个中的物理地址。
29.在下文描述的示例中,多个物理地址空间包括与根域相关联的根物理地址空间,该根物理地址空间和与其他域相关联的物理地址空间分离。因此,根域具有分配给它自己的物理地址空间,而不是使用与其他域中的一个相关联的物理地址空间中的一个。通过提供和与其他域相关联的物理地址空间分离的专用根物理地址空间,这可以为与根域相关联的数据或代码提供更强的安全性保证,这可以被认为是对安全性最关键的,假定它将管理
进入其他域。此外,提供区别于其他域的物理地址空间的专用根物理地址空间可以简化系统开发,因为它可以简化将各个物理地址空间内的物理地址分配给硬件存储器存储装置的特定单元。例如,通过识别单独的根物理地址空间,与根域相关联的数据或程序代码可以更简单地优先存储在受保护的片上存储器中而不是不太安全片外存储器中,与根域的代码或数据存储在与另外的域共享的公共地址空间中相比,在确定与根域相关联的部分时具有较少的开销。
30.根物理地址空间可以从根域独占地访问。因此,当处理电路在其他域中的一个域中操作时,处理电路可能无法访问根物理地址空间。这通过确保在其他域中的一个域中执行的代码不会篡改根域所依赖的用于管理域之间的切换或用于控制处理电路在其他域中的一个域中具有什么权限的数据或程序代码来提高安全性。
31.另一方面,所有多个物理地址空间都可以从根域访问。由于在根域中执行的代码必须被提供在其他域中的一个域中操作的代码的任一方信任,由于根域代码将负责切换到该方的代码正在执行的特定域中,因此根域固有地可以被信任以访问任何物理地址空间。使所有物理地址空间都可以从根域访问允许执行诸如将存储器区域转换到域中和从域转换出、将代码和数据复制到域中(例如在引导期间),以及向该域提供服务等功能。
32.地址转换电路可以根据当前域限制哪些物理地址空间是可访问的。当特定物理地址空间能够被当前域访问时,这意味着地址转换电路可以将从当前域发出的为存储器访问指定的虚拟地址转换为该特定物理地址空间中的物理地址。这不一定意味着将允许存储器访问,因为即使特定的存储器访问可以将其虚拟地址转换为特定物理地址空间的物理地址,也可以执行进一步的检查以确定是否实际上允许在该特定物理地址空间内访问该物理地址。这将在下文参考定义各个物理地址空间之间的物理地址的划分的颗粒保护信息来进一步讨论。然而,通过限制当前域可以访问物理地址空间的哪个子集,这可以提供更强的安全性保证。
33.在一些示例中,处理电路可以支持除了根域之外的两个附加域。例如,其他域可以包括与安全物理地址空间相关联的安全域和与不太安全物理地址空间相关联的不太安全域。不太安全物理地址空间可以从不太安全域、安全域和根域中的每一个访问。安全物理地址空间可以从安全域和根域访问,但可能不能够从不太安全域访问。根域可以是根域能够访问的,但是可以是不太安全域和安全域不能够访问的。因此,与使用页表作为唯一的安全控制机制相比,这允许在安全域中执行的代码以更强的安全保证保护其代码或数据不被在不太安全域中操作的代码访问。例如,需要更强安全性的代码部分可以在受信任操作系统管理的安全域中执行,该信任操作系统与在不太安全域中操作的非安全操作系统不同。支持这种安全域和不太安全域的系统的示例可以是根据支持由英国剑桥的limited提供的架构特征的处理架构操作的处理系统。在传统的实施方式中,用于管理安全域与不太安全域之间的切换的监控代码使用与安全域所使用的相同的安全物理地址空间。相比之下,如上所述,通过提供用于管理其他域的切换的根域并分配供根域使用的专用根物理地址空间,这有助于提高安全性并简化系统开发。
34.然而,在其他示例中,其他域可以包括另外的域,例如除了根域之外的至少三个其他域。这些域可以包括上文讨论的安全域和不太安全域,但也可以包括与另外的物理地址空间相关联的至少一个另外的域。不太安全物理地址空间也可以从另外的域访问,而另外
的物理地址空间可以从另外的域和根域访问,但不可以从不太安全域访问。因此,类似于安全域,另外的域可以被认为比不太安全域更安全,并且允许将代码进一步划分为与不同物理地址空间相关联的相应域以限制它们的交互。
35.在一些示例中,各个域可以具有分级结构,使得当系统从不太安全的域通过安全域和另外的域上升到根域时,它们与增加的特权级别相关联,其中另外的域被认为比安全域更有特权,并且因此可以访问安全物理地址空间。
36.然而,越来越需要为软件提供商提供安全计算环境,这限制了信任与在相同硬件平台上执行的其他软件相关联的其他软件提供商的需要。例如,在诸如移动支付和银行业务、计算机游戏中的反欺骗或盗版机制的实施、操作系统平台的安全增强、云系统中的安全虚拟机托管、机密计算等领域中可能存在许多用途,其中提供软件代码的一方可能不愿意信任提供操作系统或管理程序(先前可能被认为是可信的部件)的一方。在支持具有相应物理地址空间的安全域和不太安全域的系统中,诸如基于上述架构的系统中,随着在安全域中操作的安全部件的占用的增加,通常在安全域中操作的软件集合已经增长为包括可以从不同数量的软件提供商提供的多个软件片段,所述不同数量的软件提供商包括各方,诸如从包括由特定硅提供商提供的硅集成电路芯片的部件组装处理设备(诸如移动电话)的原始设备制造商(oem)、提供在设备上运行的操作系统供应商(osv)以及维护提供用于托管云上的虚拟机的服务器空间的服务器场的云平台运营商(或云主机)。因此,如果以严格的增加特权顺序来实现域,则可能存在问题,因为提供希望被提供安全计算环境的应用级代码的应用提供商可能不希望信任传统上可能已经提供执行安全域的软件的一方(诸如osv、oem或云主机),但是同样地,提供在安全域中操作的代码的各方不可能希望信任应用提供商来提供在被给予对与较低特权域相关联的数据的访问的较高特权域中操作的代码。因此,可以认识到,对连续增加特权的域进行严格分级可能是不适当的。
37.因此,在以下更详细的示例中,可以认为另外的域与安全域正交。虽然另外的域和安全域均可以访问不太安全物理地址空间,但是与另外的域相关联的另一物理地址空间不能够从安全域访问,而与安全域相关联的安全物理地址空间不能够从另外的域访问。根域仍然可以访问与安全域和另外的域两者相关联的物理地址空间。
38.因此,利用该模型,另外的域(其示例是在以下示例中描述的领域域)和安全域彼此之间没有依赖关系,因此不需要彼此信任。安全域和另外的域仅需要信任根域,根域在管理进入其他域的条目时固有地受信任。
39.虽然以下示例描述了另外的域(领域域)的单个实例,但是应当理解,可以扩展与安全域正交的另外的域的原理以提供多个另外的域,使得安全域和至少两个另外的域中的每一个可以访问不太安全物理地址空间,不能访问根物理地址空间,并且不能访问彼此相关联的物理地址空间。
40.不太安全物理地址空间可从处理电路支持的所有域访问。这很有用,因为它有助于在不同域中执行的软件之间共享数据或程序代码。如果要在不同的域中能够访问特定的数据或代码项,则可以将其分配给不太安全物理地址空间,从而可以从任何域访问它。
41.当将虚拟地址转换为物理地址时,地址转换电路可以基于至少一个页表条目来执行转换。至少在当前域是由处理电路支持的至少三个域的子集中的一个时,地址转换电路可以基于当前域和在用于将虚拟地址转换为物理地址的至少一个页表条目中指定的物理
地址空间选择信息来选择物理地址空间中的哪一个将被用作物理地址空间,其中物理地址被转换成该物理地址空间以用于给定的存储器访问。因此,当从当前域发出时,在页表结构内定义的信息可影响为给定存储器访问选择哪个物理地址空间。对于一些域,这种基于在页表条目中指定的物理地址空间选择信息的选择可能不是必需的。例如,如果当前域是上述不太安全域,则由于所有其他地址空间对于不太安全域是不能够访问的,因此不太安全物理地址空间可以被选择,而不管在用于地址转换的至少一个页表条目中指定的任何信息。
42.然而,对于其他域,该域可以在两个或多个不同的物理地址空间之间进行选择。因此,对于这些域,在给定地址块的页表条目中定义指示哪个物理地址空间应当用于该访问的信息可能是有用的,使得由给定软件看到的虚拟地址空间的不同部分可以被映射到不同的物理地址上。
43.例如在当前域是根域时,地址转换电路可以基于根域页表条目将虚拟地址转换为物理地址,对于根域页表条目,物理地址空间选择信息包括至少两位的物理地址空间选择信息,用于在能够从根域访问的至少三个物理地址空间之间进行选择。例如,在支持根域、不太安全域和安全域的实施方式中,根域页表条目中的物理地址空间选择信息可以在这三个物理地址空间中的任一个之间进行选择。在还具有至少一个另外的域的实施方式中,物理地址空间选择信息可以在根物理地址空间、安全物理地址空间、不太安全物理地址空间和至少一个另外的物理地址空间中的任一个之间进行选择。
44.另一方面,在当前域是安全域或另外的域时,物理地址空间的选择可能会受到更多限制,因此与根域相比,可能需要更少位的物理地址空间选择信息。例如,在安全域中,物理地址空间选择信息可以在安全地址空间和不太安全地址空间之间进行选择(因为根物理地址空间和另外的物理地址空间可能是不能够访问的)。在当前域是另外的域时,物理地址空间选择信息可以用于在另外的物理地址空间和不太安全物理地址空间之间进行选择,因为安全物理地址空间和根物理地址空间可能是不能够访问的。对于用于在当前域是安全域或另外的域时选择要使用的物理地址空间的页表条目,用于进行该选择的物理地址空间选择指示符可以编码在至少一个页表条目内的相同位置处,而不管当前域是安全域还是另外的域。这使得页表条目的编码更加有效,并且允许用于解释页表条目的该部分的硬件被重新用于安全域和另外的域,从而减少了电路面积。
45.存储器系统可以包括物理别名点(popa),该物理别名点是将来自不同物理地址空间的对应于相同存储器系统资源的别名物理地址映射到唯一识别该存储器系统资源的单个物理地址的点。存储器系统可以包括至少一个在popa上游提供的前popa存储器系统部件,其将别名物理地址看作它们对应于不同的存储器系统资源。
46.例如,至少一个前popa存储器系统部件可以包括高速缓存或转换后备缓冲器,其可以将用于别名物理地址的数据、程序代码或地址转换信息高速缓存在单独的条目中,使得如果请求从不同物理地址空间访问相同存储器系统资源,则这些访问将致使分配单独的高速缓存或tlb条目。此外,前popa存储器系统部件可以包括一致性控制电路,诸如一致性互连线、探听滤波器或用于维持各个主设备处的高速缓存信息之间的一致性的其他机构。一致性控制电路可以将单独的一致性状态分配给不同物理地址空间中的各个别名物理地址。因此,为了保持一致性,别名物理地址被看作单独的地址,即使它们实际上对应于相同
的底层存储器系统资源。尽管从表面上看,针对别名物理地址单独跟踪一致性可能看起来引起一致性损失的问题,但实际上这不是问题,因为如果在不同域中操作的进程确实打算共享对特定存储器系统资源的访问,则其可以使用不太安全物理地址空间来访问该资源(或使用下文描述的限制性共享特征来访问使用其他物理地址空间中的一个的该资源)。前popa存储器系统部件的另一个示例可以是存储器保护引擎,其被提供用于保护保存到片外存储器的数据免受机密性损失和/或篡改。例如,这种存储器保护引擎可以根据资源从哪个物理地址空间被访问而使用不同的加密密钥来对与特定存储器系统资源相关联的数据进行单独地加密,有效地将别名物理地址看作它们对应于不同的存储器系统资源(例如,可以使用使加密依赖于地址的加密方案,并且可以将物理地址空间标识符视为用于此目的的地址的一部分)。
47.不管前popa存储器系统部件的形式如何,对于这样的popa存储器系统部件而言,将别名物理地址看作它们对应于不同存储器系统资源是有用的,因为这提供了发出到不同物理地址空间的访问之间的硬件强制分离,使得与一个域相关联的信息不能通过诸如高速缓存定时侧信道或涉及由一致性控制电路触发的一致性变化的侧信道的特征泄漏到另一个域。
48.在一些实施方式中,可以使用用于各个不同物理地址空间的不同数字物理地址值来表示不同物理地址空间中的别名物理地址。该方法可能需要映射表来在popa处确定不同物理地址值中的哪一个对应于相同存储器系统资源。然而,这种维护映射表的开销可能被认为是不必要的,因此在一些实施方式中,如果别名物理地址包括在每个不同物理地址空间中使用相同数字物理地址值来表示的物理地址,则这可能更简单。如果采用这种方法,则在物理别名点处,简单地丢弃标识使用存储器访问来访问哪个物理地址空间的物理地址空间标识符,然后向下游提供剩余的物理地址位作为去别名物理地址就足够了。
49.因此,除了前popa存储器系统部件之外,存储器系统还可以包括popa存储器系统部件,该popa存储器系统部件被配置为对所述多个别名物理地址进行去别名,以获得要提供给至少一个下游存储器系统部件的去别名物理地址。popa存储器系统部件可以是访问映射表以在特定地址空间中找到对应于别名地址的去别名地址的设备,如上所述。然而,该popa部件也可以简单地是存储器系统中与给定存储器访问相关联的物理地址标签被丢弃的位置,使得下游提供的物理地址唯一地识别对应的存储器系统资源,而不管从其提供哪个物理地址空间。或者,在某些情况下,popa存储器系统部件仍可向至少一个下游存储器系统部件提供物理地址空间标签(例如,为了实现如下文进一步论述的完成器侧滤波),但popa可以标记存储器系统内的点,超过该点下游存储器系统部件不再将别名物理地址看作不同存储器系统资源,而是考虑别名物理地址中的每一个来映射相同存储器系统资源。例如,如果popa下游的存储器控制器或硬件存储器存储设备接收到给定存储器访问请求的物理地址标签和物理地址,则如果该物理地址对应于与先前看到的事务相同的物理地址,则即使各个事务指定不同的物理地址空间标签,也可以应用对访问相同物理地址的各个事务(诸如合并对相同地址的访问)执行的任何危险检查或性能改进。相比之下,对于在popa上游的存储器系统部件,如果访问相同物理地址的事务在不同物理地址空间中指定相同物理地址,则可以不调用对这些事务采取的这种危险检查或性能改进步骤。
50.如上所述,至少一个前popa存储器系统部件可以包括至少一个前popa高速缓存。
这可以是数据高速缓存、指令高速缓存或统一的2级、3级或系统高速缓存。
51.处理电路可以支持指定目标地址(其可以是虚拟地址或物理地址)的高速缓存无效到popa指令。响应于高速缓存无效到popa指令,处理电路可以发出至少一个无效命令以请求至少一个前popa高速缓存使与对应于目标地址的目标物理地址值相关联的一个或多个条目无效。相比之下,当发出至少一个无效命令时,可以允许位于popa下游的至少一个后popa高速缓存保留与目标物理地址值相关联的一个或多个条目。对于至少一个前popa高速缓存,该高速缓存可以使与由至少一个无效命令指定的目标物理地址值相关联的一个或多个条目无效,而不管物理地址空间中的哪一个与那些条目相关联。因此,即使在不同物理地址空间中具有相同地址值的物理地址被前popa高速缓存看作它们表示不同的物理地址,为了处理由高速缓存无效到popa指令触发的无效,物理地址空间标识符可以被忽略。
52.因此,可以定义高速缓存无效指令的形式,其使得处理电路能够请求与对应于目标虚拟地址的特定物理地址相关联的任何高速缓存的条目在直到物理别名点的任何高速缓存中都无效。这种形式的无效指令可以不同于其他类型的无效指令,后者可以请求使高速缓存的条目无效,这会影响到存储器系统的其他点诸如到一致性点(保证所有观察器(例如处理器内核、直接存储器访问引擎等)看到与给定地址关联的相同数据副本的点)的高速缓存。提供请求直到物理别名点的无效的专用形式的指令可能是有用的,特别是对于可以管理对各个域的地址分配的改变的根域代码。例如,当更新定义在给定物理地址空间内能够访问哪些物理地址的颗粒保护信息时,或当将特定物理地址块重新分配到不同物理地址空间时,根域代码可以使用高速缓存无效到popa指令来确保驻留在高速缓存内的任何数据、代码或其他信息(其可访问性取决于颗粒保护信息的过时值)无效,以确保基于新的颗粒保护信息正确地控制后续存储器访问。在一些示例中,除了使高速缓存的条目无效之外,至少一个前popa高速缓存还可以清洁来自高速缓存的条目的数据,以便将与要无效的条目相关联的任何脏版本的数据写回到存储器系统中popa之外的位置。在一些情况下,可以支持高速缓存无效到popa指令的不同版本以指示是否需要清洁。
53.可以提供存储器加密电路,其响应于指定选定物理地址空间和选定物理地址空间内的目标物理地址的存储器访问请求,当目标物理地址在受保护地址区域内时,基于取决于选定物理地址空间而选择的多个加密密钥中的一个来加密或解密与受保护区域相关联的数据。在一些示例中,受保护地址区域可以是整个物理地址空间,而其他示例可以仅将加密/解密应用于作为受保护地址区域的某些子区域。通过分配和与其他域相关联的物理地址空间分离的专用根物理地址空间,这使得存储器加密电路与其他域相比更容易为根域选择不同的加密密钥,从而提高安全性。类似地,为所有其他域选择不同的加密密钥使得能够更强地分离与特定域相关联的代码或数据资产。
54.在一个特定示例中,该装置可以在与处理电路相同的集成电路上具有至少一个片上存储器,并且根物理地址空间中的所有有效物理地址可以映射到该至少一个片上存储器,这与片外存储器不同。这有助于提高根域的安全性。应当理解,来自其他域的信息也可以存储在片上存储器中。提供单独的根物理地址空间简化了存储器的分配,因为在根域与安全域共享安全物理地址空间的示例中,可能存在太多与安全域相关联的数据而无法将所有数据保持在片上存储器中,并且可能难以确定哪些特定数据片与根域相关联,当用单独的物理地址空间标识符进行标记时,划分出根域的数据(或代码)要简单得多。
55.然而,在其他示例中,根物理地址空间中的一些地址可以被映射到片外存储器。存储器加密、完整性和新鲜性机制可用于保护存储在片外的根域数据。
56.上述技术可以在具有用于实现上述功能的硬件电路逻辑的硬件装置中实现。因此,处理电路和地址转换电路可以包括硬件电路逻辑。然而,在其他示例中,用于控制主机数据处理装置以提供用于执行目标代码的指令执行环境的计算机程序可以设置有处理程序逻辑和地址转换程序逻辑,其以软件形式执行与上述处理电路和地址转换电路等效的功能。这对于例如使得为特定指令集架构编写的目标代码能够在可能不支持该指令集架构的主计算机上执行是有用的。因此,可以由模拟软件来仿真主计算机未提供的指令集架构所期望的功能,该模拟软件为目标代码提供了与在实际支持该指令集架构的硬件设备上执行目标代码的情况下所期望的等效的指令执行环境。因此,提供模拟的计算机程序可以包括:处理程序逻辑,其模拟先前描述的至少三个域中的一个域中的处理;以及地址转换程序逻辑,其将虚拟地址转换为至少基于当前域选择的多个模拟物理地址空间中的一个中的物理地址。如在硬件设备中一样,至少三个域可以包括用于管理其他域之间的切换的根域,并且根域可以具有与其相关联的根模拟物理地址空间,该根模拟物理地址空间和与其他域相关联的模拟物理地址空间分离。对于提供架构模拟的方法,由地址转换程序逻辑选择的各个物理地址空间是模拟物理地址空间,因为它们实际上不对应于由主计算机的硬件部件识别的物理地址空间,而是将被映射到主机的虚拟地址空间内的地址。提供这种模拟对于多种目的是有用的,例如用于使得为一个指令集架构编写的遗留代码能够在支持不同指令集架构的不同平台上执行,或者用于在支持新版本的指令集架构的硬件设备还不可用时,辅助为该新版本的指令集架构执行新软件的软件开发(这可以使得新版本的架构的软件能够与支持新版本的架构的硬件设备的开发并行地开始开发)。
57.颗粒保护查找
58.在存储器访问请求的虚拟地址可以映射到两个或更多个不同物理地址空间中的一个中的物理地址的系统中,可以使用颗粒保护信息来限制在特定物理地址空间内可以访问哪些物理地址。这对于确保在片上或片外的硬件中实现的某些物理存储器位置在需要时可以被限制在特定物理地址空间或物理地址空间的特定子集内访问是有用的。
59.在一种用于管理这种限制的方法中,可以使用在完成器设备处或附近提供的用于服务存储器访问请求的完成器侧滤波电路来实现对是否可以从特定物理地址空间访问给定物理地址的实施。例如,完成器侧滤波电路可以与存储器控制器或外围控制器相关联。在这种方法中,向高速缓存或用于将事务从请求器设备路由到完成器设备的互连线发出存储器访问请求可以不依赖于对用于定义在给定物理地址空间内能够访问哪些物理地址的信息的任何查找。
60.相比之下,在以下描述的示例中,由请求器侧滤波电路执行颗粒保护查找,该请求器侧滤波电路基于颗粒保护信息的查找来检查是否允许将存储器访问请求传递到高速缓存或互连线,该颗粒保护信息指示与要访问的物理地址的目标颗粒相关联的至少一个允许的物理地址空间。定义了各个颗粒保护信息项的物理地址空间的颗粒可以具有特定大小,其可以与用于地址转换电路的页表结构的页的大小相同或不同。在某些情况下,颗粒的大小可以大于定义地址转换电路的地址转换映射的页面。或者,可以在与页表结构内的地址转换信息相同的页面级颗粒度处定义颗粒保护信息。以页面级颗粒度定义颗粒保护信息可
能是方便的,因为这可允许对存储器存储硬件的哪些区域能够从特定物理地址空间并且因此从处理电路的操作的特定域访问的更细粒度控制。
61.因此,一种装置可以具有:地址转换电路,用于将由请求器电路发出的存储器访问请求指定的目标虚拟地址转换为目标物理地址;以及请求器侧电路,用于基于目标物理地址和与存储器访问请求相关联的选定物理地址空间来执行颗粒保护查找,以确定是否允许将存储器访问请求传递到高速缓存或传递到用于与完成器设备通信的互连线以服务存储器访问请求。选定物理地址空间可以是多个物理地址空间中的一个。在颗粒保护查找中,请求器侧滤波电路可以被配置为:
62.获得对应于包括目标物理地址的物理地址的目标颗粒的颗粒保护信息,该颗粒保护信息指示与目标颗粒相关联的至少一个允许的物理地址空间;并且
63.当颗粒保护信息指示选定物理地址空间不是至少一个允许的物理地址空间中的一个时,阻止存储器访问请求。
64.在互连线的请求器侧而不是在完成器侧执行颗粒保护查找的优点在于,与在完成器侧的实际情况相比,这能够实现对能够从给定物理地址空间访问哪些物理地址的更细粒度控制。这是因为完成器侧通常具有相对有限的访问整个存储器系统的能力。例如,用于给定存储器单元的存储器控制器可以仅访问该存储器单元内的位置,并且可以不访问地址空间的其他区域。提供更细粒度控制可依赖于可存储在存储器系统中的更复杂的颗粒保护信息表,并且从请求器侧访问这样的表可能更实际,其中存在向存储器系统的更广子集发出存储器访问请求的更大灵活性。
65.此外,在请求器侧执行颗粒保护查找可帮助实现在运行时间动态更新颗粒保护信息的能力,这对于可被限制为访问在引导时间定义的相对少量的静态定义数据的完成器侧滤波电路可能是不实际的。
66.请求器侧滤波电路的另一优点在于,这将使得互连线能够将同一颗粒内的不同地址分配给与不同的完成器设备(例如,不同的dram(动态随机存取存储器)单元)通信的不同完成器端口,这对于性能可能是有效的,但是如果整个颗粒需要被引导到相同的完成器单元,使得可以在完成器侧执行颗粒保护查找以验证是否允许存储器访问,则可能是不切实际的。
67.因此,在请求器侧而不是完成器侧执行用于从为给定存储器访问请求选择的特定物理地址空间中区分是否可以访问特定物理地址的颗粒保护查找可能具有许多优点。
68.颗粒保护信息可以按不同的方式表示。在一个示例中,可以在存储在单个连续地址块处的单个线性索引表中定义颗粒保护,其中要在该块内访问的特定条目基于目标物理地址来选择。然而,在实践中,可以不为整个物理地址空间定义颗粒保护信息,因此使用用于存储颗粒保护信息的多级表结构可能更有效,类似于用于地址转换的多级页表。在这种多级结构中,目标物理地址的一部分可用于选择一级颗粒保护表条目,其可提供识别存储另一级颗粒保护表的存储器中的位置的指针。目标物理地址的另一部分然后可以选择要获得该另外的颗粒保护表的哪个条目。在迭代通过超出第一级的表的一个或多个级别之后,最终可以获得提供与目标物理地址相关联的颗粒保护信息的颗粒保护表条目。
69.不管为存储颗粒保护信息的表选择的特定结构如何,颗粒保护信息可以按多种方式表示物理地址空间中的哪一个是至少一个允许的物理地址。一种方法可以是提供一系列
字段,每个字段指示物理地址空间中对应的一个是否被允许访问包括目标物理地址的物理地址颗粒。例如,可以在颗粒保护信息内定义位图,其中位图的每个位指示对应的物理地址空间是该颗粒的允许的物理地址空间还是不允许的物理地址空间。
70.然而,实际上,对于大多数使用情况,期望允许大量的物理地址空间访问给定的物理地址是相对不可能的。如在前面关于控制对物理地址空间的访问的部分中所讨论的,不太安全物理地址空间可用于在所有域中进行选择,因此可以在数据或代码要在多个域之间共享时使用,从而可能不需要将特定物理地址映射到全部或大部分可用物理地址空间中。
71.因此,相对有效的方法可以是,颗粒保护信息可以指定分配给物理地址的目标颗粒的分配物理地址空间,并且至少一个允许的物理地址空间可以至少包括由用于该特定目标颗粒的颗粒保护信息指定的分配物理地址空间。在一些实施方式中,颗粒保护信息可以指定单个物理地址空间作为分配物理地址空间。因此,在一些情况下,颗粒保护信息可以包括一个特定物理地址空间的标识符,该特定物理地址空间用作允许访问该物理地址的目标颗粒的分配物理地址空间。
72.在一些实施方式中,被允许访问物理地址的目标颗粒的唯一物理地址空间可以是分配物理地址空间,并且可能不允许从任何其他物理地址空间访问物理地址的目标颗粒。这种方法对于保持安全性是有效的。相反,可以通过地址转换功能来控制从不同域到特定物理地址空间的访问,其中地址转换电路可能能够选择将哪个特定物理地址空间用于给定的存储器访问,因此可能不需要允许在多个物理地址空间之间共享物理地址颗粒。如果仅允许分配物理地址空间访问物理地址的目标颗粒,则为了使得能够从其他物理地址空间访问该物理地址颗粒,这可能需要更新哪个物理地址空间是分配物理地址空间。例如,这可能需要先前描述的根域执行一些处理来为给定的物理地址颗粒切换分配物理地址空间。该处理可以具有一定的性能成本,例如,它可以(出于安全性)包括用空数据或独立于那些物理寻址位置的先前内容的其他数据重写物理地址的给定颗粒中的每个位置,以确保访问新分配物理地址空间的过程无法从先前存储在与给定的物理地址颗粒相关联的位置处的数据中获知任何内容。
73.因此,另一种方法可以是,除了识别分配物理地址空间之外,颗粒保护信息还可以包括共享属性信息,其指示除了分配物理地址空间之外的至少一个其他物理地址空间是否是至少一个允许的物理地址空间中的一个。因此,如果共享属性信息指示允许至少一个其他物理地址空间访问相应的物理地址颗粒,则可以从多个物理地址空间访问该物理地址颗粒。这对于允许与一个物理地址空间相关联的域中的代码暂时允许其分配的物理地址颗粒中的一个对于与不同物理地址空间相关联的域可见是有用的。这可以使数据或代码的临时共享更有效,因为不必为更改哪个物理地址空间是分配物理地址空间而进行潜在的昂贵操作。共享属性信息可以由在与分配物理地址空间相关联的域中执行的代码直接设置,或者可以由根域根据在与分配物理地址空间相关联的域中执行的代码的请求来设置。
74.在支持共享属性信息的情况下,然后以及使用共享属性信息来验证分配给一个物理地址空间的地址是否可以被指定不同地址空间的请求访问,请求器侧滤波电路还可以基于共享属性信息将针对下游发出的存储器访问请求选择的物理地址空间转换为高速缓存或互连线。因此,当颗粒保护查找确定选定物理地址空间是除了由共享属性信息指示的至少一个允许的物理地址空间中的一个的分配物理地址空间之外的物理地址空间时,请求器
侧滤波电路可以允许将存储器访问请求传递到指定分配物理地址空间而不是选定物理地址空间的高速缓存或互连线。这意味着,出于访问下游存储器的目的,popa之前的部件将存储器访问看作其被发出首先指定分配物理地址空间,使得可以针对存储器访问请求来访问标记有该分配物理地址空间的高速缓存条目或探听滤波器条目。
75.在一些实施方式中,每当针对颗粒保护信息检查存储器访问请求时,请求器侧滤波电路可以从存储器获得用于颗粒保护查找的颗粒保护信息。这种方法在请求器侧可能需要较少的硬件成本。然而,从存储器获得颗粒保护信息可能相对较慢。
76.因此,为了提高性能,请求器侧滤波电路可以访问至少一个可以高速缓存颗粒保护信息的查找高速缓存,使得可以在至少一个查找高速缓存中执行颗粒保护查找,并且如果所需的颗粒信息已经存储在至少一个查找高速缓存中,则不需要从存储器中获取它。在一些情况下,至少一个查找高速缓存可以是与地址转换电路使用的转换后备缓冲器(tlb)分离的高速缓存,用于高速缓存提供虚拟地址与物理地址之间的映射的页表数据。然而,在其他示例中,至少一个查找高速缓存可以将页表数据的高速缓存与颗粒保护信息的高速缓存相结合。因此,在一些情况下,至少一个查找高速缓存可以存储至少一个组合的转换-颗粒保护条目指定信息,该至少一个组合的转换-颗粒保护条目指定信息取决于颗粒保护信息和地址转换电路用于将目标虚拟地址映射到目标物理地址的至少一个页表条目。无论tlb和颗粒保护高速缓存被实现为分离的结构还是实现为单个组合的结构都是一种实施方式选择,并且可以使用这两者中的任一种。
77.无论哪种方法用于至少一个查找高速缓存,该至少一个查找高速缓存可以响应于指定无效目标物理地址的至少一个查找高速缓存无效命令来使存储信息的查找高速缓存条目无效,该信息取决于与包括无效目标物理地址的物理地址颗粒相关联的颗粒保护信息。在具有tlb的常规处理系统中,虽然tlb通常可以支持指定虚拟地址或(在支持两个地址转换阶段的系统中,中间地址)的无效命令,但tlb通常不需要能够使用物理地址来识别哪个条目将被无效。然而,当提供至少一个查找高速缓存来高速缓存颗粒保护信息时,如果用于给定的物理地址颗粒的颗粒保护信息改变,则能够使取决于该信息的任何条目无效可能是有用的。因此,该命令可以识别特定物理地址,对于该特定物理地址,包含取决于颗粒保护信息的信息的条目将被无效。
78.如果颗粒保护信息高速缓存与tlb分开实施,则tlb可能不需要具有任何通过物理地址搜索条目的能力。在这种情况下,颗粒保护信息高速缓存可以响应于指定物理地址的高速缓存无效命令,但tlb可以忽略该命令。
79.然而,如果至少一个查找高速缓存包括组合的转换/颗粒保护高速缓存,其条目是基于虚拟地址或中间地址来搜索的,并且返回与虚拟地址/中间地址相关联的页表信息和与对应物理地址相关联的颗粒保护信息两者,则提供用于基于物理地址来搜索条目的另一方案可能是有用的,使得可以处理指定无效目标物理地址的至少一个查找高速缓存无效命令。组合的高速缓存的常规查找将不需要物理地址的这种搜索,因为如果组合条目,则通过虚拟地址或中间地址的搜索可能足以访问用于执行地址转换和颗粒保护查找两者的所有组合信息。然而,在高速缓存无效命令上,可以基于物理地址来搜索组合的高速缓存,以识别可能需要被无效的任何条目,因为它们依赖于指定物理地址的颗粒保护信息。
80.存储器系统可具有如以上针对先前示例所论述的popa存储器系统部件、至少一个
前popa存储器系统部件和至少一个后popa存储器系统部件。因此,当存储器访问请求通过物理别名点时,不同物理地址空间内的别名物理地址可以对应于使用去别名物理地址识别的相同存储器系统资源,其方式与前面讨论的方式相同。在popa之前,至少一个前popa存储器系统部件将来自不同物理地址空间的别名物理地址看作它们对应于可以提高安全性的不同存储器系统资源。此外,虽然理论上可以使用不同的数字地址值来识别不同物理地址空间中的别名物理地址,但是这可能实现起来相对复杂,并且如果在不同物理地址空间中使用相同物理地址值来表示别名物理地址则可能更简单。
81.在至少一个前popa存储器系统部件包括至少一个前popa高速缓存的情况下,处理电路可以响应于指定目标虚拟地址的高速缓存无效到popa指令,以通过目标物理地址向物理别名点上游的任何前popa高速缓存触发无效,同时允许任何后popa高速缓存保留具有目标物理地址的数据(如先前描述)。
82.可以按不同的方式选择与存储器访问相关联的选定物理地址空间。在一些示例中,可以至少基于发出存储器访问请求的请求器电路的当前操作域来选择(由地址转换电路或由请求器侧滤波电路)选定物理地址空间。选定物理地址空间的选择还可以取决于在用于将目标虚拟地址转换为目标物理地址的至少一个页表条目中指定的物理地址空间选择信息。选择哪个物理地址空间是选定物理地址空间可以如先前针对先前示例所讨论的那样来执行。
83.可用于给定系统中的选定域和物理地址空间可以如先前所描述的,并且可以包括如上文所讨论的不太安全域、安全域、根域和另外的域,每个域都具有相应的物理地址空间。或者,域/物理地址空间可以包括这些域的子集。因此,与先前描述的任何领域相关的任何特征都可以包括在具有请求器侧滤波电路的系统中。
84.在根域具有如前所述的对应根物理地址空间的实施方式中,在当前域是根域时,请求器侧滤波电路可以绕过颗粒保护查找。在当前域是根域时,颗粒保护查找可能是不必要的,因为可以信任根域来访问物理地址的所有区域,并且因此当在根域中时可以通过跳过颗粒保护查找来节省功率。
85.颗粒保护信息可以通过在根域中执行的软件进行修改。因此,颗粒保护信息可以在运行时动态更新。这对于所讨论的领域使用情况中的一些是有利的,其中提供安全执行环境的领域可以在运行时动态地创建并且分配为该领域保留的存储器的对应区域。这种方法通常仅使用完成器侧滤波是不切实际的。在一些实施方式中,根域可以是允许修改颗粒保护信息的唯一域,因此如果其他域需要改变要实施的颗粒保护信息,则它们可以请求根域修改颗粒保护信息,并且根域然后可以检查是否允许从另外的域作出的请求。
86.虽然提供用于在存储器访问请求被传递到高速缓存或互连线之前在请求器侧执行颗粒保护查找的请求器侧滤波电路可能是有益的,但是可能存在其他情形,其中可能优选的是在互连线的完成器侧检查保护信息(定义可以从给定物理地址空间访问哪些物理地址)。例如,虽然对于地址空间的一些部分来说,可能需要提供将存储器硬件划分成可从不同物理地址空间访问的物理地址区域的细粒度页面级颗粒度,但是对于存储器系统的其他部分来说,可能优选的是将一大块连续地址分配到单个物理地址空间,并且因此访问存储在存储器中的(可能多级)颗粒保护结构的开销可能是不合理的。如果要将整个存储器单元(例如特定dram模块)分配给单个物理地址空间,则通过完成器侧检查来处理对该存储器单
元的访问限制的执行可能更简单。
87.因此,在一些实施方式中,除了提供请求器侧滤波电路之外,还可以有完成器侧滤波电路,其响应于从互连线接收的指定目标物理地址和选定物理地址空间的存储器访问请求,基于目标物理地址和选定物理地址空间来执行完成器侧保护信息的完成器侧保护查找,以确定存储器访问请求是否被允许由完成器设备服务。通过提供一种混合方法,使得存储器的某些部分能够通过请求器侧滤波器进行保护,而其他部分能够通过完成器侧滤波器进行保护,这使得与单独通过请求器侧滤波或完成器侧滤波所实现的相比,在分配存储器的使用的性能与灵活性之间更好地平衡。
88.因此,在一些实施方式中,颗粒保护信息可以指定指示至少一个允许的物理地址空间将由完成器侧滤波电路解析的直通指示符。因此,在颗粒保护信息指定直通指示符的情况下,请求器侧滤波电路可以独立于对选定物理地址空间是否为用于物理地址的目标颗粒的至少一个允许的物理地址空间中的一个的任何检查来确定是否将存储器访问请求传递到高速缓存或互连线。另一方面,如果针对目标颗粒访问的颗粒保护信息未指定直通指示符,则对存储器访问请求是否可被传递到高速缓存或互连线的确定可取决于对选定物理地址空间是否是至少一个允许的物理地址空间中的一个的检查,因为在这种情况下,在允许存储器访问请求前进到高速缓存或互连线之后可能不存在后续的完成器侧滤波。因此,直通指示符能够控制在请求器侧对其执行检查的那些物理地址颗粒与在完成器侧对其执行检查的那些颗粒之间的地址空间的划分,从而为系统设计人员提供了附加的灵活性。
89.由完成器侧滤波电路使用的完成器侧保护信息不需要具有与由请求器侧滤波电路使用的颗粒保护信息相同的格式。例如,完成器侧滤波电路可以按比请求器侧滤波电路用于颗粒保护查找的颗粒保护信息更粗的颗粒度来定义。颗粒保护信息可以在多级表结构中定义,其中表的每一级提供各自对应于具有对应于二的幂的给定数量的地址的存储器块的条目,并且因此检查给定目标物理地址所需的表的给定级的条目可以简单地通过将来自目标物理地址的一定部分位的倍数添加到与表的该级相关联的基地址来索引,从而避免了将所访问的条目的内容与目标物理地址进行比较以确定其是否是正确的条目的需要。相比之下,对于完成器侧保护信息,可以定义较少数量的条目,每个条目指定存储器区域的开始地址和结束地址(或开始地址和大小),其可以对应于非二倍数量的地址。这可以更适合于在完成器侧保护信息中定义相对粗粒度的块,但是该方法可能需要将目标物理地址与在每个完成器侧保护信息条目中定义的相应物理地址范围的上限和下限进行比较,以确定这些物理地址中的任一个是否与指定的物理地址匹配。用于请求器侧粒度保护信息的索引多级表方法可以支持相对大量的不同条目,使得支持物理地址到物理地址空间的细粒度映射,由于查找那些条目中的每一个以检查目标地址是否落在该条目的界限内的比较开销,使用定义完成器侧保护信息中的每个区域的上限和下限的方法通常是不实际的,但是完成器侧保护信息在存储器存储方面可能更有效,并且在性能方面可能变化较小,因为如果在查找高速缓存中存在未命中,则损失较小。当然,这仅仅是可以如何在请求器侧和完成器侧实现所查找的信息的一个示例。
90.请求器侧保护信息可以在运行时动态更新。完成器侧保护信息可以由片上系统上的硬件静态定义,在引导时配置,或者在运行时动态重新配置。
91.对于前面描述的示例,尽管上面描述的用于颗粒保护查找的技术可以在具有用于
执行地址转换电路和请求器侧滤波电路的功能的专用硬件逻辑的系统中实现,但是出于与前面描述的原因类似的原因,等同的功能也可以在计算机程序中的软件中实现,该计算机程序用于控制主机数据装置以提供用于执行目标代码的指令执行环境。因此,可以提供地址转换程序逻辑和滤波程序逻辑来仿真先前描述的地址转换电路和请求器侧滤波器的功能。至于前面的示例,对于提供指令执行环境的计算机程序,可以应用以下中的至少一种:颗粒保护信息在运行时能够由目标代码动态更新;并且颗粒保护信息以页面级颗粒度定义。
具体实施方式
92.图1示意性地示出了具有至少一个请求器设备4和至少一个完成器设备6的数据处理系统2的示例。互连线8提供请求器设备4与完成器设备6之间的通信。请求器设备能够发出请求对特定可寻址存储器系统位置的存储器访问的存储器访问请求。完成器设备6是负责为指向其的存储器访问请求提供服务的设备。尽管图1中未示出,但是一些设备可能能够既充当请求器设备又充当完成器设备。请求器设备4可例如包括处理元件诸如中央处理单元(cpu)或图形处理单元(gpu),或其他主设备诸如总线主设备、网络接口控制器、显示控制器等。完成器设备可包括负责控制对对应存储器存储单元的访问的存储器控制器、用于控制对外围设备的访问的外围控制器等。图1更详细地示出了请求器设备4之一的示例性配置,但应当理解,其他请求器设备4可具有类似配置。另选地,其他请求器设备可具有与图1左侧所示的请求器设备4不同的配置。
93.请求器设备4具有用于参考存储在寄存器12中的数据来响应于指令而执行数据处理的处理电路10。寄存器12可包括用于存储操作数和经处理的指令的结果的通用寄存器,以及用于存储控制数据以便配置处理电路如何执行处理的控制寄存器。例如,控制数据可包括用于选择哪个操作域是当前域的当前域指示14,以及指示哪个异常级别是处理电路10正在操作的当前异常级别的当前异常级别指示15。
94.处理电路10可能能够发出存储器访问请求,所述存储器访问请求指定识别要访问的可寻址位置的虚拟地址(va)和识别当前域的域标识符(域id或“安全状态”)。地址转换电路16(例如,存储器管理单元(mmu))通过基于存储在存储器系统中的页表结构中定义的页表数据的地址转换的一个或多个阶段来将虚拟地址转换成物理地址(pa)。转换后备缓冲器(tlb)18充当查找高速缓存以便高速缓存该页表信息中的一些信息,从而比每次需要地址转换时必须从存储器获取页表信息的情形更快地访问。在该示例中,除了生成物理地址之外,地址转换电路16还选择与物理地址相关联的多个物理地址空间之一并且输出识别所选择的物理地址空间的物理地址空间(pas)标识符。下文将更详细地讨论pas的选择。
95.pas滤波器20充当请求器侧滤波电路以便基于转换的物理地址和pas标识符来检查是否允许在pas标识符所识别的指定的物理地址空间内访问该物理地址。该查找基于存储器系统内存储的颗粒保护表结构中存储的颗粒保护信息。与页表数据在tlb 18中的高速缓存类似,颗粒保护信息可高速缓存在颗粒保护信息高速缓存22内。虽然颗粒保护信息高速缓存22在图1的示例中被示出为与tlb 18分开的结构,但在其他示例中,可将这些类型的查找高速缓存组合成单个查找高速缓存结构以使得组合的结构的条目的单次查找提供页表信息和颗粒保护信息两者。颗粒保护信息定义限制可从其访问给定物理地址的物理地址
空间的信息,并且基于该查找,pas滤波器20确定是否允许存储器访问请求继续发出到一个或多个高速缓存24和/或互连线8。如果不允许存储器访问请求的指定的pas访问指定的物理地址,则pas滤波器20阻断该事务并且可发信号通知故障。
96.虽然图1示出了包括具有多个请求器设备4的系统的示例,但为图1的左手侧上的一个请求器设备示出的特征也可包括在仅存在一个请求器设备(诸如单核处理器)的系统中。
97.虽然图1示出了由地址转换电路16执行给定请求对pas的选择的示例,但在其他示例中,可由地址转换电路16将用于确定要选择哪个pas的信息连同pa一起输出到pas滤波器20,并且pas滤波器20可选择pas并检查是否允许在所选择的pas内访问pa。
98.pas滤波器20的提供有助于支持可在多个操作域中操作的系统,每个操作域与其自身隔离的物理地址空间相关联,其中对于存储器系统的至少一部分而言(例如,对于一些高速缓存或一致性实施机构诸如探听滤波器而言),即使这些地址空间内的地址实际上涉及存储器系统中的相同物理位置,也将单独物理地址空间看作是它们涉及识别单独存储器系统位置的完全单独的地址集合。这对于安全目的可能是有用的。
99.图2示出了处理电路10可操作的不同操作状态和域的示例,以及可在不同异常级别和域中执行的软件的类型的示例(当然,应当理解,安装在系统上的特定软件由管理该系统的各方选择,因此不是硬件架构的基本特征)。
100.处理电路10可在多个不同异常级别80(在该示例中,被标记为el0、el1、el2和el3的四个异常级别)处操作,其中在该示例中,el3是指具有最高权限级别的异常级别,而el0是指具有最低权限的异常级别。应当理解,其他架构可选择相反编号以使得具有最高编号的异常级别可被视为具有最低权限。在该示例中,最低权限的异常级别el0用于应用程序级代码,次高权限的异常级别el1用于操作系统级代码,次高权限的异常级别el2用于管理多个虚拟化操作系统之间的切换的管理程序级代码,而最高权限的异常级别el3用于管理相应域之间的切换和物理地址向物理地址空间的分配的监控代码,如稍后描述。
101.当在处理软件处于特定异常级别时发生异常的时候,对于一些类型的异常而言,产生至更高(更高权限)的异常级别的异常,其中基于发生的特定异常的属性来选择将产生该异常的特定异常级别。然而,在一些情况下,有可能在与和在产生异常时处理的代码相关联的异常级别相同的异常级别处产生其他类型的异常。当产生异常时,可保存表征在产生该异常时的处理器的状态的信息,包括例如产生该异常时的当前异常级别,因此一旦已处理异常处理程序以处理该异常,处理可就返回到前一处理并且保存的信息可用于识别处理应返回到的异常级别。
102.除了不同异常级别之外,处理电路还支持多个操作域,包括根域82、安全(s)域84、不太安全域86和领域域88。为了便于参考,不太安全域在下文中将被描述为“非安全”(ns)域,但应当理解,这并非旨在暗示安全的任何特定级别(或缺乏安全)。相反,“非安全”仅仅指示非安全域旨在用于不如在安全域中操作的代码那样安全的代码。在处理电路10处于最高异常级别el3时选择根域82。当处理电路处于其他异常级别el0至el2之一时,基于当前域指示符14来选择当前域,该当前域指示符指示其他域84、86、88中的哪个域是活动的。对于其他域84、86、88中的每个域而言,处理电路可处于异常级别el0、el1或el2中的任何异常级别。
103.在引导时间,可例如在更高权限的异常级别el3或el2内执行引导代码(例如,bl1、bl2、oem引导)的多个片段。引导代码bl1、bl2可与例如根域相关联,并且oem引导代码可在安全域中操作。然而,一旦引导该系统,在运行时,处理电路10就可被视为一次在域82、84、86和88之一中操作。域82至88中的每个域与其自身的相关联的物理地址空间(pas)相关联,这实现了将来自不同域的数据隔离在存储器系统的至少一部分内。这将在下文更详细地描述。
104.非安全域86可用于常规应用程序级处理,并且可用于操作系统和管理程序活动以便管理此类应用程序。从而,在非安全域86内,可存在在el0处操作的应用程序代码30、在el1处操作的操作系统(os)代码32以及在el2处操作的管理程序代码34。
105.安全域84使某些片上系统安全性、介质或系统服务能够隔离到与用于非安全处理的物理地址空间分开的物理地址空间中。非安全域代码无法访问与安全域84相关联的资源,而安全域可访问安全资源和非安全资源两者,从这个意义上讲,安全域和非安全域不等同。支持安全域84和非安全域86的这种分区的系统的示例是基于安谋公司(limited)提供的架构的系统。安全域可运行el0处的可信应用程序36、el1处的可信操作系统38以及任选地el2处的安全分区管理器40,如果支持安全分区,则该安全分区管理器使用阶段2页表来支持在安全域84中执行的不同可信操作系统38之间的隔离,其采用的方式类似于管理程序34可管理在非安全域86中执行的虚拟机或客操作系统32之间的隔离的方式。
106.将该系统扩展到支持安全域84在近年来已变得很普遍,因为其使单个硬件处理器能够支持隔离的安全处理,从而避免了在单独硬件处理器上执行该处理的需要。然而,随着安全域的使用的日益普及,许多具有这种安全域的实际系统现已在安全域内支持各种各样的不同软件提供商所提供的相对复杂的混合服务环境。例如,在安全域84中操作的代码可包括由以下(除了别的之外)提供的软件的不同片段:制造集成电路的硅片提供商、将硅片提供商所提供的集成电路组装成电子设备诸如移动电话的原始设备制造商(oem)、为该设备提供操作系统32的操作系统供应商(osv);和/或管理云服务器的云平台提供商,该云服务器通过云来支持用于多个不同客户端的服务。
107.然而,越来越期望为提供用户级代码(通常可能预期该用户级代码作为非安全域86内的应用程序30来执行)的各方提供安全计算环境,可信任所述安全计算环境不会将信息泄露给在相同物理平台上操作代码的其他方。可能期望此类安全计算环境可在运行时动态地分配,并且被认证和可证明,以使得用户能够在信任该设备处理潜在敏感的代码或数据之前验证是否在物理平台上提供足够的安全保证。这种软件的用户可能不希望信任提供可能通常在非安全域86中操作的富操作系统32或管理程序34的一方(或即使可信任这些提供商自身,用户也可能希望保护他们自身免于操作系统32或管理程序34受到攻击者的损害)。另外,虽然安全域84可用于需要安全处理的此类用户提供的应用程序,但实际上这会给提供需要安全计算环境的代码的用户和在安全域84内操作的现有代码的提供商带来问题。对于在安全域84内操作的现有代码的提供商而言,在安全域内添加任意的用户提供的代码将增加对其代码的潜在攻击的攻击面,这可能是不期望的,因此可能强烈建议不要允许用户将代码添加到安全域84中。另一方面,提供需要安全计算环境的代码的用户可能不愿意信任在安全域84中操作的代码的不同片段的所有提供商都有权访问其数据或代码,如
果需要在特定域中操作的代码的认证或证明作为用户提供的代码执行其处理的先决条件,则可能难以审核和认证不同软件提供商所提供的在安全域84中操作的代码的所有不同片段,这可限制第三方提供更安全的服务的机会。
108.因此,如图2所示,提供了附加域88(称为领域域),该附加域可由此类用户引入的代码使用以提供与和在安全域24中操作的部件相关联的任何安全计算环境正交的安全计算环境。在领域域中,所执行的软件可包括多个领域,其中可由在异常级别el2处操作的领域管理模块(rmm)46将每个领域与其他领域隔离。rmm 46可例如通过定义页表结构中的访问权限和地址映射来控制执行领域域88的相应领域42、44之间的隔离,其采用的方式类似于管理程序34管理在非安全域86中操作的不同部件之间的隔离的方式。在该示例中,所述领域包括在el0处执行的应用程序级领域42以及跨异常级别el0和el1执行的封装应用程序/操作系统领域44。应当理解,没有必要同时支持el0和el0/el1类型的领域,并且可由rmm 46建立相同类型的多个领域。
109.与安全域84类似,领域域88具有向其分配的其自身物理地址空间,但领域域88和安全域84可各自访问与非安全域86相关联的非安全pas,而领域域88和安全域84无法访问彼此的物理地址空间,从这个意义上讲,领域域正交于安全域84。这意味着在领域域88和安全域84中执行的代码彼此没有依赖性。领域域中的代码仅需要信任硬件rmm 46和在根域82中操作的管理域之间的切换的代码,这意味着证明和认证变得更可行。证明使软件的给定片段能够请求验证安装在设备上的代码匹配某些预期特性。这可通过以下方式实现:检查安装在设备上的程序代码的散列是否匹配可信方使用密码协议签署的预期值。可例如通过以下方式证明rmm 46和监控代码29:检查该软件的散列是否匹配可信方签署的预期值,该可信方诸如为制造包括处理系统2的集成电路的硅片提供商或设计支持基于域的存储器访问控制的处理器架构的架构提供商。这可允许用户提供的代码42、44在执行任何安全或敏感功能之前验证是否可信任基于域的架构的完整性。
110.从而,可以看出,与领域42、44相关联的代码(该代码先前已在非安全域86中执行,如虚线所示,这些虚线示出了这些过程先前已执行的非安全域中的间隙)现在可移动到领域域,在该领域域中,它们可具有更强的安全保证,因为它们的数据和代码不会被在非安全域86中操作的其他代码访问。然而,由于领域域88和安全域84正交并因此无法看到彼此的物理地址空间的事实,这意味着领域域中的代码的提供商不需要信任安全域中的代码的提供商,反之亦然。领域域中的代码可简单地信任为根域82提供监控代码29的可信固件以及可由硅片提供商或处理器所支持的指令集架构的提供商(在代码在其设备上执行时,该提供商可能已经内在地需要被信任)提供的rmm 46,以使得不需要与其他操作系统供应商、oem或云主机的进一步信任关系,就能够为用户提供安全计算环境。
111.这可用于一系列应用程序和用例,包括例如移动钱包和支付应用程序、游戏防作弊和盗版机制、操作系统平台安全增强、安全虚拟机托管、机密计算、联网或物联网设备的网关处理。应当理解,用户可找到领域支持有用的许多其他应用程序。
112.为了支持向领域提供的安全保证,处理系统可支持证明报告功能,其中在引导时间或在运行时间,对固件图像和配置(例如,监控代码图像和配置或rmm代码图像和配置)进行测量,并且在运行时,测量领域内容和配置,以使得领域所有者可将相关证明报告回溯到已知实现和认证,从而对是否在该系统上操作作出信任决策。
113.如图2所示,提供了管理域切换的单独根域82,并且该根域具有其自身的隔离的根物理地址空间。即使对于仅具有非安全域86和安全域84但没有领域域88的系统,根域的创建和其资源与安全域的隔离也允许更稳健的实现,但还可用于不支持领域域88的实现。根域82可使用由硅片提供商或架构设计者提供(或认证)的监控软件29来实现,并且可用于提供安全引导功能、可信引导测量、片上系统配置、调试控制和其他方(诸如oem)所提供的固件部件的固件更新的管理。可由硅片提供商或架构设计者在不依赖于最终设备的情况下开发、认证和部署根域代码。相比之下,可由oem管理安全域84以便实现某些平台和安全服务。可由操作系统32控制非安全域86的管理以提供操作系统服务,而领域域88允许开发新形式的可信执行环境,这些可信执行环境可专用于用户或第三方应用程序,同时与安全域84中的现有安全软件环境相互隔离。
114.图3示意性地示出了用于支持这些技术的处理系统2的另一个示例。用相同附图标记示出与图1中相同的元件。图3更详细地示出了地址转换电路16,该地址转换电路包括阶段1存储器管理单元50和阶段2存储器管理单元52。阶段1mmu 50可负责将虚拟地址转换为物理地址(当该转换由el2或el3代码触发时)或转换为中间地址(当该转换由el0或el1代码在一定操作状态下触发时,在该操作状态下,需要由阶段2mmu 52进行进一步阶段2转换)。阶段2mmu可将中间地址转换成物理地址。阶段1mmu可基于由操作系统控制的用于从el0或el1发起的转换的页表、由管理程序控制的用于来自el2的转换的页表或由监控代码29控制的用于来自el3的转换的页表。另一方面,阶段2mmu 52可基于由管理程序34、rmm 46或安全分区管理器14定义的页表结构,具体取决于要使用哪个域。以这种方式将这些转换分成两个阶段允许操作系统管理其自身和应用程序的地址转换(假设它们是在该系统上运行的唯一操作系统),而rmm 46、管理程序34或spm40可管理在相同域中运行的不同操作系统之间的隔离。
115.如图3所示,使用地址转换电路16的地址转换过程可返回安全属性54,所述安全属性与当前异常级别15和当前域14(或安全状态)相结合,允许响应于给定存储器访问请求而访问特定物理地址空间(由pas标识符或“pas tag”识别)的一部分。可在提供先前描述的颗粒保护信息的颗粒保护表56中查找物理地址和pas标识符。在该示例中,pas滤波器20被示出为颗粒状存储器保护单元(gmpu),其验证是否允许所选择的pas访问请求的物理地址,如果是这样,则允许该事务传递到作为存储器系统的系统结构的一部分的任何高速缓存24或互连线8。
116.gmpu 20允许将存储器分配到单独地址空间,同时提供基于硬件的强隔离保证并且在物理存储器向这些地址空间中分配的方法方面提供空间和时间灵活性以及高效共享方案。如先前所描述,该系统中的执行单元被逻辑地分区为虚拟执行状态(域或“世界”),其中存在位于最高异常级别(el3)处的一个执行状态(根世界),该执行状态被称为“根世界”,其管理物理存储器向这些世界的分配。
117.单个系统物理地址空间被虚拟化成多个“逻辑”或“架构”物理地址空间(pas),其中每个此类pas是具有独立一致性属性的正交地址空间。通过用pas标签扩展系统物理地址来将该系统物理地址映射到单个“逻辑”物理地址空间。
118.允许给定世界访问逻辑物理地址空间的子集。这由硬件滤波器20实施,该硬件滤波器可附接到存储器管理单元16的输出。
119.世界使用用于地址转换的页表的转换表描述符中的字段来定义该访问的安全属性(pas标签)。硬件滤波器20有权访问表(颗粒保护表56或gpt),该表为系统物理地址空间中的每页定义颗粒保护信息(gpi),该gpi指示与之相关联的pas tag和(任选地)其他颗粒保护属性。
120.硬件滤波器20比照颗粒的gpi来检查世界id和安全属性,并且决定是否可授予访问权限,从而形成颗粒状存储器保护单元(gmpu)。
121.例如,gpt 56可驻留在片上sram中或片外dram中。如果在片外存储,则gpt 56可由片上存储器保护引擎来进行完整性保护,该片上存储器保护引擎可使用加密、完整性和新鲜度机制来保持gpt 56的安全性。
122.将gmpu 20定位在该系统的请求器侧上(例如,mmu输出上)而不是定位在完成器侧上允许按页粒度分配访问权限,同时允许互连线8继续跨多个dram端口对该页进行散列化/剥离。
123.事务仍然标记有pas tag,因为它们在整个系统结构24、8中传播直到到达被定义为物理别名点60的位置。这允许将滤波器定位在主侧上,而与从侧滤波相比不会削弱安全保证。由于该事务在整个系统中传播,pas tag可用作用于地址隔离的纵深安全机制:例如,高速缓存可将pas tag添加到高速缓存中的地址标签,从而防止使用错误pas tag对相同pa进行的访问在高速缓存中命中并因此改善抗侧信道攻击。pas tag还可用作附接到存储器控制器的保护引擎的上下文选择器,其在将数据写入到外部dram之前对数据进行加密。
124.物理别名点(popa)是pas tag被剥离并且地址从逻辑物理地址变回到系统物理地址的系统中的位置。popa可位于高速缓存下方的系统的完成器侧处,在此处(使用通过pas tag解决的加密上下文)对物理dram进行访问。另选地,其可位于高速缓存上方以便以安全性降低的代价简化系统实现。
125.在任何时间点,世界均可请求将页从一个pas转换到另一个pas。对el3处的监控代码29作出请求,该监控代码检查gpi的当前状态。el3可仅允许发生特定组的转换(例如,从非安全pas到安全pas,但不从领域pas到安全pas)。为了提供干净转变,该系统支持新指令
‑“
数据清理和无效至物理别名点”,el3可在将页转变到新pas之前提交该指令

这保证与前一pas相关联的任何残余状态从popa 60上游(比popa 60更靠近请求器侧)的任何高速缓存刷新。
126.可通过将gmpu 20附接到主侧来实现的另一种特性是存储器在世界之间的高效共享。可能期望为n个世界的子集授予共享访问物理颗粒的权限,同时防止其他世界访问该物理颗粒。这可通过以下方式实现:将“限制性共享”语义添加到颗粒保护信息,同时迫使其使用特定pas tag。作为一个示例,gpi可指示物理颗粒可仅由“领域世界”88和“安全世界”84访问,同时标记有安全pas 84的pas tag。
127.上述特性的示例是使特定物理颗粒的可见性特性作出快速变化。考虑为每个世界分配仅可供该世界访问的专用pas的情况。对于特定颗粒而言,该世界可请求在任何时间点通过以下方式使这些颗粒对非安全世界可见:将其gpi从“独占”改变为“与非安全世界限制性共享”,同时不改变pas关联。这样,可增加该颗粒的可见性而不需要昂贵的高速缓存维护或数据复制操作。
128.图4示出了相应物理地址空间向硬件中提供的物理存储器上的别名的概念。如先
前所描述,域82、84、86、88中的每个域具有其自身的相应物理地址空间61。
129.在地址转换电路16生成物理地址的时间点,物理地址具有由该系统支持的一定数值范围62内的值,不论选择哪个物理地址空间,该值都相同。然而,除了物理地址的生成之外,地址转换电路16还可基于当前域14和/或用于导出物理地址的页表条目中的信息来选择特定物理地址空间(pas)。另选地,并非地址转换电路16执行pas的选择,而是地址转换电路(例如,mmu)可输出从页表条目(pte)导出的用于选择pas的物理地址和信息,然后pas滤波器或gmpu 20可使用该信息来选择pas。
130.可根据处理电路10在发出存储器访问请求时正在操作的当前域,按照下表中定义的规则来限制给定存储器访问请求对pas的选择:
131.当前域非安全pas安全pas领域pas根pas非安全可访问不可访问不可访问不可访问安全可访问可访问不可访问不可访问领域可访问不可访问可访问不可访问根可访问可访问可访问可访问
132.对于存在可供选择的多个物理地址空间的那些域而言,来自用于提供物理地址的访问的页表条目的信息用于在可用pas选项之间选择。
133.从而,在pas滤波器20将存储器访问请求输出到系统结构24、8的时间点(假设其通过了任何滤波检查),存储器访问请求与物理地址(pa)和所选择的物理地址空间(pas)相关联。
134.从在物理别名点(popa)60之前操作的存储器系统部件(诸如高速缓存、互连线、探听滤波器等)的角度来看,相应物理地址空间61被看作是对应于存储器内的不同系统位置的完全单独的地址范围。这意味着,从前popa存储器系统部件的角度来看,存储器访问请求所识别的地址范围实际上是可在地址转换中输出的范围62的大小的四倍,因为实际上pas标识符被看作是物理地址自身旁边的附加地址位,以使得根据选择哪个pas,可将相同物理地址pax映射到不同物理地址空间61中的多个别名物理地址63。这些别名物理地址63实际上全都对应于物理硬件中实现的相同存储器系统位置,但前popa存储器系统部件将别名地址63看作是单独地址。从而,如果存在为此类地址分配条目的任何前popa高速缓存或探听滤波器,则别名地址63将被映射到具有单独高速缓存命中/未命中决策和单独一致性管理的不同条目中。这降低了攻击者使用高速缓存或一致性侧信道作为探测其他域的操作的机构的可能性或有效性。
135.该系统可包括超过一个popa 60(例如,如下文所讨论的图14中所示)。在每个popa 60处,别名物理地址收缩成系统物理地址空间64中的单个去别名地址65。在任何后popa部件的下游提供去别名地址65,以使得实际上识别存储器系统位置的系统物理地址空间64再一次为与在请求器侧上执行的地址转换中可输出的物理地址范围相同的大小。例如,在popa60处,可从这些地址中剥离pas标识符,并且对于下游部件而言,这些地址可简单地使用物理地址值来识别,而不指定pas。另选地,对于期望存储器访问请求的一些完成器侧滤波的一些情况而言,pas标识符仍可在popa 60的下游提供,但可不被解释为地址的一部分,以使得在不同物理地址空间60中出现的相同物理地址将在popa的下游解释为涉及相同存储器系统位置,但供应的pas标识符仍可用于执行任何完成器侧安全检查。
136.图5示出了可如何使用颗粒保护表56将系统物理地址空间64分成为特定架构物理地址空间61内的访问分配的组块。颗粒保护表(gpt)56定义允许从每个架构物理地址空间61访问系统物理地址空间65的哪些部分。例如,gpt 56可包括各自与一定大小(例如,4k页)的物理地址颗粒相对应的多个条目,并且可定义为该颗粒分配的pas,该pas可从非安全域、安全域、领域域和根域中选择。根据设计,如果特定颗粒或颗粒组被分配到与这些域之一相关联的pas,则其仅可在与该域相关联的pas内访问并且无法在其他域的pas内访问。然而,应当注意,虽然无法从根pas内访问分配到安全pas(举例来说)的颗粒,但是根域82能够通过以下方式访问该物理地址颗粒:在其页表中指定pas选择信息,以便确保与映射到物理寻址的存储器的该区域的页相关联的虚拟地址转换成安全pas(而非根pas)中的物理地址。从而,可在为给定存储器访问请求选择pas的时间点控制数据跨域的共享(达到先前描述的表中定义的可访问性/不可访问性规则所允许的程度)。
137.然而,在一些具体实施中,除了允许在gpt所定义的分配的pas内访问物理地址颗粒之外,gpt还可使用其他gpt属性将地址空间的某些区域标记为与另一个地址空间(例如,与更低或正交权限的域相关联的地址空间(通常不允许其为该域的访问请求选择分配的pas))共享。这可促进数据的暂时共享而不需要改变给定颗粒的分配的pas。例如,在图5中,领域pas的区域70在gpt中定义为被分配到领域域,因此通常不可从非安全域86访问,这是由于非安全域86无法为其访问请求选择领域pas。由于非安全域26无法访问领域pas,于是通常非安全代码无法看到区域70中的数据。然而,如果领域暂时希望将存储器的其分配区域中的其数据中的一些数据与非安全域共享,则其可请求在根域82中操作的监控代码29更新gpt56以指示区域70将与非安全域86共享,并且这可使区域70也可从如图5的左手侧上所示的非安全pas访问,而不需要改变哪个域是区域70的分配的域。如果领域域已将其地址空间的某区域指定为与非安全域共享,则尽管从非安全域发出的以该区域为目标的存储器访问请求最初可指定非安全pas,但是pas滤波器20可重映射该请求的pas标识符以相反地指定领域pas,从而下游存储器系统部件将该请求看作是其始终从领域域发出。该共享可提高性能,因为用于将不同域分配到特定存储器区域的操作可更为性能密集性的,其涉及更大程度的高速缓存/tlb无效和/或存储器中的数据归零或数据在存储器区域之间的复制(如果预期共享仅是暂时的,则这可为不正当的)。
138.图6是示出如何确定当前操作域的流程图,这可由处理电路10或由地址转换电路16或pas滤波器20执行。在步骤100处,确定当前异常级别15是否为el3,如果是这样,则在步骤102处,将当前域确定为根域82。如果当前异常级别不是el3,则在步骤104处,将当前域确定为非安全域86、安全域84和领域域88中的一者,如处理器的el3控制寄存器内的至少两个域指示位14所指示(由于根域由作为el3的当前异常级别来指示,可能不必要具有与根域相对应的域指示位14的编码,因此可为其他目的预留域指示位的至少一个编码)。el3控制寄存器可在el3处操作时写入并且无法从其他异常级别el2-el0写入。
139.图7示出了可用于页表结构中的页表条目的页表条目(pte)格式的示例,这些页表条目由地址转换电路16用于将虚拟地址映射到物理地址,将虚拟地址映射到中间地址,或将中间地址映射到物理地址(具体取决于是否在完全需要阶段2转换的操作状态下执行转换,以及如果需要阶段2转换,则该转换是阶段1转换还是阶段2转换)。一般来讲,给定页表结构可被定义为多级表结构,其被实现为页表树,其中基于存储在处理器的转换表基地址
寄存器中的基地址来识别页表的第一级别,并且从对其执行转换查找的输入地址的位子集导出在页表内选择特定级别1页表条目的索引(输入地址可以是用于阶段1转换的虚拟地址或用于阶段2转换的中间地址)。级别1页表条目可以是提供指向下一级别页表的指针112的“表描述符”110,然后可基于输入地址的进一步的位子集来从下一级别页表选择进一步的页表条目。最后,在对页表连续级别的一次或多次查找之后,可识别块或页描述符pte 114、116、118,该块或页描述符提供与输入地址相对应的输出地址120。输出地址可以是中间地址(对于在还执行进一步阶段2转换的操作状态下执行的阶段1转换)或物理地址(对于阶段2转换或在不需要阶段2时的阶段1转换)。
140.为了支持上述不同物理地址空间,除了下一级别页表指针112或输出地址120以及用于控制对存储器的对应块的访问的任何属性122之外,页表条目格式还指定用于物理地址空间选择的一些附加状态。
141.对于表描述符110而言,除了非安全域86之外的任何域所使用的pte包括非安全表指示符124,该非安全表指示符指示是否将从非安全物理地址空间或从当前域的物理地址空间访问下一级别页表。这有助于促进页表的更高效管理。通常根域、领域域或安全域24所使用的页表结构可仅需要为虚拟地址空间的一部分定义特殊页表条目,并且对于其他部分而言,可使用非安全域26所使用的相同页表条目,因此通过提供非安全表指示符124,这可允许页表结构的更高级别提供专用领域/安全表描述符,同时在页表树的一定点处,根领域域或安全域可切换到将来自非安全域的页表条目用于地址空间中那些不需要更高安全性的部分。仍可从与根域、领域域或安全域相关联的相关物理地址空间获取页表树的其他部分中的其他页表描述符。
142.另一方面,块/页描述符114、116、118可根据它们与哪个域相关联来包括物理地址空间选择信息126。非安全域86中使用的非安全块/页描述符118不包括任何pas选择信息,因为非安全域仅能够访问非安全pas。然而,对于其他域而言,块/页描述符114、116包括pas选择信息126,该pas选择信息用于选择要将输入地址转换成哪个pas。对于根域22而言,el3页表条目可具有pas选择信息126,该pas选择信息包括至少2位以将与4个域82、84、86、88中的任何域相关联的pas指示为对应物理地址将被转换成的所选择的pas。相比之下,对于领域域和安全域而言,对应块/页描述符116仅需要包括一位pas选择信息126,其对于领域域而言在领域pas和非安全pas之间选择,并且对于安全域而言在安全pas和非安全pas之间选择。为了提高电路实现的效率并且避免增加页表条目的大小,对于领域域和安全域而言,块/页描述符116可在pte内的相同位置处编码pas选择信息126,而不考虑当前域是领域域还是安全域,以使得pas选择位126可共享。
143.从而,图8是流程图,其示出了基于当前域以及来自块/页pte的用于为给定存储器访问请求生成物理地址的信息124、126来选择pas的方法。可由地址转换电路16执行pas选择,或如果地址转换电路将pas选择信息126转发到pas滤波器20,则可由地址转换电路16和pas滤波器20的组合执行pas选择。
144.在图8中的步骤130处,处理电路10发出将给定虚拟地址(va)指定为目标va的存储器访问请求。在步骤132处,地址转换电路16在其tlb18中查找任何页表条目(或从此类页表条目导出的高速缓存的信息)。如果任何所需的页表信息不可用,则地址转换电路16发起至存储器的页表漫游以获取所需的pte(潜在地需要一系列存储器访问以逐步经过页表结构
的相应级别,和/或潜在地需要地址转换的多个阶段以获得从va至中间地址(ipa)再从ipa至pa的映射)。应当注意,地址转换电路16在页表漫游操作中发出的任何存储器访问请求可自身经受地址转换和pas滤波,因此在步骤130处接收到的请求可以是为从存储器请求页表条目而发出的存储器访问请求。一旦已识别相关页表信息,就(可能在两个阶段中经由ipa)将虚拟地址转换成物理地址。在步骤134处,地址转换电路16或pas滤波器20使用图6所示的方法来确定哪个域是当前域。
145.如果当前域是非安全域,则在步骤136处,为该存储器访问请求选择的输出pas是非安全pas。
146.如果当前域是安全域,则在步骤138处,基于包括在块/页描述符pte中的提供物理地址的pas选择信息126来选择输出pas,其中输出pas将被选择为安全pas或非安全pas。
147.如果当前域是领域域,则在步骤140处,基于包括在块/页描述符pte中的从其导出物理地址的pas选择信息126来选择输出pas,并且在这种情况下,输出pas被选择为领域pas或非安全pas。
148.如果在步骤134处当前域被确定为根域,则在步骤142处,基于根块/页描述符pte 114中的从其导出物理地址的pas选择信息126来选择输出pas。在这种情况下,输出pas被选择为与根域、领域域、安全域和非安全域相关联的物理地址空间中的任何物理地址空间。
149.图9示出了用于给定物理地址颗粒的gpt 56的条目的示例。gpt条目150包括识别向该物理地址颗粒分配的pas的分配的pas标识符152,并且任选地包括进一步的属性154,所述属性可例如包括先前描述的共享属性信息156,该共享属性信息使物理地址颗粒能够在除分配的pas之外的一个或多个其他pas中变得可见。根域可在与分配的pas相关联的域中运行的代码发出请求时执行共享属性信息156的设定。另外,所述属性可包括直通指示符字段158,该直通指示符字段指示是否应由pas滤波器20在请求器侧上或由完成器侧滤波电路在互连线的完成器设备侧处执行gpt检查(用于确定是否允许存储器访问请求的所选择的pas访问该物理地址颗粒),如下文将进一步讨论。如果直通指示符158具有第一值,则可能在请求器侧上的pas滤波器20处需要请求器侧滤波检查,并且如果这些检查失败,则可阻断存储器访问请求并且可发信号通知故障。然而,如果直通指示符158具有第二值,则对于指定与该gpt条目150相对应的物理地址颗粒中的物理地址的存储器访问请求而言,可能不需要基于gpt 56的请求器侧滤波检查,并且在这种情况下,存储器访问请求可一直传递到高速缓存24或互连线8,而不考虑检查所选择的pas是否为允许访问该物理地址颗粒的所允许的pas之一,而是稍后在完成器侧处执行任何此类pas滤波检查。
150.图10是示出pas滤波器20在互连线8的请求器侧处执行的请求器侧pas滤波检查的流程图。在步骤170处,pas滤波器20接收存储器访问请求,该存储器访问请求与物理地址和可如先前描述的图8中所示的那样选择的输出pas相关联。
151.在步骤172处,pas滤波器20要么从颗粒保护信息高速缓存22(如果可用)获得与指定的pa相对应的gpt条目,要么通过以下方式获得该gpt条目:向存储器发出从存储在存储器中的表结构获取所需的gpt条目的请求。一旦已获得所需的gpt条目,就在步骤174处,pas滤波器确定为存储器访问请求选择的输出pas是否与在步骤172处获得的gpt条目中定义的分配的pas 152相同。如果是这样,则在步骤176处,可允许存储器访问请求(指定该pa和该输出pas)传递到高速缓存24或互连线8。
152.如果输出pas不是分配的pas,则在步骤178处,pas滤波器确定输出pas是否在来自所获得的gpt条目的共享属性信息156中指示为允许访问与指定的pa相对应的地址颗粒的所允许的pas。如果是这样,则再次在步骤176处,允许存储器访问请求传递到高速缓存24或互连线8。共享属性信息可被编码为gpt条目150内的独特位(或位集合),或可被编码为gpt条目150的字段的一个或多个编码,就此而言,该相同字段的其他编码可指示其他信息。如果步骤178确定共享属性指示允许除分配的pas之外的输出pas访问pa,则在步骤176处,传递到高速缓存24或互连线8的存储器访问请求中指定的pas是分配的pas,不是输出pas。pas滤波器20变换由存储器访问请求指定的pas以匹配分配的pas,从而下游存储器系统部件将其看作与所发出的指定分配的pas的请求相同。
153.如果输出pas在共享属性信息156中不指示为允许访问指定的物理地址(或另选地,在不支持共享属性信息156的具体实施中,跳过步骤178),则在步骤180处确定目标物理地址的所获得的gpt条目中的直通指示符158是否识别存储器访问请求可一直传递到高速缓存24或互连线8,而不考虑在请求器侧pas滤波器20处执行的检查,并且如果指定了直通指示符,则在步骤176处再次允许进行存储器访问请求(将输出pas指定为与存储器访问请求相关联的pas)。或者,如果在步骤174、178和180的检查都没有识别出允许存储器访问请求,则在步骤182阻止存储器访问请求。从而,不将存储器访问请求传递到高速缓存24或互连线8,并且可发信号通知故障,这可触发异常处理以处理该故障。
154.虽然步骤174、178、180在图10中顺序地示出,但如果需要,这些步骤也可并行地或按不同顺序实现。还应当理解,步骤178和180不是必要的并且一些具体实施可不支持使用共享属性信息156和/或直通指示符158。
155.图11概括了地址转换电路16和pas滤波器的操作。pas滤波20可被视为在地址转换电路所执行的阶段1(和任选地阶段2)地址转换之后执行的附加阶段3检查。还应当注意,el3转换基于页表条目,所述页表条目提供两位基于地址的选择信息(在图11的示例中标记为ns、nse),而一位选择信息“ns”用于选择其他状态下的pas。图11中指示为颗粒保护检查的输入的安全状态是指识别处理元件4的当前域的域id。
156.图12是示出阶段3查找高速缓存无效指令的处理的流程图,其可由在根域82中操作的监控代码29用来触发依赖于与特定物理地址相关联的gpt条目的任何查找高速缓存条目的无效。这在根域改变给定系统pa被分配给哪个物理地址空间的分配时可能很有用,使得任何查找高速缓存22将不保留过期信息。
157.因此,在步骤200,给定处理元件(请求器设备)4内的处理电路10可以执行阶段3查找高速缓存无效指令。该指令指定物理地址。
158.在步骤202,响应于阶段3查找高速缓存无效指令,处理电路10可以检查当前异常级别是否是el3,并且如果不是,则可以在步骤204拒绝该指令和/或发信号通知异常(诸如未定义的指令异常)。这将阶段3查找高速缓存无效指令的执行限制到与根域相关联的监控代码29,以防止恶意方通过迫使如由其他异常级别触发的来自查找高速缓存22的颗粒保护信息无效来触发性能损失。
159.如果当前异常级别是el3,则在步骤206,响应于在步骤200执行的指令,处理元件发出至少一个查找高速缓存无效命令,其被发送到任何查找高速缓存18、22,所述查找高速缓存可以包含取决于与由指令识别的物理地址相关联的颗粒保护表条目的信息。这些高速
缓存不仅可以包括如图1所示的颗粒保护信息高速缓存22,而且在一些实施方式中还可以包括将来自页表结构和gpt的信息组合成单个条目的组合的tlb/颗粒保护高速缓存。对于这种组合的tlb/gpt高速缓存,组合的高速缓存可能需要通过虚拟地址和物理地址两者进行查找的能力。
160.在步骤208,响应于发出的命令,gpt高速缓存22或组合的tlb/gpt高速缓存使依赖于来自gpt条目的颗粒保护信息的任何条目无效,该gpt条目与对应于由查找高速缓存无效命令指定的物理地址的物理地址颗粒相关联。
161.由于存储器系统内的高速缓存可用位于popa之前的那些高速缓存的相关联pas的识别来标记条目,因此如果根域代码29通过更新gpt 56而改变哪一pas与物理地址的某一颗粒相关联,那么仍可存在高速缓存在前popa高速缓存中的数据,其用物理地址的颗粒的错误pas来标记。为了防止在gpt更新命中发出那些请求的域不应再可访问的高速缓存条目之后发出的后续访问,提供确保与特定物理地址相关联的任何高速缓存的条目在popa 60之前的任何高速缓存中无效的指令可能是有用的。该指令可以是与可作用于存储器系统的不同子集内的高速缓存(诸如一致性点之前的高速缓存或特定处理元件本地的高速缓存)的其他类型的高速缓存无效指令不同的指令。因此,处理电路可以支持高速缓存无效到popa指令,该指令根据系统中的高速缓存观察到无效的范围来区分,该范围对应于popa上游的存储器系统的部分。也就是说,对于该指令,popa是对高速缓存必须观察到的无效程度的限制。
162.图13是示出高速缓存无效到popa指令的处理的流程图。在步骤220,给定请求器设备4的处理电路10执行高速缓存无效到popa指令。该指令指定虚拟地址,并且在步骤222,该虚拟地址被映射到物理地址。然而,在某些情况下,与图12中所示的指令类似,可以将对直到popa的无效高速缓存的指令的执行限制为仅在el3中执行。在步骤224,执行指令的处理元件发出指定物理地址的无效命令,这些命令被发送到系统内的任何前popa高速缓存24。这可以包括不仅在请求器设备4内,而且在互连线8内或在其他请求器设备4或其他存储器系统部件内的popa的上游的高速缓存,它们位于将不同的物理地址空间61视为所寻址的存储器位置的单独范围的点处。
163.高速缓存无效到popa指令在某些情况下可以是指令的“清洁且无效”形式,它不仅请求与指定pa相关联的数据从前popa高速缓存无效,而且请求在无效之前通过将任何脏数据写回到popa 60之外的位置来清洁数据。因此,在步骤226,如果指令是指令的清洁且无效形式,则接收命令的前popa高速缓存触发对来自与指定物理地址相关联的任何条目的脏数据的写回。该数据可被写入popa以外的高速缓存或主存储器。如果指令不是指令的清洁且无效的形式,或者如果不支持指令的清洁且无效的形式,则可以省略步骤226,并且该方法可以直接进行到步骤228,如果执行步骤226,则也将执行步骤228。在步骤228,在步骤224接收命令的前popa高速缓存使与它们的指定物理地址相关联的条目无效。与指定物理地址相关联的高速缓存条目无效,而不管哪个pas标签与那些条目相关联。
164.因此,高速缓存无效到popa指令可用于确保高速缓存在更新gpt之后不继续用错误的pas标识符来标记与给定物理地址相关联的条目。
165.图14示出了可以实现上述技术中的一些的数据处理系统的更详细的示例。与先前示例中相同的元件用相同的附图标记示出。在图14的示例中,更详细地示出了处理元件4,
其中除了处理电路10、地址转换电路16、tlb18和pas滤波器20之外,更详细地示出了包括1级指令高速缓存、1级数据高速缓存、2级高速缓存以及可选地在处理元件之间共享的共享3级高速缓存24的高速缓存24。中断控制器300可以控制各个处理元件对中断的处理。
166.如图14所示,能够执行程序指令以触发对存储器的访问的处理元件4不是可以提供有请求器侧pas滤波器20的唯一类型的请求设备。在其他示例中,系统mmu 310(其被提供用于为不支持它们自己的地址转换功能的请求设备312、314提供地址转换功能,所述请求设备诸如网络接口控制器或显示控制器的片上设备312,或可经由总线与系统通信的片外设备314)可以提供有pas滤波器20,以执行与处理元件4中的pas滤波器20相同的gpt条目的请求器侧检查。其他请求设备可以包括调试访问端口316和控制处理器318,它们可以再次具有与它们相关联的pas滤波器20,以在给定在gpt 56中定义的pas分配的情况下,检查是否允许由请求设备316、318发出的对特定物理地址空间的存储器访问。
167.互连线8在图14中更详细地示出为一致性互连线8,其以及路由结构320还包括探听滤波器322,用于管理各个处理元件中的高速缓存24之间的一致性,以及一个或多个系统高速缓存324,其可以执行请求设备之间共享的共享数据的高速缓存。探听滤波器322和系统高速缓存324可以位于popa 60的上游,并且因此可以使用由mmu 16、310为特定主设备选择的pas标识符来标记它们的条目。默认情况下,可以假设与mmu不相关联的请求设备316、318总是发出请求特定域,诸如非安全域(或根域,如果它们是可信任的)。
168.图14示出了作为前popa部件的另一个示例的存储器保护引擎(mpe)330,该前popa部件将各个pas中的别名物理地址看作它们引用不同的地址位置,该存储器保护引擎被提供在互连线8与给定存储器控制器6之间,用于控制对片外存储器340的访问。mpe 330可以负责对写入片外存储器340的数据进行加密以保持机密性,并在读回时对数据进行解密。此外,通过在将数据写入存储器时生成完整性元数据,并且在从片外存储器读回数据时使用元数据来验证数据是否已经更改,mpe可以防止对存储在片外存储器中的数据被篡改。当加密数据或为存储器完整性生成散列时,可以根据正在访问的物理地址空间使用不同的密钥,即使访问实际上对应于片外存储器340中的相同位置的别名物理地址。这通过进一步分离与不同操作域相关联的数据来提高安全性。
169.在该示例中,popa 60位于存储器保护引擎330与存储器控制器6之间,使得在请求到达存储器控制器6时,物理地址不再被视为映射到存储器340中的不同物理位置,这取决于它们被访问的物理地址空间。
170.图14示出了完成器设备6的另一个示例,其可以是用于与外围设备350或片上存储器360的区域(例如,实现为静态随机存取存储器(sram))通信的外围总线或非一致性互连线。此外,外围总线或非一致性互连线6可用于与安全元件370(例如用于执行密码处理的密码单元、随机数产生器372或存储静态硬连线信息的某些熔断器374)通信。还可以通过外围总线或非一致性互连线6来访问各种电源/复位/调试控制器380。
171.对于片上sram 360,提供从侧(完成器侧)pas滤波器400可能是有用的,该滤波器可以基于完成器侧保护信息来执行存储器访问的完成器侧滤波,该完成器侧保护信息定义了允许哪些物理地址空间访问给定的物理地址块。该完成器侧信息可以比请求器侧pas滤波器20使用的gpt更粗略地定义。例如,从侧信息可以简单地指示整个sram单元361可以专用于由领域域使用,另一个sram单元362可以专用于由根域使用,等等用于其他域。因此,相
对粗略地定义的物理地址块可以指向不同的sram单元。该完成器侧保护信息可以由引导加载器代码静态地定义,该引导加载器代码在引导时将信息加载到无法在运行时更改的完成器侧pas滤波器,因此它不如请求器侧pas滤波器20所使用的gpt灵活。然而,对于将物理地址划分为每个域可访问的特定区域在引导时间是已知的并且将不改变,并且不需要细粒度划分的使用情况,使用从侧pas滤波器400而不是请求器侧的pas滤波器20可能更有效,因为这可以允许在请求器侧消除获得gpt条目以及将分配的pas和共享属性信息与当前存储器访问请求的信息进行比较的功率和性能成本。此外,如果可以在多级gpt结构中的顶级gpt条目(或在不同于最终级别的级别上的其他表描述符条目)中指示直通指示符158,则对于以映射到由完成器侧pas滤波器400监管的片上存储器360的物理地址的区域中的一个为目标的请求,可以避免对gpt结构的其他级别的访问(其可以被执行以找到关于所分配的pas的更细粒度的信息,以便请求接受请求器侧检查)。
172.因此,支持使请求器侧和完成器侧都能够检查保护信息的混合方法对于提高性能和功率效率很有用。系统设计者可以定义对于存储器的特定区域应该采用哪种方法。
173.图15示出可使用的模拟器具体实施。虽然先前所述的实施方案在用于操作支持所涉及的技术的特定处理硬件的装置和方法方面实现了本发明,但也可以提供根据本文所述的实施方案的指令执行环境,该指令执行环境是通过使用计算机程序来实现的。此类计算机程序通常被称为模拟器,在一定程度上是因为此类计算机程序提供硬件架构的基于软件的具体实施。模拟器计算机程序的种类包括仿真器、虚拟机、模型和二进制转换器,其包括动态二进制转换器。通常,模拟器具体实施可在支持模拟器程序410的主机处理器430上运行,该主机处理器任选地运行主机操作系统420。在一些布置中,在硬件和所提供的指令执行环境和/或在同一主机处理器上提供的多个不同指令执行环境之间可存在多个模拟层。在历史上,需要强大的处理器来提供以合理速度执行的模拟器具体实施,但这种方法在某些情况下可能是合理的,诸如当出于兼容性或重复使用原因而希望运行另一个处理器本地的代码时。例如,模拟器具体实施可向指令执行环境提供主机处理器硬件不支持的附加功能,或者提供通常与不同硬件架构相关联的指令执行环境。模拟概述在以下文献中给出:“some efficient architecture simulation techniques”,robert bedichek,winter 1990usenix conference,第53-63页。
174.就先前已参考特定硬件构造或特征描述了实施方案而言,在模拟的实施方案中,等效功能可由合适的软件构造或特征提供。例如,特定电路可在模拟的实施方案中被实现为计算机程序逻辑。类似地,存储器硬件诸如寄存器或高速缓存存储器可在模拟的实施方案中被实现为软件数据结构。在先前描述的实施方案中参考的硬件元件中的一个或多个硬件元件存在于主机硬件(例如,主机处理器430)上的布置中,在合适的情况下,一些模拟的实施方案可利用主机硬件。
175.模拟器程序410可存储在计算机可读存储介质(其可以是非暂态介质)上,并且向目标代码400(其可包括应用程序、操作系统和管理程序)提供程序接口(指令执行环境),该程序接口与由模拟器程序410建模的硬件架构的接口相同。因此,可使用模拟器程序410从指令执行环境内执行目标代码400的程序指令,使得实际上不具有上文所讨论的装置2的硬件特征的主计算机430可仿真这些特征。这对于例如允许在实际支持该架构的硬件设备可用之前测试正在为新版本的处理器架构开发的目标代码400是有用的,因为可以通过在不
支持该架构的主机设备上执行的模拟器内运行来测试目标代码。
176.模拟器代码包括模拟处理电路10的行为的处理程序逻辑412,例如包括指令解码程序逻辑,其对目标代码400的指令进行解码,并将指令映射到主机硬件430支持的本机指令集中的相应指令序列,以执行与解码指令等效的功能。处理程序逻辑412还模拟如上所述的不同异常级别和域中的代码的处理。寄存器仿真程序逻辑413在主机处理器的主机地址空间中维护数据结构,其仿真根据与目标代码400相关联的目标指令集架构定义的架构寄存器状态。因此,不是如图1的示例中那样将这种架构状态存储在硬件寄存器12中,而是将其存储在主机处理器430的存储器中,其中寄存器仿真程序逻辑413将目标代码400的指令的寄存器引用映射到相应的地址,以从主机存储器获得模拟的架构状态数据。该架构状态可以包括先前描述的当前域指示14和当前异常级别指示15。
177.该模拟代码包括地址转换程序逻辑414和滤波程序逻辑416,它们分别参考如前所述的相同页表结构和gpt 56仿真地址转换电路16和pas滤波器20的功能。因此,地址转换程序逻辑414将由目标代码400指定的虚拟地址转换为pas之一中的模拟物理地址(从目标代码的角度来看,它是指存储器中的物理位置),但实际上这些模拟物理地址由地址空间映射程序逻辑415映射到主机处理器的(虚拟)地址空间上。滤波程序逻辑416以与上述pas滤波器相同的方式执行对颗粒保护信息的查找以确定是否允许由目标代码触发的存储器访问继续进行。
178.其他示例在以下条款中阐述:
179.(1)一种装置,包括:地址转换电路,用于将由请求器电路发出的存储器访问请求指定的目标虚拟地址转换为目标物理地址;以及请求器侧滤波电路,用于基于所述目标物理地址和与所述存储器访问请求相关联的选定物理地址空间来执行颗粒保护查找,以确定是否经由互连线将所述存储器访问请求传递到用于服务所述存储器访问请求的完成器设备,其中所述选定物理地址空间是多个物理地址空间中的一个;其中:在所述颗粒保护查找中,所述请求器侧滤波电路被配置为:获得对应于包括所述目标物理地址的物理地址的目标颗粒的颗粒保护信息,所述颗粒保护信息指示与所述目标颗粒相关联的至少一个允许的物理地址空间;并且当所述颗粒保护信息指示所述选定物理地址空间不是所述至少一个允许的物理地址空间中的一个时,阻止所述存储器访问请求。
180.(2)根据条款(1)所述的装置,其中所述颗粒保护信息指定分配给物理地址的所述目标颗粒的分配物理地址空间;并且所述至少一个允许的物理地址空间至少包括所述分配物理地址空间。
181.(3)根据条款(2)所述的装置,其中所述颗粒保护信息还包括共享属性信息,所述共享属性信息指示除了所述分配物理地址空间之外的至少一个其他物理地址空间是否是所述至少一个允许的物理地址空间中的一个。
182.(4)根据条款(3)所述的装置,其中当所述颗粒保护查找确定所述选定物理地址空间是除了由所述共享属性信息指示的所述至少一个允许的物理地址空间中的一个的所述分配物理地址空间之外的物理地址空间时,所述请求器侧滤波电路被配置为允许将所述存储器访问请求传递到指定所述分配物理地址空间而不是所述选定物理地址空间的高速缓存或互连线。
183.(5)根据任一前述条款中所述的装置,其中所述请求器侧滤波电路被配置为在被
配置为高速缓存所述颗粒保护信息的至少一个查找高速缓存中执行所述颗粒保护查找。
184.(6)根据条款(5)所述的装置,其中所述至少一个查找高速缓存被配置为存储至少一个组合的转换-颗粒保护条目指定信息,所述至少一个组合的转换-颗粒保护条目指定信息取决于所述颗粒保护信息和所述地址转换电路用于将所述目标虚拟地址映射到所述目标物理地址的至少一个页表条目。
185.(7)根据条款(5)和(6)中任一项所述的装置,其中所述至少一个查找高速缓存响应于指定无效目标物理地址的至少一个查找高速缓存无效命令来使存储信息的查找高速缓存条目无效,所述信息取决于与包括所述无效目标物理地址的物理地址颗粒相关联的颗粒保护信息。
186.(8)根据任一前述条款所述的装置,包括物理别名点(popa)存储器系统部件,所述物理别名点存储器系统部件被配置为对来自不同物理地址空间的对应于相同存储器系统资源的多个别名物理地址进行去别名,将所述多个别名物理地址中的任一个映射到要提供给至少一个下游存储器系统部件的去别名物理地址;以及至少一个前popa存储器系统部件,所述至少一个前popa存储器系统部件提供在所述popa存储器系统部件的上游,其中所述至少一个popa存储器系统部件被配置为将来自不同物理地址空间的所述别名物理地址看作所述别名物理地址对应于不同存储器系统资源。
187.(9)根据条款(8)所述的装置,其中所述别名物理地址在所述不同物理地址空间中使用相同物理地址值来表示。
188.(10)根据条款(8)和(9)中任一项所述的装置,其中所述至少一个前popa存储器系统部件包括至少一个前popa高速缓存;并且所述装置包括处理电路,所述处理电路响应于指定目标地址的高速缓存无效到popa指令而发出至少一个无效命令,以请求所述至少一个前popa高速缓存使与对应于所述目标虚拟地址的目标物理地址值相关联的一个或多个条目无效。
189.(11)根据任一前述条款所述的装置,其中所述地址转换电路和所述请求器侧滤波电路中的至少一者被配置为至少基于发出所述存储器访问请求的所述请求器电路的当前操作域来选择所述选定物理地址空间,所述当前域包括多个操作域中的一个。
190.(12)根据条款(11)所述的装置,其中所述地址转换电路被配置为基于至少一个页表条目将所述目标虚拟地址转换为所述目标物理地址;并且至少当所述当前域是所述多个域的子集中的一个时,所述地址转换电路和所述请求器侧滤波电路中的所述至少一个被配置为基于所述当前域和在所述至少一个页表条目中指定的物理地址空间选择信息来选择所述选定物理地址空间。
191.(13)根据条款(11)和(12)中任一项所述的装置,其中所述多个域至少包括与安全物理地址空间相关联的安全域和与不太安全物理地址空间相关联的不太安全域;当所述当前域是所述不太安全域或所述安全域时,所述不太安全物理地址空间能够选择为所述选定物理地址空间;并且当所述当前域是所述安全域时,所述安全物理地址空间能够选择为所述选定物理地址空间,所述选择的物理地址空间,并且当所述当前域是所述不太安全域时,所述安全物理地址空间被禁止选择为所述选定物理地址空间。
192.(14)根据条款(13)所述的装置,其中所述多个域还包括与另外的物理地址空间相关联的另外的域;当所述当前域是所述另外的域时,所述不太安全物理地址空间能够选择
为所述选定物理地址空间;当所述当前域是所述另外的域时,所述另外的物理地址空间能够选择为所述选定物理地址空间,但当所述当前域是所述安全域或所述不太安全域时,所述另外的物理地址空间被禁止选择为所述选定物理地址空间;并且当所述当前域是所述另外的域时,所述安全地址空间被禁止选择为所述选定物理地址空间。
193.(15)根据条款(11)至(14)中任一项所述的装置,其中所述多个域包括用于管理其他域之间的切换的根域,所述根域与根物理地址空间相关联。
194.(16)根据条款(15)所述的装置,其中以下各项中的至少一项:当所述当前域是所述根域时,所有所述物理地址空间能够选择为所述选定物理地址空间;并且当所述当前域是除了所述根域之外的域时,所述根物理地址空间被禁止选择为所述选定物理地址空间。
195.(17)根据条款(15)和(16)中任一项所述的装置,其中所述颗粒保护信息能够由在所述根域中执行的软件修改。
196.(18)根据任一前述条款所述的装置,其中所述颗粒保护信息以页面级颗粒度定义。
197.(19)根据任一前述条款所述的装置,其中所述颗粒保护信息在运行时是能够动态更新的。
198.(20)根据任一前述条款所述的装置,其中当所述颗粒保护信息指定指示所述至少一个允许的物理地址空间将由完成器侧滤波电路解析的直通指示符时,所述请求器侧滤波电路被配置为独立于检查所述选定物理地址空间是否是所述至少一个允许的物理地址空间中的一个来确定是否将所述存储器访问请求传递到所述互连线。
199.(21)根据任一前述条款所述的装置,包括完成器侧滤波电路,所述完成器侧滤波电路响应于从所述互连线接收的指定目标物理地址和选定物理地址空间的存储器访问请求,基于所述目标物理地址和所述选定物理地址空间来执行完成器侧保护信息的完成器侧保护查找,以确定所述存储器访问请求是否被允许由所述完成器设备服务。
200.(22)一种数据处理方法,包括:将由请求器电路发出的存储器访问请求指定的目标虚拟地址翻译成目标物理地址;以及在请求器侧滤波电路处,基于所述目标物理地址和与所述存储器访问请求相关联的选定物理地址空间来执行颗粒保护查找,以确定是否经由互连线将所述存储器访问请求传递到用于服务所述存储器访问请求的完成器设备,其中所述选定物理地址空间是多个物理地址空间中的一个;其中:在所述颗粒保护查找中,所述请求器侧滤波电路:获得对应于包括所述目标物理地址的物理地址的目标颗粒的颗粒保护信息,所述颗粒保护信息指示与所述目标颗粒相关联的至少一个允许的物理地址空间;并且当所述颗粒保护信息指示所述选定物理地址空间不是所述至少一个允许的物理地址空间中的一个时,阻止所述存储器访问请求。
201.(23)一种计算机程序,所述计算机程序用于控制主机数据处理装置来提供用于执行目标代码的指令执行环境;所述计算机程序包括:地址转换程序逻辑,用于将由存储器访问请求指定的目标模拟虚拟地址转换为目标模拟物理地址;以及滤波程序逻辑,用于基于所述目标模拟物理地址和与所述存储器访问请求相关联的选定模拟物理地址空间来执行颗粒保护查找,以确定所述存储器访问请求是否能够被服务,其中所述选定模拟物理地址空间是多个模拟物理地址空间中的一个;其中:在所述颗粒保护查找中,所述滤波程序逻辑被配置为:获得对应于包括所述目标模拟物理地址的模拟物理地址的目标颗粒的颗粒保护
信息,所述颗粒保护信息指示与所述目标颗粒相关联的至少一个允许的模拟物理地址空间;并且当所述颗粒保护信息指示所述选定模拟物理地址空间不是所述至少一个允许的模拟物理地址空间中的一个时,阻止所述存储器访问请求被服务。
202.(24)一种计算机可读存储介质,所述计算机可读存储介质存储根据条款23所述的计算机程序。
203.在本技术中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
204.虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化和修改。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献