logo资料库

计算机组成原理实验报告.docx

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
1CPU设计实验
1.1设计要求
1.2方案设计
1.2.1设计单周期MIPS CPU数据通路
1.2.2设计单周期MIPS CPU硬布线控制器
1.2.3设计多周期MIPS CPU数据通路
1.2.4设计多周期MIPS CPU微程序控制器
1.2.5设计多周期MIPS CPU硬布线控制器
1.3实验步骤
1.3.1构建单周期CPU数据通路
1.3.2构建单周期CPU硬布线控制器
1.3.3构建多周期CPU数据通路
1.3.4构建多周期CPU微程序控制器
1.3.5构建多周期CPU硬布线控制器
1.4测试与分析
1.4.1单周期CPU执行sort.hex测试程序
1.4.2多周期CPU(微程序)执行sort.hex测试程序
1.4.3多周期CPU(硬布线)执行sort.hex测试程序
2总结与心得
2.1实验总结
2.2实验心得
参考文献
2019 计算机组成原理 ·实验报告· 专 业: 信息安全 班 级: 学 号: 姓 名: 电 话: 邮 件: 完成日期: 计算机科学与技术学院
华 中 科 技 大 学 课 程 实 验 报 告 目录 1 CPU 设计实验........................................................................................ 2 1.1 1.2 1.3 1.4 设计要求...............................................................................................................2 方案设计...............................................................................................................2 1.2.1 设计单周期 MIPS CPU 数据通路............................................................ 2 1.2.2 设计单周期 MIPS CPU 硬布线控制器.................................................... 4 1.2.3 设计多周期 MIPS CPU 数据通路............................................................ 7 1.2.4 设计多周期 MIPS CPU 微程序控制器.................................................... 7 1.2.5 设计多周期 MIPS CPU 硬布线控制器.................................................. 10 实验步骤.............................................................................................................10 1.3.1 构建单周期 CPU 数据通路.................................................................... 10 1.3.2 构建单周期 CPU 硬布线控制器............................................................ 10 1.3.3 构建多周期 CPU 数据通路.....................................................................11 1.3.4 构建多周期 CPU 微程序控制器............................................................ 12 1.3.5 构建多周期 CPU 硬布线控制器............................................................ 14 测试与分析.........................................................................................................17 1.4.1 单周期 CPU 执行 sort.hex 测试程序......................................................17 1.4.2 多周期 CPU(微程序)执行 sort.hex 测试程序...................................17 1.4.3 多周期 CPU(硬布线)执行 sort.hex 测试程序...................................18 2 总结与心得..........................................................................................19 2.1 2.2 实验总结.............................................................................................................19 实验心得.............................................................................................................19 参考文献................................................................................................... 20 I
华 中 科 技 大 学 课 程 实 验 报 告 1 CPU 设计实验 1.1 设计要求 (1) 在 logisim 平台利用已给出的组件构建一个 32 位 MIPS 单周期 CPU,该 CPU 支持如表 1. 1 列出的核心指令集中的 8 条指令。要求绘制单周期 MIPS CPU 数 据通路、实现单周期硬布线控制器,并最终能在完成的 CPU 上运行冒泡排序的 测试程序 sort.hex 且获得正确的输出结果。 (2) 在 logisim 平台利用已给出的组件构建一个 32 位 MIPS 多周期 CPU,该 CPU 支持如表 1. 1 列出的核心指令集中的 8 条指令。要求绘制多周期 MIPS CPU 数 据通路,以两种方式实现控制器,即分别实现微程序控制器和硬布线控制器。 并最终能在完成的 CPU 上运行冒泡排序的测试程序 sort.hex 且获得正确的输出 结果。 表 1.1 八条指令 1.2 方案设计 1.2.1 设计单周期 MIPS CPU 数据通路 待实现的 8 条指令,syscall 停机指令可直接通过连接 PC 寄存器的使能端将其禁用 达到停机的目的,而针对其他 7 条指令则另需设计数据通路。取指令阶段也需设计数 2
华 中 科 技 大 学 课 程 实 验 报 告 据通路。 图 1. 1 取指令数据通路 图 1. 2 R 型运算指令(add 和 slt)数据通路 图 1. 3 访存指令数据通路 3
华 中 科 技 大 学 课 程 实 验 报 告 图 1. 4 支持算术逻辑运算指令和访存指令的混合数据通路 将已设计的不同指令的数据通路进行综合,在有多个输入来源的地方增加数据选 择器 MUX,且将控制信号作为数据选择器的选择端,构建综合数据通路(如图 1. 7 所示)。 图 1. 5 单周期 MIPS 顶层数据通路示意图 1.2.2 设计单周期 MIPS CPU 硬布线控制器 单周期MIPS CPU 硬布线控制器输入信号功能为提供CPU 运行过程中的各种控制 信号。已封装好的控制器如图 1. 8 所示。输入为指令的 Op 字段和 Func 字段 ,输出 4
华 中 科 技 大 学 课 程 实 验 报 告 为各种控制信号。分析各指令各自执行时的数据通路,得到各指令分别需要何种控制 信号。完成后绘制控制信号功能表如表 1. 2 所示。 表 1. 2 控制信号功能说明表 控制信号 信号说明 写内存控制信号 Beq 指令译码信号 Bne 指令译码信号 MemToReg 写入寄存器的数据来自寄存器 MemWrite Beq Bne AluOP AluSrcB RegWrite RegDst Halt 写入寄存器选择控制信号 运算器操作控制符 运算器第二输入选择 寄存器写使能控制信号 停机信号 产生条件 lw 指令 sw 指令 Beq 指令 Bne 指令 加法,比较两种运算 Lw 指令,sw 指令,addi 寄存器写回信号 R 型指令 syscall 指令 # 1 2 3 4 5 6 7 8 9 (1) 指令译码逻辑 指令译码逻辑将指令的操作码字段转换为对应的运算信号,如 addi 信号,lw 信号, sw 信号等。输入为 Op 字段和 Func 字段,输出共 6 个,R_TYPE、ADDI、LW、SW、 BEQ、BNE、SysCall。 LW、SW、BEQ、BNE、ADDI 指令的 OP 字段如表 1. 3 所示。 表 1. 3 部分指令 OP 字段值 指令 LW SW BEQ BNE ADDI OP 字段 0x23 0x2b 0x04 0x05 0x08 只需使用比较器将 OP 与各指令的 OP 字段值进行比较便可得到以上指令对应的控 5
华 中 科 技 大 学 课 程 实 验 报 告 制信号。 而对于信号 R_TYPE,它是 R 型运算指令的控制信号,对于本次设计而言,共 3 条 R 型指令,分别为 ADD、SLT、SysCall。其中 ADD 和 SLT 指令为 R 型运算指令。故 R_TYPE 在 SysCall 对应的指令无效,而 ADD 对应的控制信号或 SLT 对应的控制信号 有效时有效。即 R_TYPE = ( ADD + SLT ) & ~SysCall 。故需先得到 ADD、SLT 和 SysCall 信号。R 型指令的 OP 字段为 0,具体功能需看 Func 字段,故需再次查阅实验 包内的《MIPS32 指令手册》得到 ADD、SLT、SysCall 指令的 Func 字段值,如表 1. 4 所示。 表 1. 4 部分 R 型指令 Func 字段值 指令 ADD SLT SysCall Func 字段 0x20 0x2a 0x0c 只需将 FUNC 和各指令对应字段比较相等的信号与 OP 和 0 比较相等的信号作与 运算即可得到相应的控制信号 ADD、SLT 和 SysCall。 这样,我们就得到了 R_TYPE、ADDI、LW、SW、BEQ、BNE、SysCall 这 6 个 指令译码信号。 (2) ALU 控制逻辑 (3) 完善控制信号逻辑 图 1. 9 ALU 内部逻辑 根据刚刚得到的 6 个指令译码信号,R_TYPE、ADDI、LW、SW、BEQ、BNE、 SysCall,进一步实现所有控制信号逻辑。 6
华 中 科 技 大 学 课 程 实 验 报 告 根据表 1. 2 控制信号功能说明表可知哪些信号在执行哪些指令时起作用,将对应 的指令译码信号进行逻辑或即可得到对应控制信号。 需额外指出的是,寄存器写回操作包括 R_TYPE 指令、ADDI 指令和 LW 指令。 1.2.3 设计多周期 MIPS CPU 数据通路 绘制多周期 CPU 数据通路示意图,如图 1. 10 所示。 图 1. 10 多周期 CPU 数据通路示意图 1.2.4 设计多周期 MIPS CPU 微程序控制器 (1)首先给出取指、译码阶段以及每条指令的执行流程表,如下各表所示: 表 1. 5 取指、译码阶段操作流程 指令阶段 取指令 译码及取操作数 操作流程 IR <- (Mem [PC]) PC <- (PC)+4 A <- (R[IR[25:21]]) 7
分享到:
收藏