首页 / 专利库 / 车轮和轮胎 / 安全模式 / 安全模式状态的数据访问追踪

安全模式状态的数据访问追踪

阅读:402发布:2020-05-12

专利汇可以提供安全模式状态的数据访问追踪专利检索,专利查询,专利分析的服务。并且本案提供一种 数据处理 装置,当处理 电路 (154)进入与函数调用关联的 安全模式 时,装置使用标记电路(174)以将 访问 追踪标记(SFPA)设定至第一值,且在操作于与该函数调用关联的安全模式下的处理电路检测到对预定状态数据进行至少一个类型的第一访问之后,切换访问追踪标记至第二值,该预定状态数据如浮点寄存器数据。随后,访问追踪标记可与延迟保护程序指令(VLSTM)及延迟加载程序指令(VLLDM)关联使用,以控制是否执行状态数据的推送操作及状态数据的恢复操作,以防止在非安全模式下对该状态数据的访问。,下面是安全模式状态的数据访问追踪专利的具体信息内容。

1.一种用于处理数据的装置,所述设备包括:
处理电路,用于在第一安全模式下及在第二安全模式下操作;以及
标记电路,用于提供访问追踪标记,当所述处理电路进入与函数调用关联的所述第一安全模式时,所述访问追踪标记具有第一值,其中所述处理电路经配置以在所述处理电路在与所述函数调用关联的所述第一安全模式下操作时由所述处理电路检测到对预定状态数据进行至少一个类型的第一访问之后,将所述访问追踪标记切换至第二值。
2.如权利要求1所述的装置,其中所述标记电路经配置以实施以下各项中的一项:
在进入所述第一安全模式之后,将所述访问追踪标记设定至所述第一值,并且在检测到所述第一访问之后将所述访问追踪标记从所述第一值变更至所述第二值,无论所述处理电路是在所述第一安全模式下操作还是在所述第二安全模式下操作;
在进入所述第一安全模式之后,将所述访问追踪标记设定至所述第一值,并且在检测到所述第一访问之后及所述处理电路在所述第一安全模式下操作时将所述访问追踪标记变更至所述第二值;以及
在进入所述第二安全模式之后,将所述访问追踪标记设定至所述第一值,且在检测到所述第一访问之后及所述处理电路在所述第一安全模式下操作时将所述访问追踪标记变更至所述第二值。
3.如权利要求1或2中的一项所述的装置,其中所述标记电路响应于进一步的函数调用,所述进一步的函数调用将所述处理电路从在所述第一安全模式下操作切换至在所述第二安全模式下操作,以将所述访问追踪标记的当前值保存至访问追踪标记数据储存设备。
4.如权利要求3所述的装置,其中所述标记电路响应于来自所述进一步的函数调用的函数返回,所述函数返回将所述处理电路从在所述第二安全模式下操作切换至在所述第一安全模式下操作,以将所述访问追踪标记恢复至来自所述访问追踪标记数据储存设备的所述当前值。
5.如权利要求3和4中的任一项所述的装置,其中所述访问追踪标记数据储存设备是栈存储器
6.如前述权利要求中的任一项所述的装置,包括:
安全状态保护电路,用于在至少以下各情况中触发针对所述预定状态数据的保护响应:
所述处理电路在所述第二安全模式下操作;
在切换至与函数调用关联的所述第二安全模式之前,所述访问追踪标记在所述第一安全模式中操作时具有所述第二值;以及
所述处理电路尝试访问所述预定状态数据,其中所述保护响应包括清除所述预定状态数据的第一子集。
7.如权利要求6所述的装置,其中所述保护响应包括保存所述预定状态数据的第二子集至状态数据储存器。
8.如权利要求6或7中的任一项所述的装置,其中如果所述处理电路在以下情况中的一个的情况下尝试访问所述预定状态数据的所述第一子集,所述处理电路响应于延迟保护程序指令的执行以准备所述状态保护电路执行所述保护响应:
所述访问追踪标记具有所述第二值;以及
执行所述延迟保护程序指令。
9.如权利要求6、7、8中的任一项所述的装置,其中所述保护响应包括将保护标记设定至指示所述保护响应的触发的值。
10.如权利要求9所述的装置,其中所述保护标记是以下各项中的一个:
专用保护标记;以及
所述访问追踪标记。
11.如权利要求8、9、10中的任一项所述的装置,其中所述延迟保护程序指令的所述执行触发所述保护响应。
12.如权利要求7、9、10中的任一项所述的装置,其中所述保护响应包括将保护标记设定至指示所述保护响应的触发的值,且在以下情况下,所述处理电路响应于延迟加载程序指令的执行以从所述状态数据储存器加载所述预定状态数据的所述第二子集:
所述处理电路在所述第一安全模式下操作;以及
所述保护标记具有指示对所述保护响应的触发的所述值。
13.如权利要求12所述的装置,其中所述预定状态数据的所述第二子集的所述加载进一步的取决于具有所述第二值的所述访问追踪标记。
14.如权利要求8、12、13中的任一项所述的装置,其中如果所述处理电路在以下情况中的一个的情况下响应于延迟保护程序指令的执行以清除所述状态保护电路的准备:
所述处理电路在所述第一安全模式下操作;以及
所述保护标记具有指示所述保护响应的触发的值之外的值。
15.如权利要求9和10中的任一项所述的装置,其中所述处理电路响应于延迟无保护程序指令的执行,以在以下情况下禁用所述保护响应:
所述处理电路在所述第一安全模式下操作;以及
所述保护标记具有指示所述保护响应的触发的值之外的值。
16.如前述权利要求中的任一项所述的装置,包括浮点寄存器寄存器,所述寄存器储存浮点值,其中所述预定状态数据包括所述浮点值。
17.如权利要求16所述的装置,其中所述处理电路对所述浮点值的所述访问包括执行浮点指令。
18.如权利要求16或17中的任一项所述的装置,其中浮点配置数据规定与由所述处理电路执行浮点处理操作关联中的一个或多个参数,并且当所述访问追踪标记具有所述第一值时在所述安全状态下执行所述浮点指令之后,所述浮点配置数据被设定为默认浮点配置数据。
19.如权利要求7和1、6、8-18中的任一项所述的装置,其中所述状态数据储存器包括栈存储器。
20.如权利要求7和19中的任一项所述的装置,其中准备所述状态保护电路,以通过在所述栈存储器内分配储存区域以储存所述预定状态数据的所述第二子集,并向所述状态保护电路提供所述储存区域的指针地址来执行所述保存。
21.如权利要求20所述的装置,其中所述延迟保护程序指令具有参数,所述参数规定所述设备的包括所述预定状态数据的所述第一子集的状态数据。
22.如权利要求12、14和19中的任一项所述的装置,其中所述状态数据储存器包括栈存储器,并且在以下情况中的一个的情况下,所述处理电路响应于所述延迟加载程序指令的执行以去分配所述栈存储器内的所述储存区域:
所述延迟加载程序指令从所述栈存储器加载所述预定状态数据;
所述延迟加载程序指令清除所述状态保护电路的所述准备;以及
执行了所述延迟加载程序指令。
23.如权利要求12、13、22中的任一项所述的装置,其中所述延迟加载程序指令具有参数,所述参数规定所述设备的何一种状态数据包括所述预定状态数据的所述第二子集。
24.如前述权利要求中的任一项所述的装置,其中所述第一安全模式比所述第二安全模式更安全。
25.一种处理数据的方法,包括:
在第一安全模式及第二安全模式中的项下执行处理;
当处理电路进入与函数调用关联的所述第一安全模式时,提供具有第一值中的访问追踪标记;以及
在所述处理电路在与所述函数调用关联的所述第一安全模式中操作时由所述处理电路检测到对预定状态数据进行至少一个类型的第一访问之后,将所述访问追踪标记切换至第二值。
26.一种储存在有形计算机程序储存介质上的计算机程序,用于控制如权利要求1所述的设备的操作,所述计算机程序包括延迟保护程序指令,所述指令在所述第一安全模式下操作时可执行以准备状态保护电路,从而如果所述处理电路在所述第二安全模式下操作时尝试访问所述预定状态数据的第一子集,则针对所述预定状态数据执行保护响应。
27.一种储存在有形计算机程序储存介质上的计算机程序,用于控制如权利要求12所述的设备的操作,所述计算机程序包括延迟保护程序指令,在以下情况下,所述指令可执行以控制所述处理电路以从所述状态数据储存器加载所述预定状态数据的所述第二子集:
所述处理电路在所述第一安全模式下操作;以及
所述保护标记具有指示对所述保护响应的触发的所述值。

说明书全文

安全模式状态的数据访问追踪

技术领域

[0001] 本公开涉及数据处理系统领域。更具体地,本公开涉及可在第一安全模式及在第二安全模式下操作的数据处理系统

背景技术

[0002] 已知提供具有安全模式及非安全模式的数据处理系统,如由ARM有限公司设计的支持TrustZone架构特征的处理器。在该一种系统内,依赖于在安全模式中执行的处理的状态数据不应在非安全模式下为可访问的(除非明确要求如此)。发明内容
[0003] 本公开中至少些实施例提供用于处理数据的设备,设备包括:处理电路,用于在第一安全模式下及在第二安全模式下操作;以及标记电路,用于提供访问追踪标记,当处理电路进入与函数调用关联的第一安全模式时,该访问追踪标记具有第一值,其中该处理电路经配置以在处理电路在与该函数调用关联的该第一安全模式下操作时由该处理电路检测到对预定状态数据进行至少一个类型的第一访问之后,将该访问追踪标记切换至第二值。
[0004] 本公开中至少些其它实施例提供用于处理数据的方法,该方法包括:在第一安全模式及第二安全模式中的项下执行处理;当处理电路进入与函数调用关联的该第一安全模式时,提供具有第一值的访问追踪标记;以及在处理电路在与该函数调用关联的该第一安全模式下操作时由该处理电路检测到对预定状态数据进行至少一个类型的第一访问之后,将访问追踪标记切换至第二值。
[0005] 本公开的至少些其它实施例提供储存在有形计算机程序储存介质上的计算机程序,在该储存介质中,计算机程序包括延迟保护程序指令及/或延迟加载程序指令中的至少一个。
[0006] 本公开的上述及其它目标、特征和优势将在参考附图的说明性实施例的以下详细说明中显而易见。

附图说明

[0007] 图1示意地图示非安全处理与安全处理之间的函数调用序列,及用于取决于安全模式处理来保护浮点状态数据的关联操作;
[0008] 图2是流程图,该图示意地示出电路,该标记电路在有从安全模式到非安全模式的函数调用时保存安全浮点访问标记;
[0009] 图3是流程图,该图示意地示出电路,该标记电路在有从非安全模式到安全模式的函数返回时恢复安全浮点访问标记;
[0010] 图4A及图4B是流程图,该图示示意地图示可重置安全浮点访问标记的两个示例性替代方法;
[0011] 图5是流程图,该图示意地图标对标记电路及状态保护电路的浮点访问的硬件响应;
[0012] 图6是流程图,该图示意地图标延迟保护程序指令,该延迟保护程序指令触发状态保护电路的准备;
[0013] 图7是流程图,该图示意地图标延迟加载程序指令,该延迟加载程序指令触发浮点状态数据恢复操作及保护标记的清除;
[0014] 图8示意地图示处理设备,该设备包括标记电路及状态保护电路,以用于支持提供访问追踪标记及保护标记以作为取决于安全模式处理来保护浮点状态数据的部分;以及[0015] 图9示意地图示示例性替代实施例,安全浮点访问标记可通过这些实施例响应于不同触发而被重置及设定。

具体实施方式

[0016] 图1示意地图标响应于函数调用与函数返回连同对访问追踪标记及保护标记关联控制而在非安全模式与安全模式之间进行的处理切换,及浮点寄存器状态数据来往于栈存储器的保存及恢复操作。如图所示,处理以非安全函数fn0开始,此函数对安全函数fn1进行函数调用。在进行此函数调用的时,存在切换离开非安全模式及切换进入安全模式。此举触发将访问追踪标记(安全浮点访问标记(secure floating point access flag;SFPA))设定至第一值,例如“0”。随后,在安全模式中通过使用函数fn1的处理前进直至此函数fn1对浮点寄存器进行访问。此举由标记电路(标记控制器)检测到,该标记电路将访问追踪标记SFPA从第一值变更至第二值,例如“1”。当访问追踪标记已具有第二值时,对浮点寄存器的随后访问将保持访问追踪标记具有该第二值。
[0017] 当安全模式函数fn1意欲对非安全函数进行函数调用时,该函数fn1负责执行延迟保护程序指令VLSTM以作为其为退出安全模式所作准备中的部分。由处理器的处理电路执行延迟保护指令VLSTM具有数个操作。如果访问追踪标记SFPA具有第二值(即被设定在“1”值,该值指示在安全函数fn1处理期间已发生浮点寄存器访问),则准备保护响应并将保护标记LSPACT设定至值,此值可指示此保护响应已经准备好。保护响应准备包括分配栈存储器内的储存空间,该栈存储器受保护以免于非安全访问,如储存浮点寄存器状态数据需要,则将使用栈存储器。此时并不将浮点寄存器状态数据保存至该栈,而是在栈中保留该数据将占据的空间,且保存针对栈内该分配空间的指针
[0018] 如果在执行延迟保护程序指令时,访问追踪标记SFPA具有第一值(即被设定在“0”值,该值指示安全函数fn1没有进行任何浮点访问),则没有与需要保护的安全函数fn1关联的安全浮点状态数据,且相应地不准备保护响应并不设定保护标记LSPACT(无需在安全栈存储器中分配空间,且不设定指针)。除延迟保护程序指令VLSTM的执行的外,硬件通过以下方式响应于从安全模式切换至非安全模式的函数调用:经由推送操作,将访问追踪标记SFPA在当时对于安全函数fn1的值保存至安全函数fn1的安全栈(例如储存在非安全模式下不可访问的存储器区域中)。
[0019] 在图1的示例中进行从安全函数fn1向非安全函数fn2的函数调用。安全函数fn1的任何安全浮点状态数据最初仍存在于浮点寄存器内。保存此浮点状态数据且清除浮点状态数据默认并未消耗时间及能量。如果非安全函数fn2不进行任何浮点访问,则当继续安全函数fn1时,浮点状态数据将仍在原位,且将由于避免对恢复浮点状态数据的需求而节省更多能量及时间。
[0020] 然而,如果在LSPACT标记设定至“1”的同时尝试访问浮点寄存器(例如通过在非安全函数fn2中执行的浮点指令),则安全状态保护电路用于将安全函数fn1的浮点状态数据保存至安全状态存储器内已分配的储存区域,该区域由先前执行的延迟保护指令VLSTM所设置(准备),随后在允许非安全函数fn2访问浮点寄存器之前清除浮点寄存器。安全状态保护电路在检测到已经设定保护标记LSPACT(例如具有“1”值)时执行先前由延迟保护VLSTM所准备的保护响应,此设定指示浮点寄存器确实包含取决于由安全函数fn1所作处理的状态数据,且已通过在安全栈内分配空间并保存对所分配空间的指针来为该浮点状态数据准备保护响应,该指针用于保存安全函数fn1的浮点状态数据的推送操作。
[0021] 当已执行保护响应时,保护标记LSPACT重置(例如重置为“0”值),因为已经保存并清除安全浮点状态数据,且相应地,在非安全函数fn2处理期间出现的随后浮点访问无须触发针对该安全浮点状态数据的进一步的保护响应。
[0022] 如图1所图标,非安全函数fn2由执行函数返回而结束,该函数返回使处理返回至安全函数fn1。硬件通过恢复访问追踪标记SFPA值来响应此函数返回,在退出安全函数fn1之后,该值被置于安全栈上。此访问追踪标记SFPA恢复至所继续的安全函数fn1指示安全函数fn1内的先前处理是否已向浮点寄存器执行任何访问,及相应地,当从安全函数fn1进行函数调用时是否存在某些安全浮点状态数据。安全函数fn1在继续时负责执行延迟加载指令VLLDM。此举具有图1中以假码图示的操作。更具体地,如果访问追踪标记SFPA具有第二值(例如被设定至“1”),则针对是否仍设定保护标记(例如LSPACT为“1”)进行决定。如果保护标记仍被设定,则此举指示自安全函数fn1执行VLSTM指令以来还未触发保护响应。如果是此情况,则无需对安全浮点状态数据进行恢复,因为安全浮点状态数据将仍存在于浮点寄存器内,因为在介入处理期间还未对该浮动寄存器进行尝试访问。保护标记将重置(LSPACT=0)且无需执行进一步的处理。
[0023] 反之,如果在执行延迟加载程序指令VLLDM时访问追踪标记具有第二值(例如SFPA=“1”)且保护标记未被设定(例如LSPACT=“0”),则此举指示当退出安全函数fn1时有安全浮点状态数据就位,且在执行VLSTM之后及在执行VLLDM指令之前都触发了保护响应。相应地,此环境中的VLLDM程序指令触发恢复响应,该恢复响应从安全栈(弹出)内恢复安全浮点状态数据,该安全栈被保存的指针值指示为浮点寄存器弹出操作。
[0024] 以此方式,将可见,当处理电路进入与函数调用关联的安全模式(从非安全函数fn0向安全函数fn1进行的切换)时,标记电路提供具有第一值的访问追踪标记SFPA(例如SFPA=“0”)。随后,标记电路用于监测在安全函数fn1处理期间发生的对浮点寄存器的访问,且如果发生浮点寄存器访问则监测访问追踪标记向第二值(SFPA=“0”)的切换。被追踪的浮点寄存器访问可采用对彼等浮点寄存器进行任何读取或写入访问的形式。某类型的访问无需切换访问追踪标记值即可执行,因为该等访问不产生某一种浮点状态数据,该浮点状态数据包含任何取决于具有可能有损潜在安全的方式的安全模式处理的信息。因此,被追踪的访问具有至少一个类型。以此方式提供的访问追踪标记允许诸如延迟保护及延迟加载的机制,该等机制先前描述为经实施以便向状态数据提供保护,而不会在不需要此保护时导致无谓的时间及能量额外消耗。将理解,图1示例已经结合状态数据进行描述,该状态数据即为浮点寄存器数据。可能相同机制可用于保护与安全模式处理关联的其它形式的状态数据,如SIMD寄存器数据。
[0025] 本领域技术人员将理解,尽管图1表示简单的函数调用树,但本发明可用于在复杂函数调用树中有效保护安全状态。具体而言,安全函数fn1中的处理可分为多个函数(可能在不同时间被编译),使得处理对非安全函数fn2的函数调用的编译程序可能无法察觉自fn1开始时进入安全状态以来发生的全部处理。因此,编译程序往往难以或不可能知道FP寄存器是否已被安全码访问。
[0026] 图2是流程图,该图示意地示出电路在保存访问追踪标记SFPA时的操作。在步骤100中,处理等待直至检测到将系统从安全模式切换至非安全模式的函数调用。当检测到该一种函数调用时,处理前进至步骤102,在该步骤中,将访问追踪标记SFPA当前值保持至安全栈存储器,随后,处理返回步骤100以等待下安全向非安全函数的调用。
[0027] 图3是流程图,该图示意地示出电路在恢复访问追踪标记时的操作。在步骤104中,处理等待直至检测到从非安全模式向安全模式的函数返回。当检测到该一种返回时,步骤106用于经由弹出操作从安全栈恢复访问追踪标记SFPA。
[0028] 其它示例性实施例也是可能的,如其中由在VLLDM指令之后执行的单独指令执行栈空间解除分配,且VLLDM采用寄存器参数,该参数规定可能已保存浮点状态位置
[0029] 图4A示出电路可如何重置访问追踪标记的第一示例。在步骤108中,标记电路等待直至检测到从非安全模式到安全模式的函数调用。当检测到该一种函数调用时,步骤110用于将访问追踪标记SFPA重置为第一值(例如SFPA=“0”)。随后,处理返回步骤108。此类访问追踪标记重置可例如与以下机制关联使用:该机制在发生对安全浮点数据的第一随后访问时(无论处理电路在当时是处于安全模式还是非安全模式)或当处理电路在安全模式中操作时对安全浮点状态数据发生第一访问时,将访问追踪标记(例如SFPA=“1”)设定为第二值。访问追踪标记可有多一种不同的方式被控制以经设定及重置。这种控制的目的是访问追踪标记在对安全模式处理的调用之后具有第一值,直至在安全处理期间发生对浮点状态数据的第一访问,在此之后,访问追踪标记设定为第二值。
[0030] 图4B是流程图,该图示出电路可如何控制访问追踪标记重置的第二示例。在步骤112中,处理等待直至从安全模式向非安全模式进行函数调用,或从安全模式向非安全模式进行函数返回。当检测到该一种函数调用或函数返回时,步骤114用于将访问追踪标记设定至第一值(例如SFPA=“0”)。该一种重置机制可关联机制使用,该机制在检测到对浮点状态数据的第一访问之后设定访问追踪标记,该第一访问在系统随后在安全模式下操作时发生。
[0031] 图5是流程图,该图示意地图示对尝试访问浮点状态数据的硬件响应(由标记电路及安全状态保护电路实施)。在步骤116中,处理等待直至尝试对一个或多个浮点寄存器进行访问,也即检测到处理电路对预定状态数据进行至少一个类型的访问的示例。当检测到该一种尝试访问时,步骤118决定当前是否设定保护标记LSPACT(例如LSPACT=“1”)。如果设定保护标记,则步骤120用于将当前浮点寄存器内容储存至安全栈内已分配的储存区域,如该已分配的储存区域的指针地址所指示。储存区域的分配及对该已分配储存区域的适当指针的产生先前已通过执行延迟保护程序指令而设置(准备),如先前所述。
[0032] 在步骤120之后,步骤122用于清除现已保存的浮点寄存器。随后,步骤124用于重置保护标记(例如设定LSPACT=“0”)。此指示所准备的任何保护操作现已被实施,且因此,如果对安全浮点状态数据进行最后的访问尝试,则无需重复该操作。
[0033] 在步骤124之后,或如果步骤118中的决定是未设定保护标记,则处理前进至步骤126,在步骤126中针对处理器当前是否在安全模式中操作做出决定。如果处理器在安全模式下操作,则步骤128决定访问追踪标记SFPA当前是否具有第一值(例如SFPA=“0”)。如果访问追踪标记具有第一值,则此指示在步骤116中检测的访问是在安全模式处理期间发生的第一浮点访问,且因此,步骤130用于将浮点配置(例如舍入模式、浮点异常处理等等)设定至默认配置,且将访问追踪标记切换至第二值(例如SFPA=“1”)。在步骤130之后,或在步骤126及128之后,如果该等步骤决定为否定,则处理前进至步骤132,在步骤132中,允许步骤116中尝试的浮点访问。随后,处理返回步骤116,将等待对浮点寄存器访问的下一次尝试。
[0034] 图6是流程图,该图示意地图标延迟储存程序指令(延迟保护程序指令)的执行如何触发状态保护电路的准备以执行保护响应(如需要)。在步骤134中,检测到延迟储存程序指令VLSTM的译码。随后,步骤136决定访问追踪标记是否具有第二值(例如SFPA=“1”)。如果访问追踪标记不具有第二值,则没有安全浮点状态数据需要被保护,且因此,无需进行准备,而处理返回步骤134。然而,如果访问追踪标记具有第二值,则处理前进至步骤138,在步骤138中,设定保护标记(保护被指示为待命,而尚未被触发)。随后,如果此浮点寄存器状态数据随后被检测到是必需的,步骤140用于分配安全栈中的空间以用于待保存的浮点寄存器状态数据(或VLSTM指令的参数中所规定的其它数据)。此外,设置对安全栈内该分配空间的指针,随后处理返回步骤134以等待下一延迟储存程序指令。
[0035] 其它示例性实施例也是可能的,如其中VLSTM指令用于触发状态保护电路以立刻推送安全浮点状态数据的实施例。另选项是在VLSTM指令之前执行的单独指令用于分配栈空间,且VLSTM采用规定分配空间的位置的寄存器参数。
[0036] 图7示意地图标对延迟加载程序指令执行的响应。在步骤142中,延迟加载程序指令(lazy-load program instruction;VLLDM)被解碼。随后,步骤144决定访问追踪标记SFPA是否具有第二值(例如SFPA=“1”)。如果访问标记不具有第二值,则没有需要为其准备保护的安全浮点寄存器状态数据,且因此,安全浮点寄存器状态数据可或可能未经受推送操作至安全栈。由此,如果访问追踪标记具有第一值,则处理从步骤144返回步骤142以等待下延迟加载指令。如果访问追踪标记具有步骤144所决定的第二值,则步骤146决定是否仍设定保护标记(例如LSPACT=“1”)。如果仍设定保护标记,则此指示在先前处理期间为安全浮点状态数据触发保护响应,且因此,步骤148用于对安全浮点状态数据执行从栈到浮点寄存器的恢复操作(弹出)并解除分配对应栈空间。已分配储存区域也解除分配以释放其空间。如果步骤146的决定是仍设定保护标记(例如LSPACT=“1”),则设置并准备保护但不触发保护,且因此无需恢复操作,而处理前进至步骤150,在该步骤中,重置保护标记(例如LSPACT=“0”)。
[0037] 在某些示例性实施例中,可提供延迟无保护程序指令,使得在执行该指令时,当处理电路在安全模式下操作且仍设定保护标记(例如LSPACT=“1”)时,使保护响应禁用。
[0038] 图8示意地图标数据处理系统152,该数据处理系统包括连接至主存储器156的处理器154。处理器154自主存储器156检索程序指令及数据。程序指令由指令撷取单元157撷取,且随后被指令译码程序158译码,该指令译码程序产生控制信号以控制将执行的彼等程序指令所规定的处理操作。执行的处理操作可包括例如整数处理操作,该整数处理操作通过使用通用寄存器组160内储存的数据值来执行,且由诸如乘法器162、移位器164及加法器166的处理电路操作。程序指令也可包括浮动点程序指令,该等指令在浮点数据值储存在浮点寄存器168内并由浮点执行电路170执行时执行。浮点执行电路170由储存在浮点配置寄存器172内的浮点配置来配置。当在处理的安全模式中进行第一浮点访问时,此浮点配置(例如舍入模式、异常特性等等)被设定至默认值。默认配置可为固线式或先经程序化。浮点配置寄存器172内储存的浮点配置可同时被保护并恢复,因为浮点状态数据如先前论述而被保护并恢复。除了浮点寄存器自身内容的外,浮点配置还可属于安全浮点状态数据。
[0039] 与浮点电路关联的是标记控制器174(标记电路)及安全状态保护电路176。该等电路具有先前描述的函数。电路保持及响应于访问追踪标记SFPA及保护标记LSPACT,如先前所述。此外,为栈存储器178内区域的指针提供储存,该储存器在运行时间经分配(在主存储器156内)以储存安全浮点状态数据(如果必需的话)。
[0040] 图9示意地图示不同实施例的操作及该等实施例可如何用于将访问追踪标记设定为第一值并将访问追踪标记设定为第二值。在示例(a)中,当由于函数调用而从非安全模式向安全模式进行切换时,访问追踪标记被设定至第一值。随后,当在安全模式中进行(至少一个类别的)第一浮点访问时,访问追踪标记被设定为第二值。在示例(b)中,当作为函数调用而从非安全模式向安全模式进行切换时,访问追踪标记再次被设定至第一值。无论处理器是处于安全模式还是非安全模式,当发生第一随后浮点访问时,访问追踪标记从第一值切换到第二值。在示例(c)中,当作为函数调用或函数返回而从安全模式向非安全模式进行切换时,访问追踪标记被设定至第一值。随后,当处理器在安全模式中操作时,当检测到第一浮点访问时,访问追踪标记切换至第二值。将可见,全部示例(a)、(b)、(c)皆具有效果,也即访问追踪标记具有第一值直到检测到安全状态中的第一浮点访问为止。
[0041] 尽管说明性实施例已在本案中通过参考附图进行详细描述,但将理解,本发明并非限定于彼等精确实施例,且本领域技术人员在不背离所附申请专利范围的范畴及精神的情况下可在这些实施例中实现更改、增添及修改。例如,所附权利要求的特征可与独立权利要求的特征进行组合。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈