4.3.1 CPU的功能和组成
从硬件上来说,CPU就是一块超大规模集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU的组成主要包括运算器(算术逻辑运算单元,Arithmetic Logic Unit,ALU)、控制器(Control Unit,CU)、高速缓冲存储器(Cache)及实现它们之间联系的数据、控制及状态的总线。下面分别具体介绍。
1.CPU的基本功能
CPU控制整个程序的执行,它具有以下基本功能:
(1)程序控制
程序控制就是控制指令的执行顺序。程序是指令的有序集合,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序执行。保证计算机按一定顺序执行程序是CPU的首要任务。
(2)操作控制
操作控制就是控制指令进行操作。一条指令的功能往往由若干个操作信号的组合来实现。因此,CPU管理并产生每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行操作。
(3)时间控制
时间控制就是对各种操作实施定时控制。在计算机中,各种指令的操作信号和一条指令的整个执行过程都受到严格定时。只有这样,计算机才能有条不紊地工作。
(4)数据加工
数据加工就是对数据进行算术、逻辑运算。完成数据的加工处理,是CPU的根本任务。
2.CPU的基本组成
CPU主要由运算器、高速缓存(Cache)和控制器三部分组成,其中Cache我们在4.2节中已经介绍过。
(1)控制器
控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:
①从内存中取出一条指令,并指出下一条指令在内存中的位置;
②对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;
③指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。
(2)运算器
运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:
①执行所有的算术运算;
②执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
3.CPU中的主要寄存器
在CPU中至少要有六类寄存器。这些寄存器用来暂存程序运行过程中需要用到的数据,每个寄存器存储一个字。根据需要,可以扩充其数目。
(1)DR(Data Register):数据缓冲寄存器
数据缓冲寄存器用来暂时存放由内存读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。缓冲寄存器的作用是:
①作为CPU和内存、外围设备之间信息传送的中转站;
②补偿CPU和内存、外围设备之间在操作速度上的差别;
③在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
(2)IR(Instruction Register):指令寄存器
IR用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到DR中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
(3)PC(Program Counter):程序计数器
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的内存单元地址送入PC,因此PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保存的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常只是简单的对PC加1。
但是,当遇到转移指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序取得。因此程序计数器应当是具有寄存信息和计数两种功能的结构。
(4)AR(Address Register):地址寄存器
地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。
地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时将信息输入寄存器。
(5)PSW(Program Status Word):状态条件寄存器
状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为零标志(Z)、运算结果为负标志(N)等。这些标志位通常分别由1位触发器保存。
除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志组成的寄存器。
4.操作控制器与时序产生器
除了上述基本组成部分之外,还需要通道将上述部件连接起来,并统一进行控制,因此需要数据通路和操作控制,并产生适当的时序保证各种操作有序进行。
(1)数据通路是许多寄存器之间传送信息的通路。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由操作控制器完成的。
(2)操作控制器的功能:就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。
根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。
①硬布线控制器:是采用时序逻辑技术来实现的;
②微程序控制器:是采用存储逻辑来实现的;
③前两种方式的组合。
(3)时序产生器操作。控制器产生的控制信号必须定时,其作用就是对各种操作实施时间上的控制。