1.CPU的功能和基本结构
功能
中央处理器(CPU)由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。
CPU的具体功能包括:
- 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制:一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工:对数据进行算术和逻辑运算。
- 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。
基本结构
在计算机系统中,中央处理器主要由运算器和控制器两大部分组成。
运算器
运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据进行加工处理的中心,其主要由以下部件组成。
- 算术逻辑单元(ALU):主要功能是进行算术/逻辑运算。
- 暂存寄存器:用于暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏其原有内容。
- 累加寄存器(ACC):它是一个通用寄存器,用以暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端。
- 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
- 程序状态字寄存器(PSW):保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
- 移位器:对操作数或运算结果进行移位运算。
- 计数器(CT):控制乘除运算的操作步数。
控制器
控制器是整个系统的指挥中枢,在控制器的控制下,运算器、存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作。控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作来实现的。控制器由以下部件构成。
- 程序计数器(PC):用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中取指令、因程序中指令(通常)是顺序执行的,所以PC有自增功能。
- 指令寄存器(IR):用于保存当前正在执行的那条指令。
- 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
- 存储器地址寄存器(MAR):用于存放要访问的主存单元的地址。
- 存储器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息。
- 时序系统:用于产生各种时序信号,它们都由统一时钟(CLOCK)分频得到。
- 微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
控制器的工作原理是根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。计算机整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行结果。
此外,CPU内的寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器、存储器数据寄存器、指令寄存器。
2.指令执行过程
指令周期
CPU从主存中取出并执行一条指令的时间称为指令周期,不同指令的指令周期可能不同。指令周期常用若干机器周期表示,一个机器周期又包含若干时钟周期。
以下是对每个指令周期中的机器周期的具体描述:
- 对于无条件转移指令,在执行时不需要访问主存,只包含取指阶段(包括取指和分析)和执行阶段,所以其指令周期仅包含取指周期和执行周期。
- 对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存,取出操作数,所以还需包括间址周期。间址周期介于取指周期和执行周期之间。
- 当CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发中断查询信号,若有中断请求,则CPU进入中断响应阶段,又称中断周期。
- 四个工作周期都有CPU访存操作,只是访存的目的不同,取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
指令执行方案
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。出于性能和硬件成本等考虑,可以选用三种不同的方案来安排指令的执行步骤。
- 单指令周期:对所有的指令都选用相同的执行时间来完成。此时每条指令都在固定的时钟周期内完成,指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。因此,指令周期取决于执行时间最长的指令的执行时间。
- 多指令周期:对不同类型的指令选用不同的执行步骤来完成。指令之间虽然也是串行执行,但是可以选用不同个数的时钟周期来完成不同指令的执行过程,指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相同的执行时间。
- 流水线方案:指令之间并行执行,其追求的目标是力争在每个时钟脉冲周期完成一条指令的执行过程。这种方案通过在每个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。
3.数据通路的功能和基本结构
数据通路的功能
- 数据在功能部件之间传送的路径称为数据通路。路径上的部件称为数据通路部件,如ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等。
- 数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器。
- 数据通路中专门进行数据运算的部件称为执行部件或功能部件。数据通路由控制部件控制。数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换。
数据通路的基本结构
数据通路的基本结构主要有以下几种方式:
- CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共通路上,这种结构比较简单,但数据传输存在较多的冲突现象,性能较低。
- CPU内部三总线方式:将所有寄存器的输入端和输出端都连接到多条公共通路上,相比之下单总线中一个时钟内只允许传一个数据,因而指令执行效率很低,因此采用多总线模式,同时在多个总线上传送不同的数据,提高效率。
- 专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大。
4.控制器的结构和功能
下图为计算机硬件系统的五大功能部件及其连接关系。它们通过数据总线、地址总线和控制总线连接在一起,其中虚线框内的是控制器部件。
其连接关系如下:
- 运算器部件通过数据总线与内存器、输入设备和输出设备传送数据。
- 输入设备和输出设备通过接口电路与总线相连接。
- 内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据。
- 控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号。
控制器作为计算机系统的指挥中心,主要功能有:
- 从主存中取出一条指令,并指出下一条指令在主存中的位置。
- 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
- 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。
根据控制器产生微操作控制信号方式的不同,控制器可分为硬布线控制器和微程序控制器,两类控制器中的PC和IR是相同的,但确定和表示指令执行步骤的办法以及给出控制各部件运行所需要的控制信号的方案是不相同的。