CN103052941B - 非法模式改变的处置 - Google Patents
非法模式改变的处置 Download PDFInfo
- Publication number
- CN103052941B CN103052941B CN201180038092.7A CN201180038092A CN103052941B CN 103052941 B CN103052941 B CN 103052941B CN 201180038092 A CN201180038092 A CN 201180038092A CN 103052941 B CN103052941 B CN 103052941B
- Authority
- CN
- China
- Prior art keywords
- instruction
- illegal
- pattern
- change
- illegally
- 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
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 59
- 208000024891 symptom Diseases 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000002547 anomalous effect Effects 0.000 claims description 12
- 230000002265 prevention Effects 0.000 claims description 5
- 230000008672 reprogramming Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 2
- 206010068052 Mosaicism Diseases 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 210000003765 sex chromosome Anatomy 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/52—Monitoring 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
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
-
- 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
-
- 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/30181—Instruction operation extension or modification
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
一种支持多种操作模式的数据处理系统(2)设有非法改变侦测电路(22),非法改变侦测电路(22)响应于模式改变程序指令或异常返回指令的执行来侦测由程序指令执行非法模式改变的尝试,例如改变至更高等级的权限。若侦测到此改变,则设定非法改变位CPSR.IL。指令译码器(12)响应于具有设定值的非法改变位而将后续程序指令视为未定义指令。这些未定义指令可接着触发未定义指令异常或其它类型的响应。
Description
技术领域
本发明关于数据处理系统的领域。更具体言之,本发明关于具有多操作模式及对该等模式之间的改变进行管理的数据处理系统。
背景技术
提供具有多操作模式的数据处理系统已为人知。这些模式例如可对应于不同等级的权限(privilege),使用这些不同权限等级具有对于系统的资源的不同访问权利。该等权限等级可是硬件权限等级,使得当系统在具有高权限的模式中时能访问在具有较低权限的模式中操作时不可访问的存储器地址空间的各区域。模式亦可对应于异常(exception)等级处置系统内的不同异常等级。具有多操作模式的这些数据处理系统的示例是由英国剑桥的ARMLimited公司所设计的处理器。
在具有多操作模式的这些数据处理系统内,会出现一些模式改变是非法(即不应被允许)的。作为一示例,作为安全性措施,应该不能执行将模式改变成更高等级权限从而获得对系统资源的更多访问的软件指令。这些改变通过使用异常机制被更好地作出,由此异常处置代码可以处理至更高等级权限的进入并且保持系统的安全性。提供具有防止这些非法模式改变的硬件机构的数据处理系统是为人已知的。然而,当已防止这样的模式改变时,系统的行为可随着实施方案而异,以及取决于已被防止的非法改变的类型而异。
发明内容
从一个方面看,本发明提供了用于处理数据的设备,该设备包含:
处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;及
非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将目前程序状态寄存器中的一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中
当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。
本技术提供对非法模式改变的侦测的一致响应,该技术可统一地应用且该技术本身通过要求数据相依性以触发非法改变响应而不引入明显的实施困难。数据相依性可出现于当改变到的模式从存储器或从寄存器被转移的时候,该寄存器本身可能在执行流水线中较迟被编程。当非法改变位曾具有预定值时将非法改变位重设定至预定值且将后续程序指令视为未定义指令,允许对非法改变的响应有效地被推迟并被处理以作为对现在未定义后续指令的响应。这使得在侦测非法模式改变中的数据相依性问题减轻。
指示指令应被视为未定义指令的非法改变位适当地被视为系统的目前状态的一部分并且因此被适当地储存在目前程序状态寄存器内。
非法程序指令可具有许多不同形式。在一形式中,模式指令的明确改变可构成非法程序指令,如果其指定不被允许的模式改变(如向更高等级权限的改变)的话。非法程序指令的另一形式是从指定新的程序计数器值及不被允许的新模式的异常指令的返回,例如到更高等级的权限的返回。
从异常指令的返回本身可有不同形式。在一示例形式中,新的程序计数器值及新模式可在存储在系统内的相应寄存器中指定。在从异常指令返回的另一示例形式中,新的程序计数器值及新模式可在存储器中指定。
如先前提及,模式的非法改变可采取许多不同形式。一示例是至更高等级的权限的改变。另一示例是至与设备内储存的、指示模式状态应是什么的其它状态数据相抵触的模式的改变,例如,指示不同指令集将与储存于系统内的此抵触的其它数据(指示应使用不同指令集)一起使用的模式改变。
为了使系统可保持对于在操作期间发生的异常的响应性而不管非法改变位的设定,在一些实施例中,该处理电路响应于异常事件,以将非法改变位的目前值储存作为所保存位并将非法改变位设定为不同于预定值的值,以使得与已发生的该异常事件相关联的异常处置程序指令可被执行。因此,当异常事件发生时,可以阻止在非法改变位被设定时将后续指令视为未定义指令,这省掉了非法改变位,从而允许异常处置程序指令的执行。
为了不失去适于非法模式改变的侦测的行为,一些实施例被配置为使得当从异常处置程序指令的执行返回时,非法改变位被设定以与该所保存位相匹配,以使得非法模式改变的先前发生接收其适当响应。
为了辅助处置非法模式改变,一些实施例包括症状(syndrome)寄存器,该寄存器被配置为储存指示尝试了模式的合法改变的非法程序指令的类型的症状值。可用此症状寄存器内的数据来触发对如下非法模式改变尝试的适当响应,所述非法模式改变尝试与引起该非法尝试的指令的类型相匹配。
对于未定义指令的一种类型的响应是触发未定义指令异常事件。用于响应于未定义指令的机制经常已存在于数据处理系统中,且这些机制可再利用来应对进行非法模式改变的尝试的影响。可使此未定义异常处置响应于症状寄存器,以使得未定义异常响应可适应于该异常的原因。
如以前提及,可在其间作出改变的复数个模式是可变化的。一示例是对于系统的资源具有不同访问等级的不同等级的权限。另一示例是系统利用复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的执行和译码。存在不同操作模式(这些不同操作模式之间的一些改变可能是非法的)的另外示例。
从另一方面看,本发明提供了一种用于处理数据的设备,该设备包含:
处理构件,该处理构件用于响应于程序指令以施行数据处理操作,该处理构件具有复数个模式;及
非法改变侦测构件,该非法改变侦测构件用于侦测由非法程序指令指定的对该处理电路的模式的非法改变的尝试并且响应于该尝试而进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将目前程序状态寄存器中的非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;其中
当该非法改变位具有该预定值时,该处理构件将进一步的程序指令作为未定义指令来响应。
从另一方面看,本发明提供了一种处理数据的方法,该方法包含以下步骤:
使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;
响应于侦测到由非法程序指令指定的对该处理电路的模式进行非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将目前程序状态寄存器中的一非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;及
当该非法改变位具有该预定值时,将进一步的程序指令作为未定义指令来响应。
将进一步了解,本技术的一种实施方案可以为虚拟机的形式,该虚拟机包含被编程来为程序代码提供执行环境的通用计算机,该程序代码与上述设备及方法匹配并且包括用于响应于如以前讨论的模式的非法改变的机制。
附图说明
现在参考附图仅作为示例来描述本发明的实施例,在附图中:
图1概要地图示出数据处理系统,该数据处理系统支持多操作模式及包括非法模式改变侦测器;
图2概要地图示异常返回响应(exceptionreturnresponse)的一种示例形式;
图3概要地图示异常返回响应的另一示例形式;
图4概要地图示出非法模式改变的侦测及对其的响应;
图5概要地图示出对不相关中断事件之后的非法模式改变的侦测;
图6是概要地图示出非法模式改变的侦测的流程图;
图7是概要地图示出根据非法改变位对指令的译码的流程图;及
图8是概要地图示本技术的虚拟机器实施方案的图式。
具体实施方式
第1图概要地图示出处理器核心形式的数据处理设备2。该处理器核心包括数据路径,该数据路径包括通用寄存器排(registerbank)4、乘法器6、移位器8及加法器10。指令译码器12响应于具有指令流水线14的序指令,根据正执行的程序指令来生成控制信号,该控制信号用于控制数据路径4、6、8、10及处理器核心的其它部分。程序指令是沿指令路径从存储器取回的。将由数据路径4、6、8、10操纵的数据值亦从存储器取回。应了解,数据处理设备2通常含有许多另外的电路组件,且为了清楚起见,这些组件已从第1图省略。
数据处理系统2还包括程序计数器寄存器16,程序计数器寄存器16用以储存存储器地址值,该存储器地址值对应于目前执行中的程序指令的存储器地址。目前程序状态寄存器18及所保存程序状态寄存器20亦被提供来储存状态变量,该等变量指示数据处理系统2的目前状态以及当模式改变发生以及希望记录先前状态变量时使用的数据处理系统2的所保存状态。此种类型的目前程序状态寄存器18及所保存程序状态寄存器20是本领域人士熟知的,例如,熟知由英国剑桥的ARMLimited公司所设计的处理器的人士。
还包括在数据处理系统2中的是非法改变侦测电路22。此非法改变侦测电路22耦合至目前程序状态寄存器18且用以侦测数据处理系统2的操作模式的非法改变。作为一示例,非法改变侦测电路22可侦测与如下切换相对应的非法改变:该切换是作为对模式改变指令的执行或未被允许方式的异常返回的响应而发生的到更高等级权限的切换。可由非法改变侦测电路22侦测的非法改变的另一示例是改变以执行来自不同指令集(数据处理系统2及指令译码器12可支持多个不同指令集)的指令,该指令集于保存在系统内的、指示使用中的指令集应为何的其它状态数据相抵触。应了解到,定义目前操作模式的数据通常是储存在目前程序状态寄存器18内,因此,非法改变侦测电路22被耦合至目前程序状态寄存器18并且可在尝试将模式改变写入目前程序状态寄存器18内的点处侦测到这些改变。这些写入在相关联非法程序指令的执行中可能迟发生,因为这些可能具有数据相依性,其控制正作出的改变是否是非法的。因此,当将非法程序指令译码时尝试识别这些非法程序指令是困难的并且给数据处理系统2的设计带来了不希望的微架构约束。
当非法改变侦测电路22侦测到非法模式改变时,其将目前程序状态寄存器18内的非法改变位24设定至预定值(如将此非法改变位CPSR.IL设定至值“1”)。若储存在目前程序状态寄存器18内的状态变量被保存,例如当取得异常时,则它们被保存到所保存程序状态寄存器20内。这包括将非法改变位24的复本储存到所保存程序状态寄存器20内的对应的所保存非法改变位26。
在侦测到非法模式改变后将非法改变位24设定至预定值的同时,非法改变侦测电路22亦将指示尝试了该非法改变的非法程序指令的类型的数据写入症状寄存器28中。因此,症状寄存器28可含有指示非法程序指令是非法模式改变指令或是不同类型的非法异常返回指令的数据。储存在症状寄存器28内的数据可在与后续响应相关联的异常处置期间被分析,该后续响应是对被视为未定义指令的、跟随在非法指令之后的指令的响应。
当非法改变位24被设定时,指令译码器响应于此位来将后续接收到的程序指令视为未定义指令。因此,非法改变位CPSR.IL作为输入而被供应至指令译码器12。当指令译码器12接收到的非法改变位CPSR.IL的值与预定值(例如,被设定成值1)相匹配时,指令译码器12将把接收用于译码的所有程序指令视为未定义指令。
指令译码器12可通过触发待由未定义指令异常处置代码处理的未定义指令异常来对译码未定义程序指令(如可能由非法异常位指示的)的尝试作出响应。本领域人士将会熟习这些未定义异常,尽管这些未定义异常通常不通过此非法改变侦测机制产生。
第2图图示出异常返回指令的示例。在此示例中,异常返回指令触发将新的程序计数器值从寄存器排4的寄存器之一中储存进入程序计数器寄存器16内。类似地,新的模式值从所保存程序状态寄存器20被写入至目前程序状态寄存器18内。触发第2图中所示的响应的许多不同形式的异常返回指令可由指令译码器12识别。
第3图图示出异常返回指令的另一示例。在此示例中,待储存在程序计数器寄存器16及目前程序状态寄存器18内的新的程序计数器值及新的模式值是从存储器30的存储器地址(Rn)处读取的,该存储器地址由与从异常指令(RFE[Rn])的返回相关联的寄存器指定。
第4图概要地图示所尝试的非法模式改变的发生及对其的响应。如由线32图示出的,该系统正在处理异常等级EL1的程序指令。在点34处,执行指定非法模式改变的异常返回指令的尝试被进行,如先前讨论的。此非法模式改变由非法改变侦测电路22侦测到。非法改变侦测电路22将非法改变位CPSR.IL设定至预定值,以使得CPSR.IL=1。当指令译码器12响应于具有该预定值的非法改变位CPSR.IL时,如在点36处指示的被执行的后续指令被指令译码器12视为未定义指令。
第5图图示出对正常中断之后的非法尝试的模式改变的响应。在处理38期间,非法指令由非法改变侦测电路22侦测到。非法改变位被设定成预定值。紧接着非法程序指令的执行之后,中断40产生,其导致异常响应,该异常响应包括至更高异常等级EL2的改变。作为此异常响应的部分,目前程序状态寄存器18将其内容复制至所保存程序状态寄存器20且目前程序状态寄存器18内的非法改变位24被改变为与预定值不同。这具有如下结果:在处理42期间执行的超级管理器程序的异常处置程序指令不被视为未定义指令,且可正常地执行以如预期地处置中断事件40。在从异常事件44返回时,所保存程序状态寄存器20的内容(包括具有预定值的非法改变位)被重新储存到目前程序状态寄存器18内。因此,当在处理46处重新开始原始程序序列的执行时,程序指令被视为未定义并且可藉由触发相关联未定义异常响应(未显示)而被响应,该相关联未定义异常响应将会再次触发至更高等级的权限并且造成非法改变位从预定值改变从而使得未定义异常响应可执行其代码。
第6图是图示出非法改变侦测电路22的操作的流程图。在步骤48处,处理等待直至存在改变操作模式的尝试。步骤50判断此改变是否是非法的,即,是否匹配与非法改变相对应的预定特性。若改变是非法的,则步骤52阻止该改变,步骤54将指示尝试了该改变的非法程序指令的值写入症状寄存器28,并且步骤56将非法改变位CPSR.IL设定至预定值。若步骤50处的判断是该改变为合法的,则步骤58允许由相关程序指令指定的模式改变。
第7图是概要地图示出指令译码器12的操作的流程图。在步骤60处,指令译码器12等待要译码的程序指令。在步骤62处,判断非法改变位CPSR.IL是否具有指示先前作出非法模式改变的尝试的预定值。若非法改变位具有预定值,则处理前进至步骤64,在该处未定义指令处置被调用,例如与未定义指令异常相对应的异常事件被触发。若步骤62处的判断是非法改变位未被设定,则处理前进至步骤66,在该处以正常方式将指令译码。应了解到,步骤66处的译码事实上可以以独立于任何先前尝试的非法模式改变的方式来得到所涉及指令是未定义指令的判断,诸如单纯误形成的指令。
第8图图示出可使用的虚拟机实施方案。虽然先前描述的具体实施例根据用于操作支持所涉及技术的特定处理硬件的设备及方法来实现本发明,但是亦可能提供所谓的硬件装置的虚拟机实施方案。这些虚拟机器实施方案在主机处理器530上运行,该主机处理器530运行支持虚拟机程序510的主机操作系统520。通常,需要大型强力处理器以提供以合理速度执行的虚拟机实施方案,但可在某些环境中证明此方法合理,例如当希望为了兼容性或再使用的原因而运行原产自另外的处理器的代码时。虚拟机程序510提供到应用程序500的应用程序接口,该接口与将会由真实硬件提供的应用程序接口相同,真实硬件是由虚拟机程序510模仿的装置。因此,程序指令(包括对上述存储器访问的控制)可从使用虚拟机程序510的应用程序500内执行,以模仿它们与虚拟机硬件的交互。
Claims (22)
1.一种用于处理数据的设备,该设备包含:
处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式,所述复数个模式包括复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行;及
非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中
当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。
2.如权利要求1所述的设备,该设备包含目前程序状态寄存器,该目前程序状态寄存器被配置为储存定义该设备的目前状态的数据,该数据包括该处理电路的目前模式及该非法改变位。
3.如权利要求1和2中任一项所述的设备,其中该非法程序指令是以下各项之一:
(i)是非法模式改变指令的非法程序指令;及
(ii)是非法异常返回指令的非法程序指令。
4.如权利要求3所述的设备,其中非法异常返回从相应的寄存器检索该新的程序计数器值及该新模式。
5.如权利要求3所述的设备,其中非法异常返回从存储器检索该新的程序计数器值及该新模式。
6.如权利要求1所述的设备,其中模式的该非法改变是以下各项之一:
(i)至具有更高等级的权限的模式的改变;及
(ii)至与该设备所储存的、指示该模式为何的其它状态数据相抵触的模式的改变。
7.如权利要求1所述的设备,其中该处理电路被配置为响应于异常事件而将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。
8.如权利要求7所述的设备,其中该处理电路被配置为使得当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。
9.如权利要求1所述的设备,包含症状寄存器,该症状寄存器被配置为储存指示尝试了模式的非法改变的该非法程序指令的类型的症状值。
10.如权利要求1所述的设备,其中该处理电路通过触发未定义指令异常事件来对执行未定义指令的尝试作出响应。
11.如权利要求1所述的设备,其中所述复数个模式包括复数个不同等级的权限,这些权限具有对于该设备的资源的不同访问等级。
12.一种处理数据的方法,该方法包含以下步骤:
使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式,所述复数个模式包括复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行;
响应于侦测到由一非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;及
当该非法改变位具有该预定值时,将进一步的程序指令作为未定义指令来响应。
13.如权利要求12所述的方法,包含将如下数据储存于目前程序状态寄存器中的步骤,该数据包括该处理电路的目前模式及该非法改变位。
14.如权利要求12所述的方法,其中该非法程序指令是以下各项之一:
(i)是非法模式改变指令的非法程序指令;及
(ii)是非法异常返回指令的非法程序指令。
15.如权利要求14所述的方法,其中非法异常返回从相应的寄存器检索该新的程序计数器值及该新模式。
16.如权利要求14所述的方法,其中非法异常返回从存储器检索该新的程序计数器值及该新模式。
17.如权利要求12所述的方法,其中模式的该非法改变是以下各项之一:
(i)至具有更高等级的权限的模式的改变;及
(ii)至与指示该模式为何的其它所存储状态数据相抵触的模式的改变。
18.如权利要求12所述的方法,该方法包含响应于异常事件,将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。
19.如权利要求18所述的方法,其中当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。
20.如权利要求12所述的方法,该方法包含在症状寄存器中储存症状值,该症状值指示尝试了模式的非法改变的该非法程序指令的类型。
21.如权利要求12所述的方法,该方法包含响应于执行定义未指令的尝试,触发未定义指令异常事件。
22.如权利要求12所述的方法,其中所述复数个模式包括复数个不同等级的权限,这些权限具有对于资源的不同访问等级。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1013467.4A GB2482701C (en) | 2010-08-11 | 2010-08-11 | Illegal mode change handling |
GB1013467.4 | 2010-08-11 | ||
PCT/GB2011/051095 WO2012020238A1 (en) | 2010-08-11 | 2011-06-13 | Illegal mode change handling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103052941A CN103052941A (zh) | 2013-04-17 |
CN103052941B true CN103052941B (zh) | 2016-03-09 |
Family
ID=42931474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180038092.7A Active CN103052941B (zh) | 2010-08-11 | 2011-06-13 | 非法模式改变的处置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8959318B2 (zh) |
EP (1) | EP2572274B1 (zh) |
JP (1) | JP5699213B2 (zh) |
KR (1) | KR101740224B1 (zh) |
CN (1) | CN103052941B (zh) |
GB (1) | GB2482701C (zh) |
IL (1) | IL223265A0 (zh) |
MY (1) | MY160351A (zh) |
TW (1) | TWI509453B (zh) |
WO (1) | WO2012020238A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201217531D0 (en) * | 2012-10-01 | 2012-11-14 | Advanced Risc Mach Ltd | ARMv7-M Asset Protection Proposal |
US10210349B2 (en) | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
GB2501343A (en) * | 2012-02-08 | 2013-10-23 | Advanced Risc Mach Ltd | Data processing apparatus and method using secure domain and less secure domain |
US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
JP5591883B2 (ja) * | 2012-07-23 | 2014-09-17 | 株式会社東芝 | 情報処理装置、プログラム |
GB2517494B (en) * | 2013-08-23 | 2021-02-24 | Advanced Risc Mach Ltd | Handling time intensive instructions |
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
GB2538091B (en) * | 2015-05-07 | 2018-03-14 | Advanced Risc Mach Ltd | Verifying correct code execution context |
US20170185400A1 (en) | 2015-12-23 | 2017-06-29 | Intel Corporation | Mode-specific endbranch for control flow termination |
US9785800B2 (en) | 2015-12-23 | 2017-10-10 | Intel Corporation | Non-tracked control transfers within control transfer enforcement |
GB2549774B (en) * | 2016-04-28 | 2019-04-10 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
US10360353B2 (en) * | 2017-02-08 | 2019-07-23 | International Business Machines Corporation | Execution control of computer software instructions |
GB2563580B (en) * | 2017-06-15 | 2019-09-25 | Advanced Risc Mach Ltd | An apparatus and method for controlling a change in instruction set |
GB2563887B (en) * | 2017-06-28 | 2019-12-25 | Advanced Risc Mach Ltd | Masking of architectural state associated with a realm |
GB2563884B (en) * | 2017-06-28 | 2020-01-08 | Advanced Risc Mach Ltd | Exception return instruction |
US10956157B1 (en) * | 2018-03-06 | 2021-03-23 | Advanced Micro Devices, Inc. | Taint protection during speculative execution |
CN110853751B (zh) * | 2019-11-25 | 2023-04-14 | 安徽名流健康管理有限公司 | 多普勒超声诊断实时显示系统 |
US11556346B2 (en) * | 2020-06-10 | 2023-01-17 | Qualcomm Incorporated | Security enhancement in hierarchical protection domains |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542033A (en) * | 1993-10-13 | 1996-07-30 | International Business Machines Corporation | Correction and modification of microprocessor chip operations |
CN1525323A (zh) * | 2003-02-24 | 2004-09-01 | ���µ�����ҵ��ʽ���� | 处理器以及用于产生在处理器中使用的程序的编译器 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3157242B2 (ja) * | 1992-01-14 | 2001-04-16 | 株式会社ピーエフユー | マイクロ・プログラム制御におけるエラー処理方法 |
KR100315347B1 (ko) * | 1999-11-18 | 2001-11-26 | 윤종용 | 반도체 메모리 장치의 동작모드 세팅회로 및 방법 |
US6886112B2 (en) * | 2002-06-28 | 2005-04-26 | Microsoft Corporation | Recovering from device failure |
JP2004062309A (ja) * | 2002-07-25 | 2004-02-26 | Fujitsu Ltd | 不当命令処理方法及びプロセッサ |
WO2004046925A1 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Security mode switching via an exception vector |
JP2004280801A (ja) * | 2003-02-24 | 2004-10-07 | Matsushita Electric Ind Co Ltd | プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置 |
US7281271B1 (en) * | 2003-09-25 | 2007-10-09 | Symantec Corporation | Exception handling validation system and method |
US7076637B2 (en) * | 2003-10-29 | 2006-07-11 | Qualcomm Inc. | System for providing transitions between operating modes of a device |
KR100586500B1 (ko) * | 2004-03-18 | 2006-06-07 | 학교법인고려중앙학원 | 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치 |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US20070050848A1 (en) * | 2005-08-31 | 2007-03-01 | Microsoft Corporation | Preventing malware from accessing operating system services |
US20070067826A1 (en) * | 2005-09-19 | 2007-03-22 | Texas Instruments Incorporated | Method and system for preventing unsecure memory accesses |
US20100132053A1 (en) * | 2005-10-04 | 2010-05-27 | Nec Corporation | Information processing device, information processing method and program |
US8959339B2 (en) * | 2005-12-23 | 2015-02-17 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
CN101438290B (zh) * | 2006-05-01 | 2011-10-05 | 联发科技股份有限公司 | 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 |
US8352713B2 (en) * | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
JP5245237B2 (ja) * | 2006-09-29 | 2013-07-24 | 富士通セミコンダクター株式会社 | エラー処理方法 |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
JP2008250387A (ja) * | 2007-03-29 | 2008-10-16 | Toshiba Corp | 情報処理装置 |
DE102007015507B4 (de) * | 2007-03-30 | 2010-09-02 | Advanced Micro Devices, Inc., Sunnyvale | Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb |
GB2448149B (en) * | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
US20090070565A1 (en) * | 2007-09-11 | 2009-03-12 | Tellabs Reston Inc. | Methods, systems, computer programs and apparatus for changing a processor state |
US8150950B2 (en) * | 2008-05-13 | 2012-04-03 | Schneider Electric USA, Inc. | Automated discovery of devices in large utility monitoring systems |
-
2010
- 2010-08-11 GB GB1013467.4A patent/GB2482701C/en active Active
-
2011
- 2011-06-13 MY MYPI2012701039A patent/MY160351A/en unknown
- 2011-06-13 JP JP2013523663A patent/JP5699213B2/ja active Active
- 2011-06-13 WO PCT/GB2011/051095 patent/WO2012020238A1/en active Application Filing
- 2011-06-13 EP EP11733693.3A patent/EP2572274B1/en active Active
- 2011-06-13 KR KR1020137003612A patent/KR101740224B1/ko active IP Right Grant
- 2011-06-13 CN CN201180038092.7A patent/CN103052941B/zh active Active
- 2011-06-28 US US13/067,808 patent/US8959318B2/en active Active
- 2011-08-08 TW TW100128204A patent/TWI509453B/zh active
-
2012
- 2012-11-26 IL IL223265A patent/IL223265A0/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542033A (en) * | 1993-10-13 | 1996-07-30 | International Business Machines Corporation | Correction and modification of microprocessor chip operations |
CN1525323A (zh) * | 2003-02-24 | 2004-09-01 | ���µ�����ҵ��ʽ���� | 处理器以及用于产生在处理器中使用的程序的编译器 |
Also Published As
Publication number | Publication date |
---|---|
JP2013539574A (ja) | 2013-10-24 |
US8959318B2 (en) | 2015-02-17 |
EP2572274A1 (en) | 2013-03-27 |
JP5699213B2 (ja) | 2015-04-08 |
KR101740224B1 (ko) | 2017-05-26 |
EP2572274B1 (en) | 2014-11-19 |
MY160351A (en) | 2017-02-28 |
US20120042154A1 (en) | 2012-02-16 |
TWI509453B (zh) | 2015-11-21 |
CN103052941A (zh) | 2013-04-17 |
GB201013467D0 (en) | 2010-09-22 |
GB2482701A (en) | 2012-02-15 |
GB2482701C (en) | 2018-12-26 |
IL223265A0 (en) | 2013-02-03 |
TW201229809A (en) | 2012-07-16 |
KR20130137591A (ko) | 2013-12-17 |
GB2482701B (en) | 2017-01-11 |
WO2012020238A1 (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103052941B (zh) | 非法模式改变的处置 | |
US9477834B2 (en) | Maintaining secure data isolated from non-secure access when switching between domains | |
EP3433725B1 (en) | Program loop control | |
CN104205064B (zh) | 将程序事件记录事件向运行时间检测事件变换的系统及方法 | |
US6754856B2 (en) | Memory access debug facility | |
EP3433723B1 (en) | Branch instruction | |
EP3433726B1 (en) | Program loop control | |
CN101490646A (zh) | 虚拟化性能计数器 | |
WO2011131469A1 (en) | Debugging multithreaded code | |
EP2603852B1 (en) | Alignment control | |
CN109416632B (zh) | 用于处理数据的装置和方法 | |
KR102427949B1 (ko) | 데이터 처리 장치에서의 시스템 에러 핸들링 | |
US11030075B2 (en) | Efficient register breakpoints | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
US20160371501A1 (en) | Tracing processing activity | |
WO2002003200A2 (en) | Method and apparatus to replay transformed instructions | |
EP3507697B1 (en) | An apparatus and method for controlling assertion of a trigger signal to processing circuitry | |
CN106990939B (zh) | 修改数据处理单元的行为 | |
CN104380265B (zh) | 运行时间检测控制发出指令 | |
US11775297B2 (en) | Transaction nesting depth testing instruction | |
CN110799940A (zh) | 内容数据管理 | |
WO2003034224A2 (en) | Debug exception registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |