首页 / 专利库 / 软件 / 数据处理 / 用于中断处理的方法和装置

用于中断处理的方法和装置

阅读:191发布:2022-10-02

专利汇可以提供用于中断处理的方法和装置专利检索,专利查询,专利分析的服务。并且一种 数据处理 设备,包括多个系统寄存器,该多个系统寄存器包括用于控制对进入中断的处理的一组中断处理寄存器。这样的数据处理设备还包括:处理 电路 ,被配置为在多个执行等级处执行 软件 ;中断 控制器 电路,被配置为将进入中断路由至被配置为在多个执行等级中的一个执行等级处运行的中断处理软件;以及寄存器 访问 控制电路,被配置为根据进入中断被路由至的所述多个执行等级中的一个执行等级来动态控制对中断处理寄存器中的至少一些寄存器的访问。访问被控制以使得被配置为在特定执行等级处运行的中断处理软件有权访问进入中断必需的中断处理寄存器中的至少一些中断处理寄存器。此外,被配置为在该特定执行等级处运行的中断处理软件无权访问用于处理被路由至被配置为在具有更多特权的执行等级处运行的中断处理软件的不同进入中断的中断处理寄存器。因此,增大了中断处理软件的灵活性同时维护了这样的类数据处理设备的安全。,下面是用于中断处理的方法和装置专利的具体信息内容。

1.一种数据处理设备,包括:
多个系统寄存器,所述多个系统寄存器包括用于控制对进入中断的处理的一组中断处理寄存器;
处理电路,所述处理电路被配置为在多个执行等级处执行软件
中断控制器电路,所述中断控制器电路被配置为将所述进入中断路由至被配置为在所述多个执行等级中的一个执行等级处运行的中断处理软件;
寄存器访问控制电路,所述寄存器访问控制电路被配置为根据所述进入中断被路由至的所述多个执行等级中的一个执行等级来动态控制对所述一组中断处理寄存器中的至少一些中断处理寄存器的访问,以使得被配置为在所述一个执行等级处运行的所述中断处理软件有权访问用于处理所述进入中断的所述一组中断处理寄存器中的至少一些中断处理寄存器,并且使得被配置为在所述多个执行等级中的所述一个执行等级处运行的所述中断处理软件无权访问用于处理被路由至在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
2.根据权利要求1所述的数据处理设备,其中,所述多个执行等级包括:EL0、EL1、EL2和EL3;
EL0是用户软件在其中执行的执行等级,并且具有少于EL1的特权;
EL1是访客操作系统在其中执行的执行等级,并且具有少有EL2的特权;
EL2是超级监督器在其中执行的执行等级,并且具有少于EL3的特权;以及EL3是安全监视器在其中执行的执行等级。
3.根据权利要求1或权利要求2所述的数据处理设备,其中,
所述寄存器访问控制电路被配置为仅根据所述进入中断被路由至的所述多个执行等级中的所述一个执行等级来动态控制对所述一组中断处理寄存器中的至少一些寄存器的访问。
4.根据权利要求1或权利要求2所述的数据处理设备,所述中断控制器电路还包括:
处理器模式检测电路,所述处理器模式检测电路被配置为检测所述处理电路的当前执行模式;
输入电路,所述输入电路被配置为接收所述进入中断,所述进入中断针对被配置为在预期执行模式处并且在预期执行等级处运行的中断处理器;
路由电路,所述路由电路被配置为将所述进入中断路由至被配置为在目标执行等级处运行的中断处理软件,所述路由电路被配置为:
响应于具有与所述处理电路的当前执行模式相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在该预期执行等级处运行的中断处理软件;以及响应于具有与所述处理电路的当前执行模式不相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在比该预期执行等级有更多特权的预定执行等级处运行的中断处理软件。
5.根据权利要求4所述的数据处理设备,其中,
所述当前执行模式和所述预期执行模式各自是安全模式或非安全模式中的一种,在所述安全模式下运行的所述处理电路可以访问安全数据,所述安全数据不可由在所述非安全模式下运行的所述处理电路访问。
6.根据权利要求4所述的数据处理设备,其中,
比所述预期执行等级有更多特权的所述预定执行等级是具有最多特权的执行等级。
7.根据权利要求4所述的数据处理设备,其中,
比所述预期执行等级有更多特权的所述预定执行等级是EL3并且是安全监视器运行于的执行等级。
8.根据权利要求4所述的数据处理设备,其中,
所述处理器模式检测电路包括:在所述一组中断处理寄存器中的确认寄存器;并且所述确认寄存器被配置为指示接收到的进入中断是待处理的,并且返回预定义值以指示所述接收到的进入中断具有与所述当前执行模式不相符的预期执行模式。
9.根据权利要求8所述的数据处理设备,其中,
被配置为在比所述预期执行等级有更多特权的预定执行等级处运行的所述中断处理软件被配置为:通过改变所述处理电路的所述执行模式来对返回所述预定义值的所述确认寄存器作出响应,并且随后使得所述路由电路将所述进入中断路由至被配置为在所述预期执行等级处运行的中断处理软件。
10.根据权利要求8所述的数据处理设备,其中,
在比所述预期执行等级有更多特权的预定执行等级处运行的所述中断处理软件被配置为:通过处理所述进入中断来对返回所述预定义值的所述确认寄存器作出响应。
11.根据权利要求4所述的数据处理设备,其中,
所述路由电路被配置为:通过生成中断异常并且将所述中断异常转发至被配置为在所述预期执行等级处运行的所述中断处理软件和被配置为在比所述预期执行等级有更多特权的预定执行等级处运行的所述中断处理软件中的至少一个中断处理软件,来将所述进入中断路由至被配置为在所述预期执行等级处运行的中断处理软件并且将所述进入中断路由至被配置为在比所述预期执行等级有更多特权的预定执行等级处运行的中断处理软件。
12.根据权利要求1或权利要求2所述的数据处理设备,其中,
所述中断控制器电路可在第一设置和第二设置之间切换,在所述第一设置中:
所述中断控制器将进入中断路由至被配置为在预定执行等级处运行的中断处理软件,在所述第二设置中:
所述中断控制器不将进入中断路由至被配置为在所述预定执行等级处运行的所述中断处理软件,
所述至少一个进入中断被路由至被配置为在比所述预定执行等级有更多特权的执行等级处运行的中断处理软件,
至少一个虚拟中断由被配置为在所述比所述预定执行等级有更多特权的执行等级处运行的中断处理软件生成,
并且所述至少一个虚拟中断被路由至被配置为在所述预定执行等级处运行的所述中断处理软件。
13.根据权利要求12所述的数据处理设备,其中,
所述比所述预定执行等级有更多特权的执行等级是EL2,执行等级EL2是超级监督器在其中运行的等级。
14.根据权利要求12所述的数据处理设备,其中,
所述被配置为在预定执行等级处运行的中断处理软件和所述被配置为在比所述预定执行等级有更多特权的执行等级处运行的中断处理软件,各自在所述处理电路上的安全操作模式下执行,在所述安全操作模式下操作的所述处理电路有权访问安全数据,所述安全数据不可由在非安全操作模式下操作的所述处理电路访问,并且在所述非安全操作模式下操作的所述处理电路有权访问非安全数据,所述非安全数据不可由在所述安全操作模式下操作的所述处理电路访问。
15.一种数据处理设备,包括:
多个系统寄存器,所述多个系统寄存器包括用于控制对进入中断的处理的一组中断处理寄存器;
处理装置,所述处理装置用于在多个执行等级处执行软件;
中断控制器装置,所述中断控制器装置用于将所述进入中断路由至被配置为在所述多个执行等级中的一个执行等级处运行的中断处理软件;
寄存器访问控制装置,所述寄存器访问控制装置用于根据所述进入中断被路由至的所述多个执行等级中的一个执行等级来动态控制对所述一组中断处理寄存器中的至少一些中断处理寄存器的访问,以使得被配置为在所述一个执行等级处运行的所述中断处理软件有权访问用于处理所述进入中断的所述一组中断处理寄存器中的至少一些中断处理寄存器,并且使得被配置为在所述多个执行等级中的所述一个执行等级处运行的所述中断处理软件无权访问用于处理被路由至在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
16.一种动态控制对用于处理进入中断的一组中断处理寄存器中的至少一些中断处理寄存器的访问的方法,所述进入中断被路由至被配置为在来自多个执行等级中的目的地执行等级处运行的中断处理软件,所述方法包括以下步骤:
确定所述进入中断被路由至的目的地执行等级;
授权对被配置为在所述目的地执行等级处运行的所述中断处理软件的访问,以使得被配置为在所述目的地执行等级处运行的中断处理软件有权访问用于处理所述进入中断的所述一组中断处理寄存器中的至少一些中断处理寄存器,并且使得被配置为在所述目的地执行等级处运行的所述中断处理软件无权访问用于处理被路由至被配置为在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
17.一种用于将进入中断路由至处理电路的设备,所述处理电路被配置为在多个执行等级处执行软件,所述设备包括:
处理器模式检测电路,所述处理器模式检测电路被配置为检测所述处理电路的当前执行模式;以及
输入电路,所述输入电路被配置为接收所述进入中断,所述进入中断针对被配置为在预期执行模式处并且在预期执行等级处运行的中断处理器;
路由电路,所述路由电路被配置为将所述进入中断路由至被配置为在目标执行等级处运行的中断处理软件,所述路由电路被配置为:
响应于具有与所述处理电路的当前执行模式相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在该预期执行等级处运行的中断处理软件;以及响应于具有与所述处理电路的当前执行模式不相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在比该预期执行等级有更多特权的预定执行等级处运行的中断处理软件。
18.一种将进入中断路由至处理电路的方法,所述处理电路被配置为在多个执行等级处执行软件,所述方法包括以下步骤:
检测所述处理电路的当前执行模式;以及
接收所述进入中断,所述进入中断针对被配置为在预期执行模式处并且在预期执行等级处运行的中断处理器;
通过以下步骤将所述进入中断路由至被配置为在目标执行等级处运行的中断处理软件:
响应于具有与所述处理电路的当前执行模式相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在该预期执行等级处运行的中断处理软件;以及响应于具有与所述处理电路的当前执行模式不相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至被配置为在比该预期执行等级有更多特权的预定执行等级处运行的中断处理软件。

说明书全文

用于中断处理的方法和装置

技术领域

[0001] 本发明涉及数据处理系统中的中断处理的领域。

背景技术

[0002] 已知超级监督器系统以多个不同的执行等级运行。这些执行等级被组织在层级结构中,其中较高执行等级被给予比较低执行等级更多至数据处理系统的特权。通常,特定的执行等级能够执行较低执行等级能够执行的任意动作并且访问较低执行等级能够访问的任意数据。
[0003] 虚拟化的系统可以使用四个执行等级进行操作。用户软件可以在最低且具有最少特权的等级EL0处执行。该软件可以包括用户日常工作中运行的那些应用以及不会为了正确执行需要特殊特权的软件。
[0004] 在下一最高等级EL1处,操作系统可以执行。通常,操作系统管理在其下面、在EL0处运行的若干用户应用,并且使能够访问用户应用的硬件资源。因此,在EL1内执行的操作系统具有相对于EL0增大的特权等级,因为它能够访问和控制在EL0下运行的用户应用的行为。
[0005] 超级监督器可以在EL2中运行。超级监督器通常控制在EL1下执行的若干操作系统的数量、行为和资源管理。因为多个操作系统可能争夺对硬件资源的访问,超级监督器必须能够允许或拒绝此类访问请求。因此,相较于在EL1处运行的操作系统,超级监督器在较高的特权等级EL2处运行。
[0006] 还已知数据处理系统在各种执行模式下操作,比如,安全状态和非安全状态。通过提供在安全状态和非安全状态都能操作的数据处理装置,有可能将安全操作的执行与非安全操作的执行分开。此外,被认为是安全的数据可以与不安全的数据分开。从而安全数据和安全操作可以与可能被认为不安全的其它数据和操作隔离。于是保护了系统的安全。超级监督器系统还可以在安全模式或非安全模式下操作。在这些情况下,每个执行等级可以在安全模式或非安全模式中的一个或另一个下操作。
[0007] 安全模式和非安全模式的之间切换必须在最高安全和特权执行等级处处理,以便确保在非安全操作模式下运行的软件不能访问属于安全操作模式的数据,并且在一些情况下反之亦然。于是,EL3等级可以在控制该切换操作的安全监视器处提供。此EL3等级是最高特权等级,它的责任是确定何时需要进行模式变化并且产生该需要的执行模式变化。
[0008] 当处理系统中运行于若干不同执行等级处的中断时,有必要隔离在中断处理期间使用的特定数据存储元件。例如,系统寄存器的子集可以是分区的,从而只有在执行等级EL1或以上等级处运行的软件能够访问寄存器的第一子集,只有在执行EL2或以上等级处运行的软件能够访问寄存器的第二子集,并且只有在执行EL3处执行的软件能够访问第三组子集寄存器。在适当的情况下,可以为操作的安全模式或非安全模式两者实施这种分区。此类隔离确保在较低执行等级处运行的软件不能干扰或影响在较高执行等级处运行的软件的执行。

发明内容

[0009] 根据本发明的第一方面,提供了一种数据处理设备,包括:多个系统寄存器,该多个系统寄存器包括用于控制进入中断的处理的一组中断处理寄存器的;处理电路,该处理电路被配置为在多个执行等级处执行软件;中断控制器电路,该中断控制器电路被配置为将所述进入中断路由至被配置为在所述多个执行等级中的一个执行等级处运行的中断处理软件;寄存器访问控制电路,该寄存器访问控制电路被配置为根据所述进入中断被路由至的所述多个执行等级中的一个执行等级来动态控制对所述中断处理寄存器中的至少一些寄存器的访问,从而被配置为在所述执行等级处运行的中断处理软件有权访问用于处理所述进入中断的所述中断处理寄存器中的至少一些寄存器,并且从而被配置为在所述执行等级处运行的所述中断处理软件无权访问用于处理被路由至在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
[0010] 根据上文,对一组访问中断控制寄存器的访问根据进入中断被路由至的特定执行等级而被动态控制。这与已知的其中在特定执行等级处运行的中断处理软件只能访问具体的、静态定义的寄存器和被定义来由任意具有较低、较少特权的执行等级的那些寄存器的子集的系统不同。这种对访问的限制被提供来阻止在低特权等级处运行的软件干扰在较高特权等级处运行的软件。这样做的结果是如果打算用于高执行等级的中断被路由至在低执行等级处运行的中断处理软件,那么通常该中断不会被处理。这可以由本发明的实施例通过允许根据中断的目的地的执行等级动态地控制对一组中断处理寄存器的访问来解决。
[0011] 在上文所述的系统中,在特定执行等级处运行的中断处理软件可以自行访问在被动态改变的中断处理寄存器中的一组寄存器,从而可以处理特定的进入中断。因此,由于进入中断可以被在任意执行等级处运行的中断处理软件处理而获得了灵活度。此外,因为在各个执行等级处运行的中断处理软件只访问与进入中断相关的系统寄存器,因此保护了系统的安全性。该系统的另一优势是可以使软件更便携,因为不需要在特定执行等级处运行的中断处理软件来处理具体中断。而是任何中断都可以被路由至在不同执行等级处运行的中断处理软件,在这些不同的执行等级处,中断仍可以被处理。上述的另一优势是有可能根据需要明确地将中断路由至非安全软件、安全操作系统、或安全监视器中的任意一个。因此该系统的灵活性通过增加可用于处理给定中断的选择的数量得到提升。
[0012] 在一些实施例中,多个执行等级包括EL0、EL1、EL2和EL3。EL0是用户在其中执行软件的执行等级。EL1是访客操作系统在其中执行的具有较高特权的执行等级。EL2是超级监督器在其中执行的执行等级,其具有比EL1更多的特权。EL3是具有最多特权的执行等级,安全监视器在其中被执行。需要注意的是访客操作系统、超级监督器软件和安全监视器中的每一个可以包括中断处理软件。
[0013] 在一些实施例中,给予中断处理寄存器的访问可以只取决于进入中断被路由至哪个执行等级。
[0014] 在一些实施例中,数据处理电路还可以包括用于检测处理电路的当前执行模式的处理器模式检测电路、接收针对在预期执行模式和预期执行等级处运行的特定中断处理器的进入中断的输入电路、以及用于将进入中断路由至被配置为在特定执行等级处运行的中断处理软件的路由电路。
[0015] 当路由电路接收具有与处理电路的当前执行模式相符的预期执行模式的进入中断时,该进入中断被路由至在预期执行等级处运行的中断处理软件。可替代地,如果路由电路接收具有与处理电路的当前执行模式不相符的预期执行模式的进入中断,那么路由电路将该进入中断路由至被配置为在比预期执行等级有更多特权的执行等级并且可以是具有最大特权的执行等级处运行的中断处理软件。在一些实施例中,进入中断可以被路由至在与安全监视器运行于其中的执行等级相同的执行等级处运行的中断处理软件。
[0016] 当前执行模式和预期执行模式各自可以是安全模式或非安全模式。当在安全模式下操作时,处理电路可以访问在所述非安全模式下操作的所述处理电路不可访问的安全数据。此外,在一些实施例中,当处理电路在非安全模式下操作时,它访问在安全模式下操作的所述处理电路不可访问的非安全数据。
[0017] 在一些实施例中,中断处理电路包括确认寄存器。该确认寄存器指示中断是待处理的。确认寄存器还返回预定义值以指示接收到的进入中断具有与当前执行模式不相符的预期执行模式。因此,确认寄存器的预定义值可以被用于指示进入中断必须被路由至在不同于针对进入中断最初所预期的执行等级的执行等级处运行的中断处理软件。在一些实施例中,当确认寄存器返回预定义值时,在预定的、具有更多特权的执行等级处运行的中断处理软件被配置为改变处理电路的执行模式并且随后使得路由电路将进入中断路由至在预期执行等级处运行的中断处理软件,其中该中断被再次提取并且此次该中断被完全处理及完成。
[0018] 在其他实施例中,响应于返回预定义值的确认寄存器,在预定的执行等级处运行的中断处理软件可以直接自行处理进入中断。例如,如果在执行等级EL3处运行的中断处理软件处理进入中断比起切换处理器的操作模式以允许预期的中断处理软件处理进入中断更有效,则这会发生。
[0019] 路由进入中断的过程可能涉及中断异常的生成,该中断异常随后被转发至中断处理软件。这些中断异常在系统内部并且是由中断控制器生成的以向处理器指示给定类别的中断的出现。中断异常的示例包括FIQ和IRQ。
[0020] 在一些实施例中,数据处理设备生成虚拟中断。中断控制器电路可在第一设置和第二设置之间切换。在第一设置中,进入中断被路由至在比预期执行等级有更多特权的执行等级处运行的中断处理软件。然后虚拟中断由在具有更多特权的执行等级处运行的中断处理软件生成并且被转发至在预期(较低)执行等级处运行的中断处理软件。在第二设置中,中断控制器将进入中断路由至在预期(较低)执行等级处运行的中断处理软件。在这两个设置中,较低级的中断处理软件能够处理进入中断。然而,在第二设置中,在不需要具有更多特权的中断处理软件来生成虚拟中断情况下,进入中断被直接发送至预期中断处理软件。因此,较高的(具有更多特权的)中断处理软件的处理负载被减小了。在这些实施例的一些实施例中,具有更多特权的等级可以是EL2,超级监督器于此处运行。在这些实施例中的一些实施例中,在具有较多特权的等级处运行的中断处理软件和在具有较少特权的等级处运行的中断处理软件两者都可以被配置为在非安全操作模式下运行,如先前所定义的。
[0021] 根据本发明的第二方面,提供了动态控制对用于处理进入中断的一组中断处理寄存器中的至少一些中断寄存器的访问的方法,该进入中断被路由至在来自多个执行等级中的目的地执行等级处运行的中断处理软件,该方法包括以下步骤:确定所述进入中断被路由至的目的地执行等级;授权对在所述目的地执行等级处运行的所述中断处理软件的访问,从而所述执行等级处运行的中断处理软件有权访问用于处理所述进入中断的所述中断处理寄存器中的至少一些,并且从而在所述执行等级处运行的所述中断处理软件无权访问用于处理被路由至在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
[0022] 根据第三方面,提供的数据处理设备包括:
[0023] 多个系统寄存器,该多个系统寄存器包括用于控制对进入中断的处理的一组中断处理寄存器;
[0024] 处理装置,所述处理装置用于在多个执行等级处执行软件;
[0025] 中断控制器装置,所述中断控制器装置用于将所述进入中断路由至被配置为在所述多个执行等级中的一个执行等级处运行的中断处理软件;
[0026] 寄存器访问控制装置,该寄存器访问控制装置用于根据所述进入中断被路由至的所述多个执行等级中的一个执行等级来动态控制对所述中断处理寄存器中的至少一些中断处理寄存器的访问,从而被配置为在所述执行等级处运行的中断处理软件有权访问用于处理所述进入中断的所述中断处理寄存器中的至少一些中断处理寄存器,并且从而被配置为在所述执行等级处运行的所述中断处理软件无权访问用于处理被路由至在具有更多特权的执行等级处运行的中断处理软件的第二进入中断的中断处理寄存器。
[0027] 根据本发明的第四方面,提供了用于将进入中断路由至处理电路的设备,所述处理电路被配置为在多个执行等级处执行软件,该设备包括:处理器模式检测电路,该处理器模式检测电路被配置为检测所述处理电路的当前执行模式;以及输入电路,该输入电路被配置为接收进入中断,所述进入中断针对在预期执行模式处且在预期执行等级处运行的中断处理软件;路由电路,该路由电路被配置为将所述进入中断路由至在目标执行等级处运行的中断处理软件,所述路由电路被配置为:响应于具有与所述处理电路的当前执行模式相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至在所述预期执行等级处运行的中断处理软件;以及响应于具有与所述处理电路的当前执行模式不相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至在比该预期执行等级有更多特权的预定执行等级处运行的中断处理软件。
[0028] 根据这个方面,如果进入中断打算在处理电路当前不在其中进行操作的操作模式下执行,那么进入中断被提升(promote)。中断的提升使其由在比中断通常会被处理的执行等级高的执行等级处操作的中断处理软件来处理。这可能致使处理电路将执行模式切换到进入中断所需的模式,从而允许进入中断按初始预期的被处理。可替代地,不论处理电路的执行模式并且不需要切换处理电路的模式,中断处理软件可以直接自行处理进入中断。
[0029] 根据本发明的第五方面,提供了将进入中断路由至处理电路的方法,所述处理电路被配置为在多个执行等级处执行软件,所述方法包括以下步骤:检测所述处理器的当前执行模式;以及接收所述进入中断,所述进入中断针对在预期执行模式处且在预期执行等级处运行的中断处理器;通过以下步骤将所述进入中断路由至在目标执行等级处运行的中断处理软件:响应于具有与所述处理电路的当前执行模式相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至在该预期执行等级处运行的中断处理软件;以及响应于具有与所述处理电路的当前执行模式不相符的预期执行模式的该接收到的进入中断,将所述进入中断路由至在比该预期执行等级有更多特权的预定执行等级处运行的中断处理软件。
[0030] 根据另一方面,还可以提供用于控制处理装置以执行本发明的第二到第四个方面的前述方法中的一种的计算机程序附图说明
[0031] 图1是根据一个实施例示意性地示出了数据处理设备的框图
[0032] 图2根据一个实施例示意性地示出了数据处理设备中的中断控制器的操作;
[0033] 图3A和3B根据一个实施例示意性地示出了在两种操作模式之间切换的数据处理设备中的中断控制器的操作;
[0034] 图4是根据一个实施例示出了数据处理设备的操作的流程图
[0035] 图5是根据一个实施例示出了“提升”进入中断的数据处理设备的操作的流程图;
[0036] 图6是根据一个实施例示出了在用于响应进入中断而生成或不生成虚拟中断的两种操作模式之间切换的数据处理设备的操作;以及
[0037] 图7示意性地示出了根据一个实施例操作的系统。

具体实施方式

[0038] 本文所述实施例考虑了其中能使处理器在各种执行等级(EL0-EL3)处执行的系统。EL0是具有最少特权的执行等级,并且EL3是具有最多特权的执行等级。在较高执行等级处运行的软件通常能够访问较低执行等级所使用的数据。然而,较高执行等级所用的数据通常不能由在较低执行等级处执行的软件访问。
[0039] 用户软件在执行等级EL0处执行,访客操作系统在EL1处执行,超级监督器软件在执行等级EL2处执行,并且安全监视器在执行等级EL3处运行。
[0040] 安全监控器能够控制处理器30是在安全模式下执行还是在非安全模式下执行。当处理器在非安全模式下时,它不能访问安全数据。还应该注意的是,在本实施例中没有针对执行等级EL2的安全操作模式,并且没有针对执行模式EL3的非安全操作模式。
[0041] 执行等级EL3可以访问安全数据和非安全数据两者并且控制两种状态之间的切换。
[0042] 进入中断可以根据它们的性质和目的被分成若干类。在本文所述的实施例中,考虑了三种不同的分类。
[0043] G0或群组0中断针对在EL3处操作的安全监控器。
[0044] G1ns或群组1非安全中断针对在EL2处的非安全模式下运行的超级监督器或者在EL1处的非安全模式下运行的操作系统。
[0045] G1s或群组1安全中断针对在EL1运行的安全操作系统。
[0046] 中断控制器通过发出两个中断异常FIQ和IRQ中的一个来将进入中断以信号通知处理器。
[0047] 图1示出了说明数据处理设备的实施例的框图。进入中断10由输入控制器20接收。在这个实施例中,进入中断属于G0类,并且因此用于在处理器30上、在执行等级EL3处操作的安全监控器。然而,在该实施例中,由于存储在控制寄存器40中的值,进入中断10替代地被路由至在处理器30上的执行等级EL1处运行的中断处理软件。
[0048] 通常情况下,在处理器30上的执行等级EL1处运行的中断处理软件会访问在一组系统寄存器50中的寄存器的特定子集60。为了处理进入中断10,有必要访问不同的、第二组系统寄存器70。第二组寄存器可以包括,例如,被用于以信号表示特定异常正待处理或完成待处理,比如确认寄存器。通常,因此在处理器30上的执行等级EL1处运行的中断处理软件不能访问处理进入中断10所必需的第二组系统寄存器70。
[0049] 然而,在本实施例中,进入中断10被路由至中断处理软件的方式取决于控制寄存器40的配置和处理器30的当前执行模式(安全或非安全)中一者或两者。
[0050] 特别地,针对每个中断异常FIQ和IRQ,第一安全控制寄存器SCR指示中断异常是否被路由至在EL3处运行的中断处理软件。
[0051] 如果中断异常没有被路由至在EL3处运行的中断处理软件,并且如果处理器在安全模式下运行,那么中断异常被发送至在EL1处以安全模式运行的中断处理软件,因为EL2没有安全模式。
[0052] 如果中断异常没有被路由至在EL3处运行的中断处理软件,并且处理器以非安全模式运行,那么根据由第二超级监督器控制寄存器HCR指示的值,中断异常被路由至在EL1或EL2处以非安全模式运行的中断处理软件。如寄存器SCR一样,针对每个中断异常设置不同的值是可能的。
[0053] 控制寄存器40的配置可以由在处理器30上执行的软件控制。例如,为SCR设置的值可以由在EL3处运行的安全监视器设置-从而使得安全监视器能够推迟处理在较低执行等级处运行的中断处理软件的特定中断异常。类似地,具体的中断异常是由在EL2处运行的超级监督器处理还是由在EL1处运行的访客操作系统处理可以由超级监督器指定。因此,通过在控制寄存器中设置具体的值来使得在不同执行等级处的软件能够处理进入中断,提高了此类系统的灵活性。
[0054] 在该示例中,寄存器访问控制80授权在执行等级EL1处以安全操作模式运行的中断处理软件访问一组系统寄存器50中的第二(附加)组系统寄存器70。于是,在执行等级EL1处以安全操作模式运行的中断处理软件能够处理进入中断10。
[0055] 因此,可以看到授权给在处理器30上的执行等级EL1处以安全模式运行的中断处理软件的访问取决于由中断控制器20实施的路由,这继而可以取决于控制寄存器40的值。对系统寄存器50的访问的变化使在处理器30中的执行等级EL1处以安全模式运行的中断处理软件能够处理进入中断10。因此,给予在处理器30的每个执行等级处运行的中断处理软件的访问是被动态确定的,从而使得进入中断在多个不同的执行等级处被处理。换言之,在特定执行等级处运行的中断处理软件不只访问固定一组系统寄存器50。而是根据进入中断到不同执行等级的路由来改变中断处理软件到系统寄存器50的访问。
[0056] 此外,尽管授权给在处理器30上的执行等级EL1处以安全模式运行的中断处理软件的访问被调整了,但是不需要调整在其它执行模式或执行等级处的任意其它中断处理软件的访问。具体地,尽管在执行等级EL2处以安全模式运行的中断处理软件在比在执行等级EL1处运行的中断处理软件更高的执行等级处运行,但是不需要调整在执行等级EL2处的中断软件的访问。
[0057] 图2示出了其中包括提升进入中断10的中断控制器20的数据处理设备的实施例。进入中断10由中断控制器20中的输入电路100接收并且属于指示中断是打算由在安全EL1处运行的安全操作系统处理的G1S类。在一组系统寄存器50中的确认寄存器90指示进入中断10是待处理的并且还指示(在本实施例中)处理器30的当前执行模式与进入中断10所需的模式不匹配。在该示例中,进入中断10要求安全操作模式,该安全操作模式与在非安全操作模式中的处理器30不兼容。使得中断控制器20可得知进入中断10不在正确的操作模式中的事实。
[0058] 确认寄存器是从中断处理软件读取,并且所返回的值是针对当前状况的有效中断ID或者是特殊标识符,该特殊标识符是指示是否有针对安全状态的待处理中断、针对非安全状态的待处理中断、或不再有任何待处理的中断的值中的一个。在处理器未以提取或实际查看待处理的中断所需的足够高的等级运行的情况下,或者在待处理的中断已经被提取或者由于某种原因而不再待处理的情况下,可能发生对不再有待处理中断的返回。
[0059] 通常,进入中断10达到中断控制器20处会引起中断异常IRQ的生成,中断异常IRQ会被发送至在执行等级EL1处以安全操作模式运行的中断处理软件。然而,因为在本示例中,处理器30当前不在安全操作模式下运行,所以不可能在此时处理这个中断异常。因此,在中断控制器20中的路由电路110通过生成中断异常FIQ使得进入中断10被“提升”,进入中断10被路由至在处理器30上的执行等级EL3处以安全操作模式运行的中断处理软件。
[0060] 在本实施例中,在执行等级EL3处以安全模式运行的中断处理软件总是能够直接对内部FIQ中断作出响应。因此,可以使得在比进入中断10预期的执行等级有更多特权的执行等级处的中断处理软件对中断控制器20接收到与处理器当前的操作模式不兼容的进入中断10做出反应。
[0061] 在一些实施例中,在执行等级EL3处运行的中断处理软件会通过改变处理器30的模式进行反应,改变处理器30的模式是通过以下方式进行的:保存以安全操作模式执行的任意软件的状态、清除某些缓存或者中间存储介质、并且然后切换处理器的模式。当处理简单中断时该过程可能是耗时的。因此,在一些情况下,在执行等级EL3处运行的中断处理软件可以被替代为自行处理进入中断。在这样的情形下,中断处理软件不需要在安全模式和非安全模式之间改变处理器30的操作模式。
[0062] 本领域技术人员将意识到存在若干不同的条件将指示在执行等级EL3处运行的中断处理软件是否会引起处理器30的模式在安全模式和非安全模式之间改变、或者在执行等级EL3处运行的中断处理软件是否自行处理中断。例如,此类决定可以基于进入中断的重要性、当前在处理器上操作的执行等级、或进入中断的复杂性来做出。特别地,如果处理器先前在低执行等级处运行,如果进入中断特别复杂并且不是至关重要的,那么处理器30可以在安全模式和非安全模式之间改变模式。
[0063] 图3A和3B示出在图3A所示的第一设置和图3B所示的第二设置之间切换中断控制器的模式的过程。
[0064] 在图3A中,进入中断10由中断控制器20接收并且作为中断异常IRQ被转发至在处理器30上的执行等级EL1处以非安全模式运行的中断处理软件。
[0065] 在图3B中,进入中断10由中断控制器20接收并且又作为中断异常IRQ被转发。然而,在该实施例中,中断异常IRQ由在执行等级EL2处以非安全模式运行的中断处理软件接收。然后,虚拟中断由在执行等级EL2处以非安全模式运行的中断处理软件生成并且被转发至在执行等级EL1处以非安全模式运行的中断处理软件。在该实施例中,所生成的虚拟中断必须被定义为去往超级监督器或访客OS的群组1非安全中断,因为在该实施例中没有安全EL2。
[0066] 这两种设置使其可能影响在执行等级EL1处以非安全模式运行的中断处理软件对进入中断10是否有物理访问权,或者在有更多特权的执行等级EL2处以非安全模式运行的中断处理软件是否对进入中断10有物理访问权,以及在执行等级EL1处以非安全模式运行的中断处理软件对进入中断10是否只有虚拟访问权。
[0067] 例如,由一硬件产生的进入中断10可以由在执行等级EL1处运行的访客操作系统直接处理,在这种情况中,访客操作系统可以物理访问进入中断10,而不需要中间步骤。
[0068] 可替代地,此类中断可以被指向在执行等级EL2处运行的超级监督器软件,致使虚拟中断由超级监督器软件生成并且被路由至在执行等级EL1处运行的访客操作系统。在这种情况下,访客操作系统对进入中断10只有虚拟访问权,并且对该中断的访问最终由在执行等级EL2处运行的超级监督器控制。在软件的不同片段可争夺该硬件或直接访问硬件不可信的情况下,该过程是必要的。然而,与访客操作系统物理访问进入中断10的方案相比,生成虚拟中断的过程有可能消耗额外的处理资源。
[0069] 根据由一组控制寄存器40中的寄存器返回的值,中断控制器20可以在这两种设置之间切换。如先前所讨论的,当处理器30在非安全操作模式下运行时,并且如果中断异常没有被路由至EL3,那么寄存器HCR的值可以被用于指示中断异常是否被路由至EL1或EL2。此外,该寄存器指示接收中断异常的软件是否应该生成虚拟中断并且将该虚拟中断转发至在执行等级EL1处以非安全操作模式运行的中断处理软件。生成由在有较低特权的执行等级处运行的软件处理的虚拟中断的可以是处理器密集型的。因为最终由在较低等级处运行的中断处理软件处理的中断必须由具有更多特权的中断处理软件以虚拟中断的形式重现。然而,在不扩大在具有较少特权的执行等级处运行的软件的特权的情况下,创建虚拟中断允许具有较少特权的中断处理器处理中断。因此,超级监督器将根据将随着在EL1等级处执行的具体软件变化的安全性和性能需求来设置控制寄存器40中的值。
[0070] 下表针对中断异常IRQ指示不同寄存器值和处理器模式对进入中断的路由的影响。
[0071]
[0072] 应该注意的是安全控制寄存器SCR和超级监督器控制寄存器HCR两者都包括以上所示的、控制IRQ的路由的位和控制FIQ的路由的另一个位(此表中未示出)。FIQ中断SCR.FIQ或HCR.FIQ的控制位控制群组0中断的路由,IRQ中断SCR.IRQ或HCR.IRQ的控制位定义群组1的安全中断和非安全中断两者如何被路由。这种分割是有可能的,因为在需要的情况下IRQ可以被提升为FIQ。如已经提到的,这些设置可以针对IRQ和FIQ中断异常两者进行独立设置。
[0073] 因此,有可能在两种模式之间动态切换并且从而动态影响进入中断10是由中间方处理还是被直接路由至在正确的执行等级处运行的相关软件。
[0074] 图4是根据一个实施例示出了数据处理设备的操作的流程图。
[0075] 在步骤S10中,确定进入中断10(例如图1或2中所示)将被路由至哪个执行等级。此类确定可以从由一组控制寄存器40中的寄存器返回的值和进入中断10的类型的组合做出。
[0076] 在步骤S20处,访问被动态地授权给在进入中断10将被路由至的执行等级处运行的中断处理软件,从而该中断处理软件能够处理进入中断10。
[0077] 根据上文,被授权给中断处理软件的访问不是被静态确定的。也就是说,在每个执行等级处运行的中断处理软件不访问一组系统寄存器50中的寄存器的固定(即,静态)集合。而是,中断处理软件访问的系统寄存器50中的寄存器的集合是基于进入中断的路由的来确定决定的。
[0078] 图5是根据一个实施例示出了提升进入中断10(如图1所示)的数据处理设备的操作的流程图。
[0079] 在步骤S30中,进入中断10由中断控制器20接收。
[0080] 在步骤S40中,确定处理器30的当前执行模式。
[0081] 在步骤S50中,确定处理器30的当前执行模式是否与进入中断10的预期执行模式相同。例如,此确定可以作为读取在系统寄存器50中的确认寄存器90的结果而作出。
[0082] 如果当前执行模式和预期执行模式相同,那么操作进行至步骤S60,在步骤S60中,进入中断10被转发至预期中断处理器。
[0083] 可替代地,如果预期执行模式和当前执行模式不同,那么进入中断10被路由至在执行等级EL3处运行的中断处理软件。
[0084] 在执行等级EL3处运行的中断处理软件可以是,例如安全监视器。在该实施例中,在执行等级EL3处运行的安全监视器直接自行处理中断。然而,在其它实施例中,安全监视器可以使得处理器30的当前执行模式被切换。例如,处理器30的执行模式可以从安全模式切换至非安全模式,反之亦然,从而处理器30的执行模式与进入中断30的预期执行模式相匹配。
[0085] 因此,要求处理器30当前提供的执行模式的进入中断10可以被立即转发至相关中断处理软件。然而,如果处理器30不在相关执行模式下运行,那么“提升”发生使进入中断被路由至具有最多特权的执行等级。此处,进入中断10可以被立即处理或者切换处理器的模式,从而进入中断10可以被转发至最初预期的中断处理软件。
[0086] 图6是根据一个实施例示出了生成虚拟中断的数据处理设备的操作的流程图。
[0087] 在步骤S80处,确定中断控制器20是否在转发操作模式中。在转发操作模式中,中断控制器20被配置为直接将进入中断10(比如图1和图2所示)转发至适当的执行等级,从而允许中断处理软件在适当的执行等级处物理访问进入中断10。该操作模式可以作为由例如在一组控制寄存器40中的确认寄存器90返回的值的结果被确定。
[0088] 如果中断控制器20在转发操作模式中,那么在S90,进入中断10被直接路由至在执行等级EL1处以安全操作模式运行的处理软件。
[0089] 可替代地,如果中断控制器20不在转发操作模式中,那么在步骤S100,进入中断被路由至在执行等级EL2处以非安全操作模式运行的中断处理软件。接下来,在步骤S110处,虚拟中断由在非安全执行等级EL2处运行的软件生成,并且被转发至在非安全执行等级EL1处运行的中断处理软件。
[0090] 根据上文,有可能在第一设置和第二设置之间切换中断控制器20的操作模式,在第一设置中进入中断10被直接转发至在特定执行等级处运行的中断处理软件,并且在第二设置中进入中断10被转发至具有更多特权的执行等级处并且虚拟中断由在该具有更多特权的执行等级处的中断处理软件生成并且被发送至在较低特权等级处运行的中断处理软件。因此,对中断处理软件而言,物理访问进入中断10,或者虚拟访问该进入中断是可能的。
[0091] 图7示意性地示出了进入中断被生成并且被发送至路由电路110的示例实施例。其中,进入中断被用于按需求生成中断异常FIQ/IRQ。这些中断异常被发送至处理器30。特别地,根据中断异常的性质,中断异常被发送至在一个执行模式(安全或非安全)中的一个执行等级处运行的中断处理软件。
[0092] 图7示出了根据由寄存器SCR针对IRQ和FIQ中断异常所指示的值以及根据处理器30的当前操作状态(该操作状态被表示为当SCR_NS是1时在非安全模式并且当SCR_NS是0时在安全模式),不同种类的中断被发送至在不同执行等级处运行的不同的中断处理软件。就此而言,安全控制寄存器SCR存储用于控制FIQ中断的位SCR.FIQ、用于控制IRQ中断的位SCR.IRQ、以及指示处理器的当前模式(即,安全模式或非安全模式)的位SCR.NS。
[0093] 具体地,在该示例中因为针对FIQ中断异常的SCR.FIQ被设为1,所以生成FIQ中断异常的G0中断被路由至EL3。
[0094] 此外,因为针对IRQ的SCR.IRQ被设为0,并且因为处理器当前在非安全操作模式(SCR.NS=1),所以G1s中断被“提升”,使得FIQ中断被生成并且被发送到EL3。相反地,G1ns中断使IRQ中断被发送至在执行等级EL2处运行的中断处理软件,因为处理器是在所需模式(即,非安全)下运行的。
[0095] 尽管已经参考附图详细描述了本发明的示例实施例,但是应该理解本发明不限于这些精确的实施例,并且在不背离由所附权利要求定义的本发明的精神和范围的情况下,本领域技术人员可以在其中产生各种变化和修改
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈