2.1 ARM Cortex 体系架构概述

ARM公司在经典处理器ARM11以后的产品都改用Cortex命名,主要分成A、R和M三类,旨在为各种不同的市场提供服务,A 系列处理器面向尖端的基于虚拟内存的操作系统和用户应用;R系列处理器针对实时系统;M系列处理器针对微控制器。

2.1.1 CISC和RISC

指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构来讲,指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分。

1.CISC机器

CISC体系的指令特征为使用微代码,计算机性能的提高往往是通过增加硬件的复杂性来获得的。

优点:指令丰富,功能强大,寻址方式灵活,能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。

缺点:指令集及晶片的设计比上一代产品更复杂,不同的指令需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。

2.RISC机器

RISC体系的指令特征:RISC包含简单、基本的指令,这些简单、基本的指令可以组合成复杂指令。

优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度是CISC系统的运行速度的2~4倍。由于RISC处理器的指令集是精简的,它的存储管理单元、浮点单元等都能设计在同一块芯片上。

缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC处理器需要更快的存储器,并将其集成于处理器内部,如一级缓存(L1 Cache)。

arm指令集和arm架构 arm指令集架构_M4

2.1.2ARM体系结构类型

arm指令集和arm架构 arm指令集架构_单片机_02


arm指令集和arm架构 arm指令集架构_指令集_03

2.2 Cortex-M4内核基础

arm指令集和arm架构 arm指令集架构_M4_04


32-bit微控制器: 32-bit 寄存器组、存储器接口。

哈佛架构:独立的指令总线和数据总线。

存储空间:4GB。

寄存器:寄存器 (R0 到 R15) 和 特殊功能寄存器。

运行模式:线程模式和处理模式;特权级和用户级。

中断和异常:内置嵌套向量中断控制器;支持11 种系统异常外加240 种外部 IRQ。

总线接口:若干总线接口允许 Cortex-M4 同时取指令和取数据。

MPU:一个可选的存储器保护单元允许对特权访问和用户程序访问制定访问规则。

指令集:Thumb-2 指令集;允许 32位指令和16位指令被同时使用。

内部调试组件:提供在线调试功能,例如:断点、单步、变量查看。

arm指令集和arm架构 arm指令集架构_单片机_05


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_06


arm指令集和arm架构 arm指令集架构_M4_07


arm指令集和arm架构 arm指令集架构_嵌入式_08


arm指令集和arm架构 arm指令集架构_指令集_09


arm指令集和arm架构 arm指令集架构_单片机_10


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_11


arm指令集和arm架构 arm指令集架构_嵌入式_12


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_13


arm指令集和arm架构 arm指令集架构_单片机_14


arm指令集和arm架构 arm指令集架构_嵌入式_15


arm指令集和arm架构 arm指令集架构_M4_16


arm指令集和arm架构 arm指令集架构_M4_17


arm指令集和arm架构 arm指令集架构_M4_18


arm指令集和arm架构 arm指令集架构_M4_19


arm指令集和arm架构 arm指令集架构_嵌入式_20


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_21


arm指令集和arm架构 arm指令集架构_指令集_22


arm指令集和arm架构 arm指令集架构_嵌入式_23


arm指令集和arm架构 arm指令集架构_单片机_24


arm指令集和arm架构 arm指令集架构_嵌入式_25

2.3 存储器系统

Cortex-M4内核的存储器系统的主要特性如下:

(1)可寻址4GB线性地址物理空间。

(2)支持小端和大端的存储器系统。Cortex-M4处理器可以选择使用小端或者大端的存储器系统。

(3)位段访问。

(4)写缓冲。对可缓冲存储器区域写操作需要花费几个周期时间,Cortex-M4处理器的写缓冲可以把写操作缓存起来,因此处理器可以继续执行下一条指令,从而提高了程序的执行速度。

(5)存储器保护单元(MPU)。MPU定义了各存储器区域的访问权限,且为可编程。Cortex-M4处理器中的MPU支持8个可编程区域,可在嵌入式操作系统中提高系统的健壮性。Cortex-M4处理器中的MPU是可选的。多数应用不会用到MPU,可以忽略。

(6)非对齐传输支持。ARMv7-M架构的所有处理器(包括Cortex-M4处理器)支持非对齐传输。

arm指令集和arm架构 arm指令集架构_嵌入式_26


arm指令集和arm架构 arm指令集架构_单片机_27


arm指令集和arm架构 arm指令集架构_嵌入式_28


arm指令集和arm架构 arm指令集架构_嵌入式_29


arm指令集和arm架构 arm指令集架构_指令集_30


arm指令集和arm架构 arm指令集架构_嵌入式_31


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_32


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_33


arm指令集和arm架构 arm指令集架构_指令集_34

2.4 异常和中断

arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_35


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_36


arm指令集和arm架构 arm指令集架构_嵌入式_37


arm指令集和arm架构 arm指令集架构_M4_38


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_39


arm指令集和arm架构 arm指令集架构_arm指令集和arm架构_40


arm指令集和arm架构 arm指令集架构_M4_41


arm指令集和arm架构 arm指令集架构_单片机_42


arm指令集和arm架构 arm指令集架构_嵌入式_43


arm指令集和arm架构 arm指令集架构_单片机_44


arm指令集和arm架构 arm指令集架构_嵌入式_45


arm指令集和arm架构 arm指令集架构_单片机_46


arm指令集和arm架构 arm指令集架构_单片机_47


arm指令集和arm架构 arm指令集架构_指令集_48