计算机组成原理 第二十一讲 计算机科学与技术学院 舒燕君
第8章 CPU 的结构和功能 8.1 CPU 的结构 8.3 指令流水 8.2 指令周期 8.4 中断系统
8.1 CPU 的结构 一、 CPU 的功能 1. 控制器的功能 取指令 指令控制 分析指令 操作控制 执行指令,发出各种操作命令 1. 控制器的功能 取指令 指令控制 分析指令 操作控制 执行指令,发出各种操作命令 控制程序输入及结果的输出 时间控制 总线管理 处理中断 处理异常情况和特殊请求 2. 运算器的功能 数据加工 实现算术运算和逻辑运算
8.1 二、CPU 结构框图 1. CPU 与系统总线 指令控制 操作控制 时间控制 数据加工 处理中断 PC IR CU 时序电路 ALU 寄存器 中断系统 CPU 控制总线 数据总线 地址总线 ALU 寄存器 中断 系统 CU
8.1 2. CPU 的内部结构 … ALU 内部 数据总线 状态标志 寄存器 C P U 移位 取反 算术和 布尔逻辑 CU 中断 系统 内部 数据总线 寄存器 CU 中断 系统 ALU 控制信号 … C P U
8.1 三、 CPU 的寄存器 1. 用户可见寄存器 (1) 通用寄存器 存放操作数 可作 某种寻址方式所需的 专用寄存器 1. 用户可见寄存器 (1) 通用寄存器 存放操作数 可作 某种寻址方式所需的 专用寄存器 (2) 数据寄存器 存放操作数(满足各种数据类型) 两个寄存器拼接存放双倍字长数据 (3) 地址寄存器 存放地址,其位数应满足最大的地址范围 用于特殊的寻址方式 段基值 栈指针 (4) 条件码寄存器 存放条件码,可作程序分支的依据 如 正、负、零、溢出、进位等
8.1 2. 控制和状态寄存器 3. 举例 (1) 控制寄存器 (2) 状态寄存器 PC MAR M MDR IR 控制 CPU 操作 2. 控制和状态寄存器 (1) 控制寄存器 PC MAR M MDR IR 控制 CPU 操作 其中 MAR、MDR、IR 用户不可见 PC 用户可见 (2) 状态寄存器 状态寄存器 存放条件码 PSW 寄存器 存放程序状态字 3. 举例 Z8000 8086 MC 68000
8.1 四、 控制单元 CU 和中断系统 五、ALU 1. CU 产生全部指令的微操作命令序列 2. 中断系统 组合逻辑设计 微程序设计 硬连线逻辑 存储逻辑 参见 第4篇 2. 中断系统 参见 8.4 节 五、ALU 参见 第6章
8.2 指 令 周 期 一、 指令周期的基本概念 1 . 指令周期 取出并执行一条指令所需的全部时间 取指、分析 取指周期 完成一条指令 8.2 指 令 周 期 一、 指令周期的基本概念 1 . 指令周期 取出并执行一条指令所需的全部时间 取指、分析 取指周期 完成一条指令 执行 执行周期 取指阶段 取指周期 执行阶段 执行周期 (取指、分析) (执行指令) 指令周期
8.2 2. 每条指令的指令周期不同 NOP ADD mem MUL mem 取指周期 指令周期 取指周期 执行周期 指令周期 取指周期 2. 每条指令的指令周期不同 取指周期 指令周期 NOP 取指周期 执行周期 指令周期 ADD mem 取指周期 执行周期 指令周期 … MUL mem
8.2 3. 具有间接寻址的指令周期 4. 带有中断周期的指令周期 取指周期 间址周期 指令周期 执行周期 取指周期 间址周期 指令周期 3. 具有间接寻址的指令周期 取指周期 间址周期 指令周期 执行周期 4. 带有中断周期的指令周期 取指周期 间址周期 指令周期 执行周期 中断周期
8.2 5. 指令周期流程 否 取指周期 有间址吗? 是 间址周期 否 执行周期 有中断吗? 是 中断周期
8.2 6. CPU 工作周期的标志 CPU 访存有四种性质 取 指令 取指周期 取 地址 间址周期 CPU 的 4个工作周期 取 操作数 取 指令 取指周期 取 地址 间址周期 CPU 的 4个工作周期 取 操作数 执行周期 存 程序断点 中断周期 FE D IND INT CLK 1 EX
8.2 二、 指令周期的数据流 1. 取指周期数据流 存储器 CPU 地址总线 数据总线 控制总线 PC MAR +1 CU IR IR 1. 取指周期数据流 存储器 CPU 地址总线 数据总线 控制总线 PC MAR +1 CU IR IR MDR
8.2 2. 间址周期数据流 MDR CU MAR CPU 地址总线 数据总线 控制总线 PC IR 存储器 MDR
8.2 3. 执行周期数据流 4 . 中断周期数据流 不同指令的执行周期数据流不同 MDR CU MAR CPU 地址总线 数据总线 3. 执行周期数据流 不同指令的执行周期数据流不同 4 . 中断周期数据流 MDR CU MAR CPU 地址总线 数据总线 控制总线 PC 存储器
8.3 指 令 流 水 一、如何提高机器速度 提高整机处理能力 高速器件 改进系统结构 ,开发系统的并行性 1. 提高访存速度 高速芯片 8.3 指 令 流 水 一、如何提高机器速度 1. 提高访存速度 高速芯片 Cache 多体并行 2. 提高 I/O 和主机之间的传送速度 中断 DMA 通道 I/O 处理机 多总线 3. 提高运算器速度 高速芯片 改进算法 快速进位链 提高整机处理能力 高速器件 改进系统结构 ,开发系统的并行性
8.3 二、系统的并行性 1. 并行的概念 并发 同时 时间上互相重叠 2. 并行性的等级 粗粒度 细粒度 两个或两个以上事件在 同一时间段 发生 并行 两个或两个以上事件在 同一时刻 发生 时间上互相重叠 2. 并行性的等级 过程级(程序、进程) 粗粒度 软件实现 细粒度 硬件实现 指令级(指令之间) (指令内部)
8.3 三、指令流水原理 1. 指令的串行执行 2. 指令的二级流水 取指令 取指令部件 完成 总有一个部件 空闲 取指令 1 执行指令 1 取指令 2 执行指令 2 取指令 3 执行指令 3 … 取指令 取指令部件 完成 总有一个部件 空闲 执行指令 执行指令部件 完成 2. 指令的二级流水 取指令 1 执行指令 1 取指令 2 执行指令 2 取指令 3 执行指令 3 指令预取 若 取指 和 执行 阶段时间上 完全重叠 指令周期 减半 速度提高 1 倍
8.3 3. 影响指令流水效率加倍的因素 (1) 执行时间 > 取指时间 取指令 部件 指令部件 缓冲区 执行指令 3. 影响指令流水效率加倍的因素 (1) 执行时间 > 取指时间 取指令 部件 指令部件 缓冲区 执行指令 (2) 条件转移指令 对指令流水的影响 必须等 上条 指令执行结束,才能确定 下条 指令的地址, 造成时间损失 猜测法 解决办法 ?
8.3 4. 指令的六级流水 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 完成 一条指令 6 个时间单位 串行执行 4. 指令的六级流水 CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 完成 一条指令 6 个时间单位 串行执行 6 × 9 = 54 个时间单位 六级流水 14 个时间单位
8.3 四、影响指令流水线性能的因素 1. 结构相关 不同指令争用同一功能部件产生资源冲突 程序的相近指令之间出现某种关联 1. 结构相关 不同指令争用同一功能部件产生资源冲突 程序的相近指令之间出现某种关联 使指令流水出现停顿,影响流水线效率 CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 解决办法 • 停顿 指令 1 与指令 4 冲突 指令 2 与指令 5 冲突 指令1、指令3、指令 6 冲突 … • 指令存储器和数据存储器分开 • 指令预取技术 (适用于访存周期短的情况)
8.3 2. 数据相关 不同指令因重叠操作,可能改变操作数的 读/写 访问顺序 写后读相关(RAW) SUB R1,R2,R3 ADD R4,R5,R1 ;(R2) (R3) R1 ;(R5)+(R1) R4 读后写相关(WAR) STA M,R2 ADD R2,R4,R5 ;(R2) M 存储单元 ;(R4)+(R5) R2 写后写相关(WAW) MUL R3,R2,R1 SUB R3,R4,R5 ;(R2)× (R1) R3 ;(R4) (R5) R3
8.3 3. 控制相关 由转移指令引起 BNE 指令必须等 CPX 指令的结果 才能判断出 是转移 还是顺序执行 LDA # 0 3. 控制相关 由转移指令引起 BNE 指令必须等 CPX 指令的结果 才能判断出 是转移 还是顺序执行 LDA # 0 LDX # 0 INX CPX # N BNE M DIV # N STA ANS ADD X, D M
8.3 3. 控制相关 设 指令3 是转移指令 t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 转移损失 WO EI 3. 控制相关 WO EI FO CO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令15 指令16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 转移损失 t 设 指令3 是转移指令
8.3 五、流水线性能 1. 吞吐率 2. 加速比 Sp 单位时间内 流水线所完成指令 或 输出结果 的 数量 1. 吞吐率 单位时间内 流水线所完成指令 或 输出结果 的 数量 2. 加速比 Sp m 段的 流水线的速度 与等功能的 非流水线的速度 之比
8.3 3. 效率 流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态 3. 效率 流水线中各功能段的 利用率 由于流水线有 建立时间 和 排空时间 因此各功能段的 设备不可能 一直 处于 工作 状态 mΔt 3 1 2 4 5 … … … n-1 n T时间 S空间 空间 S4 S3 S2 S1 (n-1) Δt
8.3 3. 效率 mnΔt m(m + n -1) Δt 流水线中各功能段的 利用率 效率 = = 流水线各段处于工作时间的时空区 3. 效率 流水线中各功能段的 利用率 流水线各段处于工作时间的时空区 流水线中各段总的时空区 效率 = m(m + n -1) Δt = mnΔt mΔt 3 1 2 4 5 … … … n-1 n T时间 S空间 空间 S4 S3 S2 S1 (n-1) Δt