CN107066331A - 一种基于TrustZone的资源分配方法及设备 - Google Patents
一种基于TrustZone的资源分配方法及设备 Download PDFInfo
- Publication number
- CN107066331A CN107066331A CN201611184527.XA CN201611184527A CN107066331A CN 107066331 A CN107066331 A CN 107066331A CN 201611184527 A CN201611184527 A CN 201611184527A CN 107066331 A CN107066331 A CN 107066331A
- Authority
- CN
- China
- Prior art keywords
- program
- world
- shared
- related data
- run
- 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.)
- Granted
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种基于TrustZone的资源调度方法及设备,该方法包括:当需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;当需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。采用本发明,能够实现程序之间的有效隔离。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于TrustZone的资源分配方法及设备。
背景技术
在以控制面-数据面为模型的场景中,控制面负责非实时性的管理和策略控制任务,数据面负责承载高速的数据分组处理;这对数据面的高效、高可靠、低延迟等方面的要求越来越高。正是由于这种高要求,使得数据面的处理程序在实现上以简单为主,这通常就舍弃了传统的操作系统,最终的呈现方式以某个任务程序直接运行在一个CPU上,如图1所示,三个业务处理程序分别运行在CPU1、CPU2和CPU3上,可以理解为系统以单核单任务方式运行。
当业务处理程序能充分利用该业务处理程序所运行的CPU时,这种方式是一种很好的选择,但是当业务处理程序不能充分利用该业务处理程序所运行的CPU时,CPU性能得不到充分发挥,系统资源被浪费。在这种情况下,多任务系统应运而生,多任务系统首先需要解决的问题是任务之间如何切换,其次是如何保证任务的安全执行,多个任务运行在统一的实地址空间,虽然不同的任务的内存空间不同,但是不同的内存空间相互之间内容可见(即内存空间不能有效的隔离),如图2所示,图2示出了任务1的内存空间和任务2的内存空间,其中一个任务的错误运行引起的错误内存访问很有可能导致其他任务的运行异常,比如飞指针、数组越界等在多任务系统中是不可避免的,上述业务处理程序可以看作此处描述的任务。
为了实现不同业务处理程序之间的有效隔离,现有技术通常把业务处理程序放到虚拟化的环境中来达到多业务处理程序隔离的目的,同时可以利用控制面实现对各个业务处理程序的调度。然后,虚拟化的解决方案在提高便利性的同时也提高了诸多额外开销,例如,虚拟化层带来性能损失;再如,业务处理程序切换需要进出虚拟模式,等等。
发明内容
本发明实施例公开了一种基于TrustZone的资源调度方法及设备,能够各个程序之间的有效隔离。
第一方面,本发明实施例提供了一种基于TrustZone的资源调度方法,该方法包括:当需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normalworld,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;当需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
通过执行上述步骤,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
结合第一方面,在第一方面的第一种可能的实现方式中,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界,包括:将该CPU置于监控状态Monitor Mode;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该监控状态Monitor Mode。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该将该CPU置于监控状态Monitor Mode之后,将该第一程序的相关数据所占用的内存配置于该安全世界之前,还包括:生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息。
结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界之后,还包括:根据程序最近一次运行结束时的上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
第二方面,本发明实施例提供一种基于TrustZone的资源调度设备,该设备包括第一配置单元和第二配置单元,其中,第一配置单元,用于在需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;第二配置单元,用于在需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
通过运行上述单元,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
结合第二方面,在第二方面的第一种可能的实现方式中,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该第二配置单元具体用于:将该CPU置于监控状态Monitor Mode;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该监控状态Monitor Mode。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,还包括生成单元,生成单元用于在上述第二配置单元将该CPU置于监控状态MonitorMode之后,以及将该第一程序的相关数据所占用的内存配置于该安全世界之前,生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息。
结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,还包括恢复单元,恢复单元用于在该第二配置单元将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界之后,根据程序最近一次运行结束时的上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
第三方面,本发明实施例提供了一种基于TrustZone的资源调度设备,该设备包括处理器和存储器,该存储器用于存储程序和数据,该处理器调用该存储器中的程序,用于执行如下操作:当需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;当需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
通过执行上述操作,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
结合第三方面,在第三方面的第一种可能的实现方式中,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该处理器将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界,具体为:将该CPU置于监控状态Monitor Mode;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该监控状态MonitorMode。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,该将该CPU置于监控状态Monitor Mode之后,该处理器将该第一程序的相关数据所占用的内存配置于该安全世界之前,还用于:生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息。
结合第三方面,或者第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,或者第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,该处理器将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界之后,还用于:根据程序最近一次运行结束时的上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
通过实施本发明实施例,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术中CPU部署方式的场景示意图;
图2是现有技术中内存分配方式的场景示意图;
图3是本发明实施例提供的处理器被划分为安全核和非安全核的示意图;
图4是本发明实施例提供的一种基于TrustZone的资源调度方法的流程示意图;
图5是本发明实施例提供的一种普通世界和安全世界配置的场景示意图;
图6是本发明实施例提供的从APP1切换到APP2的流程示意图;
图7是本发明实施例提供的一种基于TrustZone的资源调度设备的结构示意图;
图8是本发明实施例提供的又一种基于TrustZone的资源调度设备的结构示意图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚地描述。
本发明实施例所描述的设备可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(英文:mobile internet device,简称:MID)、可穿戴设备(例如智能手表(如iWatch等)、智能手环、计步器等)或其他可部署CPU的硬件实体或虚拟装置。
本发明实施例首先对将要涉及到的TrustZone技术进行介绍,TrustZone是一种全新的安全技术,通过对CPU架构和内存子系统的硬件设计升级,引入安全世界(英文:secureworld)的概念,安全世界和非安全世界(英文:normal world,也称“普通世界”)硬件隔离,通过监控模式实现二者之间的通信。TrustZone技术与CortexTM-A处理器紧密集成,并通过 AXI总线和特定的TrustZone系统IP块在系统中进行扩展,此方法可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们被安全访问。
如图3所示,为处理器架构上的每个物理的处理器核提供两个虚拟核,一个是非安全核(normal),另一个是安全核(Secure),在这二者之间切换的机制叫做监控模式(英文:monitor mode)。非安全核能访问置于普通世界(英文:normal world)的资源,而安全核能访问普通世界(英文:normal world)和安全世界(英文:secure world)的资源。普通世界的软件可以使用SMC指令或者通过硬件异常机制的一个子集来进入到monitor mode。可以配置(英文:Interrupt Request,简称:IRQ),快速中断请求(英文:Fast Interrupt Request,简称:FIQ),外部data abort,外部prefetch abort这几个异常进入到monitor mode。较简单的情况是,当普通世界使用安全世界的服务时,通过调用SMC使处理器将进入到monitormode,在monitor mode下备份普通世界的上下文,然后在安全世界执行相应的安全服务。目前,TrustZone的使用方式主要为,普通世界的应用与运行在安全世界中的安全应用进行通信,完成对普通世界的应用的密码输入、指纹验证、安全显示等操作的保护。
请参见图4,图4是本发明实施例提供的一种基于TrustZone的资源调度方法的流程示意图,该方法包括但不限于如下步骤。
步骤S401:设备确定需要运行第一程序。
具体地,该设备上部署有至少一个CPU,其中至少存在一个中央处理器(英文:Central Processing Unit,简称:CPU)用于运行多个程序(可以理解为多个任务系统),为了描述方便可以称一个用于运行多个程序的CPU为目标CPU。在该目标CPU上运行的多个程序至少包括第一程序和第二程序,即该多个程序除了包括第一程序和第二程序外,还可能包括其他程序,该第一程序和第二程序为两个不同的程序,可选的,该第一程序和第二程序分别为两个不同的应用程序(英文:Application,简称:APP)。
该设备可以通过检测指令、操作等来确定是否需要运行第一程序,举例来说,当用户需要使用第一程序的相关功能时,该用户可以向该设备输入(例如,通过触控、声控、按键等方式来进行输入)一个针对该第一程序的操作,相应地,该设备检测到用户输入的针对该第一程序的操作时该设备就可以确定需要运行第一程序。当然,针对该第一程序的操作还可以是该设备自身触发的,例如,定时触发、该设备执行的其他事件触发等等。
步骤S402:设备将第一程序的相关数据所占用的内存配置于普通世界,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界。
具体地,此处的预设的多个程序为预先部署在该目标CPU上运行的所有程序。不同的程序会占用不同的内存,此处将第一程序的相关数据所占用的内存配置于普通世界,将该多个应用程序中除第一程序外的程序的相关数据所占用的内存配置在安全世界,这样一来,该第一程序在运行时就可以访问到该第一程序的相关数据,而访问不到除该第一程序外的程序的相关数据,既保证了该第一程序的自身的相关数据,也保证了除该第一程序外的程序的安全运行。程序的相关数据通常包括该程序运行时需要的代码或者参数,或者运行时产生的代码或者参数,或者其他与该程序存在关联的信息;可选的,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
步骤S403:设备确定需要运行第二程序。
具体地,设备在运行完第一程序之后可能还会第二程序,此时就不再运行第一程序了,因此这里涉及到由第一程序到第二程序的切换。确定需要运行第二程序的方式可以参照确定需要运行第一程序的方式,此处不再赘述。
步骤S404:设备将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界。
具体地,进行上述配置之后,该第二程序在运行时就可以访问到该第二程序的相关数据,而访问不到除该第二程序外的程序的相关数据,既保证了该第二程序的自身的相关数据,也保证了除该第二程序外的程序的安全运行。可选的,该第二程序的相关数据包括该第二程序最近一次运行结束时的上下文状态的信息,因此可以根据该上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
在一种可选的方案中,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界,可以具体为:将该CPU置于monitor mode状态;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该monitor mode状态。可选的,该将该CPU置于monitor mode状态之后,该将该第一程序的相关数据所占用的内存配置于该安全世界之前,还可以包括:生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息,这样一来,该第一程序再次运行时就可以根据该上下文状态的信息恢复到该第一程序最近一次运行结束时的状态。
为了更好地理解本发明实施例的方案,以下结合具体场景作更具体的描述。
假设第一程序为APP1(即应用程序1)且该第二程序为APP2(即应用程序2),用于在目标CPU上运行的内存数据为APP1的相关数据app1-men、APP2的相关数据app2-men和其他程序的数据sys-men。
1、当需要运行APP1时,将app1-men置于普通世界,以及将app2-men和sys-men置于安全世界,如图5中的a部分所示。
2、运行APP1并使得APP2处于睡眠(sleep)状态,这样APP1就只能访问自己的相关数据app1-men,而不能访问安全世界保护下的app2-men和sys-men,避免了APP1对其他数据的非法访问。
3、当需要从APP1切换到APP2时,即从运行APP1转为运行APP2时,首先由APP1执行SMC使得目标CPU进入到monitor mode,由monitor中的代码(通常称为scheduler)进行如下操作,图6为对应的流程示意图:
A、保存APP1当期运行时的上下文的状态信息,以用于下次再运行APP1时根据该上下文的状态信息恢复到APP1当前运行时的状态。
B、选择即将被执行的新任务,假设该新任务为APP2。
C、将APP1的相关数据置于安全世界(包括保存的APP1的上下文的状态信息),以及将APP2的相关数据置于普通世界,该APP2的相关数据包括该APP2上一次运行结束时的上下文状态的信息,如图5中的b部分所示。
D、根据该APP2的上下文状态的信息将该APP2恢复到上一次运行结束时的状态。
E、退出monitor mode。
4、运行APP2并使得APP1处于睡眠(sleep)状态,这样APP2就只能访问自己的相关数据app2-men,而不能访问安全世界保护下的app1-men和sys-men,避免了APP2对其他数据的非法访问。
在图4所描述的方法中,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,相应地,下面提供了本发明实施例的装置。
请参见图7,图7是本发明实施例提供的一种基于TrustZone的资源调度设备70的结构示意图,该设备70可以包括第一配置单元701和第二配置单元702,其中,各个单元的详细描述如下。
第一配置单元701用于在需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;
第二配置单元702用于在需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
通过运行上述单元,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
在一种可选的方案中,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
在又一种可选的方案中,该第二配置单元具体用于:将该CPU置于监控状态Monitor Mode;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该监控状态Monitor Mode。
在又一种可选的方案中,设备70还包括生成单元,生成单元用于在上述第二配置单元将该CPU置于监控状态Monitor Mode之后,以及将该第一程序的相关数据所占用的内存配置于该安全世界之前,生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息。
在又一种可选的方案中,设备70还包括恢复单元,恢复单元用于在该第二配置单元将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界之后,根据程序最近一次运行结束时的上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
需要说明的是,各个单元的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图7所描述的设备70中,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
请参见图8,图8是本发明实施例提供的一种基于TrustZone的资源调度设备80,该设备80包括处理器801、存储器802和收发器803,该处理器801与存储器802以及与收发器803通过总线相互连接。
存储器802包括但不限于是随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、或便携式只读存储器(CD-ROM),该存储器802用于相关指令及数据。
处理器801可以是一个或多个中央处理器(英文:Central Processing Unit,简称:CPU),在处理器801是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该设备80中的处理器801用于读取该存储器802中存储的程序代码,执行以下操作:
当需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除该第一程序外的程序的数据所占用的内存配置于安全世界secure world;当需要运行第二程序时,将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界;该多个程序至少包括该第一程序和该第二程序,该多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
通过执行上述步骤,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
在一种可选的方案中,该多个程序中任意一个程序的相关数据包括该程序最近一次运行结束时的上下文状态的信息,用于该程序再次运行时恢复到该程序最近一次运行结束时的状态。
在又一种可选的方案中,该处理器801将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界,具体为:将该CPU置于监控状态Monitor Mode;将该第一程序的相关数据所占用的内存配置于该安全世界,且将该第二程序的相关数据所占用的内存配置于该普通世界;将该CPU退出该监控状态Monitor Mode。
在又一种可选的方案中,该将该CPU置于监控状态Monitor Mode之后,该处理器801将该第一程序的相关数据所占用的内存配置于该安全世界之前,还用于:生成该第一程序当前运行时的上下文状态的信息,以作为该第一程序最近一次运行结束时的上下文状态的信息。
在又一种可选的方案中,该处理器801将第二程序的相关数据所占用的内存配置于该普通世界,以及将该多个程序中除该第二程序外的程序的数据所占用的内存配置于该安全世界之后,还用于:根据程序最近一次运行结束时的上下文状态的信息,将该第二程序恢复到该第二程序上一次运行结束时的状态。
需要说明的是,各个单元的具体实现还可以对应参照图4所示的方法实施例的相应描述。
在图8所描述的设备80中,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
综上所述,通过实施本发明实施例,设备基于TrustZone技术实现了各个程序的内存之间的有效地隔离,同时也保证了各个程序之间的顺利切换,不需要像现有技术那样为每个程序配置一个独立的虚拟CPU,节省了整体开销。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅揭露了本发明中较佳实施例,不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种基于TrustZone的资源调度方法,其特征在于,包括:
当需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normalworld,以及将预设的多个程序中除所述第一程序外的程序的数据所占用的内存配置于安全世界secure world;
当需要运行第二程序时,将第二程序的相关数据所占用的内存配置于所述普通世界,以及将所述多个程序中除所述第二程序外的程序的数据所占用的内存配置于所述安全世界;所述多个程序至少包括所述第一程序和所述第二程序,所述多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
2.根据权利要求1所述的方法,其特征在于,所述多个程序中任意一个程序的相关数据包括所述程序最近一次运行结束时的上下文状态的信息,用于所述程序再次运行时恢复到所述程序最近一次运行结束时的状态。
3.根据权利要求2所述的方法,其特征在于,所述将第二程序的相关数据所占用的内存配置于所述普通世界,以及将所述多个程序中除所述第二程序外的程序的数据所占用的内存配置于所述安全世界,包括:
将所述CPU置于监控状态Monitor Mode;
将所述第一程序的相关数据所占用的内存配置于所述安全世界,且将所述第二程序的相关数据所占用的内存配置于所述普通世界;
将所述CPU退出所述监控状态Monitor Mode。
4.根据权利要求3所述的方法,其特征在于,所述将所述CPU置于监控状态MonitorMode之后,所述将所述第一程序的相关数据所占用的内存配置于所述安全世界之前,还包括:
生成所述第一程序当前运行时的上下文状态的信息,以作为所述第一程序最近一次运行结束时的上下文状态的信息。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述将第二程序的相关数据所占用的内存配置于所述普通世界,以及将所述多个程序中除所述第二程序外的程序的数据所占用的内存配置于所述安全世界之后,还包括:
根据程序最近一次运行结束时的上下文状态的信息,将所述第二程序恢复到所述第二程序上一次运行结束时的状态。
6.一种基于TrustZone的资源调度设备,其特征在于,包括:
第一配置单元,用于在需要运行第一程序时,将第一程序的相关数据所占用的内存配置于普通世界normal world,以及将预设的多个程序中除所述第一程序外的程序的数据所占用的内存配置于安全世界secure world;
第二配置单元,用于在需要运行第二程序时,将第二程序的相关数据所占用的内存配置于所述普通世界,以及将所述多个程序中除所述第二程序外的程序的数据所占用的内存配置于所述安全世界;所述多个程序至少包括所述第一程序和所述第二程序,所述多个程序的相关数据所占用的内存被配置在同一个CPU上运行。
7.根据权利要求6所述的设备,其特征在于,所述多个程序中任意一个程序的相关数据包括所述程序最近一次运行结束时的上下文状态的信息,用于所述程序再次运行时恢复到所述程序最近一次运行结束时的状态。
8.根据权利要求7所述的设备,其特征在于,所述第二配置单元具体用于:
将所述CPU置于监控状态Monitor Mode;
将所述第一程序的相关数据所占用的内存配置于所述安全世界,且将所述第二程序的相关数据所占用的内存配置于所述普通世界;
将所述CPU退出所述监控状态Monitor Mode。
9.根据权利要求8所述的设备,其特征在于,还包括:
生成单元,用于在上述第二配置单元将所述CPU置于监控状态Monitor Mode之后,以及将所述第一程序的相关数据所占用的内存配置于所述安全世界之前,生成所述第一程序当前运行时的上下文状态的信息,以作为所述第一程序最近一次运行结束时的上下文状态的信息。
10.根据权利要求6~9任一项所述的设备,其特征在于,还包括:
恢复单元,用于在所述第二配置单元将第二程序的相关数据所占用的内存配置于所述普通世界,以及将所述多个程序中除所述第二程序外的程序的数据所占用的内存配置于所述安全世界之后,根据程序最近一次运行结束时的上下文状态的信息,将所述第二程序恢复到所述第二程序上一次运行结束时的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611184527.XA CN107066331B (zh) | 2016-12-20 | 2016-12-20 | 一种基于TrustZone的资源分配方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611184527.XA CN107066331B (zh) | 2016-12-20 | 2016-12-20 | 一种基于TrustZone的资源分配方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107066331A true CN107066331A (zh) | 2017-08-18 |
CN107066331B CN107066331B (zh) | 2021-05-18 |
Family
ID=59619558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611184527.XA Active CN107066331B (zh) | 2016-12-20 | 2016-12-20 | 一种基于TrustZone的资源分配方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066331B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835185A (zh) * | 2017-11-21 | 2018-03-23 | 广州大学 | 一种基于ARM TrustZone的移动终端安全服务方法及装置 |
CN108052461A (zh) * | 2017-12-29 | 2018-05-18 | 普华基础软件股份有限公司 | 一种操作系统的内存保护方法 |
CN111310171A (zh) * | 2020-02-21 | 2020-06-19 | 华大半导体有限公司 | 一种硬件级主动防御的实现方法及装置 |
CN111737013A (zh) * | 2020-08-04 | 2020-10-02 | 南京芯驰半导体科技有限公司 | 芯片的资源管理方法、装置、存储介质及系统芯片 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309351A (zh) * | 2000-02-14 | 2001-08-22 | 株式会社东芝 | 抗干预微处理器 |
CN1601429A (zh) * | 1995-02-13 | 2005-03-30 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
CN1711524A (zh) * | 2002-11-18 | 2005-12-21 | Arm有限公司 | 在安全模式和非安全模式间切换的处理器 |
CN103714459A (zh) * | 2013-12-26 | 2014-04-09 | 电子科技大学 | 一种智能终端安全支付系统及方法 |
CN104318182A (zh) * | 2014-10-29 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于处理器安全扩展的智能终端隔离系统及方法 |
CN104392188A (zh) * | 2014-11-06 | 2015-03-04 | 三星电子(中国)研发中心 | 一种安全数据存储方法和系统 |
CN104794395A (zh) * | 2015-05-13 | 2015-07-22 | 上海瓶钵信息科技有限公司 | 基于体系结构特性的轻量级多系统安全管理架构 |
CN104992122A (zh) * | 2015-07-20 | 2015-10-21 | 武汉大学 | 一种基于ARM TrustZone的手机私密信息保险箱 |
CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
-
2016
- 2016-12-20 CN CN201611184527.XA patent/CN107066331B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601429A (zh) * | 1995-02-13 | 2005-03-30 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
CN1309351A (zh) * | 2000-02-14 | 2001-08-22 | 株式会社东芝 | 抗干预微处理器 |
CN1711524A (zh) * | 2002-11-18 | 2005-12-21 | Arm有限公司 | 在安全模式和非安全模式间切换的处理器 |
CN103714459A (zh) * | 2013-12-26 | 2014-04-09 | 电子科技大学 | 一种智能终端安全支付系统及方法 |
CN104318182A (zh) * | 2014-10-29 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于处理器安全扩展的智能终端隔离系统及方法 |
CN104392188A (zh) * | 2014-11-06 | 2015-03-04 | 三星电子(中国)研发中心 | 一种安全数据存储方法和系统 |
CN104794395A (zh) * | 2015-05-13 | 2015-07-22 | 上海瓶钵信息科技有限公司 | 基于体系结构特性的轻量级多系统安全管理架构 |
CN104992122A (zh) * | 2015-07-20 | 2015-10-21 | 武汉大学 | 一种基于ARM TrustZone的手机私密信息保险箱 |
CN107038128A (zh) * | 2016-02-03 | 2017-08-11 | 华为技术有限公司 | 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置 |
Non-Patent Citations (1)
Title |
---|
郑显义等: "《TrustZone技术的分析与研究》", 《计算机学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835185A (zh) * | 2017-11-21 | 2018-03-23 | 广州大学 | 一种基于ARM TrustZone的移动终端安全服务方法及装置 |
CN108052461A (zh) * | 2017-12-29 | 2018-05-18 | 普华基础软件股份有限公司 | 一种操作系统的内存保护方法 |
CN111310171A (zh) * | 2020-02-21 | 2020-06-19 | 华大半导体有限公司 | 一种硬件级主动防御的实现方法及装置 |
CN111737013A (zh) * | 2020-08-04 | 2020-10-02 | 南京芯驰半导体科技有限公司 | 芯片的资源管理方法、装置、存储介质及系统芯片 |
CN111737013B (zh) * | 2020-08-04 | 2020-11-24 | 南京芯驰半导体科技有限公司 | 芯片的资源管理方法、装置、存储介质及系统芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN107066331B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960582B (zh) | 在tee侧实现多核并行的方法、装置及系统 | |
Vaishnav et al. | Resource elastic virtualization for FPGAs using OpenCL | |
Porquet et al. | NoC-MPU: A secure architecture for flexible co-hosting on shared memory MPSoCs | |
CN107066331A (zh) | 一种基于TrustZone的资源分配方法及设备 | |
US20060005190A1 (en) | Systems and methods for implementing an operating system in a virtual machine environment | |
Panneerselvam et al. | Chameleon: operating system support for dynamic processors | |
US10372457B2 (en) | Effectiveness and prioritization of prefetches | |
CN104598294A (zh) | 用于移动设备的高效安全的虚拟化方法及其设备 | |
Yu et al. | Real-time enhancement for Xen hypervisor | |
CN105224403B (zh) | 一种中断处理方法及装置 | |
US9886327B2 (en) | Resource mapping in multi-threaded central processor units | |
Fuerst et al. | Ilúvatar: A Fast Control Plane for Serverless Computing | |
Suzuki et al. | Gloop: An event-driven runtime for consolidating gpgpu applications | |
Fornaeus | Device hypervisors | |
WO2007092951A2 (en) | Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture | |
Pfandzelter et al. | Kernel-as-a-Service: A serverless programming model for heterogeneous hardware accelerators | |
US8707306B1 (en) | Implementing user-selectable concurrent access protection mechanism in a multi-tasking modeling environment | |
Aguiar et al. | Virtual hellfire hypervisor: Extending hellfire framework for embedded virtualization support | |
Jipping | Smartphone Operating System Concepts with Symbian OS | |
Sagar et al. | Embedded operating systems for real-time applications | |
Ugah et al. | Relationship between Operating System, Computer Hardware, Application Software and Other Software | |
Lun et al. | Object-oriented processor requirements with instruction analysis of Java programs | |
Perez Tijero et al. | Multiprocessor platform for partitioned real‐time systems | |
Panneerselvam et al. | Dynamic processors demand dynamic operating systems | |
Aguiar et al. | A virtualization approach for MIPS-based MPSoCs |
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 |