280 likes | 441 Vues
支持指令流水的计算机系统设计与实现. 内容提要. 实验目的及目标 指令系统分析 指令执行步骤举例 CPU 框架设计 讨论. 实验目的. 进一步理解和掌握 Von Neumann 结构计算机各部件组成及内部工作原理 进一步掌握计算机指令系统及指令功能的实现方法 进一步加深对指令流水概念、实现机制和流水冲突等的理解 培养硬件设计和调试的能力 培养团队管理、合作精神及表达沟通能力. 实验目标. 最低目标 实现 THCO MIPS 指令系统,能运行已有的监控程序 多周期 CPU 支持指令流水 支持 I/O 操作 完善监控程序等辅助软件系统 更高目标
E N D
内容提要 • 实验目的及目标 • 指令系统分析 • 指令执行步骤举例 • CPU框架设计 • 讨论
实验目的 • 进一步理解和掌握Von Neumann结构计算机各部件组成及内部工作原理 • 进一步掌握计算机指令系统及指令功能的实现方法 • 进一步加深对指令流水概念、实现机制和流水冲突等的理解 • 培养硬件设计和调试的能力 • 培养团队管理、合作精神及表达沟通能力
实验目标 • 最低目标 • 实现THCO MIPS指令系统,能运行已有的监控程序 • 多周期CPU • 支持指令流水 • 支持I/O操作 • 完善监控程序等辅助软件系统 • 更高目标 • 如何解决“冲突”问题 • 中断、分时、双机通信 • 应用程序 • 与编译系统的结合 • ……
指令系统设计 • 16位字长单字指令 • 满足指令系统的基本要求 • 完备性、规整性、高效性、兼容性 • 容易实现指令流水 • 指令格式简单、寻址方式简单 • MIPS 16e指令系统格式 • 建议的指令系统 • 见实验材料
指令分类和指令格式 • 基本可归结到寄存器型、立即数型和跳转型三类MIPS典型指令格式类型中 • 指令格式简单,寻址方式较少,容易实现流水
状态转移图和指令各执行步骤的操作功能 非 Branch / SW / LW 指令 非 J 指令 Sexe Sif Sid Swb SW / LW 指令 写回周期 取指周期 译码周期 执行周期 LW指令 J 指 令 Smem Branch 指令 译码周期 SW指令 指令步骤 读取指令 指令译码 执行运算 内存读写 数据写回 J 指令 PC←PC[31..28] ‖(target<<2) IR← MEM[PC] PC ← PC+4 若条件成立 则 PC←R C←PC+ (符号扩展 (imm)<<2) A←Reg[rs] B←Reg[rt] Branch型 R 类型 Reg[rd]←C C←A op B C←A + 符 号扩展(Imm) Mem[C]←B Sw指令 Lw指令 DR←Mem[C] Reg[rt]←DR
指令分类 • 按照指令的操作类型可分为4种 • 纯数据:R型、I型 • 控制流相关:B型、J型。 • R型指令(寄存器-寄存器型)从寄存器堆中读取源操作数,结果写回寄存器堆。 • SLL、SRL、SRA、SLLV、SRLV、SRAV、MTSP、MOVE、ADDU、SUBU、MFPC、SLT、SLTU、CMP、NEG、AND、OR、XOR、NOT、MFIH、MTIH.
指令分类 • I型指令(立即数型)使用一个(4位或5位或8位或11位)立即数作为一个源操作数。 • SW_RS、SW_SP、SW、LW_SP、LW、ADDIU3、ADDSP3、ADDSP、ADDIU、LI、SLTI、SLTUI、CMPI、INT . • B型指令(立即数跳转型)使用一个立即数作为跳转的目标地址。 • B、BEQZ、BNEZ、BTEQZ、BTNEZ. • J型指令(寄存器跳转型)使用寄存器的值作为跳转的目标地址 • JR、JRRA、JALR.
指令格式功能描述 • R型指令: • AND • 格式:AND rx ry • 功能:GPR[rx]←GPR[rx] & GPR[ry] • NOT • 格式:NOT rx ry • 功能:GPR[rx]←~ GPR[ry]
指令格式功能描述 • I型指令 • ADDIU • 格式:ADDIU rx immediate • 功能:GPR[rx]←GPR[rx]+Sign_extend(immediate) • ADDIU3 • 格式:ADDIU3 rx ry immediate • 功能:GPR[ry]←GPR[rx]+ Sign_extend(immediate)
指令格式功能描述 • B型指令 • B • 格式:B immediate • 功能:PC←PC+Sign_extend(immediate) • BEQZ • 格式:BEQZ rx immediate • 功能:if (GPR[rx] = 0) then PC←PC+Sign_extend(immediate)
指令格式功能描述 • J型指令 • JR • 格式:JR rx • 功能:PC←GPR[rx]
CPU总体设计 • CPU的外部特性 • 输入信号 • CLK、INT、Reset • 输出信号 • 对基本存储的控制信号(总线) • 基本存储的地址信号 • 对扩展存储的控制信号(总线) • 扩展存储的地址信号 • 入出信号 • 基本存储的数据(指令) • 扩展存储的数据
CPU主要组成 • ALU • 另设加法器完成地址计算 • Register File • PC、SP、IH、RA • 步骤间寄存器组 • 控制信号生成部件(Decoder) • Forwarding • Hazard testing • 动态预测
ALU设计 • 功能 • 加、减、与、或、非、比较、…… • 接口 • 输入 • A、B、OpCode • 输出 • F、T
寄存器组设计 • 功能 • 通用寄存器 • 多少个? • 提供数据访问 • 什么时候读?什么时候写?写的条件是什么? • 接口 • A口地址、B口地址、写入寄存器地址 • A口数据、B口数据、写入数据 • 写入信号 • 时钟信号
与内存和外设的接口 • 数据总线 • 地址总线 • 控制信号 • /OE • /WE • 控制信号 • /MIO,REQ,/WE:205、204、206
阶段寄存器设计 • 阶段间需要传递的所有信息 • 中间数据 • 参数 • 控制信号
流水冲突 • 结构冲突 • 数据冲突 • 控制冲突 • 检测 • 处理
实验步骤 • 确定指令系统 • 指令功能 • 指令格式 • 确定指令的执行流程 • 指令执行步骤划分 • 各步骤完成的具体功能 • 确定硬件组成模块 • ALU、RegisterFile、InsDecoder、PCAdder、MemInterface • 确定每个模块的功能 • 能否完成每条指令的功能要求 • 给出每个模块的功能描述 • 具体实现,注意时序关系
实验步骤 • 基本部分 • 指令功能分析 • 数据通路设计、主要部件的功能及控制信号(14日) • 指令执行步骤划分(指令流程图) • 指令分步骤控制信号(指令流程表) • 控制器详细设计(流水冲突控制)(17日) • 模块结构及参数(25日) • 系统实现及调试 • 扩展部分 • 如果是硬件扩展,要在前面各步骤中体现
时间安排 • 最终完成时间 • 12月3日(检查完成) • 12月10日(实验报告提交) • 检查点 • 实验目标确定 • 每组给出目标和方案,准备PPT • 数据通路设计、指令执行步骤、各部件主要控制信号 • 指令流程图和指令流程表,完整设计框图(包括控制信号) • 每组给出较为详细的设计,并准备PPT