计算机组成原理模型计算机,计算机组成原理课程设计-模型计算机控制器的设计...

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理课程设计-模型计算机控制器的设计

(14页)

6b2920ef85671d03f79cefd4bf1f7138.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.90 积分

《计算机组成原理》 课 程 设 计 报 告 设计 题目: 模型计算机控制器的 设计 学 生: 学 号: 专业班级: 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天2 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个通用数据寄存器 R0~R3; 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。3 表 2-1 寄存器编码表 寄存器 编码 R0 R1 R2 R3 A B ZERO DR AR SP FLAG PC IR 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 11004 3 指令系统设计 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条) MOV dR, data ;dR ← data MOV dR, sR ;dR ← (sR) LAD dR, [sR] ;dR ← ((sR)) STO [dR], sR ;(dR) ← (sR) PUSH sR ;SP ← (sR),SP ← SP+1 POP dR ;SP ←(SP)–1,dR ← (SP) CLC ;Cy ← 0 STC ;Cy ← 1 2)算术运算类指令(6条) ADD dR, sR ;dR ← (dR) + (sR) SUB dR, sR ;dR ← (dR) – (sR) ADC dR, sR ;dR ← (dR) + (sR) + Cy SBC dR, sR ;dR ← (dR) – (sR) – Cy INC dR ;dR ← (dR) + 1 DEC dR ;dR ← (dR) – 1 3)逻辑运算类指令(8条) AND dR, sR ;dR ← (dR) ∨ (sR) OR dR, sR ;dR ← (dR) ∧ (sR) XOR dR, sR ;dR ← (dR)?(sR) NOT dR ;dR ← ~(dR) SL dR ;dR ← dR > 1 , Cy ← D 0 (逻辑右移 1位) SLC dR ;带进位标志 Cy 的循环逻辑左移(1位) SRC dR ;带进位标志 Cy 的循环逻辑右移(1位) 4)控制类指令(7条) JMP addr ;PC ← addr JC offset ;若 Cy=1 则 PC ← (PC) + offset JNC offset ;若 Cy=0 则 PC ← (PC) + offset JZ offset ;若 Z=1 则 PC ← (PC) + offset JNZ offset ;若 Z=0 则 PC ← (PC) + offset CALL addr ;(SP) ← (PC),SP ← (SP)+1,PC ← addr5 RET ;SP ← (SP)–1,PC ← (SP) 5)输入/输出类指令(2 条) IN port ;R0 ← (port) OUT port ;port ← (R0) 3.3 指令格式设计 指令长度为单字节和双字节 2种,操作码字段的长度可变,指令格式有以下六种。 1.格式一 7 4 3 2 1 0 操作码 dR sR 2.格式二 7 4 3 2 1 0 操作码 IO port / addr 3.格式三 7 4 3 2 1 0 操作码 dR/sR 4.格式四 7 4 3 2 1 0 操作码 dR/sR addr 5.格式五 7 4 3 2 1 0 操作码 6.格式六 7 4 3 2 1 0 操作码 adr6 3.4 指令汇总表 表 3-1 指令汇总表 序 号 指令格式 汇编语言 字长 操作数 C Z V S 功能说明 1 0000 dR sR MOV dR, sR 1 2 ···· dR ← (sR) 2 0001 dR sR LAD dR, [sR] 1 2 ···· dR ← ((sR)) 3 0010 dR sR STO [dR], sR 1 2 ···· (dR)← (sR) 4 0011 dR sR ADD dR, sR 1 2 * * * * dR ← (dR)+(sR) 5 0100 dR sR SUB dR, sR 1 2 * * * * dR← (dR)-(sR) 6 0101 dR sR AND dR, sR 1 2 ·*·* dR ← (dR)∧(sR) 7 0110 dR sR OR dR, sR 1 2 ·*·* dR ← (dR)∨(sR) 8 0111 dR sR XOR dR, sR 1 2 ·*·* dR ← (dR)?(sR) 9 1000 dR sR ADC DS, sR 1 2 * * * * dR ← (dR)+(sR)+Cy 10 1001 dR sR SBC DS, sR 1 2 * * * * dR ← (dR)-(sR)-Cy 11 1010 port IN port 1 1 ···· R0 ← (port) 12 1011 port OUT port 1 1 ···· port ← (R0) 13 1100 00 dR PUSH sR 1 1 ···· SP ← (sR),SP ← (SP)+1 14 1100 01 dR POP dR 1 1 ···· SP ← (SP)-1,dR ← (SP) 15 1100 10 dR INC dR 1 1 * * * * dR ← (dR)+1 16 1100 11 dR DEC dR 1 1 * * * * dR ← (dR)-1 17 1101 00 dR SHL dR 1 1 *··· dR ← dR*2,Cy ← D 7 18 1101 01 sR SHR dR 1 1 *··· dR ← dR/2,Cy ← D 0 19 1101 10 dR SLC dR 1 1 *··· 带进位 Cy 的逻辑循环左移 20 1101 11 dR SRC dR 1 1 *··· 带进位 Cy 的逻辑循环右移 21 1110 00 dR NOT dR 1 1 ·*·* dR ← ~(dR) 22 1110 01 dR data MOV dR, data 2 2 *··· dR ← data 23 1110 1000 CLC 1 0 0··· Cy ← 0 24 1110 1001 STC 1 0 1··· Cy ← 1 25 1110 1010 addr CALL addr 2 1 ···· (SP) ←(PC),SP←(SP)+1 PC ← addr 26 1110 1011 RET 1 0 ···· SP←(SP)-1,PC←(SP) 27 1110 1100 offset JC offset 2 1 ···· C=1 时转移到(PC)+offset 28 1110 1100 offset JNC offset 2 1 ···· C=0 时转移到(PC)+offset 29 1110 1110 offset JZ offset 2 1 ···· Z=1 时转移到(PC)+offset 30 1110 1111 offset JNZ offset 2 1 ···· Z=0 时转移到(PC)+offset 31 1111 0000 addr JMP addr 2 1 ···· PC ← addr 说明:表中 CZVS 一栏,*表示该标志位在指令执行后被重置,·表示该标志位不受指令执行的影 响。78 4 控制信号和时序信号 4.1 控制信号 在计算机的控制信号中,大部分用于控制寄存器数据输入和数据输出操作。寄存器一般由带有 三态输出的 D 触发器或 D 锁存器构成,因此需要有数据输入和数据输出两个控制信号。为了可靠 地实现两个寄存器之间的数据传送操作,输出寄存器的数据输出控制信号必须首先有效,经过一段 时间的延迟后,输入寄存器的数据输入控制信号才能有效,在时间上有一个时间差。寄存器之间的 数据传送一般可在一个时钟周期内完成,因此,寄存器数据输出的控制信号持续 1个时钟周期有效, 而寄存器数据输入的控制信号持续半个时钟周期,且在时钟信号的后半个周期有效。 1.运算器相关的控制信号 1)ALU 运算功能控制信号 AUL 运算功能由控制信号 I 2 I 1 I 0 的编码选择,具体见表 4-1。 表 4-1 ALU 运算功能选择 I 2 I 1 I 0 运算功能 说明 000 001 010 011 100 101 110 111 R+S S-R R-S R∨S R∧S ∧S R R?S S R ? 加法 减法 减法 逻辑或 逻辑与 S R 逻辑异或 逻辑同或 2)移位器操作控制信号 移位器的操作功能由控制信号 I 4 I 3 的编码选择,具体见表 4-2。 表 4-2 移位器操作功能选择 I 4 I 3 输出 Y 说明 00 01 10 11 三态 Y=F F=F*2 F=F/2 Y 输出高阻态 F 直通 F 左移 1位 F 右移 1位 3)寄存器输入/输出控制信号 通用寄存器组 R 0 ~R 3 的数据输入输入和输出分别由 R ni 及 R no 控制,其中 R no 信号持续 1个时 钟周期,而 R ni 则只在时钟信号的后半个周期有效。 数据缓冲寄存器 DR 在物理上由输出缓冲寄存器和输入缓冲寄存器组成,以便实现双向数据缓 冲,但在逻辑上只有一个地址,一般通过读、写这两种不同的操作来区分不同的物理寄存器。 对于数据输出缓冲寄存器 DR,数据的传送方向为:CPU→主存或 I/O,其数据输入控制信号为 DR i ,数据输出由 信号控制。 WE 对于数据输入缓冲寄存器 DR,数据的传送方向为:主存或 I/O→CPU,其数据输入由 WE 控 制(WE 与 为互补信号) ,数据输出由 DR o 控制。 WE9 地址寄存器 AR 为单向输出,AR i 为数据打入控制信号。 零寄存器(Z)为单向输出,Z o 为数据输出控制信号。 标志寄存器 FLAG 的数据输出信号为 Z o 。标志寄存器 FLAG 在结构上不同于普通的寄存器, 普通寄存器的各个数据位作为一个整体同时接收数据,不能实现个别数据位独立接收数据,但标志 寄存器 FLAG 要求各数据位能够独立接收 ALU 输出的特征值(C、Z、V、S) ,通常情况下,需用 时序逻辑的设计方法来实现。标志寄存器 FLAG 中各标志位的设置情况见表 4-3。 表 4-3 标志寄存器中 CZVS 标志值的选择 I 7 I 6 I 5 C Z V S 说 明 000 001 010 011 100 101 C C 7 0 1 F 0 F 7 Z F=0 Z Z Z Z V OV V V V V S F 7 S S S S CZVS 的值保持不变 接收 ALU 标志位输出的值 C 置“0”,ZVS 不变 C 置“1”,ZVS 不变 左移操作,ZVS 不变 右移操作,ZVS 不变 堆栈指针SP的输入输入和输出分别由 SP i 及 SP o 控制。 4)ALU 进位信号 C 0 及移位器低位 F 0 及高位 F 7 的取值 ALU 进位信号 C 0 及移位器低位 F 0 及高位 F 7 的取值见表 4-4。 表 4-4 ALU 进位信号 C 0 及移位器低位 F 0 及高位 F 7 的取值 I 10 I 9 I 8 C 0 F 7 F 0 说明 000 001 010 011 100 101 110 111 0 1 C 7 - - - - - - - - - - - 0→F 7 C→F 7 - - - - 0→F 0 C→F 0 - - 单字长加法、逻辑运 算 单字长减法 多字长加、减法 无操作 逻辑左移 循环左移 逻辑右移 循环右移 2.控制器(CU)相关的控制信号 程序计数器 PC 具有加 1的功能,当控制信号 PC +1 有效时 PC 的值加 1,其数据输入和输出分 别由信号 PC i 和 PC o 控制。 指令寄存器 IR 为 8位,各位均有直接通道连接到微操作与时序信号发生器,其输入和输出分 别由信号 IR i 和 IR o 控制。 3.存储器及 I/O 相关的控制信号 访问存储器一般需要 和 两个信号来控制读、写操作,访问 I/O 端口则需要 和 MRD MWR IOR 两个信号来控制读、写操作,为了便于控制数据总线的数据传送方向,可在 CPU 设置 IOW REQ(存储器及 I/O 请求) 、 (存储器或 I/O 选择)和 (写允许)三个控制信号,通过对 MIO WE 这三个信号的译码后产生所需要的 、 、 和 。 MRD MWR IOR IOW 表 4-3 读写访问的控制信号10 REQ MIO WE 译码输出 说明 0 × × 1 0 0 1 0 1 1 1 0 1 1 1 无效 MWR MRD IOW IOR 无操作 写存储器 读存储器 写 I/O 读 I/O 4.2 数据通路分析 1.取指令操作 ① PC→AR→MEM→DR→IR ② PC+1→PC 2.执行指令 1)双操作数运算指令sR op dR→dR? sR→A? dR→B? F→Ri (……) 4.3 时序信号 模型计算机的主时钟频率 f 为 1MHz,周期 T=1μs,采用方波波形(即脉宽与脉间相等) ,普通 的低速 RAM 和 ROM 的访问周期一般在小于 300ns,因此存储器的访问可在 1个时钟周期内完成。 因此,模型机的机器周期 M 固定由 1个时钟周期构成,指令的机器周期数可变,但至少需要 M0、M1 两个机器周期,其中 M0 为取指周期,M1 为执行周期。11 5 指令执行流程设计 指令执行流程图如图 5-1 所示,每个方框图表示一个机器周期,方框图的左上方的数字编码为 机器周期的编号。 图 5-1 指令执行流程图12 6 指令执行流程及控制信号安排 根据指令执行流程图,安排各机器周期所需要发出的微操作控制信号,并给出控制信号的编码。 表 6-1 指令流程及控制信号表 指令 机器码 机器 周期 PC +1 R /M /W 源 寄存器 目的 寄存器 C 0 F 0 F 7 I 10 I 9 I 8 标志 I 7 I 6 I 5 移位 I 4 I 3 运算 I 2 I 1 I 0 注释 - - 00000 1 000 1011 1000 000 000 00 000 PC→AR,PC+1→PC - - 00001 0 101 1111 0111 000 000 00 000 M(AR)→DR - - 00010 0 000 0111 1100 000 000 00 000 DR→IR MOV 1110 01 dR data 00000 1 000 1011 1000 000 000 00 000 PC→AR,PC+1→PC 00001 0 101 1111 0111 000 000 00 000 M(AR)→DR 00011 0 000 0111 00dR 000 000 00 000 DR→dR MOV 0000 dRsR 00100 0 000 00sR 00dR 000 000 00 000 sR→dR LAD 0001 dRsR 00110 0 000 00sR 1000 000 000 000 000 sR→AR 00001 0 101 1111 0111 000 000 00 000 M(AR)→DR 00011 0 000 0111 00dR 000 000 00 000 DR→dR STO13 7 微操作控制信号逻辑表达式 关 键 词: 计算机 组成 原理 课程设计 模型 控制器 设计

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值