当前位置: 首页 > news >正文

网站被刷怎么办网上书店网站建设方案策划

网站被刷怎么办,网上书店网站建设方案策划,江苏建设机械网站,寻找常州微信网站建设前言 理解高速缓存对 C 程序性能的影响#xff0c;通过两部分实验达成#xff1a;编写高速缓存模拟器#xff1b;优化矩阵转置函数以减少高速缓存未命中次数。Part A一开始根本不知道要做什么#xff0c;慢慢看官方文档#xff0c;以及一些博客#xff0c;和B站视频…前言 理解高速缓存对 C 程序性能的影响通过两部分实验达成编写高速缓存模拟器优化矩阵转置函数以减少高速缓存未命中次数。Part A一开始根本不知道要做什么慢慢看官方文档以及一些博客和B站视频终于知道是干嘛的了看完别人的解题方法后就能自己写出来了。按照我给出的一些链接完全能搞懂Cache Simulator。Part B给大家推荐了两篇文章。 参考资料 Lab下载链接CacheLab官方文档CacheLab官方课件(强烈推荐阅读)大佬笔记 新发现的宝藏网站 Part A: Writing a Cache Simulator 下面这些描述是我用豆包对官方PDF生成的总结 输入输出接受 Valgrind 内存跟踪文件作为输入模拟高速缓存的命中 / 未命中行为输出命中、未命中和驱逐替换的总数。参考模拟器提供csim - ref作为参考模拟器使用 LRU最近最少使用替换策略命令行参数为Usage:./csim - ref [-hv] - s s - E E - b b - t tracefile其中-h为帮助标志-v为详细输出标志-s指定组索引位数-E指定每行关联度-b指定块大小位数-t指定 Valgrind 跟踪文件路径。编程规则编译无警告为任意 S、E、b 值正确工作需用malloc分配存储空间忽略指令缓存访问以 “I” 开头的行在main函数结束时调用printSummary函数输出结果假设内存访问已正确对齐忽略 Valgrind 跟踪文件中的请求大小。提示先在小跟踪文件如traces/dave.trace上调试。参考模拟器的-v选项可显示详细的命中、未命中和驱逐信息建议在csim.c中实现此功能辅助调试。推荐使用getopt函数解析命令行参数需包含getopt.h、stdlib.h、unistd.h头文件。数据加载L或存储S操作最多导致一次缓存未命中数据修改M操作视为一次加载和一次存储可能产生两次命中、一次未命中加一次命中或一次未命中加一次命中加一次驱逐。 下面是高速缓存(S, E, B, m)的通用组织。高速缓存是一个高速缓存的数组。每个组包含一个或多个行每个行包含一个有效位一些标记位以及一个数据块。高速缓存的结构将m个地址位划分成了t个标记位s个索引位和b个块偏移位。详见CSAPP6.4。强烈推荐B站视频看完之后就知道这个实验要做什么了理解计算机Cache一从块到缓存结构以及逐步推出映射策略和理解计算机Cache二缓存与内存的交互。 下面是看完别人的解法后又自己写的代码 #include cachelab.h #include stdio.h #include string.h #include stdlib.h #include unistd.h #include getopt.htypedef struct cache_line {int valid_bit; // 有效位unsigned tag; // 标记位int stamp; // 时间戳用于LRU }cache_line;// S(2^s)块大小, s组索引. // E缓存块(2^b)行数, b块偏移. int S, s, B, b, E; // 命中未命中替换 int hit, miss, eviction; char *filepath; cache_line **cache;void init() {// malloc cache[S][E]cache (cache_line**)malloc(sizeof(cache_line*) * S);for (int i 0; i S; i)cache[i] (cache_line*)malloc(sizeof(cache_line) * E);for (int i 0; i S; i){for (int j 0; j E; j){cache[i][j].valid_bit 0;cache[i][j].tag cache[i][j].stamp -1; }} }void destroy() {for (int i 0; i S; i)free(cache[i]);free(cache); }void update(unsigned addr) {int s_addr (addr b) ((-1U) (32 - s));int t_addr (addr (s b));// 缓存命中for (int i 0; i E; i){if (cache[s_addr][i].tag t_addr){cache[s_addr][i].stamp 0;hit;return;}}// 缓存未命中还有空块for (int i 0; i E; i){if (cache[s_addr][i].valid_bit 0){miss;cache[s_addr][i].valid_bit 1;cache[s_addr][i].tag t_addr;cache[s_addr][i].stamp 0;return;}}// 没有空组产生替换miss;eviction; int max_stamp 0, max_i 0;for (int i 0; i E; i){if (cache[s_addr][i].stamp max_stamp){max_stamp cache[s_addr][i].stamp;max_i i;}}cache[s_addr][max_i].tag t_addr; cache[s_addr][max_i].stamp 0;return; }void time() {for (int i 0; i S; i){for (int j 0; j E; j){if (cache[i][j].valid_bit 1) // 被使用了cache[i][j].stamp;}} }int main(int argc, char* argv[]) {int opt;while (-1 ! (opt getopt(argc, argv, s:E:b:t:))){switch (opt){case s:s atoi(optarg); // optarg是getopt函数设置的指向当前选项参数的指针S 1 s;break;case E:E atoi(optarg);break;case b:b atoi(optarg);B 1 b;break;case t:filepath optarg;break;}}init();FILE* pf fopen(filepath, r);if (pf NULL){printf(fopen fail\n);exit(-1);}char op;unsigned addr;int size;while (fscanf(pf, %c %x,%d, op, addr, size) 0){switch (op){case L:update(addr);break;case M: // 执行两次update(addr);case S:update(addr);break;}time();}destroy();fclose(pf);printSummary(hit, miss, eviction);return 0; }Part B: Optimizing Matrix Transpose 函数功能在trans.c中编写transpose_submit函数计算矩阵的转置并存储结果尽量减少高速缓存未命中次数。编程规则编译无警告每个转置函数最多定义 12 个int类型的局部变量不能使用long类型变量或位技巧规避此规则函数不能使用递归使用辅助函数时辅助函数和顶级转置函数在栈上的局部变量总数不能超过 12 个不能修改数组 A可随意处理数组 B不能定义数组或使用malloc。提示转置函数在直接映射缓存上评估冲突未命中是潜在问题需考虑代码中尤其是对角线上的冲突未命中设计降低冲突未命中的访问模式。分块是减少缓存未命中的有用技术可参考利用分块提高时间局部性PDF 获取更多信息。测试程序test - trans会保存函数的跟踪文件如trace.f0等可通过参考模拟器的-v选项运行跟踪文件辅助调试。 给大家推荐两个写的好的文章我做不出来… myk的Cache Lab和马天猫的Cache Lab笔记。
http://www.hkea.cn/news/14443027/

相关文章:

  • 东营本地网站有哪些谷歌网站收录提交
  • 汉中微信网站建设服务ps做素材下载网站有哪些
  • 网站上怎么做返回主页链接wordpress 文章加密
  • 江苏省网站备案电话广东建设执业资格注册中心网站
  • 农家乐网站建设广告营销公司
  • 东莞优化seo网站关键词优化网站客户端制作
  • 建设银行网站支付流程做视频采集网站犯法
  • 乐清建站贺州建设网站
  • 做网站系统网站开发组件拖拽
  • 国外优秀摄影作品网站中国建设网银登录
  • 什么网站可以做十万的分期哪些平台可以建立网站吗
  • 个人备案网站名称怎么写广东网站建设多少钱
  • 安贞做网站公司wordpress导入文件
  • 个人网站备案简介汕头市做网站
  • 清城网站seo很有质感的网站
  • 新兴网站建设简单美食网页设计模板
  • 江西省上饶市建设局网站163手机移动网站
  • 网站开发翻译功能wordpress微信授权登录
  • 怎么做一个网站多少钱网站制作框架
  • 缅甸做菠菜网站网站开发html5
  • 在哪个网站可做网络夫妻不得不知道的网站
  • 有网站源码如何建站wordpress 建站 搜索
  • 做网站收费 知乎佛山网站建设找千界
  • 制作网站的完整步骤百度申请完域名怎么建设网站
  • 外贸建站公司排名广州建筑集团股份有限公司
  • 网站博客自媒体轻松绍兴高兴区建设网站
  • 网站开发流程说明网站怎么做登录
  • 无锡正规网站seo公司wordpress 图片边框
  • 鄂州商城网站建设建一个个人网站一年多少钱
  • 什么是网站网页主页网络营销培训班