一、计算机系统硬件组成

  计算机系统的基本组成由:计算器、控制器、存储器、输入和输出设备这5大核心部件组成。

  运算器和控制器等继承在一起成为CPU。以下通过这张图能够非常清楚的表达计算机系统。先从全局上对CPU的位置和作用有一定认识。

二、CPU和内存之间的工作

 (1)计算机的工作由程序控制。程序是一个指令序列,指令是能被计算机理解和运行的操作命令。

 (2)程序(指令)和数据均以二进制编码表示,均存放在存储器中。

 (3)存储器中存放的指令和数据按地址进行存取;

 (4)指令是由CPU一条一条顺序运行的。

由此可见。CPU的主要任务是运行指令,并按指令的规定对数据进行操作。

正例如以下图所看到的:

  指令也就是命令,用来规定CPU运行什么操作。CPU控制器靠指令指挥机器工作,人们用指令表达自己的意图,并交给控制器运行。

  指令是构成程序的基本单位,程序是由一连串指令组成的。指令採用二进位表示。大多数情况下。指令由两个部分组成:

 

 操作码

操作数地址

  操作码:指出CPU应运行何种操作的一个命令词。比如加、减、乘、除、取数、存数等

  操作数地址:指出该指令所操作(处理)的数据或者数据所在位置

 

三、CPU的结构和内部工作

 

CPU是计算机的运算和控制核心。主要由运算器、控制器、寄存器组和内部总线等部件组成。

 

运算器:用于对数据运行运算

算术逻辑单元(ALU):负责处理数据

累加寄存器(AC):为ALU提供一个工作区

数据缓冲寄存器(DR):作为CPU和内存、外部设备之间数据传送的中转站和操作速度上的缓冲。

状态条件寄存器(PSW):存放当前指令运行结果的各种状态信息。控制信息。

 

控制器:控制整个CPU工作,使计算机运行过程自己主动化

指令寄存器(IR):CPU运行指令时,先从DR中把指令送入IR暂存。然后指令译码器依据IR的内容产生各种微指令。

程序计数器(PC):具有寄存信息和计数的功能。

每读一条指令装入IR,然后PC+1

地址寄存器(AR):AR保存当前CPU所訪问的内存单元的地址,知道内存的读/写完毕。

指令译码器(ID):ID对指令中的操作码字段进行分析解释,也就是来识别指令规定的操作。识别后向操作控制器发出详细的控制信号,控制各部件工作,以完毕所需的功能。

 

寄存器组:

专用寄存器:运算器和控制器中的寄存器是专用寄存器。其作用是固定的。

通用寄存器(GPR):參加ALU运算的操作数通常来自GPR。运算结果也送回GPR。

  可由程序猿规定其用途。

 

内部总线:

  通过内部总线将CPU内部的全部结构单元内部相连。就如铁轨一样,火车必须行驶在铁轨上。

四、一条指令在cpu中的运行流程

5个阶段:取指、指令译码、运行指令、訪存取数、结果写回。

 例如以下例:

地址

op码

地址码

103

ADD

R1,R2

说明:R1=100,R2=20;ADD指令即做R1+R2操作;

运行过程:
  取指:程序计数器PC装入所要运行的指令的地址。

通过指令总线装入指令寄存器IR,程序计数器PC指令地址+1,为下一条指令做准备。

  

  指令译码:指令译码器ID对指令寄存器IR中的指令进行译码。识别出指令类型。

  运行指令:操作控制器存储送出控制信号到通用寄存器,选择R1,R2,通过ALU处理数据进行R1+R2。完毕后通过内部总线传送操作。将R1+R2的结果120打入缓冲寄存器DR,并将进位信号保存在状态条件寄存器PSW。

  结果写回:将DR中的结果120打入通用寄存器R2中。替换掉原来R2的值。

 

再多的文字性描写叙述,总是不比图更easy理解。例如以下图能清楚的明确指令运行中各个寄存器运行的时间和发挥的作用。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWtremhqag==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

图总是死的。不能清楚地知道指令的运行顺序,想要动态的学习指令的运行过程,请见此教程演示。非常好!

指令运行过程演示

计算机系统—CPU结构和内部工作的更多相关文章

  1. 代码中理解CPU结构及工作原理

    一.前言 从研究生开始到工作半年,陆续在接触MCU SOC这些以CPU为核心的控制器,但由于专业的原因一直对CPU的内部结构和工作原理一知半解.今天从一篇博客中打破一直以来的盲区.特此声明,本文设计思 ...

  2. 你知道CPU结构也会影响Redis性能吗?

    啦啦啦,我是卖身不卖艺的二哈,ε=(´ο`*)))唉错啦(我是开车的二哈),我又来了,铁子们一起开车呀! 今天来分析下CPU结构对Redis性能会有影响吗? 在进行Redis性能分析的时候,通常我们会 ...

  3. CPU处理器架构和工作原理浅析

    CPU处理器架构和工作原理浅析 http://c.biancheng.net/view/3456.html 汇编语言是学习计算机如何工作的很好的工具,它需要我们具备计算机硬件的工作知识. 基本微机设计 ...

  4. 4000余字为你讲透Codis内部工作原理

    一.引言 Codis是一个分布式 Redis 解决方案,可以管理数量巨大的Redis节点.个推作为专业的第三方推送服务商,多年来专注于为开发者提供高效稳定的消息推送服务.每天通过个推平台下发的消息数量 ...

  5. spring 内部工作机制(二)

    本章节讲Spring容器从加载配置文件到创建出一个完整Bean的作业流程及参与的角色. Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表, ...

  6. 8. 理解ZooKeeper的内部工作原理

    到目前为止,我们已经讨论了ZooKeeper服务的基础知识,并详细了解了数据模型及其属性. 我们也熟悉了ZooKeeper 监视(watch)的概念,监视就是在ZooKeeper命名空间中的znode ...

  7. Spring容器技术内幕之内部工作机制

    引言 Spring容器就像一台构造精妙的机器,我们通过配置文件向机器传达控制信息,机器就能够按照设定的模式工作.如果将Spring容器比作一辆车,那么可以将BeanFactory看成汽车的发动机,而A ...

  8. 【转】Java学习---HashMap和HashSet的内部工作机制

    [原文]https://www.toutiao.com/i6593863882484220430/ HashMap和HashSet的内部工作机制 HashMap 和 HashSet 内部是如何工作的? ...

  9. CPU结构与指令执行过程简介

    CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件. CPU结构 CPU由通用寄存器组,运算器,控制器和数据通路等部件组成. 寄存器包括 数据寄存器 ...

随机推荐

  1. Java基础关于Map(字典)的方法使用

    Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: impo ...

  2. 2018上半年GitHub上最热门的开源项目

    关注GitHub的人都知道,这个平台上面有太多优秀的值得学习的开源项目了,这里总结了2018上半年GitHub上最热门的开源项目. 1: tensorflow https://github.com/t ...

  3. JAVA学习第五十四课 — IO流(八)打印流 & 序列流

    一.综合练习-文件清单列表 获取指定文件夹下,指定扩展名的文件(含子文件夹),并将这些文件的绝对路径写到一个文本文件里.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3. ...

  4. 用C#调用Lua脚本

    用C#调用Lua脚本 一.引言 学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续.上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何 ...

  5. 44.Node.js Express 框架--web框架

    转自:http://www.runoob.com/nodejs/nodejs-express-framework.html Express 简介 Express 是一个简洁而灵活的 node.js W ...

  6. JavaScript--数据结构与算法之二叉树

    树是一种非线性的数据结构,以分层的方式存储数据. 二叉树:查找非常快,而且二叉树添加或者删除元素也非常快. 形象的可以描述为组织结构图,用来描述一个组织的结构.树是由边连接的点组成.树的一些基本概念: ...

  7. JS错误记录 - dom操作 - 排序

    本次练习错误总结: 1. for循环要套到按钮的onclick里面,否则onclick点击事件无法依次执行. 2. var n1, var n2 这两个变量是arr.sort排序使用的,所以应该放在s ...

  8. 【Uva 10163】Storage Keepers

    [Link]: [Description] 你有n(n≤100)个相同的仓库.有m(m≤30)个人应聘守卫,第i个应聘者的能力值 为Pi(1≤Pi≤1000).每个仓库只能有一个守卫,但一个守卫可以看 ...

  9. IOS越狱开发错误解决

      Questions: haseScriptExecution Run\ Script /Users/jun/Library/Developer/Xcode/DerivedData/ButtonMa ...

  10. 【JEECG技术博文】JEECG 简单实例解说权限控制

    JEECG简单实例解说权限控制 请大家点击这里为我们投票.2015博客之星.很多其他分享敬请期待 博文地址:http://blog.itpub.net/30066956/viewspace-18687 ...