非法模式改变的处置.pdf

上传人:e2 文档编号:1573572 上传时间:2018-06-25 格式:PDF 页数:15 大小:1.60MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180038092.7

申请日:

2011.06.13

公开号:

CN103052941A

公开日:

2013.04.17

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/30申请日:20110613|||公开

IPC分类号:

G06F9/30; G06F9/318; G06F9/38

主分类号:

G06F9/30

申请人:

ARM有限公司

发明人:

理查德·罗伊·格里森思怀特

地址:

英国剑桥

优先权:

2010.08.11 GB 1013467.4

专利代理机构:

北京东方亿思知识产权代理有限责任公司 11258

代理人:

李晓冬

PDF下载: PDF下载
内容摘要

一种支持多种操作模式的数据处理系统(2)设有非法改变侦测电路(22),非法改变侦测电路(22)响应于模式改变程序指令或异常返回指令的执行来侦测由程序指令执行非法模式改变的尝试,例如改变至更高等级的权限。若侦测到此改变,则设定非法改变位CPSR.IL。指令译码器(12)响应于具有设定值的非法改变位而将后续程序指令视为未定义指令。这些未定义指令可接着触发未定义指令异常或其它类型的响应。

权利要求书

权利要求书一种用于处理数据的设备,该设备包含:
处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;及
非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中
当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。
如权利要求1所述的设备,该设备包含目前程序状态寄存器,该目前程序状态寄存器被配置为储存定义该设备的目前状态的数据,该数据包括该处理电路的目前模式及该非法改变位。
如权利要求1和2中任一项所述的设备,其中该非法程序指令是以下各项之一:
(i)指定不被允许的模式改变的模式指令的明确改变;及
(ii)从指定新的程序计数器值和不被允许的新模式的异常指令的返回。
如权利要求3所述的设备,其中从异常指令的该返回从相应的寄存器检索该新的程序计数器值及该新模式。
如权利要求3所述的设备,其中从异常指令的该返回从存储器检索该新的程序计数器值及该新模式。
如前面权利要求中任一项所述的设备,其中模式的该非法改变是以下各项之一:
(i)至具有更高等级的权限的模式的改变;及
(ii)至与该设备所储存的、指示该模式为何的其它状态数据相抵触的模式的改变。
如前面权利要求中任一项所述的设备,其中该处理电路被配置为响应于异常事件而将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。
如权利要求7所述的设备,其中该处理电路被配置为使得当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。
如前面权利要求中任一项所述的设备,包含症状寄存器,该症状寄存器被配置为储存指示尝试了模式的非法改变的该非法程序指令的类型的症状值。
如前面权利要求中任一项所述的设备,其中该处理电路通过触发未定义指令异常事件来对执行未定义指令的尝试作出响应。
如前面权利要求中任一项所述的设备,其中所述复数个模式包括以下各项中的一个或多个:
(i)复数个不同等级的权限,这些权限具有对于该设备的资源的不同访问等级;及
(ii)复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行。
一种用于处理数据的设备,该设备包含:
处理构件,该处理构件用于响应于程序指令以施行数据处理操作,该处理构件具有复数个模式;及
非法改变侦测构件,该非法改变侦测构件用于侦测由非法程序指令指定的对该处理电路的模式的非法改变的尝试并且响应于该尝试而进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;其中
当该非法改变位具有该预定值时,该处理构件将进一步的程序指令作为未定义指令来响应。
一种处理数据的方法,该方法包含以下步骤:
使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;
响应于侦测到由一非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;及
当该非法改变位具有该预定值时,将进一步的程序指令作为未定义指令来响应。
如权利要求13所述的方法,包含将如下数据储存于目前程序状态寄存器中的步骤,该数据包括该处理电路的目前模式及该非法改变位。
如权利要求13和14中任一项所述的方法,其中该非法程序指令是以下各项之一:
(i)指定不被允许的模式改变的模式指令的明确改变;及
(ii)从指定新的程序计数器值和不被允许的新模式的异常指令的返回。
如权利要求15所述的方法,其中从异常指令的该返回从相应的寄存器检索该新的程序计数器值及该新模式。
如权利要求15所述的方法,其中从异常指令的该返回从存储器检索该新的程序计数器值及该新模式。
如权利要求13至17中任一项所述的方法,其中模式的该非法改变是以下各项之一:
(i)至具有更高等级的权限的模式的改变;及
(ii)至与指示该模式为何的其它所存储状态数据相抵触的模式的改变。
如权利要求13至18中任一项所述的方法,该方法包含响应于异常事件,将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。
如权利要求19所述的方法,其中当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。
如权利要求13至20中任一项所述的方法,该方法包含在症状寄存器中储存症状值,该症状值指示尝试了模式的非法改变的该非法程序指令的类型。
如权利要求13至21中任一项所述的方法,该方法包含响应于执行定义未指令的尝试,触发未定义指令异常事件。
如权利要求13至22中任一项所述的方法,其中所述复数个模式包括以下各项中的一个或多个:
(i)复数个不同等级的权限,这些权限具有对于资源的不同访问等级;及
(ii)复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行。
一种虚拟机,包括计算机程序,该计算机程序控制计算机以执行如权利要求13至23中任一项所述的方法。

说明书

说明书非法模式改变的处置
技术领域
本发明关于数据处理系统的领域。更具体言之,本发明关于具有多操作模式及对该等模式之间的改变进行管理的数据处理系统。
背景技术
提供具有多操作模式的数据处理系统已为人知。这些模式例如可对应于不同等级的权限(privilege),使用这些不同权限等级具有对于系统的资源的不同访问权利。该等权限等级可是硬件权限等级,使得当系统在具有高权限的模式中时能访问在具有较低权限的模式中操作时不可访问的存储器地址空间的各区域。模式亦可对应于异常(exception)等级处置系统内的不同异常等级。具有多操作模式的这些数据处理系统的示例是由英国剑桥的ARM Limited公司所设计的处理器。
在具有多操作模式的这些数据处理系统内,会出现一些模式改变是非法(即不应被允许)的。作为一示例,作为安全性措施,应该不能执行将模式改变成更高等级权限从而获得对系统资源的更多访问的软件指令。这些改变通过使用异常机制被更好地作出,由此异常处置代码可以处理至更高等级权限的进入并且保持系统的安全性。提供具有防止这些非法模式改变的硬件机构的数据处理系统是为人已知的。然而,当已防止这样的模式改变时,系统的行为可随着实施方案而异,以及取决于已被防止的非法改变的类型而异。
发明内容
从一个方面看,本发明提供了用于处理数据的设备,该设备包含:
处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;及
非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中
当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。
本技术提供对非法模式改变的侦测的一致响应,该技术可统一地应用且该技术本身通过要求数据相依性以触发非法改变响应而不引入明显的实施困难。数据相依性可出现于当改变到的模式从存储器或从寄存器被转移的时候,该寄存器本身可能在执行流水线中较迟被编程。当非法改变位曾具有预定值时将非法改变位重设定至预定值且将后续程序指令视为未定义指令,允许对非法改变的响应有效地被推迟并被处理以作为对现在未定义后续指令的响应。这使得在侦测非法模式改变中的数据相依性问题减轻。
尽管非法改变位能储存在设备内的许多不同处,但在一些实施例中,非法改变位形成目前程序状态寄存器的一部分,该目前程序状态寄存器储存定义设备的目前状态的数据。指示指令应被视为未定义指令的非法改变位适当地被视为系统的目前状态的一部分并且因此被适当地储存在目前程序状态寄存器内。
非法程序指令可具有许多不同形式。在一形式中,模式指令的明确改变可构成非法程序指令,如果其指定不被允许的模式改变(如向更高等级权限的改变)的话。非法程序指令的另一形式是从指定新的程序计数器值及不被允许的新模式的异常指令的返回,例如到更高等级的权限的返回。
从异常指令的返回本身可有不同形式。在一示例形式中,新的程序计数器值及新模式可在存储在系统内的相应寄存器中指定。在从异常指令返回的另一示例形式中,新的程序计数器值及新模式可在存储器中指定。
如先前提及,模式的非法改变可采取许多不同形式。一示例是至更高等级的权限的改变。另一示例是至与设备内储存的、指示模式状态应是什么的其它状态数据相抵触的模式的改变,例如,指示不同指令集将与储存于系统内的此抵触的其它数据(指示应使用不同指令集)一起使用的模式改变。
为了使系统可保持对于在操作期间发生的异常的响应性而不管非法改变位的设定,在一些实施例中,该处理电路响应于异常事件,以将非法改变位的目前值储存作为所保存位并将非法改变位设定为不同于预定值的值,以使得与已发生的该异常事件相关联的异常处置程序指令可被执行。因此,当异常事件发生时,可以阻止在非法改变位被设定时将后续指令视为未定义指令,这省掉了非法改变位,从而允许异常处置程序指令的执行。
为了不失去适于非法模式改变的侦测的行为,一些实施例被配置为使得当从异常处置程序指令的执行返回时,非法改变位被设定以与该所保存位相匹配,以使得非法模式改变的先前发生接收其适当响应。
为了辅助处置非法模式改变,一些实施例包括症状(syndrome)寄存器,该寄存器被配置为储存指示尝试了模式的合法改变的非法程序指令的类型的症状值。可用此症状寄存器内的数据来触发对如下非法模式改变尝试的适当响应,所述非法模式改变尝试与引起该非法尝试的指令的类型相匹配。
对于未定义指令的一种类型的响应是触发未定义指令异常事件。用于响应于未定义指令的机制经常已存在于数据处理系统中,且这些机制可再利用来应对进行非法模式改变的尝试的影响。可使此未定义异常处置响应于症状寄存器,以使得未定义异常响应可适应于该异常的原因。
如以前提及,可在其间作出改变的复数个模式是可变化的。一示例是对于系统的资源具有不同访问等级的不同等级的权限。另一示例是系统利用复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的执行和译码。存在不同操作模式(这些不同操作模式之间的一些改变可能是非法的)的另外示例。
从另一方面看,本发明提供了一种用于处理数据的设备,该设备包含:
处理构件,该处理构件用于响应于程序指令以施行数据处理操作,该处理构件具有复数个模式;及
非法改变侦测构件,该非法改变侦测构件用于侦测由非法程序指令指定的对该处理电路的模式的非法改变的尝试并且响应于该尝试而进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;其中
当该非法改变位具有该预定值时,该处理构件将进一步的程序指令作为未定义指令来响应。
从另一方面看,本发明提供了一种处理数据的方法,该方法包含以下步骤:
使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;
响应于侦测到由非法程序指令指定的对该处理电路的模式进行非法改变的尝试,进行下列各项:
(i)阻止模式的该非法改变;及
(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;及
当该非法改变位具有该预定值时,将进一步的程序指令作为未定义指令来响应。
将进一步了解,本技术的一种实施方案可以为虚拟机的形式,该虚拟机包含被编程来为程序代码提供执行环境的通用计算机,该程序代码与上述设备及方法匹配并且包括用于响应于如以前讨论的模式的非法改变的机制。
附图说明
现在参考附图仪作为示例来描述本发明的实施例,在附图中:
图1概要地图示出数据处理系统,该数据处理系统支持多操作模式及包括非法模式改变侦测器;
图2概要地图示异常返回响应(exception return response)的一种示例形式;
图3概要地图示异常返回响应的另一示例形式;
图4概要地图示出非法模式改变的侦测及对其的响应;
图5概要地图示出对不相关中断事件之后的非法模式改变的侦测;
图6是概要地图示出非法模式改变的侦测的流程图;
图7是概要地图示出根据非法改变位对指令的译码的流程图;及
图8是概要地图示本技术的虚拟机器实施方案的图式。
具体实施方式
第1图概要地图示出处理器核心形式的数据处理设备2。该处理器核心包括数据路径,该数据路径包括通用寄存器排(register bank)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是本领域人士熟知的,例如,熟知由英国剑桥的ARM Limited公司所设计的处理器的人士。
还包括在数据处理系统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内执行,以模仿它们与虚拟机硬件的交互。

非法模式改变的处置.pdf_第1页
第1页 / 共15页
非法模式改变的处置.pdf_第2页
第2页 / 共15页
非法模式改变的处置.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《非法模式改变的处置.pdf》由会员分享,可在线阅读,更多相关《非法模式改变的处置.pdf(15页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103052941 A(43)申请公布日 2013.04.17CN103052941A*CN103052941A*(21)申请号 201180038092.7(22)申请日 2011.06.131013467.4 2010.08.11 GBG06F 9/30(2006.01)G06F 9/318(2006.01)G06F 9/38(2006.01)(71)申请人 ARM有限公司地址英国剑桥(72)发明人理查德罗伊格里森思怀特(74)专利代理机构北京东方亿思知识产权代理有限责任公司 11258代理人李晓冬(54) 发明名称非法模式改变的处置(57) 摘要一种支持多种操作。

2、模式的数据处理系统(2)设有非法改变侦测电路(22),非法改变侦测电路(22)响应于模式改变程序指令或异常返回指令的执行来侦测由程序指令执行非法模式改变的尝试,例如改变至更高等级的权限。若侦测到此改变,则设定非法改变位CPSR.IL。指令译码器(12)响应于具有设定值的非法改变位而将后续程序指令视为未定义指令。这些未定义指令可接着触发未定义指令异常或其它类型的响应。(30)优先权数据(85)PCT申请进入国家阶段日2013.02.01(86)PCT申请的申请数据PCT/GB2011/051095 2011.06.13(87)PCT申请的公布数据WO2012/020238 EN 2012.02.。

3、16(51)Int.Cl.权利要求书3页 说明书6页 附图5页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 3 页 说明书 6 页 附图 5 页1/3页21.一种用于处理数据的设备,该设备包含:处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;及非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:(i)阻止模式的该非法改变;及(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。。

4、2.如权利要求1所述的设备,该设备包含目前程序状态寄存器,该目前程序状态寄存器被配置为储存定义该设备的目前状态的数据,该数据包括该处理电路的目前模式及该非法改变位。3.如权利要求1和2中任一项所述的设备,其中该非法程序指令是以下各项之一:(i)指定不被允许的模式改变的模式指令的明确改变;及(ii)从指定新的程序计数器值和不被允许的新模式的异常指令的返回。4.如权利要求3所述的设备,其中从异常指令的该返回从相应的寄存器检索该新的程序计数器值及该新模式。5.如权利要求3所述的设备,其中从异常指令的该返回从存储器检索该新的程序计数器值及该新模式。6.如前面权利要求中任一项所述的设备,其中模式的该非法。

5、改变是以下各项之一:(i)至具有更高等级的权限的模式的改变;及(ii)至与该设备所储存的、指示该模式为何的其它状态数据相抵触的模式的改变。7.如前面权利要求中任一项所述的设备,其中该处理电路被配置为响应于异常事件而将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。8.如权利要求7所述的设备,其中该处理电路被配置为使得当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。9.如前面权利要求中任一项所述的设备,包含症状寄存器,该症状寄存器被配置为储存指示尝试了模式的非法改变的该非法程序指令的类型。

6、的症状值。10.如前面权利要求中任一项所述的设备,其中该处理电路通过触发未定义指令异常事件来对执行未定义指令的尝试作出响应。11.如前面权利要求中任一项所述的设备,其中所述复数个模式包括以下各项中的一个或多个:(i)复数个不同等级的权限,这些权限具有对于该设备的资源的不同访问等级;及(ii)复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行。12.一种用于处理数据的设备,该设备包含:处理构件,该处理构件用于响应于程序指令以施行数据处理操作,该处理构件具有复权 利 要 求 书CN 103052941 A2/3页3数个模式;及非法改变侦测构件,该非法改变侦测构件用于侦测由非法程。

7、序指令指定的对该处理电路的模式的非法改变的尝试并且响应于该尝试而进行下列各项:(i)阻止模式的该非法改变;及(ii)将非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;其中当该非法改变位具有该预定值时,该处理构件将进一步的程序指令作为未定义指令来响应。13.一种处理数据的方法,该方法包含以下步骤:使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;响应于侦测到由一非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:(i)阻止模式的该非法改变;及(ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;及当该非法改变位具有该预定值。

8、时,将进一步的程序指令作为未定义指令来响应。14.如权利要求13所述的方法,包含将如下数据储存于目前程序状态寄存器中的步骤,该数据包括该处理电路的目前模式及该非法改变位。15.如权利要求13和14中任一项所述的方法,其中该非法程序指令是以下各项之一:(i)指定不被允许的模式改变的模式指令的明确改变;及(ii)从指定新的程序计数器值和不被允许的新模式的异常指令的返回。16.如权利要求15所述的方法,其中从异常指令的该返回从相应的寄存器检索该新的程序计数器值及该新模式。17.如权利要求15所述的方法,其中从异常指令的该返回从存储器检索该新的程序计数器值及该新模式。18.如权利要求13至17中任一项。

9、所述的方法,其中模式的该非法改变是以下各项之一:(i)至具有更高等级的权限的模式的改变;及(ii)至与指示该模式为何的其它所存储状态数据相抵触的模式的改变。19.如权利要求13至18中任一项所述的方法,该方法包含响应于异常事件,将该非法改变位的目前值保存作为经保存位并且将该非法改变位设定为不同于该预定值的值,以使得与该异常事件相关联的异常处置程序指令被执行。20.如权利要求19所述的方法,其中当从该异常处置程序指令的执行返回时,该非法改变位被设定为与该经保存位相匹配。21.如权利要求13至20中任一项所述的方法,该方法包含在症状寄存器中储存症状值,该症状值指示尝试了模式的非法改变的该非法程序指。

10、令的类型。22.如权利要求13至21中任一项所述的方法,该方法包含响应于执行定义未指令的尝试,触发未定义指令异常事件。23.如权利要求13至22中任一项所述的方法,其中所述复数个模式包括以下各项中的一个或多个:权 利 要 求 书CN 103052941 A3/3页4(i)复数个不同等级的权限,这些权限具有对于资源的不同访问等级;及(ii)复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的译码和执行。24.一种虚拟机,包括计算机程序,该计算机程序控制计算机以执行如权利要求13至23中任一项所述的方法。权 利 要 求 书CN 103052941 A1/6页5非法模式改变的处置技术领域00。

11、01 本发明关于数据处理系统的领域。更具体言之,本发明关于具有多操作模式及对该等模式之间的改变进行管理的数据处理系统。背景技术0002 提供具有多操作模式的数据处理系统已为人知。这些模式例如可对应于不同等级的权限(privilege),使用这些不同权限等级具有对于系统的资源的不同访问权利。该等权限等级可是硬件权限等级,使得当系统在具有高权限的模式中时能访问在具有较低权限的模式中操作时不可访问的存储器地址空间的各区域。模式亦可对应于异常(exception)等级处置系统内的不同异常等级。具有多操作模式的这些数据处理系统的示例是由英国剑桥的ARM Limited公司所设计的处理器。0003 在具有。

12、多操作模式的这些数据处理系统内,会出现一些模式改变是非法(即不应被允许)的。作为一示例,作为安全性措施,应该不能执行将模式改变成更高等级权限从而获得对系统资源的更多访问的软件指令。这些改变通过使用异常机制被更好地作出,由此异常处置代码可以处理至更高等级权限的进入并且保持系统的安全性。提供具有防止这些非法模式改变的硬件机构的数据处理系统是为人已知的。然而,当已防止这样的模式改变时,系统的行为可随着实施方案而异,以及取决于已被防止的非法改变的类型而异。发明内容0004 从一个方面看,本发明提供了用于处理数据的设备,该设备包含:0005 处理电路,该处理电路响应于程序指令以施行数据处理操作,该处理电。

13、路具有复数个模式;及0006 非法改变侦测电路,该非法改变侦测电路响应于由非法程序指令指定的对该处理电路的模式的非法改变的尝试,进行下列各项:0007 (i)阻止模式的该非法改变;及0008 (ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的一预定值;其中0009 当该非法改变位具有该预定值时,该处理电路将进一步的程序指令作为未定义指令来响应。0010 本技术提供对非法模式改变的侦测的一致响应,该技术可统一地应用且该技术本身通过要求数据相依性以触发非法改变响应而不引入明显的实施困难。数据相依性可出现于当改变到的模式从存储器或从寄存器被转移的时候,该寄存器本身可能在执行流水线中较。

14、迟被编程。当非法改变位曾具有预定值时将非法改变位重设定至预定值且将后续程序指令视为未定义指令,允许对非法改变的响应有效地被推迟并被处理以作为对现在未定义后续指令的响应。这使得在侦测非法模式改变中的数据相依性问题减轻。0011 尽管非法改变位能储存在设备内的许多不同处,但在一些实施例中,非法改变位说 明 书CN 103052941 A2/6页6形成目前程序状态寄存器的一部分,该目前程序状态寄存器储存定义设备的目前状态的数据。指示指令应被视为未定义指令的非法改变位适当地被视为系统的目前状态的一部分并且因此被适当地储存在目前程序状态寄存器内。0012 非法程序指令可具有许多不同形式。在一形式中,模式。

15、指令的明确改变可构成非法程序指令,如果其指定不被允许的模式改变(如向更高等级权限的改变)的话。非法程序指令的另一形式是从指定新的程序计数器值及不被允许的新模式的异常指令的返回,例如到更高等级的权限的返回。0013 从异常指令的返回本身可有不同形式。在一示例形式中,新的程序计数器值及新模式可在存储在系统内的相应寄存器中指定。在从异常指令返回的另一示例形式中,新的程序计数器值及新模式可在存储器中指定。0014 如先前提及,模式的非法改变可采取许多不同形式。一示例是至更高等级的权限的改变。另一示例是至与设备内储存的、指示模式状态应是什么的其它状态数据相抵触的模式的改变,例如,指示不同指令集将与储存于。

16、系统内的此抵触的其它数据(指示应使用不同指令集)一起使用的模式改变。0015 为了使系统可保持对于在操作期间发生的异常的响应性而不管非法改变位的设定,在一些实施例中,该处理电路响应于异常事件,以将非法改变位的目前值储存作为所保存位并将非法改变位设定为不同于预定值的值,以使得与已发生的该异常事件相关联的异常处置程序指令可被执行。因此,当异常事件发生时,可以阻止在非法改变位被设定时将后续指令视为未定义指令,这省掉了非法改变位,从而允许异常处置程序指令的执行。0016 为了不失去适于非法模式改变的侦测的行为,一些实施例被配置为使得当从异常处置程序指令的执行返回时,非法改变位被设定以与该所保存位相匹配。

17、,以使得非法模式改变的先前发生接收其适当响应。0017 为了辅助处置非法模式改变,一些实施例包括症状(syndrome)寄存器,该寄存器被配置为储存指示尝试了模式的合法改变的非法程序指令的类型的症状值。可用此症状寄存器内的数据来触发对如下非法模式改变尝试的适当响应,所述非法模式改变尝试与引起该非法尝试的指令的类型相匹配。0018 对于未定义指令的一种类型的响应是触发未定义指令异常事件。用于响应于未定义指令的机制经常已存在于数据处理系统中,且这些机制可再利用来应对进行非法模式改变的尝试的影响。可使此未定义异常处置响应于症状寄存器,以使得未定义异常响应可适应于该异常的原因。0019 如以前提及,可。

18、在其间作出改变的复数个模式是可变化的。一示例是对于系统的资源具有不同访问等级的不同等级的权限。另一示例是系统利用复数个不同指令集模式,各模式对应于来自不同指令集的程序指令的执行和译码。存在不同操作模式(这些不同操作模式之间的一些改变可能是非法的)的另外示例。0020 从另一方面看,本发明提供了一种用于处理数据的设备,该设备包含:0021 处理构件,该处理构件用于响应于程序指令以施行数据处理操作,该处理构件具有复数个模式;及0022 非法改变侦测构件,该非法改变侦测构件用于侦测由非法程序指令指定的对该处理电路的模式的非法改变的尝试并且响应于该尝试而进行下列各项:说 明 书CN 103052941。

19、 A3/6页70023 (i)阻止模式的该非法改变;及0024 (ii)将非法改变位设定为指示该非法程序指令尝试施行该非法改变的预定值;其中0025 当该非法改变位具有该预定值时,该处理构件将进一步的程序指令作为未定义指令来响应。0026 从另一方面看,本发明提供了一种处理数据的方法,该方法包含以下步骤:0027 使用处理电路响应于程序指令以施行数据处理操作,该处理电路具有复数个模式;0028 响应于侦测到由非法程序指令指定的对该处理电路的模式进行非法改变的尝试,进行下列各项:0029 (i)阻止模式的该非法改变;及0030 (ii)将一非法改变位设定为指示该非法程序指令尝试施行该非法改变的预。

20、定值;及0031 当该非法改变位具有该预定值时,将进一步的程序指令作为未定义指令来响应。0032 将进一步了解,本技术的一种实施方案可以为虚拟机的形式,该虚拟机包含被编程来为程序代码提供执行环境的通用计算机,该程序代码与上述设备及方法匹配并且包括用于响应于如以前讨论的模式的非法改变的机制。附图说明0033 现在参考附图仪作为示例来描述本发明的实施例,在附图中:0034 图1概要地图示出数据处理系统,该数据处理系统支持多操作模式及包括非法模式改变侦测器;0035 图2概要地图示异常返回响应(exception return response)的一种示例形式;0036 图3概要地图示异常返回响应的。

21、另一示例形式;0037 图4概要地图示出非法模式改变的侦测及对其的响应;0038 图5概要地图示出对不相关中断事件之后的非法模式改变的侦测;0039 图6是概要地图示出非法模式改变的侦测的流程图;0040 图7是概要地图示出根据非法改变位对指令的译码的流程图;及0041 图8是概要地图示本技术的虚拟机器实施方案的图式。具体实施 方式0042 第1图概要地图示出处理器核心形式的数据处理设备2。该处理器核心包括数据路径,该数据路径包括通用寄存器排(register bank)4、乘法器6、移位器8及加法器10。指令译码器12响应于具有指令流水线14的序指令,根据正执行的程序指令来生成控制信号,该控。

22、制信号用于控制数据路径4、6、8、10及处理器核心的其它部分。程序指令是沿指令路径从存储器取回的。将由数据路径4、6、8、10操纵的数据值亦从存储器取回。应了解,数据处理设备2通常含有许多另外的电路组件,且为了清楚起见,这些组件已从第1图省略。0043 数据处理系统2还包括程序计数器寄存器16,程序计数器寄存器16用以储存存储器地址值,该存储器地址值对应于目前执行中的程序指令的存储器地址。目前程序状态寄说 明 书CN 103052941 A4/6页8存器18及所保存程序状态寄存器20亦被提供来储存状态变量,该等变量指示数据处理系统2的目前状态以及当模式改变发生以及希望记录先前状态变量时使用的数。

23、据处理系统2的所保存状态。此种类型的目前程序状态寄存器18及所保存程序状态寄存器20是本领域人士熟知的,例如,熟知由英国剑桥的ARM Limited公司所设计的处理器的人士。0044 还包括在数据处理系统2中的是非法改变侦测电路22。此非法改变侦测电路22耦合至目前程序状态寄存器18且用以侦测数据处理系统2的操作模式的非法改变。作为一示例,非法改变侦测电路22可侦测与如下切换相对应的非法改变:该切换是作为对模式改变指令的执行或未被允许方式的异常返回的响应而发生的到更高等级权限的切换。可由非法改变侦测电路22侦测的非法改变的另一示例是改变以执行来自不同指令集(数据处理系统2及指令译码器12可支持。

24、多个不同指令集)的指令,该指令集于保存在系统内的、指示使用中的指令集应为何的其它状态数据相抵触。应了解到,定义目前操作模式的数据通常是储存在目前程序状态寄存器18内,因此,非法改变侦测电路22被耦合至目前程序状态寄存器18并且可在尝试将模式改变写入目前程序状态寄存器18内的点处侦测到这些改变。这些写入在相关联非法程序指令的执行中可能迟发生,因为这些可能具有数据相依性,其控制正作出的改变是否是非法的。因此,当将非法程序指令译码时尝试识别这些非法程序指令是困难的并且给数据处理系统2的设计带来了不希望的微架构约束。0045 当非法改变侦测电路22侦测到非法模式改变时,其将目前程序状态寄存器18内的非。

25、法改变位24设定至预定值(如将此非法改变位CPSR.IL设定至值“1”)。若储存在目前程序状态寄存器18内的状态变量被保存,例如当取得异常时,则它们被保存到所保存程序状态寄存器20内。这包括将非法改变位24的复本储存到所保存程序状态寄存器20内的对应的所保存非法改变位26。0046 在侦测到非法模式改变后将非法改变位24设定至预定值的同时,非法改变侦测电路22亦将指示尝试了该非法改变的非法程序指令的类型的数据写入症状寄存器28中。因此,症状寄存器28可含有指示非法程序指令是非法模式改变指令或是不同类型的非法异常返回指令的数据。储存在症状寄存器28内的数据可在与后续响应相关联的异常处置期间被分析。

26、,该后续响应是对被视为未定义指令的、跟随在非法指令之后的指令的响应。0047 当非法改变位24被设定时,指令译码器响应于此位来将后续接收到的程序指令视为未定义指令。因此,非法改变位CPSR.IL作为输入而被供应至指令译码器12。当指令译码器12接收到的非法改变位CPSR.IL的值与预定值(例如,被设定成值1)相匹配时,指令译码器12将把接收用于译码的所有程序指令视为未定义指令。0048 指令译码器12可通过触发待由未定义指令异常处置代码处理的未定义指令异常来对译码未定义程序指令(如可能由非法异常位指示的)的尝试作出响应。本领域人士将会熟习这些未定义异常,尽管这些未定义异常通常不通过此非法改变侦。

27、测机制产生。0049 第2图图示出异常返回指令的示例。在此示例中,异常返回指令触发将新的程序计数器值从寄存器排4的寄存器之一中储存进入程序计数器寄存器16内。类似地,新的模式值从所保存程序状态寄存器20被写入至目前程序状态寄存器18内。触发第2图中所示的响应的许多不同形式的异常返回指令可由指令译码器12识别。0050 第3图图示出异常返回指令的另一示例。在此示例中,待储存在程序计数器寄存器16及目前程序状态寄存器18内的新的程序计数器值及新的模式值是从存储器30的存说 明 书CN 103052941 A5/6页9储器地址(Rn)处读取的,该存储器地址由与从异常指令(RFERn)的返回相关联的寄。

28、存器指定。0051 第4图概要地图示所尝试的非法模式改变的发生及对其的响应。如由线32图示出的,该系统正在处理异常等级EL1的程序指令。在点34处,执行指定非法模式改变的异常返回指令的尝试被进行,如先前讨论的。此非法模式改变由非法改变侦测电路22侦测到。非法改变侦测电路22将非法改变位CPSR.IL设定至预定值,以使得CPSR.IL1。当指令译码器12响应于具有该预定值的非法改变位CPSR.IL时,如在点36处指示的被执行的后续指令被指令译码器12视为未定义指令。0052 第5图图示出对正常中断之后的非法尝试的模式改变的响应。在处理38期间,非法指令由非法改变侦测电路22侦测到。非法改变位被设。

29、定成预定值。紧接着非法程序指令的执行之后,中断40产生,其导致异常响应,该异常响应包括至更高异常等级EL2的改变。作为此异常响应的部分,目前程序状态寄存器18将其内容复制至所保存程序状态寄存器20且目前程序状态寄存器18内的非法改变位24被改变为与预定值不同。这具有如下结果:在处理42期间执行的超级管理器程序的异常处置程序指令不被视为未定义指令,且可正常地执行以如预期地处置中断事件40。在从异常事件44返回时,所保存程序状态寄存器20的内容(包括具有预定值的非法改变位)被重新储存到目前程序状态寄存器18内。因此,当在处理46处重新开始原始程序序列的执行时,程序指令被视为未定义并且可藉由触发相关。

30、联未定义异常响应(未显示)而被响应,该相关联未定义异常响应将会再次触发至更高等级的权限并且造成非法改变位从预定值改变从而使得未定义异常响应可执行其代码。0053 第6图是图示出非法改变侦测电路22的操作的流程图。在步骤48处,处理等待直至存在改变操作模式的尝试。步骤50判断此改变是否是非法的,即,是否匹配与非法改变相对应的预定特性。若改变是非法的,则步骤52阻止该改变,步骤54将指示尝试了该改变的非法程序指令的值写入症状寄存器28,并且步骤56将非法改变位CPSR.IL设定至预定值。若步骤50处的判断是该改变为合法的,则步骤58允许由相关程序指令指定的模式改变。0054 第7图是概要地图示出指。

31、令译码器12的操作的流程图。在步骤60处,指令译码器12等待要译码的程序指令。在步骤62处,判断非法改变位CPSR.IL是否具有指示先前作出非法模式改变的尝试的预定值。若非法改变位具有预定值,则处理前进至步骤64,在该处未定义指令处置被调用,例如与未定义指令异常相对应的异常事件被触发。若步骤62处的判断是非法改变位未被设定,则处理前进至步骤66,在该处以正常方式将指令译码。应了解到,步骤66处的译码事实上可以以独立于任何先前尝试的非法模式改变的方式来得到所涉及指令是未定义指令的判断,诸如单纯误形成的指令。0055 第8图图示出可使用的虚拟机实施方案。虽然先前描述的具体实施例根据用于操作支持所涉。

32、及技术的特定处理硬件的设备及方法来实现本发明,但是亦可能提供所谓的硬件装置的虚拟机实施方案。这些虚拟机器实施方案在主机处理器530上运行,该主机处理器530运行支持虚拟机程序510的主机操作系统520。通常,需要大型强力处理器以提供以合理速度执行的虚拟机实施方案,但可在某些环境中证明此方法合理,例如当希望为了兼容性或再使用的原因而运行原产自另外的处理器的代码时。虚拟机程序510提供到应用程说 明 书CN 103052941 A6/6页10序500的应用程序接口,该接口与将会由真实硬件提供的应用程序接口相同,真实硬件是由虚拟机程序510模仿的装置。因此,程序指令(包括对上述存储器访问的控制)可从使用虚拟机程序510的应用程序500内执行,以模仿它们与虚拟机硬件的交互。说 明 书CN 103052941 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1