Download presentation
Presentation is loading. Please wait.
1
计算机组成原理 任课教师:石磊 教授 郑州大学信息工程学院计算机系
郑州大学·计算机组成原理 2019/1/17 计算机组成原理 任课教师:石磊 教授 郑州大学信息工程学院计算机系 第5章 中央处理器
2
目录 第一章 计算机系统概论 第二章 运算方法和运算器 第三章 存储系统 第四章 指令系统 第五章 中央处理器 第六章 总线系统
第七章 外围设备 第八章 输入输出系统 第九章 并行组织
3
教材 参考书 白中英,计算机组成原理·网络版,科学出版社,2002 石磊,计算机组成原理·第2版, 清华大学出版社,2006
郑州大学·计算机组成原理 2019/1/17 教材 白中英,计算机组成原理·网络版,科学出版社,2002 参考书 石磊,计算机组成原理·第2版, 清华大学出版社,2006 钱晓捷,微型计算机原理及应用, 清华大学出版社,2006 王爱英,计算机组成与结构·第3版, 清华大学出版社,2001 白中英 邝坚,计算机组织与结构·网络版,科学出版社,2003 第5章 中央处理器
4
第5章 中央处理器 5.1 CPU的组成和功能 5.8 流水CPU 5.2 指令周期 5.9 RISC CPU
郑州大学·计算机组成原理 2019/1/17 计算机组成原理 第5章 中央处理器 5.1 CPU的组成和功能 5.8 流水CPU 5.2 指令周期 5.9 RISC CPU 5.3 时序产生器和控制方式 5.10 多媒体CPU 5.4 微程序控制器 5.11 CPU性能评价 5.5 微程序设计技术 5.6 硬布线控制器 5.7 传统CPU 第5章 中央处理器
5
5.1 CPU的功能和组成 当代主流计算机所遵循的仍然是冯.诺依曼的“存储程序、程序控制”思想
程序告诉计算机:应该逐步执行什么操作;在什么地方找到用来操作的数据,结果存到何处等 中央处理器是控制计算机自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU(Central Processing Unit)
6
★ 指令控制 保证机器按程序规定的顺序取出执行
5.1.1 CPU的功能 ★ 指令控制 保证机器按程序规定的顺序取出执行 ★ 操作控制 CPU产生每条指令所对应的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作 ★ 时间控制 对各种操作的实施时间进行定时 ★ 数据加工 对数据进行算术运算和逻辑运算处理
7
5.1.2 CPU的基本组成 控制器完成对整个计算机系统操作的协调与指挥。
(1) 控制机器从内存中取出一条指令,并指出下一条指令在内存中的位置; (2) 对指令进行译码,并产生相应的操作控制信号,送往相应的部件,启动规定的动作; (3) 指挥并控制CPU、内存与输入/输出(I/O)设备之间数据流动的方向 运算器是数据加工处理部件,所进行的全部操作由控制器发出的控制信号指挥 (1)执行所有的算术运算; (2)执行所有的逻辑运算,并进行逻辑测试
8
CPU的基本模型 算术逻辑单元 状态条件寄存器 程序计数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 存储器
I/O CPU ALU 指令寄存器IR 指令译码器 操作控制器 时序产生器 时钟 状态反馈 取指控制 执行控制 c 缓冲寄存器DR
9
5.1.3 CPU中的主要寄存器 数据缓冲寄存器(DR) 指令寄存器(IR) 程序计数器(PC) 地址寄存器(AR) 累加寄存器(AC)
暂时存放由内存读出或写入的指令或数据字 指令寄存器(IR) 保存当前正在执行的一条指令 程序计数器(PC) 确定下一条指令的地址 地址寄存器(AR) 保存当前CPU所访问的内存单元的地址 累加寄存器(AC) 最常使用的一个通用寄存器 状态条件寄存器(PSW) 保存由算术和逻辑指令的结果建立的各种条件码
10
5.1.4 操作控制器与时序产生器 操作控制器在各寄存器之间建立数据通路(传送信息的通路)
操作控制器的功能: 就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制 硬布线控制器 微程序控制器 时序产生器产生并发出计算机所需要的时序控制信号
11
5.2 指令周期 指令的执行过程 —读取指令 —分析指令 —按指令规定内容执行指令 —检查有无中断请求 取指令 执行指令
5.2 指令周期 取指令 执行指令 指令的执行过程 —读取指令 指令地址送入主存地址寄存器 读主存,读出内容送入指定的寄存器 —分析指令 —按指令规定内容执行指令 不同指令的操作步骤数 和具体操作内容差异很大 —检查有无中断请求 若无,则转入下一条指令的执行过程 形成下一条指令地址
12
5.2.1 指令周期的基本概念 指令周期 : CPU从内存取出一条指令并执行完这条指令的时间总和
取指时间+执行指令时间 CPU周期 : 又称机器周期(总线周期),CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义 时钟周期 : 通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T 相互关系: 1个指令周期 = 若干个CPU周期 1个CPU周期 = 若干T周期
13
指令周期 · CPU周期 · 时钟周期
14
5条典型指令构成的简单程序 020 CLA ;累加器清0 021 ADD 30 ;(AC)+(30)→AC
022 STA 40 ;(AC)→(40) 023 NOP ; 空操作 024 JMP 21 ; 21 → PC … ; 数据 040 存和数 ; 数据
15
5.2.2 CLA指令的指令周期 一个CPU周期 取下条指令PC+1 取指令 PC+1 开始 执行指令 对指令 译码 执行指令阶段
取指令阶段 执行指令阶段 开始 取指令 PC+1 对指令 译码 执行指令 取下条指令PC+1
16
取出CLA指令 CPU ALU c +1 c c c 算术逻辑单元 状态条件寄存器 累加器AC 程序计数器PC 000 020
执行控制 取指控制 CPU 算术逻辑单元 ALU 时钟 状态条件寄存器 操作控制器 时序产生器 状态反馈 累加器AC c 程序计数器PC +1 指令译码器 c CLA c c 指令寄存器IR 地址寄存器AR CLA 20 CLA 21 ADD 30 缓冲寄存器DR 22 STA 40 23 NOP 地址总线ABUS 24 JMP 21 数据总线DBUS 30 31 40
17
执行CLA指令 CPU ALU c +1 c c c 数据总线DBUS 算术逻辑单元 状态条件寄存器 操作控制器 时序产生器 累加器AC
执行控制 取指控制 CPU 算术逻辑单元 ALU 时钟 状态条件寄存器 操作控制器 时序产生器 状态反馈 累加器AC c 程序计数器PC 指令译码器 +1 c CLA c c 指令寄存器IR 地址寄存器AR CLA 20 CLA 21 ADD 30 缓冲寄存器DR 22 STA 40 23 NOP 数据总线DBUS 地址总线ABUS 24 JMP 21 30 31 40
18
5.2.3 ADD指令的指令周期 一个CPU周期 取指令阶段 执行指令阶段 开始 取指令PC+1 对指令译码 送操作数地址
取出操作数 执行加操作
19
取出并执行ADD指令 CPU ALU c +1 c c c 执行控制 取指控制 算术逻辑单元 0+6=6 时钟 状态条件寄存器 操作控制器
时序产生器 状态反馈 累加器AC c 程序计数器PC 指令译码器 +1 c ADD c c 指令寄存器IR 地址寄存器AR ADD 20 CLA 21 ADD 30 缓冲寄存器DR 22 STA 40 23 NOP 数据总线DBUS 地址总线ABUS 24 JMP 21 30 31 40
20
5.2.4 STA指令的指令周期
21
取出并执行STA指令 CPU ALU c +1 c c c 执行控制 取指控制 算术逻辑单元 时钟 状态条件寄存器 操作控制器 时序产生器
状态反馈 累加器AC c 程序计数器PC 指令译码器 +1 c STA c c 指令寄存器IR 地址寄存器AR STA 20 CLA 21 ADD 30 缓冲寄存器DR 22 STA 40 23 NOP 数据总线DBUS 地址总线ABUS 24 JMP 21 30 40
22
NOP指令和JMP指令的指令周期
23
取出并执行JMP指令 ALU c +1 c c c 指令寄存器IR 执行控制 算术逻辑单元 时钟 状态条件寄存器 状态反馈 累加器AC
取指控制 算术逻辑单元 ALU 时钟 状态条件寄存器 操作控制器 时序产生器 状态反馈 累加器AC c 程序计数器PC 指令译码器 +1 c JMP c c 指令寄存器IR 地址寄存器AR JMP 21 20 CLA 21 ADD 30 缓冲寄存器DR 22 STA 40 23 NOP 数据总线DBUS 地址总线ABUS 24 JMP 21 30 40
24
5.3 时序产生器和控制方式 时间控制对计算机来说是非常重要的! [思考]
5.3 时序产生器和控制方式 [思考] 用二进制码表示的指令和数据都放在内存里,那么CPU是怎样识别出它们是数据还是指令呢? 从时间上来说: 取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。 从空间上来说: 如果取出的代码是指令,那么一定经DR送往指令寄存器IR,如果取出的代码是数据,那么一定送往运算器。 时间控制对计算机来说是非常重要的!
25
5.3.1 时序信号的作用和体制 计算机的协调动作需要时间标志,而且需要采用多级时序体制。而时间标志则用时序信号来体现。
5.3.1 时序信号的作用和体制 计算机的协调动作需要时间标志,而且需要采用多级时序体制。而时间标志则用时序信号来体现。 硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。 主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示 节拍电位(机器周期):表示一个CPU 周期的时间,包含若干个节拍脉冲 节拍脉冲(时钟周期):表示较小的时间单位 微程序控制器中,时序信号则一般采用节拍电位-节拍脉冲二级体制。
26
主状态周期-节拍电位-节拍脉冲 主状态周期 节拍电位1 节拍电位2 节拍脉冲
27
节拍电位-节拍脉冲 控制信号:脉冲 数据:电位 数据准备好后,以电位的方式送触发器 控制信号来到后,用一个脉冲信号把数据装入触发器
28
5.3.2 时序信号产生器 启停控制逻辑 节拍脉冲和读写时序译码逻辑 产生一组有序的间隔相等或不等的脉冲序列
5.3.2 时序信号产生器 IORQ MREQ RD WE T1 T2 T3 T4 启动 启停控制逻辑 停机 IORQ° MREQ° RD° WE° T1° T2° T3° T4° MERQ’ RD’ 节拍脉冲和读写时序译码逻辑 IORQ’ WR’ 环形脉冲发生器 Φ 时钟脉冲源 产生一组有序的间隔相等或不等的脉冲序列 提供频率稳定且电平匹配的方波时钟脉冲信号 由石英晶体振荡器组成
29
时序产生器 (1/4) 一、 概念 1、时序部件:计算机的机内时钟。它用其产生的周期状态,节拍电位及时标脉冲去对指令周期进行时间划分,刻度和标定。 2、指令周期:在计算机中从指令的读取到指令的执行完成,执行一条指令所需要的时间,称为指令周期。 指令周期通常由若干个CPU周期来表示,CPU周期也称为机器周期。由于CPU内部的操作速度较快,而CPU访问一次内存所花的时间较长,通常用存储周期为基础来规定CPU周期。
30
时序产生器 (2/4) 二、3级时序信号 1、周期 (1)在一个控制阶段内均持续起作用的信号;
(2)通常用周期状态寄存器来标志和指明某某周期控制; (3)指令周期可分为取指周期、分析周期、执行周期。 2、节拍 (1)把一个机器周期分成若干个相等的时间段,每一个时间段对应一个电位信号,称节拍电位; (2)一般都以能保证ALU进行一次运算操作作为一拍电位的时间宽度。 3、时标工作脉冲 (1) 及时改变标志状态; (2) 时标脉冲的宽度一般为节拍电位宽度的1/N,只要能保证所有的触发器都能可靠地,稳定地翻转即可。
31
时序产生器 (3/4) 三、3级时序信号的关系 1、一台计算机机内的控制信号一般均由若干个周期状态,若干个节拍电位及若干个时标脉冲这样3级控制时序信号定时完成。 2、3级控制时序信号的宽度均成正整数倍同步关系。周期状态之间,节拍电位之间,时标脉冲之间既不容许有重叠交叉,又不容许有空白间隙,应该是能一个接一个地准确连接,一个降落另一个升起而准确切换的同步信号。
32
时序产生器 (4/4) 图6-7 三级时序系统 时标脉冲 节拍 周期
33
CPU的控制方式 (1/4) 控制器的控制方式:形成控制不同微操作序列的时序控制信号的方法。 控制方式的分类: 同步控制方式 异步控制方式
同异步联合控制方式
34
CPU的控制方式 (2/4) 一、同步控制方式 1、含义:又称为固定时序控制方式或无应答控制方式。任何指令的执行或指令中每个微操作的执行都受事先安排好的时序信号的控制。 2、每个周期状态中产生统一数目的节拍电位及时标工作脉冲。 3、以最复杂指令的实现需要为基准。 4、优点:设计简单,操作控制容易实现。 缺点:效率低。
35
CPU的控制方式 (3/4) 二、异步控制方式 1、 含义:可变时序控制方式或应答控制方式。执行一条指令需要多少节拍,不作统一的规定,而是根据每条指令的具体情况而定,需要多少,控制器就产生多少时标信号。 2、特点:每一条指令执行完毕后都必须向控制时序部件发回一个回答信号,控制器收到回答信号后,才开始下一条指令的执行。 3、优点:指令的运行效率高; 缺点:控制线路比较复杂。 4、异步工作方式一般采用两条定时控制线来实现。我们把这两条线称为“请求”线和“回答”线。当系统中两个部件A和B进行数据交换时,若A发出“请求”信号,则必须有B的“回答”信号进行应答,这次操作才是有效的,否则无效。
36
CPU的控制方式 (4/4) 三、同步,异步联合控制方式 1、含义:同步控制和异步控制相结合的方式即联合控制方式,区别对待不同指令。
2、一般的设计思想是,在功能部件内部采用同步式,而在功能部件之间采用异步式,并且在硬件实现允许的情况下,尽可能多地采用异步控制。
37
5.3.3 控制方式 1. 同步控制方式 2. 异步控制方式 3. 联合控制方式 控制不同操作序列时序信号的方法
5.3.3 控制方式 控制不同操作序列时序信号的方法 1. 同步控制方式 已定的指令在执行时所需的CPU周期(机器周期)数和时钟周期数都固定不变。例如采用完全统一的机器周期执行各种不同的指令 2. 异步控制方式 控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作 3. 联合控制方式 同步控制和异步控制相结合的方式
38
完全同步控制方式 CPU周期 取指周期 CPU周期 取源数 CPU周期 取目标数 CPU周期 执行周期 W0 W1 P0 P1 P2
39
异步控制方式 一般采用两条定时控制线:“请求”线和“回答”线 第N条指令 第N+2条指令 结束应答 结束应答 W0 W1 … Wi W0
Wk 启动 下一条 启动 下一条 第N+1条指令 结束应答 W0 W1 … Wj i、j、k不一定相等 一般采用两条定时控制线:“请求”线和“回答”线 演示
40
5.4 微程序控制器 微程序控制器同硬布线控制器相比较,具有规整性、灵活性、可维护性等一系列优点 它利用软件方法(微程序设计技术)来设计硬件
微程序控制的基本思想就是把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里(控制存储器CM)。当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作
41
微命令 → 指令系统 处理器内部可以分为:控制部件和执行部件 微命令:控制部件向执行部件发出的控制命令
微操作:执行部件接受微命令后所进行的操作 (微操作在执行部件中是最基本的操作) 微指令:实现一定操作功能的一组微命令 微程序:实现一条机器指令功能的微指令序列 指令系统=所有指令,指令=微程序 微程序=若干微指令,微指令=一组微命令 微命令→微操作
42
机器指令与微指令 微程序 程序 机器指令1 微指令1 机器指令2 微指令2 …….. …….. 机器指令i 微指令i ……… ……..
机器指令n 微指令n
43
机器指令级 微指令级 微命令 微指令寄存器μIR 指令寄存器IR 缓冲寄存器DR 控制存储器CM 主存储器 地址译码器 地址译码
地址寄存器AR 微地址寄存器μAR 程序计数器PC
44
5.5 微程序设计技术 1.静态微程序设计 对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无须改变而且也不好改变
2.动态微程序设计 采用EPROM作为控制存储器,可以通过改变微指令和微程序来改变机器的指令系统 采用动态微程序设计,微指令和微程序可以根据需要加以改变,因而可在一台机器上仿真其它机器指令系统
45
5.6 硬布线控制器 硬布线控制器把控制部件看作为产生专门固定时序控制信号的逻辑电路(以使用最少元件和取得最高操作速度为设计目标)
5.6 硬布线控制器 硬布线控制器把控制部件看作为产生专门固定时序控制信号的逻辑电路(以使用最少元件和取得最高操作速度为设计目标) 硬布线控制的优点:速度较快;缺点:不容易修改添加新功能 微程序控制的优点:具有规整性、灵活性、可维护性等;缺点:采用存储程序原理,需要执行多条微指令,速度较慢
46
5.7 传统CPU M6800CPU 是一个比较典型的单总线结构的微处理器
M6800CPU是一种8位微处理器,采用单一的5V电源。时钟脉冲采用两相(φ1,φ2),主频为1MHz,由外面加入CPU。 M6800的CPU主要包括8位的ALU,16位的程序计数器、16位的堆栈指示器和16位的变址寄存器,两个8位的累加器和一个8位的状态条件码寄存器,一个8位的指令寄存器以及指令译码与控制部件(即操作控制器)。此外还有一个8位的数据缓冲寄存器和一个16位的地址缓冲寄存器。 ALU部件执行算术运算和逻辑操作,它们包括逻辑“与”、逻辑“或”、逻辑“异或”、求补、比较、加法、减法、十进制调整等。 在M6800中,主存地址和外设地址是统一编址的,因此,在65536个地址中有一部分是为外围设备使用的。
47
传统CPU举例 Intel 8088CPU Intel 8088是一种通用的准16位微处理器,其内部结构为16位,与外部交换的数据为8位。它可以处理16位数据(具有16位运算指令,包括乘除法指令),也可处理8位数据。它有20条地址线,直接寻址能力达到1M字节。 CPU 从功能上来说分成总线接口单元BIU和执行单元EU两大部分。 BIU负责与存储器和外围设备接口,即8088 CPU与存储器和外围设备之间的信息传送,都是由BIU进行的。 EU 部分负责指令的执行。取指部分与执行指令部分是独立并行工作的,在一条指令的执行过程中,可取出下一条(或多条)指令,在指令流队列寄存器中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了系统的运行速度。
48
传统CPU举例 IBM 370CPU 32位CPU ALU部件按功能不同分为如下三个子部件:(1)定点运算,包括整数计算和有效地址的计算;(2)浮点运算;(3)可变长运算,包括十进制算术运算和字符串操作。 为了存放地址和数据,使用了两组独立的可编址寄存器,16个通用寄存器用来存放操作数和运算结果,且可用作变址寄存器。4个浮点寄存器用于浮点运算。数据寄存器DR、地址寄存器AR、指令寄存器IR是标准化的。 Intel 80486CPU 通过采用流水技术,以及微程序控制和硬布线逻辑控制相结合的方式,进一步缩短可变长指令的译码时间,达到基本指令可以在一个时钟周期内完成。
49
传统CPU举例 486芯片内部包含一个8KB的数据和指令混合性cache,为频繁访问的指令和数据提供快速的内部存储,从而使系统总线有更多的时间用于其他控制。 486芯片内部包含了增强性80387协处理器,称为浮点运算部件(FPU)。由于FPU功能扩充,且放在CPU内部,使引线缩短,故速度比80387提高了3—5倍。 486 CPU的内部数据总线宽度为64位,这也是它缩短指令周期的一个原因。而外部数据总线的宽度也可以自动转换。 地址信号线扩充到32位,可以处理4GB(232字节)的物理存储空间。如果利用虚拟存储器,其存储空间达64TB(246字节)。
50
5.8 流水CPU 洗衣房的流水作业 A B C D 6 PM 7 8 9 30 40 20 三个阶段: 1. 水洗(30)
T a s k O r d e Time 30 40 20 洗衣房的流水作业 三个阶段: 1. 水洗(30) 2. 烘干(40) 3. 熨烫(20) 演示
51
5.8.1 并行处理技术 并行性(Parallelism): 并行性的等级
在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作 同时性(Simultaneity):同一时刻发生的并行性 并发性(Concurrency):同一个时间间隔内发生的并行性 并行性的等级 指令内部并行:微操作之间 指令级并行(ILP:Instruction Level Parallel) 线程级并行(TLP:Thread Level Parallel ) 程序级并行 系统级并行:分布式系统、多机系统、机群系统
52
时间重叠(Time-interleaving)=时间并行 多个过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分
提高并行性的技术途径 时间重叠(Time-interleaving)=时间并行 多个过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分 资源重复(Resource-replication)=空间并行 通过重复设置资源(尤其是硬件资源),提高性能 资源共享(Resource-sharing) 使多个任务按一定时间顺序轮流使用同一套硬件设备 单机系统中并行性的发展→9.1.3 指令流水线,部件冗余,分时系统 多机系统中并行性的发展→9.1.4 多机系统 耦合度:松散耦合、紧密耦合
53
5.8.2 流水CPU的结构 WB 指令流水线 IF(Instruction Fetch) 取指令阶段
ID(Instruction Decode) 指令译码阶段 EX(Execute) 执行运算阶段 MEM(Memory Access) 存储器访问阶段 WB(Write Back) 写回结果阶段
54
流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行
流水线的时空图 流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行 描述流水线的工作,最常用的方法是时间-空间图(时空图) 横坐标:表示时间,即各个任务在流水线中所经过的时间 纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)
55
非流水计算机的时空图 每4个机器周期才有一个输出结果
56
流水计算机的时空图 每个机器周期可以输出一个结果 演示
57
流水线的特点 流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间 流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间 流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall) 流水线开始需要“通过时间” (Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率
58
流水线中的主要问题 流水线中存在一些相关(冲突、冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在设计的时钟周期内执行。这些相关将降低流水线性能 主要有三种类型的相关(冲突) 结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求 数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)却无法得到 控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令
59
1. 资源相关 资源相关是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突
资源相关是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突 例:假定一条指令流水线由五段组成,且仅有IF过程和MEM过程需要访问存储器 I1与I4两条指令在时钟4争用存储器资源的相关冲突
60
2. 数据相关 ADD R1, R2, R3 ; R2+R3→R1 SUB R4, R1, R5 ; R1-R5→R4
AND R6, R1, R7 ; R1∧R7→R0 指令发生数据相关冲突
61
3. 控制相关 控制相关冲突由转移指令(分支指令)引起 执行转移指令时,依据转移条件的产生结果 可能为顺序取下条指令
也可能转移到新的目标地址取指令 地址不定,流水线需要暂停、发生断流 转移指令主要有: 无条件转移指令:跳转、过程调用和返回 条件分支指令
62
【例5】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关
⑴ I1: ADD R1, R2, R3 ;R2+R3→R1 I2: SUB R4, R1, R5 ;R1-R5→R4 ⑵ I3: STA M(x), R3 ;R3→M(x) I4: ADD R3, R4, R5 ;R4+R5→R3 ⑶ I5: MUL R3, R1, R2 ;R1×R2→R3 I6: ADD R3, R4, R5 ;R4+R5→R3 RAW WAR WAW
63
指令动态调度策略 简单指令流水线技术的一个主要局限 指令顺序发射(in-order issue)=按序发射 指令顺序执行(in-order execution) 如果一条指令在流水线中,与之相关的指令及其后面的指令都不能进行处理 改进指令流水线,只要指令操作数就绪就执行, 指令乱序执行(out-of-order execution) 指令乱序结束(out-of-order completion) MUL R0, R2, R4 ADD R6, R0, R8 SUB R7, R3, R1
64
进一步改进指令流水线,实现一个时钟周期发射(流出issue)多条指令
多指令流出技术 进一步改进指令流水线,实现一个时钟周期发射(流出issue)多条指令 超标量(Superscalar)处理器:每个时钟周期发射多条指令(1~8) 超长指令字(VLIW: Very Long Instruction Word):通过编译器调度无关的多条指令(4~16)形成一条长指令,每个时钟周期发射一条长指令 超级流水线(Super pipelining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)
65
多发射流水线 1 2 3 4 5 6 7 T 正常流水线 超标量流水线 超长指令字流水线 3个操作 超级流水线
66
D1指令译码1(decode stage 1) D2指令译码2(decode stage 2)
80486的整数指令流水线 5级指令流水线,每级1个时钟周期 PF指令预取(prefetch) D1指令译码1(decode stage 1) 对所有操作码和寻址方式信息进行译码 D2指令译码2(decode stage 2) 将操作码扩展为ALU的控制信号,存储器地址计算 EX指令执行(execute) 完成ALU操作和Cache存取 WB回写(write back) 更新在EX步骤得到的寄存器数据和状态标志
67
类似80486的5级流水线,后3级可以在两个流水线同时进行
Pentium的超标量流水线 类似80486的5级流水线,后3级可以在两个流水线同时进行 指令预取PF和指令译码D1步骤可以并行取出、译码2条简单指令,然后分别发向U和V流水线 在满足指令配对的条件下,Pentium可以每个时钟周期执行完2条指令 V流水线 U流水线 地址生成D2 指令预取PF 指令译码D1 执行EX 回写WB
68
Pentium的超标量结构 转移指令地址 寄 存 器 移位器 指令译码和配对 控制单元 分支目标 缓冲器 存储地址产生器 队列B 队列A
V流水线 ALU U流水线 移位器 指令译码和配对 控制单元 分支目标 缓冲器 存储地址产生器 队列B 队列A 指令Cache 指令预取电路 分支目标地址 产生分支地址
69
Pentium III的动态执行结构 取指 取数 顺序发送前端 (取指与译码单元) 乱序执行核心 (分派与执行单元) 顺序退出单元
读取指令 译码指令为微代码 处理指令分支 乱序执行核心 (分派与执行单元) 调度和执行微代码 包含5个执行端口 顺序退出单元 (退出单元) 顺序退出指令 写入寄存器和存储器结果 L1指令Cache L1数据Cache 存数 总线接口单元 L2 Cache 系统总线 重排序缓冲区ROB (指令池) 等待执行的微代码缓冲区
70
5.9 RISC CPU RISC的三个要素 (1)一个有限的简单的指令集 (2)CPU配备大量的通用寄存器 (3)强调对指令流水线的优化
71
5.9.1 RISC机器的特点 ⑴ 等长指令,典型长度是4个字节(32位) ⑵ 寻址方式少且简单,一般为2~3种
⑶ 只有取数指令和存数指令访问存储器 ⑷ 指令数目一般少于100种,指令格式一般少于4种 ⑸ 指令功能简单,控制器多采用硬布线方式 ⑹ 指令的执行时间为一个处理时钟周期 ⑺ 整数寄存器的个数不少于32个 ⑻ 强调通用寄存器资源的优化使用 ⑼ 支持指令流水并强调指令流水的优化使用 ⑽ RlSC技术的编译程序复杂
72
RISC与CISC的主要特征对比 比较内容 CISC RISC 指令系统 复杂,庞大 简单,精简 指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4 寻址方式 指令字长 不固定 等长 可访存指令 不加限制 只有LOAD/STORE指令 各种指令使用频率 相差很大 相差不大 各种指令执行时间 绝大多数在一个周期内完成 优化编译实现 很难 较容易 程序源代码长度 较短 较长 控制器实现方式 绝大多数为微程序控制 主要采用硬布线控制 软件系统开发时间
73
5.10 多媒体CPU Vendor Extension Year # Instr Registers HP MAX-1 and 2
94,95 9,8 (int) Int 32x64b Sun VIS 95 121 (int) FP 32x64b Intel MMX 97 57 (int) FP 8x64b AMD 3DNow! 98 21 (fp) Motorola Altivec 162 (int,fp) 32x128b (new) SSE 70 (fp) 8x128b (new) MIPS MIPS-3D ? 23 (fp) E 3DNow! 99 24 (fp) 8x128 (new) SSE2 01 144 (int, fp) SSE3 03 13 (int,fp)
74
5.10.1 多媒体技术的主要问题 媒体(media):传递信息的媒介
多媒体技术的主要问题 媒体(media):传递信息的媒介 包括存储信息的实体与传递信息的载体 多媒体(multimedia)技术:计算机把各种不同的电子媒质集成起来,统一进行存储、处理和传输 多媒体技术:将多媒体信息,经计算机设备获取、编辑、存储等处理后,以多媒体形式表现出来的技术 多媒体技术解决的主要问题 1.图像与声音的压缩技术 2.适应多媒体技术的软件技术 3.计算机系统结构方面的技术
75
SIMD stands for Single Instruction Multiple Data
计算机体系结构的分类 根据指令流和数据流的并行情况,Flynn[1966]提出了对所有计算机进行分类的简单模型 单指令流、单数据流SISD:单处理器系统 单指令流、多数据流SIMD: 多媒体指令和向量计算机 多指令流、单数据流MISD:尚无商用 多指令流、多数据流MIMD: 每个处理器取用自己的指令并对自己的数据进行操作。通常使用现有的微处理器实现 SIMD stands for Single Instruction Multiple Data
76
SIMD指令是能够同时处理多个数据的指令,用于扩展通用处理器对多媒体数据的处理能力 许多应用需要多媒体处理能力
桌面应用 3D 图形,语音识别,视频/音频解码 服务器 视频/音频编码,数字图书馆和媒体挖掘,计算机动画,3D建模和着色 嵌入系统 3D 图形,视频/音频解码编码,图像处理、信号处理
77
紧缩双字Packed Doubleword
MMX数据类型 MMX (multimedia extensions) 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 紧缩字节 Packed Byte 63 48 47 32 31 16 15 紧缩字 Packed Word 63 32 31 紧缩双字Packed Doubleword 63 紧缩4字 Packed Quadword
78
SSE(Streaming SIMD Extensions)
SSE/SSE2/SSE3数据类型 SSE(Streaming SIMD Extensions) 127 96 95 64 63 32 31 紧缩单精度浮点数 Packed Single-precision Floating-point 127 64 63 紧缩双精度浮点数 Packed Double-precision Floating-point
79
SIMD指令-饱和运算 a2+b2 a1+b1 a0+b0 a2+b2 a1+b1 a0+b0
80
SIMD指令-乘加运算 * +
81
SIMD指令-比较指令
82
SIMD指令-类型转换
83
SIMD指令-操作模式 SSE指令 128位操作模式 SSE指令 32位操作模式
84
5.11 CPU性能评价 CPU性能与3个要素有关 时钟频率f 每条指令需要的时钟周期数CPI 指令条数IN 时钟周期长度t=1/f
CPU时钟周期数Nc=CPI×IN
85
CPU性能公式 第i类指令在总程序中占的比例
86
补充例题 假设在一般程序中浮点开平方操作FPSQR所占的比例为2%,它的CPI为100;其他浮点操作FP所占的比例为23%,它的CPI=4.0;其余75%指令的CPI=1.33,计算该处理机的CPI。如果FPSQR操作的CPI也为4.0,重新计算CPI。 解答: CPI1=100×2%+4×23%+1.33×75%=3.92 CPI2=4×25%+1.33×75%=2.00
87
〔例题7〕 有两种条件分支指令的设计方案: 两种方案中,条件分支指令占用2个时钟周期、其他指令占用1个时钟周期
① CPUA:比较指令设置条件码,条件分支指令测试条件码进行分支 ② CPUB:条件分支指令包括比较、并进行分支 两种方案中,条件分支指令占用2个时钟周期、其他指令占用1个时钟周期 CPUA的条件分支指令占20%,比较指令也占20% CPUB的时钟周期比CPUA慢25% 哪个CPU更快?
88
例题7解答 CPIA=0.2×2+0.8×1=1.2 CPU时间A=INA×1.2×tA
CPUB没有独立的比较指令:INB= 0.8×INA CPUB条件分支指令所占比例: 20%÷80%=25%=0.25 CPIB=0.25×2+0.75×1=1.25 CPU时间B=INB × CPIB×tB =0.8×INA×1.25×tB =INA×tB tB=tA+0.25×tA = 1.25×tA CPU时间B=INA×1.25×tA > CPU时间A
89
5.11.2 性能评价标准 执行单项操作的时间,例如:加法操作时间 平均指令执行时间=
性能评价标准 最初: 执行单项操作的时间,例如:加法操作时间 改进为: 平均指令执行时间= 进一步成为容易理解的: 每秒百万条指令(Million Instructions Per Second) 同时出现: MFLOPS(每秒百万浮点操作) 最终形成: 测试程序(Benchmarks)
90
测试程序 实际应用程序 修正的(或者脚本化)应用程序 核心测试程序 小型测试程序 合成测试程序
Livermore Loops和Linpack 小型测试程序 Quicksort,Puzzle和Sieve 合成测试程序 Whetstone和Dhrystone
91
基准测试程序组件 SPEC (Standard Performance Evaluation Corporation)
SPEC89→SPEC92→SPEC95→SPEC2000 11个整数基准程序(CINT2000) 14个浮点基准程序(CFP2000) WinBench 99 and Winstone 2004 WinBench 99:measures the performance of a PC's graphics, disk, processor, and video subsystems Business Winstone 2004:application-based benchmark that measures a PC's overall performance
92
CPU时间与CPU性能 衡量性能最可靠的标准:真实程序的执行时间 真实程序的执行时间 =CPU时间+I/O操作等时间 CPU时间
CPU时间还可细分为用户CPU时间及系统CPU时间,前者表示用户程序所花费的CPU时间,后者表示用户程序运行期间操作系统花费的CPU时间。
93
〔例题8〕 一台40MHz处理器执行标准测试程序 求:CPI,MIPS和执行时间T 指令类型 指令条数 时钟周期数 整数运算 数据传送
浮点运算 控制传送 45000 32000 15000 8000 1 2
94
例题8解答 CPI=(45000×1+32000×2+15000×2+8000×2)÷(45000+32000+15000+8000)
=1.55(时钟周期/指令) MIPS=f/(CPI×106)=40×106/(1.55×106) =25.81 (百万条指令/秒) T=(45000×1+32000×2+15000×2+8000×2)÷(40×106) = 3.87×10-3(秒)
95
第5章习题 1. 在CPU基本模型中,主要有哪些寄存器? 2. 区别如下两组概念 ⑴ 指令周期、CPU周期、时钟周期
⑵ 微命令、微指令、指令 3. 什么是计算机体系结构中的并行性,它包括哪两种含义?有哪些提高并行性的基本技术方法? 4. 什么是指令流水线技术,它有什么特点?主要有哪些问题影响流水线效率? 5. SIMD,MMX和SSE各表示什么含义? 6. 说明CPI和MIPS的含义,给出它们的计算公式。
96
第5章教学要求-1 熟悉CPU的基本模型和主要寄存器的作用 理解指令周期、CPU周期(机器周期、总线周期)和时钟周期(T周期)的概念和区别
了解CLA、ADD、STA和JMP指令在CPU基本模型的执行过程 理解微程序控制器和硬布线控制器的实现特点,了解微命令、微操作、微指令和微程序的概念 熟悉并行性的概念和提高并行性的技术途径 掌握指令流水线的思想,理解流水CPU的时空图 掌握资源相关、数据相关和控制相关的概念
97
第5章教学要求-2 掌握SISD、SIMD、MIMD的分类概念,理解多媒体指令的并行处理特点
掌握CPU性能公式以及CPI、MIPS的计算方法
98
郑州大学·计算机组成原理 2019/1/17 第五章 小结 第5章 中央处理器
99
本章小结 CPU是计算机的中央处理部件,具有指令控制、操作控制、时间控制、数据加工等基本功能。
早期的CPU由运算器和控制器两大部分组成。随着高密度集成电路技术的发展,当今的CPU芯片变成运算器、cache和控制器三大部分,其中还包括浮点运算器、存储管理部件等。CPU中至少要有如下六类寄存器:指令寄存器、程序计数器、地址寄存器、缓冲寄存器、通用寄存器、状态条件寄存器。 CPU从存储器取出一条指令并执行这条指令的时间和称为指令周期。由于各种指令的操作功能不同,各种指令的指令周期是不尽相同的。划分指令周期,是设计操作控制器的重要依据。 时序信号产生器提供CPU周期(也称机器周期)所需的时序信号。操作控制器利用这些时序信号进行定时,有条不紊地取出一条指令并执行这条指令。时序部件是计算机的机内时钟,它用其产生的周期状态、节拍电位及时标脉冲去对指令周期进行时间划分,刻度和标定。
100
本章小结 微程序设计技术是利用软件方法设计操作控制器的一门技术,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中得到了广泛应用,并取代了早期采用的硬布线控制器设计技术。但是随着VLSI技术的发展和对机器速度的要求,硬布线逻辑设计思想又得到了重视。 硬布线控制器的基本思想是:某一微操作控制信号是指令操作码译码输出、时序信号和状态条件信号的逻辑函数,即用布尔代数写出逻辑表达式,然后用门电路,触发器等器件实现。 不论微型机还是巨型机,并行处理技术已成为计算机技术发展的主流。并行处理技术可贯穿于信息加工的各个步骤和阶段。概括起来,主要有三种形式:(1)时间并行,(2)空间并行,(3)时间并行+空间并行。 流水CPU是以时间并行性为原理构造的处理器,是一种非常经济而实用的并行技术。目前的高性能微处理器几乎无一例外地使用了流水技术。流水中的主要问题是资源相关、数据相关和控制相关,为此需要采取相应的技术对策,才能保证流水线畅通而不断流。
101
本章小结 RISC CPU是继承CISC的成功技术,并在克服CISC机器缺点的基础上发展起来的。RISC机器的三个基本要素是:(1)一个有限的简单指令集,(2)CPU配备大量的通用寄存器,(3)强调的指令流水线的优化。注意,RISC机器一定是流水CPU,但流水CPU不一定是RISC机器。如奔腾CPU是流水CPU,但奔腾机是CISC机器。 多媒体CPU是带有MMX技术的处理器。MMX是一种多媒体扩展结构技术,特别适合于图像数据处理,极大地提高了计算机在多媒体和通信应用方面的功能。多媒体CPU以新一代奔腾CPU为代表。
Similar presentations