文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机系统结构实验教程

计算机系统结构实验教程

计算机系统结构实验教程
计算机系统结构实验教程

MIPSsim使用说明

一、启动模拟器

双击MIPSsim.exe,即可启动该模拟器。MIPSsim是在Windows操作系统上运行的程序,它需要用.NET运行环境。如果你的机器没有该环境,请先下载和安装“Microsoft .NET Framework 2.0 版可再发行组件包”。

模拟器启动时,自动将自己初始化为默认状态。所设置的默认值为:

◆所有通用寄存器和浮点寄存器为全0;

◆内存清零;

◆流水寄存器为全0;

◆清空时钟图、断点、统计数据;

◆内存大小为4096字节;

◆载入起始地址为0;

◆浮点加法、乘法、除法部件的个数均为1;

◆浮点加法、乘法、除法运算延迟分别为6、7、10个时钟周期;

◆采用流水方式;

◆不采用定向机制;

◆不采用延迟槽;

◆采用符号地址;

◆采用绝对周期计数。

当模拟器工作在非流水方式下(配置菜单中的“流水方式”前没有“√”号)时,下面叙述中有关流水段的内容都没有意义,应该忽略之。

二、MIPSsim的窗口

在流水方式下,模拟器主界面中共有7个子窗口,它们是:代码窗口、寄存器窗口、流水线窗口、时钟周期图窗口、内存窗口、统计窗口和断点窗口。每一个窗口都可以被收起(变成小图标)、展开、拖动位置和放大/缩小。当要看窗口的全部内容时,可以将其放大到最大。

在非流水方式下,只有代码窗口、寄存器窗口、内存窗口和断点窗口。

1. 代码窗口

代码窗口给出内存中代码的列表,每条指令占一行,按地址顺序排列。每行有5列(当全部显示时):地址、断点标记、指令的机器码、流水段标记和符号指令。如图2.1所示。

图2.1 代码窗口

图中不同抹色的行代表相应的指令所处的执行段。黄色代表IF段,绿色代表ID段,红色代表EX段,青色代表MEM段,棕色代表WB段。

该窗口中各列的含义如下:

◆地址:以16进制的形式给出。内存是按字节寻址的,每条指令占4个字节。当采用

符号地址时,会在相应的位置给出汇编程序中出现的标号。

◆断点标记:如果在该指令处设有断点,则显示相应的标记。断点标记的形式为B.X

(X为段名),表示该断点是设置在该指令的“X”段。例如,若某行的断点标记为“B.EX”,则表示在该指令的EX段设置了断点。

当模拟器工作在非流水方式下时,断点的标记为B。

◆机器码:该行所对应的指令的十六进制机器码。若该行无指令,则仅仅显示4字节

数据;

◆流水段标记:表示当该指令正在执行时,它在当前周期该指令所处的流水段。当模

拟器工作在非流水方式下时,它没有意义。

◆符号指令:机器代码所对应的符号指令。

在该窗口中选中某行(用鼠标左键单击),然后再点击鼠标右键,就会弹出菜单:设置断点,清除断点,它们分别用于在所选指令处设置断点和清除断点。

●设置断点

选择(点击)要设断点的指令→点击右键→“设置断点”,弹出“设置断点”小对话框,在“段”的下拉框中选择断点所在的流水段(在非流水方式下,不存在该下拉框),单击“确定”即可。

●清除断点

选择(点击)指令→点击右键→“清除断点”,则设置在该指令处的断点被删除。

2. 寄存器窗口

寄存器窗口显示MIPSsim模拟器中的寄存器的内容。共有4组寄存器:通用寄存器、浮点寄存器、特殊寄存器和流水寄存器,分为4栏来显示。每一栏下分别有各自的数据格式选项,如图2.2所示。

图2.2 寄存器窗口

(1) 通用寄存器

MIPS64有32个64位通用寄存器:R0,R1,…,R31。它们被简称为GPRs(General-Purpose Registers),有时也被称为整数寄存器。R0的值永远是0。

通过数据格式选项,可以选择显示的格式是十进制还是十六进制。

(2) 浮点寄存器

共有32个64位浮点数寄存器:F0,F1,…,F31。它们被简称为FPRs(Floating-Point Registers)。它们既可以用来存放32个单精度浮点数(32位),也可以用来存放32个双精度浮点数(64位)。存储单精度浮点数(32位)时,只用到FPR的一半,其另一半没用。(3) 特殊寄存器

特殊寄存器有4个:

◆PC:程序计数器(32位);

◆LO:乘法寄存器的低位;

◆HI:乘法寄存器的高位;

◆FCSR:浮点状态寄存器。

(4) 流水寄存器

◆IF/ID.IR:流水段IF与ID之间的指令寄存器;

◆IF/ID.NPC:流水段IF与ID之间的下一指令程序计数器;

◆ID/EX.A:流水段ID与EX之间的第一操作数寄存器;

◆ID/EX.B:流水段ID与EX之间的第二操作数寄存器;

◆ID/EX.Imm:流水段ID与EX之间的立即数寄存器;

◆ID/EX.IR:存放从IF/ID.IR传过来的指令;

◆EX/MEM.ALUo:流水段EX与MEM之间的ALU计算结果寄存器;

◆EX/MEM.IR:存放从ID/EX.IR传过来的指令;

◆MEM/WB.LMD:流水段MEM与WB之间的数据寄存器,用于存放从存储器

读出的数据;

◆MEM/WB.ALUo:存放从EX/MEM.ALUo传过来的计算结果;

◆MEM/WB.IR:存放从EX/MEM.IR传过来的指令。

除了流水寄存器外,其他寄存器都可以修改。只要双击某寄存器所在的行,系统就会弹出一个小对话框。该对话框显示了该寄存器原来的值。在新值框中填入新的值,然后点击“保存”,系统就会将新值写入该寄存器。

3. 流水线窗口

流水线窗口显示流水线在当前配置下的组成以及该流水线的各段在当前周期正在处理的指令。如图2.3所示。

非流水方式下,没有该窗口。

图2.3 流水线窗口

在该窗口中,每一个矩形方块代表一个流水段,它们用不同的颜色填充。在该窗口的左侧是IF到WB段,其右边为浮点部件。浮点部件分有浮点加法部件(fadd)、浮点乘法部件(fmul)和浮点除法部件(fdiv)三种。在菜单“配置”→“常规配置”中修改浮点部件个数,可看到该窗口中对应类型的浮点部件个数会发生相应的变化。

在运行过程中,各段的矩形方块中会显示该段正在处理的指令及其地址(16进制)。当双击某矩形方块时,会弹出窗口显示该段出口处的流水寄存器的内容(16进制)。

4. 时钟周期图窗口

该窗口用于显示程序执行的时间关系,画出各条指令执行时所用的时钟周期。非流水方式下,没有该窗口。

以窗口左上为原点,横轴正方向指向右方,表示模拟器先后经过的各个周期(列),纵轴正方向指向下方,表示模拟器中先后执行的各条指令(行)。如图2.4所示。

图2.4 时钟周期图窗口

横坐标有相对周期计数和绝对周期计数两种不同的表示形式。在默认的绝对周期计数下,按0、1、2、…依次递增的顺序计数。而在相对周期计数下,当前周期记为第0个周期,而其余周期(在左边)则按其相对于当前周期的位置,分别记为-1,-2,-3,…等。

在由指令轴和周期轴组成的二维空间下,坐标(n, i)对应的矩形区域表示指令i在第n+1周期时所经过的流水段(假设采用绝对周期计数)。

双击某行时,会弹出一个小窗口,显示该指令在各流水段所进行的处理。

该窗口中还显示定向的情况。这是用箭头来表示的。若在第m周期和第m+1周期间产生从指令i1到指令i2的定向,则在坐标(m, i1)和(m+1, i2)表示的矩形区域之间会有一个箭头。

5. 内存窗口

该窗口显示模拟器内存中的内容,左侧一栏为十六进制地址,右侧为数据,如图2.5所示。可以直接通过双击来修改其内容。这时会弹出一个“内存修改”对话框,如图2.6所示。对话框的上部区域为数据类型与格式选择区,通过勾选其中的一项,就可以指定所采用的数据类型与格式。

图2.5 内存窗口

图2.6 “内存修改”对话框

在该“内存修改”对话框中,地址框最开始显示的是被双击的单元的地址,用户可以直接修改该地址。在新值框中输入新值,然后点击按钮“修改”,模拟器就会把新值写入内存中相应的单元。新值的格式必须与所选的数据类型和格式一致。

“前地址”与“后地址”按钮分别将当前地址减少和增加一个数据长度(字节数),并

显示当前地址所指定单元的内容。“前地址”和“后地址”用于连续修改一片的内存数据。“显示”按钮用于显示当前地址所指单元的内容。在修改地址后,点击该按钮就可以显示内存单元的内容。

6. 统计窗口

该窗口显示模拟器统计的各项数据。如下所示。

(非流水方式下,没有该窗口)

汇总:

执行周期总数:0

ID段执行了0条指令

硬件配置:

内存容量:4096 B

加法器个数:1 执行时间(周期数):6

乘法器个数:1 执行时间(周期数)7

除法器个数:1 执行时间(周期数)10

定向机制:不采用

停顿(周期数):

RA W停顿:0 占周期总数的百分比:0%

其中:

load停顿:0 占所有RA W停顿的百分比:0%

分支/跳转停顿:0 占所有RA W停顿的百分比:0%

浮点停顿:0 占所有RA W停顿的百分比:0%

W A W停顿:0 占周期总数的百分比:0%

结构停顿:0 占周期总数的百分比:0%

控制停顿:0 占周期总数的百分比:0%

自陷停顿:0 占周期总数的百分比:0%

停顿周期总数:0 占周期总数的百分比:0%

分支指令:

指令条数:0 占指令总数的百分比:0%

其中:

分支成功:0 占分支指令数的百分比:0%

分支失败:0 占分支指令数的百分比:0%

load/store指令:

指令条数:0 占指令总数的百分比:0%

其中:

load:0 占load/store指令数的百分比:0%

store:0 占load/store指令数的百分比:0%

浮点指令:

指令条数:0 占指令总数的百分比:0%

其中:

加法:0 占浮点指令数的百分比:0%

乘法:0 占浮点指令数的百分比:0%

除法:0 占浮点指令数的百分比:0%

自陷指令:

指令条数:0 占指令总数的百分比:0%

7. 断点窗口

断点一般是指指定的一条指令,当程序执行到该指令时,会中断执行,暂停在该指令上。在本模拟器中,断点可以设定在某条指令的某一个流水段上(如果是在流水方式下)。当该指令执行到相应的流水段时,会中断执行。

断点窗口列出当前已经设置的所有断点,每行一个。每行由3部分构成:地址(16进制),流水段名称,符号指令。如图2.7所示。(在非流水方式下,“段”没有意义)

图2.7 断点窗口

该窗口上方有四个按钮:添加、删除、全部删除、修改。

◆添加

单击“添加”,会弹出小对话框“设置断点”,在“地址”框中输入断点的十六进制地址,在“段”的下拉框中选择在哪个流水段中断(非流水方式下,不需要该操作,下同),单击“确定”即可。

◆删除

选中某个断点(单击断点列表中相应的一项),单击“删除”,则该断点被清除。

◆全部删除

单击“全部删除”,所有断点都将被清除。

◆修改

选中某个断点,单击“修改”,会弹出小对话框“设置断点”,在“地址”框中输入断点的地址,在“段”的下拉框中选择在哪个流水段中断,单击“确定”即可将原断点修改为新设断点。

三、M IPSsim的菜单

1. 文件菜单

文件菜单如下所示:

(1) CPU复位

将模拟器中CPU的状态复位为默认值。

(2) 全部复位

将整个模拟器的状态复位为默认值。模拟器启动时,也是将状态设置为默认值。

(3) 载入程序

将被模拟程序载入模拟器的内存。被模拟程序可以是汇编程序(.s文件),也可以是汇编后的代码(.bin文件)。点击该菜单后,系统将弹出“载入”对话框,选择要载入的文件,然后点击“打开”。如果是.s文件,系统会对该文件进行汇编。若汇编过程无错误,则将产生的二进制代码载入至模拟器的内存;若有错误,则报告错误信息。如果是.bin文件,则直接将该文件的内容载入到模拟器内存。

被载入程序在内存中连续存放,其起始地址默认为0。该起始地址可以从“代码”菜单中的“载入起始地址”来查看和修改。修改时,如果输入的地址不是4的整数倍,模拟器会自动将其归整为4的整数倍。

(4)退出

退出模拟器。

2. 执行菜单

该菜单提供了对模拟器执行程序进行控制的功能。在下面的执行方式中,除了单步执行,当遇到断点或者用户手动中止(用“中止”菜单项)时,模拟器将立即暂停执行。

在流水方式下,执行菜单如下所示:

在非流水方式下,执行菜单如下所示:

(1)单步执行一个周期

执行一个时钟周期,然后暂停。其快捷键为F7。该菜单仅出现在流水方式下。

(2)撤销上一个周期

模拟器回退一个时钟周期,即恢复到执行该周期之前的状态。其快捷键为F8。该菜单仅出现在流水方式下。

(3)执行多个周期

执行多个时钟周期,然后暂停。点击该菜单后,系统会弹出一个小对话框,由用户指定要执行的周期的个数。该菜单仅出现在流水方式下。

(4)连续执行

从当前状态开始连续执行程序,直到程序结束或遇到断点或用户手动中止。

(5)执行到…

点击该菜单项后,系统会弹出一个“设定终点”小对话框,由用户指定此次执行的终点,即在哪条指令的哪个流水段暂停。点击“确定”后,模拟器即开始执行程序,直到到达终点位置或遇到断点或用户手动中止。所输入的终点地址将被归整为4的整数倍。

(6)中止

点击该菜单项后,模拟器会立即暂停执行。当模拟器执行程序出现长期不结束的状况时,可用该菜单强行使模拟器停止执行。

(7)单步执行一条指令

执行一条指令,然后暂停。该指令的地址由当前的PC给出。其快捷键为F7。该菜单仅出现在非流水方式下。

(8)撤销上一条指令

模拟器回退一条指令,即恢复到执行该指令之前的状态。其快捷键为F8。该菜单仅出现在非流水方式下。

(9)执行多条指令

执行多条指令,然后暂停。点击该菜单项后,系统会弹出一个小对话框,由用户指定要执行的指令的条数。

3. 内存菜单

该菜单下有3项:显示,修改,符号表。

(1)显示

该菜单项用于设置显示内存的值的数据类型与格式。点击该菜单项后,系统会弹出“内存显示”对话框,如图3.1所示。在选定所要的数据类型与格式后,单击“确定”按钮,内存窗口中的数据就会按指定的数据类型与格式显示。

图3.1 内存显示窗口

(2) 修改

该菜单项用于对内存的值进行修改。点击该菜单项后,系统会弹出“内存修改”对话框,该对话框与图2.6的“内存修改”相同。请参见相关的论述。

(3) 符号表

该菜单项用于显示符号表。符号表中列出了当前被执行的程序中各符号的地址(内存地址)。

4. 代码菜单

(1) 载入起始地址

该菜单项用于显示和修改代码载入内存的起始地址。如果要修改,只要在弹出的“载入起始地址”对话框中输入新的地址,然后点击“确认”即可。

(2) 设置断点

点击该菜单项,会弹出“设置断点”小对话框,输入断点地址,并在“段”的下拉框中选择断点所在的流水段(在非流水方式下,不存在该下拉框),单击“确定”即可。

(3) 取消断点

在代码窗口中选择某条指令,然后点击该菜单项,则设置在该指令处的断点被删除。(4) 清除所有断点

清除所有断点。

5. 配置菜单

配置菜单用于修改模拟器的配置。需要注意的是:修改配置将会使模拟器复位。

配置菜单如下所示:

(1) 常规配置

该菜单项用于查看和设置以下参数:(其默认值见“一、启动程序”)

◆内存容量;

◆浮点加法运算部件个数

◆浮点乘法运算部件个数

◆浮点除法运算部件个数

◆浮点加法运算延迟周期数

◆浮点乘法运算延迟周期数

◆浮点除法运算延迟周期数

如果要修改这些参数,只要直接修改,然后点击“确定”按钮即可。

(2) 流水方式

“流水方式”开关。当该项被勾选(即其前面有个“√”号)时,模拟器按流水方式工作,能模拟流水线的工作过程。否则(即没有被勾选)就是按串行方式执行程序。

该项的勾选和去选(即去掉其前面的“√”号)都是通过点击该项来实现的。下同。

当从流水方式切换为非流水方式(或相反)时,系统将强行使模拟器的状态复位。(3) 符号地址

“符号地址”开关。当该项被勾选时,代码窗口中的代码将显示原汇编程序中所采用的标号。否则(即没有被勾选)就不显示。

(4) 绝对周期计数

“绝对周期计数”开关。当该项被勾选时,时钟周期图窗口中的横坐标将显示为绝对周期,即时钟周期按0、1、2、…顺序递增的顺序计数。否则(即没有被勾选)就按相对周期计数,即把当前周期记为第0个周期,而其余周期(在左边)则按其相对于当前周期的位置,分别记为-1,-2,-3,…等。

在非流水方式下,该菜单项不起作用(变灰)。

(5) 定向

“定向”开关,用于指定是否采用定向技术。当该项被勾选时,模拟器在执行程序时将采用定向技术。否则就不采用。

在非流水方式下,该菜单项不起作用(变灰)。

(6) 延迟槽

“延迟槽”开关,用于指定是否采用延迟分支技术。当该项被勾选时,模拟器在执行程序时将采用一个延迟槽。否则就不采用。

在非流水方式下,该菜单项不起作用(变灰)。

(7) 载入配置

用于将一个配置文件(.cfg)载入模拟器,模拟器将按该文件进行配置并复位。点击该菜单项,系统将弹出“打开”对话框,让用户指定所要载入的配置文件。

(8) 保存配置

用于将模拟器当前的配置保存到一个配置文件(.cfg)中,以便以后重用。点击该菜单项,系统将弹出“保存文件”对话框,让用户指定配置文件的名称和位置。

6. 窗口菜单

(1) 平铺

将当前已打开的子窗口平铺在主窗口中。

(2) 层叠

将当前已打开的子窗口层叠在主窗口中。

(3) 打开所有

将所有子窗口都打开。

(4) 收起所有

将所有子窗口最小化。

(5) 选择子窗口

在该菜单中还列出了所有的子窗口的名称,选择其中的任一个,将使该窗口被选中,并被提到最上层。

7. 帮助菜单

该菜单下有两项:“帮助”和“关于MIPSsim”。前者提供用户手册,后者给出关于MIPSsim 的版权信息和设计开发者信息。

计算机体系结构实验报告二

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对CPU性能得影响。 二、实验内容: 1、用WinDLX模拟器运行程序structure_d、s 。 2、通过模拟,找出存在结构相关得指令对以及导致结构相关得部件。 3、记录由结构相关引起得暂停时钟周期数,计算暂停时钟周期数占总执行 周期数得百分比。 4、论述结构相关对CPU性能得影响,讨论解决结构相关得方法。 三、实验程序structure_d、s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; < A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit < this is a ment !! A: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 四、实验过程 打开软件,load structure_d、s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

北邮高级计算机系统结构实验二三四五

实验二指令流水线相关性分析 ·实验目的 通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。 ·实验原理: 指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。·实验步骤 一.使用WinDLX模拟器,对做如下分析: (1)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。 (2)考察增加浮点运算部件对性能的影响。 (3)考察增加forward部件对性能的影响。 (4)观察转移指令在转移成功和转移不成功时候的流水线开销。 ·实验过程 一.使用WinDLX模拟器,对做如下分析: } 浮点加、乘、除部件都设置为1,浮点数运算部件的延时都设置为4,如图1: 图1 初始设置 将和加载至WinDLX中,如图2示。

图2 加载程序 1.观察程序中出现的数据/控制/结构相关;指出程序中出现上述现象的指令组合。 1)数据相关 点击F7,使程序单步执行,当出现R-Stall时停止,运行过程中出现下图3所示,输入整数6。 图3 输入整数6 @ 打开Clock Diagram,可以清楚的看到指令执行的流水线如图4所示。 图4 指令流水线 双击第一次出现R-Stall的指令行,如图5所示。

图5 指令详细信息 对以上出现的情况分析如下: 程序发生了数据相关,R-Stall(R-暂停)表示引起暂停的原因是RAW。 lbu r3,0×0(r2) 要在WB周期写回r3中的数据;而下一条指令 & seqi r5,r3,0×a 要在intEX周期中读取r3中的数据。 上述过程发生了WR冲突,即写读相关。为了避免此类冲突, seq r5,r4,0×a的intEX指令延迟了一个周期进行。 由此,相关指令为: 2)控制相关 由图6可以看出,在第4时钟周期:第一条指令处于MEM段,第二条命令处于intEX段,第三条指令出于aborted状态,第四条命令处于IF段。 图 6 指令流水线 }

计算机系统结构教程课后答案

1.7 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量 和平均时钟周期数如下: 指令类型指令执行数量平均时钟周期数 整数450001 数据传送750002 浮点80004 分支15002 求该计算机的有效CPI、MIPS和程序执行时间解: n CPI 八(CPI j IC j/IC) i 4 (1)CPI = (45000X 1 + 75000X 2+ 8000X 4+ 1500X 2) / 129500= 1.776 (2)MIPS 速率=f/ CPI = 400/1.776 = 225.225MIPS (3)程序执行时间=(45000 X 1 + 75000X 2 + 8000 X 4+ 1 500 X 2)/400=575s 1.9将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少? 解:由题可知:可改进比例Fe=40% = 0.4 部件加速比Se = 10 S n=』= ------- — 1.5625 根据「—_Fe 吏(1-°.4) °.4/—° Se 1.10计算机系统中有三个部件可以改进,这三个部件的部件加速比为: 部件加速比仁30; 部件加速比2=20; 部件加速比3=10 (1) 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10? (2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少? 解:(1)在多个部件可改进情况下,Amdahl定理的扩展: 已知S1 = 30,S2= 20,S3= 10,Sn= 10,F1 = 0.3,F2 = 0.3,得: 得F3= 0.36,即部件3的可改进比例为36%。 (2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为: (0.3+0.3+0.2) T = 0.8T,不可改进部分的执行时间为1 - Fe1 - Fe2 - Fe3 =0.2T 1 - Fe1 - Fe 2 - Fe3 Fe1 Fe2 Fe3 sei se2 se3 T n

计算机系统结构实验教程

实验一流水线及流水线中的冲突 实验目的 1.加深对计算机流水线基本概念的理解; 2.理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作; 3.加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响; 4.进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。 5.加深对指令调度和延迟分支技术的理解; 6.熟练掌握用指令调度技术来解决流水线中的数据冲突的方法; 7.进一步理解指令调度技术和延迟分支技术对CPU性能的改进。 实验平台 指令级和流水线操作级模拟器MIPSsim, 实验内容和步骤 首先要掌握MIPSsim模拟器的使用方法。 一、流水线及流水线中的冲突观察 1. 启动MIPSsim。 2.根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容) 3. 熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一个周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。 4. 勾选配置菜单中的“流水方式”,使模拟器工作于流水方式下。 5.观察程序在流水线中的执行情况,步骤如下: (1)用MIPSsim的“文件”菜单中的“载入程序”来加载pipeline.s(在模拟器所在文 件夹下的“样例程序”文件夹中); (2)关闭定向功能。这是通过在“配置”菜单中去选“定向”(即使得该项前面没有“√” 号)来实现的; (3)用单步执行一周期的方式(“执行”菜单中,或用F7)执行该程序,观察每一周 期中,各段流水寄存器内容的变化、指令的执行情况(代码窗口)以及时钟周期 图; (4)当执行到第10个时钟周期时,各段分别正在处理的指令是: IF: ID:

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 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之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

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

北京邮电大学 实验报告 课程名称计算机系统结构 计算机学院03班 王陈(11)

目录 实验一WINDLX模拟器安装及使用......................................... 错误!未定义书签。 ·实验准备................................................................................ 错误!未定义书签。 ·实验环境................................................................................ 错误!未定义书签。 ·实验步骤................................................................................ 错误!未定义书签。 ·实验内容及要求.................................................................... 错误!未定义书签。 ·实验过程............................................................................. 错误!未定义书签。 ·实验总结............................................................................. 错误!未定义书签。实验二指令流水线相关性分析 ............................................... 错误!未定义书签。 ·实验目的............................................................................. 错误!未定义书签。 ·实验环境................................................................................ 错误!未定义书签。 ·实验步骤................................................................................ 错误!未定义书签。 ·实验过程............................................................................. 错误!未定义书签。 ·实验总结............................................................................. 错误!未定义书签。实验三DLX处理器程序设计 .................................................... 错误!未定义书签。 ·实验目的............................................................................. 错误!未定义书签。 ·实验环境................................................................................ 错误!未定义书签。 ·实验步骤................................................................................ 错误!未定义书签。 ·实验过程............................................................................. 错误!未定义书签。 A.向量加法代码及性能分析 ................................................... 错误!未定义书签。 B.双精度浮点加法求和代码及结果分析 .............................. 错误!未定义书签。 ·实验总结............................................................................. 错误!未定义书签。实验四代码优化 ....................................................................... 错误!未定义书签。 ·实验目的............................................................................. 错误!未定义书签。 ·实验环境................................................................................ 错误!未定义书签。 ·实验原理................................................................................ 错误!未定义书签。 ·实验步骤................................................................................ 错误!未定义书签。 ·实验过程............................................................................. 错误!未定义书签。 ·实验总结+实习体会........................................................... 错误!未定义书签。实验五循环展开 ....................................................................... 错误!未定义书签。 ·实验目的............................................................................. 错误!未定义书签。 ·实验环境................................................................................ 错误!未定义书签。 ·实验原理................................................................................ 错误!未定义书签。 ·实验步骤................................................................................ 错误!未定义书签。 ·实验过程............................................................................. 错误!未定义书签。 矩阵乘程序代码清单及注释说明........................................... 错误!未定义书签。 相关性分析结果........................................................................... 错误!未定义书签。 增加浮点运算部件对性能的影响........................................... 错误!未定义书签。 增加forward部件对性能的影响 ............................................ 错误!未定义书签。 转移指令在转移成功和转移不成功时候的流水线开销 .. 错误!未定义书签。 ·实验总结+实习体会+课程建议......................................... 错误!未定义书签。

操作系统教程第版课后答案

操作系统教程第5版课后答案 费祥林、骆斌编着 第一章操作系统概论 习题一 一、思考题 1.简述现代计算机系统的组成及层次结构。 答:现代计算机系统由硬件和软件两个部分组成。是硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。硬件层提供基本可计算的资源,包括处理器、寄存器、内存、外存及I/O设备。软件层由包括系统软件、支撑软件和应用软件。其中系统软件是最靠近硬件的。 2、计算机系统的资源可分成哪几类?试举例说明。 答:包括两大类,硬件资源和信息资源。硬件资源分为处理器、I/O设备、存储器等;信息资源分为程序和数据等。 3.什么是操作系统?操作系统在计算机系统中的主要作用是什么? 答:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。 操作系统在计算机系统中主要起4个方面的作用。 (1)服务用户观点——操作系统提供用户接口和公共服务程序 (2)进程交互观点——操作系统是进程执行的控制者和协调者 (3)系统实现观点——操作系统作为扩展机或虚拟机 (4)资源管理观点——操作系统作为资源的管理者和控制者 4.操作系统如何实现计算与操作过程的自动化? 答:大致可以把操作系统分为以下几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统能按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率 5.操作系统要为用户提供哪些基本的和共性的服务? 答:(1)创建程序和执行程序;(2)数据I/O和信息存取;(3)通信服务;(4)差错检测和处理。为了保证高效率、高质量的工作,使得多个应用程序能够有效的共享系统资源,提高系统效率,操作系统还具备一些其他的功能:资源分配,统计,保护等。 6.试述操作系统所提供的各种用户接口。 答:操作系统通过程序接口和操作接口将其服务和功能提供给用户。程序接口由一组系统调用组成,在应用程序中使用“系统调用”可获得操作系统的低层服务,访问或使用系统管理的各种软硬件资源,是操作系统对外提供服务和功能

计算机系统结构实验1预习报告

计算机系统结构实验 实验1:MIPS指令系统和MIPS体系结构 (预习报告) 姓名: 学号: 班级:

大连理工大学实验预习报告 学院:______________________专业:_______________________班级:_____________________ 姓名:______________________学号:_______________________ 实验时间:__________________实验室:__________________实验台:__________________ 指导老师签字:_________________________________________成绩:____________________ 实验目的: 了解熟悉MIPSsim模拟器; 熟悉MIPS指令系统及其特点; 熟悉MIPS体系结构 实验平台: 指令级和流水线操作级模拟器MIPSsim 资料准备: MIPS64指令系统介绍 1.MIPS的寄存器 32个64位通用寄存器(GPRs整数寄存器):R0-R31。R0的值永远是0。 32个64位浮点数寄存器FPRs:F0-F31。它们可以存放32个单精度浮点数(32位),也可以存放32个双精度浮点数(64位)。 MIPS提供了单精度和双精度操作的指令,而且还提供了在FPRs和GPRs之间传送数据的指令。2.MIPS的数据表示

整数:字节(8位)、半字(16位)、字(32位)和双字(64位)。 浮点数:单精度浮点数(32位)和双精度浮点数(64位)。 MIPS64的操作是针对64位整数以及32位或64位浮点数进行的。字节、半字或字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们按照64位整数的方式进行运算。 3.MIPS的数据寻址方式 MIPS的数据寻址方式只有立即数寻址和偏移量寻址两种,立即数字段和偏移量字段都是16位。 寄存器间接寻址是通过把0作为偏移量来实现的,16位绝对寻址是通过把R0作为基址寄存器来完成的。 MIPS的存储器是按字节寻址的,地址是64位。由于MIPS是load-store结构,寄存器和存储器之间的数据传送都是通过load指令和store指令来完成的。所有存储器访问都必须边界对齐。 4.MIPS的指令格式 指令格式简单,其中操作码6位。按不同类型的指令设置不同的格式,共有3种格式,分别对应I指令、R指令和J指令。在这3种格式中,同名字段的位置固定不变。 I类指令 包括所有的load和store指令、立即数指令、分支指令、寄存器跳转指令、寄存器链接跳转指令。其中立即数字段位16位,用于提供立即数或偏移量。 1)load指令 2)store指令 3)立即数指令 4)分支指令 5)寄存器跳转、寄存器跳转并链接

计算机体系结构实验报告二

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。 二、实验内容: 1. 用WinDLX模拟器运行程序structure_d.s 。 2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。 3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行 周期数的百分比。 4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 三、实验程序structure_d.s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit <- this is a comment !! A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

四、实验过程 打开软件,load structure_d.s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面的数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关的部件:译码部件。 2)第二个结构相关:ADDI R2, R2, #8,与第一个结构相关类似。由于数据相关, 上一条指令暂停在ID阶段,所以导致下一条指令发生结构相关。

计算机系统结构教程课后答案

1.7 某台主频为400MHz 的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下: 指令类型 指令执行数量 平均时钟周期数 整数 45000 1 数据传送 75000 2 浮点 8000 4 分支 1500 2 求该计算机的有效CPI 、MIPS 和程序执行时间。 解: 1(/)n i i i CPI CPI IC IC ==?∑ (1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776 (2)MIPS 速率=f/ CPI =400/1.776 =225.225MIPS (3)程序执行时间= (45000×1+75000×2+8000×4+1 500×2)/400=575s 1.9 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少? 解:由题可知: 可改进比例Fe=40% = 0.4 部件加速比Se = 10 根据()011 1.5625 (10.4)0.4/101n n T S Fe T Fe Se ====-+-+ 1.10 计算机系统中有三个部件可以改进,这三个部件的部件加速比为: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10 (1) 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10? (2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少? 解:(1)在多个部件可改进情况下,Amdahl 定理的扩展: ()011231123123n n T S Fe Fe Fe T Fe Fe Fe Se Se Se == ---++ + 已知S1=30,S2=20,S3=10,Sn =10,F1=0.3,F2=0.3,得: 得F3=0.36,即部件3的可改进比例为36%。 (2)设系统改进前的执行时间为T ,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T ,不可改进部分的执行时间为()1123Fe Fe Fe ---=0.2T 。

大连理工大学计算机系统结构实验-实验四

大连理工大学实验报告计算机系统结构实验 实验四Cache性能分析 学院(系):电子信息与电气工程学部专业:计算机科学与技术 学生姓名: 班级: 学号: 大连理工大学 Dalian University of Technology

实验四Cache性能分析 一、实验目的和要求 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。 (4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。 二、实验步骤与操作方法 1、Cache容量对不命中率的影响。 (1)启动MyCache。 (2)用鼠标单击“复位”按钮,把各参数设置为默认值。 (3)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。 (4)选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在下表中记录各种情况下的不命中率。 表不同容量下Cache的不命中率 (5)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。

(6)根据该模拟结果,你能得出什么结论? 答:随着Cache容量的增大,不命中率降低,但是降低的幅度由较大差别,Cache容 量足够大以后,不命中率降到一定程度以后,降低效果不再明显。 2.相联度对不命中率的影响 (1)用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。 (2)选择一个地址流文件。 (3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。分别执行模拟器,然后在下表中记录各种情况下的不命中率。 表当容量为64KB时,不同相联度下Cache的不命中率 (4)把Cache的容量设置为256KB,重复(3)的工作,并填写下表。 表当容量为256KB时,不同相联度下Cache的不命中率 (5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名。

计算机系统结构张晨曦版课后答案

第1章计算机系统结构的基本概念 1.1 解释下列术语 层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现的机器。 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。 解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。 计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。 Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。 程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。 CPI:每条指令执行的平均时钟周期数。 测试程序套件:由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。 存储程序计算机:冯?诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。

北邮计算机系统结构-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)观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。 (2)考察增加浮点运算部件对性能的影响。 (3)考察增加forward部件对性能的影响。 (4)观察转移指令在转移成功和转移不成功时候的流水线开销。 注意:除(2)以外,浮点加、乘、除部件都只有一个;

计算机系统结构实验教程

MIPSsim使用说明 一、启动模拟器 双击MIPSsim.exe,即可启动该模拟器。MIPSsim是在Windows操作系统上运行的程序,它需要用.NET运行环境。如果你的机器没有该环境,请先下载和安装“Microsoft .NET Framework 2.0 版可再发行组件包”。 模拟器启动时,自动将自己初始化为默认状态。所设置的默认值为: ◆所有通用寄存器和浮点寄存器为全0; ◆内存清零; ◆流水寄存器为全0; ◆清空时钟图、断点、统计数据; ◆内存大小为4096字节; ◆载入起始地址为0; ◆浮点加法、乘法、除法部件的个数均为1; ◆浮点加法、乘法、除法运算延迟分别为6、7、10个时钟周期; ◆采用流水方式; ◆不采用定向机制; ◆不采用延迟槽; ◆采用符号地址; ◆采用绝对周期计数。 当模拟器工作在非流水方式下(配置菜单中的“流水方式”前没有“√”号)时,下面叙述中有关流水段的内容都没有意义,应该忽略之。 二、MIPSsim的窗口 在流水方式下,模拟器主界面中共有7个子窗口,它们是:代码窗口、寄存器窗口、流水线窗口、时钟周期图窗口、内存窗口、统计窗口和断点窗口。每一个窗口都可以被收起(变成小图标)、展开、拖动位置和放大/缩小。当要看窗口的全部内容时,可以将其放大到最大。 在非流水方式下,只有代码窗口、寄存器窗口、内存窗口和断点窗口。 1. 代码窗口 代码窗口给出内存中代码的列表,每条指令占一行,按地址顺序排列。每行有5列(当全部显示时):地址、断点标记、指令的机器码、流水段标记和符号指令。如图2.1所示。

图2.1 代码窗口 图中不同抹色的行代表相应的指令所处的执行段。黄色代表IF段,绿色代表ID段,红色代表EX段,青色代表MEM段,棕色代表WB段。 该窗口中各列的含义如下: ◆地址:以16进制的形式给出。内存是按字节寻址的,每条指令占4个字节。当采用 符号地址时,会在相应的位置给出汇编程序中出现的标号。 ◆断点标记:如果在该指令处设有断点,则显示相应的标记。断点标记的形式为B.X (X为段名),表示该断点是设置在该指令的“X”段。例如,若某行的断点标记为“B.EX”,则表示在该指令的EX段设置了断点。 当模拟器工作在非流水方式下时,断点的标记为B。 ◆机器码:该行所对应的指令的十六进制机器码。若该行无指令,则仅仅显示4字节 数据; ◆流水段标记:表示当该指令正在执行时,它在当前周期该指令所处的流水段。当模 拟器工作在非流水方式下时,它没有意义。 ◆符号指令:机器代码所对应的符号指令。 在该窗口中选中某行(用鼠标左键单击),然后再点击鼠标右键,就会弹出菜单:设置断点,清除断点,它们分别用于在所选指令处设置断点和清除断点。 ●设置断点 选择(点击)要设断点的指令→点击右键→“设置断点”,弹出“设置断点”小对话框,在“段”的下拉框中选择断点所在的流水段(在非流水方式下,不存在该下拉框),单击“确定”即可。 ●清除断点 选择(点击)指令→点击右键→“清除断点”,则设置在该指令处的断点被删除。

计算机系统结构实验报告

计算机系统结构实验报告姓名 学号 指导老师 实验一、流水线中的相关 一、实验目的 1. 掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 二、实验平台 WinDLX模拟器。 三、实验内容、步骤及实验结果 1.用WinDLX模拟器执行下列三个程序: 1>求阶乘程序fact.s 2>求最大公倍数程序gcm.s 3>求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 结果总结: 三种方式: 步进的方式是按快捷键F7或者选择菜单栏Execute中的Single Cycle; 连续的方式是按快捷键F5或者选择Execute中的Run; 设置断点是通过选择window菜单栏中的code,然后在菜单栏中多出一项code项,选中你想要插入的指令,在多出来的code项中找到set breakpoint,即可插入断点,然后按F5执行即可。 1.用WinDLX运行fact.s Pipeline图 指出了每个功能段所进行的具体指令,点击指令还可以看到指令的具体相关的其他方面的内

容。 时空图 更加直观的形式显示出了在某个时间周期某个功能段所执行的具体的指令。 Register图 指出了各个寄存器和存储器的值. Statistics图 指出了指令的相关分析数据,例如,执行了53个cycles,2条指令在流水线中等相关的总结信息。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 资源相关的指令: addd f0,f0,f4 addd f2,f0,f2(发生先写后读的数据相关导致消除了资源相关) 由图可知是因为只有一个faddEX的运算部件,而它需要两个时钟周期,当第一条addd指令执行EX段时,第二条指令势必要等一个周期等faddEX部件空闲了才能够使用。但是,同时由于这两条指令存在先写后读数据相关,暂停一个周期之后没有了资源相 关. 单条指令的详细资源冲突图 因为Statistics图中的分析数据没有看见structural stall,但是根据图知道这个存在addd f2,f0,f2时的资源冲突,大概循环了6次,总共时钟周期是142个,所以资源相关引起的暂停的时钟周期的个数是6个,暂停时钟周期数占总执行周期数的百分比为6/142= 4.3% Statistics数据分析图

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

实验一流水线相关 一.实验目的 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之后的实验数据如下图:

相关文档
相关文档 最新文档