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

命中时读取的前POPA请求的制作方法

2022-02-24 10:44:40 来源:中国专利 TAG:

命中时读取的前popa请求
技术领域
1.本技术涉及数据处理领域。


背景技术:

2.数据处理系统可具有用于发出访问存储器系统的访问请求的请求器电路,以及用于对请求器电路所发出的访问请求作出响应而提供对存储在存储器系统中的数据的访问的一个或多个存储器系统部件。


技术实现要素:

3.至少一些示例提供了一种装置,该装置包括:发出访问存储器系统的访问请求的请求器电路,该访问请求指定目标物理地址和目标物理地址空间标识符,该目标物理地址空间标识符识别从多个物理地址空间之中选择的目标物理地址空间;以及对请求器电路所发出的访问请求作出响应的存储器系统部件,所述存储器系统部件包括:在物理别名点(popa)之前,至少一个前popa存储器系统部件,该至少一个前popa存储器系统部件被配置为将来自不同物理地址空间的实际上对应于相同存储器系统资源的别名物理地址看作是别名物理地址对应于不同存储器系统资源;以及在popa之后,至少一个后popa存储器系统部件,该至少一个后popa存储器系统部件被配置为将别名物理地址看作涉及相同存储器系统资源;其中:响应于请求器电路所发出的指定目标物理地址和目标物理地址空间标识符的命中时读取的前popa请求,所述存储器系统部件中的至少一个存储器系统部件被配置为提供命中时读取的前popa响应动作,包括:当命中时读取的前popa请求在popa之前的至少一个前popa高速缓存中命中时,向请求器电路提供数据响应以返回与目标物理地址和目标物理地址空间标识符相对应的该至少一个前popa高速缓存的命中条目中高速缓存的数据;以及当命中时读取的前popa请求在该至少一个前popa高速缓存中未命中时,向请求器电路提供无数据响应,该无数据响应指示用于目标物理地址的该数据不会响应于命中时读取的前popa读取请求而返回到请求器电路。
4.至少一些示例提供了一种方法,该方法包括:从请求电路发出访问包括存储器系统部件的存储器系统的访问请求,该访问请求指定目标物理地址和目标物理地址空间标识符,该目标物理地址空间标识符识别从多个物理地址空间之中选择的目标物理地址空间;以及使用存储器系统部件对请求器电路所发出的访问请求作出响应,所述存储器系统部件包括:在物理别名点(popa)之前,至少一个前popa存储器系统部件,该至少一个前popa存储器系统部件被配置为将来自不同物理地址空间的实际上对应于相同存储器系统资源的别名物理地址看作是别名物理地址对应于不同存储器系统资源;以及在popa之后,至少一个后popa存储器系统部件,该至少一个后popa存储器系统部件被配置为将别名物理地址看作涉及相同存储器系统资源;其中:响应于请求器电路所发出的指定目标物理地址和目标物理地址空间标识符的命中时读取的前popa请求,所述存储器系统部件中的至少一个存储器系统部件提供命中时读取的前popa响应动作,包括:当命中时读取的前popa请求在popa之
前的至少一个前popa高速缓存中命中时,向请求器电路提供数据响应以返回与目标物理地址和目标物理地址空间标识符相对应的该至少一个前popa高速缓存的命中条目中高速缓存的数据;以及当命中时读取的前popa请求在该至少一个前popa高速缓存中未命中时,向请求器电路提供无数据响应,该无数据响应指示用于目标物理地址的该数据不会响应于命中时读取的前popa请求而返回到请求器电路。
5.至少一些示例提供了一种存储器系统部件,该存储器系统部件包括:从请求器电路接收访问请求的请求器接口,该访问请求指定目标物理地址和目标物理地址空间标识符,该目标物理地址空间标识符识别从多个物理地址空间之中选择的目标物理地址空间;以及检测是否在物理别名点(popa)之前的至少一个前popa高速缓存的查找中检测到命中或未命中的控制电路,其中该至少一个前popa高速缓存被配置为将来自不同物理地址空间的实际上对应于相同存储器系统资源的别名物理地址看作是别名物理地址对应于不同存储器系统资源,并且popa是这样的点,在其之后,至少一个后popa存储器系统部件被配置为将别名物理地址看作涉及相同存储器系统资源;其中:响应于请求器电路所发出的指定目标物理地址和目标物理地址空间标识符的命中时读取的前popa请求,控制电路被配置为提供命中时读取的前popa响应动作,包括:当该至少一个前popa高速缓存的查找检测到命中时,控制请求器接口以向请求器电路提供数据响应,从而返回与目标物理地址和目标物理地址空间标识符相对应的该至少一个前popa高速缓存的命中条目中高速缓存的数据;以及当该至少一个前popa高速缓存的查找检测到未命中时,控制请求器接口以向请求器电路提供无数据响应,该无数据响应指示用于目标物理地址的该数据不会响应于命中时读取的前popa请求而返回到请求器电路。
附图说明
6.本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见,在附图中:
7.图1示出了数据处理装置的示例;
8.图2示出了处理电路可在其中操作的多个域;
9.图3示出了支持颗粒保护查找的处理系统的示例;
10.图4示意性地示出了多个物理地址空间向识别存储器系统中的位置的系统物理地址空间上的别名;
11.图5示出了对有效硬件物理地址空间进行分区以使得不同架构物理地址空间有权访问系统物理地址空间的相应部分的示例;
12.图6是示出确定处理电路的当前操作域的方法的流程图;
13.图7示出了用于将虚拟地址转换为物理地址的页表条目的页表条目格式的示例;
14.图8是示出通过给定存储器访问请求来选择要访问的物理地址空间的方法的流程图;
15.图9示出了用于提供颗粒保护信息的颗粒保护表的条目的示例,该颗粒保护信息指示允许哪些物理地址空间访问给定物理地址;
16.图10是示出执行颗粒保护查找的方法的流程图;
17.图11示出了地址转换和颗粒保护信息滤波的多个阶段;
18.图12和图13示出了对命中时读取的前popa请求的响应;
19.图14是流程图,其示出了请求器发起对目标物理地址空间中的目标物理地址的访问,包括命中时读取的前popa请求的使用;
20.图15示出了前popa存储器系统部件的示例;以及
21.图16是示出使用前popa存储器系统部件对命中时读取的前popa请求作出响应的方法的流程图。
具体实施方式
22.数据处理系统可支持虚拟存储器的使用,其中提供地址转换电路以将存储器访问请求所指定的虚拟地址(va)转换成与要访问的存储器系统中的位置相关联的物理地址(pa)。可在一个或多个页表结构中定义虚拟地址与物理地址之间的映射。页表结构内的页表条目还可定义一些访问权限信息,这些访问权限信息可控制是否允许在处理电路上执行的给定软件过程访问特定虚拟地址。
23.在一些处理系统中,可由地址转换电路将所有虚拟地址映射到单个物理地址空间上,存储器系统使用该单个物理地址空间来识别要访问的存储器中的位置。在这种系统中,仅仅基于用于提供虚拟至物理地址转换映射的页表结构来提供对特定软件过程是否可访问特定地址的控制。然而,通常可由操作系统和/或管理程序来定义此类页表结构。如果操作系统或管理程序受损,则这可引起安全漏洞,在这种情况下,敏感信息可被攻击者访问。
24.因此,对于需要某些过程在与其他过程隔离的情况下安全地执行的一些系统而言,该系统可支持多个不同物理地址空间,其中对于存储器系统的至少一些部件而言,即使相应物理地址空间中的物理地址实际上对应于存储器中的相同位置,也将其虚拟地址被转换成不同物理地址空间中的物理地址的存储器访问请求看作是它们正在访问存储器中的完全单独的地址。通过将从处理电路的不同操作域的访问隔离到一些存储器系统部件所视为的相应不同物理地址空间中,这可提供不依赖于操作系统或管理程序所设定的页表权限信息的更强安全保证。
25.从而,装置可具有用于发出访问存储器系统的访问请求的请求器电路,其中该访问请求指定目标物理地址(目标pa)和目标物理地址空间标识符,该目标物理地址空间标识符识别从两个或更多个不同物理地址空间(pas)之中选择的目标物理地址空间(目标pas)。应当注意,下文使用的符号“pas”(其中s为大写字母)是指“物理地址空间”,而符号“pas”(其中s为小写字母)是指“物理地址”(pa的复数)。
26.可提供存储器系统部件以对请求器电路所发出的访问请求作出响应。存储器系统部件包括:在物理别名点(popa)之前,至少一个前popa存储器系统部件,该至少一个前popa存储器系统部件将来自不同pas的实际上对应于相同存储器系统资源的别名pa看作是别名pa对应于不同存储器系统资源;以及在popa之后,至少一个后popa存储器系统部件,该至少一个后popa存储器系统部件被配置为将别名pa看作涉及相同存储器系统资源。此处,“存储器系统资源”可指存储器中的可寻址位置、映射到pas中的某个存储器地址的设备或外围设备、存储器系统部件内的存储器映射寄存器或通过发出指定映射到该资源的物理地址的存储器访问请求来访问的任何其他资源。
27.通过将来自不同pas的实际上对应于相同存储器系统资源的别名pa看作是它们对
应于不同存储器系统资源(在popa之前的存储器系统部件中),则这可提供如上所提及的更强安全保证。例如,当前popa存储器系统部件包括前popa高速缓存时,指定给定pa和第一pas的请求可不命中高速缓存与第二pas的相同给定pa相关联的数据的条目,以使得即使页表不防止使用第一pas操作的软件过程访问给定pa,也可防止第二pas的数据返回到此类使用第一pas操作的软件过程。
28.可建立协议,该协议定义可由请求器电路(或由上游存储器系统部件向下游存储器系统部件)发出的访问请求的格式以控制对存储器的访问,并且定义存储器系统部件响应于访问请求而采取的对应响应。例如,该协议可定义各种类型从存储器系统读取数据的读取请求和写入存储在存储器系统中的数据的写入请求。
29.在下文进一步讨论的示例中,请求器电路支持发出指定目标pa和目标pas标识符的命中时读取的前popa请求。响应于命中时读取的前popa请求,所述存储器系统部件中的至少一个存储器系统部件提供命中时读取的前popa响应动作,该命中时读取的前popa响应动作包括:当命中时读取的前popa请求在popa之前的至少一个前popa高速缓存中命中时,向请求器电路提供数据响应以返回与目标物理地址和目标pas标识符相对应的该至少一个前popa高速缓存的命中条目中高速缓存的数据;以及当命中时读取的前popa请求在该至少一个前popa高速缓存中未命中时,向请求器电路提供无数据响应,该无数据响应指示用于目标物理地址的该数据不会响应于命中时读取的前popa读取请求而返回到请求器电路。
30.从而,命中时读取的前popa请求允许请求器电路作出条件请求以便在该请求在popa之前的高速缓存中命中的情况下从存储器系统返回数据,但该请求在任何前popa高速缓存中未命中的情况下不返回数据。这种命中时读取的前popa请求可用于提高性能,因为其能够在已完成用于确定是否允许在给定pas内访问给定物理地址的任何检查之前被推测性地发出。已经在给定目标pa和目标pas标识符的该至少一个前popa高速缓存中高速缓存的数据可被假定已经通过此类检查,因此可在此类检查完成之前被安全地访问,但如果命中时读取的前popa请求在任何前popa高速缓存中未命中,则无法保证允许在目标pas内访问目标pa并因此可返回无数据响应。相比之下,利用常规读取请求时,数据将返回到请求器,而不考虑其在前popa高速缓存中是命中还是未命中,这是由于如果该请求在前popa高速缓存中未命中,则通常预期会发起行填充操作以请求将数据从存储器带到前popa高速缓存中并且返回到请求器。然而,通过定义请求在该至少一个前popa高速缓存中未命中时返回无数据响应的请求类型,则这允许在推测目标物理地址和目标pas的任何安全检查的结果成功的同时发出请求,以允许提高性能。
31.在推测安全检查成功的同时发出命中时读取的前popa请求可为命中时读取的前popa请求的一个用例。然而,一旦命中时读取的前popa包括在存储器接口协议中以提供给请求器电路,系统设计者就可找到该请求可能有用的其他用例。该协议可不限制要使用命中时读取的前popa请求的具体场景。从而,有可能命中时读取的前popa请求可用于其他场景,而不仅仅是等待安全检查完成以检查是否可在目标pas内访问目标pa的情形。
32.当命中时读取的前popa请求在该至少一个前popa高速缓存中未命中时,可防止基于响应于命中时读取的前popa读取请求而向至少一个后popa存储器系统部件发出的行填充请求来将用于目标物理地址的数据分配在该至少一个前popa高速缓存中。从而,如果命中时读取的前popa请求在该至少一个前popa高速缓存中命中(因此所需的数据已经在popa
前高速缓存),则允许该请求返回数据,而如果发生未命中,则不允许将数据从popa之后的存储器系统部件带到前popa高速缓存中。同样,对于除命中时读取的前popa请求之外的访问请求类型,可禁止前popa存储器系统部件基于对后popa存储器系统部件的行填充请求来将数据分配到前popa高速缓存中,直到已成功完成用于检查是否可在目标pas内安全地访问目标物理地址的安全检查。利用该方法,可确保命中时读取的前popa请求可安全地访问前popa高速缓存的命中条目中的数据,即使已在完成安全检查之前发出该请求,因为前popa高速缓存中的数据的存在可以是目标pa和目标pas的先前安全检查成功的指示。
33.可存在不同选项以实现防止在命中时读取的前popa请求未命中时将用于目标物理地址的数据分配到前popa高速缓存中的功能。在一个示例中,前popa存储器系统部件处理命中时读取的前popa请求可简单地防止在该至少一个前popa高速缓存中发生未命中时响应于命中时读取的前popa读取请求而向后popa存储器系统部件发出行填充请求。另选地,一些具体实施可提供与前popa存储器系统部件相关联的缓冲器,该缓冲器可缓冲在未命中时对响应于命中时读取的前popa请求而发出的行填充请求作出响应来返回的数据。后续请求可能无法访问该缓冲器,直到已接收到已成功完成目标物理地址和目标pas标识符的安全检查的确认。从而,存在确保在命中时读取的前popa请求在前popa高速缓存中未命中时不将用于目标物理地址的数据分配到前popa高速缓存中的多个微架构选项。利用该缓冲器选项时,这可允许已完成安全检查之后的后续请求比仅可在该时间点发出行填充请求的情形更快速地执行,但缓冲器方法实现起来可能更复杂。这两种选项均是可能的。
34.在一些示例中,可存在物理别名点之前的前popa高速缓存的两个或更多个级别。在这种情况下,如果前popa高速缓存的两个或更多个级别中的任何级别包括对应于目标pa和目标pas标识符的有效条目,则可认为命中时读取的前popa请求在前popa高速缓存中命中。相比之下,如果前popa高速缓存的两个或更多个级别中的任何级别都不包括对应于目标pa和目标pas标识符的有效条目,则可检测到未命中。应当注意,在命中时读取的前popa请求在前popa高速缓存级别之一中命中的情况下,则有可能存在数据在前popa高速缓存的相应级别之间的一些转移,因为比该层级更低的前popa高速缓存(例如,级别2或3)中的命中可引起该数据升级到比该层级更高的前popa高速缓存(例如,级别1或2)中,请求器电路可更快地访问该前popa高速缓存,并且目标pa的数据的该升级还可触发其他地址使其数据降级到比该层级更低的高速缓存。从而,虽然不允许命中时读取的前popa请求引起数据从popa之后的位置升级到前popa高速缓存,但这并不排除数据在前popa高速缓存的各种级别之间的移动。
35.在一些具体实施中,在未命中场景中对命中时读取的前popa请求的唯一响应动作可以是返回无数据响应。
36.然而,对于一些示例而言,除了返回无数据响应之外,当命中时读取的前popa请求在该至少一个前popa高速缓存中未命中时,命中时读取的前popa响应动作还可包括对一个或多个后popa存储器系统部件中的至少一个后popa存储器系统部件发出请求以执行至少一个准备操作以便准备对指定目标pa的稍后访问请求的处理。这认识到,在命中时读取的前popa请求在该至少一个前popa高速缓存中未命中的情况下,则尽管还不能安全地返回用于目标pa的对应数据,但是相对较可能的是一旦已完成任何安全检查,就将对相同目标pa作出后续请求(这是由于预期成功安全检查比不成功安全检查更为常见)。因此,通过在该
请求在一个或多个前popa高速缓存中未命中的情况下响应于命中时读取的前popa请求而执行准备操作,这可加快对指定目标pa的稍后访问请求的处理,因为从后popa存储器系统部件访问与目标pa相关联的数据所需的操作的一部分可能已在处理命中时读取的前popa请求的时候执行。
37.准备操作可包括任何这样的操作,可预测该操作会引起指定相同目标pa的后续访问请求的处理速度快于尚未执行准备操作的情形。
38.例如,在一些具体实施中,该至少一个准备操作可包括将与目标pa相关联的数据预取到后popa高速缓存中。与即使来自不同pas的别名pa实际上对应于相同存储器系统资源也将这些别名pa看作是它们涉及不同存储器系统源的前popa高速缓存不同,后popa高速缓存将别名pa看作涉及相同存储器系统资源。由于除非完成相关安全检查,否则不会将数据从后popa高速缓存带到前popa高速缓存中,并且后popa可按相同方式高速缓存给定pa的数据,而不考虑可从哪个pas访问给定pa,则在该请求在前popa高速缓存中未命中的情况下可响应于命中时读取的前popa请求而安全地将数据预取到后popa高速缓存中。通过执行预取操作,这意味着当向相同目标pa发出后续读取请求时,从后popa高速缓存返回数据的速度可快于必须从主存储器获得数据的速度。这有助于提高性能。
39.准备操作的另一个示例可以是执行预充电或激活操作以准备待访问的与目标pa相关联的存储器位置。一些形式的存储器技术诸如动态随机存取存储器(dram)在可读取一行存储器位置之前需要先预充电或激活该行存储器位置,并且该预充电或激活操作需要一定量的时间来执行。通过在前popa高速缓存中未命中的情况下作为命中时读取的前popa请求的响应而推测性地执行预充电或激活操作,这意味着当后续访问请求尝试访问相同目标pa时,不太可能的是需要再次执行预充电或激活操作,因此与目标pa相关联的存储器位置的访问速度可快于尚未执行预充电或激活操作的情形。
40.准备操作的这两个示例(预取或执行预充电或激活操作)可在相同系统内实现,以使得在命中时读取的前popa请求在前popa高速缓存中未命中时发起预取请求和预充电或激活操作两者。另选地,一些系统可不支持这两个操作。例如,不具有任何后popa高速缓存的系统可仅执行预充电或激活操作作为准备操作。应当理解,还可执行其他类型的准备操作。
41.另外,准备操作可能不必要,并且一些具体实施可选择在命中时读取的前popa请求未命中的情况下不发起任何准备操作。
42.可提供保护检查电路以执行保护检查,从而基于与目标pa相对应的保护信息的查找来确定是否允许在目标pas内访问给定访问请求的目标pa。保护信息可指示允许从其访问目标pa的至少一个允许的pas。可存在指示哪个pas是允许的pas的多种方式。例如,一些具体实施可支持仅识别允许从其访问目标pa的单个pas的保护信息,而其他方法可支持多个pas映射到相同目标pa,以使得可允许从这些多个pas中的任何一个pas访问目标pa。保护信息的特定格式可以有相当大的变化,但一般来讲,保护信息可以是用于确定是否允许指定所选择的pas中的pa的存储器访问请求访问对应数据的任何信息。
43.保护检查电路可以是请求器侧检查电路,提供该请求器侧检查电路以在向高速缓存或其他存储器系统部件发出对应请求之前执行保护检查(至少对于一些类型的请求-如上所提及,命中时读取的前popa请求可以是异常,因为其不需要等待保护检查完成)。
44.在一些示例中,用于保护检查的保护信息可从存储在存储器中的保护表导出。与保护信息存储在保护检查电路本地的寄存器内的具体实施相比,这可允许对每个pas中可访问物理地址范围的哪些部分的更细粒度的控制。然而,当保护信息可存储在存储器系统内时,则这可意味着当需要对目标pa执行保护检查时,则保护检查电路可向存储器系统部件发出一个或多个保护表漫游访问请求以执行保护表漫游,从而从由目标pa编索引的保护表获得保护信息。
45.例如,保护表可以是多级保护表,其中从保护表的一个级别导出的信息可用于识别保护表的后续级别的位置。这种多级表可有助于允许保护表使用存储器的多个更小不连续部分来表示,从而避免为与要保护的地址范围成比例的大小的表分配地址空间的单个连续块的需要,如果使用单个线性访问的表,则有此需要。尤其是在多级情况下,此类保护表漫游可相对较慢,这是由于它们可需要对存储器的连续访问链,其中该链中的稍后访问取决于从先前访问返回的值。然而,即使采用单级表,为获得保护信息而对存储器的访问仍会在建立存储器访问的目标pa之后引发一些额外延迟。
46.尽管有可能提供保护信息高速缓存以使得保护检查电路在本地访问近期从保护表访问的信息的速度可快于访问存储器的速度,但是如果目标pa的保护信息在这种保护信息高速缓存中还不可用(要么由于根本未提供这种保护信息高速缓存,要么由于对目标pa的保护信息高速缓存的请求未命中),则可需要一个或多个保护表漫游访问请求。如果提供保护信息高速缓存,则这可以是专门存储来自保护表的保护信息的专用高速缓存结构,或可以是可与其他类型的数据共享的共享高速缓存结构,诸如对保护信息和用于将va转换为pa的地址转换信息两者进行高速缓存的组合的转换后备缓冲器(tlb)/保护信息高速缓存。
47.从而,保护检查可以是相对较慢的操作,因为它们可依赖于从存储器对保护信息的获取。如果直到在保护检查完成之后才可向存储器系统安全地发出读取请求,则这可引发在存储器访问的pa在任何地址转换之后变得可用与发出向存储器系统部件发送的实际读取请求之间访问存储器的额外延迟。
48.上述命中时读取的前popa请求可解决该问题,因为请求器电路可在完成目标pa和目标pas的保护检查之前发出命中时读取的前popa请求。
49.对保护检查确定在响应于命中时读取的前popa请求而接收到无数据响应时允许在目标pas内访问目标物理地址作出响应,则请求器电路可发出指定与先前命中时读取的前popa请求相同的目标pa和目标pas的读取请求。响应于读取请求,所述存储器系统部件中的至少一个存储器系统部件可提供数据响应以将与目标pa相关联的数据返回到请求器电路(即使当读取请求在该至少一个前popa高速缓存中未命中时)。响应于该读取请求,当已经成功执行保护检查时,则允许存储器系统部件引起与目标pa相关联的数据基于向该至少一个后popa存储器系统部件中的至少一者发出的行填充请求来分配到该至少一个前popa高速缓存中。
50.在成功保护检查之后发出的上述读取请求可以是在保护检查确定不允许在目标pas内访问目标物理地址时禁止请求器电路发出的一种类型的读取请求。可不允许请求器电路发出这种类型的读取请求,直到已完成保护检查以确定允许在目标pas内访问目标pa。
51.当保护检查确定不允许在目标pas内访问目标物理地址时,保护电路可发信号通知故障。该故障可触发执行异常处理程序,其中异常处理程序可确定(在软件中)如何处理
该故障。
52.如所描述的,即使别名pa地址实际上对应于相同存储器系统资源,该至少一个前popa高速缓存也可将别名pa地址看作是它们对应于不同存储器系统资源。在一个示例中,这可通过用对应pas标识符标记该至少前popa高速缓存中的每个高速缓存条目来实现。当查找前popa高速缓存中指定目标pa和目标pas的访问请求时,可将从目标pa导出的目标pa地址标签与存储在一个或多个查找的高速缓存条目中的地址标签进行比较,并且可将访问请求的目标pas与存储在该一个或多个查找的高速缓存条目中的pas标签进行比较。当查找的高速缓存条目中的有效条目具有对应于目标pa地址标签和目标pas标识符的存储的地址标签和存储的pas标签两者时,可检测到高速缓存命中。当该至少一个前popa高速缓存的任何有效条目都不对应于访问请求的目标pa和目标pas标识符两者时,即使存在对应于目标pa但对应于与目标pas标识符不同的pas标识符的该至少一个前popa高速缓存的有效条目,也可检测到高速缓存未命中(即,存储的地址标签对应于目标pa地址标签但存储的pas标签不对应于目标pa地址标签的条目将返回高速缓存未命中)。从而,有可能在给定的时刻给定的前popa可保持对应于相同pa但不同pas的单独有效高速缓存条目。该方法确保不会响应于指定不同pas的请求而返回来自一个pas的数据。这可用于隔离不同软件过程所使用的数据以确保与一个软件过程相关联的敏感数据不会被不允许访问该数据的另一个软件过程访问,同时不依赖于操作系统或管理程序所设定的页表访问权限来实施该分离。在大多数用例中,可仅将用于敏感数据的pa分配到单个pas。在一些具体实施中,可支持来自不同pas的数据的一些有限共享,其中给定物理地址可映射到两个或更多个不同pas,并且在该情况下,有可能前popa高速缓存可同时高速缓存对应于相同目标物理地址但具有不同pas标识符的多个条目。
53.该装置可包括地址转换电路,其通过基于对应于目标虚拟地址(va)的地址转换信息来转换目标va,从而获得给定访问请求的目标物理地址。这可以是直接从目标va到目标pa的单阶段地址转换,或可以是基于将目标va映射到目标中间地址的第一转换信息和将目标中间地址映射到目标pa的第二地址转换信息的两阶段地址转换。地址转换电路还可基于地址转换信息中设定的权限来执行访问权限检查。上述保护检查可以是作为地址转换电路所执行的访问权限检查的补充而提供的附加检查层。
54.该装置可具有pas选择电路,其基于以下项的至少一者来选择与目标pa相对应的目标pas标识符:请求器电路的当前操作域,以及与目标虚拟地址相对应的地址转换信息中指定的信息。pas选择电路在一些情况下可以是地址转换电路自身,或可以是先前描述的基于目标物理地址的保护信息来执行保护检查的保护检查电路,或可以是选择哪个pas为目标pas的完全单独的电路片段。在一些具体实施中,对于请求器电路而言,可支持多个操作域,该请求器电路可支持在不同域中执行不同软件过程。目标pas的选择可取决于当前域,以使得某些域可仅限于访问从pas的有限子集中选择的pas。在一些域(例如,稍后描述的根域)中,所选择的pas可以是所述pas中的任何pas。在一些情况下,可允许至少一个操作域将两个或更多个不同pas标识符选择为目标pas标识符,并且在这种情况下,目标pas标识符的选择可取决于地址转换信息中定义的对应于目标虚拟地址的信息。该方法提供这样的架构,其可在相同硬件平台上执行的不同过程需要一些安全保证的情况下提供支持不同软件用例的灵活性。
55.上文提及的请求器电路可以是数据处理系统中可充当为请求访问存储器系统资源而发出的访问请求的源的任何部件。例如,请求器电路可以是能够执行程序指令的处理器内核,诸如中央处理单元(cpu)或图形处理单元(gpu),或可以是数据处理系统中的另一种类型的主设备,其可能不一定能够执行程序指令,但可充当对存储器的请求的源(例如,显示控制器、网络控制器或直接存储器存取(dma)单元)。另外,在一些情况下,内部存储器系统部件可能能够发起(或转发)请求。例如,互连件或高速缓存控制器可能能够生成访问请求,并且有时可充当给定存储器访问的请求器电路。从而,可由任何此类示例性请求器电路发出命中时读取的前popa请求。在一个示例中,如果popa之前的级别1高速缓存从处理器内核接收到命中时读取的前popa请求,并且检测到未命中,则可将向也在popa之前的级别2高速缓存发出的行填充请求自身指定为命中时读取的前popa请求以确保如果该请求在级别2高速缓存中未命中,则级别2高速缓存不会从后popa存储器系统部件拉入数据。
56.可提供存储器系统部件,该存储器系统部件包括从请求器电路接收访问请求的请求器接口,以及检测在物理别名点之前的至少一个前popa高速缓存的查找中对于访问请求而言是否检测到命中或未命中的控制电路。当访问请求是如上所讨论的命中时读取的前popa请求时,控制电路可提供命中时读取的前popa响应动作(在该请求在前popa高速缓存中命中时具有数据响应并且在未命中时具有无数据响应,如先前所解释)。这种存储器系统部件可用于包括在处理系统内的popa之前的某点处,以便为处理如先前所述的命中时读取的前popa请求提供支持。
57.具体实施方式
58.图1示意性地示出了具有至少一个请求器设备4和至少一个完成器设备6的数据处理系统2的示例。互连件8提供请求器设备4与完成器设备6之间的通信。请求器设备能够发出请求对特定可寻址存储器系统位置的存储器访问的存储器访问请求。完成器设备6是负责为指向其的存储器访问请求提供服务的设备。尽管图1中未示出,但是一些设备可能能够既充当请求器设备又充当完成器设备。请求器设备4可例如包括处理元件诸如中央处理单元(cpu)或图形处理单元(gpu),或其他主设备诸如总线主设备、网络接口控制器、显示控制器等。完成器设备可包括负责控制对对应存储器存储单元的访问的存储器控制器、用于控制对外围设备的访问的外围控制器等。图1更详细地示出了请求器设备4之一的示例性配置,但应当理解,其他请求器设备4可具有类似配置。另选地,其他请求器设备可具有与图1左侧所示的请求器设备4不同的配置。在该示例中,完成器设备6之一是控制对存储器9的访问的存储器控制器。在该示例中,完成器设备6具有存储器控制器高速缓存7,该存储器控制器高速缓存可用于高速缓存从存储器9读取的一些数据,以使得从互连件8发出的请求在它们在存储器控制器高速缓存7中命中的情况下的处理速度可快于它们未命中并且需要对存储器9的访问的情况。
59.请求器设备4具有用于参考存储在寄存器12中的数据来响应于指令而执行数据处理的处理电路10。寄存器12可包括用于存储操作数和经处理的指令的结果的通用寄存器,以及用于存储控制数据以便配置处理电路如何执行处理的控制寄存器。例如,控制数据可包括用于选择哪个操作域是当前域的当前域指示14,以及指示哪个异常级别是处理电路10正在操作的当前异常级别的当前异常级别指示15。
60.处理电路10可能能够发出存储器访问请求,所述存储器访问请求指定识别要访问
的可寻址位置的虚拟地址(va)和识别当前域的域标识符(域id或“安全状态”)。地址转换电路16(例如,存储器管理单元(mmu))通过基于存储在存储器系统中的页表结构中定义的页表数据的地址转换的一个或多个阶段来将虚拟地址转换成物理地址(pa)。转换后备缓冲器(tlb)18充当查找高速缓存以便高速缓存该页表信息中的一些信息,从而比每次需要地址转换时必须从存储器获取页表信息的情形更快地访问。在该示例中,除了生成物理地址之外,地址转换电路16还选择与物理地址相关联的多个物理地址空间之一并且输出识别所选择的物理地址空间的物理地址空间(pas)标识符。下文将更详细地讨论pas的选择。
61.pas滤波器20充当请求器侧滤波电路以便基于转换的物理地址和pas标识符来检查是否允许在pas标识符所识别的指定的物理地址空间内访问该物理地址。该查找基于存储器系统内存储的颗粒保护表结构中存储的颗粒保护信息。与页表数据在tlb 18中的高速缓存类似,颗粒保护信息可高速缓存在颗粒保护信息高速缓存22内。虽然颗粒保护信息高速缓存22在图1的示例中被示出为与tlb 18分开的结构,但在其他示例中,可将这些类型的查找高速缓存组合成单个查找高速缓存结构以使得组合的结构的条目的单次查找提供页表信息和颗粒保护信息两者。颗粒保护信息定义限制可从其访问给定物理地址的物理地址空间的信息,并且基于该查找,pas滤波器20确定是否允许存储器访问请求继续发出到一个或多个高速缓存24和/或互连件8。如果不允许存储器访问请求的指定的pas访问指定的物理地址,则pas滤波器20阻断该事务并且可发信号通知故障。
62.虽然图1示出了包括具有多个请求器设备4的系统的示例,但为图1的左手侧上的一个请求器设备示出的特征也可包括在仅存在一个请求器设备(诸如单核处理器)的系统中。
63.虽然图1示出了请求器4内提供的地址转换电路16和pas滤波器20的示例,但其他类型的请求器可使用单独系统存储器管理单元(smmu)所提供的地址转换功能,该smmu是与请求器4自身分开的部件。在这种情况下,smmu可耦接到互连件并且可充当先前提及的地址转换电路和保护检查电路,这类似于图1所示的地址转换电路16和pas滤波器20。
64.虽然图1示出了由地址转换电路16执行给定请求对pas的选择的示例,但在其他示例中,可由地址转换电路16将用于确定要选择哪个pas的信息连同pa一起输出到pas滤波器20,并且pas滤波器20可选择pas并检查是否允许在所选择的pas内访问pa。
65.pas滤波器20的提供有助于支持可在多个操作域中操作的系统,每个操作域与其自身隔离的物理地址空间相关联,其中对于存储器系统的至少一部分而言(例如,对于一些高速缓存或一致性实施机构诸如探听滤波器而言),即使这些地址空间内的地址实际上涉及存储器系统中的相同物理位置,也将单独物理地址空间看作是它们涉及识别单独存储器系统位置的完全单独的地址集合。这对于安全目的可能是有用的。
66.图2示出了处理电路10可操作的不同操作状态和域的示例,以及可在不同异常级别和域中执行的软件的类型的示例(当然,应当理解,安装在系统上的特定软件由管理该系统的各方选择,因此不是硬件架构的基本特征)。
67.处理电路10可在多个不同异常级别80(在该示例中,被标记为el0、el1、el2和el3的四个异常级别)处操作,其中在该示例中,el3是指具有最高权限级别的异常级别,而el0是指具有最低权限的异常级别。应当理解,其他架构可选择相反编号以使得具有最高编号的异常级别可被视为具有最低权限。在该示例中,最低权限的异常级别el0用于应用程序级
代码,次高权限的异常级别el1用于操作系统级代码,次高权限的异常级别el2用于管理多个虚拟化操作系统之间的切换的管理程序级代码,而最高权限的异常级别el3用于管理相应域之间的切换和物理地址向物理地址空间的分配的监控代码,如稍后描述。
68.当在处理软件处于特定异常级别时发生异常的时候,对于一些类型的异常而言,产生至更高(更高权限)的异常级别的异常,其中基于发生的特定异常的属性来选择将产生该异常的特定异常级别。然而,在一些情况下,有可能在与和在产生异常时处理的代码相关联的异常级别相同的异常级别处产生其他类型的异常。当产生异常时,可保存表征在产生该异常时的处理器的状态的信息,包括例如产生该异常时的当前异常级别,因此一旦已处理异常处理程序以处理该异常,处理可就返回到前一处理并且保存的信息可用于识别处理应返回到的异常级别。
69.除了不同异常级别之外,处理电路还支持多个操作域,包括根域82、安全(s)域84、较不安全域86和领域域88。为了便于参考,较不安全域在下文中将被描述为“非安全”(ns)域,但应当理解,这并非旨在暗示安全的任何特定级别(或缺乏安全)。相反,“非安全”仅仅指示非安全域旨在用于不如在安全域中操作的代码那样安全的代码。在处理电路10处于最高异常级别el3时选择根域82。当处理电路处于其他异常级别el0至el2之一时,基于当前域指示符14来选择当前域,该当前域指示符指示其他域84、86、88中的哪个域是活动的。对于其他域84、86、88中的每个域而言,处理电路可处于异常级别el0、el1或el2中的任何异常级别。
70.在引导时间,可例如在更高权限的异常级别el3或el2内执行引导代码(例如,bl1、bl2、oem引导)的多个片段。引导代码bl1、bl2可与例如根域相关联,并且oem引导代码可在安全域中操作。然而,一旦引导该系统,在运行时,处理电路10就可被视为一次在域82、84、86和88之一中操作。域82至88中的每个域与其自身的相关联的物理地址空间(pas)相关联,这实现了将来自不同域的数据隔离在存储器系统的至少一部分内。这将在下文更详细地描述。
71.非安全域86可用于常规应用程序级处理,并且可用于操作系统和管理程序活动以便管理此类应用程序。从而,在非安全域86内,可存在在el0处操作的应用程序代码30、在el1处操作的操作系统(os)代码32以及在el2处操作的管理程序代码34。
72.安全域84使某些片上系统安全性、介质或系统服务能够隔离到与用于非安全处理的物理地址空间分开的物理地址空间中。非安全域代码无法访问与安全域84相关联的资源,而安全域可访问安全资源和非安全资源两者,从这个意义上讲,安全域和非安全域不等同。支持安全域84和非安全域86的这种分区的系统的示例是基于安谋公司(limited)提供的架构的系统。安全域可运行el0处的可信应用程序36、el1处的可信操作系统38以及任选地el2处的安全分区管理器40,如果支持安全分区,则该安全分区管理器使用阶段2页表来支持在安全域84中执行的不同可信操作系统38之间的隔离,其采用的方式类似于管理程序34可管理在非安全域86中执行的虚拟机或客操作系统32之间的隔离的方式。
73.将该系统扩展到支持安全域84在近年来已变得很普遍,因为其使单个硬件处理器能够支持隔离的安全处理,从而避免了在单独硬件处理器上执行该处理的需要。然而,随着
安全域的使用的日益普及,许多具有这种安全域的实际系统现已在安全域内支持各种各样的不同软件提供商所提供的相对复杂的混合服务环境。例如,在安全域84中操作的代码可包括由以下(除了别的之外)提供的软件的不同片段:制造集成电路的硅片提供商、将硅片提供商所提供的集成电路组装成电子设备诸如移动电话的原始设备制造商(oem)、为该设备提供操作系统32的操作系统供应商(osv);和/或管理云服务器的云平台提供商,该云服务器通过云来支持用于多个不同客户端的服务。
74.然而,越来越期望为提供用户级代码(通常可能预期该用户级代码作为非安全域86内的应用程序30来执行)的各方提供安全计算环境,可信任所述安全计算环境不会将信息泄露给在相同物理平台上操作代码的其他方。可能期望此类安全计算环境可在运行时动态地分配,并且被认证和可证明,以使得用户能够在信任该设备处理潜在敏感的代码或数据之前验证是否在物理平台上提供足够的安全保证。这种软件的用户可能不希望信任提供可能通常在非安全域86中操作的富操作系统32或管理程序34的一方(或即使可信任这些提供商自身,用户也可能希望保护他们自身免于操作系统32或管理程序34受到攻击者的损害)。另外,虽然安全域84可用于需要安全处理的此类用户提供的应用程序,但实际上这会给提供需要安全计算环境的代码的用户和在安全域84内操作的现有代码的提供商带来问题。对于在安全域84内操作的现有代码的提供商而言,在安全域内添加任意的用户提供的代码将增加对其代码的潜在攻击的攻击面,这可能是不期望的,因此可能强烈建议不要允许用户将代码添加到安全域84中。另一方面,提供需要安全计算环境的代码的用户可能不愿意信任在安全域84中操作的代码的不同片段的所有提供商都有权访问其数据或代码,如果需要在特定域中操作的代码的认证或证明作为用户提供的代码执行其处理的先决条件,则可能难以审核和认证不同软件提供商所提供的在安全域84中操作的代码的所有不同片段,这可限制第三方提供更安全的服务的机会。
75.因此,如图2所示,提供了附加域88(称为领域域),该附加域可由此类用户引入的代码使用以提供与和在安全域24中操作的部件相关联的任何安全计算环境正交的安全计算环境。在领域域中,所执行的软件可包括多个领域,其中可由在异常级别el2处操作的领域管理模块(rmm)46将每个领域与其他领域隔离。rmm 46可例如通过定义页表结构中的访问权限和地址映射来控制执行领域域88的相应领域42、44之间的隔离,其采用的方式类似于管理程序34管理在非安全域86中操作的不同部件之间的隔离的方式。在该示例中,所述领域包括在el0处执行的应用程序级领域42以及跨异常级别el0和el1执行的封装应用程序/操作系统领域44。应当理解,没有必要同时支持el0和el0/el1类型的领域,并且可由rmm 46建立相同类型的多个领域。
76.与安全域84类似,领域域88具有向其分配的其自身物理地址空间,但领域域88和安全域84可各自访问与非安全域86相关联的非安全pas,而领域域88和安全域84无法访问彼此的物理地址空间,从这个意义上讲,领域域正交于安全域84。这意味着在领域域88和安全域84中执行的代码彼此没有依赖性。领域域中的代码仅需要信任硬件rmm 46和在根域82中操作的管理域之间的切换的代码,这意味着证明和认证变得更可行。证明使软件的给定片段能够请求验证安装在设备上的代码匹配某些预期特性。这可通过以下方式实现:检查安装在设备上的程序代码的散列是否匹配可信方使用密码协议签署的预期值。可例如通过以下方式证明rmm 46和监控代码29:检查该软件的散列是否匹配可信方签署的预期值,该
可信方诸如为制造包括处理系统2的集成电路的硅片提供商或设计支持基于域的存储器访问控制的处理器架构的架构提供商。这可允许用户提供的代码42、44在执行任何安全或敏感功能之前验证是否可信任基于域的架构的完整性。
77.从而,可以看出,与领域42、44相关联的代码(该代码先前已在非安全域86中执行,如虚线所示,这些虚线示出了这些过程先前已执行的非安全域中的间隙)现在可移动到领域域,在该领域域中,它们可具有更强的安全保证,因为它们的数据和代码不会被在非安全域86中操作的其他代码访问。然而,由于领域域88和安全域84正交并因此无法看到彼此的物理地址空间的事实,这意味着领域域中的代码的提供商不需要信任安全域中的代码的提供商,反之亦然。领域域中的代码可简单地信任为根域82提供监控代码29的可信固件以及可由硅片提供商或处理器所支持的指令集架构的提供商(在代码在其设备上执行时,该提供商可能已经内在地需要被信任)提供的rmm 46,以使得不需要与其他操作系统供应商、oem或云主机的进一步信任关系,就能够为用户提供安全计算环境。
78.这可用于一系列应用程序和用例,包括例如移动钱包和支付应用程序、游戏防作弊和盗版机制、操作系统平台安全增强、安全虚拟机托管、机密计算、联网或物联网设备的网关处理。应当理解,用户可找到领域支持有用的许多其他应用程序。
79.为了支持向领域提供的安全保证,处理系统可支持证明报告功能,其中在引导时间或在运行时间,对固件图像和配置(例如,监控代码图像和配置或rmm代码图像和配置)进行测量,并且在运行时,测量领域内容和配置,以使得领域所有者可将相关证明报告回溯到已知实现和认证,从而对是否在该系统上操作作出信任决策。
80.如图2所示,提供了管理域切换的单独根域82,并且该根域具有其自身的隔离的根物理地址空间。即使对于仅具有非安全域86和安全域84但没有领域域88的系统,根域的创建和其资源与安全域的隔离也允许更稳健的实现,但还可用于不支持领域域88的实现。根域82可使用由硅片提供商或架构设计者提供(或认证)的监控软件29来实现,并且可用于提供安全引导功能、可信引导测量、片上系统配置、调试控制和其他方(诸如oem)所提供的固件部件的固件更新的管理。可由硅片提供商或架构设计者在不依赖于最终设备的情况下开发、认证和部署根域代码。相比之下,可由oem管理安全域84以便实现某些平台和安全服务。可由操作系统32控制非安全域86的管理以提供操作系统服务,而领域域88允许开发新形式的可信执行环境,这些可信执行环境可专用于用户或第三方应用程序,同时与安全域84中的现有安全软件环境相互隔离。
81.图3示意性地示出了用于支持这些技术的处理系统2的另一个示例。用相同附图标记示出与图1中相同的元件。图3更详细地示出了地址转换电路16,该地址转换电路包括阶段1存储器管理单元50和阶段2存储器管理单元52。阶段1 mmu 50可负责将虚拟地址转换为物理地址(当该转换由el2或el3代码触发时)或转换为中间地址(当该转换由el0或el1代码在一定操作状态下触发时,在该操作状态下,需要由阶段2 mmu 52进行进一步阶段2转换)。阶段2 mmu可将中间地址转换成物理地址。阶段1 mmu可基于由操作系统控制的用于从el0或el1发起的转换的页表、由管理程序控制的用于来自el2的转换的页表或由监控代码29控制的用于来自el3的转换的页表。另一方面,阶段2 mmu 52可基于由管理程序34、rmm 46或安全分区管理器14定义的页表结构,具体取决于要使用哪个域。以这种方式将这些转换分成两个阶段允许操作系统管理其自身和应用程序的地址转换(假设它们是在该系统上运行
tag解决的加密上下文)对物理dram进行访问。另选地,其可位于高速缓存上方以便以安全性降低的代价简化系统实现。
92.在任何时间点,世界均可请求将页从一个pas转换到另一个pas。对el3处的监控代码29作出请求,该监控代码检查gpi的当前状态。el3可仅允许发生特定组的转换(例如,从非安全pas到安全pas,但不从领域pas到安全pas)。为了提供干净转变,该系统支持新指令
‑“
数据清理和无效至物理别名点”,el3可在将页转变到新pas之前提交该指令-这保证与前一pas相关联的任何残余状态从popa 60上游(比popa 60更靠近请求器侧)的任何高速缓存刷新。
93.可通过将gmpu20附接到主侧来实现的另一种特性是存储器在世界之间的高效共享。可能期望为n个世界的子集授予共享访问物理颗粒的权限,同时防止其他世界访问该物理颗粒。这可通过以下方式实现:将“限制性共享”语义添加到颗粒保护信息,同时迫使其使用特定pas tag。作为一个示例,gpi可指示物理颗粒可仅由“领域世界”88和“安全世界”84访问,同时标记有安全pas 84的pas tag。
94.上述特性的示例是使特定物理颗粒的可见性特性作出快速变化。考虑为每个世界分配仅可供该世界访问的专用pas的情况。对于特定颗粒而言,该世界可请求在任何时间点通过以下方式使这些颗粒对非安全世界可见:将其gpi从“独占”改变为“与非安全世界限制性共享”,同时不改变pas关联。这样,可增加该颗粒的可见性而不需要昂贵的高速缓存维护或数据复制操作。
95.图4示出了相应物理地址空间向硬件中提供的物理存储器上的别名的概念。如先前所描述,域82、84、86、88中的每个域具有其自身的相应物理地址空间61。
96.在地址转换电路16生成物理地址的时间点,物理地址具有由该系统支持的一定数值范围62内的值,不论选择哪个物理地址空间,该值都相同。然而,除了物理地址的生成之外,地址转换电路16还可基于当前域14和/或用于导出物理地址的页表条目中的信息来选择特定物理地址空间(pas)。另选地,并非地址转换电路16执行pas的选择,而是地址转换电路(例如,mmu)可输出从页表条目(pte)导出的用于选择pas的物理地址和信息,然后pas滤波器或gmpu 20可使用该信息来选择pas。
97.可根据处理电路10在发出存储器访问请求时正在操作的当前域,按照下表中定义的规则来限制给定存储器访问请求对pas的选择:
98.当前域非安全pas安全pas领域pas根pas非安全可访问不可访问不可访问不可访问安全可访问可访问不可访问不可访问领域可访问不可访问可访问不可访问根可访问可访问可访问可访问
99.对于存在可供选择的多个物理地址空间的那些域而言,来自用于提供物理地址的访问的页表条目的信息用于在可用pas选项之间选择。
100.从而,在pas滤波器20将存储器访问请求输出到系统结构24、8的时间点(假设其通过了任何滤波检查),存储器访问请求与物理地址(pa)和所选择的物理地址空间(pas)相关联。
101.从在物理别名点(popa)60之前操作的存储器系统部件(诸如高速缓存、互连件、探
听滤波器等)的角度来看,相应物理地址空间61被看作是对应于存储器内的不同系统位置的完全单独的地址范围。这意味着,从前popa存储器系统部件的角度来看,存储器访问请求所识别的地址范围实际上是可在地址转换中输出的范围62的大小的四倍,因为实际上pas标识符被看作是物理地址自身旁边的附加地址位,以使得根据选择哪个pas,可将相同物理地址pax映射到不同物理地址空间61中的多个别名物理地址63。这些别名物理地址63实际上全都对应于物理硬件中实现的相同存储器系统位置,但前popa存储器系统部件将别名地址63看作是单独地址。从而,如果存在为此类地址分配条目的任何前popa高速缓存或探听滤波器,则别名地址63将被映射到具有单独高速缓存命中/未命中决策和单独一致性管理的不同条目中。这降低了攻击者使用高速缓存或一致性侧信道作为探测其他域的操作的机构的可能性或有效性。
102.该系统可包括超过一个popa 60(例如,如下文所讨论的图14中所示)。在每个popa 60处,别名物理地址收缩成系统物理地址空间64中的单个去别名地址65。在任何后popa部件的下游提供去别名地址65,以使得实际上识别存储器系统位置的系统物理地址空间64再一次为与在请求器侧上执行的地址转换中可输出的物理地址范围相同的大小。例如,在popa60处,可从这些地址中剥离pas标识符,并且对于下游部件而言,这些地址可简单地使用物理地址值来识别,而不指定pas。另选地,对于期望存储器访问请求的一些完成器侧滤波的一些情况而言,pas标识符仍可在popa 60的下游提供,但可不被解释为地址的一部分,以使得在不同物理地址空间60中出现的相同物理地址将在popa的下游解释为涉及相同存储器系统位置,但供应的pas标识符仍可用于执行任何完成器侧安全检查。
103.图5示出了可如何使用颗粒保护表56将系统物理地址空间64分成为特定架构物理地址空间61内的访问分配的组块。颗粒保护表(gpt)56定义允许从每个架构物理地址空间61访问系统物理地址空间65的哪些部分。例如,gpt 56可包括各自与一定大小(例如,4k页)的物理地址颗粒相对应的多个条目,并且可定义为该颗粒分配的pas,该pas可从非安全域、安全域、领域域和根域中选择。根据设计,如果特定颗粒或颗粒组被分配到与这些域之一相关联的pas,则其仅可在与该域相关联的pas内访问并且无法在其他域的pas内访问。然而,应当注意,虽然无法从根pas内访问分配到安全pas(举例来说)的颗粒,但是根域82能够通过以下方式访问该物理地址颗粒:在其页表中指定pas选择信息,以便确保与映射到物理寻址的存储器的该区域的页相关联的虚拟地址转换成安全pas(而非根pas)中的物理地址。从而,可在为给定存储器访问请求选择pas的时间点控制数据跨域的共享(达到先前描述的表中定义的可访问性/不可访问性规则所允许的程度)。
104.然而,在一些具体实施中,除了允许在gpt所定义的分配的pas内访问物理地址颗粒之外,gpt还可使用其他gpt属性将地址空间的某些区域标记为与另一个地址空间(例如,与更低或正交权限的域相关联的地址空间(通常不允许其为该域的访问请求选择分配的pas))共享。这可促进数据的暂时共享而不需要改变给定颗粒的分配的pas。例如,在图5中,领域pas的区域70在gpt中定义为被分配到领域域,因此通常不可从非安全域86访问,这是由于非安全域86无法为其访问请求选择领域pas。由于非安全域26无法访问领域pas,于是通常非安全代码无法看到区域70中的数据。然而,如果领域暂时希望将存储器的其分配区域中的其数据中的一些数据与非安全域共享,则其可请求在根域82中操作的监控代码29更新gpt 56以指示区域70将与非安全域86共享,并且这可使区域70也可从如图5的左手侧上
所示的非安全pas访问,而不需要改变哪个域是区域70的分配的域。如果领域域已将其地址空间的某区域指定为与非安全域共享,则尽管从非安全域发出的以该区域为目标的存储器访问请求最初可指定非安全pas,但是pas滤波器20可重映射该请求的pas标识符以相反地指定领域pas,从而下游存储器系统部件将该请求看作是其始终从领域域发出。该共享可提高性能,因为用于将不同域分配到特定存储器区域的操作可更为性能密集性的,其涉及更大程度的高速缓存/tlb无效和/或存储器中的数据归零或数据在存储器区域之间的复制(如果预期共享仅是暂时的,则这可为不正当的)。
105.图6是示出如何确定当前操作域的流程图,这可由处理电路10或由地址转换电路16或pas滤波器20执行。在步骤100处,确定当前异常级别15是否为el3,如果是这样,则在步骤102处,将当前域确定为根域82。如果当前异常级别不是el3,则在步骤104处,将当前域确定为非安全域86、安全域84和领域域88中的一者,如处理器的el3控制寄存器内的至少两个域指示位14所指示(由于根域由作为el3的当前异常级别来指示,可能不必要具有与根域相对应的域指示位14的编码,因此可为其他目的预留域指示位的至少一个编码)。el3控制寄存器可在el3处操作时写入并且无法从其他异常级别el2-el0写入。
106.图7示出了可用于页表结构中的页表条目的页表条目(pte)格式的示例,这些页表条目由地址转换电路16用于将虚拟地址映射到物理地址,将虚拟地址映射到中间地址,或将中间地址映射到物理地址(具体取决于是否在完全需要阶段2转换的操作状态下执行转换,以及如果需要阶段2转换,则该转换是阶段1转换还是阶段2转换)。一般来讲,给定页表结构可被定义为多级表结构,其被实现为页表树,其中基于存储在处理器的转换表基地址寄存器中的基地址来识别页表的第一级别,并且从对其执行转换查找的输入地址的位子集导出在页表内选择特定级别1页表条目的索引(输入地址可以是用于阶段1转换的虚拟地址或用于阶段2转换的中间地址)。级别1页表条目可以是提供指向下一级别页表的指针112的“表描述符”110,然后可基于输入地址的进一步的位子集来从下一级别页表选择进一步的页表条目。最后,在对页表连续级别的一次或多次查找之后,可识别块或页描述符pte 114、116、118,该块或页描述符提供与输入地址相对应的输出地址120。输出地址可以是中间地址(对于在还执行进一步阶段2转换的操作状态下执行的阶段1转换)或物理地址(对于阶段2转换或在不需要阶段2时的阶段1转换)。
107.为了支持上述不同物理地址空间,除了下一级别页表指针112或输出地址120以及用于控制对存储器的对应块的访问的任何属性122之外,页表条目格式还指定用于物理地址空间选择的一些附加状态。
108.对于表描述符110而言,除了非安全域86之外的任何域所使用的pte包括非安全表指示符124,该非安全表指示符指示是否将从非安全物理地址空间或从当前域的物理地址空间访问下一级别页表。这有助于促进页表的更高效管理。通常根域、领域域或安全域24所使用的页表结构可仅需要为虚拟地址空间的一部分定义特殊页表条目,并且对于其他部分而言,可使用非安全域26所使用的相同页表条目,因此通过提供非安全表指示符124,这可允许页表结构的更高级别提供专用领域/安全表描述符,同时在页表树的一定点处,根领域域或安全域可切换到将来自非安全域的页表条目用于地址空间中那些不需要更高安全性的部分。仍可从与根域、领域域或安全域相关联的相关物理地址空间获取页表树的其他部分中的其他页表描述符。
109.另一方面,块/页描述符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可共享。
110.从而,图8是流程图,其示出了基于当前域以及来自块/页pte的用于为给定存储器访问请求生成物理地址的信息124、126来选择pas的方法。可由地址转换电路16执行pas选择,或如果地址转换电路将pas选择信息126转发到pas滤波器20,则可由地址转换电路16和pas滤波器20的组合执行pas选择。
111.在图8中的步骤130处,处理电路10发出将给定虚拟地址(va)指定为目标va的存储器访问请求。在步骤132处,地址转换电路16在其tlb 18中查找任何页表条目(或从此类页表条目导出的高速缓存的信息)。如果任何所需的页表信息不可用,则地址转换电路16发起至存储器的页表漫游以获取所需的pte(潜在地需要一系列存储器访问以逐步经过页表结构的相应级别,和/或潜在地需要地址转换的多个阶段以获得从va至中间地址(ipa)再从ipa至pa的映射)。应当注意,地址转换电路16在页表漫游操作中发出的任何存储器访问请求可自身经受地址转换和pas滤波,因此在步骤130处接收到的请求可以是为从存储器请求页表条目而发出的存储器访问请求。一旦已识别相关页表信息,就(可能在两个阶段中经由ipa)将虚拟地址转换成物理地址。在步骤134处,地址转换电路16或pas滤波器20使用图6所示的方法来确定哪个域是当前域。
112.如果当前域是非安全域,则在步骤136处,为该存储器访问请求选择的输出pas是非安全pas。
113.如果当前域是安全域,则在步骤138处,基于包括在块/页描述符pte中的提供物理地址的pas选择信息126来选择输出pas,其中输出pas将被选择为安全pas或非安全pas。
114.如果当前域是领域域,则在步骤140处,基于包括在块/页描述符pte中的从其导出物理地址的pas选择信息126来选择输出pas,并且在这种情况下,输出pas被选择为领域pas或非安全pas。
115.如果在步骤134处当前域被确定为根域,则在步骤142处,基于根块/页描述符pte 114中的从其导出物理地址的pas选择信息126来选择输出pas。在这种情况下,输出pas被选择为与根域、领域域、安全域和非安全域相关联的物理地址空间中的任何物理地址空间。
116.图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滤波检查。
117.图10是示出pas滤波器20在互连件8的请求器侧处执行的请求器侧pas滤波检查的流程图。在步骤170处,pas滤波器20接收存储器访问请求,该存储器访问请求与物理地址和可如先前描述的图8中所示的那样选择的输出pas相关联。如下文进一步提及,在等待执行后续步骤172-180时,有可能发出命中时读取的前popa请求,该请求可有助于在gpt检查将成功的情况下更快访问数据。
118.在步骤172处,pas滤波器20要么从颗粒保护信息高速缓存22(如果可用)获得与指定的pa相对应的gpt条目,要么通过以下方式获得该gpt条目:向存储器发出从存储在存储器中的表结构获取所需的gpt条目的请求。一旦已获得所需的gpt条目,就在步骤174处,pas滤波器确定为存储器访问请求选择的输出pas是否与在步骤172处获得的gpt条目中定义的分配的pas 152相同。如果是这样,则在步骤176处,可允许存储器访问请求(指定该pa和该输出pas)传递到高速缓存24或互连件8。
119.如果输出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的请求相同。
120.如果输出pas在共享属性信息156中不指示为允许访问指定的物理地址(或另选地,在不支持共享属性信息156的具体实施中,跳过步骤178),则在步骤180处确定目标物理地址的所获得的gpt条目中的直通指示符158是否识别存储器访问请求可一直传递到高速缓存24或互连件8,而不考虑在请求器侧pas滤波器20处执行的检查,并且如果指定了直通指示符,则在步骤176处再次允许进行存储器访问请求(将输出pas指定为与存储器访问请求相关联的pas)。另选地,如果步骤174、178和180处的检查中的任何检查都未识别允许存储器访问请求,则在步骤182处,阻断存储器访问请求(对于除下述命中时读取的前popa请求之外的类型的请求而言,允许在不等待成功gpt检查的情况下发出命中时读取的前popa请求)。从而,不将除命中时读取的前popa请求之外的存储器访问请求传递到高速缓存24或
互连件8,并且可发信号通知故障,这可触发异常处理以处理该故障。
121.虽然步骤174、178、180在图10中顺序地示出,但如果需要,这些步骤也可并行地或按不同顺序实现。还应当理解,步骤178和180不是必要的并且一些具体实施可不支持使用共享属性信息156和/或直通指示符158。
122.图11概括了地址转换电路16和pas滤波器的操作。pas滤波20可被视为在地址转换电路所执行的阶段1(和任选地阶段2)地址转换之后执行的附加阶段3检查。还应当注意,el3转换基于页表条目,所述页表条目提供两位基于地址的选择信息(在图11的示例中标记为ns、nse),而一位选择信息“ns”用于选择其他状态下的pas。图11中指示为颗粒保护检查的输入的安全状态是指识别处理元件4的当前域的域id。
123.命中时读取的前popa请求
124.pas滤波器(保护检查电路)20所执行的颗粒保护检查可相对较慢,因为其可能需要保护表漫游以从存储器获取保护信息。如果直到保护检查完成之后才可发起对给定目标pa和目标pas的存储器访问请求,则这对于对存储器的所有访问都可引发额外延迟。图12和图13的示例示出了可由请求器4、互连件8和完成器6所使用的存储器接口协议来支持的对命中时读取的前popa请求的处理,以使得可减少该延迟。
125.命中时读取的前popa请求引起一个或多个存储器系统部件提供命中时读取的前popa响应,该命中时读取的前popa响应涉及不同结果,具体取决于该请求的目标pa和目标pas在位于popa 60的上游(比popa 60更靠近请求器设备4)的任何前popa高速缓存24中是命中还是未命中。
126.图12示出了在前popa高速缓存24中检测到高速缓存命中时对命中时读取的前popa请求的处理。该高速缓存可位于请求器设备4内(如图1所示),但也可位于popa 60上游的存储器系统的另一部分中,诸如位于互连件8内。为简单起见,图12涉及单个前popa高速缓存中的命中,但应当理解,可存在前popa高速缓存的多个级别并且该命中可处于这些前popa高速缓存级别中的任何级别。
127.如图12所示,当从给定请求器4的地址转换电路16准备好所需的读取存储器访问的目标pa时,请求器电路发出命中时读取的前popa请求190,该命中时读取的前popa请求指定由地址转换电路16或pas滤波器20(以充当pas选择电路的为准)获得的目标pa和目标pas,而无需等待pas滤波器20(保护检查电路)针对目标pa和目标pas完成上述颗粒保护表检查(gpt检查)。将命中时读取的前popa请求190发送到至少一个前popa存储器系统部件,诸如高速缓存24或互连件8,该至少一个前popa存储器系统部件检查是否在前popa高速缓存中检测到高速缓存命中,该前popa高速缓存将与不同pas中的相同存储器系统资源相对应的别名pa看作是它们实际上全部为单独的地址。例如,前popa高速缓存24中的高速缓存查找可基于该请求的目标pa比照对应高速缓存条目的地址标签的地址比较以及该请求所指定的目标pas标识符和与对应高速缓存条目相关联的对应pas标识符标签之间的pas标识符比较。
128.如果响应于命中时读取的前popa请求190而在前popa高速缓存24中检测到高速缓存命中,则将数据响应191返回到请求器,该数据响应提供从前popa高速缓存24的命中高速缓存条目读取的数据。在该情况下,请求器4可使用返回的数据来处理后续指令,而无需等待gpt检查完成,例如可将读取数据返回并存储在请求器设备4的寄存器12中。一旦gpt检查
完成并且在图12的时间点192处确定为成功,就不需要发出后续读取请求,因为已经返回所需的数据。尽管图12中未示出,但是另一个选项将是在响应于命中时读取的前popa请求190而已接收到数据响应191时停止gpt检查的任何未完成部分。例如,如果在接收到数据响应191的时间点仍有一些颗粒保护表漫游访问请求要发出,则可抑制任何剩余的颗粒保护表漫游请求(另选地,仍可发出这些漫游请求以允许对应保护信息被高速缓存在颗粒保护信息高速缓存22中)。
129.另外,尽管图12中未示出,但是如果存在前popa高速缓存的多个级别并且该请求在级别1高速缓存中未命中,则还可存在数据在前popa高速缓存级别之间的一些转移,以将在级别2或popa之前的高速缓存的后续级别中命中的数据升级到高速缓存的更高级别,并且如果需要,从高速缓存的更高级别逐出数据以便为升级的数据腾出地方。从更高级别前popa高速缓存向更低级别前popa高速缓存发出的行填充请求也可作为命中时读取的前popa请求来发出,以确保如果行填充请求在末极前popa高速缓存(popa之前的高速缓存的终极)中未命中,则不会将数据从popa 60之后的存储器系统部件带到前popa高速缓存层级中。
130.图13示出了在前popa存储器系统部件24、8检测到所提供的前popa高速缓存24的任何级别中的未命中的情况下对命中时读取的前popa请求190的处理。当在前popa高速缓存中检测到高速缓存未命中时,或如果存在前popa高速缓存的多个级别,当在请求器4可访问的所有这些前popa高速缓存(这可排除发出初始命中时读取的前popa请求的请求器4不可访问的其他请求器的任何专用高速缓存)中检测到未命中时,则将无数据响应193返回到请求器4,该无数据响应指示请求的pa和pas的数据还不能安全地返回。
131.任选地,除了返回无数据响应193之外,当检测到前popa高速缓存未命中时,前popa存储器系统部件24、8还可向后popa存储器系统部件6(诸如存储器控制器、外围控制器或另一个元件)发出请求194以请求执行准备动作,从而准备稍后对相同pa的读取请求。对准备动作的该请求194可触发后popa存储器系统6执行准备操作(诸如将目标pa的数据预取到后popa高速缓存7中,和/或在存储器9中执行激活或预充电操作),这可使得更可能的是后续对相同pa的读取请求的处理可快于尚未执行准备操作的情形。然而,不允许对准备动作的请求194引起目标pa的数据从后popa位置升级到前popa高速缓存24之一。
132.当请求器4在图13的时间点192确定目标pa的gpt检查成功时,则请求器电路4随后发出指定与先前命中时读取的前popa请求190相同的目标pa和目标pas的标准读取请求195,并且该请求将再次在前popa高速缓存24中未命中并且随后可触发对后popa存储器系统部件的行填充请求,该行填充请求可返回该数据,因此请求器电路4随后接收到数据响应191(与在图12所示的高速缓存命中的情况下接收到的数据响应191的类型相同)。除了将该数据返回到请求器之外,读取请求195还可引起目标pa的数据分配到至少一个前popa高速缓存24中,原因是由于gpt检查已经被确定为成功,该操作现已安全。图13中的所发出的读取请求195可以是直到已经验证对指定目标pa和目标pas的gpt检查已成功之后才允许发出的请求类型。由于已经在处理命中时读取的前popa请求190时发出对准备动作的请求194,于是读取请求195的处理速度可快于完全未发出请求的情形直到gpt检查被确定为成功之后,从而加快读取请求的处理并因此提高性能。
133.然而,其他具体实施可省略对准备动作的请求194,并且在这种情况下,仍可通过
对命中时读取的前popa请求提供支持来提高性能,因为至少在如图12所示的该请求在前popa高速缓存中命中的场合时,数据返回的时间可早于完全未发出命中时读取的前popa请求190的情形,并且对存储器的所有访问必须等待到发出读取请求195前gpt检查成功之后。
134.概括地说,具有物理别名点(popa)之前的标记有领域信息的高速缓存以及物理别名点之后的存储器控制器(和潜在进一步的高速缓存)的系统的上下文中,期望在完全执行颗粒保护检查之前预取存储器位置,以便隐藏tlb漫游上的附加保护阶段的成本。然而,将已省略颗粒保护检查的这种条目分配到高速缓存中可破坏保护检查电路20所提供的安全保证。命中时读取的前popa请求提供了一种类型的通信接口/一致性协议请求,该请求在其在popa之前的高速缓存中命中时充当可高速缓存的读取,并且在其在popa之前未命中时返回无数据响应或充当无数据预取请求。这认识到,如果该行已经处于popa之前的具有与新请求相同的领域信息的高速缓存中,则可以安全地将该行移动到更靠近cpu的另一个领域标记高速缓存或将该行返回到请求器。然而,不可以安全地从popa之后带到该行中,因为这可导致被标记上错误领域信息。利用具有大约在可高速缓存的读取与存储器控制器/高速缓存预取请求之间的语义的新请求时,可使延迟最小化,同时不破坏保护检查所提供的任何内在安全保证。请求器可在其刚完成该转换时但在完成颗粒保护检查之前发送该新请求类型。预期该请求会查找popa之前的高速缓存层级,并且如果其在具有与新请求相同的领域信息的行上命中,则预期该请求会将该数据返回到更靠近请求器的高速缓存,然后可在此处安全地分配该数据。然而,如果该查找在popa之前的高速缓存中未命中,则该请求可转变成预取请求或其他对准备动作的请求,其请求将该行预取到popa之后的最近高速缓存中或执行预充电或激活操作,而不将任何数据返回到popa之前的任何高速缓存。请求器将接收到无数据响应,该无数据响应指示没有数据可安全地返回。一旦请求器完成颗粒保护检查,就可发出正常读取事务,该正常读取事务随后将能够以减少的延迟检索该数据,因为预期其将在popa之后的高速缓存(例如,存储器控制器的预取缓冲器)中命中或不会引发与预充电或激活操作相关联的延迟。另选地,可在更靠近popa的地方提供附加缓冲/高速缓存。
135.图14是示出请求器电路4在发起对存储器的读取访问时执行的操作的流程图。在步骤200处,请求器设备4的地址转换电路16执行地址转换以将该访问的目标va转换为目标pa。另外,pas选择电路16、20基于当前正执行处理的当前操作域14或与目标va相对应的地址转换条目中的信息或当前域和地址转换条目中的信息两者来选择要用于该访问的目标pas。
136.在步骤202处,pas滤波器20确定指定的目标pa的保护信息是否已经在保护信息高速缓存22(其可以是仅用于高速缓存gpt条目的专用高速缓存或可以与如先前讨论的tlb 18组合)中可用。如果保护信息已经在保护信息高速缓存22中可用,则在步骤204处使用高速缓存的保护信息执行保护检查,并且在步骤206处确定保护检查是否成功。如果是这样,则在步骤208处由请求器电路向下游存储器系统部件发出读取请求195,其中该读取请求指定在地址转换中获得的目标pa和在pas选择中获得的目标pas。在步骤210处,请求器电路接收提供请求的数据的读取数据响应。读取数据可存储在寄存器12中并且可供使用以用作后续指令的操作数。另一方面,如果在步骤206处保护检查不成功并且pas滤波器20确定不允许在目标pas内访问目标pa(即,目标pas不是目标pa的允许的地址空间),则在步骤212处pas滤波器20发信号通知故障并且阻断读取请求195发出到下游存储器系统部件24、8、6。该
故障可引起在处理系统上执行的异常处理程序确定如何处理故障,例如引起系统重置或引起软件例程调查为何对给定pa的错误地址空间作出该请求,禁用尝试访问错误地址空间的线程的执行,或采取另一种形式的响应动作(所采取的特定响应可取决于应用程序运行的特定要求或平台运营商的选择)。
137.另一方面,如果在步骤202处确定目标pa的保护信息尚未在保护信息高速缓存22中可用(因为完全不提供保护信息高速缓存22,或因为对目标pa的保护信息的请求在保护信息高速缓存22中未命中),则在步骤220处请求器电路4向下游存储器系统部件发出命中时读取的前popa请求190,其中该请求指定在步骤200处获得的目标pa和目标pas。在不等待pas滤波器20执行保护检查的情况下发出命中时读取的前popa请求。在步骤222处,从下游存储器系统部件接收到对命中时读取的前popa请求的响应。在步骤224处,由请求器4确定响应的类型。如果所接收到的响应的类型是数据响应,则不需要发出对目标pa和目标pas的后续读取请求,因此可在步骤226处抑制这种读取请求。如果所接收到的响应是无数据响应193,则请求器电路4等待保护检查的结果。
138.同时,与命中时读取的前popa请求的发出并行地,在目标pa的保护信息在保护信息高速缓存22中不可用的情况下,请求器电路4还在步骤230处发出一个或多个保护表漫游访问请求,该一个或多个保护表漫游访问请求是请求从存储器获得目标pa的保护信息的访问请求。此类保护表漫游访问请求指定与用于命中时读取的前popa请求的目标pa不同的pa。用于保护表漫游访问请求的地址可取决于由pas滤波器20维护的表基地址以及命中时读取的前popa请求的目标pa的部分。所需的保护表漫游访问的数量可变化,具体取决于相关信息存在于保护信息高速缓存中的程度以及保护表被定义的方式及需要遍历保护表的多少级别才能找到目标pa的保护信息。例如,保护表可以是多级表并且目标pa的不同部分可用于按由pas滤波器20维护的基地址编索引到该表的每个级别中,该pas滤波器识别第一级别保护表的基地址,然后基于在该表的先前级别处读取的表条目的内容来获得保护表的后续级别的基地址。不同pa可需要保护表的不同数量的级别的遍历。
139.最后,在步骤232处接收到与目标pa相对应的保护信息,并且在步骤234处pas滤波器20使用所接收的保护信息来执行保护检查。此时,pas滤波器20还可将条目分配到与目标pa相关联的保护信息的颗粒保护信息高速缓存22(如果提供的话)中,以使得可更快执行对相同地址的未来访问。保护检查确定是否允许访问在步骤200处选择的目标pas以对目标pa进行访问(即,确定目标pas是否为目标pa的允许的pas)。在步骤236处,pas滤波器20确定保护检查是否成功(目标pas是目标pa的允许的pas),并且如果是这样,则在步骤240处由请求器设备4发出指定目标pa和目标pas的读取请求。该读取请求是图13所示的类型195,其将触发数据响应,而不考虑其在前popa高速缓存24中未命中还是命中。如果在响应于命中时读取的前popa请求而已从存储器系统接收到任何响应之前保护检查结果已被确定为成功,或(更可能)如果响应于命中时读取的前popa请求而接收到无数据响应(如图14的从步骤224至步骤236的箭头所示),则执行步骤240。另一方面,如果在步骤236处保护检查被确定为不成功,则再次在步骤212处发信号通知故障并且阻断指定目标pa和目标pas的读取请求发出。
140.图15更详细地示出了前popa存储器系统部件300的示例,该前popa存储器系统部件可例如是与前popa高速缓存24相关联的控制电路逻辑或互连件8内的控制逻辑。前popa
存储器系统部件300具有用于从请求器设备4接收请求并且向请求器设备4提供响应的请求器接口302,以及用于向后popa存储器系统部件6提供请求并且作为回应而接收到对所述请求的响应的完成器接口308。控制电路304处理请求器接口302处的传入的请求的处理、经由完成器接口308对请求的发出、在完成器接口308处接收到的响应的处理以及经由请求器接口302对响应的发出。另外,控制电路304控制前popa高速缓存24的查找。
141.图16示出了流程图,其示出了由前popa存储器系统部件300执行的操作。在步骤310处,前popa存储器系统部件接收指定目标pa和目标pas的命中时读取的前popa请求190。在步骤312处,控制电路304触发前popa高速缓存24中的目标pa和目标pas的查找。如果该查找检测到任何前popa高速缓存中的高速缓存命中,以使得前popa高速缓存24中存在有效的并且对应于目标pa和目标pas两者的条目,则在步骤314处,由控制电路304控制前popa存储器系统部件300的请求器接口302以返回数据响应191,该数据响应提供在前popa高速缓存24的命中条目中高速缓存的数据。尽管图16中未示出,也有可能在步骤314处可存在数据在前popa高速缓存的不同级别之间的移动(例如,在级别1高速缓存未命中但级别2高速缓存命中时,可将数据从级别2高速缓存升级到级别1高速缓存,并且这可引起数据从级别1高速缓存逐出到级别2高速缓存,其中级别1和级别2高速缓存均是前popa高速缓存)。
142.另一方面,如果该查找在前popa高速缓存中未命中(当不存在目标pa和目标pas均对应于高速缓存条目的对应pa和pas标签的有效条目时),则在步骤316处,经由请求器接口302将无数据响应191返回到请求器4。在步骤318处,控制电路304防止基于向后popa存储器系统部件6发出的任何行填充请求来将目标pa的任何数据分配到前popa高速缓存24中。例如,这可通过防止完成器接口308向后popa存储器系统部件发出任何此类行填充请求来实施。另外,在高速缓存未命中场景中,在步骤320处,控制电路304控制完成器接口308以对后popa存储器系统部件6、7、9发出请求以便执行至少一个准备动作,从而准备对指定目标pa的稍后访问请求的处理。例如,该请求可引起目标pa的数据预取到后popa高速缓存7中,或可控制存储器9以执行预充电或激活操作以便使一行存储器位置(包括与目标pa相对应的位置)准备好未来访问,从而可以以减少的延迟处理指定相同目标pa的未来请求。步骤320是可选的并且在一些示例中可省略。
143.在本技术中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
144.虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围和实质的前提下,本领域的技术人员可在其中实现各种变化和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献