技术及ARM体系结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 ARM技术与ARM体系结构 内容提要 2.1 ARM体系结构版本与内核 2.2 ARM内核模块 2.3 ARM处理器的工作模式 2.4 ARM内部寄存器 2.5 ARM异常处理 2.6 存储方式与存储器映射机制 2.7 ARM流水线技术分析 2.5 ARM异常处理 异常通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。 大多数异常都对应一个软件的异常处理程序,也就是在异常发生时执行的软件程序。? 2.5.1 异常入口 ARM处理器的异常分为数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令共7种 。 1.复位具有最高的优先级,是系统启动(或芯片复位)时调用的程序。复位程序对异常处理程序和系统进行初始化(包括配置储存器和Cache)。同时要保证在IRQ和FIQ中断允许之前初始化外部中断源,避免在没有设置好相应的处理程序前产生中断。还要设置好各种处理器模式的堆栈指针。 2.引起未定义指令异常: ARM 试图执行一条真正的未定义指令; ARM 遇到一条协处理器指令,可是系统中的协处理器硬件并不存在; ARM 遇到一条协处理器指令,系统中协处理器硬件也存在,可是ARM 不是在超级用户模式。 解决方法: 在处理程序中执行软协处理器仿真; 禁止在非超级用户模式下操作; 报告错误并退出。 3.数据中止异常 指示访问了无效的存储器地址,或者当前代码没有正确的数据访问权限。 4.预取指中止 由于处理器预取的指令地址不存在,或者地址无法访问,当被预取的指令执行时,发生预取指中止异常。 5. FIQ中断的优先级比IRQ中断的优先级要高,且内核进入FIQ处理程序时,把FIQ和IRQ都禁止 6.软中断(SWI)和未定义指令异常的优先级最低,共享同一优先级,两者不可能同时出现。 2.5.2 异常产生过程与返回 2.将CPSR复制到适当的SPSR中; 3. 将CPSR模式位强制设置为与异常类型相对应的值; 4.强制PC从相关的异常向量处取指。 异常处理 当异常产生时, ARM core: 拷贝 CPSR 到 SPSR_mode 设置适当的 CPSR 位: 改变处理器状态进入 ARM 状态 改变处理器模式进入相应的异常模式 设置中断禁止位禁止相应中断 (如果需要) 保存返回地址到 LR_mode 设置 PC 位相应的异常向量 返回时, 异常处理需要: 从 SPSR_mode恢复CPSR 从LR_mode恢复PC Note:这些操作只能在 ARM 态执行. 2.6 存储方式与存储器映射机制 ARM处理器地址空间大小为4G字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0~232-1。各存储单元地址作为32位无符号数,可以进行常规的整数运算。 当程序正常执行时,每执行一条ARM指令,当前指令计数器加4个字节;每执行一条Thumb指令,当前指令计数器加2个字节。 2.6.1 数据存储格式 小端存储格式(Little-Endian) 大端存储格式(Big-Endian) 字节顺序 2.6.2 非对齐存储器地址访问问题分析 1. 非对齐的指令预取操作 如果是在ARM状态下将一个非对齐地址写入PC,则数据在写入PC时数据的第0位和第1位被忽略,最终PC的bit[1:0]为0;如果是在Thumb状态下将一个非对齐地址写入PC,则数据在写入PC时数据的第0位被忽略,最终PC的bit[0]为0。 2. 非对齐地址内存的访问操作 ? 对于LOAD/STORE操作,系统定义了下面3种可能的结果: ??? * 执行结果不可预知 ??? * 忽略字单元地址低两位的值,即访问地址为字单元;忽略半字单元最低位的值,即访问地址为半字单元。这种忽略是由存储系统自动实现的。 *在LDR和SWP指令中,对存储器访问忽略造成地址不对齐的低地址位,然后使用这些低地址位控制装载数据的循环。 2.7 ARM流水线技术分析 ARM7流水线技术 与三级流水线运行情况分析 ARM9流水线技术与五级流水线互锁分析 ARM10E 系列概述 ARM7流水线技术 为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令 最佳流水线 该例中用6个机器周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1机器周期 LDR 流水线举例 该例中,用6机器周期执行了4条指令 指令周期数 (CPI) = 1.5 机器周期 分支流水线举

文档评论(0)

173****1616 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档