{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)

上传人:卓****库 文档编号:140392378 上传时间:2020-07-29 格式:PPTX 页数:32 大小:187.22KB
返回 下载 相关 举报
{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)_第1页
第1页 / 共32页
{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)_第2页
第2页 / 共32页
{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)_第3页
第3页 / 共32页
{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)_第4页
第4页 / 共32页
{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)》由会员分享,可在线阅读,更多相关《{管理信息化VR虚拟现实}第2章ARM技术与ARM体系结构2)(32页珍藏版)》请在金锄头文库上搜索。

1、第2章 ARM技术与ARM体系结构,本章主要介绍ARM处理器的产生及版本发展历史,以及各个版本的典型处理器及应用情况和性能分析;ARM处理器的内核调试结构,重点分析了ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器的工作模式及寄存器组织结构,分析了在什么情况下进入到相应的工作模式;ARM处理器支持的内存数据存储格式,分为大端格式和小端格式;最后介绍了ARM7的三级流水线运行机制和ARM9的五级流水线运行机制。,内容提要,21 ARM体系结构版本与内核 22 ARM内核模块 23 ARM处理器的工作模式 24 ARM内部寄存器 25 ARM异常处理 26 存储方式与存储器映射机制 2

2、7 ARM流水线技术分析,2.5 ARM异常处理,异常通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。 大多数异常都对应一个软件的异常处理程序,也就是在异常发生时执行的软件程序。,251异常入口,ARM处理器的异常分为数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令共7种 。,1复位具有最高的优先级,是系统启动(或芯片复位)时调用的程序。复位程序对异常处理程序和系统进行初始化(包括配置储存器和Cache)。同时要保证在IRQ和FIQ中断允许之前初始化

3、外部中断源,避免在没有设置好相应的处理程序前产生中断。还要设置好各种处理器模式的堆栈指针。,2引起未定义指令异常: ARM 试图执行一条真正的未定义指令; ARM 遇到一条协处理器指令,可是系统中的协处理器硬件并不存在; ARM 遇到一条协处理器指令,系统中协处理器硬件也存在,可是ARM 不是在超级用户模式。 解决方法: 在处理程序中执行软协处理器仿真; 禁止在非超级用户模式下操作; 报告错误并退出。,3数据中止异常 指示访问了无效的存储器地址,或者当前代码没有正确的数据访问权限。,4预取指中止 由于处理器预取的指令地址不存在,或者地址无法访问,当被预取的指令执行时,发生预取指中止异常。,5.

4、 FIQ中断的优先级比IRQ中断的优先级要高,且内核进入FIQ处理程序时,把FIQ和IRQ都禁止 6软中断(SWI)和未定义指令异常的优先级最低,共享同一优先级,两者不可能同时出现。,252异常产生过程与返回,在异常发生后,ARM内核会作以下工作:,1.在适当的LR中保存下一条指令的地址,当异常入口来自: ARM状态,那么ARM将当前指令地址加4或加8复制(取决于异常的类型)到LR中; 为Thumb状态,那么ARM将当前指令地址加2、4或加8 (取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。,2.将CPSR复制到适当的SPSR中; 3. 将CPSR模式位强制设置为与异常类型相对应

5、的值; 4.强制PC从相关的异常向量处取指。,当异常结束时,异常处理程序必须: 1.将LR( R14 )中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同; 2.将SPSR的值复制回CPSR; 3.清零在入口置位的中断禁止标志。 注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。,Vector Table,FIQ,IRQ,(Reserved),Data Abort,Prefetch Abort,Software Interrupt,Undefined Instruction,Reset,异常处理,当异常产生时, ARM core: 拷贝 CPSR 到 SPSR_ 设置适当

6、的 CPSR 位: 改变处理器状态进入 ARM 状态 改变处理器模式进入相应的异常模式 设置中断禁止位禁止相应中断 (如果需要) 保存返回地址到 LR_ 设置 PC 位相应的异常向量 返回时, 异常处理需要: 从 SPSR_恢复CPSR 从LR_恢复PC Note:这些操作只能在 ARM 态执行.,26 存储方式与存储器映射机制,ARM处理器地址空间大小为4G字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0232-1。各存储单元地址作为32位无符号数,可以进行常规的整数运算。 当程序正常执行时,每执行一条ARM指令,当前指令计数器加4个字节;每执行一条Thumb指令,当前指令计

7、数器加2个字节。,261数据存储格式,小端存储格式(Little-Endian),大端存储格式(Big-Endian),The ARM 可以用 little/big endian 格式存取数据.,r0 = 0 x11223344,STR r0, r1,LDRB r2, r1,r1 = 0 x100,Memory,3 2 1 0,0 1 2 3,Byte Lane,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7

8、,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Little endian,Big endian,R2 = 0 x44,R2 = 0 x11,For more information, see: “Application Note : Big and Little Endian Byte Addressing”,字节顺序,262非对齐存储器地址访问问题分析,1 非对齐的指令预取操作 如果是在ARM状态下将一个非对齐地址写入PC,则数据在写入PC时数据的第0位和第1位被忽略,最终PC的bit1:0为0;如果是在Thumb状态下将一个非对齐地址写入P

9、C,则数据在写入PC时数据的第0位被忽略,最终PC的bit0为0。,2 非对齐地址内存的访问操作 对于LOAD/STORE操作,系统定义了下面3种可能的结果: * 执行结果不可预知 * 忽略字单元地址低两位的值,即访问地址为字单元;忽略半字单元最低位的值,即访问地址为半字单元。这种忽略是由存储系统自动实现的。 *在LDR和SWP指令中,对存储器访问忽略造成地址不对齐的低地址位,然后使用这些低地址位控制装载数据的循环。,2.7 ARM流水线技术分析,ARM7流水线技术 与三级流水线运行情况分析 ARM9流水线技术与五级流水线互锁分析 ARM10E 系列概述,ARM7流水线技术,为增加处理器指令流

10、的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ),PCPC,PC - 4PC-2,PC - 8PC - 4,ARMThumb,最佳流水线,该例中用6个机器周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1机器周期,操作,周期,1 2 3 45 6,Fetch,Decode,Execute,Fetch,Decode,Execute,

11、Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR 流水线举例,该例中,用6机器周期执行了4条指令 指令周期数 (CPI) = 1.5 机器周期,周期,操作,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断

12、注意:内核运行在ARM状态,周期,1 2 3 4 5,地址 操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,目标地址,中断流水线举例,周期,1 2 3 4 5 6 7 8,IRQ,IRQ 中断的反应时间最小=7机器周期,地址 操作,F,D,E,Linkret,Adjust,F,F,Decode IRQ,Linkret,Execute IRQ,Adjust,F,D,E,F,D,F,F,D,E,F,D,F,F,

13、D,ARM9TDMI流水线的变化,Instruction Fetch,Shift + ALU,Memory Access,Reg Write,Reg Read,Reg Decode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM or ThumbInst Decode,Reg Select,Reg Read,Shift,ALU,Reg Write,ThumbARMdecompress,ARM decode,Instruction Fetch,FETCH,DECODE,EXECUTE,ARM7TDMI,周期,操作,ADD R1, R1, R2,SUB

14、 R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,LDRR4, R7,最佳流水线,本例中,用了6个机器周期执行6条指令, CPI = 1机器周期。 LDR指令没有引起流水线互锁,周期,操作,ADD R1, R1, R2,SUB R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,1,2,3,4,5,6,7,8,LDRR4, R7,9,F,D,E,F,D,E,W,F,D,E,W,F,D,E,W,F,D,W,E,F,D,E,W,F 取指(Fetch)D 解码(Decode)E

15、 执行(Execute) I 互锁(Interlock)M 存储器(Memory )W 写回( Writeback),I,LDR互锁,本例中,用了7个机器周期执行6条指令, CPI = 1.2 机器周期。 LDR指令之后立即跟一条数据操作指令,由于使用了相同的寄存器,将会导致互锁 。,W,I,M,互锁:当前指令的执行可能需要前面指令的执行结果,但这时前面的指令还没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时会引起流水线的等待,这种现象称为互锁。,LDM互锁 (1),本例中,用了8个机器周期执行5条指令, CPI = 1.6 在LDM期间,有并行的存储器访问和回写周期,周期,操作,LDMIA R13!, R0-R3,SUB R9, R7, R8,ORR R8, R4, R3,AND R6, R3, R1,1,2,3,4,5,6,7,8,STRR4, R9,9,F 取指(Fetch)D 解码(Decode)E 执行(Execute)MW-存储器和回写同时执行 I 互锁(Interlock)M 存储器(Memory )W 写回( Writeback),F,D,E,W,F,D,E,W,D,E,F,D,E,W,F,M,D,W,E,I,I,I,I,I,I,M,F,LDM 互锁 (2),本例中,用了9个机器周期执行5条指令,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号