摘要: PA3 - 穿越时空的旅程: 批处理系统 穿越时空的旅程 概览 💭 实现目标 通过软硬件协作,实现程序的执行流切换 下面本节具体例子来帮助理解:通过am-tests中的yield test测试触发一次自陷操作 程序内部的执行流切换:函数A和函数B可以简单地通过call/jal指令实现; 程序之间的 阅读全文
posted @ 2024-11-07 17:37 上山砍大树 阅读(521) 评论(0) 推荐(0)
摘要: 学习下`exec_once()`函数覆盖了指令周期的所有阶段: 取指, 译码, 执行, 更新PC 阅读全文
posted @ 2024-09-29 17:46 上山砍大树 阅读(309) 评论(2) 推荐(1)
摘要: PA2 - 简单复杂的机器: 冯诺依曼计算机系统 阅读全文
posted @ 2024-09-26 11:28 上山砍大树 阅读(2059) 评论(7) 推荐(1)
摘要: 完成PA1“表达式生成器”、“监视点”以及实验报告手册 写一篇关于“链接”的帖子,讨论静态链接和动态链接的一些问题。参看书籍有csapp和《程序员的自我修养-链接、装载与库》 跑步锻炼 阅读全文
posted @ 2024-09-10 10:54 上山砍大树 阅读(58) 评论(4) 推荐(0)
摘要: 记录下自己刚才在一个新环境中重新下载PA项目代码并且运行时候遇到的问题。 拉取代码 首先拉取远程代码的主分支: git clone git@github.com:CharlieCRX/pa.git git clone默认只会拉取并检出远程仓库的默认分支(通常是main或者master分支),但同时, 阅读全文
posted @ 2024-08-30 16:32 上山砍大树 阅读(157) 评论(0) 推荐(0)
摘要: PA1 - 开天辟地的篇章: 最简单的计算机 阅读全文
posted @ 2024-07-23 17:36 上山砍大树 阅读(808) 评论(0) 推荐(1)
摘要: cachelab 概览 本实验分为个部分,part a是用C语言构建一个缓存模拟器,part b是调优矩阵转置。 本次实验需要修改的文件是csim.c和trans.c。 Part A:Writing a Cache Simulator 前置知识 了解这些知识,会让Part A的旅程更加通顺,如果基础 阅读全文
posted @ 2024-07-22 16:52 上山砍大树 阅读(65) 评论(0) 推荐(0)
摘要: 南京大学pa项目 阅读全文
posted @ 2024-07-19 16:11 上山砍大树 阅读(356) 评论(0) 推荐(0)
摘要: An array is cache-aligned: The size of each array element matches the size of the cache block. The starting address of the array is a multiple of the 阅读全文
posted @ 2024-07-17 11:09 上山砍大树 阅读(30) 评论(0) 推荐(0)
摘要: 用地址中部的位作为缓存行的索引原因(对比高位作为索引的优劣) 用内存地址的高位作为缓存行的索引,会导致连续的数据存储在同一个缓存行中。因此,每次新地址被加载时,都会替换掉之前的地址,导致频繁的缓存替换和冲突。 即使访问了数组的几个连续元素,缓存只使用了一个行,其它剩余行未被使用,导致缓存利用率非常低 阅读全文
posted @ 2024-07-17 09:43 上山砍大树 阅读(78) 评论(0) 推荐(0)