计算机系统结构实验报告
- 格式:doc
- 大小:920.50 KB
- 文档页数:22
电子科技大学实验报告结果分析:观察三到九周期的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性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。
计算机组成实验报告计算机组成实验报告(共3篇)篇一:《计算机组成与结构》实验报告11 .实验目的:1).学习和了解TEC-2000 十六位机监控命令的用法;2).学习和了解TEC-2000 十六位机的指令系统;3).学习简单的TEC-2000 十六位机汇编程序设计;2.实验内容:1).使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况;3、实验步骤1).关闭电源,将大板上的COM1 口与PC 机的串口相连;2).接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3).置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;4).按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITOR Version 1.0 April 2001Computer Architectur Lab.,Tsinghua University Programmed by He Jia >5).用R 命令查看寄存器内容或修改寄存器的内容a.在命令行提示符状态下输入:R↙;显示寄存器的内容图片已关闭显示,点此查看图片已关闭显示,点此查看b.在命令行提示符状态下输入:R R0↙;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值,再用R 命令显示寄存器内容,则R0 的内容变为0036。
图片已关闭显示,点此查看6).用D 命令显示存储器内容在命令行提示符状态下输入:D 2000↙会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的 D 命令,起始地址会自动加128(即80H)。
计算机网络体系结构实验报告FTP 服务安装与配置一、实验内容使用IIS功能新建FTP站点,并对站点进行账户管理以及安全管理,同时使用另外一台机器对其进行访问二、实验目的掌握Windows Server中的IIS配置FTP服务器,同时掌握WireShake抓包工具三、实验环境3.1 实验环境服务端IP:172.23.202.3服务端系统:Windows Server 2003服务端工具:IIS管理工具客户端:172.30.154.88客户端系统:MacOS Mojave 10.14.6客户端工具:terminal终端、WireShake抓包工具、Finder3.2 网络拓扑图3.2 IIS配置FTP服务器流程四、实验原理文件传输协议(File Transfer Protocol,FTP),是用在网络上进行文件传输的一套标准协议。
它工作在应用层,使用TCP运输层传输协议,即客户和服务器建立连接需要进行三次握手的过程,同时释放连接的时候也需要进行四次挥手的过程。
FTP服务系统是典型的C/S工作模式,在网络上的两个站点进行文件传输时,要求服务器主机运行FTP服务程序,同时客户主机也应在其计算机上运行相应的FTP客户程序或者通过命令行来直接调用FTP来来进行服务。
FTP在服务器主机和客户主机之间需要建立两次连接,一个是控制连接,端口号为21,用于传出控制信息;另外一个是数据连接,端口号为20(或其他),用于数据的传送。
采用分开传送的方法大大提高了FTP的效率。
所以在建立连接时需要建立两次TCP连接。
并且每当一个文件传输结束时,数据连接将关闭,传输下一个文件时再打开,而控制连接则持续保持连接状态。
FTP协议的连接模式分为被动模式(PASV)以及主动模式(PORT)。
被动模式为服务器处于运行的状态,同时开启FTP服务系统,处于监听状态。
客户端通过FTP客户程序对其进行发起连接以及文件传输等功能。
而主动模式则与其相反,客户端处于监听状态,由服务器发起连接。
实验名称:计算机组成原理实验实验目的:1. 理解计算机组成原理的基本概念和原理。
2. 掌握计算机各个组成部件的功能和相互关系。
3. 通过实验加深对计算机组成原理的理解和应用。
实验时间:2023年X月X日实验地点:计算机实验室实验器材:1. 计算机组成原理实验箱2. 计算机组成原理实验指导书3. 计算器4. 计算机组成原理实验数据记录表实验内容:一、实验一:计算机硬件系统结构1. 实验目的:了解计算机硬件系统的基本结构,包括中央处理器(CPU)、存储器、输入输出设备等。
2. 实验步骤:(1)观察实验箱的硬件组成,识别各个硬件部件。
(2)了解各个硬件部件的功能和相互关系。
(3)记录实验数据。
3. 实验结果与分析:实验结果显示,计算机硬件系统主要由CPU、存储器、输入输出设备等组成。
CPU负责处理数据,存储器负责存储数据,输入输出设备负责与用户进行交互。
二、实验二:CPU工作原理1. 实验目的:了解CPU的工作原理,包括指令周期、时钟周期、数据通路等。
2. 实验步骤:(1)观察实验箱的CPU模块,识别各个部件。
(2)了解CPU各个部件的功能和相互关系。
(3)进行指令周期和时钟周期的实验,记录实验数据。
3. 实验结果与分析:实验结果显示,CPU的工作原理包括指令周期和时钟周期。
指令周期是指执行一条指令所需的时间,时钟周期是指CPU中时钟信号的周期。
实验数据表明,CPU通过数据通路进行指令的执行,完成数据处理。
三、实验三:存储器工作原理1. 实验目的:了解存储器的工作原理,包括随机存储器(RAM)、只读存储器(ROM)等。
2. 实验步骤:(1)观察实验箱的存储器模块,识别各个存储器。
(2)了解存储器的功能和特点。
(3)进行存储器读写实验,记录实验数据。
3. 实验结果与分析:实验结果显示,存储器包括RAM和ROM。
RAM具有读写功能,而ROM只能读。
实验数据表明,存储器通过地址译码器进行寻址,实现数据的读写。
计算机组成原理实验报告引言计算机组成原理是计算机科学与技术的基础课程之一,通过实验可以更好地理解和掌握计算机的组成和工作原理。
本文将结合实验的过程和结果,详细论述计算机组成原理的一些关键概念和实际应用。
一、实验目的本次实验的目的是通过搭建一个简单的计算机系统,深入了解计算机的各个组成模块,如中央处理器(CPU)、存储器、输入输出设备等,并验证计算机的基本工作原理。
二、实验内容本次实验分为两个部分,第一部分是计算机系统的搭建,包括CPU的设计与实现、存储器的设计与实现等;第二部分是对已搭建的系统进行功能测试,包括寄存器的读写、指令的执行等。
1. CPU的设计与实现CPU是计算机的核心处理单元,它负责执行各种指令,并控制计算机的运行状态。
在本次实验中,我们采用了冯·诺依曼结构的单周期CPU设计,包括指令寄存器、算术逻辑单元、控制单元等组成部分。
通过在实验中的操作和执行,我们深入理解了指令的编码方式、运算的过程等。
2. 存储器的设计与实现存储器是计算机系统中的主要组成部分,用于存放指令和数据。
在本次实验中,我们设计了一个简单的存储器,采用了随机存取存储器(RAM)的结构。
通过实验中的存储器读写操作,我们了解了存储器的寻址方式、数据的存取过程等。
三、实验结果与分析经过实验的搭建和测试,我们成功完成了计算机系统的建设,并验证了其基本功能。
在测试过程中,我们发现了一些问题和改进之处,例如CPU的时钟频率过低导致指令执行速度较慢,存储器的容量不足等。
通过对这些问题的研究和分析,我们能够进一步优化和改进计算机系统的性能。
四、实验心得体会通过本次实验,我进一步加深了对计算机组成原理的理解和掌握。
实验中我不仅学到了理论知识,还通过动手搭建和操作实际的计算机系统,加深了对计算机组成原理的实际应用的理解。
同时,我也意识到计算机的设计和实现是一个综合性强的工程,需要考虑多方面的问题,如硬件的选择与优化、指令的设计与调度等。
计算机系统结构实验报告计算机系统结构实验报告引言:计算机系统结构是计算机科学领域中的重要课题,它研究计算机硬件和软件之间的关系,以及如何优化计算机系统的性能和效率。
本实验报告旨在介绍我们小组在计算机系统结构实验中的设计和实现过程,以及所获得的实验结果和经验。
一、实验目的计算机系统结构实验的目的是通过设计和实现一个简单的计算机系统,加深对计算机硬件和软件之间关系的理解,以及掌握计算机系统的组成和工作原理。
具体目标包括: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。
计算机系统结构实验报告3.1流水线中的相关一、实验目的1. 掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
二、实验平台WinDLX模拟器。
三、实验内容、步骤及实验结果1.用WinDLX模拟器执行下列三个程序:求阶乘程序fact.s求最大公倍数程序gcm.s求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
结果总结:三种方式:步进的方式是按快捷键F7或者选择菜单栏Execute中的Single Cycle;连续的方式是按快捷键F5或者选择Execute中的Run;设置断点是通过选择window菜单栏中的code,然后在菜单栏中多出一项code 项,选中你想要插入的指令,在多出来的code项中找到set breakpoint,即可插入断点,然后按F5执行即可。
以fact.s为例Pipeline图指出了每个功能段所进行的具体指令,点击指令还可以看到指令的具体相关的其他方面的内容。
时空图更加直观的形式显示出了在某个时间周期某个功能段所执行的具体的指令。
Register图指出了各个寄存器和存储器的值,如执行完了第一条加法指令之后,R1=OX00001000。
Statistics图指出了指令的相关分析数据,例如,执行了6个cycles,4条指令在流水线中等相关的总结信息。
执行结果图gcm.s、prim.s类似,所以只给出运行的结果图gcm.s结果图Prim.s结果图2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。
结果图资源相关的指令:addd f0,f0,f4addd f2,f0,f2(发生先写后读的数据相关导致消除了资源相关)由图可知是因为只有一个faddEX的运算部件,而它需要两个时钟周期,当第一条addd指令执行EX段时,第二条指令势必要等一个周期等faddEX部件空闲了才能够使用。
但是,同时由于这两条指令存在先写后读数据相关,暂停一个周期之后没有了资源相关单条指令的详细资源冲突图因为Statistics图中的分析数据没有看见structural stall,但是根据图知道这个存在addd f2,f0,f2时的资源冲突,大概循环了6次,总共时钟周期是139个,所以资源相关引起的暂停的时钟周期的个数是6个,暂停时钟周期数占总执行周期数的百分比为6/139 = 4.3%Statistics数据分析图资源相关降低CPU性能,并行运算的速度降低,解决资源相关的方法有停顿几个时钟周期法(针对访存冲突和设备资源冲突(轮流单个使用))或者是增加硬件设备(解决设备资源冲突)。
3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding 选项前的勾选符),用WinDLX运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。
重复上述3中的工作,并计算采用定向技术后性能提高的倍数。
1、不定向技术:总时钟周期=202 数据相关引起的暂停时钟周期=104暂停时钟周期数占总执行周期数的百分比=51.48%2、定向技术:总时钟周期=128 数据相关引起的暂停时钟周期=30暂停时钟周期数占总执行周期数的百分比=23.44%定向技术的加速比 = 202/128 = 1.578四、心得体会通过使用WinDlX对指令模拟与分析,我们对流水线的执行过程更加熟悉,也对执行时出现的问题,如资源相关,数据相关等产生原因有了清晰的认识,进一步加深了使我们对流水线的理解。
3.2循环展开及指令调度一、实验目的1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;3. 了解循环展开、指令调度等技术对CPU性能的改进。
二、实验平台WinDLX模拟器。
三、实验内容、步骤及实验结果1.用指令调度技术解决流水线中的结构相关与数据相关(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期)(2)通过Configuration菜单中的“Floating point stages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期;(3)用WinDLX运行程序。
记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;(4)采用指令调度技术对程序进行指令调度,消除相关;(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;(6)根据记录结果,比较调度前和调度后的性能。
论述指令调度对于提高CPU 性能的意义。
1)代码:divf f2,f5,f6divf f1,f2,f6divf f3,f1,f5divf f0,f4,f7addf f14,f0,f6addf f15,f5,f7multf f20,f4,f6multf f21,f5,f72)设置运算部件个数以及运算时钟周期数Pipeline图以下为出现的数据相关先写后读相关由于只有两个除法部件,所以出现了功能部件的冲突。
总的执行周期是38指令调度后代码:将无关指令放在一起执行,相关指令分开尽量避免数据相关divf f2,f5,f6multf f20,f4,f6multf f21,f5,f7divf f1,f2,f6addf f15,f5,f7divf f3,f1,f5divf f0,f4,f7addf f14,f0,f6Pipeline图Statistics图总执行时钟周期为35个。
(6)指令调度后,数据相关减少了,总时钟周期数减少了,效能提高了。
调度前的时钟周期数为38,调度后的时钟周期数减少为35,加速比 = 38/35= 1.082. 用循环展开、寄存器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;(2)用WinDLX运行该程序。
记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度;(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;(5)根据记录结果,比较循环展开、指令调度前后的性能。
带循环指令代码:求四个1相加的和,结果存在r2中.text.global mainmain:addi r1,r0,#4addi r2,r0,#0Loop: sgt r3,r1,r0bnez r3,Sub1trap 0Sub1:addi r2,r2,#1subi r1,r1,#1j Loop结果:总时钟周期是42个,5 raw stalls,循环了4次,结果r2 = 4循环展开:代码:.text.global mainmain:addi r1,r0,#4addi r2,r0,#0addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1trap 0结果:总时钟周期是15个,0 raw stalls,执行了4次,结果r2 = 4原因对比:是因为LOOP指令执行完后会有一个nop指令的延迟。
四、实验总结a)指令调度技术可以明显的优化指令执行的效率,通过指令调度使得功能部件被尽可能的充分使用,从而进一步加强指令执行的效率;b)循环在执行时会出现不同循环次数的执行过程中出现相关,导致数量增加,通过寄存器换名等方法,使得这种相关性数量下降。
3.3 Cache性能分析一、实验目的1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2.了解Cache的容量、相联度、块大小对Cache性能的影响;3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;4.理解Cache失效的产生原因以及Cache的三种失效;5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;二、实验平台SimpleScalar模拟器。
三、实验内容及步骤1.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;配置好了环境之后,用hello.c生成的a.out文件来进行模拟演示。
由图可知:Cache的总失效次数为458,容量失效和冲突失效都发生了替换总共为202,那么强制性冲突就为256。
2.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;测试程序为test-math。
Cache参数设定举例:-cache:dl1 dl1:2:32:4:r 第一个参数为集合数,第二个参数为块的大小,第三个参数为相联度,最后一个参数为策略。
改变集合数,设定块大小为32B,相联度为4路,采取LRU策略,来考虑容量对cache性能的影响。
*2:设定容量为2*32*4B时,结果如下:*4:设定容量为4*32*4B时,结果如下:*8:设定容量为8*32*4B时,结果如下:*64:设定容量为64*32*4B时,结果如下:从上面的数据中提取出有用的数据信息,制作下面的表。
容量大小总失效率总失效数容量失效和冲突失效数强制性失效数*2 0.1264 7265 7257 8*4 0.0744 4277 4261 16*8 0.0380 2180 2154 26*64 0.0100 575 319 256结论:随着cache容量的增大,总失效率减小,总失效数也减少,容量失效和冲突失效数也减小,但是强制性失效数反而升高。
3.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;测试程序为test-printf.参数dl1:2:32:1(2,4,8,64):l,固定其他的参数,只改变相联度的参数,观察相联度对cache性能的影响。