您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基本模型机的设计与实现
一、实验目的1、在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。2、为其定义7条机器指令,并编写相应的微程序,上机调试掌握机概念。二、实验设备Dais-CMH+/CMH计算器组成原理教学实验系统一台,实验用扁平线、导线若干。三、实验内容1、巩固并深刻理解计算机组成原理实验箱整机结构和工作原理,加深对计算机各模块协同工作的认识,以便实现控制。2、熟悉微程序控制器组成、结构和工作原理,分析水平型与混合型微指令格式及控制字段中每一个微操作的含义,利用系统具备开放的特性,重新设计指令系统,掌握微程序控制器的设计思想和方法。3、利用Dais-CMB+/CMB实验系统有条件开放特性,设计一台模型计算机,实现下列指令系统,并通过自定义的工作程序验证上述指令系统。本设计要求实现的模型机共包含七条机器指令:IN(输入)、ADD(加法)、SUB(减法)、RL(左移)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前6位为操作码):助记符机器指令码(二进制)说明微程序的入口地址(八进制)IN00100000“INPUTDEVICE”中的开关状态—R009(取指令后续微指令默认地址为09)ADDaddr01000000XXXXXXXXRO+[addr]——R00ASUBaddr11000000XXXXXXXXRO+[addr]——R00ERLaddr11100000XXXXXXXXRO+[addr]——R00FSTAaddr01100000XXXXXXXXRO——[addr]0BOUTaddr10000000XXXXXXXX[addr]——LED0CJMPaddr10100000XXXXXXXXaddr——PC0D其中IN为单字长(8位),其余为双字长指令,XXXXXXXX为addr对应的二进制地址码。1.实验原理部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定的指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序.Dais-CMB+/CMB实验系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种作为输出设备(OUTPUTDEVICE)。例如,输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出是,将输出数据送到外部数据总线上,当LDED有效时,将数据打入输出锁存器,驱动LED显示。2.指令系统设计在这次课程设计中,我设计了一个手动控制的加法、减法和左移,主要用到IN(输入)、ADD(加法)、SUB(减法)、RL(左移)、STA(存数)、OUT(输出)、JMP(无条件转移)七条机器指令,其指令格式如下:助记符机器指令码(二进制)说明微程序的入口地址(八进制)IN00100000“INPUTDEVICE”中的开关状态—R009(取指令后续微指令默认地址为09)ADDaddr01000000XXXXXXXXRO+[addr]——R00ASUBaddr11000000XXXXXXXXRO-[addr]——R00ERLaddr11100000XXXXXXXXRO+[addr]——R00FSTAaddr01100000XXXXXXXXRO——[addr]0BOUTaddr10000000XXXXXXXX[addr]——LED0CJMPaddr10100000XXXXXXXXaddr——PC0D其中IN为单字节(8位),期于为双字节指令,XXXXXXXX为addr对应的二进制地址码。系统涉及到的微程序流程图见图1-1,当拟定“取消”微指令是,该微指令的判别测试字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前3位(IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地单元。3.模型机数据通路图1-1其中:①ALU:这是4位带进位的加法器。带有两个锁存器IR1、IR2。由S0、S1、S2、S3、CN、N控制信号设置其运行状态。S0、S1、S2、S3控制ALU的运算方式;同时当二进制开关N=1是进行逻辑运算,当N=0是进行算术运算。CN是ALU的进位控制开关,当CN=0是无进位;CN=1是带进位。②TEXT:作为移位发生器。由S0、S1、M控制信号设置其运行状态,其控制特性列表如下:299-BS1S0M功能000任意保持0100循环右移0101带进位循环右移0010循环左移0011带进位循环左移任意11任意装数说明:令CBA=011时表中299-B=0③MEM:主存。用来存放数据。④PC:程序计数器又称为指令计数器或指令指针IP,它的作用是提供指令的地址。因此PC用来指示程序的进程。当现行指令执行完毕时,由PC提供后继指令的地址,并送往主存的地址寄存器MAR。当程序按顺序执行时,每读取一条指令后,PC要加上一个增量(通常为刚读取指令所占的存储单元数),以指向下条指令地址。当遇到转移指令时,需改变程序的执行顺序,则由转移指令形成转移地址送往PC作为后继指令地址。PC具有加1计数功能,并可以编程访问。⑤IR:指令寄存器。用来存放当前正在执行的一条指令。当执行一条指令时,应先将指令从主存中读出到IR中。IR的输出是控制器产生控制信号的主要逻辑依据。不可编程访问。⑥AR:地址寄存器,用来保存当前CPU所访问的主存党员的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读写操作完成为止。⑦Rx:图中的R0、R1、R2为通用寄存器。可用来存放原始数据,有的还可以作为变址寄存器、计数器、地址指针等。4.机器指令程序设计本设计的工作程序的内存映象(装入起始地址00H)如下:地址(二进制)内容(二进制)助记符说明十六进制代码0000000000100000IN将输入数据送R0寄存器00200000000101000000ADD[OAH]01400000001000001010RO+[0AH]—R0020A0000001101100000STA[0BH]03600000010000001011R0—[0BH]040B0000010111000000SUB[0EH]05C00000011000001110RO-[0EH]-R0060E0000011111100000RL[0FH]07E00000100000001111R0[0FH]-R0080F0000010110000000OUT[0BH]09800000011000001011[0BH]—LED0A0B0000011110100000JMP010BA0000010000000000101H—PC0E010000100101010101输入自定的数据0000101010101010输入自定的数据0A01P0020;INR0P0140;ADDR0,1DHP021DP0360;STA1CH,R0P041CP0580;OUTBUS,1CHP061CP07C0;SUBR0,1DHP081DP09E0;RLR0P0AA0;JMP00HP0B00P1CAA;DATAP1D01;DATAP1E01;DATA其中0E,0D是存储器,0E用来自加,0D用来存放结果。5.微程序设计微指令格式:323130292827262524232221201918171615CBAAR留位X3A9A8CELDADCNMS0S1S2S3X2LDAR1413121110987654321LDPCLDIRLDDR2LDR1LDR0WEUA0UA1UA2UA3UA4UA5X1SW-B其中UA5-UA0为6为后继微地址,A,B为译码字段,分别由6个控制位译码输出多位。CBA选择27161择试字000止X3X2X1001PC-B000闭测试010ALU-B001P(1)别操作码011299-B010P(2)寻址方式100R0-B011P(Z)标志测试101R1-B100P(I)断响应110R2-B101P(D)断测试留位110P(C)标志测试111留位1、设计基本思想:①执行取指令公共操作。由于任何一条机器指令的取指令操作都是相同的,因此将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器。在机器开始运行时,自动将微程序的入口微地址送到AR中,并从微控制器中读出相应的微指令送入IR。②由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址并送如AR中。③从微控制器中逐条取出相对应的微指令并执行。④执行完对应于一条机器指令的一个微程序后重新回到取指令的入口地址,继续第①步,以完成取下一条机器指令的公共操作。⑤不断重复以上过程,知道整个程序执行完毕为止。2、入口地址设计:①取指微程序的入口地址:将微控制器的0好单元设为取指微程序的入口地址②一级功能转换入口地址:在本次设计过程中用到了7条机器指令,固需要3位二进制数表示。令微程序入口地址为操作码+1000B,这时IN的入口地址为09H、ADD的入口地址为0AH、STA的入口地址为0BH、OUT的入口地址为0CH、SUB的入口地址为0C、RL的入口地址为0E、JMP的入口地址为0DH。3、后继地址设计:入口地址设计好后,画出微程序流程图,如图1-2所示。后继地址采用断定方式,如下所示:在微指令执行到RAM-BUS;BUS-IR时需要跳转即P(1)=1,在设计时将第27、16、1位分别设置成0、0、1;在不同的操作指令中用PC自加1来顺序执行。图1-26.微程序代码化M0000000080微命令字段判别测试字段P(1)下地址字段操作控制顺序控制M0120006040;PC—AR,PC+1M0200801012;RAM-BUS-IRM0300804020;RAM-BUS-ARM04008008A0;RAM-BUS-DR2M05A0000460;R0-DR1M0640290280;(DR2+DR1)-R0M0700804068;RAM-BUS-ARM0800000080;空操作M0900000281;IN-R009表示微程序入口地址M0A200060C0;PC-AR,PC+1(0A是ADD微程序入口地址)M0B200060E0;PC-AR,PC+1(0B是STA微程序入口地址)M0C200060C8;PC-AR,PC+1(0C是OUT微程序入口地址)M0D200060A8;PC-AR,PC+1(0D是JUMP微程序入口地址)M0E200060E8;PC-AR,PC+1(0E是SUB微程序入口地址);M0F900C00B8;R0-R299M1000000080;空操作M1100000080;空操作M1200000080;空操作M1300804028;RAM-BUS,BUS-ARM1403800080;RAM-BUS,BUS-LEDM1500C02080;RAM-BUS,BUS-PCM16A0800180;R0-BUS,BUS-RAMM1700804094;RAM-BUS-ARM1800800498;RAM-BUS-DR2M19A0000458;R0-DR1M1A400602D8;(DR2-DR1)-R0M1BA3000080;OUTM1C00000080;空操作M1D63000078;R299-LEDM1E600800F8;左循M1F63000004;R299-LEDM20600C0280;R299-R0四、实验结果将机器指令程序装载到Dais-CMB+/CMB实验系统,执行微单步:1.输入(IN)①将PC的值给AR,PC的值加1②RAM的值通过总线(BUS)传给IR。③将输入端(IN)
本文标题:基本模型机的设计与实现
链接地址:https://www.777doc.com/doc-3342838 .html