CPU概述(运算部件、数据通路结构、寄存器组、控制器、时序系统)

目录

一、运算部件

二、CPU内部的数据通路结构

1. 单组内总线、分立寄存器结构

2. 单组内总线、集成寄存器结构

3. 多组内总线结构 

三、寄存器组

1. 通用寄存器组

2. 程序计数器PC

3. 程序状态字寄存器PSW

4. 堆栈指针SP

5. 暂存器C和D

6. 指令寄存器IR

7. 地址寄存器MAR

8. 数据缓冲寄存器MDR

四、控制器

五、时序系统

1. 指令周期

2. 节拍/时钟周期

六、时序控制方式

1. 同步控制

2. 异步控制

3. 扩展同步控制


CPU内部结构,以模型机为例:

 

一、运算部件

结构图:

运算部件以算术逻辑运算部件(ALU)为核心,还包括输入逻辑和输出逻辑:

  • 输入逻辑:ALU输入端设置两个多路选择器,它们都具有8选1功能,选择数据来源。
  • 输出逻辑:ALU输出端设置一个移位器,其逻辑结构也是一个多路选择器。

运算部件的设置

  • 只设置一个ALU,因而通过硬件只能实现基本的定点加、减运算和逻辑运算,依靠软件子程序实现定点乘除运算、浮点运算;
  • 设置一个ALU,同时在硬件级实现定点乘除运算,如设置专门的阵列乘法器和除法器;
  • 设置一个ALU,并将定点乘除部件和浮点部件作为基本配置;
  • 设置多个运算部件,以实现流水处理,完成复杂的运算操作。

二、CPU内部的数据通路结构

1. 单组内总线、分立寄存器结构

ALU只能把数据送入CPU内部总线中,ALU的数据来源由寄存器组提供。

实际问题:

  • 选择哪个寄存器的数据 —— 多路选择器
  • 运算结果存入哪个寄存器中 —— 只对需要的寄存器发出上升沿脉冲

2. 单组内总线、集成寄存器结构

用译码器来选择需要的寄存器。

3. 多组内总线结构 

CPU内部设置多组总线,用于传输不同类别的信息,比如:地址、数据、指令信息等分别用不同的总线进行传送。

如 Pentium 处理器的内部结构:

三、寄存器组

1. 通用寄存器组

  • 这类寄存器具有提供操作数、存放运算结果、作地址指针、作计数器、作变址寄存器等多种功能,故称为通用寄存器。
  • 是可编程访问的寄存器,在指令系统中为这组寄存器分配了各自的编号。

有编号我们才能编程访问,但是有些有编号的寄存器我们仍然是不能访问的(专用寄存器)。

2. 程序计数器PC

程序计数器(PC)又称指令计数器或指令指针,用来指示指令在存储器中的存放位置。 

  • 当程序顺序执行时,从主存取出一条指令后PC内容将增量计数,PC指向下一条指令。
  • 当程序进行转移时,将转移地址送入PC,PC指向新指令。

因此,当现行指令执行完时,PC中存放的总是 后续指令/下一条指令的地址。 

教材P109:CPU在主存中取指令时,每读取一次主存,PC的内容会自动加 n,以便在指令执行结束后,PC刚好能指向下一条指令。这里的 n 的取值是多少,完全取决于指令的长度和存储器的编址单元。如果指令字长 32 位,存储器按字节编址,那么 1 条指令将占用 4 个存储单元,此时 n = 4。

3. 程序状态字寄存器PSW

功能:记录现行程序的运行状态和指示程序的工作方式。

特征位

又称标志位,用来反映当前程序的执行状态。指令执行后,CPU根据执行结果设置相应的特征位,作为决定程序流向的判断依据,常见有5种。另有编程设定位。

编程设定位

PSW中某些位或字段由CPU编程设定,以决定程序的调试、对中断的响应、程序的工作方式等。

4. 堆栈指针SP

在主存储器中划出一段区间作为堆栈区,这是一种按“后进先出”的存取顺序进行存储的结构。

  • 作为起点的一端是固定的,称为栈底;浮动端称为栈顶。
  • 设置一个具有加减计数功能的寄存器作为堆栈指针 SP,SP 中的内容就是栈顶单元地址。 

采用自底向上的存储模式:

压栈:SP = SP - 1,存入数据 

出栈:读取数据,SP = SP + 1

当存储单元位宽与操作数字长相同时才是 +1 和 -1。

5. 暂存器C和D

设置暂存器的目的是暂存某些中间过程产生的信息。 

与通用寄存器不同,暂存器没有编号,,只能是CPU内部专用。

不能被编程访问:防止数据被覆盖从而导致数据丢失。

模型机中,在需要暂存时:

  • 若从主存或者I/O端口中读取源操作数地址或者源操作数,则使用暂存器C。
  • 若从主存或者I/O端口中读取目的操作数地址或者目的操作数,则使用暂存器D。

 

因为寄存器R0和R1在CPU内部,所以不需要暂存。

因为是寄存器间接寻址,会访问主存,所以需要暂存。

 

6. 指令寄存器IR

指令寄存器IR用于存放正在执行的指令,它的输出内容包括操作码信息、地址码信息等,是产生微命令(控制信号)的主要逻辑依据。

 

  • IR里面存放的不是指令的地址,而是指令本身。
  • 指令放入IR后,由控制器进行译码。

 

7. 地址寄存器MAR

CPU访问主存时,首先要找到需要访问的存储单元,因此设置地址寄存器来存放被访问单元的地址。 

 

工作示意图:

注:地址总线、数据总线、控制总线都在CPU外部。

 

8. 数据缓冲寄存器MDR

数据缓冲寄存器MDR用于存放CPU与主存之间交换的数据。无论是从主存读出的数据,还是写入主存的数据,都要经过MDR。 

“无论是从主存读出的数据,还是写入主存的数据,都要经过MDR。”

这是设计时约定的,对于数据的读写,数据总线DB只与MDR相连。

 

工作示意图:

R —— 读指令、W —— 写指令

 

 

四、控制器

控制部件的功能主要是负责对指令进行译码,并且发出为完成每条指令所要执行的各种操作的控制信号 —— 微命令。

根据指令产生相应的控制信号。

CPU工作过程中所需的控制信号,既可以单独由组合逻辑电路的方式来产生,也可以单独由微程序的方式来产生,或者综合运用。

因此,有两种控制部件:组合逻辑控制器和微程序控制器。

组合逻辑控制器示例:

EN给低电平 —— 线路导通

EN给高电平 —— 线路中断(高阻)

组合逻辑控制器是由纯硬件实现的。

 

 

五、时序系统

1. 指令周期

CPU每取出一条指令并执行这条指令,都要完成一系列的操作。这一系列操作所需要的时间通常叫做一个指令周期。而指令周期是取出一条指令并执行完这条指令的时间。由于各条指令的操作功能不同,因此各种指令的指令周期是不尽相同的。 

指令周期:是指取出一条指令并执行完这条指令的时间。

 

2. 节拍/时钟周期

一个指令周期包含许多长度固定的时间段,一个时间段就是一个节拍,又称时钟周期。

每个节拍完成一步的操作,而这一步操作又由计算机中各执行部件完成的微操作组成。

 

 

 

六、时序控制方式

1. 同步控制

同步控制方式是指各项操作由统一的时序信号进行同步控制,这就意味着各个微操作必须在规定的时间内或固定时刻完成。 

特点:

  • 时钟周期时间长度固定
  • 各步操作的衔接、各部件之间的数据传送受同步时钟严格的定时控制

工作示例:

在第一个上升沿打入地址,等待地址在地址总线上稳定后,再读出数据。

这样做可以适配CPU快、主存慢的情况;CPU内部部件使用的是同步控制,并且由于这些部件速度相近,所以它们之间不需要等待。

 

2. 异步控制

各项操作按各自不同的需要来安排时间,不受统一时序的控制。 

特点:无统一时钟周期划分,各操作间的衔接以及部件之间的信息交换采用应答方式。

工作示例:

应答控制信号 —— CPU有对应的管脚来标定这个状态信号

CPU与外部低速设备之间的交互用异步控制来实现;但是用得少。

 

3. 扩展同步控制

向同步控制方式中引入应答机制。

T3上升沿不再是读取数据,而是读取应答信号 —— 确认数据是否准备好。如果没有准备好,就等若干个周期(可以是一个也可以是多个),再去读取应答信号。如果准备好了,就读取数据;如果等了很久都没有准备好,那么给出“超时”提醒。

是时钟周期的整数倍。(√)

 


CPU的工作原理

CPU的工作过程:从主存或缓存中读取指令,将指令放入指令寄存器IR,然后对指令进行译码。把指令分解成一系列的微操作,再发出各种相应的控制命令,控制各功能部件执行相关的操作,从而完成一条指令的执行,实现对应的功能。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>