420 likes | 651 Views
计原实验 1. 内容提要. 实验要求 实验平台 THCO MIPS 指令系统介绍 流水线基本设计 实验步骤 时间安排. 实验要求. 基本任务 实验成果 :完成一个类似于 MIPS16e 标准的 THCO MIPS 指令集的 CPU 能运行已有的监控程序 支持 IO 操作 正确运行测试程序 实现方式 (二选一) 选择一:支持 5 级指令流水的 CPU 选择二:多周期非流水的 CPU (难度稍低). 实验要求. 提高要求 软件 监控、模拟器、编译器的完善提高 新颖的测试程序 硬件 数据相关(旁路技术) Cache 实现 分支预测. 内容提要.
E N D
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
实验要求 • 基本任务 • 实验成果:完成一个类似于MIPS16e标准的THCO MIPS指令集的CPU • 能运行已有的监控程序 • 支持IO操作 • 正确运行测试程序 • 实现方式(二选一) • 选择一:支持5级指令流水的CPU • 选择二:多周期非流水的CPU(难度稍低)
实验要求 • 提高要求 • 软件 • 监控、模拟器、编译器的完善提高 • 新颖的测试程序 • 硬件 • 数据相关(旁路技术) • Cache实现 • 分支预测
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
双 PU 教学计算机系统 实验平台 • 硬件 • TEC-2008教学计算机 • 软件 • 监控程序 • 交叉汇编 • 仿真终端
FPGA芯片 • Xilinx公司的SPARTAN-II系列芯片 • 型号:XC2S200 • 20万门容量 • 2352个CLB • 14个4Kb的RAM块 • 208脚的PQFP封装形式
管脚分配 • 数据总线 • 基本存储区 • DataBus0~DataBus15:3~10,14~18,20~22 • 扩展存储区 • ExDataBus0~ExDataBus15:162~168,172~176,178~181 • 地址总线 • 基本存储区 • AddressBus0~AddressBus15:23,24,27,29~31,31~37,41~45 • 扩展存储区 • ExAddressBus0~ExAddressBus12:187~189,191~195,199~203 • 控制信号 • /MIO,REQ,/WE:205、204、206
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
MIPS指令系统 • MIPS,全称Microprocessor without Interlocked Pipeline Stages,即无内部互锁流水级的微处理器 • 32位,格式统一,易于流水 • 最早、最成功的RISC处理器之一 • MIPS16e标准 • 保留MIPS指令系统的主要特点 • 指令全部为16位,主要应用于嵌入式系统
THCOMIPS • 尽量使指令集贴近MIPS16e标准采用的指令格式确保指令继承MIPS的优点; • 简化指令集 • 将一些用不到的,实现起来又很麻烦的指令去掉,这样就会为后续的实验设计减轻负担; • 指令集的功能尽量完备 • 避免删减的过于简单而导致后续的监控程序功能无法实现 • THCOMIPS由43条指令组成(3条指令涉及到中断)
指令分类 • 按照指令的操作类型可分为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_RA_SP、SW_SP、SW、LW_SP、LW、ADDIU_3OP、ADDIU_SP_3OP、ADDIU_SP、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) • ADDIU_3OP • 格式: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]
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
流水线基本设计 • 流水线框架的基本模式 触发器组 触发器组 触发器组 组合逻辑 组合逻辑 组合逻辑 组合逻辑 时钟信号
流水线基本设计 • 5级流水: • 读取指令 、指令译码、执行运算、内存读写、数据写回 指令步骤 读取指令 指令译码 执行运算 内存读写 数据写回 J型 PC←Reg[rd] IR← MEM[PC] PC ← PC+1 若条件成立 则 PC←R R←PC+(符号扩展(imm)) A←Reg[rs] B←Reg[rt] B型 I型 Reg[rd]←C C←A op 符 号扩展(Imm) C←A op B R型指令 DR←Mem[C]Mem[C]←B 访存指令 Reg[rt]←DR 其中,访存指令包括SW_RA_SP、SW_SP、SW、LW_SP、LW SW RS RT IMM: MEM[RS + immediate]←RT LW RS RT IMM: RT←MEM[RS + immediate]
一种简单的设计 IF ID EXE MEM WB
…… ADDU R1 R2 R3 ADDU R4 R1 R3 …… Bubble & Stall Unit
旁路技术(Data Forwarding) • 基本思想:在同一周期内,将一个功能段的输出直接反馈回另一个功能段的输入 • 例子:……m:ADDU R1 R2 R3m+1: BNEZ R1 offset…… • 第m+1条指令流入ID段进行指令译码时,需要判断寄存器R1的值是否为0 • 寄存器R1的值由第m条指令产生,第m条指令处于EXE段 将EXE段的输出反馈回ID段!
分支预测 • 对于条件跳转指令,只有译码阶段才能确定是否进入分支 • 下一条指令已经完成了取指阶段-清理流水线-插入延时槽(NOP) • 分支预测 LOOP: LI R1 1000 …… ADDIU R1 FF BNEZ LOOP LI R2 23
流水线基本设计 • 建议的设计步骤 • 自顶向下,先整体后细节 • 先搭好空的框架,然后再把译码器、ALU等模块作为部件插入触发器组之间 • 各模块之间可先独立测试确认正确性 • 注意冲突处理 • 添加气泡 • 注意访存部件的信号时序 • 设计时扩展要对扩展要求有所考虑
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
实验步骤 • 确定指令系统 • 指令功能 • 指令格式 • 指令流程图 • 整体设计框图 • 确定硬件组成模块 • ALU、RegisterFile、InsDecoder、PCAdder、MemInterface • 确定每个模块的功能 • 给出每个模块的功能描述
内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排
时间安排 • 12月3日之前完成 • 12月10日之前提交实验报告
思考 • 什么时候会有冲突?什么时候需要插入气泡? • 为什么带流水线的CPU需要划分内存的指令区和数据区?而普通pc却没有做类似的物理划分(只有逻辑划分,由OS来保证)? • 谈一谈你能想到的扩展方案
课下任务 • 完成指令流程图 • 做好ppt,下节课每一个小组上台讲解自己的设计(每组十分钟,讲完后小组间互相提问)