第一范文网 - 专业文章范例文档资料分享平台

关于ARM指令流水线知识

来源:用户分享 时间:2025/7/3 5:17:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

关于ARM指令流水线知识

(周方辉)

2012/10/22

编改记录 编写日期 2012-10-22 创建 内容概要 1

目 录

参考文献 ................................................................................................................................... 2 1.1 内部参考文献 ........................................................................................................... 2 1.2 外部参考文献 ........................................................................................................... 2 名词解释 ................................................................................................................................... 2 指令执行三步骤 ....................................................................................................................... 2 指令流水线(ARM指令) ...................................................................................................... 3 4.1 三级指令流水线 ....................................................................................................... 3 4.2 五级指令流水线 ....................................................................................................... 5 4.3 六级指令流水线 ....................................................................................................... 6 4.4 其它级指令流水线 ................................................................................................... 6

2 3 4

1 参考文献

1.1 内部参考文献

内部参考文献指的是周方辉自生的百度博文中的文件。

无内部参考文献。

1.2 外部参考文献

外部参考文献指的是相对于上述内部参考文献以外的文件。

无外部参考文献

2 名词解释

CPI: 指令周期数,一段时间内走过的指令时钟数除以被执行的指令条数,CPI>=1。 F: Fetch的缩写,取指令的意思,用在分析指令流水线中。 D: Decode,解指令码,用在分析指令流水线中。 E: Execute,执行指令,用在分析指令流水线中。 M:Memory,内存操作。 W: Writeback回写。 S: Stall,拖延clock。 L: Linkret,连接返回。 A: Adjust,调整流水线。

DI:Decode IRQ解析中断指令。 EI:Execute IRQ执行中断指令。 I:Interlock,内部锁状态。

3 指令执行三步骤

一般计算机指令码与数据码没有区别,存在内存中,都属于二进制数字信息。指令码和数据码的区别是一般用PC指针从内存中读取的数据为指令码,否则就当数据码处理。

到目前为止,一般计算机执行指令是用CPU部件来执行的,通常分成: 1、 获取指令,通过PC指针,从内存中获取指令码;

2、 解析指令,使用CPU内部的指令解码器对指令码进行解析,从而得知指令功能。

2 / 6

3、 执行指令,按照解码器得知的功能,CPU调用相应部件来执行该条指令。

三个步骤完成,我们可以抽象理解成,每条指令都通过:取指令模块——>解析指令模块——>执行指令模块,这三个模块。如下图所示:

这三个步骤的协调工作是依靠指令时钟来推动完成的,,指令时钟并不等于CPU的时钟,一个指令时钟可能有几个CPU时钟组成,这看具体的CPU而定。

每个步骤至少需要一个指令时钟来完成。如执行指令这模块,可能要完成内存访问,即数据向内存回写等,就需要多个指令时钟了。

如何让最少的指令时钟执行更多的指令,成为CPU对指令执行速度的标志之一,我们使用CPI值来指示这一特征。

CPI是指在一定的时间范围内,指令时钟除以被执行了的指令条数。CPI值总是大于1,越接近1,表明CPU执行指令越块。

为此,诞生了指令流水线感念。

4 指令流水线(ARM指令)

我们为了提升CPU的指令执行速度,就希望取值、解码和执行3个模块同时都处于工作状态,例如,当我们第一条指令在执行时,第二条指令处于解码阶段,二第三条指令已被读到CPU中;当我们执行第二条指令时,第三条指令处于解码阶段,而第四条指令已被读到CPU中。这样对指令的执行就处于流水线操作状态。这就是指令流水线的概念。

4.1 三级指令流水线

ARM公司的ARM7核使用三级流水线。

3 / 6

1、 Fetch:只负责通过PC从内存中读取指令码数据。

2、 Decode:要完成Thumb和ARM指令的识别、功能和参与寄存器的设别。

3、 Execute:调用寄存器、ALU(及Shift)运算单元,和内存及寄存器的回写功能来完

成操作。

三级指令执行流水线,正好将三个模块充分使用。我们举例说明其工作机制: 假设我们有下面这几条指令被执行(仅仅给出指令功能码):

指令编号 1 2 3 指令 ADD SUB ORR 指令编号 4 5 6 指令 AND ORR MOV 指令编号 7 8 9 指令 ROR EOR LSL

从上述图表看出,从第5个指令时钟开始,CPU指令执行的各个模块都处于工作状态,每一个指令时钟都有一条指令被执行完成。

从第1个指令时钟开始到第10个指令时钟,一共11个指令时钟,这期间共有6条指令被执行,CPI值达1.8(11/6=1.8333);假设,我们从第5个指令时钟开始算,到第10个指令时钟,共花费6个指令时钟,一共执行6条指令,这时,我们的CPI=1(6/6=1),这是理想状态下的CPU最快执行指标。

上述三级流水线仅仅理想状态下,如果我们有内存访问指令如LDR Rd,[Rn],CPI就不能达到1了,因为内存访问需要消耗指令时钟。例如,我们将上述的第3条指令ORR改成LDR类(或者STR类)指令,其指令流水线如下:

4 / 6

搜索更多关于: 关于ARM指令流水线知识 的文档
关于ARM指令流水线知识.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6hi2x3zehd7z7sh756bt_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top