第九讲 授课教师 : 陆俊林王箫音 2012 年春季学期
主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 7 章微处理器的内部结构及外部功能特性 1
主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 2
微处理器相关的若干关键设计 总线 : 提高微处理器 存储器和外设之间的传输效率 转移预测 : 提高微处理器流水线的工作效率 流水线和超标量 : 提高微处理器执行指令的并行程度 高速缓存 : 缓解微处理器与存储器之间的性能瓶颈 3
实例分析 :Pentium 微处理器 1993 年正式推出 采用 0.8 µm 工艺 主频 60~66 MHz Intel 推出的第一款超标量微处理器 4
储器I/O 接口Pentium 微处理器的结构示意图 Pentium 微处理器 控制总线 32 位地址总线 64 位数据总线存总线接口单元 (BIU) 指令 Cache(8KB) 预取缓存器指令译码器 执行单元 (EU) ALU (U 流水 ) ALU (V 流水 ) 寄存器组 32 位 32 位 BTB 控制单元 (CU) Microcode ROM 浮点处理单元 (FPU) 数据 Cache(8KB) 5
储器I/O 接口控制单元 CU(Control Unit) Pentium 微处理器 控制总线 32 位地址总线 64 位数据总线存总线接口单元 (BIU) 指令 Cache(8KB) 预取缓存器指令译码器 执行单元 (EU) ALU (U 流水 ) ALU (V 流水 ) 寄存器组 32 位 32 位 BTB 控制单元 (CU) Microcode ROM 浮点处理单元 (FPU) 数据 Cache(8KB) 6
控制单元的主要特点 基本功能 控制整个微处理器按照一定的时序过程一步一步地完成指令的操作 处理 异常 和 中断 有关的操作和控制 实现方式 大多数简单指令都是以 硬连线 逻辑来实现 复杂指令的执行是以 微程序 方式实现的, 微程序存放在只读存储器 Microcode ROM 中 7
执行指令的主要步骤 基本步骤 Pentium 实现 ARM9 实现 1 取指 (Fetch) 1 指令预取 1 取指 2 译码(Decode) 2 译码 3 地址生成 3 执行 (Execute) 4 执行 2 译码 3 执行 4 访存 4 回写 (Write-back)5 回写 5 写回 8
执行指令过程的示意图 (ADD AL, [30H]) 存储器代码段.. 30020H 10101010.. 10030H 00010010.. 数据段 系统总线 总线接口单元 30020H 10101010 取指 10101010 译码 mem[30h] op-add 地址生成 al-num 10030H 10030H 12H 执行 46H al-num 微处理器 46H 回写 al-num 寄存器 34H al-num 9
访问存储器对性能的影响 ADD AL, [30H] 取指译码地址生成执行回写 1 100 1 1 100 1 1 读存储器取指令,CPU 暂停 读存储器取操作数,CPU 暂停 ADD [30H], AL 1 100 1 1 100 1 1 读存储器取指令,CPU 暂停读存储器取操作数,CPU 暂停写存储器 ADD AL, BL 1 100 11111 读存储器取指令,CPU 暂停 存储器的延迟是影响性能的关键因素 10
主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 11
处理器与存储器的性能 处理器与存储器的性能差距日益加大 处理器性能增长超过 10000 倍 存储器 (DRAM) 性能增长不到 10 倍 *Computer Architecture A Quantitative Approach, 4th Edition 12
存储层级示意图 高速缓存 Cache 位置 :CPU 和主存之间特点 : 与主存相比, 容量小, 速度快, 离 CPU 近作用 :1. 使 CPU 在较低速的存储器件条件下获得较高速的存储器访问时间 2. 提高系统的性能价格比 通用寄存器 Byte 量级 高速缓存 KB~MB 量级 主存 MB~GB 量级 本地二级存储 GB~TB 量级 更小 更快 单位字节成本更高 更大 更慢 单位字节成本更低 13
高速缓存 (Cache) 对性能的影响 取指译码地址生成执行回写 1 100 1 1 100 1 1 读存储器取指令,CPU 暂停读存储器取操作数,CPU 暂停写存储器 无 Cache 时的指令执行时间 有 Cache 时的指令执行时间 取指 执行 1311311 回写 CPU CPU Cache(SRAM) 译码 地址生成 Memory(DRAM) 14
早期的 Cache 设计 CPU 典型主频访存周期 DRAM 延迟 Cache 设计 8088 4.77MHz (210ns) 4 (840ns) 250ns 无需 Cache 80286 10MHz (100ns) 2 (200ns) 220ns 无需 Cache 80386 25MHz (40ns) 2 (80ns) 190ns 片外 Cache 80486 33MHz (30ns) 2 (60ns) 165ns 8KB 片内 Cache 15
80486 的高速缓存设计 80486 采用指令和数据共用的 Cache 缺陷 : 指令和数据的局部性相互影响 例如 : 一个数据密集的程序会很快占满 Cache, 几乎没有空间用于指令 地址生成 取指译码执行回写 Memory Cache CPU Core 16
Pentium 的高速缓存设计 Pentium 采用指令和数据分离的 Cache 8KB 指令 Cache(I-Cache): 只存储指令 8KB 数据 Cache(D-Cache): 只存储指令所需的数据? 哈佛结构冯 诺依曼结构 Memory I-Cache D-Cache CPU Core 17
冯 诺依曼结构 1945 年, 冯 诺依曼系统性地提出了 存储程序 的概念和二进制原理 人们把利用这种概念和原理设计的电子计算机统称为 冯 诺依曼结构计算机 第一台冯 诺依曼结构计算机是 1951 年正式运行的 EDVAC 18
冯 诺依曼结构计算机的特点 1 计算机由五大部件组成 2 指令和数据不加区别地存放在同一存储器 3 指令和数据均以二进制表示 4 指令由操作码和地址码组成 5 自动取指, 串行执行运算器状命令 6 态 程序和数据输入 输入设备 状态和请求 命令和应答 地址 数据 存储器 控制器 指令 输出设备 命令和应答 状态和请求 结果输出 19
非冯 诺依曼计算机 数据流计算机 数据令牌 5 2 人工智能计算机归约计算机 b:(5) c:(2) K1: + ( ) 3 K3/1 K2: - ( ) ( ) K3/2 K1:(+ b 3) K2:(- b c) K3: ( ) ( ) X/1 24 需求 X:( K1 K2) 示例 : 计算函数 X=(b+3) (b-c) K1: b+3, K2: b-c, K3: X=K1 K2 结果 X:(24) 20
哈佛结构 (Harvard Architecture) 起源 : 哈佛大学的 Harvard Mark I 计算机 IBM - Automatic Sequence Controlled Calculator (ASCC) Harvard Mark I 1944 21
哈佛结构计算机的特点 指令和数据存储在不同存储器, 可同时访问 指令存储器和数据存储器分别采用独立编址的地址空间 ( 例如, 存在两个不同的地址 0) 指令存储器和数据存储器使用不同的通道与 CPU 连接 微控制器 PIC 系列 ALU Instruction Memory Control Unit Data Memory I/O 22
改进的哈佛结构 Modified Harvard Architecture VS Pure Harvard Architecture 主要改进 : 指令存储器和数据存储器采用统一编址的地址空间保持不变 : 指令和数据存储在不同存储器, 可同时访问 带高速缓存的现代处理器大多采用 改进的哈佛结构, 包括 x86 ARM PowerPC 等 23
哈佛结构 冯 诺依曼结构 现代计算机 CPU CPU Memory Instruction Memory Data Memory 冯 诺依曼结构 冯 诺依曼结构 计算机 哈佛结构 处理器采用 改进的哈佛结构 Memory I-Cache D-Cache CPU Core 现代计算机的普遍结构 24
Pentium 的高速缓存设计 Pentium 微处理器 指令 Cache(8KB) BTB 总线接口单元 (BIU) 预取缓存器指令译码器 执行单元 (EU) ALU (U 流水 ) ALU (V 流水 ) 寄存器组 数据 Cache(8KB) 控制单元 (CU) Microcode ROM 浮点处理单元 (FPU) 25
多级 Cache 的设计示例 L1 Cache: 指令和数据分离 L2 Cache: 统一的指令和数据 L3 Cache: 统一的指令和数据 CPU Core CPU Core CPU Core CPU Core 32KB I-Cache 32KB I-Cache 32KB I-Cache 32KB I-Cache 32KB D-Cache 32KB D-Cache 32KB D-Cache 32KB D-Cache 256KB L2 Cache 256KB L2 Cache 256KB L2 Cache 256KB L2 Cache 8MB L3 Cache 26
主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 27
非流水线的操作 假设每步花费 1 分钟, 则做一道菜需 4 分钟 若做三道菜, 则共需 12 分钟 1. 洗菜 4. 装盘 2. 切菜 3. 炒菜 28
流水线的操作 123456 假设每步花费 1 分钟做三道菜, 只需 6 分钟 洗菜切菜炒菜装盘 29
流水线 流水线 (pipeline) 方式 把一个重复的过程分解为若干子过程 每个子过程可以与其它子过程并行进行 微处理器采用流水线技术 提高处理部件的使用效率 加快执行程序的速度 30
微处理器的流水线设计 划分 把每条指令分为若干个顺序的操作, 如取指 译码 执行等 每个操作分别由不同的处理部件来完成, 如取指部件 译码部件 执行部件等 处理 对于每个处理部件, 每条指令的同类操作 ( 如取指 ) 就像流水一样连续被加工处理 这种指令重叠 处理部件连续工作的处理器, 称为流水线处理器 31
五级流水的工作过程 Pentium 的流水线的工作过程 时间单位 0 1 2 3 4 5 6 7 第一条指令 取指译码地址生成执行写结果 第二条指令 取指译码地址生成执行写结果 第三条指令 取指译码地址生成执行写结果 取指部件 译码部件 地址生成部件 执行部件 回写部件 32
五级流水线的效率分析 流水线中的各个处理部件可并行工作, 从而可使整个程序的执行时间缩短 如前图的五级流水方式执行,3 条指令用 7 个时间单位完成 如果以完全串行的方式执行, 则 3 条指令需 3 5=15 个时间单位才能完成 流水线并非缩短单条指令的执行时间 ( 甚至增加时间 ), 而是提高了指令的吞吐率 33
流水线的平衡性 洗菜 切菜 装盘各用 1 分钟, 炒菜用 2 分钟 不采用流水线时 : 做一盘菜用 5 分钟 ; 连续做时, 每 5 分钟出一盘 采用流水线时 : 做一盘菜用 8 分钟 ; 连续做时, 每 2 分钟出一盘 改进 : 将炒菜分成两步, 可达到每 1 分钟出一盘, 形成更平衡的流水线 洗菜切菜炒菜装盘 34
流水线的深度 超级流水线 技术 (Super Pipelining) 流水线的若干流水级进一步细分为更多的阶段 ( 流水小级 ) 每个 流水小级 可以与其他指令的不同 流水小级 并行执行, 进一步提高指令吞吐率 Pentium: 5 级取指译码地址生成执行回写 Pentium II: 11 级 IF1 IF2 IF3 ID1 ID2 RAT ROB DIS EX RET1 RET2 ARM9: 5 级取指译码执行访存写回 ARM11: 8 级取指 1 取指 2 译码发射执行 1 执行 2 执行 3 写回 35
主要内容 一 微处理器的总体结构 二 高速缓存 三 流水线 四 超标量流水线 36
超标量结构 超标量 (Superscalar) 结构 通常, 具有两条或两条以上能够并行工作的流水线结构称为超标量结构 ( 也常称为 超标量流水线 或直接称为 超标量 ) 使用超标量结构的处理器称为超标量处理器 Pentium 的超标量结构 两条流水线 : U 流水 和 V 流水 每条流水线都拥有自己的地址生成逻辑 ALU 及数据 Cache 接口 在一个时钟周期内, 可以同时发送两条指令 37
Pentium 的超标量流水线 Pentium 微处理器 流水线示意图 指令 Cache(8KB) BTB 取指译码地址生成地址生成执行执行回写回写 总线接口单元 (BIU) 预取缓存器指令译码器 执行单元 (EU) ALU (U 流水 ) ALU (V 流水 ) 寄存器组 控制单元 (CU) Microcode ROM 浮点处理单元 (FPU) 数据 Cache(8KB) 38
指令Cache 数超标量流水线运行示例 总线接口部件 据Cache 指令地址 ADD AL, [lmem1] SUB [lmem2], BL lmem2 地址生成 10101010 op-sub bl-num pmem2 pmem2 data2 执行 pmem2 sub-data pmem2 回写 sub-data bl-data bl-num 取指 译码 lmem1 op-add 地址生成 al-num pmem1 pmem1 执行 data1 add-data al-num add-data 寄存器 01010101 回写 al-num al-data al-num 39
超标量处理器实例 :Core i7(intel) 四核,4 发射 16 级流水 40
超标量处理器实例 : Cortex-A9(ARM) 双核,4 发射 8~11 级流水 41
超标量处理器实例 : UniCore-3(PKU) 四核,3 发射 8 级流水 42
作业 作业题 : 教材第 230 页第 1 3 4 题 43
下讲预告 下讲 主题 微处理器的硬件 结构 ( 二 ) 学习 资料 教材第 7 章 :7.1 44
谢谢! 45