计算机组成原理实验报告Word文件下载.docx
《计算机组成原理实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
![计算机组成原理实验报告Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/6/4eec30ce-75ab-4b3a-a7dc-1c3b3e08f0a2/4eec30ce-75ab-4b3a-a7dc-1c3b3e08f0a21.gif)
这三个子操作为什么可以同时进行呢?
因为这三个子操作使用的硬件(包括总线)互不相同,于是可以同时工作。
这一特点表现在微指令编码上,就是这三个子操作的微指令码中为低电平(有效)的都不相同,于是可以将这三个子操作的微指令码合并成一个微指令
2.指令流水执行
指令流水模式,每条指令都应该分成几个独立的子操作,当前趋指令的后几个子操作与后继指令的前几个子操作不使用同样的硬件时,系统就可设计成流水线方式。
同一时间有多条指令各自在不同的硬件中执行,而对同一条指令而言,不同时间顺序在不同的硬件中执行
3.实验箱系统的指令流水硬件基础
“取指令”的微操作,其微指令码微CBFFFF,与大多数的微操作无关。
在厂家给的默认指令系统中这个操作编在了每条指令的最后一个状态,即每条指令的操作完成后就取进下一条指令。
这是典型的“取指、执行、取指……”模式。
即一条指令先被“取指”,再执行其他微操作,完成后再取下一条指令。
如果一条指令的最后一个微操作与取指无关,就可以把二者合并成一个微指令,于是这个指令的最后一个微操作与取下一条指令并行进行。
对下一条指令而言,其“取指”与“其他操作”在不同硬件中顺序执行——指令二级流水。
4.实验箱系统实现指令流水的技巧
一条指令的最后一个微操作与取指无关,就可以把二者合并成一个微指令。
若取指令操作(CBFFFF)与它前面的微操作码没有相同的位为0,则这两个微操作码的“与”就是二者合并后的微指令。
在程序中这条指令就会和它的后继指令形成二级流水模式。
三、实验内容
1.分析流水指令集insfile2.MIC。
2.改造实验十二中自己编制的指令集,使其中至少一条指令成流水方式。
3.在自己编制的两个指令集中运行同一个程序,观测运行情况和效率。
程序来源自定。
四、实验步骤
1.在CP226环境中,通过“文件”下拉菜单的“调入指令系统/微程序”操作,把“c:
\programfiles\CP226计算机组成原理\data\”目录下的insfile2.MIC调入系统,在指令系统窗口逐条观察指令的各微指令码,与指导书103到110页的对应指令的微指令码比较,分析二者的异同。
2.仿照insfile1.MIC和insfile2.MIC的异同改造自己编制的指令集。
并在两个指令系统中运行同一个程序。
3.在实验十二中我们已经编制了自己的指令集,稍加修改即可
4.把实验十二中的asm文件中的“延迟”去掉,在其后加上7-8个“输出”;
把dat、mic、mac中的“延迟”相关的东西都去掉,保存程序。
5.在4的基础上改动mic中的“A-W”和“输出”的指令,把取指指令改为“FFFFFF”,保存文件。
5.打开CP226,打开调入指令系统,把原来4改过的指令集调入到CP226中,打开asm文件,打开实验箱,编译、全速运行,观察实验箱中OUT现象。
6.打开调入指令系统,调入5中改过的程序,编译、全速运行。
观察实验箱中OUT中的现象。
asm文件:
L1:
输入A,#55h
输出
输出
输入A,#22h
A-WA,#22h
跳到L1
END
4中修改的指令集:
mic:
_FATCH_T000CBFFFF指令寄存器IRA输出
01FFFFFFA输出
02FFFFFFA输出
03FFFFFFA输出
04FFFFFFA输出
05FFFFFFA输出
06FFFFFFA输出
07FFFFFFA输出
08FFFFFFA输出
09FFFFFFA输出
0AFFFFFFA输出
0BFFFFFFA输出
0CFFFFFFA输出
0DFFFFFFA输出
0EFFFFFFA输出
0FFFFFFFA输出
A-WA,#*T210C7FFEF存贮器值EM寄存器WPC输出A输出
T111FFFE91ALU直通寄存器A标志位C,Z加运算
T012CBFFFF指令寄存器IRPC输出A输出
13FFFFFFA输出
输出T114FFDF9FALU直通用户OUTA输出
T015CBFFFF存贮器值EM寄存器WMAR输出A输出
16FFFFFFALU直通寄存器A标志位C,Z加运算
17FFFFFF指令寄存器IRPC输出A输出
跳到*T118C6FFFF存贮器值EM寄存器PCPC输出A输出
T019CBFFFF指令寄存器IRPC输出A输出
1AFFFFFFA输出
1BFFFFFFA输出
输入A,#*T11CC7FFF7存贮器值EM寄存器APC输出A输出
T21DCBFFFF指令寄存器IRPC输出A输出
1EFFFFFFA输出
1FFFFFFFA输出
mac:
_FATCH_000000xx00-031
000001xx04-041
000010xx08-0B1
000011xx0C-0F1
A-WA,#*000100xx10-13II2
输出000101xx14-171
跳到*000110xx18-1BMM2
输入A,#*000100xx1C-1FII2
dat:
A-WA,#*102
输出141
跳到*182
输入A,#*1C2
5中修改的指令集(流水系统):
T111CBFE91ALU直通寄存器A标志位C,Z加运算
12FFFFFF指令寄存器IRPC输出A输出
输出T114CBDF9FALU直通用户OUTA输出
15FFFFFF存贮器值EM寄存器WMAR输出A输出
输出000101xx14-171
跳到*000110xx18-1BMM2
五、实验现象
调用4中修改的指令集后,OUT依次交替显示55、22、33,调用5中修改的流水程序后,交替显示55、22、33的速度加快。
六、实验结论
流水系统可以缩短指令执行的时间,实验现象与实验预期一致。
七、建议
八、体会
这次实验时在实验十二编写自己的汇编指令集的基础上来做的,只不过把实验十二中指令集mic文件中的“A-W”和“输入”取值指令“CBFFFF”改为“FFFFFF”,然后把指令集中所有与“延迟”有关的指令都删去,把asm文件延迟去练换为7-8个“输出”指令。
通过实验,深刻体会到了流水系统指令可以加快缩短指令执行的时间,有助于指令执行的速度提升。
和试验十二一样,我们也可以编写自己的指令集,使指令编写更加的快捷。
这个学期的实验结束了,通过这么多的实验,从内存系统、程序转移、中断的调用、到汇编指令系统和指令流水系统,我学到了很多,更加了解了指令在计算机内部的执行、存储情况,也是对计算机组成原理的一种更深入、切身的理解。
相信以后会有更大的提高。
九、思考题
无