第2章 ARM7体系结构(删减版)
ARM7体系结构
各ARM体系结构版本——V5
在V4版本的基础上,对现在指令的定义进行了必要的 修正,对V4版本的体系结构进行了扩展并增加了指令,具 体如下: 改进了ARM/Thumb状态之间的切换效率; 允许非T变量和T变量一样,使用相同代码生成技术; 增加计数前导零指令和软件断点指令; 对乘法指令如何设置标志作了严格的定义。
3.2 ARM7TDMI
简介
ARM7TDMI基于ARM体系结构V4版本,是目前低 端的ARM核。具有广泛的应用,其最显著的应用为 数字移动电话。
3.2 ARM7TDMI
简介
ARM7TDMI支持32位寻址范围,并弥补了ARM6 不能在低于5V电源电压下工作的不足。ARM7TDMI的 后缀意义为: ARM7 T D M I - S
乘法器 桶形移位器 写数据寄存器 32位ALU 指令管线读数据寄存器 Thumb指令译码器
该系列包括ARM7TDMI、ARM7TDMI-S、带有高 速缓存处理器宏单元的ARM720T和扩充了Jazelle 的ARM7EJ-S。该系列处理器提供Thumb 16位压缩 指令集和EmbededICE软件调试方式,适用于更大规 模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包 括Internet设备、网络和调制解调器设备,以及移 动电话、PDA等无线设备。
ADDR[31:0] 扫描调试 控制 指令译码 和 控制逻辑 CLK CLEN CFGBIGEND nIRQ nFIQ nRESET ABORT LOCK WRITE
地址寄存器
地址增加器
寄存器组 31*32位寄存器 (6个状态寄存器)
SIZE[1:0] PROT[1:0] TRANS[1:0]
DBG输出 DBG输入 CP控制 CP握手
ARM嵌入式系统基础教程第二版课后习题答案
第1章嵌入式系统概述(1)举出3个本书中未提到的嵌入式系统的例子。
答:键盘、鼠标、扫描仪。
(2)什么叫嵌入式系统?答:嵌入到对象体系中的专用计算机应用系统。
(3)什么叫嵌入式处理器?嵌入式处理器分为哪几类?答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格。
(4)什么是嵌入式操作系统?为何要使用嵌入式操作系统?答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。
原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。
3.充分发挥了32位CPU的多任务潜力。
第2章 ARM7体系结构1.基础知识(1)ARM7TDMI中的T、D、M、I的含义是什么?答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块。
(2)ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:3级;冯·诺依曼结构。
(3)ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式体现在不同寄存器的使用上;ARM处理器状态体现在不同指令的使用上。
(4)分别列举ARM的处理器模式和状态?答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。
(5)PC和LR分别使用哪个寄存器?答:PC:R15;LR:R14。
(6)R13寄存器的通用功能是什么?答:堆栈指针SP。
(7)CPSR寄存器中哪些位用来定义处理器状态?答:位31~28:N、Z、C、V,条件代码标志位;27~8:保留位;7~0:I、F、T、M4~0,控制标志位。
(8)描述一下如何禁止IRQ和FIQ的中断。
答:当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ 中断被禁止,否则允许FIQ中断使能。
ARM7体系结构概述
PC
状态寄 存器 CPSR
R15
CPSR
注意:括号内为ATPCS中寄存器的命名,可以使用RN汇编伪指令将寄存器 定义多个名字。其中ADS1.2的汇编程序直接支持这些名称,但注意a1~a4, v1~v4必须用小写。
周立功单片机
Thumb状态下的通用寄存器
寄存器 寄存器在汇编 类别 中的名称 R0(a1) R1(a2) R2(a3) R3(a4) 通用寄 存器和 程序计 数器 R4(v1) R5(v2) R6(v3) R7(v4,wr) SP LR R13 R14 R13_svc 各模式下实际访问的寄存器 用户 系统 管理 中止 R0 R1 R2 R3 R4 R5 R6 R7 R13_abt R13_und R13_irq R13_fiq 未定义 中断 快中断
Xscale
周立功单片机
2.1 ARM简介
• ARM处理器核简介——ARM7
该系列包括ARM7TDMI、ARM7TDMI-S、带 有高速缓存处理器宏单元的ARM720T和扩充了 Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16 位压缩指令集和EmbededICE软件调试方式,适用 于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备, 包括Internet设备、网络和调制解调器设备,以及 移动电话、PDA等无线设备。
周立功单片机
第2章 目录
1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和 内部框图 4.体系结构直接支持的 数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器 9.异常 10.中断延迟 11.复位 12.存储器及存储器映射 I/O
所以最好避免使用STR和STM指令来保存R15, 如果很难做到,那么应当在程序中计算出该芯片的 偏移量。
ARM嵌入式系统习题课1
(6) CMP指令是如何执行的?写一程序,判断R1的值是否大于0x30,是则 将R1减去0x30。 答:CMP指令是将寄存器Rn的值减去operand2的值,根据操作的结果更新 CPSR中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是 否执行。 比如: CMP {cond} Rn,operand2 CMP R1,#0x30 ;将R1与常数0x30比较 LDRLE PC,LR;如果小于或等于0x30,则程序返回 SUB R1,R1,#0x30;大于0x30,则将R1减去0x30,结果存回 R1 (7)调用子程序是用B指令还是用BL指令?请写出返回子程序的指令。 答:调用子程序是用BL指令; MOV PC,LR 或 BX LR
• 2、定义R0 =0x12345678,假设使用存储指令将R0的值放在0x4000单元中。 如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元 内容取出存放到R2寄存器操作后所得R2的值。如果存储器改为小端格式, 所得的R2值又为多少?低地址0x4000单元的字节内容分别是多少?
PC,
第三章
ARM7TDMI(-S)指令系统
(1)ARM7TDMI(-S)有几种寻址方式?“LDR R1,[R0,#0x08]”属于哪种寻址 方式? 答:有8种寻址方式:1.寄存器寻址 2.立即寻址 3.寄存器移位寻址 4.寄存器 间接寻址 5.基址寻址 6.多寄存器寻址 7.堆栈寻址 8.相对寻址;“LDR R1,[R0,#0x08]”属于基址寻址。 (3) ARM指令中的第2个操作数有哪几种形式?列举5个8位图立即数。 答:a.常数表达式(8位图) b.寄存器方式 c.寄存器移位方式; 八位位图即常熟是由一个八位的常数循环移位偶数位得到的 0x3FC、0、0xF0000000、200、0xF0000001。 (5)请指出MOV指令与LDR加载指令的区别及用途? 答:MOV指令的源操作数是常数或(带偏移量的)寄存器,用于寄存器之 间的数据传送;LDR指令的源操作数是地址,用于存储器到寄存器的数据传 送。
第2章-1 ARM7处理器结构
2.1.3 ARM7TDMI功能信号图
ARM7TDMI
07:21
ARM7TDMI处理器的功能信号
26
时钟和定时
MCLK 全局主时钟,所有存储访问和处理器操作
的主时钟。速度可控制分别访问不同速度的外设和 存储器。
nWAIT 为低电平时处理器将其访问时间延长几个
时钟周期,用于访问低速外设,不用时接高电平。
内核 流水线 典型频率(MHz) 总线架构 ARM7 3 80 冯诺伊曼 ARM9 5 150 哈佛 ARM10 6 260 哈佛 ARM11 8 335 哈佛
07:21
17
2.1.2 ARM7TDMI
3 存储器访问
ARM7TDMI处理器使用了冯· 诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。 只有装载、存储和交换指令可以对存储器中的数据 进行访问。 ARM处理器支持下列数据类型: 字节 8位 半字 16位(必须分配为占用两个字节) 字 32位(必须分配为占用4各字节)
ARM公司简介
ARM是Advanced RISC Machines的缩写,它是一家微处 理器行业的知名企业,该企业设 计了大量高性能、廉价、耗能低 的RISC (精简指令集)处理器。
公司的特点是只 设计芯片,而不生产。它将技术 授权给世界上许多著名的半导体、 软件和OEM厂商,并提供服务。
07:21 6
2.1 ARM微处理器结构
2.1.1 简介 2.1.2 ARM7TDMI特点 2.1.3 ARM7TDMI的模 块和内部框图
07:21
10
2.1.2 ARM7TDMI
ARM7TDMI
ARM7TDMI基于ARM体系结构V4版本,是目 前较低端的ARM核。但仍具有广泛的应用,其最 显著的应用为数字移动电话。
56第2章 ARM7体系结构PPT课件
2.0 补充知识
1、关注的内容是什么?
主要关 注内核
Hale Waihona Puke 172.0 补充知识2、体系结构版本与ARM处理器系列
(1)体系结构版本 ARM体系结构从最初开发到现在有了很 大的改进,并仍在完善和发展。 为了清楚的表达每个ARM应用实例所使 用的指令集,ARM公司定义了7种主要的 ARM指令集体系结构版本,以版本号V1~V7 表示。
5
ARM7体系结构
➢ 1.ARM简介
➢ 6.ARM内部寄存器
➢ 2.ARM7TDMI
➢ 7.当前程序状态寄存 器
➢
3.ARM的模块、内 ➢
8.ARM体系的异常、
核和功能框图
中断及其向量表
➢ 4.ARM处理器状态 ➢ 9.ARM体系的存储系 ➢ 5.ARM处理器模式 统
6
ARM7体系结构
ARM是什么? ➢ ARM是一个公司的名字 ➢ ARM是对一类微处理器的通称 ➢ ARM是一种技术的名字
24
2.0 补充知识
各ARM体系结构版本——Cortex(V7)
▪高效率的处理器设计方案; ▪在更低的时钟频率上获得更到的性能 ▪内存经过最佳优化设计 ▪进一步降低嵌入式系统的体积和成本 ▪协助新一代嵌入式产品快速执行各种复杂的控 制算法与实时工作的运算。
25
8
2.1 ARM简介
ARM公司简介
将技术授权给 其它芯片厂商
形成各具特色 的ARM芯片
...
9
2.1 ARM简介
RISC结构特性
RISC是精简指令集计算机的缩写,其目标是设计出
在高时钟频率下单周期执行,简单而有效的指令集。 ARM内核采用RISC体系结构,因此具有RISC的结构特 点:
chapter_2_ARM7体系结构
使用地址自增和自减支的持寻Em址bed方edI式CE观优察化硬件程;序循环; 支持64位乘法;
装载/保存指令对数据支的持片批上量调试传;输,实现最大数据吞
吐量;
支持高密度16位的Thumb指令集;
大多数指令的条件执行,实现最快速的代码执行。
30.11.2020
h
page 9
3. ARM7处理器的三级流水线
30.11.2020
h
page 11
程序清单 2-1
1. 0x4000 ADD PC , PC , #4 ; 正在被执行的指令
2.
+4
;PC ← PC当前值
3. 0x4004 cmd2
; 正在被译码的指令;
4. 0x4008 cmd3
; 正在被取指的指令
5.
;PC = 0x4008
6. 0x400C cmd4
第2章 ARM7体系结构
30.11.2020
h
page 1
第2章 目录
1. ARM7体系结构 2. ARM7的状态与模式 3. ARM7的寄存器 4. ARM7当前程序状态寄存器(CPSR) 5. ARM7的异常与异常处理 6. ARM7的存储系统
30.11.2020
h
page 2
第2章 目录
1. ARM7体系结构 2. ARM7的状态与模式 3. ARM7的寄存器 4. ARM7当前程序状态
30.11.2020
h
page 14
ARM处理器模式
ARM体系结构支持7种处理器模式,分别为: 用户模式、快中断模式、中断模式、管理模式、 中止模式、未定义模式和系统模式。这样的好处 是可以更好的支持操作系统并提高工作效率。
第2章-ARM体系结构
39
第2章 ARM体系结构
NAND技术
• NAND技术 Flash Memory具有以下特点: – 以页为单位进行读和编程操作,1页为256或512字 节;以块为单位进行擦除操作,1块为4K、8K或 16K字节。具有快编程和快擦除的功能,其块擦除 时间是2ms;而NOR技术的块擦除时间达到几百ms
这样,5级流水线分为:取指、 指令译码、执行、数据缓存和 写回。
第2章 ARM体系结构
34
第2章 ARM体系结构
2.1.2 ARM处理器结构
1 ARM的体系结构 2 冯诺依曼结构 与哈佛结构 3 ARM的流水线结构 4 ARM存储器结构
5 ARM I/O结构 6 ARM协处理器接口 7 ARM AMBA接口 8 ARM JTAG 调试接口
闪速存储器(FLASH)
• 相对传统的EPROM芯片,这种芯片可以 用电气的方法快速地擦写
• 由于快擦写存储器不需要存储电容器, 故其集成度更高,制造成本低于DRAM
• 它使用方便,既具有SRAM读写的灵活 性和较快的访问速度,又具有ROM在断 电后可不丢失信息的特点,所以快擦写 存储器技术发展十分迅速
30
第2章 ARM体系结构
ARM9 架构采用5级流水线:
增加了I-Cache和D-Cache,把存储器的取指与数 据存取分开;
➢ 增加了数据写回的专门通路和寄存器; ➢ 把指令的执行过程分割为5阶段:
取指令; 指令译码、寄存器读、分支目标计算及执行; 移位和ALU操作; 数据Cache访问; 结果写回到寄存器。
第二章ARM处理器基础ARM7
半字:从地址0x0000处取一个半字数据,则取出来的内容为3412;从 地址0x0001处取一个半字数据,则取出来的内容为5634; 字:从地址0x0000处取一个字数据,则取出来的内容为78563412;从 地址0x0001处取一个字数据,则取出来的内容为9A785634。
注意:ARM7处理器在对数据操作时要边界对齐,要找到正确的地址。
各条件码标志位的具体含义
标志位 N Z 含义 运算结果的符号位。对于有符号二进制补码,结果为负时,N=1;结果为正或零时, N=0。 Z=1表示运算的结果为零(通常表示比较结果“相等”);Z=0表示运算的结果不为 零。 分4种情况设置C的值 - 加法运算 当运算结果产生进位时,C=1;否则C=0 - 减法运算 当运算产生借位时,C=0;否则C=1 - 包含移位操作的非加/减运算指令 C为移出值的最后一位 - 其他的非加/减运算指令 C的值通常不变 分2种情况设置V的值 - 加/减法运算指令 当发生有符号溢出时,V=1;否则,V=0 - 其他的非加/减运算指令 V的值通常不变
3、和51系列相似的中断向量结构; 4、支持协处理器。
ARM7微处理器核功能 框图
A[31:0]:地址总线。 D[31:0]:数据总线。 ABORT:存储器中止逻辑。 BIGEND:数据格式大端、小 端控制逻辑。 MAS[1:0]:决定数据字长的 控制逻辑。 nFIQ:快速中断请求逻辑。 nIRQ:通用中断请求逻辑。 DM[4:0]:处理器工作模式控 制逻辑。
AHB外设 VPB外设
0xFFFF FFFF 0xF000 0000 0xE000 0000
保留给外部存储器 0x8000 0000
2.0GB
Boot Block (从片内Flash存储器重新映射) 保留给片内存储器
嵌入式系统及应用第2章 ARM7及其体系结构2
2.9 异常
• 进入异常
在异常发生后,ARM7TDMI内核会作以下工作: 2.将CPSR复制到适当的SPSR中; 3. 将CPSR模式位强制设置为与异常类型相对应的值; 4.强制PC从相关的异常向量处取指。
2.9 异常
• 进入异常
ARM7TDMI内核在中断异常时置位中断禁止标 志,这样可以防止不受控制的异常嵌套。 注:异常总是在ARM状态中进行处理。当处理器处 于Thumb状态时发生了异常,在异常向量地址装入 PC时,会自动切换到ARM状态。
中断处理代码的开始部分和退出部分
SUB LR,LR,#4
;计算返回地址
STMFD SP!,{R0-R3,LR} ;保存使用到的寄存器
...
LDMFD SP!,{R0-R3,PC}^ ;中断返回
2.9 异常
• 异常的入口和出口处理
如果异常处理程序已经把返回地址拷贝到堆栈, 那么可以使用一条多寄存器传送指令来恢复用户寄 存器并实现返回。
2.9 异常
• 进入异常
在异常发生后,ARM7TDMI内核会作以下工作:
1.在适当的LR中保存下一条指令的地址,当异常入 口来自:
ARM状态,那么ARM7TDMI将当前指令地址 加4或加8复制(取决于异常的类型)到LR中; 为 Thumb 状 态 , 那 么 ARM7TDMI 将 当 前 指 令 地址加4或加8 (取决于异常的类型)复制到LR 中;异常处理器程序不必确定状态。
2.9 异常
• 简介
只要正常的程序流被暂时中止,处理器就进入 异常模式。例如响应一个来自外设的中断。在处理 异常之前,ARM7TDMI内核保存当前的处理器状 态,这样当处理程序结束时可以恢复执行原来的程 序。
如果同时发生两个或更多异常,那么将按照固 定的顺序来处理异常,详见“异常优先级”部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PC
PC-4
PC-8
取指
译码
执行
处理指令并将结果写回寄存器 识别将要被执行的指令 从寄存器装载一条指令
从ARM状态切换到Thumb状态的程序代 ARM状态切换到 状态切换到Thumb状态的程序代 码如下: 码如下:
跳转地址标号 CODE32
ARM指令集
LDR BX CODE16 Lable MOV
正常操作过程中,在执行一条指令的同时对下一条 正常操作过程中, (第二条)指令进行译码,并将第三条指令从存储器中取 第二条)指令进行译码, 出。
2.2 ARM7TDMI
三级流水线
在ARM状态下,流水线上各指令的地址为 ARM状态下 状态下, 水线分3 分别为: 水线分3级,分别为: ARM7TDMI的流 ARM7TDMI的流
存储器的字与半字
从偶数地址开始的连续2个字节构成一个半字 从偶数地址开始的连续2个字节构成一个半字; 半字; 以能被4整除的地址开始的连续4个字节构成一个字 以能被4整除的地址开始的连续4个字节构成一个字; ARM指令的长度刚好是一个字,Thumb指令的长度 ARM指令的长度刚好是一个字,Thumb指令的长度 指令的长度刚好是一个字 刚好是一个半字。 刚好是一个半字。
简介 ARM7TDMI是基于 ARM7TDMI是基于ARM体系结构V4 是基于ARM体系结构 体系结构V4 版本的低端ARM核 其弥补了ARM6很难 版本的低端ARM核。 其弥补了ARM6很难 在低于5V电压下稳定工作的不足, 5V电压下稳定工作的不足 在低于5V电压下稳定工作的不足,还增加 了后缀所对应的功能: 了后缀所对应的功能: 注意: ARM核 并非芯片,ARM核与 注意:“ARM核”并非芯片,ARM核与 其它部件如RAM、ROM、 其它部件如RAM、ROM、片内外设组合在 一起才能构成现实的芯片。 一起才能构成现实的芯片。
……
A+3 A+2 A+1 A
0x78 0x56 0x34 0x12
……
存储器
大端存储模 式下, 式下, 0x12345678在 0x12345678在 A地址开始的 一个字空间的 存储; 存储;
2
2.9 ARM体系的存储系统 体系的存储系统
非对齐的存储器访问
ARM结构通常希望所有的存储器访问都合理的对齐 ARM结构通常希望所有的存储器访问都合理的对齐, 结构通常希望所有的存储器访问都合理的对齐, 具体来说就是字访问的地址通常是字对齐的, 具体来说就是字访问的地址通常是字对齐的,而半字访 问使用的地址是半字对齐的。 问使用的地址是半字对齐的。不按这种方式对齐的存储 器访问称为非对齐的存储器访问 非对齐的存储器访问。 器访问称为非对齐的存储器访问。 将一个非字(半字)对齐的地址写入R15寄存器 寄存器, 将一个非字(半字)对齐的地址写入R15寄存器, 将引起非对齐的指令取指 非对齐的指令取指; 将引起非对齐的指令取指; 在一个非字(半字)对齐的地址读写一个字 半字) 将引起非对齐的数据访问 非对齐的数据访问。 (半字),将引起非对齐的数据访问。
处理器模式
何时进入异常模式,具体规定如下: •处理器复位之后进入管理模式,操作系统内核通常处于 管理模式; •当处理器访问存储器失败时,进入数据访问中止模式; •当处理器遇到没有定义或不支持的指令时,进入未定义 模式; •中断模式与快速中断模式分别对ARM处理器2种不同级 别的中断作出响应。
2.9 ARM体系的存储系统 体系的存储系统
ARM7的规范定义 了局部总线的信号 和时序。
ARM7 处理器核 存储器 管理器
各芯片生产厂商制 定了自己的外部总 线的信号和时序。
存储器
2.9 ARM体系的存储系统
地址空间
ARM结构使用单个平面的 ARM 结构使用单个平面的 232 个 8 位字节 地址空间 。 结构使用单个平面的2 位字节地址空间 地址空间。 32位字 位字, 16位半 地址空间可以看作是包含2 地址空间可以看作是包含230个32位字,或231个16位半 如果地址向上或向下溢出地址空间, 字 。 如果地址向上或向下溢出地址空间 , 通常会发生 翻转。 翻转。 注意:如果在取指操作时地址发生溢出, 注意 : 如果在取指操作时地址发生溢出 , 只要没 有执行预取的无效指令,就不会导致异常。 有执行预取的无效指令,就不会导致异常。
权模式下访问。此外,特权模式可以自由的切换处理器模式, 权模式下访问。此外,特权模式可以自由的切换处理器模式, 而用户模式不能直接切换到别的模式。 而用户模式不能直接切换到别的模式。 这两种模式都不能由异常进入,想要进入必须修改CPSR, 这两种模式都不能由异常进入,想要进入必须修改CPSR, 而且它们使用完全相同的寄存器组。系统模式是特权模式 是特权模式, 而且它们使用完全相同的寄存器组。系统模式是特权模式,不 受用户模式的限制。 受用户模式的限制。操作系统在该模式下访问用户模式的寄存 器就比较方便, 器就比较方便,而且操作系统的一些特权任务可以使用这个模 式访问一些受控的资源。 式访问一些受控的资源。
2.9 ARM体系的存储系统 体系的存储系统
存储器格式
……
A+3
小端存储模 式下, 式下, 0x12345678 在A地址开ቤተ መጻሕፍቲ ባይዱ 的一个字空间 的存储; 的存储;
1
0x12 0x34 0x56 0x78
A+2 A+1 A
……
存储器
存储器系统有两种映射机制:小端存储器系统:在小端格式中,数据的高字节存放在高地址中。 存储器系统有两种映射机制:小端存储器系统:在小端格式中,数据的高字节存放在高地址中。 大端存储器系统: 在大端格式中,数据的高字节存放在低地址中。 大端存储器系统: 在大端格式中,数据的高字节存放在低地址中。
方式 半字对齐 …… 0x4002 0x4004 …… Bit0=0 其他位为任意值 字对齐 …… 0x4004 0x4008 …… Bit1=0,Bit0=0 其他位为任意值
地址
特征
ARM处理器使用流水线来增加处理器指 ARM处理器使用流水线来增加处理器指 令流的速度,这样可使几个操作同时进行, 令流的速度,这样可使几个操作同时进行, 并使处理和存储器系统连续操作, 并使处理和存储器系统连续操作,能提供 0.9MIPS/MHz的指令执行速度 0.9MIPS/MHz的指令执行速度。 的指令执行速度。
2.1 ARM简介 简介
ARM7系列简介 ARM7系列简介
该系列包括ARM7TDMI、ARM7TDMI该系列包括ARM7TDMI、ARM7TDMI-S、带有高速 缓存处理器宏单元的ARM720T和扩充了Jazelle的 ARM720T和扩充了Jazelle 缓存处理器宏单元的ARM720T和扩充了Jazelle的 ARM7EJARM7EJ-S。该系列处理器提供Thumb 16位压缩指令 该系列处理器提供Thumb 16位压缩指令 集和EmbededICE软件调试方式 软件调试方式, 集和EmbededICE软件调试方式,适用于更大规模的 SoC设计中 SoC设计中。 设计中。 ARM7系列广泛应用于多媒体和嵌入式设备, ARM7系列广泛应用于多媒体和嵌入式设备,包括 系列广泛应用于多媒体和嵌入式设备 Internet设备 网络和调制解调器设备,以及移动电话、 Internet设备、网络和调制解调器设备,以及移动电话、 设备、 PDA等无线设备 PDA等无线设备。 等无线设备。
ARM处理器采用冯 诺依曼( ARM 处理器采用冯 · 诺依曼 ( Von Neumann) 结构 , 指令 、 数据和 处理器采用冯· Neumann ) 结构, 指令、 I/O统一编址(即存在同一个空间)。只有装载、保存和交换指令可访问 I/O统一编址 即存在同一个空间) 只有装载、 统一编址( 存储器中的数据。 存储器中的数据。 ARM芯片一般在处理器核和外部存储器之间有一个存储器管理部 ARM 芯片一般在处理器核和外部存储器之间有一个存储器管理部 件将局部总线的信号和时序转换为现实的外部总线信号和时序。 件将局部总线的信号和时序转换为现实的外部总线信号和时序。
2.2 ARM7TDMI
ARM7TDMI-S
ARM7TDMI 的可综合(synthesizable) 版本(软核),对应用工程师来说其编 程模型与ARM7TDMI 一致; 支持EmbededICE观察硬件; 支持64位乘法; 支持片上调试; 支持高密度16位的Thumb指令集;
2.2 ARM7TDMI
CODE16
ARM指令集
LDR BX CODE32 Lable MOV
R0, =Lable R0
地址最低位为 0,表示切换 到ARM状态 执行完BX指令,处 理器切换到ARM状 态,开始执行ARM 指令
Thumb 指令集
R1, #10
指令集关系
程序代码
这五种模式称为异常模式。它们除了可以通过程序切换进入外, 这五种模式称为异常模式。它们除了可以通过程序切换进入外, 也可以由特定的异常进入。当特定的异常出现时, 也可以由特定的异常进入。当特定的异常出现时,处理器进入相 应的模式。每种异常模式都有一些独立的寄存器, 应的模式。每种异常模式都有一些独立的寄存器,以避免异常退 出时用户模式的状态不可靠。 出时用户模式的状态不可靠。 除用户模式外,其它模式均为特权模式 ARM内部寄存器 特权模式。 除用户模式外,其它模式均为特权模式。ARM内部寄存器 和一些片内外设在硬件设计上只允许(或者可选为只允许) 和一些片内外设在硬件设计上只允许(或者可选为只允许)特
R0, =Lable+1 R0
地址最低位为1, 表示切换到 Thumb状态 执行完BX指令,处 理器切换到ARM状 态,开始执行ARM 指令
Thumb 指令集
R1, #12
指令集关系
程序代码
2.4 ARM处理器状态 处理器状态
状态切换的一个例子