计算机组成原理

课程设计报告

 

   成员:许恺   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.总结感悟

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

计算机组成原理 课程设计报告相关推荐

  1. 计算机组成原理课程设计a,计算机组成原理课程设计报告.doc

    计算机组成原理课程设计报告.doc (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 计算机组成原理课程设计报告实验项目:1.设计一 ...

  2. 重庆大学计算机课程设计,计算机组成原理课程设计报告重庆大学.doc

    计算机组成原理课程设计报告重庆大学 计算机组成原理课程设计报告 题目:微程序设计 专业:计算机科学与技术 班级: 指导老师: 目录 一.摘要 二.设计要求 三.微程序控制器原理 四.总体设计 五.测试 ...

  3. 西南交通大学计算机组成原理,西南交通大学计算机组成原理课程设计报告

    西南交通大学计算机组成原理课程设计报告 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 <计算机组成实验 C>课程设计适 ...

  4. 计算机组成原理调研报告,[调研报告]计算机组成原理课程设计报告模板2011.doc...

    [调研报告]计算机组成原理课程设计报告模板2011 课程设计(论文)任务书 软件 学 院 软件+电子商务 专 业 2 班 一.课程设计(论文)题目 基本模型机设计与实现 二.课程设计(论文)工作自 2 ...

  5. 重庆大学 计算机组成原理,计算机组成原理课程设计报告重庆大学

    计算机组成原理课程设计报告重庆大学 (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 CHONGQING UNIVERSITY计算机组 ...

  6. 计算机原理课程设计模拟cpy,山东大学-计算机组成原理课程设计报告样例

    [实例简介] 山东大学计算机组成原理课程设计报告-包括实验格式+设计详细步骤(加法+乘法)+设计心得 5令果记 A A *影个碟「数 Mv2A开 R,:将2个操取至积 ADR.R,:兴R,R孙数彬栩劝 ...

  7. 江苏大学计算机组成原理课设6,计算机组成原理课程设计报告江苏大学适用于软件工程...

    计算机组成原理课程设计报告江苏大学适用于软件工程 (26页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 江苏大学<计算机组成原理&g ...

  8. 计算机组成原理cop乘法器,计算机组成原理课程设计报告COP2000实现乘法器和除法器.doc...

    文档介绍: 计算机组成原理课程设计报告班级:班姓名:学号:完成时间:一.课程设计目的1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统 ...

  9. 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),《计算机组成原理》课程设计报告材料...

    <计算机组成原理>课程设计报告材料 (28页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实用文档电子信息学院实验报告书课程 ...

  10. 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),计算机组成原理课程设计...

    课程设计任务书 专业:计算机科学与技术 学号: 学生姓名(签名): 设计题目:指令系统及指令总线设计 一.设计实验条件 综合楼808实验室 硬件:PC机 软件:Xilinx ISE ModelSim ...

最新文章

  1. 深度学习准「研究僧」预习资料:图灵奖得主Yann LeCun《深度学习(Pytorch)》春季课程...
  2. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  3. Redis5新特性Streams作消息队列
  4. 阿里资深系统架构师九峰谈云计算
  5. jdk1.5的类转换成jdk1.4的类文件
  6. C++:计算选手最终得分
  7. 基于Spring Security的认证授权_方法授权_Spring Security OAuth2.0认证授权---springcloud工作笔记133
  8. window连接不上linux ftp_不懂操作?手把手教你如何在linux下搭建FTP
  9. Detours信息泄漏漏洞
  10. html5拾色器功能,html5 学习简单的拾色器
  11. python编写小程序、模拟实现自动按下键盘_Python 实现键盘鼠标按键模拟
  12. 马尔可夫(Markov)不等式
  13. 工具栏的打印图标不见了_任务栏打印机图标不见 - 卡饭网
  14. 使用YOOtheme Pro加速您的WordPress网站
  15. animation停留_animation控制动画暂停/播放
  16. 6S大气校正模型源码
  17. 一个游戏账号竟卖到7.5万元!
  18. Android商城项目
  19. Android指示器的使用总结
  20. Linux-Journal

热门文章

  1. android 模拟器 blue,android使用BlueStacks作为模拟器
  2. Android8.1 9.0 10.0 默认开启WLAN热点设置默认热点名称和密码
  3. tensorflow----tensorboard之histogram与distributions
  4. Imagination发布开源项目:适配PowerVR IP的Vulkan驱动和编译器合入Mesa 3D 图形库
  5. 【软件构造】黑盒测试与白盒测试
  6. Python学习知识清单(基础+进阶)
  7. 阴阳师夜刀神技能是什么
  8. java实现Word文件转换成PDF
  9. 谢震业,离“苏神”还有多远?
  10. 基于STM32F429动态信号测试分析系统