计算机系统结构实验报告要点
计算机体系结构实验报告

计算机体系结构实验报告实验目的:1.掌握计算机体系结构的基本概念和组成部分2.学会使用模拟器对计算机性能进行测试和优化3.理解计算机指令的执行过程和流水线工作原理4.掌握计算机性能指标的测量方法和分析技巧实验材料和工具:1.一台个人电脑2.计算机体系结构模拟器3.实验指导书和实验报告模板实验步骤:1.搭建计算机系统:根据实验指导书提供的指导,我们搭建了一个简单的计算机系统,包括中央处理器(CPU)、内存和输入输出设备。
2.编写测试程序:我们编写了一段简单的测试程序,用于测试计算机系统的性能。
3.运行测试程序:我们使用模拟器运行测试程序,并记录测试结果。
模拟器可以模拟计算机的执行过程,并提供各种性能指标的测量功能。
4.分析和优化:根据测试结果,我们对计算机系统的性能进行分析,并尝试优化系统设计和测试程序,以提高性能。
实验结果:通过测试程序的运行和性能指标的测量,我们得到了如下结果:1.计算机的时钟频率:根据模拟器显示的结果,我们得知计算机的时钟频率为1000MHz。
2. 指令执行时间:我们计算了测试程序的平均执行时间,得到了结果为5ms。
4.流水线效率:我们通过模拟器提供的流水线分析功能,得到了计算机流水线的平均效率为80%。
实验分析:根据测试结果1.提高时钟频率:通过增加时钟频率可以加快计算机的运行速度。
我们可以尝试调整计算机硬件的设计和制造工艺,提高时钟频率。
2.优化指令执行过程:我们可以通过优化指令的执行过程,减少执行时间。
例如,并行执行多个指令、增加指令缓存等。
3.提高流水线效率:流水线是提高计算机性能的关键技术,我们可以通过增加流水线级数和优化流水线结构,提高流水线效率。
4.增加并行计算能力:并行计算是提高计算机性能的重要途径,我们可以尝试增加计算机的并行计算能力,例如增加处理器核心的数量。
实验总结:通过本次实验,我们深入了解了计算机体系结构的工作原理和性能指标。
通过模拟器的使用,我们学会了对计算机性能进行测试和进行性能优化的方法。
计算机系统结构实验报告

电子科技大学实验报告结果分析:观察三到九周期的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自行设计与所给出的流水线指令的汇编格式,在下表中写出。
指令指令意义Op[31:26] Op2 [25:20] [19:15] [14:10] [9:5] [4:0]如上图所示,相邻的两条指令中,如果第二条指令的两个源操作数寄存器与上一条指令的目的操作数寄存器相同,那么第二条指令在译码周期从寄存器堆中取源操作数值的时候,上一条指令还只在执行周期,还没有将最后结果写回到相应的寄存器中,因此第二条指令取如上图所示,在直接相邻的两条产生数据相关的指令之间插入三条空指令,这样在第二条指令译码之前,第一条指令已经将结果写回,第二条指令取到的源操作数的值是最新的值,数据相关就消除了。
以上情况针对相邻的两条产生数据相关指令的分析,而对于中间隔了一条或两条无数据上图左边部分就是汇编器实现部分的流程图,在此基础上进行扩展,即如箭头所指方向,中间两步替代为右边部分。
)测试程序指令:xor r2, r2, r2add r3, r2, r1xor r2, r2, r2addi r1, r1, 20如上图所示,在产生数据相关的指令前插入了空指令“addi r0 r0 0”。
在xilinx中的仿真结果:。
计算机系统结构实验报告

计算机系统结构实验报告实验目的:掌握计算机系统的基本结构和工作原理,了解计算机系统的组成部分及其相互关系。
实验仪器和材料:计算机硬件设备(主机、硬盘、内存、显卡等)、操作系统、实验指导书、实验报告模板。
实验原理:实验步骤:1.搭建计算机硬件设备,将主机、硬盘、内存、显卡等组装连接好。
2. 安装操作系统,如Windows、Linux等。
3.启动计算机,进入操作系统界面。
4.打开任务管理器,查看CPU的使用情况。
5.打开任务管理器,查看内存的使用情况。
6.运行一些应用程序,观察CPU和内存的使用情况。
7.尝试使用输入输出设备,如键盘、鼠标等。
实验结果:通过实验,我们可以观察到计算机系统的硬件部分和软件部分的工作情况。
通过任务管理器,我们可以查看到CPU的使用情况和内存的使用情况。
在运行应用程序时,我们可以观察到CPU和内存的使用情况的变化。
通过使用输入输出设备,我们可以与计算机进行交互操作。
实验分析:从实验结果可以看出,计算机系统的硬件部分和软件部分都是相互关联的。
CPU作为计算机的核心部件,负责执行各种指令,通过数据传输和计算来完成各种操作。
而内存则用于存储数据和程序,通过读写操作来完成对数据的处理。
硬盘则用于长期存储数据。
操作系统则是计算机系统的管理者,通过调度CPU和内存的使用来实现对计算机资源的分配。
结论:计算机系统是由硬件和软件部分组成的,其中硬件部分包括CPU、内存、硬盘等,软件部分包括操作系统、应用程序等。
计算机系统通过CPU 的运算和数据传输来实现各种操作。
通过实验,我们可以观察到计算机系统的工作情况,并深入了解计算机系统的组成和工作原理。
实验总结:通过本次实验,我们对计算机系统的基本结构和工作原理有了更深入的了解。
实验中,我们搭建了计算机硬件设备,安装了操作系统,并通过观察和分析实验结果,进一步认识到计算机系统的组成部分和各部分之间的相互关系。
通过操作输入输出设备,我们还实践了与计算机进行交互操作的过程。
计算机系统结构 实验报告 (截图 分析 总结)

实验一流水线中的相关一、实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停二、实验平台WinDLX 模拟器三、实验内容和步骤1.用WinDLX模拟器执行下列三个程序:(分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
)●求阶乘程序fact.s⏹步进的运行方式:步进的运行方式是指,每次控制只执行一条语句,快捷键为F7键:图1-1 单步运行测试⏹设置断点的运行方式:鼠标点击某行,按下“Insert键”,设置断点:图1-2 设置断点图1-3 断点设置成功,按F5运行至断点⏹连续的运行方式:通过按下F5键,可直接运行至断点处;按下F8键,并在对话框内键入跳跃的步数,可以直接跳转指定的步数:图1-4 设置跳转步数●求最大公倍数程序gcm.s,观察程序在流水线中的执行情况:●求素数程序prim.s,观察CPU 中寄存器和存储器的内容2. 用WinDLX运行程序structure_d.s通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。
●存在资源相关的指令、导致资源相关的部件⏹两条指令同时访问寄存器f4,造成资源相关:⏹两条指令同时访问ALU,造成资源相关:●由资源相关引起的暂停时钟周期数、暂停时钟周期数占总执行周期数的百分比由资源相关引起的暂停时钟周期数:30;总执行周期数:139;暂停时钟周期数占总执行周期数的百分比:21.6%3. 在采用、以及不采用定向技术的情况下,分别用WinDLX 运行程序data_d.s(记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;并计算采用定向技术后性能提高的倍数)●采用定向技术:(左下图)⏹计算暂停时钟周期数占总执行周期数的百分比:30/128=23.4%图3-1 采用定向技术图3-2 不采用定向技术●不采用定向技术:(右上图)⏹计算暂停时钟周期数占总执行周期数的百分比:104/202=51.5%●采用定向技术后性能提高的倍数:202/128=1.58倍四、实验总结●资源相关对CPU性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。
计算机组成实验报告

计算机组成实验报告计算机组成实验报告(共3篇)篇一:《计算机组成与结构》实验报告11 .实验目的:1).学习和了解TEC-2000 十六位机监控命令的用法;2).学习和了解TEC-2000 十六位机的指令系统;3).学习简单的TEC-2000 十六位机汇编程序设计;2.实验内容:1).使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况;3、实验步骤1).关闭电源,将大板上的COM1 口与PC 机的串口相连;2).接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3).置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;4).按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITOR Version 1.0 April 2001Computer Architectur Lab.,Tsinghua University Programmed by He Jia >5).用R 命令查看寄存器内容或修改寄存器的内容a.在命令行提示符状态下输入:R↙;显示寄存器的内容图片已关闭显示,点此查看图片已关闭显示,点此查看b.在命令行提示符状态下输入:R R0↙;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值,再用R 命令显示寄存器内容,则R0 的内容变为0036。
图片已关闭显示,点此查看6).用D 命令显示存储器内容在命令行提示符状态下输入:D 2000↙会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的 D 命令,起始地址会自动加128(即80H)。
计算机组成原理实验报告

计算机组成原理实验报告实验目的,通过本次实验,深入了解计算机组成原理的相关知识,掌握计算机硬件的基本组成和工作原理。
实验一,逻辑门电路实验。
在本次实验中,我们学习了逻辑门电路的基本原理和实现方法。
逻辑门电路是计算机中最基本的组成部分,通过逻辑门电路可以实现各种逻辑运算,如与门、或门、非门等。
在实验中,我们通过搭建逻辑门电路并进行实际操作,深入理解了逻辑门的工作原理和逻辑运算的实现过程。
实验二,寄存器和计数器实验。
在本次实验中,我们学习了寄存器和计数器的原理和应用。
寄存器是计算机中用于存储数据的重要部件,而计数器则用于实现计数功能。
通过实验操作,我们深入了解了寄存器和计数器的内部结构和工作原理,掌握了它们在计算机中的应用方法。
实验三,存储器实验。
在实验三中,我们学习了存储器的原理和分类,了解了不同类型的存储器在计算机中的作用和应用。
通过实验操作,我们进一步加深了对存储器的认识,掌握了存储器的读写操作和数据传输原理。
实验四,指令系统实验。
在本次实验中,我们学习了计算机的指令系统,了解了指令的格式和执行过程。
通过实验操作,我们掌握了指令的编写和执行方法,加深了对指令系统的理解和应用。
实验五,CPU实验。
在实验五中,我们深入了解了计算机的中央处理器(CPU)的工作原理和结构。
通过实验操作,我们学习了CPU的各个部件的功能和相互之间的协作关系,掌握了CPU的工作过程和运行原理。
实验六,总线实验。
在本次实验中,我们学习了计算机的总线结构和工作原理。
通过实验操作,我们了解了总线的分类和各种总线的功能,掌握了总线的数据传输方式和时序控制方法。
结论:通过本次实验,我们深入了解了计算机组成原理的相关知识,掌握了计算机硬件的基本组成和工作原理。
通过实验操作,我们加深了对逻辑门电路、寄存器、计数器、存储器、指令系统、CPU和总线的理解,为进一步学习和研究计算机组成原理奠定了坚实的基础。
希望通过不断的实践和学习,能够更深入地理解和应用计算机组成原理的知识。
计算机原理实验报告

实验名称:计算机原理实验实验日期:2023年X月X日实验地点:计算机实验室实验目的:1. 理解计算机的基本工作原理和组成结构。
2. 掌握计算机各部件的功能和相互关系。
3. 熟悉计算机指令系统和工作流程。
4. 培养动手能力和实验技能。
实验内容:一、计算机硬件组成实验1. 实验目的:了解计算机硬件的组成和各部件的功能。
2. 实验步骤:(1)观察计算机主机,识别各硬件部件,如CPU、内存、硬盘、显卡等。
(2)了解各硬件部件的功能和相互关系。
(3)拆装计算机,练习硬件组装和维修。
二、计算机指令系统实验1. 实验目的:熟悉计算机指令系统,掌握指令的格式和功能。
2. 实验步骤:(1)学习计算机指令系统的基础知识,了解指令的分类和功能。
(2)分析指令的格式,掌握指令的编码方式。
(3)编写简单的程序,实现指令的功能。
三、计算机工作流程实验1. 实验目的:理解计算机的工作流程,掌握程序执行的过程。
2. 实验步骤:(1)学习计算机工作流程的基本知识,了解程序的加载、执行和存储过程。
(2)观察计算机运行程序的过程,分析程序执行过程中的指令执行顺序。
(3)编写程序,验证程序执行的正确性。
实验结果与分析:一、计算机硬件组成实验实验结果:通过观察和拆装计算机,掌握了计算机硬件的组成和各部件的功能,熟悉了计算机的硬件结构。
分析:计算机硬件是计算机系统的基础,了解硬件组成有助于更好地理解计算机的工作原理。
二、计算机指令系统实验实验结果:学习了计算机指令系统的基础知识,掌握了指令的格式和功能,能够编写简单的程序实现指令的功能。
分析:计算机指令系统是计算机执行程序的基础,熟悉指令系统对于程序设计和开发具有重要意义。
三、计算机工作流程实验实验结果:理解了计算机的工作流程,掌握了程序执行的过程,能够分析程序执行过程中的指令执行顺序。
分析:计算机工作流程是计算机执行程序的关键,了解工作流程有助于优化程序设计和提高程序执行效率。
实验总结:本次计算机原理实验使我对计算机的基本工作原理和组成结构有了更深入的了解。
计算机系统实训报告

计算机系统实训报告1.引言计算机系统实训是计算机科学与技术专业学生在培养计算机系统方面的能力和技术实践的一种重要实践方式。
通过实践,学生能够深入了解计算机系统的工作原理和相关技术,掌握实际操作和解决问题的能力,提高自己的实际能力和创新能力。
2.实践目标本次计算机系统实训的主要目标是让学生掌握操作系统安装与配置、网络配置与管理、系统调优与性能分析等方面的基本知识和技能。
通过实际操作和实验,提高学生对计算机系统的理解和操作能力,为将来的工作和学习打下良好的基础。
3.实验内容(1)操作系统安装与配置:学生需要选择合适的操作系统,按照实验指导书的要求进行安装和配置,包括分区、文件系统、启动配置等。
(2)网络配置与管理:学生需要学习和掌握网络配置和管理的基本知识,包括IP地址设置、网络连接、网络共享等。
(3)系统调优与性能分析:学生需要学习和掌握系统调优和性能分析的基本知识和方法,实际操作并进行性能测试和分析。
4.实践过程(1)操作系统安装与配置:根据实验指导书的要求,选择合适的操作系统进行安装和配置。
按照要求进行分区,设置文件系统,并进行启动配置。
(2)网络配置与管理:学习和掌握网络配置和管理的基本知识,并按照实验指导书的要求进行实践操作。
设置IP地址,连接网络,并进行网络共享。
(3)系统调优与性能分析:学习和掌握系统调优和性能分析的基本知识和方法,并按照实验指导书的要求进行实践操作。
进行系统性能测试和分析,根据结果进行调优。
5.实验结果与分析通过实践操作和实验测试,学生顺利完成了实验任务,并取得了良好的实验效果。
通过实验结果和分析,学生对计算机系统的工作原理和相关技术有了更深入的了解,提高了自己的操作能力和解决问题的能力。
6.总结与展望通过本次计算机系统实训,学生不仅掌握了操作系统安装与配置、网络配置与管理、系统调优与性能分析等方面的基本知识和技能,还提高了自己的实际操作和解决问题的能力。
通过实践,学生对计算机系统有了更全面和深入的认识,为将来的工作和学习打下了坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一流水线相关一.实验目的1. 熟练掌握WinDLX 模拟器的操作和使用,熟悉DLX 指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX 基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU 性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
二.实验内容1. 用WinDLX 模拟器执行下列三个程序(任选一个):求阶乘程序fact.s求最大公倍数程序gcm.s求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU 中寄存器和存储器的内容。
熟练掌握WinDLX 的操作和使用。
注意:fact.s 中调用了input.s 中的输入子程序。
load 程序时,要两个程序一起装入(都select 后再点击load)。
gcm.s 也是如此。
2. 用WinDLX 运行程序structure_d.s,通过模拟:找出存在结构相关的指令对以及导致结构相关的部件;记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述结构相关对CPU 性能的影响,讨论解决结构相关的方法。
3. 在不采用定向技术的情况下(去掉Configuration 菜单中Enable Forwarding 选项前的勾选符),用WinDLX 运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
4. 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX 再次运行程序data_d.s。
重复上述3 中的工作,并计算采用定向技术后性能提高的倍数。
三.实验过程和截图1.模拟执行fact.s和input.s流水线的状态如下:在执行求阶乘程序fact.s之后,输入值5,查看寄存器的值为120,结果正确。
2.执行程序structure_d.s之后的实验数据如下图:由实验数据显示:(1)该程序没有结构相关;(2)该程序总共暂停的时钟周期数为:108个时钟周期,暂停的时钟周期数占总的时钟周108 55.38%期数的百分比为195程序,实验数据如下图:3.不采用定向技术,运行data_d.s由实验数据显示:(1)由数据相关引起的暂停的时钟周期数为:104(2)程序执行的总的时钟周期数为:202104 51.49%(3)暂停的时钟周期数占总的时钟周期数的百分比:202 4.采用定向技术执行程序data_d.s,实验数据如下图:由实验数据显示:(1)程序由于数据相关引起的暂停的时候周期数为:30;(2)程序执行的总的时钟周期数为:128;(3)暂停的时钟周期数占总的时钟周期数的百分比为:30/128=23.44%(4)CPU性能提高的倍数:202/128=1.58。
四.实验体会本次实验是计算机系统结构该课程的第一次实验,刚刚开始的时候由于不会使用.WINDLX软件,所以导致得到了一些错误的实验数据,但是后来在老师和同学的帮助下渐渐的熟悉了该软件对于实验的作用,也学会了如何运用该软件来观察程序在流水线的状态下的执行,我们可以看到实验的真实数据,流水线的时空图等等,这让我们对流水线的的认识更加深刻。
实验二循环展开及指令调度一.实验目的1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;3. 了解循环展开、指令调度等技术对CPU 性能的改进。
二.实验内容1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX 汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2 个,延迟时间都是3 个时钟周期)(2)通过Configuration 菜单中的“Floating point stages”选项,把加法﹑乘法﹑除法部件的个数设置为2 个,把延迟都设置为3 个时钟周期;(3)用WinDLX 运行程序。
记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;(4)采用指令调度技术对程序进行指令调度,消除相关;(5)用WinDLX 运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;(6)根据记录结果,比较调度前和调度后的性能。
论述指令调度对于提高CPU 性能的意义。
2. 用循环展开、寄存器换名以及指令调度提高性能(1)用DLX 汇编语言编写代码文件*.s,程序中包含一个循环次数为4 的整数倍的简单循环;(2)用WinDLX 运行该程序。
记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(3)将循环展开3 次,将4 个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度;(4)用WinDLX 运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(5)根据记录结果,比较循环展开、指令调度前后的性能。
三.实验过程和截图1.(1)用DLX汇编语言写的代码如下:Main:addf f1,f2,f3;addf f3,f2,f1;addf f5,f6,f5;addf f4,f6,f4;multf f8,f7,f6;multf f11,f10,f9;Finish:trap 0;(2)用WinDLX运行程序,实验数据如下图:由实验数据显示:2 )数据相关发生次数:(11)结构相关发生次数:(216)程序执行的总的时钟周期数:(3)采用指令调度技术实验数据如下图:(3进行指令调度之后的指令代码:main:f1,f2,f3; addff5,f6,f5; addff8,f7,f6; multff4,f6,f4; addff11,f10,f9; multfaddf f3,f2,f1;Finish:trap由实验数据显示:;)消除了数据相关,使数据相关的次数为0(1 ;)消除了结构相关,使结构相关的次数为0(2 ;)程序执行的总的时钟周期数为13(3 16/13=1.23倍;4)CPU性能提升:(用循环展开、寄存器换名以及指令调度提高性能2. 汇编语言写的循环指令代码:)使用(1DLX main:addi r2,r0,#0addi r1,r0,#8loop:addi r2,r2,#1addi r1,r1,#-1bnez r1,loopFinish:trap执行程序,实验数据如下图:)用(2WinDLX由实验数据显示:;)数据相关发生的次数:8(1 0;(2)结构相关发生的次数:46;(3)程序执行的总的时钟周期数:3)采用循环展开技术,将指令展开七次,代码如下:(main: addi r2,r0,#0addi r1,r0,#8;loop:addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1addi r2,r2,#1addi r1,r1,#-1;bnez r1,loopFinish:trap 0用WinDLX执行该程序,实验数据如下:由实验数据显示:0 )数据相关次数:(102)结构相关次数:(23 3)程序执行的总的时钟周期数:(倍性能提高了1)(4CPU四.实验体会该实验的目的是让我们加深对指令调度和循环展开技术的了解,在大多数指令中会涉这些相关的存在都结构相关和控制相关等等,循环指令中存在着数据相关、及到循环指令,的性能,要想得到更高的效率,所以我们需要减少这些相关的次数,甚至消除CPU影响着.这些相关。
循环展开和指令调度就是消除这些相关来提高CPU性能的技术,由实验可以看出,指令调度和循环展开对于相关的减少和性能的提高具有显著的作用。
实验三记分牌算法和Tomasulo 算法一.实验目的1. 掌握DLXview 模拟器的使用方法;2. 进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3. 理解记分牌算法和Tomasulo 算法的基本思想,了解它们的基本结构、运行过程;4. 比较分析基本流水线与记分牌算法和Tomasulo 算法的性能及优缺点。
二.实验内容1. 用DLX 汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i 和数据文件*.d;2. 观察程序中出现的数据相关、控制相关、结构相关,并指出三种相关的指令组合;3. 将自己编写的程序*.s、*.i、*.d 装载到DLXview 模拟器上,(1)分别用基本流水线、记分牌算法和Tomasulo 算法模拟,针对每一种模拟做如下分析:①统计程序的执行周期数和流水线中的暂停时钟周期数;②改变功能部件数目重新模拟,观察并记录性能的改变;③改变功能部件延迟重新模拟,观察并记录性能的改变;论述功能部件数目、功能部件延迟对性能的影响。
(2)记录运行记分牌算法时的功能部件状态表和指令状态表;(3)记录运行Tomasulo 算法时的指令状态表和保留站信息;三.实验过程和截图1.用DLX汇编语言编写的代码如下:add r4, r0, r0add r5, r0, r0addi r1, r0, 5LOOP:subi r1, r1, 1multf f4,f4,f4f5,f5,f5 multff6,f6,f6 multff7,f7,f7multfaddi r4, r4, 2addi r5, r5, 10bnez r1, LOOPnopadd r6, r4, r5nopnopnopnoptrap #02.观察程序中出现的数据相关、控制相关、结构相关由实验数据显示:(1)数据相关引起的暂停的时钟周期数:2 (2)结构相关引起的暂停的时钟周期数:60 (3)控制相关引起的暂停的时钟周期数:4 3.将程序加载到DLXview模拟器上运行:(1)BasicPipeLine状态下执行程序截图如下:;基本流水线下程序执行的时钟周期数是53 算法下执行该程序,截图如下:)ScoreBoard(2在ScoreBoard算法中程序执行的总的时钟周期数为168。
(3)Tomasulo算法下执行该程序,截图如下:140。
在Tomasulo算法下该程序的执行时间是四.实验体会该模拟器,让我们能够熟练的在该平台上做该实验的目的首先是让我们熟悉DLXview算法。