
组成原理课程设计报告报告_设计一台模型计算机.doc
6页计算机组成原理课程设计一、基本要求:设计一台模型计算机具体内容:1. 数据格式和指令系统 2. 数据通路 3. 时序系统4. 微指令格式 5. 微程序控制器6. 微程序流程图 7. 微程序代码表二、模型机设计1. 数据格式和指令系统的约定1) 数据格式模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:7 6 5 4 3 2 1 0符号数据其中: 第7位为符号位,数值表示范围是:-1≤X<12) 指令系统模型机设计四大类指令共16条,其中包括算术逻辑指令(9条)、I/O指令(4条)、访内及转移指令(2条)和停机指令(1条)因为指令系统共16条指令,所以操作码是4位由于模型机机器字长为8位,故设计单字长指令和双字长指令供使用 (1) 算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:7 6 5 4 3 2 1 0OP-CODE RsRd其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:9条算术逻辑指令的名称、功能和具体格式。
2) 访内指令及转移指令模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为: 7 6 5 4 3 2 1 00 0XOP-CODERd D其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),X为寻址方式,其定义如下:寻址方式有效地址说明00011011E=DE=(D)E=(R2)+DE=(PC)+D直接寻址间接寻址R2变址寻址相对寻址(3) 输入输出指令格式如下: 7 6 5 4 3 2 1 0OP-CODE addrRd其中,addr=01 时,选中“INPUT DEVICE”中的开关组作为入设备,addr=10时,选中“OUTPUT DEVICE”中的数码快作为输出设备4) 停机指令格式如下: 7 6 5 4 3 2 1 0OP-CODE 0 0 0 0这类指令只有一条,即停机指令HALT (5)模型机指令系统指令类型操作名称及用法功能指令格式算术逻辑指令MOVRs,Rd 传送(Rs)->Rd1000RsRdADD Rs,Rd 加法(Rs)+(Rd)->Rd1001RsRdSUB Rs,Rd 减法(Rs)-(Rd)->Rd1010RsRdINC Rd 自增(Rd)+1→Rd10110 0RdAND Rs,Rd 与(Rs)&&(Rd)->Rd1100RsRdCOM Rs,Rd 比较(Rd)-(Rs)的结果影响状态位:若N=1,则Rs>Rd1101RsRdCLA Rd 清零0->Rd111000RdRRC Rd 带进位右循环一位0->MSB->MSB-1->…->LSB->C-1111100RdRLC Rd带进位左循环一位C<-MSB<-MSB-1<-…<-LSB<-0011100Rd访内及转移指令STA X,D,Rd 存数(Rd)->E00X00Rd DLDA X,D,Rd 取数E->Rd00X01Rd DJMP X,D无条件跳转E->PC00X100 0 DBZC X,D 若条件位Z=1或C=1,则跳转E->PC00X110 0 DI/O指令IN addr,Rd输入(addr)->Rd010001RdOUT addr,Rd 输出Rd->(addr)010110Rd停机指令HALT停机011000002. 数据通路简单的模型计算机是由运算器、控制器、存储器、总线、输入输出和时序产生器组成。
在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统运算器模块主要由四片74LS181、暂存器两片74LS273等构成其中74LS181可通过控制器相应的控制指令来进行某种运算,具体由S0、S1、S2、S3、M、CN来决定T4是它的工作脉冲,正跳变有效寄存器堆模块为实验计算机提供了2个8位通用寄存器它们用来保存操作数及其中间运算结果,它对运算器的运算速度、指令系统的设计等都有密切关系在该运算器中,有两片74LS181组成算术和逻辑运算数据的来源由74LS273寄存器提供,74LS273产生16位数据分别送入到74LS181运算器中进行相应的运算主存储器单元电路主要用于存放实验机的机器指令,它的数据总线挂在外部数据总线EXD0~EXD7上;它的地址总线由地址寄存器单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显示,高电平亮,低电平灭;在手动方式下,输入数据由键盘提供,并经一三态门74LS245(U51)连至外部数据总线EXD0~EXD7,实验时将外部数据总线EXD0~EXD7用8芯排线连到内部数据总线BUSD0~BUSD7,分时给出地址和数据。
它的读信号直接接地;它的写信号和片选信号由写入方式确定该存储器中机器指令的读写分手动和自动两种方式手动方式下,写信号由W/R`提供,片选信号由CE`提供;自动方式下,写信号由控制CPU的P1.2提供,片选信号由控制CPU的P1.1提供由于地址寄存器为8位,故接入6264的地址为A0~A7,而高4位A8~A12接地,所以其实际使用容量为256字节6264有四个控制线:CS1第一片选线、CS2第二片选线、OE读线、WE写线CS1片选线由CE`控制(对应开关CE)、OE读线直接接地、WE写线由W/R`控制(对应开关WE)、CS2直接接+5V为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序·存储器读操作:拨动总清开关后,置控制开关SWB、SWA为“00”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作·存储器写操作:拨动总清开关后,置控制开关SWB、SWA为“01”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入·运行程序:拨动总清开关后,置控制开关SWB、SWA为“11”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
IR指令寄存器用来保存当前正在执行的一条指令当执行一条指令时,先把指令从内存去到DR中,然后再传送至IR指令由操作码和地址码字段组成,为了执行任何给定的指令,必须对操作码进行P测试,通过节拍脉冲T4的控制以便识别所要求的操作指令译码器根据指令中的操作码译码强置微控器单元的地址,使下一条微指令指向相应的微程序的首址本系统有两种外部I\O设备,一种是二进制代码开关,它作为输入设备;另一种是数码块,它作为输出设备输入时二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变输出时,将输出数据送到外部数据总线上,当写信号有效时将数据打入输出锁存器,驱动数码块显示根据计算机的执行原理对各个元部件进行状态控制,最终设计出模型机的数据通路框图见附件一的图1计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序数据的通路从程序计数器PC的地址送到主存的地址寄存器,根据地址寄存器的内容找到相应的存储单元存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再从总线送到通用寄存器中等待加工。
数据加工过程中,两个数据是从总线上将数据分别分时压入两个暂存器中,等待运算部件的加工,在数据加工完成以后运算结果是通过三太门送到总线上三态门的控制时由微控制器来控制3. 时序系统本实验装置的主存模块和操作控制器模块都带有时序电路,在连续或单脉冲源的作用下时序电路能连续或单步地输出T1、T2、T3、T4、信号,并有启停控制信号在微程序控制器中,机器指令和微指令的时序关系比较简单,所以时序电路也比较简单读取一个控存单元的时间与机器指令的CPU周期的时间相同,指令周期等于CPU周期与本质了所含微指令条数的积时序系统的设计见附件2的图2节拍电位与节拍脉冲时序关系图见附件3的图34. 微指令格式微指令格式采用水平型微指令,微命令编码采用直接表示法和字段直接译码法相结合的混合表示法,以缩短微指令长度,后继地址采用断定方式,微指令格式如下:23 9 8 6 5 0控制字段(15)判别字段(3位)下址字段(6位)操作控制字段15位,通过直接或字段译码方式对数据通路进行控制。
下址字段6位,从而确定控制存储器容量为64个单元判别测试字段3位,通过字段译码可用于规定7种P测试方式,以及一种不测试P0当P0=000的情况下,按下址字段的地址直接取下一条微指令具体微指令格式内容见附件三的图4 S3,S2,S1,S0,M,Cn:为运算器74LS181芯片的控制信号 WE:为W/R信号对RAM和OUT进行读写操作,高电平为写有效 A9,A8:为对外部设备(RAM,OUTPUT,INPUT)地址进行译码A字段内容具体见附件3 LD299:寄存器选中,具体选择同IR的最低2位(I1,I0)配合当I1I0=00时为输入到R0寄存器;当I1I0=01时为输入到R1寄存器;当I1I0=10时为输入到R2寄存器; LDDR1:暂存器DR1选中 LDDR2:暂存器DR2选中 LDIR:指令寄存器IR选中LOAD:总线数据直接装载在PC计数器中LDAR:地址寄存器AR选中B字段内容具体见附件3B- RS:为源寄存器输出选中具体选择同IR的3,4位(I3,I2)配合当I3I2=00时为输入到R0寄存器;当I3I2=01时为输入到R1寄存器;当I3I2=10时为输入到R2寄存器;RD-B:为目的寄存器输出选中。
