视频加载失败

课程

2335 字
约 7 分钟

实验二

计算机体系结构labs·更新于 2026-09-15

实验二

实验信息

项目内容
实验题目实验二 流水线及其流水线冲突
课程
专业22级
实验时间2024年11月1日
实验地点
实验环境MIPSsim模拟器

实验目的

  1. 加深对计算机流水线基本概念的理解
  2. 理解MIPS结构如何用5段流水线来实现,理解各段的功能和基本操作
  3. 加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响
  4. 进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿

实验内容

载入pipeline.s,在模拟器上分析其对应的微指令,统计数据冲突种类并进行详细分析。

实验步骤

  1. 启动MIPSsim模拟器
  2. 载入pipeline.s程序
  3. 单步执行,观察流水线各阶段执行情况
  4. 记录时钟周期图和统计数据
  5. 分析RAW、WAW、WAR冲突
  6. 针对每种冲突举例分析原因和改进方法
指令功能IF取指ID解码/读取寄存器EX执行MEM访存WB写回
ADDI r2,r2, r0, 100立即数 100 加r0 ,结果存入 r2,r2置为100,r0值为0取指令解码指令,读取r0,r0值为0r0 + 100无操作结果写入r2,r2置为100
ADD r3,r3, r0, $r0置r3为0,r3每次循环加4取指令解码指令,读取r0r0 + r0无操作结果写入r3
ADDI r4,r4, r0, 16立即数 16 加到r0 中,结果存入r4取指令解码指令,读取 r0r0 + 16无操作结果写入r4
LW r1,0(r1, 0(r2)以r2 内容指向的内存地址取一个数据到r1取指令解码指令,读取 r2r2 + 0访问内存,将数据加载到 r1结果写入r1
ADDI r1,r1, r1, 1r1 中的数据加1,结果存入r1取指令解码指令,读取 r1r1 + 1无操作将结果写入r1
SW r1,0(r1, 0(r2)r1中的数据存回r2 指向的内存地址取指令解码指令,读取 r2r2 + 0将r1 的值存入内存无操作
ADDI r2,r2, r2, 4r2加4,指向下一个数据取指令解码指令,读取 r2r2 + 4无操作结果写入r2
ADDI r3,r3, r3, 4r3 加 4取指令解码指令,读取 r3r3 + 4无操作结果写入r3
SUB r5,r5, r4, $r3判断r4是否大于r3,结果存入r5取指令解码指令,读取 r4r4 - r3无操作结果写入r5
BGTZ $r5, loop若r5 > 0,则跳转到标签 loop取指令解码指令,读取 r5比较 r5和 0无操作如果条件成立,更新 PC
TEQ r0,r0, r0自陷指令,停止程序取指令解码指令,读取 r0比较r0和r0无操作无操作

实验截图

lab02-计算机体系结构-实验二_01

lab02-计算机体系结构-实验二_02

lab02-计算机体系结构-实验二_03

lab02-计算机体系结构-实验二_04

lab02-计算机体系结构-实验二_05

lab02-计算机体系结构-实验二_06

lab02-计算机体系结构-实验二_07

lab02-计算机体系结构-实验二_08

lab02-计算机体系结构-实验二_09

lab02-计算机体系结构-实验二_10

lab02-计算机体系结构-实验二_11

lab02-计算机体系结构-实验二_12

lab02-实验二_01

lab02-实验二_02

lab02-实验二_03

lab02-实验二_04

Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录