北邮计算机系统结构实验报告-实验一到五-WINDLX模拟器

合集下载

计算机系统结构实验报告

计算机系统结构实验报告

计算机系统结构实验报告一、实验目的:1、熟练掌握WinDLX模拟器的操作和使用2、熟悉DLX指令集结构及其特点二、实验内容:1、用WinDLX模拟器执行求阶乘程序fact.s。

这个程序说明浮点指令的使用。

该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。

该程序中调用了input.s 中的输入子程序,这个子程序用于读入正整数。

2、用WinDLX模拟器执行求最大公约数程序gcm.s。

该程序从标准输入读入两个整数,求他们的最大公约数,然后将结果写到标准输出。

该程序中调用了input.s 中的输入子程序。

3、通过上述使用WinDLX,总结WinDLX的特点。

三、实验结果:fact.s程序代码:.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运行结果:gcm.s程序代码:.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 R2addi 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 0运行结果:四、实验总结在本次实验过程当中,winDLX里的程序是一种汇编语言,通过对寄存器和条件转移来实现程序的实现。

北京邮电大学 操作系统实验 实验报告

北京邮电大学 操作系统实验 实验报告

操作系统实验实验报告实验日期:11月23日实验名称:实验一一、实验目的1.学习LINUX操作系统2.熟悉UNIX/LINUX的常用基本命令3.理解fork()与clone()函数的区别和联系4.深入理解生产者和消费者问题二、实验内容(1)安装LINUX:(2)熟悉UNIX/LINUX的常用基本命令如ls、who、wc、pwd、ps、pstree、top,cat,cd,chgrp,chmod,chown,comm,cmp,cp,rm,diff,mv,rmdir等,了解环境。

(3)比较fork()和clone()的功能,利用fork()生成子进程和clone()生成线程。

(4)利用pthread库,通过其中的mutex来实现生产者和消费者问题。

三、项目要求及分析基本要求:(1)安装LINUX:使用FEDORA11(2)熟悉UNIX/LINUX的常用基本命令如ls、who、wc、pwd、ps、pstree、top,cat,cd,chgrp,chmod,chown,comm,cmp,cp,rm,diff,mv,rmdir等,了解环境。

(3)比较fork()和clone()的功能,利用fork()生成子进程和clone()生成线程。

(4)利用pthread库,通过其中的mutex来实现生产者和消费者问题。

四、具体实现1.linux常用指令1.1 目录操作和DOS 相似,Linux 采用树型目录管理结构,由根目录开始一层层将子目录建下去,各子目录以“/”隔开。

用户login后,工作目录的位置称为home directory,由系统管理员设定。

‘—’符号代表自己的home directory,例如:~/myfile是指自己home目录下myfile这个文件。

Linux 的通配符有三种:‘*’和‘?’用法与DOS相同,‘’代表区间内的任一字符,如test[05]即代表test0,test1,……,test5的集合。

实验1_WinDLX模拟器安装和基本操作

实验1_WinDLX模拟器安装和基本操作

深圳大学实验报告课程名称:计算机体系结构实验项目名称:实验一WinDLX模拟器安装和基本操作学院:计算机与软件学院专业:计算机科学与技术指导教师:罗秋明报告人:学号:班级:实验时间:2015年3月实验报告提交时间:2015年3月教务部制实验内容下载和安装WinDLX;观察软件各个观察窗口的内容和作用;安装实验步骤进行操作,掌握软件的使用方法;课前可以先浏览阅读DLX的RISC指令集。

实验环境硬件:桌面PC软件:Windows实验步骤1.开始和配置WinDLX1、点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。

然后点击窗口中的“确认”按钮。

如图:2、点击 Configuration / Floating Point Stages(点击Configuration打开菜单,然后点击Floating Point Stages菜单项),选择如下标准配置:3、在Configuration →Symbolic addresses, Absolute Cycle Count 和Enable Forwarding。

点击相应菜单项后,在它的旁边将显示一个小钩。

2. 装载测试程序在开始模拟之前,至少应装入一个程序到主存。

为此,选择File / Load Code or Data,窗口中会列出目录中所有汇编程序。

将fact.s和input.s这两个文件装入主存。

点击“是(Y)”按钮确认3. 模拟(1) Pipeline 窗口程序开始前各段显示:X,表示没有处理有效信息。

执行程序后,IF段处理命令“jal InputUnsigned”,ID段处理命令“addi r1, r0, 0x1000 ”。

(2) Code 窗口执行命令前,各行均没有颜色,表示没有正在执行的命令。

按下 F7 键,模拟就向前执行一步,第一行的颜色变成橘黄色,下一行变成黄色。

继续按F7键,出现不同的颜色。

再次按下F7键,代码窗口中的颜色会再改变,红色表明命令处入第三段“intEX”。

计算机系统结构实验报告

计算机系统结构实验报告

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

实验平台: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。

记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。

重复上述3中的工作,并计算采用定向技术后性能提高的倍数。

1. 求阶乘程序用WinDLX模拟器执行求阶乘程序fact.s。

这个程序说明浮点指令的使用。

该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。

该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。

实验结果:在载入fact.s和input.s之后,不设置任何断点运行。

北邮大三下 计算机系统结构实验报告 实验一到五 WINDLX模拟器

北邮大三下 计算机系统结构实验报告 实验一到五 WINDLX模拟器

北京邮电大学实验报告课程名称计算机系统结构计算机学院 2011211311班薛玥(2011211432)目录实验一 WINDLX模拟器安装及使用 (3).实验准备 (3).实验环境 (4).实验步骤 (5).实验内容及要求 (5).实验过程 (5).实验总结 (11)实验二指令流水线相关性分析 (12).实验目的 (12).实验环境 (12).实验步骤 (12).实验过程 (12).实验总结 (19)实验三DLX处理器程序设计 (20).实验目的 (20).实验环境 (20).实验步骤 (20).实验过程 (20)A.向量加法代码及性能分析 (20)B.双精度浮点加法求和代码及结果分析 (26).实验总结 (31)实验四代码优化 (32).实验目的 (32).实验环境 (32).实验原理 (32).实验步骤 (32).实验过程 (32).实验总结+实习体会 (37)实验五循环展开 (38).实验目的 (38).实验环境 (38).实验原理 (38).实验步骤 (38).实验过程 (38)矩阵乘程序代码清单及注释说明 (38)相关性分析结果 (43)增加浮点运算部件对性能的影响 (43)增加forward部件对性能的影响 (43)转移指令在转移成功和转移不成功时候的流水线开销 (43).实验总结+实习体会+课程建议 (43)实验一 WINDLX模拟器安装及使用·实验准备1.了解DLX的基本结构和原理DLX是一种典型的Load/Store型指令集结构。

它具有一套简单的Load/Store 指令集;它注重指令流水效率;它简化指令的译码;它高效支持编译器。

2.了解DLX中的寄存器DLX中有32个通用寄存器(GPRs),分别将其命名为R0,R1...R31。

每个通用寄存器长度为32位。

另外,DLX中有32个浮点寄存器(FPRs),分别将其命名为F0,F1 (31)3.了解DLX数据类型DLX提供了多种长度的整型数据和浮点数据。

计算机体系结构实验报告——实验五

计算机体系结构实验报告——实验五

实验五:数据相关1.实验目的:通过本实验,加深对数据相关的理解,掌握如何使用定向技术来减少数据相关带来的暂停。

2.实验内容:(1)在不采用定向技术的情况下(通过Configuration菜单中的Enable Forwarding选项设置),用WinDLX模拟器运行程序data_d.s。

(2)记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

(3)在采用定向技术的情况下,用WinDLX模拟器再次运行程序data_d.s。

(4)记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

(5)根据上面记录的数据,计算采用定向技术后性能提高的倍数。

3.实验程序:程序data_d.s。

LHI R2,(A>>16)&0xFFFFADDUI R2,R2,A&0xFFFFLHI R3,(B>>16)&0xFFFFADDUI R3,R3,B&0xFFFFloop:LW R1,0(R2)ADD R1,R1,R3SW0(R2),R1LW R5,0(R1)ADDI R5,R5,#10ADDI R2,R2,#4SUB R4,R3,R2BNEZ R4,loopTRAP#0A:.word0,4,8,12,16,20,24,28,32,36B:.word9,8,7,6,5,4,3,2,1,04.实验流程图R2=A>>16R2=R2+AR3=B>>16R3=R3+BR1=(R2)R1=R1+R3(R2)=R1R5=(R1)R5=R5+10R2=R2+4R4=R3-R2NR4=0?YTRAP#05.实验过程当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使得读/写操作顺序不同于它们非流水实现的顺序,这将导致数据相关。

5.1在不采用定向技术的情况下,产生数据相关的地方:1>addui r2,r2,0x134需要用到lhi r2,0x0的计算结果,lhi指令在wb段才将计算结果写入寄存器r2中,但是addui指令在其ID段就要从寄存器r2中读取计算结果,这就产生了数据相关。

北邮计算机系统结构实验报告实验一到五WINDLX模拟器

北邮计算机系统结构实验报告实验一到五WINDLX模拟器

北京邮电大学实验报告课程名称计算机系统结构计算机学院 201班王陈(2016110711)目录实验一 WINDLX模拟器安装及使用 (2)·实验准备............................................................................. 错误!未定义书签。

·实验环境............................................................................. 错误!未定义书签。

·实验步骤............................................................................. 错误!未定义书签。

·实验内容及要求................................................................. 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

.实验总结 (6)实验二指令流水线相关性分析 (6).实验目的 (7).实验环境 (7).实验步骤 (7)·实验过程............................................................................. 错误!未定义书签。

.实验总结 (12)实验三DLX处理器程序设计 (13).实验目的 (13)·实验环境............................................................................. 错误!未定义书签。

系统结构实验五:WinDLX模拟器的熟悉

系统结构实验五:WinDLX模拟器的熟悉

实验五:熟悉WinDLX的使用
一、实验目的:
1、熟练掌握WinDLX模拟器的操作和使用
2、熟悉DLX指令集结构及其特点
二、实验内容:
1、用WinDLX模拟器执行求阶乘程序fact.s。

这个程序说明浮点指令的使用。

该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。

该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。

2、用WinDLX模拟器执行求最大公约数程序gcm.s。

该程序从标准输入读入两个整数,求他们的最大公约数,然后将结果写到标准输出。

该程序中调用了input.s中的输入子程序。

3、通过上述使用WinDLX,总结WinDLX的特点。

三、实验报告
认真记录实验数据或显示结果。

如实填写实验报告。

1。

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

北京邮电大学实验报告课程名称计算机系统结构计算机学院03班王陈(11)目录实验一WINDLX模拟器安装及使用......................................... 错误!未定义书签。

·实验准备................................................................................ 错误!未定义书签。

·实验环境................................................................................ 错误!未定义书签。

·实验步骤................................................................................ 错误!未定义书签。

·实验内容及要求.................................................................... 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

·实验总结............................................................................. 错误!未定义书签。

实验二指令流水线相关性分析 ............................................... 错误!未定义书签。

·实验目的............................................................................. 错误!未定义书签。

·实验环境................................................................................ 错误!未定义书签。

·实验步骤................................................................................ 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

·实验总结............................................................................. 错误!未定义书签。

实验三DLX处理器程序设计 .................................................... 错误!未定义书签。

·实验目的............................................................................. 错误!未定义书签。

·实验环境................................................................................ 错误!未定义书签。

·实验步骤................................................................................ 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

A.向量加法代码及性能分析 ................................................... 错误!未定义书签。

B.双精度浮点加法求和代码及结果分析 .............................. 错误!未定义书签。

·实验总结............................................................................. 错误!未定义书签。

实验四代码优化 ....................................................................... 错误!未定义书签。

·实验目的............................................................................. 错误!未定义书签。

·实验环境................................................................................ 错误!未定义书签。

·实验原理................................................................................ 错误!未定义书签。

·实验步骤................................................................................ 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

·实验总结+实习体会........................................................... 错误!未定义书签。

实验五循环展开 ....................................................................... 错误!未定义书签。

·实验目的............................................................................. 错误!未定义书签。

·实验环境................................................................................ 错误!未定义书签。

·实验原理................................................................................ 错误!未定义书签。

·实验步骤................................................................................ 错误!未定义书签。

·实验过程............................................................................. 错误!未定义书签。

矩阵乘程序代码清单及注释说明........................................... 错误!未定义书签。

相关性分析结果........................................................................... 错误!未定义书签。

增加浮点运算部件对性能的影响........................................... 错误!未定义书签。

增加forward部件对性能的影响 ............................................ 错误!未定义书签。

转移指令在转移成功和转移不成功时候的流水线开销 .. 错误!未定义书签。

·实验总结+实习体会+课程建议......................................... 错误!未定义书签。

实验一WINDLX模拟器安装及使用WinDLX模拟器的结构和功能说明1.点击运行之后,会看到一个如下图所示的窗口。

它包括Register, Code, Pipeline, Clock Cycle Diagram, Statistics, Breakpoints。

接下来详细介模拟器的结构及各个部件的功能。

窗口介绍Rigister窗口中显示的是各个寄存器的名称及内容。

如下图:可以看到寄存器中以十六进制标识,从上图可以看出各个寄存器中的内容。

窗口介绍在没有进行任何执行的时候,初次打开code窗口,即为下图所示窗口现实的信息是各个存储器内同。

第一列标识存储器的地址;第二列是机器代码,用16进制表示;第三列是汇编指令。

当我们点击上方的,可以选择单步或多步执行(也可以使用快捷键F7或F8)。

若选择单步执行,每按一次F7,指令执行一次,可以看到,一次执行的为IF->ID->intEX->MEM->WB,没执行一次还有颜色的变化。

颜色是用来标识指令处于哪个流水段的,如下图。

当然,我们也可以使用多步执行,按快捷键F8,选择5步流水,即可。

窗口介绍通过阅读WinDLX模拟器说明书可以知道,Pipeline窗口显示的是DLX处理器的内部结构。

窗口用下图标识DLX五段流水。

当然,如同Code窗口介绍讲述的那样,不同的颜色显示了指令处于哪段流水线。

使用快捷键F7单步执行,可以明显的看出,不同时候流水段执行的不同指令。

如下图。

图片反映的正式与Code中所处的时刻相同的指令流水。

可以清晰看到不同流水段执行的是哪条指令。

Cycle Diagram窗口实验准备中我们已经知道,该窗口显示的是流水线的时空图。

时空图反映的是不同时隙内的运行情况。

如下图。

在我看来,时空图是最好理解的。

因为它反映的就是流水段的并行程度。

在这个DLX模拟器中,并不存在一些数据或者控制上的冲突问题。

相关文档
最新文档