第8章 中央处理器_第1页
第8章 中央处理器_第2页
第8章 中央处理器_第3页
第8章 中央处理器_第4页
第8章 中央处理器_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

1第8章

中央处理器2本章内容CPU的结构与功能控制器的功能与设计流水线处理器多发射技术多核处理器处理器举例38.1CPU的结构与功能CPU概念:CPU是读取指令,控制并执行指令的部件,该部件不仅要与计算机的其它功能部件进行信息交换,还要控制它们的操作。CPU主要包括:控制器与运算器两大功能部件和寄存器组。运算器:算术逻辑单元,负责算术与逻辑运算控制器:控制指令执行的功能部件寄存器组:用于存放结果、状态等数据的存储部件48.1CPU的结构与功能寄存器组寄存器功能:在CPU中用来保存运算和控制过程中的中间结果、最终结果以及控制、状态信息。寄存器堆:现代计算机通常有大量的通用寄存器,在硬件实现的时候,通常将他们放在一个单独的模块中,采用存储元件阵列来实现,这个模块称为寄存器堆。58.1CPU的结构与功能寄存器组通用寄存器这是一组程序员可以访问的多功能的寄存器,可以存放数据,也可以做一些专用的数据或存储地址,如R0~Rn-1地址寄存器用于存放基址地址或变址地址或堆栈指针的专用处理器。在有些系统中可能会将某些通用寄存器指定为地址寄存器。暂存器有些系统具有临时存放数据的暂存器TEMP68.1CPU的结构与功能寄存器组控制寄存器MAR:存储器地址寄存器存放将被访问的存储器单元的地址MDR:存储器数据寄存器存放要写入存储器或从存储器读出的数据PC:程序计数器存放下一条要取出的指令的地址IR:指令寄存器存放当前取出准备执行的指令78.1CPU的结构与功能寄存器组控制寄存器Y:暂存输入ALU的数据Z:暂存ALU的输出结果状态寄存器(条件码寄存器)条件码寄存器存放进位、溢出等条件码PSW:程序状态字寄存器存放程序状态字88.1CPU的结构与功能寄存器组织使用寄存器要注意:了解地址寄存器和数据寄存器的长度了解通用寄存器有无特殊指派或特殊用法了解专用寄存器的用法了解寄存器的数量程序员可见的寄存器通用寄存器、地址寄存器、条件码寄存器(部分可见)、PC9CPU内部结构

CPU内部总线①②③④⑤⑥⑦⑧⑨返回8.1CPU的结构与功能CPU的内部结构108.1CPU的结构与功能CPU与主存间通信存储结构冯·诺依曼式代码与数据存放在同一个存储体中哈佛式代码与数据分别放在不同的存储体中CPU与主存间通信方式——解决CPU与主存间速度不匹配问题同步用一条公共时钟线让两者同频工作异步通过一个“存储器操作完成”(MFC)信号让CPU等待存储器操作的结束。118.1CPU的结构与功能CPU的基本功能存储器读:读取某一主存单元的内容,并将其装入某一个CPU寄存器;读出来的可能是数据也可能是指令存储器写:把一个数据字从某一CPU寄存器存入给定的主存单元中;寄存器传送:把一个数据字从某一CPU寄存器送到另一个寄存器或者ALU;运算:进行一个算术运算或逻辑运算,将结果送入某一CPU寄存器或存储器。128.1CPU的结构与功能CPU的基本功能存储器读:CPU向主存发送地址和读信号;例:从内存读取一字节

R2(R1)

t1:R1out,

MARint2:Readt3:WMFC;等待MFC信号t4:MDRout,R2in138.1CPU的结构与功能CPU基本功能存储器写主存地址装入MAR,数据字节装入MDR,然后向存储器发一个“写”信号。

例:把一个字写入主存,数据字放在寄存器R2中,主存单元地址放在R1中

t1:R1out,MARint2:R2out,MDRint3:Writet4:WMFC148.1CPU的结构与功能CPU基本功能通用寄存器之间传送数据

例:MOVR4,R1R1out,R4in进行算术和逻辑运算并保存结果至寄存器或存储器

例:ADDR3,R1,R2

R3(R1)+(R2)t1:R1out,Yin

t2:R2out,ADD,Zin

t3:Zout,R3in158.1CPU的结构与功能数据通路概念:数据在功能部件之间传送的路径称为数据通路。运算器与各寄存器之间的传送路径就是中央处理器内部数据通路。“数据通路”描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器及数据流动时候的控制。功能:实现CPU内部的运算器和寄存器以及寄存器之间的数据交换。168.1CPU的结构与功能数据通路基本结构CPU内部总线方式:将所有的寄存器的输入端和输出端都连接到一条或多条公共的通路上,结构简单,但是数据传输存在较多的冲突现象,性能较低。如果连接各部件的总线只有一条,则称单总线结构;如果CPU中有两条或更多的总线,则构成双总线结构和多总线结构。在双总线或多总线结构中,数据的传递可以同时进行。专用数据通路方式(不采用CPU内部总线方式):根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能比较高,但硬件量大。图1图217例1CPU结构如图,其中有一个累加寄存器AC、一个状态寄存器;各部分之间的连线表示数据通路,箭头表示信息转送方向。要求:(1)标明图中a,b,c,d四个寄存器的名称。(2)简述指令从主存储器取到控制器的数据通路。(3)简述数据在运算器和主存之间进行存/取访问的数据通路。1819解:(1)a:存储数据寄存器MDR;b:指令寄存器IR;

c:存储地址寄存器MAR;d:程序计数器PC。(2)MIR控制器(3)读:MMDRALUAC;写:ACMDRM问题:(1)标明图中a,b,c,d四个寄存器的名称。(2)简述指令从主存储器取到控制器的数据通路。(3)简述数据在运算器和主存之间进行存/取访问的数据通路。208.1CPU的结构与功能一条指令的完整执行过程取指阶段,CPU从内存中读取指令,程序计数器保存要被取出的下一条指令的地址,除非遇到跳转指令等情况,否则,PC一般都是在每次取指后加上一个增量(当前指令的字节数);分析阶段,对取出的指令解释指令的功能,分析操作数地址。这一阶段也称为译码执行阶段,执行译码好的指令,这期间可能会读写存储器或端口来获取操作数或者存放结果。注意,阶段可能会分的更细,如取指、译码、执行、访存、回写等,如酷睿分了14个阶段,Pentium4分了21甚至32阶段21◆考虑一条比较简单的指令:

AddR1,(R3)◆执行这条指令需要下列动作:(1)取指令;(2)取第一个操作数(由R3指出的存储单元的内容);(3)完成加法运算;(R1+(R3))(4)结果存入R1中。8.1CPU的结构与功能22▲指令AddR1,(R3)的执行控制序列返回微指令步

动作说明

1PCout,MARin,Read,ClearY,1=>C0,Add,Zin

;取指,(PC)+12Zout,PCin,WMFC;(PC)+1=>PC3MDRout,IRin

;指令=>IR4R3out,MARin,Read;取数据5R1out,Yin,WMFC;(R1)=>Y6MDRout,Add,Zin;相加7Zout,R1in,End;结果=>R1返回微程序概念23步动作1PCout,MARin,Read,ClearY,1=>C0,Add,Zin2Zout,PCin,WMFC3MDRout,IRin4PCout,Yin5(IR的偏移字段)out,Add,Zin6Zout,PCin,End◆条件转移指令BRN的情况

上述控制序列中第4步应改为:

IfN=0thenEnd;N为符号位

IfN=1thenPCout,Yin◆

无条件转移(相对)指令BR的控制序列返回248.2控制器的功能与设计指令周期、机器周期、时钟周期指令周期:执行一条指令所需要的时间称为指令周期,一般包括三个子周期。取指令周期:在指令周期开始之时,根据PC值将指令从存储器中取出放进IR中。间址周期:从存储器取出操作数,受操作数数目,寻址方式影响,如果无需从存储器读取操作数,则无此子周期。执行周期:根据操作码完成指令的执行。258.2控制器的功能与设计指令周期、机器周期、时钟周期典型指令的指令周期非访存指令:只有取指的时候才访存,数据无需访存。直接访存指令:除了取指外,至少还要为一个操作数的获得再访存一遍,直接访存的操作数越多,访存次数越多。间接访存指令:需要两次访存才能获得一个间接寻址的操作数。程序控制指令:根据目的地址的寻址方式决定访存次数。268.2控制器的功能与设计指令周期、机器周期、时钟周期机器周期所有指令执行过程中的一个基准时间确定机器周期需考虑的因素每条指令的执行步骤每一步骤所需要的时间基准时间的确定以完成最复杂指令功能的时间为准以访问一次存储器的时间为基准若指令字长=存储字长则取指周期=机器周期278.2控制器的功能与设计指令周期、机器周期、时钟周期时钟周期:每两个相邻的时钟脉冲上升(下降)沿之间的时间间隔称为T状态,节拍或时钟周期(ClockCycle)

时钟周期是控制计算机操作的最小单位时间一个机器周期内可以完成若干微操作,每个微操作需要一定的时间,时钟周期(节拍)将一个机器周期分成了若干时间段T288.2控制器的功能与设计指令周期、机器周期、时钟周期、三个周期组成多级时序系统CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2

节拍(状态)

节拍(状态)298.2控制器的功能与设计时序信号的控制方式同步控制方式指令执行过程中每个操作的完成,都由确定的具有基准时标的时序信号来控制;设计简单,实现容易;影响简单指令执行的速度。308.2控制器的功能与设计时序信号的控制方式同步控制方式采用定长的机器周期(统一节拍)以最长的微操作序列和最繁的微操作作为标准(机器周期内节拍数相等)CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3318.2控制器的功能与设计时序信号的控制方式同步控制方式采用不定长机器周期(分散节拍)按照每一个机器周期的实际需求来安排节拍数;机器周期内节拍数不等机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2

节拍(状态)328.2控制器的功能与设计时序信号的控制方式同步控制方式延长节拍选取能满足大多数机器周期的要求的节拍数为基本节拍。对于复杂机器周期,若基本节拍无法完成周期内的所有操作,则可以延长一到两个节拍机器周期机器周期(取指令)(执行指令)T0T1T2T3T0T1T2T3TT延长

节拍(状态)338.2控制器的功能与设计时序信号的控制方式异步控制方式按每条指令、每个操作的需要而占用时间的一种控制方式;没有集中统一的时序信号形成和控制部件;各操作之间是用“结束”或“就绪”—“起始”的应答方式衔接起来的;机器效率高;但实现起来非常复杂。348.2控制器的功能与设计时序信号的控制方式联合控制方式同步和异步控制方式的结合实行部分统一、部分区别对待的方式;在功能部件内部基本采用同步控制方式;在功能部件之间采用异步控制方式,如CPU和主存、外设等交换数据时。358.2控制器的功能与设计控制器的功能与种类控制器的功能CPU的控制流程控制器完成的基本任务排序:根据指令流执行顺序,控制器以一定的时序安排相应的微操作序列。执行:控制器通过发出各种微操作信号使得指令得以完成。程序执行完了吗?取出指令启动分析指令执行指令是否有中断请求?转中断处理程序返回否是是否等待368.2控制器的功能与设计控制器的功能与种类控制器的组成启停控制线操作控制信号形成部件时序信号产生部件指令译码器指令寄存器程序计数器脉冲源状态寄存器通用寄存器ALU

总线控制逻辑中断机构+"1"转移地址地址总线数据总线控制总线378.2控制器的功能与设计控制器的功能与种类控制器的组成指令部件程序计数器PC指令寄存器IR指令译码器ID程序状态和标志寄存器PSW时序部件脉冲源启停控制线路时序信号产生部件388.2控制器的功能与设计控制器的功能与种类控制器的组成操作控制信号形成部件综合指令译码信息、时序信号和被控部件反馈的状态条件信号,产生指令执行时所需的各种操作控制信号。中断控制逻辑中断控制逻辑是用来控制中断处理的硬件逻辑,实现对异常情况和某些外设请求的处理。总线控制逻辑实现对总线数据传输的调度和控制。398.2控制器的功能与设计控制器的功能与种类控制器按结构分类硬布线方式实现控制器本质上是一个组合逻辑电路,因此也称为组合逻辑控制器。它将输入的逻辑信号经过复杂的编码器转换成一组输出逻辑信号,即微操作控制信号。有组合逻辑控制器和PLA控制器两种。

微程序方式实现把机器指令的每一操作控制步编成一条微指令。当执行机器指令时,只要从控制存储器中顺序取出这些微指令,即可按所要求的次序产生相应的操作控制信号微程序存储器(控制存储器):存放计算机指令系统所对应的所有微程序的一个专门存储器。408.2控制器的功能与设计硬布线控制与微程序控制的比较实现硬布线控制器由逻辑门组合实现微程序控制器:由控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,性能微程序控制器电路较规整,易增加或修改,在CISC中广泛使用。在相同的半导体工艺条件下,微程序控制比硬布线控制的速度低,在RISC中一般用硬布线控制。418.2控制器的功能与设计硬布线实现的控制器组合逻辑控制器组合逻辑控制部件:基于时钟信号CLK驱动的计数器来控制每个控制步。操作控制信号的产生由下列因素确定:控制步计数器的内容(时序信号);指令寄存器的内容;条件码和其它状态标志的内容。状态标志是指CPU中各部分状态以及连到各控制部件的信号,如MFC信号等。42

简化的组合逻辑控制器

43◆

Zin信号的逻辑:(图1是其实现电路)Zin=T1+T6·ADD+T5·BR+T5·N·BRN…◆

End控制信号的逻辑:(图2是其实现电路)

End=T7·ADD+T6·BR+(T6·N+T4·N)·BRN+…图1Zin信号的产生图2End信号的产生转图448.2控制器的功能与设计硬布线实现的控制器PLA控制器可编程阵列(PLA)产生指令执行操作控制信号图3在一个VLSI芯片(PLA)上实现控制信号序列45◆一个简单的PLA模型

PLA模型

468.2控制器的功能与设计微程序控制器Wilkes提出的微程序控制器设计方案减少了控制器的复杂性和非标准化程度,把纯硬件的用量限制在狭小范围内。主要缺点:它要比相同或相近半导体技术的硬布线式控制器(如PLA方式)慢一些。基本思想把机器指令的每一操作控制步编成一条微指令。当执行机器指令时,只要从控制存储器中顺序取出这些微指令,即可按所要求的次序产生相应的操作控制信号。微程序存储器(控制存储器)存放计算机指令系统所对应的所有微程序的一个专门存储器。47微程序控制器原理框图488.2控制器的功能与设计微程序控制器基本概念微操作:一条指令的功能是通过执行一系列操作控制步完成的;这些控制步中的基本操作称为微操作。微命令:微操作的控制信号,如PCin,Zout等,而微操作是微命令的操作内容。微指令:可同时执行的一组微命令组成一条微指令,完成一个基本运算或传送功能。微程序:完成指定任务的微指令序列称为微程序;一条机器指令其功能可由一段微程序解释完成。对应的例子

49指令AddR1,(R3)的执行控制序列对应的控制步

508.2控制器的功能与设计微程序控制器微指令控制器组成微程序控制器的基本组织51微程序控制器微程序控制器工作流程不断地执行取指令的微程序和执行相应功能指令的微程序。8.2控制器的功能与设计528.2控制器的功能与设计微程序控制器微指令的格式与编码格式:水平型微指令和垂直型微指令水平型微指令:一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。

能最大限度地表示微操作的并行性;使用较长的代码;适用于要求较高速度的场合;水平型微指令的码空间利用率较低,编制最佳水平微程序难度较大。控制字段判断测试字段下一地址字段538.2控制器的功能与设计微程序控制微指令的格式与编码垂直微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。

采用短格式,一条微指令只能控制一、二个微操作;用地址码来指定微操作数所在的寄存器地址或微指令转移地址。编写垂直微程序的方法和传统的程序设计方法更为接近;垂直型微指令面向算法描述而水平型微指令面向处理机内部控制逻辑的描述。548.2控制器的功能与设计微程序控制微指令的格式与编码水平型微指令与垂直微指令比较水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。558.2控制器的功能与设计微程序控制水平微指令编码方法直接表示法(不编码)在微指令的微命令字段中,每个二进制位表示一个微命令,为“1”表示该控制信号有效。这种方法直观、不必译码、控制电路简单、速度快;通常微命令的个数很多,使得微指令字长多达几百位,实现上非常困难;计算机一般不采用直接表示法。56▲控制信号(微命令)列表57▲直接表示法微指令格式(ADDR3,R2,x(R1))▲加法指令的微指令编码PC→AB,PC+1,DB→IR,READimm→ALU,rs1→GR,(rs1)→ALU,ADD,ALU→ARDB→DR,AR→AB,ADS,READrs2→GR,(rs2)→ALU,DR→ALU,ADD,ALU→GR588.2控制器的功能与设计微程序控制水平微指令编码方法分段直接编码法微指令中相容的微命令分配在不同字段;微指令中相斥的微命令组合在一起,编成一个字段,经过译码发出相应控制信号;它为多数微程序控制的计算机所采用。每一字段只能有一个微操作信号有效59图6.19608.2控制器的功能与设计微程序控制水平微指令编码方法分段间接编码法某一小字段可以表示多个微命令组,到底代表哪一组微命令,则由另一小字段的二进制码确定。两级译码618.2控制器的功能与设计微程序控制微指令地址生成法(微指令排序)由硬件产生微程序入口地址:由指令寄存器IR确定微程序的开始地址中断周期由硬件产生中断周期微程序首地址计数器法(增量方式)按顺序执行微指令,由μPC负责生成下一微指令的地址(μPC+1→μPC);机器指令操作码PLA翻译法将机器指令的操作码通过PLA翻译成对应的微程序入口地址,这时微指令可写为:μPC←(PLA)。628.2控制器的功能与设计微程序控制微指令地址生成法(微指令排序)转移微指令指定微程序的转移由专门的“转移微指令”来实现,通过微地址发生器以及相应的条件码和标志,生成转移地址送μPC;当存在着较大量的转移微指令时,这将严重影响计算机的工作速度。638.2控制器的功能与设计微程序控制微指令地址生成法下地址字段法在微指令中设置一个专门的地址字段用以指出下一条微指令的地址;优点是消除了专门的转移微指令,而且在给微指令分配地址时简直没有什么限制;缺点是增加了微指令的长度,有时还会对控制存储器的设计带来影响。648.2控制器的功能与设计微程序设计微指令执行方式微指令的串行执行658.2控制器的功能与设计微程序设计微指令执行方式微指令的并行执行668.2控制器的功能与设计微程序设计毫微程序设计(二级微程序设计)目的是增加微程序的通用性,使微程序便于修改,减少存储空间。一级用垂直微程序,二级采用水平微程序垂直微指令寄存器水平微指令寄存器微命令控制存储器1(微程序)控制存储器2(毫微程序)CMAR-1CMAR-2+1转移地址及起始地址CMAR:控制存储器的地址寄存器678.2控制器的功能与设计动态微程序的设计静态微程序设计:实现指令系统的微程序固定不变动态微程序设计:使计算机的指令系统按需要改变,采用这种技术的机器能更灵活、更有效地适应不同的应用场合,而无须改变或更换硬件利用部分未定义的扩充操作码,用户可自定义指令;将编写好所定义指令的微程序写入控制存储器(WCS);成为指令系统的一部分688.3流水线处理器流水线技术:将功能部件分离、执行时间重叠的一种技术,它可以在增加尽可能少的硬件设备情况下有效地提高CPU性能。指令流水:将指令执行的各个阶段(如取指阶段与执行阶段)重叠执行的技术称为指令流水。操作流水:在诸如ALU,浮点运算部件等部件中如果采用流水技术,称为操作流水。698.3流水线处理器基本概念时间E3F1E1F2E2F3I1I2I3(a)顺序执行存储缓冲器B1取指令部件执行部件(b)硬件组织时钟周期1234F1E1F2E2F3E3I1I2I3(c)流水线执行指令708.3流水线处理器一个五段(级)指令流水分析五个阶段S1,取指令(IF):由cache或主存取指令;S2,指令译码(ID):生成指令将要完成的操作;S3,取操作数(OF):确定存储器操作数地址,读取存储器操作数和寄存器操作数;S4,执行(EX):对操作数完成指定操作;S5,写回(WB):修改目标操作数。后一指令的第i功能步与前一指令的第i+1功能步同时进行。718.3流水线处理器一个五段(级)指令流水分析上图中,完成4条指令的执行只用了8个时钟周期;而非流水线的顺序处理则需20个时钟周期。IFIDOFEXWBB1B2B3B4IFWBEXOFID指令I1I4I2I328176543时钟周期IFWBEXOFIDIFWBEXOFIDIFWBEXOFID728.3流水线处理器流水线中的相关问题及解决结构相关:指令在重叠执行的时候由于硬件资源不能满足重叠执行的要求,而产生的一种结构上的相关,如访存冲突。

738.3流水线处理器流水线中的相关问题及解决结构相关解决方法:阻塞法资源重复法使用哈佛结构存储体,代码与数据分开存放使用多体交叉存储器,使两条相邻指令的操作数存放在不同的存储体内采用指令预取技术提前将指令取出并放入指令队列中;指令发射部件将队列头上的指令发送到空闲的执行部件去执行适用于访存周期短的情况748.3流水线处理器流水线中的相关问题及解决数据相关:某条指令的操作数依赖前一条或前几条指令的运行结果,这就是数据相关。写后读相关(RAW)

addi$1,$2,10;$1=$2+10

sub$5,$1,$4;$5=$1-$4解决方法阻塞(后推法)定向转发(向前数据通路法)乱序758.3流水线处理器

定向技术消除RAW相关768.3流水线处理器

用乱序解决写后读(RAW)相关从三种解决方案看,不同硬件结构对软件设计有什么启示?778.3流水线处理器流水线中的相关问题及解决数据相关写后写相关(WAW)

addi$1,$2,$4;$1=$2+$4

sub$1,$3,10;$1=$3-10在按序执行的单流水中不会有问题。读后写相关(WAR)

addi$2,$1,$4;$2=$1+$4

sub$1,$3,10;$1=$3-10在按序执行的单流水中不会有问题。788.3流水线处理器流水线中的相关问题及解决控制相关:当程序执行到条件分支指令的时候,会出现与转移相关的问题

解决方法阻塞798.3流水线处理器流水线中的相关问题及解决控制相关:解决方法分支预测静态预测:编译器来完成,预测部分代码放在转移指令中,指令的操作码字段指明转移被预测为发生还是不发生。动态预测:用硬件记录上次转移预测的结果,并以此为依据来预测下次转移是否会发生。现代计算机经常采用一种转移目标缓冲器BTB来保存更多的信息以提高预测的准确度和程序执行的性能。显然,同样的转移指令在不同的场合可能有不同的预测结果。808.3流水线处理器流水线中的相关问题及解决控制相关:解决方法延迟槽法(a)原始程序段LOOP:SLR1;R1左移1位

DecR2;R2←(R2-1)BNZLOOP;不为零,转移NEXT:AddR1+R3(b)指令重排序后LOOP:DecR2BNZLOOPSLR1NEXT:AddR1+R3818.4多发射技术流水线中的多发射技术超标量技术超流水线技术超长指令字技术828.4多发射技术超标量概述超标量处理器是指在处理器中安排多个指令执行部件,多条指令可以被同时启动和独立执行有效提高指令级并行性在超标量处理器中配备了多个功能部件和指令译码电路,还有多个寄存器端口和总线,以便同时执行多条指令。在超标量流水线中,并行执行的流水线条数称为超标度。编译程序如何安排哪些指令可以同时执行(指令配对)对于充分发挥超标量结构的优势非常重要。838.4多发射技术超标量概述超标量处理器实际上是以增加硬件为代价来换取对机器性能的提高,即以空间换取时间。

IFIDOFEXWB超标度为3的五段超标量处理器IFIDOFEXWBWBEXOFIDIFI1I2I3I4I5I6I7I8I9IFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWB848.4多发射技术指令发射策略指令发射是指启动指令执行处理器功能的过程;发射指令所采用的协议或规则称为指令发射策略。本质就是处理器试图在当前执行点前面查找能进入流水线并执行的指令。指令发射策略依赖于指令的排序,有三类排序取指令顺序;执行指令顺序;寄存器和存储器位置改变的顺序。指令发射策略需要通过更改排序,即对流水线的调度来提高流水线的利用率858.4多发射技术指令发射策略下述例子的条件超标度为2,四段流水线,除了执行部件有3个,其他各段的资源都是2个I1执行阶段要两个时钟周期,I3和I4执行阶段需要同一个功能部件I5的执行要等待I4的结果,I5和I6执行阶段需要同一个功能部件868.4多发射技术指令发射策略按序发射按序完成严格地按能实现顺序执行的顺序发射指令,并以同样顺序写结果为保证按序发射,当指令在某些流水段超过一个时钟周期时或产生功能部件冲突时,必须停止指令发射。

878.4多发射技术指令发射策略按序发射无序完成

采用无序完成,可最大程度地发挥各个功能部件的并行性。此时,指令发射只受结构相关、数据相关或控制相关影响而停滞。

888.4多发射技术指令发射策略无序发射无序完成

后续指令中可能存在与流水线中的指令无冲突的指令,它们可被提前引入流水线中;称无序发射。

898.4多发射技术寄存器重命名当采用无序发射、无序完成策略时,会产生输出相关性和反相关性。输出相关性是指两条指令先后改写同一个结果,但在它们之间有别的指令读取第一次改写的结果;则后一条写指令不能在前一条写指令前完成(写后写问题)。反相关性是指两条指令先后改写同一个结果,但在它们之间有别的指令读取第一次改写的结果,则在该条指令读出操作数之前,后一条指令不能完成(读后写问题)。908.4多发射技术寄存器重命名采用无序技术时每个执行点上寄存器值可能不再反映被程序流指定的值的顺序的情况。寄存器重命名技术是采用资源复制来解决寄存器输出相关和反相关的方案。下面的程序如果在I3中没有重命名,则在I1和I2发射之前,I3不能发射。

I1:R1:=R1opR2→R1b

:=R1aopR2a

I2:R3:=R1+1→R3b

:=R1b+1I3:R1:=R2+2→R1c

:=R2a+2I4:R4:=R1opR3→R4b

:=R1copR3b918.4多发射技术超流水线技术把流水段进一步细分,使各段的功能部件在每个时钟周期内被使用多次,这样,在一个时钟周期内多条指令流入流水线,即在一个基本时钟周期内分时发射多条指令。超流水线处理器对硬件速度要求较高,以时间换取空间。流水线速度是原来速度的3倍IFIDEXWR0

1

2

345

67

8

9

10111213时钟周期指令序列928.4多发射技术超长指令字技术(VLIW)VLIW中编译器经过优化策略,将多条能并行执行的指令合并成一条具有多个操作码的超长指令。VLIW相对于超标量具有更高的并行能力,

温馨提示

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

评论

0/150

提交评论