计算机组成原理课设——我自己亲手写了机器指令和微指令

前言:2014年12月,大二上学期,计算机组成原理课程设计,我当年亲手写了一些机器指令,甚至设计出了一些微指令(扩充指令集,写到控制存储器里面),想想都觉得我当年好厉害。。。

PS. 刚刚写完微机接口课程设计报告,微机接口让我回想起了一年多前的计算机组成原理。我把当时的照片和报告都找了出来,温习了一下~


设计微指令

x86有一套复杂指令集(CISC),每一条复杂指令背后由若干条微指令组成。

在本次课程设计中,我在试验箱已有的8086的微指令集的基础上,扩充了自己写的7条微指令。

图:我扩充的微指令,需要写到控制存储器中


编写的机器指令

这不是C,不是C++,不是Java,而是机器语言!没错,就是0、1序列!


图:最上面3条机器指令是依据我扩充的7条微指令设计出来的“新的机器指令”。下面一排机器指令,是一段完整的程序。这个程序最终应该输出”9119”、”9108”、”9107”、”0011”


运行结果

运行结果完美符合预期



总结

通过本次实验,我深入了解了微指令的“奥妙”。

从微指令的设计到实现,我已经基本上完全弄明白了。本次试验中,微指令有 24 位。I0~I5 是下地址,指向下一条微指令的地址;I6~I8 是 F3 表示测试;I9~I11 表示 F2, I12~I14 表示F1,用来控制寄存器;I15~I23 用来表示微指令的功能(比如:加减法,相与或者相或)。

微指令与机器指令的关系,我现在更是理解透彻了。在实验中,我们组员单步调试(也就是按下脉冲信号),一步一步跟踪微地址灯的变化,从而一步一步观察什么时候执行哪一条微指令。课本上面说得很轻松:一条机器指令对应一段微程序,一段为微程序就是一系列微指令。但是,只有做实验:亲手设计微程序代码;亲手连接线路;遇到问题时亲手解决难题才能够真正理解计算机组成原理的精髓。


完整的课程设计报告

本博客节选自课程设计中的一个实验。课程设计总共有4个实验完整的报告在这里!下载链接,猛戳这里,不要积分

  • 31
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
对于计算机组成原理课程的排序课设,可以考虑以下几个方面的内容: 1. 排序算法的实现:可以选择一些常见的排序算法,如冒泡排序、插入排序、选择排序、快速排序、归并排序等,并进行实现和演示。可以通过编程语言来实现,比如C语言或者Python。 2. 性能分析和比较:对不同的排序算法进行性能分析和比较,比如时间复杂度、空间复杂度、稳定性等方面。可以使用图表或者表格的形式展示各种算法的优劣势,并给出相应的分析和解释。 3. 硬件实现:可以考虑基于FPGA或者Verilog等硬件描述语言来实现一种排序算法,将其部署到实际的硬件平台上运行,并通过性能测试来评估其效果。 4. 指令级优化:可以尝试对排序算法进行指令级优化,使用汇编语言或者优化编译器来优化算法的实现,提高其执行效率。可以通过与未优化版本的比较来展示优化的效果。 5. 并行与并发:可以探讨在多核或者分布式系统上实现排序算法的并行与并发优化。可以使用多线程、多进程或者分布式计算框架,比如OpenMP、MPI等来实现并行排序,并通过性能测试比较并行与串行执行的效果。 以上是一些可能的课设方向,可以根据自己的兴趣和能力选择其中的一个或者多个进行深入研究和实现。同时,也可以考虑与其他课程内容结合,比如操作系统、计算机网络等,来完成更加综合性的课设

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值