- 指令控制: 完成取指令, 分析指令和执行指令的操作, 即程序的顺序控制
- 操作控制: 一条指令的功能往往是若干操作信号的组合来实现的. CPU管理并产生由内存取出的每条指令的操作信号. 把各种操作信号送往响应的部件, 从而控制这些部件按指令的要求进行动作
- 时间控制: 对各种操作加以时间上的控制. 时间控制要为每条指令按照时间顺序提供应有的控制信号
- 数据加工: 对数据进行算术和逻辑运算
- 中断处理: 对计算机运行过程中出现的异常情况和特殊请求进行处理
对数据进行加工
协调并控制计算机各部件执行程序的指令序列, 基本功能包括取指令, 分析指令, 执行指令
- 取指令: 自动形成指令地址; 自动发出取指令的命令
- 分析指令: 操作码译码(分析本条指令要完成什么操作); 产生操作数的有效地址
- 执行指令: 根据分析指令得到的"操作命令"和"操作数地址", 形成操作信号控制序列, 控制运算器, 存储器以及I/O设备完成响应的操作
- 中断指令: 管理总线几输入输出; 处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)
- 算术逻辑单元: 主要功能是进行算术/逻辑运算
- 通用寄存器组: 如AX、BX、CX、DX、SP等, 用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息. SP是堆栈指针, 用于指示栈顶的地址(stack pointer)
- 暂存器: 用于暂存从主存读出来的数据, 这个数据不能存放在通用寄存器中, 否则会破坏其原有的内容
- 累加寄存器: 它是一个通用寄存器, 用于暂时存放ALU运算的结果信息, 用于实现加法运算
- 程序状态字寄存器: 保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息, 如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等. PSW中的这些位参与并决定微操作的形成
- 移位器: 对运算结果进行移位运算
- 计数器: 控制乘除运算的操作数
根据指令执行过程中的数据和地址的流动方向安排链接线路
如果直接用导线连接, 相当于多个寄存器同时并且一直向ALU传输数据
- 解决方法1: 使用多路选择器, 根据控制信号选择一路输出
- 解决方法2: 使用三态门, 可以控制每一路是否输出
性能较高, 基本不存在数据冲突现象, 但是结构复杂, 硬件量大, 不易实现
将所有寄存器的输入端和输出端都连接到一条公共的通路上
- 程序计数器: 用于指出下一条指令在主存中的存放地址. CPU就是根据PC的内容去主存中读取指令的. 因程序中指令(通常)是顺序执行的, 所以PC有自增功能
- 指令寄存器: 用于保存当前正在执行的指令
- 指令译码器: 仅对操作码字段进行译码, 向控制器提供特定的操作信号
- 微操作信号发生器: 根据IR的内容(指令)、PSW的内容(状态信息)及时序信号, 产生控制整个计算机系统所需的各种控制信号, 其结构有组合逻辑型和存储逻辑型两种
- 时序系统: 用于产生各种时序信号, 他们都是由统一时钟(CLOCK)分频得到
- 存储器地址寄存器: 用于存放所要访问的主存单元的地址
- ALU
- 中断系统
- 寄存器
- CU