CPU功能和组成

CPU的功能

  • 指令控制

    • 控制程序按照顺序执行

  • 操作控制

    • 传送不同的信号

  • 时间控制

    • 各种操作的同步

  • 数据加工

    • 算数逻辑运算

  • 中断处理

    • 对异常情况和特殊请求的处理

CPU的基本组成

控制器与运算器

  • 控制器

    • 程序计数器PC指令寄存器IR指令译码器操作控制器和时序产生器组成

  • 运算器

    • 算数逻辑单元ALU累加寄存器AC数据缓冲寄存器DR状态条件寄存器PSW组成

重要的寄存器

  • 数据缓冲寄存器DR

    • 存放从cache读出的字或来自外部接口的字或ALU运算结果

    • 写数据cache时也先用DR暂存

    • 用来作为ALU运算结果和通用寄存器之间信息传送时时间上的缓冲

    • 补偿CPU和内存、外设之间速度的差别

  • 指令寄存器IR

    • 用来保存当前正在执行的一条指令

    • 指令的操作码会流向指令译码器,译码后即可向控制器发出信号

  • 程序计数器PC

    • 也叫指令计数器。用来保存下一条指令的地址

    • 程序开始执行前先把程序的第一条指令所在地址置入PC

    • CPU会自行修改PC的值

  • 地址寄存器AR

    • 用来保存当前处理器访问的数据cache中的单元地址

  • 通用寄存器R0-R3

    • 不同的计算机的通用寄存器数量不同。可以几十上百个。教学举例通常使用四个

    • 为ALU提供暂存数据的工作区

    • 其中的累加寄存器AC暂存ALU的运算结果

  • 状态条件寄存器PSW

    • 根据算数结果、逻辑指令等信息得到了状态条件

    • 包括运算结果进位标志C,运算结果溢出标志V,运算结果为0表示Z,最算结果为负标志N

    • 每个标志位由一个触发器保存

    • 保存中断和系统工作状态等信息

寄存器详细解释

1. 数据寄存器

数据寄存器(Data Register,DR)又称数据缓冲寄存器,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。

数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中。

数据寄存器的作用是 :

(1)作为CPU和主存、外围设备之间信息传送的中转站;

(2)弥补CPU和主存、外围设备之间在操作速度上的差异;

(3)在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。

2. 指令寄存器

指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。

当执行一条指令时,首先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。

指令包括操作码和地址码两个字段,为了执行指令,必须对操作码进行测试,识别出所要求的操作,指令译码器(Instruction Decoder,ID)就是完成这项工作的。指令译码器对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上,在时序部件定时信号的作用下,产生具体的操作控制信号。

指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码,即可向操作控制器发出具体操作的特定信号。

3. 程序计数器

程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址。

在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。

当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。若为单字长指令,则(PC)+1,若为双字长指令,则(PC)+2,以此类推。

但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定,而不是像通常的那样通过顺序递增PC的内容来取得。

因此,程序计数器的结构应当是具有寄存信息和计数两种功能的结构。

4. 地址寄存器

地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址。

由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。

当CPU和主存进行信息交换,即CPU向主存存入数据/指令或者从主存读出数据/指令时,都要使用地址寄存器和数据寄存器。

如果我们把外围设备与主存单元进行统一编址,那么,当CPU和外围设备交换信息时,我们同样要使用地址寄存器和数据寄存器。

5. 累加寄存器

累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。

累加器的功能是:当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果。

显然,运算器中至少要有一个累加寄存器。

6. 程序状态字寄存器

程序状态字(Program Status Word,PSW)用来表征当前运算的状态及程序的工作方式。

程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等,这些标志位通常用1位触发器来保存。

除此之外,程序状态字寄存器还用来保存中断和系统工作状态等信息,以便CPU和系统及时了解机器运行状态和程序运行状态。

因此,程序状态字寄存器是一个保存各种状态条件标志的寄存器

操作控制器和时序产生器

数据通路: 各寄存器传递信息的通路

时序产生器: 对各种操作信号进行时间上先后顺序的控制

操作控制器: 为数据通路的建立提供各种操作信号. 操作信号提供的依据是指令操作码和时序信号, 主要有三种类型

  • 时序逻辑型:硬布线控制器

  • 存储逻辑型:微程序控制器

  • 混合型:前两者的组合

1. 硬布线控制器

硬布线控制器,它是采用时序逻辑技术来实现的,其操作控制信号形成部件是由门电路组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。 硬布线控制器的最大优点是速度快,但是时序、控制信号形成部件的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化。

2. 微程序控制器

微程序控制器是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。这是我们学习的重点。 微程序控制器的设计思想和时序逻辑设计思想截然不同。它具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令执行速度比组合逻辑控制器慢。

3. 混合型

这种控制器称为PLA控制器,它是吸收前两种的设计思想来实现的。

Last updated

Was this helpful?