DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 126|回复: 0
打印 上一主题 下一主题

ARM7各种指令的周期数

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-25 12:10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM7各种指令的周期数
ARM7具有3级流水线结构(取指、译码、执行),对大多数指令来说每条流水线的处理都是单周期的,不过某些情况下,取指和执行的周期数会延长,导致流水线进入stall状态,指令执行时间超过1个周期。
经过在LPC213x/214x(NXP ARM7TDMI-S)上的试验,得出各类指令的执行周期数如下:
1、大部分算术运算和逻辑运算指令都是单周期的(乘法例外)。
2、STR指令需要增加1个总线周期。如果地址位于内部SRAM,则是2个周期;如果地址位于AHB、VPB等外设总线上(例如访问外设的寄存器),由于局部总线和外设总线桥接还有额外延时,因此需要再增加一些周期数,在LPC213x/214x上,当VPB和主频相同时,需要再增加5个周期额外延时,即用STR指令访问外设寄存器需要7个期。
3、LDR指令需要增加2个总线周期。同理,如果地址位于内部SRAM,则是3个周期;如果地址在外设总线上,同样需要再增加一些周期数,在LPC213x/214x上,当VPB和主频相同时,LDR指令需要8个周期。
4、对于一次操作多个寄存器的STM、LDM类指令,指令周期数与STR、LDR类似,但每增加一个寄存器需要增加一个总线周期,例如当地址位于内部SRAM、寄存器个数为N时,执行周期数为1+N(STM)和2+N(LDM)。
5、无条件跳转语句和跳转语句成功跳转,需要重新填充流水线,因此至少需要3个周期(假设访问程序存储空间是单周期的)。
6、LDR指令的目标寄存器为R15(PC)时,相当于读总线+跳转,至少需要5个周期(假设访问程序存储空间是单周期的)。
7、乘法指令根据操作数位数的不同,从2-5个周期都有可能。
8、对于所有的带条件的指令,如果条件不满足,指令不被执行,都只需要花1个周期来跳过该指令。
9、实际应用时,还需考虑程序存储器的访问速度(影响流水线取指阶段的周期数)以及Cache的命中情况。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-12 03:54 , 耗时 0.084485 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表