一、CPU的功能
当用计算机解决某个问题时,我们首先必须为它编写程序。
程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。
CPU对整个计算机系统的核心,它具有如下四方面的基本功能:
前三项功能是由控制器实现的,后一项功能由运算器实现。
二、CPU的基本组成
CPU的基本部分由运算器、cache和控制器三大部分组成。 其主要部分由运算器和控制器组成(图5.1给出了CPU组成的模型)。
1、控制器
控制器主要由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:
(1)从内存中取出一条指令,并指出下一条指令在内存中的位置;
(2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;
(3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。
2、运算器
由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。
相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。
运算器有两个主要功能:
(1)执行所有的算术运算;
(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
三、CPU中的主要寄存器
CPU中通常都了很多各种不同功能和作用的寄存器,用于暂存CPU各功能部件处理所需要的各种信息(指令、地址、数据、状态等等)。
在CPU中至少要有六类寄存器。它们是:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、缓冲寄存器(DR)、累加寄存器(AC)、状态条件寄存器(PSW)。
数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。
缓冲寄存器的作用是 :
(1)作为CPU和内存、外部设备之间信息传送的中转站;
(2)补偿CPU和内存、外围设备之间在操作速度上的差别
(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。随后由控制器对指令寄存器中的二进制指令代码进行解释,并产生相应的控制。
指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器(IP)。
在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
但是,当遇到转移指令如JMP指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息(保存和设置转移地址)和计数(顺序执行)两种功能的结构。
地址寄存器用来保存当前CPU所访问的内存单元的地址。
由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止 。
当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用 地址寄存器和数据缓冲寄存器。
地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。
累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元ALU)执行算术或逻辑运算时,为ALU提供一个工作区。
累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。
目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。
状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标 志(Z),运算结果为负标志(N)等等。这些标志位通常分别由 1位触发器保存。
除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。
四、操作控制器与时序产生器
数据通路 :是许多寄存器(部件)之间传送信息的通路。
信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。
在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。
操作控制器的功能:就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。
根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。
相对于上述三种设计方法,有三种类型控制器,它们是:硬布线控制器、微程序控制器、PLA控制器。
操作控制器控制信号必须严格按照时间顺序要求产生。因此,还需要时序产生器,对各种操作实施时间上的控制。