ARM体系架构与编程模型脑图
1. ARM处理器简介及RISC主要特点
ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。
- ARM是一种RISC MPU/MCU的体系结构,如同x86架构是一种CISC体系结构一样。另外,还有MIPS架构、PowerPC架构等等。
- ARM是Advanced RISC Machine Limited公司的简称
- ARM是Advanced RISC Machine Limited公司的产品,该产品以IP Core(Intellectual Property Core,知识产权核)的形式提供的
- ARM还用以泛指许多半导体厂商买了这种设计后生产出来的“ARM处理器”系列的芯片及其衍生产品
半导体厂商固然可以光购买ARM公司的设计而直接生产ARM处理器芯片,但是更好的方法是以ARM处理器为核心,在同一块芯片上配上自己开发的外围模块,形成面向特定应用和市场的专用芯片,甚至“片上系统(System on a Chip,SoC)”。这样,作为专用处理器/控制器芯片的生产商既可以减少开发中的风险,又可以大大缩短开发周期,降低成本。所以,“ARM处理器”一般是作为“内核”存在于一些专用处理器/控制器的内部,因而又常常叫做“ARM核”。特别地,如果一个处理器核不带浮点运算功能,有时候就对此特别加以强调,称之为“整形核”。
1.1. 采用RISC架构的ARM微处理器一般具有如下特点
- 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度
- 指令执行采用3级流水线/5级流水线技术
- 带有指令Cache和数据Cache,大量使用寄存器,指令执行速度更快
- 大多数数据操作都在寄存器中完成,寻址方式灵活简单,执行效率高
- 指令长度固定(在ARM状态下是32位,在Thumb状态下是16位)
- 支持大端格式和小端格式两种方法存储字数据
- 支持Byte(字节,8位)、Halfword(半字,16位)和Word(字,32位)三种数据类型
- 支持用户、快中断、中断、管理、中止、系统和未定义7种处理器模式;除了用户模式外,其余的均为特权模式;除了用户模式和系统模式外,其余都是异常模式
- 处理器芯片上都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试ARM体系结构芯片,可以避免使用昂贵的在线仿真器。另外,在处理器核中还可以嵌入跟踪宏单元ETM,用于监控内部总线,实时跟踪指令和数据的执行
- 具有片上总线AMBA(Advanced Micro-controller Bus Architecture)。 AMBA定义了3组总线:先进高性能总线AHB(Advanced High performance Bus);先进系统总线ASB(Advanced System Bus);先进外围总线APB(Advanced Peripheral Bus)。通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成在一块芯片中
- 采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址
- 具有协处理器接口。ARM允许接16个协处理器,如CP15用于系统控制,CP14用于调试控制器
- 采用了降低电源电压,可工作在3.0V以下;减少门的翻转次数,当某个功能电路不需要时禁止门翻转;减少门的数目,即降低芯片的集成度;降低时钟频率等一些措施降低功耗
- 体积小、低成本、高性能
1.2. RISC和CISC指令集对比
指标 | RISC | CSIC |
---|---|---|
指令集 | 指令定长;指令周期执行;无复杂指令,通过简单指令的组合实现复杂操作;指令译码采用硬布线逻辑 | 指令变长;执行需要多个周期;存在复杂指令,一条指令完 |