csapp-cachelab 详解 独小雪 36 人赞同了该文章 目录 收起 开始 Part A 1. 要用到的结构 2. 各种函数 Part B 一点点准备工作 32 × 32 1. 靶是怎么脱的? 2. 解决的办法 64 × 64 1. 对角线两侧的情况 2. 对角线上的矩阵块 3. 优化结果 61 × 67 写在最后 开始 这个lab有两个部分,第...
复制typedefstruct{intvalid;inttag;inttime;} CacheLine, *CacheSet, **Cache; 接着完成入口函数,进行命令行参数解析和模拟工作: 复制#include<assert.h>#include<getopt.h>#include<stdint.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include"cachelab.h"inthit, miss, evict;ints, S, E...
定义一个cache[S][E]大小的二维数组(using malloc). 这样cache就模拟好了。 代码语言:javascript 复制 voidinit(){cache=(cache_line**)malloc(sizeof(cache_line*)*S);//malloc cache[S][E]for(int i=0;i<S;i++)*(cache+i)=(cache_line*)malloc(sizeof(cache_line)*E);for(int i=0...
if(_cache_[setindex_add][i].valid_bits == 0) { _cache_[setindex_add][i].valid_bits = 1; _cache_[setindex_add][i].tag = tag_add; _cache_[setindex_add][i].stamp = 0; ++miss_count; return ; } } // 没有空行又没有hit就是要替换了 ++eviction_count; ++miss_count; for(...
cache[s_address][i].valid_bits = 1; cache[s_address][i].stamp = 0; //now ,this is load miss++; return; } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 3.2.7 完整代码 #include "cachelab.h"#include <getopt.h>#include <stdlib.h>#include <unistd.h>#include <stdio.h>#include...
Writing a Cache Simulator任务简介 使用LRU策略,编写csim.c,模拟cache的运行。cache为多路组相联,组数、每组行数、每行块数由调用参数给出,具体看WriteUp。材料中给出了一个名为csim-ref的可执行文件,要求我们程序最后执行的结果和它一样。 valgrind分析缓存操作 ...
缓存是现代计算机的重要部件,了解缓存的工作机制可以编写出缓存友好的程序,提高程序的速度。 partA 实现一个缓存模拟器,需要了解缓存的工作细节,完成后可以对缓存有更深入的理解。这个实现没有唯一的答案,不同的人实现方式都有差别。相对难点是实现LRU替换,如果换错了行会导致后边缓存行为的一系列错误。具体原理书里已...
cachelab是csapp的配套实验之一,该实验分为A、B两个部分,A部分要求实现一个cache模拟器,B部分是实现一个针对cache优化的矩阵转置函数。 Part A Part A部分我们需要完成csim.c源文件,参考csim-ref程序接收相同的命令行参数并产生相同的输出。csim-ref是一个参考可执行程序,它能够模拟cache并处理valgrind生成的trace文...
建议环境配置:首先创建一个文件夹和一个waside-blockingPDF文件夹,使用该命令下载最新版的lab资料和PDF中英对照版本。PartA前置准备与具体需求:编写一个使用c语言实现的程序csim.c,此程序需模拟cache行为,具体需要实现对S(Store)、L(Load)、M(Modify)三种操作的MISS、HIT、EVICTION反应,细节请参照PDF...
Cachelab包含两部分:PartA要求实现缓存命中计数器,PartB进行矩阵运算优化。实验室资源在csapp.cs.cmu.edu/3e/lab下载,若手动下载,注意阅读README文件,理解实验目标与工具使用方法。实验文件需要修改csim.c和trans.c,然后构建项目,使用./driver.py进行评分,查看得分。PartA目标简单,根据valgrind生成的...