计算机系统结构 实验报告 (截图 分析 总结)
计算机体系结构实验报告
计算机体系结构实验报告实验目的:1.掌握计算机体系结构的基本概念和组成部分2.学会使用模拟器对计算机性能进行测试和优化3.理解计算机指令的执行过程和流水线工作原理4.掌握计算机性能指标的测量方法和分析技巧实验材料和工具:1.一台个人电脑2.计算机体系结构模拟器3.实验指导书和实验报告模板实验步骤:1.搭建计算机系统:根据实验指导书提供的指导,我们搭建了一个简单的计算机系统,包括中央处理器(CPU)、内存和输入输出设备。
2.编写测试程序:我们编写了一段简单的测试程序,用于测试计算机系统的性能。
3.运行测试程序:我们使用模拟器运行测试程序,并记录测试结果。
模拟器可以模拟计算机的执行过程,并提供各种性能指标的测量功能。
4.分析和优化:根据测试结果,我们对计算机系统的性能进行分析,并尝试优化系统设计和测试程序,以提高性能。
实验结果:通过测试程序的运行和性能指标的测量,我们得到了如下结果:1.计算机的时钟频率:根据模拟器显示的结果,我们得知计算机的时钟频率为1000MHz。
2. 指令执行时间:我们计算了测试程序的平均执行时间,得到了结果为5ms。
4.流水线效率:我们通过模拟器提供的流水线分析功能,得到了计算机流水线的平均效率为80%。
实验分析:根据测试结果1.提高时钟频率:通过增加时钟频率可以加快计算机的运行速度。
我们可以尝试调整计算机硬件的设计和制造工艺,提高时钟频率。
2.优化指令执行过程:我们可以通过优化指令的执行过程,减少执行时间。
例如,并行执行多个指令、增加指令缓存等。
3.提高流水线效率:流水线是提高计算机性能的关键技术,我们可以通过增加流水线级数和优化流水线结构,提高流水线效率。
4.增加并行计算能力:并行计算是提高计算机性能的重要途径,我们可以尝试增加计算机的并行计算能力,例如增加处理器核心的数量。
实验总结:通过本次实验,我们深入了解了计算机体系结构的工作原理和性能指标。
通过模拟器的使用,我们学会了对计算机性能进行测试和进行性能优化的方法。
计算机系统结构实验报告
计算机系统结构实验报告一、实验目的: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里的程序是一种汇编语言,通过对寄存器和条件转移来实现程序的实现。
计算机系统结构实验报告
计算机系统结构实验报告实验目的:掌握计算机系统的基本结构和工作原理,了解计算机系统的组成部分及其相互关系。
实验仪器和材料:计算机硬件设备(主机、硬盘、内存、显卡等)、操作系统、实验指导书、实验报告模板。
实验原理:实验步骤: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模拟器执行下列三个程序:求阶乘程序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之后,不设置任何断点运行。
计算机系统结构实验报告
计算机系统结构实验报告计算机系统结构实验报告引言:计算机系统结构是计算机科学领域中的重要课题,它研究计算机硬件和软件之间的关系,以及如何优化计算机系统的性能和效率。
本实验报告旨在介绍我们小组在计算机系统结构实验中的设计和实现过程,以及所获得的实验结果和经验。
一、实验目的计算机系统结构实验的目的是通过设计和实现一个简单的计算机系统,加深对计算机硬件和软件之间关系的理解,以及掌握计算机系统的组成和工作原理。
具体目标包括:1. 理解计算机系统的层次结构和组成部分。
2. 理解指令集架构和微指令集架构的区别。
3. 设计和实现一个简单的计算机系统,包括处理器、存储器和输入输出设备。
4. 测试和验证计算机系统的功能和性能。
二、实验设计与实现1. 计算机系统结构设计我们设计了一个基于冯·诺依曼体系结构的计算机系统,包括中央处理器(CPU)、存储器和输入输出设备。
CPU由控制单元和算术逻辑单元组成,控制单元负责指令的解码和执行,算术逻辑单元负责数据的运算和逻辑操作。
存储器用于存储指令和数据,我们选择了静态随机存储器(SRAM)作为主存储器。
输入输出设备包括键盘、显示器和磁盘。
2. 指令集架构设计我们选择了经典的冯·诺依曼指令集架构作为基础,定义了一套简单的指令集,包括算术运算、逻辑运算和数据传输等指令。
我们还设计了一套微指令集架构,用于实现指令的执行过程。
微指令集中包含了各种控制信号和操作码,用于控制CPU的工作。
3. 硬件设计与实现我们使用硬件描述语言(HDL)进行硬件设计和实现。
通过使用HDL,我们可以描述和模拟计算机系统的各个组成部分,并进行功能验证和性能分析。
我们使用Verilog HDL进行设计和实现,借助Verilog仿真器进行功能验证。
4. 软件设计与实现除了硬件设计和实现,我们还编写了一些软件程序,用于测试和验证计算机系统的功能和性能。
我们编写了一些简单的程序,包括算术运算、逻辑运算和数据传输等,用于测试CPU的指令执行和数据处理能力。
计算机体系结构实验报告
计算机体系结构实验报告实验⼆结构相关⼀、实验⽬的:通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。
⼆、实验内容:1. ⽤WinDLX模拟器运⾏程序structure_d.s 。
2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。
3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执⾏周期数的百分⽐。
4. 论述结构相关对CPU性能的影响,讨论解决结构相关的⽅法。
三、实验程序structure_d.sLHI R2, (A>>16)&0xFFFF 数据相关ADDUI R2, R2, A&0xFFFFLHI R3, (B>>16)&0xFFFFADDUI R3, R3, B&0xFFFFADDU R4, R0, R3loop: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 answeryour questions)ADDI R2, R2, #8ADDI R3, R3, #8SUB R5, R4, R2BNEZ R5, loop ;条件跳转TRAP #0 ;; Exit <- this is a comment !!A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10B: .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发⽣结构相关,导致相关的部件:译码部件。
计算机系统结构 实验报告
计算机系统结构实验报告计算机系统结构实验报告一、引言计算机系统结构是计算机科学中的重要领域,它研究计算机硬件和软件之间的关系,以及如何设计和优化计算机系统的组成部分。
本实验旨在通过实际操作和观察,深入了解计算机系统结构的原理和实践应用。
二、实验目的本次实验的主要目的是通过搭建一个简单的计算机系统,实践理论知识,加深对计算机系统结构的理解。
具体目标包括:1. 学习和掌握计算机系统的基本组成部分,如中央处理器(CPU)、内存、输入输出设备等。
2. 理解计算机指令的执行过程,包括指令的获取、解码和执行。
3. 掌握计算机系统的性能评估方法,如时钟周期、吞吐量和响应时间等。
三、实验过程1. 搭建计算机系统首先,我们需要准备计算机系统的各个组成部分。
将中央处理器、内存、输入输出设备等逐一连接起来,确保它们能够正常工作。
然后,将操作系统安装到计算机系统中,以便后续的实验操作。
2. 执行指令在搭建好计算机系统后,我们可以开始执行指令了。
通过输入指令,计算机系统将按照指令的要求进行相应的操作。
我们可以观察指令的执行过程,包括指令的获取、解码和执行。
同时,我们还可以通过性能评估方法,如时钟周期、吞吐量和响应时间等,评估计算机系统的性能。
3. 优化计算机系统在观察和评估计算机系统的性能后,我们可以根据实验结果进行优化。
例如,我们可以调整计算机系统的硬件配置,提升计算机的运行速度和效率。
另外,我们还可以优化指令的执行顺序和算法,以提高计算机系统的整体性能。
四、实验结果与分析通过实验,我们可以得到计算机系统的性能数据,并进行相应的分析。
例如,我们可以计算计算机系统的时钟周期,以及每秒钟能够执行的指令数量。
通过对这些数据的分析,我们可以了解计算机系统的性能瓶颈,并采取相应的优化措施。
五、实验总结本次实验通过搭建计算机系统、执行指令、优化系统等步骤,深入了解了计算机系统结构的原理和实践应用。
通过实验,我们学习到了计算机系统的基本组成部分,以及指令的执行过程。
计算机系统结构实验报告
计算机系统结构实验报告计算机系统结构实验报告《计算机系统结构》实验报告专业班级姓名学号实验一熟悉模拟器WinDLX的使用一、实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
2. 加深对计算机流水线基本概念的理解。
3.了解DLX基本流水线各段的功能以及基本操作。
二、实验平台WinDLX模拟器三、实验内容和步骤1.WinDLX的安装WinDLX模拟器是一个图形化、交互式的DLX 流水线模拟器,能够演示DLX流水线是如何工作的。
该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。
CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。
模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX:(1)WinDLX创建目录,例如D:\WINDLX(2)解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含windlx.exe, windlx.hlp)到这个WinDLX 目录。
2.启动和配置WinDLX双击WinDLX图标,将出现一个带有六个图标的主窗口,如图1-1。
双击这些图标会弹出子窗口。
图1-1 WinDLX启动窗口为了初始化模拟器, 点击File 菜单中的Reset all 菜单项,弹出一个“Reset DLX”对话框。
然后点击窗口中的“确认”按钮即可。
WinDLX可以在多种配置下工作。
可以改变流水线的结构和时间要求、存储器大小和其他几个控制模拟的参数。
点击Configuration→Floating Point Stages(点击Configuration打开菜单,然后点击Floating Point Stages菜单项),选择如图1-2标准配置。
计算机系统结构专业实习报告
计算机系统结构专业实习报告一、实习背景与目的随着信息技术的快速发展,计算机系统结构作为一门涵盖了计算机硬件和软件等多个方面的学科,在我国的高等教育体系中占据了重要的地位。
为了更好地将理论知识与实践相结合,提高自身综合素质和实际操作能力,我选择了计算机系统结构专业实习,以便为今后的学术研究和职业生涯打下坚实基础。
本次实习的主要目的是:1. 深入了解计算机系统结构的基本原理和组成部件;2. 熟悉各类计算机硬件设备的工作原理和性能指标;3. 掌握计算机系统组装、维护和调试的基本技能;4. 提高团队协作能力和沟通交流能力。
二、实习内容与过程1. 实习前的准备在实习开始前,我们参加了由指导老师举办的实习动员大会,了解了实习的要求、内容以及注意事项。
同时,我们还自学了相关教材和资料,为实习打下了理论知识基础。
2. 实习过程中的主要任务与收获实习过程中,我们主要完成了以下任务:1. 参观实验室和机房,了解各类计算机硬件设备及其功能;2. 学习计算机系统组装、维护和调试的基本技能;3. 参与实验室科研项目,协助导师进行数据分析和实验验证;4. 撰写实习日记和总结报告,记录实习过程中的所学所得。
具体收获如下:1. 熟悉了计算机系统结构的基本原理和组成部件,如CPU、内存、硬盘、显卡等;2. 掌握了计算机系统组装、维护和调试的基本技能,如安装操作系统、配置网络、排查故障等;3. 了解了实验室科研项目的工作流程,提高了科研素养;4. 增强了团队协作能力和沟通交流能力。
3. 实习中遇到的困难与解决方案在实习过程中,我们遇到了一些困难,如:1. 部分硬件设备的原理和操作较为复杂,一开始难以掌握;2. 实验室科研项目中的某些技术问题需要花费较长时间解决;3. 实习任务较重,时间紧张,难以兼顾学业与实习。
针对上述困难,我们采取了以下解决方案:1. 请教老师和同学,共同探讨,逐步掌握硬件设备的原理和操作;2. 利用课余时间深入学习相关技术,提高解决问题的能力;3. 合理安排时间,加强与团队成员的沟通,提高团队协作效率。
系统结构实验报告
系统结构实验报告系统结构实验报告引言:系统结构是计算机科学中的一个重要概念,它描述了一个系统的组成部分以及它们之间的相互关系。
在本次实验中,我们将探索系统结构的基本原理,并通过实际操作来加深对系统结构的理解。
一、系统结构的定义与作用系统结构是指一个系统的组成部分以及它们之间的连接方式和关系。
它决定了系统的功能、性能和可靠性。
一个良好的系统结构设计能够提高系统的效率和可维护性,降低系统的成本和风险。
二、系统结构的基本组成一个系统的结构通常由以下几个基本组成部分构成:1. 处理器:负责执行指令和控制系统的运行。
2. 存储器:用于存储数据和指令。
3. 输入设备:用于接收外部输入。
4. 输出设备:用于向外部输出结果。
5. 总线:用于连接各个组件,传输数据和控制信号。
三、系统结构的层次结构系统结构可以分为多个层次,每个层次负责不同的功能和任务。
常见的系统结构层次包括:1. 应用层:负责处理用户的请求和提供服务。
2. 操作系统层:负责管理硬件资源和提供系统服务。
3. 中间件层:负责处理分布式系统的通信和协调。
4. 数据库层:负责管理和维护数据。
5. 硬件层:负责执行指令和存储数据。
四、系统结构的优化与改进为了提高系统的性能和可靠性,我们可以采取一些优化和改进措施,例如:1. 并行处理:利用多个处理器同时执行任务,提高系统的处理能力。
2. 分布式系统:将系统分布在多个节点上,提高系统的可伸缩性和容错性。
3. 冗余设计:在关键部件上增加冗余,提高系统的可靠性和可恢复性。
4. 缓存技术:利用高速缓存存储器提高数据访问速度。
5. 虚拟化技术:通过虚拟化将物理资源划分为多个逻辑资源,提高资源利用率。
五、实验过程与结果在本次实验中,我们搭建了一个简单的系统结构,并进行了一系列测试和优化。
通过测试,我们发现系统的性能在并行处理和缓存技术的应用下得到了显著提升。
同时,我们也发现系统的可靠性在冗余设计和虚拟化技术的应用下得到了增强。
计算机系统结构实验报告
计算机系统结构实验报告一.流水线中的相关实验目的: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
的行数
输入矩阵A的列数和B的行
数
输入矩阵B的
列数
读入A矩阵元
素
输出A矩阵元
素
读入B矩阵元
素
输出B矩阵元
素
计算AXB矩阵,得C矩阵
输出C矩阵
开始
f1=A的行数,f2=A
的列数和B的行
数,f3=B的列数
A的元素个数
R4=f1*f2,R2=A矩
阵首地址,
R6=f1,R8=f2
R4=0?
输入A矩阵的元素R6=0?
R4--输出A矩阵同一行
的元素,R6--
输入换行,R8--,
R6=f2
R8=0?
Y
同上输入B矩阵和
输出B矩阵
R11=0,R4=0,R5=0
R5>f1?
R6=0
R6>f3?
R1=f6,R10=R5*R1
R7=0,R11=0,
R9=(R5+1)*f1
R5++
R10>R9?
把R11存入C矩阵,
位置为R4,R4+1,
R6+1
Temp=temp+
A矩阵R10位置的元
素*B矩阵R7位置的
元素,R10+1
输出C矩阵
结束。
计算机组织体系与结构实验报告
计算机组织与体系结构实验报告1.1基本运算器实验1.1.1 实验目的(1) 了解运算器的组成结构。
(2) 掌握运算器的工作原理。
1.1.2 实验设备PC机一台,TD-CMA实验系统一套。
1.1.3 实验原理本实验的原理如图1-1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。
如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
ALU中所有模块集成在一片FPGA中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。
图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:(1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
运算器部件由一片FPGA实现。
ALU的输入和输出通过三态门74LS245连到CPU内总线上,另外还有指示灯标明进位标志FC和零标志FZ。
请注意:实验箱上凡丝印标注有马蹄形标记,表示这两根排针之间是连通的。
图中除T4和CLR,其余信号均来自于ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。
计算机系统结构实训课程学习总结
计算机系统结构实训课程学习总结通过参加计算机系统结构实训课程,我深刻认识到了计算机系统的组成和工作原理,在实践中积累了关于计算机组成与原理方面的经验和技能。
在这篇文章中,我将对我在实训课程中所学习到的内容进行总结和回顾。
一、课程背景计算机系统结构实训课程是一门旨在培养学生对计算机系统基本知识的理解和掌握的课程。
通过该课程,我们有机会学习计算机硬件的组成、计算机指令和数据的表示方法,以及计算机系统的结构与工作原理,从而为我们日后深入学习计算机相关专业打下了坚实的基础。
二、实训课程内容1. 计算机硬件组成:课程开始的第一部分,我们学习了计算机硬件的各个组成部分,包括中央处理器(CPU)、内存、输入输出设备等。
通过理论学习和实际操作,我们对计算机硬件的功能和作用有了更加清晰的认识。
2. 计算机指令和数据表示方法:在本部分,我们学习了计算机中的指令和数据的表示方法,包括二进制表示、十进制表示以及十六进制表示。
通过实际编码练习,我们可以更好地掌握这些表示方法,并能够准确地理解和处理计算机指令和数据。
3. 计算机系统结构与工作原理:这是整个实训课程的重点部分。
通过学习计算机系统的结构与工作原理,我们能够深入了解计算机的层次结构和各个组成部分之间的关系。
同时,我们还学习了计算机的指令执行过程、中断处理过程等。
这对我们理解计算机的运行机制和进行系统调试非常重要。
三、实训中的收获通过参加计算机系统结构实训课程,我获得了以下几个方面的收获:1. 提高了实践能力:通过实际动手操作,我加深了对计算机硬件组成和工作原理的理解。
在实训过程中,我熟悉了计算机的各个组成部分,并学会了组装和调试计算机硬件。
2. 培养了解决问题的能力:在实训过程中,我遇到了各种各样的问题,比如硬件故障、软件配置问题等。
通过自己的努力和与同学的讨论,我逐渐成长为一个能够独立解决问题的人。
3. 加深了对计算机系统的理解:通过实际操作和理论学习,我对计算机系统的结构和运行原理有了更加深刻的认识。
计算机体系结构实验报告
实验一流水线中的相关一.实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
二.实验平台WinDLX模拟器三.预备知识1. WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。
该模拟器可以装载DLX汇编语言程序(后缀为“.s”的文件),然后单步、设断点或是连续执行该程序。
CPU的寄存器、流水线、I/O和存储器都可以用图形表示出来,以形象生动的方式描述DLX流水线的工作过程。
模拟器还提供了对流水线操作的统计功能,便于对流水线进行性能分析。
有关WinDLX的详细介绍,见WinDLX教程。
2. 熟悉WinDLX指令集和WinDLX源代码的编写3. 复习和掌握教材中相应的内容(1)DLX基本流水线(2)流水线的结构相关与数据相关结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。
数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。
(3)定向技术的主要思想:在发生数据相关时,等待前面计算结果的指令并不一定真的马上就用到该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。
四.实验内容及结果1. 用 WinDLX 模拟器执行下列三个程序(任选一个):求阶乘程序 fact.s求最大公倍数程序 gcm.s求素数程序 prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU 中寄存器和存储器的内容。
熟练掌握WinDLX 的操作和使用。
计算机系统结构实习报告
目录1.实习的目的和任务 (1)2.实习规定 (1)2.1任务规定 (1)2.2课程规定 (1)3.实习地点 (1)4.重要仪器设备(实验用的软硬件环境) (2)5.实习内容 (2)5.1硬布线控制器的设计原理 (2)5.2用CPLD 器件实现硬布线控制器 (2)5.3实验原理 (3)5.4安装软件 (4)5.5实验环节 (8)6.问题讨论与分析 (13)7.结论 (14)参考文献 (14)基于硬布线控制器的基本模型机设计1.实习的目的和任务通过实习进一步理解微型计算机系统的设计及工作原理,熟悉模型机的硬布线,基本 RISC 解决器构成,流水线微程序模型机的设计,掌握完毕某些有关程序的编制、运行和调试工作。
掌本次实习内容重要是掌握硬布线控制器的设计原理,掌握如何使用大规模可编程器件完毕硬布线控制器的设计,理解硬布线模型机的工作原理及设计办法。
通过下载程序到 CPLD 芯片上对所设计的硬布线模型进行验证。
2.实习规定2.1任务规定(1)按照实习规定完毕有关程序的编制;(2)认真调试程序,完毕实习任务;(3)完毕实习报告2.2课程规定(1)理解 CPLD 的原理及其硬布线设计模型的原理(2)根据设计好的硬布线设计模型连接好连线图,并检查好线路;(3)将完毕的有关程序加载到 CPLD 芯片上;(4)通过变化输入单元的值和控制单元的状态变化,和时钟周期的变化来验证明验成果3.实习地点田家炳楼 4074.重要仪器设备(实验用的软硬件环境)硬件:XP 系统计算机,ZYE1603B 计算机构成原理及系统构造实验箱一台,排线若干。
软件:QUARTUSII 软件,MAX+plus II10.25.实习内容5.1硬布线控制器的设计原理计算机控制器有两种实现办法:1、硬布线控制器(也称组合逻辑控制器)2、微程序控制器。
设计硬布线控制器是根据实现各指令功效所需控制命令的对应逻辑条件及时序,来构成各个控制命令的逻辑体现式,然后由多个不同的逻辑电路来实现它,构成逻辑控制部件。
计算机系统结构实验报告.doc
计算机系统结构实验报告一.流水线中的相关实验目的: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之后,不设置任何断点运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一流水线中的相关一、实验目的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性能的影响、讨论解决资源相关的方法资源相关使相关指令在流水线上停滞,降低了执行效率;为解决这一问题,应在编写代码时尽量避免总是使用同一寄存器;并通过指令调度,使相关的代码执行距离拉开。
实验二循环展开及指令调度一、实验目的1. 加深对循环级并行性、指令调度技术、循环展开技术以及寄存器换名技术的理解;2. 熟悉用指令调度技术来解决流水线中的数据相关的方法;3. 了解循环展开、指令调度等技术对CPU性能的改进。
二、实验平台WinDLX模拟器三、实验内容及步骤(1)用DLX汇编语言编写代码文件*.s,程序中应包括数据相关与结构相关(假设:加法﹑乘法﹑除法部件各有2个,延迟时间都是3个时钟周期).data.global ONEONE: .word 1.text.global mainmain:lf f1,ONEcvti2f f7,f1 ;结构相关nopnopsubf f1,f8,f7subf f2,f1,f7subf f13,f2,f7addf f6,f4,f5 ;store a new value in r1subf f10,f6,f9 ;use r1 & store new r4addi r12,r12,#1subi r11,r11,#8Finish:trap 0(2)通过Configuration菜单中的“Floating point stages”选项,把加法﹑乘法﹑除法部件的个数设置为2个,把延迟都设置为3个时钟周期;(3)用WinDLX运行程序。
记录程序执行过程中各种相关发生的次数、发生相关的指令组合,以及程序执行的总时钟周期数;●总时钟周期数:24;资源相关数目:1;数据相关数目:6;Trap暂停数目:4●资源相关的指令组合:lf f1,ONEcvti2f f7,f1●数据相关的指令组合:subf f1,f8,f7subf f2,f1,f7subf f13,f2,f7addf f6,f4,f5 ;store a new value in r1subf f10,f6,f9 ;use r1 & store new r4(4)采用指令调度技术对程序进行指令调度,消除相关;.data.global ONEONE: .word 1.text.global mainmain:lf f1,ONEcvti2f f7,f1 ;结构相关nopnopaddf f6,f4,f5 ;--1.1subf f10,f6,f9 ;--1.2addi r12,r12,#1 ;--2.1subi r11,r11,#8 ;--2.2Finish:trap 0(5)用WinDLX运行调度后的程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周期数;图2-1 程序在流水线中的执行情况(6)根据记录结果,比较调度前和调度后的性能。
论述指令调度对于提高CPU 性能的意义。
如下图所示,经过调度后,由于上一条指令还没有完成计算结果而导致的数据相关有明显改善;性能提升了24/19=1.263倍图2-2 调度前记录结果图2-3 调度后记录结果2. 循环展开、寄存器换名以及指令调度提高性能(1)用DLX汇编语言编写代码文件*.s,程序中包含一个循环次数为4的整数倍的简单循环;.text.global mainmain:addi r1,r0,#4addi r2,r0,#0Loop:sle r3,r1,r0bnez r3,Endit1addi r2,r2,#1subi r1,r1,#1j LoopEndit1:trap 0(2)用WinDLX运行该程序。
记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;总时钟周期数:38;Jump Stalls数目:5;控制相关:5;Trap暂停:2(3)将循环展开3次,将4个循环体组成的代码代替原来的循环体,并对程序做相应的修改。
然后对新的循环体进行寄存器换名和指令调度;.text.global mainmain:addi r1,r0,#4addi r2,r0,#0Loop:sle r3,r1,r0bnez r3,Endit1addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1addi r2,r2,#1subi r1,r1,#1j LoopEndit1:trap 0(4)用WinDLX运行修改后的程序,记录执行过程中各种相关发生的次数以及程序执行的总时钟周期数;比较循环展开、指令调度前后的性能。
总时钟周期数:15;Trap暂停:3在采用循环展开、指令调度技术前,总时钟周期数为38,而今为15,提升了2.53倍;且经过循环展开,消除了全部的Raw Stalls。
四、实验总结根据实验结果,在采用循环展开、指令调度技术前,总时钟周期数为38,采用循环展开、指令调度技术后,总时钟周期数为15,提升了2.53倍;且经过循环展开,消除了全部的Raw Stalls。
可见循环展开和指令调度技术对于提升CPU性能有重要的作用。
实验三cache性能分析一、实验目的1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解;2.了解Cache的容量、相联度、块大小对Cache性能的影响;3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处;4.理解Cache失效的产生原因以及Cache的三种失效;5.理解LRU与随机法的基本思想,及它们对Cache性能的影响;二、实验内容及步骤:(测试程序:●Benchmark/ bin.little:anagram●Benchmark/ bin.little:test_math●Benchmark/ gcc2000.v3:art00.O2unroll.gcc.100M.ss●Benchmark/ supplied:mcf00.O2unroll.gcc.100M.ss)1.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效次数、三种不同种类的失效次数;●Anagram的运行结果部分截图:总失效次数:461;容量失效+冲突失效:205;强制性失效:461-205=256●Test_math的运行结果部分截图:总失效次数:804;容量失效+冲突失效:548;强制性失效:804-548=256●art00.O2unroll.gcc.100M.ss的运行结果部分截图:总失效次数:466;容量失效+冲突失效:210;强制性失效:466-210=256●mcf00.O2unroll.gcc.100M.ss的运行结果部分截图:总失效次数:451;容量失效+冲突失效:195;强制性失效:451-195=2562.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响;●Anagram的运行结果部分截图:(*2)# ./simplesim-3.0/sim-cache –cache:dl1 dl1:512:32:1:l anagram总失效次数:451;容量失效+冲突失效:43;强制性失效:451-43=408●mcf00.O2unroll.gcc.100M.ss的运行结果部分截图: (*4)# ./simplesim-3.0/sim-cache –cache:dl1 dl1:1024:32:1:l mcf00.O2unroll.gcc.100M.ss 总失效次数:432;容量失效+冲突失效:19;强制性失效:432-19=413●Anagram的运行结果部分截图: (*8)# ./simplesim-3.0/sim-cache –cache:dl1 dl1:2048:32:1:l anagram总失效次数:437;容量失效+冲突失效:2;强制性失效:437-2=435●mcf00.O2unroll.gcc.100M.ss的运行结果部分截图: (*64)# ./simplesim-3.0/sim-cache –cache:dl1 dl1: 16384:32:1:l mcf00.O2unroll.gcc.100M.ss 总失效次数:424;容量失效+冲突失效:0;强制性失效:424-0=4243.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响;例:# ./simplesim-3.0/sim-cache –cache:dl1 dl1: 256:32:2:l test_math●test_math的运行结果部分截图: (2路)总失效次数:557;容量失效+冲突失效:123;强制性失效:557- 123 = 434●art00.O2unroll.gcc.100M.ss的运行结果部分截图: (4路)总失效次数:446;容量失效+冲突失效:0;强制性失效:446- 0 = 446●test_math的运行结果部分截图: (8路)总失效次数:541;容量失效+冲突失效:0 ;强制性失效:541- 0 = 541●art00.O2unroll.gcc.100M.ss的运行结果部分截图: (64路)总失效次数:446;容量失效+冲突失效:0;强制性失效:446- 0 = 4464.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;例:# ./simplesim-3.0/sim-cache –cache:dl1 dl1: 256:64:1:l test_math●test_math的运行结果部分截图: (*2)总失效次数:312;容量失效+冲突失效:96;强制性失效:312- 96 = 216●art00.O2unroll.gcc.100M.ss的运行结果部分截图: (*4)总失效次数:1;容量失效+冲突失效:0;强制性失效:1- 0 = 1●test_math的运行结果部分截图: (*8)总失效次数:1;容量失效+冲突失效:0;强制性失效:1- 0=1●art00.O2unroll.gcc.100M.ss的运行结果部分截图: (*64)总失效次数:1;容量失效+冲突失效:0;强制性失效:1- 0=15.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率。