实验一熟悉WinDLX的使用
- 格式:doc
- 大小:287.37 KB
- 文档页数:24
汕头大学实验报告学院: 工学院系: 计算机系专业: 计算机科学与技术年级:13 成绩:姓名: 林子伦学号: 2013101030 完成实验时间: 2015.6.4一.实验名称:winDLX实验报告二.实验目的:加深对流水线技术的理解三.实验内容:●阅读老师提供的中文资料,结合课本及网络资源进一步了解流水线技术。
●按照实验指导书给出的步骤全面、逐步完成实验内容。
四.实验时间、地点,设备:实验时间:2015.6.4实验地点:软件系统实验室实验设备:win7 32位虚拟机五.实验记录(占本次实验成绩70%):(记录重要的截图,给出必要的文字说明)1.初始化程序:Reset All2.载入程序:Load Code or Data…双击fact.s、input.s,把他们加载进去,然后点loadCode界面会出现你的代码段,register里面则是寄存器的数据,可以看到一开始的PC 会自动加载到程序的开始位置0x000001003.按F7单步执行代码(F5为持续执行,F8为多步执行,F4位指定执行)可以看到代码段(code)执行第一条指令标记为黄色,此指令才时空图中(clock cycle diagram)看到第一条指令被编译(IF),机器模块(pipeline)IF操作的是指令add r1,r0,0x1000寄存器(register)中PC自动累加到了0x00000104,4.继续按F7运行程序通过看代码发现第二条指令为jal跳转指令第二条指令为橙色,进入了取址(ID)阶段,而IF段顺序执行了读取第三条指令,进行编译。
再按一次F7,这是执行了第二条指令(跳转指令),程序来到了0x00000144的地方,IF 段重新读取此指令,而原来进行到一半的第三条指令则被封存起来,aborted表示暂停的意思。
5.按F5运行,中间会出现一个窗口要输入数据这里我们输入20.6.点击Display DLX-I/O…观看结果可以看到结果是2.4329+18而看register窗口可以发现这个数字是被保存在了D2中。
对于实验一Windows 基本操作的报告说明:蓝色字体是语言描述的步骤。
实验内容(1) 启动Windows ,打开“我的电脑”窗口,熟悉Windows 窗口组成,然后对窗口作下列操作:1) 移动窗口。
双击窗口上方标题栏,并在最后一次点击后保持点击状态,拖动。
2) 改变窗口的大小、使滚动条出现,然后滚动窗口的内容。
将鼠标指针置于窗口边缘,出现双向箭头时,单击鼠标左键,不放手,左右或是上下拖动,可以改变窗口大小。
将鼠标指针至于右侧时,滚动条出现,单击鼠标左键,点在滑动块上,按住不放,并上下拖动,便可以滚动窗口的内容。
3) 大化、小化、复原和关闭窗口。
窗口的右上方有三个并排的按钮,点击左侧的是窗口缩到最小,点击中间的可使窗口在最大化与适中大小之间切换,点击右边的会使窗口关闭。
(2) 打开“控制面板”窗口,再打开“控制面板”中的“字体”窗口,然后进行下列操作:1) 通过任务栏和快捷键切换当前的窗口。
Alt+tab快捷切换窗口。
可以通过选择点击任务栏中的不同的窗口,实现切换。
2) 以不同方式排列已打开的窗口(层叠、横向平铺、纵向平铺)。
右键点击任务栏,选择“层叠” “横向平铺”“纵向平铺”实现以不同方式打开窗口。
3) 在“我的电脑”窗口中,单击“查看”菜单下的“大图标”、“小图标”、“列表”“详细资料”命令项,观察窗口中的各项的变化。
用工具栏上的“查看”命令按钮重复做一遍。
图标的大小发生变化,文件的部分属性信息出现。
(3)通过二种方法查看当前的日期和时间,如果日期和时间不正确,请进行修改。
点击任务栏右侧的时间可以查看时间,也可以在弹出的对话框中修改时间。
一种点开查看,另一种直接看。
(4)分别通过以下方法启动“画图”程序1) 通过“开始”菜单→“程序”→“附件”,启动“画图”程序。
点开开始菜单,点击程序,点击附件,点击画图。
2) 通过“开始”菜单的“搜索”命令,启动“画图”程序。
点开开始菜单,点击搜索,在对话框中输入画图并点击搜索,找到后,点击画图。
实验一Windows基本操作实验时间:成绩:学生姓名:学号:实验1.1 Windows XP的基本操作一一、实验目的了解桌面的组成,掌握桌面属性的设置方法;掌握快捷方式的创建方法;掌握Windows XP的窗口、菜单和对话框的基本操作。
了解应用程序的运行(启动)方法;了解剪贴板的使用;掌握“我的电脑”窗口、“资源管理器”窗口打开的多种方法,了解Windows文件的组织结构。
二、实验内容与过程(一)练习使用鼠标和键盘1、鼠标的常用操作有:__指向______、__单击______、__右击______、___双击_____和_拖曳_______;其主要作用分别为:__________、__________、__________、__________、和__________。
2、写出键盘操作常用的快捷键:________、________、________、________。
(二)桌面组成和桌面属性设置1、桌面由__________、__________、__________和__________组成。
2、找到计算器程序(C:\windows\system32\ calc.exe),至少用三种方法为其创建桌面快捷方式。
方法1:方法2:方法3:3、打开“开始”菜单的方法:、或。
4、在任务栏上设置快速启动区步骤描述:。
5、在桌面“显示属性”对话框中设置:“主题”为Windows XP;“桌面”背景为您选定的图片(点击浏览按钮设置);“屏幕保护程序”设为三维飞行物、等待1分钟;“屏幕分辨率”设为1024×768,“屏幕刷新频率”设为85赫兹。
(三)窗口的组成与基本操作Windows中的窗口主要由________、________、________、________和_______等组成。
1、窗口间的切换分别用鼠标左键双击桌面图标“我的文档”、“我的电脑”、“网上邻居”、“Internet Explorer”,打开对应的应用程序窗口,用三种方法作窗口之间的切换操作。
实验一熟悉WinDLX的使用一、实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
二、实验内容:1. 用WinDLX模拟器执行求阶乘程序fact.s。
这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
2. 用WinDLX模拟器执行程序gcm.s。
该程序从标准输入读入两个整数,求他们的最大公约数(greatest common measure),然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
3. 用WinDLX模拟器执行求素数程序prim.s。
这个程序计算若干个整数的素数。
4. 通过上述使用WinDLX,总结WinDLX的特点。
三、实验过程1)启动WinDLX2)默认配置3)装载测试程序选择File/Load Code or Data,点击fact.s点击select 按钮点击input.s点击select按钮点击load按钮注:装在文件顺序不能乱。
fact.s计算一个整型值的阶乘,它的运行还需要一个辅助文件input.s,input.s中包含一个子程序,它读标准输入(键盘)并将值存入DLX处理器的通用寄存器R1中。
4)模拟运行程序A、Pipeline子窗口(流水线窗口)DLX 执行指令的流水线是一个5 段流水线,包括取指段(IF)、译码段(ID)、执行段(EX)、访存段(MEM)和写回段(WB)。
在代表每个流水段的方框中,交叉线表示该方框目前没有执行指令。
DLX 流水线的执行段分为4 个单元,它们分别是:intEX 单元(整数操作),faddEX 单元(浮点加减),fmulEX(浮点乘法),fdivEX(浮点除法),intEX 的延迟为1(IF 段,ID 段,MEM 段和WB 段的延迟均为1),faddEX、fmulEX和fdivEX 的延迟分别为2、5 和19。
计算机科学与技术学院《计算机体系结构》课程实验学号:班级:专业:学生姓名:年月日实验报告seqi r5,r3,10下面两条指令中,因为加法指令要读r1,而执行到此操作时乘法指令仍对r进行操作,因此出现了数据相关multu r1,r1,r4add r1,r1,r3图1 数据相关(2)控制相关:以图2中出现的控制相关为例下面两条指令中,因为第一条指令出现跳转指令时,存储指令的取指将作废,所以出现控制相关jal InputUnsignedsw PrintfValue(r3),r1图2 控制相关(3)结构相关:以图3中出现的结构相关为例下面两条指令中,因为当第二条乘法指令需要使用乘法器时,第一条乘法指令仍在使用乘法器,所以出现结构相关mult r2,r0,r0mult r3,r0,r0图3 结构相关3、主程序Variance.s的代码.data ;.data标识下面的数据放在数据区中;输入语句,指示你输入要求多少个数的方差Prompt: .asciiz "Please input An integer which is array's size value>0: ";输入语句,指示你输入要求方差的数PromptLast: .asciiz "Please input the integer :";输出格式,表示求出的方差按什么格式输出PrintfFormat: .asciiz "the Variance is : %g ";表示下面采用字对齐.align 2;求出方差存入r11中div r11,r2,r8output:;将方差存入Variance所指存储空间中sw Variance,r11;转换为双精度并输出lf f2,Variancecvti2d f0,f2sd Printf,f0addi r14,r0,PrintfPartrap 5 ;调用中断,格式化输出转化为标准输出over:trap 0 ;调用系统中断,0表示程序执行结束4、样例输出,以图4中数据为例输入需要求方差数的个数为4,4个数分别为3,5,6,2,输出结果为2图4 输出界面5、尽量减少和消除程序中出现的相关。
实验一 Windows XP的基本操作一、实验目的要求:1.熟悉Windows XP的图形界面。
2.掌握窗口、菜单、工具栏等的基本操作。
3.熟练掌握资源管理器的基本操作。
4.熟悉获取Windows XP帮助的方法。
5.掌握文件夹的创建。
6.熟练掌握文件(夹)的重命名。
7.熟练掌握文件(夹)的移动、复制、删除及属性的设置。
8.掌握文件(夹)的查找方法。
9.了解快捷方式的创建与使用。
二、实验内容:(一)基本操作1.开机,启动Windows XP,观察其桌面。
2.窗口的操作:(1)打开窗口:【操作步骤】①双击“我的电脑”图标,打开“我的电脑”窗口。
②双击“回收站”图标,打开“回收站”窗口。
(2)切换窗口:【操作步骤】①单击“我的电脑”任务按钮,将“我的电脑”窗口切换为当前活动窗口。
②单击“回收站”任务按钮,将“回收站”窗口切换为当前活动窗口。
(3)将窗口最大化、最小化与还原:①最小化“回收站”窗口。
②最大化“我的电脑”窗口。
③将“我的电脑”窗口还原为原来大小。
(4)移动窗口:将“我的电脑”窗口移至屏幕中间的位置。
(5)改变窗口大小:A.将“我的电脑”窗口放大。
B.将“我的电脑”窗口再缩小。
(6)将已经最小化的“回收站”窗口重新打开。
(7)使“回收站”窗口和“我的电脑”窗口纵向平铺于桌面。
(8)关闭所有打开的窗口:3.菜单及工具栏的操作:【操作步骤】①打开“我的文档”窗口。
用鼠标右击窗格空白区域,出现弹出菜单。
②把鼠标指向“新建”,单击其子菜单中的“BMP图像”,则出现了一个文字为“新建BMP图像”的新图标。
③单击“编辑”菜单,执行“全部选定”命令。
此时,窗口中内容均被选定而成为逆显示。
④单击其中的“新建BMP图像”,再单击工具栏中“属性”按钮,则出现其属性对话框。
⑤关闭其属性对话框。
再进行菜单中及工具栏中其它命令的操作练习。
4.资源管理器的基本操作:启动资源管理器,练习以下内容(1)展开与折叠文件夹:练习左窗格中各文件夹的展开与折叠操作。
windows操作实验报告《Windows操作实验报告》在当今信息化时代,计算机已经成为了我们生活中不可或缺的一部分。
而作为最常用的操作系统之一,Windows系统更是被广泛应用于个人电脑、商业办公等各个领域。
为了更好地了解和掌握Windows操作系统的使用方法,我们进行了一系列的实验操作,并在此报告中进行总结和分析。
实验一:Windows系统的基本操作在本实验中,我们首先学习了Windows系统的基本操作,包括桌面的布局、文件和文件夹的管理、快捷键的使用等。
通过实际操作,我们掌握了Windows系统的基本界面,了解了如何打开和关闭程序、创建和管理文件夹、以及如何使用快捷键提高工作效率。
实验二:Windows系统的网络设置在本实验中,我们学习了Windows系统的网络设置,包括如何连接无线网络、设置网络共享、以及如何配置网络防火墙等。
通过实际操作,我们掌握了Windows系统在网络环境下的使用方法,了解了如何进行网络连接和共享文件,以及如何保护网络安全。
实验三:Windows系统的应用程序在本实验中,我们学习了Windows系统的常用应用程序,包括办公软件、娱乐软件、系统工具等。
通过实际操作,我们掌握了Windows系统中常用应用程序的使用方法,了解了如何使用Word进行文字处理、如何使用Excel进行数据分析、以及如何使用媒体播放器进行音乐和视频播放等。
通过以上实验操作,我们对Windows操作系统有了更深入的了解和掌握,不仅提高了我们的计算机技能,也为我们日常工作和生活带来了便利。
希望通过本报告的总结和分析,能够帮助更多的人更好地掌握Windows操作系统的使用方法,提高工作效率和生活质量。
实验一 Windows基本操作【实验目的与要求】1.掌握并熟悉Windows XP界面,如何进入Windows XP;2.掌握并熟悉Windows XP的窗口操作以及存储体系;3.掌握并熟悉Windows XP的常用操作;4.熟练掌握控制面板、任务管理器和系统工具的使用。
【实验内容】1.如何进入Windows XP;2.Windows XP的窗口操作、存储体系简介;3.Windows XP的常用操作;4.控制面板、任务管理器和系统工具的使用。
【实验课时】4学时【实验步骤】第一、进入Windows XP一:登陆Windows XP开机后等待计算机自行启动到登陆界面,如果计算机系统本身没有设密码的用户,系统将自动以该用户身份进入Windows XP系统;如果系统设置了一个以上的用户并且有密码,用鼠标单击相应的用户图标,然后从键盘上输入相应的登陆密码并按回车键就可以进入Windows XP系统。
二:Windows XP桌面Windows XP的桌面由桌面图标,任务栏和语言栏三部分组成。
(1)桌面图标①桌面图标就象图书馆的书签一样,每一个图标都代表着一个常用的程序,文件,文件夹。
如“我的电脑”,“我的文档”,“网上邻居”,“回收站”,文件,文件夹和一些应用程序的快捷启动图标。
如果是安装系统后第一次登陆系统的话桌面的右下角只有一个回收站的图标。
②桌面的操作:在桌面空白处右单击鼠标就会出现如图:③移动鼠标到菜单上,相应的命令颜色就会发生变化。
命令后面有黑色小三角代表该命令后面还有子命令。
灰色命令代表当前不可用。
排列图标:当鼠标移动到该命令上边的时候,它的子命令就会自动展开,单击不同的命令选项就会使桌面上的图标按不同的方式进行排列。
刷新:刷新的本质含义是将电容器充电的一个过程,在这里我们可以将这个过程理解为让系统处于一个“清醒”的状态。
撤消删除:指取消刚刚执行删除操作。
图形属性:主要用来设置系统的图形模式,与主板相关。
‘实验一Windows操作系统实验报告姓名(学号):_____________________ 年级(专业):_____ ________成绩:______实验时间:_______________________ ___实验地点:_________________________ _ 实验1-1 鼠标与键盘一、实验目的:掌握鼠标与键盘的正确操作。
二、实验内容:1.使用鼠标执行下列操作,观察并记录结果:1)打开回收站;2)设置回收站为“不显示删除确认对话框”;3)将回收站放置在桌面右上角。
2.只能使用键盘执行下列操作,观察并记录结果:1)打开开始菜单;2)打开我的电脑。
三、实验步骤:(学生自己填写)1、将鼠标放在“回收站”图标上,双击鼠标左键2、将鼠标放在“回收站”图标上单击右键——属性——设置为不显示删除确认对话框——确定3、将鼠标放在桌面上——右键——排列图标——将自动排列的勾去掉——将“回收站”的图标移到桌面的右上角4、按下键盘上的开始菜单键5、将箭头指向“我的电脑”——敲回车键实验1-2 桌面、任务栏和开始菜单一、实验目的:掌握桌面、任务栏和开始菜单的设置。
二、实验内容:1.设置开始菜单为“『开始』菜单”样式,在开始菜单中显示项目“控制面板”、“搜索”、“运行命令”;2.设置任务栏为“自动隐藏任务栏”样式;3.设置默认输入语言为“智能ABC”;4.首先搜索程序“notepad.exe”,记录其位置,然后在桌面上为其创建一个快捷方式,重命名为“我的记事本”;5.首先删除我的电脑,然后添加我的电脑。
三、实验步骤:(学生自己填写)1、将鼠标放在“开始”上——右键——选中“开始菜单(s)”2、将鼠标放在“开始”上,右键——属性——开始菜单——自定义——高级——在“控制面板”“搜索”“运行命令”上打勾3、右键“开始”——任务栏——在“自动隐藏任务栏”上打勾4、右键语言栏——设置——在“默认输入语言”中选择智能ABC5、右键“开始”——搜索——输入文件名和搜索范围——在该文件上右击鼠标——创建快捷方式——在桌面上为其改名为“我的记事本”6、将鼠标放在“我的电脑”图标上,右键——删除——是;在桌面上右键——属性——桌面——自定义桌面——在“我的电脑”上打勾——确定——确定实验1-3 程序与窗口一、实验目的:掌握程序与窗口(菜单、对话框等)的操作。
实验一WINDLX模拟器安装及使用实验类别:综合实验实验目的:建立实验环境,了解WIDLX模拟器的结构及使用实验设备环境:WinDLX要求的硬件平台是IBM PC兼容机,WinDLX是一个Windows应用程序,运行于Windows 3.0以上的操作系统。
实验原理:WinDLX软件包中带有说明文件,供安装程序时候使用。
实验内容和要求:阅读模拟器Help文档和相关资料,利用Fact.s及Input.s代码熟悉模拟器的配置、各项工具使用、寄存器设置及指令系统。
实验步骤:(一)WINDLX模拟器安装1. WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX:WinDLX创建目录,例如E:\WINDLX解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含windlx.exe, windlx.hlp)到这个WinDLX 目录。
2. 启动和配置WinDLX:双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.为了初始化模拟器, 点击File 菜单中的Reset all 菜单项,弹出一个“Reset DLX”对话框。
然后点击窗口中的“确认”按钮即可。
(二)熟悉模拟器的配置WINDLX可以改变流水线的结构和时间要求、存储器的大小和其他几个控制模拟的参数。
点击Configuration打开菜单然后选择Floating Point Stages菜单项,选择标准配置如下:然后点击OK 或者Cancel返回主窗口。
选择Memory Size,可以设置模拟处理器的存储器大小,应设置0x8000,具体配置如下:然后点击OK返回主窗口。
在Configuration 菜单中的其他三个配置也可以设置(Symbolic addresses,Absolute Cycle Count 和Enable Forwarding),点击相应的菜单项后,在其旁边会显示小钩,表示选中。
实验一熟悉WInDLX的使用实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
实验内容:一.用WinDLX模拟器执行求阶乘程序facts 。
执行步骤详见“WinDLX 教程”。
这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
二.输入数据“3”采用单步执行方法,完成程序并通过上述使用WinDLX,总结WinDLX的特点。
三.意观察变量说明语句所建立的数据区,理解WinDLX指令系统。
实验步骤:一.运行WinDLX仿真器。
二.在开始模拟之前,fact.s程序装入一个程序到主存。
在装入fact.s程序的同时需要同时装入input.s程序,现在可以开始模拟工作了。
三.找出实验中的不明白的地方,自己解决并写出原因。
四.输入数据“3”采用单步执行方法,完成程序并通过上述使用WinDLX,总结WinDLX的特点。
实验结果:打开Pipeline窗口,点击 F7用单步执行,做完以后,用多步执行命令,实验结果如下所示:用F7单步跟踪直到出现如下所示:输入“3”然后“确定”。
结果如下所示:在本次实验遇到两个问题:问题一在上述窗口中,你将看到模拟正在第四时钟周期,第一条命令正在MEM 段,第二条命令在intEX段,第四条命令在IF段。
而第三条命令指示为"aborted"。
其原因是:第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但需执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。
问题二在下图中,你将看到模拟正处于时钟周期14。
trap 0x5行如下所示:原因是:无论何时遇到一条trap指令时,DLX 处理器中的流水线将被清空实验体会:通过本次实验我掌握了WinDLX模拟器的操作和使用,了解DLX指令集结构及其特点,更加深入的了解计算机系统流水线的工作过程。
实验报告学院:计算机学院课程名称:计算机系统结构实验名称:WINDLX模拟器实验班级:姓名:学号:实验一 WINDLX模拟器安装及使用略实验二指令流水线相关性分析一.实验类别验证实验二.实验目的通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。
三.实验环境Windows XP操作系统WinDLX模拟器四.实验原理指令流水线中主要有结构相关、数据相关、控制相关。
相关影响流水线性能。
(1)数据相关定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。
三类数据相关:写读(WR)相关读写(RW)相关写写(WW)相关解决方法技术:1. 使某些流水线指令延迟、停顿一或多个周期。
2. 双端口存储器:如果指令和数据放在同一个存储器。
3. 设置两个存储器:一个数据存储,一个为指令存储器。
4. 软件优化编译:通过指令重新排序,消除数据相关。
5. 定向技术:又称旁路技术或专用通路技术,是使后续指令提前得到前指令的运算结果(适合ALU类指令)(2)结构相关定义:如果某指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关解决方法技术:1. 延迟技术:使某些指令延迟、停顿一或多个时钟周期2. 双端口存储器:允许同时读两个数据或指令3. 设置双存储器(哈弗结构):一个数据存储,一个指令存储。
4软件优化编译:通过指令重新排序消除结构相关。
(3)控制相关定义:控制相关是指因程序执行转移类指令而引起的冲突相关。
包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。
解决方法技术:1、静态分支技术静态转移预测技术(猜测法) ;延迟转移;提前形成条件码,生成转移目标地址;改进循环程序;2、动态分支预测技术转移历史表BHT;转移目标缓冲栈(BTB);转移目标指令缓冲栈BTIB;五.实验步骤(1)观察程序中出现的数据/控制/结构相关。
实验一流水线中的相关⏹目的:1.熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2.加深对计算机流水线基本概念的理解;3.加深对数据相关、资源相关的理解,了解这两类相关对CPU性能的影响;4.了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
⏹平台:WinDLX模拟器⏹内容和步骤1.用WinDLX模拟器执行下列三个程序(任选一个):⏹求阶乘程序fact.s⏹求最大公倍数程序gcm.s⏹求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
2. 用WinDLX运行程序structure_d.s,通过模拟:⏹找出存在资源相关的指令对以及导致资源相关的部件;⏹记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;⏹论述资源相关对CPU性能的影响,讨论解决资源相关的方法。
3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
4.在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。
重复上述3中的工作,并计算采用定向技术后性能提高的倍数。
⏹实验报告要求:⏹实验目的。
⏹实验原理。
⏹针对上面的实验内容,记录实验过程,给出分析结果,相关理论依据。
⏹给出实验总结:根据实验,总结采用流水线技术会遇到的问题和为解决这些问题所采用的各种技术的作用。
同时简单谈谈自己对流水线技术的认识。
预备知识1.WinDLX可参考WinDLX教程2.熟悉WinDLX指令集和WinDLX源代码的编写3.参考RISC结构了解DLX指令集和基本流水线4.复习并掌握数据相关、资源相关以及定向技术。
HUNAN UNIVERSITY实验一熟悉WinDLX的使用学生班级:计科2班学生姓名:***一.实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
二.实验内容:(一)WinDLX的安装:1. WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX:⑴WinDLX创建目录,例如D:\WINDLX⑵解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含 windlx.exe, windlx.hlp)到这个WinDLX 目录。
2. 启动和配置WinDLX:双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.为了初始化模拟器, 点击File菜单中的Reset all菜单项,弹出一个“ResetDLX”对话框。
然后点击窗口中的“确认”按钮即可。
(二)程序介绍1.求阶乘程序fact.s这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
2.程序gcm.sgcm.s程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
3. 求素数程序prim.sprim.s程序计算若干个整数的素数。
三、实验程序1.求阶乘程序Fact.s:;------------------------------------------------------------------------; Program begin at symbol main; requires module INPUT; read a number from stdin and calculate the factorial (type: double); the result is written to stdout;--------------------------------------------------------------------------.dataPrompt: .asciiz "An integer value >1 : "PrintfFormat: .asciiz "Factorial = %g\n\n".align 2PrintfPar: .word PrintfFormatPrintfValue: .space 8.text.global mainmain:;*** Read value from stdin into R1addi r1,r0,Promptjal InputUnsigned;*** init valuesmovi2fp f10,r1 ;R1 -> D0 D0..Count registercvti2d f0,f10addi r2,r0,1 ;1 -> D2 D2..resultmovi2fp f11,r2cvti2d f2,f11movd f4,f2 ;1-> D4 D4..Constant 1;*** Break loop if D0 = 1Loop: led f0,f4 ;D0<=1 ?bfpt Finish;*** Multiplication and next loopmultd f2,f2,f0subd f0,f0,f4j LoopFinish: ;*** write result to stdoutsd PrintfValue,f2addi r14,r0,PrintfPartrap 5;*** endtrap 02.输入子程序Input.s;-------------------------------------------------------------------;Subprogram call by symbol "InputUnsigned";expect the address of a zero-terminated prompt string in R1;returns the read value in R1;changes the contents of registers R1,R13,R14;-----------------------------------------------------------------------------.data;*** Data for Read-TrapReadBuffer: .space 80ReadPar: .word 0,ReadBuffer,80;*** Data for Printf-TrapPrintfPar: .space 4SaveR2: .space 4SaveR3: .space 4SaveR4: .space 4SaveR5: .space 4.text.global InputUnsignedInputUnsigned:;*** save register contentssw SaveR2,r2sw SaveR3,r3sw SaveR4,r4sw SaveR5,r5;*** Promptsw PrintfPar,r1addi r14,r0,PrintfPartrap 5;*** call Trap-3 to read lineaddi r14,r0,ReadPartrap 3;*** determine valueaddi r2,r0,ReadBufferaddi r1,r0,0addi r4,r0,10 ;Decimal systemLoop: ;*** reads digits to end of linelbu r3,0(r2)seqi r5,r3,10 ;LF -> Exitbnez r5,Finishsubi r3,r3,48 ;??multu r1,r1,r4 ;Shift decimaladd r1,r1,r3addi r2,r2,1 ;increment pointerj LoopFinish: ;*** restore old register contentslw r2,SaveR2lw r3,SaveR3lw r4,SaveR4lw r5,SaveR5jr r31 ; Retur3.求最大公约数程序:gcm.s;------------------------------------------------------------------------ ; Program begins at symbol main; requires module INPUT; Read two positive integer numbers from stdin, calculate the gcm; and write the result to stdout;------------------------------------------------------------------------.data;*** Prompts for inputPrompt1: .asciiz "First Number:"Prompt2: .asciiz "Second Number: ";*** Data for printf-TrapPrintfFormat: .asciiz "gcM=%d\n\n".align 2PrintfPar: .word PrintfFormatPrintfValue: .space 4.text.global mainmain:;*** Read two positive integer numbers into R1 and R2 addi r1,r0,Prompt1jal InputUnsigned ;read uns.-integer into R1add r2,r1,r0 ;R2 <- R1addi r1,r0,Prompt2jal InputUnsigned ;read uns.-integer into R1Loop: ;*** Compare R1 and R2seq r3,r1,r2 ;R1 == R2 ?bnez r3,Resultsgt r3,r1,r2 ;R1 > R2 ?bnez r3,r1Greaterr2Greater: ;*** subtract r1 from r2sub r2,r2,r1j Loopr1Greater: ;*** subtract r2 from r1sub r1,r1,r2j LoopResult: ;*** Write the result (R1)sw PrintfValue,r1addi r14,r0,PrintfPartrap 5;*** endtrap 04.求素数程序prim.s:;------------------------------------------------------------------- ; Program begins at symbol main; generates a table with the first 'Count' prime numbers from 'Table' ;-------------------------------------------------------------------.data;*** size of table.global CountCount: .word 10.global TableTable: .space Count*4.text.global mainmain:;*** Initializationaddi r1,r0,0 ;Index in Tableaddi r2,r0,2 ;Current value;*** Determine, if R2 can be divided by a value in tableNextValue: addi r3,r0,0 ;Helpindex in TableLoop: seq r4,r1,r3 ;End of Table?bnez r4,IsPrim ;R2 is a prime numberlw r5,Table(R3)divu r6,r2,r5multu r7,r6,r5subu r8,r2,r7beqz r8,IsNoPrimaddi r3,r3,4j LoopIsPrim: ;*** Write value into Table and increment indexsw Table(r1),r2addi r1,r1,4;*** 'Count' reached?lw r9,Countsrli r10,r1,2sge r11,r10,r9bnez r11,FinishIsNoPrim: ;*** Check next valueaddi r2,r2,1 ;increment R2j NextValueFinish: ;*** endtrap 0四.窗口介绍第一次打开WINDLX模拟器,我们可以看到如下六个小窗口。
课程设计报告书课程名称:计算机系统结构题目:WinDLX模拟器实验学生姓名:xxx专业:计算机科学与技术(数字媒体)班别:x学号:x指导老师:x日期:2011 年 5 月 2 日一、实验目的:熟悉WinDLX的的基本概念和使用,了解各种不同指令在流水线的实际流动情况,对流水线做性能分析,加深对流水线及RISC处理器的理解二、实验环境:WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。
CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。
模拟器还提供了对流水线操作的统计功能。
该模拟器对理解流水线和RISC处理器的特点很有帮助。
WinDLX要求的硬件平台是IBM PC兼容机,WinDLX是一个Windows应用程序,运行于Windows 3.0以上的操作系统。
三、实验步骤、结果分析:使用WinDLX模拟器,对Fact.s做如下分析:开始模拟之前的准备工作:(1) 通过双击WinDLX 图标启动WinDLX,将出现一个带有六个图标的主窗口:(2)进行初始化模拟器, 点击File菜单中的Reset all菜单项,弹出一个“Reset DLX”对话框。
然后点击窗口中的“确认”按钮即可。
(3)在开始模拟之前,至少应装入一个程序到主存。
为此,选择File / Load Code or Data,窗口中会列出目录中所有汇编程序。
fact.s计算一个整型值的阶乘;input.s中包含一个子程序,它读标准输入(键盘)并将值存入DLX处理器的通用寄存器R1中。
按如下步骤操作,把fact.s和input.s加载入主存。
•点击fact.s•点击select按钮•点击input.s•点击select按钮•点击load按钮得到如下图:弹出一下询问对话框,点击“是”。
1. 观察增加浮点运算部件对性能的影响。
(1)点击Configuration打开菜单,然后点击Floating Point Stages菜单项,选择如下标准配置:(2)再点击Execute Run,输入15点,回车,在弹出的对话框出现消息"Trap #0 occurred" 表明最后一条指令trap 0已经执行,Trap指令中编号“0”没有定义,只是用来终止程序。
实验一windowsxp实验实验一Window某P操作系统实验【实验目的】⑴掌握Window某P的基本知识和基本操作;⑵掌握Window某P的文件操作;⑶掌握Window某P系统中对软、硬件的操作;⑷掌握Window某P系统权限设置;⑸熟悉Window某P“附件”中一些应用程序的使用方法,例如:记事本、画图、计算器等。
实验1.1Window某P基本操作【实验内容与要求】1.启动Window某P,在桌面上建立“记事本”程序的快捷方式图标;2.运行“记事本”程序,练习中文和英文的混合输入;3.进行“记事本”窗口的最大化、最小化、关闭等操作;4.在D盘创建“实验1”文件夹,并把记事本创建的文档以“某iti1.t某t”保存到“实验1”文件夹中;5.通过“开始菜单”打开“word”和“e某cel”两个应用程序,并在两个窗口之间进行切换;6.将已打开的窗口以横向平铺方式排列;7.查找c盘中所有扩展名为.bmp的文件;1.从开始菜单中启动“记事本”程序;单击【开始】按钮,选择“程序”“附件”,单击“记事本”。
2.将“记事本”窗口最大化;单击“记事本”窗口的最大化按钮,使窗口覆盖整个桌面。
3.使用中文输入法在记事本中输入一些汉字和英文(文字内容自定);单击“任务栏”的输入法按钮,在输入法菜单中选择一种输入法,例如“智能ABC”输入法,输入中文内容;按“Ctrl+空格”组合键切换到英文输入法,输入英文内容。
4.在D盘创建“实验1”文件夹;单击任务栏的“显示桌面”按钮,双击桌面“我的电脑”图标,双击D盘图标,在窗口的空白处,单击鼠标右键,在打开的快捷菜单中选择“新建”“文件夹”命令,创建新建文件夹,输入文件夹的名称“实验1”,按“Enter”键。
5.将由“记事本”创建的文件以“某iti1.t某t”为文件名保存在D:\\实验1文件夹中;单击“任务栏”的“无标题-记事本”按钮,是“记事本”窗口称为当前窗口;单击窗口的“文件”菜单,单击“保存”命令,显示出“另存为”对话框;在对话框的“保存为”文本框中选择D盘“实验1”文件夹,在“文件名”文本框中输入“某iti”,单击“保存”按钮,如图1.1所示。
实验一熟悉WinDLX的使用1.实验目的:通过本实验,熟悉WinDLX模拟器的操作和使用,了解DLX指令集结构及其特点。
2.实验内容:(1)用WinDLX模拟器执行求阶乘程序facts。
执行步骤详见“WinDLX教程”。
这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input. s中的输入子程序,这个子程序用于读入正整数。
(2)输入数据“3”采用单步执行方法,完成程序并通过上述使用 WinDLX,总结WinDLX的特点。
(3)注意观察变量说明语句所建立的数据区,理解WinDLX指令系统。
3.实验程序:求阶乘程序facts;***********WINDLX Ex.2: Factorial*************Program begin at symbol mainrequires module INPUTread a number from stdin and calculate the factorial (type: double) the result is written to stdout.dataPrompt: .asciiz "An integer value >1:”PrintfFormat: .asciiz "Factorial=%g\n\n".align 2PrintfPar: .word PrintfFormatPrintfValue: .space 8.text.global mainmam:;***Read value from stdin into R1addi r1,r0,Promptj al InputUnsigned;***init valuesmovi2fp f10,r1 ;R1一>DO DO二Count registercvti2d f0,f10addi r2,r0,1;1一>D2 D2..resultmovi2fp fl 1,r2cvti2d伦,fl lmovd f4,fZ;1一>D4 D4二Constant 1;***Break loop if DO=1Loop: led f0,f4 ;DO<=1?bfpt Finish;***Multiplication arid next loopmultd伦,fZ,fOsubd f0,f0,f4j LoopFinish:;***write result to stdoutsd PrintfValue,f2addi r14,r0,PrintfPartrap 5;***endtrap 0该程序中调用了input. s中的输入子程序;***********WINDLX Ex. l : Read a positive integer number************* ;Subprogram call by symbol "InputUnsigned";expect the address of a zero-terminated prompt string in R1;returns the read value in R1;changes the contents of registers R1,R13,R14.data;***Data for Read-TrapReadBuffer: .space 80ReadPar: .word O,ReadBuffer,80;***Data for Printf-TrapPrintfPar: .space 4SaveR2: .space 4SaveR3:.space 4SaveR4: .space 4SaveRS:.space 4.text.global InputUnsignedInputUnsigned:;***save register contentssw SaveR2,r2sw SaveR3,r3sw SaveR4,r4sw SaveR5,r5; * * * Promptsw PrintfPar,rladdi r14,r0,PrintfPartrap 5;***call Trap-3 to read lineaddi r14,r0,ReadPartrap 3;***determine valueaddi r2,r0,ReadBufferaddi r1,r0,0addi r4,r0,10 ;Decimal systemLoop:;***reads digits to end of linelbu r3,0(r2)seqi r5,r3,10 ;LF一>Exitbnez rS,Finishsubi r3,r3,48;??multu rl,rl,r4 ;Shift decimaladd rl,rl,r3addi r2,r2,1 ;increment pointerj LoopFinish:;***restore old register contents 1w r2,SaveR21w r3,SaveR31w r4,SaveR41w rS,SaveRSjr r31;Retur4.实验过程截图:j al的分支地址命名为“InputUnsigned"。
为找到此符号地址的实际值,点击主窗口中的Memory和Symbols,出现的子窗口中显示相应的符号和对应的实际值。
在“Sort":区域选定“name",使它们按名称排序,而不是按数值排序。
数字后的“G”代表全局符号,"L”代表局部符号。
" input”中的“InputUnsigned"是一个全局符号,它的实际值为0x144,用作地址。
点击OK按纽关闭窗口。
再一次点击F7,第一条命令(addi)到达流水线的最后一段。
如果想了解某条命令执行后处理器内部会发生什么?你只要对准Clock cycle diagram窗口中相应命令所在行,然后双击它,弹出一个新窗口。
窗口中会详细显示每一个流水段处理器内部的执行动作。
这个窗口“Information about ...”作为将来的Information窗口。
观察完后,点击OK按钮关闭窗口。
(双击Code窗口中的某一行或者Pipeline窗口中的某一段,同样可以Information窗口。
)指向Code窗口中包含命令trap 0x5的Ox0000015c行,此命令是写屏幕的系统调用。
单击命令行,然后点击主窗口菜单Code,单击Set Breakpoint(确保命令行仍被标记!),将弹出一个新的“Set Breakpoint”窗口。
通过此窗口,你可以选择命令运行到流水线的哪一阶段时,程序停止执行。
缺省为ID段。
点击OK关闭窗口。
现在你只要点击Execution / Run或按FS,模拟就继续运行。
会出现一个对话框提示你“ID-Stage: reached at Breakpoint #1",按’·确认’,按钮关闭。
点击Clock cycle diagram窗口中的trap 0x5行,你将看到模拟正处于时钟周期14 ,0trap 0x5行如下所示:为进一步模拟,点击Code窗口,用箭头键或鼠标向下滚动到地址为0x00000194的那一行(指令是1w r2, SaveR2(r0),点击此行,然后按Ins键,或点击Code / Set Breakpoint / OK,在这一行上设置一个断点。
采用同样的方法,在地址Ox000001a4(指令jar r31)处设置断点。
现在按FS继续运行。
这时,会弹出DLX-Standard-I/O窗口,在信息“An integer value > 1:”后鼠标闪烁,键入20然后按Enter,模拟继续运行到断点#2处。
单步执行:光标后不能输入数字输入数字20,并得出结果:实验二.用WinDLX模拟器执行程序求最大公约数1.实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,清楚WinDLX五段流水行具体程序时的流水情况,熟悉DLX指令集结构及其特点。
2.实验内容:(1)用WinDLX模拟器执行程序gcm. s。
该程序从标准输入读入两个整数,求他们的greatest common measure,然后斗结果写到标准输出。
该程序中调用了inputs中的输入子程序。
(2).给出两组数6, 3和6, 1,分别在main+OxB(add r2,r1,r0), gcm.loop(seg r;和result+Oxc(trap 0x0)设断点,采用单步和连续混合执行的方法完成程序,注意中间寄存器的变化情况,然后单击主菜单execute/display dlx-i/0,观察结果。
3.实验程序求最大公约数程序:gcm.s;***********WINDLX Ex. l : Greatest common measure************* Program begins at symbol main;requires module INPUTRead two positive integer numbers from stdin, calculate the gcmand write the result to stdout.data;***Prompts for inputPrompt 1:.asciizPrompt2: .asciiz“First Number:”“Second Number:;***Data for printf-TrapPrintfFormat: .asciiz“gcM=%d\n\n".align 2PrintfPar: .word PrintfFormatPrintfValue: .space 4.text.global mainmam:;***Read two positive integer numbers into R1 and R2addi r1,r0,Promptljal InputUnsigned ;read uns.-integer into R1add r2,r1,r0 ;R2<一Rladdi r1,r0,Prompt2jal InputUnsigned ;read uns.-integer into R1Loop:;***Compare R1 and R2seq r3,rl,r2 ;R1==R2?bnez r3,Resultsgt r3,rl,r2 ;R1>R2?bnez r3,rlGreaterr2Greater:;***subtract r 1 from r2sub r2,r2,r1j Loopr 1 Greater:;***subtract r2 from r 1sub rl,rl,r2j LoopResult:;***Write the result (R1)sw PrintfValue,rladdi r14,r0,PrintfPartrap 5;***endtrap 0该程序中调用了input. s中的输入子程序。