CPU

1.寄存器;
2.控制器CU(Control Unit):
          指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器OC(OperationController);
3.ALU(算数逻辑运算单元),不包括寄存器;
4.总览

过程详述:

几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令、指令译码、执行指令、访存取数、结果写回。

1.取指令阶段

取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。

程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依此类推。

2.指令译码阶段

取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。

在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。

在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。

在传统的设计里,CPU中负责指令译码的部分是无法改变的。不过,在众多运用微程序控制技术的新型CPU中,微程序有时是可重写的,可以通过修改成品CPU来改变CPU的译码方式。

3.执行指令阶段

在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。

此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。

例如,如果要求完成一个加法运算,算术逻辑单元ALU将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果。

4.访存取数阶段

根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。

此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。

5.结果写回阶段

作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。

许多新型CPU可以同时取出、译码和执行多条指令,体现并行处理的特性。


 

http://scs.bupt.edu.cn/eschool/resource/cai/%E7%B4%A0%E6%9D%90%E5%BA%93/fig/Flash/5.5-5.13.swf

一条指令在cpu中的执行流程(理解CPU组成)相关推荐

  1. 一文搞懂select语句在MySQL中的执行流程!

    MySQL作为互联网行业使用最多的关系型数据库之一,与其免费.开源的特性是密不可分的.然而,很多小伙伴工作了很多年,只知道使用MySQL进行CRUD操作,这也导致很多小伙伴工作多年后,想跳槽进入大厂, ...

  2. cpu 中控制单元执行的任务分析

    控制单元(Control Unit)是计算机中的一个重要组件,它的主要任务是协调和控制计算机的各个部件,以执行程序中的指令序列.控制单元负责解码指令.生成控制信号,并将这些信号发送给其他组件,例如运算 ...

  3. cpu中计算机的主要功能,cpu主要功能详解介绍

    cpu即中央处理器,是计算机的运算核心和控制核心.下面是学习啦小编为大家介绍cpu的主要功能详解,欢迎大家阅读. cpu的基本介绍 cpu中央处理器(CPU,Central Processing Un ...

  4. 计算机指令在CPU中的执行过程(图文版)

    为了了解指令的大概流程,下面以加法指令做以说明(引用<计算机原理>). 指令形式: ADD EA 该指令一个隐含的操作数存在累加器(AC)中,EA为另一个操作数在主存当中的有效地址. 该指 ...

  5. .net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解之一(转)

    http://www.codingthink.com/c/20121223/201212231458171.html 原文出处: http://www.c-sharpcorner.com/Upload ...

  6. java 获取内存大小_JVM面试题扩展:Java代码在JVM中的执行流程

    代码示例: public class Test { // 常量 public static final String MAN_SEX_TYPE = "man"; // 静态变量 p ...

  7. CPU中的“核”怎么理解

    结论 一块CPU拥有一到多个核心(core),如:单核,双核,十六核等等:每一个单独的核心由以下部分组成 control unit (CU) arithmetic logic unit (ALU) r ...

  8. CPU和软件模拟异常的执行流程

    文章目录 CPU异常记录 异常的分类 CPU产生的异常 软件模拟产生的异常 CPU异常的处理流程 CommonDispatchException函数分析 总结 模拟异常记录 模拟异常的执行流程 Rai ...

  9. Linux 从头学 01:CPU 是如何执行一条指令的?

    摘自:Linux 从头学 01:CPU 是如何执行一条指令的? 作者:IOT物联网小镇 发布时间:2021-07-02 08:22:43 网址:https://blog.csdn.net/jchen1 ...

最新文章

  1. 为什么vue.js一眼看上去很美?
  2. java分布式锁终极解决方案之 redisson
  3. 不知道这些AI术语,还敢说你很了解AI吗?
  4. 误删了数据库,我只能跑路么?
  5. leetcode算法题--最长公共子序列★
  6. win10下使用python访问vmbox中的redis
  7. springcloud的理解
  8. java怎么实现同步到微博功能_新浪微博信息站外同步的完整实现
  9. 笔记 我的Linux入门之路,我的LINUX之路----linux目录文件管理
  10. SQL PASS西雅图之行——University of Washington篇
  11. C++ 面向对象编程
  12. 52. yii create webapp
  13. 拓端tecdat|Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
  14. Linux下make -j加快编译速度
  15. Servlet概述及其原理
  16. 红警3修改器无法连接服务器,红警3序列号修改器-不能加入游戏怎么办?红警3连局域网说cd-– 手机爱问...
  17. ios系统访问ftp服务器,ios系统访问ftp服务器
  18. ​Android实现仿QQ登录可编辑下拉菜单
  19. 磁盘,分区,文件系统
  20. HTML文件标签和文本标签

热门文章

  1. Python每日一练19、简单的加减法数学游戏
  2. CAA的安装配置与帮助文档
  3. inner_product函数实现向量内积矩阵乘法
  4. 大连计算机学校地址到火车站,大连火车站地址及交通指南
  5. 【疯壳·智能机器人教程2】人形街舞机器人-机体组装及测试
  6. springboot+mybatis+thymleft 做一套简单增删改查
  7. 常见的业务逻辑漏洞-整合篇
  8. IT项目团队管理及领导人素质随记
  9. 启动tomcat发现80端口被ntoskrnl.exe 占用 80 端口
  10. Python之定时器的使用