一,关于ARM体系架构的介绍

1.1 什么是ARM

1.2 ARM体系架构CPU的特点

1.3 ARM体系架构及指令集

1.4 ARM的具体介绍

1.4.1 ARM9的特点

1.4.2 ARM的工作状态

1.4.3 ARM的存储格式

1.4.4 ARM的运行模式

二,Contex-M系列CPU

2.1 Contex与Contex-M系列架构简介

三,关于CPU的选择

一,关于ARM体系架构的介绍

1.1 什么是ARM(Advanced RISC Machines)

(1)ARM是一家公司,靠出售芯片的IP核授权来盈利

注:IP核,即知识产权核,是一段具有特定电路功能的硬件描述语言程序。

(2)ARM是一种CPU的体系架构

1.2 ARM体系架构CPU的特点

(1)采用ARM32为指令集合Thumb指令集。CPU的指令集就是存储在CPU内部的对CPU运算进行指导和优化的硬程序;RISC相对于CISC指令集来说,即精简指令集。

(2)体积小。

(3)功耗低。

(4)成本低。

(5)性能高。

(6)集成度高

(7)种类多,应用广泛。种类繁多:从纵向来看,CPU从低端到中端再到高端,针对不同的应用都可以找到相对应的CPU来使用;从横向来看:由于存在大量的RAM架构的CPU厂家,各个厂家生成的CPU也是各有特点。总之就是能够找出一个适合某项应用的CPU。

1.3 ARM体系架构及指令集

ARM架构ARM指令集
ARM7ARMv4T(Newman)结构
ARM9ARMv4T(Harvard)结构
ARM10ARMv5T
ARM11ARMv6T
ARM ContexARMv7

注:Newman结构,即冯诺依曼结构,特点:共用的数据和程序存储空间,共享存储总线。

Harvard结构,即哈佛结构,特点:分离的数据和程序存储空间,以及分离的访问总线,取指与取数可以并发执行,有更高的效率。

1.4 ARM的具体介绍

1.4.1 ARM9的特点

(1)采用五级流水线设计:取指,译码,执行,缓冲,写回。

取指和译码大家应该都有所了解了,这里主要介绍以下几点:

执行:把一个操作数移位,产生ALU的结果

缓冲:若需要则访问程序存储器,否则ALU只是缓冲一个时钟周期

写回:将指令产生的结果写回到寄存器堆栈。

(2)ARM9采用哈佛结构,有更高的效率.ARM7采用的是冯诺依曼结构。

(3)引入了高速缓存和写缓存

(4)支持MMU。MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。

MMU能够真正实现内存保护,增强稳定性和可靠性。

1.4.2 ARM的工作状态

(1)ARM工作状态。此时处理器执行32位的字对齐ARM指令。

(2)Thumb工作状态。此时处理器执行16位的半字节对齐Thumb指令。

1.4.3 ARM的存储格式

(1)大端格式。字数据的高字节存储在低地址中,低字节存储在高地址中。

(2)小端格式。字数据的高字节存储在高地址中,高字节存储在低地址中。

1.4.4 ARM的运行模式

运行模式模式作用
用户模式(usr)ARM处理器正常的执行状态
快速中断模式(fig)由于高速数据传输或通道处理
外部中断模式(irg)用于通用的中断处理
管理模式(svc)操作系统使用的保护模式
数据访问终止模式(abt)当数据或指令预取终止进入该模式,虚拟存储及时保护
系统模式(sys)运行具有特权的操作系统任务

二,Contex-M系列CPU

2.1 Contex与Contex-M系列架构简介

(1)Contex系列架构

ARM公司在处理器ARM11以后的产品都用Contex来命名,并且分成了A,R,M三类,目的是为了各种不同的市场需求提供服务。Contex系列架构采用ARMv7指令集。

“A”系列面向尖端的基于虚拟内存的操作系统和用户应用。

“R”系列针对实时系统。如大家较熟悉的FreeRTOS,RT-Thread等实时操作系统。

“M”系列针对低功耗低成本的微控制器应用。

(2)Contex-M系列架构

Contex-M系列CPU树立了全球微控制器(MCU)的设计标准。

1. 特点:

a.低成本;

b. 低功耗:支持多种休眠模式(sleep),且应用更加灵活,省电。

c.对代码量需求小:Contex-M系列架构的MCU是32位的MCU,比其他的8位或16位的设备支持的指令集密度更高,所以每个指令集完成的操作也就越多,从而就可以减小代码长度,同时对硬件的要求就没有那么高了,如存储器RAM和RAM,也降低了成本。

d.代码可重用性好:从纵向来看,Contex-M0采用ARMv6的指令集,Contex-M3和Contex-M4采用ARMv7的指令集,从下往上是兼容的;从横向来看,由于Contex-M供应商都是采用的统一的指令集标准,并且都是用统一的工具进行开发,在同一体系架构的不同厂家的CPU进行移植时,对于代码的修改量是很少的。

e. 性能强大;

f. 可选厂家和型号多。

注:8位,16位,32位的MCU的介绍

位数就是处理器一次性处理数据的字长。如8位的MCU,一次性就是处理一个字节(1Byte=8bit)的数据,同理,16位的MCU就是一次性能处理2个字节的数据,32位的MCU一次性能处理3个字节的数据。

三,关于CPU的选择

(1)清楚了解项目需求

是手持的设备还是车载设备? ==>CPU体积的大小

是通信设备还是检测设备?其他特别的需求?

(2)根据项目需求从以下几个方面进行选型

1.CPU的性能

2.CPU在某些功能上的工作范围及精确度

3.CPU的价格与功耗,即性价比的问题

4.CPU支持的接口