CPU组成与功能
CPU概述
CPU基本组成
- 运算器 数据加工
- 控制器 程序执行/执行执行
- 取指令 Mem[PC++] -> IR
- 执行指令
- 指令字 -> 控制信号序列
- 信号序列 -> 数据通路
CPU主要功能
取指令并执行指令的部件———CPU
- 数据加工: 算术/逻辑运算 运算器
- 程序控制: 程序中指令执行顺序控制
- 操作控制: 将机器指令翻译成执行部件所需的操作控制信号
- 时序控制: 控制操作信号的产生时间、持续时间
- 异常控制: 异常处理,外设交互
后4个为控制器功能
主要寄存器
- PC (Program Counter)———程序计数器 X86:EIP MIPS:PC
- IR (Instruction Register)———指令寄存器 [可选]
- AR (Address Register)———地址寄存器 MAR [可选]
- DR (Data Register)———数据缓冲寄存器 MDR [可选]
- AC (Accumulate Count)———累加寄存器 [可选]
- PSW (Program Status Word)———程序状态字 [可选]
- X86 EFLAGS MIPS:无
操作控制器
取指令,将机器指令译码并生成执行部件控制信号序列 ,建立正确的数据 通路,从而完成指令的正确执行。
- 硬布线控制器 (时序逻辑型) (硬件实现)
- 微程序控制器 (存储程序型) (软件实现)
数据通路
数据通路———执行部件间传送信息的路径。
- 通路的建立由控制信号控制,受时钟驱动;
- 不同指令、同一指令在执行的不同阶段的数据通路不同;
- 数据通路分类:共享通路(总线)、专用通路
- 指令执行流程、执行效率
- 微操作控制信号的时序安排
数据通路与总线结构
数据通路分类:
- 共享通路(总线型)
- 主要部件都连接在公共总线上,各部件间通过总线进行数据传输
- 结构简单,实现容易,但并发性较差,需分时使用总线,效率低
- 专用通路
- 并发度高,性能佳,设计复杂,成本高
- 可以看做多总线结构
单总线数据通路:
双总线数据通路:
三总线数据通路:
数据通路实例
单总线CPU:
多总线CPU:
专用通路 单周期MIPS:
指令周期
指令执行一般流程:
指令周期基本概念:
指令控制同步:
不同指令功能不同,复杂度不同,如何进行时间控制?
- 定长指令周期:早期三级时序系统
- 机器周期数固定,节拍数固定,按机器周期同步,mips单周期
- 变长指令周期:现代时序系统
- 机器周期数可变,节拍数可变,按时钟周期同步,mips多周期
早期三级时序系统
时序产生与控制器:
现代时序系统:
总线结构与CPU指令周期
取指令数据通路
LOAD指令执行数据通路
MOVE指令执行数据通路
ADD指令执行数据通路
STORE指令执行数据通路
JMP指令执行数据通路
硬布线控制器设计I
基本原理
- 将控制器看成产生固定时序控制信号的逻辑电路
- 输入信号:指令译码,时钟信号,反馈信号
- 输出信号:功能部件控制信号序列
- 设计目标:最少元件,最快速度
- 理论基础:布尔代数
- 组成器件:门电路,触发器
单总线结构CPU指令周期
时序产生器状态机与控制器基本架构
固定指令周期硬布线控制器设计过程
- 设计三级时序产生器: 所有指令固定机器周期数,节拍数,
- 列出所有机器指令的指令周期流程图,明确每个节拍的控制信号;
- 找出产生同一微操作控制信号的条件;
- 写出各微操作控制信号的布尔表达式;
- 化简各表达式;
- 利用组合逻辑电路实现。
硬布线控制器设计II
多周期
有限状态机真值表:
可变周期硬布线控制器设计步骤
- 列出所有机器指令的指令周 期流程图,明确每个节拍的 控制信号;
- 绘制指令执行状态转换图
- 根据状态转换图构建状态机 真值表,实现有限状态机组 合逻辑
- 实现控制器组合逻辑电路
微程序控制器
工作原理:
- 微程序是利用软件方法来设计硬件的技术
- 将完成指令所需的控制信号按格式编写成微指令,存放到控制存储器
- 一条机器指令对应一段微程序(多条微指令)
- 指令取指执行 -> 微程序的执行 -> 执行多条微指令 -> 依次生成控制信号
- 存储技术和程序设计相结合,回避复杂的同步时序逻辑设计
单总线CPU微指令构造
- 操作控制字段: 存储操作控制信号
- 每一位对应一个控制信号,也称微命令,可同时给出多个操作信号
- 顺序控制字段: 用于控制微程序的执行顺序
- 判别逻辑为零,下一条微指令地址从下址字段获取,否则按约定规则生成
优劣:
- 速度慢 访存频繁、成本低廉
- 设计规整,设计简单,易于修改、扩展指令系统功能
- 适合CISC等功能较复杂的系列机 X86、IBM S/360、 DEC VAX
- 可写控存方便修复出厂故障 Intel Core 2 、Intel Xeon
- 硬布线控制器执行速度快,但设计复杂,代价昂贵,不便于修改
- 适合RISC计算机,如MIPS,ARM
微程序设计
- 一条微指令对应一个时钟周期
- 微指令操作控制字段的信号在该时钟周期内有效
- 指令需要多少时钟周期就包括多少微指令
微指令格式
设计原则:
- 有利于缩短微指令字长度
- 有利于减少控制存储器容量
- 有利于提高微程序执行速度
- 有利于对微指令进行修改
- 有利于提高微程序设计的灵活性
直接表示简单直观,便于输出控制,微指令长度太长,控存容量大,如何压缩微指令长度?
- 改直接表示为编码表示 (压缩互斥性微指令)
- 去掉下址字段,采用 μPC = μPC +1 的方式生成微指令地址
- 改水平型微指令为垂直型微指令 (牺牲并行性)
如果互斥的输出控制信号8个,编码后长度多少?
至少为4,预留一个状态表示所有状态输出为0
垂直型微指令:
- 水平型微指令
- 并行操作能力强,效率高,灵活性强,
- 微指令字较长,微程序短,控存容量大,性能佳
- 垂直型微指令
- 字长短,微程序长,控存容量小,性能差
- 垂直型与指令相似,易于掌握
- 基本被淘汰
单周期MIPS CPU
MIPS CPU控制器设计:
- 定长指令周期:单周期实现
- 所有指令均在一个时钟周期内完成, CPI=1
- 性能取决于最慢的指令,时钟周期过长
- 变长指令周期:多周期实现
- 缩短时钟周期,复用器件或数据通路
- 可支持流水操作,提升性能
R型指令格式
I型指令格式
数据通路:
R型指令数据通路建立过程
LW指令数据通路建立过程
SW指令数据通路建立过程
BEQ指令数据通路建立过程
MIPS控制器设计:
- 单周期控制器无时序逻辑,纯组合逻辑电路
- 输入信号
- 指令字Opcode,Func字段(12位)
- 输出信号
- 多路选择器选择信号
- 内存访问控制信号
- 寄存器写使能信号
多周期MIPS CPU
多周期MIPS数据通路特点
- 不再区分指令存储器和数据存储器,分时使用部分功能部件
- 主要功能单元输出端增加寄存器锁存数据
- 传输通路延迟变小,时钟周期变短
多周期MIPS CPU数据通路:
多周期MIPS取指令阶段T1
多周期MIPS取指令阶段T2
R型指令执行状态周期T3~T4
LW指令执行状态周期T3~T5
Beq指令执行状态周期T3
多周期状态转换图
习题
冯•诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU依据(指令和数据的访问时间不同 )来区分它们
虽然指令和数据都是以二进制形式存放在存储器中,但 CPU 可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,在执行阶段取出的是数据。本题容易误选 A ,需要清楚的是, CPU 只有在确定取出的是指令之后,才会将其操作码送去译码,因此,不可能依据译码的结果来区分指令和数据。
某计算机指令集中包含有RR型运算指令、访存指令Load、Store、分支指令Branch和跳转指令Jump。若采用单周期数据通路实现该指令系统,若指令存储器和数据存储器的时延都是3ns;ALU时延为2ns;寄存器文件读写时延都是1ns。在不考虑多路复用器、控制单元、PC、符号扩展单元和传输线路等延迟的情况下,该计算机时钟周期至少为10ns
单周期取指令3ns,访问寄存器文件1ns,计算需要ALU2ns,然后写入数据存储器3ns,然后在写回寄存器1ns
下列有关指令周期的叙述中,正确的是(ACD)。(多选)
A.单周期CPU中的指令周期就是一个时钟周期
B.乘法指令和加法指令的指令周期总是一样长
C.指令周期的第一个阶段一定是取指令阶段
D.一个指令周期可由若干个机器周期或时钟周期组成
下列寄存器中,对汇编语言程序员不透明的是(C)(单选)
A.程序计数器(PC)
B.存储器地址寄存器(MAR)
C.条件状态寄存器
D.存储器数据寄存器(MDR)