【计算机组织与体系结构】实验三:流水线处理器
系列文章目录
【计算机组织与体系结构】实验一:算术逻辑单元的实现
【计算机组织与体系结构】实验二:给定指令系统的处理器设计
【计算机组织与体系结构】实验三:流水线处理器
【计算机组织与体系结构】实验四:指令 CACHE 的设计与实现
一、实验目的
- 掌握 Vivado 集成开发环境
- 掌握 Verilog 语言
- 掌握 FPGA 编程方法及硬件调试手段
- 深刻理解流水线型处理器结构和数据冲突解决技术的工作原理
二、实验环境
Vivado 集成开发环境和龙芯 Artix-7 实验平台
三、实验内容
根据本课程所讲的设计思想,在实验二实现的 CPU 的基础上,设计并实现一个具有五段流水线处理器,并通过暂停和定向(或者说旁路)技术来解决流水线中出现的数据冲突,要求该处理器可以通过所提供的自动测试环境
1、流水线处理器的周期划分
与实验二实现的单周期处理器体系结构不同,流水线型处理器将“工作”划分为多个流水段来完成一条指令。每个时钟周期对应于流水线的一个阶段。流水线型处理器结构的主要优点是它可以并行执行多个指令:在同一时刻,多个指令可以同时存在于流水线中不同的阶段。在本实验中,流水线划分为五个周期。每个流水段产生的结果都在相应的时钟周期时传递给下一个流水段。
2、数据冲突的处理
参照参考书(王志英等著)第 3 章的 3.3.2 小节,采用暂停和定向技术来处理流水线中出现的数据冲突。
暂停
当检测到数据冲突,通过暂停来阻止即将进入流水线中的指令。本实验中,暂停只能在必要时插入流水线。
定向
通过增加定向控制所需要的比较器、多路选择器和相关组合逻辑电路,实现对数据的重定向,解决数据冲突。
四、实验要求
按照以上要求将实验二所实现的单周期处理器改进成具有五段流水线处理器,并通过暂停和定向技术解决流水线中产生的数据冲突。
(该文章只实现了五段流水线处理器,未实现暂停和定向)
五、设计思想
(一)五段流水线的寄存器文件描述
IF/ID段
ID/EX段
EX/MEM段
MEM/WB段
六、测试结果及实验分析
1、流水线处理器
①处理器仿真测试波形(整体)
②FPGA编程下载
编写处理器功能测试程序,包括助记符和二进制代码。
`timescale 1ns / 1psmodule cpu_tb();//-----Clock and reset signal simulation-----
//signals
reg clk;
reg resetn;
//simulation
initial beginclk = 1'b0;resetn = 1'b0;#2000;resetn = 1'b1;
endalways #5 clk = ~clk;cpu_top U_cpu_top(.clk (clk ),.reset (resetn ));//-----monitor test-----
initial
begin$timeformat(-9,0," ns",10);while(!resetn) #5;$display("==============================================================");$display("Test begin!");#10000;
endendmodule
上板波形记录与解释
七、实验总结
本次实验设计并实现了一个流水线处理器,该流水线处理器包括5段,在实验二的基础上,将不同的模块划分到不同的阶段,然后进行流水即可。总之,这次实验以实验二为基础,实现较为简单,通过实践也加深了我对流水线cpu的处理过程的理解,使我收获颇丰。
八、源代码
源代码
【计算机组织与体系结构】实验三:流水线处理器相关推荐
- 西电计算机组织与体系结构实验,《计算机组织与体系结构》实验.doc
<计算机组织与体系结构>实验 <计算机组织与体系结构>课程实验指导书 实验二 存储器部件实验 一.实验目的和要求 1.掌握存储器的组成和工作原理. 2.熟悉存储器芯片的引脚信号 ...
- 哈工大计算机组织与体系结构实验二_小猿关注 | 计算机学院组织开展“新生入学实验室安全教育”主题活动...
原标题:小猿关注 | 计算机学院组织开展"新生入学实验室安全教育"主题活动 2020年10月23日,计算机学院在南湖综合楼主会场:7119,分会场:N520.N522.N524顺利 ...
- 【计算机组织与体系结构】实验一:算术逻辑单元的实现
系列文章目录 [计算机组织与体系结构]实验一:算术逻辑单元的实现 [计算机组织与体系结构]实验二:给定指令系统的处理器设计 [计算机组织与体系结构]实验三:流水线处理器 [计算机组织与体系结构]实验四 ...
- 【计算机组织与体系结构】实验四:指令 CACHE 的设计与实现
系列文章目录 [计算机组织与体系结构]实验一:算术逻辑单元的实现 [计算机组织与体系结构]实验二:给定指令系统的处理器设计 [计算机组织与体系结构]实验三:流水线处理器 [计算机组织与体系结构]实验四 ...
- 计算机组织与体系结构_计算机体系结构:输入/输出组织
计算机组织与体系结构 In this tutorial we will learn about how Input and Output is handled in a computer system ...
- 计算机组织与结构实验,计算机组织与结构实验报告 CQUPT
计算机组织与结构实验报告 重庆邮电大学 计算机组织与结构 实验报告 目录 实验一 Hamming码 .................................................. ...
- 计算机组织与体系结构_计算机体系结构中的内存组织
计算机组织与体系结构 A memory unit is the collection of storage units or devices together. The memory unit sto ...
- 计算机组织与结构实验,计算机组织与结构实验报告 CQUPT.docx
计算机组织与结构实验报告 CQUPT 计算机组织与结构实验报告实验一 Hamming码观察实验现象并记录相应数据输入输出规则对应如下:1.输入的8位操作数对应开关SD15~SD8,编码后的hammin ...
- 山东大学软件学院计算机组织与结构实验一
山东大学软件学院计算机组织与结构实验一 有积分的可以支持一下(卑微) https://download.csdn.net/download/qq_44220394/12092299 注意: 本文章内容 ...
- 计算机组织与结构实验报告,计算机组织与结构实验报告四
计算机组织与结构实验报告四 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 实验四.数据通路实验一. 实验目的及要求1. 进一步熟悉TE ...
最新文章
- 转载--httpclient原理和应用
- 迪拜测试世界上首款自动驾驶出租车,距离2030年的自动驾驶目标又进一步
- Android内存泄露总结
- android 之多线程详解
- odbc spoon连接postgre_ado、odbc连接Postgre SQL
- [html] 如果列表元素li的兄弟元素为div,会产生什么情况?
- java去掉图片边框颜色_sharp 去除图片边框
- as3 操作图片,获取,设置实际像素,扣除透明区域
- 《Java Web开发速学宝典》样章(共3章)
- [转]installshield for VC++6 如何使用
- Android 分享两个你学习android 平台开发必须碰到的几个知识点的组件【天气预报、日期】View 组件...
- SpringBoot整合MybatisPlus实现逻辑删除
- BUUCTF-神秘龙卷风
- 正确安装Senta的姿势
- 1KB快捷方式病毒的解决方法
- 从零开发短视频电商 阿里云架构图
- 【深度学习基础】Epoch, Batch, Iteration这三个概念的区别与联系
- 手机计算机打字教程,分享电脑打字熟记技巧,想要学习赶紧来学哦!
- 智能开发血压计模块方案
- OSChina 周三乱弹 ——恩 爆照的落落酱什么的最美啦
热门文章
- Leaflet制作专题图
- 目标检测pytorch报错:RuntimeError: CUDA error: device-side assert triggered
- VBE开源插件Rubberduck
- 传送网发展与各种网元的功能
- 中国服务外包行业发展现状与前景趋势分析报告2022-2028年版
- mysql怎么初始化自增值_MySql中重新设置AUTO_INCREMENT自增值方法
- linux shell自动登录,Shell自动登录并执行命令
- 没有PPT,一文带你了解元宇宙
- Python-批处理修改音频采样率(批量重采样)
- 解决vscode的任务栏白色图标的问题