计算机组成原理课程设计-模型计算机控制器的设计.doc_第1页
计算机组成原理课程设计-模型计算机控制器的设计.doc_第2页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

计算机组成原理课 程 设 计 报 告设计题目: 模型计算机控制器的设计 学 生: 学 号: 专业班级: 13计师x班 指导教师: 麦 山 提交日期: 2015 年 6 月 xx 日计算机科学系二一五年模型计算机控制器的设计本课程设计以设计一个模型计算机的控制器(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天2 cpu逻辑结构设计2.1 cpu逻辑结构的组成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个通用数据寄存器r0r3;6)堆栈指针sp(8位);7)数据缓冲寄存器dr,指令不可访问;8)地址寄存器ar(8位),指令不可访问。2控制器1)程序计数器pc(8位),具有加1的功能;2)指令寄存器ir(8位);3)微操作控制信号发生器,采用组合逻辑控制方式;4)时钟和时序信号发生器(不需设计)。2.2 cpu的逻辑结构及数据通路结构图2-1 cpu逻辑结构及数据通路结构图在模型计算机的cpu中设置了一个特殊的零寄存器zero,该寄存器的值恒为0。各寄存器的编码(地址)见表2-1。表2-1 寄存器编码表寄存器编码r0r1r2r3abzerodrarspflagpcir00000001001000110100010101100111100010011010101111003 指令系统设计3.1 指令字长和寻址方式设计1)指令字长以单字长为主,少数指令为双字长;2)指令操作码字段长度可变;3)数据寻址支持立即寻址、寄存器直接寻址和寄存器间接寻址三种方式;4)只有取数(lda)和存数(sto)两条指令可以访问主存。3.2 指令系统设计在以下指令定义中,dr、sr表示通用数据寄存器组r0r3(编号0011)中的一个,data表示8位立即数,addr表示8位无符号地址,port表示4位i/o端口地址。1)数据传送类指令(8条)movdr, data;dr datamovdr, sr;dr (sr)laddr, sr;dr (sr)stodr, 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 dr 1 , 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 addrret;sp (sp)1,pc (sp)5)输入/输出类指令(2条)inport;r0 (port)outport;port (r0)3.3 指令格式设计指令长度为单字节和双字节2种,操作码字段的长度可变,指令格式有以下六种。1格式一7 4 3 2 1 0 操作码drsr2格式二7 4 3 2 1 0操作码io port / addr3格式三7 4 3 2 1 0操作码dr/sr4格式四7 4 3 2 1 0操作码dr/sraddr5格式五7 4 3 2 1 0操作码6格式六7 4 3 2 1 0操作码adr3.4 指令汇总表表3-1 指令汇总表序号指令格式汇编语言字长操作数c z v s功能说明10000 dr srmovdr, sr12dr (sr)20001 dr srladdr, sr12dr (sr)30010 dr srstodr, sr12(dr) (sr)40011 dr sradddr, sr12* * * *dr (dr)+(sr)50100 dr srsub dr, sr12* * * *dr (dr)-(sr)60101 dr sranddr, sr12*dr (dr)(sr)70110 dr srordr, sr12*dr (dr)(sr)80111 dr srxordr, sr12*dr (dr)(sr) 91000 dr sradcds, sr12* * * *dr (dr)+(sr)+cy101001 dr srsbcds, sr12* * * *dr (dr)-(sr)-cy111010 portinport11r0 (port)121011 portoutport11port (r0)131100 00 drpushsr11sp (sr),sp (sp)+1141100 01 drpopdr11sp (sp)-1,dr (sp)151100 10 drincdr11* * * *dr (dr)+1161100 11 drdecdr11* * * *dr (dr)-1171101 00 drshldr11*dr dr*2,cy d7181101 01 srshrdr11*dr dr/2,cy d0191101 10 drslcdr11*带进位cy的逻辑循环左移201101 11 drsrcdr11*带进位cy的逻辑循环右移211110 00 drnotdr11*dr (dr)221110 01 drdatamovdr, data22*dr data231110 1000clc100cy 0241110 1001stc101cy 1251110 1010addrcalladdr21(sp) (pc),sp(sp)+1pc addr261110 1011ret10sp(sp)-1,pc(sp)271110 1100offsetjcoffset21c=1 时转移到(pc)+offset281110 1100offsetjncoffset21c=0 时转移到(pc)+offset291110 1110offsetjzoffset21z=1 时转移到(pc)+offset301110 1111offsetjnzoffset21z=0 时转移到(pc)+offset311111 0000addrjmpaddr21pc addr说明:表中czvs一栏,*表示该标志位在指令执行后被重置,表示该标志位不受指令执行的影响。4 控制信号和时序信号4.1 控制信号在计算机的控制信号中,大部分用于控制寄存器数据输入和数据输出操作。寄存器一般由带有三态输出的d触发器或d锁存器构成,因此需要有数据输入和数据输出两个控制信号。为了可靠地实现两个寄存器之间的数据传送操作,输出寄存器的数据输出控制信号必须首先有效,经过一段时间的延迟后,输入寄存器的数据输入控制信号才能有效,在时间上有一个时间差。寄存器之间的数据传送一般可在一个时钟周期内完成,因此,寄存器数据输出的控制信号持续1个时钟周期有效,而寄存器数据输入的控制信号持续半个时钟周期,且在时钟信号的后半个周期有效。1运算器相关的控制信号1)alu运算功能控制信号aul运算功能由控制信号i2i1i0的编码选择,具体见表4-1。表4-1 alu运算功能选择i2i1i0运算功能说明000001010011100101110111rssrrsrsrssrs加法减法减法逻辑或逻辑与逻辑异或逻辑同或2)移位器操作控制信号移位器的操作功能由控制信号i4i3的编码选择,具体见表4-2。表4-2 移位器操作功能选择i4i3输出y说明00011011三态y=ff=f*2f=f/2y输出高阻态f直通f左移1位f右移1位3)寄存器输入/输出控制信号通用寄存器组r0r3的数据输入输入和输出分别由rni及rno控制,其中rno信号持续1个时钟周期,而rni则只在时钟信号的后半个周期有效。数据缓冲寄存器dr在物理上由输出缓冲寄存器和输入缓冲寄存器组成,以便实现双向数据缓冲,但在逻辑上只有一个地址,一般通过读、写这两种不同的操作来区分不同的物理寄存器。对于数据输出缓冲寄存器dr,数据的传送方向为:cpu主存或i/o,其数据输入控制信号为dri,数据输出由信号控制。对于数据输入缓冲寄存器dr,数据的传送方向为:主存或i/ocpu,其数据输入由we控制(we与为互补信号),数据输出由dro控制。地址寄存器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-4 alu进位信号c0及移位器低位f0及高位f7的取值i10i9i8c0f7f0说明00000101001110010111011101c70f7cf70f0cf0单字长加法、逻辑运算单字长减法多字长加、减法无操作逻辑左移循环左移逻辑右移循环右移2控制器(cu)相关的控制信号程序计数器pc具有加1的功能,当控制信号pc+1有效时pc的值加1,其数据输入和输出分别由信号pci和pco控制。指令寄存器ir为8位,各位均有直接通道连接到微操作与时序信号发生器,其输入和输出分别由信号iri和iro控制。3存储器及i/o相关的控制信号访问存储器一般需要和两个信号来控制读、写操作,访问i/o端口则需要和两个信号来控制读、写操作,为了便于控制数据总线的数据传送方向,可在cpu设置req(存储器及i/o请求)、(存储器或i/o选择)和(写允许)三个控制信号,通过对这三个信号的译码后产生所需要的、和。表4-3 读写访问的控制信号req 译码输出说明0 1 0 01 0 11 1 01 1 1无效无操作写存储器读存储器写i/o读i/o4.2 数据通路分析1取指令操作 pcarmemdrir pc+1pc2执行指令1)双操作数运算指令 sr op drdr sra drb fri()4.3 时序信号模型计算机的主时钟频率f为1mhz,周期t=1s,采用方波波形(即脉宽与脉间相等),普通的低速ram和rom的访问周期一般在小于300ns,因此存储器的访问可在1个时钟周期内完成。因此,模型机的机器周期m固定由1个时钟周期构成,指令的机器周期数可变,但至少需要m0、m1两个机器周期,其中m0为取指周期,m1为执行周期。5 指令执行

温馨提示

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

评论

0/150

提交评论