CN105279451B - 安全领域预测 - Google Patents
安全领域预测 Download PDFInfo
- Publication number
- CN105279451B CN105279451B CN201510324781.4A CN201510324781A CN105279451B CN 105279451 B CN105279451 B CN 105279451B CN 201510324781 A CN201510324781 A CN 201510324781A CN 105279451 B CN105279451 B CN 105279451B
- Authority
- CN
- China
- Prior art keywords
- domain
- memory
- processing
- secure
- circuitry
- 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
Links
- 230000009471 action Effects 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2149—Restricted operating environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本文公开了用于安全领域预测的设备和方法。一种数据处理设备2支持在安全领域与安全性较差领域两者中的操作。该安全领域可存取当在该安全性较差领域中操作时不可存取的数据。预测电路系统42产生领域预测,以指示给定处理动作(诸如内存存取)是与该安全领域相关联地执行,还是与安全性较差领域相关联地执行。以此方式,可由合适的内存保护单元选择与应用用于按照领域中的不同特权等级控制存取的、由内存许可数据34、36构成的合适的集合。若该领域预测是不正确的,则该处理停止,并且重试该给定处理动作。
Description
技术领域
本发明关于数据处理系统领域。更特定言之,本发明关于包括多种安 全领域(诸如,安全领域和安全性较差领域)的数据处理系统。
背景技术
已知提供了数据处理系统,诸如实施由英国剑桥的ARM公司设计的 处理器的TrustZone特征结构的那些数据处理系统。在此类系统之内,可 提供安全领域以用于操纵涉及敏感数据(诸如,密码键、财务数据等等) 的处理,以及提供安全性较差的领域以用于常规处理任务,诸如用户接口 的管理、媒体处理等等。不同的领域可存取不同的来源,其中安全领域可 存取一或多个安全性较差领域不可存取的至少一些来源。可在这些领域本 身内提供多个特权等级,诸如用于执行操作系统的监督者特权等级以及用 于执行应用程序的用户特权等级。
发明内容
从一方面来看,本技术提供一种数据处理设备,该数据处理设备包 括:
处理电路系统,该处理电路系统配置用于响应于程序指令来执行数据 处理操作,该处理电路系统具有多个操作领域,这些操作领域包括安全领 域与安全性较差的领域,其中当在安全领域中操作时,该处理电路系统可 存取当在安全性较差的领域中操作时不可存取的数据;以及
预测电路系统,该预测电路系统耦合至该处理电路系统并且配置用于 产生领域预测,以预测将由该处理电路系统执行的给定处理动作是应该与 安全领域相关联地执行还是应该与该安全性较差的领域相关联地执行,其 中该处理电路系统基于该领域预测来执行该给定处理动作。
本技术认识到当存在对可执行给定处理动作之前了解操作领域的需要 时,可能会发生处理瓶颈。本技术通过以下方式解决了该问题:产生关于 给定处理动作应针对哪个安全领域执行的领域预测,以及随后基于该领域 预测执行该给定处理动作。
在至少一些实施例中,在这些领域的至少一个内提供了多个特权等 级,其中不同的特权等级具有不同的存取许可,例如,这些领域中的一个 被按照特权等级,使用取决于当前特权等级针对该内存地址空间的不同区 域的存取许可而被进行细分。该特权等级划分可被视为与领域间的划分正 交的划分。
至少一些实施例包括内存许可控制电路系统,该系统使用安全领域的 内存许可数据或者安全性较差的内存领域许可数据作为存取控制动作的一 部分来控制对内存的存取。在该情形中,取决于预测领域来执行的给定处 理动作是存取控制动作,该存取控制动作是基于如由预测电路系统所预测 的预测领域,使用安全领域的内存许可数据或者安全性较差的内存领域许 可数据执行的。
该内存许可控制电路系统可用来对第一特权等级与第二特权等级提供 不同的存取许可。该内存许可控制电路系统可例如采取内存管理单元的形 式,该内存管理单元使用储存在内存地址空间内的页表数据。在其它实施 例中,该内存许可控制电路系统包括内存保护单元电路系统,该内存保护 单元电路系统用来基于安全领域的内存许可数据与安全性较差领域的内存 许可数据来管理对该内存的存取,该安全领域的内存许可数据与该安全性 较差领域的内存许可数据各自指定该内存地址空间内的多个不同的内存区 域。在一些实施例中,这些区域中的每一个具有至少一种相关的内存存取 属性。该内存保护单元电路系统比较内存存取的地址与不同区域的地址范 围,以决定将哪种相关的内存存取属性应用于该内存存取。在一些实施例 中,内存区域的存在或缺乏可包括部分或所有的属性数据。
在此类实施例中,该内存保护单元电路系统需要取决于地址是与安全 领域相关联还是与安全性较差的领域相关联,来使用安全领域的内存许可 数据或安全性较差领域的内存许可数据。因为系统可以精细水平在安全领 域与安全性较差的领域之间切换,所以基于与地址相关联的领域来选择使 用哪种许可数据可能会成为关键路径问题。在该情形中,领域预测的使用 使得能够以从偶然的误预测恢复为代价而容易地满足关键路径需要。
一些实施例包括领域属性电路系统,该领域属性电路系统使用领域属 性数据来执行领域指示动作,从而产生领域指示符,该领域指示符指示内 存存取操作是与安全领域相关联,还是与安全性较差的领域相关联。该领 域属性电路系统将采取有限时间来执行该决定并且产生领域指示符,因此 在该领域指示符变得可用之前使用领域预测可减轻时序约束。
在一些实施例中该领域属性数据可指定该内存地址空间内的多个不同 领域的内存区域。在一些示例性实施例中,这些不同领域的内存区域中的 每一个可具有至少一种相关的领域属性。该领域属性电路系统可比较内存 存取的地址与这些不同领域的内存区域的地址,以决定要应用这些领域属 性中的哪种领域属性。该领域属性可例如是对该内存地址是与安全领域相 关联的地址还是与安全性较差的领域相关联的地址的简单指示。在其它实 施例中,领域内存区域的存在或缺乏可以自身用作相关的领域属性。
在一些实施例中,可提供预测比较电路系统以比较领域预测与领域指 示符,并且若两者之间无匹配则触发重试动作,在该重试动作中该处理电 路系统再次基于领域指示符来执行给定处理动作(该动作最初是基于不正 确的领域预测执行的)。
在一些实施例中,可清除在该重试动作之前的给定处理动作结果,并 且用来自重试动作的给定处理动作的一或多个结果取代原结果。
该处理电路系统可至少在重试动作期间的内存存取操作进行时停止, 以便提供足够的时间来完成重试动作。
在一些实施例中该内存存取操作可为指令提取操作。提取指令可为安 全性敏感操作,因为该指令可允许执行将揭露机密信息的安全代码。因 此,对指令提取的控制是一种非常适合采用安全领域与安全性较差的领域 的系统的方法。期望此类系统应具有高效能,并且此期望在至少一些示例 性实施例中可通过使用领域预测来辅助。
先前论述的领域属性电路系统可配置成与由内存许可控制电路系统执 行的存取控制动作并行地执行其领域指示动作。并行地执行这两种动作减 轻了时序约束并且可允许更高的效能。
将了解该预测电路系统可用来以多种不同的方式产生其预测。一种简 单形式的预测是:该领域预测应该与系统正在其中操作的当前领域相同。 可在其它实施例中使用的另一种形式的预测是:该领域预测是先前与待执 行的给定处理动作相关联的领域。
同时将了解该安全领域与该安全性较差的领域可包含不同数量的特权 等级,在一些实施例中,该安全领域与该安全性较差的领域各自包含多个 特权等级。这使得能够灵活控制对域边界任一侧执行的处理,并且亦使得 能够视情况在将支持的域边界的不同侧上在不同特权等级之间进行调用。
从另一方面来看,本发明提供一种数据处理设备,该数据处理设备包 括:
处理装置,该处理装置用于响应于程序指令而执行数据处理操作,该 处理装置具有多个操作领域,这些操作领域包括安全领域与安全性较差的 领域,其中当在安全领域中操作时,该处理装置可存取当在安全性较差的 领域中操作时不可存取的数据;以及
预测装置,该预测装置耦合至该处理装置,用于产生领域预测以预测 将由该处理装置执行的给定处理动作应该与该安全领域相关联地操作还是 与该安全性较差的领域相关联地操作,其中
该处理装置基于该领域预测来执行该给定处理动作。
从又一方面来看,本发明提供了一种处理数据的方法,该方法包括以 下步骤:
响应于程序指令而使用处理电路系统执行数据处理操作,该处理电路 系统具有多个操作领域,这些操作领域包括安全领域与安全性较差的领 域,其中当在安全领域中操作时,该处理电路系统可存取当在安全性较差 的领域中操作时不可存取的数据;
产生领域预测,以预测将由处理电路系统执行的给定处理动作应该与 安全领域相关联地执行还是与安全性较差的领域相关联地执行;以及
基于该领域预测而执行该给定处理动作。
本发明的上述及其他目的、特征及优点,从下列说明性实施例的详细 描述并参阅下列附图将更加显而易见。
附图说明
图1示意性地示出了数据处理设备,该数据处理设备支持程序指令执 行的安全领域与安全性较差领域两者;
图2示意性地示出了该安全性较差领域、该安全领域,以及这两种领 域内的不同特权等级之间的关系;
图3是流程图,示意性地示出了对包括多个领域与这些领域内的多种 特权等级的系统的内存存取的控制。
图4是示出了从该安全性较差领域到该安全领域的函数调用的图;
图5是示意性地示出了使用领域预测来选择将使用哪些内存许可数 据,以决定是否允许对给定内存地址进行内存存取的图;以及
图6是流程图,示意性地示出了图3的电路系统的动作。
具体实施方式
图1示意性地示出了数据处理设备2,该数据处理设备2包括处理器 核心4与内存6。该内存6储存待操纵的数据8与待执行的程序指令10两 者作为程序指令序列(以安全形式与安全性较差的形式两者)。该处理器 核心4使用负载储存单元12与指令提取单元14来读取及写入数据8以及 提取待执行的程序指令10。该数据处理设备2支持两种操作领域,亦即安 全领域与安全性较差的领域。将了解在其它实施例中可支持两种以上的领 域。
领域属性单元16用于储存领域属性数据,该领域属性数据指定哪一 内存地址与哪一领域相关联。该安全领域可存取当在安全性较差领域中操 作时不可存取的至少一些数据。此类数据可为例如密码键、密码算法、财 务数据,以及其他敏感数据。这些领域对使用安全数据的安全/敏感程序的 执行提供与可发生在安全性较差领域内的更常规的处理相比不同的执行环 境。该数据处理设备2具有使其配置于安全领域或安全性较差领域中的状 态。这些领域中的每一个可包含与这些领域正交的一或多种特权等级,诸 如监督者等级与用户等级。这些不同的特权等级可具有与内存地址空间的 不同区域相关联的不同内存属性。
该数据处理设备2包括两种内存保护单元,该两种内存保护单元分别 响应于安全领域的许可数据与安全性较差领域的许可数据,并且一起形成 可被视为系统的内存许可控制电路系统18的设备。该两种内存保护单元 用于管辖将以领域内的不同特权等级应用的内存属性。该领域属性单元16 用于管辖该数据处理设备2必须处于哪个领域内,以便存取特定内存地 址,而不论或者与特权等级无关。
由指令提取单元14提取的指令被供应至处理管线20,这些指令从处 理管线20处被译码器22译码以产生控制信号24,从而控制处理电路系 统,该处理电路系统包括负载储存单元12与数据处理路径,该数据处理 路径包括寄存器组26、乘法器28、移位器30及加法器32。将了解到,实 际上处理器核心4将通常包括许多另外的处理部件(为清晰起见,此处省 略)。
图2示意性地示出了该数据处理设备2可采用的不同状态。首先,图 示了安全领域与安全性较差的领域两者。这些领域之间的转化是由领域属 性单元16与登录点指令92控制的。至少在该示例性实施例中,在每个领 域内存在用户模式特权等级与监督者模式特权等级两者。当该数据处理设 备2处于安全性较差的领域中时,对数据存取的内存存取是由安全性较差 的内存保护单元控制的。当在安全领域中操作时,对数据存取的内存存取 是由安全内存保护单元控制的。特权等级之间的切换是由SVC(supervisor call,管理程序调用)异常指令控制的。将了解不同的内存保护单元可实 际上共享电路系统,例如当某一给定时刻存取这些内存保护单元中的仅一 个内存保护单元时,则这些不同的内存保护单元可用降低功率消耗额外负 担与电路面积额外负担的方式共享其比较器。
图3是流程图,示意性地示出了将被执行以用于指令提取的整组决 定。在步骤70处,处理一直等待到存在待执行的指令提取时才进行。数 据存取是由不同的机制操纵的。步骤72随后决定将应用于该指令提取的 领域,亦即安全性较差领域或者安全领域。若选择安全领域,则步骤74 决定并且检验该内存存取的安全内存属性,以便决定是否允许该内存存 取。若允许该内存存取,则步骤76执行该内存存取。若不允许该内存存 取,则步骤78触发异常。
若步骤72处的决定为选择安全性较差领域,则步骤80决定并且检验 该内存存取的安全性较差的内存属性。若不允许该内存存取,则步骤78 触发异常。若允许该内存存取,则步骤76执行该内存存取。
图4是示出了从该安全性较差领域到该安全领域的函数调用的图。在 该安全性较差领域100中的程序流遭遇BLX指令90,BLX指令90调用在 与安全领域相关联的内存内的函数94。这使得该程序流改变并且在登录点 程序指令92处重新开始执行。此程序指令的执行使得该处理电路系统将 该函数中剩余程序指令98的处理切换至安全领域。因为该登录点程序指 令92引起领域切换,所以该登录点程序指令本身是在安全性较差的领域 中执行的。然而因为该指令是与安全领域相关联的内存中的安全函数的一 部分,所以当验证提取该登录点程序指令92的内存存取时,该安全内存 保护数据34是由MPU 18使用的。一旦已经执行该安全函数94中的剩余 程序指令98,则BX程序指令96将程序流返回至安全性较差领域。
图5更详细地示意性示出领域属性电路系统16与内存许可控制电路 系统18。该内存许可控制电路系统18使用安全领域的内存许可数据34或 者安全性较差领域的内存许可数据36,该数据由多任务器38选择并且供 应至内存许可控制电路系统比较器40。预测电路系统42产生领域预测, 该领域预测将该多任务器38切换成选择内存许可数据34、36构成的集合 中的一者以供比较器40使用。该比较器40使用与待检验的内存存取的地 址相关联的内存许可数据,以及当前的特权等级。
该内存许可数据指定该内存地址空间内的不同区域以及与这些不同区 域相关联的内存属性。该比较器40根据待检验的内存地址来决定该内存 地址处于哪个区域中。当已经辨识出该区域时,可读取合适的内存属性, 以及做出关于是否允许该所涉及的内存存取的决定,并且产生MPU允许 的信号以指示此结果。若内存存取未通过其MPU检验,则将触发异常, 如本技术领域的技术人员所熟悉的。
与该内存许可控制电路系统18的动作并行地,该领域属性电路系统 16使用候选内存存取的内存地址,从而使用由领域属性数据46配置的领 域比较器44来执行领域比较操作,以便决定该内存地址候选者落入该内 存地址空间的多个区域中的哪一区域中。在一些示例性实施例中,若该地 址匹配在该领域属性电路系统16中编程的任何领域内存区域,则该地址 处于安全性较差领域,否则该地址处于安全领域。在其他示例性实施例 中,不同领域的内存区域可具有至少一种在领域属性数据46内指定的相 关领域属性。此领域属性可包含对所涉及的内存地址是与安全领域相关联 还是与安全性较差领域相关联的指示。因此,该领域比较器44基于根据 领域内存区域与领域属性数据对合适领域进行的查找而产生领域指示符信 号。
预测比较电路系统48用于比较来自预测电路系统42的领域预测与实 际的领域指示符,其中该领域预测被供应用于选择内存许可数据34、36, 该领域指示符是与该内存许可控制电路系统活动并行地决定的。若该领域 预测与该领域指示符不匹配,则此指示误预测并且会产生重试信号。与此 同时该预测比较电路系统产生使处理器核心4停止的停止信号,此时由图 3的电路系统进行的内存存取检验基于由取代信号携带的实际领域指示而重新执行,以使内存许可控制电路系统18将应用这些内存许可数据34、 36中的正确数据。基于误预测的该内存许可检验操作的结果(在重试动作 之前的给定处理动作的结果)被清除并且被源于该重试动作的内存许可检 验(给定处理动作)的结果替代。因此当误预测发生时处理器14被停止 一段较短时间。
该预测电路系统42基于该数据处理设备2正在其中操作的当前领域 来做出其预测。在其它实施例中可以不同方式做出此预测,诸如通过基于 所涉及的给定处理动作上次执行时所使用的领域来进行预测。本领域技术 人员将了解,其他预测技术/算法亦可用于产生与不同类型的处理动作相关 联的领域预测,这些处理动作将取决于所涉及的领域(或者至少与该领域 相关联)而被执行。
图6是示意性地示出了图3的电路系统的操作的流程图。在步骤50 处,处理等待到接收到内存地址时才进行。当接收到内存地址时,则在处 理传递到步骤56之前并行地执行步骤52与步骤54。在步骤52处,使用 预测领域(当前领域)的内存保护单元来执行内存保护单元许可检验。该 预测领域的内存保护单元实际上是由该内存许可控制电路系统40内的共 享比较器与内存许可数据34、36的集合中适当选择的数据构成的。步骤 54执行以下决定:安全领域或安全性较差领域中的实际哪一个应被应用于 该已接收到的内存地址。此决定是由领域属性电路系统16执行的并且导 致实际领域指示符的产生。
在步骤56处,做出关于由该领域指示符指示的实际领域是否等于预 测领域的决定。若存在不匹配,则步骤58使数据处理设备2停止,步骤 60用实际的领域指示取代由该预测电路系统42产生的预测信号,以及随 后步骤62通过使处理返回为从并行步骤52、54处开始而触发对内存存取 许可检验的重试。
若步骤56处的决定为不存在不匹配,则步骤64决定该存取是否实际 上被指示为如由内存许可控制电路系统18所允许的那样。若允许该存 取,则步骤66执行该存取。若不允许该存取,则步骤68触发异常,例如 内存故障。
尽管已在本文中参看附图详细地描述本发明的说明性实施例,但熟习 此项技术者应理解,本发明不限于这些精确实施例,且在不脱离由所附权 利要求界定的本发明之范畴及精神的情况下,可在其中实现各种变化及修 改。
Claims (21)
1.一种数据处理设备,所述数据处理设备包括:
处理电路系统,所述处理电路系统配置用于响应于程序指令来执行数据处理操作,所述处理电路系统具有多个操作领域,所述操作领域包括安全领域与安全性较差领域,其中,当在所述安全领域中操作时,所述处理电路系统可存取当在所述安全性较差领域中操作时不可存取的数据;以及
预测电路系统,所述预测电路系统耦合至所述处理电路系统并且配置用于产生领域预测,以预测将由所述处理电路系统执行的给定处理动作是应该与所述安全领域相关联地操作还是应该与所述安全性较差领域相关联地操作,其中
所述处理电路系统基于所述领域预测来执行所述给定处理动作。
2.如权利要求1所述的设备,其中,所述安全领域与所述安全性较差领域中的至少一个具有多个特权等级,所述特权等级包括第一特权等级与第二特权等级,其中当以所述第一特权等级操作时,所述处理电路系统具有与所述第二特权等级不同的存取许可。
3.如权利要求2所述的设备,所述设备包括:内存许可控制电路系统,所述内存许可控制电路系统配置用于使用安全领域的内存许可数据或者安全性较差领域的内存许可数据作为存取控制动作的一部分,以便控制对内存的存取,并且其中所述给定处理动作是所述存取控制动作,并且所述领域预测控制所述存取控制动作是使用所述安全内存许可数据还是所述安全性较差的内存许可数据。
4.如权利要求3所述的设备,其中,所述内存许可控制电路系统被配置成针对所述第一特权等级与所述第二特权等级提供不同的存取许可。
5.如权利要求3所述的设备,其中,所述内存许可控制电路系统包括内存保护单元电路系统,所述内存保护单元电路系统配置用于基于所述安全领域的内存许可数据与所述安全性较差领域的内存许可数据来管理对所述内存的存取,所述安全领域的内存许可数据与所述安全性较差领域的内存许可数据各自指定所述内存的内存地址空间内的多个不同的内存区域。
6.如权利要求5所述的设备,其中,所述多个不同的内存区域中的每一个具有至少一种相关的内存存取属性,并且所述内存保护单元电路系统被配置成比较内存存取的地址与所述多个不同的内存区域的地址,以便决定应用所述至少一种相关的内存存取属性中的哪一属性。
7.如权利要求1所述的设备,所述设备包括:领域属性电路系统,所述领域属性电路系统配置成使用领域属性数据来执行领域指示动作,从而产生领域指示符,所述领域指示符指示内存存取操作是与所述安全领域相关联,还是与所述安全性较差领域相关联。
8.如权利要求7所述的设备,其中,所述领域属性数据指定在所述内存的内存地址空间内的多个不同领域的内存区域。
9.如权利要求8所述的设备,其中,所述多个不同领域的内存区域中的每一个具有至少一种相关的领域属性,其中所述领域属性电路系统被配置成比较内存存取的地址与所述多个不同领域的内存区域的地址,以便决定应用所述至少一种相关的领域属性中的哪一属性。
10.如权利要求7所述的设备,其中包括预测比较电路系统,所述预测比较电路系统被配置成比较所述领域预测与所述领域指示符,并且若所述领域预测不匹配所述领域指示符,则触发重试动作:所述处理电路系统基于所述领域指示符再次执行所述给定处理动作。
11.如权利要求10所述的设备,其中,在所述重试动作之前的所述给定处理动作的结果被清除,并且替代地使用源于所述重试动作的所述给定处理动作的结果。
12.如权利要求10所述的设备,其中,所述处理电路系统在所述重试动作期间停止所述内存存取的进行。
13.如权利要求7所述的设备,其中,所述内存存取操作是指令提取操作。
14.如权利要求3所述的设备,所述设备包括:领域属性电路系统,所述领域属性电路系统配置成使用领域属性数据来执行领域指示动作,从而产生领域指示符,所述领域指示符指示内存存取操作是与所述安全领域相关联,还是与所述安全性较差领域相关联,其中所述存取控制动作是与所述领域指示动作并行地执行的。
15.如权利要求1所述的设备,其中,所述预测电路系统配置成将所述领域预测产生为所述处理电路系统的所述多个操作领域中的当前操作领域。
16.如权利要求1所述的设备,其中,所述预测电路系统配置成将所述领域预测产生为所述处理电路系统的所述多个操作领域中与所述给定处理动作相关联的先前操作领域。
17.如权利要求2所述的设备,其中,所述安全领域与所述安全性较差领域皆具有多个特权等级。
18.一种数据处理设备,所述数据处理设备包括:
处理装置,所述处理装置用于响应于程序指令而执行数据处理操作,所述处理装置具有多个操作领域,所述操作领域包括安全领域与安全性较差领域,其中当在所述安全领域中操作时,所述处理装置可存取当在所述安全性较差领域中操作时不可存取的数据;以及
预测装置,所述预测装置耦合至所述处理装置,用于产生领域预测以预测将由所述处理装置执行的给定处理动作应该与所述安全领域相关联地操作还是与所述安全性较差的领域相关联地操作,其中
所述处理装置基于所述领域预测来执行所述给定处理动作。
19.如权利要求18所述的数据处理设备,其中,所述安全领域与所述安全性较差领域中的至少一个具有多个特权等级,所述特权等级包括第一特权等级与第二特权等级,其中当以所述第一特权等级操作时,所述处理电路系统具有与所述第二特权等级不同的存取许可。
20.一种处理数据的方法,所述方法包含以下步骤:
响应于程序指令而使用处理电路系统执行数据处理操作,所述处理电路系统具有多个操作领域,所述操作领域包括安全领域与安全性较差领域,其中当在所述安全领域中操作时,所述处理电路系统可存取当在所述安全性较差领域中操作时不可存取的数据;
产生领域预测,以预测将由所述处理电路系统执行的给定处理动作应该与所述安全领域相关联地执行还是与所述安全性较差领域相关联地执行;以及
基于所述领域预测而执行所述给定处理动作。
21.如权利要求20所述的处理数据的方法,其中,所述安全领域与所述安全性较差领域中的至少一个具有多个特权等级,所述特权等级包括第一特权等级与第二特权等级,其中当以所述第一特权等级操作时,所述处理电路系统具有与所述第二特权等级不同的存取许可。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/310,332 | 2014-06-20 | ||
US14/310,332 US9501667B2 (en) | 2014-06-20 | 2014-06-20 | Security domain prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105279451A CN105279451A (zh) | 2016-01-27 |
CN105279451B true CN105279451B (zh) | 2020-02-11 |
Family
ID=53488529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510324781.4A Active CN105279451B (zh) | 2014-06-20 | 2015-06-12 | 安全领域预测 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9501667B2 (zh) |
CN (1) | CN105279451B (zh) |
GB (1) | GB2527643B (zh) |
TW (1) | TWI664554B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
US11734440B2 (en) * | 2019-09-09 | 2023-08-22 | Arm Limited | Memory access transaction with security check indication |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
TW201111944A (en) * | 2009-07-06 | 2011-04-01 | Advanced Risc Mach Ltd | Low overhead circuit and method for predicting timing errors |
US8200774B1 (en) * | 2004-09-30 | 2012-06-12 | Google Inc. | System and method for resource locking |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956753A (en) | 1993-12-30 | 1999-09-21 | Intel Corporation | Method and apparatus for handling speculative memory access operations |
WO1998012635A1 (en) | 1996-09-17 | 1998-03-26 | Radisys Corporation | Method and apparatus for encapsulating a protected-mode operating system within a real-time, protected-mode operating system |
US7103914B2 (en) * | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
US8090934B2 (en) * | 2006-07-11 | 2012-01-03 | Cetin Kaya Koc | Systems and methods for providing security for computer systems |
US8122222B2 (en) * | 2008-04-18 | 2012-02-21 | International Business Machines Corporation | Access speculation predictor with predictions based on a scope predictor |
US20100325395A1 (en) | 2009-06-19 | 2010-12-23 | Doug Burger | Dependence prediction in a memory system |
WO2013126852A2 (en) | 2012-02-24 | 2013-08-29 | Missing Link Electronics, Inc. | Partitioning systems operating in multiple domains |
-
2014
- 2014-06-20 US US14/310,332 patent/US9501667B2/en active Active
-
2015
- 2015-04-21 TW TW104112736A patent/TWI664554B/zh active
- 2015-04-23 GB GB1506904.0A patent/GB2527643B/en active Active
- 2015-06-12 CN CN201510324781.4A patent/CN105279451B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US8200774B1 (en) * | 2004-09-30 | 2012-06-12 | Google Inc. | System and method for resource locking |
TW201111944A (en) * | 2009-07-06 | 2011-04-01 | Advanced Risc Mach Ltd | Low overhead circuit and method for predicting timing errors |
Also Published As
Publication number | Publication date |
---|---|
GB201506904D0 (en) | 2015-06-10 |
TW201601002A (zh) | 2016-01-01 |
TWI664554B (zh) | 2019-07-01 |
GB2527643A (en) | 2015-12-30 |
GB2527643B (en) | 2016-10-12 |
US9501667B2 (en) | 2016-11-22 |
CN105279451A (zh) | 2016-01-27 |
US20150371017A1 (en) | 2015-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924366B (zh) | 用于控制指令执行行为的装置及方法 | |
TWI745333B (zh) | 用於控制有界指標的使用的設備及方法 | |
KR102605793B1 (ko) | 자격들의 이용을 관리하는 장치 및 방법 | |
KR102393151B1 (ko) | 데이터의 액세스를 예측하는 장치, 그것의 동작 방법 및 그것을 포함하는 시스템 | |
JP2017505492A (ja) | 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算 | |
JP2021532468A (ja) | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット | |
CN110622133B (zh) | 用于管理能力域的设备及方法 | |
CN107735775A (zh) | 用于使用与指针相关联的范围信息来执行指令的装置和方法 | |
TW201721438A (zh) | 用於管理有界指標的裝置和方法 | |
KR102586257B1 (ko) | 명령들의 실행을 제어하는 장치 및 방법 | |
KR102533823B1 (ko) | 자격과 관련된 허가들을 해석하는 장치 및 방법 | |
JP2021531583A (ja) | メモリ・システム内に記憶されている制御テーブルのための二分探索手順 | |
KR20210110598A (ko) | 추론적 실행을 위한 보안 예측기 | |
US11068612B2 (en) | Microarchitectural techniques to mitigate cache-based data security vulnerabilities | |
US11307856B2 (en) | Branch target variant of branch-with-link instruction | |
CN105279451B (zh) | 安全领域预测 | |
US20240028772A1 (en) | Systems and methods for dynamic control of a secure mode of operation in a processor | |
KR102547479B1 (ko) | 명령 세트의 변경을 제어하는 장치 및 방법 | |
KR20210034612A (ko) | 보호 태그 손실 처리 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180525 Address after: cambridge Applicant after: Advanced Risc Machines Ltd. Applicant after: Anne science and Technology (China) Co., Ltd. Address before: cambridge Applicant before: Advanced Risc Machines Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |