【Verilog项目】计算机体系结构-五级流水线CPU

实验一 单周期 CPU 代码分析

实验内容

  1. 认真阅读并分析所给的单周期CPU代码,掌握单周期CPU电路结构中各模块的工作原理;
  2. 对单周期CPU中两个模块进行仿真:(1)IF_STAGE(取指阶段),(2)Control_Unit(控制单元),分析并理解仿真结果,验证模块逻辑功能;
  3. 设计一个指令序列(要求涵盖CPU指令集中所有类型的指令,每类指令至少一条)。将指令序列写入指令存储器inst_mem中,使用该指令序列对SCCPU(单周期CPU完整电路模块)进行仿真,分析理解仿真结果,掌握单周期CPU的工作原理。

报告下载2021电子科技大学-计算机体系结构实验报告01.pdf_计算机体系结构实验报告-专业指导文档类资源-CSDN下载

实验二 五级流水线 CPU 设计

实验内容 

  • 在单周期CPU代码的基础上添加流水线,补充以下代码以构建具有五级流水线结构的CPU:
    • IF_ID级流水线寄存器(instruction_register)   
    • ID_EXE级流水线寄存器(id_exe_register)   
    • EXE_MEM级流水线寄存器(exe_mem_register)   
    • MEM_WB级流水线寄存器(mem_wb_register)
  • 按规定方式对寄存器与数据存储器进行初始化
  • 对所实现的流水线CPU进行仿真,验证并分析自定义指令序列的运行结果(写指令存储器)
  • 自编代码进行测试

报告下载2021电子科技大学-计算机体系结构实验报告02.pdf-专业指导文档类资源-CSDN下载

实验三 解决数据冒险问题

实验内容

(1)使用纯暂停流水线方法解决数据冒险问题:

  1. 分析数据冒险出现的情况有哪些;
  2. 如何检测数据冒险是否发生;
  3. 修改流水线CPU代码,当数据冒险发生时用暂停流水线的方式处理,保证程序运行结果的正确性。

(2)使用内部前推技术+暂停流水线方法解决数据冒险问题:

  1. 分析数据冒险出现的情况有哪些;
  2. 如何检测数据冒险是否发生;
  3. 修改流水线CPU代码,当数据冒险发生时用数据前推的方式处理,保证程序运行结果的正确性。

         分析在非Load指令后产生数据冒险时,是否能通过纯内部前推技术得到正确结果。分析当检测到Load指令后数据冒险时,是否能通过内部前推数据+暂停流水线技术得到正确的计算结果。

(3)重新初始化指令存储器,要求包括所有指令类型之间能产生的数据冒险,验证所实现流水线CPU是否能够解决数据冒险问题。

(4)按照“计算机系统结构综合实验2.ppt”的要求,初始化寄存器与数据存储器。

报告下载2021电子科技大学-计算机体系结构实验报告03.pdf-专业指导文档类资源-CSDN下载

实验四 解决控制冒险问题

实验内容

1. 修改流水线CPU代码,解决无条件跳转指令(JUMP指令)的控制冒险问题。

    a) 消除无条件跳转指令的后续指令所产生的影响;

2. 修改流水线CPU代码,解决条件跳转指令(BNE与BEQ指令)的控制冒险问题。

    a) 当条件跳转指令的Z信号还未准备好时,需要暂停流水线;

    b) 消除条件跳转指令的后续指令所产生的影响;

3. 设置指令序列进行仿真,验证所实现流水线CPU能够解决控制冒险问题。

4. 在流水线CPU结构图中做出相应修改:

    a) 画出为流水线解决数据冒险与控制冒险问题所增加的功能部件及相应控制信号;

    b) 说明所增加功能部件及相应控制信号是如何被使用。

报告下载2021电子科技大学-计算机体系结构实验报告04.pdf-专业指导文档类资源-CSDN下载

猜你喜欢

转载自blog.csdn.net/weixin_45151415/article/details/118920634