1、李建廷李建廷 西安财经学院 计算机科学系计算机组成原理计算机组成原理 Constitution Principle of Computer http:/2 5.1 CPU5.1 CPU的功能与组成的功能与组成5.2 5.2 指令周期指令周期5.3 5.3 时序产生器和控制方式时序产生器和控制方式5.4 5.4 微程序控制器微程序控制器5.5 5.5 流水流水CPUCPUCh.5 中央处理器中央处理器本章内容http:/3 计算机程序是一个指令序列,把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。负责完成此项工作的计算机部件称为中央处理器中央处理器,通常简称CPUCPU。一
2、、CPU的基本功能v 指令控制指令控制:程序的顺序控制称为指令控制。程序是一个指令序列,指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。v 操作控制:操作控制:一条指令的功能往往是由若干个操作信号的组合来实现的,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。v 时间控制时间控制:对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。v 数据加工:数据加工:对数据进行算术运算和逻辑运算。5.1 CPU的功能与组成的功能与组成http:/4二、CPU基本组
3、成1、控制器 由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的功能l取指令、分析指令-指令控制指令控制l执行指令,发出各种操作命令-操作控制操作控制l控制程序输入及结果的输出-时间控制时间控制l总线管理-内部数据传输控制内部数据传输控制l处理异常情况和特殊请求-处理中断处理中断5.1 CPU的功能与组成的功能与组成http:/52、运算器 由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部
4、操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器的功能l 实现算术运算和逻辑运算-数据加工数据加工5.1 CPU的功能与组成的功能与组成http:/63、CPU 与系统总线l 指令控制:PC、IRl 操作控制l 时间控制l 数据加工:ALU 寄存器l 处理中断:中断系统5.1 CPU的功能与组成的功能与组成寄存器ALU 中断 系统CUCPU控制总线数据总线地址总线CU、时序电路http:/75.1 CPU的功能与组成的功能与组成4、CPU 的内部结构 算术和布尔逻辑取反移位状态标志内部 数据总线寄存器CU中断系统ALU控制信号C P Uhttp:/85.1 CPU的功能与组成的
5、功能与组成5、CPU 内部的寄存器 在CPU中至少要有六类寄存器。寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。(1)数据缓冲寄存器-DR 数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。两个寄存器拼接存放双倍字长数据缓冲寄存器的作用是:l 作为CPU和内存、外部设备之间信息传送的中转站;l 补偿CPU和内存、外围设备之间在操作速度上的差别;http:/95.1 CPU的功能与组成的功能与组成(2)指令寄存器-IRl 指令寄存器用来保存当前正在执行的一条指令。l 当执行一条指令时,先把它从指令
6、cache中取到缓冲寄存器中,然后再传送至指令寄存器。l 指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。l 指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。http:/105.1 CPU的功能与组成的功能与组成(3)程序计数器-PCl程序开始执行前,将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,PC的内容即是从内存提取的第一条指令的地址。l 当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地
7、址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。l 当遇到转移指令如JMP指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。http:/115.1 CPU的功能与组成的功能与组成(4)地址寄存器-AR l地址寄存器用来保存当前CPU所访问的数据cache单元的地址。l 地址寄存器也可用来保存当前CPU所访问的内存单元的地址。地址在内存和CPU之间存在操作速度上的差别,必须使用地址寄存器来保持地址信息,直到
8、内存的读/写操作完成为止。l当CPU和内存进行信息交换,即CPU与内存相互存/取数据时,都要使用地址寄存器和数据缓冲寄存器。同样,当CPU和外围设备交换信息时,同样需要使用对应设备的地址寄存器和数据缓冲寄存器。l地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。http:/125.1 CPU的功能与组成的功能与组成(5)通用寄存器-R0Rnl当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算
9、的结果信息。显然,运算器中至少要有一个累加寄存器。l 累加寄存器(AC)通常简称为累加器,它也是一个通用寄存器。l目前CPU中的通用寄存器,多达64个,甚至更多。当使用多个通用寄存器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。http:/135.1 CPU的功能与组成的功能与组成(6)状态条件寄存器-PSWl状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标 志(Z),运算结果为负标志(N)等等。这些标志位通常分别由 1位触
10、发器保存。l 状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的特殊寄存器。http:/145.1 CPU的功能与组成的功能与组成6、操作控制器与时序产生器l操作控制器:在各寄存器之间建立数据传输通路,实现信息的传输控制。l 操作控制器的功能的实现:根据指令操作码和时序信号(时序产生器),产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。l根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。硬布线控制器:采用时序逻辑技术实现;
11、微程序控制器:采用存储逻辑实现;前两种方式的组合http:/155.2 指令周期指令周期一、基本概念 计算机能自动地工作,是因为CPU从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令,除非遇到停机指令,否则这个循环将一直继续下去。那么,如何描述程序的执行时间?l 指令周期:CPU从内存取出一条指令并执行这条指令的时间总和。l CPU周期:又称机器周期,定义为CPU访问一次内存 读取一条指令字的最短时 间。l 时钟周期:通常称为节 拍脉冲或T周期。一个CPU 周期包含若干个时钟周期。http:/165.2 指令周期指令周期1、指令周期l 取出并执行一条指令所需的全部时间完
12、成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期http:/175.2 指令周期指令周期2、每条指令的指令周期不同取指周期指令周期 例如:无条件转移指令“JMP X”,执行阶段不需要访问内存,操作简单,完全可以在取指阶段的后期将转移地址送至PC,即不需要执行周期取指周期 执行周期指令周期 例如:加法指令“ADD X”,执行阶段需要从内存单元X中取出操作数,然后和ACC的内容相加,结果保存至ACC,指令周期在取指和执行阶段各访问一次内存,需要两个存取周期。http:/185.2 指令周期指令周期 例如:乘法指令“MUL X”,指令周期在取
13、指和执行阶段各访问一次内存,需要两个存取周期。但其执行阶段的操作复杂度要比加法大很多,一个周期执行不完,可能需要多个执行周期。例如:间接寻址指令,指令中给出的是操作数地址的地址,为了获得操作数,需要先访问一次内存获得操作数地址,在根据获得的地址再次访问内存取出有效操作数。取指周期执行周期指令周期取指周期间址周期指令周期执行周期http:/195.2 指令周期指令周期 例如:当CPU采用中断方式与I/O外设交换数据时,在每条指令执行结束前,都要发出中断查询信号,检测是否有设备提出的中断请求,如果有中断请求,则进行中断响应,需要将程序的断点保存至内存中,需要一个“中断周期”。总之,各个周期都有访存
14、操作,只是访存的目的不同。l 取指周期访存为了取指令;l 间址周期访存为了取操作数的有效地址;l 执行周期访存为了取操作数以及执行具体的操作;l 中断周期访存为了保存程序断点;取指周期间址周期指令周期执行周期中断周期http:/205.2 指令周期指令周期指令周期流程:取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否http:/21二、指令周期的数据流1、取指周期数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+1 5.2 指令周期指令周期http:/222、间址周期数据流MDRCUMARCPU地址总线地址总线数据总线数据总线控制总线控制总线PCIR存储器存储
15、器MDR5.2 指令周期指令周期http:/233、执行周期数据流 不同指令的执行周期数据流不同4、中断周期数据流MDRCUMARCPU地址总线地址总线数据总线数据总线控制总线控制总线PC存储器存储器5.2 指令周期指令周期http:/24二、用方框图语言表示指令周期 在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。l 方框:代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。l 菱形:通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。5.2 指令周期指令周期IR为指令寄存器PC为程序计数器(具有自增功能)
16、M为主存(受R/W信号控制)AR为地址寄存器DR为数据缓冲寄存器 http:/25一、作用 CPU中一个类似“作息时间”的东西,称为“时序信号”。机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。二进制码表示的指令和数据都放在内存里,CPU是怎样识别出它们呢?l 从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。l 从
17、空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。由此可见,时间控制对计算机来说是太重要了。总之,计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。5.3 时序产生器和控制方式时序产生器和控制方式 http:/26l 硬布线控制器:采用主状态周期节拍电位节拍脉冲三级体制时序信号产生电路复杂。l 微程序控制器:节拍电位节拍脉冲二级体制 利用微程序顺序执行来实现微操作 时序信号产生电路简单l 各型计算机产生时序电路不相同。l 大、中型计算机的时序电路复杂,微型计算机的时序电路简单,多采用微程序控制器。5.3 时序产生器和控制方式时序产
18、生器和控制方式 http:/27二、时序信号产生器 微程序控制器中使用的时序信号产生器由时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成。1、时钟源 时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。它通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。2、环形脉冲发生器 环形脉冲发生器环形脉冲发生器的作用是产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。5.3 时序产生器和控制方式时序产生器和控制方式 http:/283、节拍脉冲和读/写时序的编码 假定在一个CPU周期中产生四个等间隔的
19、节拍脉冲T1T4,每个节拍脉冲的脉冲宽度均为200ns,因此一个CPU周期便是800ns,在下一个CPU周期中,它们又按固定的时间关系重复。4、启停控制逻辑 当运行触发器为“1”时,打开时序电路。当计算机启动时,一定要从第1个节拍脉冲前沿开始工作。当运行触发器“0”时,关闭时序产生器。停机时一定要在第4个节拍脉冲结束后关闭时序产生器。5.3 时序产生器和控制方式时序产生器和控制方式 http:/29三、控制方式 l 控制方式:即控制不同操作序列时序信号的方法。l 常用的有同步控制、异步控制、联合控制三种方式,其实质反映了时序信号的定时方式。1、同步控制方式 在任何情况下,已定的指令在执行时所需
20、的机器周期数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案:(1)采用完全统一的机器周期执行各种不同的指令。(2)采用不定长机器周期。(3)中央控制与局部控制结合。5.3 时序产生器和控制方式时序产生器和控制方式 http:/302.异步控制方式每条指令、每个操作控制信号需要多少时间就占用多少时间。这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。3.联合控制方式 为同步控制和异步控制相结合的方式。l 情况(1)大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束;l 情况(
21、2)机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定 5.3 时序产生器和控制方式时序产生器和控制方式 http:/31l 微程序的概念和原理是由英国剑桥大学的MVWilkes教授于1951年在曼彻斯特大学计算机会议上首先提出来的,当时还没有合适的存放微程序的控制存储器的元件。l 1964年,IBM公司在IBM 360系列机上成功地采用了微程序设计技术。l 20世纪70年代以来,由于VLSI技术的发展,推动了微程序设计技术的发展和应用。l 目前,从大型机到小型机、微型机都普遍采用了微程序设计技术。l 基本思想:仿照解题的方法,把操作控制信号编制成微指令,存放到控制存储器里,运行时,
22、从控存中取出微指令,产生指令运行所需的操作控制信号。可以看出,微程序设计技术是用软件方法来设计硬件的技术。5.4 微程序控制器微程序控制器 http:/32一、微程序控制原理1、微命令与微操作l 计算机可分为两大部分:控制部件、执行部件。控制部件:控制器 执行部件:运算器、存储器、外设等l 控制部件与执行部件如何联系?控制部件与执行部件通过控制线和反馈信息进行联系。微命令:控制部件通过控制线向执行部件发出的各种控制命令。微操作:执行部件接受微命令后所进行的操作。5.4 微程序控制器微程序控制器 http:/33l 微命令是构成控制序列的最小单位。微命令是控制计算机各部件完成某个基本微操作的命令
23、。l 微操作是微命令的操作过程。l 微命令和微操作是一一对应的。l 微命令是微操作的控制信号,微操作是微命令的操作过程。l 微操作是执行部件中最基本的操作。l 由于数据通路的结构关系,微操作可分为相容的和互斥的两种:互斥的微操作:是指不能同时或不能在同一个节拍内并行执行的微操作。相容的微操作:是指能够同时或在同一个节拍内并行执行的微操作。5.4 微程序控制器微程序控制器 http:/342、微指令和微程序l 微指令:在同一CPU周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令。微指令它是微命令的组合,存储在控制器中的控制存储器中的一条微指令通常至少包含两大部分信息:操作控制字
24、段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。微指令发出的控制信号都是节拍电位信号,持续时间为一个CPU周期。顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。l 微程序:实现一条机器指令功能的一系列微指令的有序集合就是微程序。一段微程序对应一条机器指令。5.4 微程序控制器微程序控制器 http:/35二、微程序控制器 主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。l 控制存储器(CM)微程序控制器的核心部件,用来存放微程序。l 微指令寄存器(IR)用来存放从CM取出的正在执行的微指令,它的位数同微指令字长相等。l 微地址转移逻辑与微地址寄
25、存器(MAR)微地址形成部件:用来产生初始微地址和后继微地址,以保证微指令的连续执行。微地址寄存器:接受微地址形成部件送来的微地址,为下一步从CM中读取微指令作准备。5.4 微程序控制器微程序控制器 http:/36l 微程序控制器的工作过程(1)在机器开始运行时,自动将取指微程序的入口微地址(一般为CM的0号单元)送MAR,并从CM中读出相应的微指令送入微指令寄存器IR中。(2)由机器指令的操作码字段通过微地址形成部件产生出该机器指令所对应的微程序的入口地址,并送入MAR。(3)从CM中逐条取出对应的微指令并执行之,每条微指令都能自动产生下一条微指令的地址。(4)一条机器指令对应的微程序的最
26、后一条微指令执行完毕后,其下一条微指令地址又回到取指微程序的人口地址,从而继续第(1)步,以完成取下条机器指令的公共操作。以上是一条机器指令的执行过程,如此周而复始,直到整个程序的所有机器指令执行完毕。5.4 微程序控制器微程序控制器 http:/37三、机器指令与微指令l 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。l 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。l 针对
27、指令与机器周期的概念,每一个CPU周期就对应一条微指令。5.4 微程序控制器微程序控制器 http:/385.5 流水流水CPU 设计处理机的基本任务之一是要提高处理机指令执行的速度,途径通常有如下三种:1、提高处理机的工作主频。在50年代和60年代主要采用这种技术,每3到4年,处理机执行指令的速度要提高一个数量级左右。目前,处理机的工作主频已经达到1GHz以上,提高处理机工作主频的速度已经明显减慢。2、采用更好的算法和设计更好的功能部件。例如,采用RISC(精简指令系统计算机)技术减少执行指令的平均周期数;采用多位乘法和多位除法来缩短乘和除法的这些时间;设计新型ROM乘法器等。3、多条指令并
28、行执行,称为指令级并行技术。这是目前和将来提高处理机指令执行速度的一条主要途径。其中又有三种基本方法,分别是流水线技术、超标量技术和超长指令字技术。http:/39 一、并行性发展 1.并行性含义 并行性:指问题中具有可同时进行运算或操作的特性。开发并行性目的:并行处理、提高解题效率。并行性包括:同时性和并发行l同时性:两个或多个事件在同一时刻发生l并发行:两个或多个事件在同一时间间隔内发生5.5 流水流水CPU http:/40 2.并行性等级 (1)从计算机系统中执行程序的角度来看,从低到高分为四级:l指令内部:一条指令内部各个微操作之间的并行。l指令之间:多条指令的并行执行。l任务或进程
29、之间:多个任务或程序段的并行执行。l作业或程序之间:多个作业或多道程序的并行。(2)从计算机系统中处理数据的并行性来看,从低到高可以分为:l位串字串:同时只对一个字的一位进行处理,通常指传统的串行单处理机,没有并行性。l位并字串:同时对一个字的全部位进行处理,通常指传统的并行单处理机,开始出现并行性。l位片串字并:同时对许多字的同一位(称位片)进行处理,开始进入并行处理领域。l全并行:同时对许多字的全部或部分位组进行处理。5.5 流水流水CPU http:/41 (3)并行性贯穿于计算机信息加工的各个步骤和阶段,从这个角度来看,并行性等级又可分为:l存贮器操作并行:在一个存贮周期内访问多个字,
30、采用按内容访问方式在一个存贮周期内用位片串字并或全并行方式实现对存贮器中大量字的高速并行操作,典型例子如并行存贮器、相联处理机。l处理器操作步骤并行:将操作步骤(如指令的取指、分析、执行)或具体操作(如浮点加法的求阶差、对阶、尾加、舍入、规格化等)的执行步骤在时间上重叠流水地进行。典型的例子就是流水线处理机。l处理器操作并行:为支持向量、数组运算,可以通过重复设置大量处理单元,让它们在同一控制器的控制下,按照同一条指令的要求对多个数据组同时操作。典型的例子就是阵列处理机。l指令、任务、作业并行:这是较高级的并行,多个处理机同时对多条指令及有关的多数据组进行处理,典型的例子是多处理机。5.5 流
31、水流水CPU http:/42 3、并行性开发途径(并行处理计算机结构:三种主要结构)(1)时间重叠:引入时间因素,让多个处理过程在时间上错开,轮流重叠使用同一套硬件设备的各个部分。l处理部件功能专有化:将部件按功能分开(时间要求基本一致)l加入缓冲,构成流水。l流水结构:指令、操作、宏流水(多机系统)l流水在部件上分离,若将各部件用处理机取代:多机系统,且各处理机类型不同,担负不同任务。(异构型多处理机系统)5.5 流水流水CPU http:/43(2)资源重复:引入空间因素,依靠重复设置硬件资源来提高可靠性或性能。l重复设置多个功能相同的部件,重复操作l如阵列处理机、相联处理机l并行处理:
32、多个部件同时做(如向量运算)l容错:可重构多处理机系统l将各部件用处理机取代:同构型多处理机系统,系统由多个相同类型,完成相同功能的处理机构成。(3)资源共享:用软件方法让多个用户共享同一套资源,通过提高系统资源利用率来提高系统的性能和效率。l例:分时系统,分时共享资源。单处理机、多道程序通过分时操作虚拟出多个处理机。(进而用实际处理机代替,称分布式处理系统)l例:计算机网络5.5 流水流水CPU http:/44 4、计算机系统并行性的进一步发展 20世纪90年代以来,计算机系统的主要发展是开发大规模并行处理(MPP)。其中,多处理机和多计算机时研究和开发的热点。它们可以使有数十至上千台微处
33、理机构成的MPP系统,也可以是由多个高性能工作站或高档微机使用高速通信网络互联进行高效并行处理的机群系统。重大挑战性科学计算题目要求计算机系统拥有3T性能。即:1 TFLOPS的计算能力、1 TB的主存容量、1TB/s的I/O带宽。(每秒百万次浮点操作次数为MFLOPS)5.5 流水流水CPU http:/45l 标量处理机:只有标量数据表示和标量指令系统的处理机称为标量处理机。l 采用流水线技术的处理机,称为流水线处理机或超流水线处理机。l 超标量技术是在一个处理机中设置多个独立的功能部件,称为多操作部件处理机或超标量处理机。l 也可以把超流水线技术与超标量技术结合起来,称为超标量超流水线处
34、理机。l 超长指令字技术是在一条指令中设置有多个独立的操作字段,每个字段可以分别独立地控制各个功能部件并行工作。目前,前两种技术已经相当成熟,已经研制出了多种高性能的超标量和超流水线处理机,而超长指令字技术还在进一步研究中。5.5 流水流水CPU http:/46二、流水线性能l衡量流水线性能的主要指标有吞吐率、加速比和效率 1、流水线的吞吐率 流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出的结果数量。2、加速比 完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。3、效率 流水线的效率是指流水线的设备利用率。5.5 流水流水CPU http:/47
35、例:单功能、线性流水线,输入任务是不连续的情况,计算流水线的吞吐率、加速比和效率。用一条4段浮点加法器流水线求8个浮点数的和:Z=A+B+C+D+E+F+G+H 解:Z=(A+B)+(C+D)+(E+F)+(G+H)7个浮点加法共用了15个时钟周期,ttTnTPK147.0157吞吐率:87.11574TS0ttTK加速比:47.015474KTE0ttTK效率:5.5 流水流水CPU http:/48l当流水线中各个流水段的执行时间不完全相等时,流水线的最大吞吐率与实际吞吐率主要是由流水线中执行时间最长的那个流水段来决定的,这个流水段就成了整个流水线的“瓶颈”。l 解决流水线“瓶颈”问题的方
36、法主要有两种。(1)将流水线的“瓶颈”部分再细分。如果由于结构等方面的原因,瓶颈流水段不能再细分时,可以采用第二种方法:通过重复设置瓶颈流水段,让多个瓶颈流水段并行工作。5.5 流水流水CPU http:/49(2)“瓶颈”流水段重复设置:采用瓶颈功能段重复设置的方法,其控制逻辑比较复杂。5.5 流水流水CPU http:/50三、流水机器的相关处理v 流水线中具有数据相关和控制相关,其中由于数据相关一般只会影响两条或若干条指令,对流水线的影响是局部的,数据相关又被称为局部性相关。控制相关则称为全局性相关。v 数据相关:v 解决数据相关的方法:相关指令的推后处理;设置专用路径。5.5 流水流水
37、CPU http:/51v 全局相关(控制相关):控制相关是指因为程序的执行方向可能被改变而引起的相关。可能改变程序执行方向的指令通常有无条件转移、一般条件转移、复合条件转移、子程序调用、中断等。v 解决控制相关的方法:A、预测法 依据指令过去的执行历史,在条件转移指令之后,预测选择一个分支方向,让后续指令进入流水线执行。B、延迟转移 发生转移时并不排空流水线,而是继续执行,如果转移指令之后进入流水线的指令刚好和转移方向一致,则流水线不断流。C、提前形成条件码 在运算部件的入口处设置一个条件码预判部件,如果能够在一个时钟之前内就产生条件码,则正好可以提供给下一条条件转移指令使用。5.5 流水流
38、水CPU http:/52四、指令级高度并行的超级处理机1、超标量处理机l 超标量处理机典型结构:多条并行工作的指令流水线,每个周期同时流出m条指令(度为m)。多个独立的操作部件;指令级并行度(ILP)大于1 常规(度m=1)的标量流水机时空图 度m=3的超标量处理机时空图5.5 流水流水CPU http:/53l 超标量处理机:把一个时钟周期内能够同时发射多条指令的处理机称为超标量处理机。l 超标量处理机的典型结构是有多个操作部件,一个或几个比较大的通用寄存器堆,一个或两个高速Cache。l 先进的超标量处理机一般都包含有三个处理单元,定点处理单元,通常称中央处理单元(CPU),由一个或多个
39、整数处理部件组成;浮点处理单元(FPU),由浮点加减法和浮点乘除法部件等组成;图形加速部件,也称图形处理单元(GPU),这是现代处理机中不可缺少的一个部分。5.5 流水流水CPU http:/542、超流水线处理机l 超流水线处理机:定义1:在一个基本时钟周期内能够分时发射多条指令的处理机称为超流水线处理机。定义2:在有些资料上把指令流水线的级数为8级或超过8级的流水线处理机称为超流水线处理机。l 超标量处理机和超流水线处理机的异同点:同:都可以在一个时钟周期中发射多条指令。异:超标量处理机是通过重复设置多个完整的指令执行部件,并让这些功能部件同时工作来提高指令的执行速度,实际上是以增加硬件资
40、源为代价来换取处理机性能的;而超流水线处理机则不同,它只需要增加少量硬件,通过各部分硬件的充分重叠工作来来提高处理机性能的。从流水线的时空图上看,超标量处理机采用的是空间并行性,而超流水线处理机采用的是时间并行性。5.5 流水流水CPU http:/55l 一台并行度ILP为n的超流水线处理机,它在一个时钟周期内能够发射n条指令;但这n条指令不是同时发射的,每隔1/n个时钟周期发射一条指令;超流水线处理机的实际流水线周期为1/n个时钟周期。5.5 流水流水CPU http:/563、超流水线超标量处理机 l 为了进一步提高处理机的指令级并行度,可以把超标量技术与超流水线技术结合在一起,这就是超
41、标量超流水线处理机。l 一个时钟周期内要发射指令m次,每次发射指令n条;因此,超标量超流水线处理机每个时钟周期总共要发射指令m*n条。从图中可以看出,每个时钟周期能够发射并执行完成9条指令。在理想情况下,超标量超流水线处理机执行程序的速度应该是超标量处理机和超流水线处理机执行程序速度的乘积。5.5 流水流水CPU http:/574、超长指令字处理机 l 在编译时,编译程序找出指令间潜在的并行性,将多个能并行执行的不相关的或无关的操作先行压缩组合,形成一条有多个操作段的超长指令。l 运行时,直接由这条超长指令控制机器中的多个相互独立的功能部件并行操作,每个操作段控制其中的一个功能部件,相当于同时执行多条指令。l 思想好但难以成为主流,问题关键在于对传统软硬件的兼容、编译的困难等。5.5 流水流水CPU