2017-2018-1 20155304 《信息安全系统设计基础》第九周学习总结
教材学习内容总结
存储技术
随机访问存储器(RAM)
- 静态RAM(SRAM):用来作为高速缓存存储器,每个位存储在一个双稳态的存储器单元里。双稳态:电路可以无限期的保持在两个不同的电压配置或者状态之一。只要供电,就会保持不变。
- 动态RAM(DRAM):用来作为主存以及图形系统的帧缓冲区。将每个位存储为对一个电容的充电,当电容的电压被扰乱之后,他就永远都不会再恢复了。暴露在光线下会导致电容电压改变。
- DRAM芯片中的单元(位)被分成了d个超单元,每个超单元都由w个DRAM单元组成, 一个d*w的DRAM共存储dw位信息。超单元被组织成一个r行c列的长方形阵列,rc=d。每个超单元的地址用(i,j)来表示(从零开始),i表示行,j表示列。设计成二维矩阵是为了降低芯片上地址引脚的数量。
- 信息通过称为引脚的外部连接器流入/流出芯片,每个引脚携带一个1位信号。
- 每个DRAM信号被连接到称为存储控制器的电路,电路每次传输量为8位。行地址i,RAS请求;列地址j,CAS请求共享相同的DRAM地址引脚。
- 快页模式DRAM(FPM DRAM):允许对同一行连续的访问可以直接从行缓冲区得到服务,避免内部行缓冲区使用一个丢弃其他的现象。
- 扩展数据输出DRAM(EDO DRAM):允许单独的CAS信号在时间上靠的更紧密一点。
- 双倍数据速率同步DRAM(DDR SDRAM):通过使用两个时钟沿作为控制信号,使得DRAM的速度翻倍。
- 视频DRAM(VRAM):用在图形系统的帧缓冲区中,允许对存储器并行的读和写。
- 如果断电,DRAM和SRAM都会丢失信息,非易失性存储器——只读存储器:ROM。ROM是以他们能够被重编程的次数和对他们重编程的机制来区分的。可编程ROM(PROM)、可擦写可编程ROM(EPROM)、电子可擦除ROM(EEPROM)、闪存。
- 总线:数据流通过其的共享电子电路在处理器和DRAM之间传送。是一组并行的导线,能携带地址、数据和控制信号。
- 总线事务:CPU和主存之间的数据传送的过程。读事务,从主存传数据到CPU;写事务,从CPU传数据到主存。
- I/O桥:将系统总线的电子信号翻译成存储器总线的电子信号。系统总线连接CPU和I/O桥,控制总线连接I/O桥和主存。
磁盘存储
- 磁盘构造:磁盘由盘片构成,表面覆盖着磁性记录材料,中央有一个可以旋转的主轴 ,旋转速率大约为5400-15000每分钟。磁盘的每个表面是一组称为磁道的同心圆组成,每个磁道被划分为一组扇区,扇区之间由一些间隙隔开,间隙存储用来标识扇区的格式化位。
- 磁盘操作:磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个传动臂一端,通过移动转动臂将读写头定位在磁道上的机械运动称为寻道。磁盘以扇区大小的块来读写数据,对扇区的访问时间有三个主要的组成部分:寻道时间:转动臂将读/写头定位到包含目标扇区的磁道上所需时间;旋转时间:驱动器等待目标扇区的第一个位旋转到读/写头下的时间;传送时间:读写并传送该扇区内容的时间。
- 逻辑磁盘块:现代磁盘将盘面的构造视为一个B个扇区大小的逻辑块序列,磁盘控制器维护着逻辑块号和实际磁盘扇区之间的映射关系。逻辑块号可识别为一个盘面、磁道、扇区三元组,唯一的标识了相对应的物理扇区。内存可以看成字节数组、磁盘可以看成块数组。
- 连接到I/O设备:所有的I/O设备都是通过I/O总线连接到CPU和主内存。有三种不同类型:通用串行总线:一个广泛的使用标准,用于连接各种外围I/O设备;图形卡(或适配器):包含硬件和软件逻辑,代表CPU在显示器上画像素;主机总线适配器: 将一个或者多个磁盘连接到I/O总线,使用一个特别的主机总线接口定义的通信协议。
- 连接到I/O设备:所有的I/O设备都是通过I/O总线连接到CPU和主内存。有三种不同类型:通用串行总线:一个广泛的使用标准,用于连接各种外围I/O设备;图形卡(或适配器):包含硬件和软件逻辑,代表CPU在显示器上画像素;主机总线适配器: 将一个或者多个磁盘连接到I/O总线,使用一个特别的主机总线接口定义的通信协议。
- 存储技术趋势:不同的存储技术有不同的价格和性能折中,不同存储技术的价格和性能属性以截然不同的速率变化着。
局部性
- 一个编写良好的计算机程序倾向于引用邻近于其他最近引用过的数据项,或者最近引用过的数据项本身。有良好局部性的程序比局部性差的程序运行的更快,在硬件层引入高速缓存存储器就体现了局部性原理。
- 时间局部性(temporal locality):被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
- 空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
- 一个连续向量中,每隔k个元素进行访问,被称为步长为k的引用模式,具有步长为1的引用模式称为顺序引用模式,随着步长增加空间局部性下降。
- 代码区别与程序数据的一个重要属性就是在运行时指令是不能被修改的。
高速缓存存储器
- 一个计算机系统每个存储地址有m位,形成M=2^m个不同的地址。
- 高速缓存被组织成一个有S=2s个高速缓存组的数组,每个组包含E个高速缓存行,每个行是由一个B=2b字节的数据块、一位有效位以及t=m-(b+s)个标记位组成,唯一标识存储在这个高速缓存行中的块。
- 高速缓存的结构用元组(S,E,B,m)来描述,高速缓存的大小C=SEB。
- 地址划分为:s个组索引位:一个无符号整数,说明字必须存储在哪个组中、t个标记位:组中的哪一行包含这个字、b个块偏移位:在B个字节的数据块中的字偏移。
- 高速缓存大小的影响、块大小的影响、相联度的影响、写策略的影响。
教材学习中的问题和解决过程
- 练习题6.8
问题:如何改变使得以步长为1的引用模式扫描三维数组a
解决方法:步长为1时空间局部性最好,必须改变循环次数。
由sum+=a[k][i][j]得,循环由里到外为kij
2.练习题6.10
问题:已知m,C,B,E,计算S,t,s,b
解决方法:通过表格中给出参数信息与之前的公式进行带值运算
S=C/(B*E)
s=log2(S)
b=log2(B)
t=m-(s+b)
上周考试错题总结
上周无考试
其他(感悟、思考等,可选)
本周学习了存储器的体系结构,学习了各种不同的存储器,了解了不同级别的存储器之间的区别,理解为什么计算机最后采用金字塔形状的存储结构。理解局部性原理,对编写代码,提高代码的效率有很大的好处
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 47/100 | 1/1 | 10/10 | |
第二周 | 180/200 | 1/1 | 10/10 | |
第三周 | 200/300 | 1/1 | 10/10 | |
第五周 | 190/300 | 1/1 | 10/10 | |
第六周 | 220/300 | 2/2 | 10/10 | |
第七周 | 320/500 | 2/2 | 10/10 | |
第八周 | 320/500 | 3/3 | 10/10 | |
第九周 | 400/500 | 3/3 | 10/10 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)