系统结构实验报告一

合集下载

计算机系统结构实验报告

计算机系统结构实验报告

电子科技大学实验报告结果分析:观察三到九周期的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性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。

森林生态系统结构特征实验报告

森林生态系统结构特征实验报告

森林生态系统结构特征实验报告一、实习概况1.实习目的:通过自己的所见所闻,以及同当地居民或公园游客的交流,加深我们对于城市生态系统的基本要素、城市人与环境关系的重新认识,以及介绍人们对于环境的真正市场需求。

2.实习路线及内容:xx年4月5日,早八点,在北大逸夫二楼前集合出发,经图书馆至燕南园,停留进行观察调查;经静园至翻尾石鱼;从北大西门出至蔚秀园及承泽园,解散进行调查;在海淀公园调查后,经六郎庄、北京城市绿化隔离带、京密引水渠,从南如意门进入颐和园,沿昆明湖南岸、颐和园北岸、万寿山北坡一路观察,听取老师讲解;约14:30实习结束。

3.进修达至的目标:通过老师的传授以及自己的观测,将课堂上讲授的科学知识同实际联系出来,辨认出原来我们身边存有许多细节都被我们忽略了,一些习以为常的事情背后除了小文章。

通过进修,也重新认识了一些动植物,减少了科学知识。

二、实习记录1.逸夫二楼经图书馆至燕南园途中:在图书馆前回望,通往东门的那条路,左边是繁忙的建筑工地,右边是教学楼,仅有的那片可怜的草坪是看不到的。

虽还是春天的早上,但还是给人一种热的感觉。

也许因为是新建不久的,路两旁几乎没有一棵树。

北京春季多风,有时还会夹杂着工地上的土,形成一个小型“沙尘暴”,令这条路有些让人望而却步,尤其是在夏天,大家都要低头疾走,当然这种情况在出了东门以后也没有得到缓解。

缺乏绿色,也使这条路让人感到很暗淡,有些过于严肃。

不能说这条路上完全没有绿色,还有一片草坪。

关于它我问了问周围的同学,有的说没什么感觉,有的说它晚上还不错,还有的说刚来的时候觉得绿油油的挺好,后来就没注意了。

我觉得这和人的心情有关,刚入学当然觉得什么都好,后来也就没心情注意了,还是“低头疾走”要紧。

晚上其实是草坪里的灯好看。

这么说来它存在的意义似乎不大,不如种些树,因为在地学楼前,我觉得弄成一个小型的实习场地,大家可以分辨分辨岩石,认识认识植物,比在屋子里印象要深刻。

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构设计模式实验报告学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期:一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。

绘制类图并编程模拟实现。

(2) 组合模式某教育机构组织结构如下图所示:北京总部教务办公室湖南分校行政办公室教务办公室长沙教学点湘潭教学点行政办公室教务办公室行政办公室教务办公室行政办公室在该教育机构的OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。

(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。

)(3) 外观模式某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。

读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。

现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。

(完整word)中南大学软件体系结构实验报告

(完整word)中南大学软件体系结构实验报告

CENTRAL SOUTH UNIVERSITY软件体系结构实验报告学生姓名周建权班级学号 0909121915指导教师穆帅设计时间2014年11月实验一系统的用例模型一、实验目的1.熟悉用例图的基本功能和使用方法。

2.锻炼结合给定题目,进行有效需求分析的能力。

3.掌握如何使用建模工具绘制用例图的方法。

二、实验器材1.计算机一台。

2.UML建模工具,比如软件Rational Rose 或StarUML。

三、实验内容在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。

用Rational Rose或StarUML工具软件绘制系统的用例图.下文以Rational Rose为例讲解基本步骤。

四、实验步骤1.结合实际给定题目,完成系统的需求建模。

2.针对每个用例进行业务分析。

以图书管理系统中“删除读者信息"用例为例来说明实验具体步骤。

(1)分析:在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。

(2)根据分析结果,书写业务流程,一般包含以下信息:①管理员在录入界面,输入待删除的读者名;②“业务逻辑”组件在数据库中,查找待删除的读者名;③如果不存在,则显示出错信息,返回步骤①,如果存在则继续;④“业务逻辑”组件判断“待删除的读者”是否可以删除;⑤如果不可以,则显示出错信息,返回步骤⑧,如果可以则继续;⑥在数据库中,删除相关信息;⑦显示删除成功信息;⑧结束。

3.根据分析结果,绘制用例图.以图书管理系统中“删除读者信息"用例为例说明具体绘图步骤:(1)在用例图上双击main,出现如图1。

体系结构实验报告

体系结构实验报告

|课程实验报告软件系统结构?\]专业软件工程学生姓名刘辉软件151班级|学号17指导老师孙莉*实验一C/S结构应用设计(1)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。

学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

本次实验目的:(1)熟悉并掌握二层C/S软件体系结构的相关知识;(2)掌握二层C/S结构应用系统的分析和设计;(3)掌握一种开发二层C/S结构应用系统的技术线路;:(4)实际开发出一个简单的基于二层C/S结构的应用实例——个人通讯录管理系统。

要求:(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据;(4)在中用C#语言编写表现层(UI)程序;(5)在中用C#语言编写业务逻辑层(BLL)程序;:(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。

二、实验环境奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。

三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。

该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。

联系人信息包括姓名、住址、电话。

整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能!四、实验操作过程在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQL Server 2000中建立数据库Contact,建立表friend。

软件设计与体系结构实验报告

软件设计与体系结构实验报告

实验项目列表实验1:ACME软件体系结构描述语言应用一、实验目的1)掌握软件体系结构描述的概念2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作二、实验学时2学时。

三、实验方法由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。

四、实验环境计算机及ACMESTUDIO。

五、实验内容利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。

六、实验操作步骤一、导入Zip文档建立的一个Acme Project,并且命名为AcmeLab2。

如下图:接着导入ZIP文档,导入完ZIP文档后显示的如下图:二、修改风格在AcmeLab2项目中,打开families下的TieredFam.acme.如下图:修改组件外观1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify按钮,将打开外观编辑器对话框。

2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选择Repository类型.3. 在Color/Line Properties section修改填充颜色为深蓝色。

4. 在颜色对话框中选择深蓝色,并单击[OK].5. 修改图形的边框颜色为绿色7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:添加新元素类型1. 在Component Types section选择New按钮2. 在对话框中,类型名称输入LogicNodeT .3. 选择TierNodeT 为父类型.4. 单击[Finish].5. 按照修改外观的步骤,修改LogicNodeT的外观:填充颜色为浅绿色,边框颜色为黑色,大小为2,其他默认。

产生的图形如下图:添加新属性类型1. 选择Property Types2. 选择New按钮3. 在对话框中,类型名称为TierPropT4. 类型选择enum5. 值为:client, logic, data6. 单击[OK].添加属性1. 激活属性视图页2. 双击TierNodeT3. 选择Properties tab4. 右击空白位置,或者单击图标,选择新建属性5. 属性名为tier.6. 类型为TierPropT(找不到,则直接输入TieredFam.TierPropT)7.单击[OK].添加规则1. 单击Family editor中的TieredFam (Press to select).2. 选择属性视图中的规则页3. 单击生成新规则4. 规则名为hostCheck,选择invariant单选项5. 在规则框中输入(直接粘贴过去)Forall t1 : TierNodeT in ponents |!t1.allowShareHost -> (Forall t2 : TierNodeT in ponents | t1 != t2 -> t1.host != t2.host)6. 单击[Parse Rule] 以确认无语法错误,有错误,要重新写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算机系统结构课内实验》
实验报告
班级:计算机01
姓名:陈世阳
学号:10055008
日期:2013.5.10
一、实验目的及要求
1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;
2. 加深对计算机流水线基本概念的理解;
3. 进一步了解DLX基本流水线各段的功能以及基本操作;
4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;
5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。

二、实验环境
WinDLX模拟器
三、实验内容
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.(1)用winDLX执行求最大公倍数程序gcm.s:
File->load code or data->分别选中gcm.s和input.s->select.
(2)首先直接运行整个程序(enable forwarding),execute->run(或按F
5)
例如,输入如下:
求得的结果为gcm =7,显然,这是正确的。

(3)再来看此时statistics栏和register栏的情况。

如下图:
从statistics 可以看出共执行了147个cycle,共有64个冲突(43.54%)。

其中有32个RAW stall,5个LD stall。

再来看Register,这里我们主要关注的是R1,R2和R14.R1,R2的内容是7,, R14的内容是1028,分析代码我们可以发现,这是采用辗转相减法来求最大公约数的。

代码中有两个循环体,一个是(R1)-(R2),一个是(R2)-(R1),循环的终止条件是R1=R2.求7和21的终止条件则是R1中的值和R2中的值是7,此时我们要求的结果就在R1或R2中。

并且我们将结果存入内存中,内存地址为0X00001028,这个地址存放在R14中。

做这个实验主要是为了熟悉WinDXL软件的使用方法和分析statistics结果及Regis ter的内容。

2.用WinDLX运行程序structure_d.s(enable forwarding)
找出引起结构相关的指令和部件:
(1)代码中存在最多的是IF和ID部件引起的结构冲突,因为上一条指令一直占据着IF或ID而导致下一条指令迟迟无法进入流水线和进入ID,我认为这是一种结构相关引起的冲突。

如下图:
又如以下两条指令:
不仅有RAW冲突,还有ID和fddEX部件上的结构冲突。

通过手数,发现一共存在9个cycle由于结构相关引起的stall。

一共执行了139cycle s,共占6.47%。

解决结构相关最直接的方法就是部件冗余技术。

另一种方法是进行指令调度。

指令调度的方法在下一个小实验中会用到。

3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。

执行的结果如下:
由于数据相关引起的stall为104个cycles,总cycle数为202.共占51.48%。

采用定向技术后(勾选Enable Forwarding),
明显地发现,数据相关引起的stall减少了,只有30个,占23.44%。

导致total cycles 也减少为128.
性能提高为原来的202/128=1.578倍。

4.我自己编写了一个test.s的代码。

代码比较短,直接分析如下:
multf f10,f0,f2
subd f10,f4,f6 //这两条间存在WAW
multf f6,f8,f14
addd f10,f4,f6 //这两条间存在RAW
addi r1,r0,#32 //给r1初值32.用来作循环计数变量
Loop:
lf f0,0(r1) //把r1指向的内存单元的值送给f0
addd f4,f0,f2 //跟上一条存在RAW冲突
sd 0(r1),f4 //跟上一条存在RAW冲突
addi r1,r1,#-8 //r1自减每次减8
bnez r1,Loop //判断循环是否终止
trap 0
(1)首先在不使用定向技术,只有一个加法器,一个乘法器下,执行这一程序:
基本statistics如下:
可以看到共执行了74 cycles,26条指令,一共47个stalls,37个RAW stalls,4个W A W stalls,没有结构冲突,3个控制冲突(因为循环执行了4次,第一次为必执行)。

现在来看采用了定向技术后对性能的影响:
可以知道性能提高了1.37倍。

再来对代码进行循环展开和指令调度。

4次循环完全展开,并进行指令调度如下:
multf f10,f0,f2
subd f10,f4,f6
multf f6,f8,f14
addd f10,f4,f6
addi r1,r0,#32
Loop:
lf f0,0(r1)
lf f6,-8(r1)
lf f10,-16(r1)
lf f14,-24(r1)
addd f4,f0,f2
addd f8,f6,f2
addd f12,f10,f2
addd f16,f14,f2
sd 0(r1),f4
sd -8(r1),f8
addi r1,r1,#-32
sd 16(r1),f12
bnez r1,Loop
sd 8(r1),f16
trap 0
在不采用定向技术下,执行的结果如下:
可以看出,优化后,数据冲突引起的停顿已经大幅度减少,但是引入了新的冲突-结构冲突。

这是循环展开和指令调度的带价:将几条性质相同的指令连续执行,必然要求有几套重复的部件。

性能提高了74/43=1.72倍。

采用了定向技术后:
性能提高了74/37=2倍。

五、总结
1.通过本次试验,我对于DLX仿真平台和DLX指令有了一定程度的认识,基本上能够读懂DLX编写的程序。

2,进一步掌握和巩固了流水线的基本知识,加深了对数据相关和结构相关的理解。

同时通过观察实验数据,对流水线的冲突和解决冲突的方法有了更深入的认识,当出现冲突时,对指令进行调度是一个比较好的解决方法。

3.加强了在编程时,数据间相关性的意识,不自觉就想尽量让写的程序中相关性少点。

七、附录(源程序清单)
Test.s
multf f10,f0,f2
subd f10,f4,f6
multf f6,f8,f14
addd f10,f4,f6
addi r1,r0,#32
Loop:
lf f0,0(r1)
addd f4,f0,f2
sd 0(r1),f4
addi r1,r1,#-8
bnez r1,Loop
trap 0
************************************************ Test2.s
multf f10,f0,f2
subd f10,f4,f6
multf f6,f8,f14
addd f10,f4,f6
addi r1,r0,#32
Loop:
lf f0,0(r1)
lf f6,-8(r1)
lf f10,-16(r1)
lf f14,-24(r1)
addd f4,f0,f2
addd f8,f6,f2
addd f12,f10,f2
addd f16,f14,f2
sd 0(r1),f4
sd -8(r1),f8
addi r1,r1,#-32
sd 16(r1),f12
bnez r1,Loop
sd 8(r1),f16
trap 0。

相关文档
最新文档