lyn《计算机组成原理》课程设计模版
烟台理工学院信息工程学院
课程设计报告
课程名称: 计算机组成与体系结构
专 业: 计算机科学与技术
班 级: 信2321-2
学 号: 202305721210
姓 名: 刘一诺
学 期: 2023-2024-2
《计算机组成与体系结构》课程设计任务书
院(系):信息工程学院
姓名 | 刘一诺 | 学号 | 202305721210 | 班级 | 信2321-2班 | 专业 | 计算机科学与技术 | |||
设计题目 | 典型模型机的设计与实现 | |||||||||
指导教师 | 宫萍 | |||||||||
具体要求(主要内容、基本要求、主要参考资料等): 一、设计内容: 在课程实验已完成的手动(在线)控制实验中,各部件单元的控制信号主要是以手动拨码方式产生。在此基础上,本次设计是在微程序控制下,自动产生各部件单元的控制信号,实现特定指令的功能,设计并验证微程序OC的工作原理。 二、设计目标 在掌握部件单元电路实验的基础上,构造一台基本模型计算机。 为其定义8条(或以上)机器指令,设计相应的微程序,并在实验系统上调试通过,以理解CPU控制原理以及计算机整机系统概念。 三、技术路径 计算机数据通路和指令周期的控制将由微程序控制器来完成,即:CPU从主存EM中取出一条机器指令、分析指令、执行指令的一个指令周期处理过程,全部由微指令组成的序列来完成,设计微程序控制器,实现各机器指令功能,并“微单拍”验证控制器的工作过程。 进度安排:
学生(签字) 指导教师(签字): 2023年 5 月31日 |
正文部分
设计任务
在掌握部件单元电路实验的基础上,构造一台基本模型计算机,在系统自带的五条机器指令的基础上(IN、ADD、STA、OUT、JMP)添加小组自行设计(MOV、OR、SUB)的三条机器指令,上机调试掌握整机概念。
指令系统分析与设计
指令系统如图1所示:
图 1指令系统
(1)IN机器指令目的是将IOL数据读出到寄存器R0,为系统自带指令。
(2)ADD机器指令目的是将AX和BX的值相加,为系统自带指令。
(3)SUB机器指令目的是将AX和BX的值相减,为本组自行设计的机器指令。
(4)STA机器指令目的是将AX和BX的值相加,为系统自带指令。
(5)OUT机器指令目的是将AX和BX的值相加,为系统自带指令。
(6)MOV机器指令目的是将AX和BX的值相加,为本组自行设计的机器指令。
(7)OR机器指令目的是将AX和BX的值相加,为本组自行设计的机器指令。
(8)JMP机器指令目的是将AX和BX的值相加,为系统自带指令。
微程序控制设计与分析
微程序指令流程图如图2所示:
图 2微程序控制
(1)IN机器指令中,是将I/O输入端的值通过BUS传送给R0。
(2)ADD机器指令中,是直接将字节加到寄存器R0中,即将R0的字节与字节相加再传入R0中。
(3)SUB机器指令中,是直接将字节加到寄存器R0中,即将R0的字节与字节相减再传入R0中。
(4)STA机器指令中,是把寄存器R0的值直接写入内存。
(5)OUT机器指令中,是把直接字节输出到I/O端。
(6)MOV机器指令中,是把R0的值通过数据总线传给R2。
(7)OR机器指令中,是直接将字节加到寄存器R0中,即将R0的字节与字节相或再传入R0中。
(8)JMP机器指令中,无条件转移,跳转到取指令的开始位置。
指向了START指令即IN机器指令,将数据清零,从IN机器重新开始运转。
设计与调试过程分析
(1)调试和实现过程
主程序如图3所示:
图 3主程序指令图
1.IN机器指令系统显示如图4所示:
图 4 IN机器指令显示器图
IN机器微指令图如图5所示:
图 5 IN机器微指令图
2.ADD机器指令系统显示如图6所示:
图 6 ADD机器指令显示器图
ADD机器微指令图如图7所示:
图 7 ADD机器微指令
3.SUB机器指令系统显示如图8所示:
图 8 SUB机器指令显示器图
SUB机器微指令图如图9所示:
图 9 SUB机器微指令
4.STA机器指令系统显示如图10所示:
图 10 STA机器指令显示器
STA机器微指令图如图11所示:
图 11 STA机器微指令
5.OUT机器指令系统显示如图12所示:
图 12 OUT机器指令显示器
OUT机器微指令图如图13所示:
图 13 OUT机器微指令
6.MOV机器指令系统显示如图14所示:
图 14 MOV机器指令显示器
MOV机器微指令图如图15所示:
图 15 MOV机器微指令
7.OR机器指令系统显示如图16所示:
图 16 OR机器指令显示器
OR机器微指令图如图17所示:
图 17 OR机器微指令
8.JMP机器指令系统显示如图18所示:
图 18 JMP机器指令显示器
JMP机器微指令图如图19所示:
图 19 JMP机器微指令
(2)出现的问题及其解决方法
1.问题一:最开始设计ADD程序,装载运行后,程序未停止,一直跳转add指令。
解决措施:在和小组成员讨论后,程序结束时uPC要设置为0001,才能停止运行,并且跳转到取下一条指令的开始位置。
2.问题二:在进行从内存写入数据指令时,发现有时不按照总线规则传输数据。
解决措施:经询问老师后,发现数据传递是由指令码控制,且一次只能传输8位(一个字节)。
3.问题三:写程序中OR指令时编译错误,并且不能执行指令。
解决措施:在询问老师和小组成员讨论以后,通过修改目的地址和源地址---将源程序中or r0,*改为or 0260h,r0以及将微程序中微指令 73 0E FF改为43 07 C0,程序运行成功。
小结与体会
经过这次课程设计,在这过程中我学习到了许多,也了解了许多,在摸索中前进,学习。其中最重要的是我们对CMstudio这一软件有了一个充足的认识,学会了如何去制作一个微程序,学会了如何去改正一个微程序,学会了如何看模型机结构图!
通过观察模型机结构图,我开始从最基础的层面理解计算机是如何工作的。每一个部件——从最简单的寄存器、算术逻辑单元(ALU)到复杂的控制单元,它们的功能和相互之间的连接,都让我对“计算机如何执行指令”这一核心问题有了直观的认识。这种从零开始构建的视角,让我对计算机系统的整体架构有了更深层次的理解。
编写微程序是一个既挑战又充满乐趣的过程。通过为特定的指令集设计微指令序列,我亲身体验到了如何将高级语言的抽象指令转换为机器能够执行的基本操作。这个过程不仅考验了我的逻辑思维能力,也让我深刻体会到计算机科学中“分层抽象”的精妙之处。每一条看似简单的指令背后,都是无数微操作的精确协同。
这次实验学习让我深刻认识到,理论知识只有通过实践才能真正内化。在这次学习中我不仅获得了专业知识的提升,更重要的是培养了解决问题的能力、创新思维以及对技术深入探索的兴趣。也非常感谢老师细心解答我们的问题。
信息工程学院《计算机组成与体系结构课程设计》
报告评阅表
分 项 评 价 | 评阅项目 | 得分 | |
课 设 完 成 度 (40分) | 报告涵盖了所有必要的内容,没有遗漏或缺失。 | ||
内 容 完 整 性 (30分) | 报告内容的逻辑连贯性和结构的条理性。 报告中的数据、引用和结论的准确性。 | ||
收 获 与 体 会 (15分) | 报告中收获与体会深刻,能够深刻体会到生产实习的作用与意义。 | ||
内 容 表 述 (15分) | 报告的文字表达是否通顺、清晰。 | ||
评阅人最终给分: 分 | |||
评 阅 人 评 语 | 你在课设中展现出了扎实的理论基础和出色的实践能力,对课程所涉及的内容有深刻的理解和领悟。你的报告清晰、详细、条理清晰,展示了严谨的思维和良好的表达能力。 评阅人签字: 2024年 6 月 3 日 |