计算机系统结构实验二
- 格式: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安装与调试步骤、程序运行方法,以及对模拟结果的分析等。
实验报告册
计算机系统结构
姓名:韩文肖
学号: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();
}
实验心得:这个实验和上个实验依照的原理差不多,只要上个实验有所领悟,这个实验应该不难完成,总而言之,做事要持之以恒,而且要敢于发现问题、解决问题。