20135234mqy-——信息安全系统设计基础第七周学习总结
第六章 存储器层次结构
存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构。
CPU寄存器保存着最常用的数据。
靠近CPU的小的,快速的高速缓存存储器作为一部分存储在相对较慢的主存储器(主存)中的数据和指令的缓存区域。
主存暂时存放存储在容量较大的,慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带上的数据的缓存区域。
6.1存储技术
6.1.1随机访问存储器
随机访问存储器(RAM)分为:静态的RAM(SRAM)和动态的RAM(DRAM)
SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。
DRAM用来作为主存以及图形系统的帧缓冲区。
1.静态RAM
SRAM将每个位存储在一个双稳态的存储器单元里
也就是说,只要有电,它就会永远地保持它的值。即使有干扰
2.动态RAM
DRAM将每个位存储为对一个电容充电
DRAM存储器单元对干扰非常敏感,当电容的电压被扰乱后,它就永远不会再恢复了
3.传统的DRAM
DRAM芯片中的单元(位)被分成d个超单元,每个超单元都由w个DRAM单元组成。一个d×w的DRAM总共存储了dw位信息。超单元被组织成一个r行c列的长方形阵列,这里rc=d。每个超单元都有形如(i,j)的地址,i表示行,j表示列。
4.存储器模块
DRAM芯片包装在存储器模块中,它是查到主板的扩展槽中。常见的包装包括168个引脚的双列直插存储器模块,它以64位为块传送数据到存储控制器和从存储控制器传出的数据,还包括72个引脚的单列直插存储器模块,它以32位为块传送数据。
5.增强的DRAM
对DRAM的改进:
(1)快页模式DRAM
(2)扩展数据输出DRAM
(3)同步DRAM
(4)双倍数据速率同步DRAM
(5)RambusDRAM(RDRAM)
(6)视屏DRAM
6.非易失性存储器
若断点,DRAM和SRAM会丢失信息,即易失的。
相反的,断电后仍保存信息,则为非易失的存储器。
7.访问主存
数据流通过称为总线的共享电子电路在处理和DRAM主存之间来来回回。
每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为总线事物。
读事物从主存传送数据到CPU。
写事物从CPU传送数据到主存。
6.1.2磁盘存储
1.磁盘构造
(1)磁盘由盘面构成,每个盘面有两面或者称为表面,表面覆盖记录材料。
盘片中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟。
(2)每个表面是由一组成为磁道的同心圆组成的。每个磁道被划分为一组扇区。
每个扇区包含相等数量的数据位,这些数据编码在扇区上的磁性材料中。
扇区之间由一些间隙分隔开,这些间隙中不存储数据位。间隙存储用来标识山区的格式化位
(3)磁盘是由一个或多个叠放在一起的盘片组成的,他们被分装在一个密封的包装里。
整个装置通常称为磁盘驱动器,简称磁盘。
柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合。
2.磁盘容量
记录密度:磁道每一英寸的段中可以放入的位数
磁道密度:从盘片中心出发半径以上一英寸的段内可以有的磁道数
面密度:记录密度与磁道密度的乘积
磁盘容量:(字节数/扇区)×(平均扇区/磁道)×(磁道数/表面)×(表面数/盘片)×(盘片数/磁盘)
3.磁盘操作
磁盘用读/写头来读写存储在磁性表面上的位,而读写头连接到一个传动臂一端。
通过沿着半径轴前后移动这个传动臂,驱动器就可以将读/写头定位在盘面上的任何磁道上,这个机械运动称为寻道。
对扇区访问时间分为三部分:
(1)寻道时间:
(2)旋转时间:
Tmax rotation = (1/RPM) × (60secs/1min)
平均旋转时间Tavg rotation是 Tmax rotation一半
(3)传送时间:
Tavg transfer =(1/RPM) × (1/(平均扇区数/磁道)) ×(60secs/1min)
4.逻辑磁盘块
为了对操作系统隐藏复杂性,现代磁盘将它们的构造呈现为一个简单的视图,一个B个扇区大小的逻辑块的序列,编号为0,1,…,B-1。
磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)磁盘扇区之间的映射关系。
5.连接到I/O设备
有三种不同类型的设备连接到总线:
(1)通用串行总线
(2)图形卡
(3)主机总线适配器
6.访问磁盘
6.1.3固态磁盘
固定硬盘是基于闪存的存储技术,在某些情况下是传统旋转磁盘的极有吸引力的替代产品。
6.1.4存储技术趋势
不同的存储技术有不同的价格和性能折中
不同存储技术的价格和性能属性以截然不同的速率变化着
DRAM和磁盘的性能滞后于CPU的性能
6.2局部性
局部性原理:倾向于引用临近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。
局部性:(1)时间局部性 (2)空间局部性
在硬件层,局部性原理允许计算机设计者通过引用称为高速缓存存储器的小而快速的存储器来保存最近被引用的指令和数据项,从而提高对主存的访问速度
在操作系统级,局部性原理允许系统使用主存作为虚拟地址空间最近被引用的高速缓存。
6.2.1对程序数据引用的局部性
我们称为步长为1的引用模式为顺序引用模式。
一个连续向量中,每隔k个元素进行访问,就被称为步长为k的引用模式。
6.2.2取指令的局部性
因为程序指令是存放在存储器中的,CPU必须取出(读出)这些指令,所以我们也能够评价一个程序关于取指令的局部性。
6.3存储器的层次结构
6.3.1存储器层次结构中的缓存
1.缓存命中
当程序需要第k+1层的某个数据对象d时,它首先在当前存储在第k层的一个块中查找d。如果d刚好缓存在第k层中,那么就是缓存命中。
该程序直接从第k层读取d,根据存储器层次结构的性质,这要比从第k+1层读取d更快。
2.缓存不命中
如果第k层中没有缓存数据对象d,那么就是我们所说的缓存不命中。
当发生缓存不命中时,第k层的缓存从第k+1层缓存中取出包含d的那个块,如果第k层的缓存已经满了的话,就可能会覆盖现存的一个块
3.缓存不命中的种类
强制性不命中/冷不命中:第k层的缓存是空的,那么对任何数据对象的访问都不会命中。其中一个空的缓存称为冷缓存。
冲突不命中:对象会映射到同一个缓存块,缓存会一直不命中。
容量不命中:工作集的大小超过缓存的大小
4.缓存管理
管理缓存的逻辑可以是硬件,软件,或者是两者的结合。
总结:
基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序往往展示局部性:
(1)利用时间局部性
(2)利用空间局部性
6.4高速缓存存储器
6.4.1通用的高速缓存存储器结构
一个计算机系统,每个存储器地址有m位,形成M=2m个不同的地址。
如图,这样一个机器的高速缓存被组织成一个有S=2s个高速缓存组的数组。每个组包含E个高速缓存行
每个行是由一个B=2b字节的数据块组成的,一个有效位指明这个行是否包含有意义的信息,还有t=m-(b+s)个标记位
算法小结:
6.4.2直接映射高速缓存
1.直接映射高速缓存中的组选择
高速缓存从w的地址中间抽取出s个组索引位
2.直接映射高速缓存中的行匹配
上一步已经选择了某个组i,接下来的一步就要确定是否有字w的一个拷贝存储在组i包含的一个高速缓存中。
3.直接映射高速缓存中的字选择
一旦命中,我们知道w就在这个块的某个地方,最后一步确定的字在块中是从哪里开始的。
块偏移位提供了所需要的字的第一个字节的偏移。
4.直接映射高速缓存中不命中时的行替换
若果缓存不命中,那么它需要从存储器层次结构中的下一层取出被请求的块,然后将新的块存储在组索引位指示的组中的一个高速缓存行中。
6.4.3组相联高速缓存
1.组相联高速缓存中的组选择
2.组相联高速缓存中的行匹配和字选择
3.组相联高速缓存中的不命中时的行替换
6.4.4全相联高速缓存
1.全相联高速缓存中的组选择
2.全相联高速缓存中的行匹配和字选择
6.4.7高速缓存参数的性能影响
1.高速缓存参数的性能影响
2.块大小的影响
3.相联度的影响
4.写策略的影响
20135234mqy-——信息安全系统设计基础第七周学习总结的更多相关文章
- 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试
目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...
- 20155216 2017-2018-1 《信息安全系统设计基础》第二周课堂练习补交以及Myod的实现
20155216 2017-2018-1 <信息安全系统设计基础>第二周课堂练习补交 课堂测试3:行断点的设置 运行截图: 未完成原因:课前未安装 cgdb 具体步骤: 1.输入命令:gc ...
- 2017-2018-1 20155232 《信息安全系统设计基础》第四周学习总结以及课上myod练习补充博客
2017-2018-1 20155232 <信息安全系统设计基础>第四周学习总结以及课上myod练习补充博客 课上myod练习 1 参考教材第十章内容 2 用Linux IO相关系统调用编 ...
- 2017-2018-1 20155320 《信息安全系统设计基础》第四周学习总结(课堂实践补交+myhead与mytail加分项目)
2017-2018-1 20155320 <信息安全系统设计基础>第四周学习总结(课堂实践补交+myhead与mytail实现) 课堂实践内容 1 参考教材第十章内容 2 用Linux I ...
- 2017-2018-1 20155326 《信息安全系统设计基础》第四周学习总结及myod改进版的补交
2017-2018-1 20155326 <信息安全系统设计基础>第四周学习总结及myod改进版的补交 学习内容 补充完成课上没有完成的内容 学习教材附录A,第十章内容 参考别出心裁的Li ...
- 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)
2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...
- 2017-2018-1 20155318 《信息安全系统设计基础》第九周课下实践——实现mypwd
2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | ...
- 2017-2018-3 20155337《信息安全系统设计基础》 pwd指令学习
2017-2018-3 20155337<信息安全系统设计基础> pwd指令学习 任务要求 学习pwd指令 研究pwd实现需要的系统调用(man -k:grep),写出伪代码 实现mypw ...
- # 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod
20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多 ...
随机推荐
- jQuery----奇偶选择器和索引选择器
奇偶选择器: $( " #uu>li:odd").css( " backgroundColor "," red " ); 获取id为u ...
- 在Mac检查安装的.net core 版本
在 Termianl which dotnet #查看dotnetcore的runtime路径 dotnet #dotnet 命令行工具 -h 查看帮助 #常用命令 # --info Display ...
- Docker:unauthorized: incorrect username or password.
用VS2017编译DockerCompose项目,显示错误:unauthorized: incorrect username or password. 打开命令行工具,输入docker login命令 ...
- JavaEE笔记(一)
Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自 ...
- 学习笔记:Oracle的trace文件可见性
隐藏参数: _trace_files_public 参数 trace文件的默认权限: - r w - r - - - - - 如果设定 trace_files_public参数为 true, 则 t ...
- PostgreSQL的PITR中,对 unfilled wal log 如何处理为好
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页 通过实验,可以发现,PostgreSQL中使 ...
- 洛咕 P2468 [SDOI2010]粟粟的书架
强行二合一啊... 前面直接二分最小值,二维前缀和.后面用主席树查最小值.注意要写\(nlogn\). // luogu-judger-enable-o2 #include<bits/stdc+ ...
- 弄啥嘞?热爱你的Bug
有人喜欢创造世界,他们做了开发者:有的人喜欢开发者,他们做了测试员.什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者 ...
- JMeter下Groovy和BeanShell语言在不同组件中性能差异实践探究
一般而言JMeter下性能最好的是jar包这类java原生请求,对于JMeter并没有原生支持的请求,一般都会将其直接编译为jar包,然后再JMeter中调用,这样性能最好. 但是有些需求并不适合用j ...
- Docker创建数据卷
当程序在容器中运行时,需要与其他容器中的程序或者容器外部的程序进行文件读写操作时,就需要进行数据的交换:容器内部的文件系统,是一个临时层,当容器停止运行并被删除时,这个临时层就会被一同丢弃:为了达到从 ...