【计算机系统】CPU指令执行流程与指令流水线原理
【计算机系统】CPU指令执行流程与指令流水线原理
一、指令执行流程
冯诺依曼架构CPU指令执行的五个阶段:
阶段 | 涉及的功能部件 |
---|---|
IF | 指令寄存器IR、程序计数器PC |
ID | 指令译码器ID |
EXE | CPU内各个单元:ALU、Cache、Registers .etc |
MEM | |
WB | 状态寄存器FR、Registers. etc |
表1
在上述各阶段CPU与内存的交互时,还涉及系统总线如AB、CB、DB等
1、取指阶段(IF, Instruction Fetch)
在上一个指令周期时,程序计数器PC中记录的是下一条指令的内存地址。因此IF阶段CPU指令寄存器按照PC的地址从主存中取得一条指令,当前指令被取出后,PC更新到下一条指令的地址。
2、指令译码阶段(ID, Instruction Decode)
在ID阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。
3、执行指令阶段(EXE, Execute)
通过对指令的译码,CPU已经知晓这条指令要如何执行,因此EXE阶段就是通过操作控制器OC,按确定的时序向相应的部件发出微操作控制信号以对指令要求的特定操作进行具体实现。EXE阶段CPU的不同部分(如ALU、寄存器组等)被联合起来,以实现指令所需的操作。
4、访存取数阶段(MEM, Memory)
根据指令需要可能要访问内存,读取操作数。MEM阶段根据指令地址码(如果有要求的话)得到操作数在主存中的地址,并从主存中读取该操作数用于运算。
5、写回阶段(WB, Write Back)
WB阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:
①写入CPU的内部寄存器中,以便被后续的指令快速地存取
②写入内存
③改变FR中标志位状态(如果需要改变的话),用来影响接下来程序的动作
WB阶段结束后,若无意外事件(如结果溢出等)或异常中断发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环。上述五个阶段在具体实现过程中会引入指令流水线来提高效率。
二、指令流水线(Instruction Pipeline)
指令流水线概念的提出是为了提高CPU处理指令的效率。
假设将CPU执行一条指令按照流程分为四个步骤如图1(ii)
图1
考虑一个完全不采用流水线的系统如图3(i),对于一组指令序列,CPU总是等某条指令的全部过程都执行完之后再开始下一条指令。与之对比的是图1(ii)的指令流水线,在第一条指令完成IF后,第二条指令就可以开始IF,依次类推。直观地,指令流水可以大幅提高CPU处理指令的效率。
1、指令流水线基本概念
①指令流水周期:将一条指令划分为不同的步骤涉及到的一个重要问题就是——不一致的划分现象,即每个步骤完成的时间不均匀,例如在经典划分中,IF,WB的速度比较快而EXE速度较慢,如图2所示阴影部分为指令步骤所需的时间。因此必须把流水周期设置为单级操作的最大时延。指令阶段间的指令转移(例如IF→ID)是由时钟信号控制的,驱动这条指令流水工作的时钟周期应该要等于这个最大时延。
图2
②CPI(Cycles Per Instruction):即每条指令经过整个流水线所需周期数,它与各指令有关,不同的指令,CPI也不相同。因此,一般使用平均CPI表示
③ILP(Instruction Level Parallelism):即指令级并行度,是指当指令流水线被充分利用时,一个基本周期内并行执行的指令数
④指令发射速率:指在每个周期内发射的指令数,在数值上等于超标量处理机的级数。
2、影响流水线性能的因素
①数据相关:如第一条指令的输出为第二条指令的输入,则第二条指令必须等待第一条指令执行完毕而不能直接进入流水,造成流水线效率下降
②控制相关:如遇到分支判断指令,那么该指令可能顺序执行,也可能分支跳转到其他位置,造成流水线断流。
引入流水线会提高CPU指令处理效率,但过深的流水等级会使数据相关和控制相关的副作用增大,反而又降低了CPU工作性能。
3、流水线的改进技术——超标量技术
图3
采用资源重复的并行性思想,设置多条指令流水线和多个功能部件。每个周期发送多条指令(即指令发射速率大于1),同时并行地对多条指令进行流水处理
【计算机系统】CPU指令执行流程与指令流水线原理相关推荐
- 计算机指令要素,【计算机系统】CPU指令执行流程与指令流水线原理
[计算机系统]CPU指令执行流程与指令流水线原理 一.指令执行流程 冯诺依曼架构CPU指令执行的五个阶段: 阶段 涉及的功能部件 IF 指令寄存器IR.程序计数器PC ID 指令译码器ID EXE C ...
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),《计算机组成原理》课程设计报告材料...
<计算机组成原理>课程设计报告材料 (28页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档电子信息学院实验报告书课程 ...
- Oracle SQL语句执行流程与顺序原理详解
以前读的文章,保存到本地了,忘记来源了,分享一下,本地存着怕丢了 Oracle SQL语句执行流程与顺序原理详解 第一步:客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时,客户端会把这条S ...
- Mybatis执行流程、缓存原理以及相关面试题
一.Mybatis执行流程 具体分析Mybatis是如何操作数据库的! . 1.定义我们的核心配置文件的路径,这个路径是从target/classes下开始找的! String config = &q ...
- springsecurity原理执行流程_3. Spark原理-执行流程解析
概念 Job 当在RDD上执行Action操作时就会提交一个Job.这个Job会将RDD分为多分,并将每份RDD提交到集群执行. Stage 当一个Job提交后将分解为多个Stage. Task 一个 ...
- 一文读懂查询sql的执行流程和底层原理
前言 天天和数据库打交道,一天能写上几十条SQL语句,但你知道我们的系统是如何和数据库交互的吗?MySQL如何帮我们存储数据.又是如何帮我们管理事务?-是不是感觉真的除了写几个「select * fr ...
- 面试官:说说一条查询sql的执行流程和底层原理?
作者:孤独烟,资深后端工程师,业内知名原创作者 一条查询SQL执行流程图如下 本文改编自<高性能Mysql>,烟哥用小说的形式来讲这个内容. 序章 自我介绍 我是一条sql,就是一条长长的 ...
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),计算机组成原理课程设计...
课程设计任务书 专业:计算机科学与技术 学号: 学生姓名(签名): 设计题目:指令系统及指令总线设计 一.设计实验条件 综合楼808实验室 硬件:PC机 软件:Xilinx ISE ModelSim ...
- SpringMVC执行流程及工作原理
1.SpringMVC的原理和组成 从上图中可以看出:SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC).专门用来开发SpringWeb项目的一种MVC模式的技术 ...
最新文章
- 项目开发总结:前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
- matlab preloadfcn,simulink中打不开SysytemGenerator?返回错误Error evaluating ...
- 2017杭州·云栖大会全纪实
- 微服务实战:从架构到发布(二)
- sql语句查询商品的一二三级分类都是一个字段怎么办_畅购商城(三):商品管理...
- java 日期计算类_java日期计算工具类【包含常用的日期计算方法】
- 一次打包,无限复用!教你用 PyCharm 搭建一劳永逸的开发环境
- 机器人加锤石如何放技能q_ADC必须会躲4个技能,前两个训练走位,能躲图4的只有闪现!...
- how CRM One Order search by contact name work in the past
- python *args用法_python函数参数*args**kwargs用法实例
- WPF地区选择控件(内附下载地址)
- Linux内核(1)--从开机到main函数
- 洛谷P1098 字符串的展开【字符串】【模拟】
- Java深入研究_Java底层深入研究(一)
- Android4.0源码目录结构详解
- LeetCode之旋转数组
- Hbase 的Java API 操作
- HTML写一个简单网页
- GFZRNX学习教程(安装以及rinex格式转换)
- 那个被“爱”刺伤的30岁女孩,在这款游戏里完成了自我“救赎”
热门文章
- Linux(redhat)镜像
- Netty 学习之旅:ByteBuf 篇之 ByteBuf 内部结构与 API 学习
- JAVA二级计算机干货整理(一)基本操作题
- AWS DynamoDB的简介与使用
- 一文深度学习建模预测全流程(Python)
- 《数据结构与算法之哈夫曼树(Java实现)》
- css中脱离标准流的三种方式,CSS的三种手段让元素脱离标准本文档流
- 服务器WPS上的文档删除了怎么办,wps怎么样找回已经删除的文档
- 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)
- 图形世界分裂的两派——理清Direct3D和OpenGL的脉络