计算机组成原理课程设计多寄存器减法右移位输入输出等指令实验计算机设计_第1页
计算机组成原理课程设计多寄存器减法右移位输入输出等指令实验计算机设计_第2页
计算机组成原理课程设计多寄存器减法右移位输入输出等指令实验计算机设计_第3页
计算机组成原理课程设计多寄存器减法右移位输入输出等指令实验计算机设计_第4页
计算机组成原理课程设计多寄存器减法右移位输入输出等指令实验计算机设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳理工大学课程专用纸成 绩 评 定 表学生姓名刘建成班级学号1103050115专 业计算机科学与技术课程设计题目多寄存器减法右移位输入输出等指令实验计算机设计评语组长签字:成绩日期 2013 年6月21 日课程设计任务书学 院信息学院专 业计算机科学与技术学生姓名刘建成班级学号 1103050115 课程设计题目多寄存器减法右移位输入输出等指令实验计算机设计实践教学要求与任务:利用el-jy-ii型计算机组成原理实验仪提供的硬件资源,通过设计(包括整机结构设计、指令设计、微程序设计、微指令设计、调试程序设计等)、组装、调试三个步骤完成一台微程序控制的复杂实验计算机的设计。具体要求如下:1、

2、 掌握实验计算机的整机结构。熟悉实验计算机的组装和调试方法。2、 设计如下几条机器指令的格式,指令格式可以采用单字长或双字长设计。算术减法运算指令:sub rs,rd (功能rs - rd -> rd)输入输出指令:in #data,rd (功能data -> rd) out ri (功能ri的值 -> led输出)转移指令: jmp addr (功能addr -> pc) 右移位运算指令:rrc rs,rd(功能rs的值带进位循环右移一位-> rd) 3、 设计微指令的格式, 编写上述每条机器指令所对应的微程序,并上机调试。4、通过如下程序的编写调试,验收机器指

3、令、微指令、微程序的设计结果。in #data,r0 in #data,r2sub r0, r2rrc r2, r0out r0jmp 00h工作计划与进度安排: 第17周:布置课程设计任务,查阅资料,分组设计,实验室组装与调试。 第20周:调试,验收,答辩,编写课程设计报告。指导教师: 2013年 6月21日专业负责人: 2013年 6 月22日学院教学副院长: 2013年6 月22日沈阳理工大学课程专用纸目录1. 实验计算机的设计11.1整机逻辑框图设计及整机的逻辑框图11.2指令系统的设计31.3微操作控制部件的设计51.3.1微指令编码的格式设计51.3.2微操作控制信号设计61.3.

4、3微程序顺序控制方式设计71.4编写调试程序152 实验计算机的组装153 实验计算机的调试163.1 调试前准备163.2调试步骤和调试结果193.3心得体会194、参考文献201. 实验计算机的设计1.1整机逻辑框图设计及整机的逻辑框图输入设备数据暂存器lt2数据暂存器lt174299寄存器r2寄存器r2寄存器r2程序计数器pc地址寄存器ar存储器(mem)脉冲源及时序指令寄存器ir微控器输出设备 此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。图1.1模型机结构图1.运算器又是有299,74ls181完成控制信号功能的算逻部件,暂存器ldr1,ldr2,及三个通用寄存

5、器r0,r2等组成。2.控制器由程序计数器pc、指令寄存器、地址寄存器、时序电路、控制存储器及相应的译码电路组成。3.存储器ram是通过ce和w/r两个微命令来完成数据和程序的的存放功能的。4输入设备是由置数开关sw控制完成的。5. 输出设备有两位led数码管和w/r控制完成的图1-1中运算器alu由u7-u10四片74ls181构成,暂存器1由u3、u4两片74ls273构成,暂存器2由u5、u6两片74ls273构成。微控器部分控存由u13-u15三片2816构成。除此之外,cpu的其他部分都由ep1k10集成。存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空

6、间为00h-ffh。输出设备由底板上的四个led数码管及其译码、驱动构成,当d-g和w/r均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74ls244构成,当dij-g为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低八位有效。1.2指令系统的设计rs或rd选定寄存器00r001r110r2规定:表1.1寄存器表 (

7、1)存储器访问及转移指令 设计的2条访问指令,即存数(sta),取数(lda),2条转移指令,即无条件转移(jmp),结果为零或有进位转移指令(bzc),指令格式见表1.2存储器的访问表:表1.2存储器的访问表7 65 43 21 000mop-coderdd其中op-code为操作码,rd为寄存器。m为寻址模式,d为位移量,d随m的不同其定义也不相同(2)寻址方式见表1.3寻址模式表: 表1.3寻址模式表寻址模式m有效地址e说 明00e=d直接寻址01e=(d)间接寻址10e=(r1)+dr1变址寻址11e=(pc)+d相对寻址注:本机规定变址寄存器r1指定为寄存器r2。(3)i/o指令 输

8、入(in)和输出(out)指令采用单字节指令,格式见表1.4i/o操作码表:7 6 5 43 21 0op-codeaddrrd 表1.4i/o操作码表其中,当op-code=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当op-code=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。(4) 指令助记符,功能及格式见表1.5: 表1.5指令格式 汇编符号指令的格式功 能clr rdmov rs,rd adc rs,rd sbc rs,rd 0111 00 rd 1000 rs rd 1001 rs rd 1010 rs rd 0 rdrs rd rs

9、+rd+cy rdrs-rd-cy rdinc rdand rs,rdcom rdrrc rs,rd 1011 rs rd 1100 rs rd 1101 rs rd 1110 rs rd rd+1 rdrsrd rdrd rd cy rs rs rdrlc rs,rd 1111 rs rd cy rs rs rdlda m,d,rd 00 m 00 rd d e rs sta m,d,rd 00 m 01 rd d rd e jmp m,d 00 m 10 00 bzc m,d 00 m 11 00 当cy=1或z=1时, e pc in addr,rdout addr,rd 0100 01

10、 rd 0101 10 rd addr rd rd addrhalt 0110 00 00 停机(5) 指令编码: 表1.6指令编码表:地址(二进制)指令(二进制)指令(十六进制)助记符0000 00000100 01 0044in #data, r00000 00010100 01 1046in #data, r20000 00101010 00 10a2 sub r0, r20000 00111110 10 00 e8rrc r2, r0 cy r2 rs rd0000 01000101 10 0058 out,r00000 01010000 10 0008jmp 00h0000 0110

11、0000 00 00001.3微操作控制部件的设计1.3.1微指令编码的格式设计设计三个控制操作微程序:存储器读操作(mrd):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“00”时,按“单步”键,可对ram连续读操作。存储器写操作(mwe):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“10”时,按“单步”键,可对ram连续写操作。启动程序(run):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行表1.7 本系统的微程序字长共24位,其控制

12、顺序24232221201918171615 14 1312 11 109 8 7654321s3s2s1s0mcnwe1a1bf1f2f3ua5ua4ua3ua2ua1ua0其中ua5-ua0为6位后续地址,f1,f2,f3为三个译码字段,分别由三个控制位译出多位,。1.3.2微操作控制信号设计微指令中个控制位的含义如下:s3、s2、s1、s0、m、cn是控制运算器的逻辑和算术运算的微命令。we是写内存的微命令,状态“1”有效。1a、1b是输入电路选通、内存ram选通、输出led选通控制微命令,分别对应状态“11”、“10”、“01”。 状态“00”为无效。f1、f2、f3为三个译码字段,分

13、别由三个控制位经指令译码电路74138译码输出8种状态,前7种状态分别对应一组互斥性微命令中的一个,状态“111”为无效。f3字段包含p1- p4四个测试字位。其功能是根据机器指令代码及相应微指令代码进行译码测试,使微程序转入相应的微地址入囗,从而实现微程序的顺序、分支、循环运行。控制操作为p4测试,它以ca1、ca2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这

14、就是“取指”过程。之后必须对操作码进行p1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程。然后才顺序执行该段微程序,这是真正的指令执行过程。在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令。表1.8、三个字段的编码方案f1字段f2字段f3字段15 14 13选择12 11 10选择9 8 7选择0 0 0ldri0 0 0rag0 0 0p10 0 1load0 0 1alu-g0 0 1ar0 1 0ldr20 1 0rcg0 1 0p30 1 1自定义0 1 1

15、自定义0 1 1自定义1 0 0ldr11 0 0rbg1 0 0p21 0 1lar1 0 1pc-g1 0 1lpc1 1 0ldir1 1 0299-g1 1 0p 4 1.3.3微程序顺序控制方式设计1.微程序控制部件组成原理1 运算器单元(alu uint)运算器单元由以下部分构成:两片74ls181构成了并串型8位alu;两个8位寄存器dr1和dr2为暂存工作寄存器,保存参数或中间运算结果。alu的s0s3为运算控制端,cn为最低进位输入,m为状态控制端。alu的输出通过三态门74ls245连到数据总线上,由alu-b控制该三态门。2 寄存器堆单元(reg unit)该部分由3片8

16、位寄存器r0、r1、r2组成,它们用来保存操作数用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由ldri和rs-b根据机器指令进行选通。3 指令寄存器单元(ins unit)指令寄存器单元中指令寄存器(ir)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由ldir控制其选通。4 时序电路单元(state unit)用于输出连续或单个方波信号,来控制机器的运行。5 微控器电路单元(microcontroller unit)微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。由输入的w/r信号控制

17、微代码的输出锁存。由程序计数器(pc)和地址寄存器(ar)实现程序的取指功能。6 逻辑译码单元(log unit)用来根据机器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器r0、r1、r2的选通译码。7 主存储器单元(main mem)用于存储实验中的机器指令。8 输入输出单元(input/output device)输入单元使用八个拨动开关作为输入设备,sw-b控制选通信号。输出单元将输入数据置入锁存器后由两个数码管显示其值。 图1.2微程序控制原理图2.微程序入口地址形成方法由于每条机器指令都需要取指操作,所以将取指操作编制成一段公

18、用微程序,通常安排在控存的0号或特定单元开始的一段控存空间内。每一条机器指令对应着一段微程序,其入口就是初始微地址。首先由“取指令”微程序取出一条机器指令到ir中,然后根据机器指令操作码转换成该指令对应的微程序入口地址。这是一种多分支(或多路转移)的情况,常用三种方式形成微程序入口地址。(1)一级功能转移如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口地址码的部分位相对应。例如,某计算机有16条机器指令,指令操作码用4位二进制数表示,分别为0000、0001、1111。现以字母q表示操作码,令微程序的入口地址为q11b,例如000011b为mov指令的入口地址,000111b为a

19、dd指令的入口地址,001011b为sub指令的入口地址。由此可见,相邻两段微程序的入口地址相差4个单元(2)二级功能转移若各类指令的操作码的位数和位置不固定时,需采用分级转移,第一次先按指令类型标志转移,以区分出指令属于哪一类,如单操作数指令、双操作数指令等。在每一类机器指令中的操作码的位数和位置应当是固定的,第二次即可按操作码区分出具体是哪条指令,以便转移到相应微程序入口。(3)通过pla电路实现功能转移可编程逻辑阵列pla实质上是一种译码-编码阵列,具有多个输入和多个输出,pla的输入是机器操作码和其他判别条件,pla的输出就是相应微程序的入口地址,这种方法对于变长度、变位置的操作码的处

20、理更为有效而且转移速度较快。3.控存的下地址确定方法在转移到一条机器指令对应的微程序入口地址后,则开始执行微程序,每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成后继微指令地址。(1)增量方式(顺序-转移型微地址) 这种方式和机器指令的控制方式相类似,它也有顺序执行、转移和转子之分。顺序执行时,后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,微程序控制器中应当有一个微程序计数器(pc)。为了降低成本,一般情况下部是将微地址寄存器ar改为具有计数功能的寄存器以代替pc。在非顺序执行微指令时,用转移微指令实现转移。转移微指令的

21、顺序控制字段分成两部分:转移控制字段(bcf)与转移地址字段(baf) “起始和转移地址发生器”的功能有两个:其一是当一条新的机器指令装入ir时,它就形成机器指令的微程序段的起始地址且装入pc,而且随着节拍电位信号的到来,pc自动地增加一个增量,以便连续地从cm中读出微指令,相应的微操作控制信号按规定顺序发送到cpu的各个部分。第二个功能是当微指令指示其测试状态标志、条件代码或机器指令的某些位时,它就对指定的条件进行测试,若满足转移条件,就把新的转移地址装入pc,实现转移;否则不装入新地址,微程序就顺序执行。所以,每次从cm中取出一条新的微指令时,pc都增加,只有下列情况例外: 遇到end微指

22、令时,就把“取指”微程序的入口地址装入pc,开始取指令周期; 当一条新的指令装入ir时,就把该指令的微程序的入口地址装入pc; 遇到转移微指令且满足转移条件时,就把转移地址装入pc。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在cm的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。(2)断定方式 断定方式与增量方式不同,它不采用pc,微指令地址由微地址寄存器ar提供。在微指令格式中,设置一个下地址字段,用于指明下一条要执行的微指令地址。当一条微指令被取出时,下一条微指令的地址(即下地址字段)送ar。它相当

23、于每条微指令都具有转移微指令的功能。采用这种方法就不必设置专门的转移微指令,但增加了微指令字的长度。 (3)增量方式与断定方式的结合这种控制方式中,微地址寄存器ar有计数的功能(断定方式中的微地址寄存器ar无计数功能),但在微指令中仍设置一个顺序控制字段,这是一种增量方式与断定方式相结合的方式。其顺序控制字段一般由两部分组成:顺序地址字段和测试字段。 顺序地址字段。可由设计者指定一般是微地址的高位部分,用来指定后继微地址在cm中的某个区域内。 测试字段。根据有关状态的测试结果确定其地址值,一般对应于微地址的低位部分,相当于在指定区域内确定具体的分支。所依据的测试状态可能是指定的开关状态、指令操

24、作码、状态字等。测试字段如果只有一位,则微地址特产生两路分文;若有两位,则最多可产生四路分支;依此类推,测试字段为n位为最多可产生2n路分支。 若无转移要求,则微地址寄存器计数得到后继微指令的地址。1.3.4微程序设计:每条指令对应的微程序流程图:开始pc->ar,pc+1ram->d_bus->lrp(1)测试rs->d_busd_bus->lt2rd->d_busd_bus->lt1lt1->lt1lt1->lt1lt1+1->d_bus->lt1lt1->lt1lt1+lt2->d_bus->rdrs-&

25、gt;299带进位左移位299->rdrd->ledpc->ar,pc+1lt1->d_bus,d_bus->pcd_input->d_busd_bus->rd 图1.3总流程图(1) 输入指令in 图1.4 in指令的微程序流程图(2) 输出指令out图1.5 out指令的微程序流程图(3) 转移指令jmp图1.6 jmp指令相 对寻址的微程序流程图(3) 减法指令sub 图1.7 sub指令相对寻址的微程序流程图(4) 移位指令rrc rs 299带进位右环移299 rd 图1.8 移位指令相对寻址的微程序流程图1.3.5微程序中各微指令的二进制编

26、码、16进制编码表5 微指令代码位地址(八进制)位地址(二进制)微代码(十六进制)00000000007f8801000001005b4202000010016ffd03000011014fc404000100015f2005000101015fc606000110014fc707000111015f2010001000005b4a11001001005b4c12001010014ffc11400110001cffce160011100025cf170011119453e520010000005b4321010001005b452201001

27、0005b4d23010011005b6624010100018fc12501010102f5c126010110007fd6270101113c03c1300110000001c1310110010041ea320110100021ec330110110041f2340111000041f3350111010041f6360111103001f7370111113001f940100000010fc1411000010379c142100010011f4143100011007ea444100100007fc14510010184492046100110014fe747100111002be

28、850101009459e951101001944920521010100025eb531010119403fe541011000049ed551011010449ee561011100c49ef571011110049f0601100000c7f31611100019403c1621100100003c1631100110025f56411010004134165110101b803c1661101100c03c167110111287df870111000000dc171111001187dfa72111010000d3c874111100ff73c9751111

29、01016e10761111100041c11.4编写调试程序(1)具体代码以每条指令代码所对应的机器码(16进制编码)和地址码:in #data,r0 in #data,r2sub r0-r2r2rrc r2 r0 out r0jmp 00h (2)每条指令代码所对应的机器码和地址码:地址(十六进制) 机器码(十六进制)00 4401 4602 a203 e804 5805 0806 002 实验计算机的组装连接硬件系统连接硬件系统,如图2.1连线图: 图2.1连线图3 实验计算机的调试3.1 调试前准备1、按照实验指导说明书连接硬件系统如图3.1图3.1 2、启动实验软件,打开实验课题菜单

30、,选中实验课题打开实验课题参数对话窗口:微指令操作如图3.2微指令操作图:启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口: 图3.2微指令操作图微指令操作:1)写:在微指令操作编辑框(如图3.2)中输入实验指导书中的微指令程序(格式:两位八进制微地址+空格+六位十六进制微代码),或直接打开随机附带的程序ex8.msm,将实验箱上的k4k3k2k1拨至“0010”写状态,然后按"写入"按钮,微程序写入控制存储器电路;2)读:将实验箱上的k4k3k2k1拨至“0100”读状态,在“读出微地址”栏中填入两位八进制地址,按"读出"按钮,则相

31、应的微代码显示在“读出微代码”栏中;3)保存:按"保存"按钮,微程序代码保存在一给定文件(*.msm)中;4)打开:按"打开"按钮,打开已有的微程序文件,并显示在编辑框中 图3.3机器指令操作机器指令操作:1)写:在机器指令编辑框(如图3.3)中输入实验指导书中机器指令程序(格式:两位十六进制地址+空格+2位或 4位十六进制代码),或直接打开随机附带的程序ex8.asm,将实验箱上的k4k3k2k1拨至 “0101”运行状态,拨动“clr”开关对地址和微地址清零,然后按"写入"按钮,机器指令写 入存储器电路;注:对于8位机,十六进制代码为2位;对于16位机,十六进制代码可以是2位,也可以是4位。2)读:将实验箱上的k4k3k2k1拨至“0101”运行状态,在“读出指令地址”栏中填入两位十六进制地址,拨动“clr”开关对地址和

温馨提示

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

评论

0/150

提交评论