欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章流水线技术_标量精选PPT.ppt

    • 资源ID:70110220       资源大小:6.73MB        全文页数:178页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章流水线技术_标量精选PPT.ppt

    第第3章流水线技术章流水线技术_标量标量2023/1/161第1页,本讲稿共178页本章学习内容标量流水的基本概念和工作原理标量流水的基本概念和工作原理标量流水的性能分析标量流水的性能分析流水操作中存在的主要障碍和解决方流水操作中存在的主要障碍和解决方法法流水调度方法流水调度方法2023/1/162第2页,本讲稿共178页3.1 3.1 重叠操作和先行控制重叠操作和先行控制(简述简述)1.1.顺序解释方式顺序解释方式一条指令完全解释执行完毕后,才开始对下一条指令一条指令完全解释执行完毕后,才开始对下一条指令进行解释执行。进行解释执行。设把一条指令解释分为取数、分析和执行三个阶段,则设把一条指令解释分为取数、分析和执行三个阶段,则:若各阶段周期均为若各阶段周期均为t0t0,则顺序解释,则顺序解释n n条指令,需时间条指令,需时间T T3nt03nt02023/1/163第3页,本讲稿共178页2.2.重叠解释方式重叠解释方式在两条相邻指令的解释过程中,某些不同解释阶段在时间在两条相邻指令的解释过程中,某些不同解释阶段在时间上存在重叠部分。这样在一条指令解释执行完成之前就可上存在重叠部分。这样在一条指令解释执行完成之前就可以开始下一条指令的解释工作。以开始下一条指令的解释工作。重叠方式重叠方式 1 1设各阶段周期均为设各阶段周期均为t t0 0,则执行,则执行n n条指令共需条指令共需T T2nt2nt0 0t t0 0(2n(2n1)t1)t0 0t t0 0t t0 0t t0 0t t0 02023/1/164第4页,本讲稿共178页重叠方式重叠方式 2 2设各阶段周期均为设各阶段周期均为t t0 0,则执行,则执行n n条指令共需条指令共需T Tntnt0 02t2t0 0(n(n2)t2)t0 0重叠方式缩短了程序的执行时间,提高了功能部件的利重叠方式缩短了程序的执行时间,提高了功能部件的利用率,但需增加硬件支持。用率,但需增加硬件支持。t t0 0t t0 0t t0 02023/1/165第5页,本讲稿共178页一次重叠工作方式一次重叠工作方式任何时候只允许上条指令的任何时候只允许上条指令的“执行执行”与下条指令的与下条指令的 “分析分析”相重叠的工作方式称为相重叠的工作方式称为“一次重叠一次重叠”。T(n1)t0t0t02023/1/166第6页,本讲稿共178页采用一次重叠工作方式,完成采用一次重叠工作方式,完成n n条指令所需的执行条指令所需的执行时间为:时间为:T T(n(n1)t1)t0 0。当取指和分析部件的执行时间不等时,执行时间当取指和分析部件的执行时间不等时,执行时间短的部件,必须等待执行时间长的部件功能的完短的部件,必须等待执行时间长的部件功能的完成,导致部件的空闲,使得完成成,导致部件的空闲,使得完成n n条指令所需的执条指令所需的执行时间变为:行时间变为:2023/1/167第7页,本讲稿共178页执行时间不等时的一次重叠工作方式执行时间不等时的一次重叠工作方式2023/1/168第8页,本讲稿共178页3.3.先行控制方式先行控制方式 先行控制方式的先行控制方式的基本思想基本思想:通过设置先行读数栈通过设置先行读数栈,先行操作栈先行操作栈,后行写数栈后行写数栈等等,使分析部件和执行部件能够分别连续不断地使分析部件和执行部件能够分别连续不断地分析和执行指令。分析和执行指令。2023/1/169第9页,本讲稿共178页理想情况下,指令执行部件应该一直忙碌。理想情况下,指令执行部件应该一直忙碌。连续执行连续执行n n条指令的时间为:条指令的时间为:2023/1/1610第10页,本讲稿共178页先行控制的基本结构先行控制的基本结构 主存存储器控制器先行指令栈先行指令栈先行读数栈先行读数栈指令分析器指令分析器后行写数栈后行写数栈运算控制器运算控制器运算器运算器取指取指读数读数写数写数先行操作栈先行操作栈通用寄存器组通道通道2023/1/1611第11页,本讲稿共178页三个独立的控制器:三个独立的控制器:存储控制器、指令控制器、运算控制器。存储控制器、指令控制器、运算控制器。四个缓冲栈:四个缓冲栈:先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。行写数栈。2023/1/1612第12页,本讲稿共178页3.2 3.2 标量流水处理技术标量流水处理技术3.2.1流水方式流水方式把一个重复的过程分为若干个子过程,每个子过程把一个重复的过程分为若干个子过程,每个子过程都可以有效地在其专用功能段上与其它子过程同时都可以有效地在其专用功能段上与其它子过程同时执行。执行。例:把指令的执行过程分成取指、译码、执行、访例:把指令的执行过程分成取指、译码、执行、访存和写回寄存器五个子过程,并用五个子部件分别存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程。处理这五个子过程。取指取指译码译码执行执行访存访存写回写回输入输入输出输出s s1 1s s2 2s s3 3s s4 4s s5 5IFIFIDIDEXEXMEMMEMWBWB2023/1/1613第13页,本讲稿共178页流水处理的时空图流水处理的时空图2023/1/1614第14页,本讲稿共178页流水处理机的基本结构流水处理机的基本结构2023/1/1615第15页,本讲稿共178页如果每个流水段的延迟时间如果每个流水段的延迟时间(通过时间通过时间)均为均为ts,锁,锁定时间为定时间为tl,则每功能段的处理时间,则每功能段的处理时间ti为:为:titstl流水处理机的最高工作频率为:流水处理机的最高工作频率为:若每个流水段的延迟时间不等,则最高工作频率为:若每个流水段的延迟时间不等,则最高工作频率为:2023/1/1616第16页,本讲稿共178页 一条流水线通常由若干个有联系的流水段组成。一条流水线通常由若干个有联系的流水段组成。流水线中的段数也称为流水线中的段数也称为 “流水深度流水深度”。每个流水段有专门的功能部件对指令进行某种每个流水段有专门的功能部件对指令进行某种加工。加工。各流水段所需时间应尽量相等,以减少流水线各流水段所需时间应尽量相等,以减少流水线的瓶颈影响。的瓶颈影响。流水线工作阶段可分为建立流水线工作阶段可分为建立(装入装入)、满载和排、满载和排空三个阶段。空三个阶段。在理想情况下,当流水线充满后,每隔在理想情况下,当流水线充满后,每隔tt时间时间将会有一个结果流出流水线。将会有一个结果流出流水线。流水技术的特点流水技术的特点 2023/1/1617第17页,本讲稿共178页1.1.按处理级别分按处理级别分 部件级部件级运算操作流水线运算操作流水线将复杂的算逻运算分段组成流水工作方式。将复杂的算逻运算分段组成流水工作方式。例:将浮点加法操作分成求阶差、对阶、尾数相加、例:将浮点加法操作分成求阶差、对阶、尾数相加、结果规格化四个子过程。结果规格化四个子过程。3.2.2 3.2.2 标量流水分类标量流水分类(简述简述)求阶差求阶差对阶对阶尾数尾数相加相加规格化规格化输入输入输出输出s s1 1s s2 2s s3 3s s4 42023/1/1618第18页,本讲稿共178页浮点加法器流水线的时空图2023/1/1619第19页,本讲稿共178页 处理机级处理机级指令流水线指令流水线把一条指令解释过程分成多个子过程组成流水工作方式。把一条指令解释过程分成多个子过程组成流水工作方式。如如前前面面所所提提到到的的将将指指令令执执行行过过程程分分为为取取指指、译译码码、执执行行、访存及写回五个子过程。访存及写回五个子过程。系统级系统级处理机間流水线(宏流水线)处理机間流水线(宏流水线)将将系系统统中中多多个个处处理理机机串串联联起起来来,对对同同一一数数据据流流进进行行不不同同的处理,每个处理机完成某一专门任务。的处理,每个处理机完成某一专门任务。2023/1/1620第20页,本讲稿共178页2 2按功能分按功能分 单功能流水线单功能流水线只完成一种固定功能的流水线。只完成一种固定功能的流水线。如浮点加法或乘法流水线。如浮点加法或乘法流水线。多功能流水线多功能流水线同一流水线的各功能段可进行不同的连接,使流水同一流水线的各功能段可进行不同的连接,使流水线在不同时间或同一时间内完成不同的功能。线在不同时间或同一时间内完成不同的功能。2023/1/1621第21页,本讲稿共178页多多功功能能流流水水线线2023/1/1622第22页,本讲稿共178页静态流水线静态流水线在同一时间内,流水线只能以一种功能方式工作。在同一时间内,流水线只能以一种功能方式工作。静态流水线可以是单功能的,也可以是多功能的。静态流水线可以是单功能的,也可以是多功能的。当是多功能流水线时,则从一种功能方式变为另一当是多功能流水线时,则从一种功能方式变为另一种功能方式时,必须先排空流水线,然后为另一种种功能方式时,必须先排空流水线,然后为另一种功能设置初始条件后方可使用。功能设置初始条件后方可使用。3.按工作方式分按工作方式分2023/1/1623第23页,本讲稿共178页静态流水线的时空图静态流水线的时空图2023/1/1624第24页,本讲稿共178页 动态流水线动态流水线在同一时间内,可以将流水线中的不同功能段连接在同一时间内,可以将流水线中的不同功能段连接成不同的功能子集(前提条件是功能部件的使用不成不同的功能子集(前提条件是功能部件的使用不发生冲突),以完成不同的运算功能。发生冲突),以完成不同的运算功能。动态流水线必是多功能流水线,而单功能流水线则动态流水线必是多功能流水线,而单功能流水线则必是静态的。必是静态的。2023/1/1625第25页,本讲稿共178页动态流水线的时空图动态流水线的时空图2023/1/1626第26页,本讲稿共178页4按连接方式分按连接方式分线性流水线线性流水线从流水线的输入到输出,每个功能段只允许经过一从流水线的输入到输出,每个功能段只允许经过一次,流水线中不存在反馈回路。次,流水线中不存在反馈回路。一般的流水线均属于线性流水线。一般的流水线均属于线性流水线。非线性流水线非线性流水线流水线各功能段之间除了串行连接外,还存在反馈流水线各功能段之间除了串行连接外,还存在反馈回路,因此从流水线的输入到输出过程中,某些功回路,因此从流水线的输入到输出过程中,某些功能段将被数次通过。能段将被数次通过。非线性流水线适合于进行线性递归的运算。非线性流水线适合于进行线性递归的运算。2023/1/1627第27页,本讲稿共178页非线性流水线非线性流水线流水线的流动顺序:流水线的流动顺序:S1S2S3S2S3S4S1S2反馈回路反馈回路2023/1/1628第28页,本讲稿共178页为了防止两条或两条以上的指令对同一功能段的争为了防止两条或两条以上的指令对同一功能段的争用,非线性流水线需要对输入流水线的指令进行比用,非线性流水线需要对输入流水线的指令进行比较复杂的控制。较复杂的控制。非线性流水线通常使用预约表来进行分析。非线性流水线通常使用预约表来进行分析。123456789s111s2111s311s412023/1/1629第29页,本讲稿共178页5按任务流动方式分按任务流动方式分顺序流动流水线顺序流动流水线输出端的任务流出与输入端的任务流入顺序完全相输出端的任务流出与输入端的任务流入顺序完全相同。同。乱序流动流水线乱序流动流水线输出端的任务流出与输入端的任务流入顺序不完全输出端的任务流出与输入端的任务流入顺序不完全相同。相同。在乱序流动流水线中,当某任务阻塞时,后面的任在乱序流动流水线中,当某任务阻塞时,后面的任务可绕过它继续流动。务可绕过它继续流动。2023/1/1630第30页,本讲稿共178页6.Pentium的流水技术的流水技术在在Pentium Pentium CPUCPU内内部部有有两两个个ALUALU,分分别别对对应应两两条条流流水水线线U U和和V V(8048680486只只有有一一条条流流水水线线),U U流流水水线线执执行行整整数数和和浮浮点点数数指指令令;V V流流水水线线执执行行整整数数指指令令,以以及及交交换换寄寄存存器器的的内内容容。所所以以,PentiumPentium能能在在每每个个时时钟钟周周期期内内执执行行两两条条整整数数运运算算指指令令,或或在在每每个个时时钟钟周周期期内内执执行行一条浮点数运算指令。一条浮点数运算指令。U U、V V两条指令流水线的段数都含有如下所示的两条指令流水线的段数都含有如下所示的5 5段,段,PF D1 D2 EX WBPF D1 D2 EX WB即即:预预取取指指令令(PFPF)段段、译译码码1 1(D1D1)段段、译译码码2 2(D2D2)段段、执执行行(EXEX)段和写回寄存器()段和写回寄存器(WBWB)段。)段。PFD1D2EXWB2023/1/1631第31页,本讲稿共178页PentiumCPU结构结构(1)超标量流水线)超标量流水线总总线线部部件件预取预取地址地址6464位数位数据总线据总线3232位数位数据总线据总线控制控制指令指令指针指针转移转移和目和目标标BTB转转移目标移目标缓冲缓冲TLB指令指令CACHE8KB预取缓冲预取缓冲指令译码指令译码控制控制ROM控制部件控制部件转转移移和和目目标标验验证证地地址址地址产生(地址产生(U流水线)流水线)地址产生(地址产生(V流水线)流水线)整数寄存器堆整数寄存器堆ALU(U流流水线水线)ALU(V流流水线水线)桶形位移器桶形位移器3232323232TLB数据数据CACHE8KB浮点部件浮点部件控制控制寄存器堆寄存器堆加法加法除法除法乘法乘法80802023/1/1632第32页,本讲稿共178页3.3 3.3 流水线性能分析流水线性能分析1.吞吐率吞吐率Tp单位时间内流水线能处理的任务数量或输出的结果单位时间内流水线能处理的任务数量或输出的结果数。数。设任务数为设任务数为n,流水线段数为,流水线段数为m,完成,完成n个任务的时个任务的时间为间为Tm,则吞吐率,则吞吐率最大吞吐率最大吞吐率Tpmax流水线达到稳定状态后可获得的吞吐率。流水线达到稳定状态后可获得的吞吐率。2023/1/1633第33页,本讲稿共178页实际吞吐率实际吞吐率Tp流水线实际工作时的吞吐率。流水线实际工作时的吞吐率。TpTpmax设在设在m段流水线中,各段的延迟时间均为段流水线中,各段的延迟时间均为t,可以,可以利用时空图分析该流水线完成利用时空图分析该流水线完成n个任务的实际吞吐个任务的实际吞吐率和流水线的最大吞吐率。率和流水线的最大吞吐率。2023/1/1634第34页,本讲稿共178页S1S2S3S4输入输入输出输出ttttS4123n-1nS31234n-1nS212345n-1nS1123456ntmtTm(n-1)tS2023/1/1635第35页,本讲稿共178页完成完成n个任务所需的总时间个任务所需的总时间:Tm(nm1)t完成完成n个任务的实际吞吐率:个任务的实际吞吐率:最大吞吐率:最大吞吐率:最大吞吐率就是流水线满载时的吞吐率,因此实际最大吞吐率就是流水线满载时的吞吐率,因此实际吞吐率为:吞吐率为:2023/1/1636第36页,本讲稿共178页可见,实际吞吐率小于最大吞吐率,可见,实际吞吐率小于最大吞吐率,TpTpmax。只有当只有当nm时,时,TpTpmax设完成一个任务需要的时间为设完成一个任务需要的时间为T,则,则m 或或t 都可以增加流水线的吞吐率。都可以增加流水线的吞吐率。2023/1/1637第37页,本讲稿共178页如果流水线各段的延迟时间不等,则吞吐率取决于如果流水线各段的延迟时间不等,则吞吐率取决于最慢段所需的时间。最慢段所需的时间。设设t1t2t4tt33tS1S2S3S4输入输入输出输出t1t2t3t42023/1/1638第38页,本讲稿共178页S4123nS3123nS21234nS11234ntTm(n-1)t3S2023/1/1639第39页,本讲稿共178页完成完成n个任务的实际吞吐率:个任务的实际吞吐率:最大吞吐率:最大吞吐率:本题中本题中Tmax1/3t2023/1/1640第40页,本讲稿共178页流水线瓶颈问题的解决方法流水线瓶颈问题的解决方法将瓶颈子过程进一步细分成若干个子子过程,使每一将瓶颈子过程进一步细分成若干个子子过程,使每一个子子过程与其他子过程时间相等。个子子过程与其他子过程时间相等。如将瓶颈段如将瓶颈段S3进一步分成进一步分成S3a,S3b和和S3c三个时间上三个时间上相当于相当于t的子子过程,便可消除的子子过程,便可消除S3瓶颈,使最大吞瓶颈,使最大吞吐率由吐率由1/3t恢复成恢复成1/t。2023/1/1641第41页,本讲稿共178页S4123nS3c123nS3b123nS3a123nS21232nS11232ntTm(n-1)tS6t2023/1/1642第42页,本讲稿共178页在瓶颈段,并联设置多套功能段部件,使在瓶颈段,并联设置多套功能段部件,使它们轮流工作。它们轮流工作。如在瓶颈段如在瓶颈段S3并联设置并联设置3套功能部件,可使吞吐套功能部件,可使吞吐率恢复到率恢复到1/t。2023/1/1643第43页,本讲稿共178页重复设置功能段的控制复杂,需要在流水线中设置重复设置功能段的控制复杂,需要在流水线中设置数据分配器和数据收集器。数据分配器和数据收集器。TSS1S2S3aS3cS3bS41 2 3546 7 8 9 10 11121 2 3546 7 8 9 10 11121471025811369121 2 3546 7 8 9 10 11 12t1t12t172023/1/1644第44页,本讲稿共178页2.加速比加速比Sp加速比是指采用流水方式后的工作速度与等效的顺加速比是指采用流水方式后的工作速度与等效的顺序串行方式的工作速度之比。序串行方式的工作速度之比。对对n个求解任务,若用串行方式完成工作需要时间个求解任务,若用串行方式完成工作需要时间为为Tl,用,用m段流水线完成工作需要时间为段流水线完成工作需要时间为Tm,每个,每个功能段的延迟时间为功能段的延迟时间为t,则流水线的加速比为:,则流水线的加速比为:最大加速比:最大加速比:2023/1/1645第45页,本讲稿共178页由最大加速比由最大加速比Spmaxm可知:增加流水线的深度可知:增加流水线的深度m,可以提高流水线的最大加速比,可以提高流水线的最大加速比。但只有在任务数但只有在任务数n很大的情况下,才能有效地发挥流水线很大的情况下,才能有效地发挥流水线的效率。的效率。2023/1/1646第46页,本讲稿共178页例:对于例:对于4段流水线,当段流水线,当n1时,时,Sp1,当,当n64时,时,Sp3.8。若流水线个功能段的延迟时间不等,则加速比为:若流水线个功能段的延迟时间不等,则加速比为:2023/1/1647第47页,本讲稿共178页3 3效率效率 E E效率是指流水线中的各功能段的利用率。效率是指流水线中的各功能段的利用率。由于流水线有建立和排空时间,因此各功能段的设由于流水线有建立和排空时间,因此各功能段的设备不可能一直处于工作状态,总有一段空闲时间。备不可能一直处于工作状态,总有一段空闲时间。一般用流水线各段处于工作时间的时空区与流水线一般用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来衡量流水线的效率。中各段总的时空区之比来衡量流水线的效率。2023/1/1648第48页,本讲稿共178页S4123n-1nS31234n-1nS212345n-1nS1123456nmtTm(n-1)tSt2023/1/1649第49页,本讲稿共178页流水线的最大效率流水线的最大效率2023/1/1650第50页,本讲稿共178页吞吐率、加速比和效率的关系吞吐率、加速比和效率的关系ETptSp/m效率是实际加速比和最大加速比之比。只有效率是实际加速比和最大加速比之比。只有E1时,才能达到时,才能达到Spm当当t不变时,效率与吞吐率成正比。所以为提不变时,效率与吞吐率成正比。所以为提高效率所采用的方法,对提高吞吐率也有好处。高效率所采用的方法,对提高吞吐率也有好处。2023/1/1651第51页,本讲稿共178页例例1:设有浮点加法器流水线,试分析算式:设有浮点加法器流水线,试分析算式ZA+B+C+D+E+F+G+H在流水线中执行时的流在流水线中执行时的流水线的性能。水线的性能。为提高运算速度,可采用算法:为提高运算速度,可采用算法:Z(AB)(CD)(EF)(GH)(1)(2)(3)(4)一一二二求阶差求阶差对阶对阶尾数加尾数加规格化规格化被加数被加数输出和输出和t0t0t0t0加数加数2023/1/1652第52页,本讲稿共178页2023/1/1653第53页,本讲稿共178页吞吐率:吞吐率:加速比:加速比:效率:效率:2023/1/1654第54页,本讲稿共178页例例2:设有静态加、乘双功能流水线,其中段设有静态加、乘双功能流水线,其中段1、2、3、4、6组成乘法流水线,组成乘法流水线,1、5、6组成加法流水线,组成加法流水线,各段的延迟时间均为各段的延迟时间均为t,流水线的输出可直接返回,流水线的输出可直接返回输入端或暂存到相应的缓冲寄存器中。现有输入端或暂存到相应的缓冲寄存器中。现有A、B两个向量,每个向量有四个元素,要求在此流水线两个向量,每个向量有四个元素,要求在此流水线上计算上计算。请适当安排操作顺序,在最短。请适当安排操作顺序,在最短时间内完成计算工作,并求出流水线工作时的实际时间内完成计算工作,并求出流水线工作时的实际吞吐率、加速比和效率。吞吐率、加速比和效率。2023/1/1655第55页,本讲稿共178页2023/1/1656第56页,本讲稿共178页从图中可见,在总共从图中可见,在总共17t时间内榆出时间内榆出7个结果,因个结果,因此该流水线的实际吞吐率为:此该流水线的实际吞吐率为:Tp7/17t流水线的效率:流水线的效率:E(34t53t)/(617t)27/1029/3426.4。若用串行方法完成上述的加乘操作,则需要做若用串行方法完成上述的加乘操作,则需要做4次次加法和加法和3次乘法,求一次和需次乘法,求一次和需3t,求一次积需,求一次积需5t,总共需要时间:,总共需要时间:Tl43t35t27t所以加速比为:所以加速比为:SpTl/Tm27t/17t1.88。2023/1/1657第57页,本讲稿共178页例例3:如图为一个有功能:如图为一个有功能5段的非线性流水线,且任段的非线性流水线,且任务每次经过第务每次经过第4段都必须再返回执行一次段都必须再返回执行一次3、4段。段。现假定输入现假定输入8个任务,求流水线的吞吐率和效率。个任务,求流水线的吞吐率和效率。解:解:(1)时空图)时空图(2)Tp=(3)E=S1S2S3S4输入输入输出输出ttttS5t2023/1/1658第58页,本讲稿共178页流水线效率较低的原因流水线效率较低的原因多功能流水线在按某种功能流水时,总有一些多功能流水线在按某种功能流水时,总有一些本功能不需要的段将处于空闲状态。本功能不需要的段将处于空闲状态。静态流水线在功能切换时,要等待前一种运算静态流水线在功能切换时,要等待前一种运算全部排空,才能重新连接、切换功能,需要有排空全部排空,才能重新连接、切换功能,需要有排空和建立两种不同功能流水的额外开销。和建立两种不同功能流水的额外开销。经常发生下一步要等待上一步计算结果反馈的经常发生下一步要等待上一步计算结果反馈的情况,即出现数据相关问题。情况,即出现数据相关问题。任务数少时,建立和排空时间所占的比例大。任务数少时,建立和排空时间所占的比例大。流水线较适合于求解的操作相同,且输入、输出间流水线较适合于求解的操作相同,且输入、输出间相互独立的一大串运算。此时,流水线的吞吐率可相互独立的一大串运算。此时,流水线的吞吐率可接近于最大吞吐率,流水线效率可接近于接近于最大吞吐率,流水线效率可接近于1,而加,而加速比也可接近于流水线的段数值。速比也可接近于流水线的段数值。2023/1/1659第59页,本讲稿共178页流水线段数的选择流水线段数的选择(简述简述)如果流水线段数过多,时钟周期很小,以至于与时如果流水线段数过多,时钟周期很小,以至于与时钟偏移和锁存器的附加开销相当,会导致在一个时钟偏移和锁存器的附加开销相当,会导致在一个时钟周期内没有足够时间用于有效工作,流水线也就钟周期内没有足够时间用于有效工作,流水线也就失去了作用。失去了作用。假设在非流水线的机器上采用顺序执行方式完成一假设在非流水线的机器上采用顺序执行方式完成一个任务所需要的时间为个任务所需要的时间为t,那么,在同等速度的有,那么,在同等速度的有k段流水线的机器上执行一个任务需要的时间为:段流水线的机器上执行一个任务需要的时间为:d+t/k(d-锁存器的延迟时间)锁存器的延迟时间)2023/1/1660第60页,本讲稿共178页这样,流水线的最大吞吐率可以表示为:这样,流水线的最大吞吐率可以表示为:流水线的总价格粗略地估计为:流水线的总价格粗略地估计为:Cabk,其中,其中,a为所有流水段本身的总价格,为所有流水段本身的总价格,b为每个锁存器的价为每个锁存器的价格。格。A.G.Larson把流水线的性能价格比把流水线的性能价格比PCR定义为:定义为:2023/1/1661第61页,本讲稿共178页 通过对自变量k求导,得到性能价格比PCR的极值。由于大于零的极值只有一个,因此,这个极值就是最大值。如图所示,当性能价格比PCR取得最大值时,它所对应的流水线的段数就时最佳段数k0:2023/1/1662第62页,本讲稿共178页式中,式中,t为流水线的总的为流水线的总的延迟时间。延迟时间。2023/1/1663第63页,本讲稿共178页在设计一条流水线的时候,可以根据上述极限公式,在设计一条流水线的时候,可以根据上述极限公式,在流水线的总延迟时间在流水线的总延迟时间t一定的情况下,通过调整一定的情况下,通过调整流水线本身的价格流水线本身的价格a,锁存器的延迟时间,锁存器的延迟时间d和锁存和锁存器的价格器的价格b来选取最佳的流水线段数来选取最佳的流水线段数k0。目前,一般处理机中的流水线段数在目前,一般处理机中的流水线段数在2段至段至10段之间,极少有超过段之间,极少有超过15段的流水线。一般把段的流水线。一般把8段或段或超过超过8段段的流水线称为超流水线,采用的流水线称为超流水线,采用8段以上段以上流水线的处理机称为超流水线处理机。流水线的处理机称为超流水线处理机。(注:早期定(注:早期定5段之内为普通流水)段之内为普通流水)2023/1/1664第64页,本讲稿共178页3.4 3.4 流水操作中的主要障碍流水操作中的主要障碍要使流水线具有良好的性能,必须设法使流水线能要使流水线具有良好的性能,必须设法使流水线能畅通流动,即必须能做到充分流水,不发生断流。畅通流动,即必须能做到充分流水,不发生断流。使流水断流的相关问题使流水断流的相关问题局部相关:指令执行过程中的资源冲突、数据相关。局部相关:指令执行过程中的资源冲突、数据相关。全局相关:控制相关,如转移指令、中断的处理全局相关:控制相关,如转移指令、中断的处理B0B1B2基本块内无分支,是局部相关;基本块内无分支,是局部相关;块間为块間为2路分支,是全局相关路分支,是全局相关2023/1/1665第65页,本讲稿共178页2023/1/1666第66页,本讲稿共178页取指取指译码译码执行执行访存访存写回写回输入输入输出输出s s1 1s s2 2s s3 3s s4 4s s5 5IFIFIDIDEXEXMEMMEMWBWB在在RISC处理机中,指令的流水设为处理机中,指令的流水设为5段,即段,即分分为取指、译码、执行、访存及写回五个子过程,如为取指、译码、执行、访存及写回五个子过程,如上图所示。上图所示。2023/1/1667第67页,本讲稿共178页流水线实现逻辑图(实现描述形式)流水线实现逻辑图(实现描述形式)2023/1/1668第68页,本讲稿共178页ALULOAD/STOREBRANCHIF取指取指取指ID译码、读寄存器堆译码、读寄存器堆译码、读寄存器堆EX执行计算访存有效地址计算转移目标地址,置条件码MEM-访存(读或写)条件成立,则转移目标地址PCWB结果写回寄存器堆将读出的数据写入寄存器堆-指指令令流水段流水段不同类型的指令在各段完成的操作不一样。下不同类型的指令在各段完成的操作不一样。下表列出了有关指令的操作。表列出了有关指令的操作。2023/1/1669第69页,本讲稿共178页下面讨论经典的RISCRISC机机 5段流水线首先讨论在非流水情况下是如何实现的首先讨论在非流水情况下是如何实现的2023/1/1670第70页,本讲稿共178页1.一条指令的执行过程一条指令的执行过程(5 5个周期个周期)取指令周期取指令周期(IFIF)IR MemPC IR MemPC。PCPC值加值加4 4。(假设每条指令占。(假设每条指令占4 4个字节)个字节)指令译码指令译码/读寄存器周期读寄存器周期(IDID)译码。译码。用用IRIR中的寄存器编号去访问通用寄存器组,读出所需中的寄存器编号去访问通用寄存器组,读出所需的操作数。的操作数。2023/1/1671第71页,本讲稿共178页执行执行/有效地址计算周期有效地址计算周期(EXEX)不同指令所进行的操作不同:不同指令所进行的操作不同:存储器访问指令:存储器访问指令:ALUALU把所指定的寄存器的把所指定的寄存器的内容与偏移量相加,形成用于访存的有效地内容与偏移量相加,形成用于访存的有效地址。址。寄存器寄存器寄存器寄存器ALUALU指令:指令:ALUALU按照操作码指按照操作码指定的操作对从通用寄存器组中读取的数据进定的操作对从通用寄存器组中读取的数据进行运算。行运算。2023/1/1672第72页,本讲稿共178页寄存器立即数寄存器立即数ALUALU指令:指令:ALUALU按照操作码指定的操作按照操作码指定的操作对从通用寄存器组中读取的第一操作数和立即数进对从通用寄存器组中读取的第一操作数和立即数进行运算。行运算。分支指令:分支指令:ALUALU把偏移量与把偏移量与PCPC值相加,形成转移目标的值相加,形成转移目标的地址。同时,对在前一个周期读出的操作数进行地址。同时,对在前一个周期读出的操作数进行 判断,确定分支是否成功。判断,确定分支是否成功。存储器访问分支完成周期存储器访问分支完成周期(MEMMEM)该周期处理的指令只有该周期处理的指令只有loadload、storestore和分支指令。和分支指令。其他类型的指令在此周期不做任何操作。其他类型的指令在此周期不做任何操作。2023/1/1673第73页,本讲稿共178页loadload和和storestore指令指令loadload指令:指令:用上一个周期计算出的有效地用上一个周期计算出的有效地址从存储器中读出相应的数据。址从存储器中读出相应的数据。storestore指令:指令:把指定的数据写入这个有效地址把指定的数据写入这个有效地址所指出的存储器单元。所指出的存储器单元。分支指令分支指令 分支分支“成功成功”,就把转移目标地址送入,就把转移目标地址送入PCPC。分支指令执行完成。分支指令执行完成。2023/1/1674第74页,本讲稿共178页写回周期写回周期(WBWB)ALUALU运算指令和运算指令和loadload指令在这个周期把结果数指令在这个周期把结果数据写入通用寄存器组。据写入通用寄存器组。ALUALU运算指令:运算指令:结果数据来自结果数据来自ALUALU。loadload指令:指令:结果数据来自存储器系统。结果数据来自存储器系统。在这个实现方案中:在这个实现方案中:分支指令需要分支指令需要4 4个时钟个时钟周期(如果把分支指令的执周期(如果把分支指令的执行提前到行提前到IDID周期,则只需要周期,则只需要2 2个个周期)。周期)。storestore指令需要指令需要4 4个个周期。周期。其他指令需要其他指令需要5 5个个周期才能完成。周期才能完成。2023/1/1675第75页,本讲稿共178页2.52.5段流水线的两种描述方式段流水线的两种描述方式第一种描述(类似于时空图)第一种描述(类似于时空图)2023/1/1676第76页,本讲稿共178页第二种描述(按时间错开的数据通路序列)第二种描述(按时间错开的数据通路序列)2023/1/1677第77页,本讲稿共178页3.采用流水线方式实现时,应解决的问题采用流水线方式实现时,应解决的问题要保证不会在同一时钟周期要求同一个功能段做要保证不会在同一时钟周期要求同一个功能段做两件不同的工作。两件不同的工作。例如,不能要求例如,不能要求ALUALU同时做有效地址计算和算术运同时做有效地址计算和算术运算。算。避免避免IFIF段的访存(取指令)与段的访存(取指令)与MEMMEM段的访存(读段的访存(读/写数写数据)发生冲突。据)发生冲突。可以采用分离的指令存储器和数据存储器;可以采用分离的指令存储器和数据存储器;一般采用分离的指令一般采用分离的指令CacheCache和数据和数据CacheCache。IDID段和段和WBWB段都要访问同一寄存器文件。段都要访问同一寄存器文件。IDID段:读段:读WBWB段:写段:写 (前后半拍前后半拍)2023/1/1678第78页,本讲稿共178页考虑考虑PCPC的问题的问题流水线为了能够每个时钟周期启动一条新的指令,流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行就必须在每个时钟周期进行PCPC值的加值的加4 4操作,并操作,并保留新的保留新的PCPC值。这种操作值。这种操作必须在必须在IFIF段完成,段完成,以便以便为取下一条指令做好准备。为取下一条指令做好准备。(需设置一个专门的加法器)(需设置一个专门的加法器)但分支指令也可能改变但分支指令也可能改变P PC C的值,而且是在的值,而且是在MEMMEM段段进行,这会导致冲突。进行,这会导致冲突。2023/1/1679第79页,本讲稿共178页3.4.1资源冲突资源冲突(结构冲突结构冲突)资源相关:资源相关:当有多条指令进入流水线后在同一当有多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突。机器周期内争用同一功能部件所发生的冲突。通常,由于数据和指令存放在同一存储器中,且只通常,由于数据和指令存放在同一存储器中,且只有一个访问口,这样便会发生这两条指令争用存储有一个访问口,这样便会发生这两条指令争用存储器资源的相关冲突。器资源的相关冲突。2023/1/1680第80页,本讲稿共178页两条指令同时访存造成资源相关两条指令同时访存造成资源相关MEMEXIDIF指令i+4WBMEMEXIDIF指令i+3WBMEMEXIDIF指令i+2WBMEMEXIDIF指令i+1WBMEMEXIDIFLoad指令87654321 时钟指令冲突冲突取指取指译码译码执行执行访存访存写回写回2023/1/1681第81页,本讲稿共178页2023/1/1682第82页,本讲稿共178页解决资源冲突的办法解决资源冲突的办法停顿一拍流水线,通常是将后一条指令停停顿一拍流水线,通常是将后一条指令停顿一拍后再启动。顿一拍后再启动。(插入(插入“气泡气泡”)再重复设置再重复设置个存储器,使指令和数据分个存储器,使指令和数据分别存放在不同存储器中。别存放在不同存储器中。2023/1/1683第83页,本讲稿共178页EXIDIF指令i+4MEM EXIDIF停顿指令i+3WBMEMEXIDIF指令i+2WBMEMEXIDIF指令i+1WBMEMEXIDIFLoad指令87654321 时钟指令9WBME

    注意事项

    本文(第3章流水线技术_标量精选PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开