系统结构实验报告

合集下载

计算机系统结构实验报告

计算机系统结构实验报告

电子科技大学实验报告结果分析:观察三到九周期的ealu信号分别为(10,1,1,10,1,10,10),第九个周期的ealu为10,该周期执行的指令是sub r2 r1 r3;可见第一条指令赋值r1=10;第二条指令赋值r2=1;所以最后一条指令sub r1 r1 r2执行后结果为9,符合条件。

当有数据相关时,就会出问题,再观察第五、六、七两个周期,指令的执行结果均为1。

故该程序不能解决数据相关问题。

(二) 汇编器实现2.1自行设计与所给出的流水线指令的汇编格式,在下表中写出。

指令指令意义Op[31:26] Op2 [25:20] [19:15] [14:10] [9:5] [4:0]如上图所示,相邻的两条指令中,如果第二条指令的两个源操作数寄存器与上一条指令的目的操作数寄存器相同,那么第二条指令在译码周期从寄存器堆中取源操作数值的时候,上一条指令还只在执行周期,还没有将最后结果写回到相应的寄存器中,因此第二条指令取如上图所示,在直接相邻的两条产生数据相关的指令之间插入三条空指令,这样在第二条指令译码之前,第一条指令已经将结果写回,第二条指令取到的源操作数的值是最新的值,数据相关就消除了。

以上情况针对相邻的两条产生数据相关指令的分析,而对于中间隔了一条或两条无数据上图左边部分就是汇编器实现部分的流程图,在此基础上进行扩展,即如箭头所指方向,中间两步替代为右边部分。

)测试程序指令:xor r2, r2, r2add r3, r2, r1xor r2, r2, r2addi r1, r1, 20如上图所示,在产生数据相关的指令前插入了空指令“addi r0 r0 0”。

在xilinx中的仿真结果:。

计算机系统结构实验报告

计算机系统结构实验报告

计算机系统结构实验报告实验目的:掌握计算机系统的基本结构和工作原理,了解计算机系统的组成部分及其相互关系。

实验仪器和材料:计算机硬件设备(主机、硬盘、内存、显卡等)、操作系统、实验指导书、实验报告模板。

实验原理:实验步骤:1.搭建计算机硬件设备,将主机、硬盘、内存、显卡等组装连接好。

2. 安装操作系统,如Windows、Linux等。

3.启动计算机,进入操作系统界面。

4.打开任务管理器,查看CPU的使用情况。

5.打开任务管理器,查看内存的使用情况。

6.运行一些应用程序,观察CPU和内存的使用情况。

7.尝试使用输入输出设备,如键盘、鼠标等。

实验结果:通过实验,我们可以观察到计算机系统的硬件部分和软件部分的工作情况。

通过任务管理器,我们可以查看到CPU的使用情况和内存的使用情况。

在运行应用程序时,我们可以观察到CPU和内存的使用情况的变化。

通过使用输入输出设备,我们可以与计算机进行交互操作。

实验分析:从实验结果可以看出,计算机系统的硬件部分和软件部分都是相互关联的。

CPU作为计算机的核心部件,负责执行各种指令,通过数据传输和计算来完成各种操作。

而内存则用于存储数据和程序,通过读写操作来完成对数据的处理。

硬盘则用于长期存储数据。

操作系统则是计算机系统的管理者,通过调度CPU和内存的使用来实现对计算机资源的分配。

结论:计算机系统是由硬件和软件部分组成的,其中硬件部分包括CPU、内存、硬盘等,软件部分包括操作系统、应用程序等。

计算机系统通过CPU 的运算和数据传输来实现各种操作。

通过实验,我们可以观察到计算机系统的工作情况,并深入了解计算机系统的组成和工作原理。

实验总结:通过本次实验,我们对计算机系统的基本结构和工作原理有了更深入的了解。

实验中,我们搭建了计算机硬件设备,安装了操作系统,并通过观察和分析实验结果,进一步认识到计算机系统的组成部分和各部分之间的相互关系。

通过操作输入输出设备,我们还实践了与计算机进行交互操作的过程。

计算机系统结构 实验报告 (截图 分析 总结)

计算机系统结构 实验报告 (截图 分析 总结)

实验一流水线中的相关一、实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停二、实验平台WinDLX 模拟器三、实验内容和步骤1.用WinDLX模拟器执行下列三个程序:(分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。

熟练掌握WinDLX的操作和使用。

)●求阶乘程序fact.s⏹步进的运行方式:步进的运行方式是指,每次控制只执行一条语句,快捷键为F7键:图1-1 单步运行测试⏹设置断点的运行方式:鼠标点击某行,按下“Insert键”,设置断点:图1-2 设置断点图1-3 断点设置成功,按F5运行至断点⏹连续的运行方式:通过按下F5键,可直接运行至断点处;按下F8键,并在对话框内键入跳跃的步数,可以直接跳转指定的步数:图1-4 设置跳转步数●求最大公倍数程序gcm.s,观察程序在流水线中的执行情况:●求素数程序prim.s,观察CPU 中寄存器和存储器的内容2. 用WinDLX运行程序structure_d.s通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。

●存在资源相关的指令、导致资源相关的部件⏹两条指令同时访问寄存器f4,造成资源相关:⏹两条指令同时访问ALU,造成资源相关:●由资源相关引起的暂停时钟周期数、暂停时钟周期数占总执行周期数的百分比由资源相关引起的暂停时钟周期数:30;总执行周期数:139;暂停时钟周期数占总执行周期数的百分比:21.6%3. 在采用、以及不采用定向技术的情况下,分别用WinDLX 运行程序data_d.s(记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;并计算采用定向技术后性能提高的倍数)●采用定向技术:(左下图)⏹计算暂停时钟周期数占总执行周期数的百分比:30/128=23.4%图3-1 采用定向技术图3-2 不采用定向技术●不采用定向技术:(右上图)⏹计算暂停时钟周期数占总执行周期数的百分比:104/202=51.5%●采用定向技术后性能提高的倍数:202/128=1.58倍四、实验总结●资源相关对CPU性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。

计算机系统结构实验报告模板

计算机系统结构实验报告模板
调度前的源代码只需给出关键代码部分注明各种相关的位置调度后的源代码注明使用的策略并加以说明调度前的测试数据vs调度后的测试数据分析回答以下问题
计算机系统结构实验报告
班级
3班
实验日期
3.28
实验成绩
姓名
王志刚
学号
23020112204884
实验名称
指令调度和分支延迟







实验目的:
加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;
调度前代码:
loop:
ADDI $r1,$r1,1
MUL $r2,$r1,$r1
ADDIU $r4,$r4,-1
BGTZ $r4,loop
调度后代码:
loop:
ADDI $r1,$r1,1
ADDI $r2,$r1,1
MUL $r5,$r1,$r1
MUL $r6,$r2,$r2
ADDI $r3,$r2,1
3、选择“配置”--“流水方式”选项;
4、用指令调度解决流水线中的数据冲突
(1)启动MIPSsim;.s;
(3)关闭定向功能,“配置”—“定向”;
(4)执行载入程序,通过查看统计数据与始终周期图,找出并记录程序执行过程中各种冲突的次数没发生冲突的指令组合以及程序执行的总周期数。
ADD $r18,$r16,$r1;(发生结构冲突)
ADD $r18,$r16,$r1与
SW $r18,16($r1);(发生结构冲突和RAW冲突)
SW $r18,16($r1)与
LW $r20,8($r1);(发生结构冲突)
LW $r20,8($r1)与
MUL $r22,$r20,$r14;(发生RAW冲突)

体系结构实验报告

体系结构实验报告

|课程实验报告软件系统结构?\]专业软件工程学生姓名刘辉软件151班级|学号17指导老师孙莉*实验一C/S结构应用设计(1)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。

学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

本次实验目的:(1)熟悉并掌握二层C/S软件体系结构的相关知识;(2)掌握二层C/S结构应用系统的分析和设计;(3)掌握一种开发二层C/S结构应用系统的技术线路;:(4)实际开发出一个简单的基于二层C/S结构的应用实例——个人通讯录管理系统。

要求:(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据;(4)在中用C#语言编写表现层(UI)程序;(5)在中用C#语言编写业务逻辑层(BLL)程序;:(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。

二、实验环境奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。

三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。

该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。

联系人信息包括姓名、住址、电话。

整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能!四、实验操作过程在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQL Server 2000中建立数据库Contact,建立表friend。

计算机系统结构实验报告

计算机系统结构实验报告

计算机系统结构实验报告计算机系统结构实验报告引言:计算机系统结构是计算机科学领域中的重要课题,它研究计算机硬件和软件之间的关系,以及如何优化计算机系统的性能和效率。

本实验报告旨在介绍我们小组在计算机系统结构实验中的设计和实现过程,以及所获得的实验结果和经验。

一、实验目的计算机系统结构实验的目的是通过设计和实现一个简单的计算机系统,加深对计算机硬件和软件之间关系的理解,以及掌握计算机系统的组成和工作原理。

具体目标包括:1. 理解计算机系统的层次结构和组成部分。

2. 理解指令集架构和微指令集架构的区别。

3. 设计和实现一个简单的计算机系统,包括处理器、存储器和输入输出设备。

4. 测试和验证计算机系统的功能和性能。

二、实验设计与实现1. 计算机系统结构设计我们设计了一个基于冯·诺依曼体系结构的计算机系统,包括中央处理器(CPU)、存储器和输入输出设备。

CPU由控制单元和算术逻辑单元组成,控制单元负责指令的解码和执行,算术逻辑单元负责数据的运算和逻辑操作。

存储器用于存储指令和数据,我们选择了静态随机存储器(SRAM)作为主存储器。

输入输出设备包括键盘、显示器和磁盘。

2. 指令集架构设计我们选择了经典的冯·诺依曼指令集架构作为基础,定义了一套简单的指令集,包括算术运算、逻辑运算和数据传输等指令。

我们还设计了一套微指令集架构,用于实现指令的执行过程。

微指令集中包含了各种控制信号和操作码,用于控制CPU的工作。

3. 硬件设计与实现我们使用硬件描述语言(HDL)进行硬件设计和实现。

通过使用HDL,我们可以描述和模拟计算机系统的各个组成部分,并进行功能验证和性能分析。

我们使用Verilog HDL进行设计和实现,借助Verilog仿真器进行功能验证。

4. 软件设计与实现除了硬件设计和实现,我们还编写了一些软件程序,用于测试和验证计算机系统的功能和性能。

我们编写了一些简单的程序,包括算术运算、逻辑运算和数据传输等,用于测试CPU的指令执行和数据处理能力。

西安交大计算机系统结构实验报告.

西安交大计算机系统结构实验报告.

《计算机系统结构课内实验》实验报告第一次实验:记分牌算法和Tomasulo算法第二次实验:cache性能分析班级:物联网21姓名:李伟东学号:2120509011日期:2015.5.21第一次实验:记分牌算法和Tomasulo算法一、实验目的及要求1. 掌握DLXview模拟器的使用方法;2. 进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3. 理解记分牌算法和Tomasulo算法的基本思想,了解它们的基本结构、运行过程;4. 比较分析基本流水线与记分牌算法和Tomasulo算法的性能及优缺点。

二、实验环境DLXview模拟器三、实验内容1.用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;2.观察程序中出现的数据相关、控制相关、结构相关,并指出三种相关的指令组合;四、实验步骤将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上,(1)分别用基本流水线、记分牌算法和Tomasulo算法模拟,针对每一种模拟做如下分析:①统计程序的执行周期数和流水线中的暂停时钟周期数;②改变功能部件数目重新模拟,观察并记录性能的改变;③改变功能部件延迟重新模拟,观察并记录性能的改变;论述功能部件数目、功能部件延迟对性能的影响。

(2)记录运行记分牌算法时的功能部件状态表和指令状态表;(3)记录运行Tomasulo算法时的指令状态表和保留站信息;五、实验结果1)基本流水线原始即加法延迟2,乘法延迟5,实验结果显示该段程序运行了11个时钟周期增加了一个除法器。

加法器延迟2,乘法器延迟5,除法器延迟19。

实验结果显示该段程序运行了11个时钟周期。

增加除法器对程序的执行无影响。

加法器延迟2,乘法器延迟6,无除法器。

实验结果显示该段程序运行了12个时钟周期乘法器的延迟对程序执行有有影响。

加法器延迟1,乘法器延迟5。

计算机系统结构实验一MIPS指令系统和MIPS体系结构

计算机系统结构实验一MIPS指令系统和MIPS体系结构

计算机系统结构实验报告班级计算机2班实验日期2016.2.24实验成绩姓名殷凤学号22920132203917实验名称MIPS指令系统和MIPS体系结构实验目的要求实验目的及要求:了解和熟悉指令级模拟器;熟练掌握MIPSsim模拟器的操作和使用方法;熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;熟悉MIPS体系结构。

实验器材:实验平台采用指令级和流水线操作级模拟器MIPSsim;计算机一台。

实验内容、步骤及结果1. 阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言;2. 对照实验教程启动、配置MIPSsim.exe,参照使用说明,载入程序,多种执行方式查看结果;3. 补充实验的完成:a.求阶乘问题:解决方法:在代码最后加一句指令TEQ r0,r0思路:将自定义的整数存入一个整数寄存器r1,r2,“1”的值存入寄存器r3作为求阶乘时减一的用处,r2减一,与原值r1相乘结果存入r1,判断r2值是否已经减到0,是就运行结束,否则跳转继续r2减一与r1相乘,最后r1的内容就是最终结果。

结果截图:b.ALU运算求(X-Y)*2-(X+Y)/8问题:无思路:题目要求不可以使用乘除指令,则利用逻辑左移(SLL)一位实现乘2,利用逻辑右移(SRL)3实现除以8。

r1 r2中存放自定义的x y,r3中存放x-y的值,r4存放x+y的值,最后结果放在r5中。

结果截图:c.求补码问题:解决方法:把高32位和低32位之间base的差值4个字节事先存进寄存器r6问题:解决方法:改成LABLE1问题:如果是正数的话结果总是错误的解决方法:刚开始忘记判断正负了,如果是正数就直接存回存储器原来的位置,判断正负通过高32位(存在r2中)和十六进制数0x00…0080000000(寄存器r9)进行AND,如果结果等于0(与$r0比较),就为正数,否则就是负数。

思路:r1中放取字指令LW的base值,根据内存中的数据来决定,存储器中高32位数据取出来放进r2,低32位数据放进r3。

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

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

实验平台:WinDLX模拟器实验内容和步骤:一.用WinDLX模拟器执行下列三个程序:求阶乘程序fact.s求最大公倍数程序gcm.s求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。

熟练掌握WinDLX的操作和使用。

1、求阶乘程序fact.s(1)分别以步进、连续、设置断点的方式运行程序图1.1.1 求阶乘程序fact.s运行统计数据步进方式运行图1.1.2 求阶乘程序fact.s运行统计数据连续方式运行(2)数据统计图1.1.4 求阶乘程序fact.s运行统计数据图1.1.5 求阶乘程序fact.s流水线执行情况图1.1.6 求阶乘程序fact.s寄存器使用情况2、求最大公倍数程序gcm.s图1.2.1 求最大公倍数程序gcm.s运行统计数据图1.2.2 求最大公倍数程序gcm.s流水线执行情况图1.2.3 求最大公倍数程序gcm.s寄存器使用情况3、求素数程序prim.s图1.3.1 求素数程序prim.s运行统计数据图1.3.2 求素数程序prim.s流水线执行情况图1.3.3 求素数程序prim.s寄存器使用情况二、用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。

图1.4.1 程序structure_d.s流水线执行过程其中,有如下几种情况,产生了资源相关:(1)导致资源相关的部件:浮点数寄存器f4addd f0,f0,f4 指令在译码阶段ID停滞1周期(2)导致资源相关的部件:ALUaddi r2,r2,0x8 指令在执行阶段intEX停滞1周期图1.4.2 程序structure_d.s运行统计信息由资源相关引起的暂停周期数为:30总执行周期数为:139暂停周期数占总执行周期数的百分比:21.58%分析:资源相关使相关指令在流水线上停滞,降低了执行效率。

解决方法:在合理的指令调度范围内,尽量避免执行重复的指令。

尽量避免同一寄存器的频繁使用,若无法避免,则使用寄存器换名的方法。

三、在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。

图1.5.1 不采用定向技术,程序data_d.s运行统计信息由数据相关引起的暂停时钟周期数为:104总执行周期数为:202暂停周期数占总执行周期数的百分比:51.48%在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。

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

图1.5.2 采用定向技术,程序data_d.s运行统计信息由数据相关引起的暂停时钟周期数为:30总执行周期数为:128暂停周期数占总执行周期数的百分比:23.44%通过这两个统计可以发现,在使用定向技术下运行程序指令将大幅降低数据相关发生的次数,这大幅提升了CPU的性能。

实验二循环展开及指令调度实验目的:1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;3. 了解循环展开、指令调度等技术对CPU性能的改进。

实验平台:WinDLX模拟器实验内容和步骤:1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)程序代码:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONEcvti2f f7,f1nopdivf f1,f8,f7divf f2,f1,f7divf f13,f2,f7divf f10,f3,f7addf f5,f12,f7addf f3,f1,f2multf f6,f4,f5Finish:trap 0(2)通过Configuration菜单中的“Floating point stages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期;图2.1.1 设置运算器数量及时钟周期(3)用WinDLX运行程序。

记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;图2.1.2 程序执行统计信息如图,程序总共执行了23个时钟周期,共有12个时钟周期的系统停滞。

经分析,程序执行过程中出现了结构相关:图2.1.3 流水线执行情况如图,在时钟周期-11、-12时,指令divf f13,f2,f7需要在其执行阶段使用除法运算器,而此时两个除法运算器都在使用中,故产生了器件冲突,结构相关导致该指令在译码阶段停滞2个时钟周期。

(4)采用指令调度技术对程序进行指令调度,消除相关;通过指令调度,程序的执行顺序调整为:.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONEcvti2f f7,f1nopdivf f1,f8,f7addf f5,f12,f7multf f6,f4,f5divf f2,f1,f7divf f10,f3,f7addf f3,f1,f2divf f13,f2,f7Finish:trap 0(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;图2.1.4 指令调度后,程序执行统计信息图2.1.5 指令调度后,流水线执行情况可见,执行总周期数为21,由于器件冲突产生的结构相关已经部分消除。

指令调度后,CPU运行周期是调度前的21/23=0.91倍。

2. 用循环展开、寄存器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;程序代码:.datax: .word 1i: .word 4.text.global mainmain: lf f1,xlf f9,imovf f5,f1Loop: eqf f9,f0bfpt Finishaddf f0,f0,f1divf f3,f4,f5j LoopFinish:trap 0(2)用WinDLX运行该程序。

记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;图2.2.1 程序执行统计情况总计执行周期:38总计停滞周期:7图2.2.2 流水线执行情况(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。

然后对新的循环体进行寄存器换名和指令调度;展开后的程序代码:.datax: .word 1i: .word 4.text.global mainmain: lf f1,xlf f9,imovf f5,f1divf f3,f4,f5divf f3,f4,f5divf f3,f4,f5divf f3,f4,f5trap 0(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;图2.2.3 循环展开后,程序执行统计情况总计执行周期:20总计停滞周期:13图2.2.4 循环展开后后,流水线执行情况可见,在相同器件的情况下,指令调度对于提高CPU性能的意义非常重大。

实验三Cache性能分析实验目的:1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2.了解Cache的容量、相联度、块大小对Cache性能的影响;3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;4.理解Cache失效的产生原因以及Cache的三种失效;5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;实验平台:SimpleScalar模拟器实验内容及步骤:1.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;2.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;3.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;4.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;5.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率。

分析不同的替换算法对Cache性能的影响。

测试程序:用于实验的测试程序可以使用现有的,即benchmark目录下的所有程序;也可以自己用C 语言直接生成各类典型程序比如:数学运算类、输入输出类等,通过本环境提供的特定C 编译器,编译生成对应的xxx.out(默认是a.out)测试程序用于实验。

每个测试程序所需时间大概是10分钟,选择测试程序时注意从不同组中选择,以便使得出的结果不会因为对单项有所侧重而有失偏颇。

每个人从中选出4~6个测试程序进行测试。

实验内容及步骤:1.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;图3.1.1 默认配置下,Cache的失效次数与统计概率2.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;(1)-dl1:512:32:1:l (*2)图3.1.2 -dl1:512:32:1:l (*2)配置下,Cache的失效次数与统计概率(2)-dl1:1024:32:1:l (*4)图3.1.3 -dl1:1024:32:1:l (*4)配置下,Cache的失效次数与统计概率(3)-dl1:2048:32:1:l (*8)图3.1.4 -dl1:2048:32:1:l (*8)配置下,Cache的失效次数与统计概率(4)-dl1:16384:32:1:l (*64)图3.1.5 -dl1:16384:32:1:l (*64)配置下,Cache的失效次数与统计概率经分析,扩大Cache容量有助于失效率的降低,提高Cache性能,但在cache集合数达到1024之后并没有明显的变化,这可能是由于饱和造成的。

相关文档
最新文档