CPU的功能和基本结构
CPU由运算器和控制器两大部分组成
CPU的功能
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一条指令的功能往往是由若干操作信号的组成来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工。对数据进行算术和逻辑运算。
- 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
运算器和控制器的功能
运算器主要对数据进行加工。
控制器主要是协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令
- 取指令:自动形成指令地址;自动发出取指令的命令。
- 分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
- 执行指令:根据分析指令得到的“操作命令”和“操作地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
- 中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)
运算器的基本结构
- 算术逻辑单元:主要功能是进行算术/逻辑运算。
- 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果和地址信息等)。SP是堆栈指针,用于指示栈顶的地址。
- 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
- 累加寄存器:它是一个通用寄存器,用于暂时存放ALU的运算的结果信息,用于实现加法操作。
- 程序状态字寄存器:保留有由算出逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CP)等。PSW中的这些位参与并决定微操作的形成。
- 移位器:对运算结果进行移位运算。
- 计数器:控制乘除运算的操作步数。
寄存器组与ALU的连接方式有两种。
第一种:专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据,如何解决?
解决方法1.使用多路选择器根据控制信号选择一路输出
左边的00表示让R0的数据通过作为第一个操作数,右边的01表示让R1的数据通过作为第二个操作数。
解决方法2.使用三态门可以控制每一路是否输出
如:R0out为1时R0中的数据输出到A端,R0out为0时R0中的数据无法输出到B端。
使用专用数据通路方式性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
第二种:CPU内部单总线方式:将所有的寄存器的输入端和输出端都连接到一条公共的通路上。
通过控制Rin/Rout的信号来控制输入输出信号,比如想要R0的数据复制到R1,就需要将R0out和R1in输入高电平。
这个方式结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。比如现在进行加法操作,R0的数据和R1的数据都进入到了总线,产生冲突,如何分别哪个是A哪个是B呢。
解决方法:在一端加入暂存寄存器,首先将R0的输出端接通,将R0的数据传输到总线然后存入暂存寄存器中,然后撤销R0输出端信号,使输出失效,然后接通R1的输出端,通过总线运送到B端,进行加法操作。
此外ALU的输出端也需要加上一个暂存寄存器,为了防止由于信号不稳定导致存回数据冲突的错误。
控制器的基本结构
CPU的结构基本结构
用户可见的寄存器:通用寄存器、程序状态字寄存器PSW、程序计数器PC
用户不可见的寄存器:MAR、MDR、IR、暂存寄存器