ARM中如何考虑指令流水线
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 12:31:13
ARM中如何考虑指令流水线
ARM中如何考虑指令流水线
ARM中如何考虑指令流水线
ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理与存储器系统之间的操作更加流畅,连续,能提供0.9MIPS/MHZ的指令执行速度.
PC代表程序计数器,流水线使用三个阶段,因此指令分为三个阶段执行:1.取指(从存储器装载一条指令);2.译码(识别将要被执行的指令);3.执行(处理指令并将结果写回寄存器).而R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令.一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此PC总是指向第三条指令.当ARM状态时,每条指令为4字节长,所以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执行位置+8;
周期1 周期2 周期3 周期4 周期5 周期6
PC-8 取指 译码 执行
PC-4 取指 译码 执行
PC 取指 译码 执行
2.
如果ARM7的主频是60M的话,实际代码运行速度是60*0.9=54MIPS,对于ARM9则是60*1.1=66MIPS吗?
另外对于3级流水线的ARM,一条指令从取指到执行完毕,实际时间也是3周期吧?还有如此算的话一周期执行一条指令,那60M的主频,实际代码运行速度为什么不是60MIPS,而要乘0.9呢?是不是把一些特殊指令,还有分支任务时指令延时也算了,才乘个系数0.9?还有ARM9的1.1MIPS/Hz是怎么实现的?
为分支和循环操作的存在,使得在执行这些指令时需要清空流水线,导致ARM7的指令执行效率降低,所以ARM7的指令性能是0.9MIPS/MHz.
而ARM9相对于ARM7,由于是harvard结构,取指令和取操作数的效率更高,即执行某些指令的效率更高,所以其指令性能达到1.1MIPS/MHz.但这并不意味着,ARM9在1个指令周期内可以执行超过1条指令.
3.
归根结底:就是——
取指
译码
执行
主要在循环程序的设计上可以优化程序