CPU工作原理概述

为了了解CPU的完整工作过程,我们需要知道两件事,第一,CPU是如何获取到指令的;第二,CPU是如何执行指令的。


目录

一、CPU和内存的交互方式

1、地址空间的概念

2、CPU的取值过程

二、CPU内部的执行过程

1、CPU的基本组成

2、CPU的指令执行过程


一、CPU和内存的交互方式

这里我们要从整体的角度了解CPU是如何从内存中获取到指令或者数据的。

1、地址空间的概念

一个处理器能够访问(读写)的存储空间是有限的,我们称这个空间为地址空间(寻址空间),地址空间的大小跟地址总线的数目有关。

假设有一个8G的内存,地址总线为32,那么CPU可以访问到的大小也只是 2^32 ≈ 4G。

2、CPU的取值过程

为了简化过程,假设地址总线只有2根(2 bit)。CPU要从内存中获取数据,是通过地址获取的,即通过地址总线把地址发送给内存,内存再通过数据总线将数据传递给CPU。

假设CPU要获取 0x04地址对应的数据,那么CPU就会通过地址总线发送 11,内存就会通过数据总线返回 0x04对应的数据。但是介于地址总线的数目是2,CPU可以访问的地址只能是00 ~ 11,即0x00~0x04,这也就是为什么处理器可以访问的存储空间是有限的。

二、CPU内部的执行过程

这里我们将进入CPU内部了解CPU获取到指令以后,是如何执行指令的。

1、CPU的基本组成

CPU主要由两部分组成:控制器运算器

控制器:CPU的指挥中心,控制着整个CPU执行程序的逻辑过程。比如CPU从内存获取哪条指令、下一步要执行哪条指令都是由控制器决定的。

运算器:负责算术运算和逻辑运算,其核心是算术逻辑单元ALU。比如CPU从内存获取到了乘法指令,运算器拿到以后,就会运行对应的乘法单元。

2、CPU的指令执行过程

以CPU执行一条乘法运算为例,我们跳过CPU获取乘数和被乘数的过程,下面重点来介绍CPU获取并执行乘法指令的过程。CPU的指令执行分为三步:

  • 取指:从内存中获取到乘法指令
  • 译码:识别上一步获取到的指令,将指令解析成具体的运算。
    • 站在CPU的角度,它并不知道这是什么指令,如果不知道这是什么指令,也就无法将其送入到对应的运算单元进行运算。
  • 执行:控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器,指令计数器中的地址会自增

(1) 取指

指令计数器PC 中每次存放着下一次执行指令的地址,CPU将地址通过地址总线发送给内存,内存通过数据总线将地址对应的内容返回给CPU,CPU将指令保存到指令寄存器IR中,这就完成了一次取指的过程。

(2) 译码

CPU现在已经拿到了要执行的指令,但是CPU并不知道这是什么指令,因此需要把指令送到指令译码器进行解析。

(3) 执行

经过指令译码器的解析,CPU知道这是一个乘法指令,于是就把这条乘法指令送到运算器的乘法运算单元,经过运算得到的结果会保存到寄存器中。

指令执行完毕以后,CPU会为下一次取指令做准备,指令计数器中的地址会自增。(这里先这样理解,后面了解指令流水线后,当译码器在译码的时候,PC就已经闲下来了,这时PC就已经自增来取下一条指令了)

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值