本教程由 ChatGPT 5.2 大模型生成!提示词以及附件如下:
- 附件:
实验二.ppt
MIPS32指令卡片.pdf- 提示词:
我正在完成一份计算机组成课程的实验,以下是实验要求:
一.实验目的:
(1)熟悉SPIM-CACHE模拟器环境
(2)深入认识CACHE的工作原理及其作用。
二.实验内容:
(1)阅读实验指导书资料
(2)下载SPIM-CACHE软件,理解英文论文的基本内容之后,给出几种典型的cache配置,运行英文论文提供的代码,记录运行时CACHE命中率等重要数据;
(3)运行Fig.4代码,配置2个左右不同的CACHE环境,了解mapping functions 即映射规则
(4)运行Fig.7代码,配置2个左右不同的CACHE环境,了解temporal and spatial locality 即时空局部性,进一步理解cache的工作原理;
(5)运行Fig.8代码,配置4个左右不同的CACHE环境,运行学习replacement algorithms 即替代算法,理解其工作原理
我不知道该如何操作这个实验,请告诉我实验流程,其中软件与代码文件已由老师提供
这个实验不是让你"自己写复杂程序" ,而是在老师给定的软件和代码基础上,通过不同 Cache 配置反复运行、记录数据、分析现象 。下面我按 "你实际该怎么一步一步做" 来给你一份 可直接照做的实验流程说明 ,对应你实验要求中的 5 点内容。
目录
-
- 一、实验整体你在"干什么"(先有全局概念)
- 二、实验前准备(重要)
-
- [1️⃣ 打开 SPIM-CACHE](#1️⃣ 打开 SPIM-CACHE)
- [2️⃣ 设置 PC 起始地址(非常关键)](#2️⃣ 设置 PC 起始地址(非常关键))
- [3️⃣ 加载老师给的程序代码](#3️⃣ 加载老师给的程序代码)
- 三、实验内容(按实验要求一步一步来)
- [(一)Fig.4:理解 Cache 映射规则(mapping functions)](#(一)Fig.4:理解 Cache 映射规则(mapping functions))
-
- [🎯 实验目的](#🎯 实验目的)
- [✅ 实验操作流程](#✅ 实验操作流程)
-
- [Step 1:选择 Fig.4 的代码(sum = ∑A)](#Step 1:选择 Fig.4 的代码(sum = ∑A))
- [Step 2:固定 Cache 总大小](#Step 2:固定 Cache 总大小)
- [Step 3:改变"槽大小(Block Size)"](#Step 3:改变“槽大小(Block Size)”)
- [Step 4:运行程序](#Step 4:运行程序)
- [Step 5:记录数据(重点)](#Step 5:记录数据(重点))
- [Step 6:写分析(报告用)](#Step 6:写分析(报告用))
- [(二)Fig.7:理解时间/空间局部性(temporal & spatial locality)](#(二)Fig.7:理解时间/空间局部性(temporal & spatial locality))
-
- [🎯 实验目的](#🎯 实验目的)
- [✅ 实验操作流程](#✅ 实验操作流程)
-
- [Step 1:使用 Fig.7 代码](#Step 1:使用 Fig.7 代码)
- [Step 2:修改外循环次数 N](#Step 2:修改外循环次数 N)
- [Step 3:Cache 固定不变](#Step 3:Cache 固定不变)
- [Step 4:分别运行并记录命中率](#Step 4:分别运行并记录命中率)
- [Step 5:分析要点(报告必写)](#Step 5:分析要点(报告必写))
- [(三)Fig.8:理解替换算法(replacement algorithms)](#(三)Fig.8:理解替换算法(replacement algorithms))
-
- [🎯 实验目的](#🎯 实验目的)
- [✅ 实验操作流程](#✅ 实验操作流程)
-
- [Step 1:使用 Fig.8 代码](#Step 1:使用 Fig.8 代码)
- [Step 2:修改访问间距(stride)](#Step 2:修改访问间距(stride))
- [Step 3:配置不同 Cache 环境(4 种左右)](#Step 3:配置不同 Cache 环境(4 种左右))
- [Step 4:运行并记录命中率](#Step 4:运行并记录命中率)
- [Step 5:分析要点](#Step 5:分析要点)
- 四、实验报告该怎么写(老师最关心)
- 五、你现在可以直接做的事(行动清单)
- 免责声明
一、实验整体你在"干什么"(先有全局概念)
一句话总结:
用 SPIM-CACHE 模拟器,运行老师给定的 MIPS 程序(Fig.4 / Fig.7 / Fig.8),在不同 Cache 配置下,比较 Cache 命中率的变化,从而理解映射规则、局部性和替换算法。
你不需要:
- 自己写 Cache
- 自己实现算法
- 自己算复杂公式
你需要:
- 会改 Cache 参数
- 会运行程序
- 会抄数据、做表、写分析
二、实验前准备(重要)
1️⃣ 打开 SPIM-CACHE
-
启动老师给你的 spim-cache
-
不要用 F5 直接运行
- 用 F10(单步)
- 或 F11(多步)
👉 这是实验明确要求的
2️⃣ 设置 PC 起始地址(非常关键)
在每次运行程序前:
PC = 0x400000
否则程序可能直接跑飞或没数据。
👉 这是实验 PPT 明确写的前置条件!
3️⃣ 加载老师给的程序代码
-
Fig.4、Fig.7、Fig.8 的代码都已经由老师提供
-
你只需要:
- 打开对应
.s文件 - 确认
.text段存在 _start是入口
- 打开对应
三、实验内容(按实验要求一步一步来)
(一)Fig.4:理解 Cache 映射规则(mapping functions)
🎯 实验目的
理解:
- 直接映射 / 组相联
- 块大小改变 → 命中率变化
✅ 实验操作流程
Step 1:选择 Fig.4 的代码(sum = ∑A)
这是一个顺序访问数组的程序,专门用来观察映射效果。
Step 2:固定 Cache 总大小
统一设置:
Cache Size = 256B
Step 3:改变"槽大小(Block Size)"
分别做三次实验:
| 实验编号 | Cache Size | Block Size |
|---|---|---|
| 1 | 256B | 16B |
| 2 | 256B | 8B |
| 3 | 256B | 4B |
映射方式可选:
- 直接映射
- 或 2 路 / 4 路组相联(老师允许你自行定义)
Step 4:运行程序
- 设置 PC = 0x400000
- 用 F10 / F11 运行至结束
- 打开 Cache Statistics
Step 5:记录数据(重点)
记录表格即可,例如:
| Block Size | 映射方式 | I-Cache 命中率 | D-Cache 命中率 |
|---|---|---|---|
| 16B | 直接映射 | xx% | xx% |
| 8B | 直接映射 | xx% | xx% |
| 4B | 直接映射 | xx% | xx% |
Step 6:写分析(报告用)
重点写:
- 块变大 → 空间局部性 ↑
- 块变小 → 冲突 miss ↑
- 为什么命中率会变化
(二)Fig.7:理解时间/空间局部性(temporal & spatial locality)
🎯 实验目的
通过循环次数变化,观察:
- 时间局部性(重复访问)
- 空间局部性(相邻地址)
✅ 实验操作流程
Step 1:使用 Fig.7 代码
老师给的代码结构是:
asm
ext_loop: # 外循环
loop: # 内循环
Step 2:修改外循环次数 N
依次修改为:
N = 1, 5, 10, 100
👉 PPT 已明确要求这样做
Step 3:Cache 固定不变
Cache Size = 256B
映射方式你可选:
- 直接映射
- 2 路组相联
Step 4:分别运行并记录命中率
示例表格:
| N 值 | 映射方式 | D-Cache 命中率 |
|---|---|---|
| 1 | 直接映射 | xx% |
| 5 | 直接映射 | xx% |
| 10 | 直接映射 | xx% |
| 100 | 直接映射 | xx% |
Step 5:分析要点(报告必写)
- N 增大 → 重复访问同一数据
- 时间局部性增强 → 命中率明显上升
- Cache 起到"加速热点数据"的作用
(三)Fig.8:理解替换算法(replacement algorithms)
🎯 实验目的
通过访问步长(stride)变化,观察:
- Cache 冲突
- 替换策略效果(如 LRU)
✅ 实验操作流程
Step 1:使用 Fig.8 代码
Step 2:修改访问间距(stride)
依次设置为:
1, 2, 4, 8, 16, 32, 64
同时:
外循环次数 = 100
👉 这是实验硬性要求
Step 3:配置不同 Cache 环境(4 种左右)
例如:
| 实验 | 组相联度 | 替换算法 |
|---|---|---|
| A | 直接映射 | --- |
| B | 2 路组相联 | LRU |
| C | 4 路组相联 | LRU |
| D | 4 路组相联 | FIFO |
Step 4:运行并记录命中率
示例:
| Stride | Cache 配置 | 命中率 |
|---|---|---|
| 1 | 2 路 LRU | xx% |
| 8 | 2 路 LRU | xx% |
| 32 | 2 路 LRU | xx% |
Step 5:分析要点
- stride 越大 → 空间局部性越差
- 组相联度 ↑ → 冲突 miss ↓
- LRU 通常优于 FIFO
四、实验报告该怎么写(老师最关心)
老师 PPT 已明确:
报告以数据表格 + 分析为主,不需要运行截图
推荐结构
- 实验目的
- 实验环境(SPIM-CACHE + Cache 参数)
- Fig.4 实验数据与分析
- Fig.7 实验数据与分析
- Fig.8 实验数据与分析
- 总结(Cache 的作用 + 三点理解)
五、你现在可以直接做的事(行动清单)
✔ 打开 spim-cache
✔ 设置 PC = 0x400000
✔ 跑 Fig.4 → 改 block size → 记命中率
✔ 跑 Fig.7 → 改 N → 记命中率
✔ 跑 Fig.8 → 改 stride + cache 配置 → 记命中率
✔ 做表格 + 写分析
免责声明
本文由 ChatGPT 5.2 大模型生成,在此仅做搬运处理!