一、计算机的基本组成

冯·诺依曼计算机的特点(机器以运算器为中心)

1. 计算机由控制器(分析和执行机器指令并控制各部件的协同工作)、运算器(根据控制信号对数据进行算术运算和逻辑运算)、存储器(内存存储中间结果,外存存储需要长期保存的信息)、输入设备(接收外界信息)和输出设备(向外界输送信息)五大部件组成
2. 指令(程序)和数据以二进制不加区别地存储在存储器中
3. 程序自动运行

现代计算机由三大部分组成(已经转化为以存储器为中心)

1. CPU(Central Processing Unit) 中央处理器,核心部件为ALU(Arithmetic Logic Unit,算术逻辑单元)和CU(Control Unit,控制单元)
2. I/O设备(受CU控制)
3. 主存储器(Main Memory,MM),分为RAM(随机存储器)和ROM(只读存储器)
//CPU与MM合成主机,I/O设备可称为外部设备

二、一条指令在CPU的执行过程

// 专业术语
1. Ad(Address) 形式地址
2. DR(Data Register) 数据寄存器
3. AR(Address Register) 地址寄存器(MAR)
4. IR(Instruction Register) 指令寄存器
5. BR(Buffer Register) 缓冲寄存器(MBR)
5. ID(Instruction Decoder) 指令译码器
6. PC(ProgramCounter) 程序计数器

过程详述:

几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:

取指令

指令译码

执行指令

访存取数

结果写回

  1. 1.取指令阶段取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依此类推。//PC -> AR -> Memory//Memory -> IR
    2.指令译码阶段取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行。//                        { 1.Ad//Memory -> IR -> ID ->   { 2.PC变化 //                        { 3.CU(Control Unit)
    3.访存取数阶段根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。//Ad -> AR -> AD -> Memory
    4.执行指令阶段在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。例如,如果要求完成一个加法运算,算术逻辑单元ALU将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果。//Memory -> DR -> ALU
    5.结果写回阶段作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。//DR -> Memory
    6.循环阶段在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。//重复 1~5//遇hlt(holt on)停止

计算机指令执行过程详解相关推荐

  1. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

  2. 数据库除关系运算符执行过程详解

    数据库除关系运算符案例详解 声明与简介 数据库里的Div(除)运算符是借鉴了数学基本元素除的理念,即整体除以个体,得到组(满足个体的特征的集合). 所以如果"被除数"的集合R有4个 ...

  3. mysql查询解析过程_MySQL查询执行过程详解

    查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览.查询是一个独立的.功能强大的.具有计算功能和条件检索功能的数据库对象.MySQL数据库中,MySQL ...

  4. 一个sql的执行过程详解

    作者:猿来是八阿哥 链接:https://www.jianshu.com/p/e2926d6a808f 一个sql的执行过程 一. 组成部分 PDO_MYSQL is a driver that im ...

  5. sql server修改字段编码格式_原理:一条 sql 的执行过程详解

    思维导航: 写操作执行过程 组件介绍 1.undo log 与 MVCC 2.redo log 与 Buffer Pool 3.bin log(Server 层) 1.连接器 2.缓存(Cache) ...

  6. ajax是宏任务还是微任务,(滴滴面试)事件循环Event Loop及微任务和宏任务的执行过程详解...

    之前一直在面试,对于一些大厂面试题真的还是很注重原理和基础的, 还有就是数据结构和算法这种,校招的话,这些是很重要的, 前天和滴滴的人面试,问的真心觉得不难,而且也都是现在面试前端很常见的问题, 对于 ...

  7. 非相关子查询和相关子查询执行过程详解

    前段时间有一个相关子查询的SQL语句,看不太懂他是如何执行的,为什么会出现那个结果.着实纠结了一把.下面来讲一下非相关子查询和相关子查询的执行过程是怎样的. 非相关子查询 先看一个非相关子查询到sql ...

  8. 计算机指令的执行过程详解

    在准备考研过程中,又复习到了<计算机组成原理>. 这门当初视之如猛兽,弃之如敝履的课. 但是学计算机不知底层.如同空中驾高楼. 所以懂这懂一点还是很必要的. 下面我就直接举一个例子 是从王 ...

  9. Linux is执行程序命令,linux命令执行过程详解

    1.执行命令 输入命令后回车 提请shell程序找到键入命令所对应的可执行程序或者代码,并且由其分期后,提交给内核分配资源将其运行起来. 在shell中可执行的命令有俩类: 内部命令:由shell自带 ...

  10. MySQL探秘(二):SQL语句执行过程详解

    只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化.  当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解了这一点,很 ...

最新文章

  1. Maven:No goals have been specified for this build. You must specify a valid lifecycle phase
  2. Deverpress 中国代理商使用 官方地址
  3. AServer - 基于Asp.net core Kestrel的超迷你http服务器
  4. vue 脚手架测试环境_关于单元测试脚手架的几点思考
  5. vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw
  6. 深度学习笔记(36) 边界框预测
  7. C# if---else---练习题整理
  8. 【金融】【随机森林】使用随机森林对期货数据(涨跌)进行回归
  9. Python 之面向对象 继承
  10. pcb文件转成原理图_电子设计基础教学-PCB板制作之 AD(Altium Designer)的工程建立过程...
  11. html怎么把音乐播放器放到中间,怎么把音乐播放器放到自己的博客首页面上去?...
  12. 计算机网络国家标准,计算机网络教室建设标准本标准参考国家标准GB50174并结合金州.doc...
  13. 8.千峰教育os与窗口控制与内存修改与语言----自制随堂笔记
  14. 移动端微信浏览器调试工具整理eruda,微信x5调试工具无法使用,推荐新工具eruda、vconsole和debugxweb
  15. [蓝桥杯2019初赛]外卖店优先级
  16. 分布式、高并发、高性能场景(抢购、秒杀、抢票、限时竞答)数据一致性解决方案
  17. rust react tauri app 现有前端项目打包(windows)
  18. Embedded metastore is not allowed. Make sure you have set a valid value for hive.metastore.uris
  19. biosrecovery什么意思_recovery是什么意思
  20. Python---文件写入

热门文章

  1. vue element-ui 界面有上下两部分table,拉动改变上下区域大小 关键代码
  2. English Pod 听力学习之路 C69 - C75
  3. ZPL条码及参数说明
  4. python MDI窗口加载ui文件方法
  5. 路由器WIFI密码忘记了怎么办
  6. 思科下一代模拟器EVE-NG做一个思科交换机用作DHCP服务器实验
  7. 【Element-UI】在vue中将组件调整为英文(国际化)
  8. React+Antd中修改分页组件的英文显示
  9. The7th Zhejiang Provincial Collegiate Programming Contest-Problem A:A - Who is Older?
  10. Spring Boot中使用JUnit5进行单元测试