您的位置 首页 开关

ARM架构与系统学习(二)——3级流水线

看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果。所以,决定总结学习下ARM流水线。ARM7处理器…

看到汇编中许多关于程序回来与中止回来时处理地址都很特别,细心想想原来是流水线作用的作用。所以,决议总结学习下ARM流水线。

ARM7处理器选用3级流水线来添加处理器指令流的速度,能供给0.9MIPS/MHz的指令处理速度。

PS:

MIPS(Million Instruction Per Second)表明每秒多少百万条指令。比方0.9MIPS,表明每秒九十万条指令。

MIPS/MHz表明CPU在每MHz的运转速度下能够履行多少个MIPS,如0.9MIPS/MHz则表明假如CPU运转在1MHz的频率下,每秒可履行90万条指令。

假如CPU在20MHz的频率下,每秒可运转1800万条指令。MIPS/MHz能够很好的反映CPU的速度。

3级流水线如上图所示(PC为程序计数器),流水线运用3个阶段,因而指令分3个阶段履行。

⑴ 取指从存储器装载一条指令

⑵ 译码辨认即将被履行的指令

⑶ 履行处理指令并将成果写会寄存器

曾经学过的51单片机,由于比较简单,所以它的处理器只能完结一条指令的读取和履行后,才会履行下一条指令。这样,PC一直指向的正在“履行”的指令。

而关于ARM7来说由于是3级流水线,所以把指令的处理分为了上面所述的3个阶段。

所以处理时实践是这样的:ARM正在履行第1条指令的一起对第2条指令进行译码,并将第3条指令从存储器中取出。

所以,ARM7流水线只要在取第4条指令时,第1条指令才算完结履行。

下图生动形象的阐明晰3级流水线的处理机制

下面一句话很要害:不管处理器处于何种状况,程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在履行”的指令或许正在“译码”的指令。

人们一般会习惯性的将正在履行的指令作为参阅点,即当时第1条指令。

所以,PC总是指向第3条指令,

或许说PC总是指向当时正在履行的指令地址再加2条指令的地址。

处理器处于ARM状况时,每条指令为4个字节,所以PC值为正在履行的指令地址加8字节,便是:

PC值 = 当时程序履行方位 + 8字节

处理器处于Thumb状况时,每条指令为2字节,所以PC值为正在履行的指令地址加4字节,便是:

PC值 = 当时程序履行方位 + 4字节

下面一个比如就很好的阐明晰这个问题。

[plain]view plaincopy

print?

  1. 0x4000ADDPC,PC,#4;正在被履行的指令,将地址值PC+4写入PC
  2. 0x4004…;正在被译码的指令
  3. 0x4008…;正在被取指的指令,PC=0x4008
  4. 0x400C…;PC+4=0x400C

别的弥补阐明便是依据以上描绘,流水线只要被指令填满时才干发挥最大效能,即每时钟周期完结一条指令的履行(仅单周期指令)。

假如程序产生跳转,流水线会被清空,这将需求几个时钟才干使流水线被再次填满。因而,尽量地少运用跳转指令能够进步程序的履行功率。

以上便是对ARM73级流水线的一个总的知道,参阅来自学习ARM时的教材——《ARM嵌入式体系基础教程(第二版)》。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/262644.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部