- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM技术及ARM体系结构
对齐 存储器访问必须始终适当地保持地址对齐 非对齐地址将产生不可预测的/未定义的结果 用‘Data Abort’ 异常来检测无效的非对齐数据存取 扩展逻辑要求,或使用MMU在 720T, 920T, 926E-S, 1020E 谨防指令读取时出现非对齐 非对齐数据存取能够完成, 但不是用 LDR 使用 LDRB, STRB 传递字节,或使用LDM 加移位/屏蔽 字节访问(字节对齐) 半字访问 (半字对齐) 字访问 (字对齐) 3 2 1 0 7 6 5 4 0 2 4 6 8 a c e 0 8 9 a b c d e f 4 8 c T标志位的作用 16 16 32-bit data 16 A[1] Mux Thumb 指令 解码 Mux Mux T标志 ARM 指令 解码 阶段 1 阶段 2 D[31:0] 0 1 1 0 Fetch Decode Execute 带Cache的ARM7TDMI ARM710T 8K 统一的 cache 完整的内存管理单元(mmu),支持虚拟地址及存储器保护 写缓冲 ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲 ARM7TDMI 内核 地址 地址 数据读 AMBA接口 写 缓冲 MMU 数据写 数据 ARM7xxT 控制 逻辑 Cache AMBA 总线 接口 JTAG 及非 AMBA 信号 CP15 五.ARM9TDMI Harvard架构 增加了可用的存储器宽度 指令存储器接口 数据存储器接口 可以实现对指令及数据存储器的同时访问 5 级流水线 实现了以下改进: 提高了最大时钟频率 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 Thumb?ARMdecompress ARM decode Instruction Fetch FETCH DECODE EXECUTE ARM7TDMI ARM9TDMI数据通道 (1) 寄存器 Bank ALU C B A DINFWD 结果 DA DD 数据递增 向量 指令递增 IA 字节旋转 /符号扩展. MU 逻辑 双向 缓冲器 字节/半字 复制 MU逻辑单元包含有:多路复用器,乘法器及桶形移位器 数据总线 地址总线 字节/半字 指令地址总线 ARM9TDMI 数据通道 (2) 寄存器 Bank PSR 乘法器 移位器 ALU B A Imm DINFWD BDATA ADATA 锁存 锁存 MU 逻辑 (至 IA 生成逻辑) 结果 周期 操作 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 LDR R4, [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 – 执行(Execute) I – 互锁(Interlock)M – 存储器(Memory )W –写回( Writeback) I LDR互锁 本例中,用了7个机器周期执行6条指令, CPI = 1.2 机器周期。 LDR指令之后立即跟一条数据操作指令,由于使用了相同的寄存器,将会导致互锁 。 W I M 周期 操作 ADD R1, R1, R2 SUB R3, R4, R1 ORR R8, R3, R4 AND R6, R3, R1 EOR R3, R1, R2 LDR R4, [R7] 最佳流水线 本例中,用了6个机器周期执行6条指令, CPI = 1机器周期。 LDR指令没有引起流水线互锁 1 2 3 4 5 6 7 8 9 F D E W F D E W F E W F D E W F D W E F D E W F – 取指(Fetch)D – 解码(Decode) E – 执行(Execute) I – 互锁(Interlock)M – 存储器(Memory )W –写回( Writeback) M D LDM互锁 (1) 本例中,用了8个机器周期执行5条指令, CPI = 1.6 在LDM期间,有并行的存储器访问及回写周期 周期 操作 LDMIA R13!, {
文档评论(0)