ARM体系结构复习.docx
- 文档编号:5771917
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:18
- 大小:2.60MB
ARM体系结构复习.docx
《ARM体系结构复习.docx》由会员分享,可在线阅读,更多相关《ARM体系结构复习.docx(18页珍藏版)》请在冰豆网上搜索。
ARM体系结构复习
ARM体系结构复习
第一章
冯洛伊曼计算机结构特点:
计算机由运算器,存储器,控制器,输入设备和输出设备五部分组成。
指令与数据以同等地位存放在存储器中,并可按地址对它们进行访问。
指令在存储器中顺序存放。
机器以运算器为中心,数据的传输必须通过运算器。
实现RISC(精简指令系统计算机)的方法
1、减少指令种类:
RISC的指令系统只提供能完成简单操作的指令,复杂的操作由编译器或者程序员通过多条指令的组合来完成。
2、Load/Store结构:
存储器中的数据可以用Load/Store指令不经处理器直接读入寄存器,之后处
模拟量:
用电压的高低或电流的大小来表示物理量大小的信号
1、开关量:
可以表示为0、1两种状态的信号
2、脉冲量:
以脉冲形式来表示的信号
外部设备的特点:
信号种类繁多、没有地址、工作速度与处理器的工作速度不匹配
端口:
接口中每一个具有地址的寄存器叫做端口
I/O端口的编址方式
1、存储器映像方式:
把IO端口与存储器的存储单元同等看待并一起编址的方式
2、隔离IO方式:
即存储器和IO端口两者的地址空间互相隔离,各自进行编址。
外部设备和处理器的联络方式
1、查询方式:
当处理器需要与外设交换信息时,处理器主动读取对应设备接口的状态信息,如果设备准备就绪,就进行数据通信,否则,就重复读取设备接口的状态信息,直到设备状态信息为就绪状态为止。
2、中断方式:
此方式是外部设备进行主动联络的方式,使用此方式的前提是处理器必须具有一个中断请求信号输入端。
当外部设备准备就绪时,使用状态信号端通过处理器的中断请求输入端向处理器发出一个通知信号,告知处理器本外设已经具备通信的条件了,而处理器可在条件允许时中断现行程序的执行,而转向执行另一个与外设进行数据交换的程序。
优点是避免了高速的处理器因等待低速的外设而造成的时间浪费,从而大大提高了处理器的工作效率,因此它是目前处理器与外设进行信息沟通的最普遍方式。
3、DMA方式:
直接存储器数据传输控制器,它的工作原理是当io设备需要与主存进行数据传输时,由io设备向DMA控制器发出数据传输请求信号,而DMA控制逻辑向处理器发出总线请求信号HRQ;处理器让出总线控制权的同时,处理器发出应答信号HLDA,通过控制逻辑再以DACK信号发到IO设备,至此主机与IO设备的联络成功。
接着,就按预先设置于地址指针控制机构中的存储缓冲区起始地址开始在IO设备与主存之间传输数据,数据传输完毕后,则由中断机构向处理器发出一个中断请求信号,以告知处理器。
异步和同步串行通信
串行通信根据时钟的控制方式可分为同步通信方式和异步通信方式。
如果发送设备和接收设备各自使用自己的时钟来控制通信,那么这种通信方式叫做异步串行通信方式,这种通信方式允许双方的时钟在准确度和稳定度上有一定的差异,如果发送和接收双方使用同一个时钟来控制通信,那么这种通信方式就叫做同步串行通信方式,同步通信要求双方的时钟必须严格一致。
波特率:
是衡量数据传输速率的指标。
表示每秒钟传输的二进制位数。
堆栈的组织方式:
满递增堆栈:
堆栈指针指向最后压入的数据且由低地址向高地址生成。
满递减堆栈:
堆栈指针指向最后压入的数据且由高地址向低地址生成。
空递增堆栈:
指向下一个将要放入数据的空位置,且由低地址向高地址生成。
空递减堆栈:
指向下一个将要放入数据的空位置,且由高地址向低地址生成。
ARM核具有两种指令集:
32位ARM和16位Thumb
ARM指令分为数据处理指令、程序跳转指令、程序状态寄存器操作指令、load/store指令、协处理器指令和异常指令。
AMR指令集和Thumb指令集的区别:
Thumb指令集中的指令不能使用“S”后缀来影响程序状态寄存器PSR中的标志。
Thumb指令集只有一条分支指令可以使条件指令,而其余的Thumb指令都是无条件指令。
大多数指令为2操作数指令,只有极少数的指令为3操作数指令
由于指令字长比较短,所以立即数的取值范围要小得多
具有逻辑移位操作指令,堆栈操作更加灵活
例:
有两个128位数,第一个数由高到低存放在寄存器R7-R4中,第二个数由高到低存放在寄存器R11-R8中,编写程序把两个数相加后,运算结果由高到低存放到寄存器R3-R0中。
ADDSR0,R4,R8;加低位的字,不带进位
ADCSR1,R5,R9;加第二个字,带进位
ADCSR2,R6,R10;加第三个字,带进位
ADCSR3,R7,R11;加第四个字,带进位
注:
ADC是带进位加法指令
RSB逆向减法指令、RSC带进位逆向减法指令、MUL32位积的32位乘法运算指令、MLA带加法运算的32位积的32位乘法指令、SMULL64位积的32乘法运算指令、SMLAL带加法运算的64位积32位乘法运算指令、LDR字节加载指令、STR字节存储指令。
例:
现已知寄存器R0中存放了数据a,寄存器R1中存放了数据b,编写程序求a和b的最大公约数并将其存入寄存器RO
gcbCMPR0,R1;比较a和b的大小
SUBGTR0,R0,R1;如果a大于b,a=a-b
SUBLTR1,R1,R0;如果a小于b,b=b-a
BNEgcb;如果a!
=b,返回gcb
MOVPC,LR;如果a=b,返回主程序
例:
已知R0=0x00000000和R1=0x00009000,并已知在存储器中首地址为0x00009000的区域中存放了数据0x01010101,在首地址为0x00009004的区域存放了数据0x02020202。
写出执行命令LDRR0,【R1,#4】后R0和R1的数据
R0=0x02020202,R1=0x00009000
例:
执行命令LDRR0,【R1,#4】!
后R0和R1中的数据
R0=0x02020202,R1=0x00009004
例:
执行命令LDRR0,【R1】,#4后R0和R1中的数据
R0=0x01010101,R1=0x00009004
LDMIAR0!
,{R1-R3}是指将R0所指的单元格中的数据读出到R1中,RO自增1后再重复上述步骤。
I表示增加,D表示减少,A表示取数后自增,B表示取数前自增。
非屏蔽中断信号输入端:
带有开关能阻止中断请求的中断输入端
中断管理原理:
在中断源和处理器之间有一个中断控制器,用来对每个中断源设置相应的开关来决定一个中断源是否能发出中断请求。
其中,中断控制开关受中断屏蔽寄存器的装置来控制,寄存器的每一位都控制一个开关。
人们把这个中断屏蔽寄存器作为中断控制器的一个端口,从而使程序可以通过这个端口设置数据来对这些开关接通与断开进行控制。
中断的实现方法:
硬件实现方法:
为计算机系统配备一套能按优先等级对中断源进行排队的硬件电路,以保证级别高的中断能先于级别低的中断被处理器所响应。
软件实现方法:
把所有中断源的中断请求信号分成两路,其中一路经或逻辑送到处理器的中断请求输入端,而另一路则送入中断接口电路经数据总线送入处理器。
当处理器发现有中断请求而响应中断并执行中断服务程序时,在中断服务程序中按中断优先级顺序对各个中断源进行查询,一发现中断源有中断请求,就转向该中断服务程序。
中断嵌套:
当处理器在处理一个低级中断时,接受到一个高级中断请求,此时,计算机系统将低级的中断服务被高级中断服务所中断,这种现象叫做中断嵌套。
调用中断服务子程序的方法:
调用方法和转移方法
处理器响应中断的条件:
处理器程序状态寄存器的中断屏蔽标志处于非屏蔽状态
没有更高级别的中断请求正在响应或正发出、正挂起
处理器在现行指令执行结束后
中断的处理过程:
计算机系统就会响应中断请求,并自动将被中断程序的下一条指令地址保存到堆栈和关闭中断;接着将自中断向量表查得的与该中断源对应的中断向量送入PC,并转去执行中断服务程序。
复位中断出现在系统上电或程序引起的复位,它的优先级别最高
软中断异常用于实现处理器工作模式的切换
未定义指令异常用于模拟某种硬件功能或自定义一些指令来完成一些特殊功能。
中断响应的四项准备工作:
把程序计数器PC中的当前地址值保存到连接寄存器LR中
把当前程序状态寄存器中的内容保护到模式私有寄存器中
将寄存器CPSR中的MODE域设置为中断应进入的运行模式
对cpsr的I位和F位进行相应的设置
响应复位中断时处理器中断系统的工作过程、响应未定义指令异常时处理器中断系统
LPC2000结构框图
LPC2000的可用地址空间为4GB,它被分成内部存储空间、外部可扩展存储空间和IO设备空间三部分。
其中,片内存储空间占用2GB,片外存储空间占用1.5GB,IO设备占用了处在高端地址的0.5GB空间。
EMC(外部存储器控制模块)与外部存储器组连接示意图
DB为数据总线(32位);AB为地址总线(24位);CS0、CS1、CS2和CS3用来选通Bank0、Bank1、Bank2、Bank3四个片选信号;BLS0、BLS1、BLS2和BLS3为四个字长控制信号。
LPC2000锁相环PLL原理图
定时器原理和功能:
定时器的核心部件是一个32位加法计数器TC,用户程序可用匹配寄存器MR0-MR3来产生定时事件,用捕获寄存器CR0-CR3来读取定时器的当前值。
TC的初始值为0,当TC被启动之后,计数器每收到一个计数脉冲计数器就加1.如果在计数过程中一直没有复位信号使之复位,则计数器会一直计到最高值0xFFFFFFFF,并在再加1时回卷到0x00000000重新开始计数,如此循环往复。
为产生定时事件,定时器配置有四个可以预先设置数据的匹配寄存器MR0-MR3。
在计数器TC计数过程中,当TC的当前值与某个MR的预置值相等时,该MR会触发一个由匹配控制寄存器MCR指定的事件。
为使程序可以读取定时器的当前值,定时器还配有四个可以由处理器外部引脚(CAP0-CAP3)触发的捕获寄存器CR0-CR3,在外部触发信号CAP有效时,CR可以捕获计数器TC的当前值。
每个外部触发信号CAP都可以通过LPC2000的引脚连接模块与芯片外部的一个活多个引脚相连接,该信号的有效形式则由捕获寄存器CCR的相关位来指定。
脉宽调制器是一种能把输入信号的大小转换成输出信号的脉冲宽度的转换电路或装置。
单边沿脉冲信号的初始化代码
PWMPCR=0x200;//设置输出信号为单边沿信号
PWMMCR=0x02;//当匹配寄存器0匹配时复位定时器TC
PWMMR0=0x1000;//设置周期T=1000个定时脉冲
PWMMR1=0x600;//设置脉宽=600个定时脉冲
PWMLER=0x03;//允许匹配寄存器0和匹配寄存器1锁存
PWMTCR=0x09;//启动定时器TC
双边沿脉冲信号的初始化代码:
PWMPCR=0x404;//设置输出信号为单边沿信号
PWMMCR=0x02;//当匹配寄存器0匹配时复位定时器TC
PWMMR0=0x1000;//设置周期T=1000个定时脉冲
PWMMR1=0x200;//设置脉宽=200个定时脉冲
PWMMR2=0x500;//设置500个定时脉冲
PWMLER=0x07;//允许匹配寄存器0、1、2锁存
PWMTCR=0x09;//启动定时器TC
看门狗:
可以自动进行复位的硬件电路。
看门狗实质上是一个定时器,如果它在一个预定时间内未接收到一个表示计算机工作正常的信号,它就会依靠计数器的溢出信号启动复位电路,将系统复位并重新启动;如果在预定时间内收到了工作正常信号,则将定时器本身复位,重新开始新的定时过程。
其中的信号俗称喂狗
看门狗逻辑框图
看门狗的初始化:
WDTC=0x10000;//设置TC时间限定值
WDMODE=0x03;//设置工作模式并启动看门狗
喂狗代码:
VoidEDTFEED()
{
WDFEED=0xAA;
WDFEED=0x55;
}
LPC2000的功率控制模式:
掉电模式:
通过禁止PLL来冻结处理器和外设的时钟,这时系统的功耗仅取决于电路的漏电流。
外部设备的中断请求会将处理器从功率控制状态中醒来。
空闲模式:
仅停止对处理器的时钟供给,任何中断请求都可以将系统唤醒
UART(通用异步收发器)数据的发送
发送数据时,处理器首先通过状态寄存器检查发送数据寄存器是否为空,如果为空,则将待发送数据由处理器写入发送数据寄存器UxTHR;然后由接口自动按照通信格式控制寄存器UxLCR的设置,给数据加上启动位、奇偶校验位和停止位;最后通过发送移位寄存器将数据串行地通过发送端TxD发送给其它设备。
UART(通用异步收发器)数据的接受
接收数据时,自接收端RxD接收到的串行数据首先由接收移位寄存器接收;然后将其转换成并行数据暂存到接收寄存器UxRBR中,当处理器通过状态寄存器发现接收寄存器为满状态时,处理器就读取该数据;接下来UART可以接收下一个数据。
SPI通信原理与SPI接口逻辑框图:
主设备移位寄存器的数据输出端MOSI和数据输入端MISO与从设备移位寄存器连成环形结构。
通信时,一个脉冲传送一位数据。
在事先约定的正脉冲或负脉冲作用下,在前沿时刻完成数据的输出,在后沿时刻完成数据的输入
IC总线构成
总线仲裁:
总线上的所有器件都具有获得总线控制权而成为主器件的权力,所以常常会由于发生两个或多个器件同时企图获得总线控制权而发生所谓的总线竞争。
这时总线就会发生一个以某种规则确定主器件的过程,这个过程叫做仲裁。
AD转换器框图
LPC2000中断管理原理
LPC2000处理器内置了中断控制器VIC。
为把芯片外部的外设中断引入芯片,并在引入过程中对外部中断进行管理,LPC2000还设置了外部中断通道。
这样,LPC2000的中断管理就形成了由外部中断通道、VIC和中断向量表所组成的3层结构。
VIC的组成图
VIC中断通道输入部分逻辑图
VIC分组控制部分图
快中断IRQ组处理部分图
独立按钮键盘:
特点是每一个键都占用一条接口线。
矩阵式键盘:
每个按钮都被安排在行线和列线的交叉处,这样,16个键占用了8条接口线。
这种键盘占用接口线的数目为键数目的开平方。
触摸屏:
由触摸检测部件和触摸屏控制器两部分组成。
触摸检测部件安装在显示屏前面,将用户触摸位置转换为电信号;而触摸屏控制器的主要作用是从触摸点检测装置上接收电信号,并将它转换成数字量形式的触点坐标信息馈送给处理器。
ISP叫做系统编程,无须从系统上拔下存储器芯片就可以对它进行编程;
IAP叫做在应用编程,允许在应用程序运行中由应用程序对存储器芯片进行编程。
向量表的重映射概念:
在系统启动后,依靠硬件使MEM[1:
0]=00,暂时注销用户程序向量表的地址空间,而把BootBlock的向量表暂时映射到从0x00000000开始的64字节空间。
这样,处理器在开机时从地址0x00000000处得到的就是跳转到BootBlock的指令,而先执行BootBlock了。
至于用户程序的执行,则由BootBlock在适当时机,再通过修改MEM[1:
0]进行地址重映射,把用户程序的中断向量表恢复到元位置。
LPC2000要求有效用户程序的中断向量表的所有指令的机器码相加之和必须为0
RAM空间的重映射
为提高系统效率,经常需要将放在Flash中的用户程序中断向量表以及后续的FIQ服务程序转存到速度较高的RAM中,然后把这块RAM空间重映射到0x00000000开始的空间上。
Cache存储器的组成:
它是一个存储阵列,其基本存储单位叫做cache行。
一个cache行除了要存放从主存复制来的信息之外,还要存储一些其他信息,所以每一个cache行又分为三段:
cache标签(目录段)、状态段和数据段。
数据段用来存放从主存复制来的指令或数据
Cache标签用来表示数据源地址
状态段用来表示数据的状态。
在cache行中设置了V标志来表示数据是否有效;设置d标志来表示数据是否被修改过。
颠簸现象:
当应用程序需要连续访问与同一个cache行所共享的多个内存块中的数据时,会使cache频繁地进行内存块的替换操作。
解决颠簸现象的方法:
多设置几个相同的cache存储器,这样就会有多个具有相同行地址的cache行,而使原来只有一个cache行的内存块群有多个cache行使用,这种技术叫做cache的组相联。
写策略:
处理器核有两种对存储器进行写操作的策略。
一种是同时向cache存储器和内存写入数据,将两处的数据同时进行更新,这种做法叫做直写法;另一种是处理器核只把数据写入cache行,只有当相应的cache行需要替换时,才把数据写入内存,这种方法叫回写法。
行替换策略:
cache控制器总是在一个淘汰完成后,即准备下一次需要淘汰的行。
Cache控制器选择下一个要丢弃行的策略叫做替换策略。
ARM核支持两种替换策略:
轮转法和伪随机替换法。
失败时的分配策略:
当采用读写分配策略时,不管是在对内存进行读操作还是写操作,只要被操作对象未在cache中,cache控制器都要为操作对象分配cache行,而采用读操作分配策略时,cache控制器只对内存的读操作对象分配cache行,而写操作则只直接更新内存内容,不分配cache行。
虚拟存储空间:
程序在辅存中的存储空间
物理存储空间:
计算机实际配置的物理内存空间
映射机构的重定位器:
用来指示目标地址的寄存器,把虚拟空间的程序复制到物理空间中。
MMU用来完成虚拟存储管理工作。
页表是物理内存空间的一个抽象,即用户是使用虚拟地址通过页表来使用实际物理内存的。
快表的工作原理:
处理器在使用虚拟地址访问某个虚存空间时,先到MMU的快表中去查找所要访问的虚存页是否有对应的表项,如果有,则转换成物理地址去读写数据;如果没有就到内存的页表中去查找。
找到后就看表项中是否有有效的页框码;如果有,则将其复制到快表中,并转换成物理地址去读写数据,如果没有,就产生一个缺页异常信号启动操作系统的内存分配模块,为虚拟页分配页框并把页复制到该页框,同时在页表中建立对应的页表项并将其复制到快表中,然后再转换成物理地址到物理内存去访问该数据。
二级页表的工作原理:
虚拟地址被分成三段,系统用主表基地址拼接了虚拟地址的最高段;在主表中查找二级页表的基地址,再把二级页表的基地址拼接了虚拟地址的中断;在二级页表查找页框码,最后把页框码拼接成虚拟地址的低段,形成物理地址。
虚拟存储技术的优点:
用户应用程序都有自己的页表,这使应用程序的虚拟存储空间各自是独立的,而不会发生彼此干扰,从而实现了用户存储空间的保护。
用户应用程序值使用虚拟地址,而不必去考虑物理内存的问题。
可以运行比物理内存大的应用程序。
冯·诺依曼机主要特点:
计算机由运算器、存储器、控制器、输入设备和输出设备五部分组成。
指令与数据以同等地位存放在存储器中,并可按地址对它们进行访问。
指令在存储器中顺序存放。
机器以运算器为中心,数据的传输必须通过运算器。
嵌入式与通用系统相比:
专用性强。
嵌人式系统通常是面向某个特定应用的,以嵌入式系统的硬件是为特定
用户群设汁的.它通常郜具有某种专用性的特点。
可裁剪性好。
嵌入式系统的硬件和操作系统都必须设计成可裁剪的,以便用户可以根据实际应用需要量体裁衣,去除冗余,从而使系统在满足应用要求的前提下达到最精简的配置。
实时性与可靠性好。
嵌入式系统中的软件一般不是存储于磁盘等载体中,而都固化在
存储器芯片或单片系统的存储器里,再加上精心设计的嵌入式操作系统,从而可以快速
地响应外部事件,同时也大大提高了系统的可靠性。
功耗低。
由于嵌入式系统中的软件一般不是存储于磁盘等载体中,而都固化在存储器
芯片或单片系统的存储器之中,所以它具有功耗低的特点,从而便于把它应用在飞机、
舰船、数码相机等移动设备中。
并行总线
并行总线由多条传输线组成,其数目与被传输数据的位数相同,每条线负责传输一位二进制代码。
它可以一次同时传送一个多位二进削代码,总线中传输的数目,叫做总线宽度。
串行总线
实际系统中,也可以使用一根线来传送多位二进制信息。
这个多位二进制代码在这根线上一位接着一位地逐一传输,这样的总线叫做串行总线。
显然,并行总线传输多位信息的速度快,但使用的传输线数目多;而串行传输多位信息的速度慢,但使用的传输线数目少。
因此,并行总线一般用来进行短距离离的信息传输,而串行总线用来进行远距离传输。
异步和同步串行通信
根据时钟控制方式,可分为同步通信方式和异步通信方式。
如果发送设备和接收设备各自使用自己的时钟来控制通信,这种通信方式叫做异步串行通信方式。
同步通信要求双方的时钟必须严在准确和稳定。
如果发送设备和接收设备各自使用同一个时钟来控制通信,那么叫同步串行通信方式。
7种运行模作用
用户模式(LTSR)用户程序运行的模式
快速中断模式(FIQ当需要与外设进行高速数据传输时使用的模式
中断模式cIRQ)用于普通中断处理的模式
管理模式(SVC)操作系统使用的保护模式
中止模式(ABT)当数据或指令预取出错时进入的模式
系统模式(SYS)具有特权的操作系统任务运行的模式
未定义指令中止模式(UND)当处理器试图执行未定义指令时进入的模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 体系结构 复习