机算计组成原理--复杂模型机扩展指令

更新时间:2023-09-21 20:11:01 阅读量: 工程科技 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络空间安全与计算机学院 计算机组成与体系结构 实验报告

一、实验目的:

通过学习复杂模型机的内容掌握机器指令的运行过程,了解指令是如何分解为微指令来一步步执行的,并通过学习能够达到自主设计微指令。

二、实验原理:

通过计算微地址来散转到制定的微指令的位置,然后在此微地址编写实现功能的微指令,一步步执行,最后进行结尾变址,来实现预想的功能。

三、实验过程及现象:

首先定下想要实现的扩展指令功能和指令码形式 扩展指令 com r0, r1 ;

功能 R0,R1先求补码在与非,最后结果存入R0

指令系统:

助记符 操作数 指令码 长度 注释

COM R0,R1 C1 1 将R0,R1中的数据,分别求补码后,进行与非操作

首先我编写的指令是COM ,指令码制定的为 C1,所以计算散转地址为 0780 ,于是COM 指令的操作需在0780 微地址处编写:

COM R0,R1 ; 指令功能是 将R0,R1中的数据,分别求补码后,进行与非操作 想要实现COM 指令,需先弄清楚 需要哪些微指令来实现这个操作。基本可以分解为如下微指令操作: 1、输入 R0,R1

2、(对R0,R1求补码)把R0取反 再 +1,把R1取反 再 +1 3、对R0,R1 进行 与非 操作

大致分好了基本的过程,下面就是具体的实现这三步的微操作了。

第一步:输入 R0,R1

实现R0,R1的输入。散转到07A0 ,编写微指令实现 从 I/O准双向口输入数据 到通用寄存器 ,R0放到通用寄存器偶CL, R1放到通用寄存器奇CH。

第二步:(R0的取补码过程,R1类似)

首先把 通用寄存器CL 的值取出到 A运算寄存器,数据传送规则为 偶送偶,对ALU中数据 取反 保存到A寄存器中,对ALU中数据 +1 保存到A寄存器中。最后把ALU中的数据保存到 通用寄存器中 暂时保存。R1进行类似的操作。

第三步:对R0,R1 进行 与非 操作

从通用寄存器取出取补码后的R0,R1。R0取出到A运算寄存器,R1取出到B运算寄

存器,进行 与 操作,保存到A运算寄存器。对A运算寄存器中的数据进行取反操作。

需要注意的是最后取反以后因为是最后一步微操作,所以微变址出需要变为 结尾变址。uPC改为 0001。

实验总览:

四、实验过程中遇到问题及解决方法:

刚开始时对于如何扩展指令一头雾水,不知道如何实现,后来慢慢的试着探索如何通过指令码来计算散转地址,发现散转地址计算方式为 指令码左移一位 + 0600 ,计算得到的散转地址即为下一步微地址要跳转的地址,如果想要编写微指令就需要散转到指定的微地址,在相应的微地址处编写。比如实验中我的指令码为C1 ,C用16位进制为0110(12),左移再加0600为 0780,(简单计算方法为 12*2 /16 = 1余8 ,所以为0780 ),所以编写指令时起始微地址为0780。

解决完散转地址的问题,下面就是如何编写微指令的问题了。

通过很久的思索和探讨,得知,首先得知道数据的源地址和目的地址,即从哪里取来的数据和操作完以后数据放到哪里。然后就是数据传送时总线的奇偶传送了,最后解决的是执行什么样的操作。

编辑器中起始已经做了相应的提示:

用o2 o1 o0来控制 目标编码选项:

用X2 X1 X0来控制 源编码选项:

用M S2 S1 S0来控制 相应的算术运算、逻辑运算:

用W XP OP 来控制 总线传送规则:

知道了这些操作以后,剩下的就是如何来 取数据、操作数据、传送数据、放置数据。就可以扩展一条指令了。

五、实验心得:

万事开头难,刚开始做实验时就是一脸懵逼,觉得以前做的实验就是简单的验证试验,没什么技术含量,但是真正到了扩展指令时,一开始还是比较蒙的,不知道该如何做了,后来慢慢来,一点点的研究,从如何计算散转地址,到了解到如何编写一条微指令,包括取

数据、操作数据、传送数据、放置数据 ,慢慢的就发现,扩展指令其实就是把这些微指令组合起来来实现一条总得指令嘛,也就感觉豁然开朗,实验起来也就是有想法就能实现,感觉还是得心应手的。通过这次实验不仅仅了解到了指令的微指令的编写过程和实现过程,更让我深刻体会到了钻研和探索的重要性,在刚开始接触一个新东西时,一定是比较蒙的,感觉无从下手,那么就不妨从头开始,一

点点的研究,慢慢的了解原理和方法,原理搞懂了那做东西只会是时间问题。没有深入的研究和探索就不会明白原理,那实现东西就无从谈起。

六、实验源码:

本文来源:https://www.bwwdw.com/article/6u3h.html

Top