CN107735791B - 安全模式状态的数据访问追踪 - Google Patents

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

Info

Publication number
CN107735791B
CN107735791B CN201680039960.6A CN201680039960A CN107735791B CN 107735791 B CN107735791 B CN 107735791B CN 201680039960 A CN201680039960 A CN 201680039960A CN 107735791 B CN107735791 B CN 107735791B
Authority
CN
China
Prior art keywords
protection
secure mode
value
access
state data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680039960.6A
Other languages
English (en)
Other versions
CN107735791A (zh
Inventor
托马斯·克里斯托弗·乔洛卡特
西蒙·约翰·克拉斯克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN107735791A publication Critical patent/CN107735791A/zh
Application granted granted Critical
Publication of CN107735791B publication Critical patent/CN107735791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

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

Description

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

Claims (27)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1512367.2A GB2540388B (en) 2015-07-15 2015-07-15 Secure mode state data access tracking
GB1512367.2 2015-07-15
PCT/GB2016/051526 WO2017009597A1 (en) 2015-07-15 2016-05-26 Secure mode state data access tracking

Publications (2)

Publication Number Publication Date
CN107735791A CN107735791A (zh) 2018-02-23
CN107735791B true CN107735791B (zh) 2021-09-07

Family

ID=54013982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680039960.6A Active CN107735791B (zh) 2015-07-15 2016-05-26 安全模式状态的数据访问追踪

Country Status (9)

Country Link
US (1) US10503932B2 (zh)
EP (1) EP3308314B1 (zh)
JP (1) JP6921800B2 (zh)
KR (1) KR102509365B1 (zh)
CN (1) CN107735791B (zh)
GB (1) GB2540388B (zh)
IL (1) IL256164B (zh)
TW (1) TWI721996B (zh)
WO (1) WO2017009597A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229195B2 (en) 2017-06-22 2019-03-12 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10223639B2 (en) 2017-06-22 2019-03-05 International Business Machines Corporation Relation extraction using co-training with distant supervision
GB2564144B (en) * 2017-07-05 2020-01-08 Advanced Risc Mach Ltd Context data management
US11100254B2 (en) * 2018-12-05 2021-08-24 Micron Technology, Inc. Processors with security levels adjustable per applications
US12050784B2 (en) * 2022-04-27 2024-07-30 Micron Technology, Inc. Data masking for memory
GB2621170A (en) * 2022-08-05 2024-02-07 Xmos Ltd Execution of Instructions from Trusted and Untrusted Memories

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
CN102722440A (zh) * 2012-06-07 2012-10-10 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN102724195A (zh) * 2012-06-20 2012-10-10 华为技术有限公司 访问请求跟踪方法和相关装置
CN103927191A (zh) * 2013-01-11 2014-07-16 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置
CN104115154A (zh) * 2012-02-08 2014-10-22 Arm有限公司 当在域之间切换时维持安全数据与不安全访问相隔离

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560698B1 (en) * 1999-05-07 2003-05-06 Advanced Micro Devices, Inc. Register change summary resource
US6763397B1 (en) * 1999-05-27 2004-07-13 Sun Microsystems, Inc. Fully lazy linking
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US9645949B2 (en) * 2008-07-10 2017-05-09 Cambridge Consultants Ltd. Data processing apparatus using privileged and non-privileged modes with multiple stacks
JP4886063B2 (ja) * 2009-12-04 2012-02-29 株式会社エヌ・ティ・ティ・ドコモ 状態報知装置、状態報知方法及びプログラム
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
US8850557B2 (en) * 2012-02-29 2014-09-30 International Business Machines Corporation Processor and data processing method with non-hierarchical computer security enhancements for context states
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
GB2515047B (en) 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
TWI508087B (zh) * 2013-07-01 2015-11-11 Mstar Semiconductor Inc 記憶體信號的動態相位追蹤方法及其相關控制電路
US9952887B2 (en) * 2014-06-23 2018-04-24 Vmware, Inc. Device simulation in a secure mode supported by hardware architectures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
CN104115154A (zh) * 2012-02-08 2014-10-22 Arm有限公司 当在域之间切换时维持安全数据与不安全访问相隔离
CN102722440A (zh) * 2012-06-07 2012-10-10 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN102724195A (zh) * 2012-06-20 2012-10-10 华为技术有限公司 访问请求跟踪方法和相关装置
CN103927191A (zh) * 2013-01-11 2014-07-16 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARM仿真平台上Linux2.6内核运行自动跟踪与分析的研究;韩明秀;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130315(第03期);第I138-742页 *

Also Published As

Publication number Publication date
GB2540388A (en) 2017-01-18
KR20180029054A (ko) 2018-03-19
EP3308314A1 (en) 2018-04-18
GB201512367D0 (en) 2015-08-19
CN107735791A (zh) 2018-02-23
EP3308314B1 (en) 2020-05-06
TW201702890A (zh) 2017-01-16
IL256164A (en) 2018-02-28
TWI721996B (zh) 2021-03-21
GB2540388B (en) 2019-01-23
JP6921800B2 (ja) 2021-08-18
US20180373898A1 (en) 2018-12-27
US10503932B2 (en) 2019-12-10
WO2017009597A1 (en) 2017-01-19
JP2018524731A (ja) 2018-08-30
KR102509365B1 (ko) 2023-03-13
IL256164B (en) 2020-03-31

Similar Documents

Publication Publication Date Title
CN107735791B (zh) 安全模式状态的数据访问追踪
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
US9727343B2 (en) Apparatus and method for handling exception events
EP3341846B1 (en) An apparatus and method for controlling instruction execution behaviour
US20100031084A1 (en) Checkpointing in a processor that supports simultaneous speculative threading
CN109643346B (zh) 控制流完整性
US11663034B2 (en) Permitting unaborted processing of transaction after exception mask update instruction
US20190012486A1 (en) System and Method for Enabling a Malware Prevention Module in Response to a Context Switch Within A Certain Process Being Executed by A Processor
EP1967950A2 (en) Multiprocessor system for continuing program execution upon detection of abnormality
JP2018531462A (ja) 例外処理
US11379233B2 (en) Apparatus and data processing method for transactional memory
CN108701031B (zh) 寄存器访问控制
JP2009230479A (ja) マイクロプロセッサ
EP3649549B1 (en) Context data management
WO2019063203A1 (en) DETECTION DETECTION INSTRUCTIONS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant