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

计算机系统结构实验教程

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

实验一流水线及流水线中的冲突

实验目的

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:

EX:

MEM:

WB:

画出这时的时钟周期图。

6. 这时各流水寄存器中的内容为:

IF/ID.IR:

IF/ID.NPC:

ID/EX.A:

ID/EX.B:

ID/EX.Imm:

ID/EX.IR:

EX/MEM.ALUo:

EX/MEM.IR:

MEM/WB.LMD:

MEM/WB.ALUo:

MEM/WB.IR:

7. 观察和分析结构冲突对CPU性能的影响,步骤如下:

(1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中);

(2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件;

(3) 记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比;

(4)把浮点加法器的个数改为6个;

(5)再次重复上述(1)~(3)的工作;

(6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。

8. 观察数据冲突并用定向技术来减少停顿,步骤如下:

(1)把浮点加法器的个数改为1个;

(2)加载data_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中);

(3)关闭定向功能。这是通过在“配置”菜单中去选“定向”(即使得该项前面没有“√”

号)来实现的;

(4)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突;

(5)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比;

(6)复位CPU;

(7)打开定向功能。这是通过在“配置”菜单中勾选“定向”(即使得该项前面有一个“√”号)来实现的;

(8)用单步执行一周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与(3)的结果进行比较;

(9)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数。计算采用定向技术后性能提高的倍数。

二、指令调度和延迟分支

1. 启动MIPSsim。

2. 根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)

3. 勾选配置菜单中的“流水方式”,使模拟器工作于流水方式下。

4. 用指令调度技术解决流水线中的结构冲突与数据冲突。

(1)启动MIPSsim;

(2)通过“配置”菜单中的“常规配置”项把加法﹑乘法﹑除法部件的个数设置为两个,把它们的延迟时间都设置为3个时钟周期;

(3)用MIPSsim的“文件”菜单中的“载入程序”来加载schedule.asm(在模拟器所在文件夹下的“样例程序”文件夹中);

(4)关闭定向功能。这是通过在“配置”菜单中去选“定向”(即使得该项前面没有“√”

号)来实现的。

(5)执行所载入的程序,通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合,以及程序执行的总时钟周期数;

(6)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序放到after-schedule.asm中;

(7)载入after-schedule.asm;

(8)执行该程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;

(9)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。

5. 用延迟分支减少分支指令对性能的影响。

(1)启动MIPSsim;

(2)载入branch.asm;

(3)关闭延迟分支功能。这是通过在“配置”菜单中去选“延迟分支”来实现的;

(4)执行该程序,观察并记录发生分支延迟的时刻,保存下其时钟周期图(可用拷屏的方法);

(5)记录执行该程序所花的总时钟周期数;

(6)假设延迟槽为一个,对branch.asm进行指令调度,然后存到delayed-branch.asm中;(7)载入delayed-branch.asm;

(8)打开延迟分支功能;

(9)执行该程序,观察其时钟周期图,保存下其时钟周期图;

(10)记录执行该程序所花的总时钟周期数;

(11)对比上述两种情况下的时钟周期图;

(12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能。论述延迟分支对于提高CPU性能的作用。

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

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对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之后的实验数据如下图:

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