收藏 分销(赏)

计算机组成原理课程设计微程序设计报告书.doc

上传人:人****来 文档编号:9860548 上传时间:2025-04-11 格式:DOC 页数:26 大小:413KB 下载积分:10 金币
下载 相关 举报
计算机组成原理课程设计微程序设计报告书.doc_第1页
第1页 / 共26页
计算机组成原理课程设计微程序设计报告书.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
计算机组成原理课程设计微程序设计报告书 26 2020年4月19日 文档仅供参考,不当之处,请联系改正。 课程设计指导教师评定成绩表 项目 分值 优秀 (100>x≥90) 良好 (90>x≥80) 中等 (80>x≥70) 及格 (70>x≥60) 不及格(x<60) 评分 参考标准 参考标准 参考标准 参考标准 参考标准 学习态度 15 学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作 学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务 学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作 学习态度尚可,能遵守组织纪律,能按期完成任务 学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度 技术水平与实际能力 25 设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信 设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信 设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信 设计基本合理,理论分析与计算无大错,实验数据无大错 设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题 创新 10 有重大改进或独特看法,有一定实用价值 有较大改进或新颖的看法,实用性尚可 有一定改进或新的看法 有一定看法 观念陈旧 论文(计算书、图纸)撰写质量 50 结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰 结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰 结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰 结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整 内容空泛,结构混乱,文字表示不清,错别字较多,达不到规范化要求;图纸不工整或不清晰 指导教师评定成绩: 指导教师签名: 年 月 日 重庆大学本科学生课程设计任务书 课程设计题目 微程序设计 学院 计算机学院 专业 计算机科学与技术 年级 已知参数和设计要求: 用微程序控制器实现以下指令功能 调用:CALL addr ;指令功能与80X86相同,addr是8位二进制地址 返回:RET ; 存储器到存储器传送: MOV memi , memj ; memi ß(memj), i<>j,memi内存单元地址 带右移的加法运算: ADD Ri , Rj , N ; Ri ß(Ri)+(Rj)>>N ,Rj中内容不变 N=0-7 学生应完成的工作: 根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。参考实验5.3、6.1。上机调试并输出正确结果,给出完整的设计报告。 当前资料收集情况(含指定参考资料): 《计算机组成原理实验指导书》 《计算机组成和设计》,David A.Patterson编,清华大学出版社, 12月 《计算机组织与结构》,William Stallings编,高等教育出版社, 8月 《计算机组成与系统结构》,李亚民编,清华大学出版社, 4月 课程设计的工作计划: - 第一年第14周 任务下达日期 年 12 月 8 日 完成日期 12 月 8 日 指导教师 (签名) 学 生 (签名) 说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、 。 2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。 计算机组成原理课程设计报告书 一、设计目的: 综合运用所学过的计算机原理知识,设计并实现较为完整的计算机。掌握运用计算机原理知识解决问题和设计指令程序的能力。经过课程设计的综合训练,培养实际分析问题,编写程序指令和动手能力、团队协作精神,帮助学生系统掌握计算机组成原理课程的主要内容。 二、设计要求: 设计要求: 用微程序控制器实现以下指令功能 调用:CALL addr ;指令功能与80X86相同,addr是8位二进制地址 返回:RET ; 存储器到存储器传送: MOV memi , memj ; memi ß(memj), i<>j,memi内存单元地址 带右移的加法运算: ADD Ri , Rj , N ; Ri ß(Ri)+(Rj)>>N ,Rj中内容不变 N=0-7 根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。 三、微程序控制器的原理: A. 微程序控制的基本思想: 1. 若干微命令编制成一条微指令,控制实现一步操作; 2. 若干微指令组成一段微程序,解释执行一条机器指令; 3. 微程序事先存放在控制存储器中,执行机器指令时再取出。 B. 基本组成:控制存储器,微指令寄存器,微地址寄存器,地址转移逻辑 框图: 图1 微程序控制器组成原理框图 控制存储器(CM):用来存放实现全部指令系统的微程序,位于CPU中。它是一种只读型存储器,要求速度快,读出周期短 微指令寄存器:存放当前由控制存储器读出的一条微指令信息,分为微地址寄存器和微命令寄存器两个部分。其中微地址寄存器决定将要访问的下一条微指令的地址,微命令寄存器则保存一条微指令的操作控制字段和判别测试字段(P)的信息 地址转移逻辑:自动完成修改微地址的任务。 微程序控制器:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成能够控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就能够用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图2所示 6 MA5-MA02 I7-I2 P4-P1 T4 地址 T1 6 SE6...SE0 T2 CLR 6 uA5...ua0 T2 uIR 微指令 CM 2816*3 24位 S3...A8 A B C Q Q D 指令译码单元 3-8译码器 指令寄存器IR 图2 微程序控制器原理框图 C. 微程序控制计算机的工作过程: 下面经过计算机启动、执行程序直到停机的过程,来说明微程序是如何控制计算机工作的: 计算机加电以后,首先由复位信号(Reset)将开机后执行的第一条指令的地址送入PC内,同时将一条"取指"微指令送入微指令寄存器中,并将其它一些有关的状态位或寄存器置于初始状态。当电压达到稳定值后,自动启动计算机,产生节拍电位和工作脉冲。为保证计算机正常工作,电路必须保证开机后第一个机器周期信号的完整性,在该CPU周期末,产生开机后第一个工作脉冲。然后计算机开始执行程序,不断地取出指令、执行指令。 程序能够存放在固定存储器中,也能够利用固化在只读存储器(ROM)中的一小段引导程序,将要执行的程序和数据从外部设备调入主存。实现各条指令的微程序是存放在微程序控制器中的。当前正在执行的微指令从微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和数据的传送,并进行相应的处理。当遇到停机指令或外来停机命令后,应该待当前这条指令执行完毕后再停机或至少在本机器周期结束时停机。要保证停机后,重新启动计算机能继续工作而且不出现任何错误。 四、总体设计(系统构成): 实现一个简单的 CPU,而且在此CPU 的基础上,继续构建一个简单的模型计算机。CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图3所示。这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,可是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,因此还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。 图3基本CPU构成原理图 程序计数器PC: 程序计数器PC由两片4位可预置二进制计数器构成8位的计数器。使用“可预置”是因为转移指令需要直接修改PC的值。其电路原理如下图。 8 8 LOAD T4 LDPC PC(74LS161) PC(74LS161) 图3 程序计数器PC 地址寄存器AR: 地址寄存器保存访问存储器时的地址信息,由74LS273实现。其电路原理如下图。 8 8 AR(74LS273) T4 LDAR 图4 地址寄存器AR 指令寄存器IR: 指令寄存器IR存放的是正在执行的机器指令,它作为指令译码器电路的输入,实现程序跳转控制。其电路原理如下图。 8 8 IR(74LS273) T4 LDIR 图5 指令寄存器IR 寄存器堆R0: 寄存器R0使用的芯片是74LS374,该芯片是8个三态D-FF。其R0电路原理如下图。 R0-B 8 8 R0(74LS374) T4 LDR0 图6 寄存器R0 数据通路如图: 图8数据通路图 五、详细设计 微程序功能设计: (1)指令设计 助记符 机器指令码 说明 ADD 0000 0000 ******** ******** (data1+data2 )<<1 ->R0 OUT 0011 0000 R0->OUT MOV 0100 0000 (addr1)->(addr2) LDI 0110 0000 ******** (data)->R0 CALL 0111 0000 ******** 调用子程序 RET: 1000 0000 子程序返回 ADD 是三字节指令,后面两个******** ********是要进行加法的数据,本指令的功能是数据一加上数据二之后左移一位,结果存在R0里;OUT是输出;MOV指令实现的是将内存地址一的数据传输到内存地址二,因为它单字节指令,因此微指令执行期间要靠IN单元输入要操作的内存地址;LDI是双字节指令,把后面的********送到R0里;CALL是调用子程序,也还是双字节指令,********是要调用子程序的入口地址;RET指令用在子程序的末尾,帮助子程序正确返回。 (2)微指令设计 根据机器指令所实现的功能,画出微程序流程图。 微程序流程图: 00 01 PC—>AR PC+1 M—>A A左移1->R0 PC—>AR PC+1 M—>B A+B->A 30 0A 09 0D 0C 0B PC—>AR PC+1 M—>AR P<1> NOP 01 03 30 IN—>AR R0—>M M—>R0 IN—>AR 34 08 07 06 01 PC—>AR PC+1 M—>R0 36 01 11 A—>PC PC—>M PC—>AR PC+1 M—>A R0—>AR 37 01 13 14 15 16 R0—>AR M—>PC 38 01 12 R0—> IO 01 33 ADD OUT MOV LDI CALL RET 当全部微程序设计完毕后,将每条微指令代码化,下表即为将微程序流程图按微指令格式转化而成的“二进制微代码表”。 二进制微代码表 地址 十六进制 高五位 S3-S0 A字段 B字段 C字段 MA5-MA0 00 000001 000000 0000 000 000 000 000001 01 006D43 00000 0000 110 110 101 000011 03 107070 00010 0000 111 000 001 110000 30 006D49 00000 0000 110 110 101 001001 09 10100A 00010 0000 001 000 000 001010 0A 006D4B 00000 0000 110 110 101 001011 0B 10200C 00010 0000 010 000 000 001100 0C 04920D 00000 1001 001 001 000 001101 0D 039201 00000 0111 001 001 000 000001 34 186006 00011 0000 110 000 000 000110 06 103007 00010 0000 011 000 000 000111 07 186008 00011 0000 110 000 000 001000 08 01 00100 0000 000 010 000 000001 37 006D53 00000 0000 110 110 101 010011 13 101014 00010 0000 001 000 000 010100 14 006415 00000 0000 110 010 000 010101 15 200C16 00100 0000 000 110 000 010110 16 005341 00000 0000 101 001 101 000001 36 006D51 00000 0000 110 110 101 010001 11 103001 00010 0000 011 000 000 000001 38 006412 00000 0000 110 010 000 010010 12 105141 00010 0000 101 000 101 000001 33 280401 00101 0000 000 010 000 000001 实验准备: 按下图连接电路 实验接线图: 将微程序和机器程序以指定的格式写入到以TXT 为后缀的文件中联机运行。 指令格式: 微指令格式: 机器指令格式: $M XX XXXXXX $P XX XX 十六进制微指令代码 十六进制机器指令代码 十六进制地址 十六进制地址 标志符 标志符 根据流程图及指令格式,安排微指令地址的地址编码及微指令编码: ; //****** Start Of Main Memory Data ****** // $P 00 40 ;MOV $P 01 60 ;LDI $P O2 F1 ;DATA $P 03 70 ;CALL $P 04 06 ;ADDR $P 05 30 ;0UT $P 06 00 ;ADD $P 07 11 ;DATA $P 08 22 ;DATA $P 09 30 ;OUT $P 0A 60 ;LDI $P 0B F1 ;DATA $P 0C 80 ;RET ; ; //******* End Of Main Memory Data ******* // ; //**** Start Of MicroController Data **** // $M 00 000001 ; NOP $M 01 006D43 ; PC->AR,PC 加1 $M 03 107070 ; MEM->IR, P<1> ;ADD程序段 $M 30 006D49 ;PC->AR PC+1 $M 09 10100A ;M->A $M 0A 006D4B ;PC->AR PC+1 $M 0B 10200C ;M->B $M 0C 04920D ;A+B->A $M 0D 039201 ;A<<1->R0 ;MOV程序段 $M 34 186006 ;IN->AR $M 06 103007 ;MEM->R0 $M 07 186008 ;IN->AR $M 08 01 ;R0->MEM ;CALL程序段 $M 37 006D53 ;PC->AR PC+1 $M 13 101014 ;MEM->A $M 14 006415 ;R0->AR $M 15 200C16 ;PC->MEM $M 16 005341 ;A->PC ;LDI程序段 $M 36 006D05 ;PC->AR,PC+1 $M 11 103001 ;MEM->R0 ;RET程序段 $M 38 006412 ;R0->AR $M 12 105141 ;MEM->PC ;OUT指令 $M 33 280401 ;R0->IO ; //** End Of MicroController Data **// 联机: 选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。 选择联机软件的“【转储】—【刷新指令区】”能够读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,能够经过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的‘微存’TAB 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。 六、测试: 运行: 将时序与操作台单元的开关KK1 和KK3 置为‘运行’档,进入软件界面,选择菜单命令 “【实验】—【简单模型机】”,打开简单模型机数据通路图。按动CON 单元的总清按钮CLR,然后经过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序。观察微程序每一步的实现,在数据通路图和微程序流中观测指令的执行过程。 对应微指令:$M 34 186006 ;IN->AR(MOV中) 对应微指令:$M 06 103007 ;MEM->R0(MOV中) 对应微指令:$M 11 103001 ;MEM->R0(LDI中) 对应微指令:$M 13 101014 ;MEM->A(CALL中) 对应微指令:$M 14 006415 ;R0->AR(CALL中) 对应微指令:$M 16 005341 ;A->PC(CALL中) 对应微指令:$M 0B 10200C ;M->B(ADD中) 对应微指令:$M 0D 039201 ;A<<1->R0(ADD中) 对应微指令:$M 33 280401 ;R0->IO(OUT中) 对应微指令:$M 38 006412 ;R0->AR(RET中) 实验结果: 实验结果完全符合当初的设计,各个微指令都实现了预先设计的目标,机器程序的测试也达到预期的效果。 七、设计中出现的问题和解决方法 (一)出现问题: (a)在设计CALL指令时,需要把当前指令的位置压栈,等到子程序调用RET指令时再将之弹出栈,方可返回对应的主程序。但设计指令时并未设计PUSH,POP指令,因此保存当前指令成为一个难题。 (b)在设计MOV指令时,内存之间是不能够直接传送数据。 (二) 对应的解决方法: (a)为解决此问题,设计时就多加了一条LDI(立即数送寄存器)指令,目的是使得我们自己能够指定一个内存地址,存放我们当前的指令地址。这样,在我们调用CALL指令前只需调用LDI即可指定位置一个位置存储当前指令地址(类似压栈)。当然,RET也要调用它。    (b)解决方法,运用寄存器当中转,先把存储器一中的数据放到寄存器,在把寄存器中的数据放到存储器二。 八、心得体会 这次实验增强了我们的动手能力、提高了我们发现问题、分析问题和解决问题的能力、增强了我们团体合作的意识和经验。 首先,动手能力一直是我们的弱点,这次实验使我们在老师和同学的帮助下自己动手完成了这次实验,让我们知道了怎样正确按自己的思路画流程图、按原理图连接线路、根据数据通路图的控制端确定控制信号代码,装入正确微代码,正确实现此实验要求。 同时,我们平时习惯了按要求回答问题,遇到设计之类的问题总是烦恼万分,对一具体题目总是联想翩翩却无从下手。经过这次实验使我们知道了如何从最基础的知识入手逐渐深入到题目的最终实现。整个实验过程中,从连线到调试最终正确问题可谓层出不穷,怎样发现问题对我们而言是一大难题。首先,此实验线路复杂,如连错便不易检查,且线路导通与否也很难检查,经过理论与问题对应分析对我们来说就特别重要。在调试时我们发现数据流向错误时就得检查微代码和所写的流程图,并结合流程图和个功能控制信号写出正确的微程序,并得到正确的数据通路。 当然,这次实验也让我们体会到了合作的好处。由于我们每个人的学习能力的大小不同,感兴趣的知识的方向不同,这就使得我们有能力完成单个人能力范围外的事或者达到更高的实验要求。 九、参考资料: 1.《计算机组成原理实验指导书》,重庆大学计算机学院编 2.《计算机组成和设计》,David A.Patterson编,清华大学出版社, 12月 3.《计算机组织与结构》,William Stallings编,高等教育出版社, 8月 4.《计算机组成与系统结构》,李亚民编,清华大学出版社, 4月 5.《计算机组成和设计》 ,David A.Patterson、John L.Hennessy著、郑纬民译, 清华大学出版社, 12月
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服