CPU
对算数逻辑单元不了解的建议先阅读这篇小文章:第五课_算术逻辑单元
对寄存器&内存不了解的建议先阅读这篇小文章:第六课_寄存器&内存
本课链接(B站):计算机科学速成课第七课
本节主要内容:CPU的结构
一、CPU的作用
CPU是计算机的中央处理器,是计算机的核心
来自百度百科:
中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元
二、CPU理论模型
:CPU简易理论模型:
三、CPU模型解释
部件 | 解释 |
---|---|
ABCD寄存器组 | 用于暂存(运算过程中用到的数据以及)运算的结果 |
E寄存器 | 指令寄存器,由操作码和执行操作的地址组成,存当前指令 |
F寄存器 | 指令地址寄存器,存当前指令的内存地址 |
RAM | 存n个地址及数据 |
ALU | 逻辑运算单元,负责执行数学指令(加减乘除、大小比较等) |
CONTROL UNIT | 复杂的门电路,负责对指令取址、解码、执行 |
CLOCK | 控制 CPU取址、解码、执行的 节奏,推进CPU的内部操作 |
四、CPU怎么执行程序
程序是由一个个操作组成的,每一个操作都对应着一条指令。
计算机怎么运行程序?
当CPU运行程序时,像加减乘除之类的数学指令,会交给算术逻辑运算单元ALU执行;而像读写值之类的内存指令,就会交给RAM去执行。
计算机如何识别一个个指令呢?
给每个指令分配一个由0和1组成的ID,我们把这个ID叫做操作码。
举例:
操作名 | 操作码 | 操作 |
---|---|---|
LOAD-A | 0000 | 加载数据到寄存器A中 |
LOAD-B | 0001 | 加载数据到寄存器B中 |
ADD | 0010 | 将两个数据相加,存到储存单元中 |
计算机执行程序的流程是什么?
整体流程为:取指令->解码->执行
接下来执行一个程序感受一下整个过程是如何发生的:
五、使用CPU模型执行LOAD-A指令
程序开始执行前,所有寄存器内的值都为0
:CPU初始状态:
1、取指令
- 指令地址寄存器:取对应地址的指令
此处为取地址为0处的指令,指令为00000000
2、解码
- 指令寄存器:操作码为0000,对应的操作为LOAD-A,即将数据存入寄存器A中。
进行操作的地址为0000,即要传入寄存器A中的数据来自内存单元0000。
:CPU解码状态:
执行的内部逻辑为:指令寄存器的值在CONTROL UNIT中作为门逻辑电路的输入,输出的结果使得read enable线为可读状态
3、执行
将通过读取线读取的数据存入寄存器A中
:CPU执行状态:
4、执行结束
关闭所有线路通道,指令地址寄存器中的值+1,指向下一条指令。
六、程序执行速度-时钟
CPU完成一次取指令->解码->执行的周期时间越短,程序执行速度越快。这个周期的长短,取决于CLOCK(时钟)。
时钟频率: 时钟以精准的间隔触发电信号,推进CPU内部操作,这个间隔的倒数称为时钟频率。
我们可能听到过的给CPU超频降频,就指的是调整时钟的频率。
七、超频降频
超频:就是把时钟频率加快,加快计算机的运行速度。
降频则反之。
厂家一般会预留一些超频空间,但若时钟频率过快,可能会烧坏元器件;而在计算机运行较简单的程序或计算机无人使用时,降频可以省电。
我们电脑的自动睡眠功能,就是给时钟降了频。
总结:
1、CPU是计算机程序的中央处理器是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元
2、CPU执行程序的流程
3、时钟频率是CPU完成一次取指令->解码->执行的周期时间的倒数,代表着程序执行的速度快慢。
以上均为个人学习所得见解,若有错误或不足欢迎补充和指正