ARM® Cortex®-M23选用TrustZone®技能,是尺度最小、能效最高的处理器。小型嵌入式运用对芯片的安全功用有严格要求,根据ARMv8-M基线架构的Cortex-M23处理器则是最佳解决方案。
本文中,我将带各位领会全新Cortex-M23处理器的强壮特征:
Cortex-M23最重要的特征是加入了TrustZone安全根底技能
极紧凑的架构与布线
强化的调试纠错和追溯才能(对开发商的出产力进步至关重要)
存储维护单元取得改进(该单元界说软件组件的拜访答应,全新规划进步编程的功率,从头界说存储区域)
新增多条增强功用的指令
1. 为ARMv8-M量身打造的TrustZone技能:安全完成的根底
TrustZone技能为ARMv8-M度身优化,能够在每一台搭载Cortex-M23处理器的设备上以硬件方式完成可信软件和非可信软件强制阻隔。因而,选用TrustZone,规划师只需一个处理器就能够规划嵌入式运用,此前则有必要运用多个处理器才能在可信区域和非可信区域之间完成物理阻隔。仅需Cortex-M23处理器,既可超卓完成多项安全需求,如设备辨认办理、高价值固件维护、软件认证、安全根等等。
选用TrustZone技能的Cortex-M23处理器具有以下两种安全状况:
安全状况 – 能够拜访安全和非安全资源(存储、周边设备等)
非安全状况 – 只可拜访非安全资源
两种安全状况下的代码履行转化和代码拜访均由硬件监管,最大极限地下降转化办理本钱并保证确定性——这也是一切Cortex-M处理器的标志性功用。
2. 紧凑二阶布线处理器
Cortex-M23是一款简略的二阶布线冯诺依曼处理器(Von Neumann processor),但却足以支撑全套ARMv8-M基线指令集。了解Cortex-M0+的用户必定能够敏捷指出Cortex-M23使能效最大化的很多类似特征:WFI(等候中止)/WFE(等候事情)和睡觉/深度睡觉形式、退出时睡觉、SysTick定时器和选配的单循环IO等。
指令集共包含80条左右的拇指指令,其间大多数都是16位指令(为了尽可能进步代码的紧凑度),但仍有一些为了进步功率而设置的32位指令。Cortex-M23支撑一切的ARMv6-M指令,以协助规划师垂手可得地将代码从Cortex-M0和Cortex-M0+处理器转移至Cortex-M23。此外ARMv8-M基线指令会集还加入了多条新指令以进步条件运算、互斥拜访、硬件区别运算和即时移动的功率。
3. 强化的调试纠错与追溯才能
仅凭一台高效安全的32位处理器,尚无法成功完成字段布置,软件开发的本钱一般超越出产和硬件IP的总和。Cortex-M23引进更多可装备的硬件断点和数据观测点,比照其他ARMv6-M处理器,能够助规划师更轻松地完成软件开发与调试。除了Cortex-M0+ 处理器中也装备的微型盯梢缓冲器(MTB),Cortex-M23还包含选配的嵌入式盯梢宏单元(ETM)。有了这些选配功用,规划师能够自行判别,终究挑选愈加丰厚全面的指令追溯才能;仍是性价比更高、愈加精简的指令追溯才能。
4. 用于使命阻隔的存储维护单元
Cortex-M23还包含选配存储维护单元(MPU),根据全新PMSAv8架构打造,规划师运用起来十分便利。它能够在安全和非安全状况的任何一个状况下最多“维护”16个区域。每个区域都有一个根底地址、完毕地址、拜访答应和存储特点设置。在多使命环境下,操作体系能够在使命情境切换的过程中从头编程MPU,界说每个使命的存储答应,比方答应运用使命拜访悉数或部分运用数据和特定的周边设备。经过维护答应之外的数据免遭污染,并阻挠未授权来历拜访答应之外的周边设备,该MPU能够明显进步体系可靠性。
更易设置的存储区域
Cortex-M23的存储维护架构选用基线和限值比较器,用以界说存储区域,而此前运用的是二次方尺度对齐比较器。这项改进简化了软件研制的杂乱程度,并且在某些情况下,当区域尺度不是完美的二次方尺度时,还能削减存储糟蹋。
5. 全新ARMv8-M基线指令
比照ARMv6-M,Cortex-M23加入了许多全新指令,但一点点没有折损Cortex-M系列处理器的超高能效。大多数新指令(除用于安全拓宽外)都承继自ARMv7-M的架构指令集,进一步拓宽Cortex-M23的功用,并与Cortex-M0+ 处理器构成明显区别。
5.1安全拓宽
ARMv8-M选用的TrustZone安全技能为基线指令集弥补了全新指令,包含安全网关(SG)、非安全支路(BXNS、BLXNS)以及测验方针(TT)指令。欲知概况,请参阅Yiu编撰的《ARMv8-M 架构介绍》。
5.2 仅履行代码生成
对仅履行(Execute-Only)代码存储区的支撑也取得改进,新添加的即时移动指令(从ARMv7-M承继的MOV/MOVT)能够在仅履行代码中生成即时数据,让规划师仅凭2条指令便能生成32位值,且无需运转实践负载。
5.3代码优化
条件比较和支路指令(从ARMv7-M承继的CBNZ/CBZ)能够进步多项条件操控代码序列的功用。长偏移即时支路(从ARMv7-M承继的)能够将支路指向悠远的方针地址;硬件整数区别指令(从ARMv7-M承继的SDIV/UDIV)则能够削减除法运算的处理循环。
5.4排挤存取
Cortex-M23还从ARMv7-M承继了负载和贮存的专用指令,进步Cortex-M23在多核体系中的一贯性,保证多个处理器以相同的机制处理信号。此外,为了对C11/C++11供给安稳支撑,Cortex-M23还新增ARMv8-A(Thumb 32版别)的负载获取与贮存开释指令,并包含这些指令的排挤存取变种。