目录
一、计算机基础知识
1、计算机的组成
2、多级存储结构与地址空间
3、CPU工作原理
二、ARM处理器概述
1、ARM公司概述
2、ARM产品系列
3、RISC处理器
4、SOC
三、ARM指令集
1、指令集
2、ARM指令集
3、编译原理
四、ARM存储模型
1、ARM数据类型
2、字节序
3、ARM指令存储
五、ARM工作模式
1、ARM工作模式
2、工作模式的理解
3、ARM工作模式分类
一、计算机基础知识
1、计算机的组成
输入设备
把其他信号转换成计算机能识别和处理的信号并送入计算机中,如键盘、鼠标、摄像头等。
输出设备
把运算结果以人或其他设备所能接受的形式送出计算机外,如显示器、音响、打印机等。
存储器
存储器是用来存储程序和数据的部件,是实现"存储程序控制"的基础,如内存、硬盘等。
运算器
CPU中负责进行算数运算和逻辑运算的部件,其核心是算术逻辑单元ALU。
控制器
控制器是CPU的指挥中心,其控制着整个CPU执行程序的逻辑过程。
注:运算器和控制器共同组成了CPU
总线
总线是计算机中各个部件之间传送信息的公共通信干线, 在物理上就是一束导线按照其传递信息的类型可以分为数据总线、地址总线、控制总线。
DMA总线
DMA(Direct Memory Access)即直接存储器访问,使用DMA总线可以不通过CPU直接在存储器之间进行数据传递。
2、多级存储结构与地址空间
使用三级存储结构是为了兼顾速度、容量、价格三方面的平衡,三级存储结构如图:
Cache
速度最快、价格最贵、容量最小、断电数据丢失、cpu可直接访问。
存储当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。
主存储器(内存)
速度、价格、容量介于Cache与辅存之间、断电数据丢失、cpu可直接访问。
存储当前正在执行的程序和数据。
辅助存储器(外存)
速度最慢、价格最低、容量最大、断电数据不丢失、cpu不可直接访问。
存储暂时不运行的程序和数据,需要时再传送到主存 。
地址空间
一个处理器能够访问(读写)的存储空间是有限的,我们称这个空间为它的地址空间(寻址空间),一般来说N位地址总线的处理器的地址空间是2的N次方。
3、CPU工作原理
注:每执行一条指令后PC的值会自动增加指向下一条指令。
一条指令的执行分为三个阶段
1.取址:
CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)。
2.译码:
译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算。
3.执行:
控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器
二、ARM处理器概述
1、ARM公司概述
ARM的含义
ARM(Advanced RISC Machines)有三种含义:一个公司的名称、一类处理器的通称、一种技术。
ARM公司
成立于1990年11月,前身为Acorn计算机公司;
主要设计ARM系列RISC处理器内核;
授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片;
提供基于ARM架构的开发设计技术软件工具、评估板、调试工具、应用软件、总线架构、外围设备单元等;
2、ARM产品系列
早先经典处理器
包括ARM7、ARM9、ARM11家族;
Cortex-A系列
针对开放式操作系统的高性能处理器
应用于智能手机、数字电视、智能本等高端运用;
Cortex-R系列
针对实时系统、满足实时性的控制需求;
应于汽车制动系统、动力系统等;
Cortex-M系列
为单片机驱动的系统提供了低成本优化方案;
应用于传统的微控制器市场、智能传感器、汽车周边等;
3、RISC处理器
RISC处理器
只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。
RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛。
CISC处理器
不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定。
CISC处理器在性能上有很大优势,多用于PC及服务器等领域。
4、SOC
SOC(System on Chip)
即片上系统,将一个系统中所需要的全部部件集成在一个芯片中在体积、功耗、价格上有很大优势。
三、ARM指令集
1、指令集
指令
能够指示处理器执行某种运算的命令称为指令(如加、减、乘...);
指令在内存中以机器码(二进制)的方式存在;
每一条指令都对应一条汇编;(注意:不可打断)
程序是指令的有序集合;
指令集
处理器能识别的指令的集合称为指令集;
不同架构的处理器指令集不同;
指令集是处理器对开发者提供的接口;
2、ARM指令集
大多数ARM处理器都支持两种指令集:
ARM指令集
所有指令(机器码)都占用32bit存储空间;
代码灵活度高、简化了解码复杂度;
执行ARM指令集时PC值每次自增4;
Thumb指令集
所有指令(机器码)都占用16bit存储空间;
代码密度高、节省存储空间;
执行Thumb指令集时PC值每次自增2;
3、编译原理
主要过程为:预处理(预编译)->编译->汇编。
机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植。
汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植。
C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植。
四、ARM存储模型
1、ARM数据类型
ARM采用32位架构,基本数据类型有以下三种
Byte8bits
Halfword16bits
Word32bits
数据存储
Word型数据在内存的起始地址必须是4的整数倍;
Halfword型数据在内存的起始地址必须是2的整数倍;
注:即数据本身是多少位在内存存储时就应该多少位对齐。
2、字节序
3、ARM指令存储
处理器处于ARM状态时
所有指令在内存的起始地址必须是4的整数倍;
PC值由其[31:2]决定,[1:0]位未定义;
处理器处于Thumb状态时
所有指令在内存的起始地址必须是2的整数倍;
PC值由其[31:1]决定,[0]位未定义;
注:即指令本身是多少位在内存存储时就应该多少位对齐。
五、ARM工作模式
1、ARM工作模式
ARM有8个基本的工作模式
User非特权模式,一般在执行上层的应用程序时ARM处于该模式;
FIQ 当一个高优先级中断产生后ARM将进入这种模式;
IRQ 当一个低优先级中断产生后ARM将进入这种模式;
SVC 当复位或执行软中断指令后ARM将进入这种模式;
Abort 当产生存取异常时ARM将进入这种模式;
Undef当执行未定义的指令时ARM将进入这种模式;
System使用和User模式相同寄存器集的特权模式;
Monitor 为了安全而扩展出的用于执行安全监控代码的模式;
2、工作模式的理解
不同模式拥有不同权限;
不同模式执行不同代码;
不同模式完成不同的功能;
3、ARM工作模式分类
按照权限
User为非特权模式(权限较低),其余模式均为特权模式(权限较高)。
按照状态
FIQ、IRQ、SVC、Abort、Undef属于异常模式,即当处理器遇到异常后
会进入对应的模式。