本文主要用通俗的语言谈谈CPU中到底有什么
1、CPU有四大功能:
- 指令控制
- 操作控制
- 时间控制
- 数据加工
我们一个一个来看,为什么有这四大功能。
第一个,指令控制
第四章我们讲了计算机的指令系统,对指令做了很好的诠释。我们知道,程序实际上是由一系列指令组成的,我们必须按照顺序来执行指令,不能随意执行。所以,规定好指令的执行顺序是CPU的首要功能。
PC寄存器是CPU内部进行指令控制的一个寄存器。它存着下一条待执行指令的地址。(后面会有图解)
第二个,操作控制
一个指令之中,往往有多个操作。比如加法指令:ADD AX, BX
。它内部实际上还包含很多操作:比如把BX和AX取出来,进行算术相加,然后送到AX中。
因此,CPU必须对每条指令进行一个解析,从而知道每条指令需要完成哪些操作。
指令译码器、操作控制器 都是负责操作控制的。
第三个,时间控制
现代计算机都是多道程序并发执行的,因此,CPU必须有严格的时间控制,什么时间段做什么事。
时序产生器 是负责时间控制的。
第四个,数据加工
CPU最核心的功能是计算,所以数据加工是必不可少的。
CPU内部的 运算器,顾名思义,主要负责数据加工。
2、CPU的组成:
CPU内部我们可以大致分成三个部分:1、控制器;2、运算器;3、Cache缓存
指令控制、操作控制、时间控制都属于控制功能,由控制器来指挥
数据加工属于运算功能,由运算器指挥。
Cache缓存主要目的提高CPU效率。
我们再深入看看,控制器、运算器内部都包含什么
控制器
包括:
- 程序计数器PC:存放当前指令的地址,可自动+1
- 指令寄存器IR:将内存中取过来指令,寄存在这里
- 指令译码器:对IR中的指令进行翻译,明确要做的操作
- 时序产生器:对每个操作进行严格定时
- 操作控制器:负责完成指令要做的操作
运算器
包括:
- 算术逻辑单元(ALU),负责进行各种运算
- 通用寄存器:如AX, BX,R0, R1…负责装一些待计算的数据。
- 数据缓冲寄存器DR:可以存一些临时数据
- 数据地址寄存器AR:存临时地址
- 状态条件寄存器(或标志寄存器:PSW):保存运算结果的状态,比如是否溢出、是否有进位、结果是否为负
状态寄存器是非常有用的,它由若干个二进制位组成,每个二进制位都代表不同的含义。比如有零标志位、进位标志位、溢出标志位、负标志位等等。高级语言中的if-else语句或者switch语句的底层实现,实际上都要依赖于状态寄存器!
CPU简图:
在CPU内,一切数据都在总线上传输。