一,关于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指令集 |
ARM7 | ARMv4T(Newman)结构 |
ARM9 | ARMv4T(Harvard)结构 |
ARM10 | ARMv5T |
ARM11 | ARMv6T |
ARM Contex | ARMv7 |
注: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支持的接口