1、课程设计阐明书计算机构成原理课程设计院 系:计算机科学与工程学院 专业班级: 学 号: 学生姓名: 指引教师: 12月26日安徽理工大学课程设计(论文)任务书 计算机科学与工程 院 系学 号学生姓名专业(班级)设计题目设计基本模型机指令系统实现循环左移设计技术参数计算机构成原理教学实验仪一台,排线若干;PC机一台DJ-CPT816构成原理实验软件模型机指令系统,微程序,微指令,程序设计要求1、 在基本模型机基本上构建一组可以实现输入、输出、加、减、逻辑与、逻辑或、逻辑非、转移指令等八个功能指令,这些指令助记符不得与指引书上相似。2、 指令涉及及时数寻址、寄存器直接寻址、存储器直接寻址三种寻址方
2、式。3、 输入一种16位数,对其进行循环左移。工作量1、 画流程图,编写微指令代码和程序。工作计划1、 一方面认真研究教师所给题目,理解题目规定做什么。2、 查阅资料,解决问题。3、 编写源程序并调试之。4、 写课程设计阐明书。参考资料1张昆藏.计算机系统构造.北京:科学出版社,1994 2白中英.计算机构成原理(第二版).北京:科学出版社,19983DJ-CPTH超强型计算机构成原理与系统构造实验指引书指引教师签字系主任签字 12月1日 指引教师评语:成绩: 指引教师: 年 月 日安徽理工大学课程设计(论文)成绩评估表摘要计算机构成原理课程设计课题是基本模型机设计与实现。运用CPU与简朴模型
3、机来实现计算机构成原理课程设计,编写指令应用程序,用微程序控制器实现一系列指令功能,最后达到将理论与实践相联系。本次设计完毕了有关指令格式以及编码设计,实现了机器指令微代码,完毕具备一定功能程序。本次课程设计题目是输入一种16位数,对其进行循环左移。通过设计流程图,编写机器指令,微指令和控制信号程序。一方面向存储器中装入数据和程序,然后检查写入与否对的,启动程序执行。此外,还需设计微程序:本课程设计规定实现机器指令:MOVV(传送),RU(输入),HUO(逻辑或),JIA(加法运算),JIAC(带进位加法),TZ(判断A寄存器里内容与否为零),TIAO(跳转)。以上各微指令设计完毕后,用设计好
4、指令实现逻辑运算,连接线路在CPTH计算机构成原理教学实验箱运营程序,并将实验成果显示输出。本次课程设计偏重于对计算机工作原理和计算机微机指令系统学习和进一步理解。对后来学习打下一种好基本。这一课题实现不但使咱们对各种微指令有了纯熟掌握,更对后来学习、工作中有深远影响。核心词:微指令,机器指令,循环左移目录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实验成
5、果104 实验总结134.1 设计体会134.2 系统改进135 参照文献141原理简介1.1 cpu功能与原理数据缓存寄存器(DR) 数据缓存寄存器用来暂时存储ALU运算成果,或由数据存储器读出一种数据字,或来自外部接口一种数据字。指令寄存器(IR) 指令寄存器用来保存当前正在执行一条指令,当执行一条指令时,先把它从指令cache存储器读出,然后再传送至指令寄存器。程序计数器(PC) 为了保证程序可以持续执行下去,CPU必要具备某些首段来拟定下一条指令地址。数据地址寄存器(AR)数据地址寄存器用来保存当前CPU所访问cache存储器单元地址.通用寄存器(R0R3)当算术逻辑单元执行算术或逻辑
6、运算时,为ALU提供一种工作区。状态字寄存器(PSW)状态字寄存器保存由算数指令和逻辑指令运算或测试成果建立各种条件代码。1.2指令周期计算机因此能自动工作,是由于CPU能从存储程序内存里取出一条指令并执行这一条指令。例如MOV指令指令周期,MOV是一条RR型指令,它需要两个CPU周期,其中一种是取指周期,一种是执行周期。取指周期中完毕三件事:从指存取出指令,对程序计数器加,以便为取下条指令做好准备,对指令操作码进行译码或测码。执行周期操作控制器送出控制信号到通用寄存器,操作控制器送出控制信号到ALU,指定ALU做传送工作,操作控制器送出控制信号,打开ALU输出三态门,操作控制信号送出控制信号
7、,将DBUS上数据打入到数据缓冲寄存器中,操作控制信号送出控制信号,将数据韩冲寄存器打入到目的寄存器中。1.3微程序控制微程序控制器同硬布线控制器相比较,具备规整性,灵活性,可维护性等一系列长处,在计算机系统中,微程序设计技术是运用软件办法来设计一门技术。微程序控制思想,就是仿照普通解题程序办法,把操作控制信号编程所谓微指令,存储到一种只读存储器中,当机器运营时,有一条一条读出这些微指令,从而产生全机所需要各种操作控制信号,使相应部件执行所规定操作呢。由于数据通路构造关系,微操作可分为相容和互斥两种:互斥微操作,是指不能同步或不能在同一种节拍内并行执行微操作。相容微操作,是指可以同步或在同一种
8、节拍内并行执行微操作。系列微指令有序集合就是微程序。一段微程序相应一条机器指令。微地址:存储微指令控制存储器单元地址。1.4微程序控制原理控制存储器(UCM):这是微程序控制器核心部件,用来存储微程序。其性能(涉及容量、速度、可靠性等)与计算机性能密切有关。微指令寄存器(UIR):存储从UCM取出正在执行微指令,它位数同微指令字长相等。微地址形成部件:用来产生初始微地址和后继微地址,以保证微指令持续执行。微地址寄存器(UMAR) :它接受微地址形成部件送来微地址,为下一步从CM中读取微指令作准备。1.5微程序控制器模型机作为一种整体来工作,所有微程序控制信号由微程序存储器UM输出,而不是由开关
9、输出,在进行实验之前,先用芯电缆接J1和J2,是系统处在非手动状态,这样实验仪监控系统会自动打开输出容许,由软件控制程序实现单指令执行,单微指令执行等,设计微指令应当追求目的,有助于缩短微指令长度,有助于缩小CM容量,有助于提高微程序执行速度。2实验环境简介2.1设计背景分析2.1.1 模型机指令集分析本次课程设计是在DJ-CPT816计算机构成原理实验仪和仿真软件上进行。该模型机指令码为8位,依照指令类型不同,可以有0到2个操作数,指令码最低两位用来选取R0-R3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令微程序。在本模型机中,一条指令最多分为四个状态周期
10、,一种状态周期为一种时钟脉冲,每个状态周期产生不同控制逻辑,实现模型机各种功能。模型机有24位控制位以控制寄存器输入输出,选取运算器运算功能,存储器读写。简言之,这次设计,计算机数据通路控制将由微程序控制器来完毕,CPU从内存中取出一条机器指令到指令执行结束一种指令周期,所有由微指令构成序列来完毕,即一条机器指令相应一条微程序,一条微程序又有若干微指令构成,一条微指令功能由24位操作信号(即控制位)实现。24位控制位分别简介如下:XRD:外部设备读信号,当给出个外设地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号EMRD:程序存储器EM读信号PCOE:将程序计数器PC值送到
11、地址总线ABUS上EMEN:将程序存储器EM与数据总线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-
12、R3,寄存器R?选取由指令最低两位决定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_OE PC寄存
13、器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。(2)寄存器寻址:参加运算数据在R0-R3 寄存器中,例如 “A
14、DD 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)为其定义机器指令,并编写相应微程序,详细上机调试掌握整机概念。(3)掌握微程序控制器构成原理。(4)编写自己指令集,并用此
15、指令集来实现编程(5)掌握微程序编写、写入,观测微程序运营。(6)通过课程设计,使学生将掌握计算机构成基本理论应用于实践中,在实际操作中加深对计算机各部件构成和工作原理理解,掌握微程序计算机中指令和微指令编码办法,进一步理解机器指令在计算机中运营过程。本课程设计规定实现机器指令:MOVV(传送),RU(输入),HUO(逻辑或),JIA(加法运算),JIAC(带进位加法),TZ(判断A寄存器里内容与否为零),TIAO(跳转)。要涉及直接寻址,及时数寻址,寄存器寻址,间接寻址四种寻址方式。最后要在设计指令系统基本上,编写程序实现16位数不带进位循环左移。3 系统设计3.1.不带进位循环左移16位数
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文献,输入程序:LOOP1: RUMOVV R1,A RUMOVV R0,ALOOP:MOVV A,R0JIA A,R0MOVV R0,AMOVV A,R1JIAC A,R1MOVV R1,AHUO A,R0
17、 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寄存器数即第八位存到A寄存器JIA A,R0 /将低八位数与自身相加,即*2MOVV R0,A /将相加后成果回存到R0寄存器,作为新第八位MOVV A,R1 /将R1寄存器数即高八位存到A寄存器JIAC A,R1 /将低
18、八位数与自身以及低位相加送来进位相加MOVV R1,A /将相加后成果回存到R1寄存器,作为新高八位HUO A,R0 /将A寄存器内容即高八位数与R0寄存器即第八位数相或 TZ LOOP1 /若相或成果为0则跳转至Loop1,重新输入新数据进行移位TIAO LOOP /否则跳转至Loop继续左移(2)将程序另存为.asm文献,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,见表3-1。表3-1 译码表程序地址机器码反汇编指令指令阐明0024RU端口RU内容输入到累加器A0118MOVV R1,A累加器A中数送入寄存器R10224RU端口RU内容输入到累加器A0318MOVV R0,A
19、累加器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中内容相加再加上进位0918MOVV R1,A累加器A中数送入寄存器R10A2CHUO A,R0将R0中内容与A中内容相或0B30 00TZ LOOP1若A=0跳转至00地址0D10 04TIAO LOOP无条件跳转至04地址3.4程序微指令分析将程序在DJ-CPT816软件上单步运营结束后可得微指令跟踪图如下表3-2所示: 表
20、3-2 微指令跟踪表助记符状态微地址微程序数据输出数据打入地址输出运算器移位控制uPCPC_FATCH_T000.CBFFFF指令寄存器IRPC输出A输出写入+1RUT1C0.FFFF17顾客IN寄存器AA输出+1T0C1.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1RUT1C0.FFFF17顾客IN寄存器AA输出+1T0C1.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFF
21、F指令寄存器IRPC输出A输出写入+1MOVV A,R?T170.FFF7EF寄存器值R?寄存器AA输出+1T071.CBFFFF指令寄存器IRPC输出A输出写入+1JIA A?,RT210.FFF7EF寄存器值R?寄存器WA输出+1T111.FFFE90ALU直通寄存器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输出
22、写入+1JIAC A,R?T220.FFF7EF寄存器值R?寄存器WA输出+1T121.FFFE94ALU直通寄存器A标志位CZ带进位加+1T022.CBFFFF指令寄存器IRPC输出A输出写入+1MOVV R?,AT180.FFFB9FALU直通寄存器R?A输出+1T081.CBFFFF指令寄存器IRPC输出A输出写入+1HUO A,R?T260.FFF7EF寄存器值R?寄存器WA输出+1T161.FFFE92ALU直通寄存器A标志位CZ或运算+1T062.CBFFFF指令寄存器IRPC输出A输出写入+1TZ*T1A4.C6FFFF存贮器值EM寄存器PCPC输出A输出+1写入T0A5.CBF
23、FFF指令寄存器IRPC输出A输出写入+1TIAO*T1AC.CGFFFF存贮器值EM寄存器PCPC输出A输出+1写入T0AD.CBFFFF指令寄存器IRPC输出A输出写入+13.5实验成果测试数据:高八位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和
24、R0中数左移一位,此时16位数为C200H(如图3-5所示:) 图 3-5:R1,R0左移,成果为8400H再分别将R1和R0中数左移一位,此时16位数为C200H(如图3-6所示) 图 3-6:R1,R0左移,成果为8400H 4 实验总结 4.1 设计体会 本次课程设计咱们做题目是输入一种16位数,对其进行循环左移。刚拿到这个题目时咱们小组就进行了商讨,分派每个人任务,我任务是:设计指令集,并且检查她们所写代码实现功能。在设计指令集过程中,我对指令周期和24位控制位做了进一步理解,学到了好多知识,学会了怎么设计一条程序指令以达到相应功能。在这次课程设计我遇到了好多问题,由于是第一次接触新建
25、指令系统,其中诸多地方都不懂,日后通过查找资料,自己揣摩,问教师和尚有人们一起讨论才逐渐有了思路。在设计指令过程中,有时候会遇到某些小问题,但通过与其她组同窗讨论终于使问题得到理解决。创立新指令系统需要懂得每条指令需要几种状态周期来完毕,以及实现相应功能微程序应当怎么设计,还要考虑要怎么设计才干达到精简指令目。这次课程设计之因此可以成功与咱们成员互相合伙有很大关系,这次刚拿到题目时,咱们小组分析了一下实验规定,将咱们六个人提成三个小组,每个小组负责一项任务,各个小组紧密配合,遇到问题时人们互相讨论找出最佳解决方案,最后使任务得以圆满完毕。此外在这一次课题设计中,当自己创立指令集可以成功运营时,
26、我体会到了成功喜悦和极大成就感,通过对系统跟踪测试,自己动手和实践能力均有了一定提高,也让我更加喜欢去自己动手做实验了。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 CBFFFF5 参照文献1张昆藏.计算机系统构造.北京:科学出版社,1994 2著平玲娣,潘雪增.计算机构成与设计浙江:浙江大学出版社,3白中英.计算机构成原理(第二版).北京:科学出版社,19984DJ-CPTH超强型计算机构成原理与系统构造实验指引书5陈泽宇,计算机构成与系统构造.清华大学出版社6李敬兆,汇编语言.中华人民共和国科学技术大学出版社