欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    计算机系统结构第4章指令级并行及限制.ppt

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

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

    计算机系统结构第4章指令级并行及限制.ppt

    1,第四章 指令级并行及限制,4.1指令级并行的概念 4.2指令的动态调度 4.3转移预测技术 4.4多发射技术 4.5向指令级并行的支持与限制4.6 Intel Pentium 4 实例分析,晦缘奖邀带澈滦氦皋宪拎搬乳祟抓战蹈挣凋旦剿门堡辰洞悉矩节纱茸谩枝计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,2,4.1 指令级并行的概念,指令级并行的概念,几乎所有的处理机都利用流水线来使指令重叠并行执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。(ILP:Instruction-Level Parallelism),族档坡粤拟积奋勺伺申瑚赵钥忽褐瓤萌篮择晚凰泥涣俐皮萤静效炎几楚躇计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,3,4.1.1 指令级并行,1、流水线处理机的实际CPI理想流水线的CPI加上各类停顿的时钟周期数:CPI流水线=CPI理想+停顿结构冲突+停顿数据冲突+停顿控制冲突理想CPI是衡量流水线最高性能的一个指标。IPC:Instructions Per Cycle(每个时钟周期完成的指令条数)2、基本程序块基本程序块:一段除了入口和出口以外不包含其他分支的线性代码段。程序平均每57条指令就会有一个分支。,滁年姑署曙渺抗鹤雍蕉搜旨攘量莆探矩强演未茎烈塔手戒绢黍褐按遏章话计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,4,3、循环级并行:使一个循环中的不同循环体并行执行。开发循环体中存在的并行性最常见、最基本是指令级并行研究的重点之一例如,考虑下述语句:for(i=1;i=500;i=i1)ai=ais;每一次循环都可以与其他的循环重叠并行执行;在每一次循环的内部,却没有任何的并行性。,床领索凸漠逸呈芹黍钻吊上舰架皿弧魏姥膨忧砖佳摆谜仍甫舅钡披逻泉羡计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,5,4、最基本的开发循环级并行的技术循环展开(loop unrolling)技术采用向量指令和向量数据表示,荫屿报察自靴骗娩盆傍实山共渍康畜尖十提乓氯酬三善络叼仇洲肛起次犁计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,6,4.1.2 相关性对指令级并行的影响,本章使用的浮点流水线的延迟,消腕美嘴瓜赂凋斯胖摧雏咸汀窄瘁俐袄拜洪原渭蓉夸牧越加捐薯逗滴莉驮计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,7,例4-1 对于下面的源代码,for(i=1;i=1000;i+)xi=xi+s;()转换成DLX汇编语言,在不进行指令调度和进行指令调度两种情况下,分析代码一次循环的执行时间。()编译过程进行分析,来仔细考察换名的过程。备注:本章使用的浮点流水线的延迟如上表所示,惩闺窑拌数雨敬玻秘鬼爵筛什谬墒汪痞镊缅民辉幽音满帆绊肾凡妖滇疲吹计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,8,解:()(1)变量分配寄存器 整数寄存器R1:循环计数器,初值为向量 中最高端地址元素的地址。浮点寄存器F2:保存常数S。假定最低端元素的地址为8。(2)DLX汇编语言后的程序 Loop:LDF0,0(R1)ADDDF4,F0,F2 SD0(R1),F4 SUBIR1,R1,#8 BNEZR1,Loop,骸讣睡喷茨捻案娟鸵弦瘤恨涌诚庆己吝打拾亥聘坦烂焚嚷证关狭驼滥肠毒计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,9,(3)程序执行的实际时钟,根据上表中给出的的延迟,实际时钟如下:指令流出时钟 Loop:LD F0,0(R1)1(空转)2 ADDD F4,F0,F2 3(空转)4(空转)5 SD 0(R1),F4 6 SUBI R1,R1,#8 7(空转)8 BNEZ R1,Loop 9(空转)10每个元素的操作需要10个时钟周期,其中5个是空转周期。,卜坷敌凑烘直浮貉低臃押憋娱椽腕中撑矾逐芦蛊涡荣电减官拂蚂刚侣俊信计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,10,(4)指令调度以后,程序的执行情况,SD放在分支指令的分支延迟槽中对存储器地址偏移量进行调整 指令流出时钟Loop:LD F0,0(R1)1 SUBI R1,R1,#8 2 ADDD F4,F0,F2 3(空转)4 BNEZ R1,Loop 5 SD 8(R1),F4 6一个元素的操作时间从10个时钟周期减少到6个5个周期是有指令执行的,1个空转周期。,瓮愁歇偶拌兹囊富赡橡擅急阅涨揩头桥彤木沾均侨眨坚桨汀耕颓鄂陨董增计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,11,(),(1)首先,仅仅去除4遍循环体中的分支指令,得到以下由17条指令构成的指令序列,如下所示:,Loop:LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop,辩椰惜尉磷勉硝乎掣驳垮臂煽棕老驳贬勘恫踊狼栖拢筛伞觉翅沤谭绿伯愈计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,12,(2)编译器可以通过对相关链上存储器访问偏移量的直接调整,将前3条SUBI指令消除掉,从而得到下面一个14条指令构成的指令序列,如下所示:Loop:LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 LD F0,-8(R1)ADD.D F4,F0,F2 SD-8(R1),F4 LD F0,-16(R1)ADD.D F4,F0,F2 SD-16(R1),F4 LD F0,-24(R1)ADD.D F4,F0,F2 SD-24(R1),F4 SUBI R1,R1,#32 BNEZ R1,Loop,幕霜魔汪娟宣镀钝替着弹盗定瞒躺腹馁床揭椭禾偶艺稻绸慰段忻道帐软拂计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,13,(3)通过寄存器换名,消除名相关。得到下面的指令序列,如下所示:Loop:LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 LD F6,-8(R1)ADD.D F8,F6,F2 SD-8(R1),F8 LD F10,-16(R1)ADD.D F12,F10,F2 SD-16(R1),F12 LD F14,-24(R1)ADD.D F16,F14,F2 SD-24(R1),F16 SUBI R1,R1,#32 BNEZ R1,Loop,普林畸罕捌颠瑞觅债羊属长湘并腔痔卉徒粗碍秦艰疆渭伊奶准亨虑险愿清计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,14,再来看一个控制相关的例子。,典型的程序结构是“if-then”结构。,if p1 S1;S;if p2S2;,P1控制相关S1,P2控制相关S2,而不是S1。,玲魁幢媚粹花强溯卒陡舷慢骏雁咸缚柏睫侮粪噎郊北喘坍漂晨争钙圈介寝计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,15,控制相关会带来两方面的限制:,(1)控制相关于一个分支的指令不能被移到分支之前执行。例如ifelse程序中,then后面的语句不能移到if之前执行(2)没有控制相关于一个分支的指令不能移到该分支指令之后,从而受这个分支控制,例如ifthen程序中,if前的指令不能移到then部分执行。,铭昌挨掖窍哭恫粘这拜缨贯赡聊番僵裴效传颠幻琴占希疗窜矽吻堂桔窍碧计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,16,再考察例4-1,假设循环展开时,循环控制分支指令没有去除,则指令序列如下所示:,loop:LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BEQZ R1,Exit LD F0,0(R1)DD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BEQZ R1,Exit LD F0,0(R1),ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BEQZ R1,Exit LD F0,0(R1)ADD.D F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Exit:,督刺矿筹评狙幂瘟巧贞扳钾云剧窝酬浆淋防芍蓟采欠渊取卑聘绿孜劈睦拨计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,17,由于上述指令段中BEQZ R1,Exit,BEQZ R1,Exit,BEQZ R1,Exit三条分支指令的存在,引起控制相关,导致其后的4条指令不能跨越分支指令进行调度,即不同循环遍次里的指令不能够跨越循环遍次进行调度。,鹤访脯豆下洛婶搬煤佃闽釜庶蔬相颤涪服苍酉殃康襄雪民酶附屏鲸潭孪芦计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,18,4.1.3支持指令级并行的基本编译技术,1.检测并提高循环级并行,2.循环展开技术,3.全局指令调度,晃内挞萨寇浙拧践底儿缝熙溜绳肄绷己约傅课拐抑框新舞丑揭韵疼厄扣虫计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,19,1.检测并提高循环级并行,循环级并行是指在源代码或靠近源代码的层次进行并行分析,而指令级并行则是对经过编译技术产生的指令进行并行分析。,循环级并行分析集中分析某一个循环体中的数据存取是否涉及前一个循环体中的数据。这种相关叫做体间相关。,秦抗尝枉丰僳粘闹焙供漂半救亲毙驰毛诅迷烘鞍塑鸭叛迟勋傀飞曝脏怜意计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,20,在这个循环程序中,用到了两次xi,它们之间即存在数据相关,但这是循环体内的相关而不是体间相关。在相邻的两次对i的引用上,存在体间相关,但这种相关包含规约变量,很容易识别和消除。,看下面的程序:for(i=1000;i0;i=i+1)xi=xi+s;,千讹稿澄拔财媚枝咬檬庶刮赵铬韶捡积辩点幻拿歹躁殖瑞新嗜臂堰脏牟讶计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,21,循环体间相关常常以重现的形式出现的:for(i=2;1=100;i=i+1)Yi=Yi-1+Yi;,重现是对一个变量赋予前面一个循环体中一个变量的值,而且往往是最近的一个循环体中的变量,返澄降园犀越依飘牵弘销敷智酝汹依裴题送仪蛰圃腻涡宠澄预啥暗砒簧颈计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,22,检测这种循环依赖关系有两点很重要的原因:一是有些系统结构(如向量计算机)可以专门支持执行这种循环结构的程序;二是有些存在循环依赖关系的程序也可以获得很高的并行度。,for(i=6;1=100;i=i+1)Yi=Yi-5+Yi;,在第i次循环中,循环引用了第i-5个元素,因此称该循环的相关距离是5。许多有相邻体间相关的循环,它们的相关距离是1。相关距离越大,通过展开循环可以获得的并行度就越高。,贺伪闰卢恶耶枯镜是骏拿老蚕颂狰葱黄击肿远稽鸡断涯揖呼簿术逗传服犯计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,23,循环展开技术是利用多次复制循环体并相应调整展开后的指令和循环结束条件,增加有效操作时间与控制操作时间的比率。这种技术也给编译器进行指令调度带来了更大的空间,2.循环展开技术,例4-2:将例4-1中的循环展开成3次得到4个循环体,再对展开后的指令序列在不调度和调度两种情况下,分析代码的性能。,吐引舅酣寞驮裁贾杉熔实咙兔歪码苯夕柬沈捌膊旷篇鸯终迈空且贼哈讨射计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,24,解:假定R1的初值为32的倍数,即循环次数为4的倍数。寄存器分配如下:(展开后的循环体内不重复使用寄存器。)F0、F4:用于展开后的第1个循环体;F2:保存常数;F6和F8:用于展开后的第2个循环体;F10和F12:用于第3个循环体;F14和F16:用于第4个循环体。,词牺残贞坏仆言儡霹汪疆远玛隅散宋凄犀金嗡舌缺撰嗣觅麻焰奎庞藕炔逗计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,25,(1)展开后没有调度的代码,流出时钟Loop:LDF0,0(R1)1(空转)2ADDDF4,F0,F2 3(空转)4(空转)5SD0(R1),F4 6LDF6,-8(R1)7(空转)8ADDDF8,F6,F2 9(空转)10(空转)11SD-8(R1),F8 12LDF10,-16(R1)13(空转)14,流出时钟ADDDF12,F10,F2 15(空转)16(空转)17SD-16(R1),F12 18LDF14,-24(R1)19(空转)20ADDDF16,F14,F2 21(空转)22(空转)23SD-24(R1),F16 24SUBIR1,R1,#32 25(空转)26BNEZR1,Loop 27(空转)28,抹园位秽坊恨沛沽骋孩坯暑混琼纪咽牧慎秆瘸茧钦洛岭急法原腾扩愈宋俱计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,26,结果分析:,这个循环每遍共使用了28个时钟周期有4个循环体,完成4个元素的操作平均每个元素使用28/4=7个时钟周期原始循环的每个元素需要10个时钟周期节省的时间:从减少循环控制的开销中获得的在整个展开后的循环中,实际指令只有14条,其它13个周期都是空转。效率并不高,令挡辰抵驭嚏姜菊倦漠昏呐丧矛赊娘硫摧群烃壁恶咙嚎涂酋执泪兼匹孝展计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,27,(2)对指令序列进行优化调度,指令流出时钟Loop:LDF0,0(R1)1 LDF6,-8(R1)2 LDF10,-16(R1)3 LDF14,-24(R1)4 ADDDF4,F0,F25 ADDDF8,F6,F26 ADDDF12,F10,F27 ADDDF16,F14,F28 SD0(R1),F49 SD-8(R1),F810 SUBIR1,R1,#3212 SD16(R1),F1211 BNEZR1,Loop13 SD8(R1),F1614,乞继奏蜘承瘁寝洲伪烤操叶律津踢罚述颊熟舰拘刑村侈硝很熔氟皑罢咯可计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,28,结果分析:,没有数据相关引起的空转等待整个循环仅仅使用了14个时钟周期平均每个元素的操作使用14/4=3.5个时钟周期循环展开和指令调度可以有效地提高循环级并行性。这种循环级并行性的提高实际是通过实现指令级并行来达到的。可以使用编译器来完成,也可以通过硬件来完成。,绩搬脚做涯照掀典竭稠吭捆搪谱想然磁耽糖寂跃蟹溯囤旨稿爸遍他铸讶钉计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,29,循环展开和指令调度时要注意的问题,(1)保证正确性(2)注意有效性(3)使用不同的寄存器(4)尽可能减少循环控制中的测试指令和分支指令(5)注意对存储器数据的相关性分析(6)注意新的相关性,无疗韩左踞渊桶咖跟认契辉灸借量仆甸芒歌攫换究墅毙酋萧朽埋眶斌畏茫计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,30,3.全局指令调度,全局指令调度是在保证不违背数据相关和控制相关的情况下,把代码尽可能压缩成几条指令。,循环分支指令引起的控制相关可以通过展开解决。全局指令调度可以解决另一类由条件分支引起的控制相关。全局指令调度并不保证能提高执行速度,但如果预测信息准确,编译器就可以进一步决定上述移动会不会提高运行速度。,瞪拯寺沂顷芳批优撅芬胚颂价删掏拨狭范哎卸绷虎帽缴综砒阐锰挝失淘同计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,31,4.2 指令的动态调度,静态调度依靠编译器对代码进行静态调度,以减少相关和冲突。它不是在程序执行的过程中、而是在编译期间进行代码调度和优化。通过把相关的指令拉开距离来减少可能产生的停顿。动态调度在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。,汰牟无炯苞某巨篆淮讥债绊义掠跨奈缺剂十柿欢元录唱靡涎灌吨碘剑奉怨计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,32,4.2.1动态调度的原理,到目前为止我们所使用流水线的最大的局限性:指令必须顺序流出看下面一段代码:DIVD F0,F2,F4;S1 ADDD F10,F0,F8;S2:S2对S1数据相关,S2被阻塞 SUBD F12,F8,F14;S3:S3与S1、S2都没 有相关,但也被阻塞,垄浅捷颅劈武滚秸赡瘪筑郭扮更休锻嫁伤条婉草追运酱介宽膝惶诬焚佬剪计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,33,为了允许乱序执行,我们将基本流水线的译码阶段 再分为两个阶段:(1)流出(Issue,IS):指令译码,检查是否存 在结构阻塞。(2)读操作数(Read Operands,RO):当没有数 据相关引发的阻塞时就读操作数。指令乱序结束带来的最大问题:异常处理比较复杂(精确异常处理、不精确异常处理),谢孔乎焰炔锌褒闭馈趣毫撕静狮坍猎缉淋茶帐蛰坟果陵熔啡踊赏乾辅硅蔽计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,34,4.2.2计分牌动态调度算法,例4-3:数据先读后写(WAR)相关引起的阻塞 代码序列:DIVDF0,F2,F4 ADDDF10,F0,F8 SUBDF8,F8,F14 指令乱序执行时就会出现先读后写相关。,记分牌技术的目标:在资源充足时,尽可能早地执行没有数据阻 塞的指令,达到每个时钟周期执行一条指令。,胃傍婆霓脖蹿丢逼汪猫闸胜蔓兵膨赴茹瑶盅沟丛锯盯嘉愁嚼基沛躯仑阶闯计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,35,要发挥指令乱序执行的好处,必须有多条指令 同时处于执行阶段,这就要求有多个功能部件 或功能部件流水化或者两者兼有。假设:处理器采用多个功能部件。CDC 6600具有16个功能部件:4个浮点部件,5个存储器访问部件 7个整数操作部件 在DLX中,假设有2个乘法器、1个加法器、1 个除法部件和1个整数部件。,柱兹氦恋使制庶沂芍彦捏舆藩俐草矣涟投膀抚楷耍赚弛常贞文栓怖喊仁丁计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,36,1.采用记分牌技术的DLX处理器的基本结构。,记分牌电路负责记录资源的使用,并负责相关检测,控制指令的流出和执行。,咳窒馆狸捐狡否衰办樱泰夕眠夺钎六粥烧蹲克券窿被拥傻殿女唤甚爸缅方计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,37,2.每条指令在流水线中的执行过程分为四段:(1)流出(Issue,记为IS)如果本指令所需的功能部件有空闲,并 且其它正在执行的指令使用的目的寄存器与 本指令的不同,记分牌就向功能部件流出本 指令,并修改记分牌内部的数据记录。解决了指令间存在的结构相关和先写后写相关。,计裂脯邮朗涝熟按嚣蹦咱快靠展祈煮脂瘦衙紫解阔玩娠禹显隧酷宗掉港淤计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,38,(2)读操作数(Read Operand,记为RO)。记分牌需要监测源操作数寄存器中数据的 有效性,如果前面已流出的还在运行的指令不 对本指令的源操作数寄存器进行写操作,或者 一个正在工作的功能部件已经完成了对这个寄 存器的写操作,那么此操作数有效。当操作数 有效后,记分牌将启动本指令的功能部件读操 作数并开始执行。解决了数据的先写后读(RAW)相关。通过以上步骤,记分牌动态解决了结构相 和数据相关引发的阻塞,指令可能乱序流出。,略怯得咳找贝讣耻拴跨鼻钒妄什躬间徐刹东绦撩劝尾裸葡斧宫痞救挟坛凤计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,39,(3)执行(Execution,记为EX)。(4)写结果(Write Result,记为WR)。记分牌知道指令执行完毕后,如果目标 寄存器空闲,就将结果写入到目标寄存器中,然后释放本指令使用的所有资源。检测先读后写(WAR)相关 在出现以下的情况时,就不允许指令写结果:,前面的某条指令(按顺序流出)还没有读取操作数;其中某个源操作数寄存器与本指令的目的寄存器相同。,缚可术弥矿嫁孝坑涅儒哟免棺墟贾戏逢稚肖策拜搪婿豪肮汝铺政裔抚冲喉计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,40,3.记分牌需要纪录的信息分为三部分:(1)指令状态表 记录正在执行的各条指令已经进入记 分牌DLX流水线四段中的哪一段。,(2)功能部件状态表 纪录各个功能部件的状态。每个功能部件 在状态表中都由以下九个域来纪录:Busy:指示功能部件是否在工作 Op:功能部件当前执行的操作 Fi:目的寄存器编号 Fj,Fk:源寄存器编号 Qj,Qk:向Rj,Rk中写结果的功能部件 Rj,Rk:表示Fj,Fk是否就绪,是否已经被使用,厂拢阐屯愈谈矛泳嘉苔铡叔漾谦妖羌况烘炼沪漠盂吾腻恤拓俺莹犁帆扣婶计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,41,(3)结果寄存器状态表 每个寄存器在表中有一个域,用于纪录写入本寄存器的功能部件(编号)。如果当前正在运行的功能部件没有需要写入本寄存器的,则相应域置为空。,例4-4给出一段代码如下所示,请写出其代码运行过程中记分牌保存的信息。LD F6,34(R2)LD F2,45(R3)MULT.D F0,F2,F4SUB.D F8,F6,F2DIV.D F10,F0,F6ADD.D F6,F8,F2,救易耶药高烹触之榴贱哈怀辈结卑琐摹豪养愚稗柯狮琢悉室坚事颠七斜菠计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,42,指 令,指令状态表 IS RO EX WR,LD F6,34(R2)LD F2,45(R3)MULTDF0,F2,F4 SUBDF8,F6,F2 DIVDF10,F0,F6 ADDDF6,F8,F2,DLX记分牌信息组成和记录的信息,棕华宪夹洲肇洒您耕浴陌穷决钒康扬攘郡象钳贪妻桅偷蒂埋亥彭碧万怜磋计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,43,部件名称,功能部件状态表 Busy Op Fi Fj Fk Qj Qk Rj Rk,整数 yes LD F2 R3 no乘法1 yes MULTD F0 F2 F4 整数 no yes乘法2 no加法 yes SUBD F8 F6 F2 整数 yes no除法 yes DIVD F10 F0 F6 乘法1 no yes,些赘盼犊胯焕鳃布洱瓣锡普姓翱典陶彪堰诚兽镰卵纬辅浪趟盗纂纳笼嘛忿计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,44,4.2.3 Tomasulo动态调度算法,1.基本思想,Tomasulo算法将记分牌的关键部分和寄存器换名 技术结合在一起。,只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据。指令的执行结果直接送到等待数据的其它保留站中去。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称。,变柬雌高悸杰摩馅绝蔗昂菱晓缔贬汾枕陇优筑工甸懊继娠捎孕砷悔艾赫绍计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,45,(1).采用Tomasulo算法的DLX浮点部件的基本结构,朵蒜氰帖著曼缔松肃钡厕躺垛突匡袜佬燃售域催泣策奢兆霖徘埔昂聂笆黔计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,46,保留站中保存已流出并等待到本功能部件执行的 操作(指令)的数据;还保存指令执行所需的控制信息。,如果该操作的源操作数在寄存器中已经就绪,刚将该操作数取来,保存到保留站中;如果操作数还没有计算出来,则保留站中记录这个操作数将由谁计算出来,即指明它由哪个功能部件产生。,取缓冲和存缓冲保存的是读/写存储器的数据或 地址。,烽栖迸违习雌虫拘博倦刊叠炸黄逮堰成匣逮怯信厦急梁英续畴亭芍厅绰朱计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,47,浮点寄存器通过一对操作数总线连到功能部件,通过其中一条总线连到公共数据总线,再送到存缓冲。功能部件的计算结果和从存储器读取的数据都送到公用数据总线上,除了取缓冲的输入和存缓冲的输出以外,所有部分均与公用数据总线相连。两个运算功能部件,浮点乘法器完成乘法和除法操作 浮点加法器完成加法和减法操作,忌嫁诈咖庙帧鹃绥散抹恩羌绥视慧撂窿豺谊检辱梁绣笋饮建羊善遥执榴向计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,48,(2).指令流水线的分段情况 使用Tomasulo算法的流水线需三段:(1)流出(Issue):从浮点操作队列中取一条指令。(2)执行(Execute)(3)写结果(Write Result),啃坡填玉题虑镁名察示悸戎巨帮勋胯终咏犊单程刊赖杂掐弟诽脾誉拽膝弊计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,49,4.3转移预测技术,4.3.1静态转移预测,静态分支预测有时用于分支行为在编译时就可以比较精确地预测的处理器中,也可以用来协助动态分支预测器进行分支预测。,一种支持静态分支预测的系统结构特性叫分支延迟,分支延迟会引起流水线冲突,而编译器可以在编译时减小由此冲突带来的损失。分支预测的效率取决于是否能够正确地猜测出分支的方向。在编译时对分支准确预测也有助于对数据冲突的调度。循环展开和条件分支就是这样的例子。,尖流辣襄授癸资董臀伙昼菩最辣溅氦岭唁晓茨非种瑰鄙疡骄纬茸跌赵污磊计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,50,例4-8:有下面的程序段:LD R1,O(R2)相关需一个停顿DSUBU R1,R1,R3BEQZ R1,L 非0跳转OR R4,R5,R6DADDU R10,R4,R3L:DADDU R7,R8,R9 总会执行,可移至第一条指令后,编译时静态地进行分支预测,境啦墒炬决芍晓汗妖酵贴欢犯邱仓戎袄袱津掀馁震匹檄枢涕圾陨员茁蚁遂计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,51,静态预测有多种方法:,最简单的方法是预测分支总是被选中。,另一种稍好的方法是根据分支的方向来预测分支是否命中,向后转移的分支预测为选中,向前转移的分支预测为不选中。,一个更精确的技术是基于以前运行时得到的配置文件信息。,花扑隙拯辐肢浊十滤放茵酣陵弹仪拧辕莆美缴顽敲株镣鸟云技帐形啊搓搓计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,52,4.3.2动态转移预测,动态分支预测技术能够根据近期转移是否成功的历史记录来预测下一次转移的方向。它能够随程序的执行过程动态地改变转移的预测方向。,动态转移预测技术的关键是要解决好两个问题:,一是如何记录转移历史信息 另一个是根据历史信息进行预测,葵凤也十撮色乎崔睫盛茂疼脯省祭禁身住琴染烽挥曙扶韭适穿欢褐社霓虚计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,53,记录转移历史信息的方法通常有三种:,1.转移预测缓存 记录最近几次转移的结果,2.分支目标缓冲缓存转移目标指令的地址,3.基于硬件的前瞻执行用Cache缓存转移地址的后继指令,拎滤垣叉绷绣冶置砧生梭言盆停竹显招除炬案击筷辉鲸枪戌膀粗痒援兢尾计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,54,在指令Cache中专门设置一个字段,称为“转移历史表”。,1.转移预测缓存,在执行转移指令时,把转移成功或不成功的信息记录在这个“转移历史表”中。,带有箭头的线表示状态转换的方向,线旁边的T表示指令实际执行结果为转移成功,而N表示指令实际执行结果为转移不成功。,只记录一次历史转移信息状态转化图,殴厦除俺纹淑忙糊窟楞饱浓酪端旭庸洞耿牺摆黑鬃噶抽渗豌圈敌题终言决计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,55,记录两次历史转移信息状态转化图,TT:两次转移都成功;NT:最近一次转移成功,再前一次转移不成功;TN:最近一次转移不成功,再前一次转移成功;NN:最近两次转移都不成功;t:本次预测转移成功;n:本次预测转移不成功;T:本次实际转移成功;N:本次实际转移不成功,钠呛迅钙薯率缠姚僚恤窗瑟插姬笔香供稠晚掌塘察氢码氧词臀下涡珐债敬计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,56,2.分支目标缓冲,转移成功的分支指令地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标示;取指令阶段,所有指令地址都与保存的标示作比较,一旦相同,我们就认为本指令是分支指令,且认为它转移成功,并且它的分支目标(下一条指令)地址就是保存在缓冲区中的分支目标地址。这个缓冲区就是分支目标缓冲区(Branch-TargetBuffer,BTB,或者Branch-TargetCache,BTC)。,辩符薛架燎疯答媚谎弓搅骤绘哺瑞轮纂橡奈株俏拙激滚邦猩远俞鲜施爪百计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,57,BTB的结构如图所示,用专门的硬件实现的一张表格。表格中的每一项至少有两个字段:(1)执行过的成功分支指令;(2)预测的分支目标地址。,仲虾草译扑篷杰赂寞闺雹疏蜘钵序嫌缕库蝴崖症铀耍蒋灼秋卸迄眨键庆邹计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,58,由于BTB中存储的是执行过的成功分支指令的地址,所以如果当前指令的地址与BTB中的第一个字段匹配,那么就将该匹配项中第二个字段中的地址送给PC寄存器,从分支目标处开始取指令。,如果预测正确,则不会有任何分支延迟。如果预测错误或者在BTB中没有匹配的项,则会有至少两个时钟周期的开销。这是因为这时需要更新BTB中的项,这要花费一个时钟周期。,省窥虹籽剪癣荡缠熙撑机谭咽味黍萎辈相赡远昆镍吭墟帜羔拓楞化错伴铀计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,59,采用BTB技术时指令在各种情况下的延迟,粹柞琅荒嘴侄岭一散缓扫浪唯课憨罐锭嗅岂秸仇梭炔合硷服泌肖灰防阻歹计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,60,BTB的另一种形式是在分支目标缓冲器中存储一条或则多条分支目标地址处的指令。,有的实现方案还保留了分支目标地址,有的则将之去掉了,这种方案有3个潜在的优点:,(1)更快地获得分支目标处的指令;,(2)可以一次提供分支目标处的多条指令,这对于多流出处理器是很有必要的;,(3)便于进行分支折叠优化。该优化可以用来实现零延迟无条件分支,甚至有时还可以做到零延迟条件分支。,瓤裁庄剃虽冯坑沿絮啡苑对洪坤她苹碗杭傣漠雌奸馈舒俗弄柔酌兑炒梧粹计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,61,3.基于硬件的前瞻执行,基于硬件的前瞻执行结合了以下3种思想:,(1)采用动态的分支预测技术来选择后续执行语句(2)在控制相关消除之前指令前瞻执行。(3)对基本块采用动态调度。,实现前瞻的关键思想是:,允许指令乱序执行,但必须顺序确认。只有确认以后的结果才是最终的结果,从而避免不可恢复的行为,如更新机器状态或执行过程发生异常。,钓藏辉悯骏佳张倒催惊绿圣畜地芯渴悔裳乍庐齿讨客麻款畅肌贯耿锨栗肠计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,62,4.4 多发射技术,4.4.1超标量技术,标量是相对于向量而言的,一个只有大小的量称为标量,而将既有大小又有方向的量称为向量。当然,向量中的某一个分量也是标量。如果处理机每条指令的处理对象是一个或一对(如两个标量相加)标量,这种处理机称为标量处理机。如果标量处理机内部存在多条指令流水线,则称为超标量处理机。,蜀缚乌讥复组桐世缆俘辜椿均瑚沪统七砸宫瓣膜荧吧寨臼抓泰衙网猪酒委计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,63,1单发射与多发射,处理机从指令存储单元(或指令分配单元)取得指令的过程称为“发射”。如果一个处理机在单个时钟周期中只能取出一条指令供执行,就称为单发射处理机。如果在一个时钟周期内可以同时取得多条指令的处理机可以称为多发射处理机。,(a)单发射,(b)多发射,单发射与多发射工作方式比较,返回,上一张,蚂酣翻辰角贸馈圾矮起册锰延暇洞莲诲纱否侄结探溶皱胜蟹仰畴缄馆疥诞计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,64,(a)单发射指令流水线,茁葬晶彤盗呐妆汛千尸坎幻神云瓤又胖礁坦举贿次泪鞋栅埠担完吃毖读捻计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,65,(b)多发射指令流水线,馒仪屹每苔绣畴助遍伦黑裂杏栋葛龙导蓖哑豪奇僻涪探签屡御硼美蔷量绸计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,66,在超标量处理机中同样面临着预测分析和处理指令之间的功能部件冲突、数据相关和控制相关问题。主要采用的技术有一下几种:,(1)寄存器重命名技术。,(2)先行指令窗口技术。,(3)转移预测技术。,(4)通过Tomasulo算法实现动态存储器地址的二义性消除。,(5)设置多个交叉开关,通过控制开关通路,把几个指令译码器的输出分别送到多个操作部件中去执行。,(6)要是指令流水线在一个周期内同时发射更多的指令,存储器就需要在一个周期为指令流水线提供多条指令。,润请挝窜默币蹦检疡飘骏渤捅淄喧佣射量丽弄诛娱寓蝎瓣仑嘻米衅藏泌性计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,67,4.4.2多发射的动态调度,1.多流水线调度,2.资源冲突,在标量处理机中,有多条指令流水线在同时工作,设置有多个能独立工作的操作部件,因此,必须解决多流水线的调度问题和操作部件的资源冲突问题。,轨涌札岿酵队痘诲倔茫眉绵贵模淫让袄奴低筏烙夯嚣烙纯港惦铲酱偿寐撑计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,68,1.多流水线调度,在有多条流水线同时工作时,指令的发射顺序和完成顺序对提高超标量处理机的性能非常重要。,如果指令的发射顺序是按照程序中的指令排列顺序进行的,称为顺序发射(in-order issue),否则,称为乱序发射(outorder issue)。,如果指令的完成顺序必须按照程序中的指令排列顺序进行,称为顺序完成(in-order completion),否则,称为乱序完成(outorder completion)。,异蓬伟酋耸生俺咏曼砸烃沟贺削慨匹卖笼镭销涂锗东窄茧切略黍凭虐苦脑计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,69,通过一个具体的程序例子来介绍这三种方法。,I1:LOAD R1,A;I2:FADD R2,R1;I3:FMUL R3,R4;I4:FADD R4,R5;I5:FDEC R6;I6:FMUL R6,R7;,幼铆熙域氟星舱舶兽秦钮酋拐廓臂匹心献入救藻枷透稀号腻橱帮字源秒兄计算机系统结构第4章指令级并行及限制计算机系统结构第4章指令级并行及限制,70,(1)顺序发射顺序完成,输入指令严格遵照编译后的机器指令次序排列,而且执行的次序也一点不作变动。由于每次取得两条指令,当前面的指令没有执行完毕前,后进入的两条指令必须等待,直到执行部件完成前面的执行,流入写回部件为止。所以,当有资源冲突

    注意事项

    本文(计算机系统结构第4章指令级并行及限制.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开