CN111414626A - 基于tee扩展的实时性保证方法及系统 - Google Patents
基于tee扩展的实时性保证方法及系统 Download PDFInfo
- Publication number
- CN111414626A CN111414626A CN202010252219.6A CN202010252219A CN111414626A CN 111414626 A CN111414626 A CN 111414626A CN 202010252219 A CN202010252219 A CN 202010252219A CN 111414626 A CN111414626 A CN 111414626A
- Authority
- CN
- China
- Prior art keywords
- tee
- real
- time
- task
- state
- 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
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于TEE扩展的实时性保证方法及系统,本发明通过多种机制实现对TEE操作系统和任务执行提供时间确定性保证:一是高精度独立时钟支持方法,二是基于TEE的支持优先级和嵌套的中断和异常事件方法,三是多级任务调度方法,四是基于TEE的独立内存和IO资源支持方法。本发明通过TEE实现对实时子系统的安全隔离以及和REE常规操作系统的并发运行,最大程度避免REE的常规操作系统对TEE的实时子系统的运行和可靠性产生影响,实现了在保证实时确定性支持的能力前提下,对CPU资源的最大化利用,具有非常好的系统效率和吞吐率。
Description
技术领域
本发明涉及计算机操作系统领域,具体涉及一种基于TEE扩展的实时性保证方法及系统,用于基于TEE实现实时任务支持的计算系统架构和多种机制。
背景技术
计算机操作系统领域所谓的“实时”是表示“及时”,而实时系统(Real-timesystem,RTS)是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。实时系统的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。因此实时系统应该在事先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。实时操作系统对其子功能的设计都有严格的确定性要求,包括:任务管理、内存管理、文件管理、I/O设备管理等。首先计时精度是影响实时性的一个重要因素。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。第二,一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。第三,实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。
实时系统和通用系统是两个相对的概念。虽然都是多任务系统,通用系统更追求系统的吞吐量、用户交互或者多媒体能力,这会和实时性能产生矛盾,因此常见的Windows、Linux、Android、iOS操作系统的实时性保证能力都不够理想。如果对这些系统进行实时性改造,又可能损害其原有的系统设计目标。利用硬件平台上的隔离功能构建一个相对独立的实时子系统环境,是一种解决这两种系统之间矛盾的有效方式。
TEE(Trusted Execution Environment)又称为可信执行环境,是同主机系统相隔离的安全区域,作为一个独立的环境与主机操作系统并行运行。TEE技术通过使用硬件和软件来保护数据和代码,从而确保安全区域中加载的代码和数据的机密性和完整性都得到保护,获得比传统REE(Rich Execution Environment)环境更强的安全性保证。在TEE 中运行的受信任应用程序可以访问平台上主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。
目前常见的TEE技术有TrustZone和SGX等。TrustZone由ARM公司提出,通过将软件资源和硬件资源全部划分成可信区域和不可信区域,分别做为TEE和REE,以实现对敏感数据和应用的保护。TrustZone能保证安全态软件在加电时首先启动,并对后续加载的启动映像进行逐级验证。TrustZone使能后,物理处理器能够在两种安全模态之间切换,分别定义为常态(normal world,运行主机OS)和安全态(secure world,运行TEE OS)。TrustZone 在系统总线上针对每一个信道的读写增加了一个额外的控制信号位,叫做NS(Non-Secure)位,可以通过NS位将内存等资源划分为安全态和非安全态。TrustZone通过总线控制和TZASC、TZMA、TZPC等辅助控制器实现对内存、IO等资源的安全隔离。SGX全称SoftwareGuard Extensions,是对Intel体系的安全性扩展。SGX通过创建飞地(enclave)来构建TEE,即将合法软件的安全操作封装在一个飞地中,保护其不受恶意软件的侵害,特权或者非特权的软件都无法访问飞地。也就是说,一旦软件和数据位于飞地中,即便操作系统或者和VMM(Hypervisor)也无法影响飞地里面的代码和数据。飞地的安全边界只包含CPU和它自身。
常规情况下,TEE一般用于安全目标的构建,这是因为TEE的设计目标是将其中的资源同REE的资源相隔离,并免受REE操作的影响。这种隔离能力是由硬件直接赋予的,因此也能被用于实现对任务执行时间的保护。在平台的硬件设计中,时间隔离机制只是作为安全隔离的辅助机制提供的,并未考虑对特例环境中时间确定性的保证。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于TEE扩展的实时性保证方法及系统,本发明通过TEE实现对实时子系统的安全隔离以及和REE常规操作系统的并发运行,最大程度避免REE的常规操作系统对TEE的实时子系统的运行和可靠性产生影响,实现了在保证实时确定性支持的能力前提下,对CPU资源的最大化利用,具有非常好的系统效率和吞吐率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于TEE扩展的实时性保证方法,进行任务调度的步骤包括:
1)检测当前的系统状态,如果系统状态为安全态则跳转执行步骤2);如果系统状态为常态则跳转执行步骤3);
2)采用TEE操作系统中的任务调度器作为一级调度器来进行任务调度,所述TEE操作系统为实时操作系统,且一级调度器采用固定优先级调度策略对实时任务进行一级调度,通过TEE操作系统对调度的实时任务处理,如果实时任务处理完毕、空闲任务被加载时,则将系统状态切换为常态,跳转执行步骤1);
3)采用REE操作系统中的任务调度器作为二级调度器来进行任务调度,且在调度过程中判断是否满足预设条件,如果满足预设条件则将系统状态切换为安全态,跳转执行步骤1)。
可选地,步骤3)中的预设条件为发生包含TEE时钟源的快速中断请求、有软件发出SMC调用、出现指定的高级别异常中的至少一种。
可选地,所述TEE时钟源为TEE环境中独立于REE环境的硬件时钟源。
可选地,所述硬件时钟源为TEE环境下的SoC片内实现的硬件时钟源。
可选地,步骤2)之前还包括采用Monitor态的异常处理机制恢复安全态的现场的步骤,步骤2)中将系统状态切换为常态之前还包括采用Monitor态的异常处理机制保存安全态的现场的步骤;步骤3)之前还包括采用Monitor态的异常处理机制恢复常态的现场的步骤,步骤3)中将系统状态切换为安全态之前还包括采用Monitor态的异常处理机制保存常态的现场的步骤。
可选地,步骤2)中一级调度器采用固定优先级调度策略对实时任务进行一级调度时,TEE操作系统中产生的实时任务的优先级比REE操作系统中产生的实时任务的优先级高,使得TEE操作系统中产生的实时任务被优先调度。
可选地,步骤2)中通过TEE操作系统对调度的实时任务处理时,如果有另一个优先级更高的中断提出中断请求,则暂时终止当前正在执行的级别较低的实时任务,去处理优先级更高的中断请求的中断服务以保证实时任务对中断响应的确定性,且在优先级更高的中断请求的中断服务处理完毕后再返回处理之前正在执行的级别较低的实时任务。
可选地,步骤2)中通过TEE操作系统对调度的实时任务处理时,TEE操作系统对调度的实时任务处理是通过利用TEE环境中处理器上的片内高速SRAM作为TEE操作系统的内存以避免同REE操作系统之间缓冲冲突引发的缓冲失效开销。
此外,本发明还提供一种基于TEE扩展的实时性保证系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于TEE扩展的实时性保证方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述基于TEE扩展的实时性保证方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于TEE扩展的实时性保证方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明充分利用硬件平台资源,提供通用操作系统和实时操作系统在内的能同时工作的操作系统环境。
2、TEE操作系统为实时操作系统,可在同一个硬件平台上可构建出同常规的REE操作系统环境并存,并具有高度实时性保证的子系统环境。
3、本发明的双系统环境实现了在保证实时确定性支持的能力前提下,对CPU资源的最大化利用,具有非常好的系统效率。这是因为在多级任务调度的策略支持下,当系统中的实时任务都完成时,CPU资源会立刻被调度给REE环境使用,从而最大化了吞吐率。
附图说明
图1为本发明实施例方法进行任务调度的流程图。
图2为本发明实施例方法中的三种状态分布示意图。
图3为本发明实施例在hikey960平台上采用两级调度的实现原理示意图。
具体实施方式
下文将以支持TrustZone的ARMv8处理器作为实施平台特例,讲述实施例在海思hi6220 SoC处理器的hikey620开发板上构建实现本实施例基于TEE扩展的实时性保证方法及系统的过程。hi6220 SoC处理器以及hikey620开发板的基本情况为:支持aarch64和aarch32指令集,8-core CPU, 2 GB LPDDR3 memory,拥有72kB片内SRAM。Armv8 Cpu核支持EL0-EL34个特权态,其中对应normal world和secure world可以细分为支持REE的non-secure EL0\EL1\EL2\EL3态和支持TEE的secure EL0\EL1\EL3态。Armv8 CPU的每个核内建一个非安全物理时钟(secure physical timer)用做REE的时钟源,以及一个安全物理时钟(secure physical timer)用作TEE的时钟源。
TrustZone资源隔离的功能由Trusted Firmware在启动时进行初始化配置,此时CPU处于最高级别的EL3特权态,关键资源隔离的配置内容包括:1、通过写入TZASC控制器配置LPDDR内存的顶端(本实施例中为32M)物理内存为TEE的私有内存,其它的DDR内存作为REE的默认物理内存使用;2、通过写入TZMA控制器配置系统SoC内部72kB SRAM内存为TEE的私有内存,该段物理内存具备较高的读写性能,并且不需要经过cache系统,因此其读写时间是确定性的,适合作为实时操作系统的内核部分驻留以及高优先级的实时任务使用;3、通过写入TZPC控制器配置,将TEE实时子系统需要访问的GPIO、I2C、UART等设备端口配置为其私有;4、通过对GICv2控制器的配置,将上述配置给TEE子系统的各资源的中断配置为Group 0中断,对应硬件上的FIQ中断,其触发将导致EL3态或TEE子系统的EL1态异常,并由后者负责异常处理; REE的资源所触发的中断被配置为Group1中断,对应硬件上的IRQ中断,其触发将导致EL3态或REE子系统EL1态异常,并由后者负责异常处理。通过上述配置,Trusted Firmware即可创建TEE和REE运行所需的硬件资源环境。在配置完成后,TrustedFirmware将Monitor模块载入TEE内存,这事实上是一组工作于EL3特权态的异常向量和对应的异常处理功能模块,其中包含了EL3态的FIQ和IRQ中断处理向量和功能模块,还包含了对REE和TEE环境进行切换(保存现场和恢复现场)的功能模块,该功能一般是SMC调用所触发的异常处理。
本实施例基于TEE扩展的实时性保证方法包含多个方面,其中主要的一个方面为通过任务调度来实现基于TEE扩展的实时性保证。如图1所示,本实施例基于TEE扩展的实时性保证方法进行任务调度的步骤包括:
1)检测当前的系统状态,如果系统状态为安全态则跳转执行步骤2);如果系统状态为常态则跳转执行步骤3);
2)采用TEE操作系统中的任务调度器作为一级调度器来进行任务调度,所述TEE操作系统为实时操作系统,且一级调度器采用固定优先级调度策略对实时任务进行一级调度,通过TEE操作系统对调度的实时任务处理,如果实时任务处理完毕、空闲任务(IDLE TASK)被加载时,则将系统状态切换为常态,跳转执行步骤1);
3)采用REE操作系统中的任务调度器作为二级调度器来进行任务调度,且在调度过程中判断是否满足预设条件,如果满足预设条件则将系统状态切换为安全态,跳转执行步骤1)。
一般情况下,在支持TEE的处理器平台上,TEE环境和REE环境是分时利用CPU资源的,也就是要相互切换。本实施例通过两级任务调度机制使TEE中的实时任务和REE环境中的一般任务能够适时在CPU上执行。本实施例首先将TEE中的实时任务作为一级调度任务,优先调度,当一级任务中的任务都处理完成后,系统中不存在就绪的一级任务时,才将REE环境中的任务调度到CPU上执行。如果在REE中的任务执行时,有一级任务就绪,则一级任务将会抢占CPU资源,从而保证实时任务调度的确定性。本实施例将TEE实时子系统独占某些CPU核的情况作为停止二级任务调度、只保留一级任务调度的特例。本实施例在hikey960平台上采用两级调度方式,如图3所示,其中TEE操作系统RTOS中的任务调度器作为一级调度器,采用固定优先级调度策略对实时任务进行一级调度;REE中操作系统的任务调度器作为二级调度器,在REE中进行二级调度。一级调度和二级调度之间的切换时机为:当系统处于TEE态时,如果TEE操作系统(RTOS)的实时任务处理完毕,空闲任务被加载时,系统由一级调度切换为二级调度;当系统处于REE状态时,如果发生了FIQ中断(包含TEE的时钟源)或者有软件发出了SMC调用,或者系统出现了高级别异常,则系统立刻由二级调度切换为一级调度。每次调度的级别切换都要经由Monitor态的对应异常处理机制完成TEE或REE现场的保存和恢复。由于TEE的时钟源发出的时钟中断的间隔是确定的,监控器的切换时间也是确定的,TEE操作系统 RTOS的固定优先级调度器的调度时间也很容易实现为确定的,这就能保证实时任务的调度时间具有确定性,不会受到REE环境的干扰。
本实施例中,步骤3)中的预设条件为发生包含TEE时钟源的快速中断请求(FIQ)、有软件发出SMC调用、出现指定的高级别异常中的至少一种。
进一步地,本实施例还实现了高精度独立时钟支持方法:本实施例中TEE时钟源为TEE环境中独立于REE环境的硬件时钟源。本实施例中硬件时钟源为TEE环境下的SoC片内实现的硬件时钟源。基于TEE硬件扩展支持,将不同于REE操作系统时钟的一个高精度时钟源设备的访问权限和中断目的配置到TEE环境,该时钟源最好为SoC片内实现,以确保免受REE软件和设备的影响,保证TEE实时子系统高精度时钟驱动的确定性。例如,本实施例中具体实现时为TEE中使用处理器核中的安全物理时钟作为高精度时钟源,对应的29号中断被设置为group0中断,其精度可以达到其物理频率级别,足够支持微妙级应用。在REE中使用非安全物理时钟作为时钟源,避免了对TEE系统时钟的影响。
本实施例中,步骤2)之前还包括采用Monitor态(监控态)的异常处理机制恢复安全态的现场的步骤,步骤2)中将系统状态切换为常态之前还包括采用Monitor态的异常处理机制保存安全态的现场的步骤;步骤3)之前还包括采用Monitor态的异常处理机制恢复常态的现场的步骤,步骤3)中将系统状态切换为安全态之前还包括采用Monitor态的异常处理机制保存常态的现场的步骤。
进一步地,本实施例还实现了基于TEE的支持优先级和嵌套的中断和异常支持方法:
一方面,步骤2)中一级调度器采用固定优先级调度策略对实时任务进行一级调度时,TEE操作系统中产生的实时任务的优先级比REE操作系统中产生的实时任务的优先级高,使得TEE操作系统中产生的实时任务被优先调度。本实施例基于TEE硬件支持首先将中断优先级分为多个层次,例如0级,1级、2级,优先性依次降低。这主要是利用TEE技术中可以针对TEE和REE环境定义不同中断的优先级,一般来说属于TEE的中断可以得到高优先级。低级别的中断发生并被处理的过程中,系统不会关闭高级别层次的中断,因此TEE中的最大中断禁止时间不受REE环境状态的影响。
另一方面,步骤2)中通过TEE操作系统对调度的实时任务处理时,如果有另一个优先级更高的中断提出中断请求,则暂时终止当前正在执行的级别较低的实时任务,去处理优先级更高的中断请求的实时任务以保证实时任务对中断响应的确定性,且在优先级更高的中断请求的实时任务处理完毕后再返回处理之前正在执行的级别较低的实时任务。本实施例通过上述方式在TEE内部支持中断和异常的优先级嵌套,使得TEE操作系统正在执行一个中断服务时,如果有另一个优先级更高的中断提出中断请求,会暂时终止当前正在执行的级别较低的中断源的服务程序去处理级别更高的中断源,从而保证实时任务对中断响应的确定性。
在Trusted Firmware(可信固件)于EL3态对GICv2和系统的初始化阶段,TEE和REE的资源对应的中断已经分别配置为group0的快速中断请求FIQ和group1的常规中断请求IRQ,本实施例进一步对这两个级别的中断对应划分为0级和1级,其中对应FIQ的0级中断具有高特权级,对应IRQ的1级对应低特权。此时系统有三种中断响应的状态,在每种状态分别执行不同的中断响应行为,本实施例定义这三种状态分别是TEE操作系统RTOS态,REE态,Monitor态,如图2所示。在TEE操作系统RTOS态,IRQ中断被屏蔽,FIQ中断放开并由硬件直接硬件路由到secure EL1的FIQ中断向量;在REE态,IRQ和FIQ都是放开的,IRQ被硬件路由到non-secure的EL1的IRQ中断向量,FIQ被硬件路由到Monitor注册的EL3 FIQ中断向量,并由该中断处理函数直接传递给secure EL1的FIQ中断向量;在Monitor态,IRQ中断被屏蔽,FIQ中断硬件路由到Monitor注册的EL3 FIQ中断向量,并由该中断处理函数直接传递给secureEL1的FIQ中断向量。这种配置方式保证了FIQ中断具有高优先级,随时都能被优先处理,即使在REE中的临界态,FIQ中断同样会被触发并导致系统立刻切换到TEE。具体对于FIQ中断,本实施例也从GIC控制器的配置中为每个中断分配了优先级,这样能保证在多个FIQ中断同时发生时,优先级高的中断首先处于申请状态。在TEE操作系统RTOS内部,本实施例还实现了中断嵌套的支持,使得高优先级中断能在最短时间内被处理。
进一步地,本实施例还实现了基于TEE的独立内存和IO资源支持方法:本实施例步骤2)中通过TEE操作系统对调度的实时任务处理时,TEE操作系统对调度的实时任务处理是通过利用TEE环境中处理器上的片内高速SRAM作为TEE操作系统的内存以避免同REE操作系统之间缓冲冲突引发的缓冲失效开销。基于TEE硬件扩展支持,为TEE环境分配实时应用和实时系统内核所需的物理内存和IO设备,以保证TEE的软件代码对内存的映射和访问是直接的,也是TEE子系统所私有,对IO的访问是独占性的,不需要和REE之间进行任何同步,这样可以最大程度的保持REE中实时子系统资源的独立性,不受或少受REE的干扰。由于TEE操作系统运行在拥有片内高速SRAM的平台上,利用SRAM作为实时子系统的内存,避免同REE系统之间缓冲冲突引发的缓冲失效开销。具体地,本实施例中在Trusted Firmware于EL3态对平台的初始化阶段已经为TEE操作系统RTOS子系统分配并隔离出私有的内存和IO资源,此处不再赘述。本实施例使用TEE私有的SRAM内存保证访存的时间确定性,这是因为SRAM内存访问不经过cache系统,不会有cache失效等情况发生,因此其读写时长跟数据量呈线性关系,是完全可确定的。相比而言,TEE虽然也有私有的DDR内存,并且TrustZone保证了cache中的数据项有tag标识它隶属于哪个环境(TEE还是REE)从而避免TEE/REE切换的flash操作,但这无法避免cache冲突造成的cache失效,这会增加访存时间的不确定性。
综上所述,针对时间确定性追求任务完成时间的确定以及对于事件响应时间的确定性的特点,本实施例借助TEE的硬件机制在隔离环境中构建一个隔离、可靠的实时子操作环境,实现对实时调度、实时中断响应、实时内存访问等特性的支持,具备对任务管理、内存管理、文件管理、I/O设备管理等的时间确定性支持。通过TEE实现对实时子系统的安全隔离以及和REE常规操作系统的并发运行,最大程度避免REE的常规操作系统对TEE的实时子系统的运行和可靠性产生影响,实现了在保证实时确定性支持的能力前提下,对CPU资源的最大化利用,具有非常好的系统效率和吞吐率。本实施例的上述多项机制能够为TEE操作系统RTOS提供一个常规实时系统所需要的条件支持,其它平台无关的诸如任务间同步等机制也容易在TEE子系统实现,因此本实施例最终能支持TEE操作系统RTOS的实时任务管理的时间确定性保证,同时支持REE操作系统和应用的“无察觉”运行。
此外,本实施例还提供一种基于TEE扩展的实时性保证系统,包括计算机设备,该计算机设备被编程或配置以执行前述基于TEE扩展的实时性保证方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行前述基于TEE扩展的实时性保证方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述基于TEE扩展的实时性保证方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于TEE扩展的实时性保证方法,其特征在于,进行任务调度的步骤包括:
1)检测当前的系统状态,如果系统状态为安全态则跳转执行步骤2);如果系统状态为常态则跳转执行步骤3);
2)采用TEE操作系统中的任务调度器作为一级调度器来进行任务调度,所述TEE操作系统为实时操作系统,且一级调度器采用固定优先级调度策略对实时任务进行一级调度,通过TEE操作系统对调度的实时任务处理,如果实时任务处理完毕、空闲任务被加载时,则将系统状态切换为常态,跳转执行步骤1);
3)采用REE操作系统中的任务调度器作为二级调度器来进行任务调度,且在调度过程中判断是否满足预设条件,如果满足预设条件则将系统状态切换为安全态,跳转执行步骤1)。
2.根据权利要求1所述的基于TEE扩展的实时性保证方法,其特征在于,步骤3)中的预设条件为发生包含TEE时钟源的快速中断请求、有软件发出SMC调用、出现指定的高级别异常中的至少一种。
3.根据权利要求2所述的基于TEE扩展的实时性保证方法,其特征在于,所述TEE时钟源为TEE环境中独立于REE环境的硬件时钟源。
4.根据权利要求3所述的基于TEE扩展的实时性保证方法,其特征在于,所述硬件时钟源为TEE环境下的SoC片内实现的硬件时钟源。
5.根据权利要求1所述的基于TEE扩展的实时性保证方法,其特征在于,步骤2)之前还包括采用Monitor态的异常处理机制恢复安全态的现场的步骤,步骤2)中将系统状态切换为常态之前还包括采用Monitor态的异常处理机制保存安全态的现场的步骤;步骤3)之前还包括采用Monitor态的异常处理机制恢复常态的现场的步骤,步骤3)中将系统状态切换为安全态之前还包括采用Monitor态的异常处理机制保存常态的现场的步骤。
6.根据权利要求1所述的基于TEE扩展的实时性保证方法,其特征在于,步骤2)中一级调度器采用固定优先级调度策略对实时任务进行一级调度时,TEE操作系统中产生的实时任务的优先级比REE操作系统中产生的实时任务的优先级高,使得TEE操作系统中产生的实时任务被优先调度。
7.根据权利要求6所述的基于TEE扩展的实时性保证方法,其特征在于,步骤2)中通过TEE操作系统对调度的实时任务处理时,如果有另一个优先级更高的中断提出中断请求,则暂时终止当前正在执行的级别较低的实时任务,去处理优先级更高的中断请求的中断服务以保证实时任务对中断响应的确定性,且在优先级更高的中断请求的中断服务处理完毕后再返回处理之前正在执行的级别较低的实时任务。
8.根据权利要求1所述的基于TEE扩展的实时性保证方法,其特征在于,步骤2)中通过TEE操作系统对调度的实时任务处理时,TEE操作系统对调度的实时任务处理选择通过利用TEE环境中处理器上的片内高速SRAM作为TEE操作系统的内存以避免同REE操作系统之间缓冲冲突引发的缓冲失效开销。
9.一种基于TEE扩展的实时性保证系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的实时性保证方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的实时性保证方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的实时性保证方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252219.6A CN111414626B (zh) | 2020-04-01 | 2020-04-01 | 基于tee扩展的实时性保证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252219.6A CN111414626B (zh) | 2020-04-01 | 2020-04-01 | 基于tee扩展的实时性保证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414626A true CN111414626A (zh) | 2020-07-14 |
CN111414626B CN111414626B (zh) | 2023-09-26 |
Family
ID=71491767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010252219.6A Active CN111414626B (zh) | 2020-04-01 | 2020-04-01 | 基于tee扩展的实时性保证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414626B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859395A (zh) * | 2020-07-21 | 2020-10-30 | 中国人民解放军国防科技大学 | 具备tee扩展的计算平台上的通信优化方法及系统 |
CN113486355A (zh) * | 2021-06-29 | 2021-10-08 | 北京紫光展锐通信技术有限公司 | 一种信息保存装置、方法、通信装置、芯片及其模组设备 |
CN113486356A (zh) * | 2021-06-30 | 2021-10-08 | 佛山职业技术学院 | 一种控制中断源的运行方法、装置、终端设备及存储介质 |
CN114595006A (zh) * | 2022-03-21 | 2022-06-07 | 恒玄科技(上海)股份有限公司 | 一种用于智能穿戴设备的快速启动方法、装置和存储介质 |
EP4145296A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
EP4145321A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
EP4145316A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787353A (zh) * | 2014-12-17 | 2016-07-20 | 联芯科技有限公司 | 可信应用管理系统及可信应用的加载方法 |
CN106547618A (zh) * | 2016-10-19 | 2017-03-29 | 沈阳微可信科技有限公司 | 通信系统和电子设备 |
WO2017138797A1 (ko) * | 2016-02-12 | 2017-08-17 | 한양대학교 산학협력단 | 시큐어 시스템 온 칩 |
US20180068134A1 (en) * | 2015-02-11 | 2018-03-08 | Siemens Aktiengesellschaft | Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system |
CN109522099A (zh) * | 2017-09-20 | 2019-03-26 | 厦门雅迅网络股份有限公司 | 提高非实时性操作系统实时性的方法及其系统 |
CN110347485A (zh) * | 2019-07-01 | 2019-10-18 | 电子科技大学 | 基于固定优先级的多核抢占式的多级融合实时调度方法 |
-
2020
- 2020-04-01 CN CN202010252219.6A patent/CN111414626B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787353A (zh) * | 2014-12-17 | 2016-07-20 | 联芯科技有限公司 | 可信应用管理系统及可信应用的加载方法 |
US20180068134A1 (en) * | 2015-02-11 | 2018-03-08 | Siemens Aktiengesellschaft | Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system |
WO2017138797A1 (ko) * | 2016-02-12 | 2017-08-17 | 한양대학교 산학협력단 | 시큐어 시스템 온 칩 |
CN106547618A (zh) * | 2016-10-19 | 2017-03-29 | 沈阳微可信科技有限公司 | 通信系统和电子设备 |
CN109522099A (zh) * | 2017-09-20 | 2019-03-26 | 厦门雅迅网络股份有限公司 | 提高非实时性操作系统实时性的方法及其系统 |
CN110347485A (zh) * | 2019-07-01 | 2019-10-18 | 电子科技大学 | 基于固定优先级的多核抢占式的多级融合实时调度方法 |
Non-Patent Citations (2)
Title |
---|
PAN DONG ET AL.: "TZDKS: A New TrustZone-based Dual-Criticality System with Balanced Performance", pages 59 - 64 * |
孟子琪 等: "基于可信执行环境的嵌入式双操作系统架构研究", no. 04 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859395A (zh) * | 2020-07-21 | 2020-10-30 | 中国人民解放军国防科技大学 | 具备tee扩展的计算平台上的通信优化方法及系统 |
CN111859395B (zh) * | 2020-07-21 | 2024-03-26 | 中国人民解放军国防科技大学 | 具备tee扩展的计算平台上的通信优化方法及系统 |
CN113486355A (zh) * | 2021-06-29 | 2021-10-08 | 北京紫光展锐通信技术有限公司 | 一种信息保存装置、方法、通信装置、芯片及其模组设备 |
CN113486355B (zh) * | 2021-06-29 | 2023-03-14 | 北京紫光展锐通信技术有限公司 | 一种信息保存装置、方法、通信装置、芯片及其模组设备 |
CN113486356A (zh) * | 2021-06-30 | 2021-10-08 | 佛山职业技术学院 | 一种控制中断源的运行方法、装置、终端设备及存储介质 |
CN113486356B (zh) * | 2021-06-30 | 2024-05-07 | 佛山职业技术学院 | 一种控制中断源的运行方法、装置、终端设备及存储介质 |
EP4145296A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
EP4145321A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
EP4145316A1 (en) * | 2021-09-01 | 2023-03-08 | Phytium Technology Co., Ltd. | Microprocessor, data processing method, electronic device, and storage medium |
CN114595006A (zh) * | 2022-03-21 | 2022-06-07 | 恒玄科技(上海)股份有限公司 | 一种用于智能穿戴设备的快速启动方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111414626B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414626B (zh) | 基于tee扩展的实时性保证方法及系统 | |
JP4519738B2 (ja) | メモリアクセス制御装置 | |
CN109840410B (zh) | 一种进程内数据隔离与保护的方法和系统 | |
US8595487B2 (en) | Virtualization hardware for device driver isolation | |
JP4759059B2 (ja) | メモリページをプログラムに対応付けるページカラーリング | |
US7209994B1 (en) | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests | |
US9465750B2 (en) | Memory protection circuit, method and processing unit utilizing memory access information register to selectively allow access to memory areas by virtual machines | |
US7761674B2 (en) | Identifier associated with memory locations for managing memory accesses | |
US20160210069A1 (en) | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine | |
RU2004139086A (ru) | Система и способ для защиты от недоверенного кода режима управления с системой с помощью переадресации прерывания режима управления системой и создания контейнера виртуальной машины | |
CN111414246B (zh) | 具备tee扩展的计算平台上的跨安全世界实时功能调用方法及装置 | |
CN109074321B (zh) | 用于保护虚拟计算实例的存储器的方法和系统 | |
CN111858004A (zh) | 基于tee扩展的计算机安全世界实时应用动态加载方法及系统 | |
US9996448B2 (en) | Breakpoint insertion into kernel pages | |
EP3961446A1 (en) | Method and apparatus for securely entering trusted execution environment in hyper-threading scenario | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
JP2013161299A (ja) | 情報処理装置、インタフェースアクセス方法 | |
US20070204085A1 (en) | Method of processing nonsecure interrupts by a processor operating in the secure mode, associated processor | |
JP2009009232A (ja) | コンピュータとカーネル保護方法並びにコンピュータソフトウエア | |
US8661177B2 (en) | Method and apparatus for controlling system interrupts | |
US20090144733A1 (en) | Virtual machine system and control method of virtual machine system | |
EP3246821B1 (en) | Semiconductor device and its memory access control method | |
CN115576734A (zh) | 一种多核异构日志存储方法和系统 | |
CN108563491B (zh) | 一种基于虚拟机的自省自动化管理、配置与自省方法 | |
CN117272412B (zh) | 中断控制寄存器保护方法、装置、计算机设备及存储介质 |
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 |