控制器是指挥计算机的各个部件按照指令的功能要求协调工作的部件,是计算机的神经和指挥中心,由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和作控制器0C(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。
指令寄存器:用以保存当前执行或即将执行的指令的一种寄存器。指令内包含有确定作类型的作码和指出作数来源或去向的地址。指令长度随不同计算机而异,指令寄存器的长度也随之而异。计算机的所有作都是通过分析存放在指令寄存器中的指令后再执行的。指令寄存器的输人端接收来自存储器的指令,指令寄存器的输出端分为两部分。作码部分送到译码电路进行分析,指出本指令该执行何种类型的作;地址部分送到地址加法器生成有效地址后再送到存储器,作为取数或存数的地址。6ES7223-1PL32-0XB0问问6ES7223-1PL32-0XB0问问6ES7223-1PL32-0XB0问问
存储器可以指主存、高速缓存或寄存器栈等用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对作码进行测试,以便识别所要求的作。指令译码器就是做这项工作的。指令寄存器中作码字段的输出就是指令译码器的输入。作码一经译码后,即可向作控制器发出具体作的特定信号。
程序计数器:指明程序中下一次要执行的指令地址的一种计数器,又称指令计数器。它兼有指令地址寄存器和计数器的功能。当一条指令执行完毕的时候,程序计数器作为指令地址寄存器,其内容必须已经改变成下一条指令的地址,从而使程序得以持续运行。
为此可采取以下两种办法:
种办法是在指令中包含了下一条指令的地址。在指令执行过程中将这个地址送人指令地址寄存器即可达到程序持续运行的目的。这个方法适用于早期以磁鼓、延迟线等串行装置作为主存储器的计算机。根据本条指令的执行时间恰当地决定下一条指令的地址就可以缩短读取下一条指令的等待时间,从而收到提高程序运行速度的效果。
种办法是顺序执行指令。一个程序由若干个程序段组成,每个程序段的指令可以设计成顺序地存放在存储器之中,所以只要指令地址寄存器兼有计数功能,在执行指令的过程中进行计数,自动加一个增量,就可以形成下一条指令的地址,从而达到顺序执行指令的目的。这个办法适用于以随机存储器作为主存储器的计算机。当程序的运行需要从一个程序段转向另一个程序段时,可以利用转移指令来实现。转移指令中包含了即将转去的程序段入口指令的地址。执行转移指令时将这个地址送人程序计数器(此时只作为指令地址寄存器,不计数)作为下一条指令的地址,从而达到转移程序段的目的。子程序的调用、中断和陷阱的处理等都用类似的方法。在随机存取存储器普及以后,种办法的整体运行效果大大地优于种办法,因而顺序执行指令已经成为主计算机普遍采用的办法,程序计数器就成为中央处理器不可或缺的一个控制部件。