《计算机系统结构课件.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机系统结构第1页,此课件共39页哦1流水线的结构相关流水线的结构相关 结构相关结构相关结构相关结构相关:如果如果指令指令在流水线重叠执行过程中,在流水线重叠执行过程中,硬件资源硬件资源满足满足不了指令重叠执行的要求,会产生不了指令重叠执行的要求,会产生资源冲突或或竞争竞争,称为流称为流水线水线结构相关结构相关。指令执行指令执行 LoadLoad、StoreStore:存储器操作指令 ALUALU:运算运算 BRANCHBRANCH 转移控制部件:执行转移指令转移控制部件:执行转移指令第2页,此课件共39页哦表表2.1 不同类型指令中各流水段的操作不同类型指令中各流水段的操作IFIF:按指令
2、计数器内容按指令计数器内容访问主存访问主存,指令送到寄存器IDID:指令译码。读寄存器指令译码。读寄存器IEIE:形成操作数地址形成操作数地址MEME:访问主存访问主存读取操作数读取操作数-常与取指发生常与取指发生结构冲突结构冲突WBWB:读出结果写回寄存器。读出结果写回寄存器。结构相关结构相关常常常常发生在存储器操作指令发生在存储器操作指令load/storeload/store 第3页,此课件共39页哦 假定流水线中有五条指令I1,I2,I3,I4,I5.非流水机器中,指令顺序执行,资源不会冲突。流水线执行时,系统资源可能发生冲突。LOAD中 ME:访问主存 IF:(主存中)取指令 延迟技
3、术:延迟技术:使某些指令延迟、停顿一或多个时钟周期使某些指令延迟、停顿一或多个时钟周期第4页,此课件共39页哦解决存储器争用冲突的办法1延迟技术:使某些指令延迟、停顿一或多个 时钟周期2双端口存储器:允许同时读两个数据或指令3双存储器(哈弗结构):一个数据存储,一个指令存储。4 软件优化编译:指令重新排序消除结构相关。其它功能部件的结构相关,解决冲突办法与上述思路类似。第5页,此课件共39页哦2流水线的数据相关流水线的数据相关 流水线中,多条指令并行执行,程序在实际执行中可能导致数据供求关系上产生冲突(违反了原定的次序),称为数据相关数据相关。如以下两条指令:ADD ADD R1,R2R2,R
4、3 R3 ;(R2)(R2)(R3)(R3)R1R1 SUB R4 SUB R4,R1,R5 R5 ;(R1)(R5)(R5)R4R4第6页,此课件共39页哦指令在流水线中执行时指令在流水线中执行时,可能可能改变指令读写操作数改变指令读写操作数顺序顺序IDID:读寄存器读寄存器读寄存器读寄存器R1 R1 先写后读先写后读先写后读先写后读WRWR 第7页,此课件共39页哦数据相关及其避免方法1 后推法:后推法:遇到数据相关时,停顿后继指令的执行,直至前指令结果产生。2 定向技术:定向技术:又称旁路技术或专用通路技术,想法是使后续指令提前得到前指令(ALU类)结果。3联锁硬件联锁硬件(适合存储器操
5、作load,store指令):4 软件法(静态指令调度)软件法(静态指令调度):采用优化编译,通过指令重新排序方法来消除数据相关。第8页,此课件共39页哦定向技术定向技术解决数据相关的解决数据相关的ALU方案方案通过专门电路将该运算结果提前送到有关缓冲寄存器。供后续指令执行(得到需要的操作数)。适合ALU类指令。第9页,此课件共39页哦采用定向技术解决数据相关采用定向技术解决数据相关ME:ME:空操作空操作WBWB:写回:写回适合ALU类指令!第10页,此课件共39页哦3采用联锁硬件解决数据相关 定向传送技术来不及用时,可通过流水线联锁硬件,使某些指令或流水段暂停流动一或多个周期,再用定向传送
6、技术。又称为空闲周期。第11页,此课件共39页哦 4 软件法(静态指令调度):优化编译法,通过指令重新排尽可能消除数据相关。如ADD R1,R2,R3 ;SUB R4,R1,R5 ;改为 ADD R1,R2,R3 ;SUB R4,R1,R5 ;使两条使两条“相关相关”指令指令“分开分开”第12页,此课件共39页哦【例】【例】假设某指令序列中20%的指令是LOAD指令,且紧跟LOAD指令之后的半数指令使用到LOAD指令载入的结果。如果这种数据相关将产生一个时钟周期的延迟,问理想流水线(没有任何延迟,CPI为1)的指令执行速度要比这种真实流水线快多少?解:假定问理想流水线(没延迟)的CPI为1。L
7、OAD指令之后的半数指令需要暂停,CPI为2。又知LOAD指令占全部指令的20%,所以真实流水线的实际CPI为 第13页,此课件共39页哦2.4流水线控制相关控制相关流水线控制相关:控制相关:控制相关:控制相关:指因程序指因程序执行转移类指令执行转移类指令而引起的而引起的冲突相关。包括冲突相关。包括无条件转移无条件转移、条件转移条件转移、子程序调用子程序调用、中断中断等,它们属等,它们属分支指令,执行中可能改变程序方向,执行中可能改变程序方向,造成流水线断流。造成流水线断流。与数据相关相比与数据相关相比,控制相关会引起程序执行方向的改变,控制相关会引起程序执行方向的改变,使流水线损失更大,称为
8、使流水线损失更大,称为全局相关全局相关全局相关全局相关。全局相关全局相关结构图如下图所示。这里程序划分为三个部分结构图如下图所示。这里程序划分为三个部分B0,B1B0,B1和和B2B2,每一部分内不再有分支操作指令,称每一部分内不再有分支操作指令,称为一个为一个基本块(basic blockbasic block)。)。第14页,此课件共39页哦流水线流水线控制相关控制相关流水线中条件转移类执行时,有两种结果:1.发生转移,将程序计数器PC内容改成转移目标地址;2.不发生转移,PC指向下一条指令地址。条件转移指令往往要在流水线末端时转移条件才能建立。流水线性能会大幅度下降。从相关角度看,条件转
9、移指令或中断指令与后续指令存在着一种控制上的全局相关。第15页,此课件共39页哦条件转移指令对流水线的影响 图中条件转移条件转移指令(指令(BRANCH)通常要在MEME段末尾才段末尾才会使会使PCPC内容发生改变,流水线需停顿内容发生改变,流水线需停顿3 3个时钟,直到个时钟,直到PCPC中生中生成新地址后,才能取出下一条指令。成新地址后,才能取出下一条指令。在最坏情况,条件转移条件转移造成k-1个时钟周期的停顿停顿第16页,此课件共39页哦转移指令对性能的影响 设一有k个流水段的流水线,执行n条指令设条件转移指令在程序中所占的比例为p,转移成功概率为q。在最坏情况,一次转移造成k-1个时钟
10、周期的“断流”。n条指令的程序,条件转移需要额外增加的时钟周期数是pqn(k-1)t,因条件转移,完成n条指令的总执行时间 第17页,此课件共39页哦转移指令对性能的影响 相应的流水线吞吐率为相应的流水线吞吐率为 当当n n时,流水线最大吞吐率为时,流水线最大吞吐率为 (分析公式意义)(分析公式意义)流水线吞吐率下降率为 第18页,此课件共39页哦【例例】据统计,在一些典型程序中,转移指令所占的比例为20%,转移成功的概率 为q60%。假设有一条8个流水段的指令流水线,问:由于条件转移指令的影响,流水线的最大吞吐率下降多少?解:已知 p0.20,q0.60 k8 根据则第19页,此课件共39页
11、哦静态分支技术静态分支技术静态转移预测技术静态转移预测技术(猜测法)提前形成条件码,生成转移目标地址提前形成条件码,生成转移目标地址延迟转移延迟转移改进循环程序改进循环程序硬件上计算两个PC值(转移成功或失败)。动态分支预测技术动态分支预测技术1.“转移历史表”BHT。2.“转移目标缓冲栈”(BTB)3.转移目标指令缓冲栈BTIB。控制相关的解决方法第20页,此课件共39页哦1 静态转移预测技术静态转移预测技术:条件转移指令出现时,对条件转移方向进行预测(或转移成功或不成功)。按预测方向设置指令缓冲栈并预取指令。程序执行过程中,静态静态预测转移的方向变。静态转移预测可用硬件,也可软件实现。可以
12、在转移的两个方向上都采取预取指令。第21页,此课件共39页哦遇条件转移时,用“猜测法猜测法”选择一个分支方向。选择一个分支方向。选择“转移不成功”方向。控制逻辑简单。方向。控制逻辑简单。“猜测猜测”不正确,已执行多个流水段将浪费。不正确,已执行多个流水段将浪费。静态转移预测技术静态转移预测技术第22页,此课件共39页哦2 提前形成条件码,生成转移目标地址提前形成条件码,生成转移目标地址条件转移指令BRANCH通常要在ME形成条件转移地址。多数情况下,可以提前判别转移是否发生或判别转移是否发生或形成条件转移代码。一些运算型条件转移指令,在实际运算前(ID)或运算中间(EX)就能产生条件码。不必等
13、运算结束。把计算转移目标地址操作移到ID段完成.静态分支技术静态分支技术第23页,此课件共39页哦3 延迟转移:延迟转移:遇转移指令时,依靠编译器把一条或几条与遇转移指令时,依靠编译器把一条或几条与转移转移结果无关结果无关的指令的指令调度调度到转移指令后面(到转移指令后面(调度槽调度槽),),以以延长延长转移指令的可执行时间,这些调度指令完转移指令的可执行时间,这些调度指令完成后,转移指令的成后,转移指令的目的地址目的地址已计算出来。已计算出来。1.调度到转移指令后的调度到转移指令后的无关指令无关指令须遵循须遵循有效有效和和有用有用的的原则。原则。2.延迟转移要求流水线段数不能太多,段数越多,
14、延迟转移要求流水线段数不能太多,段数越多,调度到转移指令后的调度到转移指令后的“无关指令无关指令”也要愈多。也要愈多。3.没有合适指令调度时,无关指令可以是没有合适指令调度时,无关指令可以是空操作空操作。静态分支技术静态分支技术第24页,此课件共39页哦“延迟转移”下的调度模式调度的调度的ADDADD字指令必须满足:字指令必须满足:1 1无关性。无关性。22有用性有用性。3 3有效性有效性第25页,此课件共39页哦“延迟转移”下的流水线时空图转移延迟槽中的指令“填补”了流水线原来须插入的暂停周期。假定把计算转移目标地址操作已移到ID段完成.第26页,此课件共39页哦 4 改进循环程序:改进循环
15、程序:循环操作是程序中广泛使用的一种条件转移。条件转移是否结束,取决于循环操作是否达到规定次数。一般转移不成功时,转移指令对流水线的影响较小。因此,对给定的程序,转移成功的概率越高,则对流水线的影响越大。编译器在对源程序进行编译时,通过提高循环循环程序程序中中转移不成功的概率。第27页,此课件共39页哦i0转移(概率大)转移(概率大)i=0转移转移(概率小)概率小)第28页,此课件共39页哦5硬件上设置两个指令缓冲栈硬件上设置两个指令缓冲栈当指令分析器分析到条件转移指令时,设置两个设置两个指令缓冲栈指令缓冲栈指令缓冲栈A按转移不成功方向预取指令,指令缓冲栈B按转移成功的方向预取指令。当转移条件
16、码产生时,转移不成功,分析A中的指令;否则,分析B中指令第29页,此课件共39页哦动态分支预测技术动态分支预测技术 从转移指令近期转移是否成功的记录,预测下一次转移的方向。称为动态分支预测技术.一、如何记录转移历史信息 根据记录的转移历史信息,预测转移方向。记录转移历史信息的方法通常有三种:1.把最近几次转移或不转移的信息记录在一个“转移历史表转移历史表”BHT。2.把最近几次转移或不转移的信息记录在一个“转移转移目标缓冲栈目标缓冲栈”(BTB)。3.第三种是存放在一个转移目标指令缓冲栈转移目标指令缓冲栈BTIB。第30页,此课件共39页哦1 使用使用BHT的转移预测的转移预测BHT 格式格式
17、 :转移指令转移指令转移指令转移指令 ,历史表信息,转移目标指令信息,转移目标指令信息,转移目标指令信息,转移目标指令(地址)地址)地址)地址)执行转移指令时,转移成功或转移失败的信息可记录在一个所谓的“转移历史表”BHT中。一个二进制位记录最近一次转移是否成功的信息。多个二进制位记录最近几次转移是否成功的信息。无论预测的转移方向与实际执行结果的转移方向是否相同,都要修改“转移历史表”BHT。为兼顾预测效果和便于硬件实现,常用2位计数器来记录最近二次转移是否成功的信息。第31页,此课件共39页哦用二进制数字10、11、01、00来表示转移预测状态的转换图转移取转移取 :转移:转移顺序取:不转移
18、顺序取:不转移第32页,此课件共39页哦转移历史表BHT的硬件逻辑结构 第33页,此课件共39页哦优点:转移预测提前到取指阶段。预测正确,则没有任何延迟损失。预测不正确,则清除指令预取(队列)缓冲器。会产生延迟时间损失.当执行转移指令时,把转移成功与不成功的信息记录在“转移历史表”中。当一条转移指令第一次执行时,没有历史转移记录,这时可预置转移历史信息。BHT方法可以同 I-cache(指令cache)结合起来。BHT的转移预测的转移预测第34页,此课件共39页哦 用用转移目标缓冲栈(转移目标缓冲栈(BTB)的转移预测的转移预测使用转移目标缓冲栈作为转移预测策略。把BHT中转转移指令移指令字段
19、改为转移指令地址转移指令地址 BTB格式格式 转移指令地址转移指令地址,历史表信息,转移目标指令地址信息,转移目标指令地址一般在译码分析阶段得到转移指令地址转移指令地址 第35页,此课件共39页哦使用使用转移目标指令缓冲栈转移目标指令缓冲栈(BTIB)转移指令在指令分析部件中译码时,转移不成功方向的指令已被预取到指令缓冲栈中,或者已经存放在I-cache中。在转移成功方向上也预取一部分指令,把BTB中的“转移目标地址转移目标地址”改为存放转移目转移目标地址之后标地址之后的n条指令条指令。这种预测称为转移转移目标指令缓冲栈目标指令缓冲栈BTIB。第36页,此课件共39页哦例题:例题:在一台单流水
20、线处理机上执行下面程序。指令经过在一台单流水线处理机上执行下面程序。指令经过“取指取指取指取指”、“译码译码”、“执行执行执行执行”、“写结果写结果”四个流水段,每个四个流水段,每个四个流水段,每个四个流水段,每个流水段延迟时间是流水段延迟时间是流水段延迟时间是流水段延迟时间是5ns 5ns。但。但。但。但“执行执行执行执行”流水段流水段流水段流水段 LSLS 部件和部件和部件和部件和 ALU 部件只能有一个工作,部件只能有一个工作,部件只能有一个工作,部件只能有一个工作,LSLS 部件完成部件完成部件完成部件完成 LOAD LOAD 和和和和 STORE 操作,操作,操作,操作,ALUALU
21、 部件完成其它操作。两个操作部件的输出端和输入端有直接部件完成其它操作。两个操作部件的输出端和输入端有直接部件完成其它操作。两个操作部件的输出端和输入端有直接部件完成其它操作。两个操作部件的输出端和输入端有直接输出通路相互切换连接,输出通路相互切换连接,输出通路相互切换连接,输出通路相互切换连接,ALU ALU 部件产生的条件码能直接送入控部件产生的条件码能直接送入控部件产生的条件码能直接送入控部件产生的条件码能直接送入控制器。假定采用静态分支预测技术,每次都制器。假定采用静态分支预测技术,每次都制器。假定采用静态分支预测技术,每次都制器。假定采用静态分支预测技术,每次都预测转移不成功预测转移
22、不成功预测转移不成功预测转移不成功。画出指令流水线的时空图画出指令流水线的时空图画出指令流水线的时空图画出指令流水线的时空图.I1 SUB R0I1 SUB R0,R0 R0 ;R0 R0 0 0 I2 LOAD R1 I2 LOAD R1,#8#8 ;R1 R1 向量长度向量长度向量长度向量长度 8 8 I3 LOOP I3 LOOP:LOAD R2LOAD R2,A A(R1R1);R2 R2 A A向量的一个元素向量的一个元素向量的一个元素向量的一个元素 I4 MUL R2 I4 MUL R2,R1 ;R2 R1 ;R2(R2R2)(R1R1)I5 ADD R0 I5 ADD R0,R2
23、 R2 ;R0 R0 (R0R0)()()()(R2R2)I6 DNE R1 I6 DNE R1,LOOP LOOP ;R1 R1 R1-1 R1-1,若(,若(,若(,若(R1R1)00转向转向转向转向 LOOPLOOP I7 STORE R0 I7 STORE R0,S S ;保存结果;保存结果;保存结果;保存结果 第37页,此课件共39页哦1 每次都预测转移不成功时,指令流水线时空图如下吞吐率:P=135(MIPS)ALU部件产生的条件码能直接送入控制器。部件产生的条件码能直接送入控制器。除最后一次,除最后一次,除最后一次,除最后一次,每次预测为错每次预测为错每次预测为错每次预测为错第38页,此课件共39页哦流水线处理机的流水线处理机的中断处理中断处理 中断事件也属于控制相关问题。中断时流水线中有多条指令在执行,程序的断点的分析和保护是中断处理的关键问题。常规IO设备申请的中断服务,不需精确断点。流水线最后一条指令完成后进入中断状态。不精确断点法所需的硬件较少,控制逻辑简单。流水线不断流,中断响应时间稍长。程序性错误和机器故障引起的中断,采用精确断点法。即立即把断点处的各指令执行结果保存下来,以正确保存现场和恢复断点。第39页,此课件共39页哦
限制150内