嵌入式系统-原理与应用技术(第二版)期末复习-第二章

ARM9体系结构

1.ARM命名

ARM系列微处理器扩展命名符号的含义
在这里插入图片描述

2. ARM9处理能力的提高

ARM9处理能力的提高是通过增加时钟频率减少指令执行周期实现的。

1.时钟频率的提高

ARM9采用了五级流水线,而ARM7采用的是三级流水线,ARM9增加的流水线设计提高了时钟频率和并行处理能力。五级流水线能够将各条指令处理分配到5个时钟周期内,在每个时钟周期内同时有5条指令在执行。在同样的加工工艺下,ARM9 TDMI处理器的时钟频率是ARM7 TDMI的2倍左右。

2.指令周期的改进

指令周期的改进有助于处理器性能的提高。性能提高的幅度依赖于代码执行时指令的重叠。
① load指令和store指令
指令周期数改进最明显的是load指令和store指令。
② 互锁(interlock)技术
当指令需要的数据因为以前的指令没有执行完,将产生管道互锁。管道发生互锁时,硬件将停止该指令的执行,直到数据准备就绪为止。
③ 分支指令
ARM9和ARM7的分支指令周期相同。

3.五级流水线

在这里插入图片描述
ARM9中1条指令的执行可以分为如下几个阶段:
(1)取指:从存储器中取出指令(fetch),并将其放入指令流水线。
(2)译码:对指令进行译码(dec)。
(3)执行:执行运算ALU(exe)
(4)访存(缓冲/数据):如果需要,则访问数据存储器(acc mem);否则ALU的结果只是简单地缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。
(5)回写:将指令产生的结果回写到寄存器(wtbk res),包括任何从存储器中读取的数据

4.总线接口

ARM嵌入式微处理器使用的是AMBA(Advanced Microcontroller Bus Architecture)总线体系结构。AMBA是ARM公司颁布的总线标准,通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成在一块芯片中。该标准定义了如下三种总线:
●AHB(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式;另外,它还支持分离式总线事务处理。
● ASB总线(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式。
● APB总线(Advanced Peripheral Bus):是一个简单接口,支持低性能的外围接口。

5.结构特点

以ARM9系列的ARM9 TDMIARM9 E-S为例说明ARM9的结构。
ARM9 TDMI处理器内核的符号含义:
●ARM9:采用哈佛结构,ARMv4T指令集,五级流水线处理以及分离的Cache;
● T:支持16位宽度的Thumb压缩指令集;
● D:支持片上Debug,允许处理器响应调试请求暂停;
● M:支持增强型乘法器,可生成全64位的结果;
● I:嵌入式ICE部件,提供片上断点和调试点的支持。

常用的一种ARM920T处理器核是在ARM9TDMI处理器内核基础上,

  • 增加了分离式的指令Cache和数据Cache,
  • 并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器及AMBA接口等。
  • 指令缓存和数据缓存允许处理器同时进行取指和读写数据操作。
  • 数据可以是8位(字节)、16位(半字)、32位(字),字必须以4字节边界对准,半字必须以2字节边界对准。

ARM9 E-S其主要特点如下:
●32位定点RISC处理器,改进型ARM/Thumb代码,增强型乘法器设计,支持实时调试;
●片内指令和数据SRAM,而且指令和数据的存储器容量可调;
●片内指令和数据高速缓冲器(cache)容量从4K字节到1M字节;
●设置保护单元(protection unit),非常适合嵌入式应用中对存储器进行分段和保护;
●采用AMBA AHB总线接口,为外设提供统一的地址和数据总线;
●支持外部协处理器,指令和数据总线有简单的握手信令支持;
●支持标准基本逻辑单元扫描测试方法,并且支持内建自测试技术(BIST: Built-In-Self-Test);
●支持嵌入式跟踪宏单元(ETM,Embedded Trace Macrocell),支持实时跟踪指令和数据。

6.指令集特点

ARM9的指令集是依据RISC原理而设计的,指令集和相关译码机制较为简单。传统的微处理器体系结构中,指令代码的宽度(位数)和数据的宽度(位数)通常是相同的,而ARM9的指令系统中有一种16位的指令集(Thumb指令集)。通常情况下,16位体系结构与32位体系结构比较而言,在操作32位数据时的性能大约只有32位体系结构的一半,且有效的寻址空间相对较小。而Thumb指令集在32位体系结构中实现了16位指令集,以提供比32位体系结构更高的性能和更高的代码密度。

7.Thumb指令集概况

ARM指令集为32位指令集,可以实现ARM架构下所有功能。Thumb指令集是对32位ARM指令集的扩充,它的目标是为了实现更高的代码密度。Thumb指令集实现的功能只是32位ARM指令集的子集,它仅仅把常用的ARM指令压缩成16位的指令编码方式。在指令的执行阶段,16位的指令被重新解码,完成对等的32位指令所实现的功能。

Thumb指令的操作是在标准的ARM寄存器下进行的,在ARM指令代码和Thumb指令代码之间可以方便地进行切换,并具有很好的互操作性。在执行时,16位的Thumb指令透明地实时解压缩成32位的ARM指令,并没有明显的性能损失。因此,使用Thumb指令以16位的代码密度可以得到32位处理器性能,从而节省了存储空间和硬件成本。

Thumb指令集的16位指令代码长度大约是标准ARM指令代码密度的两倍,因而可以在16位存储系统上运行。

8.ARM指令集与Thumb指令集比较

与ARM指令集相比较,在Thumb指令集中,数据处理指令的操作数仍然是32位的,指令地址也为32位,但Thumb指令集为实现16位的指令长度,舍弃了ARM指令集的一些特性,如大多数Thumb指令是无条件执行的,而几乎所有的ARM指令都是有条件执行的。大多数的Thumb数据处理指令的目的寄存器与其中一个源寄存器相同

与全部采用ARM指令集的方式相比,使用Thumb指令可以在代码密度方面改善大约30%,但这种改进是以代码的效率为代价的。尽管每个Thumb指令都有相对应的ARM指令,但是,执行相同的功能,需要更多的Thumb指令才能完成。因此,当指令预取需要的时间没有区别时,ARM指令相对Thumb指令具有更好的性能。开发者在进行系统设计的时候需要综合考虑成本、性能和功耗等因素。如果在一个系统中综合使用ARM指令和Thumb指令,充分发挥各自的优点,就能在成本、性能和功耗等因素上取得较好的平衡。

9. ARM9工作模式

ARM9 TDMI处理器核共支持7种工作模式,它们分别是:
●用户模式(usr):ARM处理器正常执行程序时的处理。
●快速中断模式(fiq):用于高速数据传输或通道处理。
●外部中断模式(irq):用于通用的中断处理。
●管理模式(svc):操作系统使用的保护模式。
●指令/数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
●系统模式(sys):运行具有特权的操作系统任务时的模式。
●未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

ARM9 TDMI处理器核的运行(工作)模式可以通过软件的控制改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

当某种异常发生时,ARM9 TDMI处理器核即进入相应的工作模式。例如,若发生了IRQ中断并响应IRQ中断,则ARM9 TDMI核将进入IRQ模式。每种工作模式下均有其附加的某些寄存器,因此,即使有异常情况发生,异常模式下的处理程序也不至于破坏用户模式的数据及状态。

从ARM9 处理器核所执行的程序代码的角度来看,有两种工作状态:ARM状态和Thumb状态。在ARM状态下,处理器核执行32位的、字对齐的ARM指令;在Thumb状态下,处理器核执行16位的、半字对齐的Thumb指令。在程序的执行过程中,ARM9处理器核可以随时在两种工作状态之间切换,并且处理器工作状态的改变不影响处理器的工作模式和相应寄存器中的内容。

ARM指令集和Thumb指令集中均有切换ARM处理器工作状态的指令,使ARM处理器可在两种工作状态之间切换。但是,ARM处理器核在上电或复位并开始执行程序代码时,应该处于ARM状态。

当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使ARM处理器从ARM状态切换到Thumb状态;当操作数寄存器的状态位(位0)为0时,执行BX指令可以使ARM处理器从Thumb状态切换到ARM状态。另外,在处理器进行异常处理时,将PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【目  录】: 第1篇系统篇 第1章嵌入系统概述3 1.1嵌入系统的定义和特点3 1.1.1嵌入系统的定义3 1.1.2嵌入系统和通用计算机比较4 1.1.3嵌入系统的特点5 1.2嵌入系统的硬件6 1.2.1嵌入处理器7 1.2.2嵌入存储器15 1.2.3嵌入I/O设备18 1.2.4嵌入I/O接口18 1.3嵌入系统的软件21 1.3.1无操作系统嵌入软件22 1.3.2带操作系统嵌入软件24 1.4嵌入系统的分类27 1.4.1按硬件(嵌入处理器)划分27 1.4.2按软件复杂度划分27 1.4.3按实时性划分28 1.4.4按使用对象划分28 1.5嵌入系统应用28 1.5.1国防军事28 1.5.2工业控制29 1.5.3消费电子30 1.5.4办公自动化产品30 1.5.5网络和通信设备30 1.5.6汽车电子31◆嵌入系统原理应用目录1.5.7金融商业31 1.5.8生物医学32 1.5.9信息家电32 1.6本章小结34 习题134 第2章嵌入系统开发35 2.1嵌入系统的开发环境、开发工具和调试方35 2.1.1嵌入系统的开发环境35 2.1.2嵌入系统的开发工具37 2.1.3嵌入系统的调试方43 2.2嵌入系统的开发语言50 2.2.1嵌入硬件开发语言50 2.2.2嵌入软件开发语言51 2.3嵌入系统的开发过程53 2.3.1需求分析54 2.3.2系统设计55 2.3.3系统实现61 2.3.4系统测试70 2.3.5系统发布73 2.4嵌入开发工程师之路74 2.4.1嵌入行业和人才的现状分析74 2.4.2嵌入开发工程师的能力要求74 2.4.3嵌入开发工程师的进阶之路75 2.5本章小结77 习题278 第2篇内核篇 第3章ARM CortexM3处理器81 3.1ARM CortexM3组成结构81 3.1.1CortexM3内核82 3.1.2调试系统84 3.2ARM CortexM3总线接口86 3.2.1CortexM3总线接口类型87 3.2.2CortexM3总线连接方案88 3.3ARM CortexM3编程模型89 3.3.1工作状态89 3.3.2数据类型89 3.3.3寄存器89 3.3.4指令系统93 3.3.5操作模和特权分级96 3.3.6异常和中断98 3.3.7双堆栈机制105 3.4ARM CortexM3存储器系统107 3.4.1存储器映射107 3.4.2位带操作110 3.4.3存储格112 3.5ARM CortexM3的低功耗模113 3.6本章小结114 习题3115 第4章基于ARM CortexM3的STM32微控制器117 4.1从CortexM3到基于CortexM3的MCU117 4.2基于CortexM3的STM32系列微控制器概述118 4.2.1产品线118 4.2.2命名规则124 4.2.3生态系统125 4.2.4开发方法131 4.2.5学习之路134 4.3STM32F103微控制器基础136 4.3.1概述136 4.3.2主系统结构137 4.3.3功能模块139 4.3.4引脚定义140 4.3.5存储器组织141 4.4STM32F103微控制器的最小系统145 4.4.1电源电路145 4.4.2时钟电路148 4.4.3复位电路149 4.4.4调试和下载电路150 4.4.5其他151 4.5STM32F103微控制器的时钟系统153 4.5.1输入时钟153 4.5.2系统时钟155 4.5.3由系统时钟分频得到的其他时钟155 4.5.4STM32F10x时钟系统相关库函数157 4.6STM32F103微控制器的低功耗模162

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rose J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值