1 / 42

计原实验 1

计原实验 1. 内容提要. 实验要求 实验平台 THCO MIPS 指令系统介绍 流水线基本设计 实验步骤 时间安排. 实验要求. 基本任务 实验成果 :完成一个类似于 MIPS16e 标准的 THCO MIPS 指令集的 CPU 能运行已有的监控程序 支持 IO 操作 正确运行测试程序 实现方式 (二选一) 选择一:支持 5 级指令流水的 CPU 选择二:多周期非流水的 CPU (难度稍低). 实验要求. 提高要求 软件 监控、模拟器、编译器的完善提高 新颖的测试程序 硬件 数据相关(旁路技术) Cache 实现 分支预测. 内容提要.

rivka
Download Presentation

计原实验 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计原实验 1

  2. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  3. 实验要求 • 基本任务 • 实验成果:完成一个类似于MIPS16e标准的THCO MIPS指令集的CPU • 能运行已有的监控程序 • 支持IO操作 • 正确运行测试程序 • 实现方式(二选一) • 选择一:支持5级指令流水的CPU • 选择二:多周期非流水的CPU(难度稍低)

  4. 实验要求 • 提高要求 • 软件 • 监控、模拟器、编译器的完善提高 • 新颖的测试程序 • 硬件 • 数据相关(旁路技术) • Cache实现 • 分支预测

  5. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  6. 双 PU 教学计算机系统 实验平台 • 硬件 • TEC-2008教学计算机 • 软件 • 监控程序 • 交叉汇编 • 仿真终端

  7. TEC2008硬件设计总体框图

  8. FPGA芯片 • Xilinx公司的SPARTAN-II系列芯片 • 型号:XC2S200 • 20万门容量 • 2352个CLB • 14个4Kb的RAM块 • 208脚的PQFP封装形式

  9. 管脚分配 • 数据总线 • 基本存储区 • 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

  10. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  11. MIPS指令系统 • MIPS,全称Microprocessor without Interlocked Pipeline Stages,即无内部互锁流水级的微处理器 • 32位,格式统一,易于流水 • 最早、最成功的RISC处理器之一 • MIPS16e标准 • 保留MIPS指令系统的主要特点 • 指令全部为16位,主要应用于嵌入式系统

  12. THCOMIPS • 尽量使指令集贴近MIPS16e标准采用的指令格式确保指令继承MIPS的优点; • 简化指令集 • 将一些用不到的,实现起来又很麻烦的指令去掉,这样就会为后续的实验设计减轻负担; • 指令集的功能尽量完备 • 避免删减的过于简单而导致后续的监控程序功能无法实现 • THCOMIPS由43条指令组成(3条指令涉及到中断)

  13. 指令分类 • 按照指令的操作类型可分为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.

  14. 指令分类 • 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.

  15. 指令格式功能描述 • R型指令: • AND • 格式:AND rx ry • 功能:GPR[rx]←GPR[rx] & GPR[ry] • NOT • 格式:NOT rx ry • 功能:GPR[rx]←~ GPR[ry]

  16. 指令格式功能描述 • 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)

  17. 指令格式功能描述 • B型指令 • B • 格式:B immediate • 功能:PC←PC+Sign_extend(immediate) • BEQZ • 格式:BEQZ rx immediate • 功能:if (GPR[rx] = 0) then PC←PC+Sign_extend(immediate)

  18. 指令格式功能描述 • J型指令 • JR • 格式:JR rx • 功能:PC←GPR[rx]

  19. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  20. 流水线基本设计 • 流水线框架的基本模式 触发器组 触发器组 触发器组 组合逻辑 组合逻辑 组合逻辑 组合逻辑 时钟信号

  21. 流水线基本设计 • 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]

  22. 一种简单的设计 IF ID EXE MEM WB

  23. 典型的框架

  24. 读取指令(IF段)

  25. 典型的框架

  26. 指令译码(ID段)

  27. 典型的框架

  28. 指令执行(EXE段)

  29. 典型的框架

  30. 访存阶段(MEM)& 写回段(WB)

  31. …… ADDU R1 R2 R3 ADDU R4 R1 R3 …… Bubble & Stall Unit

  32. 旁路技术(Data Forwarding) • 基本思想:在同一周期内,将一个功能段的输出直接反馈回另一个功能段的输入 • 例子:……m:ADDU R1 R2 R3m+1: BNEZ R1 offset…… • 第m+1条指令流入ID段进行指令译码时,需要判断寄存器R1的值是否为0 • 寄存器R1的值由第m条指令产生,第m条指令处于EXE段 将EXE段的输出反馈回ID段!

  33. 分支预测 • 对于条件跳转指令,只有译码阶段才能确定是否进入分支 • 下一条指令已经完成了取指阶段-清理流水线-插入延时槽(NOP) • 分支预测 LOOP: LI R1 1000 …… ADDIU R1 FF BNEZ LOOP LI R2 23

  34. 流水线基本设计 • 建议的设计步骤 • 自顶向下,先整体后细节 • 先搭好空的框架,然后再把译码器、ALU等模块作为部件插入触发器组之间 • 各模块之间可先独立测试确认正确性 • 注意冲突处理 • 添加气泡 • 注意访存部件的信号时序 • 设计时扩展要对扩展要求有所考虑

  35. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  36. 实验步骤 • 确定指令系统 • 指令功能 • 指令格式 • 指令流程图 • 整体设计框图 • 确定硬件组成模块 • ALU、RegisterFile、InsDecoder、PCAdder、MemInterface • 确定每个模块的功能 • 给出每个模块的功能描述

  37. 内容提要 • 实验要求 • 实验平台 • THCO MIPS指令系统介绍 • 流水线基本设计 • 实验步骤 • 时间安排

  38. 时间安排 • 12月3日之前完成 • 12月10日之前提交实验报告

  39. 思考 • 什么时候会有冲突?什么时候需要插入气泡? • 为什么带流水线的CPU需要划分内存的指令区和数据区?而普通pc却没有做类似的物理划分(只有逻辑划分,由OS来保证)? • 谈一谈你能想到的扩展方案

  40. 课下任务 • 完成指令流程图 • 做好ppt,下节课每一个小组上台讲解自己的设计(每组十分钟,讲完后小组间互相提问)

More Related