ARM课件第3节2.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文档。上传文档
查看更多
3.9 异常 简介 快速中断请求 中止 中止——数据中止 软件中断指令 3.9 异常 异常的入口和出口处理 3.9 异常 异常的入口和出口处理 进入异常 退出异常 3.10 中断延迟 最大中断延迟 最大中断延迟 最大中断延迟 最小中断延迟 3.11 复位 复位 3.11 复位 复位 3.12 存储器及存储器映射I/O 简介 3.12 存储器及存储器映射I/O 简介 3.12 存储器及存储器映射I/O 简介 地址空间 存储器格式 存储器格式 存储器格式 未对齐的存储器访问 指令的预取和自修改代码 指令的预取和自修改代码 指令的预取和自修改代码 预取可能存在的问题 指令存储器屏障(IMB) 存储器映射的I/O 3.13 寻址方式简介 寻址方式分类 3.14 AMR7指令集简介 简介 3.14 AMR7指令集简介 ARM指令集 3.14 AMR7指令集简介 Thumb指令集 3.15 协处理器接口 简介 3.15 协处理器接口 简介 3.15 协处理器接口 可用的协处理器 3.16 调试接口简介 典型调试系统 3.17 ETM接口简介 简介 存储器系统有两种映射机制: 小端存储器系统: 在小端格式中,高位数字存放在高位字节中。因此存储器系统字节0连接到数据线7~0。 大端存储器系统: 在大端格式中,高位数字存放在低位字节中。因此存储器系统字节0连接到数据线31~24。 0数据的大小端存储方式 0x12 高位地址 低位地址 0x34 0x56 0x78 大端模式 0x78 高位地址 低位地址 0x56 0x34 0x12 小端模式 3.12 存储器及存储器映射I/O 0..….7 8….15 16. .23 24…31 一个基于ARM内核的芯片可以只支持大端模式或小端模式,也可以两者都支持。 在ARM指令集中不包含任何直接选择大小端的指令,但是一个同时支持大小端模式的ARM芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则。 注意:如果实际的存储器格式与芯片的存储器格式不符时,只有以字为单位的数据存取才正确,否则将出现不可预期的结果。 3.12 存储器及存储器映射I/O ARM结构通常希望所有的存储器访问都合理的对齐。具体来说就是字访问的地址通常是字对齐的,而半字访问使用的地址是半字对齐的。不按这种方式对齐的存储器访问称为非对齐的存储器访问。 将一个非字(半字)对齐的地址写入ARM(Thumb)状态的R15寄存器,将引起非对齐的指令取指。 在一个非字(半字)对齐的地址读写一个字(半字),将引起非对齐的数据访问: 3.12 存储器及存储器映射I/O 许多ARM实现在前一条指令的执行尚未完成时将指令从存储器中取出。这个动作称为指令的预取。指令的预取并不是实际执行指令。芯片的生产厂商可以自由选择预取指令的数目。被预取的指令可能得不到运行,可能的原因是: 发生异常; 发生跳转; 3.12 存储器及存储器映射I/O 当读取PC时,得到的指令地址比正在执行指令的地址落后两条指令: 对于ARM指令,得到的地址是它自身地址+8; 对于Thumb指令,得到的地址是它自身地址+4; 虽然生产厂商可以选择预取指令的数目,但是仍然可以保证读取PC所得到地址比它自身地址落后两条指令。 3.12 存储器及存储器映射I/O 在预取之前要进行转移预测,例如在执行一条分支指令,此时要判断是预取分支指令之后的指令还是转移目标地址的指令。 3.12 存储器及存储器映射I/O ??? ??? ??? 内核流水线 执行 译码 预取 LDR R0,AddInstr STR R0,NextInstr NextInstr SUB R1,R1,#1 . . . AddInstr ADD R1,R1,#1 (1) (2) (4) (3) 在存储器中的指令可能在它被预取之后,被执行之前发生改变。如果发生这种情况,对存储器中的指令进行修改一般不能阻止已取指的指令的执行。 LDR R0,AddInstr STR R0,NextInstr LDR R0,AddInstr STR R0,NextInstr LDR R0,AddInstr SUB R1,R1,#1 1.从地址(1)预取指; 2.从地址(2)预取指,“LDR”指令进入译码阶段; 3.从地址(3)预取指,“STR”指令进入译码阶段,同时“LDR”指令进入执行阶段,结果是将地址(4)的指令装入R0

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档