1.CPU基本工作流程

目录

一、冯诺依曼体系(Von Neumann Architecture)

二、CPU的基本工作原理

1.算术逻辑单元ALU

1.1算术单元(Arithmetic Unit)

1.2逻辑单元(Logic Unit)

 1.1.3寄存器(Register) 和内存(RAM)

2.控制单元CU(Control Unit)

3.指令

4.CPU 的基本工作流程 

4.1取指令阶段

4.2解析指令

4.3执行阶段

 5.CPU 的中断模式

中断的用途


一、冯诺依曼体系(Von Neumann Architecture)

数学家 冯·诺依曼 提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成( 运算器 、 控制器 、 存储器 、 输入设备 、 输出设备 ),这套理论被称为冯·诺依曼体系结构。

                         

CPU 中央处理器: 进行算术运算和逻辑判断

存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)

输入设备: 用户给计算机发号施令的设备

输出设备: 计算机个用户汇报结果的设备

针对存储空间

        硬盘 > 内存 >> CPU 

    针对数据访问速度 

        CPU >> 内存 > 硬盘 

 

指令:表现为一种特殊的数据,需要存储在内存中

数据:也需要存储在内存中

一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器,而在执行周期中从内存读出的信息流是数据流,它由内存流向运算器

任何的数据,基本都是以整型,浮点型进行表示,以保存到内存中,“非数数据”都会按照一定标准格式编码成整型

二、CPU的基本工作原理

CPU的构成:CPU主要由运算器控制器寄存器组内部总线构成。

运算器:由算术逻辑单元ALU通用寄存器数据暂存器等组成。程序状态字寄存器接受从控制器送来的命令并执行相应的动作,主要负责对数据的加工和处理。

控制器:由程序计数器PC、指令寄存器IR、地址寄存器AR、数据寄存器DR、指令译码器等。

1.算术逻辑单元ALU

用于进行各种算术逻辑运算(与门、或门、非门、异或门)、算术运算(如加减乘除等),可以搭建出一些运算器

与门

  • 只有输入都为true,输出才为true

或门

  • 只要有一个输入都为true,输出就为true

非门

  • 只有输入都为false,输出才为true

异或门

  • 只有当两个输入不一致时,输出为true

  • 异或门由两个与门、一个或门,一个非门组成

 

 利用或门,异或门构建8位加法器

1.1算术单元(Arithmetic Unit)

算数单元,负责计算机里的所有数字操作,比如四则运算。

1.1.1半加器(Half Adder)

进行两个一位(bit)数相加

 1.1.2全加器(Full Adder)

进行三个一位(bit)数相加,由两个半加器和一个或门组成,先把两个比特位进行相加,把得到的结果再与第三个比特位相加

 

电子开关 -> 基础门电路 -> 异或门电路 -> 半加器 -> 全加器 -> 8位加法器 

1.2逻辑单元(Logic Unit)

逻辑单元主要用来进行逻辑操作,最基本的操作就是与、或、非操作,但不只是一位(bit)数的比较

 ALU符号

ALU是CPU的核心,程序的执行,本质上都是计算+读取+存入,A和B都需要寄存器临时保存数据

 1.1.3寄存器(Register) 和内存(RAM)

寄存器是CPU内部用来存储数据的组件

访问速度:寄存器比内存快了3~4个数量级

存储空间:比内存小很多很多,现在64位的cpu,大概有几十个寄存器,每个寄存器8~几百字节

成本:cpu上的寄存器非常贵

持久化:断电后,数据消失

2.控制单元CU(Control Unit)

  1.  程序计数器 (PC):用于指出下条指令在主存中的存放地址,CPU根据PC的内容去主存处取得指令,由于程序中的指令是按照顺序执行的,所以PC必须有自动增加的功能,也就是指向下一条指令的地址。

  2.  指令寄存器 (IR):用于保存当前正在执行的这条指令的代码,所以指令寄存器的位数取决于指令字长。

  3.  地址寄存器 (AR):用于存放CPU当前访问的内存单元地址。

  4.  数据寄存器DR:用于暂存从内存储器中读出或写入的指令或数据。

  5.  指令译码器:用于对获取的指令进行译码,产生该指令操作所需要的一些列微操作信号,以控制计算机各部件完成该指令。

3.指令

由操作码 + 被操作数组成。其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。指令本身也是一个数字,用二进制形式保存在内存的某个区域中。

4.CPU 的基本工作流程 

4.1取指令阶段

CU根据PC寄存器的值,去内存的响应位置,把指令读取到IR寄存器中,正常情况下PC自动+1


4.2解析指令

CU按照预先设定的指令集解读,指令数据(opcode+操作数)

比如: 0001 1110

假设0001是opcode,代表把指定地址的数据读取到寄存器A中 ,0b1110 -> 14


4.3执行阶段


        LOAD指令应该由CU执行

按照要求执行指令:把内存14地址处的数据读取到寄存器A中

 5.CPU 的中断模式

  正常模式下,CPU可以顺序执行,可以分支执行。但只能按照既定顺序去执行,但是有的时候需要暂时中断CPU的当前执行流,先让CPU去做其他工作,再回过头继续原来的执行流。

 CPU硬件中提供了一种机制(中断)让CPU停下来

    1.保存当前的PC的值到内存的某个位置

    2.修改PC的值,让执行其他执行流

    3.其他执行流结束之后,通过将刚才保存的PC值恢复到PC寄存器

    4.继续原来的执行流

中断的用途

1. IO设备的处理,当有外部数据到达Input设备时,触发某个中断,让当前正在执行的执行流暂停,切换到Input驱动对应的执行流,把Input设备中读取到的数据,放到内存的某个位置,恢复之前的执行流

2. 操作系统中用来做进程调度(线程调度)

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习java的张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值