微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 做嵌入式,2017年一定要关注ARM的这三大技术

做嵌入式,2017年一定要关注ARM的这三大技术

时间:03-14 来源:互联网 点击:

ARM作为全球领先的IP供应商,凭借其核心优势,在移动设备时代,混的风生水起。而近年来随着设备转变的需求,ARM也针对性的做了提高,推出更适合的高效能产品。我们来盘点一下2017年不能错过ARM的三大技术:

获得Trust Zone加持的ARMv8-M

ARM TrustZone 是针对片上系统(SoC)设计的系统级安全技术,它基于硬件,内置于CPU和系统内核,为半导体芯片设计师设计设备安全性能(如可信根)量身打造。TrustZone可用于任何基于ARM Cortex?-A的系统,随着全新Cortex-M23和Cortex-M33处理器的发布与升级,Cortex-M也已经支持该技术。从尺寸最小的微控制器(搭载针对Cortex-M处理器优化的TrustZone技术),到高性能处理器(搭载针对Cortex-A处理器优化的TrustZone技术),设计师们终于可以从设计初始就着手打造出色的安全性能了。

TrustZone技术的核心理念是将可信资源与非可信资源在硬件上实现隔离。在处理器内部,软件只能安装于安全或非安全域其中一处;在两个域间切换则必须经过Cortex-A处理器的软件(后文称安全监视器)和Cortex-M处理器的硬件(核心逻辑)处理才能执行。这种将安全(可信)域和非安全(非可信)域隔离理念的实现不仅涉及CPU,还涵盖存储、片上总线系统、中断、周边设备接口和SoC上的软件。

TrustZone安全技术将非可信资源和可信资源隔离

针对ARMv8-M处理器的TrustZone技术

ARMv8-M架构将TrustZone技术拓展至Cortex-M级系统,实现了对所有成本点的安全防护。为Cortex-M度身设计的TrustZone技术可以保护固件和周边设备,并为安全启动、可信更新以及可信根执行实现隔离。该架构具备嵌入式解决方案应有的确定性实时响应能力。同时,因为安全与非安全域间的上下文切换在硬件中完成,所以更快实现转换及更高的电源效率。该架构无需安装任何安全监视器软件,因为处理器本身就能完成切换任务,不仅可以减少存储足迹,还能降低代码执行的动态功率。

在继续讨论编程之前,我们先介绍以下几个概念:

地址定义安全

新增执行状态

跨域调用

概念1:地址定义安全

第一个需要了解的概念是:地址定义安全,即每一个地址都与一个特定的安全状态相关。Cortex-M处理器采用全新引入的安全属性单元来检查地址的安全状态。根据整体SoC设计,系统级接口可以重写该属性。选择此状态后,该地址还会通过一个存储保护单元(视系统配置而定)。

地址定义安全图解

概念2:新增执行状态

第二个概念是“新增执行状态”。ARMv7-M和ARMv6-M架构定义了两种执行模式:管理者模式(handler mode)和线程模式(thread mode)。管理者模式是特权模式,可以接入SoC的所有资源;而线程模式则可以设定为特权或非特权两种。凭借TrustZone安全拓展技术,我们可以对处理器模式进行镜像处理,构造安全和非安全两种状态,每种状态都各自包含管理者模式和线程模式。安全状态和处理器模式是正交的,因此可形成4种状态和模式的组合。在安全的存储器中运行软件时,处理器自动设定为安全状态;反之,在非安全存储器中运行软件时,处理器自动设定为非安全状态。这种设计消除了本来用于管理状态切换的安全监控软件的必要性,从而实现减少存储足迹和功耗的目的。

新增正交态

概念3:跨域调用

ARMv8-M为实现Cortex-M的性能专门设计,具备确定性实时运行功能。换言之,只要遵守以预先设定的安全状态接入点为基础的特定规则,任何状态下的任何功能都可以直接调用其他状态下的任何其他功能。此外,每个状态都有一个独特的堆栈集和对应的堆栈指示器,用来保护安全域资产。由于无需使用API层管理调度,成本大幅减少。基于预先设定的接入点,调度可以直接读取被调函数。

跨域调用

应用案例简述

如下图表介绍了一个使用案例简述。该环境下,用户应用和I/O驱动都处于非安全状态,而系统的启动代码和通讯堆栈则处于安全状态。用户应用调度并转入通讯堆栈以传输、接收数据,而该堆栈将使用非安全状态的I/O驱动来完成界面上的数据传输和接收。

所有相似系统环境下,示例软件配置都可以得益于TrustZone技术的安全状态功能:

非安全应用不能接入安全资源,除非通过事先定义好的安全服务功能接入点

安全固件既可以接入安全存储,也可以进入非安全存储

安全和非安全代码可以用不同的定时器制定独立的时间进度

每根中断线都可以设置为安全或非安全。安全软件和非安全软件的中断向量表也可以分开。

尽管处理器硬件可以为安全软件提供核心保护,但安全软件依然需要谨慎的编写,才能确保整个系统的安全。以下是软件开发商在设计安全软件时必须牢记的三个

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top