2022年2022年计算机系统结构实验报告. .pdf

上传人:C****o 文档编号:33383852 上传时间:2022-08-10 格式:PDF 页数:25 大小:3.25MB
返回 下载 相关 举报
2022年2022年计算机系统结构实验报告. .pdf_第1页
第1页 / 共25页
2022年2022年计算机系统结构实验报告. .pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《2022年2022年计算机系统结构实验报告. .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机系统结构实验报告. .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、电 子 科 技 大 学实验报告学生姓名:学 号:一、实验室名称:计算机学院实验中心二、实验项目名称:计算机系统结构课程实验三、实验原理:1. 由教师给出一个具有基本功能的Verilog HDL流水线源代码;2. 学生完成下面3 个方面的内容:(1)自行设计汇编伪指令格式,完成一个能把自己的汇编指令转换成流水线CPU 能够识别的二进制指令的汇编器,实现语言不限;(2)自行设计能够解决数据相关的机制并基于源代码进行扩展;(3)自行设计能够解决控制相关的机制并基于源代码进行扩展。四、实验目的:帮助学生理解流水线的运行机制和基于Verilog HDL硬件描述语言的实现技术。名师资料总结 - - -精品

2、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 五、实验内容:(一) 基本流水线分析1.1 认真阅读和理解源代码,请详细按要求回答每个问题。1.源代码中文件是按什么样的规律来组织的?答:按照子模块组织源代码文件。模块pipelinedcpu_tb 用来控制CPU 的时钟等信号,调用pipelinedcpu 模块 (假定为1 级模块, 最高级),1 级模块中按顺序调用各个周期以及周期与周期之间的中间寄存器模块(假定为 2 级模块),2 级模块中调用各自部件

3、模块(假定为3 级模块)。模块 pipelinedcpu 用来控制每级流水线及流水线级之间的控制信号,寄存器信息,其余子模块用来具体实现每一级流水线的功能。2.存储器的实现方式?答:用一个二维数组reg 31:0 ram 0:31 实现,其中第一维代表32 位地址,第二维代表32 位数据接口有: 32 位输入数据和输出,32 位地址,一个同步时钟脉冲clk,一个控制写入的信号we 先对二维数组进行初始化读数据时不需要时钟脉冲的激励,写数据时需要时钟脉冲的上升沿激励信号并且we 信号为 1 3.源代码文件中的流水线与我们课堂上讲的原理电路图有何相同之处,有何不同之处答: 相同 :WB 级,写回级

4、使用2 路 32 位的多路选择器来选择是获取ALU 的计算结果还是LOAD 指令从数据存储器中读取出来的数据。这里与课堂上所讲的内容基本相同。流水线都分为五个执行级,都是在译码级产生各种控制信号,一级一级往后传,分离的指令存储器和数据存储器。各个部件以及逻辑都没有太大差异不同 :源代码文件中的流水线中的ALU 部件的输出接在一个两路选择器上,并且没有zero 输出端,而课堂上的直接输出到中间寄存器源代码文件中没有关于消除数据相关的代码,而课堂上讲的原理电路图有消除数据相关的线路没有数据前推和load 前推的相关实现,指令格式的区别, 流水线 alu 运算部件两个端口都可以接受立即数。4.通过分

5、析,写出本流水线的控制信号有哪些?对比我们课堂上讲的控制信号的差别有哪些?答:本实验的控制信号主要有:wreg、m2reg、wmem、jal、aluc、aluimm 分别表示指令是否要写寄存器、信号是否有数据存储器中的数据需要写回寄存器、是否有指令需要往数据存储器中写数据、流水线寄存器R 是要写入ALU 的运算结果还是EPC 的内容、 指令的操作类型,例如加、减、与、或。 、ALU 的 B 输入端是否要选择立即数输入差别主要有: regrt 信号控制目的寄存器是rd 或 rt,sext 信号控制是否需要传递立即数,wmem 信号控制是否需要访存, jal 信号控制exe 级和 mem 级之间是

6、传递运算结果还是立即数,这些信号是课堂上的流水线没有的。1.2 针对流水线的指令集,编写必要的测试指令,分析运算结果,回答哪些指令的组合能由此流水线源代码正确实现,哪些指令的组合不能由此流水线源代码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - 正确实现。 (要求在实验报告中写出所完成的测试指令的组合、每个组合的仿真过程及结果、每个过程和结果的必要分析。)(1)第一组指令序列指令序列:add r2 r1 1 add r2 r1

7、 10 add r1 r3 1 add r1 r2 10 add r2 r2 1 add r2 r3 10 sub r2 r1 r3 截图:结果分析:观察三到九周期的ealu 信号分别为 (10,1,1,10,1,10,10) ,第九个周期的ealu 为 10,该周期执行的指令是sub r2 r1 r3;可见第一条指令赋值r1=10;第二条指令赋值r2=1;所以最后一条指令sub r1 r1 r2 执行后结果为9, 符合条件。当有数据相关时,就会出问题,再观察第五、六、七两个周期,指令的执行结果均为1。故该程序不能解决数据相关问题。(二) 汇编器实现2.1自行设计与所给出的流水线指令的汇编格式

8、,在下表中写出。指令指令意义Op31:26 Op2 25:20 19:15 14:10 9:5 4:0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - add 寄存器加法000000 000001 00000 rd rs rt add rd rs rt sub 寄存器减法000000 000010 00000 rd rs rt sub rd rs rt mul 寄存器乘法000000 000011 00000 rd rs rt

9、 mul rd rs rt and 寄存器与000001 000001 00000 rd rs rt and rd rs rt or 寄存器或000001 000010 00000 rd rs rt or rd rs rt xor 寄存器异或000001 000100 00000 rd rs rt xor rd rs rt sra 算术右移000010 000001 shift rd 00000 rt sra rd rt shift srl 逻辑右移000010 000010 shift rd 00000 rt srl rd rt shift sll 逻辑左移000010 000011 shi

10、ft rd 00000 rt sll rd rt shift jreg 寄存器跳转000010 000100 00000 00000 rs 00000 jreg rs addi 立即数加法000101 16 位 immediate rs rt addi rt rs imme muli 立即数乘法000111 16 位 immediate rs rt muli rt ts imme andi 立即数与001001 16 位 immediate rs rt addi rt rs imme ori 立即数或001010 16 位 immediate rs rt ori rt rs imme xori

11、 立即数异或001100 16 位 immediate rs rt xori rt rs imme load 取整数数据字001101 16 位 offset rs rt load rt rs offset store 存整数数据字001110 16 位 offset rs rt store rt rs offset beq 相等则跳转001111 16 位 offset rs rt beq rt rs offset bne 不相等则跳转010000 16 位 offset rs rt bne rt rs offset lui 设置高位010001 16 位 immediate 00000 r

12、t lui rt imme jump 无条件跳转010010 26 位 address jump address jal 子程序调用010011 26 位 address 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - jal address 2.2写出实现语言、 主要数据结构、 主要功能模块名字和功能、 以必要的流程图。代码截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

13、 - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载

14、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - -

15、 - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

16、 - - 第 13 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

17、- - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - 2.3给出汇编器的运行界面 (若有),写出所实现的汇编器的操作步骤及使用说明,并自己设计并给出测试用例及运行结果,使得所有指令均能自动生成二进制格式的指令。汇编器的使用步骤: (1)在程序目录下的instruction.txt 中输入指令(2)运

18、行程序。(3)打开 instruction.txt ,发现在指令的下方依次出现了各条指令对应的二进制码。测试截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - (三) 数据相关分析及解决数据相关的分析(1)一般指令的数据相关分析名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 25 页 - - - -

19、 - - - - - rs2即第二源操作数可以是寄存器或者立即数,但根据字符串解析可以区分出来,因此这些指令都归为一类解决数据相关问题。产生相关的条件:如上图所示,相邻的两条指令中,如果第二条指令的两个源操作数寄存器与上一条指令的目的操作数寄存器相同,那么第二条指令在译码周期从寄存器堆中取源操作数值的时候,上一条指令还只在执行周期,还没有将最后结果写回到相应的寄存器中,因此第二条指令取到的源操作数的值并不是最新的值,因此而产生了数据相关。解决方案:如上图所示,在直接相邻的两条产生数据相关的指令之间插入三条空指令,这样在第二条指令译码之前,第一条指令已经将结果写回,第二条指令取到的源操作数的值是

20、最新的值,数据相关就消除了。以上情况针对相邻的两条产生数据相关指令的分析,而对于中间隔了一条或两条无数据相关指令的两条指令产生了数据相关,解决方案是分别插入两条、一条空指令。(2)store和条件跳转指令的数据相关分析及解决store和条件跳转指令设计的格式:op + rs + rt + offset 对于这两条指令来说, rs 和 rs 相当于源操作数,而它们没有目的操作数,因此在判断一般指令的数据相关需要作另外特殊判断。(3)jreg 指令指令格式:op + rs 没有目的寄存器,且只有一个源操作数,可以与条件跳转指令归为一类判断。2. 数据相关的解决(1)程序流程图名师资料总结 - -

21、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 25 页 - - - - - - - - - 上图左边部分就是汇编器实现部分的流程图,在此基础上进行扩展,即如箭头所指方向,中间两步替代为右边部分。(2)测试程序指令:xor r2, r2, r2 add r3, r2, r1 xor r2, r2, r2 addi r1, r1, 20 addi r2, r2, 10 lui r1, 1 翻译结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

22、 - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - - - - - - - 如上图所示,在产生数据相关的指令前插入了空指令“addi r0 r0 0” 。在 xilinx 中的仿真结果:结果是正确的。(四) 控制相关分析及解决1. 控制相关分析在有跳转指令时,倘若跳转指令的操作数有寄存器,因此而产生的相关为数据相关,在(三)中已经解决,而控制相关指:跳转指令只能在译码级被检测出来并形成跳转地址,而此时 PC 值已经更新为跳转指令的下一条指令的PC 值,所以无论跳转是否成功,该指令都会被执行,跳转不成功是没问题的,但是跳转成功就产生了控制相关。所以

23、在跳转指令后加一条空指令就可以解决所有问题。2. 控制相关解决程序中,只要在判断完数据相关的时候,再判断当前指令是否是跳转指令,如果是,则再翻译一条空指令到文件,如果不是,则取下一条指令进行同样的数据相关及控制相关的操名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 25 页 - - - - - - - - - 作。(1)在功能模块 clear_relation_and_translate的最后加一下代码段:(2)测试程序:(3)结果分析:名师资料总结 - - -精品资料

24、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 25 页 - - - - - - - - - 六、实验器材(设备、元器件) :PC Windows 8 Xilinx ISE Eclipse IDE 十、总结及心得体会:实验我学习流水线的相关的知识,包括:数据、控制、结构相关,汇编器指令的调整,功能部件数对流水线的影响,分支指令预测技术。使我对计算机系统结构有了更深层次的认识,对基本流水线分析,汇编器,数据相关分析及解决和控制有了进一步的认识与理解,强化了我的实践能力名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 25 页 - - - - - - - - - 十一、对本实验过程及方法、手段的改进建议:开始的时候思路不是很多,老师可以提供适当的帮助,点到为止即可。报告评分:指导教师签字:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 25 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

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