计算机组成原理 课程设计报告

 

 

 

 

计算机组成原理

课程设计报告

 

   成员:许恺   2014011329

         胡强勇  2014011315

    时间:2016.12.20

 

 

 

 

 

 

 

 

一.简要总结计算机组成原理实验

计算机组成原理实验总共五个实验,首先我们熟悉了教学机的使用方法,后面的实验我们分为运算器、存储器、控制器,控制器分为两次实验。紧接的第二次实验我们就进行了运算器的实验,对运算器的内部构造极其原理进行了验证理解,在这里我们学习了运算器ALU的8种运算功能,以及其通用寄存器组,以及运算器的编码指令和每部分的作用。然后,我们第三次实验对我们课上所学的存储器进行了实验验证,按照书上的步骤进行了内存扩展,在这次实验中我们了解了存储器的功能、组织以及静态存储器芯片的读写原理,通过实验对字扩展和位扩展有了理解和掌握。第四次和第五次实验都是关于微程序控制器的实验,这部分我们先学习了很多图表,都是和微程序控制相关的,通过这些和实验,我们理解了控制器的功能和组成,理解了各类典型指令的执行流程,对指令格式、寻址方式、指令系统、指令分类有了系统的概念,还让我们学会了指令的设计以及相关技术。在这一部分,实验主要以教学机为基础来进行,通过让我们自己学习研究指令代码并进行设计来让我们对课本进行实践,让我们,看懂、理解、会写、会设计指令代码。计算机就是由运算器、存储器、控制器以及I/O组成的,接口部分有专门的课程,所以我们的计算机组成原理实验就从前三方面对我们的理论知识进行实践教学,主体重点清楚明了,实验难易结合,有单步验证也有综合设计,对我们的动手和设计能力有极大的提高。

二.回答下列问题

1.微程序中的微指令是顺序执行的吗?下地址是如何产生的?

1)不是。一般的微指令格式由操作控制和顺序控制两部分构成。操作控制部分用来发出管理和指挥全机工作的控制信号。其顺序控制部分用来决定产生下一个微指令的地址。

2)有两种方式

①计数器的方式:

微程序顺序执行时,其后继微地址就是现行微地址加上一个增量(通常为1);

当微程序遇到转移或转子程序时,由微指令的转移地址段来形成转移微地址。

特点:

优点:简单、易于掌握,编制微程序容易

缺点:这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

②多路转移的方式:

转移条件:

①操作码

②状态条件及测试

③微指令中下地址

2.根据实验,哪些微指令是所有机器指令都要用到的?为什么要这样设计?

答:加电启动(1条):0->PC,DI#=0;

取指(3条):PC->AR,PC+1->PC;

MEM->DR;

DR->IR;

执行完毕(2条):STR->Q、CC#=INT#;

PC->AR、PC+1->PC

因为这些指令都属于公操作。所谓公操作,就是一条指令执行完毕后,CPU所开始进行的操作,这些操作主要是CPU对外围设备请求的处理,如中断处理、通道处理等。由于所有的指令的取指周期是完全一样的,因此,取指令也可认为是公操作。

3.一条机器指令与一段微指令相对应,完成这条机器指令的微程序的各条微指令存放在控制存储器中,存放这些微指令的微地址是否连续,为什么?

答:不连续。因为微指令执行的顺序控制问题,就是如何确定下一条微指令的地址问题。通常,产生后继微地址有两种方法。分别是计数器方式和多路转移方式。而这两种方式产生的下一条微指令的地址都不一定连续。

4.设计!

1)指令设计(题目要求)

指令设计:

指令:SBB

指令格式:16位一个字长

功能:DR-SR-CF->DR

微程序地址映射:指令编码 00100001->51

选择寄存器:目的寄存器R0,源寄存器R1

指令存储格式:2101

微程序与32位微码:

01:PC->AR,PC+1->PC; 8D05505E

02:MEM->IR;                     20800008

03:/MAP; 80800000

51:DR-SR-CF->DR;   30 0011 0000 100 001 011 001 0000 0001 001 010 000 000

30:STR->Q,CC#=INT#;             9C000003

31:PC->AR,PC+1->PC,CC#=0;       8D05505E

指令设计:

指令:STRX DR,OFFSET[SR]

指令格式:16位两个字长

功能:PC->AR,PC+1->PC,MEM+SR->AR,CC#=0,DR->MEM

微程序地址映射:指令编码11100110->61

选择寄存器:不用

指令存储格式:E601

微程序与32位微码:

01:PC->AR,PC+1->PC; 8D05505E

02:MEM->IR; 20800008

03;/MAP; 80800000

61:PC->AR,PC+1->PC;00 1110 0000 100 011 010 000 0101 0101 000 001 011 000

62:MEM+SR->AR,CC#=0;00 1110 0000 001 101 011 000 0000 0000 000 000 011 000

63:DR->MEM;        30 0011 0000 000 100 001 000 1000 0000 000 000 000 001

30:STR->Q,CC#=INT#;    9C000003

31:PC->AR,PC+1->PC,CC#=0; 8D05505E

指令设计:

指令:JMPR

指令格式:16位一个字长

功能:JMPR SR

微程序地址映射:指令编码01100000->5A

选择寄存器:源寄存器R0

指令存储格式:6000

微程序与32位微码:

01:PC->AR,PC+1->PC

02:MEM->IR

03:/MAP

5A: SR->PC,CC#=0    30 0011 0000 100 100 011 000 0101 0000 000 000 000 000

30:STR->Q,CC#=INT#

31:PC->AR,PC+1->PC,CC#=0

指令设计:

指令:CALR

指令格式:16位两个字长

功能:调用SR指明的子程序

微程序地址映射:指令编码11100000->64

确定转移

指令存储格式:E000

微程序与32位微码:

01:PC->AR,PC+1->PC;

02:MEM->IR;

03:/MAP

64:SP-1->SP、AR;   00 1110 0000 100 011 011 001 0100 0000 000 001 011 000

65:PC->MEM;  00 1110 0000 000 100 001 000 0000 0101 000 000 000 001

66:SR->PC、CC#=0;  30 0011 0000 100 100 011 000 0101 1000 000 000 000 000

30:STR->1,CC#=INT#; 9C000003

31:PC->AR,PC+1->PC; 8D05505E

指令设计:

指令:ADC

指令格式:16位一个字长

功能:DR+SR+C->DR

微程序地址映射:指令编码00100000->50

选择寄存器:目的寄存器R0,源寄存器R1

指令存储格式:2001

微程序与32位微码:

01:PC->AR,PC+1->PC

02:MEM->IR

03:/MAP

50:DR+SR+CF->DR    30 0011 0000 100 001 011 000 0000 0001 001 010 000 000

30:STR->Q,CC#=INT#

31:PC->AR,PC+1->PC,CC#=0

指令设计:

指令:STC

指令格式:16位一个字长

功能:C=1

微程序地址映射:指令编码01101101->57

指令存储格式:6D00

微程序与32位微码:

01:PC->AR,PC+1->PC

02:MEM->IR

03:/MAP

57:STC,CC#=0    30 0011 0000 100 011 001 000 0000 0000 100 000 000 000

30:STR->Q,CC#=INT#

31:PC->AR,PC+1->PC,CC#=0

指令设计(拓展)

指令设计:

指令:RCL DR

指令格式:16位一个字长

功能:DR带进位C循环左移

微程序地址映射:指令编码00101010->54

所用寄存器:源寄存器R0

指令存储格式:2A00

微程序与32位微码:

01:PC->AR,PC+1->PC;

02:MEM->IR;

03:/MAP;

54:DCL DR;    30 0011 0000 100 011 111 000 0000 0000 110 101 000 000

30:STR->Q,CC#=INT#;

31:PC->AR,PC+1->PC,CC#=0;

指令设计:

指令:IRET

指令格式:16位一个字长

功能:中断返回

微程序地址映射:指令编码11101111->67

所用寄存器:无

指令存储格式:EF00

微程序与32位微码:

01:PC->AR,PC+1->PC;

02:MEM->IR;

03:/MAP;

67:SP->AR,SP+1->SP;  00 1110 0000 100 011 010 000 0000 0100 000 001 011 000

68:MEM->STR、CC#、INTOLD#;  30 0011 0000 001 111 001 000 0000 0000 000 000 100 000

30:STR->Q,CC#=INT#;

31:PC->AR,PC+1->PC,CC#=0;

指令设计:

指令:NOT

指令格式:16位一个字长

功能:DR<-/DR

微程序地址映射:指令编码00101101->52

选择寄存器:目的寄存器R0

指令存储格式:2D00

微程序与32位微码:

01:PC->AR,PC+1->PC;

02:MEM->IR;

03:/MAP;

52:/DR->DR;    30 0011 0000 100 011 011 111 0000 0000 001 000 000 000

30:STR->Q,CC#=INT#;

31:PC->AR,PC+1->PC,CC#=0;

指令设计:

指令:STRA [ADR],SR

指令格式:16位两个字长

功能:[ADR]<-SR

微程序地址映射:指令编码11100111->5F

选择寄存器:目的寄存器R0

指令存储格式:E701

微程序与32位微码:

01:PC->AR,PC+1->PC;

02:MEM->IR;

03:/MAP;

5F: PC->AR,PC+1->PC;    60 1110 0000 100 011 010 000 0101 0101 000 001 011 000

60:MEM->AR;            30 0011 0000 001 111 001 000 0000 0000 000 000 011 000

30:STR->Q,CC#=INT#;

31:PC->AR,PC+1->PC,CC#=0;

2)错误和遇到的问题以及解决

指令设计中出现了很多错误和问题,我们说一下遇到的问题和错误以及解决。

  1. SST问题?

解答:SST标志位问题,对标志位无影响时使用000;对标志位产生影响时用001;想  通过标志位直接输出0或1时用011或100;RAM0表示将16位最低位放进标志位;同  理RAM15表示将最高位放到标志位,在移位时使用;Q0指将Q寄存器的最低位放到标  志位,用法不详。

  1. I2~0中0A和0B的区别?

解答:没什么区别,如果如果需要输出给运算寄存器,则需要用B;如果需要直接从A输出,则用A。

  1. I2~0中Q和D的含义?

解答:Q寄存器是一个乘商寄存器,当运算涉及乘除法时,会使用Q寄存器,其他情况为通用寄存器同AB;D寄存器通常用于有内存读的时候,代表了内存和内存的一些指令,实验书上未详细介绍。

  1. DC1中中断向量低位到内部总线的含义?

解答:中断向量的低位指中断向量16位的低四位,将其送到内部总线判断指令是否产生中断。(DC1中的000约等于111,没什么作用。)

  1. CC#=0为何有时加有时不加?

解答:CC#=0放在非公操作指令的最后一条微指令的末尾,表示指令执行结束,跳转到30公操作。

  1. RCL的SSH SCI 中为什么用逻辑移位?

解答:应该用的是循环移位。

5.回答问题

1)设计指令系统

2)设计上述6条机器指令对应的微指令

答:此题在上面已经解答,在此不做重复。

3)除公操作外,每个指令用哪几条微指令实现指令功能?

答:此题在上面已经解答,在此不做重复。

4)分析说明三条扩展指令的32位微码的设置原理。

在这里选择三条扩展指令进行详细的32微码设置的分析:

1.SBB指令分析

SBB DR,SR

DR-SR-CF->DR


MRW


I2-0


I8-6


I5-3


B口


A口


SST


SSH.SCI


DC2


DC1


100


001


011


001


0000


0001


001


010


000


000


MRW


因为此指令无内存和I/O读写,故选1XX


I2-0


因为涉及DR和SR,所以用A和B两个锁存器,故为001


I8-6


因为要->DR,所以要输出到DR上,所以选F->B,Y=F,故为011


I5-3


因为是减法运算,所以选R-S,故为001


B口


因为B口使用R0,故为0000


A口


A口使用R1,故为0001


SST


因减法运算还有-CF,会有标志位的运算,所以选择001


SSH,SCI


因为运算中存在CF故标志位不定,,所以选010


DC2


指令并没有对AR,IR,INT操作,故不操作,选000


DC1


因为不需要用到DC1故选000

2.JMPR指令分析

JMPR SR

SR->PC,CC#=0


MRW


I2-0


I8-6


I5-3


B口


A口


SST


SSH.SCI


DC2


DC1


100


100


011


000


0101


1000


000


000


000


000


MRW


因为此指令无内存和I/O读写,故选1XX


I2-0


因为SR直接赋值,所以用A锁存器,R为0,故为100


I8-6


因为要->SP,所以要输出到SP上,所以选F->B,Y=F,故为011


I5-3


因为是0+SR运算,所以选R+S,故为000


B口


因为B口使用SP,R5,故为0101


A口


A口使用SR,R8,故为1000


SST


因为不会存在标志位的改变,所以选择000


SSH,SCI


因为不需要用标志位,所以选000


DC2


指令并没有对AR,IR,INT操作,故不操作,选000


DC1


因为不需要用到DC1故选000

3.STRA指令分析

STRA [ADR],SR

PC->AR,PC+1->PC;


MRW


I2-0


I8-6


I5-3


B口


A口


SST


SSH.SCI


DC2


DC1


100


011


010


000


0101


0101


000


001


011


000


MRW


因为此指令无内存I/O读写,故选1XX


I2-0


因为PC既要被运算也要被输出,故选B锁存器,故为011


I8-6


因为要->AR,PC,所以要输出到PC上,所以选F->B,Y=A,故为010


I5-3


因为是加法运算,所以选R+S,故为000


B口


因为B口使用PC,R5,故为0101


A口


A口使用PC,R5,故为0101


SST


不会有标志位的运算,所以选择000


SSH,SCI


因PC需+1,标志位需要为1,所以选001


DC2


因为需要AR接收,故选011


DC1


因为不需要用到DC1故选000

MEM->AR;


MRW


I2-0


I8-6


I5-3


B口


A口


SST


SSH.SCI


DC2


DC1


001


111


001


000


0000


0000


000


000


011


000


MRW


因为此指令需要读取内存,故选000


I2-0


因为从内存读取,所以使用D直接赋值,故为001


I8-6


因为直接输出,不用改变B的值,所以选Y=F,故为001


I5-3


因为加0运算,所以选R+S,故为000


B口


因为B口没使用,故为0000


A口


A口没使用,故为0000


SST


因不会有标志位的运算,所以选择000


SSH,SCI


因为没有标志位运算,所以选000


DC2


指令要写入AR,故选011


DC1


因为不需要用到DC1故选000

6.总结感悟

  这次的计算机组成原理课程设计我组成员收获颇丰,在掌握知识的同时,还增强了克服困难的信心。总体来说,本次的报告难度适中,如果上课认真学习报告是没有问题的,在报告的写的过程中,我们复习了很多课上还有实验中的知识,同时也查了一些资料,问了老师一些问题,感觉懂得了不少课内外的知识。不仅如此,完成报告也给了我们鼓励,让我们在面对困难的时候能够认真的一步一步去完成,不断提高自己。在和老师的交流中我们也发现了实验的一些小漏洞,比如可能对于学生来说实验书写的知识太少了,有的知识点不能理解的很好,我认为可以在实验书上写更多的扩展知识,让同学们更加的理解整个知识体系,也学的更多。谢谢。

时间: 2024-12-17 12:00:48

计算机组成原理 课程设计报告的相关文章

校园宿舍管理系统课程设计报告

课程设计报告 学    号   201610411418  /  2016104114122 姓    名   吴帝勇 /谢志良 班    级   16计科4班 题    目   校园宿舍管理系统 授课老师    袁飞 目录 第一章系统概述..............................................................................................................................1 1.

Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码

课程设计报告一:个人银行账户管理系统 此文档及源码仅供参考 不得直接复制使用 author: [xxxxxxxxx xx xxxx] date: "2019-04-12" 作 者:31415926535x 出 处:https://www.cnblogs.com/31415926535x/p/10697659.html 版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本. 不建议直接复制文档.源码,没意义,这东西还是自己手敲一下才能涨经验 项目所有的内容都已上

2019春 第三次课程设计报告

2019春 第三次课程设计报告 一,实验项目名称 利用easyX插件完成的时钟 二,实验项目功能描述 实现将时间显示为时钟 三,项目模块结构介绍 只有一个游戏主题,即时钟.cpp 四,实现界面展示 五,代码托管链接 https://gitee.com/zhuwanxing/zwxc 六,实验总结 这次是使用vs,用easyX插件来完成图像显示,在使用vs的时候出现了不少问题,但是都用百度搞定了,vs无法直接使用,要在调试-属性-c/c++-预处理器 输入 _CRT_SECURE_NO_WARNI

软件课程设计报告

南 京 理 工 大 学 课程设计说明书 组员 : 刘雨薇 学 号: 914106840606   张钰 914106840310   张欢欢 914106840509   彭姿容 914106840501 学院(系): 计算机科学与工程学院 专业 计算机科学与技术专业 题目 计算机网络课程测试系统       2016 年   11 月 目录 一.概述 ·················································3 二.需求分析···············

南理工14级第4组软件课程设计报告

南 京 理 工 大 学 课程设计说明书 作  者: 高明 学 号: 914106840518   刘建平   914106840526   王金   914106840234   王琪栋   914106840235   雷杨   914106840618 学院(系): 计算机科学与技术学院 专  业: 计算机科学与技术 题  目: 离散课程练习测验系统   2016年    10月 目录 一.概述 ················································

计算机毕业课程设计源码打包下载

下载地址1: http://dl.vmall.com/c06pluqz6r 10个数据结构课程设计实例二...冒泡排序快速排序等.rar  下载  9.99K asp+sqlserver2000网络书店系统.rar  下载  1.4M asp+sqlserver2000在线考试系统.rar  下载  1.21M ASP+sql精品在线试题库设计+论文.rar  下载  2.7M asp.net+sql2008在线论坛系统.rar  下载  3.09M asp.net_sql2008公司人事管理系

课程设计报告

  题    目 基于Android的云通讯录 系    别 信息与控制工程系 专    业 计算机科学与技术 班    级 1701 学    号 173230101 姓    名 丁海洋 指导教师 郭丹 目录 基于android的云通讯录系统设计与实现 3 1.1 系统需求分析 3 1.1.1 用例分析 3 1.   用例名称:登录  3 2. 用例名称:注册  4 3.   用例名称:添加 4 4. 用例名称:查询 4 5.   用例名称:搜索 4 6. 用例名称:修改  4 7.   用

.NET课程设计报告

一.设计题目: 公司员工管理系统 二.设计意义: 通过此次课程设计,让我们进一步了解c#应用程序开发的过程,同时也让我们对前面所学的知识付出实践,达到熟练掌握.综合性应用的目的. 三.设计内容: 1.项目分析: 1) 员工信息管理 2) 员工考勤管理 2.项目设计 首先,我们必须建立一个登录系统和八个子系统. 登录系统:用户在登陆后可以进行权限操作管理. 员工信息管理系统:对员工信息进行查询.修改.添加.删除. 员工考勤管理系统:对员工考勤信息进行查询.修改.添加.删除. 使用SQL SERVE

在线抢购平台_课程设计报告

第1章 概述 1.1 课程设计的核心任务 需求分析.可行性分析.E-R图.关系图.系统架构图等的编写 总体设计.详细设计.代码实现 项目测试 本系统: 后端采用SSM(Spring+SpringMVC+MyBatis)的架构,实现RESTful API 接口,前端采用react进行前后端分离设计,完成商品在线系统. 1.2 课程设计工作进程 已经完成,用户登录注册,商品的添加,活动促销的添加,商品的查看与秒杀. 后续继续完成,订单页面的优化与完成,针对高并发下单任务的处理,针对用户重复秒杀商品的