• 20135213——信息安全系统设计基础第七周学习总结


    学习计时:共xxx小时

    读书:

    代码:

    作业:

    博客:参考资料:教材   参考博客: 闫佳歆http://www.cnblogs.com/20135202yjx/p/4907828.html

    一、学习目标

    1. 了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
    2. 理解局部性原理
    3. 理解缓存思想
    4. 理解局部性原理和缓存思想在存储层次结构中的应用
    5. 高速缓存的原理和应用

    二、学习资源

     

    1. 教材:第六章《存储器层次结构》

    2. 课程资料:https://www.shiyanlou.com/courses/413   实验六、七,课程邀请码:W7FQKW4Y

    3. 教材中代码运行、思考一下,读代码的学习方法见

     

    三、学习方法

    1.  进度很重要:必须跟上每周的进度,阅读,练习,问答,项目。我会认真对待每一位同学,请你不要因为困难半途而废。

    2. 问答很重要:遇到知识难点请多多提问,这是你的权利更是您对自己负责的义务。问答到博客园讨论小组:http://group.cnblogs.com/103791/
    3. 实践很重要:解决书中习题,实践书中实例,完成每周项目,才算真的消化了这本好书。通过实验楼环境或自己安装的虚拟机在实践中进行学习
    4. 实验报告很重要:详细记录你完成项目任务的思路,获得老师点评和帮助自己复习。学习完成后在博客园中(http://www.cnblogs.com/)把学习过程通过博客发表,博客标题“信息安全系统设计基础第七周学习总结”

     

    四、学习任务

    1. 阅读教材,完成课后练习(书中有参考答案)

       重点:6.2 6.3 6.4  6.8 6.9 6.10 6.11 6.12 6.13

    2. 考核:练习题把数据变换一下

    3. 实验:需要动手的到实验楼中练习一下

     

     

    、后续学习预告(可选):

    复习前面Linux 命令,Linux 编程基础,教材前七章内容

    、学习过程

    1. 存储技术

    了解三种常见存储技术:RAM/ROM/磁盘

     随机访问存储器:分为静态RAM和动态RAM。 静态比动态更快。

    (1)静态RAM(SRAM):将每个位存储在一个双稳态的存储器单元里。

    (2)动态RAM(SRAM):将每个位存储为对一个电容的充电。电容很小,大约有30毫微微法拉。每个单元由一个电容和一个访问晶体管组成。 DRAM对干扰非常敏感。当电容的电压被扰乱后(暴露在光线下),将永远不会恢复。

    2.存储器模块

    DRAM芯片包装在存储器模块中,是插在主板的扩展槽上的。

    • 168个引脚的双列直插存储器模块-以64位为块传送或传出数据。
    • 72个引脚的单列直插存储器模块-以32位为块传送数据。

     

    3.增强的DRAM

    • 快页模式-FPM DRAM:允许对同一行连续的访问可以直接从行缓冲区得到服务。(原本的DRAM对同一行的四条指令时,每条指令取完后都会丢弃,然后重新读取。)
    • 扩展数据输出-EDO DRAM:允许单独的CAS信号在时间上靠的更紧密一点。
    • 同步-SDRAM:用与驱动存储控制器相同的外部时钟信号的上升沿来代替许多这样的控制信号-比异步的更快。
    • 双倍数据速率同步-DDR SDRAM:通过使用两个时钟沿作为控制信号,从而使DRAM的速度翻倍。分类:DDR(2位),DDR2(4位),DDR3(8位)
    • RDRAM
    • 视频-VRAM:用在图形系统的帧缓存区中,思想类似FPM DRAM,区别:

      1.VRAM的输出是通过依次对内部缓冲区的整个内容进行移位得到的
      2.VRAM允许对存储器并行的读和写。

      非易失性存储器——ROM

      RAM断电丢失数据,是易失的

              ROM是非易失的,统称为只读存储器

    4.闪存FLASH

    基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。

    关于闪存的实际应用:ssd固态硬盘

    固态硬盘(Solid State Drives),简称固盘,固态硬盘(Solid State Drive)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
     

    对比传统硬盘编辑

    固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘几近相同,外形和尺寸也基本与普通的 2.5英寸硬盘一致。
    固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,同时其劣势也较为明显。尽管IDC认为SSD已经进入存储市场的主流行列,但其价格仍较为昂贵,容量较低,一旦硬件损坏,数据较难恢复等;并且亦有人认为固态硬盘的耐用性(寿命)相对较短。
    影响固态硬盘性能的几个因素主要是:主控芯片、NAND闪存介质和固件。在上述条件相同的情况下,采用何种接口也可能会影响SSD的性能。
    主流的接口是SATA(包括3Gb/s和6Gb/s两种)接口,亦有PCIe 3.0接口的SSD问世。
    由于SSD与普通磁盘的设计及数据读写原理的不同,使得其内部的构造亦有很大的不同。一般而言,固态硬盘(SSD)的构造较为简单,并且也可拆开;所以我们通常看到的有关SSD性能评测的文章之中大多附有SSD的内部拆卸图。
    而反观普通的机械磁盘,其数据读写是靠盘片的高速旋转所产生的气流来托起磁头,使得磁头无限接近盘片,而又不接触,并由步进电机来推动磁头进行换道数据读取。所以其内部构造相对较为复杂,也较为精密,一般情况下不允许拆卸。一旦人为拆卸,极有可能造成损害,磁盘无法正常工作。这也是为何在对磁盘进行评测时,我们基本看不到关于磁盘拆卸图的原因。
     

    5.磁盘存储

    (1)磁盘构造

    • 盘片
    • 表面:每个盘片有两个表面
    • 主轴:盘片中央,可旋转
    • 旋转速率:通常5400~15000/min
    • 磁道:同心圆们
    • 扇区:每个磁道被划分为一组扇区
    • 数据位:每个扇区包含相等数量的~,通常为512字节
    • 间隙:存储用来标识扇区的格式化位
    • 磁盘驱动器-磁盘-旋转磁盘
    • 柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合。

    (2)磁盘容量——一个磁盘上可以记录的最大位数

    影响因素:
    • 记录密度-位/英寸
    • 磁道密度-道/英寸
    • 面密度-位/平方英寸

    提高面密度即可提高容量。

    现代大容量磁盘——多区记录

    将柱面的集合分割成不相交的子集合(记录区),每个区包含一组连续的柱面;

    一个区中的每个柱面的每条磁道都有相同数量的扇区,这个扇区的数量由该区中最里面的磁道所能包含的扇区数确定

    注意:软盘仍是老式方法,每条磁道的扇区数是常数

    (3)计算公式:

     6.固体磁盘

    固态硬盘是一种基于闪存的存储技术【区别于旋转磁盘:固态磁盘没有移动的部分。

    1.组成

    一个SSD包由一个或多个闪存芯片和闪存翻译层组成:

    闪存芯片——对应旋转磁盘中机械驱动器
    闪存翻译层(硬件/固件设备)——对应磁盘控制器

    2.读/写

    (1)顺序读写

    速度相当,顺序读比顺序写稍微快一点

    (2)随机读写

    写比读慢一个数量级

    原因:底层闪存基本属性决定。

    一个闪存由B个块的序列组成,每个块由P页组成。通常页的大小是512~4kb,块是由32~128页组成的,块的大小为16kb~512kb。

    数据是以为单位读写的。

    优点

    • 由半导体构成,没有移动的零件——
    • 随机访问时间比旋转磁盘要快
    • 能耗更低
    • 更结实

    缺点

    • 更容易磨损
    • 更贵

    存储技术优势

    • 不同的存储技术有不同的价格和性能折中
    • 不同存储技术的价格和性能属性以截然不同的速率变化着
    • 增加密度从而降低成本比降低访问时间更容易
    • DRAM和磁盘的性能滞后于cpu的性能

    7.局部性

    (1)对程序数据引用的局部性

    步长为k的引用模式

    定义:一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。

    步长为1的引用模式:就是顺序访问一个向量的每个元素,有时也被称为顺序引用模式,它是程序中 空间局部性常见和重要的来源

    一般来说,随着步长增加,空间局部性下降。

    多维数组(以二维数组为例)
    int sumarraycols(int a[M][N])
    {
    	int i,j,sum = 0;
    	
    	for(i=0;i<N;i++)
    		for(j=0;j<M;j++)
    			sum += a[i][j];
    	return sum;
    }

    int sumarraycols(int a[M][N])
    {
    	int i,j,sum = 0;
    	
    	for(j=0;j<M;j++)
    		for(i=0;i<N;i++)
    			sum += a[i][j];
    	return sum;
    }

    上面的代码是按照行优先顺序执行的,下面的代码是按照列优先顺序执行的,而c数组在存储器中是按照行顺序存放的,所以第一个空间局部性良好,第二个空间局部性很差。

    因为循环体会被执行多次,所以它也有很好的时间局部性。

    (2)取指令的局部性

    程序指令是存放在存储器中的,CPU必须取出(读出)这些指令。

    但是代码区别于程序数据的一个重要属性是:在运行时它是不能被修改的。

    (3)局部性小结

    量化评价一个程序中局部性的简单原则:

    • 重复引用同一个变量的程序有良好的时间局部性
    • 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
    • 对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

    8.存储器层次结构//存储器山

    即:每层存储设备都是下一层的“缓存”

    9.缓存

    高速缓存:是一个小而快速的存储设备,它作为存储在更大、更慢的设备中的数据对象的缓冲区域。

    缓存:使用高速缓存的过程称为缓存。

    数据总是以块大小为传送单元在第k层与第k+1层之间来回拷贝。任一对相邻的层次之间块大小是固定的,但是其他的层次对之间可以有不同的块大小。

    一般来说:层越低,块越大。

    10.高速缓存存储器

    L1高速缓存:

    位于CPU寄存器文件和主存之间,访问速度2-4个时钟周期

    L2高速缓存:

    位于L1高速缓存和主存之间,访问速度10个时钟周期

    L3高速缓存:

    位于L2高速缓存和主存之间,访问速度30或40个时钟周期

    11.组相联高速缓存

    E路组相联高速缓存:1<E<C/B

    (1)组选择

    和直接的一样。

    (2)行匹配和字选择

    形式是(key, value),用key作为标记和有效位去匹配,匹配上了之后返回value。

    重要思想:组中的任意一行都可以包含任何映射到这个组的存储器块,所以告诉缓存必须搜索组中的每一行。

    判断匹配的标准依旧是两个充分必要条件:

    1.有效
    2.标记匹配

    (3)行替换

    有空行替换空行,没有空行,应用替换策略:

    • 随机替换
    • 最不常使用策略LFU:替换在过去某个时间窗口内引用次数最少的那一行。
    • 最近最少使用策略LRU:替换最后一次访问时间最久远的那一行。

    12.全相联高速缓存(E=C/B)

    (1)组选择

    只有一个组,默认组0,没有索引位,地址只被划分成了一个标记和一个块偏移。

    (2)行匹配和字选择

    同组相联。

    只适合做小的高速缓存。

    13.写

    ①写命中时,更新低一层中的拷贝的方法:

    (1)直写,立即将w的高速缓存块协会到紧接着的低一层中

    缺点:每次写都会引起总线流量。

    (2)写回,只有当替换算法要驱逐更新过的块时,才写到紧接着的低一层中
    • 优点:符合局部性原理,显著的减少总线流量
    • 缺点:增加了复杂性,必须为每个高速缓存行维护一个额外的修改位

    ②写不命中的处理方法

    (1)写分配---通常写回对应

    加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。

    (2)非写分配---通常直写对应

    避开高速缓存,直接把这个字写在低一层中。

    七、遇到的问题及解决

    1.对ssd固态硬盘的替换有兴趣,打算给笔记本换一下。

     解决:笔记本怎么更换ssd固态硬盘_百度经验

    http://jingyan.baidu.com/article/48b37f8d08128f1a6564886b.html

     

     

    八、其他

    (提示:此处由学生填写,灵感,领悟等)

  • 相关阅读:
    Django 支付宝付款接口的使用
    Django 处理跨域的配置、前台处理ajax
    pip安装源
    Django 缓存机制
    Django 配置使用日志
    Celery框架的基本使用方法
    python 虚拟环境的搭建
    Django 后台管理xadmin
    Python学习之路_day_16(模块搜索路径,开发规范)
    Python学习之路_day_15(模块)
  • 原文地址:https://www.cnblogs.com/20135213lhj/p/4909713.html
Copyright © 2020-2023  润新知