一、引子
1、指令
2、计算
然而,光知道这两部分还不能算是真正揭开了CPU的秘密,只有把“指令”和“计算”这两部分功能连通起来,我们才能构成一个真正完整的CPU。
这一讲,我们就在前面知识的基础上,来看一个完整的CPU是怎么运转起来的。
二、指令周期
1、计算机每执行一条指令的过程
4.重复进行1~3的步骤。
这样的步骤,其实就是一个永不停歇的“ Fetch - Decode - Execute”的循环,我们把这个循环称之为 指令周期(Instruction Cycle)。
2、什么是指令周期
3、不同步骤在不同组件之内完成
三个周期之间的关系
4、CPU周期
5、时钟周期
三、建立数据通路
1、第一类操作元件
2、第二类存储元件
3、什么是数据通路
4、控制器
听起来是不是很简单?实际上,控制器的电路特别复杂。下面我给你详细解析一下。
一方面,所有CPU支持的指令,都会在控制器里面,被解析成不同的输出信号。我们之前说过,现在的IntelCPU支持2000个以上的指令。这意味着,
控制器输出的控制信号,至少有2000种不同的组合。
运算器里的ALU和各种组合逻辑电路,可以认为是一个固定功能的电路。控制器“翻译”出来的,就是不同的控制信号。这些控制信号,告诉ALU去做不同的计算。
可以说正是控制器的存在,让我们可以“编程”来实现功能,能让我们的“存储程序型计算机”名副其实。
指令译码器将输入的机器码,解析成不同的操作码和操作数,然后传输给ALU进行计算
四、CPU所需要的硬件电路
1、ALU
2、寄存器
3、自动数数的电路
我们看似写了各种复杂的高级程序进行各种函数调用、条件跳转。其实只是修改PC寄存器里面的地址。PC寄存器里面的地址一修改,计算机就可以加载一条指令新指令
往下运行。实际上,PC寄存器还有一个名字,就叫作程序计数器。顾名思义,就是随着时间变化,不断去数数。数的数字变大了就去执行一条新指令。
所以,我们需要的就是一个自动数数的电路。
4、译码器
五、总结延伸
好了,现在我们把这四类电路,通过各种方式组合在一起,就能最终组成功能强大的CPU了。但是,要实现这四种电路中的中间两种,我们还需要时钟电路的配合。
下一节,我们一起来看一看,这些基础的电路功能是怎么实现的,以及怎么把这些电路组合起来变成一个CPU。