截图
简介
这是一个关于arm体系结构介绍PPT,包括了ARM9嵌入式微处理器,ARM9存储器组织结构,ARM9异常,S3C2410嵌入式微处理器等内容。2.1 ARM9嵌入式微处理器ARM 体系结构的演变发展 ARM 架构(Architecture)ARM processor’s name 命名中扩展的含义 ARM920T系统结构分析 ARM920T系统结构分析 例:(软考“嵌入式系统工程师”真题) 以ARM920T为内核的S3C2410芯片系统结构框图基于S3C2410的实验开发平台:ARM920T内核编程模型 ARM920T核内部具有指令缓存和数据缓存,允许处理器同时进行取指和读写数据操作。数据可以是:8位(字节)、16位(半字)、32位(字)。字必须是4字节边界对准,半字必须是2字节边界对准。 2.1.3 ARM9工作模式 2.2 ARM9存储器组织结构 2.2.1 大端存储和小端存储 ARM9的每个地址是对应于一个存储字节而不是一个存储字,但ARM9可以访问存储字。访问存储字时,其地址应该是字对准的,即字地址可以被4整除。若第1个字在存储空间中是在第0个地址对应的单元(32位),那么,第2个字则应在第4个地址对应的单元,第3个字在第8个地址对应的单元,以此类推。一个字(32位二进制数)是由4个字节组成,假如某个字其地址是X(X能被4整除),那么,该字的4个字节对应的地址是X、X+1、X+2、X+3。 程序中若遇到分支指令,大多数是通过把指令中的偏移量加到PC寄存器的值上来计算目的地址,然后把计算结果写回到PC寄存器,此时PC寄存器中的值就不再是顺序的,从而实现了程序分支,欢迎点击下载arm体系结构介绍PPT。
arm体系结构介绍PPT是由红软PPT免费下载网推荐的一款仪器设备PPT类型的PowerPoint.
2.1 ARM9嵌入式微处理器 ARM 体系结构的演变发展 ARM 架构(Architecture) ARM processor’s name 命名中扩展的含义 ARM920T系统结构分析 ARM920T系统结构分析 例:(软考“嵌入式系统工程师”真题) 以ARM920T为内核的S3C2410芯片系统结构框图基于S3C2410的实验开发平台: ARM920T内核编程模型 ARM920T核内部具有指令缓存和数据缓存,允许处理器同时进行取指和读写数据操作。数据可以是:8位(字节)、16位(半字)、32位(字)。字必须是4字节边界对准,半字必须是2字节边界对准。 2.1.3 ARM9工作模式 2.2 ARM9存储器组织结构 2.2.1 大端存储和小端存储 ARM9的每个地址是对应于一个存储字节而不是一个存储字,但ARM9可以访问存储字。访问存储字时,其地址应该是字对准的,即字地址可以被4整除。若第1个字在存储空间中是在第0个地址对应的单元(32位),那么,第2个字则应在第4个地址对应的单元,第3个字在第8个地址对应的单元,以此类推。一个字(32位二进制数)是由4个字节组成,假如某个字其地址是X(X能被4整除),那么,该字的4个字节对应的地址是X、X+1、X+2、X+3。 程序中若遇到分支指令,大多数是通过把指令中的偏移量加到PC寄存器的值上来计算目的地址,然后把计算结果写回到PC寄存器,此时PC寄存器中的值就不再是顺序的,从而实现了程序分支。目的地址的计算公式如下: 目的地址=当前执行的指令地址+8+偏移量 2.2.2 I/O端口的访问方式 ARM9中I/O端口的访问存储器映射的方法每个I/O端口分配特定的存储器地址,对这些特定地址的读写即为实际的I/O操作操作指令与存储单元的读写操作指令相同,但行为通常不同例:一般情况下,对同一存储单元进行连续的2次读操作,若中间无写入操作,则应该读到的数据相同。而如果该地址对应I/O端口,则两次读取有可能不同。(??) 2.2.3 内部寄存器 说明: R0~R15称为通用寄存器,其中,R0~R7是不分组的寄存器;R8~R14是根据工作模式进行分组的寄存器;R15是程序计数器,也是不分组的。 R0~R7寄存器是不分组的,在所有的工作模式下,它们物理上是同一个寄存器。 R8~R14是分组寄存器,它们中的每一个寄存器根据当前工作模式的不同,所访问的寄存器实际可能不是同一个物理寄存器。 R13寄存器的作用通常是堆栈指针,又称为SP。每种异常模式都有对应于该模式下的R13物理寄存器。 R14寄存器可用作子程序链接寄存器,又称为LR(Link Register)。当ARM9处理器执行带链接的分枝指令(如:BL指令)时,R14保存R15的值。当异常发生时,相应的寄存器分组R14_svc、R14_abt、R14_und、R14_irq和R14_fiq用来保存R15的返回值。 LR寄存器作用示意图 寄存器R15用做程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC。寄存器R16用做当前程序状态寄存器(Current Program Status Register,CPSR)每一种非用户模式下都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器)。 fiq模式下有7个分组寄存器R8_fiq~R14_fiq 在ARM状态下,许多fiq处理都不用保存任何寄存器。 在Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。 ARM920T体系结构中包含一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR)。备份的程序状态寄存器用来进行异常处理,其功能包括:保存ALU中的当前操作信息;控制允许和禁止中断;设置处理器的运行模式。 条件码标志 N(negative)、Z(zero)、C(carry)和V(overflow)位称为条件码标志,简称为标志,CPSR中的标志可用于检测以决定指令是否执行。 控制位程序状态寄存器的最低8位I、F、T和M[4:0]用做控制位,当异常出现时改变控制位,处理器在特权模式下也可用软件改变。 I和F是中断禁止位。I置1时禁止IRQ中断;F置1时禁止FIQ中断。 T位 T=0时指示ARM执行;T=1时指示Thumb执行。 模式位 M0、M1、M2、M3和M4是模式位。这些位决定处理器的工作模式,如表所示。表中未列出的模式位的组合是不可用的。 2.3 ARM9异常 2.3.1 异常的类型及向量地址 (1)复位:处理器上一旦有复位信号输入,ARM处理器立刻停止执行当前指令,复位后,ARM处理器在禁止中断的管理模式下,从地址0x00000000或0xFFFF0000开始执行程序。(2)未定义指令异常:有两种情况:[1]当ARM处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,会出现未定义指令异常。[2]试图执行未定义的指令,也会出现未定义指令异常。 (3)软件中断异常:是由软件中断指令SWI引起的。软件中断异常指令SWI进入管理模式,以请求执行特定的管理功能。(4)指令预取中止(prefetch abort):指令预取访问存储器失败时产生的异常称为指令预取中止异常。此时,存储器系统发出存储器中止(abort)信号,响应取指激活的中止,预取的指令被标记为无效,若处理器试图执行无效指令,则产生预取中止异常;若指令未执行,则不发生预取中止。 (5)数据中止(data abort):ARM处理器访问数据存储器失败时产生的异常称为数据中止异常。此时,存储器系统向ARM处理器发出存储器中止(Abort)信号,响应数据访问(加载/存储)激活的中止,数据被标记为无效。(6)IRQ(中断请求):通过处理器上的nIRQ引脚输入低电平产生。IRQ异常的优先级比FIQ异常的低。当进入FIQ处理时,会屏蔽掉IRQ异常。(7)FIQ(快速中断请求):通过处理器上的nFIQ引脚输入产生。 2.3.2 异常的优先级 当某时刻同时出现多个异常时,ARM处理器按优先级的高低顺序处理。异常的优先级如表所示,从表中可知,复位异常的优先级最高,未定义异常和软件中断异常的优先级最低。异常向量异常向量是异常服务程序的入口,在某些ARM的应用中,允许异常向量的位置由32位地址空间低端的正常位置(0x00000000~0x0000001C),移到地址空间高端的另一地址范围(0xFFFF0000~0xFFFF001C)。这些改变后的地址位置称为高端向量。由Implementation Defined决定是否支持高端向量。如果支持,则在输入硬件配置时,选择是使用正常向量还是高端向量。 应用程序中的异常处理:当系统运行时,异常可能会随时发生。为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。 1、在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。 2、当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序。 3、当异常处理完成以后,返回到主程序继续执行。各异常向量地址如前表2.4所示。 2.3.3 进入和退出异常 1.进入异常 当处理一个异常时,ARM9完成以下动作:(1)将下一条指令的地址保存在相应的LR寄存器中。如果异常是从ARM状态进入,则保存在LR中的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关)。如果异常是从Thumb状态进入,则保存在LR中的是当前PC的偏移量,这样异常处理程序就不需要异常是从何种状态进入的(如:在软件中断异常SWI产生时,指令MOV PC, R14_svc总是返回到下一条指令,不管SWI是在ARM状态下执行还是在Thumb下执行)。(2)将CPSR复制到相应的SPSR中。(3)迫使CPSR模式位M[4:0]的值设置成对应的异常模式值(4)迫使PC从相关的异常向量取下一条指令。(5)也可以设置中断禁止位来阻止其他无法处理的异常嵌套。如果异常发生时,处理器处于Thumb状态,那么当用中断向量地址加载PC时,自动切换进入ARM状态。 因为保存在LR中的地址值是不同的,因而,不同的异常中断返回时的指令也不尽相同。表2.6总结了进入异常处理时保存在相应的LR(R14)寄存器中的PC值,以及在退出异常处理时推荐使用的返回操作指令,以实现处理器返回断点处。 各类异常中断的返回过程说明(以ARM指令为例说明) 1.SWI和未定义指令异常中断处理程序的返回 SWI 和未定义指令异常中断是由当前执行的指令自身产生的,当SWI和未定义指令异常中断产生时,程序计数器PC的值还未更新,它指向当前执行指令后面的第2条指令。当SWI和未定义指令异常中断发生时,ARM920T核将值(PC-4)保存到异常模式下的寄存器LR/R14_
展开