7.12协处理器数据传输(从协处理器到存储器)
ARM7严格地控制协处理器到存储器的指令,和从存储器到协处理器传输的指令一样,只是在传输周期nRW反向(表示传输方向)。操作周期在表18中显示。
表18:协处理器数据传输指令操作周期
81
This file is generated by AlienTools PDF Generator, unregister version
7.13协处理器寄存器传输(从协处理器加载)
这里busy-wait周期跟上面一样多,传输被限制在一个数据字,在第三个周期ARM7将这个字写到目的寄存器中,向所有ARM7寄存器加载指令一样,第三个周期和下一个值领预取周期合并成一个存储器N-cycle。操作周期在表19中显示。
表19:协处理器寄存器传输(从协处理器加载)
7.14协处理器寄存器传输(存储到协处理器中)
像从协处理器加载一样,只是省略了最后一个周期。操作周期时序在表20中显示。
82
This file is generated by AlienTools PDF Generator, unregister version
表20:协处理器寄存器传输(存储到协处理器)
7.15无定义指令和协处理器Absent
当一个协处理器检测到一条不能执行的协处理器指令,包括所有的无定义指令,协处理器必须放弃驱动CPA,CPB为低,它们将保持高,导致无定义指令陷阱产生。操作周期时序在表21显示。
表21:无定义指令操作周期时序
83
This file is generated by AlienTools PDF Generator, unregister version
7.16未执行的指令
任何条件不满足的指令都不会执行,它将增加一个周期totheexecutiontimeof嵌入的代码段。
表22:未执行的指令周期操作
7.17指令速率总结
由于CPU的流水线特性,指令通常相互交迭。在一个典型周期,一条指令可能正在用到数据通路,下一条指令译码,再下一个指令取指。基于这个原因,下表列出了一个指令需要的incremental周期数,而不是指令只用了处理器部分资源的整个周期数。对一个程序来讲,运行的时间(以周期位单位)可以通过表23来计算。这些图表假设指令真正执行,未执行指令花费一个周期。
表23:ARM指令速度总结
84
This file is generated by AlienTools PDF Generator, unregister version
n是要传输的字数,m是乘法算法所需要的周期数,由Rs中的内容决定。在2^(2m-3)和2^(2m-1)-1之间的任何数,乘法都需花费1S+mIm周期,1
如果乘数的[32:16]位全为0或者全为1,m为2
其它情况下m为4。
b
是在协处理器busy-waitloop花费的周期数。
如果条件不满足所有的指令花费一个S-周期。周期类型N,S,I,C在第五章存储器接口中定义。
This file is generated by AlienTools PDF Generator, unregister version
85