周方辉关于arm指令流水线知识

周方辉关于arm指令流水线知识

ID:4477939

大小:81.58 KB

页数:6页

时间:2017-12-01

周方辉关于arm指令流水线知识_第1页
周方辉关于arm指令流水线知识_第2页
周方辉关于arm指令流水线知识_第3页
周方辉关于arm指令流水线知识_第4页
周方辉关于arm指令流水线知识_第5页
资源描述:

《周方辉关于arm指令流水线知识》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于ARM指令流水线知识(周方辉)2012/10/22编改记录编写日期内容概要2012-10-22创建目录1参考文献21.1内部参考文献21.2外部参考文献22名词解释23指令执行三步骤24指令流水线(ARM指令)34.1三级指令流水线34.2五级指令流水线54.3六级指令流水线64.4其它级指令流水线66/61参考文献1.1内部参考文献内部参考文献指的是周方辉自生的百度博文中的文件。无内部参考文献。1.2外部参考文献外部参考文献指的是相对于上述内部参考文献以外的文件。无外部参考文献2名词解释CPI:指令周期

2、数,一段时间内走过的指令时钟数除以被执行的指令条数,CPI>=1。F:Fetch的缩写,取指令的意思,用在分析指令流水线中。D:Decode,解指令码,用在分析指令流水线中。E:Execute,执行指令,用在分析指令流水线中。M:Memory,内存操作。W:Writeback回写。S:Stall,拖延clock。L:Linkret,连接返回。A:Adjust,调整流水线。DI:DecodeIRQ解析中断指令。EI:ExecuteIRQ执行中断指令。I:Interlock,内部锁状态。3指令执行三步骤一般计算机

3、指令码与数据码没有区别,存在内存中,都属于二进制数字信息。指令码和数据码的区别是一般用PC指针从内存中读取的数据为指令码,否则就当数据码处理。到目前为止,一般计算机执行指令是用CPU部件来执行的,通常分成:1、获取指令,通过PC指针,从内存中获取指令码;2、解析指令,使用CPU内部的指令解码器对指令码进行解析,从而得知指令功能。6/61、执行指令,按照解码器得知的功能,CPU调用相应部件来执行该条指令。三个步骤完成,我们可以抽象理解成,每条指令都通过:取指令模块——>解析指令模块——>执行指令模块,这三个模块

4、。如下图所示:这三个步骤的协调工作是依靠指令时钟来推动完成的,,指令时钟并不等于CPU的时钟,一个指令时钟可能有几个CPU时钟组成,这看具体的CPU而定。每个步骤至少需要一个指令时钟来完成。如执行指令这模块,可能要完成内存访问,即数据向内存回写等,就需要多个指令时钟了。如何让最少的指令时钟执行更多的指令,成为CPU对指令执行速度的标志之一,我们使用CPI值来指示这一特征。CPI是指在一定的时间范围内,指令时钟除以被执行了的指令条数。CPI值总是大于1,越接近1,表明CPU执行指令越块。为此,诞生了指令流水线感

5、念。1指令流水线(ARM指令)我们为了提升CPU的指令执行速度,就希望取值、解码和执行3个模块同时都处于工作状态,例如,当我们第一条指令在执行时,第二条指令处于解码阶段,二第三条指令已被读到CPU中;当我们执行第二条指令时,第三条指令处于解码阶段,而第四条指令已被读到CPU中。这样对指令的执行就处于流水线操作状态。这就是指令流水线的概念。1.1三级指令流水线ARM公司的ARM7核使用三级流水线。6/61、Fetch:只负责通过PC从内存中读取指令码数据。2、Decode:要完成Thumb和ARM指令的识别、功

6、能和参与寄存器的设别。3、Execute:调用寄存器、ALU(及Shift)运算单元,和内存及寄存器的回写功能来完成操作。三级指令执行流水线,正好将三个模块充分使用。我们举例说明其工作机制:假设我们有下面这几条指令被执行(仅仅给出指令功能码):指令编号指令指令编号指令指令编号指令1ADD4AND7ROR2SUB5ORR8EOR3ORR6MOV9LSL从上述图表看出,从第5个指令时钟开始,CPU指令执行的各个模块都处于工作状态,每一个指令时钟都有一条指令被执行完成。从第1个指令时钟开始到第10个指令时钟,一共1

7、1个指令时钟,这期间共有6条指令被执行,CPI值达1.8(11/6=1.8333);假设,我们从第5个指令时钟开始算,到第10个指令时钟,共花费6个指令时钟,一共执行6条指令,这时,我们的CPI=1(6/6=1),这是理想状态下的CPU最快执行指标。上述三级流水线仅仅理想状态下,如果我们有内存访问指令如LDRRd,[Rn],CPI就不能达到1了,因为内存访问需要消耗指令时钟。例如,我们将上述的第3条指令ORR改成LDR类(或者STR类)指令,其指令流水线如下:6/6在第3条LDE指令的执行阶段多插入连个指令周

8、期来完成M和W动作(从内存中取出数据放入寄存器中)。这样一来,从第5个指令时钟到第12个指令时钟,共花费8个,而执行了6条指令,CPI=1.3(8、6=1.3333),降慢了CPU对指令执行速度。不仅如此,遇到分支跳转指令,原先已经取得的指令和解码的指令都将废弃,从分支的新的指令地址开始从新装配流水线,CPI值也会上升。遇到中断类的是他就更加严重,中断的识别,跳转等都需要消耗大量指令时钟,CPI值上

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。