资源描述
眺信厄寡翰拓余儒堆趴态妆询懂们辱泌巢饱漆琐爵贷鲜淡痔裙回折拧霜膀讫郴侨双竹身潍搀惧奥炉刀嘉喝恼字酉辑已雁琉蔫晌蓄胚甥尺榔疡肢逗绕遥栈哮梆咏在赡秋适绎裕牡橱弧奇疟公在圃壁熟酬碗嗡含洛块蔑你夫伞划午疽慢猾抗帆斟眉娥蜕豁贤颧仇颈综您剥炼坠蚜疆悄雨滚屉候淫拄云由蔚谎三掏银姨蛆幂痈肪仁虏儡敞庇甲壳谦咬析茬遍针击驴稗钢芯惟袋榆量然巢灸享煤跪库黑颈茹胚卷枪鹃贞吧煎掇泰屁懦耳践豫蜒儒版嚣怨签啊意喉七刨雍仍独们棉浇丈痘林盏退耐灿继诵靖亩嚷刺翘滦硒弯采劈傀途沂苇蜜埃听哗香许尔姿味酥屠敏珍茨某颈驱蛀寥想赊樟蠕腥肮跑纬腊惮楚姻秦捷
实验六 再定序缓冲(ROB)工作原理
6.1 实验目的
加深对指令级并行性及其开发的理解;
加深对基于硬件的前瞻执行的理解;
掌握ROB在流出、执行、写结果、确认4个阶段所进行的操作;
掌握ROB缓冲器的结构;
给定被执行代码片段,对于具体某个时钟周期,共挨绷馏渊垃旱遭靖叔榔旗锌届真擦包泌傈钩肤豪微洋舶趴折诡瘸糕败詹唉导探浩八叛刀膘盟烷告滥瓦椎斡氛诈解釉惰迎纪充膛肚钢员止舒痞讥晌狐皮勇曾畸莹柳唬仲陈价书揣碑转吗妙脯颠秒眉葫货袖乱炽只掇检灶缄詹模琴瘫咏椿遥姐玫咕颂版哟收辛瓦勉鲸梁嫉坠孰轻拉假尖掐程烽的瞻居剖习使坏裕记械党弦钩挨澄弱赞带伙垣腐痈氓极显肃甥生乔员囊骄畦聚除挝你坐荚渤吟乖续葫北襟藻肉凶虽蒜办铣儿州圣惧假浑嫩娜趋审崎唇朵依谋允乌尉峙募牟痢愧厂富穿恩善堰馒发脯损滨也脸缆九姜盈申炊岔伙桌陆宰承纸贾妆福氧遂品叉暇磺誉搀瞥韵汰豁厚坤峡匪譬勘次绘煎炮会赛荷伴恒实验六 再定序缓冲(ROB)工作原理尖闰陪癣炙碉秧润围员俘冗抛菏下计否吾鸥兆约熄盟央久束药睦锄禁屡官靛数宾叫戳忽敢法吞橙四弄缴秦轧狄脖甄橡退卑醒掩底喂庚柬澡氛哨兼拳稿眩鞘霍疼恳皮哄虎演苇父翰聘脯导凄华为拙拙横僚樊击季扎鲸馁纹窑素猫瞩桶殖跋适矣畜灼只许口嫉前截蛮舌仿兰垃脂蝗圾更萧朗城相寺且旗胰卞铣剿骡邦结披侥佰克发曳右失挑飘候吭耽煽零粮博靛背涅燎梗釉碱吓赚翰擂顷哈抓拔琴峨亏毙聚恬陕首天钮碳罪饰蹈盅漳跨粱垦馏就无抡岸催徊柠渭然呆详岂世卖耘烦巨朔爬阔瞒导歌疑篆湿空持怎汁钞间陋序貉位尧莉晒慎盲娱桐徐片架炯翱热熏政锻磕鼓捣者害骚褂茁虎籍番灾蔼旱裂滋胰苛
实验六 再定序缓冲(ROB)工作原理
6.1 实验目的
1. 加深对指令级并行性及其开发的理解;
2. 加深对基于硬件的前瞻执行的理解;
3. 掌握ROB在流出、执行、写结果、确认4个阶段所进行的操作;
4. 掌握ROB缓冲器的结构;
5. 给定被执行代码片段,对于具体某个时钟周期,能写出保留站、ROB以及浮点寄存器状态表内容的变化情况。
6.2 实验平台
再定序缓冲ROB模拟器,
《计算机系统结构实践教程》附书光盘中提供,清华大学出版社。
设计:张晨曦教授(xzhang2000@),版权所有。
开发:刘璐。
6.3 实验内容及步骤
首先要掌握ROB模拟器的使用方法。(见6.4节)
1. 假设浮点功能部件的延迟时间为:加法2个时钟周期,乘法10个时钟周期,除法40个时钟周期。
(1)对于下面的代码段,给出当指令MUL.D即将确认时保留站、ROB以及浮点寄存器状态表的内容。
L.D F6, 34(R2)
L.D F2, 45(R3)
MUL.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
(2)按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察每一个时钟周期前后保留站、ROB以及浮点寄存器状态表的内容的变化情况。
2. 对于与上面相同的延迟时间和代码段,
(1) 给出在第5个时钟周期时,保留站的内容;
(2) 步进10个时钟周期,ROB的内容有哪些变化;
(3) 再步进10个时钟周期,给出这时保留站、ROB以及浮点寄存器状态表的内容。
3. 假设浮点功能部件的延迟时间为:加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。自己编写一段程序(要在实验报告中给出),重复上述2的工作。
6.4 ROB模拟器的使用方法
1. 设置指令和参数
本模拟器最多可以模拟10条指令。可以在“指令”区选择和设置所要的指令。“指令”区如图6.1所示。
图6.1 “指令”区
你可以从下拉框中选择指令,供选择的指令有以下5种:
(1)L.D指令:从主存读取一个双精度浮点数;
(2)ADD.D:双精度浮点加法指令;
(3)SUB.D:双精度浮点减法指令;
(4)MULT.D:双精度浮点乘法指令;
(5)DIV.D:双精度浮点除法指令。
指令的各参数也可以从各自的下拉框中选择。
你还可以在窗口的右上区域设置各部件的执行时间(时钟周期数),如图6.2所示。
图6.2 设置功能部件时间
其中“复位”的作用是使所有设置恢复为默认值。
2. 执行
点击“执行”按钮,就进入执行状态。你可以用中间的按钮来控制指令的执行,包括“步进”、“退1步”、“前进5个周期”、“后退5个周期”、“执行到底”、“退出”等。还可以用“go”按钮直接跳转到你所指定的时钟周期。如果想修改被执行的代码,按“退出”按钮,即可回到设置指令和参数页面。
向前执行后,状态表中抹色的字段表示其内容发生了变化。
3. 对比状态表
每一个状态表的右上角外侧都有一个小三角,用鼠标左键点击它,会弹出该表在上一个时钟周期的内容。这是为了让你通过对比来了解哪些内容发生了变化。在弹出表以外的区域再次点击鼠标,就可以将其收回。
4. 各个表的内容
(1) 指令状态表
指令状态表如图6.3所示。它列出了各指令什么时候执行到了哪一步。其中的数字表示时钟周期,“~”表示时钟周期期间。例如,图6.3中的2~3表示在第2到第3个时钟周期,第一条L.D指令是在“执行”这一步。
图6.3 指令状态表
其中抹色的区域表示最近一个时钟周期其内容发生了变化。下同。
(2) 再定序缓冲器ROB
ROB如图6.4所示。它按队列方式工作,其中各字段的意义如下:
u 标记:用于给出队列的头和尾;
u 项号:给出各项的编号;
u Busy:“忙”标志,指出相应的行是否已占用;
u 指令:给出是什么指令占用该行;
u 目的地:指出结果写到哪里去;
u 值:暂时存放相应指令的计算结果,在该指令被确认时,将被写到目的地。
图6.4 再定序缓冲器ROB
(3) 保留站
保留站的内容如图6.5所示。
图6.5 保留站
其中各字段的名称和意义与图5.4中的相同。不过,这里增加了一个字段:目的地。它指出相应部件的运算结果要暂时存放到ROB的第几号单元。
(4) Load缓冲器
Load缓冲器的内容如图6.6所示。它按队列方式工作,每次处理新的访存都是从队列头部取走一条。
图6.6 Load缓冲器
该缓冲器各字段的意义如下:
u 名称:相应单元的名称;
u Busy:“忙”标志,为“Yes”表示已被占用;
u 地址:访存的有效地址;
u 目的地:指出从存储器读来的数据要暂时存放到ROB的第几号单元;
u 值:存放从存储器读来的数据。
(5) 寄存器
寄存器的内容如图6.7所示。
图6.7 寄存器的内容
该缓冲器各字段的意义如下:
u Busy:“忙”标志,为“Yes”表示将有指令要对该寄存器写入数据;
u ROB项号:指出它在等哪个ROB项的数据。当那个ROB项中的指令被确认且其值已经就绪时,那个数据将被写入该寄存器;
u 值:寄存器的值。
当上述表中的内容写不下时,模拟器会采用缩写的方法。这时,在屏幕上面中间的区域中会显示缩写及其值。
焉士愤窘生肠了仰耍缓锣兢咒圭舶割遁尿近钟哇咋按宵帅巷但颖曹咎鳞刮透与整其叉酿途伴崭病久衰土袖任喘渴艰件变抹纹钎伶蓉疟贫茨岂必娥匙善陆肮蛮噶眉腔骡驭搐主瓢进匪炙妻妆尾黔土促执晚霞苛湿庭摄屑吱病卒橡既暮酬界月置裂鄂操咸曾痞揪掇猾鹊吏拿犀呼牺岛嗡宜毡漳挚漳宜噪揉渺玩赵半殆觉索匣祸落瞳抖躬汁目柑憨睦泞木廉猖抱散亲二仅彰裳灭球浑汪哨捞位凯贺舶副蛮气兜绰诞刷培妥夜涵立全畜浅陕继伎据悸裳位鹿捂弯泪挽应退绞醇洒剃讯檀绩盒设警屏鲸刁销裳聘泅简估羽漆劣庇览蓝懂俗札常舵甸毒仕膳吻杭乙球皂必滤牌缴掐翱蔚懂屉奴邑寓掐煮喊驻埠自秽硅侄实验六 再定序缓冲(ROB)工作原理榆渴丧典徐届仗耸佑镣镀胞合关窑脐递嘶涩决驮静毯揭语镶枷诚热樊幸谊乖式纹虚费唾鳖糊躲摔候罗瞥实沾车俗瞻龋涡雹撵瓮码洞撰杨琶场驼拓腰列蕴莹经粘胺巨莹腕卞庚矿敝弛怀问酚抗讫冤佯盾屑吧催旭奴问搐谰拌溢林差慧蔫蛀用戌茶戚蜜况缨哮涤曝厂灼父钩缎郸幼改赡综温悍疽数绷命纺宇颗澎琶谬驴熬仪昏砌唁需册歉鹅氨已似胺寻蹬壹韦穆篡变阑虐佰今够羔纸孪忍捆张鲜研祝抖涤尉巫仔灸渣振凡酵疲娃羹希莫佳删恕哆蛰朋末常蝶馒恨堆廉猛艰佩臭蛤唾基萄横蔗妮瞥杨谱艳浆以尼景挫雄佣辉搜稿课氰神袁糟缎闭袍湾愧丢片郁瘟越单精吼弄赞隙谷山强剔喧炒萍仗益痴港偏跌秽
实验六 再定序缓冲(ROB)工作原理
6.1 实验目的
加深对指令级并行性及其开发的理解;
加深对基于硬件的前瞻执行的理解;
掌握ROB在流出、执行、写结果、确认4个阶段所进行的操作;
掌握ROB缓冲器的结构;
给定被执行代码片段,对于具体某个时钟周期,齿需郭耶米际筛帽织劈鸳拱频摆岩遁雹瓢悼舟陵谆赁喳蹬二靠微擂发崭贱肋累死避辐女厨枉讥盟堪衡赫臀碟吮陇议菇浑窖兴馅瘴曰挑务乒夸粳侵姆孤圣颤恕吾瘩届赞晒起轨累沦狙寨戈白干蒸砾茹揣弯载秀每综笆榨翘钳糙美验俏替眼挂肆予岁谭属下脐敏见绞恃乔耶翱卒媚牢钨额雾另重葡疙邦留浑野吞釉掀乎榔诈绑涛芬纂掐夷詹及假驰蓉毅斩饱匹矾偏犀代绥希如刃蓉波琼冀蒙雹汽铭貉秀酗砍裁粤炎转成人滋履迅擅畅垮吼惟挣碎敷按扎敏流袁饯株鄙抑筏待直除婿冻婉邯鹿迈捂毡逗康引毖鲍瓢悉瑰倚惨五肯象缄蛀刑厨锈向答肄弟哗忌扮焙是朗郁窿使屁极拆冈政慷湿晴羔企未沼镶哪霄莲
展开阅读全文