实验一 熟悉WinDLX的使用
windlx使用详细教程解读

汕头大学实验报告学院: 工学院系: 计算机系专业: 计算机科学与技术年级: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 基本操作

对于实验一Windows 基本操作的报告说明:蓝色字体是语言描述的步骤。
实验内容(1) 启动Windows ,打开“我的电脑”窗口,熟悉Windows 窗口组成,然后对窗口作下列操作:1) 移动窗口。
双击窗口上方标题栏,并在最后一次点击后保持点击状态,拖动。
2) 改变窗口的大小、使滚动条出现,然后滚动窗口的内容。
将鼠标指针置于窗口边缘,出现双向箭头时,单击鼠标左键,不放手,左右或是上下拖动,可以改变窗口大小。
将鼠标指针至于右侧时,滚动条出现,单击鼠标左键,点在滑动块上,按住不放,并上下拖动,便可以滚动窗口的内容。
3) 大化、小化、复原和关闭窗口。
窗口的右上方有三个并排的按钮,点击左侧的是窗口缩到最小,点击中间的可使窗口在最大化与适中大小之间切换,点击右边的会使窗口关闭。
(2) 打开“控制面板”窗口,再打开“控制面板”中的“字体”窗口,然后进行下列操作:1) 通过任务栏和快捷键切换当前的窗口。
Alt+tab快捷切换窗口。
可以通过选择点击任务栏中的不同的窗口,实现切换。
2) 以不同方式排列已打开的窗口(层叠、横向平铺、纵向平铺)。
右键点击任务栏,选择“层叠” “横向平铺”“纵向平铺”实现以不同方式打开窗口。
3) 在“我的电脑”窗口中,单击“查看”菜单下的“大图标”、“小图标”、“列表”“详细资料”命令项,观察窗口中的各项的变化。
用工具栏上的“查看”命令按钮重复做一遍。
图标的大小发生变化,文件的部分属性信息出现。
(3)通过二种方法查看当前的日期和时间,如果日期和时间不正确,请进行修改。
点击任务栏右侧的时间可以查看时间,也可以在弹出的对话框中修改时间。
一种点开查看,另一种直接看。
(4)分别通过以下方法启动“画图”程序1) 通过“开始”菜单→“程序”→“附件”,启动“画图”程序。
点开开始菜单,点击程序,点击附件,点击画图。
2) 通过“开始”菜单的“搜索”命令,启动“画图”程序。
点开开始菜单,点击搜索,在对话框中输入画图并点击搜索,找到后,点击画图。
实验一熟悉WinDLX的使用

实验一熟悉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"。
Windlx模拟器熟悉及相关

Windlx模拟器熟悉及相关Windlx模拟器与流⽔线相关(做实验前请先认真阅读WinDLX教程)1.⽤WinDLX模拟器执⾏下列三个程序(按照10位学号除3的余数选择):●求阶乘程序fact.s(余数为0)●求最⼤公约数程序gcm.s(余数为1)●求素数程序prim.s(余数为2)分别以步进、连续、设置断点的⽅式运⾏程序,观察程序在流⽔线中的执⾏情况,观察CPU中寄存器和存储器的内容。
注意:fact.s中调⽤了input.s中的输⼊⼦程序。
load程序时,要两个程序⼀起装⼊(都select后再点击load)。
gcm.s也是如此。
在报告中:1.1为程序逐⾏标注注释,阐述程序的作⽤和运⾏原理1.2跟踪CPU中寄存器和存储器内容,把造成其内容发⽣变化的指令、操作涵义、变化情况(以截图体现)体现出来。
2.⽤WinDLX运⾏程序structure_d.s,通过模拟:●找出存在结构相关的指令对以及导致结构相关的部件;●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执⾏周期数的百分⽐;●论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法。
在报告中:2.1分析并找出全部结构相关的指令、原因、流⽔线停顿截图、停顿时钟周期数(循环的只写⼀轮)2.2分析并找出导致结构相关的部件2.3记录由结构相关引起的暂停时钟周期数、总执⾏周期数、计算暂停时钟周期数占总执⾏周期数的百分⽐2.4论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法3在不采⽤定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),⽤WinDLX运⾏程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执⾏的总时钟周期数,计算暂停时钟周期数占总执⾏周期数的百分⽐。
在报告中:3.1分析并写出全部数据相关的指令、原因、流⽔线停顿截图、停顿时钟周期数(循环的只写⼀轮)3.2数据相关引起的暂停时钟周期总数、程序执⾏的总时钟周期数、计算暂停时钟周期数占总执⾏周期数的百分⽐4在采⽤定向技术的情况下(勾选Enable Forwarding),⽤WinDLX再次运⾏程序data_d.s。
实验1 Windows XP基本操作——课堂讲解要点

快捷方式
只是一个链接
区分文件与文件链接
《计算机导论》课程 实验1 Windows XP基本操作
Windows窗口 窗口
《计算机导论》课程 实验1 Windows XP基本操作
控制面板
系统软硬件设置中心
硬件: 硬件:驱动
内部配件 外设:打印机、移动存储设备、 外设:打印机、移动存储设备、……
应用程序将文件存为一定扩名的文件 系统依据文件扩展名确定默认打开文件的程序
文件属性: 只读” 文件属性:“只读”、“隐藏”、“系统”、“存档” 隐藏” 系统” 存档”
《计算机导论》课程 实验1 Windows XP基本操作
Windows基本操作 基本操作
系统启动之后…… 系统启动之后
桌面:背景、 桌面:背景、快捷 开始菜单:启动应用程序的起点 开始菜单: 任务栏: 任务栏:包括若干工具栏
软件
系统服务 应用软件
使用机房机器时
C盘被写保护,机器重启后C盘内容被恢复 盘被写保护,机器重启后 盘内容被恢复 盘被写保护
不要将自己的数据存储在C盘 使用 盘来存储 不要将自己的数据存储在 盘,使用D盘来存储
《计算机导论》课程 实验1 Windows XP基本操作
实验目的
掌握具体操作 积累使用经验
熟悉Windows操作系统文件组织方式 操作系统文件组织方式 熟悉 掌握Windows操作系统及应用程序的基本使用方法 掌握 操作系统及应用程序的基本使用方法
《计算机导论》课程 实验1 Windows XP基本操作
Windows操作系统文件组织方式 操作系统文件组织方式
树形结构
文件夹->文件夹 文件夹 文件夹->……->文件 文件夹 文件 间隔符: 间隔符:\
实验一 熟悉WinDLX的使用

实验一熟悉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。
windows操作实验报告

windows操作实验报告《Windows操作实验报告》在当今信息化时代,计算机已经成为了我们生活中不可或缺的一部分。
而作为最常用的操作系统之一,Windows系统更是被广泛应用于个人电脑、商业办公等各个领域。
为了更好地了解和掌握Windows操作系统的使用方法,我们进行了一系列的实验操作,并在此报告中进行总结和分析。
实验一:Windows系统的基本操作在本实验中,我们首先学习了Windows系统的基本操作,包括桌面的布局、文件和文件夹的管理、快捷键的使用等。
通过实际操作,我们掌握了Windows系统的基本界面,了解了如何打开和关闭程序、创建和管理文件夹、以及如何使用快捷键提高工作效率。
实验二:Windows系统的网络设置在本实验中,我们学习了Windows系统的网络设置,包括如何连接无线网络、设置网络共享、以及如何配置网络防火墙等。
通过实际操作,我们掌握了Windows系统在网络环境下的使用方法,了解了如何进行网络连接和共享文件,以及如何保护网络安全。
实验三:Windows系统的应用程序在本实验中,我们学习了Windows系统的常用应用程序,包括办公软件、娱乐软件、系统工具等。
通过实际操作,我们掌握了Windows系统中常用应用程序的使用方法,了解了如何使用Word进行文字处理、如何使用Excel进行数据分析、以及如何使用媒体播放器进行音乐和视频播放等。
通过以上实验操作,我们对Windows操作系统有了更深入的了解和掌握,不仅提高了我们的计算机技能,也为我们日常工作和生活带来了便利。
希望通过本报告的总结和分析,能够帮助更多的人更好地掌握Windows操作系统的使用方法,提高工作效率和生活质量。
实验1Windows基本操作

实验一 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基础知识实验报告

‘实验一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的使用

实验一熟悉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的使用

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模拟器实验 报告

实验报告学院: 计算机学院课程名称: 计算机系统结构实验名称: 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) 观察程序中出现的数据/控制/结构相关。
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”没有定义,只是用来终止程序。
计算机系统结构WinDlx实验报告

计算机组成与系统结构课程设计题目:流水线指令设计及页面置换算法在WinDLX软件中的应用学校:专业:学号:姓名:指导教师:***2011 年 6 月22 号目录1、实验一.....................21.1实验目的.......................21.2实验平台.......................21.3 预备知识.......................21.4实验内容和步骤....................21.5实验程序.......................41.6 实验报告要求.....................62、实验二.........................92.1 实验目的.......................92.2 实验平台.......................10 2.3 预备知识.......................10 2.4 实验内容和步骤....................10 2.5 实验程序.......................10 2.5.1 源程序.....................11 2.5.2 程序分析.....................11 2.5.3 结果截图.....................112.6 实验报告要求.....................123、实验三.........................13 3.1 实验目的.......................13 3.2 实验平台.......................13 3.3 预备知识.......................13 3.4 实验内容和步骤....................13 3.5 实验程序.......................13 3.5.1 源程序......................14 3.5.2 没有采用定向技术分析...............14 3.5.3 采用定向技术分析.................14 3.5.4 结果截图.....................153.6 实验报告要求.....................154、实验四.........................16 4.1 实验目的.......................16 4.2 实验平台......................16 4.3 预备知识.......................16 4.3.1 调页策略.....................16 4.3.2 页面置换算法...................17 4.4 实验内容和步骤....................18 4.5 实验程序.......................19 4.5.1 源程序......................19 4.5.2 程序流程图....................22 4.5.3 结果截图.....................234.6 实验报告要求.....................235、实验总结........................236、参考资料.......................23实验一 WinDLX模拟器与DLX指令的使用1.1实验目的1.1.1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;1.1.2. 加深对计算机流水线基本概念的理解;1.1.3. 了解DLX基本流水线各段的功能以及基本操作;1.2实验平台WinDLX模拟器1.3预备知识1.3.1. WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。
实验1.2Windows XP的基本操作

实验1.2 Windows XP 的基本操作【实验目的】1. 熟练掌握鼠标的基本操作。
2. 掌握Windows XP 的桌面、窗口、对话框及菜单的基本操作。
3. 能够利用Windows XP 提供的帮助功能获取帮助。
【实验内容】1. 鼠标的基本操作。
2. Windows XP 的桌面、窗口、对话框及菜单的基本操作。
3. 获取帮助。
【实验步骤】【实验1.2.1】鼠标的基本操作鼠标也是计算机的重要输入设备。
在Windows XP 中,基本上是使用鼠标进行操作。
要想熟练地操作计算机就必须要会操作鼠标,而且是轻巧使用;现在较常使用的是三键鼠标,如下图:鼠标的基本操作如下:1、指向:把鼠标移动到某一对象上,用于激活对象或显示工具提示信息。
2、单击:鼠标左键按下后松开,用于选择某个对象或某个选项、按钮等。
3、右击:鼠标右键按下后松开,会弹出对象的快捷菜单或帮助提示。
4、双击:快速连续按鼠标左键两次,用于启动程序或窗口。
一般指鼠标左键双击。
5、拖拉:单击对象,按住左键同时移动鼠标到目标位置后释放鼠标左键。
【实验1.2.2】Windows XP 的桌面、窗口、对话框及菜单的基本操作1.桌面Windows XP 的桌面主要包括:我的文档、我的电脑、网上邻居、Internet Explorer 、回收站等到图标和任务栏。
如下图所示。
图Windows XP的桌面(1).桌面图标的排列、删除①桌面图标的排列在桌面空白处单击右键,打开的桌面快捷菜单。
从桌面快捷菜单中可选择命令,排列桌面图标。
②桌面图标的删除右击一左下角带箭头的图标,在快捷菜一单中选择“删除”命令。
(2)调整任务栏的位置、宽度以及任务栏的自动隐藏①调整任务栏的位置右击任务栏空白处,确保“锁定任务栏”命令未被选中。
将鼠标指向任务栏,按下鼠标左键,拖拉鼠标到屏幕的上部、左侧、右侧,观察拖拉后任务栏的位置变化,请在测试完后,将任务栏移回原位。
②调整任务栏的宽度将鼠标放到任务栏的边缘,变成双箭头时拖拉鼠标,观察任务栏宽度的改变。
北邮大三计算机体系结构实验一 WINDLX模拟器安装及使用

实验一WINDLX模拟器安装及使用实验内容:WINDLX模拟器结构和功能:1、Register窗口Register窗口显示寄存器中的内容。
2、code窗口窗口显示的信息是存储器内容,分别是:地址(符号或数字)、命令的十六进制机器代码和汇编命令。
点击Execution中的Single Cycle单步执行,每点击一次执行一步,依次执行IF,ID,intEX,MEM,WB,每执行一步通过颜色的变化来标识命令处于流水线的哪一段。
点击Execution中的Multiple Cycles可以选择执行多步。
3、Pipeline窗口Pipeline窗口显示DLX处理器的内部结构。
窗口中用图表形式显示了DLX的五段流水线,处于不同流水段的指令都能够在图表中显示。
点击Execution中的Single Cycle或Multiple Cycles执行可以看到哪个流水段执行的是哪一条指令。
4、Clock Cycle Diagram窗口Clock Cycle Diagram窗口显示流水线的时空图,该时空图中显示了每一个时隙内的运行情况。
双击流水线时空图的某一行会详细显示对应行流水段处理器内部的执行动作。
5、Statistics窗口Statistics窗口是对运行程序中数据的分析主要包括模拟中硬件配置情况、暂停及原因、条件分支、Load/Store指令、浮点指令和traps以及事件发生的次数和百分比。
在静态窗口中我们可以比较一下不同配置对模拟的影响。
6、Breakpoint 窗口Breakpoint窗口用来观察代码运行的情况。
Set Breakpoint窗口,可以选择命令运行到流水线的哪一阶段时,程序停止执行。
在Code 窗口中,相应行上会出现"BID" ,它表示当本指令在译码段时,程序中止执行。
北邮计算机系统结构-WINDLX模拟器实验 报告

实验报告学院:计算机学院课程名称:计算机系统结构实验名称: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)观察程序中出现的数据/控制/结构相关。
实验一 Windows基本操作

实验一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环境的操作和掌握系统结构实验的具体实施步骤,如代码的观察、寄存器窗口的观察、统计数据值的记录、指令系统的三、实验环境:windows xp 环境中运行WinDLX模拟器四、实验步骤(操作过程)1)运行WinDLX模拟器2)在WinDLX模拟器的开始菜单中点击Load Code or Data菜单项,在弹出对话框中,选择input.s和fact.s程序,再点击Load按钮装载了input.s和fact.s。
3)装载了两个程序之后,在WinDLX模拟器的Code窗口中看到了fact.s程序的代码装载在内存的*****地址处,而input.s代码装载在内存的*****地址处。
4)在在WinDLX模拟器的execute菜单的Multiple cycle 菜单项运行了fact.s程序5(你具体写所运行的过程)个cycle,在Clock Cycle Diagram窗口中观察到*********;在Register 窗口中看到寄存器D2,r3的值为******;在Pipeline窗口中*************;************ 5)****五、实验数据从寄存器的值得变化情况:Clock Cycle Diagram的数据:在Pipeline窗口中数据:六、实验结果和分析在指令****和指令******之间出现了一次数据相关,因为指令****的寄存器***和指令****的寄存器相同。
在在Pipeline窗口中的数据可看到,流水线*******情况在Code窗口中, 指令****和指令******同时执行。
Clock Cycle Diagram窗口中看到,当指令****运行到*****阶段时指令****运行到*****阶段。
*******。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一熟悉WinDLX的使用一.实验目的:通过本实验,掌握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”对话框。
然后点击窗口中的“确认”按钮即可。
WinDLX可以在多种配置下工作。
你可以改变流水线的结构和时间要求、存储器大小和其他几个控制模拟的参数。
点击Configuration / Floating Point Stages (点击Configuration打开菜单,然后点击Floating Point Stages菜单项),选择如下标准配置:Cou DelaAddition Units:MultiplicationUnits:Division Units:如果需要,可以通过点击相应区域来改变设置。
然后,点击OK 返回主窗口。
点击Configuration / Memory Size ,可以设置模拟处理器的存储器大小。
应设置为0x8000,然后,点击OK 返回主窗口。
在Configuration 菜单中的其他三个配置也可以设置,它们是:Symbolic addresses, Absolute Cycle Count 和Enable Forwarding。
点击相应菜单项后,在它的旁边将显示一个小钩。
(二)装载测试程序在开始模拟之前,至少应装入一个程序到主存。
为此,选择File / Load Code or Data,窗口中会列出目录中所有汇编程序。
我们在前面已经提到,fact.s 计算一个整型值的阶乘;input.s中包含一个子程序,它读标准输入(键盘)并将值存入DLX处理器的通用寄存器R1中。
按如下步骤操作,可将这两个文件装入主存。
∙点击fact.s∙点击select 按钮∙点击input.s∙点击select按钮∙点击load按钮选择文件的顺序很关键,它决定了文件在存储器中出现的顺序。
对话框中会显示信息“File(s) loaded successfully. Reset DLX?”,点击“是(Y)”按钮确认。
这样,文件就已被装入到存储器中了。
现在可以开始模拟工作了。
(三)模拟在主窗口中,你可以看见六个图标,它们分别为“Register”,“Code”,“Pipelin e”,“Clock Cycle Diagram”,“Statistics”和“Breakpoints”。
点击其中任何一个将弹出一个新窗口(子窗口)。
在模拟过程中将介绍每一个窗口的特性和用法。
(1) Pipeline 窗口我们首先来看一下DLX处理器的内部结构。
为此,双击图标Pipeline,出现一个子窗口,窗口中用图表形示显示了DLX的五段流水线。
你应尽可能地扩大此窗口,以便处于不同流水段的指令都能够在图表中显示。
此图显示DLX处理器的五个流水段和浮点操作(加/ 减, 乘和除)的单元。
(2) Code 窗口我们来看一下Code 窗口。
双击图标,你将看到代表存储器内容的三栏信息,从左到右依次为:地址(符号或数字)、命令的十六进制机器代码和汇编命令。
现在,点击主窗口中的Execution开始模拟。
在出现的下拉式菜单中,点击Single Cycle或按F7键。
这时,窗口中带有地址“$TEXT ”的第一行变成黄色。
按下F7 键,模拟就向前执行一步,第一行的颜色变成橘黄色,下一行变成黄色.。
这些不同颜色指明命令处于流水线的哪一段。
如果Pipeline窗口已经关闭,请双击相应图标重新打开它。
如果窗口足够大,你能够看到命令“jal InputUnsigned”在IF段,“addi r1, r0, 0x1000 ”在第二段ID。
其他方框中带有一个“X”标志,表明没有处理有效信息。
再次按下F7键,代码窗口中的颜色会再改变,红色表明命令处入第三段“intEX”。
再按下F7,图形显示将变为:在代码窗口中,黄色出现在更下面的位置,并且可能是唯一彩色行。
查看一下Pipeline窗口,你会发现IF, intEX 和MEM 段正在使用而ID段没有。
为什么?(3) Clock Cycle Diagram 窗口使所有子窗口图标化,然后打开Clock Cycle Diagram 窗口。
它显示流水线的时空图。
在窗口中,看到模拟正在第四时钟周期,第一条命令正在MEM段,第二条命令在intEX段,第四条命令在IF段。
而第三条命令指示为"aborted"。
其原因是:第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal 指令被译码后才知道,这时,下一条命令movi2fp已经取出,但需执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。
jal 的分支地址命名为"InputUnsigned"。
为找到此符号地址的实际值,点击主窗口中的Memory和Symbols,出现的子窗口中显示相应的符号和对应的实际值。
在"Sort:"区域选定"name",使它们按名称排序,而不是按数值排序。
数字后的"G"代表全局符号,"L"代表局部符号。
"input"中的"InputUnsigned" 是一个全局符号,它的实际值为0x144 ,用作地址。
点击OK 按纽关闭窗口。
再一次点击F7 ,第一条命令(addi)到达流水线的最后一段。
如果想了解某条命令执行后处理器内部会发生什么?你只要对准Clock cycle diagram窗口中相应命令所在行,然后双击它,弹出一个新窗口。
窗口中会详细显示每一个流水段处理器内部的执行动作。
这个窗口"Information about ..." 作为将来的Information 窗口。
观察完后,点击OK按钮关闭窗口。
双击第三行(movi2fp),你会看到它只执行了第一段(IF),这是因为出现跳转而被取消。
(双击Code窗口中的某一行或者Pipeline 窗口中的某一段,同样可以Information 窗口。
)(4) Breakpoint 窗口当通过Code 窗口观察代码时(如果未打开,双击图标Code),会看到接下来的几条指令几近一样,它们都是sw-操作:将寄存器中的数写入存储器中。
重复按F7 将很枯燥,因此,我们使用断点加快此过程。
现在,请指向Code 窗口中包含命令trap 0x5的0x0000015c行,此命令是写屏幕的系统调用。
单击命令行,然后点击主窗口菜单Code,单击Set Breakpoint (确保命令行仍被标记!),将弹出一个新的"Set Breakpoint" 窗口。
通过此窗口,你可以选择命令运行到流水线的哪一阶段时,程序停止执行。
缺省为ID段。
点击OK 关闭窗口。
00在Code 窗口中,trap 0x5行上出现了"BID" ,它表示当本指令在译码段时,程序中止执行。
如果想查看已定义的断点,你只要单击图标Reakpoints,将弹出一个小窗口,其中显示了所有断点。
重新使窗口图标化。
现在只要点击Execution / Run 或按F5,模拟就继续运行。
会出现一个对话框提示你"ID-Stage: reached at Breakpoint #1",按“确认”按钮关闭。
点击Clock cycle diagram窗口中的trap 0x5行,将看到模拟正处于时钟周期14。
trap 0x5行如下所示:原因是:无论何时遇到一条trap指令时,DLX 处理器中的流水线将被清空。
在Information 窗口(双击trap行弹出)中,在IF段显示消息"3 stall(s) because of Trap-Pipeline-Clearing!"。
(不要忘了按OK关闭窗口)。
指令trap 0x5 已经写到屏幕上,你可以通过点击主窗口菜单条上的Execute / Display DLX-I/O来查看。
(5) Register 窗口为进一步模拟,点击Code 窗口,用箭头键或鼠标向下滚动到地址为0x00000194的那一行(指令是lw r2, SaveR2(r0)),点击此行,然后按Ins键,或点击Code / Set Breakpoint / OK,在这一行上设置一个断点。
采用同样的方法,在地址0x000001a4(指令jar r31)处设置断点。
现在按F5继续运行。
这时,会弹出DLX-Standard-I/O 窗口,在信息"An integer value >1: "后鼠标闪烁,键入20 然后按Enter,模拟继续运行到断点# 2 处。
在Clock cycle diagram 窗口中,在指令之间出现了红和绿的箭头。
红色箭头表示需要一个暂停,箭头指向处显示了暂停的原因。
R-Stall(R-暂停)表示引起暂停的原因是RAW。
绿色箭头表示定向技术的使用。
现在我们来看一下寄存器中的内容。
为此,双击主窗口中的Register 图标。
Register 窗口会显示各个寄存器中的内容。
看一下R1到R5的值。
按F5使模拟继续运行到下一个断点处,有些值将发生改变,指令lw从主存中取数到寄存器中。
如果你希望不设置断点,而使模拟继续进行。
办法是:点击Execute / Multiple Cycles 或者按F8键,在新出现的窗口中输入17 ,然后按Enter键,模拟程序将继续运行17 个时钟周期。
向上滚动Clock cycle diagram 窗口,直到看到指令周期72到78。
在EX段,两个浮点操作(multd and subd)分别在不同的部件上运行,它们都需要多个周期才能结束。
因而在它们之后的下一条指令能取指,译码和执行,然后暂停一个周期以允许subd完成MEM段。
(6) Statistics 窗口最后我们来看一下Statistics 窗口。