(推荐)计算机组成原理课程设计

上传人:每**** 文档编号:66509308 上传时间:2022-03-28 格式:DOC 页数:21 大小:233.50KB
收藏 版权申诉 举报 下载
(推荐)计算机组成原理课程设计_第1页
第1页 / 共21页
(推荐)计算机组成原理课程设计_第2页
第2页 / 共21页
(推荐)计算机组成原理课程设计_第3页
第3页 / 共21页
资源描述:

《(推荐)计算机组成原理课程设计》由会员分享,可在线阅读,更多相关《(推荐)计算机组成原理课程设计(21页珍藏版)》请在装配图网上搜索。

1、如果您需要使用本文档,请点击下载按钮下载!课程设计说明书计算机组成原理课程设计院 系:计算机科学与工程学院 专业班级: 学 号: 学生姓名: 指导教师: 2014年12月26日如果您需要使用本文档,请点击下载按钮下载!安徽理工大学课程设计(论文)任务书 计算机科学与工程 院 系学 号2012303287学生姓名专业(班级)设计题目设计基本模型机的指令系统实现循环左移设计技术参数计算机组成原理教学实验仪一台,排线若干;PC机一台DJ-CPT816组成原理实验软件模型机的指令系统,微程序,微指令,程序设计要求1、 在基本模型机的基础上构建一组能够实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移

2、指令等八个功能的指令,这些指令的助记符不得与指导书上相同。2、 指令包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。3、 输入一个16位的数,对其进行循环左移。工作量1、 画流程图,编写微指令代码和程序。工作计划1、 首先认真研究老师所给的题目,了解题目要求做什么。2、 查阅资料,解决问题。3、 编写源程序并调试之。4、 写课程设计说明书。参考资料1张昆藏.计算机系统结构.北京:科学出版社,1994 2白中英.计算机组成原理(第二版).北京:科学出版社,19983DJ-CPTH超强型计算机组成原理与系统结构实验指导书指导教师签字系主任签字 2014年12月1日 如果您需要使用本文档

3、,请点击下载按钮下载!指导教师评语:成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表如果您需要使用本文档,请点击下载按钮下载!摘要计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程设计,编写指令的应用程序,用微程序控制器实现一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了相关指令的格式以及编码的设计,实现了机器指令微代码,完成具有一定功能的程序。本次课程设计的题目是输入一个16位的数,对其进行循环左移。通过设计流程图,编写机器指令,微指令和控制信号程序。首先向存储器中装入数据和程序,然后检查写入是否正确,启动程序执

4、行。另外,还需设计微程序:本课程设计要求实现机器指令:MOVV(传送),RU(输入),HUO(逻辑或),JIA(加法运算),JIAC(带进位的加法),TZ(判断A寄存器里的内容是否为零),TIAO(跳转)。以上各微指令设计完毕后,用设计好的指令实现逻辑运算,连接线路在CPTH计算机组成原理教学实验箱运行程序,并将实验结果显示输出。本次课程设计偏重于对计算机工作的原理和计算机微机的指令系统学习和深入的了解。对以后的学习打下一个好的基础。这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对以后的学习、工作中有深远的影响。关键词:微指令,机器指令,循环左移如果您需要使用本文档,请点击下载按钮下载

5、!目录1原理介绍11.1 cpu功能与原理11.2指令周期11.3微程序控制11.4微程序控制原理21.5微程序控制器22实验环境介绍32.1设计背景分析32.2设计目的与要求53 系统设计63.1.不带进位的循环左移63.2机器指令集的编写与功能63.3程序系统分析73.4程序微指令分析83.5实验结果104 实验总结134.1 设计体会134.2 系统改进135 参考文献14如果您需要使用本文档,请点击下载按钮下载!1原理介绍1.1 cpu功能与原理数据缓存寄存器(DR) 数据缓存寄存器用来暂时存放ALU的运算结果,或由数据存储器读出的一个数据字,或来自外部接口的一个数据字。指令寄存器(I

6、R) 指令寄存器用来保存当前正在执行的一条指令,当执行一条指令时,先把它从指令cache存储器读出,然后再传送至指令寄存器。程序计数器(PC) 为了保证程序能够连续的执行下去,CPU必须具有某些首段来确定下一条指令的地址。数据地址寄存器(AR)数据地址寄存器用来保存当前CPU所访问的cache存储器单元的地址.通用寄存器(R0R3)当算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。状态字寄存器(PSW)状态字寄存器保存由算数指令和逻辑指令运算或测试结果建立的各种条件代码。1.2指令周期计算机所以能自动的工作,是因为CPU能从存放程序的内存里取出一条指令并执行这一条指令。例如MOV指令

7、的指令周期,MOV是一条RR型指令,它需要两个CPU周期,其中一个是取指周期,一个是执行周期。取指周期中完成三件事:从指存取出指令,对程序计数器加,以便为取下条指令做好准备,对指令操作码进行译码或测码。执行周期操作控制器送出控制信号到通用寄存器,操作控制器送出控制信号到ALU,指定ALU做传送工作,操作控制器送出控制信号,打开ALU输出三态门,操作控制信号送出控制信号,将DBUS上的数据打入到数据缓冲寄存器中,操作控制信号送出控制信号,将数据韩冲寄存器打入到目标寄存器中。1.3微程序控制微程序控制器同硬布线控制器相比较,具有规整性,灵活性,可维护性等一系列优点,在计算机系统中,微程序设计技术是

8、利用软件方法来设计的一门技术。微程序控制思想,就是仿照通常的解题程序方法,把操作控制信号编程所谓的微指令,存放到一个只读存储器中,当机器运行时,有一条一条的读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应的部件执行所规定的操作呢。由于数据通路的结构关系,微操作可分为相容的和互斥的两种:互斥的微操作,是指不能同时或不能在同一个节拍内并行执行的微操作。相容的微操作,是指能够同时或在同一个节拍内并行执行的微操作。系列微指令的有序集合就是微程序。如果您需要使用本文档,请点击下载按钮下载!一段微程序对应一条机器指令。微地址:存放微指令的控制存储器的单元地址。1.4微程序控制原理控制存储器(U

9、CM):这是微程序控制器的核心部件,用来存放微程序。其性能(包括容量、速度、可靠性等)与计算机的性能密切相关。微指令寄存器(UIR):存放从UCM取出的正在执行的微指令,它的位数同微指令字长相等。微地址形成部件:用来产生初始微地址和后继微地址,以保证微指令的连续执行。微地址寄存器(UMAR) :它接受微地址形成部件送来的微地址,为下一步从CM中读取微指令作准备。1.5微程序控制器模型机作为一个整体来工作的,所有的微程序控制信号由微程序存储器UM输出,而不是由开关输出,在进行试验之前,先用芯电缆接J1和J2,是系统处于非手动状态,这样试验仪的监控系统会自动打开的输出允许,由软件控制程序实现单指令

10、执行,单微指令执行等,设计微指令应当追求的目标,有利于缩短微指令的长度,有利于缩小CM的容量,有利于提高微程序的执行速度。如果您需要使用本文档,请点击下载按钮下载!2实验环境介绍2.1设计背景分析2.1.1 模型机指令集分析本次课程设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的。该模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型

11、机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。24位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号EMRD:程序存储器EM读信号PCOE:将程序计数器PC的值送到地址总线ABUS上EMEN:将程序存储器EM与数

12、据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUSIREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。ELP:PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MARMAROE:将地址寄存器MAR的值送到地址总线ABUS上OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里STEN:将数据总线DBUS上数据存到堆栈寄存器里RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定

13、如果您需要使用本文档,请点击下载按钮下载!RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位FEN:将标志位存入ALU内部的标志寄存器X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表2-1WEN:将数据总线DBUS的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中S2,S1,S0三位组合决定ALU做何种运算,见表2-2表2-1 寄存器选择控制表X2 X1 X0输出寄存器0 0 0IN_OE 外部输入门0 0 1IA_OE 中断向量0 1 0ST_OE 堆栈寄存器0 1 1PC

14、_OE PC寄存器1 0 0D_OE 直通门1 0 1R_OE 右移门1 1 0L_OE 左移门1 1 1没有输出表2-2 运算器功能控制S2 S1 S0功能0 0 0A+W 加0 0 1A-W 减0 1 0A|W 或0 1 1A & W 与1 0 0A+W+C 带进位加1 0 1A-W-C 带进位减1 1 0A A取反1 1 1A 输出A212 模型机寻址方式分析模型机的寻址方式分四种:如果您需要使用本文档,请点击下载按钮下载!(1)累加器寻址:操作数为累加器A,例如“CPL A”是将累加器A 值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。(

15、2)寄存器寻址:参与运算的数据在R0-R3 的寄存器中,例如 “ADD A,R0”指令是将寄存器R0 的值加上累加器A的值,再存入累加器A中。(3)存储器直接寻址:参与运算的数据在存储器EM 中,数据的地址为指令的操作数。例如“AND A,40H”指令是将存储器EM 中40H 单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。(4)立即数寻址:参与运算的数据为指令的操作数。例如 “SUB A,#10H”是从累加器A中减去立即数10H,结果存入累加器A。2.2设计目的与要求(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计机。(2)为其定义机器指令,并编写相应的微程

16、序,具体上机调试掌握整机概念。(3)掌握微程序控制器的组成原理。(4)编写自己的指令集,并用此指令集来实现编程(5)掌握微程序的编写、写入,观察微程序的运行。(6)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。本课程设计要求实现机器指令:MOVV(传送),RU(输入),HUO(逻辑或),JIA(加法运算),JIAC(带进位的加法),TZ(判断A寄存器里的内容是否为零),TIAO(跳转)。要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。

17、最后要在设计的指令系统基础上,编写程序实现16位数不带进位的循环左移。如果您需要使用本文档,请点击下载按钮下载!3 系统设计3.1.不带进位的循环左移16位数的循环左移原理图3-1如下:图3-1不带进位的循环左移程序设计思路:一个16位数不带进位的循环左移,相当于该数与自身相加,程序流程图3-2如下: 数据A的输入 数据A存入R0 A+R0-A 输出数据 图3-2 程序框图3.2机器指令集的编写与功能(1)按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic文件;(2)在DJ-CPT816实验软件中新建.asm文件,输入程序:如果您需要使用本文档,

18、请点击下载按钮下载!LOOP1: RUMOVV R1,A RUMOVV R0,ALOOP:MOVV A,R0JIA A,R0MOVV R0,AMOVV A,R1JIAC A,R1MOVV R1,AHUO A,R0 TZ LOOP1TIAO LOOP3.3程序系统分析(1)程序开始执行一条取指的微指令,读入程序第一条指令。LOOP1: RU /手动输入一个数,存入A寄存器中MOVV R1,A /将A寄存器的内容存入R1寄存器 作为16位数的高8位 RU /手动输入一个数,存入A寄存器中MOVV R0,A /将A寄存器的内容存入R0寄存器 作为16位数的低8位LOOP:MOVV A,R0 /将R0

19、寄存器的数即第八位存到A寄存器JIA A,R0 /将低八位数与自身相加,即*2MOVV R0,A /将相加后的结果回存到R0寄存器,作为新的第八位MOVV A,R1 /将R1寄存器的数即高八位存到A寄存器JIAC A,R1 /将低八位数与自身以及低位相加送来的进位相加MOVV R1,A /将相加后的结果回存到R1寄存器,作为新的高八位HUO A,R0 /将A寄存器的内容即高八位数与R0寄存器即第八位数相或 TZ LOOP1 /若相或的结果为0则跳转至Loop1,重新输入新的数据进行移位如果您需要使用本文档,请点击下载按钮下载!TIAO LOOP /否则跳转至Loop继续左移(2)将程序另存为.

20、asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,见表3-1。表3-1 译码表程序地址机器码反汇编指令指令说明0024RU端口RU的内容输入到累加器A0118MOVV R1,A累加器A中的数送入寄存器R10224RU端口RU的内容输入到累加器A0318MOVV R0,A累加器A中的数送入寄存器R00408MOVV A,R0寄存器R0中的内容送到A中0514JIA A,R0将A中的内容和R0中的内容相加0618MOVV R0,A累加器A中的数送入寄存器R00708MOVV A,R1寄存器R1中的内容送到A中080CJIAC A,R1将A中的内容与R1中的内容相加再加上进位09

21、18MOVV R1,A累加器A中的数送入寄存器R10A2CHUO A,R0将R0中的内容与A中的内容相或0B30 00TZ LOOP1若A=0跳转至00地址0D10 04TIAO LOOP无条件跳转至04地址3.4程序微指令分析将程序在DJ-CPT816软件上单步运行结束后可得微指令跟踪图如下表3-2所示: 表3-2 微指令跟踪表助记符状态微地址微程序数据输出数据打入地址输出运算器移位控制uPCPC_FATCH_T000.CBFFFF指令寄存器IRPC输出A输出写入+1RUT1C0.FFFF17用户IN寄存器AA输出+1T0C1.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,

22、AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1如果您需要使用本文档,请点击下载按钮下载!RUT1C0.FFFF17用户IN寄存器AA输出+1T0C1.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV A,R?T170.FFF7EF寄存器值R?寄存器AA输出+1T071.CBFFFF指令寄存器IRPC输出A输出写入+1JIA A?,RT210.FFF7EF寄存器值R?寄存器WA输出+1T111.F

23、FFE90ALU直通寄存器A标志位CZ加运算+1T012.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV A,R?T170.FFF7F7寄存器值R?寄存器AA输出+1T071.CBFFFF指令寄存器IRPC输出A输出写入+1JIAC A,R?T220.FFF7EF寄存器值R?寄存器WA输出+1T121.FFFE94ALU直通寄存器A标志位CZ带进位加+1T022.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直

24、通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1如果您需要使用本文档,请点击下载按钮下载!HUO A,R?T260.FFF7EF寄存器值R?寄存器WA输出+1T161.FFFE92ALU直通寄存器A标志位CZ或运算+1T062.CBFFFF指令寄存器IRPC输出A输出写入+1TZ*T1A4.C6FFFF存贮器值EM寄存器PCPC输出A输出+1写入T0A5.CBFFFF指令寄存器IRPC输出A输出写入+1TIAO*T1AC.CGFFFF存贮器值EM寄存器PCPC输出A输出+1写入T0AD.CBFFFF指令寄存器IRPC输出A输出写入+13.5实验结果测试数据: 高

25、八位R1 低八位R0 30H 80H左移一位 61H 00H左移两位 C2H 00H左移三位 84H 00H置开关k23-k16为00110000R1中输入30HK23-k16开关置为10000000R0中输入80H(如图3-3所示)如果您需要使用本文档,请点击下载按钮下载! 图 3-3:R1输入30H,R0输入80H将16位数左移一位得到的16位数为6100H(如图3-4所示): 图 3-4:16位数左移,结果为6100H再分别将R1和R0中的数左移一位,此时16位数为C200H(如图3-5所示:)如果您需要使用本文档,请点击下载按钮下载! 图 3-5:R1,R0左移,结果为8400H再分别

26、将R1和R0中的数左移一位,此时16位数为C200H(如图3-6所示) 图 3-6:R1,R0左移,结果为8400H 如果您需要使用本文档,请点击下载按钮下载!4 实验总结 4.1 设计体会 本次课程设计我们做的题目是输入一个16位的数,对其进行循环左移。刚拿到这个题目时我们小组就进行了商讨,分配每个人的任务,我的任务是:设计指令集,并且检查她们所写代码实现的功能。在设计指令集的过程中,我对指令周期和24位控制位做了深入的了解,学到了好多知识,学会了怎么设计一条程序指令以达到相应的功能。在这次课程设计我遇到了好多问题,由于是第一次接触新建指令系统,其中很多地方都不懂,后来通过查找资料,自己琢磨

27、,问老师和还有大家一起讨论才逐渐有了思路。在设计指令的过程中,有时候会遇到一些小问题,但通过与其他组同学的讨论终于使问题得到了解决。创建新的指令系统需要知道每条指令需要几个状态周期来完成,以及实现相应功能的微程序应该怎么设计,还要考虑要怎么设计才能达到精简指令的目的。这次课程设计之所以能够成功与我们组员的相互合作有很大的关系,这次刚拿到题目时,我们小组分析了一下实验的要求,将我们六个人分成三个小组,每个小组负责一项任务,各个小组紧密配合,遇到问题时大家互相讨论找出最佳的解决方案,最终使任务得以圆满的完成。另外在这一次的课题设计中,当自己创建的指令集能够成功运行时,我体会到了成功的喜悦和极大的成

28、就感,通过对系统的跟踪测试,自己的动手和实践能力都有了一定的提高,也让我更加喜欢去自己动手做实验了。4.2 系统改进本次指令设计,我们利用指令流水操作,进行了指令的精简设计,其中RU指令的取值操作和输出操作可并行执行,精简后该指令为1个状态周期。MOVV A,R?指令,由于预指操作和数据总线可并行工作,该指令只有一个状态周期。例如:改进前: 改进后:RU T1 24 FFFF17 RU T0 24 CBFF17 T0 55 CBFFFF MOVV A,R? T1 70 FFF7F7 MOVV A,R? T0 70 CBF7F7 T0 71 CBFFFF如果您需要使用本文档,请点击下载按钮下载!5 参考文献1张昆藏.计算机系统结构.北京:科学出版社,1994 2著平玲娣,潘雪增.计算机组成与设计浙江:浙江大学出版社,20043白中英.计算机组成原理(第二版).北京:科学出版社,19984DJ-CPTH超强型计算机组成原理与系统结构实验指导书5陈泽宇,计算机组成与系统结构.清华大学出版社6李敬兆,汇编语言.中国科学技术大学出版社 (注:可编辑下载,若有不当之处,请指正,谢谢!)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!