您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 大连理工大学计算机系统结构实验-实验二
大连理工大学实验报告计算机系统结构实验实验二流水线及流水线中的冲突学院(系):电子信息与电气工程学部专业:计算机科学与技术学生姓名:班级:学号:大连理工大学DalianUniversityofTechnology实验二流水线及流水线中的冲突一、实验目的与要求(1)理解计算机流水线基本概念。(2)理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作。(3)加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。(4)进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。二、实验内容与步骤步骤1、启动MIPSsim。2、根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)3、参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。4、选择“文件”-“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。4、选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。5、观察程序在流水线中的执行情况,步骤如下:(1)选择MIPSsim的“文件”—“载入程序”选项来加载pipeline.s。(2)关闭定向功能。这是通过“配置”—“定向”。(3)用单步执行一个周期的方式执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。(4)当执行到第13个时钟周期时,各段分别正在处理的指令是:IF:LW$r4,60($r6)ID:ADDI$r3,$r0,25EX:ADDI$r1,$r1,-1MEM:ADDI$r6,$r0,8WB:ADD$r2,$r1,$r0画出这时的时钟周期图。6、这时各流水寄存器中的内容为:IF/ID.IR:_000000008CC4003C____________________________IF/ID.NPC:__0000000000000030_________________________ID/EX.A:____0000000000000000_________________________ID/EX.B:_____0000000000000000________________________ID/EX.Imm:__0000000000000019_________________________ID/EX.IR:_____0000000020030019________________________EX/MEM.ALUo:___0000000000000004_____________________EX/MEM.IR:______000000002021FFFF_____________________MEM/WB.LMD:___0000000000000000_____________________MEM/WB.ALUo:__0000000000000008_____________________MEM/WB.IR:_____0000000020060008___________________7、观察和分析结构冲突对CPU性能的影响,步骤如下:(1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。(2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件。答:存在结构冲突的指令:由于都是浮点加指令,而浮点加需要6个时钟周期且只有1个浮点加法器,所以相隔5个时钟周期的两条指令都存在结构冲突。(3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。答:在执行中可以记录到,在第4、10、16、22、28、34、40,这7个时钟周期共发生了7次由于结构冲突造成的流水线阻塞。每隔6个时钟周期发生一次。因为加法器只有一个,完成一次浮点加法需要6个时钟周期,所以每隔6个时钟周期造成一次5个时钟周期的STALL,共造成5×7=35个时钟周期的停顿。所以由结构冲突引起的停顿时钟周期书为35,占比67.30769%,与模拟器一致。(4)把浮点加法器的个数改为4个。(5)再次重复步骤(1)~(3)的工作。(6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。答:存在结构冲突的指令。由于浮点加法器有4个,执行浮点加法需要6个时钟周期,因此第5条浮点数加法指令就会因为没有可用加法器二阻塞,造成2个周期的停顿。结构停顿2,占周期百分比为10.52632%。解决方法:将加法器设为6个。由于结构冲突导致流水线停止,降低了CPU的性能。所以可以通过重设部件来解决结构冲突。8、观察数据冲突并用定向技术来减少停顿,步骤如下:(1)全部复位(2)加载data_hz.s(3)关闭定向功能。(4)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。答:第四个时钟周期进行LW$r1,0($r2)指令的译码工作,需要读取r2寄存器的值,而第一条指令ADDIU$r2,$r0,A的执行结果还未写到r2寄存器,故发生了RAW冲突。(5)记录数据冲突引起的停顿时钟周期数及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。答:数据冲突引起的停顿时钟周期数是31个时钟周期,总时钟周期数是65,占比47.69231%。停顿周期总数是35个时钟周期,占比为53.84615%。(6)复位CPU。(7)打开定向功能。(8)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤(3)的结果进行比较。答:在第6个(圈内)时钟周期处发生了RAW冲突。(9)记录由数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算采用定向技术后的性能是原来的几倍。答:数据冲突引起的停顿时钟周期数为4,程序执行的总时钟周期数为19。占比21.05%。性能是原来的65/19=3.42倍。三、实验结果与分析实验结果与分析见上第二项中。四、讨论、建议、质疑
本文标题:大连理工大学计算机系统结构实验-实验二
链接地址:https://www.777doc.com/doc-5492179 .html