计算机系统结构实验二
- 格式:doc
- 大小:49.00 KB
- 文档页数: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 的运算和数据传输来实现各种操作。
通过实验,我们可以观察到计算机系统的工作情况,并深入了解计算机系统的组成和工作原理。
实验总结:通过本次实验,我们对计算机系统的基本结构和工作原理有了更深入的了解。
实验中,我们搭建了计算机硬件设备,安装了操作系统,并通过观察和分析实验结果,进一步认识到计算机系统的组成部分和各部分之间的相互关系。
通过操作输入输出设备,我们还实践了与计算机进行交互操作的过程。
福师(2020-2021)《计算机体系结构》在线作业二
注:本科有多套试卷,请核实是否为您所需要资料,本资料只做参考学习使用!!!
一、单选题(共20题,40分)
1、下列关于标量流水机的说法不正确的是()。
A可对标量数据进行流水处理
B没有向量数据表示
C不能对向量数据进行运算
D可以对向量、数组进行运算
提示:认真复习课本知识302,并完成以上题目
【参考选择】:C
2、()是访问主存空间的地址
A物理地址
B程序地址
C逻辑地址
D虚拟地址
提示:认真复习课本知识302,并完成以上题目
【参考选择】:A
3、在IBM系统中,中断响应硬件分工保存的是()。
A通用寄存器内容
B条件码等状态信息
C各种软件状态和标志
D作业名称和优先级等
提示:认真复习课本知识302,并完成以上题目
【参考选择】:B
4、在IBM 370系统中,支持操作系统实现多进程共用公用区管理最有效的指令是()。
A“测试与置定”指令
B“比较与交换”指令
C“执行”指令
D“程序调用”指令
提示:认真复习课本知识302,并完成以上题目
【参考选择】:B
5、通道流量是在某个时期单位时间内传送的字节数,这个时期应是()。
A通道开始选择设备期
B通道数据传送期
C通道数据传送结束期
D用户经访管指令进入管态,运行I/O管理程序的期间
提示:认真复习课本知识302,并完成以上题目
【参考选择】:B。
计算机组成实验报告计算机组成实验报告(共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)。
计算机系统结构实验报告一.流水线中的相关实验目的: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之后,不设置任何断点运行。
.广州大学学生实验报告开课学院及实验室:室2013年5月11日学院计算机科学与教育软件学院年级、专业、班姓名学号实验课程名称计算机组成与系统结构实验成绩实验项目名称存储器和总线传输实验指导老师2.3.3 准双向I/O口实验一、实验目的熟悉与了解准双向I/O口的构成原理。
二、实验原理Dais-CMX16+向用户提供的是按准双向原理设计的十六位输入/输出I/O口,当该位为“1”时才能用作输入源,上电或复位(手动态按【返回】键),该十六位I/O口被置位(即为“0FFFFh”)。
通常情况下,在用作输入的时候就不能再有输出定义。
电路结构如图2-3-4所示。
该口外接十六位二进制数据开关,适用于外部数据的输入,该口跨接十六个发光二极管,经缓冲驱动四个七段显示,能以二进制和十六进制两种方式显示I/O口的输入输出状态。
发光管在高电平“1”时发光点亮。
图2-3-4 准双向I/O电路实验中所用的I/O口数据通路如图2-3-5所示。
I/O的输入经2片74LS245缓冲与数据总线相连,I/O口的输出由2片74LS574锁存后输出,锁存器的输入端与数据总线相连。
图2-3-5 I/O口数据通路三、使用仪器、器材Dais-CMX16+实验箱、导线若干四、实验步骤及数据记录1.实验连线连线信号孔接入孔作用有效电平.1 IOCK CLOCK 单元手动实验状态的时钟来源下降沿打入2 W K6(M6) 总线字长:0=16位字操作,1=8位字节操作3 X2 K10(M10) 源部件定义译码端X2 三八译码 八中选一 低电平有效4 X1 K9(M9) 源部件定义译码端X15 X0 K8(M8) 源部件定义译码端X06 XP K7(M7) 源奇偶位:0=偶寻址,1=奇寻址7 IOW K17(M17) I/O 写使能,本例定义到M17位 低电平有效8 OP K16(M16) 目的奇偶位:0=偶寻址,1=奇寻址 9 RXW K19(M19) 寄存器写使能,本例定义到M19位低电平有效10DIK18(K18) 目标寄存器编址:0=CX ,1=DX ,定义到M182. 搭接方式I/O 的寻址定义I/O 口源编址I/O 口目的编址源编码 I/O 编址注释目的I/O 编址注释 X2 X1 X0 WXP IOW W OP IOCK10 0 IO 字读 0 0 0 ↓IO 字写1 0 IOL 偶字节读 1 0 ↓ IOL 偶字节写 X1IOH 奇字节读X1↓ IOH 奇字节写3. I/O 口写操作(输出)执行OUT I/O,AX 指令,把AX 内容送I/O 口。
Win-DLX 计算机系统结构课程实验教程目录实验一熟悉WinDLX的使用 (2)实验二结构相关 (4)实验三数据相关................................................................... .6 实验四指令调度 (8)附录实验报告 (10)实验一汇编源程序的上机调试操作基础训练一.实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。
二.实验内容:(一)WinDLX的安装:1. WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX:⑴ WinDLX创建目录,例如D:\WINDLX⑵解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含windlx.exe,windlx.hlp)到这个WinDLX 目录。
2. 启动和配置WinDLX:双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.为了初始化模拟器, 点击File菜单中的Reset all菜单项,弹出一个“ResetDLX”对话框。
然后点击窗口中的“确认”按钮即可。
(二)程序介绍1.求阶乘程序fact.s这个程序说明浮点指令的使用。
该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
2.程序gcm.sgcm.s程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
3. 求素数程序prim.sprim.s程序计算若干个整数的素数。
三.实验要求:实验前要做好充分准备,包括WinDLX安装与调试步骤、程序运行方法,以及对模拟结果的分析等。
计算机系统结构实验报告计算机系统结构实验报告一、引言计算机系统结构是计算机科学中的重要领域,它研究计算机硬件和软件之间的关系,以及如何设计和优化计算机系统的组成部分。
本实验旨在通过实际操作和观察,深入了解计算机系统结构的原理和实践应用。
二、实验目的本次实验的主要目的是通过搭建一个简单的计算机系统,实践理论知识,加深对计算机系统结构的理解。
具体目标包括:1. 学习和掌握计算机系统的基本组成部分,如中央处理器(CPU)、内存、输入输出设备等。
2. 理解计算机指令的执行过程,包括指令的获取、解码和执行。
3. 掌握计算机系统的性能评估方法,如时钟周期、吞吐量和响应时间等。
三、实验过程1. 搭建计算机系统首先,我们需要准备计算机系统的各个组成部分。
将中央处理器、内存、输入输出设备等逐一连接起来,确保它们能够正常工作。
然后,将操作系统安装到计算机系统中,以便后续的实验操作。
2. 执行指令在搭建好计算机系统后,我们可以开始执行指令了。
通过输入指令,计算机系统将按照指令的要求进行相应的操作。
我们可以观察指令的执行过程,包括指令的获取、解码和执行。
同时,我们还可以通过性能评估方法,如时钟周期、吞吐量和响应时间等,评估计算机系统的性能。
3. 优化计算机系统在观察和评估计算机系统的性能后,我们可以根据实验结果进行优化。
例如,我们可以调整计算机系统的硬件配置,提升计算机的运行速度和效率。
另外,我们还可以优化指令的执行顺序和算法,以提高计算机系统的整体性能。
四、实验结果与分析通过实验,我们可以得到计算机系统的性能数据,并进行相应的分析。
例如,我们可以计算计算机系统的时钟周期,以及每秒钟能够执行的指令数量。
通过对这些数据的分析,我们可以了解计算机系统的性能瓶颈,并采取相应的优化措施。
五、实验总结本次实验通过搭建计算机系统、执行指令、优化系统等步骤,深入了解了计算机系统结构的原理和实践应用。
通过实验,我们学习到了计算机系统的基本组成部分,以及指令的执行过程。
计算机体系结构实验报告第一篇:计算机体系结构概述计算机体系结构是计算机学科中的一个重要分支,它研究的是计算机的硬件组成和工作原理,包括计算机的处理器、存储器、输入输出设备、总线等。
计算机体系结构的研究可以帮助我们理解计算机的工作原理,优化计算机的性能,提升计算机的能力。
计算机体系结构可以分为两个方面:指令集体系结构和微体系结构。
其中,指令集体系结构是指计算机的操作系统能够直接识别和执行的指令集合,它们是应用程序的编程接口;而微体系结构是指通过硬件实现指令集合中的指令,在底层支持指令集合的操作。
指令集体系结构和微体系结构是密切相关的,因为指令集体系结构会影响微体系结构的设计和实现。
目前,计算机体系结构主要有三种类型:单处理器体系结构、多处理器体系结构和分布式计算体系结构。
其中,单处理器体系结构是指所有的指令和数据都存放在同一台计算机中,这种体系结构的优点是操作简单、易于管理,但是主频存在瓶颈,无法很好地发掘多核的性能优势;多处理器体系结构是指多个计算机共享同一块物理内存,因此可以方便地实现负载均衡和任务协作,但是存在通信延迟和数据一致性问题;分布式计算体系结构则是指通过互联网将多个计算机连接成一个网络,可以在全球范围内共享计算资源,但是通信成本和数据安全问题需要考虑。
总之,计算机体系结构是计算机学科中的重要分支,它研究计算机的硬件组成和工作原理,帮助我们理解计算机的工作原理,优化计算机性能,提升计算机能力。
第二篇:计算机指令集体系结构计算机指令集体系结构,简称ISA(Instruction Set Architecture),是指计算机能够识别和执行的指令集合。
ISA是计算机指令的编程接口,定义了一组指令和地址模式,以及寄存器和内存的组织方式,它是计算机软件和硬件协同工作的关键接口之一。
ISA可以分为两类:精简指令集体系结构(RISC,Reduced Instruction Set Computer)和复杂指令集体系结构(CISC,Complex Instruction Set Computer)。
计算机系统结构第⼆章(习题解答)1. 数据类型、数据表⽰和数据结构之间是什么关系?在设计⼀个计算机系统时,确定数据表⽰的原则主要有哪⼏个?答:略2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其指令字长和数据字长均为32位。
B 处理机的数据带有标志位,每个数据的字长增加⾄36位,其中有4位是标志符,它的指令条数由最多256条减少⾄不到64条。
如果每执⾏⼀条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。
对于⼀个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占⽤的存储空间⼤⼩(包括指令和数据),从中得到什么启发?答:我们可以计算出数据的总数量:∵程序有1000条指令组成,且每条指令平均要访问两个操作数∴程序访问的数据总数为:1000×2=2000个∵每个数据平均访问8次∴程序访问的不同数据个数为:2000÷8=250对于A 处理机,所⽤的存储空间的⼤⼩为:bit4000032250321000MemMemMemdataninstructio A=?+?=+=对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所⽤的存储空间的⼤⼩为:bit3900036250301000MemMemMemdataninstructio B=?+?=+=由此我们可以看出,由于数据的平均访问次数要⼤于指令,所以,采⽤带标志符的数据表⽰不会增加总的存储空间⼤⼩。
3. 对于⼀个字长为64位的存储器,访问这个存储器的地址按字节编址。
假设存放在这个存储器中的数据中有20%是独⽴的字节数据(指与这个字节数据相邻的不是⼀个字节数据),有30%是独⽴的16位数据,有20%是独⽴的32位数据,另外30%是独⽴的64位数据;并且规定只能从⼀个存储字的起始位置开始存放数据。
⑴计算这种存储器的存储空间利⽤率。
⑵给出提⾼存储空间利⽤率的⽅法,画出新⽅法的逻辑框图,并计算这种⽅法的存储空间利⽤率。
成绩:____大连工业大学艺术与信息工程学院《计算机系统结构》实验报告实验二:熟悉 DLX 汇编语言编程专业名称:计算机科学与技术班级学号:学生姓名:指导老师:一、实验目的:通过本实验,熟悉DLX指令和编程。
二、实验内容:将C 代码例子(1)和(2)转化为DLX 汇编程序。
用WinDLX模拟器运行你自己的汇编程序,记录模拟的相关结果。
提交DLX 代码的汇编文件及其模拟结果。
1、计算两个无符号数和输入和输出格式为:输入第一个数:输入第二个数:和=C 代码例子:void main(){unsigned int num1, num2;scanf("\nEnter the 1st number: %d", &num1);scanf("\nEnter the 2nd number: %d", &num2);printf("The sum = %d", num1+num2);}2、两数相除输入和输出格式为:输入第一个数:输入第二个数:商=C 代码例子:void main(){int num1, num2;double num3;scanf("\nEnter the 1st number: %d", &num1);scanf("\nEnter the 2nd number: %d", &num2);if( num2 != 0){num3 = (double)num1/(double)num2;printf("\n(1st number) %g divided by (2nd number) %g = %g", (double)num1, (double)num2, num3 );}elseprintf("\n divide by 0 !!");}注意:商必须为双精度格式。
计算机系统结构专业实习报告一、实习背景与目的随着信息技术的快速发展,计算机系统结构作为一门涵盖了计算机硬件和软件等多个方面的学科,在我国的高等教育体系中占据了重要的地位。
为了更好地将理论知识与实践相结合,提高自身综合素质和实际操作能力,我选择了计算机系统结构专业实习,以便为今后的学术研究和职业生涯打下坚实基础。
本次实习的主要目的是:1. 深入了解计算机系统结构的基本原理和组成部件;2. 熟悉各类计算机硬件设备的工作原理和性能指标;3. 掌握计算机系统组装、维护和调试的基本技能;4. 提高团队协作能力和沟通交流能力。
二、实习内容与过程1. 实习前的准备在实习开始前,我们参加了由指导老师举办的实习动员大会,了解了实习的要求、内容以及注意事项。
同时,我们还自学了相关教材和资料,为实习打下了理论知识基础。
2. 实习过程中的主要任务与收获实习过程中,我们主要完成了以下任务:1. 参观实验室和机房,了解各类计算机硬件设备及其功能;2. 学习计算机系统组装、维护和调试的基本技能;3. 参与实验室科研项目,协助导师进行数据分析和实验验证;4. 撰写实习日记和总结报告,记录实习过程中的所学所得。
具体收获如下:1. 熟悉了计算机系统结构的基本原理和组成部件,如CPU、内存、硬盘、显卡等;2. 掌握了计算机系统组装、维护和调试的基本技能,如安装操作系统、配置网络、排查故障等;3. 了解了实验室科研项目的工作流程,提高了科研素养;4. 增强了团队协作能力和沟通交流能力。
3. 实习中遇到的困难与解决方案在实习过程中,我们遇到了一些困难,如:1. 部分硬件设备的原理和操作较为复杂,一开始难以掌握;2. 实验室科研项目中的某些技术问题需要花费较长时间解决;3. 实习任务较重,时间紧张,难以兼顾学业与实习。
针对上述困难,我们采取了以下解决方案:1. 请教老师和同学,共同探讨,逐步掌握硬件设备的原理和操作;2. 利用课余时间深入学习相关技术,提高解决问题的能力;3. 合理安排时间,加强与团队成员的沟通,提高团队协作效率。
班别:学号:姓名:袁凯琦1.实验一WINDLX模拟器安装及使用1.1实验类别:综合实验1.2实验目的:建立实验环境,了解WINDLX模拟器的结构及使用1.3实验设备环境:WinDLX要求的硬件平台是IBM PC兼容机,WinDLX是一个Windows应用程序,运行于Windows 3.0以上的操作系统。
1.4实验原理:WinDLX软件包中带有说明文件,供安装程序时候使用。
1.5要点与难点:软件包中还有WinDLX教程和联机帮助,可以通过它们进一步了解模拟器的使用方法和DLX处理器的原理。
大家在进行模拟实验以前应该仔细阅读这些文档。
1.6实验内容和要求:阅读模拟器Help文档和相关资料,利用Fact.s及Input.s代码熟悉模拟器的配置、各项工具使用、寄存器设置及指令系统。
1.7实验步骤:(1)WINDLX模拟器安装WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX: WinDLX创建目录,例如E:\WINDLX解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含 windlx.exe, windlx.hlp)到这个WinDLX 目录。
(2)熟悉模拟器的配置启动和配置WinDLX: 双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.(3)利用Fact.s及Input.s代码熟悉各工具的使用1)导入求阶乘程序fact.sFile--> Load code or Data,然后出现以下界面,双击fact.s,input.s(由于fact.s调用了input.s),点击Load键即可导入按F7,单步运行程序,通过观察各个窗口的信息,理解fact.s的运行情况显示的是各个寄存器的名称及内容PC:程序计数器;IMAR:指令内存地址寄存器;IR:指令寄存器;A,B:ALU操作数寄存器;BTA:分支地址寄存器;ALU:ALU输出寄存器,ALUI(伪)寄存器;FPSR:用来保存有关浮点数操作结果的信息;DMAR:数据内存地址寄存器;SDR:存数据寄存器,SDRI (伪)寄存器;LDR:去素聚寄存器,LDRI(伪)寄存器;R0~R31:32位通用寄存器,R0永远为0;F0~F31:浮点寄存器。
word 文档下载后可自由复制编辑你计算机系统结构清华第 2 版习题解答word 文档下载后可自由复制编辑1 目录1.1 第一章(P33)1.7-1.9 (透明性概念),1.12-1.18 (Amdahl定律),1.19、1.21 、1.24 (CPI/MIPS)1.2 第二章(P124)2.3 、2.5 、2.6 (浮点数性能),2.13 、2.15 (指令编码)1.3 第三章(P202)3.3 (存储层次性能), 3.5 (并行主存系统),3.15-3.15 加 1 题(堆栈模拟),3.19 中(3)(4)(6)(8)问(地址映象/ 替换算法-- 实存状况图)word 文档下载后可自由复制编辑1.4 第四章(P250)4.5 (中断屏蔽字表/中断过程示意图),4.8 (通道流量计算/通道时间图)1.5 第五章(P343)5.9 (流水线性能/ 时空图),5.15 (2种调度算法)1.6 第六章(P391)6.6 (向量流水时间计算),6.10 (Amdahl定律/MFLOPS)1.7 第七章(P446)7.3 、7.29(互连函数计算),7.6-7.14 (互连网性质),7.4 、7.5 、7.26(多级网寻径算法),word 文档下载后可自由复制编辑7.27 (寻径/ 选播算法)1.8 第八章(P498)8.12 ( SISD/SIMD 算法)1.9 第九章(P562)9.18 ( SISD/多功能部件/SIMD/MIMD 算法)(注:每章可选1-2 个主要知识点,每个知识点可只选 1 题。
有下划线者为推荐的主要知识点。
)word 文档 下载后可自由复制编辑2 例 , 习题2.1 第一章 (P33)例 1.1,p10假设将某系统的某一部件的处理速度加快到 10倍 ,但该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?解:由题意可知: Fe=0.4, Se=10,根据 Amdahl 定律S n To T n1 (1Fe )S n 1 10.6 0.4100.64 Fe Se 1.56word 文档 下载后可自由复制编辑例 1.2,p10采用哪种实现技术来求浮点数平方根 FPSQR 的操作对系统的性能影响较大。
2.2 区别不同指令集结构的主要因素是什么?根据这个主要因素可将指令集结构分为哪3类?答:区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。
据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.6 简述CISC指令集结构功能设计的主要目标。
从当前计算机技术观点来看,CISC指令集结构的计算机有什么缺点?答:主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。
缺点:(1) CISC结构的指令集中,各种指令的使用频率相差悬殊。
(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。
(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5) 在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
2.7 简述RISC指令集结构的设计原则。
答(1)选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store 操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。
2.8 指令中表示操作数类型的方法有哪几种?答:操作数类型有两种表示方法:(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。
2.9 表示寻址方式的主要方法有哪些?简述这些方法的优缺点。
答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。
这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。
实验报告册
计算机系统结构
姓名:韩文肖
学号:201215325
专业:计算机科学与技术
班级:153
指导教师:孙全红
华北水利水电学院信息系系统结构教研室
实验二存贮层次模拟器
学时:2学时
【实验目的】
1、使学生清楚认识虚拟存贮层次结构,熟练掌握常用的几种存储地址映象与变换方法,以及FIFO、LRU等替换算法的工作全过程。
2、要求用程序实现任意地址流在存储层次上的命中情况,实验结束后提交源程序和实验说明书。
【实验内容】
在模拟器上实现在任意地址流下求出在主存—辅存两层存贮层次上的命中率。
【实验步骤】
1.主存—辅存:映像方式采用组相联,替换算法分别选择FIFO、LRU两种算法实现。
2.要求主存容量、页大小以及组数等可以输入修改。
3.求出命中率;显示替换的全过程;任选一种高级语言来做。
4.要有简洁、易于操作的界面。
【实验仪器设备】
计算机(装有常用编程环境,如C、VC++等)
【源程序、实验结果及分析、实验心得及体会】
#include <stdio.h>
#include <string.h>
typedef struct CMemory4
{
int gm;//组号
int bm;
};
CMemory4 mem4[50];
typedef struct CCach4
{
int gc;
int bc;
int cc;
int bs;
};
CCach4 cac4[50];
int a2[10][20],b2[10][20];
void inputmem2(int m_num,int group) //输入{
int i,t=0,nn=0; for(i=0;i<m_num;)
{
for(int j=0;j<group;j++)
{
if(i>=m_num)
{
break;
}
printf("第%d块",i);
scanf("%d",&nn);
mem4[i].bm=nn;
mem4[i].gm=nn%group;
i++;
}
}
}
void initcac2(int ilen,int group) // {
int i=0,j=0;
for(i;i<group;i++)
{
for(j;j<ilen/group;j++)
{
//cac[j].gc=i;//
cac4[j].bc=-1;//
cac4[j].cc=0;
cac4[j].bs=j;
}
}
}
void change2(int x,int y,int cnum)
{
for(int i=0;i<cnum;i++)
{
cac4[i].cc+=1;
}
a2[y][x]=cac4[y].bc;
b2[y][x]=cac4[y].cc;
}
void fdl(int cnum)
{
int tmp;
tmp=cac4[0].bc;
for(int i=0;i<cnum;i++)
{
cac4[i].bc=cac4[i+1].bc;
}
cac4[cnum-1].bc=tmp;
}
float steadcac2(int tt,int c_num,int j,float h,int i,int g,int group)
{
float sc=h;
int fi=1,fj;//判断是否装满的标记
for (int jj=0;jj<c_num;jj++)//判断cache中是否装满
{
if(jj%group==g&&cac4[jj].bc==-1)
{
fi=0;//没有装满
fj=jj;
break;
} }
if(fi==0)// 未装满
{
cac4[fj].bc=tt;//装入Cache中
printf("块%d装入%d组%d块号\n",tt,g,cac4[fj].bs);
}
else //装满
{
int m=0;
for(m;m<c_num;m++)
{
if(tt==cac4[m].bc)
{
printf("块%d命中%d组%d块号\n",tt,g,cac4[m].bs);
sc=sc+1;//命中
break;
} }
if (m==c_num)
{
fdl(c_num);//FIFO替换,把进队较早的替换掉
cac4[0].bc=tt;
printf("块%d替换%d组%d块号\n",tt,g,cac4[m].bs);
} }
return sc;
}
bool compare2(int m_num,int c_num,int group)
{
float sc=0;
int sm=0,max,j=0,gm,gc,gt=0,tt,bm;
for(int i=0;i<m_num;i++)//内存单元
{
for(j=0;j<c_num; j++)
{
gm=mem4[i].gm;
gc=j%group;
bm=mem4[i].bm;
if(gm==gc)//检查组号相等
{
if(cac4[gt].bc==bm)
{sc=sc+1;//命中
printf("块%d命中%d 组%d块号!\n",bm,gc,cac4[gt].bs);
}
else
{
if(j==0)
{
gt=0;
}
else
{
gt++;
}
sc=steadcac2(bm,c_num,gt,sc,i,gc,group) ;
}
sm++;
if(gt>=c_num/group)
{
gt=0; }
break;
}
}
}
printf("命中率:H=%.2f\n",sc/sm); return 1;
}
void Flink()//
{
int m_num,c_num,group;
printf("请输入内存大小:");
scanf("%d",&m_num);
printf("请输入Cache大小:");
scanf("%d",&c_num);
printf("请输入组数:");
scanf("%d",&group);
inputmem2(m_num,group);
initcac2(c_num,group); //
compare2(m_num,c_num,group); }
void main()
{
Flink();
}
实验心得:这个实验和上个实验依照的原理差不多,只要上个实验有所领悟,这个实验应该不难完成,总而言之,做事要持之以恒,而且要敢于发现问题、解决问题。