运算器只能完成运算,而控制器用于控制着整个cpu的工作。
图1
1、 指令控制器
指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然后交给执行单元(ALU或FPU)来执行,同时还要形成 下一条指令的地址。
为了说明这个问题,这里转载一个指令执行示意图。
图2
从上图可以看到,由CS:IP构成的寄存器总是给出当前要执行的指令地址,并在当前指令尚未执行完成的时候,给出下一条将要执行的指令地址。CS:IP就是图1中的PC指针。这是控制器的最主要作用。
2、 时序控制器
时序控制器的作用是为每条指令按时间顺序提供控制信号。时序 控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶 体振荡器发出非常稳定的脉冲信号,就是CPU的主频;而倍频定义单元则定义了 CPU主频是存储器频率(总线频率)的几倍。
图3
假设现在要执行一条指令:MOV A, data1,这条指令的意思很简单,就是通过CPU找到内存中的某个数据data1,然后把它放到寄存器A里面。这条指令执行完应该分为以下几步:
第一步:找到这个数据在内存中的位置(地址号)。
第二步:保证这个数据可以被CPU读出(未被锁定)。
第三步:把这个数据读出来,并存入寄存器A中。
上面三步的时间顺序不能乱,否则指令执行肯定会出错。从图3可以看出,地址信号首先有效,然后是读信号有效,最后才是被读的数据出现在数据线上面。
这和我们实际生活中的这个例子非常类似,假设服务员要到宾馆的某个房间登记里面客人的身份信息,同样分为三步:
第一步:找到这个客人的位置(房间号)。
第二步:客人打开房门。
第三步:登记客人信息。
3、 总线控制器
总线控制器主要用于控制CPU的内外部总线,包括地址总线、数 据总线、控制总线等等。