计算机组成原理字发生器,计算机组成原理课程设计报告时序发生器

计算机组成原理课程设计报告时序发生器

计算机组成原理课程设计报告时序发生器计算机组成原理 课程设计报告学院:目 录1实验目的 ? 32实验原理电路图 ?3机器指令与微程序 ?4实验设备 ?5实验任务 ?6实验结果 ?7实验总结 ?23 5 8 8 10 11一、实验目的1掌握时序产生器的组成原理2掌握微程序控制器的组成原理3掌握微指令格式的化简和归并4将微程序控制器同执行部件(整个数据通路)联机,组成一台计算机5用微程序控制器控制模型机的数据通路6通过CPU运行九条机器指令(排除有关中断的指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机整机概念二、实验原理电路图1时序发生器TEC-4计算机组成原理实验的时序电路如图所示,电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序新号T1-T4和W1-W4。其中一个W由一轮T1-T4循环组成,相当于一个微指令周期;而一轮W1-W4循环可供硬联线控制器执行一条机器指令。-= 时序信号发生器 =-本次实验不涉及硬联线控制器,因此时许产生器中的相关内容也可以根据需要放到硬联线控制器实验中进行。CLR#为复位新号,低电位有效。试验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位;CLR#=0时,则可以正常运行。TJ是停机新号,是控制器的输出新号之一。连续运行时,如果控制信号停机=1,会使机器停机,停止发送时序脉冲,从而暂停程序。QD是启动脉冲信号。 DP,DZ,DB是来自控制台的开关信号。DP表示单拍,当DP=1时,每次只执 3行一条微指令;DZ表示单指,当DZ=1时,每次只执行一条机器指令;当DP,DB,DZ都为0时,机器连续运行。2数据通路微程序控制器是根据数据通路和指令系统来设计的。这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25/U26)和中断地址寄存器IAR(U19),PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的储存、增1和加偏移量的功能。R4由两片74HC298组成,带二选一输入端。IAR是一片74HC734,用于中断时保存断点地址。3微指令格式与微程序控制器电路根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见下图。微指令字长共35位。其中顺序控制部分10位(后继微地址6位,判别字段4位),操作控制字段25位,各位进行直接控制。微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。-= 微指令格式 =-对应微指令格式,微程序控制器的组成如下图所是示,控制存储器采用5片EEPROM 28C64(U8,U9,U10,U11,U12)。28C64的输出是D0D7,分别与引脚11、12、13、15、16、17、18、19相对应,CM0是最低字节,CM4是最高字节。微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。跳转开关JUMP(J1)是一组6个跳线开关。当用短路子将它们 4连通时,微地址寄存器AR从本实验系统提供的微程序地址译码电路得到新的微程序地址D0D5。当他们被断开时,用户提供自已的新微程序地址D0D5。这样用户能够使用自己设计的微程序地址译码电路。5片EEPROM的地址A6(引脚4)直接与控制台开关SWC连接,当SWC = 1时,微地址大于或者等于40H,当SWC = 0时,微地址的范围00H3FH。SWC主要用于实现读寄存器堆的功能。-= 微程序控制器的组成 =-微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会它。SWA、SWB是控制台的两个二进制开关信号,实验台上线已接好。C是进位信号,IR7IR4是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0Kl5上。三、机器指令与微程序为了简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。指令格式如下表所示:指令的高4位提供给微程序控制器,低4位提供给数据通路。5指令功能与格式应当指出,用以上12条指令来编写实际程序是不够的。通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。上述12条指令的微程序流程设计如下图所示。每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:存储器写操作(KWE):按下复位按钮CLR#后,微地址寄存器状态为全零。此时置SWC = 0、SWB =1、SWA = 0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。存储器读操作(KRD):按下复位按钮CLR#后,置SWC = 0,SWB = 0,SWA = 1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。6写寄存器操作(KLD):按下复位按钮CLR#后,置SWC = 0,SWB = 1,SWA = 1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。-= 微程序流程图=-读寄存器操作(KRR):按下复位按钮CLR#后,置SWC = 1,SWB = 0,SWA = 0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。启动程序(PR):按下复位按钮CLR#后,置SWC = 0,SWB = 0,SWA = 0,用数据开关SW7SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。微程序控制器输出的控制信号远远少于数据通路所需的控制信号。这里的微程序流程图是没有经过归并和化简的。有些信号出现的位置完全一样,这样的信号用其中一个信号就可以代表。还有另一些信号,出现的位置基本相同。微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。对下列信号进行了归并和化简:LDIR(CER) 为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。7LDPC(LDR4) 为l时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。LDAR1(LDAR2) 为l时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。LDDR1(LDDR2) 为1时允许对操作数寄存器DR1加载。此信号也可用于作为对操作数寄存器DR2加载。Ml(M2) 当M1 = l时,操作数寄存器DR1从数据总线DBUS接收数据;当M1 = 0时,操作数寄存器DR1从 寄存器堆RF接收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简最主要的原因是前面进行的各个实验的需要。还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。四、实验设备1TEC4计算机组成原理实验系统一台2直流万用表一只3逻辑测试笔一支4导线若干五、实验任务常规型微程序控制器组成实验1按实验要求,连接实验台的开关K0K15、按钮开关、时钟信号源和微程序控制器。2熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于下表。三种控制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD = 001B,KWE = 010B,PR = 000B)。83单拍(DP)方式执行控制台微程序,读出微指令,用P字段和微地址指示灯跟踪微指令执行情况。4用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KRD、KWE、PR微地址转移逻辑功能的实现。5熟悉05H、10H两条微指令的功能和P2测试的状态条件(IR4IR7),用二进制开关设置IR7IR4的不同状态,观察SUB、LDA、STA、JUMP机器指令微地址转移逻辑功能的实现。6设置IR7IR4的不同组合,用单拍方式执行机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。实验中的具体问题为编写机器代码计算y=x2+3x+1的值。 首先编写出解决该问题的微指令用R0,R1,R2,R3来代替函数的4个参数x,x,3,1。这样函数就可以用简单的加法和乘法来完成:具体执行步骤为:R0*R1R0; R2*R1R2; RO+R2R0; RO+R3R0 对应指令编码如下:令x=2,,则寄存器中数据如下表所示9CPU组成与机器指令执行实验1对机器指令系统组成的简单程序进行译码。将下表的程序按指令格式手工汇编成十六进制机器代码。2按照框图,参考前面实验的电路图完成连线。其中,为把操作数攒送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应连接到IR1、IR0上。3将表中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器R2、R3及其内存相关单元的数据。(注:10由于设置通用寄存器时会破坏内存单元的数据,因此应先设置寄存器的数据,再设置内存数据。)4用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论值作对比。执行时注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯、微地址指示灯和判别字段指示灯的值(可以观察到每一条微指令)。5 以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可以观察到每一条机器指令)。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。(注:单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。)6以连续方式(DB,DP,DZ都设为0)再次执行程序。由于程序中有停机指令STP,程序执行到该指令时自动停机。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。(注:程序执行前的原始数据与第二遍执行结果有关。)按照要求,执行相应的指令,然后跳出程序,读出结果,观察结果与标准结果是否一致。六、实验结果1计算y=x+3x+1 2将写好的二进制代码输入到内存(堆)中,控制KRD、KWE、KLD、KRR、PR的值来输入指令、数据,并检验所输入的指令和数据是否正确,调节PR进行运行程序,当DP置一,其它置零时,按QD则可以进行一步一步的运行程序。观察当前正在运行的程序以及每一步程序运行的过程和结果,运行程序完成后,通过读寄存器中数据的值检验程序运行的结果。经检验,用该程序算出的结果与正确结果一致。输入x=2,经过该程序的运行,得出y=x2+3x+1的值为11,证明该程序的程序编写及操作步骤正确,该试验成功。2CPU组成与机器指令执行实验11将写好的二进制代码输入到内存(堆)中,控制KRD、KWE、KLD、KRR、PR的值来输入编写好的程序,然后可以读出程序或者数据,检验所输入的指令和数据是否正确。调节PR进行运行程序,当DP置1,其它置零时,按QD则可以进行一步一步的运行程序,观察每一步程序运行的过程和结果,运行程序完成后,通过读内存中数据的值检验程序运行的是否正确。通过观察实验结果,发现该程序的执行结果与预期的正确结果一致,所以此实验程序及操作均正确。七、实验总结通过本次课程设计实验,更加深入地了解了课本上的知识,对书本上的知识在实际中的应用有了更加形象的认识。本次实验中,自己编写机器指令,亲自动手连线,实际操作面板开关,这使我们近距离了解了机器指令在计算机中的运行过程,将平时的理论知识和实验中的操作结合起来。这让我增强了自己的动手能力,熟练地掌握了每个实验步骤的操作,并能独立完成一个实验的操作。在实验之前,应该了解实验原理、实验步骤、实验任务以及注意事项,这样可以使思路更加清晰,使实验操作更具条理性,即使出错,也能很快地找出错误并解决错误。在实验过程中,尤其是输入机器指令比较多的时候,应当加倍细心,防止因输入指令错误而带来实验结果的错误。这更是培养了我们的耐心和对细节的操作能力。此次课程设计实验中遇到了很多平时课堂中和试题中不会出现的问题,我们通过查阅资料、相互讨论、请教老师等方法解决了这些问题。在解决这些问题过程中,培养了我们对思维的掌控能力、解决问题的能力和团队协作能力,对以后更加深入地学习后续课程打下了坚实的基础。12

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值