2017-2018-1 20155316 《信息安全系统设计基础》第9周学习总结
教材学习内容总结
- 存储技术
- 局部性
- 存储器层次结构
- 高速存储存储器
- 编写高速存储友好的代码
- 综合:高速缓存对程序性能的影响
PWD实验
实验内容
- 编写PWD代码
实验过程
遇到的问题:碰到用sprintf将报错信息放进字符串中时,出现编译错误,将第二项修改成单纯的int类型或者单纯的字符串类型就可以了
教材学习中的问题和解决过程
- 问题1:存储器山是什么?
- 问题1解决方案:存储器山是一种综合研究存储器层次结构的工具。它反映了存储器层次结构中不同层次的带宽。也反映了具有不同的时间局部性与空间局部性的程序的性能。通过分析存储器山的数据,还可以看出存储器系统的部分硬件参数。
- 问题2:对高速存储器的理解?
- 问题2解决方案:
- 层次结构:CPU寄存器、DRAM主存储器和磁盘存储。
- 分类:直接映射高速缓存、组相联高速缓存等
- 1.直接映射高速缓存:每个组只有一行的高速缓存。
- 高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步:组选择、行匹配、字抽取
- 组选择:高速缓存从w的地址中间抽取出s个组索引位
- 组索引位:一个对应于一个组号的无符号整数。
- 行匹配:判断缓存命中的两个充分必要条件:该行设置了有效位;高速缓存行中的标记和w的地址中的标记相匹配
- 字选择:确定所需要的字在块中是从哪里开始的。
- 2.组相联高速缓存
- 组选择:与直接映射高速缓存中的组选择一样,组索引位标识组。
- 行匹配和字选择:把每个组看做一个小的相关联存储器,是一个(key,value)对的数组,以key为输入,返回对应数组中的value值。高速缓存必须搜索组中的每一行,寻找有效的行其标记与地址中的相匹配。
代码调试中的问题和解决过程
代码托管
结对及互评
本周结对学习情况
- [20155308](博客链接)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)