计算机组成及体系第五章课件_第1页
计算机组成及体系第五章课件_第2页
计算机组成及体系第五章课件_第3页
计算机组成及体系第五章课件_第4页
计算机组成及体系第五章课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成体系

上海电机学院第一章计算机系统概论第二章运算方法和运算器第三章存储系统第四章指令系统

第五章中央处理器第六章总线系统第七章外围设备第八章输入输出系统第九章并行组织目录计算机组成原理第5章中央处理器

5.1CPU的组成和功能 5.8流水CPU5.2

CPU的工作过程 5.9RISCCPU5.3时序产生器和控制方式 5.10多媒体CPU5.4微程序控制器 5.11CPU性能评价5.5微程序设计技术5.6硬布线控制器5.7传统CPU5.1CPU的功能和组成

当代主流计算机所遵循的仍然是冯.诺依曼的“存储程序、程序控制”思想

程序告诉计算机:应该逐步执行什么操作;在什么地方找到用来操作的数据,结果存到何处等

中央处理器是控制计算机自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU(CentralProcessingUnit)5.1.1CPU的功能★程序控制即指令控制

保证机器按程序规定的顺序取出执行(CPU首要任务)★操作控制

CPU产生每条指令所对应的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作★时间控制

对各种操作的实施时间进行定时★数据加工

对数据进行算术运算和逻辑运算处理(CPU的根本任务)控制器与运算器的组成控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。运算器:由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。5.1.2CPU的基本组成

控制器完成对整个计算机系统操作的协调与指挥。

(1)控制机器从内存中取出一条指令,并指出下一条指令在内存中的位置;

(2)对指令进行译码,并产生相应的操作控制信号,送往相应的部件,启动规定的动作;

(3)指挥并控制CPU、内存与输入/输出(I/O)设备之间数据流动的方向运算器是数据加工处理部件,所进行的全部操作由控制器发出的控制信号指挥

(1)执行所有的算术运算;

(2)执行所有的逻辑运算,并进行逻辑测试算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC存储器I/OCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制ccccc缓冲寄存器DRCPU的基本模型5.1.3

CPU中的主要寄存器

数据缓冲寄存器(DR)暂时存放由内存读出或写入的指令或数据字指令寄存器(IR)保存当前正在执行的一条指令程序计数器(PC)确定下一条指令的地址地址寄存器(AR)保存当前CPU所访问的内存单元的地址累加寄存器(AC)最常使用的一个通用寄存器状态条件寄存器(PSW)保存由算术和逻辑指令的结果建立的各种条件码5.1.4操作控制器与时序产生器微操作与数据通路微操作:把指令分解成的一系列最基本、最简单、不可再分的操作控制动作。数据通路:许多寄存器之间传输信息的通路称为数据通路。5.1.4操作控制器与时序产生器操作控制器在各寄存器之间建立数据通路(传送信息的通路)操作控制器的功能:就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制组合逻辑控制器(时序逻辑型)微程序控制器(存储逻辑型)时序产生器产生并发出计算机所需要的时序控制信号,对各种操作实施时间上的控制。5.2

CPU的工作过程—读取指令指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器—分析指令—按指令规定内容执行指令不同指令的操作步骤数和具体操作内容差异很大—检查有无中断请求若无,则转入下一条指令的执行过程形成下一条指令地址

指令的执行过程取指令执行指令5.2.1指令周期的基本概念

指令周期

:

CPU从内存取出一条指令并执行完这条指令的时间总和CPU周期

:

又称机器周期(总线周期),CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义

时钟周期

:

通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T

相互关系:

1个指令周期=若干个CPU周期

1个CPU周期=若干T周期

取指时间+执行指令时间指令周期·CPU周期·

时钟周期020

CLA

;累加器清0021

ADD30

;(AC)+(30)→AC

022

STA40

;(AC)→(40)023

NOP

;空操作

024

JMP21

;21→PC

…030000006 ;数据

…040存和数 ;数据5条典型指令构成的简单程序一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码执行指令取下条指令PC+15.2.2CLA指令的指令周期取出CLA指令算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA00002140算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243031CLAADD30STA40NOPJMP21000006000020CLACLA000021000000执行CLA指令5.2.3

ADD指令的指令周期一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码送操作数地址取下条指令PC+1取出操作数执行加操作一个CPU周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006取出并执行ADD指令5.2.4

STA指令的指令周期

取出并执行STA指令算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA400000220000230000400000060000060000065.2.5NOP指令和JMP指令的指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000024JMP21JMP21000024000021000006000006000025000021取出并执行JMP指令例1:教材图5-11所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。(1)“ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并列出相应的微操作控制信号序列。(2)“SUBR1,R3”指令完成(R3)-(R1)→R3的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。5.3

时序产生器和控制方式

用二进制码表示的指令和数据都放在内存里,那么CPU是怎样识别出它们是数据还是指令呢?

从时间上来说:取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。

从空间上来说:如果取出的代码是指令,那么一定经DR送往指令寄存器IR,如果取出的代码是数据,那么一定送往运算器。时间控制对计算机来说是非常重要的![思考]5.3.1时序信号的作用和体制

计算机的协调动作需要时间标志,而且需要采用多级时序体制。而时间标志则用时序信号来体现。操作控制器发出的各种控制信号都是时间因素(时序信号)和空间因素(部件位置)的函数。组成计算机硬件的器件特性决定了时序信号最基本的体制是电位—脉冲制。

数据准备好后,以电位的方式送触发器控制信号来到后,用一个脉冲信号把数据装入触发器数据:电位控制信号:脉冲节拍电位-节拍脉冲硬布线控制器中的时序信号

硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示节拍电位(机器周期):表示一个CPU周期的时间,包含若干个节拍脉冲节拍脉冲(时钟周期):表示较小的时间单位

节拍脉冲节拍电位1主状态周期节拍电位2主状态周期-节拍电位-节拍脉冲

微程序控制器中的时序信号微程序控制器中,时序信号则一般采用节拍电位-节拍脉冲二级体制。它只有一个节拍电位节拍脉冲中包含若干个节拍脉冲节拍脉冲把一个CPU周期划分成几个较小的时间间隔。时间间隔可以相等,也可以不相等。5.3.2时序信号产生器

IORQMREQRDWET1T2T3T4

IORQ°MREQ°RD°WE°T1°T2°T3°T4°MERQ’IORQ’RD’WR’Φ提供频率稳定且电平匹配的方波时钟脉冲信号由石英晶体振荡器组成产生一组有序的间隔相等或不等的脉冲序列启动停机启停控制逻辑节拍脉冲和读写时序译码逻辑环形脉冲发生器时钟脉冲源5.3.2时序信号产生器1.时钟源时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。电路左边是振荡电路,右边是整形电路,左边的电路产生接近正弦波的波形,右边非门则将其整形为一个理想的方波11RC1C25.3.2时序信号产生器2.环形脉冲发生器产生一组有序的间隔相等或不相等的脉冲序列。毛刺产生原因:电路内部原因以及寄存器参数的影响,避免方法:采用循环移位寄存器电路分析:S为置位端,R为复位端SRDCPQQ5.3.2时序信号产生器39C4C1C2C3Φ5.3.2时序信号产生器3.节拍脉冲和存储器读/写时序的译码5.3.2时序信号产生器4.启停控制逻辑启动、停机是随机的,对读/写时序信号也需要由启停逻辑加以控制。当运行触发器为“1”时,打开时序电路。当计算机启动时,一定要从第1个节拍脉冲前沿开始工作。当运行触发器“0”时,关闭时序产生器。停机时一定要在第4个节拍脉冲结束后关闭时序产生器。5.3.3控制方式

(1/4)控制器的控制方式:控制不同操作序列时序信号的方法,称为控制器的控制方式。控制方式的分类:同步控制方式异步控制方式同异步联合控制方式5.3.3控制方式

(2/4)一、同步控制方式在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案:(1)采用完全统一的机器周期执行各种不同的指令。(2)采用不定长机器周期。(3)中央控制与局部控制结合5.3.3控制方式

(3/4)二、异步控制方式

1、执行一条指令需要多少节拍,不作统一的规定,而是根据每条指令的具体情况而定,需要多少,控制器就产生多少时标信号。

2、每一条指令执行完毕后都必须向控制时序部件发回一个回答信号,控制器收到回答信号后,才开始下一条指令的执行。

3、这种方式形成的操作控制序列没有固定的CPU周期数或严格的时钟周期与之同步。

5.3.3控制方式

(4/4)三、联合控制方式情况(1)

大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束;情况(2)

机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。5.4微程序控制器

微程序控制器同硬布线控制器相比较,具有规整性、灵活性、可维护性等一系列优点它利用软件方法(微程序设计技术)来设计硬件微程序控制的基本思想就是把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里(控制存储器CM)。当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作5.4.1微命令和微操作处理器内部可以分为:控制部件和执行部件控制部件:控制器运算器执行部件存储器外围设备5.4.1微命令和微操作控制部件与执行部件的联系控制线反馈信息微命令:控制部件向执行部件发出的控制命令它是构成控制序列的最小单位。例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。微命令是控制计算机各部件完成某个基本微操作的命令。5.4.1微命令和微操作微操作:执行部件接受微命令后所进行的操作微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。微操作是执行部件中最基本的操作。微命令→指令系统

微操作在执行部件中是最基本的操作相容性微操作微操作相斥性微操作微指令:实现一定操作功能的一组微命令微程序:实现一条机器指令功能的微指令序列指令系统=所有指令,指令=微程序微程序=若干微指令,微指令=一组微命令微命令→微操作

微指令基本格式

微指令给出的控制信号都是节拍电位信号,持续时间都是一个CPU周期。

微指令基本格式操作控制部分用来发出管理和指挥全机工作的控制信号。每一位表示一个微命令。当操作控制字段某一位信息为1时,表示发出微命令。顺序控制部分用来决定下一条微指令的地址。

运算器操作时序与产生逻辑机器指令与微指令

程序机器指令1机器指令2机器指令i机器指令n……..………微指令2微指令1微指令i微指令n……..……..微程序5.4.3微程序控制器原理框图

微程序控制器的组成控制存储器

控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。要求是速度快,读出周期要短。

微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指令信息。

地址转移逻辑地址转移逻辑就承担自动完成修改微地址的任务。

5.4.4微程序举例

5.4.5CPU周期与微指令周期的关系在串行方式的微程序控制器中,微指令周期等于读出微指令的时间加上执行该条微指令的时间。为保证整个机器控制信号的同步,可以将一个微指令周期时间设计得恰好和CPU周期时间相等。5.4.6机器指令与微指令的关系一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。从指令与微指令,程序与微程序,地址与微地址一一对应的关系来看,前者与内存储器有关,后者与控制存储器有关。五条指令的微程序流程图,每一个CPU周期就对应一条微指令。程序计数器PC地址寄存器AR缓冲寄存器DR指令寄存器IR微地址寄存器μAR微指令寄存器μIR主存储器控制存储器CM微命令地址译码器地址译码机器指令级微指令级5.5微程序设计技术5.5.1微命令编码

直接表示法

编码表示法

混合表示法

综合考虑指令字长、灵活性、执行微程序速度等方面的要求1.直接表示法

特征:操作控制字段中的每一位代表一个微命令。优点:简单直观,其输出直接用于控制。缺点:微指令字较长,因而使控制存储器容量较大。2.编码表示法特征:把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。优点:用较小的二进制信息位表示较多的微命令信号

缺点:微程序的执行速度稍稍减慢。5.5.2微地址的形成方法1.计数器方式特征:微地址寄存器通常改为计数器。顺序执行的微指令序列就必须安排在控制存储器的连续单元中。优点:微指令的顺序控制字段较短,微地址产生机构简单。缺点:多路并行转移功能较弱,速度较慢,灵活性较差。

5.5.2微地址的形成方法2.多路转移方式特征:一条微指令具有多个转移分支的能力称为多路转移。“判别测试”有n位标志,可实现微程序2的n次方路转移,涉及微地址寄存器的n位。

优点:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快。缺点:转移地址逻辑需要用组合逻辑方法设计。

5.5.3微指令格式

指令的编译方法是决定微指令格式的主要因素。微指令的格式大体分成两类:水平型微指令和垂直型微指令。水平型微指令

垂直型微指令

1.水平型微指令

一次能定义并执行多个并行操作微命令的微指令。按照控制字段的编码方法不同,分为:全水平型字段译码法水平型直接和译码相混合的水平型

2.垂直型微指令(1)微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。在一条微指令中只有1—2个微操作命令,每条微指令的功能简单。

2.垂直型微指令(2)水平型微指令与垂直型微指令(1)水平型微指令并行操作能力强,指令高效,快速,灵活,垂直型微指令则较差。(2)水平型微指令执行一条指令时间短,垂直型微指令执行时间长。(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。

5.5.4动态微程序设计

1.静态微程序设计对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无须改变而且也不好改变2.动态微程序设计采用EPROM作为控制存储器。通过改变微指令和微程序来改变机器的指令系统可在一台机器上仿真其它机器指令系统

5.6硬布线控制器把控制部件看作为产生专门固定时序控制信号的逻辑电路(以使用最少元件和取得最高操作速度为设计目标)。这种逻辑电路是一种由门电路和触发器构成的复杂树形逻辑网络。

优点:速度较快

缺点:不容易修改添加新功能

问:与微程序控制相比,哪个速度快?为什么?

5.6.1硬布线控制器基本原理某一微操作控制信号C是指令操作码译码器输出Im、时序信号(Mi,Tk

)和状态条件信号Bj的逻辑函数,即C=f(Im,Mi,Tk,Bj)2.指令执行流程对于硬布线控制器,时序产生器除要产生节拍脉冲信号外,还应当产生节拍电位信号。3.微操作控制信号的产生在微程序控制器中,微操作控制信号由微指令产生,并且可以重复使用。在硬布线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。如是脉冲有效,必须加入节拍脉冲信号进行相“与”。5.7传统CPUM6800CPU是一个比较典型的单总线结构的微处理器M6800CPU是一种8位微处理器,采用单一的5V电源。时钟脉冲采用两相(φ1,φ2),主频为1MHz,由外面加入CPU。M6800的CPU主要包括8位的ALU,16位的程序计数器、16位的堆栈指示器和16位的变址寄存器,两个8位的累加器和一个8位的状态条件码寄存器,一个8位的指令寄存器以及指令译码与控制部件(即操作控制器)。此外还有一个8位的数据缓冲寄存器和一个16位的地址缓冲寄存器。ALU部件执行算术运算和逻辑操作,它们包括逻辑“与”、逻辑“或”、逻辑“异或”、求补、比较、加法、减法、十进制调整等。在M6800中,主存地址和外设地址是统一编址的,因此,在65536个地址中有一部分是为外围设备使用的。传统CPU举例Intel8088CPUIntel8088是一种通用的准16位微处理器,其内部结构为16位,与外部交换的数据为8位。它可以处理16位数据(具有16位运算指令,包括乘除法指令),也可处理8位数据。它有20条地址线,直接寻址能力达到1M字节。CPU从功能上来说分成总线接口单元BIU和执行单元EU两大部分。BIU负责与存储器和外围设备接口,即8088CPU与存储器和外围设备之间的信息传送,都是由BIU进行的。EU部分负责指令的执行。取指部分与执行指令部分是独立并行工作的,在一条指令的执行过程中,可取出下一条(或多条)指令,在指令流队列寄存器中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了系统的运行速度。传统CPU举例IBM370CPU32位CPUALU部件按功能不同分为如下三个子部件:(1)定点运算,包括整数计算和有效地址的计算;(2)浮点运算;(3)可变长运算,包括十进制算术运算和字符串操作。为了存放地址和数据,使用了两组独立的可编址寄存器,16个通用寄存器用来存放操作数和运算结果,且可用作变址寄存器。4个浮点寄存器用于浮点运算。数据寄存器DR、地址寄存器AR、指令寄存器IR是标准化的。Intel80486CPU32位CPU通过采用流水技术,以及微程序控制和硬布线逻辑控制相结合的方式,进一步缩短可变长指令的译码时间,达到基本指令可以在一个时钟周期内完成。传统CPU举例486芯片内部包含一个8KB的数据和指令混合性cache,为频繁访问的指令和数据提供快速的内部存储,从而使系统总线有更多的时间用于其他控制。486芯片内部包含了增强性80387协处理器,称为浮点运算部件(FPU)。由于FPU功能扩充,且放在CPU内部,使引线缩短,故速度比80387提高了3—5倍。486CPU的内部数据总线宽度为64位,这也是它缩短指令周期的一个原因。而外部数据总线的宽度也可以自动转换。地址信号线扩充到32位,可以处理4GB(232字节)的物理存储空间。如果利用虚拟存储器,其存储空间达64TB(246字节)。5.8流水CPU洗衣房的流水作业三个阶段:1.水洗(30)2.烘干(40)3.熨烫(20)ABCD6PM789TaskOrderTime3040404040205.8.1并行处理技术并行性(Parallelism): 在同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不相同的工作同时性(Simultaneity):同一时刻发生的并行性并发性(Concurrency):同一个时间间隔内发生的并行性并行性的等级指令内部并行:微操作之间指令级并行(ILP:InstructionLevelParallel)线程级并行(TLP:ThreadLevelParallel)程序级并行系统级并行:分布式系统、多机系统、机群系统提高并行性的技术途径时间重叠(Time-interleaving)=时间并行

多个过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分资源重复(Resource-replication)=空间并行 通过重复设置资源(尤其是硬件资源),提高性能资源共享(Resource-sharing)

使多个任务按一定时间顺序轮流使用同一套硬件设备单机系统中并行性的发展→9.1.3指令流水线,部件冗余,分时系统多机系统中并行性的发展→9.1.4多机系统耦合度:松散耦合、紧密耦合5.8.2流水CPU的结构指令流水线

IF(InstructionFetch) 取指令阶段ID(InstructionDecode) 指令译码阶段EX(Execute) 执行运算阶段MEM(MemoryAccess) 存储器访问阶段WB(WriteBack) 写回结果阶段WB流水线的时空图流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子过程同时进行描述流水线的工作,最常用的方法是时间-空间图(时空图)横坐标:表示时间,即各个任务在流水线中所经过的时间纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)非流水计算机的时空图每4个机器周期才有一个输出结果流水计算机的时空图每个机器周期可以输出一个结果演示

设一m段流水线的各段经过时间均为Δt0,则第1条指令从流入到流出需要T0=mΔt0的流水建立时间,之后每隔Δt0就可以流出一条指令,其时—空图如图5.23所示(这里设m=4)。这样,完成n个任务的解释共需时间T=m·Δt0+(n-1)Δt0。在这段时间里,流水线的实际吞吐率

不仅实际的吞吐率总是小于最大的吞吐率,而且只有当n>>m时,才能使实际的吞吐率接近于理想的最大吞吐率。如果用加速比(SpeedupRatio,Sp)表示流水线方式相对非流水线顺序串行方式速度提高的比值,那么,非流水线顺序串行方式工作,连续完成n个任务需要n·m·Δt0的时间,因此,流水线方式工作的加速比

流水线的特点流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall)流水线开始需要“通过时间”(Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率5.8.3流水线中的主要问题流水线中存在一些相关(冲突、冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使得下一条指令无法在设计的时钟周期内执行。这些相关将降低流水线性能主要有三种类型的相关(冲突)结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求数据相关(数据冲突):在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)却无法得到控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令1.资源相关

资源相关是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突

例:假定一条指令流水线由五段组成,且仅有IF过程和MEM过程需要访问存储器解决办法:后边指令拖一拍再推进;增设一个功能部件I1与I4两条指令在时钟4争用存储器资源的相关冲突2.数据相关ADDR1,R2,R3 ;

R2+R3→R1SUBR4,R1,R5 ;

R1-R5→R4ANDR6,R1,R7 ;

R1∧R7→R0指令发生数据相关冲突

2.数据相关RAW(ReadAfterWrite)后面指令用到前面指令所写的数据WAW(WriteAfterWrite)两条指令写同一个单元在简单流水线中没有此类相关,因为不会乱序执行WAR(WriteAfterRead)后面指令覆盖前面指令所读的单元在简单流水线中没有此类相关解决办法:可以推后后继指令对相关单元的读操作设置相关的直接通路(Forwarding)

【例5】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关⑴I1:ADDR1,R2,R3 ;R2+R3→R1

I2:SUBR4,R1,R5 ;R1-R5→R4

⑵I3:STAM(x),R3 ;R3→M(x)

I4:ADDR3,R4,R5 ;R4+R5→R3

⑶I5:MULR3,R1,R2 ;R1×R2→R3

I6:ADDR3,R4,R5 ;R4+R5→R3RAWWARWAW3.控制相关控制相关冲突由转移指令(分支指令)引起执行转移指令时,依据转移条件的产生结果 可能为顺序取下条指令 也可能转移到新的目标地址取指令 地址不定,流水线需要暂停、发生断流转移指令主要有: 无条件转移指令:跳转、过程调用和返回 条件分支指令

解决办法:延迟转移法,转移预测法指令动态调度策略简单指令流水线技术的一个主要局限 指令顺序发射(in-orderissue)=按序发射

指令顺序执行(in-orderexecution)

如果一条指令在流水线中,与之相关的指令及其后面的指令都不能进行处理改进指令流水线,只要指令操作数就绪就执行, 指令乱序执行(out-of-orderexecution)

指令乱序结束(out-of-ordercompletion)MULR0,R2,R4ADDR6,R0,R8SUBR7,R3,R1多指令流出技术进一步改进指令流水线,实现一个时钟周期发射(流出issue)多条指令超标量(Superscalar)处理器:每个时钟周期发射多条指令(1~8)超长指令字(VLIW:VeryLongInstructionWord):通过编译器调度无关的多条指令(4~16)形成一条长指令,每个时钟周期发射一条长指令超级流水线(Superpipelining):将每个功能部件进一步流水化,使得一个功能部件在一个时钟周期中可以处理多条指令(可以简单地理解为很长的流水线)多发射流水线01234567T正常流水线超标量流水线0123456T0123456T超长指令字流水线3个操作01234567T超级流水线80486的整数指令流水线5级指令流水线,每级1个时钟周期

PF指令预取(prefetch)

D1指令译码1(decodestage1) 对所有操作码和寻址方式信息进行译码

D2指令译码2(decodestage2) 将操作码扩展为ALU的控制信号,存储器地址计算EX指令执行(execute) 完成ALU操作和Cache存取WB回写(writeback) 更新在EX步骤得到的寄存器数据和状态标志Pentium的超标量流水线类似80486的5级流水线,后3级可以在两个流水线同时进行指令预取PF和指令译码D1步骤可以并行取出、译码2条简单指令,然后分别发向U和V流水线在满足指令配对的条件下,Pentium可以每个时钟周期执行完2条指令V流水线U流水线地址生成D2地址生成D2指令预取PF指令译码D1执行EX执行EX回写WB回写WBPentium的超标量结构转移指令地址寄存器V流水线ALUU流水线ALU移位器指令译码和配对控制单元分支目标缓冲器V流水线存储地址产生器U流水线存储地址产生器队列B队列A指令Cache指令预取电路分支目标地址产生分支地址PentiumIII的动态执行结构取指取数顺序发送前端(取指与译码单元)读取指令译码指令为微代码处理指令分支乱序执行核心(分派与执行单元)调度和执行微代码包含5个执行端口顺序退出单元(退出单元)顺序退出指令写入寄存器和存储器结果L1指令CacheL1数据Cache存数总线接口单元L2Cache系统总线重排序缓冲区ROB(指令池)等待执行的微代码缓冲区5.9RISCCPURISC的三个要素

(1)一个有限的简单的指令集

(2)CPU配备大量的通用寄存器

(3)强调对指令流水线的优化5.9.1RISC机器的特点⑴等长指令,典型长度是4个字节(32位)⑵寻址方式少且简单,一般为2~3种⑶只有取数指令和存数指令访问存储器⑷指令数目一般少于100种,指令格式一般少于4种⑸指令功能简单,控制器多采用硬布线方式⑹指令的执行时间为一个处理时钟周期⑺整数寄存器的个数不少于32个⑻强调通用寄存器资源的优化使用⑼支持指令流水并强调指令流水的优化使用⑽RlSC技术的编译程序复杂RISC与CISC的主要特征对比

比较内容CISCRISC指令系统复杂,庞大简单,精简指令数目一般大于200一般小于100指令格式一般大于4一般小于4寻址方式一般大于4一般小于4指令字长不固定等长可访存指令不加限制只有LOAD/STORE指令各种指令使用频率相差很大相差不大各种指令执行时间相差很大绝大多数在一个周期内完成优化编译实现很难较容易程序源代码长度较短较长控制器实现方式绝大多数为微程序控制主要采用硬布线控制软件系统开发时间较短较长5.10多媒体CPU

VendorExtensionYear#InstrRegistersHPMAX-1and294,959,8(int)Int32x64bSunVIS95121(int)FP32x64bIntelMMX9757(int)FP8x64bAMD3DNow!9821(fp)FP8x64bMotorolaAltivec98162(int,fp)32x128b(new)IntelSSE9870(fp)8x128b(new)MIPSMIPS-3D?23(fp)FP32x64bAMDE3DNow!9924(fp)8x128(new)IntelSSE201144(int,fp)8x128(new)IntelSSE30313(int,fp)8x128(new)5.10.1多媒体技术的主要问题媒体(media):传递信息的媒介 包括存储信息的实体与传递信息的载体多媒体(multimedia)技术:计算机把各种不同的电子媒质集成起来,统一进行存储、处理和传输多媒体技术:将多媒体信息,经计算机设备获取、编辑、存储等处理后,以多媒体形式表现出来的技术多媒体技术解决的主要问题

1.图像与声音的压缩技术

2.适应多媒体技术的软件技术

3.计算机系统结构方面的技术

计算机体系结构的分类根据指令流和数据流的并行情况,Flynn[1966]提出了对所有计算机进行分类的简单模型单指令流、单数据流SISD:单处理器系统单指令流、多数据流SIMD: 多媒体指令和向量计算机多指令流、单数据流MISD:尚无商用多指令流、多数据流MIMD: 每个处理器取用自己的指令并对自己的数据进行操作。通常使用现有的微处理器实现SIMDstandsforSingleInstructionMultipleDataSIMD指令SIMD指令是能够同时处理多个数据的指令,用于扩展通用处理器对多媒体数据的处理能力许多应用需要多媒体处理能力桌面应用

3D图形,语音识别,视频/音频解码服务器 视频/音频编码,数字图书馆和媒体挖掘,计算机动画,3D建模和着色嵌入系统

3D图形,视频/音频解码编码,图像处理、信号处理MMX数据类型MMX(multimediaextensions)630紧缩4字PackedQuadword6332310紧缩双字PackedDoubleword634847323116150紧缩字PackedWord63565548474039323124231615870紧缩字节PackedByteSSE/SSE2/SSE3数据类型SSE(StreamingSIMDExtensions)12764630紧缩双精度浮点数PackedDouble-precisionFloating-point1279695646332310紧缩单精度浮点数PackedSingle-precisionFloating-pointSIMD指令-饱和运算a2+b2a2+b2a1+b1a1+b1a0+b0a0+b0SIMD指令-乘加运算****++SIMD指令-比较指令SIMD指令-类型转换SIMD指令-操作模式SSE指令128位操作模式SSE指令32位操作模式5.11CPU性能评价CPU性能与3个要素有关时钟频率f每条指令需要的时钟周期数CPI指令条数IN时钟周期长度t=1/fCPU时钟周期数Nc=CPI×IN5.11.1CPU性能公式第i类指令在总程序中占的比例补充例题假设在一般程序中浮点开平方操作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.92CPI2=4×25%+1.33×75%=2.00〔例题7〕有两种条件分支指令的设计方案:①CPUA:比较指令设置条件码,条件分支指令测试条件码进行分支②CPUB:条件分支指令包括比较、并进行分支两种方案中,条件分支指令占用2个时钟周期、其他指令占用1个时钟周期CPUA的条件分支指令占20%,比较指令也占20%CPUB的时钟周期比CPUA慢25%哪个CPU更快?例题7解答CPIA=0.2×2+0.8×1=1.2CPU时间A=INA×1.2×tACPUB没有独立的比较指令:INB=0.8×INACPUB条件分支指令所占比例:

20%÷80%=25%=0.25CPIB=0.25×2+0.75×1=1.25CPU时间B=INB×CPIB×tB

=0.8×INA×1.25×tB

=INA×tBtB=tA+0.25×tA=

1.25×tACPU时间B=INA×1.25×tA

CPU时间A5.11.2性能评价标准最初:执行单项操作的时间,例如:加法操作时间改进为:平均指令执行时间=进一步成为容易理解的:每秒百万条指令(MillionInstructionsPerSecond)同时出现:

MFLOPS(每秒百万浮点操作)最终形成: 测试程序(Benchmarks)测试程序实际应用程序修正的(或者脚本化)应用程序核心测试程序LivermoreLoops和Linpack小型测试程序Quicksort,Puzzle和Sieve合成测试程序Whetstone和Dhrystone基准测试程序组件SPEC(StandardPerformanceEvaluationCorporation)SPEC89→SPEC92→SPEC95→SPEC200011个整数基准程序(CINT2000)14个浮点基准程序(CFP2000)WinBench99andWinstone2004WinBench99:measurestheperformanceofaPC'sgraphics,disk,processor,andvideosubsystemsBusinessWinstone2004:application-basedbenchmarkthatmeasuresaPC'soverallperformanceCPU时间与CPU性能衡量性能最可靠的标准:真实程序的执行时间真实程序的执行时间 =CPU时间+I/O操作等时间CPU时间 =用户CPU时间+系统CPU时间CP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论