计算机指令要素,【计算机系统】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 ...
- springsecurity原理执行流程_3. Spark原理-执行流程解析
概念 Job 当在RDD上执行Action操作时就会提交一个Job.这个Job会将RDD分为多分,并将每份RDD提交到集群执行. Stage 当一个Job提交后将分解为多个Stage. Task 一个 ...
- Mybatis执行流程、缓存原理以及相关面试题
一.Mybatis执行流程 具体分析Mybatis是如何操作数据库的! . 1.定义我们的核心配置文件的路径,这个路径是从target/classes下开始找的! String config = &q ...
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),计算机组成原理课程设计...
课程设计任务书 专业:计算机科学与技术 学号: 学生姓名(签名): 设计题目:指令系统及指令总线设计 一.设计实验条件 综合楼808实验室 硬件:PC机 软件:Xilinx ISE ModelSim ...
- 面试官:说说一条查询sql的执行流程和底层原理?
作者:孤独烟,资深后端工程师,业内知名原创作者 一条查询SQL执行流程图如下 本文改编自<高性能Mysql>,烟哥用小说的形式来讲这个内容. 序章 自我介绍 我是一条sql,就是一条长长的 ...
- 一文读懂查询sql的执行流程和底层原理
前言 天天和数据库打交道,一天能写上几十条SQL语句,但你知道我们的系统是如何和数据库交互的吗?MySQL如何帮我们存储数据.又是如何帮我们管理事务?-是不是感觉真的除了写几个「select * fr ...
- SpringMVC执行流程及工作原理
1.SpringMVC的原理和组成 从上图中可以看出:SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC).专门用来开发SpringWeb项目的一种MVC模式的技术 ...
最新文章
- 干货丨机器学习?人工智能?还在傻傻分不清楚?
- Nginx使用http_accesskey_module防盗链,告别referer,告别伪装
- python使用界面-(八)Python 图形化界面设计
- 【Flutter】Image 组件 ( 内存加载 Placeholder | transparent_image 透明图像插件 )
- header+php+xiazai_php使用header函数实现文件下载
- 深入理解消息队列(场景,对比,原理和设计思想)
- 什么是JSON处理(JSON-P API)?
- 大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 解读
- IntelliJ IDEA 2019 安装lombok
- 实用的软件安装及使用
- 安装极狐GitLab(ubuntu)----写给不爱看官方文档的人
- Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
- springboot农机装备生产车间物料配送车辆调度管理系统毕业设计源码181710
- 2020城市大脑与超级智能建设规范研究报告(附下载)
- 如何通过photoshop制作保存*.ico的图标文件教程
- Android手把手教你使用阿里云接口实现人脸定位、人脸检测、人脸对比功能。
- 检索所学课程包含学生S3所学课程的学生学号
- Google创新方法「设计冲刺」
- 最新!友邦千盛“春雨计划”2023
- linux鸟叔私房菜读后感,鸟叔的Linux私房菜 读书笔记 第一章