您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 模型计算机控制器的设计
《计算机组成原理》课程设计报告设计题目:模型计算机控制器的设计学生:学号:专业班级:13计师X班指导教师:麦山提交日期:2015年6月XX日计算机科学系二○一五年1模型计算机控制器的设计本课程设计以设计一个模型计算机的控制器(CU)为目标,通过课程设计,进一步加深对中央处理器的结构和功能的理解,掌握控制器的设计方法和步骤,为今后从事计算机系统设计打下初步的基础。1设计要求1.1功能指标和要求1)支持一个规模较小、但功能相对完整的RISC指令系统,指令条数不超过32条;2)采用I/O端口独立编址方式;3)系统总线由CPU总线延伸形成,总线周期固定;4)不支持中断及DMA功能;5)采用组合逻辑控制方式;6)忽略复位电路、时钟电路和时序电路的设计,但需说明对时序信号的要求。1.2性能指标要求1)CPU字长8位,数据总线8位;2)地址总线8位,最大寻址空间为256字节;3)I/O采用独立编址方式,4位地址码,最大支持16个I/O端口;4)时钟频率1MHz左右,机器周期为3-4个时钟周期;5)CPU输出与外部读写控制的控制信号有/MR、/MW、/IOR、/IOW。1.3课程设计要求根据课程设计指导,完成模型机控制的设计,并提交课程设计报告。1.4时间安排1)理解模型机的逻辑结构、数据通路以及指令系统和格式:1天2)数据通路设计及分析:1天3)指令执行流程设计:1天4)微操作的节拍安排与设计:1天5)微操作命令逻辑表达式:1天22CPU逻辑结构设计2.1CPU逻辑结构的组成1.运算器1)ALU具有8种算术/逻辑运算功能,其运算功能由三位编码I2I1I0选择;ALU除了2个数据输入端R、S和数据输出端Y外,另有一个最低位进位输入信号C0,以及4个状态输入:进位输出C、结果零Z、运算溢出V和符号位S。2)ALU输出移位器具有直通、左移一位和右移一位的功能,由两位编码I4I3选择;3)ALU数据输入端有A和B两个数据锁存器,指令不可访问;4)标志寄存器FLAG,4位,与数据总线的低4位连接,能独立置位或清零;5)4个通用数据寄存器R0~R3;6)堆栈指针SP(8位);7)数据缓冲寄存器DR,指令不可访问;8)地址寄存器AR(8位),指令不可访问。2.控制器1)程序计数器PC(8位),具有加1的功能;2)指令寄存器IR(8位);3)微操作控制信号发生器,采用组合逻辑控制方式;4)时钟和时序信号发生器(不需设计)。2.2CPU的逻辑结构及数据通路结构图2-1CPU逻辑结构及数据通路结构图在模型计算机的CPU中设置了一个特殊的零寄存器ZERO,该寄存器的值恒为0。各寄存器的编码(地址)见表2-1。3表2-1寄存器编码表寄存器编码R0R1R2R3ABZERODRARSPFLAGPCIR000000010010001101000101011001111000100110101011110043指令系统设计3.1指令字长和寻址方式设计1)指令字长以单字长为主,少数指令为双字长;2)指令操作码字段长度可变;3)数据寻址支持立即寻址、寄存器直接寻址和寄存器间接寻址三种方式;4)只有取数(LDA)和存数(STO)两条指令可以访问主存。3.2指令系统设计在以下指令定义中,dR、sR表示通用数据寄存器组R0~R3(编号00~11)中的一个,data表示8位立即数,addr表示8位无符号地址,port表示4位I/O端口地址。1)数据传送类指令(8条)MOVdR,data;dR←dataMOVdR,sR;dR←(sR)LADdR,[sR];dR←((sR))STO[dR],sR;(dR)←(sR)PUSHsR;SP←(sR),SP←SP+1POPdR;SP←(SP)–1,dR←(SP)CLC;Cy←0STC;Cy←12)算术运算类指令(6条)ADDdR,sR;dR←(dR)+(sR)SUBdR,sR;dR←(dR)–(sR)ADCdR,sR;dR←(dR)+(sR)+CySBCdR,sR;dR←(dR)–(sR)–CyINCdR;dR←(dR)+1DECdR;dR←(dR)–13)逻辑运算类指令(8条)ANDdR,sR;dR←(dR)∨(sR)ORdR,sR;dR←(dR)∧(sR)XORdR,sR;dR←(dR)⊕(sR)NOTdR;dR←~(dR)SLdR;dR←dR1,Cy←D7(逻辑左移1位)SRdR;dR←dR1,Cy←D0(逻辑右移1位)SLCdR;带进位标志Cy的循环逻辑左移(1位)SRCdR;带进位标志Cy的循环逻辑右移(1位)4)控制类指令(7条)JMPaddr;PC←addrJCoffset;若Cy=1则PC←(PC)+offsetJNCoffset;若Cy=0则PC←(PC)+offsetJZoffset;若Z=1则PC←(PC)+offsetJNZoffset;若Z=0则PC←(PC)+offsetCALLaddr;(SP)←(PC),SP←(SP)+1,PC←addr5RET;SP←(SP)–1,PC←(SP)5)输入/输出类指令(2条)INport;R0←(port)OUTport;port←(R0)3.3指令格式设计指令长度为单字节和双字节2种,操作码字段的长度可变,指令格式有以下六种。1.格式一743210操作码dRsR2.格式二743210操作码IOport/addr3.格式三743210操作码dR/sR4.格式四743210操作码dR/sRaddr5.格式五743210操作码6.格式六743210操作码adr63.4指令汇总表表3-1指令汇总表序号指令格式汇编语言字长操作数CZVS功能说明10000dRsRMOVdR,sR12····dR←(sR)20001dRsRLADdR,[sR]12····dR←((sR))30010dRsRSTO[dR],sR12····(dR)←(sR)40011dRsRADDdR,sR12****dR←(dR)+(sR)50100dRsRSUBdR,sR12****dR←(dR)-(sR)60101dRsRANDdR,sR12·*·*dR←(dR)∧(sR)70110dRsRORdR,sR12·*·*dR←(dR)∨(sR)80111dRsRXORdR,sR12·*·*dR←(dR)⊕(sR)91000dRsRADCDS,sR12****dR←(dR)+(sR)+Cy101001dRsRSBCDS,sR12****dR←(dR)-(sR)-Cy111010portINport11····R0←(port)121011portOUTport11····port←(R0)13110000dRPUSHsR11····SP←(sR),SP←(SP)+114110001dRPOPdR11····SP←(SP)-1,dR←(SP)15110010dRINCdR11****dR←(dR)+116110011dRDECdR11****dR←(dR)-117110100dRSHLdR11*···dR←dR*2,Cy←D718110101sRSHRdR11*···dR←dR/2,Cy←D019110110dRSLCdR11*···带进位Cy的逻辑循环左移20110111dRSRCdR11*···带进位Cy的逻辑循环右移21111000dRNOTdR11·*·*dR←~(dR)22111001dRdataMOVdR,data22*···dR←data2311101000CLC100···Cy←02411101001STC101···Cy←12511101010addrCALLaddr21····(SP)←(PC),SP←(SP)+1PC←addr2611101011RET10····SP←(SP)-1,PC←(SP)2711101100offsetJCoffset21····C=1时转移到(PC)+offset2811101100offsetJNCoffset21····C=0时转移到(PC)+offset2911101110offsetJZoffset21····Z=1时转移到(PC)+offset3011101111offsetJNZoffset21····Z=0时转移到(PC)+offset3111110000addrJMPaddr21····PC←addr说明:表中CZVS一栏,*表示该标志位在指令执行后被重置,·表示该标志位不受指令执行的影响。74控制信号和时序信号4.1控制信号在计算机的控制信号中,大部分用于控制寄存器数据输入和数据输出操作。寄存器一般由带有三态输出的D触发器或D锁存器构成,因此需要有数据输入和数据输出两个控制信号。为了可靠地实现两个寄存器之间的数据传送操作,输出寄存器的数据输出控制信号必须首先有效,经过一段时间的延迟后,输入寄存器的数据输入控制信号才能有效,在时间上有一个时间差。寄存器之间的数据传送一般可在一个时钟周期内完成,因此,寄存器数据输出的控制信号持续1个时钟周期有效,而寄存器数据输入的控制信号持续半个时钟周期,且在时钟信号的后半个周期有效。1.运算器相关的控制信号1)ALU运算功能控制信号AUL运算功能由控制信号I2I1I0的编码选择,具体见表4-1。表4-1ALU运算功能选择I2I1I0运算功能说明000001010011100101110111R+SS-RR-SR∨SR∧SR∧SR⊕SSR加法减法减法逻辑或逻辑与SR逻辑异或逻辑同或2)移位器操作控制信号移位器的操作功能由控制信号I4I3的编码选择,具体见表4-2。表4-2移位器操作功能选择I4I3输出Y说明00011011三态Y=FF=F*2F=F/2Y输出高阻态F直通F左移1位F右移1位3)寄存器输入/输出控制信号通用寄存器组R0~R3的数据输入输入和输出分别由Rni及Rno控制,其中Rno信号持续1个时钟周期,而Rni则只在时钟信号的后半个周期有效。数据缓冲寄存器DR在物理上由输出缓冲寄存器和输入缓冲寄存器组成,以便实现双向数据缓冲,但在逻辑上只有一个地址,一般通过读、写这两种不同的操作来区分不同的物理寄存器。对于数据输出缓冲寄存器DR,数据的传送方向为:CPU→主存或I/O,其数据输入控制信号为DRi,数据输出由WE信号控制。对于数据输入缓冲寄存器DR,数据的传送方向为:主存或I/O→CPU,其数据输入由WE控制(WE与WE为互补信号),数据输出由DRo控制。8地址寄存器AR为单向输出,ARi为数据打入控制信号。零寄存器(Z)为单向输出,Zo为数据输出控制信号。标志寄存器FLAG的数据输出信号为Zo。标志寄存器FLAG在结构上不同于普通的寄存器,普通寄存器的各个数据位作为一个整体同时接收数据,不能实现个别数据位独立接收数据,但标志寄存器FLAG要求各数据位能够独立接收ALU输出的特征值(C、Z、V、S),通常情况下,需用时序逻辑的设计方法来实现。标志寄存器FLAG中各标志位的设置情况见表4-3。表4-3标志寄存器中CZVS标志值的选择I7I6I5CZVS说明000001010011100101CC701F0F7ZF=0ZZZZVOVVVVVSF7SSSSCZVS的值保持不变接收ALU标志位输出的值C置“0”,ZVS不变C置“1”,ZVS不变左移操作,ZVS不变右移操作,ZVS不变堆栈指针SP的输入输入和输出分别由SPi及SPo控制。4)ALU进位信号C0及移位器低位F0及高位F7的取值ALU进位信号C0及移位器低位F0及高位F7的取值见表4-4。表4-4ALU进位信号C0及移位器低位F0及高位F7的取值I10I9I8C0F7F0说明00000101001110010111011101C7-----------0→F7C→F7----0→F0C→F0--单字长加法、逻辑运算单字长减法多字长加、减法无操作逻辑左移循环左移逻辑右移循环右移2.控制器(CU)相关的控制信号程序计数器PC具有加1的功能,当控制信号PC+1有效时PC的值加1,其数据输入和输出分别由信号PCi和PCo控制。指令寄存器IR为8位,各
本文标题:模型计算机控制器的设计
链接地址:https://www.777doc.com/doc-2362949 .html