2017-2018-1 20155229 《信息安全系统设计基础》第九周学习总结
2017-2018-1 20155229 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
存储器模块
- 一个64MB的内存,有8个64Mbit的DRAM芯片,每个DRAM芯片由8M*8构成。八个芯片编号为0-7. 每个超单元存储一个字节。
磁盘
- 磁盘由一些盘片构成,盘片的正反面都能存储数据,每个盘片分成许多的磁道,每个磁道分成一些扇区。
- 磁盘构造:盘片,表面,主轴,RPM,磁道,扇区,柱面
- 访问磁盘:CPU使用一种存储器映射I/O技术来向I/O设备发出命令,在使用存储器映射I/O的系统中,地址空间中有一块地址是为与I/O设备通信保留的,称为I/O端口
因此磁盘的容量 = 盘片数量 * 2 * 磁道数 * 每磁道扇区数 * 每扇区大小。
通常一个扇区为512B。
高速缓存存储器
通用的高速缓存存储器结构
- 高速缓存结构可以用元组(S,E,B,m)描述
- C是高速缓存的大小:C=SEB
- m:每个存储器地址有m位,形成M=2^m个不同的地址
- S:这个数组中有S=2^s个高速缓存组
- E:每个组包含E个高速缓存行
- B:每个行是由一个B=2^b字节的数据块组成的
直接映射高速缓存
- 高速缓存确认一个请求是否命中,然后抽取出被请求的字的过程,分为组选择、行匹配、字抽取三步
组相连高速缓存
- 依旧分为组选择,行匹配,字抽取三步
- 放松了每个组只有一行这个限制
全相联高速缓存
- 是由一个包含所有高速缓存行的组所组成的
局部性两种形式
时间局部性(temporal locality)和空间局部性(spatial locality)。在一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来再被多次引用;在一个具有良好空间局部性的程序中,如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。
教材学习中的问题和解决过程
-
问题一:存储器层次结构为什么要分这些层次,计算机如何管理这些层次?
-
解决:设置多个存储器并且使他们并行工作。本质:增添瓶颈部件数目,使它们并行工作,从而减缓固定瓶颈。采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
-
问题二:在看家庭作业6.37时,sum怎么计算?
-
解决:
C= 4 * 2^10 = 2^12
B= 16 => b = 4
S = C/(BE) = 256 => s = 8
同时可以容纳 256 组, 每组4个Int
假设元素为a[i][j]
①因为N=64,然后元素类型是Int即4个字节, C / (N * 4) = 2^(12 - 6 - 2) = 2^4 = 16
i % 16 = 元素缓存所在的S的索引(从0开始计数)0<=i<16,16<= i < 32, 32<=i<48, 48<=i<64 ,
所在的索引是一一对应的也即: 当访问a[16][0] 的时候, 会导致a[0][0] conflict miss
②当N=60, 然后元素的类型Int 是4字节, C / (N*4) = (无法整除)
再加4个元素, 刚好可以整除
代码调试中的问题和解决过程
无
代码托管
上周考试错题总结
无
结对及互评
点评模板:
- 博客中值得学习的或问题:
-
- 代码中值得学习的或问题:
-
本周结对学习情况
- [20155225](博客链接)
- 结对照片
- 结对学习内容
- 学习书本第六章内容
- 讨论pwd命令实现
其他(感悟、思考等,可选)
- 本周主要学习的是存储器层次结构,正直操作系统课也上到存储管理,相当于巩固了知识点。且本周的学习重点都为概念性的知识,也都较好理解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 20/20 | 1/ | 12/12 | |
第二周 | 42/62 | 1/2 | 8/20 | |
第三周 | 62/124 | 1/3 | 14/34 | |
第四周 | 61/185 | 1/4 | 10/44 | |
第五周 | / | 2/6 | 13/57 | |
第六周 | / | 2/8 | 17/74 | |
第七周 | / | 2/10 | 15/89 | |
第八周 | / | 2/12 | 12/101 | |
第九周 | / | 2/14 | 10/111 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 | ||||
耗时估计的公式 | ||||
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。 |
-
计划学习时间:12小时
-
实际学习时间:10小时
-
改进情况:本周学习的内容较少,所以时间上画的不多
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)