ARM7各种指令的周期数

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的命中情况。

Type-C吸纳万物,连接世界
小鹏汽车语不惊人:智能汽车的核心在于运营而不在制造
柔性有机电子产品开发和工业化领导者发布了一款超窄边框有机LCD
传统应用遭遇挑战,Spansion借助EcoRAM实现产品拓
中移动开建第二批4G试验城市 建设采购全面启动
ARM7各种指令的周期数
大数据实现精准营销策略有哪几个方面?
无功功率中无功的理解
CIM与PCB的组装
霍尔电流传感器在全钒液流电池系统中的应用原理解析
高防服务器怎么进行防御_高防服务器的防御措施有哪些
代工迈出第一步,但造车新势力还是无法跳过产业链塑造和品质把控这一关
直流双臂电桥的工作原理 单臂电桥与双臂电桥主要区别
中科院研究人员开发新型水合熔盐电解质,有助于改善锌电池弊端
中国自动驾驶公司驭势科技破局商业化,再创佳绩
安博打造智能工厂 生产智能化率达65%
人工智能不是让我们失业而是带来了新工作
使用新型Cadence Tensilica DSP FPU实现最佳PPA
机器人小封双喜临门 首部诗集《万物都相爱》公开出版
由门电路组成的单稳态触发器